NFS 簡介
NFS 就是 Network
FileSystem 的縮寫,最早之前是由sun 這家公司所發(fā)展出來的董栽。它最大的功能就是可以透過網(wǎng)絡(luò)码倦,讓不同的機(jī)器、不同的操作系統(tǒng)裆泳、可以彼此分享個(gè)別的檔案 (share files)叹洲。所以,你也可以簡單的將他看做是一個(gè)文件服務(wù)器 (file
server) 呢工禾!這個(gè) NFS 服務(wù)器可以讓你的 PC 來將網(wǎng)絡(luò)遠(yuǎn)程的 NFS 服務(wù)器分享的目錄运提,掛載到本地端的機(jī)器當(dāng)中, 在本地端的機(jī)器看起來闻葵,那個(gè)遠(yuǎn)程主機(jī)的目錄就好像是自己的一個(gè)磁盤分區(qū)槽一樣 (partition)民泵!使用上面相當(dāng)?shù)谋憷?/p>
因?yàn)?NFS 支持的功能相當(dāng)?shù)亩啵煌墓δ芏紩?huì)使用不同的程序來啟動(dòng),每啟動(dòng)一個(gè)功能就會(huì)啟用一些端口來傳輸數(shù)據(jù)槽畔,因此栈妆,NFS的功能所對應(yīng)的端口才沒有固定住,而是隨機(jī)取用一些未被使用的小于 1024 的埠口來作為傳輸之用厢钧。但如此一來又造成客戶端想要連上服務(wù)器時(shí)的困擾鳞尔, 因?yàn)榭蛻舳说靡婪?wù)器端的相關(guān)埠口才能夠聯(lián)機(jī)吧!
此時(shí)我們就得需要遠(yuǎn)程過程調(diào)用 (RPC) 的服務(wù)啦早直!RPC 最主要的功能就是在指定每個(gè) NFS 功能所對應(yīng)的 port number 寥假,并且回報(bào)給客戶端,讓客戶端可以連結(jié)到正確的埠口上去霞扬。 RPC又是如何知道每個(gè)NFS的埠口呢糕韧?這是因?yàn)楫?dāng)服務(wù)器在啟動(dòng) NFS 時(shí)會(huì)隨機(jī)取用數(shù)個(gè)埠口,并主動(dòng)的向 RPC 注冊喻圃,因此 RPC 可以知道每個(gè)埠口對應(yīng)的NFS功能萤彩,然后RPC又是固定使用port 111 來監(jiān)聽客戶端的需求并回報(bào)客戶端正確的埠口,所以當(dāng)然可以讓 NFS 的啟動(dòng)更為輕松愉快了斧拍!
所以你要注意雀扶,要啟動(dòng) NFS 之前,RPC就要先啟動(dòng)了肆汹,否則 NFS 會(huì)無法向 RPC 注冊愚墓。另外窍侧,RPC 若重新啟動(dòng)時(shí),原本注冊的數(shù)據(jù)會(huì)不見转绷,因此 RPC 重新啟動(dòng)后,它管理的所有服務(wù)都需要重新啟動(dòng)來重新向 RPC 注冊硼啤。
當(dāng)客戶端有 NFS 檔案存取需求時(shí)议经,他會(huì)如何向服務(wù)器端要求數(shù)據(jù)呢?
客戶端會(huì)向服務(wù)器端的 RPC (port 111) 發(fā)出 NFS 檔案存取功能的詢問要求谴返;
服務(wù)器端找到對應(yīng)的已注冊的 NFS daemon 埠口后煞肾,會(huì)回報(bào)給客戶端;
客戶端了解正確的埠口后嗓袱,就可以直接與NFS daemon 來聯(lián)機(jī)籍救。
由于 NFS 的各項(xiàng)功能都必須要向RPC 來注冊,如此一來 RPC 才能了解 NFS 這個(gè)服務(wù)的各項(xiàng)功能之 port number, PID, NFS 在服務(wù)器所監(jiān)聽的 IP 等等渠抹,而客戶端才能夠透過 RPC 的詢問找到正確對應(yīng)的埠口蝙昙。 也就是說,NFS 必須要有 RPC 存在時(shí)才能成功的提供服務(wù)梧却,因此我們稱 NFS 為 RPC server 的一種奇颠。事實(shí)上,有很多這樣的服務(wù)器都是向 RPC 注冊的放航,舉例來說烈拒,NIS (Network Information Service) 也是 RPC
server 的一種呢
命令說明
/home/nfstestdir? ?192.168.133.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
# 第一段來定義共享目錄的絕對路徑?第二段指定ip和一些選項(xiàng)
# rw 讀寫
# ro 只讀
# sync 同步模式,內(nèi)存數(shù)據(jù)實(shí)時(shí)寫入磁盤
# async 非同步模式
# no_root_squash 客戶端掛載NFS共享目錄后广鳍,root用戶不受約束荆几,權(quán)限很大
# root_squash 與上面選項(xiàng)相對,客戶端上的root用戶收到約束赊时,被限定成某個(gè)普通用戶
# all_squash 客戶端上所有用戶在使用NFS共享目錄時(shí)都被限定為一個(gè)普通用戶
# anonuid/anongid 和上面幾個(gè)選項(xiàng)搭配使用吨铸,定義被限定用戶的uid和gid
設(shè)置開機(jī)啟動(dòng)
systemctl enable nfs
查看進(jìn)程
ps ax |grep nfs
查看遠(yuǎn)程共享信息
showmount -e192.168.1.251
查看掛載目錄
df-h
exportfs命令
nfs進(jìn)程不能隨便重啟,必須把客戶端的掛載目錄卸載蛋叼,然后啟動(dòng)焊傅。
這時(shí)候就可以用exportfs命令
-a 全部掛載或者全部卸載
-r 重新掛載
-u卸載某一個(gè)目錄
-v顯示共享目錄