NFS(Network File System)即網絡文件系統,是 Linux/Unix 支持的文件系統中的一種,它允許網絡中的計算機之間通過 TCP/IP 網絡共享資源。在 NFS 的應用中,本地 NFS 的客戶端應用可以透明地讀寫位於遠端 NFS 服務器上的文件,就像訪問本地文件一樣。
測試環境 CentOS7.3
NFS 服務端配置 1. 安裝 nfs-utils 和 rpcbind
# yum update
yum -y update
安裝 nfs#
yum -y install nfs-utils rpcbind
2. 啟用和打開 NFS 相關服務 rpcbind,nfs-server,nfs-lock,nfs-idmap。 注意需要先啟動 rpcbind
#啟用服務
systemctl enable rpcbind
systemctl enable nfs-server
systemctl enable nfs-lock
systemctl enable nfs-idmap
啟動 nfs 服務#
systemctl start rpcbind
systemctl start nfs-server
systemctl start nfs-lock
systemctl start nfs-idmap
3. 創建需要共享的目錄
# 設置共享目錄
mkdir /application/share
chmod -R 777 /application/share
#chown nfsnobody /application/share
4. 配置需要共享的目錄到 /etc/exports 下,XXX.XXX.XXX.XXX 為需要共享的對象 IP 地址
# 寫入配置文件 exports
echo "/application/share XXX.XXX.XXX.XXX(rw,sync,no_root_squash,no_all_squash)" >> /etc/exports
重新加載 exports#
exportfs -a
服務器端的設定都是在 /etc/exports 這個文件中進行設定的,設定格式如下:欲分享出去的目錄 主機名稱 1 或者 IP1 (參數 1, 參數 2) 主機名稱 2 或者 IP2 (參數 3, 參數 4) 上面這個格式表示,同一個目錄分享給兩個不同的主機,但提供給這兩台主機的權限和參數是不同的,所以分別設定兩個主機得到的權限。可以設定的參數主要有以下這些: rw: 可讀寫的權限;ro: 只讀的權限;no_root_squash: 登入到 NFS 主機的用戶如果是 ROOT 用戶,他就擁有 ROOT 的權限,此參數很不安全,建議不要使用. root_squash: 在登入 NFS 協議主機使用分享之目的使用者如果是使用者的都成 nobody 身份;all_squash: 不管登陸 NFS 主機的用戶是什麼都會被重新設定為 nobody. anonuid: 將登陸 NFS 主機的用戶都設定成指定的 user id, 此 ID 必須存在於 /etc/passwd 中. anongid: 同 anonuid , 但是?成 group ID 就是了!sync: 資料同步寫入存儲器中. async: 資料會先暫時存放在內存中,不會直接寫入硬盤. insecure 允許從這台機器過來的非授權訪問.
5. 檢查共享目錄是否設置正確
# 檢查共享是否正常
showmount -e
6. 調整防火牆配置
# 配置防火牆
firewall-cmd --permanent --zone=public --add-service=nfs
firewall-cmd --permanent --zone=public --add-service=mountd
firewall-cmd --permanent --zone=public --add-service=rpc-bind
firewall-cmd --reload
NFS 客戶端配置 1. 安裝 nfs-utils
# 更新
yum -y update
安裝 nfs#
yum -y install nfs-utils
2. 檢查共享目錄是否設置正確,XXX.XXX.XXX.XXX 為共享服務器地址
# 檢查共享是否正常
showmount -e XXX.XXX.XXX.XXX
3. 掛載遠程服務器 NFS 分區到本地掛載點
# 創建掛載點
mkdir /application/share
掛載 nfs#
mount -t nfs XXX.XXX.XXX.XXX:/application/share /application/share
#mount -vvv -t nfs XXX.XXX.XXX.XXX:/application/share /application/share -o ver=3
#卸載 /application/share
4.NFS 分區寫入本地 fstab 文件系統
# 設置 fstab, 需要重新啟動
echo "XXX.XXX.XXX.XXX:/application/share /application/share nfs rw,sync,hard,intr 0 0" >> /etc/fstab
參考 https://www.howtoforge.com/nfs-server-and-client-on-centos-7 http://blog.chinaunix.net/uid-26557245-id-3428672.html