搭建nfs 服務

2022-02-27 14:45:09 字數 3075 閱讀 3321

因為專案需要,多節點需要乙個共享儲存的服務,跟it 溝通一番,本來可以硬體的方式掛載乙個磁碟,但是這樣不方便虛擬機器故障的時候遷移機器。所以還得service 方式建立乙個nfs 服務

廢話不多說

就拿雙節點來舉例

現在有兩台機器,因為是雙節點 部署一樣的服務,上傳檔案需要儲存到乙個地方,這樣保證訪問的一致性。

1.先看一下nfs 的簡介,了解一下功能和作用

nfs 是 network filesystem 的縮寫,顧名思義就是網路檔案儲存系統,它最早是由 sun 公司發展出來的,也是 freebsd 支援的檔案系統中的乙個,它允許網路中的計算機之間通過 tcp/ip 網路共享資源。通過 nfs,我們本地 nfs 的客戶端應用可以透明地讀寫位於服務端 nfs 伺服器上的檔案,就像訪問本地檔案一樣方便。簡單的理解,nfs 就是可以透過網路,讓不同的主機、不同的作業系統可以共享儲存的服務。
nfs 的基本原則是「容許不同的客戶端及服務端通過一組rpc分享相同的檔案系統」,它是獨立於作業系統,容許不同硬體及作業系統的系統共同進行檔案的分享。

nfs在檔案傳送或資訊傳送過程中依賴於rpc協議。rpc,遠端過程呼叫 (remote procedure call) 是能使客戶端執行其他系統中程式的一種機制。nfs本身是沒有提供資訊傳輸的協議和功能的,但nfs卻能讓我們通過網路進行資料的分享,這是因為nfs使用了一些其它的傳輸協議。而這些傳輸協議用到這個rpc功能的。可以說nfs本身就是使用rpc的乙個程式。或者說nfs也是乙個rpc server。所以只要用到nfs的地方都要啟動rpc服務,不論是nfs server或者nfs client。這樣server和client才能通過rpc來實現program port的對應。可以這麼理解rpc和nfs的關係:nfs是乙個檔案系統,而rpc是負責負責資訊的傳輸。

2.具體安裝

準備工作:

兩台linux 機器  172.28.xx.1 172.28.xx.2

選擇172.28.xx.1 作為server 端,172.28.xx.2

防火牆已關閉/iptables: firewall is not running.

selinux=disabled

安裝步驟:

nfs的安裝是非常簡單的,只需要兩個軟體包即可,而且在通常情況下,是作為系統的預設包安裝的。

檢視系統是否已安裝nfs,因為我之前已經安裝,如果沒有安裝 可以直接使用yum install rpcbind nfs-utils 比較方便,客戶端需要安裝nfs-utils

配置:1.服務端建立乙個共享目錄/data/file,作為客戶端掛載的遠端入口,然後設定許可權

2.修改 /etc/exports

說明一下,這裡配置後邊有很多引數,每個引數有不同的含義,具體可以參考下邊。此處,我配置了將/data/file檔案目錄設定為允許 ip 為該172.28.5.0/20區間的客戶端掛載,當然,如果客戶端 ip 不在該區間也想要掛載的話,可以設定 ip 區間更大或者設定為*即允許所有客戶端掛載,例如:/data/file *(ro,sync,insecure,no_root_squash)設定/home目錄允許所有客戶端唯讀掛載。

服務啟動:

接下來,我們先啟動 rpc 服務。

注意:此時我們還沒有啟動 nfs 服務,只監聽了 111 埠,接著我們來啟動 nfs 服務,再來看下註冊的埠列表。

檢視服務是否建立成功:

這裡已經建立成功,當然也有失敗的時候,

失敗可以通過 systemctl status nfs 來檢視具體服務啟動時候的log, 會列印出出錯的資訊,不如下面 就是在/etc/exports 裡面加了no_hide引數,導致啟動失敗,(可能是加的位置不對或者其他什麼原因)

客戶端掛載:

服務端建立好了,這時候去另外一台機器 172.28.xx.2 上面掛載作為客戶端,前面說過 這個機器上面要安裝 nfs-utils,先可以在客戶端檢視下 nfs 服務端 設定可共享的目錄資訊。

在客戶端機器上建立目錄 /data/file 因為檔案讀取路徑要保持一直,所以兩邊的路徑都一樣,建立後給與666許可權,,然後再mount 掛載到服務端。

測試nfs

都是木有問題的,這是因為上邊設定了 nfs 遠端目錄許可權為rw擁有讀寫許可權,如果設定為ro,那麼客戶端只能讀取,不能寫入,根據實際應用場景合理配置,這裡就不在演示了。這裡提一下,nfs 預設使用用 udp 協議來進行掛載,為了提高 nfs 的穩定性,可以使用 tcp 協議掛載,那麼客戶端掛載命令可使用如下命令:

最後,如果客戶端要解除安裝 nfs 掛載的話,使用如下命令即可。

umount /data/file
參考:

搭建nfs服務

記錄一下,留著以後用。這裡是以龍芯3210為例,其他開發板可以參考。工作環境 ubuntu 10.04 虛擬機器7.13 目標平台 龍芯3210開發板 開發包核心原始碼目錄 home linux 3210 開發包核心版本 2.6.18.1 交叉編譯工具 gcc 3.4.6 目的 在嵌入式的交叉編譯環...

NFS服務搭建

nfs服務用於任意兩台linux系統之間通訊,但這兩台機器得得用網線連線。安裝本機的nfs服務 以下操作在你的ubuntu中完成 1 sudo apt get install nfs kernel server 2 vim etc exports 新增 mnt nfswork rw,sync,no ...

NFS服務搭建

需兩個包 nfs utils 和 rpcbindyum install rpcbind nfs utils y注 資料寫入是先把資料寫入記憶體,再從記憶體寫到硬碟中的 例 vim etc exports tmp test 192.168.3.100 rw,async,no root squash 配...