NFS(Network File System)即網絡文件系統,是FreeBSD支持的文件系統中的一種,它容許網絡中的計算機之間經過TCP/IP網絡共享資源。在NFS的應用中,本地NFS的客戶端應用能夠透明地讀寫位於遠端NFS服務器上的文件,就像訪問本地文件同樣。NFS的數據傳輸基於RPC(remote procedure call)協議。mysql
A,B,C三臺機器上須要被訪問到的文件是同樣的,A共享數據出來,B和C分別取掛載A共享的數據目錄,從而B和C訪問到的數據和A上的一致。sql
準備兩臺虛擬機,一臺做爲服務端,一臺做爲客戶端。vim
IP:192.168.8.130服務器
[root@1 ~]# yum install -y nfs-utils rpcbind
[root@1 ~]# vim /etc/exports /home/nfstestdir 192.168.8.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000) #指定要進行分享的目錄;指定要共享該目錄的機器 建立分享目錄並制定權限: [root@1 ~]# mkdir /home/nfstestdir [root@1 ~]# chmod 777 /home/nfstestdir
在yum安裝完成後,系統會自動啓動rpcbind服務(在服務端進程名稱爲systemd),默認監聽的端口時111端口。網絡
[root@1 ~]# systemctl start nfs 將NFS服務加入開機啓動項: [root@1 ~]# systemctl enable nfs
IP:192.168.8.132app
[root@1 ~]# yum install -y nfs-utils
[root@1 ~]# showmount -e 192.168.8.130 clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
報錯: 沒法鏈接到服務端機器(網絡不通)!
解決辦法:async
解決完上述錯誤後再次執行命令:工具
[root@1 ~]# showmount -e 192.168.8.130 Export list for 192.168.8.130: /home/nfstestdir 192.168.8.0/24
即,客戶端能夠正常訪問服務端機器。測試
[root@1 ~]# mount -t nfs 192.168.8.130:/home/nfstestdir /mnt/ [root@1 ~]# df -h 文件系統 容量 已用 可用 已用% 掛載點 192.168.8.130:/home/nfstestdir 18G 7.5G 11G 42% /mnt
在客戶機掛載目錄建立文件:ui
[root@1 ~]# cd /mnt/ [root@1 mnt]# ll 總用量 0 -rw-r--r-- 1 mysql mysql 0 8月 23 19:50 test123
查看服務端共享目錄:
[root@1 ~]# ll /home/nfstestdir/ 總用量 0 -rw-r--r--. 1 mysql mysql 0 8月 23 19:50 test123
即,實現了同步共享!
[root[@localhost](https://my.oschina.net/u/570656) ~]# vim /etc/exports /home/nfstestdir 192.168.8.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000) #指定要進行分享的目錄;指定要共享該目錄的機器 #rw 讀寫;ro 只讀 #sync 同步模式,內存數據實時寫入磁盤 #async 非同步模式 #no_root_squash 客戶端掛載NFS服務後,root用戶不受約束,權限很大 #root_squash 與上面選項相對,客戶端上的root用戶受到約束,被限定成某個普通用戶 #all_squash 客戶端上全部用戶在使用NFS共享目錄時都被限定爲一個普通用戶 #anonuid/anongid 和上面幾個選項搭配使用,定義被限定用戶的uid和gid