環(huán)境
第一步:服務(wù)端設(shè)置
1.安裝 NFS
## 查看是否已安裝
rpm -qa | egrep "nfs|rpcbind"
## 安裝
yum install -y nfs-utils rpcbind
## 查看都安裝了那些文件
rpm -ql nfs-utils
rpm -ql rpcbind
## 啟動(dòng) rpcbind 并設(shè)置開機(jī)自動(dòng)啟動(dòng)
systemctl enable rpcbind
systemctl stop rpcbind
systemctl start rpcbind
systemctl status rpcbind
## 啟動(dòng) nfs 并設(shè)置開機(jī)自動(dòng)啟動(dòng)
systemctl enable nfs
systemctl stop nfs
systemctl start nfs
systemctl status nfs
2.創(chuàng)建共享路徑并設(shè)置權(quán)限
mkdir -p /home/Test
chmod 666 /home/Test
3.編輯 exports 文件
vim /etc/exports
/home/Test 192.168.30.0/24(rw,syncm,no_root_squash)
rw/ro 該目錄分享的權(quán)限是可擦寫 (read-write) 或只讀 (read-only)
但最終能不能讀寫,還是與文件系統(tǒng)的 rwx 及身份有關(guān)。
sync/async sync 代表數(shù)據(jù)會(huì)同步寫入到內(nèi)存與硬盤中
async 則代表數(shù)據(jù)會(huì)先暫存于內(nèi)存當(dāng)中,而非直接寫入硬盤
no_root_squash\root_squash 客戶端使用 NFS 文件系統(tǒng)的賬號(hào)若為 root 時(shí),系統(tǒng)該如何判斷這個(gè)賬號(hào)的身份?
預(yù)設(shè)的情況下,客戶端 root 的身份會(huì)由 root_squash 的設(shè)定壓縮成 nfsnobody,如此對(duì)服務(wù)器的系統(tǒng)會(huì)較有保障。
但如果你想要開放客戶端使用 root 身份來(lái)操作服務(wù)器的文件系統(tǒng),那么這里就得要開 no_root_squash 才行!
all_squash 不論登入 NFS 的使用者身份為何, 他的身份都會(huì)被壓縮成為匿名用戶,通常也就是 nobody(nfsnobody) 啦!
anonuid\anongid anon 意指 anonymous (匿名者) 前面關(guān)于 *_squash 提到的匿名用戶的 UID 設(shè)定值,通常為 nobody(nfsnobody)
但是你可以自行設(shè)定這個(gè) UID 的值!當(dāng)然,這個(gè) UID 必需要存在于你的 /etc/passwd 當(dāng)中!
anonuid 指的是 UID 而 anongid 則是群組的 GID 啰。
4.使配置生效
exportfs -r
5.重啟 rpcbind 和 nfs 服務(wù)
systemctl restart rpcbind
systemctl status rpcbind
systemctl restart nfs
systemctl status nfs
6.常用命令
## 查看 RPC 服務(wù)的注冊(cè)狀況
rpcinfo -p localhost
-p :針對(duì)某 IP (未寫則預(yù)設(shè)為本機(jī)) 顯示出所有的 port 與 porgram 的信息;
-t :針對(duì)某主機(jī)的某支程序檢查其 TCP 封包所在的軟件版本;
-u :針對(duì)某主機(jī)的某支程序檢查其 UDP 封包所在的軟件版本;
## 在服務(wù)端測(cè)試是否可以聯(lián)機(jī)
showmount -e localhost
-a :顯示目前主機(jī)與客戶端的 NFS 聯(lián)機(jī)分享的狀態(tài);
-e :顯示某部主機(jī)的 /etc/exports 所分享的目錄數(shù)據(jù)。
## 查看服務(wù)端掛載了那些路徑
cat /var/lib/nfs/etab
## 查看有多少客戶端掛了在共享
cat /var/lib/nfs/rmtab
netstat -tulnp |grep -E '(rpc|nfs)'
ps -ef | egrep "rpc|nfs"
NFS 文件系統(tǒng)維護(hù)指令:
這個(gè)是維護(hù) NFS 分享資源的指令,我們可以利用這個(gè)指令重新分享 /etc/exports 變更的目錄資源、將 NFS Server 分享的目錄卸除或重新分享等等,這個(gè)指令是 NFS 系統(tǒng)里面相當(dāng)重要的一個(gè)喔!
/usr/sbin/exportfs
客戶端查詢服務(wù)器分享資源的指令:
這是另一個(gè)重要的 NFS 指令。exportfs 是用在 NFS Server 端,而 showmount 則主要用在 Client 端。這個(gè) showmount 可以用來(lái)察看 NFS 分享出來(lái)的目錄資源喔!
/usr/sbin/showmount
第二步:客戶端配置
1.安裝nfs-utils客戶端
yum -y install nfs-utils
2.創(chuàng)建掛載目錄
mkdir -p /Test
3.查看服務(wù)器拋出的共享目錄信息
showmount -e 192.168.30.201
4.為了提高NFS的穩(wěn)定性,使用TCP協(xié)議掛載,NFS默認(rèn)用UDP協(xié)議
mount -t nfs 192.168.30.201:/home/Test /Test -o proto=tcp -o nolock
5.查看掛載結(jié)果
df -h
6.卸載已掛載的NFS
umount /Test
df -h