你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
了解 Azure NetApp 文件中的 NAS 协议
NAS 协议是客户端和服务器之间的对话方式。 NFS 和 SMB 是 Azure NetApp 文件中使用的 NAS 协议。 每种协议具有自身独特的通信方法,但从根本上讲,它们的运行方式大致相同。
- 两者都为许多不同的网络附加客户端提供单一数据集。
- 两者都可以使用加密身份验证方法共享数据。
- 两者都可以通过共享和文件权限进行控制。
- 两者都可以对传输中的数据进行加密。
- 两者都可以使用多个连接来帮助并行化性能。
网络文件系统 (NFS)
NFS 主要用于基于 Linux/UNIX 的客户端,例如 Red Hat、SUSE、Ubuntu、AIX、Solaris 和 Apple OS。 Azure NetApp 文件支持任何在意见征求 (RFC) 标准下运行的 NFS 客户端。 Windows 还可以使用 NFS 进行访问,但它不使用 RFC 标准运行。
以下资源描述了 NFS 协议的 RFC 标准:
NFSv3
NFSv3 是该协议的基本服务,具有以下关键属性:
- NFSv3 是无状态的,这意味着 NFS 服务器不会跟踪连接的状态(包括锁)。
- 锁定是在 NFS 协议之外使用网络锁管理器 (NLM) 处理的。 由于锁不会集成到协议中,因此有时会出现过时的锁。
- 由于 NFSv3 是无状态的,因此在某些工作负载中,NFSv3 的性能会显著提高,特别是在具有高元数据操作(例如 OPEN、CLOSE、SETATTR 和 GETATTR)的工作负载中。 这是因为处理服务器和客户端上的请求所需的常规工作较少。
- NFSv3 使用基本文件权限模型,可以将读取、写入和执行的权限分配给文件所有者、组或其他任何人。
- NFSv3 可以使用 NFSv4.x ACL,但需要 NFSv4.x 管理客户端来配置和管理 ACL。 Azure NetApp 文件不支持使用非标准 POSIX 草案 ACL。
- NFSv3 还要求使用其他辅助协议来执行常规操作,例如端口发现、装载、锁定、状态监视和配额。 每个辅助协议使用唯一的网络端口,这意味着,NFSv3 操作需要通过具有知名端口号的防火墙公开更多信息。
- Azure NetApp 文件使用以下端口号进行 NFSv3 操作。 无法更改这些端口号:
- Portmapper (111)
- 装载 (635)
- NFS (2049)
- NLM (4045)
- NSM (4046)
- 配额 (4049)
- NFSv3 可以使用 Kerberos 等安全增强功能,但 Kerberos 仅影响数据包的 NFS 部分;辅助协议(例如 NLM、portmapper、mount)不包含在 Kerberos 对话中。
- Azure NetApp 文件仅支持 NFSv4.1 Kerberos 加密
- NFSv3 使用数字 ID 进行用户和组身份验证。 数字 ID 简化了配置和管理,但可能会使欺骗用户变得更容易。
- NFSv3 可以使用 LDAP 进行用户和组查找。
NFSv3 服务版本支持
NFSv3 目前支持 Azure NetApp 文件中每个辅助协议的以下版本:
服务 | 支持的版本 |
---|---|
Portmapper | 4、3、2 |
NFS | 4、3* |
Mountd | 3、2、1 |
Nlockmgr | 4 |
Status | 1 |
Rquotas | 1 |
* NFS 支持的版本根据为 Azure NetApp 文件卷选择的版本来显示。
可以使用以下命令从 Azure NetApp 文件卷收集此信息:
# rpcinfo -s <Azure NetApp Files IP address>
NFSv4.x
NFSv4.x 指 NFSv4 下的所有 NFS 版本或次要版本,包括 NFSv4.0、NFSv4.1 和 NFSv4.2。 Azure NetApp 文件目前仅支持 NFSv4.1。
NFSv4.x 具有以下特征:
- NFSv4.x 是一种有状态协议,这意味着客户端和服务器将跟踪 NFS 连接的状态,包括锁状态。 NFS 装载使用称为“状态 ID”的概念来跟踪连接。
- 锁定已集成到 NFS 协议中,不需要辅助锁定协议来跟踪 NFS 锁。 相反,锁是根据租约授予的。 如果客户端或服务器连接断开,锁会在一定的时间后过期,从而将锁返回给系统以供其他 NFS 客户端使用。
- NFSv4.x 的状态确实存在一些缺点,例如网络中断或存储故障转移期间的潜在中断,以及某些工作负载类型(例如高元数据工作负载)的性能开销。
- 与 NFSv3 相比,NFSv4.x 具有许多显著优势,包括:
- 更好的锁定概念(基于租约的锁定)
- 更好的安全性(需要更少的防火墙端口、与 Kerberos 的标准集成、精细的访问控制)
- 其他功能
- 复合 NFS 操作(单个数据包请求中的多个命令可以减少网络抖动)
- 仅限 TCP
- NFSv4.x 可以使用类似于 Windows NTFS 权限的更可靠文件权限模型。 这些精细 ACL 可应用于用户或组,并允许在比基本读取/写入/执行操作更广泛的操作上设置权限。 NFSv4.x 还可以使用 NFSv3 采用的标准 POSIX 模式位。
- 由于 NFSv4.x 不使用辅助协议,因此使用的 Kerberos 将应用于整个 NFS 对话。
- NFSv4.x 使用用户/组名和域字符串的组合来验证用户和组信息。 客户端和服务器必须就域字符串达成一致,才能正常进行用户和组身份验证。 如果域字符串不匹配,NFS 用户或组将限定为 NFS 客户端上 /etc/idmapd.conf 文件中指定的用户(例如 nobody)。
- 尽管 NFSv4.x 通常默认使用域字符串,但在使用 AUTH_SYS时,可以将客户端和服务器都配置为还原为 NFSv3 中使用的经典数字 ID。
- NFSv4.x 与用户和组名字符串深度集成,服务器和客户端必须就这些用户和组达成一致。 因此,请考虑使用名称服务服务器(例如 NFS 客户端和服务器上的 LDAP)进行用户身份验证。
有关 Azure NetApp 文件中 NFS 的常见问题,请参阅 Azure NetApp 文件 NFS 常见问题解答。
服务器消息块 (SMB)
SMB 主要用于 Windows 客户端的 NAS 功能。 但它也可以在 AppleOS、RedHat 等基于 Linux 的操作系统上使用。此部署是使用名为 Samba 的应用程序完成的。 Azure NetApp 文件正式支持使用 Windows 和 macOS 的 SMB。 Linux 操作系统上的 SMB/Samba 可与 Azure NetApp 文件一起使用,但不提供官方支持。
Azure NetApp 文件仅支持 SMB 2.1 和 SMB 3.1 版本。
SMB 具有以下特征:
- SMB 是有状态协议:客户端和服务器为 SMB 共享连接维护“状态”,以实现更好的安全性和锁定。
- 锁定 SMB 被视为强制性的。 锁定某个文件时,任何其他客户端都不能写入该文件,直到释放锁为止。
- SMBv2.x 及更高版本使用复合调用来执行操作。
- SMB 支持完整的 Kerberos 集成。 由于 Windows 客户端的配置方式,往往会在最终用户不知情的情况下使用 Kerberos。
- 当无法使用 Kerberos 进行身份验证时,可以使用 Windows NT LAN Manager (NTLM) 作为回退机制。 如果在 Active Directory 环境中禁用 NTLM,则无法使用 Kerberos 的身份验证请求将会失败。
- SMBv3.0 及更高版本支持 SMB 共享的端到端加密。
- SMBv3.x 支持多通道,以提高特定工作负载的性能。
- SMB 使用用户和组名(通过 SID 转换)进行身份验证。 用户和组信息由 Active Directory 域控制器提供。
- Azure NetApp 文件中的 SMB 使用标准 Windows 新技术文件系统 (NTFS) ACL 来管理文件和文件夹权限。
有关 Azure NetApp 文件中 SMB 的常见问题,请参阅 Azure NetApp 文件 SMB 常见问题解答。
双重协议
某些组织拥有纯 Windows 或纯 UNIX 环境(同质),其中所有数据仅使用以下方法之一进行访问:
- SMB 和 NTFS 文件安全性
- NFS 和 UNIX 文件安全 - 模式位或 NFSv4.x 访问控制列表 (ACL)
但是,许多站点必须允许从 Windows 和 UNIX 客户端(异构)访问数据集。 对于具有这些要求的环境,Azure NetApp 文件提供本机双重协议 NAS 支持。 当用户在网络上通过身份验证并具有适当的共享或导出权限以及所需的文件级权限时,用户可以使用 NFS 从 UNIX 主机访问数据,或者使用 SMB 从 Windows 主机访问数据。
使用双重协议卷的原因
将双重协议卷与 Azure NetApp 文件配合使用可以获得几个明显的优势。 当数据集可由使用不同 NAS 协议的客户端无缝地同时访问时,可以实现以下优势:
- 减少存储管理员的管理任务总数。
- 只需存储一个数据副本即可从多种客户端类型进行 NAS 访问。
- 与协议无关的 NAS 允许存储管理员控制向最终用户呈现的 ACL 样式和访问控制。
- 集中处理 NAS 环境中的标识管理操作。
双重协议环境的常见注意事项
双重协议 NAS 访问因其灵活性而受到许多组织青睐。 但是,人们对跨协议共享概念的困难度有一系列独特的考虑因素。 这些考虑因素包括但不限于:
- 必须对跨多种协议、操作系统和存储系统有全面的了解。
- 名称服务服务器(例如 DNS、LDAP 等)的实践知识。
此外,外部因素也可能造成阻碍,例如:
- 与多个部门和 IT 组(例如 Windows 组和 UNIX 组)打交道
- 公司收购
- 域合并
- 重组
尽管存在这些考虑因素,但双重协议 NAS 的设置、配置和访问仍然能够简单且无缝地集成到任何环境中。
Azure NetApp 文件如何简化双重协议的使用
Azure NetApp 文件将成功的双重协议 NAS 环境所需的基础结构整合到单一管理平面,包括存储和标识管理服务。
双重协议的配置非常简单,并且大多数任务都由 Azure NetApp 文件资源管理框架屏蔽,从而简化云运营商的操作。
使用 Azure NetApp 文件建立 Active Directory 连接后,双协议卷可以使用该连接来处理正确进行用户和组身份验证所需的 Windows 和 UNIX 标识管理。 有了此配置,便无需再在 Active Directory 或 LDAP 服务中执行普通用户和组管理之外的其他配置步骤”
通过删除双重协议配置的额外以存储为中心的步骤,Azure NetApp 文件简化了希望迁移到 Azure 的组织的整体双重协议部署。
Azure NetApp 文件双重协议卷的工作原理
概括而言,无论使用哪种协议,Azure NetApp 文件双协议卷都使用名称映射和权限样式的组合来提供一致的数据访问。 这意味着,无论是从 NFS 还是 SMB 访问文件,都可以确保有权访问这些文件的用户可以访问它们,而无权访问这些文件的用户则无法访问它们。
当 NAS 客户端请求访问 Azure NetApp 文件中的双重协议卷时,将执行以下操作,为最终用户提供透明的体验。
- NAS 客户端与 Azure NetApp 文件双重协议卷建立 NAS 连接。
- NAS 客户端将用户身份信息传递给 Azure NetApp 文件。
- Azure NetApp 文件检查并确保 NAS 客户端/用户可以访问 NAS 共享。
- Azure NetApp 文件获取该用户并将其映射到名称服务中找到的有效用户。
- Azure NetApp 文件将该用户与系统中的文件级权限进行比较。
- 文件权限控制用户的访问级别。
在下图中,user1
向 Azure NetApp 文件进行身份验证,以通过 SMB 或 NFS 访问双重协议卷。 Azure NetApp 文件在 Microsoft Entra ID 中查找用户的 Windows 和 UNIX 信息,然后将用户的 Windows 和 UNIX 标识一一映射。 用户验证为 user1
并获取 user1
的访问凭据。
在此实例中,user1
拥有对其自己的文件夹 (user1-dir
) 的完全控制权,但无权访问 HR
文件夹。 此设置基于文件系统中指定的安全 ACL,并且无论通过哪种协议访问卷,user1
都将获得预期的访问权限。
Azure NetApp 文件双协议卷的注意事项
使用 Azure NetApp 文件卷访问 SMB 和 NFS 时,请注意以下事项:
- 需要一个 Active Directory 连接。 因此,需要满足 Active Directory 连接要求。
- 双重协议卷需要 DNS 中的反向查找区域以及 AD 主机的关联指针 (PTR) 记录,以防止双重协议卷创建失败。
- NFS 客户端和关联的包(例如
nfs-utils
)应该是最新的,以获得最佳安全性、可靠性和功能支持。 - 双协议卷支持 Active Directory 域服务 (AD DS) 和 Microsoft Entra 域服务。
- 双重协议卷不支持将 LDAP over TLS 与 Microsoft Entra 域服务配合使用。 请参阅 TLS 上的 LDAP 注意事项。
- 支持的 NFS 版本包括:NFSv3 和 NFSv4.1。
- Azure NetApp 文件卷目前不支持并行网络文件系统 (pNFS)、会话中继和引荐等 NFSv4.1 功能。
- 双重协议卷不支持 Windows 扩展属性
set
/get
。 - 请参阅其他有关为 Azure NetApp 文件创建双重协议卷的注意事项。