wordpress Android Windows linux shell 程序员 Ubuntu google mysql 开源 nginx java php 微软 apache HTML5 Python Firefox linux命令 centos

如何快速搭建 NFS服务器

 NFS 就是 Network FileSystem 的縮寫,最早之前是由sun 這家公司所發展出來的。 它最大的功能就是可以透過網絡,讓不同的機器、不同的操作系統、可以彼此分享個別的檔案 (share files)。所以,你也可以簡單的將他看做是一個文件服務器 (file server) 呢!這個 NFS 服務器可以讓你的 PC 來將網絡遠程的 NFS 服務器分享的目錄,掛載到本地端的機器當中, 在本地端的機器看起來,那個遠程主機的目錄就好像是自己的一個磁盤分區槽一樣 (partition)!使用上面相當的便利!

 因為 NFS 支持的功能相當的多,而不同的功能都會使用不同的程序來啟動, 每啟動一個功能就會啟用一些端口來傳輸數據,因此, NFS 的功能所對應的端口才沒有固定住, 而是隨機取用一些未被使用的小於 1024 的埠口來作為傳輸之用。但如此一來又造成客戶端想要連上服務器時的困擾, 因為客戶端得要知道服務器端的相關埠口才能夠聯機吧!

 此時我們就得需要遠程過程調用 (RPC) 的服務啦!RPC 最主要的功能就是在指定每個 NFS 功能所對應的 port number ,並且回報給客戶端,讓客戶端可以連結到正確的埠口上去。 那 RPC 又是如何知道每個 NFS 的埠口呢?這是因為當服務器在啟動 NFS 時會隨機取用數個埠口,並主動的向 RPC 註冊,因此 RPC 可以知道每個埠口對應的 NFS 功能,然後 RPC 又是固定使用 port 111 來監聽客戶端的需求並回報客戶端正確的埠口, 所以當然可以讓 NFS 的啟動更為輕松愉快了!

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

 當客戶端有 NFS 檔案存取需求時,他會如何向服務器端要求數據呢?

 客戶端會向服務器端的 RPC (port 111) 發出 NFS 檔案存取功能的詢問要求;
 服務器端找到對應的已註冊的 NFS daemon 埠口後,會回報給客戶端;
 客戶端了解正確的埠口後,就可以直接與 NFS daemon 來聯機。
 由於 NFS 的各項功能都必須要向 RPC 來註冊,如此一來 RPC 才能了解 NFS 這個服務的各項功能之 port number, PID, NFS 在服務器所監聽的 ip 等等,而客戶端才能夠透過 RPC 的詢問找到正確對應的埠口。 也就是說,NFS 必須要有 RPC 存在時才能成功的提供服務,因此我們稱 NFS 為 RPC server 的一種。事實上,有很多這樣的服務器都是向 RPC 註冊的,舉例來說,NIS (Network Information service) 也是 RPC server 的一種呢

延伸阅读

评论