假如要是A上面的NFS服务停掉了,但是B和C还在挂载着A分享的分区,就不可以正常工作了,由于B和C上面的进程是d(不可中断进程),一旦A停止了B和C一定会出问题,也不可以服务既不可以重启,也不可以关闭,就会把系统整挂掉。所以NFS一定不可以随便重启! 如果必须重启怎么办?先把B和C上面的目录卸载下来!
umount /mnt
如上这种方法只适合挂载了少量的机器,如果挂载的机器很多怎么办呢?
常用选项:
在服务器端操作:
[[email protected]02 ~]# exportfs -avr
exporting 192.168.59.0/24:/home/nfssharedir
这样就可以让服务器直接生效,不需要再次重启nfs服务,也不会对客户端造成之前所说的错误!
[[email protected]02 ~]# vi /etc/exports
/home/nfssharedir 192.168.59.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
/tmp 192.168.59.131(rw,sync,no_root_squash)
针对59.131这个主机分享一个tmp目录
[[email protected]02 ~]# exportfs -avr
[[email protected]03 ~]# showmount -e 192.168.59.130
Export list for 192.168.59.130:
/home/nfssharedir 192.168.59.0/24
/tmp 192.168.59.131
在没有重启nfs服务的情况,正常的看到了挂载的目录。
再次挂载:
[[email protected]03 ~]# mount -t nfs 192.168.59.130:/tmp /tmp/zhdya/
[[email protected]03 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 41G 4.7G 37G 12% /
devtmpfs 479M 0 479M 0% /dev
tmpfs 489M 0 489M 0% /dev/shm
tmpfs 489M 6.7M 482M 2% /run
tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sda1 197M 109M 88M 56% /boot
tmpfs 98M 0 98M 0% /run/user/0
192.168.59.130:/home/nfssharedir 41G 4.4G 37G 11% /mnt
192.168.59.130:/tmp 41G 4.4G 37G 11% /tmp/zhdya
两个分享的目录已经正常挂载!
[[email protected]03 ~]# vim /tmp/zhdya/asd.txt
[[email protected]03 ~]# ls -l /tmp/zhdya/asd.txt
-rw-r--r-- 1 root root 41 8月 24 16:10 /tmp/zhdya/asd.txt
我们发现是root权限,这个是因为咱们刚刚使用的no_root-squash
我们在使用CentOS 6 + NFS 4的时候,我们在分享一个目录且权限设置为no_root_squash,客户端看到的权限不是root,却是nobody!这个不是设置错误,是软件本身自带的BUG。
[[email protected]03 ~]# mount -t nfs -o,nfsvers=3 192.168.59.130:/tmp /tmp/zhdya/
vim /etc/idmapd.conf
把“#Domain = local.domain.edu” 改为 “Domain = xxx.com” (这里的xxx.com,随意定义吧),然后再重启rpcidmapd服务