本文详细讲解了NFS实验的几个步骤。
NFS 服务的实现依赖于 RPC (Remote Process Call,远端过程调用)机制,以完成远程到本地的映射过程。在Centos 7系统中,需要安装 nfs-utils、rpcbind 软件包来提供 NFS 共享服务,前者用于 NFS 共享发布和访问,后者用于 RPC 支持。手动加载 NFS 共享服务时,应该先启动 rpcbind,再启动 nfs。
rpm -q rpcbind nfs-utils #查询是否安装
yum install -y nfs-utils rpcbind #安装nfs和rpc的软件包
systemctl start nfs #开启nfs服务
systemctl start rpcbind #开启rpcbind服务
systemctl enable nfs #开机自启nfs服务
systemctl enable rpcbind #开机自启rpcbind服务
rpm -q rpcbind nfs-utils #查询是否安装
yum install -y nfs-utils rpcbind #安装nfs和rpc的软件包
NFS 的配置文件为 /etc/exports ,文件内容默认为空(无任何共享)。
在exports 文件中设置共享资源时,记录格式为“目录位置 客户机地址(权限选项)。
例如,将文件夹 /opt/web 共享给 192.168.109.0/24网段使用,允许读写操作,配置如下
mkdir /opt/web
vim /etc/exports
/opt/web 192.168.109.0/24(rw,sync,no_root_squash)
其它常用选项:
举例:
其中客户机地址可以是主机名 ID 地址、网段地址,允许使用 “*” “?” 通配符;权限选项中的 rw 表示允许读写(ro为只读),sync表示同步写入,no_root_squash表示当客户机以 root 身份访问时赋予本地 root 权限(默认是root_squash,将为 nfsnobody 用户降权对待)。
当需要将同一个目录共享给不同的客户机,且分配不同的权限时,只要以空格隔指定多个“客户机(权限选项)”即可。
例如,以下操作将 /var/ftp/public 目录共享给两个客户机,并分别给予只读、读写权限。
[root@localhost ~]# vim /etc/exports
/var/ftp/public 192.168.109.11(ro) 192.168.109.12(rw)
需要先启动rpc服务,因为nfs要向rpc注册端口
systemctl start nfs #开启nfs服务
systemctl start rpcbind #开启rpcbind服务
systemctl enable nfs #开机自启nfs服务
systemctl enable rpcbind #开机自启rpcbind服务
netstat -anpu | grep rpc #过滤出rpc所有UDP连接信息
rpcinfo -p localhost #查看nfs向rpc注册的端口信息
exports -v #验证结果
exports -r #刷新结果
showmount -e localhost #验证共享
yum install -y nfs-utils rpcbind
showmount -e 192.168.109.11 #客户端验证共享
yum install -y httpd
mount -t nfs 192.168.109.11:/opt/web /var/www/html #将共享目录挂载到网页目录
systemctl start httpd #启动web服务
curl 127.0.0.1 #访问主页内容
echo "到此一游" >> /var/www/html/index.html #客户端修改主页文件(服务端会同步)
以 root 用户身份执行 mount 操作,将 NFS 服务器共享的 /opt/web目录挂载到本地目录 /var/www/html 。与挂载本地文件系统不同的是,设备位置处应指出服务器地址。
mount -t nfs 192.168.109.11:/opt/web /var/www/html
修改 /etc/fstab 配置文件,加入 NFS 共享目录的挂载设置(文件系统类型为nfs)。
挂载参数建议添加_netdev(设备需要网络)
若添加 soft、intr 参数可以实现软挂载,允许在网络中断时放弃挂载。这样客户机就可以在每次开机后自动挂载 NFS 共享资源了。
vim /etc/fstab
192.168.109.11:/opt/web /var/www/html nfs default,_netdev 0 0
systemctl stop nfs #服务器端模拟nfs挂掉
umount /var/www/html #客户端卸载时会卡住
umount -lf /var/www/html #加lf参数成功卸载
其他nfs文件:
/var/lib/nfs/etab #记录NFS分享出来的目录的完整权限设定值
/var/lib/nfs/xtab #记录曾经登录过的客户端信息
本文内容主要讲了NFS的安装步骤,先安装nfs和rpcbind软件,然后修改配置文件设置共享,再创建共享目录,最后开启服务,客户端就可以访问共享目录了。