套用至 SUSE Linux Enterprise Desktop 12 SP2

24 使用 NFS 共享檔案系統

摘要

透過網路配送和共享檔案系統在公司環境中極為常見。這種成熟的網路檔案系統 (NFS) 可與 NIS (黃頁通訊協定) 配合使用。如需與 LDAP 和 Kerberos 配合使用且更加安全的通訊協定,請核取 NFSv4 (預設值)。若與 pNFS 結合使用,可以消除效能瓶頸。

NFS 與 NIS 攜手能讓使用者對網路有清楚的瞭解。可以使用 NFS 透過網路配送任意檔案系統。如果安裝妥當,使用者將會發現,不論他們目前使用的是哪個終端機,他們始終處於同一個環境中。

24.1 術語

YaST 模組中使用了下列詞彙。

輸出

由 NFS 伺服器輸出的目錄,用戶端可將該目錄整合到其系統中。

NFS 用戶端

NFS 用戶端是指透過「網路檔案系統」通訊協定使用 NFS 伺服器提供之 NFS 服務的系統。TCP/IP 通訊協定已整合到 Linux 核心中;不需要安裝任何其他軟體。

NFS 伺服器

NFS 伺服器向用戶端提供 NFS 服務。執行中的伺服器依賴於下列精靈運作:nfsd (工作者)、idmapd (使用者及群組名稱至 ID 的映射,反之亦然)、statd (檔案鎖定) 及 mountd (掛接要求)。

NFSv3

NFSv3 是第 3 版實作,即支援用戶端驗證的無狀態 NFS。

NFSv4

NFSv4 是新版 (第 4 版) 實作,支援透過 kerberos 的安全使用者驗證。NFSv4 只需要一個連接埠,因此比 NFSv3 更適合在防火牆後的環境中使用。

協定的定義如 http://tools.ietf.org/html/rfc3530 所示。

pNFS

平行 NFS,NFSv4 的通訊協定延伸。所有 pNFS 用戶端都可以直接存取 NFS 伺服器上的資料。

24.2 安裝 NFS 伺服器

若要安裝和設定 NFS 伺服器,請參閱相應的 SUSE Linux Enterprise Server 文件。

24.3 設定用戶端

您不需安裝其他軟體就能將您的主機設定為 NFS 用戶端。所有需要的套件預設都會安裝。

24.3.1 以 YaST 輸入檔案系統

授權使用者可以使用 YaST NFS 用戶端模組將NFS 目錄從 NFS 伺服器掛接到本地檔案樹。請執行下列步驟:

程序 24.1 輸入 NFS 目錄
  1. 啟動 YaST NFS 用戶端模組。

  2. NFS 共用索引標籤中按一下新增。輸入 NFS 伺服器的主機名稱、要輸入的目錄和在本地掛接此目錄的掛接點。

  3. 使用 NFSv4 時,在NFS 設定標籤中選取 啟用 NFSv4。另外,NFSv4 網域名稱必須包含 NFSv4 伺服器所用的相同值。預設網域為 localdomain

  4. 若要為 NFS 使用 Kerberos 驗證,則 GSS 安全性必須啟用。選取啟用 GSS 安全性

  5. 如果您要使用防火牆並希望允許遠端電腦存取服務,請啟用NFS 設定索引標籤中的在防火牆中開啟埠。防火牆的狀態顯示於核取方塊旁。

  6. 按一下確定,儲存變更。

組態將會寫入 /etc/fstab 中,並會掛接指定的檔案系統。當您稍後啟動 YaST 組態用戶端時,它也會從這個檔案讀取現有組態。

提示
提示:用做根檔案系統的 NFS

在透過網路將根分割區掛接為 NFS 共用的 (無磁碟) 系統中,設定 NFS 共用可供存取的網路裝置時請保持謹慎。

將系統關閉或重新開機時,預設的處理順序是先關閉網路連接,然後卸載根分割區。對於 NFS 根分割區,這種順序會造成問題,因為在尚未與 NFS 共用啟動網路連接的情況下,根分割區無法完全卸載。為防止系統停用相關的網路裝置,請依第 16.4.1.2.5 節 「啟動網路裝置」中所述開啟網路裝置組態索引標籤,然後在裝置啟動窗格中選取在 NFSroot 時

24.3.2 手動輸入檔案系統

從 NFS 伺服器手動輸入檔案系統的先決條件是有 RPC 埠對應程式正在執行。nfs 服務負責正確啟動該程式;因此,請以 root 身分輸入 systemctl start nfs,以啟動該服務。接著,可以像處理本地分割區一樣,使用 mount 指令在檔案系統中掛接遠端檔案系統︰

mount host:remote-pathlocal-path

例如,若要從 nfs.example.com 機器輸入使用者目錄,可以使用︰

mount nfs.example.com:/home /home

24.3.2.1 使用自動裝載服務

autofs 精靈可用於自動掛接遠端檔案系統。請將下列項目加入 /etc/auto.master 檔案:

/nfsmounts /etc/auto.nfs

如果能正確填入 auto.nfs 檔案,/nfsmounts 目錄此後便會成為用戶端上所有 NFS 掛接作業的根部。選擇 auto.nfs 這個名稱是從方便角度考量,您可以自行選擇任何名稱。使用以下指令在 auto.nfs 中為所有 NFS 掛接作業新增項目︰

localdata -fstype=nfs server1:/data
nfs4mount -fstype=nfs4 server2:/

root 身分執行 systemctl start autofs 以啟動設定。在此範例中,server1/data 目錄 /nfsmounts/localdata 會掛接 NFS,而 server2/nfsmounts/nfs4mount 會掛接 NFSv4。

如果在 autofs 服務執行期間有程式編輯了 /etc/auto.master 檔案,則必須使用 systemctl restart autofs 重新啟動自動掛載器,才能使變更生效。

24.3.2.2 手動編輯 /etc/fstab

/etc/fstab 中典型的 NFSv3 掛接項目如下:

nfs.example.com:/data /local/path nfs rw,noauto 0 0

對於 NFSv4 掛接,請在第三欄中使用 nfs4 而不是 nfs

nfs.example.com:/data /local/pathv4 nfs4 rw,noauto 0 0

noauto 選項可防止在啟動時自動掛接檔案系統。如果要手動掛接各檔案系統,可以縮短掛接指令的長度,僅指定掛接點︰

mount /local/path
注意
注意:啟動時掛接

請注意,如果未輸入 noauto 選項,系統的 init 程序檔會在啟動時處理這些檔案系統的掛接。

24.3.3 平行 NFS (pNFS)

NFS 是最舊的通訊協定之一,開發於八十年代。雖然如此,NFS 對於共用小型檔案還是綽綽有餘的。但是,如果您要傳輸大型檔案或大量用戶端想要存取資料,NFS 伺服器將會成為瓶頸,並對系統效能造成明顯影響。出現這種情況的原因是檔案大小快速變大,而乙太網路的相對速度無法完全跟上這一變化。

當您申請一般NFS 伺服器中的檔案時,該伺服器會尋找檔案中繼資料、收集所有資料並透過網路將其傳輸至您的用戶端。但是,不論檔案的大小,效能瓶頸都會變得很明顯:

  • 對於小型檔案,大部分時間都用在收集中繼資料上。

  • 對於大型檔案,大部分時間則用在將資料從伺服器傳輸至用戶端上。

pNFS (或平行 NFS) 克服了這個局限性,因為它將檔案系統中繼資料與資料位置分隔開來。因此,pNFS 需要兩種類型的伺服器:

  • 中繼資料控制伺服器,用於處理所有非資料流量

  • 一或多個儲存伺服器,用於存放資料

中繼資料與儲存伺服器構成了一個邏輯 NFS 伺服器。當用戶端想要讀取或寫入時,中繼資料伺服器會告知 NFSv4 用戶端使用哪個儲存伺服器來存取檔案區塊。用戶端可以直接存取伺服器上的資料。

SUSE Linux Enterprise 僅支援在用戶端上的 pNFS。

24.3.3.1 使用 YaST 設定 pNFS 用戶端

程序 24.1, 「輸入 NFS 目錄」 中所示繼續操作,但要按一下pNFS (v4.1)核取方塊並選擇性地按一下NFSv4 共享。YaST 會執行所有必要的步驟,並將所有需要的選項寫入檔案 /etc/exports

24.3.3.2 手動設定 pNFS 用戶端

請參閱第 24.3.2 節 「手動輸入檔案系統」 開始設定。大部分組態均由 NFSv4 伺服器執行。對於 pNFS,唯一的差異是將 minorversion 選項和中繼資料伺服器 MDS 伺服器新增至 mount 指令:

mount -t nfs4 -o minorversion=1 MDS_SERVER MOUNTPOINT

為了協助進行除錯,請在 /proc 檔案系統中變更該值:

echo 32767 > /proc/sys/sunrpc/nfsd_debug
echo 32767 > /proc/sys/sunrpc/nfs_debug

24.4 更多資訊

除了 exportsnfsmount 的 man 頁面以外,/usr/share/doc/packages/nfsidmap/README 中也提供了有關設定 NFS 伺服器和用戶端的資訊。如需更多線上文件,請參閱下列網站:

列印此頁面