PowerScale:OneFS:NFS 客户端设置的最佳实践
요약: 本文介绍了使用网络文件系统 (NFS) 协议连接到 PowerScale 群集时客户端设置和装载选项的最佳实践和建议,它适用于所有受支持的 OneFS 版本。
증상
OneFS:网络文件系统 (NFS) 客户端设置的最佳实践
원인
支持的协议版本
PowerScale OneFS 当前支持网络文件系统 (NFS) 版本 3 和 4。NFS 版本 2 不受支持。
NFSv3
NFS 版本 3 是当今使用最广泛的 NFS 协议版本,被认为在客户端和文件管理器中得到了最广泛的采用。以下是此版本的一些关键组件:
- 无状态 - 如果客户端具有请求文件等的正确信息,那么它在技术上不需要建立新会话。这允许通过动态 IP 池在 OneFS 节点之间进行简单的故障切换。
- 用户和组信息以数字形式显示 - 客户端和服务器通过数字标识符传达用户信息,允许同一用户在客户端和服务器之间以不同的名称出现。
- 文件锁定在带外 - NFS 版本 3 使用名为 NLM 的帮助程序协议来执行锁定。这要求客户端响应来自服务器的 RPC 消息,以确认锁定已获得授予。
- 可以基于 TCP 或 UDP 运行 - 此版本的协议可以基于 UDP(而非 TCP)运行,将丢失和重新传输的处理留给软件(而非操作系统)。Dell Technologies 始终建议使用 TCP。
NFSv4
NFS 版本 4 是 NFS 协议的最新主要版本,采用率在不断提高。 以下是 v3 和 v4 之间的一些主要区别。
- 有状态 - NFSv4 使用会话来处理通信,因此客户端和服务器都必须跟踪会话状态以继续通信。
- 在 OneFS 8.X 之前,这意味着 NFSv4 客户端需要 PowerScale 上的静态 IP 池,否则可能会遇到问题。
- 用户和组信息以字符串形式显示 - 客户端和服务器都必须解析存储的数字信息的名称。服务器必须查找要显示的名称,而客户端必须将这些名称重新映射到其末端的数字。
- 文件锁定在带内 - 版本 4 不再使用单独的协议进行文件锁定,而是使其成为一种与 OPEN、CREATES 或 WRITES 复合的调用类型。
- 复合调用 - 版本 4 可以将一系列调用打包到一个数据包中,允许服务器处理所有调用并在最后进行应答。这用于减少常见操作中涉及的调用次数。
- 仅支持 TCP - NFS 版本 4 已将丢失和重新传输留给底层操作系统来处理。
NFSv4.1 及更高版本
NFSv4.1 和 v4.2 从 OneFS 版本 9.3 开始提供。
以下是 9.3 的官方版本信息:
PowerScale OneFS 信息中心
해결
装载选项
虽然 Dell Technologies 对装载选项没有硬性要求,但 Dell Technologies 对客户端连接方式提出了一些建议。Dell Technologies 尚未提供特定的装载字符串,因为用于定义这些选项的语法因使用的操作系统而异。您必须遵循发行版维护者的文档以了解特定的装载语法。
PowerScale 支持还建议将以下白皮书作为使用 PowerScale 配置 NFS 客户端的主要参考,其中包括 wsize/rize、属性缓存等的建议选项:
PowerScale OneFS NFS 设计注意事项和最佳实践https://infohub.delltechnologies.com/en-us/t/powerscale-onefs-nfs-design-considerations-and-best-practices-3/
读取和写入大小 (rsize / wsize)
关于“wsize/rsize 选项”,PowerScale 支持建议“wsize”和“rsize”至少为 128K(基于我们的本机数据块大小)。
但是,对于大多数现代 Linux 发行版,PowerScale 支持实际上建议不要显式配置设置(即,不要在客户端装载选项中指定读/写大小),而是让客户端重新协商调整。现代 Linux 发行版支持高达 1 MB 的 NFS 读/写数据块大小,并将自动与 PowerScale NFS 服务器协商最佳数据块大小。协商的值非常适合大多数正确配置的高性能、低延迟网络。例外情况是,除非您的应用程序或供应商特别需要较小的尺寸。
如果未明确设置,NFS 客户端将使用 PowerScale NFS 服务器 FSINFO 数据,如 PowerScale 群集上配置的 NFS 导出中所定义。
PowerScale 提供的默认值如下所示:
NFSv3: 512KB writes / 1MB reads
NFSv4: 1MB writes/ 1MB reads
有关“rsize”和“wsize”的更多详细信息,请参阅以下白皮书中的第 12 页和第 19 页:
PowerScale OneFS NFS 设计注意事项和最佳实践https://infohub.delltechnologies.com/en-us/t/powerscale-onefs-nfs-design-considerations-and-best-practices-3/
定义重试和超时
虽然 PowerScale 通常会快速响应客户端通信,但在节点断电或断开网络连接的情况下,其 IP 地址可能需要几秒钟才能移动到正常工作的节点,因此正确定义超时和重试值非常重要。PowerScale 通常建议将超时值设置为 60 秒,以应对最糟糕的故障切换情形,并设置为在报告故障之前重试两次。
软装载与硬装载
硬装载会导致客户端在超时或出错时无限期地重试其操作。这可确保在 PowerScale 群集将 IP 地址从一个节点移动到另一个节点的情况下,客户端不会断开该装载。而软装载会出错并使装载过期,需要重新装载才能在 IP 地址移动后恢复访问。
允许中断
默认情况下,大多数客户端不允许您中断输入/输出或 I/O 等待,这意味着您无法使用 ctrl+c 要在群集停止响应时结束等待过程,包括 interrupt Mount 选项允许这些信号正常传递。
本地锁定与远程锁定
装载 NFS 导出时,您可以指定客户端是在本地生成其锁定,还是使用群集上的锁定协调器。大多数客户端默认为远程锁定,当多个客户端访问同一目录时,这通常是最佳选项,但是,当客户端不需要共享对其正在使用的目录的访问权限时,执行本地锁定可能会带来性能方面的好处。此外,某些数据库和软件会要求您使用本地锁定,因为它们具有自己的协调器。
属性缓存 (ac/noac)
关于“活动高速缓存超时”,这被视为客户端行为。因此,PowerScale 支持不会针对这些设置提供建议,因为这取决于您的需求。但是,客户可以在以下白皮书的第 22 页上找到有关这些设置的一些一般指导:
PowerScale OneFS NFS 设计注意事项和最佳实践https://infohub.delltechnologies.com/en-us/t/powerscale-onefs-nfs-design-considerations-and-best-practices-3/
根据上述第 22 页的内容:
属性缓存 (ac/noac)
使用 noac 装载选项可实现多个客户端之间的属性高速缓存一致性。几乎每个文件系统操作都会检查文件属性信息。客户端将此信息缓存一段时间,以减少网络和服务器负载。当 noac 生效时,客户端的文件属性高速缓存处于禁用状态,因此必须检查文件属性的每个操作都将强制返回服务器。此外,noac 选项强制应用程序写入变为同步状态,以便客户端在打开文件时看到对文件的更改,但代价是需要许多额外的网络操作。默认情况下,装载 NFS 时启用属性缓存。启用属性缓存可提高属性检查性能并减少 NFS 操作延迟。
NFSv3 与 NFSv4 的性能
根据实验室测试,PowerScale 支持在受支持的最新 OneFS 版本中未发现不同版本的 NFS 之间存在任何明显的性能差异。
추가 정보
要查看特定 NFS 导出的 wsize/rsize 值,您可以在任何 PowerScale 节点上运行以下命令:
# isi nfs exports ls -v --zone <zone name>
或者,要检查特定的导出 ID,客户可以运行以下命令:
# isi nfs export view <export id>
示例:
Read Transfer Max Size: 1.00M Read Transfer Size: 128.00k Write Transfer Max Size: 1.00M Write Transfer Size: 512.00k