原理圖: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服務)