Linux中如何部署nfs服务
NFS:Network File System,网络文件系统,通过网络(一般指局域网)让不同主机可以共享文件或目录。NFS是使用C/S架构,由一个或多个客户端和一个服务端组成。服务端向其他计算机提供对文件系统的访问,其过程称为输出。NFS客户端对共享文件系统进行访问时,把它们从NFS服务器中“输送”出来。NFS传输协议用于服务器和客户机之间文件访问和共享的通信,从而使客户机远程地访问保存在服务端存储设备上的数据。
1. NFS的优点
实现数据的共享服务
便于管理相关数据
节省服务器磁盘开销
2. 部署流程
2.1 服务端部署
2.1.1 软件安装,检查是否安装 nfs-utils 和 rpcbind 软件,若未安装,进行安装
[root@template ~]# rpm -qa | grep -E "nfs|rpcbind" #<==== 检查发现未安装 libnfsidmap-0.25-19.el7.x86_64 [root@template ~]# yum install nfs-utils rpcbind -y #<==== 安装软件
2.1.2 编写配置文件
[root@template ~]# vim /etc/exports [root@template ~]# cat /etc/exports /data 172.16.1.0/24(rw,sync)
2.1.3 创建存储目录,并修改属主和属组信息
[root@template ~]# mkdir /data [root@template ~]# chown -R nfsnobody.nfsnobody /data [root@template ~]# ll -d /data drwxr-xr-x 2 nfsnobody nfsnobody 6 Nov 8 18:04 /data
2.1.4 启动服务程序,先启动rpc服务,在启动nfs服务
[root@template ~]# systemctl start rpcbind [root@template ~]# systemctl enable rpcbind [root@template ~]# systemctl start nfs [root@template ~]# systemctl enable nfs Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
2.2 客户端部署
2.2.1 安装软件
[root@oracle12c ~]# rpm -qa | grep nfs libnfsidmap-0.25-19.el7.x86_64 [root@oracle12c ~]# yum install nfs-utils -y
2.2.2 客户端进行挂载
[root@oracle12c ~]# mkdir /data [root@oracle12c ~]# mount -t nfs 172.16.1.210:/data /data [root@oracle12c ~]# df -h Filesystem Size Used Avail Use% Mounted on 172.16.1.210:/data 141G 46G 96G 33% /data
3. NFS服务工作原理
3.1 服务端
步骤一:启动rpc服务,开启111端口
步骤二:启动nfs服务
步骤三:实现nfs服务进程和端口信息的注册
3.2 客户端
步骤一:执行挂载命令进行远程挂载
步骤二:可以实现数据远程传输存储
补充:如何查看nfs服务进程和端口注册信息
[root@template ~]# rpcinfo -p localhost program vers proto port service 100000 4 tcp 111 portmapper 100000 3 tcp 111 portmapper 100000 2 tcp 111 portmapper 100000 4 udp 111 portmapper 100000 3 udp 111 portmapper 100000 2 udp 111 portmapper 100024 1 udp 35964 status 100024 1 tcp 35527 status 100005 1 udp 20048 mountd 100005 1 tcp 20048 mountd 100005 2 udp 20048 mountd 100005 2 tcp 20048 mountd 100005 3 udp 20048 mountd 100005 3 tcp 20048 mountd 100003 3 tcp 2049 nfs 100003 4 tcp 2049 nfs 100227 3 tcp 2049 nfs_acl 100003 3 udp 2049 nfs 100003 4 udp 2049 nfs 100227 3 udp 2049 nfs_acl 100021 1 udp 34187 nlockmgr 100021 3 udp 34187 nlockmgr 100021 4 udp 34187 nlockmgr 100021 1 tcp 45097 nlockmgr 100021 3 tcp 45097 nlockmgr 100021 4 tcp 45097 nlockmgr
4. 企业中如何配置NFS配置文件的权限参数
4.1 查看NFS默认参数
[root@template ~]# cat /var/lib/nfs/etab /data 172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,secure,root_squash,no_all_squash)
4.2 企业中一般如何设置访问权限参数
为保障存储服务器的安全性,"root_squash" 和 "no_all_squash" 参数需要配置,此配置亦为默认配置。
root_squash root用户访问存储服务器是转换为默认用户nfsnobody身份进行操作存储服务器共享目录中的数据
no_all_squash 普通用户访问存储服务器身份不进行转换,也就是说除了nfsnobody用户可以在存储服务器上存储数据外,其余普通用户无权操作。
4.3 如何修改映射用户(即访问nfs服务器转换后的用户,默认为nfsnobody)
anonuid=xxx(uid)
anongid=xxx(gid)
以上两个参数可以设置映射用户
修改映射用户:www=1002 vim /etc/exports /data 172.16.1.0/24(rw,sync,anonuid=1002,anongid=1002)
echo "mount -t nfs 172.16.1.x:/data /mnt" >> /etc/rc.local chmod u+x /etc/rc.d/rc.local
5.2 方法二
编辑/etc/fstab文件,利用fstab文件进行开机自动挂载
6. NFS服务重启后,为什么客户端操作时会显得速度很慢?
原因:nfs服务重启方式不正确
restart 和 reload 的区别:
restart:强制全开所有用户连接,用户感受不太好,不建议
reload:平滑重启,强制断开没有数据传输的连接,推荐