章 27. 使用 NFS 共享檔案系統

目錄

27.1. 術語
27.2. 安裝 NFS 伺服器
27.3. 設定 NFS 伺服器
27.4. 設定用戶端
27.5. 如需更多資訊

摘要

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

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

27.1. 術語

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

輸出

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

NFS 用戶端

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

NFS 伺服器

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

pNFS

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

27.2. 安裝 NFS 伺服器

在進行預設安裝時並不會安裝 NFS 伺服器軟體。如果依第 27.3 節「設定 NFS 伺服器」 中所示設定 NFS 伺服器,系統會自動提示您安裝必要的套件。或者,使用 YaST 或 zypper 安裝套件 nfs-kernel-server

NFS 與 NIS 一樣,都是主從式系統。但一台機器可同時扮演這兩種角色 — 它可透過網路提供檔案系統 (輸出),也可以從其他主機掛接檔案系統 (輸入)。

27.3. 設定 NFS 伺服器

NFS 伺服器可透過 YaST 來設定,也可以手動設定。若要進行驗證,還可以將 NFS 與 Kerberos 結合使用。

27.3.1. NFS 搭配使用 Kerberos

若要為 NFS 使用 Kerberos 驗證,則 GSS 安全性必須啟用。在初始 &YaST NFS 伺服器對話方塊中選取啟用 GSS 安全性。您必須有一個工作中的 Kerberos 伺服器才能使用此功能。YaST 不會設定該伺服器,只會使用所提供的功能。如果除了 YaST 組態之外,您還要使用 Kerberos 驗證,請在執行 NFS 組態之前至少完成以下步驟︰

  1. 請確定伺服器和用戶端位於相同的 Kerberos 領域中。它們必須存取相同的 KDC (金鑰配送中心) 伺服器,並共享它們的 krb5.keytab 檔案 (所有機器上的預設位置都是 /etc/krb5.keytab)。如需有關 Kerberos 的詳細資訊,請參閱第 6 章「Network Authentication with Kerberos」 (↑安全性指南)

  2. 請以 rcgssd start 來啟動用戶端上的 gssd 服務。

如需有關設定啟用 Kerberos 之 NFS 的詳細資訊,請參閱第 27.5 節「如需更多資訊」 中的連結所提供的內容。

27.4. 設定用戶端

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

27.4.1. 以 YaST 輸入檔案系統

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

過程 27.1. 輸入 NFS 目錄

  1. 啟動 YaST NFS 用戶端模組。

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

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

  4. 使用 NFSv4 時,請確定選取了啟用 NFSv4核取方塊,並且NFSv4 網域名稱中的值與 NFSv4 伺服器使用的值相同。預設網域為 localdomain

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

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

27.4.2. 手動輸入檔案系統

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

mount host:remote-pathlocal-path

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

mount nfs.example.com:/home /home

27.4.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 身分使用 rcautofs start 啟動設定。在此範例中,server1/data 目錄 /nfsmounts/localdata 會掛接 NFS,而 server2/nfsmounts/nfs4mount 會掛接 NFSv4。

如果 /etc/auto.master 檔案在 autofs 服務的執行過程中被編輯,則必須使用 rcautofs restart 重新啟動自動掛載器,才能使變更生效。

27.4.2.2. 手動編輯 /etc/fstab

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

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

NFSv4 掛接也可以新增至 /etc/fstab 檔案。對於這些掛接項目,請在第三欄中使用 nfs4 (而非使用 nfs),並確定遠端檔案系統在第一欄中的 nfs.example.com: 之後以 / 提供。/etc/fstab 中的 NFSv4 掛接範例行如下:

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

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

mount /local/path

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

27.4.3. 平行 NFS (pNFS)

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

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

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

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

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

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

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

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

SUSE Linux Enterprise 僅對用戶端支援 pNFS。

27.4.3.1. 使用 YaST 設定 pNFS 用戶端

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

27.4.3.2. 手動設定 pNFS 用戶端

請參閱第 27.4.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

27.5. 如需更多資訊

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


SUSE Linux Enterprise Desktop 管理指南 11 SP3