歡迎光臨
每天分享高質量文章

如何使用 autofs 掛載 NFS 共享 | Linux 中國

給你的網路檔案系統(NFS)配置一個基本的自動掛載功能。

— Alan Formy-duval

 

大多數 Linux 檔案系統在引導時掛載,併在系統執行時保持掛載狀態。對於已在 fstab 中配置的任何遠端檔案系統也是如此。但是,有時你可能希望僅按需掛載遠端檔案系統。例如,透過減少網路頻寬使用來提高效能,或出於安全原因隱藏或混淆某些目錄。autofs 軟體包提供此功能。在本文中,我將介紹如何配置基本的自動掛載。

首先做點假設:假設有臺 NFS 伺服器 tree.mydatacenter.net 已經啟動並執行。另外假設一個名為 ourfiles 的資料目錄還有供 Carl 和 Sarah 使用的使用者目錄,它們都由伺服器共享。

一些最佳實踐可以使工作更好:伺服器上的使用者和任何客戶端工作站上的帳號有相同的使用者 ID。此外,你的工作站和伺服器應有相同的域名。檢查相關配置檔案應該確認。

  1. alan@workstation1:~$ sudo getent passwd carl sarah
  2. [sudo] password for alan:
  3. carl:x:1020:1020:Carl,,,:/home/carl:/bin/bash
  4. sarah:x:1021:1021:Sarah,,,:/home/sarah:/bin/bash
  5. alan@workstation1:~$ sudo getent hosts
  6. 127.0.0.1 localhost
  7. 127.0.1.1 workstation1.mydatacenter.net workstation1
  8. 10.10.1.5 tree.mydatacenter.net tree

如你所見,客戶端工作站和 NFS 伺服器都在 hosts 檔案中配置。我假設這是一個基本的家庭甚至小型辦公室網路,可能缺乏適合的內部域名服務(即 DNS)。

安裝軟體包

你只需要安裝兩個軟體包:用於 NFS 客戶端的 nfs-common 和提供自動掛載的 autofs

  1. alan@workstation1:~$ sudo apt-get install nfs-common autofs

你可以驗證 autofs 相關的檔案是否已放在 /etc 目錄中:

  1. alan@workstation1:~$ cd /etc; ll auto*
  2. -rw-r--r-- 1 root root 12596 Nov 19 2015 autofs.conf
  3. -rw-r--r-- 1 root root 857 Mar 10 2017 auto.master
  4. -rw-r--r-- 1 root root 708 Jul 6 2017 auto.misc
  5. -rwxr-xr-x 1 root root 1039 Nov 19 2015 auto.net*
  6. -rwxr-xr-x 1 root root 2191 Nov 19 2015 auto.smb*
  7. alan@workstation1:/etc$

配置 autofs

現在你需要編輯其中幾個檔案並新增 auto.home 檔案。首先,將以下兩行新增到檔案 auto.master 中:

  1. /mnt/tree  /etc/auto.misc
  2. /home/tree  /etc/auto.home

每行以掛載 NFS 共享的目錄開頭。繼續建立這些目錄:

  1. alan@workstation1:/etc$ sudo mkdir /mnt/tree /home/tree

接下來,將以下行新增到檔案 auto.misc

  1. ourfiles        -fstype=nfs     tree:/share/ourfiles

該行表示 autofs 將掛載 auto.master 檔案中匹配 auto.misc 的 ourfiles 共享。如上所示,這些檔案將在 /mnt/tree/ourfiles 目錄中。

第三步,使用以下行建立檔案 auto.home

  1. *               -fstype=nfs     tree:/home/&

該行表示 autofs 將掛載 auto.master 檔案中匹配 auto.home 的使用者共享。在這種情況下,Carl 和 Sarah 的檔案將分別在目錄 /home/tree/carl 或 /home/tree/sarah中。星號 *(稱為萬用字元)使每個使用者的共享可以在登入時自動掛載。 符號也可以作為表示伺服器端使用者目錄的萬用字元。它們的主目錄會相應地根據 passwd 檔案對映。如果你更喜歡本地主目錄,則無需執行此操作。相反,使用者可以將其用作特定檔案的簡單遠端儲存。

最後,重啟 autofs 守護行程,以便識別並載入這些配置的更改。

  1. alan@workstation1:/etc$ sudo service autofs restart

測試 autofs

如果更改檔案 auto.master 中的列出目錄,並執行 ls 命令,那麼不會立即看到任何內容。例如,切換到目錄 /mnt/tree。首先,ls 的輸出不會顯示任何內容,但在執行 cd ourfiles 之後,將自動掛載 ourfiles 共享目錄。 cd 命令也將被執行,你將進入新掛載的目錄中。

  1. carl@workstation1:~$ cd /mnt/tree
  2. carl@workstation1:/mnt/tree$ ls
  3. carl@workstation1:/mnt/tree$ cd ourfiles
  4. carl@workstation1:/mnt/tree/ourfiles$

為了進一步確認正常工作,mount 命令會顯示已掛載共享的細節。

  1. carl@workstation1:~$ mount
  2. tree:/mnt/share/ourfiles on /mnt/tree/ourfiles type nfs4 (rw,relatime,vers=4.0,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.10.1.22,local_lock=none,addr=10.10.1.5)

對於 Carl 和 Sarah,/home/tree 目錄工作方式相同。

我發現在我的檔案管理器中新增這些目錄的書簽很有用,可以用來快速訪問。

已同步到看一看
贊(0)

分享創造快樂