你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

为 Azure NetApp 文档配置 NFSv4.1 ID 域

NFSv4 引入了 ID 身份验证域的概念。 Azure NetApp 文档使用条目值defaultv4iddomain.com作为身份验证域,NFS 客户端使用自己的配置对想要访问这些卷上的文件的用户进行身份验证。 默认情况下,NFS 客户端将使用 DNS 域名作为 NFSv4 ID 域。 可以使用名为 idmapd.confNFSv4 的配置文件替代此设置。

如果 NFS 客户端和Azure NetApp 文档上的身份验证域设置不匹配,则文件访问可能会被拒绝,因为 NFSv4 用户和组映射可能会失败。 发生这种情况时,不匹配的用户和组将压缩文件中配置 idmapd.conf 的用户和组(通常,没有人:99),并且将在客户端上记录事件。

本文介绍用户/组映射的默认行为,以及如何配置 NFS 客户端以正确进行身份验证并允许访问。 

用户/组映射的默认行为

根用户映射可以说明如果Azure NetApp 文档与 NFS 客户端不匹配,会发生什么情况。 应用程序的安装过程通常需要使用根用户。 Azure NetApp 文档可配置为允许访问 root

在以下目录列表示例中,用户root将卷装载到 Linux 客户端上,该客户端使用其默认配置 localdomain ID 身份验证域,这不同于Azure NetApp 文档的默认配置defaultv4iddomain.com

Screenshot of file directory output.

在目录中的文件列表中, file1 显示为要映射到 nobody的根用户何时应拥有该文件。

有两种方法可以调整双方的身份验证域:Azure NetApp 文档为 NFS 服务器,Linux 作为 NFS 客户端:

  1. 中心用户管理:如果已在使用中央用户管理(如 Active Directory 域服务(AD DS),则可以将其 Linux 客户端配置为使用 LDAP,并将 AD DS 中配置的域设置为身份验证域。 在服务器端,必须为Azure NetApp 文档启用 AD 域服务并创建启用 LDAP 的卷。 启用 LDAP 的卷会自动使用 AD DS 中配置的域作为其身份验证域。

    有关此过程的详细信息,请参阅为 NFS 卷启用Active Directory 域服务 (AD DS) LDAP 身份验证。

  2. 手动配置 Linux 客户端:如果不对 Linux 客户端使用中央用户管理,则可以手动配置 Linux 客户端,以匹配未启用 LDAP 的卷的默认身份验证域Azure NetApp 文档。

在本部分中,我们将重点介绍如何配置 Linux 客户端以及如何更改所有启用 LDAP 的卷的Azure NetApp 文档身份验证域。

在 Azure NetApp 文档 上配置 NFSv4.1 ID 域

可以使用Azure 门户为所有非 LDAP 卷指定所需的 NFSv4.1 ID 域。 此设置适用于同一订阅和区域中所有 NetApp 帐户中的所有非 LDAP 卷。 它不会影响同一 NetApp 订阅和区域中启用了 LDAP 的卷。

注册功能

Azure NetApp 文档支持使用 Azure 门户 为订阅中的所有非 LDAP 卷设置 NFSv4.1 ID 域的功能。 此功能现在还在预览中。 首次使用此功能之前,你需要注册此功能。 注册后,即可在后台启用并使用该功能。

  1. 注册功能

    Register-AzProviderFeature -ProviderNamespace Microsoft.NetApp -FeatureName ANFNFSV4IDDomain
    
  2. 检查功能注册的状态:

    注意

    RegistrationState 可能会处于 Registering 状态长达 60 分钟,然后才更改为 Registered 状态。 请等到状态变为Registered后再继续。

    Get-AzProviderFeature -ProviderNamespace Microsoft.NetApp -FeatureName ANFNFSV4IDDomain
    

此外,Azure CLI 命令az feature registeraz feature show 分别可用于注册功能和显示注册状态。

步骤

  1. 在Azure NetApp 文档订阅下,选择 NFSv4.1 ID 域

  2. 选择 配置

  3. 若要使用默认域defaultv4iddomain.com,请选择“使用默认 NFSv4 ID 域”旁边的框。 若要使用另一个域,请取消检查文本框并提供 NFSv4.1 ID 域的名称。

    Screenshot with field to set NFSv4 domain.

  4. 选择“保存”。

在 NFS 客户端中配置 NFSv4.1 ID 域

  1. 在 NFS 客户端上编辑 /etc/idmapd.conf 文件。
    取消注释行 #Domain(即,从行中删除 #),并将值 localdomain 更改如下:

    • 如果未为 LDAP 启用卷,请通过指定Domain = defaultv4iddomain.com使用默认域defaultv4iddomain.com,或指定 Azure NetApp 文档中配置的 NFSv4.1 ID 域
    • 如果该卷已启用 LDAP,请将 Domain 设置为在 NetApp 帐户的 Active Directory 连接中配置的域。 例如,如果 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 文档支持本地用户和组(在本地在 NFS 客户端上创建并由用户和组 ID 表示)以及与 NFSv4.1 卷中的文件或文件夹关联的相应所有权和权限。 但是,该服务不会自动解决跨 NFS 客户端映射本地用户和组的问题。 在一台主机上创建的用户和组可能存在于另一个 NFS 客户端上(或者存在具有不同用户和组 ID),因此无法正确映射,如以下示例中所述。

在以下示例中, Host1 有三个用户帐户(testuser01testuser02testuser03):

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

打开 Host2时,不存在相应的用户帐户,但两个主机上都装载了相同的卷:

Resulting configuration for NFSv4.1

若要解决此问题,请在 NFS 客户端上创建缺少的帐户,或将 NFS 客户端配置为使用Azure NetApp 文档用于集中管理的 UNIX 标识的 LDAP 服务器。

后续步骤