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 中,NFSv4.1 会话中继用于集群中单个节点上的多个物理接口,以提供跨独立连接的额外吞吐量和冗余。
当与 pNFS 一起使用时,这些中继可以在整个集群中提供更全面的聚合性能。
会话中继的建立有多种方式:
-
通过挂载选项自动发现: 大多数现代 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 时,将为挂载接口所在的 NFS 服务器节点上列出的会话中继接口利用添加的 GETATTR 调用(FS_Locations)。返回这些地址后,将对返回的地址进行后续挂载。这可以在挂载期间的数据包捕获中看到。
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也维护了所有文件部分的文件布局信息。读取文件时,数据路径的局部性会根据需要而改变。