NFS介紹
NFS(Network File System)即網絡檔案系統,是FreeBSD支援的檔案系統中的一種,它允許網絡中的計算機之間通過TCP/IP網絡共享資源。在NFS的應用中,本地NFS的用戶端應用可以透明地讀寫位于遠端NFS伺服器上的檔案,就像通路本地檔案一樣。NFS的資料傳輸基于RPC(remote procedure call)協定。
應用場景
A,B,C三台機器上需要被通路到的檔案是一樣的,A共享資料出來,B和C分别取挂載A共享的資料目錄,進而B和C通路到的資料和A上的一緻。
NFS服務端安裝配
伺服器端:192.168.3.74 用戶端:192.168.3.83
伺服器端操作:
1、[root@centos7 ~]# yum install -y nfs-utils rpcbind
2、[root@centos7 ~]# vim /etc/exports
/home/nfstestdir 192.168.3.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
#/home/nfstestdir :需要共享挂載的目錄
#192.168.8.0/24:共享網段的權限,也可以是IP
#rw:讀寫;sync:(同步)将資料同步寫入記憶體緩沖區與磁盤中,效率低,但可以保證資料的一緻性;
async:(異步)将資料先儲存在記憶體緩沖區中,必要時才寫入磁盤;
all_squash:所有通路使用者都映射為匿名使用者或使用者組(這裡指的/etc/exports定義的使用者);
no_all_squash(預設):通路使用者先與本機使用者比對,比對失敗後再映射為匿名使用者或使用者組;
anonuid=1000,anongid=1000:uid:1000;gid=1000
#no_root_squash 用戶端挂載NFS服務後,root使用者不受限制,權限很大
#root_squash 與上面選項相對,用戶端上的root使用者受到限制,被限定成某個普通使用者
3、
[root@centos7 ~]# mkdir /home/nfstestdir
[root@centos7 ~]# chmod 777 /home/nfstestdir
4、[root@centos7 ~]# systemctl start nfs
用戶端操作:
1、[root@test yum.repos.d]# yum install -y nfs-utils
2、檢視是否有權限連接配接
[root@test yum.repos.d]# showmount -e 192.168.3.74
Export list for 192.168.3.74:
/home/nfstestdir 192.168.8.0/24
3、挂載:
[root@test yum.repos.d]# mount -t nfs 192.168.3.74:/home/nfstestdir /mnt/
4、建立檔案,指定為1000
[root@test mnt]# touch test.log
[root@test mnt]# ll
total 0
-rw-r--r-- 1 1000 1000 0 Nov 20 09:55 test.log
exportfs指令伺服器端的操作
exportfs指令用來管理目前NFS共享的檔案系統清單
-a:全部解除安裝或全部挂載
-r:重新挂載
-u:解除安裝某個目錄
-v:顯示共享目錄
常用組合: exportfs -arv
服務端更改配置檔案後,不重新開機服務,直接執行該指令就可以使更改後的配置檔案生效。
注意: 在重新開機nfs服務之前需要先将所有挂載點解除安裝,否則将發生程式錯誤
NFS用戶端存在的問題
針對NFS4版本在centos6中應用存在如下問題:
用戶端挂載共享目錄後,不管是root使用者還是普通使用者,建立新檔案時屬主、數組為nobody。
解決方法:
方法1:在用戶端進行挂載時加上選項-o nfsvers=3
[root@test ~]# monunt -t nfs -o nfsvers=3 192.168.3.74:/tmp/ /mnt/
如果目錄已經挂載,而又不想解除安裝,執行如下指令:
monunt -t nfs -o remount,nfsvers=3 192.168.3.74:/tmp/ /mnt/
本文轉自 jiekegz 51CTO部落格,原文連結:http://blog.51cto.com/jacksoner/1983401