Skip to main content
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

ONTAP中的 pNFS 用例

贡献者 netapp-dbagwell

pNFS 可以与ONTAP 的各种功能一起使用,以提高性能并为 NFS 工作负载提供更大的灵活性。

使用 nconnect 的 pNFS

NFS 为一些较新的客户端和服务器引入了一种新的挂载选项,该选项提供了一种在挂载单个 IP 地址的同时提供多个 TCP 连接的方法。这提供了一种机制,可以更好地并行化操作,绕过 NFS 服务器和客户端的限制,并有可能为某些工作负载提供更高的整体性能。ONTAP 9.8 及更高版本支持 nconnect,前提是客户端支持 nconnect。

当使用 nconnect 连接 pNFS 时,将使用 nconnect 选项并行连接 NFS 服务器通告的每个 pNFS 设备。例如,如果 nconnect 设置为 4,并且有 4 个符合 pNFS 条件的接口,则每个挂载点创建的连接总数最多为 16 个(4 个 nconnect x 4 个 IP 地址)。

pNFS,nconnect=4
图 1. pNFS 的 nconnect 设置为 4

pNFS 与 NFSv4.1 会话中继

NFSv4.1 会话中继 ("RFC 5661,第 2.10.5 节") 是指在客户端和服务器之间使用多个 TCP 连接来提高数据传输速度。ONTAP 9.14.1 添加了对 NFSv4.1 会话中继的支持,必须与也支持会话中继的客户端一起使用。

在ONTAP中,会话中继可以跨集群中的多个节点使用,以提供额外的吞吐量和连接冗余。

会话中继可以通过多种方式建立:

  • 通过挂载选项自动发现: 大多数现代 NFS 客户端可以通过挂载选项建立会话中继(请查看您的操作系统供应商的文档),该选项会向 NFS 服务器发出信号,以便将有关会话中继的信息发送回客户端。此信息以 NFS 数据包的形式出现。 fs_location4 称呼。

    所使用的挂载选项取决于客户端的操作系统版本。例如,Ubuntu Linux 的各种版本通常使用 max_connect=n 表示要使用会话中继。在 RHEL Linux 发行版中, trunkdiscovery 使用了挂载选项。

    Ubuntu 示例
    mount -o vers=4.1,max_connect=8 10.10.10.10:/pNFS /mnt/pNFS
    RHEL 示例
    mount -o vers=4.1,trunkdiscovery 10.10.10.10:/pNFS /mnt/pNFS
    备注 如果您尝试使用 max_connect 在 RHEL 发行版上,它将被视为 nconnect,会话中继将无法按预期工作。
  • 手动建立: 您可以通过将每个单独的 IP 地址挂载到相同的导出路径和挂载点来手动建立会话中继。例如,如果同一个节点上有两个 IP 地址(10.10.10.10 和 10.10.10.11),用于导出路径, `/pNFS`你需要运行两次 mount 命令:

    mount -o vers=4.1 10.10.10.10:/pNFS /mnt/pNFS
    mount -o vers=4.1 10.10.10.11:/pNFS /mnt/pNFS

    对所有要参与主干的接口重复此过程。

备注 每个节点都有自己的会话主干。主干不经过节点。
备注 使用 pNFS 时,仅使用会话中继_或_ nconnect。同时使用两者会导致不良行为,例如只有元数据服务器连接才能获得 nconnect 的好处,而数据服务器只能使用单个连接。
ONTAP中的 NFSv4.1 会话中继
图 2. ONTAP中的 NFSv4.1 会话中继

pNFS 可以为集群中的每个参与节点提供本地路径,并且当与会话中继一起使用时,pNFS 可以利用每个节点的会话中继来最大限度地提高整个集群的吞吐量。

ONTAP中的 NFSv4.1 会话中继与 pNFS 集成

什么时候 trunkdiscovery 如果使用,则会利用附加的 GETATTR 调用 (FS_Locations) 来获取 NFS 服务器节点上列出的会话中继接口,该节点是挂载接口所在的位置。一旦这些地址返回,后续的挂载点就会指向返回的地址。这可以从挂载过程中的数据包捕获中看出。

挂载期间的 NFS 会话主干发现:数据包捕获
图 3. 挂载期间的 NFS 会话主干发现:数据包捕获

pNFS 与 NFSv4.1 转诊

NFSv4.1 引用提供了一种初始挂载路径重定向模式,该模式会在发出挂载请求时将客户端引导至卷的位置。NFSv4.1 转介功能在单个 SVM 内运行。此功能尝试将 NFS 挂载点定位到与数据卷位于同一节点上的网络接口。如果该接口或卷在挂载到客户端时移动到另一个节点,则数据路径将不再本地化,直到建立新的挂载点为止。

pNFS 不会尝试定位挂载路径。相反,它会使用挂载路径建立一个元数据服务器,然后根据需要动态地本地化数据路径。

NFSv4.1 引用可以与 pNFS 一起使用,但此功能没有必要。启用 pNFS 的转诊功能不会产生明显效果。

pNFS与高级容量平衡的交互

"高级容量平衡" ONTAP会将文件数据的一部分写入FlexGroup卷的各个组成卷(单个FlexVol卷不支持此功能)。随着文件的增长, ONTAP决定开始将数据写入不同的组成卷上的新的多部分 inode,该组成卷可能位于同一节点上,也可能位于不同的节点上。对这些多 inode 文件进行的写入、读取和元数据操作对客户端是透明的,不会造成干扰。先进的容量平衡技术改善了FlexGroup各组成卷之间的空间管理,从而提供了更稳定的性能。

pNFS 可以根据 NFS 服务器中存储的文件布局信息,将数据 I/O 重定向到本地网络路径。当一个大文件被分成多个部分,分布在多个组成卷中,并且这些卷可能跨越集群中的多个节点时, ONTAP中的 pNFS 仍然可以为每个文件部分提供本地流量,因为ONTAP也维护了所有文件部分的文件布局信息。读取文件时,数据路径的局部性会根据需要而改变。

基于 pNFS 的高级容量平衡
图 4. 基于 pNFS 的高级容量平衡
相关信息