0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一文讀懂NFS服務(wù)器

阿銘linux ? 來源:阿銘linux ? 2023-01-11 09:09 ? 次閱讀

NFS服務(wù)會經(jīng)常用到,它用于在網(wǎng)絡(luò)上共享存儲。舉例來說,假如有3臺機器A、B和C,它們需要訪問同一個目錄,且目錄中都是圖片。傳統(tǒng)的做法是把這些圖片分別放到A、B、C中,但若使用NFS,只需要把圖片放到A上,然后A共享給B和C即可。訪問B和C時,是通過網(wǎng)絡(luò)的方式去訪問A上的那個目錄的。

63c59f4a-913f-11ed-bfe3-dac502259ad0.png

18.1服務(wù)端配置NFS

在Rocky8上使用NFS服務(wù)需要安裝兩個包(nfs-utils和rpcbind),不過當使用yum工具安裝nfs-utils時會一并安裝rpcbind,如下所示:

# yum install -y nfs-utils
早期的CentOS版本是需要安裝portmap包的,從CentOS 6開始,就改為安裝rpcbind包了。配置NFS比較簡單,只需要編輯配置文件/etc/exports。下面阿銘就先創(chuàng)建一個簡單的NFS服務(wù)器。 首先修改配置文件(默認該文件為空),如下所示:
# vim /etc/exports //寫入如下內(nèi)容:
/home/nfstestdir 192.168.72.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
這個配置文件就一行,共分為三部分。第一部分是本地要共享出去的目錄,第二部分是允許訪問的主機(可以是一個IP,也可以是一個IP段),第三部分就是小括號里面的一些權(quán)限選項。關(guān)于第三部分,阿銘簡單介紹一下。

rw:表示讀/寫。

ro:表示只讀。

sync:同步模式,表示內(nèi)存中的數(shù)據(jù)實時寫入磁盤。

async:非同步模式,表示把內(nèi)存中的數(shù)據(jù)定期寫入磁盤。

no_root_squash:加上這個選項后,root用戶就會對共享的目錄擁有至高的權(quán)限控制,就像是對本機的目錄操作一樣。但這樣安全性降低。

root_squash:與no_root_squash選項對應(yīng),表示root用戶對共享目錄的權(quán)限不高,只有普通用戶的權(quán)限,即限制了root。

all_squash:表示不管使用NFS的用戶是誰,其身份都會被限定為一個指定的普通用戶身份。

anonuid/anongid:要和root_squash以及all_squash選項一同使用,用于指定使用NFS的用戶被限定后的uid和gid,但前提是本機的/etc/passwd中存在相應(yīng)的uid和gid。

介紹了NFS的相關(guān)權(quán)限選項后,阿銘再來分析一下剛剛配置的/etc/exports文件。假設(shè)要共享的目錄為/home/nfstestdir,信任的主機為192.168.72.0/24這個網(wǎng)段,權(quán)限為讀/寫,同步模式,限定所有使用者,并且限定的uid和gid都為1000。 編輯好配置文件后創(chuàng)建相關(guān)目錄并啟動NFS服務(wù),如下所示:

# mkdir /home/nfstestdir
# systemctl start rpcbind
# systemctl start nfs-server
# systemctl enable rpcbind
# systemctl enable nfs-server
在啟動NFS服務(wù)之前,需要先啟動rpcbind服務(wù)(CentOS的老版本中為portmap)。

18.2客戶端掛載NFS

做本節(jié)課實驗最好是打開另外一臺虛擬機,如果你的計算機資源吃緊,也可以在一臺機器上操作,即客戶端、服務(wù)端為一臺機器。阿銘的兩臺虛擬機IP地址分別為192.168.72.128和192.168.72.129,其中提供NFS服務(wù)的是192.168.72.128。在客戶端掛載NFS之前,我們需要先查看服務(wù)端共享了哪些目錄??蛻舳耍?2.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,信任主機為192.168.72.0/24這個網(wǎng)段。 然后在客戶端上(72.129)掛載NFS,如下所示:
# mount -t nfs 192.168.72.128:/home/nfstestdir /mnt/
# df -h
文件系統(tǒng) 容量  已用  可用 已用% 掛載點
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可以看到增加了一個/mnt分區(qū),它就是NFS共享的目錄了。進入到/mnt/目錄下,并創(chuàng)建測試文件:
# cd /mnt/
# touch aminglinux.txt
touch: 無法創(chuàng)建"aminglinux.txt": 權(quán)限不夠
這是因為在服務(wù)端(72.128)上創(chuàng)建的/home/nfstestdir目錄權(quán)限不合適,掛載后相當于被限制為uid為1000的用戶,解決該問題需要在服務(wù)端(72.128)上修改/home/nfstestdir目錄權(quán)限:
# chmod 777 /home/nfstestdir/
然后再到客戶端上(188.129)創(chuàng)建測試文件:
# 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命令的常用選項為-a、-r、-u和-v,各選項的含義如下。

-a:表示全部掛載或者卸載。

-r:表示重新掛載。

-u:表示卸載某一個目錄。

-v:表示顯示共享的目錄。

當改變/etc/exports配置文件后,使用exportfs命令掛載不需要重啟NFS服務(wù)。接下來阿銘做一個試驗,首先修改服務(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命令。其實用mount命令來掛載NFS服務(wù)是有講究的,它要用-t nfs來指定掛載的類型為nfs。另外在掛載NFS服務(wù)時,常用-o nolock選項(即不加鎖)。例如在客戶端(72.129)上執(zhí)行如下命令:
# mkdir /aminglinux
# mount -t nfs -o nolock 192.168.72.128:/tmp/ /aminglinux/
你還可以把要掛載的NFS目錄寫到客戶端上的/etc/fstab文件中,掛載時只需要執(zhí)行mount -a命令。例如在/etc/fstab文件里增加一行,如下所示:
192.168.72.128:/tmp/ /aminglinux     nfs     defaults,nolock         0 0
由于剛剛已掛載了NFS,需要先卸載,執(zhí)行如下命令:
# umount /aminglinux
然后重新掛載,執(zhí)行如下命令:
# mount -a
這樣操作的好處是以后開機會自動掛載NFS。剛剛掛載的/aminglinux/目錄在服務(wù)端設(shè)置為了no_root_squash,它并不會限制root用戶,也就是說使用root用戶創(chuàng)建文件時,跟在客戶端本機上創(chuàng)建的一樣。下面是實驗過程:
# 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。





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 虛擬機
    +關(guān)注

    關(guān)注

    1

    文章

    897

    瀏覽量

    27972
  • NFS
    NFS
    +關(guān)注

    關(guān)注

    1

    文章

    52

    瀏覽量

    26065
  • UUID
    +關(guān)注

    關(guān)注

    0

    文章

    22

    瀏覽量

    8091

原文標題:一篇文章學(xué)會NFS

文章出處:【微信號:aming_linux,微信公眾號:阿銘linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Linux開發(fā)_CentOS7.4服務(wù)器搭建NFS、NGINX服務(wù)器,安裝ffmpeg、Qt環(huán)境

    在CentOS7.4服務(wù)器版本的環(huán)境下搭建NFS服務(wù)器、安裝ffmpeg、安裝nginx服務(wù)器、部署Qt編譯環(huán)境。
    的頭像 發(fā)表于 07-14 13:45 ?1491次閱讀
    Linux開發(fā)_CentOS7.4<b class='flag-5'>服務(wù)器</b>搭建<b class='flag-5'>NFS</b>、NGINX<b class='flag-5'>服務(wù)器</b>,安裝ffmpeg、Qt環(huán)境

    【AWorks試用體驗】+NFS服務(wù)器搭建

    NFS服務(wù)器NFS服務(wù)啟動后,可以在Linux主機上進行自測。測試的基本方法為:將已經(jīng)設(shè)定好的NFS共享目錄mount(掛載)到另外
    發(fā)表于 08-18 15:51

    第四課:NFS服務(wù)器的配置

    NFS的客戶端應(yīng)用可以透明地讀寫位于遠端NFS服務(wù)器上的文件,就像訪問本地文件樣。介紹NFS安裝步驟1、執(zhí)行命令:sudo apt-get
    發(fā)表于 09-07 07:18

    【OK210試用體驗】之(4)——NFS服務(wù)器的搭建

    。$ sudoapt-get install nfs-kernel-server2.設(shè)置NFS-Server目錄。修改/etc/exports文件,在其中增加NFS服務(wù)器目錄。
    發(fā)表于 09-09 00:34

    TQ210 NFS服務(wù)器的配置和使用

      這講將介紹怎么在虛擬機的Linux系統(tǒng)上安裝NFS服務(wù)器,然后在TQ210v6開發(fā)板上的Linux上掛載nfs共享文件夾,實現(xiàn)虛擬機和開發(fā)板的文件共享,方便把編譯好的程序復(fù)制到開
    發(fā)表于 11-23 15:35

    4412開發(fā)板學(xué)習(xí)筆記-NFS服務(wù)器的搭建

    /exports,使用 vi 命令打開/etc/exports在其中增加NFS服務(wù)器目錄。 NFS服務(wù)器可以共享多個
    發(fā)表于 06-20 14:29

    ubuntu下搭建NFS服務(wù)器

    ubuntu下搭建NFS服務(wù)器如何在ubuntu下搭建NFS服務(wù)器,是困擾很多人的個問題,下面是ubuntu下搭建
    發(fā)表于 11-02 16:08

    百度云服務(wù)器怎么使用nfs ,tftp

    我自己買了個百度云服務(wù)器來學(xué)習(xí)嵌入式使用,云服務(wù)器上有兩個ip地址,個公網(wǎng)的個內(nèi)網(wǎng)的,在服務(wù)器上配置好了
    發(fā)表于 04-24 15:30

    如何配置NFS文件存儲服務(wù)器?

    配置NFS文件存儲服務(wù)器的方法步驟
    發(fā)表于 11-05 06:10

    在windows下也可以搭建nfs和tftp服務(wù)器為開發(fā)板提供服務(wù)

    Windows下TFTP的服務(wù)器軟件有哪些?在windows下也可以搭建nfs和tftp服務(wù)器為開發(fā)板提供服務(wù)嗎?
    發(fā)表于 12-27 06:40

    AIO-3399J NFS服務(wù)器實現(xiàn)掛載

    、服務(wù)器安裝1. 安裝NFS服務(wù)器sudo apt-get install nfs-kernel-server安裝過程中可能會出現(xiàn)下面的錯
    發(fā)表于 06-10 15:02

    嵌入式linux實現(xiàn)mount掛載nfs服務(wù)器拷貝文件

    nfs服務(wù)器般在本地虛擬機ubuntu搭建nfs服務(wù)器就行,具體流程,可以查看我的博客ubuntu下n
    發(fā)表于 11-01 17:07 ?1次下載
    嵌入式linux實現(xiàn)mount掛載<b class='flag-5'>nfs</b><b class='flag-5'>服務(wù)器</b>拷貝文件

    瑞芯為RK3568開發(fā)板搭建NFS服務(wù)器

    瑞芯為RK3568開發(fā)板搭建NFS服務(wù)器
    的頭像 發(fā)表于 05-24 14:10 ?1128次閱讀
    瑞芯為RK3568開發(fā)板搭建<b class='flag-5'>NFS</b><b class='flag-5'>服務(wù)器</b>

    通過掛載NFS服務(wù)器鏡像安裝操作系統(tǒng)的方法

    通過調(diào)用Redfish接口并在BMC Web門戶啟動KVM,可掛載NFS服務(wù)器鏡像從而安裝操作系統(tǒng)。
    的頭像 發(fā)表于 09-25 10:17 ?1483次閱讀

    讀懂,什么是BLE?

    讀懂,什么是BLE?
    的頭像 發(fā)表于 11-27 17:11 ?2003次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>讀懂</b>,什么是BLE?