原理图:php
假如要是A上面的NFS服务停掉了,可是B和C还在挂载着A分享的分区,就不能够正常工做了,因为B和C上面的进程是d(不可中断进程),一旦A中止了B和C必定会出问题,也不能够服务既不能够重启,也不能够关闭,就会把系统整挂掉。因此NFS必定不能够随便重启! 若是必须重启怎么办?先把B和C上面的目录卸载下来!
exportfs 这个命令能够直接让配置文件直接生效,无需在重启服务,在NFS服务上面是不能随意的重启nfs服务的,如要重启服务必需要把客户端挂载点给卸载以后在重启)mysql
[root@chy01 ~]# exportfs -arv exporting 192.168.212.0/24:/home/nfstestdir (-a 所有挂载或者所有卸载,-r从新挂载,-u卸载一个目录,-v显示共享目录 [root@chy01 ~]# vim /etc/exports /tmp 192.168.212.10/24(rw,sync,no_root_squash) [root@chy01 ~]# exportfs -arv exporting 192.168.212.10/24:/tmp exporting 192.168.212.0/24:/home/nfstestdir (exportfs执行操做)
客户端进行验证sql
[root@chy ~]# showmount -e 192.168.212.11 Export list for 192.168.212.11: /tmp 192.168.212.10/24 /home/nfstestdir 192.168.212.0/24 (验证发现已经共享了/tmp目录) [root@chy ~]# mount -t nfs 192.168.212.11:/tmp/ /mnt/ (并挂载此目录) [root@chy mnt]# touch 111 (建立一个文件) [root@chy01 ~]# ls /tmp 111 mysqlbak.sql test.com.log-20170814 123.111 mysql.sock test.com.log-20170815 2.333 percona-version-check test.com.log-20170821 chy.sock php-fcgi.sock test.com.log-20170822 mysq_all.sql systemd-private-0e07ab8c0cb54a38ad0e2a7be3f07bec-vmtoolsd.service-VAY6Nu user.sql mysql2.sql test.com.log (服务端能够看到有111的目录)
nfs会出现客户端文件属主属组nobody,这个在NFS的4版本和centos6的系统上会出现此问题。客户端挂载共享目录后,无论是root用户仍是普通用户,建立新文件时属主、属组为nobody
为解决此问题有两种方法以下:vim
[root@chy 2]# mount -t nfs -o nfsvers=3 192.168.212.11:/home/nfstestdir /mnt/2 (-o 指定nfsvers的版本为3) [root@chy 2]# mount -t nfs -oremount,nfsvers=3 192.168.212.11:/home/nfstestdir /mnt/2 (-oremount 从新挂载)
还有一种方法以下:(客户端与服务端都要操做)centos
vim /etc/idmapd.conf // 把“#Domain = local.domain.edu” 改成 “Domain = xxx.com” (这里的xxx.com,随意定义吧),而后再重启rpcidmapd服务 这里的rpcidmapd服务是针对centos6的,若是是centos7就重启nfs服务)