
透過網路配送和共享檔案系統在公司環境中極為常見。這種成熟的網路檔案系統 (NFS) 可與 NIS (黃頁通訊協定) 配合使用。如需與 LDAP 和 Kerberos 配合使用且更加安全的通訊協定,請核取 NFSv4 (預設值)。若與 pNFS 結合使用,可以消除效能瓶頸。
NFS 與 NIS 攜手能讓使用者對網路有清楚的瞭解。可以使用 NFS 透過網路配送任意檔案系統。如果安裝妥當,使用者將會發現,不論他們目前使用的是哪個終端機,他們始終處於同一個環境中。
YaST 模組中使用了下列詞彙。
由 NFS 伺服器輸出的目錄,用戶端可將該目錄整合到其系統中。
NFS 用戶端是指透過「網路檔案系統」通訊協定使用 NFS 伺服器提供之 NFS 服務的系統。TCP/IP 通訊協定已整合到 Linux 核心中;不需要安裝任何其他軟體。
NFS 伺服器向用戶端提供 NFS 服務。執行中的伺服器依賴於下列精靈運作:nfsd (工作者)、idmapd (使用者及群組名稱至 ID 的映射,反之亦然)、statd (檔案鎖定) 及 mountd (掛接要求)。
NFSv3 是第 3 版實作,即支援用戶端驗證的「舊」無狀態 NFS。
NFSv4 是新版 (第 4 版) 實作,支援透過 kerberos 的安全使用者驗證。NFSv4 只需要一個連接埠,因此比 NFSv3 更適合在防火牆後的環境中使用。
協定的定義如 http://tools.ietf.org/html/rfc3530 所示。
平行 NFS,NFSv4 的通訊協定延伸。所有 pNFS 用戶端都可以直接存取 NFS 伺服器上的資料。
若要安裝和設定 NFS 伺服器,請參閱相應的 SUSE Linux Enterprise Server 文件。
您不需安裝其他軟體就能將您的主機設定為 NFS 用戶端。所有需要的套件預設都會安裝。
授權使用者可以使用 YaST NFS 用戶端模組將NFS 目錄從 NFS 伺服器掛接到本地檔案樹。請執行下列步驟:
啟動 YaST NFS 用戶端模組。
在索引標籤中按一下。輸入 NFS 伺服器的主機名稱、要輸入的目錄和在本地掛接此目錄的掛接點。
使用 NFSv4 時,在標籤中選取 。另外,必須包含 NFSv4 伺服器所用的相同值。預設網域為 localdomain。
若要為 NFS 使用 Kerberos 驗證,則 GSS 安全性必須啟用。選取。
如果您要使用防火牆並希望允許遠端電腦存取服務,請啟用索引標籤中的。防火牆的狀態顯示於核取方塊旁。
按一下,儲存變更。
組態將會寫入 /etc/fstab 中,並會掛接指定的檔案系統。當您稍後啟動 YaST 組態用戶端時,它也會從這個檔案讀取現有組態。
在透過網路將根分割區掛接為 NFS 共用的 (無磁碟) 系統中,設定 NFS 共用可供存取的網路裝置時請保持謹慎。
將系統關閉或重新開機時,預設的處理順序是先關閉網路連接,然後卸載根分割區。對於 NFS 根分割區,這種順序會造成問題,因為在尚未與 NFS 共用啟動網路連接的情況下,根分割區無法完全卸載。為防止系統停用相關的網路裝置,請依第 16.4.1.2.5 節 「啟動網路裝置」中所述開啟網路裝置組態索引標籤,然後在窗格中選取。
從 NFS 伺服器手動輸入檔案系統的先決條件是有 RPC 埠對應程式正在執行。nfs 服務負責正確啟動該程式;因此,請以 root 身分輸入 systemctl start nfs,以啟動該服務。接著,可以像處理本地分割區一樣,使用 mount 指令在檔案系統中掛接遠端檔案系統︰
mount host:remote-pathlocal-path
例如,若要從 nfs.example.com 機器輸入使用者目錄,可以使用︰
mount nfs.example.com:/home /home
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 重新啟動自動掛載器,才能使變更生效。
/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 程序檔會在啟動時處理這些檔案系統的掛接。
NFS 是最舊的通訊協定之一,開發於八十年代。雖然如此,NFS 對於共用小型檔案還是綽綽有餘的。但是,如果您要傳輸大型檔案或大量用戶端想要存取資料,NFS 伺服器將會成為瓶頸,並對系統效能造成明顯影響。出現這種情況的原因是檔案大小快速變大,而乙太網路的相對速度無法完全跟上這一變化。
當您申請「一般」NFS 伺服器中的檔案時,該伺服器會尋找檔案中繼資料、收集所有資料並透過網路將其傳輸至您的用戶端。但是,不論檔案的大小,效能瓶頸都會變得很明顯:
對於小型檔案,大部分時間都用在收集中繼資料上。
對於大型檔案,大部分時間則用在將資料從伺服器傳輸至用戶端上。
pNFS (或平行 NFS) 克服了這個局限性,因為它將檔案系統中繼資料與資料位置分隔開來。因此,pNFS 需要兩種類型的伺服器:
中繼資料或控制伺服器,用於處理所有非資料流量
一或多個儲存伺服器,用於存放資料
中繼資料與儲存伺服器構成了一個邏輯 NFS 伺服器。當用戶端想要讀取或寫入時,中繼資料伺服器會告知 NFSv4 用戶端使用哪個儲存伺服器來存取檔案區塊。用戶端可以直接存取伺服器上的資料。
SUSE Linux Enterprise 僅支援在用戶端上的 pNFS。
依程序 24.1, 「輸入 NFS 目錄」 中所示繼續操作,但要按一下核取方塊並選擇性地按一下。YaST 會執行所有必要的步驟,並將所有需要的選項寫入檔案 /etc/exports。
請參閱第 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
除了 exports、nfs 和 mount 的 man 頁面以外,/usr/share/doc/packages/nfsidmap/README 中也提供了有關設定 NFS 伺服器和用戶端的資訊。如需更多線上文件,請參閱下列網站:
如需詳細的線上技術文件,請造訪 SourceForge。
如需設定已監督之 NFS 的指示,請參閱 NFS 第 4 版開放原始碼實作參考。
如果您有任何關於 NFSv4 的問題,請參閱 Linux NFSv4 常見問答集。