NFS部署
Network File System(NFS)網絡檔案系統
進行nfs部署實驗需要兩台linux系統的機器,一個作為服務端一個作為用戶端
這篇筆記中使用的是兩台CentOS7的虛拟機
服務端
先用
yum install nfs-utils
指令安裝nfs
再用
systemctl enable nfs
指令設定自啟動
這時可能會出現問題
網上給出了很多解決方法,我的建議是别用太新的版本(尤其是CentOS8)
随後開啟nfs服務
systemctl start nfs
接着準備一個目錄
mkdir data
并設定權限
chmod 755 data
然後寫配置檔案
vi /etc/exports
範例
/data/ [IP位址] (rw,sync,no_root_squash,no_all_squash,,anonuid=1000,anongid=1000))
其中:
rw:可讀寫權限。
ro:隻讀權限。
no_root_squash:當登入NFS主機使用共享目錄的使用者是root時,其權限将被轉換成為匿名使用者,通常它的UID與GID都會變成nobody身份。、
root_squash;如果登入NFS主機使用共享目錄的使用者是root,那麼對于這個共享的目錄來說,它具有root的權限。
all_squash:忽略登入NFS使用者的身份,其身份都會被轉換為匿名使用者,通常即nobody。
anonuid:通常為nobody,也可以自行設定這個UID的值,UID必須存在于/etc/passwd中。
anongid:同anonuid,但是變為Group ID。
寫完配置檔案後重新開機nfs服務
systemctl restart nfs
檢視挂載
showmount -e localhost
到此為止服務端的配置完成
用戶端
也是需要先安裝nfs
yum -y install nfs-utils
然後開啟RPC服務,RPC提供了存取遠端檔案的操作
systemctl start rpcbind
然後檢視服務端的共享目錄
showmount -e [ip位址]
然後也建立一個目錄
mkdir data
并挂載服務端的目錄
mount -t nfs [ip位址]:/data /data
在做這幾步的時候是最容易出錯的
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
出現這個錯誤是因為服務端的防火牆上預設沒有開啟nfs服務相應的端口
有兩種方法解決,一種是直接關閉防火牆
先用
systemctl status firewalld
指令檢視防火牆運作狀态
然後用
systemctl stop firewalld
指令關閉防火牆
可以再用
systemctl status firewalld
指令檢查防火牆狀态
出現
即可,推薦用這種方法,畢竟是做實驗,倒是無所謂
另一種方法則是在防火牆上開啟相關服務要用的端口,這裡不贅述
測試
可以在用戶端的data目錄下建立檔案并往裡面寫入内容,接着在服務端檢視,如果服務端的data目錄中也出現了改變則證明nfs服務部署成功。