欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

linux部署NFS和autofs自動掛載實現(xiàn)過程

 更新時間:2025年09月22日 14:37:13   作者:九制橘皮茶  
文章介紹了NFS(網(wǎng)絡文件系統(tǒng))和Autofs的原理與配置,NFS通過RPC實現(xiàn)跨系統(tǒng)文件共享,需配置/etc/exports和nfs.conf,部署涉及安裝、防火墻設置及掛載,Autofs按需動態(tài)掛載文件系統(tǒng),節(jié)省資源,通過主子配置文件定義規(guī)則,支持超時卸載和錯誤處理,適用于網(wǎng)絡存儲場景

(一)NFS

1. 什么是NFS

NFS 是Network File System的縮寫,即網(wǎng)絡文件系統(tǒng)。英文Network File System(NFS),是基于TCP/IP協(xié)議的應用,可以通過網(wǎng)絡,讓不同的機器、不同的操作系統(tǒng)可以共享彼此的文件。

NFS在文件傳送或信息傳送過程中依賴于RPC服務。RPC:遠程過程調(diào)用 (Remote Procedure Call) 是能使客戶端執(zhí)行其他系統(tǒng)中程序的一種機制。

NFS服務器可以看作是一個FILE SERVER。它可以讓你的機器(客戶端)通過網(wǎng)絡將遠端的NFS SERVER共享目錄MOUNT到自己的系統(tǒng)中。

2.NFS守護進程

  • nfsd:它是基本的NFS守護進程,主要功能是管理客戶端是否能夠登錄服務器;
  • mountd:它是RPC安裝守護進程,主要功能是管理NFS的文件系統(tǒng)。當客戶端登錄到NFS服務器后,必須通過文件使用權限的驗證。它會讀取NFS的配置文件/etc/exports來對比客戶端權限。
  • portmap:主要功能是進行端口映射工作。

3.RPC服務

RPC(Remote Procedure Call)即遠程過程調(diào)用,記錄NFS服務器使用的端口號,在NFS客戶端發(fā)送請求時,將對應的端口號信息傳遞給客戶端,確??蛻舳伺c服務端能連接上。

注意:在啟動NFS服務之前,必須先啟動PRC服務,在Centos7中叫做 rpcbind 服務,否則 NFS Server 無法向RPC注冊信息,另外,如果RPC服務重啟,原來注冊的NFS服務端的信息也就失效了,也必須重啟NFS服務。特別要注意的是,修改NFS配置?件后不需要重啟NFS,只需要執(zhí)? exportfs -rv 命令即可或是 systemctl reload nfs。

4. 原理

  1. 服務端啟動RPC服務,并開啟111端口。
  2. 然后服務器端啟動NFS服務,并向RPC注冊端口信息。
  3. 客戶端啟動RPC(portmap服務),向服務端的RPC(portmap)服務請求服務端的NFS端口
  4. 服務端的RPC(portmap)服務反饋NFS端口信息給客戶端。
  5. 客戶端通過獲取的NFS端口來建立和服務端的NFS連接并進行數(shù)據(jù)的傳輸。
[root@node2 elysia]# rpcinfo -p 192.168.240.151
   program vers proto   port  service
1000004   tcp111  portmapper
1000003   tcp111  portmapper
1000002   tcp111  portmapper
1000004   udp111  portmapper
1000003   udp111  portmapper
1000002   udp111  portmapper

5. 部署

操作系統(tǒng)版本:centos 7

服務端:192.168.240.151/24(node1)

客戶端:192.168.240.152/24 (node2)

5.1安裝NFS服務

從原理可以看出,服務端和客戶端都是需要下載nfs-utils和rpcbind的。

yum -y install nfs-utils rpcbind

5.2配置防火墻

服務端和客戶端同時配置即可。

#iptables -F #使防火墻的策略恢復到默認狀態(tài),沒有任何過濾規(guī)則
#iptables-save #輸出當前的 iptables 配置和規(guī)則
#防火墻放行nfs,mountd,rpc-bind服務
firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=mountd
firewall-cmd --permanent --add-service=rpc-bind
#重載防火墻
firewall-cmd --reload

5.3創(chuàng)建服務端共享目錄

nfs服務端上建立用于nfs文件共享的目錄,并設置足夠的權限確保其他人也有寫入權限,我們創(chuàng)建一個測試文件readme.txt。

mkdir -p /mnt/shared
chmod 777 /mnt/shared
echo "hello world" > hello.txt

5.4修改服務端配置文件

NFS服務程序的配置文件為/etc/exports,默認情況下里面沒有任何內(nèi)容。我們可以按照“共享目錄的路徑允許訪問的NFS客戶端(共享權限參數(shù))”的格式,定義要共享的目錄與相應權限。

配置 NFS(網(wǎng)絡文件系統(tǒng))服務時,主要涉及兩個配置文件:/etc/exportsnfs.conf。以下是這些文件中常用的參數(shù):

(1)./etc/exports

這個文件用于定義哪些目錄可以被共享,以及它們的訪問權限。常用參數(shù)包括:

  • 共享目錄:指定要共享的目錄路徑。
  • 客戶端:指定可以訪問該目錄的客戶端,可以是 IP 地址、主機名或網(wǎng)絡段,可以使用通配符來指定網(wǎng)絡段。

訪問權限

  • rw:讀寫權限。
  • ro:只讀權限。
  • no_root_squash:允許客戶端以 root 用戶訪問共享。默認會將 root 權限映射為普通用戶。
  • root_squash:當NFS客戶端以root管理員訪問時,映射為NFS服務器的匿名用戶
  • all_squash:將所有客戶端請求映射為匿名用戶。

異步/同步

  • async:允許 NFS 在將數(shù)據(jù)寫入磁盤之前返回響應,提高性能。
  • sync:確保數(shù)據(jù)在響應前寫入磁盤,增加安全性,但性能較低。

示例

/srv/nfs 192.168.1.0/24(rw,sync,no_root_squash)

/srv/nfs/docs *.example.com(ro)

(2).nfs.conf

這個文件通常位于 /etc/nfs.conf,用于配置 NFS 服務的全局參數(shù)。常用的參數(shù)包括:

[nfs]:NFS 相關設置。

  • vers:指定 NFS 版本。
  • mountd_port:指定 mountd 的端口號。
  • rpcbind_port:指定 rpcbind 的端口號。

[rpcd]:RPC 相關設置。

我們在/etc/exports文件中加入以下行即可,nfs.conf文件有要求自行更改。

/mnt/shared 192.168.240.*(rw,sync,no_root_squash)
#/mnt/shared:服務端共享的目錄
#192.168.240.*:允許訪問的NFS客戶端,這里是一個網(wǎng)段內(nèi)的主機,也可以是某一個指定的主機
#(rw,sync,no_root_squash):共享權限參數(shù)

5.5啟動nfs并加入自啟

服務端配置即可。

systemctl start rpcbind # 啟動rpc
systemctl start nfs-server #啟動nfs
systemctl enable rpcbind  #設置開機自啟
systemctl enable nfs-server #設置開機自啟

5.6客戶端創(chuàng)建掛載目錄并掛載

掛載之前,我們可以使用showmount查看一下NFS服務端的可共享目錄:

[root@node2 ~]# showmount -e 192.168.240.151
Export list for 192.168.240.151:
/mnt/shared 192.168.240.*

NFS客戶端創(chuàng)建一個掛載目錄,使用mount命令并結合-t參數(shù),指定要掛載的文件系統(tǒng)類型,并在命令后面寫上服務器IP地址,服務器上的共享目錄以及要掛載到客戶端的目錄。

mkdir -p /mnt/nfs
mount -t nfs 192.168.240.151:/mnt/shared /mnt/nfs
#-t nfs:掛載的文件系統(tǒng)類型為nfs
#192.168.240.151:/mnt/shared:NFS服務端IP地址以及共享目錄
#/mnt/nfs:共享目錄掛載到的客戶端本地目錄

使用df -h查看掛載情況:

[root@node2 ~]# df -h | tail -n 1
192.168.240.151:/mnt/shared   18G  5.1G   13G  29% /mnt/nfs

5.7設置開機自動掛載

上面我們雖然掛載好了,但是每次開機都需要重新掛載,非常麻煩,我們只需要在/etc/fstab文件中加入以下配置即可,之后每次開機系統(tǒng)就會幫我們自動掛載了。

echo "192.168.240.151:/mnt/shared /mnt/nfs nfs defaults 0 0" >> /etc/fstab

5.8測試

客戶端進入掛載目錄,查看是否存在hello.txt文件

cd /mnt/nfs
cat hello.txt
[root@node2 ~]# cd /mnt/nfs
[root@node2 nfs]# ls
hello.txt
[root@node2 nfs]# cat hello.txt
hello world

出現(xiàn)hello.txt測試文件,配置完成。

5.9補充

卸載目錄:

umount 是一個用于卸載文件系統(tǒng)的命令。

在 Linux 和 Unix 系統(tǒng)中,使用 umount 可以安全地斷開掛載的設備或目錄。以下是 umount 的基本用法:

基本語法:

umount [選項] <掛載點或設備>

示例:

1.卸載掛載點:

umount /mnt/mydrive

這將卸載 /mnt/mydrive 目錄下的文件系統(tǒng)。

2.卸載特定設備:

umount /dev/sdb1

這將卸載 /dev/sdb1 設備。

常用選項:

  • -l:懶惰卸載,立即卸載但在文件系統(tǒng)不再被使用時才真正完成。
  • -f:強制卸載,即使設備忙也嘗試卸載。
  • --timeout:超時時間。

注意事項:

  • 在卸載之前,確保沒有進程正在使用該文件系統(tǒng)。
  • 如果有數(shù)據(jù)未寫入,則可能會導致數(shù)據(jù)丟失。

修改超時卸載時間:

在 NFS(網(wǎng)絡文件系統(tǒng))中,修改默認的超時卸載時間可以通過調(diào)整掛載選項來實現(xiàn)。NFS 的掛載通常是在 /etc/fstab 文件中配置,也可以在命令行中使用 mount 命令進行掛載。以下是如何修改默認超時卸載時間的方法:

(1).mount命令:

在掛載 NFS 文件系統(tǒng)時,可以使用 timeoretrans 選項來控制超時行為。

  • timeo:設置 NFS 客戶端的請求超時時間(以 1/10 秒為單位)。
  • retrans:設置請求失敗后重試的次數(shù)。

例如,假設你想設置超時時間為 30 秒(即 300 個 1/10 秒),并指定重試次數(shù)為 5,可以使用如下命令:

mount -o timeo=300,retrans=5 nfs_server:/path/to/share /mnt/mountpoint

(2). 修改/etc/fstab

如果希望在系統(tǒng)啟動時自動掛載 NFS,并應用相同的超時設置,可以將掛載選項添加到 /etc/fstab 文件中。

示例如下:

nfs_server:/path/to/share /mnt/mountpoint nfs defaults,timeo=300,retrans=5 0 0

注意事項

  • timeo的單位是 1/10 秒,因此在設置時需要將秒數(shù)乘以 10。
  • 調(diào)整這些參數(shù)時,請根據(jù)網(wǎng)絡條件和應用需求進行合理配置,以避免過于頻繁的重試或過長的等待時間。

(二)Autofs

與mount命令不同,autofs服務程序是一種Linux系統(tǒng)守護進程,當檢測到用戶試圖訪問一個尚未掛載的文件系統(tǒng)時,將自動掛載該文件系統(tǒng)。換句話說,將掛載信息填入/etc/fstab文件后,系統(tǒng)在每次開機時都自動將其掛載,而autofs服務程序則是在用戶需要使用該文件系統(tǒng)時才去動態(tài)掛載,從而節(jié)約了網(wǎng)絡資源和服務器的硬件資源。

autofs的缺點:autofs特點是只有?戶請求時才執(zhí)?掛載,所以當?并發(fā)訪問時,開始請求的瞬間需要執(zhí)?掛載,性能較差,因此在?并發(fā)業(yè)務場景下,寧愿保持掛載也不使?autofs?動掛載。

autofs工作原理主要基于以下幾個關鍵概念和步驟:

1. 掛載點和配置

autofs 通過配置文件來定義掛載點以及每個掛載點所對應的具體文件系統(tǒng)。

最常用的配置文件是 /etc/auto.master 和相應的子配置文件(如 /etc/auto.mnt)。

在這些文件中,你可以指定需要自動掛載的目錄及其掛載選項。

2. 事件驅(qū)動

autofs 的核心原理是事件驅(qū)動。當用戶嘗試訪問一個未掛載的目錄時,autofs 會檢測到這個訪問請求并觸發(fā)掛載操作。

這種機制使得只有在需要時才會掛載文件系統(tǒng),從而節(jié)省了系統(tǒng)資源。

3. 后臺守護進程

autofs 由一個后臺守護進程運行,通常為 automountd。該守護進程負責監(jiān)視掛載請求,并根據(jù)配置文件中的設定自動執(zhí)行掛載和卸載操作。

4. 超時機制

一旦文件系統(tǒng)被掛載,autofs 會啟動一個超時計時器。

如果在預設的時間內(nèi)沒有任何對該掛載點的訪問,autofs 將自動卸載該文件系統(tǒng)。

這一特性可以減少不必要的資源占用,同時提高系統(tǒng)性能。

5. 掛載方式

在掛載時,autofs 會調(diào)用相應的掛載命令(如 mount),并使用配置文件中指定的選項進行掛載。例如,對于 NFS,可以指定遠程服務器和共享路徑。

6. 錯誤處理

當發(fā)生錯誤(如網(wǎng)絡問題)導致掛載失敗時,autofs 能夠處理這些錯誤,并根據(jù)配置中的選項決定如何響應,例如是否重試或返回錯誤信息。

autofs 的設計理念是將掛載操作與用戶的實際需求緊密結合,通過事件驅(qū)動和超時機制實現(xiàn)高效的資源管理。其主要優(yōu)點包括:

  • 節(jié)省資源:僅在需要時掛載文件系統(tǒng)。
  • 簡化用戶操作:用戶無需手動掛載或卸載文件系統(tǒng)。
  • 自動管理:能夠自動卸載不再使用的文件系統(tǒng)。

這種機制特別適合于需要頻繁訪問網(wǎng)絡文件系統(tǒng)(如 NFS)的環(huán)境,提高了訪問效率和用戶體驗。

7. 配置autofs

autofs 是一種用于自動掛載文件系統(tǒng)的工具,通常用于在 Linux 系統(tǒng)上動態(tài)掛載 NFS 或其他類型的文件系統(tǒng)。

它使用主配置文件和子配置文件來定義掛載規(guī)則和行為。

主配置文件格式

主配置文件通常位于 /etc/auto.master,其格式如下:

/path/to/mountpoint /etc/auto.subfile --timeout=60

解釋:

  • /path/to/mountpoint:指定要掛載的目錄(掛載點)。
  • /etc/auto.subfile:指向包含子配置的文件。
  • --timeout=60:可選參數(shù),設置超時時間,表示在閑置 60 秒后卸載掛載點。

子配置文件格式

子配置文件的格式通常是在指定的文件中定義,假設為 /etc/auto.subfile,其格式如下:

key -options nfs_server:/path/to/share

解釋:

  • key:掛載點的關鍵字,通常是該掛載點的名稱,它將成為/path/to/mountpoint/key的實際掛載點。
  • -options:掛載選項,如rw(讀寫)、ro(只讀)等。
  • nfs_server:/path/to/share:指定要掛載的 NFS 服務器及共享路徑。

示例

  • 主配置文件 (/etc/auto.master)
/mnt/nfs /etc/auto.nfs --timeout=60
  • 子配置文件 (/etc/auto.nfs)
data1 -fstype=nfs,rw nfs_server:/export/data1 data2 -fstype=nfs,ro nfs_server:/export/data2

在這個示例中,當訪問 /mnt/nfs/data1 時,autofs 會自動掛載 nfs_server:/export/data1,并且允許讀寫;

訪問 /mnt/nfs/data2 時,則會自動掛載 nfs_server:/export/data2,但為只讀模式。

總結:

  • 主配置文件:定義了掛載點和關聯(lián)的子配置文件,以及一些全局選項。
  • 子配置文件:定義具體的掛載規(guī)則,包括掛載的關鍵字、選項和目標資源。

7.1安裝autofs

客戶端安裝即可

yum -y install autofs

注意,剛才做NFS實驗時,服務端和客戶端都下載rpcbindnfs-utils,如果沒下再次下載即可

yum -y install nfs-utils rpcbind

本次autofs實驗是基于上面NFS的,所以我們的autofs結合NFS一同實現(xiàn)自動掛載,服務端基本不變,我們主要修改客戶端配置。先配置服務端,這里就不多講了,和前面類似。

記得做好防火墻和selinux的相關配置,并且確保相關服務都開啟了。

7.2 服務端配置

mkdir -p /usr/elysia
chmod 777 /usr/elysia
echo "/usr/elysia 192.168.240.*(rw,sync,no_root_squash)" >> /etc/exports
exportfs -rv
[root@node1 elysia]# exportfs -rv
exporting 192.168.240.*:/mnt/shared
exporting 192.168.240.*:/usr/elysia

7.3 客戶端配置

(1). 使用showmount命令查看服務端的可共享目錄。

showmount -e 192.168.240.151
[root@node2 ~]# showmount -e 192.168.240.151
Export list for 192.168.240.151:
/mnt/shared 192.168.240.*
/usr/seele  192.168.240.*
/usr/elysia 192.168.240.* #目標目錄

包含了我們服務端創(chuàng)建的/usr/elysia目錄。

(2). 修改主配置文件

vim /etc/auto.master
加入以下行
/data   /etc/auto.misc #/data是我們想要掛載的目錄的父目錄

(3).修改子配置文件

vim /etc/auto.misc
加入以下行
elysia  -rw 192.168.240.151:/usr/elysia

注意,子配置文件的命名不一定要以".misc"為后綴。成功掛載并且cd后會自動生成/data/elysia目錄

(4).重啟autofs服務

systemctl restart autofs

(5).測試

客戶端切換到/data目錄,查看是否存在/data/elysia

[root@node2 ~]# df -h | grep elysia
[root@node2 ~]##不存在

cd到/data/elysia。

[root@node2 ~]# df -h | grep elysia
[root@node2 ~]# cd /data/elysia
[root@node2 elysia]# df -h | grep elysia
192.168.240.151:/usr/elysia   18G  5.1G   13G  29% /data/elysia
#出現(xiàn)掛載目錄,auto配置完成

7.4補充

/etc/auto.master配置可選參數(shù)
參數(shù)實現(xiàn)功能
fg/bgfg表示掛載行為在前臺執(zhí)行,bg表示掛載行為在后臺執(zhí)行。前臺執(zhí)行,則mount會持續(xù)嘗試掛載,直到成功或超時為止。后臺執(zhí)行,mount會在后臺持續(xù)多次進行mount,不會影響到前臺的程序運行。
soft/hardhard表示當兩者之間的任何一臺主機脫機,則RPC會持續(xù)地呼叫,直到對方恢復連接為止。如果是soft的話,那RPC會在超時后重復呼叫,非持續(xù)呼叫
intr當使用hard方式掛載時,若加上intr這個參數(shù),則當RPC持續(xù)呼叫時,該次的呼叫是可以被中斷的
rsize/wsize讀出(rsize)與寫入(wsize)的區(qū)塊大小,設置值可以影響客戶端與服務器端傳輸數(shù)據(jù)的緩沖記憶容量

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • centos7下如何安裝ftp服務

    centos7下如何安裝ftp服務

    這篇文章主要介紹了centos7下如何安裝ftp服務問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Linux echo文本處理命令的使用及示例

    Linux echo文本處理命令的使用及示例

    這篇文章主要介紹了Linux echo文本處理命令的使用及示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-03-03
  • CentOS 5.11服務器安裝配置LAMP服務器(Apache+PHP5+MySQL)

    CentOS 5.11服務器安裝配置LAMP服務器(Apache+PHP5+MySQL)

    這篇文章主要介紹了CentOS 5.11服務器安裝配置LAMP服務器(Apache+PHP5+MySQL),需要的朋友可以參考下
    2016-10-10
  • linux expect 自動登錄交換機保存配置的方法

    linux expect 自動登錄交換機保存配置的方法

    今天小編就為大家分享一篇linux expect 自動登錄交換機保存配置的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Linux如何使用libudev獲取USB設備VID及PID

    Linux如何使用libudev獲取USB設備VID及PID

    這篇文章主要介紹了Linux如何使用libudev獲取USB設備VID及PID,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-09-09
  • Linux 系統(tǒng)下安裝JDK1.8的教程詳解

    Linux 系統(tǒng)下安裝JDK1.8的教程詳解

    這篇文章主要介紹了Linux 系統(tǒng)下安裝JDK1.8的教程詳解,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-11-11
  • git bash配置ssh 登錄 Linux的方法

    git bash配置ssh 登錄 Linux的方法

    今天小編就為大家分享一篇git bash配置ssh 登錄 Linux的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • apache 局域網(wǎng)訪問配置方案

    apache 局域網(wǎng)訪問配置方案

    linux下局域網(wǎng)訪問配置文件,大家可以參考下,安全設置
    2008-07-07
  • Linux系統(tǒng)用戶如何添加到用戶組

    Linux系統(tǒng)用戶如何添加到用戶組

    這篇文章主要介紹了Linux系統(tǒng)用戶如何添加到用戶組問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • centos7下NFS使用與配置的步驟

    centos7下NFS使用與配置的步驟

    本篇文章主要介紹了centos7下NFS使用與配置的步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09

最新評論