一。簡介
NFS--Network FileSystem,即網絡文件系統,主要功能是讓網絡上的不同操作系統之間共享數據。
遠程服務器端共享出文件或目錄,然後遠羰共享出來的文件或目錄就可通過掛 載的方式掛 接到本的不同操作系統上,最後本地系統就可以方便的使用遠端提代的文件服務。實現數據共享
上圖可以看出,NFS由兩部分組成:NFS客戶端和NFS服務器。
二。實現原理
NFS服務器啓動後,開啓對客戶端連接對應的端口號(1-1024),但每次啓動NFS服務器,相應服務器端口號都各不相同。
爲確保客戶端每次都能正確連接,NFS通過RPC(Remote Procedure Call)協議來協助NFS服務器完成連接。程序通過使用這種協議向網絡中另一臺計算機上的程序請求服務。NFS中,RPC最主要的功能就是指定並監控NFS守護進程對應的商品號,並將端口信息通知給客戶端,讓客戶端連接到正確的端口上來。
三。安裝與配置
1.查看是否安裝:
rpm -qa|grep rpcbind
rpm -qa|grep nfs
如果沒有輸出,需要NFS對應的rpm包進行安裝
2.NFS服務器端的設定
設置配置文件:/etc/exports
設置格式:共享資源路徑 [主機地址] [選項]
例子:/webdata *(sync,rw,all_squash)
/tmp *(rw,no_root_squash)
/home/share 192.168.1 *(rw,root_squash) *(ro)
/opt/data 192.168.1.18(rw)
/usr/local/doc *.ixdba.net(rw, anonuid=686,anongid=686)
說明:共享資源路徑:如上面的/tmp, /home/share目錄等
主機地址:可以是主機名/域名/IP等
選項:
ro:read only,客戶端僅有讀權限
rw:read write
no_root_squash:根據用戶UID判斷,如果登錄NFS主機的用戶是root,那麼
該用戶有最高權限。不安全,不建議使用
root_squash:系統預設值,當登錄NFS主機的用戶root時,這個使用者的權限將縮減成匿名使用者。UID和GID都會變成nfsnobody身份,只有可讀權限。
all_squash:不管登錄NFS主機的是什麼用戶,都會將共享文件的UID和GID映射到匿名用戶nfsnobody.
no_all_squash:當客戶端用戶的UID和GID與服務器端共享文件UID和GID相同時,纔有對共享文件的讀寫權限,保證共享文件的用戶和組權限不會改變
anonuid:將登入NFS主機的用戶都設定成指定的UID,此UID必須存在於NFS服務器端/etc/passwd中
anongid:與anonuid類似
sync:資料同步寫入磁盤。默認
async:資料暫時放在內存中,不直接寫入磁盤
2.啓動停止NFS服務器
systemctl start/stop/restart/enable nfs
systemctl start/stop/restart/enable rpcbind
start:啓動
stop:關閉
restart:重啓
enable:服務器開機自啓動
關閉防火牆
systemctl stop firewalld
systemctl disable firewalld
3.NFS客戶端的設定
安裝nfs-utils和rpcbind兩個服務
yum -y install nfs-utils
systemctl start rpcbind
systemctl enable rpcbind
查看NFS服務器端提供的服務
showmount [-ea]
-e:此選項後跟服務器主機地址,顯示當前已導出 的目錄
-a:服務器上用使用時後面無參數; 客戶端使用時跟上服務器主機地址
掛載共享資源 mount
mount -t nfs Hostname(orIP) :/directory /mountpoint
Hostname:指定NFS服務器地址
/directory:表示NFS服務器共享的目錄資源
/mountpoint:客戶端主機指定的掛載點
開機自動掛載NFS目錄
192.168.60.133:/mydata /data/nfs nfs default 0 0
卸載NFS目錄
umount /mountpoint
安全設定