天天看點

NFS伺服器搭建與配置

NFS服務簡介:

什麼是NFS?

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

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

NFS一般用來存儲共享視訊,圖檔等靜态資料。

 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)協定來實作了!

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的,直接在指令執行systemctl reload nfs或exportfs –rv即可使修改的/etc/exports生效

NFS用戶端和NFS伺服器通訊過程:

NFS伺服器搭建與配置

1、首先伺服器端啟動RPC服務,并開啟111端口

2、伺服器端啟動NFS服務,并向RPC注冊端口資訊

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

4、服務端的RPC(portmap)服務回報NFS端口資訊給用戶端。

5、用戶端通過擷取的NFS端口來建立和服務端的NFS連接配接并進行資料的傳輸。

Linux下NFS伺服器部署: 

NFS服務所需軟體及主要配置檔案:
安裝NFS服務,需要安裝兩個軟體,分别是:           

RPC主程式:rpcbind

        NFS 其實可以被視為一個 RPC 服務,因為啟動任何一個 RPC 服務之前,我們都需要做好 port 的對應 (mapping) 的工作才行,這個工作其實就是『 rpcbind 』這個服務所負責的!也就是說, 在啟動任何一個 RPC 服務之前,我們都需要啟動 rpcbind 才行! (在 CentOS 5.x 以前這個軟體稱為 portmap,在 CentOS 6.x 之後才稱為 rpcbind 的!)。

NFS主程式:nfs-utils

         就是提供 rpc.nfsd 及 rpc.mountd 這兩個 NFS daemons 與其他相關 documents 與說明檔案、執行檔案等的軟體!這個就是 NFS 服務所需要的主要軟體。

NFS的相關檔案:

主要配置檔案:/etc/exports

這是 NFS 的主要配置檔案了。該檔案是空白的,有的系統可能不存在這個檔案,主要手動建立。NFS的配置一般隻在這個檔案中配置即可。

NFS 檔案系統維護指令:/usr/sbin/exportfs

這個是維護 NFS 分享資源的指令,可以利用這個指令重新分享 /etc/exports 變更的目錄資源、将 NFS Server 分享的目錄卸除或重新分享。

分享資源的登入檔:/var/lib/nfs/*tab

在 NFS 伺服器的登入檔案都放置到 /var/lib/nfs/ 目錄裡面,在該目錄下有兩個比較重要的登入檔, 一個是 etab ,主要記錄了 NFS 所分享出來的目錄的完整權限設定值;另一個 xtab 則記錄曾經連結到此 NFS 伺服器的相關用戶端資料。

用戶端查詢伺服器分享資源的指令:/usr/sbin/showmount

這是另一個重要的 NFS 指令。exportfs 是用在 NFS Server 端,而 showmount 則主要用在 Client 端。

showmount 可以用來察看 NFS 分享出來的目錄資源。

服務端安裝NFS服務步驟:

第一步:安裝NFS和rpc

[root@localhost ~]# yum install -y rpc-bind nfs-utils   

#安裝nfs服務

[root@localhost ~]# yum install -y rpcbind

#安裝rpc服務

第二步:啟動服務和設定開啟啟動:

注意:先啟動rpc服務,再啟動nfs服務。

[root@localhost ~]# systemctl start rpcbind    #先啟動rpc服務

[root@localhost ~]# systemctl enable rpcbind   #設定開機啟動

[root@localhost ~]# systemctl start nfs-server nfs-secure-server      

#啟動nfs服務和nfs安全傳輸服務

[root@localhost ~]# systemctl enable nfs-server nfs-secure-server

[root@localhost /]# firewall-cmd --permanent --add-service=nfs

success   #配置防火牆放行nfs服務

[root@localhost /]# firewall-cmd  --reload 

success

第三步:配置共享檔案目錄,編輯配置檔案:

首先建立共享目錄,然後在/etc/exports配置檔案中編輯配置即可。

[root@localhost /]# mkdir /public

#建立public共享目錄

[root@localhost /]# vi /etc/exports

    /public 192.168.245.0/24(ro)

    /protected 192.168.245.0/24(rw)

[root@localhost /]# systemctl reload nfs 

#重新加載NFS服務,使配置檔案生效

NFS伺服器搭建與配置
NFS用戶端挂載配置:

**第一步:**使用showmount指令檢視nfs伺服器共享資訊。輸出格式為“共享的目錄名稱 允許使用用戶端位址”。

showmount指令的用法;

參數    作用

-e    顯示NFS伺服器的共享清單

-a    顯示本機挂載的檔案資源的情況NFS資源的情況

-v    顯示版本号

**第二步,**在用戶端建立目錄,并挂載共享目錄。

第三步:檢查:

繼續閱讀