本文介绍在CentOS 7上配置NFSv3和NFSv4的具体步骤,唯一的条件是你应该安装CentOS 7服务器和数据目录以通过NFS导出到其它服务器,安装请参考在VMware中安装CentOS操作系统教程。

第1步:安装NFS服务器
使用以下命令在CentOS 7上安装nfs-utils软件包:
# yum -y install nfs-utils
第2步:配置用于NFS的域(可选)
# vim /etc/idmapd.conf
Domain = computingforgeeks.com
第3步:配置NFS导出
NFS导出在文件/etc/exports下配置,/etc/exports文件控制将哪些文件系统导出到远程主机并指定选项,它遵循以下规则:
注释以井号(#)开头。
默认情况下会忽略空行。
每个主机的选项必须直接放在主机标识符后面的括号中,而主机和第一个括号之间没有任何空格。
每个导出的文件系统都应该在各自的行上。
授权主机列表需要用空格字符分隔。
长行可以用反斜杠(\)包装。
导出的文件系统的条目具有以下结构:
export host(options)
使用的变量是:
export - >正在导出的目录
host - >共享导出的主机或网络
options - >用于主机的选项
对于具有不同选项的多个主机,语法为:
export host1(options1) host2(options2) host3(options3)
NFS导出默认选项是:
ro:导出的文件系统是只读的,远程主机不能对文件系统上共享的文件进行任何更改,要允许主机同时进行读取和写入,请指定rw选项。
sync:对于此选项,NFS服务器不会在先前请求所做的更改写入磁盘之前回复请求,要改为启用异步写入,请指定选项async。
root_squash:这可以防止远程连接的root用户拥有root权限,相反,NFS服务器将为它们分配用户ID nfsnobody,这有效地“压缩”远程root用户对最低本地用户的能力,防止在远程服务器上可能的未授权写入,要禁用root压缩,请指定no_root_squash。
要压缩每个远程用户(包括root用户),请使用all_squash,要指定NFS服务器应从特定主机分配给远程用户的用户和组ID,请分别使用anonuid和anongid选项,如下所示:
export host(anonuid=uid,anongid=gid)
uid和gid分别是用户ID号和组ID号。
wdelay:如果它怀疑另一个写请求即将发生,则通过延迟写入磁盘来减少磁盘写入开销,启用默认同步时,可以使用no_wdelay禁用此功能。
subtree_check:此选项启用子树检查,可以使用no_subtree_check禁用它。
配置行的示例如下:
/mnt/data 192.168.1.0/24(rw,no_root_squash)
其中/mnt/data是导出的目录,192.168.1.0/24是允许以读/写权限访问它的网络,并且没有root压缩,指定的网络可以替换为单个IP地址,也可以使用*进行全局访问。
请注意,你必须显式覆盖每个导出的文件系统的每个默认值,例如,如果未指定rw选项,则导出的文件系统将以只读方式共享。
有关导出选项的更多信息,请参阅man exportfs。
第4步:为NFS配置防火墙
下一步是在防火墙上打开NFS服务所需的端口。
对于NFSv4,请使用以下命令:
# firewall-cmd --add-service=nfs --permanent
# firewall-cmd --reload
对于NFSv3,需要通过定义xml文件来添加额外的端口,这需要放在/etc/firewalld/services/目录下:
运行:cat /etc/firewalld/services/nfs.xml
NFS
NFS service
然后在防火墙上添加服务:
# firewall-cmd --add-service=nfs --permanent
# firewall-cmd --reload
第5步:启动并启用NFS服务
现在一切都已配置好,你应该已准备好启动该服务:
# for i in rpcbind nfs-server; do
systemctl start $i
systemctl enable $i
done
当你启动nfs服务时,/usr/sbin/exportfs命令启动并读取此文件,将控制权传递给实际安装过程的rpc.mountd(如果是NFSv3),然后传递给rpc.nfsd,然后文件系统可用于远程用户,它将导出的文件系统写入/var/lib/nfs/etab,可以使用以下命令查看:
# cat /var/lib/nfs/etab
第6步:发现NFS导出
有两种方法可以发现NFS服务器导出的文件系统,首先,在任何支持NFSv3的服务器上,使用showmount命令(showmount命令_Linux showmount命令使用详解:显示NFS服务器加载的信息):
$ showmount -e server
例如:
$ showmount -e localhost
Export list for localhost:
/mnt/test *
/mnt/data 192.168.1.0/24
对于仅支持NFSv4的服务器,请mount /并检查内容:
# mount serverip:/ /mnt/
# cd /mnt/
# ls
第7步:在客户端上挂载导出的文件系统
客户端可以是支持NFSv3或NFSv4的任何操作系统,对于Debian/Ubuntu,请安装以下打包的:
$ sudo apt-get install rpcbind nfs-common
对于CentOS 7,安装nfs-utils:
$ sudo yum -y install nfs-utils
$ sudo systemctl start rpcbind
$ sudo systemctl enable rpcbind
mount -t 192.168.1.10:/mnt/data /data
要指定NFS版本,请使用-o选项
# mount -t nfs -o vers=4 192.168.1.10:/mnt/data /data
或者:
# mount -t nfs -o vers=3 192.168.1.10:/mnt/data /data
要使此持久化,需要修改/etc/fstab文件,NFSv3的安装如下所示在/etc/fstab上:
192.168.1.10:/mnt/data /data nfs defaults,vers=3 0 0
你可以看到vers=3选项用于指定我们要挂载NFSv3,也可以指定其他支持的选项,如下所示:
192.168.1.10:/mnt/data /data nfs vers=3,proto=tcp,hard,intr,rsize=32768,wsize=32768,noatime 0 0
创建一个挂载点并挂载它:
# mkdir /data
# mount -a
# df -hT | grep /data
192.168.1.10:/data nfs 200G 175G 26G 88% /data
相关主题