确认服务的安装
$rpm -qa nfs-utils rpcbind
nfs-utils-1.3.0-0.54.el7.x86_64
rpcbind-0.2.0-38.el7.x86_64
复制代码
安装 NFS 服务
#服务端
$yum install -y nfs-utils rpcbind
#客户端
$yum install -y nfs-utils
复制代码
NFS 的配置和使用
新建共享目录
mkdir -p /data/share
赋权限
chmod 777 /data/share
修改配置文件
$vim /etc/exports
/data/share 10.222.77.0/24(rw,sync,insecure,no_subtree_check,no_root_squash)
复制代码参数列表
ro 只读访问
rw 读写访问
sync 所有数据在请求时写入共享
async nfs 在写入数据前可以响应请求
secure nfs 通过 1024 以下的安全 TCP/IP 端口发送
insecure nfs 通过 1024 以上的端口发送
wdelay 如果多个用户要写入 nfs 目录,则归组写入(默认)
no_wdelay 如果多个用户要写入 nfs 目录,则立即写入,当使用 async 时,无需此设置
hide 在 nfs 共享目录中不共享其子目录
no_hide 共享 nfs 目录的子目录
subtree_check 如果共享 /usr/bin 之类的子目录时,强制 nfs 检查父目录的权限(默认)
no_subtree_check 不检查父目录权限
all_squash 共享文件的 UID 和 GID 映射匿名用户 anonymous,适合公用目录
no_all_squash 保留共享文件的 UID 和 GID(默认)
root_squash root 用户的所有请求映射成如 anonymous 用户一样的权限(默认)
no_root_squash root 用户具有根目录的完全管理访问权限
anonuid=xxx 指定 nfs 服务器 /etc/passwd 文件中匿名用户的 UID
anongid=xxx 指定 nfs 服务器 /etc/passwd 文件中匿名用户的 GID
启动 RPC 服务
$service rpcbind start
#或者使用如下命令亦可
$/bin/systemctl start rpcbind.service
#查看 NFS 服务项 rpc 服务器注册的端口列表
$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
复制代码
启动 NFS 服务
#启动 NFS 服务
$service nfs start
#或者使用如下命令亦可
/bin/systemctl start nfs.service
#启动 NFS 服务后 rpc 服务已经启用了对 NFS 的端口映射列表
#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 33745 status
100024 1 tcp 36980 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 38960 nlockmgr
100021 3 udp 38960 nlockmgr
100021 4 udp 38960 nlockmgr
100021 1 tcp 38362 nlockmgr
100021 3 tcp 38362 nlockmgr
100021 4 tcp 38362 nlockmgr
复制代码
查看是否正确加载了/etc/exports
$showmount -e localhost
Export list for localhost:
/data/share 10.222.77.0/24
复制代码
客户端配置
客户端查看服务端可共享信息
#showmount -e 10.222.77.86
Export list for 10.222.77.86:
/data/share 10.222.77.0/2
复制代码
创建共享目录
mkdir -p /share
挂载远端目录到本地服务器
$mount 10.222.77.86:/data/share /share
$df -h | grep 10.222.77.86
Filesystem Size Used Avail Use% Mounted on
10.222.77.86:/data/share 27G 11G 17G 40% /share
复制代码
测试共享目录
...
报错处理
nfs客户端挂载出错 mount.nfs access denied by server while mounting
centos 6 x64 的系统下使用的是NFSv4
修改服务端配置文件
[root@nginx-01 ~]# vim /etc/sysconfig/nfs
#Optional arguments passed to rpc.nfsd. See rpc.nfsd(8)
#Turn off v2 and v3 protocol support
RPCNFSDARGS="-N 2 -N 3"
----->启用
#Turn off v4 protocol support
RPCNFSDARGS="-N 4" ---->启用
复制代码
重启服务
service nfs restart
客户端重新挂载
$mount 10.222.77.86:/data/share /share
$df -h | grep 10.222.77.86
Filesystem Size Used Avail Use% Mounted on
10.222.77.86:/data/share 27G 11G 17G 40% /share
复制代码
功能片段
新增共享目录
服务端
# 修改配置文件
vi /etc/exports
# 重启nfs服务
service nfs restart
# 或刷新配置文件
exportfs -a
复制代码客户端
# 查看远程可挂载点
showmount -e [服务端地址]
# 挂载
mount [服务端地址]:[服务端挂载目录] [客户端映射挂载目录]
# 查看是否挂载成功
df -h | grep [服务端地址]
复制代码
删除挂载点
客户端
# 删除挂载点
umount [客户端映射挂载点]
复制代码
设置开机挂载
待续