NFS服務器搭建與配置

原文鏈接:https://blog.csdn.net/qq_38265137/article/details/83146421 

NFS服務簡介:


什麼是NFS?


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

              ​NFS服務器可以讓PC將網絡中的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服務器通訊過程:

å¨è¿éæå¥å¾çæè¿°

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客戶端掛載配置:


**第一步:**使用showmount命令查看nfs服務器共享信息。輸出格式爲“共享的目錄名稱 允許使用客戶端地址”。

[root@localhost ~]# showmount -e 192.168.245.128      
Export list for 192.168.245.128:
/protected 192.168.245.0/24
/public    192.168.245.0/24

showmount命令的用法;

參數    作用
-e    顯示NFS服務器的共享列表
-a    顯示本機掛載的文件資源的情況NFS資源的情況
-v    顯示版本號


**第二步,**在客戶端創建目錄,並掛載共享目錄。

[root@localhost ~]# mkdir /mnt/public
[root@localhost ~]# mkdir /mnt/date
[root@localhost ~]# vim /etc/fstab 
#在該文件中掛載,使系統每次啓動時都能自動掛載
    192.168.245.128:/public  /mnt/public       nfs    defaults 0 0
    192.168.245.128:/protected /mnt/data     nfs    defaults  0 1
[root@localhost ~]# mount -a   #是文件/etc/fstab生效
 

第三步:檢查:

[root@mail ~]# df -Th
Filesystem                 Type      Size  Used Avail Use% Mounted on
/dev/mapper/rhel-root      xfs        17G  3.1G   14G  18% /
devtmpfs                   devtmpfs  1.4G     0  1.4G   0% /dev
tmpfs                      tmpfs     1.4G  140K  1.4G   1% /dev/shm
tmpfs                      tmpfs     1.4G  9.1M  1.4G   1% /run
tmpfs                      tmpfs     1.4G     0  1.4G   0% /sys/fs/cgroup
/dev/sda1                  xfs      1014M  173M  842M  18% /boot
tmpfs                      tmpfs     280M   32K  280M   1% /run/user/0
/dev/sr0                   iso9660   3.6G  3.6G     0 100% /mnt/cdrom
192.168.245.128:/public    nfs4       17G  3.7G   14G  22% /mnt/public
192.168.245.128:/protected nfs4       17G  3.7G   14G  22% /mnt/data

原文鏈接:https://blog.csdn.net/qq_38265137/article/details/83146421 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章