連線 NFS 用戶端

本頁說明如何連線至 NFS 用戶端。

事前準備

根據 Linux 發行版類型安裝 NFS 用戶端工具,準備好用戶端:

RedHat

執行下列指令:

sudo yum install -y nfs-utils

SuSe

執行下列指令:

sudo yum install -y nfs-utils

Debian

執行下列指令:

sudo apt-get install nfs-common

Ubuntu

執行下列指令:

sudo apt-get install nfs-common

使用匯出政策控管磁碟區存取權

NFSv3 和 NFSv4.1 的磁碟區存取權控管機制是以用戶端的 IP 位址為依據。 磁碟區的匯出政策最多可包含 20 條匯出規則。每項規則都是以半形逗號分隔的 IP 或網路 CIDR 清單,定義可掛接磁碟區的允許的用戶端。規則也會定義用戶端擁有的存取權類型,例如「讀取和寫入」或「唯讀」

請使用下列分頁,依據 NFS 版本查看政策:

不含 Kerberos 的 NFS

所有不含 Kerberos 的 NFS 版本都使用 AUTH_SYS 安全性風味。在此模式下,您必須嚴格管理匯出規則,只允許您信任的用戶端,並確保使用者 ID 和群組 ID 的完整性。

為確保安全,NFS 伺服器會自動將 NFS 呼叫對應至 UID=0 (根目錄) 到 UID=65534 (匿名),後者在檔案系統中具有有限的權限。建立磁碟區時,您可以啟用根存取權選項來控管這項行為。啟用根存取權後,使用者 ID 0 會維持 0。最佳做法是建立專用的匯出規則,為信任的管理員主機啟用根層級存取權,並為所有其他用戶端停用根層級存取權。

使用 Kerberos 的 NFSv4.1

使用 Kerberos 的 NFSv4.1 會使用匯出政策,並透過 Kerberos 進行額外驗證,以存取磁碟區。您可以設定匯出規則,套用至下列項目:

  • 僅限 Kerberos (krb5)

  • Kerberos 簽署 (krb5i)

  • Kerberos 隱私權 (krb5p)

匯出政策最佳做法

建議您採用下列匯出政策最佳做法:

  • 請依據具體程度排序匯出規則,最具體的規則排在最前面。

  • 只匯出至信任的用戶端,例如具有信任用戶端的特定用戶端或 CIDR。

  • 將根存取權限制在少數幾個受信任的管理用戶端。

規則 允許的用戶端 存取 根層級存取權 說明
1 10.10.5.3,
10.10.5.9
讀取及寫入 開啟 管理用戶端。超級使用者仍是超級使用者,可以管理
所有檔案權限。
2 10.10.5.0/24 讀取及寫入 關閉 10.10.5.0/24 網路中的所有其他用戶端都可以掛接,
但系統會將根存取權對應至 nobody。
3 10.10.6.0/24 唯讀 關閉 其他網路可以從磁碟區讀取資料,但無法寫入。

用戶端掛接磁碟區後,檔案層級存取權會決定使用者可執行的動作。詳情請參閱「UNIX 樣式磁碟區的 NFS 檔案層級存取權控管」。

NFS 用戶端的掛接操作說明

請按照下列操作說明,使用 Google Cloud 控制台或 Google Cloud CLI,取得 NFS 用戶端的掛接指令:

控制台

  1. 前往 Google Cloud 控制台的「NetApp Volumes」頁面。

    前往 NetApp Volumes

  2. 按一下「磁碟區」

  3. 按一下「顯示更多」

  4. 選取「掛接操作說明」

  5. 按照 Google Cloud 控制台顯示的掛接說明操作。

  6. 找出掛接指令並使用掛接選項,除非工作負載有特定掛接選項需求。

    僅限 NFSv3:如果應用程式未使用鎖定功能,或您未設定用戶端來啟用 NSM 通訊,建議您新增 nolock 掛接選項。

gcloud

查詢磁碟區的掛接操作說明:

 gcloud netapp volumes describe VOLUME_NAME \
    --project=PROJECT_ID \
    --location=LOCATION \
    --format="value(mountOptions.instructions)"

替換下列資訊:

  • VOLUME_NAME:磁碟區的名稱。

  • PROJECT_ID:磁碟區所在專案的名稱。

  • LOCATION:磁碟區的位置。

如要進一步瞭解其他選用標記,請參閱 Google Cloud SDK 磁碟區說明文件

其他 NFSv4.1 指令

啟用 NFSv4.1 後,服務等級為 Standard、Premium 和 Extreme 的磁碟區也會自動啟用 NFSv4.2。除非您指定要掛接的版本,否則 Linux 的掛接指令一律會掛接最高可用 NFS 版本。如要使用 NFSv4.1 掛接,請在掛接指令中使用 -o vers=4.1 參數。

在 NFSv3 中,使用者和群組是透過 NFSv3 通訊協定傳送的使用者 ID (UID) 和群組 ID (GID) 識別。請務必確保在存取磁碟區的所有用戶端上,相同的 UID 和 GID 代表相同的使用者和群組。NFSv4 使用安全 ID,因此不再需要明確的 UID 和 GID 對應。 安全 ID 是格式為 <username|groupname>@<full_qualified_domain> 的字串。 安全識別碼的例子是 bob@example.com。用戶端必須先將內部使用的 UID 和 GID 轉譯為安全識別碼,再將 NFSv4 要求傳送至伺服器。伺服器必須將傳入要求的安全 ID 轉換為 UID 和 GID,並將回應的 UID 和 GID 轉換為安全 ID。使用轉換的優點是,每個用戶端和伺服器都可以使用不同的內部 UID 和 GID。不過,缺點是所有用戶端和伺服器都必須維護 UID 和 GID 之間的對應清單,以及使用者和群組名稱。用戶端上的對應資訊可來自本機檔案 (例如 /etc/passwd/etc/groups) 或 LDAP 目錄。這項對應的設定是由 rpc.idmapd 管理,且必須在用戶端上執行。

在 NetApp Volumes 上,LDAP 必須提供對應資訊,且 Active Directory 是唯一支援 RFC2307bis 相容 LDAP 伺服器。使用 Kerberos 搭配 NFSv4 時,安全 ID 會以 username@DOMAINNAME 格式儲存 Kerberos 主體,其中 DOMAINNAME (大寫) 會成為領域名稱。

數字 ID

如果使用者不想設定名稱對應,而是想使用 NFSv4 取代 NFSv3,NFSv4 導入了名為 numeric ID 的選項,可將 UID 和 GID 編碼文字字串做為安全 ID 傳送。這項功能可簡化使用者的設定程序。

您可以使用下列指令檢查用戶端設定:

     cat /sys/module/nfs/parameters/nfs4_disable_idmapping
   

預設值為 Y,可啟用數字 ID。NetApp Volumes 支援使用數字 ID。

在 NFS 用戶端上設定 rpc.idmapd

無論您使用哪種 ID 或安全 ID,都必須在 NFS 用戶端上設定 rpc.idmapd。如果您已按照「事前準備」一節中的用戶端公用程式安裝說明操作,公用程式應該已安裝完畢,但可能尚未執行。部分發行版本會在掛接第一個 NFS 磁碟區時,使用 systemd 自動啟動。設定網域是 rpc.idmapd 的最低設定需求。否則,使用者根目錄會顯示為 nobody,並附上 UID=65534 or 4294967295

請按照下列操作說明,在 NFS 用戶端上設定 rpc.idmapd

  1. 在用戶端上開啟 /etc/idmapd.conf 檔案,然後將網域參數變更為下列其中一項:

    • 如果您的磁碟區未啟用 LDAP,請domain = defaultv4iddomain.com

    • 如果 LDAP 已啟用磁碟區,請按照domain = <FDQN_of_Windows_Domain>中的步驟操作。

  2. 執行下列指令,啟用對 rpc.idmapd 的變更:

     nfsidmap -c

支援 NFSv4.2

除了 NFSv4.1 以外,Standard、Premium 和 Extreme 服務等級現在也支援 NFSv4.2 通訊協定,適用於已啟用 NFSv4.1 的磁碟區。

掛接 NFS 磁碟區時,Linux mount 指令會自動選取可用的最高 NFS 版本。掛接啟用 NFSv4.1 的磁碟區時,系統會自動預設為 NFSv4.2,除非明確指定 vers=4.1 掛接選項。

NetApp Volumes 支援 NFS 擴充屬性 xattrs,搭配 NFSv4.2 使用。如 TR-4962 所述,xattrs 的使用方式和限制也適用於此。

將 Linux 連線至 LDAP

如果您使用 NFSv3 擴充群組或 NFSv4.1 (含安全 ID),您已設定 NetApp Volumes,透過附加至儲存集區的 Active Directory,將 Active Directory 設為 LDAP 伺服器。

如要確保 NFS 用戶端和伺服器之間的使用者資訊一致,您可能需要將用戶端設定為使用 Active Directory 做為 LDAP 名稱服務,以取得使用者和群組資訊。

請使用下列資源設定 LDAP:

使用 Kerberized NFS 時,您可能需要使用本節提及的部署指南設定 LDAP,並確保用戶端和伺服器之間的一致性。

後續步驟

連結大容量磁碟區和多個儲存空間端點