1. 程式人生 > >NFS服務器原理和安裝配置詳解附案例演練

NFS服務器原理和安裝配置詳解附案例演練

隨機選擇 span 通訊 操作系統 不同 網絡 定義 重新啟動 exportfs

NFS服務器原理和安裝配置詳解附案例演練

1、什麽是NFS服務器

  NFS就是Network File System的縮寫,它最大的功能就是可以通過網絡,讓不同的機器、不同的操作系統可以共享彼此的文件。

  NFS服務器可以讓PC將網絡中的NFS服務器共享的目錄掛載到本地端的文件系統中,而在本地端的系統中來看,那個遠程主機的目錄就好像是自己的一個磁盤分區一樣,在使用上相當便利;

2、NFS掛載原理

  NFS服務器的掛載結構圖:

技術分享

  如上圖示:

  當我們在NFS服務器設置好一個共享目錄/home/public後,其他的有權訪問NFS服務器的NFS客戶端就可以將這個目錄掛載到自己文件系統的某個掛載點,這個掛載點可以自己定義,如上圖客戶端A與客戶端B掛載的目錄就不相同。並且掛載好後我們在本地能夠看到服務端/home/public的所有數據。如果服務器端配置的客戶端只讀,那麽客戶端就只能夠只讀。如果配置讀寫,客戶端就能夠進行讀寫。掛載後,NFS客戶端查看磁盤信息命令:#df –h。

既然NFS是通過網絡來進行服務器端和客戶端之間的數據傳輸,那麽兩者之間要傳輸數據就要有想對應的網絡端口,NFS服務器到底使用哪個端口來進行數據傳輸呢?基本上NFS這個服務器的端口開在2049,但由於文件系統非常復雜。因此NFS還有其他的程序去啟動額外的端口,這些額外的用來傳輸數據的端口是隨機選擇的,是小於1024的端口;既然是隨機的那麽客戶端又是如何知道NFS服務器端到底使用的是哪個端口呢?這時就需要通過遠程過程調用(Remote Procedure Call,RPC)協議來實現了!

3、RPC與NFS如何通訊

  因為NFS支持的功能相當多,而不同的功能都會使用不同的程序來啟動,每啟動一個功能就會啟用一些端口來傳輸數據,因此NFS的功能對應的端口並不固定

,客戶端要知道NFS服務器端的相關端口才能建立連接進行數據傳輸,而RPC就是用來統一管理NFS端口的服務,並且統一對外的端口是111,RPC會記錄NFS端口的信息,如此我們就能夠通過RPC實現服務端和客戶端溝通端口信息。PRC最主要的功能就是指定每個NFS功能所對應的port number,並且通知客戶端,記客戶端可以連接到正常端口上去。

  那麽RPC又是如何知道每個NFS功能的端口呢?

  首先當NFS啟動後,就會隨機的使用一些端口,然後NFS就會向RPC去註冊這些端口,RPC就會記錄下這些端口,並且RPC會開啟111端口,等待客戶端RPC的請求,如果客戶端有請求,那麽服務器端的RPC就會將之前記錄的NFS端口信息告知客戶端。如此客戶端就會獲取NFS服務器端的端口信息,就會以實際端口進行數據的傳輸了。

提示:在啟動NFS SERVER之前,首先要啟動RPC服務(即portmap服務,下同)否則NFS SERVER就無法向RPC服務區註冊,另外,如果RPC服務重新啟動,原來已經註冊好的NFS端口數據就會全部丟失。因此此時RPC服務管理的NFS程序也要重新啟動以重新向RPC註冊。特別註意:一般修改NFS配置文檔後,是不需要重啟NFS的,直接在命令執行/etc/init.d/nfs reload或exportfs –rv即可使修改的/etc/exports生效。

4、NFS客戶端和NFS服務端通訊過程

技術分享

1)首先服務器端啟動RPC服務,並開啟111端口

2)服務器端啟動NFS服務,並向RPC註冊端口信息

3)客戶端啟動RPC(portmap服務),向服務端的RPC(portmap)服務請求服務端的NFS端口

4)服務端的RPC(portmap)服務反饋NFS端口信息給客戶端。

5)客戶端通過獲取的NFS端口來建立和服務端的NFS連接並進行數據的傳輸。

NFS服務器原理和安裝配置詳解附案例演練