1. 程式人生 > 其它 >(轉)NFS在Linux下的安裝、部署與應用

(轉)NFS在Linux下的安裝、部署與應用

轉:https://baijiahao.baidu.com/s?id=1694470911715977170&wfr=spider&for=pc

NFS檔案系統是Sun公司開發的網路檔案系統,也稱為分散式檔案系統,其基本原理是將某個裝置本地檔案系統通過乙太網的方式共享給其它計算節點使用。也就是說,計算機節點通過NFS儲存的資料是通過網路儲存在另外一個裝置,而不是儲存在本地磁碟。

 網路檔案系統最大的特點是可以實現多個計算節點對同一個儲存裝置的訪問,從而提升儲存的利用率,並簡化儲存管理難度。NFS分散式檔案系統本身是客戶端伺服器架構模式。

本文將介紹如何基於Linux作業系統部署一個NFS檔案系統服務,並且介紹如何在客戶端進行使用。最後本文介紹一下其整體架構。

基於CentOS的NFS服務安裝配置

本節以CentOS 7為例介紹一下NFS服務的安裝,這裡的NFS服務是指Linux核心中的nfsd服務及配套的使用者態程式。它是NFS分散式檔案系統的服務端。當然,除了nfsd外,還有很多其它的NFS分散式檔案系統服務端,比如使用者態的Ganesha。但是,這些不在本文的範圍內,今天我們主要介紹一下nfsd的安裝和使用。

為了簡化安裝,我們將作業系統的防火牆和SELinux都關閉。關閉這些特性並不會影響NFS的功能,只是用來避免使用過程中出現一些問題。如果在生產環境,為了資料的安全,這些特性通常是需要開啟的。下面我們就介紹一下如何安裝及配置NFS服務。

步驟 1: 服務端安裝

具體安裝我們可以藉助CentOS的軟體包管理工具yum,具體安裝命令如下所示:

$ sudo yum install nfs-utils

注意:只安裝 nfs-utils 即可,rpcbind 屬於它的依賴,會自動安裝上。

步驟 2: 服務端配置

我們期望在作業系統啟動的時候可以自動啟動NFS服務,因此我們這裡需要設定一下 NFS 服務開機啟動,具體命令如下:

$ sudo systemctl enable rpcbind

$ sudo systemctl enable nfs

軟體安裝後服務可能沒有啟動,這時需要手動啟動一下 NFS 服務。如果已經啟動了就不需要執行該步操作了。

$ sudo systemctl start rpcbind

$ sudo systemctl start nfs

步驟 3: 配置共享目錄

完成上述操作後,NFS服務已經正常工作了,但是我們在客戶端仍然沒有辦法訪問該服務。這是因為此時NFS服務還沒有配置匯出的資源。接下來我們在服務端配置一個共享目錄,也就是要匯出的資源。首先要建立一個目錄,並且修改該目錄的許可權:

$ sudo mkdir /data

$ sudo chmod 755 /data

有了基本的資源後,我們就可以配置匯出的目錄了。NFS的配置非常簡單,開啟配置檔案:

$ sudo vi /etc/exports

在開啟的檔案中新增如下內容。

/data/ 192.168.0.0/24(rw,sync,no_root_squash,no_all_squash)

對於上述配置項的含義,我們解釋如下:/data: 共享目錄位置。192.168.0.0/24: 客戶端 IP 範圍,本文是限制某個子網,如果是* 代表沒有限制。rw: 許可權設定,可讀可寫。sync: 同步共享目錄。no_root_squash: 可以使用 root 授權。no_all_squash: 可以使用普通使用者授權。

至此,我們已經完成nfsd服務的安裝,重啟一下nfs服務就可以使用了。為了確認是否安裝成功,可以通過如下命令進行確認。

showmount -e localhost

如果該命令執行後有目錄資訊輸出,那表示配置正確,否則應該是存在問題,需要具體定位。不過通常不會有什麼問題。

基於Ubuntu的NFS服務安裝與配置

如果您使用的是Ubuntu的環境,那麼也可以非常容易的安裝NFS服務。具體方式是使用Ubuntu的軟體包管理工具。以Ubuntu18.04為例,執行如下命令就可以完成安裝:

$sudo apt install nfs-kernel-server

完成安裝後,具體的配置與CentOS下的配置方法相同,本文不再贅述。

NFS檔案系統的掛載與使用

構建NFS服務是為了使用,因此我們可以在另外一臺機器進行掛載,並使用該檔案系統。在掛載之前需要安裝客戶端必須的軟體,具體步驟如下所示。

步驟 1: 客戶端安裝

首先需要在計算節點安裝客戶端軟體,安裝方法與服務端類似。

$ sudo yum install nfs-utils

步驟 2: 客戶端連線 NFS

先查服務端的共享目錄,這裡的IP地址是nfs伺服器的地址。

$ showmount -e 192.168.0.101

如果輸入如下內容,說明目錄匯出成功,服務端的配置是沒有問題。接下來就可以在客戶端掛載服務端的目錄了。

 NFS目錄掛著與本地檔案系統一樣。首先在客戶端建立一個本地目錄。

$ sudo mkdir /mnt/data

然後將服務端的目錄掛載到本地。

$ sudo mount -t nfs 192.168.0.101:/data /mnt/data

正常情況就可以完成掛載,此時遠端匯出的目錄就變成了本地目錄樹的一個分支。我們可以像使用本地檔案系統一樣使用NFS檔案系統了。我們可以做個實驗,在客戶端寫入一個檔案,此時在服務端的目錄中就可以看到新建立的檔案。