NFS伺服器的工作原理

2022-03-11 23:58:44 字數 1813 閱讀 7064

1. nfs

nfs是分布式計算機系統的乙個組成部分,可實現在異構網路上共享和裝配遠端檔案系統。其最大功能是可以通過網路讓不同作業系統的計算機可以共享資料,所以也可以將其看做是一台檔案伺服器。

客戶端pc可以掛在nfs伺服器所提供的目錄並且掛載之後這個目錄看起來如同本地的磁碟分割槽一樣,可以使用cp、cd、mv、rm 及 df 等與磁碟相關的命令。nfs 有屬於自己的協議與使用的埠號,但是在傳送資料或者其他相關資訊的時候,nfs 伺服器 使用乙個稱為「遠端過程呼叫」(remote procedure call,rpc)的協議來協助 nfs 伺服器本身的執行。

2. rpc

所以你要注意,要啟動nfs之前,rpc就要先啟動了,否則nfs會無法向rpc註冊。另外,rpc若重新啟動時,原本註冊的資料會不見,因此rpc重新啟動後,它管理的所有服務都需要重新啟動來重新向rpc註冊。

如上圖所示,當客戶端有nfs檔案訪問需求時,它會如何向伺服器端要求資料呢?

1、客戶端會向伺服器端的rpc(port 111)發出nfs檔案訪問功能的詢問要求;

2、伺服器端找到對應的已註冊的nfs daemon埠後,回報給客戶端;

3、客戶端了解正確的埠後,就可以直接與nfs daemon來聯機 。

由於nfs的各項功能都必須要向rpc來註冊,如此一來rpc才能了解nfs這個服務的各項功能之port number, pid,nfs在伺服器所監聽的ip等。而客戶端才能夠透過rpc的詢問找到正確對應的埠。也就是說,nfs必須要有rpc存在時才能成功的提供服務,因此我們稱nfs為rpc server的一種。此外,由上圖可知,不論是客戶端還是伺服器端,要使用nfs時,兩者都需要啟動rpc才行。

3. nfs 啟動的rpc daemons

nfs 伺服器主要的任務是進行檔案系統的分享, 檔案系統的分享則與許可權有關。所以nfs伺服器啟動時至少需要兩個daemons, 乙個管理客戶端是否能夠登入的問題,乙個管理客戶端能夠取得的許可權。如果你還想要管理quota的話,那麼nfs還得要再載入其他的rpc程式就是了。我們以較單純的nfs伺服器來說:

(1)rpc.nfsd:

最主要的nfs伺服器服務提供商。這個daemon主要的功能就是在管理客戶端是否能夠使用伺服器檔案系統掛載資訊等,其中還包含這個登入者的id的判別。

(2)rpc.mountd:

這個daemon主要的功能,則是管理nfs的檔案系統。當客戶端順利的通過rpc.nfsd而登入伺服器之後,在他可以使用nfs伺服器提供的檔案之前,還會經過檔案許可權的認證程式。他會去讀nfs的配置檔案/etc/exports來比對客戶端的許可權,當通過這一關後客戶端就可以取得使用nfs檔案的許可權了。

(3)rpc.lockd(非必要)

用在管理檔案的鎖定用途。既然分享的 nfs 檔案可以讓客戶端使用,那麼當多個客戶端同時嘗試寫入某個檔案時,就可能對於該檔案造成一些問題。這個rpc.lockd可以用來克服這個問題。但rpc.lockd必須要同時在客戶端與伺服器端都開啟才行。

(4)rpc.statd(非必要)

可以用來檢查檔案的一致性,與 rpc.lockd 有關。若發生因為客戶端同時使用同一檔案造成檔案可能有所損毀時,rpc.statd 可以用來檢測並嘗試回覆該檔案。 與rpc.lockd 同樣的,這個功能必須要在伺服器端與客戶端都啟動才會生效。

上述這幾個rpc所需要的程式,其實都已經寫入到兩個基本的服務啟動指令碼中了,那就是nfs以及nfslock,也就是在 /etc/init.d/nfs, /etc/init.d/nfslock, 與伺服器有關的寫入在nfs服務中,而與客戶端的rpc.lockd之類的就設定在nfslock服務中。

NFS伺服器工作原理及部署

nfs就是network file system的縮寫,它最大的功能就是可以通過網路,讓不同的機器 不同的作業系統可以共享彼此的檔案。nfs伺服器可以讓pc將網路中的nfs伺服器共享的目錄掛載到本地端的檔案系統中,而在本地端的系統中來看,那個遠端主機的目錄就好像是自己的乙個磁碟分割槽一樣,在使用上相...

Radius伺服器工作原理

radius是一種c s結構的協議,它的客戶端最初就是nas net access server 伺服器,現在任何執行radius客戶端軟體的計算機都可以成為radius的客戶端。radius協議認證機制靈活,可以採用pap chap或者unix登入認證等多種方式。radius是一種可擴充套件的協議...

KMS伺服器工作原理

若要檢查您當前的評估期上剩餘的時間,可以使用 system32 資料夾中的指令碼 slmgr.vbs 這個指令碼可以用 dli 開關來執行此指令碼。具體方法如下 1.單擊 開始,然後以管理員身份 命令提示符。2.鍵入 slmgr.vbs dli 然後按 enter 以檢查您的評估期的當前狀態。此時,...