設定 Azure NetApp Files 的 NFSv4.1 標識符網域

NFSv4 引進標識符驗證網域的概念。 Azure NetApp Files 會使用輸入值 defaultv4iddomain.com 作為驗證網域,而 NFS 用戶端會使用自己的設定來驗證想要存取這些磁碟區上檔案的使用者。 根據預設,NFS 用戶端會使用 DNS 功能變數名稱作為 NFSv4 標識符網域。 您可以使用名為 idmapd.conf的 NFSv4 組態檔來覆寫此設定。

如果 NFS 用戶端和 Azure NetApp Files 上的驗證網域設定不相符,可能會拒絕檔案存取,因為 NFSv4 使用者和群組對應可能會失敗。 發生這種情況時,不相符的使用者和群組會壓縮檔案中 idmapd.conf 設定的使用者和群組(一般而言,沒有人:99),且事件將會記錄在用戶端上。

本文說明使用者/群組對應的預設行為,以及如何設定NFS用戶端正確驗證並允許存取。 

使用者/群組對應的預設行為

根用戶對應可以說明如果 Azure NetApp Files 與 NFS 用戶端不符,會發生什麼情況。 應用程式的安裝程式通常需要使用根使用者。 Azure NetApp Files 可以設定為允許 存取 root

在下列目錄清單範例中,使用者 root 會在Linux用戶端上掛接磁碟區,該用戶端會使用其標識碼驗證網域的預設組態,這與 Azure NetApp Files 的預設 localdomain 組態 defaultv4iddomain.com不同。

Screenshot of file directory output.

在目錄中的檔案清單中, file1 會顯示為對應至 nobody,當它應該由根用戶擁有時。

有兩種方式可以調整兩端的驗證網域:Azure NetApp Files 作為 NFS 伺服器和 Linux 作為 NFS 用戶端:

  1. 中央使用者管理:如果您已經使用中央使用者管理,例如 Active Directory 網域服務 (AD DS),您可以將其 Linux 用戶端設定為使用 LDAP,並將 AD DS 中設定的網域設定為驗證網域。 在伺服器端,您必須啟用 Azure NetApp Files 的 AD 網域服務,並建立已啟用 LDAP 的磁碟區。 已啟用LDAP的磁碟區會自動使用AD DS中設定的網域作為其驗證網域。

    如需此程式的詳細資訊,請參閱啟用 NFS 磁碟區的 Active Directory 網域服務 (AD DS) LDAP 驗證。

  2. 手動設定 Linux 用戶端:如果您未針對 Linux 用戶端使用中央使用者管理,您可以手動設定 Linux 用戶端,以符合未啟用 LDAP 之磁碟區之 Azure NetApp Files 的預設驗證網域。

在本節中,我們將著重於如何設定 Linux 用戶端,以及如何變更所有已啟用 LDAP 之磁碟區的 Azure NetApp Files 驗證網域。

在 Azure NetApp Files 上設定 NFSv4.1 標識符網域

您可以使用 Azure 入口網站,為所有非 LDAP 磁碟區指定所需的 NFSv4.1 標識符網域。 此設定適用於相同訂用帳戶和區域中所有 NetApp 帳戶的所有非 LDAP 磁碟區。 這不會影響相同 NetApp 訂用帳戶和區域中已啟用 LDAP 的磁碟區。

註冊功能

Azure NetApp Files 支援使用 Azure 入口網站 為訂用帳戶中的所有非 LDAP 磁碟區設定 NFSv4.1 標識符網域的功能。 此功能目前為預覽功能。 您必須先註冊此功能,才能第一次使用它。 註冊之後,此功能會啟用,並在背景中運作。

  1. 註冊功能

    Register-AzProviderFeature -ProviderNamespace Microsoft.NetApp -FeatureName ANFNFSV4IDDomain
    
  2. 檢查功能註冊的狀態:

    注意

    RegistrationState 在變更Registered為 之前,最多可能處於 Registering 60 分鐘的狀態。 請等到狀態繼續 Registered 之前。

    Get-AzProviderFeature -ProviderNamespace Microsoft.NetApp -FeatureName ANFNFSV4IDDomain
    

您也可以使用 Azure CLI 命令az feature register 來註冊功能, az feature show 並顯示註冊狀態。

步驟

  1. 在 Azure NetApp Files 訂用帳戶下,選取 [NFSv4.1 標識符網域]。

  2. 選取設定

  3. 若要使用預設網域defaultv4iddomain.com,請選取 [使用預設 NFSv4 標識符網域] 旁的方塊。 若要使用另一個網域,請取消核取文本框,並提供 NFSv4.1 標識符網域的名稱。

    Screenshot with field to set NFSv4 domain.

  4. 選取 [儲存]。

在 NFS 用戶端中設定 NFSv4.1 識別符網域

  1. /etc/idmapd.conf編輯 NFS 用戶端上的檔案。
    取消批注這一行 (也就是從行 #Domain 中移除 # ),並變更值 localdomain ,如下所示:

    • 如果未針對LDAP啟用磁碟區,請使用預設網域defaultv4iddomain.com,方法是指定 Domain = defaultv4iddomain.com,或指定 Azure NetApp Files 中所設定的 NFSv4.1 標識符網域
    • 如果磁碟區已啟用LDAP,請將 設定Domain為NetApp帳戶上Active Directory 連線 ion 中所設定的網域。 例如,如果 contoso.com 是 NetApp 帳戶中設定的網域,則設定 Domain = contoso.com

    下列範例顯示變更之前的初始組態 /etc/idmapd.conf

    [General]
    Verbosity = O 
    Pipefs—Directory = /run/rpc_pipefs 
    # set your own domain here, if it differs from FQDN minus hostname 
    # Domain = localdomain 
    
    [Mapping] 
    Nobody-User = nobody 
    Nobody-Group = nogroup 
    

    下列範例顯示預設網域defaultv4iddomain.com的非LDAP NFSv4.1磁碟區的更新組態

    [General]
    Verbosity = O 
    Pipefs—Directory = /run/rpc_pipefs 
    # set your own domain here, if it differs from FQDN minus hostname 
    Domain = defaultv4iddomain.com 
    
    [Mapping] 
    Nobody-User = nobody 
    Nobody-Group = nogroup 
    

    下列範例顯示已啟用LDAP的NFSv4.1磁碟區的更新組態。 在此範例中, contoso.com 是 NetApp 帳戶中已設定的網域:

    [General]
    Verbosity = O 
    Pipefs—Directory = /run/rpc_pipefs 
    # set your own domain here, if it differs from FQDN minus hostname 
    Domain = contoso.com
    
    [Mapping] 
    Nobody-User = nobody 
    Nobody-Group = nogroup 
    
  2. 卸除任何目前掛接的 NFS 磁碟區。

  3. /etc/idmapd.conf更新檔案。

  4. 清除 NFS idmappernfsidmap -c) 的索引鍵。

  5. 視需要掛接NFS磁碟區。

    請參閱 掛接 Windows 或 Linux VM 的磁碟區。

下列範例顯示產生的使用者/群組變更:

Screenshot that shows an example of the resulting user/group change.

如範例所示,使用者/群組現在已從 nobody 變更為 root

其他(非根)使用者和群組的行為

Azure NetApp Files 支援本機使用者和群組(在 NFS 用戶端上建立,並以使用者和群組標識符表示)以及與 NFSv4.1 磁碟區中檔案或資料夾相關聯的對應擁有權和許可權。 不過,服務不會自動解決跨 NFS 用戶端對應本機使用者和群組的問題。 在一部主機上建立的使用者和群組可能不存在於另一個 NFS 用戶端上(或存在不同的使用者和群組標識符),因此無法正確對應,如下列範例所述。

在下列範例中,Host1有三個用戶帳戶 (testuser01, , testuser03testuser02):

Screenshot that shows that Host1 has three existing test user accounts.

在 上 Host2,沒有對應的用戶帳戶存在,但兩部主機上都掛接了相同的磁碟區:

Resulting configuration for NFSv4.1

若要解決此問題,請在 NFS 用戶端上建立遺失的帳戶,或將 NFS 用戶端設定為使用 Azure NetApp Files 用於集中受控 UNIX 身分識別的 LDAP 伺服器。

下一步