NFS服務全稱是NetWork File System:網絡文件系統,最先有sun公司開發的,4.0版本由Netapp公司開發,是基於RPC遠程過程調用(Remote Procedure Call)協議的服務。linux
NFS原理圖:網絡
當A、B、C三臺機器訪問同一個文件的時候,必須保證獲得的文件是一致的。app
例如:A機器上面的sdb1經過NFS服務共享給B和C機器,這樣實現負載均衡,A上更新了文件,B和C機器可以馬上看到;B或者C機器更新了文件,A機器也能立馬收到。負載均衡
準備兩臺機器:A機器爲服務端、B機器爲客戶端。async
A機器安裝nfs-utils、rpcbind:ui
yum install -y nfs-utils rpcbind
B機器安裝nfs-utils:code
yum install -y nfs-utils
編輯配置文件:/etc/exports,增長几行配置blog
/home/nfstestdir //要分享的目錄 IP 192.168.87.0/24 (rw,sync,all_squash,anonuid=1000,nongid=1000) //指定可以訪問共享目錄的ip和相關的權限
建立分享的目錄:該權限爲777ip
mkdir /home/nfstestdir chmod 777 /home/nfstestdir
啓動rpcbind服務:內存
systemctl start rpcbind //111端口
啓動nfs:
systemctl start nfs
設置開機啓動nfs:
systemctl enable nfs
/etc/exports,增長几行配置,其中訪問權限:
rw:讀寫 ro:只讀 sync:同步模式,內存數據實時寫入磁盤,會下降磁盤效率 async:非同步模式,隔一段時間才寫入磁盤,可是容易丟失數據 no_root_squash:客戶端掛載共享目錄後,root用戶不收約束 root_squash:客戶端上的root用戶被限定爲某個普通用戶 all_squash:客戶端上的全部用戶,都被限定爲一個普通用戶 anonuid、anongid和squash一塊兒使用,定義被限定爲指定哪一個普通用戶的uid和gid
客戶端B機器的配置: 鏈接服務端A機器:
show mount -e 192.168.87.128 //服務端的ip
此時若是報錯:可能有如下緣由
一、A機器的nfs服務沒啓動 二、網絡不通,能夠telnet一下 三、A和B的防火牆、selinux其中一個沒有關閉 systemctl stop firewall setenforce 0
再鏈接一下A機器服務端:就能看到A機器上的分享目錄了
shwo mount -e 192.168.87.128
掛載A機器上的分享目錄:
mount -t nfs 192.168.87.128:/home/nfstestdir /mnt/ df -h //查看是否掛載成功
而後B機器就可以在/mnt/目錄 下操做A機器上的分享目錄了
在B機器上,建立一個文件:
touch a ls -l a //顯示的文件a的主和組,是uid=1000,gid=1000的用戶和組。便是A機器上配置文件裏定義的anonudi=1000,anongid=1000的用戶。