溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

十一、NFS服務(wù)器配置和管理

發(fā)布時間:2020-07-27 10:55:38 來源:網(wǎng)絡(luò) 閱讀:601 作者:少年不在了 欄目:建站服務(wù)器

11.1、NFS簡介

 NFS是Network File System的縮寫,中文名為網(wǎng)絡(luò)文件系統(tǒng),它是一種能使安裝了不同操作系統(tǒng)的計算機之間通過網(wǎng)絡(luò)進行共享的網(wǎng)絡(luò)協(xié)議。由于NFS可以快速地進行文件共享,有效地提供資源的利用率,節(jié)省本地磁盤空間,方便集中管理,所以應(yīng)用廣泛。

  NFS采用C/S工作模式,NFS服務(wù)器設(shè)置好共享文件目錄后,其他的NFS客戶端就可以把這個由遠端服務(wù)器共享出來的目錄到本地系統(tǒng)上的某個自行定義的掛載點,并進行使用。

十一、NFS服務(wù)器配置和管理

  NFS支持的功能很多,而不同的功能由不同的程序來實現(xiàn),每啟動一個功能就需要打開一些端口進行數(shù)據(jù)傳輸。所以與其他大部分的C/S結(jié)構(gòu)不同,NFS并不是監(jiān)聽一些固定端口,而是隨機采用一些未被使用的小于1024的端口作為數(shù)據(jù)傳輸。但是客戶端需要連接服務(wù)器時首先必須知道服務(wù)端程序提供服務(wù)的端口,而NFS端口的隨機性為客戶端連接帶來了麻煩,為此NFS使用了遠程過程調(diào)用RPC(Remote Procedure Call)來解決。

  當(dāng)NFS啟動時,它會隨機地使用服務(wù)器上未被使用的小于1024的端口來為服務(wù)端口,然后會把端口號、進程ID和監(jiān)聽IP等信息在RPC服務(wù)中注冊。這樣一來,RPC服務(wù)就知道各個NFS功能對應(yīng)的服務(wù)端口,當(dāng)客戶端通過固定端口111連接上RPC服務(wù)后,RPC就會把NFS各個功能所對應(yīng)的端口號返回給客戶端。至此,客戶端就可以通過這些端口直接與NFS進行通信。

十一、NFS服務(wù)器配置和管理

11.2、NFS服務(wù)器安裝與配置

  NFS服務(wù)器主要設(shè)計的軟件有rpcbind和nfs-utils,它們分別是RPC和NFS主程序,關(guān)于這兩個軟件包,其作用分別為:

  rpcbind:監(jiān)聽端口111/tcp, 111/udp,最主要的功能就是在指定每個NFS功能所對應(yīng)的端口號,并且匯報給客戶端,讓客戶端可以連結(jié)到正確的端口上去。

  nfs-utils:NFS的主程序,監(jiān)聽端口2049/tcp, 2049/udp,包括提供NFS服務(wù)所需要的rpc.nfsd和rpc.mountd兩個守護進程和其他相關(guān)配置文件。 

[root@localhost home]# yum install -y rpcbind nfs-utils   #yum安裝軟件包
[root@localhost home]# rpm -ql rpcbind      #查看文件的具體安裝路徑
/etc/rc.d/init.d/rpcbind                    #rpcbind自動啟動腳本
/sbin/rpcbind                               #主程序
/usr/sbin/rpcinfo
/usr/share/doc/rpcbind-0.2.0                #文檔
/usr/share/doc/rpcbind-0.2.0/AUTHORS
/usr/share/doc/rpcbind-0.2.0/ChangeLog
/usr/share/doc/rpcbind-0.2.0/README
/usr/share/man/man8/rpcbind.8.gz           #幫助文件
/usr/share/man/man8/rpcinfo.8.gz
/var/cache/rpcbind

#啟動NFS服務(wù)時,先啟動rpcbind,后啟動nfs服務(wù)
[root@localhost home]# service rpcbind start   #啟動rpcbind
Starting rpcbind: [  OK  ]
[root@localhost home]# service nfs start       #啟動nfs
Starting NFS services:  [  OK  ]
Starting NFS mountd: [  OK  ]
Starting NFS daemon: [  OK  ]
Starting RPC idmapd: [  OK  ]

#關(guān)閉NFS服務(wù)時,先關(guān)閉nfs服務(wù),后關(guān)閉rpcbind服務(wù)
[root@localhost home]# service nfs stop
Shutting down NFS daemon: [  OK  ]
Shutting down NFS mountd: [  OK  ]
Shutting down RPC idmapd: [  OK  ]
[root@localhost home]# service rpcbind stop
Stopping rpcbind: [  OK  ]

  NFS服務(wù)端的配置文件通過/etc/exports配置文件來實現(xiàn),更改配置文件后需要通過exports命令使更改后的配置生效。

  • exports配置文件

  /etc/exports文件是NFS主要的配置文件,該文件用于設(shè)置服務(wù)器的共享目錄,以及目錄允許訪問的主機、訪問權(quán)限等信息。NFS安裝后會在/etc目錄下創(chuàng)建一個空白的exports文件,即沒有任何的共享目錄,用戶需要進行手工編輯。文件每一行定義了一個共享目錄,其格式為:

共享目錄 [客戶端1(選項1,選項2 ...)]   [客戶端2(選項1,選項2 ...)] ...

  共享目錄與各客戶端之間以空格進行分隔,除了共享目錄以外,其他內(nèi)容可選。


  共享目錄:提供NFS客戶端使用的目錄

  客戶端:可以訪問共享目錄的計算機,可以通過IP地址和主機名進行指定,也可以使用子網(wǎng)掩碼指定網(wǎng)段或者使用通配符'*'或'?'進行模糊指定。

  選項:指定該共享目錄的訪問權(quán)限,如果不指定,則NFS使用默認選項。

客戶端示例:

客戶端說明
Demoserver主機名為Demoserver的計算機
10.0.0.71IP地址為10.0.0.71的計算機
192.168.2.0/24子網(wǎng)192.168.2.0中的所有計算機
host?.example.com?表示任意字符
*.example.com.example.com域中的所有計算機
*所有計算機

客戶端常用選項:

客戶端選項說明
ro客戶端只能以只讀方式訪問共享目錄中的文件,不能寫入
rw對共享目錄可讀寫
sync將數(shù)據(jù)同步寫入內(nèi)存與硬盤中
async
異步IO方式,數(shù)據(jù)會先暫存在內(nèi)存中,待需要時再寫入硬盤
secure
限制NFS服務(wù)只能使用小于1024端口號進行數(shù)據(jù)傳輸
insecure
使用大于1024端口
wdelay
如果多個客戶端要對同一目錄進行讀寫,則將這些操作集中執(zhí)行
no_wdelay
有寫操作則立即寫入,當(dāng)設(shè)置了async選項時,該選項無效
hide
共享目錄時,不共享目錄中的子目錄
no_hide
共享子目錄
subtree_check
強制NFS檢查共享目錄父目錄的權(quán)限
no_subtree_check
不檢查父目錄權(quán)限
all_squash
不管登錄NFS的使用者是什么身份,都把他的UID和GID映射為匿名用戶和用戶組
no_all_squash保留用戶原來的UID和GID,不進行映射
anonuid指定NFS服務(wù)器使用/etc/passwd文件中UID為該值的用戶作為匿名用戶,應(yīng)該盡量保持客戶端和服務(wù)器端用戶UID的一致性
anongid指定NFS服務(wù)器使用/etc/group文件中GID為該值的用戶作為匿名用戶組
root_squash如果登錄NFS服務(wù)器使用共享目錄的使用者是root,則把這個使用者的權(quán)限映射為匿名用戶
no_root_squash如果登錄NFS服務(wù)器使用共享目錄的使用者是root,保留它的root權(quán)限,這可能會導(dǎo)致嚴(yán)重的安全問題
  • exportfs命令:輸出共享目錄

 NFS服務(wù)啟動時,會讀取/etc/exports配置文件的內(nèi)容,把文件中設(shè)置的共享目錄輸出,供客戶端使用。在NFS服務(wù)啟動后,如果要對/etc/exports進行更改,需要通過exportfs對共享目錄進行輸出,其命令格式為:

/usr/sbin/exportfs [-avi] [-o options,..] [client:/path ..]
/usr/sbin/exportfs -r [-v]
/usr/sbin/exportfs [-av] -u [client:/path ..]
/usr/sbin/exportfs [-v]
/usr/sbin/exportfs -f

常用選項:

-a:全部輸出或取消輸出所有的共享目錄

-i:忽略/etc/exports配置文件,而使用默認或命令行中指定的選項

-o:指定輸出的客戶端選項

-r:重新讀取/etc/exports中的配置,并同步/var/lib/nfs/xtab與/etc/exports的內(nèi)容

-u:取消一個或多個共享目錄的輸出

-v:如果不跟其他選項一起使用,則顯示當(dāng)前共享的所有目錄及他們的選項設(shè)置,如果輸出或取消輸出共享目錄,則顯示進行了那些操作

11.3、NFS客戶端配置

  要在NFS客戶端上使用服務(wù)器的共享目錄,需要在本地主機上啟動rpcbind服務(wù),然后使用showmount命令查看NFS服務(wù)器共享的目錄有哪些,使用mkdir命令在本地建立共享目錄的掛載點,最后使用mount命令掛載共享目錄到本地。

  showmount命令格式為:

showmount  [選項]  [主機IP或名稱]

常用選項:

-a:一般在NFS服務(wù)器上使用,用于顯示已經(jīng)掛載服務(wù)器共享目錄的客戶端及他們使用的共享目錄

-d:與-a類似,但只顯示目錄,不顯示具體客戶端

-e:顯示指定NFS服務(wù)器輸出的共享目錄列表

-h:顯示幫助信息

-v:顯示版本信息

--no-headers:不輸出標(biāo)題信息

  掛載點可以由用戶自行指定,創(chuàng)建掛載點后,就可以掛載共享目錄,掛載共享目錄使用的命令與掛載本地文件系統(tǒng)的命令一樣,使用mount命令,其格式為:

mount  [選項]  NFS服務(wù)器IP或主機名:共享目錄  掛載點

常用選項:

選項說明
-t nfs指定要掛載的文件系統(tǒng)類型為NFS
-o ro只讀掛載的文件系統(tǒng)為只讀
-o rw可讀寫
-o rsize=n指定NFS服務(wù)器上讀文件時NFS使用的塊大小,單位字節(jié)
-o wsize=n指定NFS服務(wù)器上寫文件時NFS使用的塊大小,單位字節(jié)
-o timeo=n指定超時后重新發(fā)送請求的延時時間,單位十分之一秒
-o retrans=n指定放棄掛載前嘗試的次數(shù)
-o acregmin=n指定文件在緩沖中存放的最小時間,單位秒
-o acregmax=n指定文件在緩沖中存放的最大時間,單位秒
-o acdirmin=n指定目錄在緩沖中存放的最小時間,單位秒
-o acdirmax=n指定目錄在緩沖中存放的最大時間,單位秒
-o actime=n該選項值代替acregmin,acregmax,acdirmin,acdirmax,把這四個值設(shè)為一樣
-o retry=n指定放棄掛載前嘗試的時間,單位分鐘
-o port=n指定連接NFS服務(wù)器使用的端口號
-o proto=n指定掛載NFS文件系統(tǒng)時使用的網(wǎng)絡(luò)協(xié)議
-o fg使用前臺方式完成掛載工作
-o bg使用后臺方式完成掛載工作
-o hard如果超時,則在控制臺顯示server not responding的錯誤信息并重復(fù)嘗試連接,直到恢復(fù)為止
-o soft如果連接超時,則返回I/O錯誤給請求的程序
-o intr如果NFS文件操作超時,而使用了hard方式掛載,允許中斷文件操作
-o noac禁止緩存,強制進行同步寫
-o fsc啟動本地磁盤緩存

11.4、使用autofs按需掛載共享目錄

  傳統(tǒng)NFS共享目錄使用方式中,客戶端要掛載共享目錄一般是通過手工執(zhí)行mount命令或在fstab文件中配置開機自動掛在這兩種方式完成。但是,NFS客戶端與服務(wù)器之間不是永久連接,而NFS一個缺點是當(dāng)客戶端和服務(wù)器連接后,任何一方離線都可能導(dǎo)致另一方不斷等待超時。同時,可能很多用戶掛載了共享目錄,但實際沒有使用,導(dǎo)致NFS服務(wù)器資源的消耗,為了解決這些問題,一般做法是使用autofs服務(wù),僅在訪問時動態(tài)掛載共享目錄。

  autofs是一個按需掛載文件系統(tǒng)的程序,可以直接使用yum安裝。

[root@localhost ~]# yum install -y autofs
[root@localhost ~]# service autofs start
Loading autofs4: [  OK  ]
Starting automount: [  OK  ]

  /etc/auto.master是autofs的主配置文件,配置格式為:

掛載點頂層目錄  映射文件

  掛載點頂層目錄: 例如要把共享目錄掛在到/nfs/public目錄下,那么這里的值就設(shè)置為/nfs, 而/nfs/public不需要手工創(chuàng)建

  映射文件:該文件是由用戶自行指定并創(chuàng)建,在該文件中設(shè)置的NFS系統(tǒng)應(yīng)該如何掛載

映射文件格式:

掛載點  [-掛載選項]  NFS服務(wù)器名或IP:共享目錄

  其中,掛載點是基于auto.master文件中所設(shè)置的'掛載點頂層目錄'的相對路徑。配置文件更改后需要重啟autofs服務(wù)式配置生效,也可以使用reload重載。

配置實例

  假設(shè)NFS服務(wù)器nfsserver所輸出的共享目錄有4個,/tmp,/sharefiles/public, /sharefiles/private,/media/cdrom,exports文件具體內(nèi)容為:

[root@localhost ~]# cat /etc/exports 
/tmp                     192.168.191.*(rw,no_root_squash)
/sharefiles/public       192.168.191.*(rw,all_squash,anonuid=40,anongid=40)
/sharefiles/private      192.168.191.*(rw)
/media/cdrom             192.168.191.*(ro)

要通過autofs服務(wù)把這些目錄都掛載到本地

/nfs/tmp
/nfs/public
/nfs/private
/nfs/cdrom

創(chuàng)建掛載點頂層目錄

[root@localhost ~]# mkdir /nfs

編輯/etc/automaster文件,添加如下內(nèi)容:

/nfs    /etc/auto.nfs

編輯/etc/auto.nfs映射文件:

[root@localhost ~]# cat /etc/auto.nfs 
tmp        -  192.168.191.128:/tmp
public     -  192.168.191.128:/sharefiles/public
private    -  192.168.191.128:/sharefiles/private
cdrom      -  192.168.191.128:/media/cdrom

重啟autofs服務(wù):

[root@localhost nfs]# service autofs reload
Reloading maps
[root@localhost home]# cd /nfs/           #進入nfs目錄,目錄為空
[root@localhost nfs]# ls            
[root@localhost nfs]# ls /nfs/cdrom       #訪問各掛載的目錄
cdrom.txt
[root@localhost nfs]# ls /nfs/private
private
[root@localhost nfs]# ls /nfs/public
public
[root@localhost nfs]# ls /nfs/tmp
yum.log
[root@localhost nfs]# ls                  #當(dāng)訪問時,掛載的目錄才出現(xiàn)
cdrom  private  public  tmp


向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI