ONTAP中的 pNFS 用例
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 与 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 的好处,而数据服务器只能使用单个连接。 |
pNFS 可以为集群中的每个参与节点提供本地路径,并且当与会话中继一起使用时,pNFS 可以利用每个节点的会话中继来最大限度地提高整个集群的吞吐量。
什么时候 trunkdiscovery 如果使用,则会利用附加的 GETATTR 调用 (FS_Locations) 来获取 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也维护了所有文件部分的文件布局信息。读取文件时,数据路径的局部性会根据需要而改变。