NFS服務(wù)會(huì)經(jīng)常用到,它用于在網(wǎng)絡(luò)上共享存儲(chǔ)。舉例來(lái)說(shuō),假如有3臺(tái)機(jī)器A、B和C,它們需要訪(fǎng)問(wèn)同一個(gè)目錄,且目錄中都是圖片。傳統(tǒng)的做法是把這些圖片分別放到A、B、C中,但若使用NFS,只需要把圖片放到A上,然后A共享給B和C即可。訪(fǎng)問(wèn)B和C時(shí),是通過(guò)網(wǎng)絡(luò)的方式去訪(fǎng)問(wèn)A上的那個(gè)目錄的。
18.1服務(wù)端配置NFS
在Rocky8上使用NFS服務(wù)需要安裝兩個(gè)包(nfs-utils和rpcbind),不過(guò)當(dāng)使用yum工具安裝nfs-utils時(shí)會(huì)一并安裝rpcbind,如下所示:
# yum install -y nfs-utils早期的CentOS版本是需要安裝portmap包的,從CentOS 6開(kāi)始,就改為安裝rpcbind包了。配置NFS比較簡(jiǎn)單,只需要編輯配置文件/etc/exports。下面阿銘就先創(chuàng)建一個(gè)簡(jiǎn)單的NFS服務(wù)器。 首先修改配置文件(默認(rèn)該文件為空),如下所示:
# vim /etc/exports //寫(xiě)入如下內(nèi)容: /home/nfstestdir 192.168.72.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)這個(gè)配置文件就一行,共分為三部分。第一部分是本地要共享出去的目錄,第二部分是允許訪(fǎng)問(wèn)的主機(jī)(可以是一個(gè)IP,也可以是一個(gè)IP段),第三部分就是小括號(hào)里面的一些權(quán)限選項(xiàng)。關(guān)于第三部分,阿銘簡(jiǎn)單介紹一下。
rw:表示讀/寫(xiě)。
ro:表示只讀。
sync:同步模式,表示內(nèi)存中的數(shù)據(jù)實(shí)時(shí)寫(xiě)入磁盤(pán)。
async:非同步模式,表示把內(nèi)存中的數(shù)據(jù)定期寫(xiě)入磁盤(pán)。
no_root_squash:加上這個(gè)選項(xiàng)后,root用戶(hù)就會(huì)對(duì)共享的目錄擁有至高的權(quán)限控制,就像是對(duì)本機(jī)的目錄操作一樣。但這樣安全性降低。
root_squash:與no_root_squash選項(xiàng)對(duì)應(yīng),表示root用戶(hù)對(duì)共享目錄的權(quán)限不高,只有普通用戶(hù)的權(quán)限,即限制了root。
all_squash:表示不管使用NFS的用戶(hù)是誰(shuí),其身份都會(huì)被限定為一個(gè)指定的普通用戶(hù)身份。
anonuid/anongid:要和root_squash以及all_squash選項(xiàng)一同使用,用于指定使用NFS的用戶(hù)被限定后的uid和gid,但前提是本機(jī)的/etc/passwd中存在相應(yīng)的uid和gid。
介紹了NFS的相關(guān)權(quán)限選項(xiàng)后,阿銘再來(lái)分析一下剛剛配置的/etc/exports文件。假設(shè)要共享的目錄為/home/nfstestdir,信任的主機(jī)為192.168.72.0/24這個(gè)網(wǎng)段,權(quán)限為讀/寫(xiě),同步模式,限定所有使用者,并且限定的uid和gid都為1000。 編輯好配置文件后創(chuàng)建相關(guān)目錄并啟動(dòng)NFS服務(wù),如下所示:
# mkdir /home/nfstestdir # systemctl start rpcbind # systemctl start nfs-server # systemctl enable rpcbind # systemctl enable nfs-server在啟動(dòng)NFS服務(wù)之前,需要先啟動(dòng)rpcbind服務(wù)(CentOS的老版本中為portmap)。
18.2客戶(hù)端掛載NFS
做本節(jié)課實(shí)驗(yàn)最好是打開(kāi)另外一臺(tái)虛擬機(jī),如果你的計(jì)算機(jī)資源吃緊,也可以在一臺(tái)機(jī)器上操作,即客戶(hù)端、服務(wù)端為一臺(tái)機(jī)器。阿銘的兩臺(tái)虛擬機(jī)IP地址分別為192.168.72.128和192.168.72.129,其中提供NFS服務(wù)的是192.168.72.128。在客戶(hù)端掛載NFS之前,我們需要先查看服務(wù)端共享了哪些目錄。客戶(hù)端(72.129)安裝nfs-utils包后,可以使用showmount命令查看,如下所示:
# showmount -e 192.168.72.128 Export list for 192.168.72.128: /home/nfstestdir 192.168.72.0/24使用命令showmount -e IP就可以查看NFS的共享情況,從上例我們可以看到192.168.72.128的共享目錄為/home/nfstestdir,信任主機(jī)為192.168.72.0/24這個(gè)網(wǎng)段。 然后在客戶(hù)端上(72.129)掛載NFS,如下所示:
# mount -t nfs 192.168.72.128:/home/nfstestdir /mnt/ # df -h 文件系統(tǒng) 容量 已用 可用 已用% 掛載點(diǎn) devtmpfs 888M 0 888M 0% /dev tmpfs 904M 0 904M 0% /dev/shm tmpfs 904M 8.7M 895M 1% /run tmpfs 904M 0 904M 0% /sys/fs/cgroup /dev/sda3 28G 6.2G 22G 23% / /dev/sda1 190M 127M 49M 73% /boot tmpfs 181M 0 181M 0% /run/user/0 192.168.72.128:/home/nfstestdir 28G 6.2G 22G 23% /mnt使用命令df -h可以看到增加了一個(gè)/mnt分區(qū),它就是NFS共享的目錄了。進(jìn)入到/mnt/目錄下,并創(chuàng)建測(cè)試文件:
# cd /mnt/ # touch aminglinux.txt touch: 無(wú)法創(chuàng)建"aminglinux.txt": 權(quán)限不夠這是因?yàn)樵诜?wù)端(72.128)上創(chuàng)建的/home/nfstestdir目錄權(quán)限不合適,掛載后相當(dāng)于被限制為uid為1000的用戶(hù),解決該問(wèn)題需要在服務(wù)端(72.128)上修改/home/nfstestdir目錄權(quán)限:
# chmod 777 /home/nfstestdir/然后再到客戶(hù)端上(188.129)創(chuàng)建測(cè)試文件:
# cd /mnt/ # touch aminglinux.txt # ls -l 總用量 0 -rw-r--r-- 1 mysql mysql 0 7月 1 22:16 aminglinux.txt # id aming uid=1000(mysql) gid=1000(mysql) 組=1000(mysql)可以看到創(chuàng)建的新文件aminglinux.txt所有者和所屬組為mysql,其uid和gid都為1000。
18.3命令exportfs
exportfs命令的常用選項(xiàng)為-a、-r、-u和-v,各選項(xiàng)的含義如下。
-a:表示全部掛載或者卸載。
-r:表示重新掛載。
-u:表示卸載某一個(gè)目錄。
-v:表示顯示共享的目錄。
當(dāng)改變/etc/exports配置文件后,使用exportfs命令掛載不需要重啟NFS服務(wù)。接下來(lái)阿銘做一個(gè)試驗(yàn),首先修改服務(wù)端(72.128)的配置文件,如下所示:
# vim /etc/exports #增加一行: /tmp/ 192.168.72.0/24(rw,sync,no_root_squash)然后在服務(wù)端(72.128)上執(zhí)行如下命令:
# exportfs -arv exporting 192.168.72.0/24:/tmp exporting 192.168.72.0/24:/home/nfstestdir在上一節(jié)用到了mount命令。其實(shí)用mount命令來(lái)掛載NFS服務(wù)是有講究的,它要用-t nfs來(lái)指定掛載的類(lèi)型為nfs。另外在掛載NFS服務(wù)時(shí),常用-o nolock選項(xiàng)(即不加鎖)。例如在客戶(hù)端(72.129)上執(zhí)行如下命令:
# mkdir /aminglinux # mount -t nfs -o nolock 192.168.72.128:/tmp/ /aminglinux/你還可以把要掛載的NFS目錄寫(xiě)到客戶(hù)端上的/etc/fstab文件中,掛載時(shí)只需要執(zhí)行mount -a命令。例如在/etc/fstab文件里增加一行,如下所示:
192.168.72.128:/tmp/ /aminglinux nfs defaults,nolock 0 0由于剛剛已掛載了NFS,需要先卸載,執(zhí)行如下命令:
# umount /aminglinux然后重新掛載,執(zhí)行如下命令:
# mount -a這樣操作的好處是以后開(kāi)機(jī)會(huì)自動(dòng)掛載NFS。剛剛掛載的/aminglinux/目錄在服務(wù)端設(shè)置為了no_root_squash,它并不會(huì)限制root用戶(hù),也就是說(shuō)使用root用戶(hù)創(chuàng)建文件時(shí),跟在客戶(hù)端本機(jī)上創(chuàng)建的一樣。下面是實(shí)驗(yàn)過(guò)程:
# cd /aminglinux/ # touch 1.txt # ls -l 1.txt -rw-r--r-- 1 root root 1113 7月 1 22:19 1.txt可以看到1.txt的所有者和所屬組全部為root。
審核編輯:劉清
-
虛擬機(jī)
+關(guān)注
關(guān)注
1文章
919瀏覽量
28325 -
NFS
+關(guān)注
關(guān)注
1文章
53瀏覽量
26129 -
UUID
+關(guān)注
關(guān)注
0文章
22瀏覽量
8145
原文標(biāo)題:一篇文章學(xué)會(huì)NFS
文章出處:【微信號(hào):aming_linux,微信公眾號(hào):阿銘linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論