NFS是Network File System的縮寫vim
NFS最先由Sun公司開發,分2,3,4三個版本,2和3由Sun起草開發,4.0開始Netapp公司參與並主導開發,最新爲4.1版本 NFS數據傳輸基於RPC協議,RPC爲Remote Procedure Call的簡寫。app
NFS應用場景是:A,B,C三臺機器上須要保證被訪問到的文件是同樣的,A共享數據出來,B和C分別去掛載A共享的數據目錄,從而B和C訪問到的數據和A上的一致dom
在服務端安裝 nfs-utils、rpcbind 這兩個包 yum install -y nfs-utils rpcbindasync
在客戶端安裝 nfs-utils 這一個包 yum install -y nfs-utils ui
在服務端編輯 /etc/exports 這個文件 vim /etc/exportsspa
寫入 /home/nfstestdir 192.168.130.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)內存
建立須要共享的目錄並給予合適的權限ci
查看服務端監聽端口發現rpcbind服務已啓動 若是沒有啓動用 systemctl start rpcbind 命令來啓動開發
查看客戶端監聽端口發現rpcbind服務已啓動 若是沒有啓動用 systemctl start rpcbind 命令來啓動rpc
啓動服務端nfs服務 systemctl start nfs
服務端讓nfs服務 開機啓動 systemctl enable nfs
rw 讀寫 ro 只讀
sync 同步模式,內存數據實時寫入磁盤
async 非同步模式
no_root_squash 客戶端掛載NFS共享目錄後,root用戶不受約束,權限很大
root_squash 與上面選項相對,客戶端上的root用戶收到約束,被限定成某個普通用戶
all_squash 客戶端上全部用戶在使用NFS共享目錄時都被限定爲一個普通用戶
anonuid/anongid 和上面幾個選項搭配使用,定義被限定用戶的uid和gid
關閉服務端和客戶端的防火牆和SELinux systemctl stop firewalld setenforce 0
掛載
進入到客戶端mnt目錄並建立一個新的文件
查看服務端/home/nfstestdir/目錄下也有相同的文件
可是文件的 屬主、屬組 都不同 這是由於咱們配置/etc/exports這個文件時 anonuid=1000,anongid=1000 這兩個參數限定的
anonuid=1000 限定用戶uid爲1000的用戶
anongid=1000 限定用戶gid爲1000的組
經常使用選項
-a 所有掛載或者所有卸載
-r 從新掛載
-u 卸載某一個目錄
-v 顯示共享目錄
vim /etc/exports
增長 /tmp/ 192.168.130.116(rw,sync,no_root_squash) 服務端
exportfs -arv 卸載所有並馬上重載 服務端
showmount -e 192.168.130.116 客戶端
mount -t nfs 192.168.130.116:/tmp/ /mnt/ 客戶端
NFS 4版本會有該問題
客戶端掛載共享目錄後,無論是root用戶仍是普通用戶,建立新文件時屬主、屬組爲nobody
客戶端掛載時加上 -o nfsvers=3
客戶端和服務端都須要
vim /etc/idmapd.conf //
把「#Domain = local.domain.edu」 改成 「Domain = xxx.com」 (這裏的xxx.com,隨意定義吧),而後再重啓rpcidmapd服務