你当前正在访问 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.conf
NFSv4 的配置文件替代此设置。
如果 NFS 客户端和Azure NetApp 文档上的身份验证域设置不匹配,则文件访问可能会被拒绝,因为 NFSv4 用户和组映射可能会失败。 发生这种情况时,不匹配的用户和组将压缩文件中配置 idmapd.conf
的用户和组(通常,没有人:99),并且将在客户端上记录事件。
本文介绍用户/组映射的默认行为,以及如何配置 NFS 客户端以正确进行身份验证并允许访问。
用户/组映射的默认行为
根用户映射可以说明如果Azure NetApp 文档与 NFS 客户端不匹配,会发生什么情况。 应用程序的安装过程通常需要使用根用户。 Azure NetApp 文档可配置为允许访问 root
。
在以下目录列表示例中,用户root
将卷装载到 Linux 客户端上,该客户端使用其默认配置 localdomain
ID 身份验证域,这不同于Azure NetApp 文档的默认配置defaultv4iddomain.com
。
在目录中的文件列表中, file1
显示为要映射到 nobody
的根用户何时应拥有该文件。
有两种方法可以调整双方的身份验证域:Azure NetApp 文档为 NFS 服务器,Linux 作为 NFS 客户端:
中心用户管理:如果已在使用中央用户管理(如 Active Directory 域服务(AD DS),则可以将其 Linux 客户端配置为使用 LDAP,并将 AD DS 中配置的域设置为身份验证域。 在服务器端,必须为Azure NetApp 文档启用 AD 域服务并创建启用 LDAP 的卷。 启用 LDAP 的卷会自动使用 AD DS 中配置的域作为其身份验证域。
有关此过程的详细信息,请参阅为 NFS 卷启用Active Directory 域服务 (AD DS) LDAP 身份验证。
手动配置 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 域的功能。 此功能现在还在预览中。 首次使用此功能之前,你需要注册此功能。 注册后,即可在后台启用并使用该功能。
注册功能
Register-AzProviderFeature -ProviderNamespace Microsoft.NetApp -FeatureName ANFNFSV4IDDomain
检查功能注册的状态:
注意
RegistrationState 可能会处于
Registering
状态长达 60 分钟,然后才更改为Registered
状态。 请等到状态变为Registered
后再继续。Get-AzProviderFeature -ProviderNamespace Microsoft.NetApp -FeatureName ANFNFSV4IDDomain
此外,Azure CLI 命令az feature register
和 az feature show
分别可用于注册功能和显示注册状态。
步骤
在Azure NetApp 文档订阅下,选择 NFSv4.1 ID 域。
选择 配置。
若要使用默认域
defaultv4iddomain.com
,请选择“使用默认 NFSv4 ID 域”旁边的框。 若要使用另一个域,请取消检查文本框并提供 NFSv4.1 ID 域的名称。选择“保存”。
在 NFS 客户端中配置 NFSv4.1 ID 域
在 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
- 如果未为 LDAP 启用卷,请通过指定
卸载任何当前装载的 NFS 卷。
更新
/etc/idmapd.conf
文件。清除 NFS
idmapper
(nfsidmap -c
)的键键。根据需要装载 NFS 卷。
以下示例显示生成的用户/组更改:
如示例所示,用户/组现在已从 nobody
更改为 root
。
其他(非根)用户和组的行为
Azure NetApp 文档支持本地用户和组(在本地在 NFS 客户端上创建并由用户和组 ID 表示)以及与 NFSv4.1 卷中的文件或文件夹关联的相应所有权和权限。 但是,该服务不会自动解决跨 NFS 客户端映射本地用户和组的问题。 在一台主机上创建的用户和组可能存在于另一个 NFS 客户端上(或者存在具有不同用户和组 ID),因此无法正确映射,如以下示例中所述。
在以下示例中, Host1
有三个用户帐户(testuser01
, testuser02
, testuser03
):
打开 Host2
时,不存在相应的用户帐户,但两个主机上都装载了相同的卷:
若要解决此问题,请在 NFS 客户端上创建缺少的帐户,或将 NFS 客户端配置为使用Azure NetApp 文档用于集中管理的 UNIX 标识的 LDAP 服务器。