企业服务(NFS(网络文件系统))

NFS(网络文件系统) NFS协议是NAS存储的一种类型
简介:

  1. linux/Unix系统之间共享文件系统的一种协议,通过网络让不同的主机之间共享文件或者目录。
  2. NFS的客户端主要为linux
  3. NFS支持多借点同时挂载以及并发写入
  4. 提供文件共享服务
  5. 为集群中的web server配置后端存储
    NFS协议模型
    在这里插入图片描述

RPC远程过程调度

  1. NFS协议本身没有网络传输功能,而是基于远程过程调用协议实现的
  2. 提供了一个面向过程的远程服务接口
  3. 可以通过网络从远程主机上请求服务,而不需要了解底层网络技术的协议
  4. 工作在OSI模型的会话层,可以为遵从RPC协议的应用层协议提供端口注册功能
  5. 事实上,有很多服务NFS/NIS都可以向rpc来注册端口
  6. RPC使用网络端口111来监听客户端请求

RPC协议模型:

在这里插入图片描述

RPC工作过程:

在这里插入图片描述

案例1: 基于NFS搭建web后端NAS存储
架构:
在这里插入图片描述

用户访问web功能的时候,都会访问我们的负载均衡服务器loadblance(负载均衡知识点暂时不用关心)
负载均衡通常会使用nginx+haproxy来部署,负载均衡服务器将会把这些请求分不发给各个web服务器,
比如说假设我们用户请求了index.html这个界面,假设每一台服务器都需要放一个完整的网站的话,造成了资源的极大浪费,我们可以让web server去我们的nas存储服务器上来读取这个index.html。这样可以大大降低服务器成本,运维成本(修改数据会牵一发而动全身)
配置命令:
首先两台设备都关闭防火墙,关闭selinux

[root@centos7-client ~]# systemctl stop firewalld.service 
[root@centos7-client ~]# systemctl disable  firewalld.service 
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@centos7-client ~]# setenforce 0

3台客户端也就是webserver安装并开启httpd功能
[root@centos7-client ~]# yum install  -y httpd
[root@centos7-client ~]# systemctl start httpd

准备nas端,也就是NFS服务器

[root@centos7-server ~]# yum install  -y  nfs-utils     //安装NFS服务
接下来服务器端创建共享目录 写入web主页
[root@centos7-server ~]# mkdir  /webdata
[root@centos7-server ~]# vim  /webdata/index.html
[root@centos7-server ~]# cat  /webdata/index.html 
<h1>今天你好好学习了吗,是不是睡着了? </h1>
接下来配置nfs服务
[root@centos7-server ~]# vim   /etc/exports
[root@centos7-server ~]# cat  /etc/exports
/webdata     192.168.40.0/24(rw)
接下来开启nfs服务
[root@centos7-server ~]# systemctl start nfs-server
[root@centos7-server ~]# systemctl enable nfs-server

接下来在客户端上也要安装nfs服务,并且查看可以挂载的资源

[root@centos7-client ~]# yum install  -y nfs-utils
[root@centos7-client ~]# showmount -e 192.168.40.205
Export list for 192.168.40.205:
/webdata 192.168.40.0/24

接下来我们在客户端进行nfs挂载

[root@centos7-client ~]# mount  -t  nfs    192.168.40.205:/webdata        /var/www/html
[root@centos7-client ~]# df
Filesystem              1K-blocks    Used Available Use% Mounted on
/dev/mapper/centos-root  17811456 1186120  16625336   7% /
devtmpfs                  1918648       0   1918648   0% /dev
tmpfs                     1930744       0   1930744   0% /dev/shm
tmpfs                     1930744   11856   1918888   1% /run
tmpfs                     1930744       0   1930744   0% /sys/fs/cgroup
/dev/nvme0n1p1            1038336  148452    889884  15% /boot
tmpfs                      386152       0    386152   0% /run/user/0
192.168.40.205:/webdata  17811456 1368576  16442880   8% /var/www/html

挂载完成后我们只需要用浏览器来访问webserver就可以了

NFS配置参数:
在这里插入图片描述上面的配置参数,是写在 /etc/exports

自动挂载 autofs
可以使用autofs服务按需要挂载外围设备,nfs共享等,并且会在空闲5分钟后自动卸载
软件包:autofs
服务文件:/usr/lib/systemd/system/autofs.service
配置文件:/etc/auto.master
配置文件的格式
自动挂载资源有两种格式

  1. 相对路径法: 将mount point 路径分成dirname 和basename 分别配置,可能会影响现有的目录结构
  2. 绝对路径法:直接匹配全部绝对路径名称,不会影响本地目录结构

相对路径法:
/etc/auto.master格式:
挂载点的dirname 指定一个目录的配置文件路径
指定目录配置文件格式:
挂载点的basename 挂载选项 选项设备

vim  /etc/auto.master
/misc   /etc/auto.misc
vim    /etc/auto.misc
cd              -fstype=iso9660,ro,nosuid,nodev     :/dev/cdrom

绝对路径法:
/etc/auto.master格式:
/- 指定配置文件路径
指定路径配置文件格式:
绝对路径 挂载选项 选项设备
vim /etc/aoto.master
/- /etc/auto.nfs
vim /etc/auto.nfs
/rhome/ldapsuer0 -rw 172.25.250.11:/rhome/ldapuser0

案例2:将NFS共享目录通过autofs发布出来,作为远程主机的家目录
在这里插入图片描述环境准备:将node1中的家目录共享出来,node登录这个用户的时候,看到家目录下的文件是一致的
配置命令:

  1. NFS服务器创建用户和相应的家目录,将用户的家目录共享
[root@centos7-server ~]# mkdir    /data
[root@centos7-server /]# useradd -d   /data/luxingjun      luxingjun
[root@centos7-server /]# id  luxingjun
uid=1002(luxingjun) gid=1002(luxingjun) groups=1002(luxingjun)
[root@centos7-server /]# vim  /etc/exports.d/test.exports 
/data/luxingjun       *(rw,anonuid=1002,anongid=1002,all_squash)
[root@centos7-server /]# systemctl restart nfs-server
  1. nfs客户端实现autofs
[root@centos7-client ~]# showmount -e 192.168.40.205
Export list for 192.168.40.205:
/data/luxingjun 
*/webdata   192.168.40.0/24
[root@centos7-client ~]# yum install  -y autofs
[root@centos7-client etc]# vim /etc/auto.master
/data   /etc/auto.home
[root@centos7-client etc]# vim  /etc/auto.home 
*        -fstype=nfs,vers=3      192.168.40.205:/data/luxingjun
接下来我们在客户端上增加用户luxingjun 注意一定要指定uid是1002
[root@centos7-client etc]# mkdir /data
[root@centos7-client etc]# useradd -d   /data/luxingjun    -u 1002   luxingjun
接下来我们手动开启autofs服务
[root@centos7-client etc]# systemctl start autofs    
登录验证
[root@centos7-client etc]# su - luxingjun
Last login: Thu Feb 17 21:22:53 EST 2022 on pts/0
[luxingjun@centos7-client ~]$ touch 123.txt

接下来我们回到服务器端

[root@centos7-server luxingjun]# su - luxingjun 
Last login: Thu Feb 17 21:20:44 EST 2022 on pts/0
[luxingjun@centos7-server ~]$ ll
total 0
-rw-rw-r--. 1 luxingjun luxingjun 0 Feb 17 21:25 123.txt

验证表明此时多系统上的用户luxingjun已经完成了家目录共享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值