跳至內容跳至頁面導覽:上一頁 [access key p]/下一頁 [access key n]
documentation.suse.com / SUSE Linux Enterprise Server 文件 / 儲存管理指南 / 網路儲存 / 使用 Autofs 視需要掛接
適用範圍 SUSE Linux Enterprise Server 15 SP3

21 使用 Autofs 視需要掛接

autofs 是一個程式,可以根據需要掛接指定的目錄。它以核心模組為基礎,效率很高,並且可以管理本地目錄和網路共用。這些自動掛接點僅在存取時掛接,一段時間不使用後即會卸載。這種按需行為可節省頻寬,在效能上優於 /etc/fstab 管理的靜態掛接。雖然 autofs 是一個控制程序檔,但是 automount 才是執行實際自動掛接的指令 (精靈)。

21.1 安裝

SUSE Linux Enterprise Server 上預設未安裝 autofs。若要使用它的自動掛接功能,請先使用以下指令進行安裝

tux > sudo zypper install autofs

21.2 組態

您需要使用 vim 之類的文字編輯器編輯 autofs 的組態檔案,來手動設定該工具。設定 autofs 有兩個基本步驟 — master 映射檔案與特定映射檔案。

21.2.1 Master 映射檔案

autofs 的預設 master 映射檔案是 /etc/auto.master。若要變更其位置,可以在 /etc/sysconfig/autofs 檔案中變更 DEFAULT_MASTER_MAP_NAME 選項的值。以下是 SUSE Linux Enterprise Server 中預設 master 映射檔案的內容:

#
# Sample auto.master file
# This is an automounter map and it has the following format
# key [ -mount-options-separated-by-comma ] location
# For details of the format look at autofs(5).1
#
#/misc  /etc/auto.misc2
#/net -hosts
#
# Include /etc/auto.master.d/*.autofs3
#
#+dir:/etc/auto.master.d
#
# Include central master map if it can be found using
# nsswitch sources.
#
# Note that if there are entries for /net or /misc (as
# above) in the included master map any keys that are the
# same will not be seen as the first read key seen takes
# precedence.
#
+auto.master4

1

autofs 手冊頁 (man 5 autofs) 提供了許多有關自動掛載器映射的重要資訊。

2

雖然依預設透過 # 列為注釋,但是這是簡單的自動掛載器映射語法的範例。

3

如果您需要將 master 映射拆分為幾個檔案,請將該行取消注釋標記,並將映射 (字尾為 .autofs) 置於 /etc/auto.master.d/ 目錄中。

4

+auto.master 可確保 NIS (請參閱Section 3.1, “Configuring NIS servers”瞭解 NIS 詳細資訊) 的使用者仍可找到其 master 映射。

auto.master 中的項目有三個欄位,語法如下:

mount point      map name      options
掛接點

用於掛接 autofs 檔案系統的基本位置,例如 /home

映射名稱

要用於掛接之映射來源的名稱。如需映射檔案的語法,請參閱第 21.2.2 節 「映射檔案」

選項

這些選項 (若指定) 依預設將套用至給定映射中的所有項目。

提示
提示:更多資訊

如需選用映射類型格式選項之特定值的詳細資訊,請參閱 auto.master 手冊頁 (man 5 auto.master)。

auto.master 中的以下項目指示 autofs 檢視 /etc/auto.smb,並在 /smb 目錄中建立掛接點:

/smb   /etc/auto.smb

21.2.1.1 直接掛接

直接掛接可在相關映射檔案內指定的路徑中建立掛接點。它並不在 auto.master 中指定掛接點,而是以 /- 取代掛接點欄位。例如,下面一行指示 autofsauto.smb 中指定的位置建立掛接點:

/-        /etc/auto.smb
提示
提示:不含完整路徑的映射

如果未以映射檔案的完整本地或網路路徑指定映射檔案,則會使用名稱服務開關 (NSS) 組態尋找映射檔案。

/-        auto.smb

21.2.2 映射檔案

重要
重要:其他映射類型

雖然檔案是使用 autofs 自動掛接之映射的最常見類型,但是還有其他一些類型。映射規格可以是指令的輸出,也可以是 LDAP 或資料庫中查詢的結果。如需映射類型的詳細資訊,請參閱手冊頁 man 5 auto.master

映射檔案指定 (本地或網路) 來源位置,掛接點則指出在本地將來源掛接在何處。映射的一般格式與 master 映射相似。區別在於選項出現在掛接點與位置之間,而不是項目的末尾:

mount point      options      location

確定對應檔案未標示為可執行檔。可透過執行 chmod -x MAP_FILE 移除可執行檔位元。

mount point

指定將來源掛接在何處。這可以是要新增至 auto.master 中所指定基礎掛接點的單個目錄名稱 (亦稱為間接掛接),也可以是掛接點的完整路徑 (直接掛接,請參閱第 21.2.1.1 節 「直接掛接」)。

options

為相關項目指定選用的掛接選項清單,掛接選項以逗號分隔。如果 auto.master 還包含此映射檔案的選項,這些選項會附加在後面。

location

指定要掛接的檔案系統的來源,通常是 NFS 或 SMB 磁區,一般表示為主機名稱:路徑名稱。如果要掛接的檔案系統以「/」開頭 (例如本地 /dev 項目或 smbfs 共用),需要前置冒號符號「:」,例如 :/dev/sda1

21.3 操作與除錯

本節介紹如何控制 autofs 服務操作,以及如何在調整自動掛載器操作時檢視更多除錯資訊。

21.3.1 控制 autofs 服務

autofs 服務的操作由 systemd 控制。對 autofs 而言,systemctl 指令的一般語法是

tux > sudo systemctl SUB_COMMAND autofs

其中,SUB_COMMAND 是下列項目之一:

enable

在開機時啟動自動掛載器精靈。

start

啟動自動掛載器精靈。

stop

停止自動掛載器精靈。自動掛接點不可存取。

status

列印 autofs 服務的目前狀態以及部分相關記錄檔。

restart

停止然後啟動自動掛載器,以便終止所有執行中的精靈,然後再啟動新的精靈。

reload

檢查目前的 auto.master 映射,重新啟動項目已變更的精靈,然後啟動新項目的新精靈。

21.3.2 對自動掛載器問題除錯

如果您在使用 autofs 掛接目錄時遇到問題,實用的方法是手動執行 automount 精靈並觀看其輸出訊息:

  1. 停止 autofs

    tux > sudo systemctl stop autofs
  2. 從一個終端機在前景手動執行 automount,以產生詳細輸出。

    tux > sudo automount -f -v
  3. 從另一個終端機嘗試透過存取掛接點 (例如,透過 cdls) 掛接自動掛接的檔案系統。

  4. 從第一個終端機檢查 automount 的輸出,以瞭解有關掛接為何失敗或者甚至為何未嘗試掛接的更多資訊。

21.4 自動掛接 NFS 共用

下面的程序說明如何設定 autofs 以自動掛接網路上可用的 NFS 共用。該程序要用到上文中的資訊,並假設您熟悉 NFS 輸出。如需 NFS 詳細資訊,請參閱第 19 章 「使用 NFS 共用檔案系統

  1. 編輯映射檔案 /etc/auto.master

    tux > sudo vim /etc/auto.master

    /etc/auto.master 末尾為新的 NFS 掛接新增項目:

    /nfs      /etc/auto.nfs      --timeout=10

    此指令指示 autofs 基礎掛接點是 /nfs,在 /etc/auto.nfs 映射中指定 NFS 共用,並且此映射中的所有共用在 10 秒未使用後會自動卸載。

  2. 為 NFS 共用建立新的映射檔案:

    tux > sudo vim /etc/auto.nfs

    /etc/auto.nfs 中,通常每個 NFS 共用對應單獨一行內容,第 21.2.2 節 「映射檔案」中包含其格式的詳細描述。新增一行,說明掛接點及 NFS 共用網路位址:

    export      jupiter.com:/home/geeko/doc/export

    上面一行表示系統會應要求將 jupiter.com 主機上的 /home/geeko/doc/export 目錄自動掛接到本地主機上的 /nfs/export 目錄 (/nfs 取自 auto.master 映射)。/nfs/export 目錄將由 autofs 自動建立。

  3. 如果您先前靜態掛接了相同的 NFS 共用,則可以選擇性地將 /etc/fstab 中相關的行列為注釋。該行應類似於:

    #jupiter.com:/home/geeko/doc/export /nfs/export nfs defaults 0 0
  4. 重新載入 autofs 並檢查它是否正常運作:

    tux > sudo systemctl restart autofs
    # ls -l /nfs/export
    total 20
    drwxr-xr-x  5 1001 users 4096 Jan 14  2017 .images/
    drwxr-xr-x 10 1001 users 4096 Aug 16  2017 .profiled/
    drwxr-xr-x  3 1001 users 4096 Aug 30  2017 .tmp/
    drwxr-xr-x  4 1001 users 4096 Apr 25 08:56 manual/

    如果您能看到遠端共用上的檔案清單,則表示 autofs 正常工作。

21.5 進階主題

本節描述了 autofs 基本介紹以外的主題 — 自動掛接網路上可用的 NFS 共用,在映射檔案中使用萬用字元以及有關 CIFS 檔案系統特定的資訊。

21.5.1 /net 掛接點

如果您使用許多 NFS 共用,則這個掛接點非常有用。/net 會根據需要自動掛接本地網路上的所有 NFS 共用。該項目已存在於 auto.master 檔案中,因此,您只需取消其注釋標記並重新啟動 autofs 即可:

/net      -hosts
tux > sudo systemctl restart autofs

例如,如果您有個名為 jupiter 的伺服器以及名為 /export 的 NFS 共用,您可以在指令行上鍵入下列指令進行掛接:

tux > sudo cd /net/jupiter/export

21.5.2 使用萬用字元自動掛接子目錄

如果您的某個目錄含有多個子目錄,並且您需要個別自動掛接這些子目錄 (一般情況下,該目錄是包含各個使用者主目錄的 /home 目錄),autofs 提供了便捷的解決方案。

對於主目錄,請在 auto.master 中新增下面一行:

/home      /etc/auto.home

現在,您需要將正確的映射新增至 /etc/auto.home 檔案,以便自動掛接使用者的主目錄。有個解決方案是為每個目錄建立獨立的項目:

wilber      jupiter.com:/home/wilber
penguin      jupiter.com:/home/penguin
tux      jupiter.com:/home/tux
[...]

這種方法非常麻煩,因為您需要在 auto.home 中管理使用者清單。您可以使用星號「*」而不是掛接點,使用和號「&」而不是要掛接的目錄。

*      jupiter:/home/&

21.5.3 自動掛接 CIFS 檔案系統

如果您要自動掛接 SMB/CIFS 共用 (有關 SMB/CIFS 協定的詳細資訊,請參閱第 20 章 「Samba),則需要修改映射檔案的語法。在選項欄位中新增 -fstype=cifs,並在共用位置前面加上冒號「:」。

mount point      -fstype=cifs      ://jupiter.com/export