因為專案需要,多節點需要乙個共享儲存的服務,跟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 配...