NFS服务安装配置
yum -y install nfs-utils rpcbind
cat /etc/exports # 编辑配置文件
/data 172.16.1.0/24(rw,sync) # 共享目录
mkdir /data # 创建共享目录
id nfsnobody # NFS服务默认用户
uid=65534(nfsnobody) gid=65534(nfsnobody) groups=65534(nfsnobody)
chown nfsnobody:nfsnobody /data # 修改属主属组
重启服务
systemctl restart rpcbind
systemctl enable rpcbind
systemctl restart nfs
systemctl enable nfs
NFS服务启动时开放的端口是随机的,通过向RPC服务进行注册,实现端口的代理
rpcinfo -p localhost # 查看rpc端口注册信息
program vers proto port service
100000 4 tcp 111 portmapper # rpc服务端口号
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
100005 1 udp 20048 mountd # rpc注册进程信息
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 39789 nlockmgr
100021 3 udp 39789 nlockmgr
100021 4 udp 39789 nlockmgr
100021 1 tcp 41650 nlockmgr
100021 3 tcp 41650 nlockmgr
100021 4 tcp 41650 nlockmgr
客户端配置
yum -y install nfs-utils
showmount -e 172.16.1.31 # 查看是否共享成功
Export list for 172.16.1.31:
/data 172.16.1.0/24
mount -t nfs -o rw 172.16.1.31:/data /mnt # 挂载共享目录
mount -t isoxxx -o ro,loop /src /target
镜像文件挂载
NFS参数配置
cat /var/lib/nfs/etab # 查看nfs配置详细信息
/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)
假设:
用户连接Web服务器,存取数据时用户身份转换为www,Web服务器通过nfs挂载方式挂载共享目录,将数据保存到共享目录/data中,此时数据的属主与属组都是www用户
nfs服务器配置文件设置为 no_all_squash,root_squash
(默认配置) ,数据同步时普通用户身份不进行转换,root用户身份转换为nfsnobody,把共享目录/data属主与属组设置为www用户,此时的nfs服务器提升了安全性,同步数据时只允许www用户进行操作
www用户在不同主机创建时ID号要相同
nfs服务默认转换为哪个用户,依照参数
anonuid=65534,anongid=65534
systemctl enable remote-fs.target
fstab自动挂载nfs共享目录,remote-fs.target 要设置为开机自启