NFS文件共享服务器介绍:
NFS可以实现通过网络让不同的操作系统,不同的主机,实现文件共享,且可以将NFS服务器的共享目录挂载至本地的文件系统中。
环境部署:
NFS-server 192.168.182.143
NFS-client 192.168.182.145
一、服务器部署
1、在服务端安装NFS服务组件
执行以下命令:yum install nfs-utils -y
2、编辑NFS配置文件,路径为/etc/exports文件,文件中定义了要发布的目录以及客户端的访问权限等
上图的意思为:将/data/nfs目录发布到nfs共享中,*代表允许所有主机访问,(rw,sync)挂载的参数,rw表示允许挂载后可读可写,sync表示同步的方式为sync
访问控制:
允许某个网段的主机可以访问:将*改为192.168.182.0/24
允许某个IP的主机可以访问:将*改为192.168.182.145
挂载常用参数:
rw #可读可写的权限
ro #只读权限
no_root-squash #客户端使用该共享目录时,以目录所有者的身份运行,如果客户端以root身份使用这个共享目录时,则对该目录行使root权限
root_squash #客户端使用该目录时,以该目录的拥有者身份运行,如果客户端以root身份使用这个共享目录时,则使用者的权限会被压缩为nobody
all_squash #不论客户端使用该目录的身份为何,都会被压缩为nobody
sync #资料同步写入内存与磁盘中
async #资料会先暂存于内存当中,而非直接写入到硬盘
insecure #允许从这台机器过来的非授权访问
3、导出广播发文件,并重启nfs和rpcbind服务,并关闭firewalld和selinux
执行命令:exportfs -r #导出广播文件
systemctl restart nfs #重启nfs服务
systemctl restart rpcbind #重启rpcbind服务
systemctl stop firewalld #关闭防火墙
setenforce 0 #临时关闭selinux
二、客户端部署
1、客户端同样也需要安装nfs组件
执行命令:yum install nfs-utils -y #安装nfs组件
2、启动nfs服务以及关闭防火墙和selinux
执行命令:systemctl start nfs #启动nfs
systemctl start rpcbind #启动rpcbind
systemctl stop firewalld #关闭防火墙
setenforce 0 #关闭selinux
3、查看服务器的发布目录,并执行挂载命令
执行命令:showmount -e 192.168.182.143 #查看NFS发布的共享目录
mount -t nfs 192.168.182.143:/data/nfs/ /mnt #将NFS发布的目录挂载至本地的/mnt目录下
4、在服务器上创建一个文件,然后在客户端的挂载目录进行验证
服务器上发布目录下执行:echo "this is nfs" > test
三、NFS相关优化
1、防火墙配置放过nfs相关服务
执行命令:/usr/bin/firewall-cmd --permanent --zone public --add-service mountd
/usr/bin/firewall-cmd --permanent --zone public --add-service rpc-bind
/usr/bin/firewall-cmd --permanent --zone public --add-service nfs
/usr/bin/firewall-cmd --reload
2、将rpc端口设置成指定端口,编辑配置文件/etc/sysconfig/nfs,在最后添加以下内容
RQUOTAD_PORT=10001
LOCKD_TCPPORT=10002
LOCKD_UDPPORT=10002
MOUNTD_PORT=10003
STATD_port=10004
执行命令:rpcinfo -p
3、客户端挂载优化
noatime #取消更新文件系统上的inode访问时间,提升I/O性能,优化I/O目的。
nodiratime #取消更新文件系统上的directory inode访问时间。
noexec #挂载的这个文件系统要不要执行程序(安全选项)
nosuid #挂载的这个文件系统上面可以可以设置UID(安全选项)
rsize/wsize #读取/写入的区块 大小,这个值可以影响客户端和服务端传输数据的缓冲存储量。
上面的挂载可以设置为:
执行命令:mount -t nfs -o noatime,noatime,noexec,nosuid,soft,timeo=1 192.168.182.143:/data/nfs /mnt #设置挂载参数
nfsstat -m #查询挂载参数