nfs是指網路檔案系統,是FreeBSD支援的檔案系統中的一種,它允許網路中的電腦之間透過TCP/IP網路共享資源。 NFS是基於UDP/IP協定的應用,其實作主要是採用遠端過程呼叫RPC機制,RPC提供了一組與機器、作業系統以及低層傳送協定無關的存取遠端檔案的操作。
本教學操作環境:linux7.3系統、Dell G3電腦。
網路檔案系統,英文Network File System(NFS),是由SUN公司研製的UNIX表示層協定(presentation layer protocol),能使使用者存取網路上別處的檔案就像在使用自己的電腦一樣。
NFS是基於UDP/IP協定的應用,其實作主要是採用遠端過程呼叫RPC機制,RPC提供了一組與機器、作業系統以及低層傳送協定無關的存取遠端檔案的操作。 RPC採用了XDR的支援。 XDR是一種與機器無關的資料描述編碼的協議,他以獨立與任意機器體系結構的格式對網路上傳送的資料進行編碼和解碼,支援在異質系統之間資料的傳送。
nfs有很多實際應用場景,以下是一些常用的場景:
nfs體系至少有兩個主要部分:
nfs體系的架構圖如下:
客戶機透過TCP/IP網路遠端存取存放在NFS伺服器上的資料
在NFS伺服器正式啟用前,需要根據實際環境和需求,設定一些NFS參數
nfs是基於rpc來實作網路檔案系統共享的。所以我們先來說說rpc。
RPC(Remote Procedure Call Protocol),遠端過程呼叫協議,它是一種透過網路從遠端電腦程式上請求服務,而不需要了解底層網路技術的協定。
RPC協定假定某些傳輸協定的存在,如TCP或UDP,為通訊程序之間攜帶資訊資料。在OSI網路通訊模型中,RPC跨越了傳輸層和應用層。
RPC採用客戶機/伺服器模式。請求程式就是一個客戶機,而服務提供者就是一個伺服器。
rpc工作機制如上圖所示,以下來描述它:
NFS伺服器端運行著四個進程:
idmapd
#portmapper
idmapd
#實作使用者帳號的集中映射,把所有的帳號都映射為NFSNOBODY,但是在存取時卻能以本機使用者的身分去存取
mountd
用於驗證用戶端是否在允許存取此NFS檔案系統的用戶端清單中,在則允許存取(發放一個令牌,持令牌去找nfsd),否則拒絕存取
mountd的服務連接埠是隨機的,由rpc服務(portmapper)提供隨機連接埠號碼
nfsd
#nfs的守護進程,監聽在2049/tcp和2049/udp埠上
不負責檔案儲存(由NFS伺服器本地核心負責調度儲存),用於理解客戶端發起的rpc請求,並將其轉交給本地內核,而後存儲在指定的檔案系統上
portmapper
NFS伺服器的rpc服務,其監聽於111/TCP和111/UDP套接字上,用於管理遠端程序呼叫(RPC)
驗證透過後客戶端持mountd發放的令牌去找服務端的nfsd進程,請求查看某檔
服務端的nfsd進程發起本機系統調用,向核心請求查看客戶端要查看的檔案的資訊######服務端的核心執行nfsd請求的系統調用,並將結果傳回給nfsd服務######nfsd進程收到核心傳回的結果後將其封裝成rpc請求封包並透過tcp/ip協定傳回給客戶端#########更多相關知識,請造訪###常見問題###欄位! ###以上是nfs是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!