你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Kerberos 对 Azure NetApp 文件 NFSv4.1 卷的性能影响

Azure NetApp 文件支持使用 AES-256 加密在 Kerberos 模式(krb5、krb5i 和 krb5p)下加密 NFS 客户端。 本文介绍 Kerberos 对 NFSv4.1 卷的性能影响。 本文中引用的性能比较是针对 sec=sys 安全参数进行的,通过单个客户端对单个卷进行测试。

可用的安全选项

当前可用于 NFSv4.1 卷的安全选项如下所示:

  • sec=sys 通过 AUTH_SYS 使用本地 UNIX UID 和 GID 来对 NFS 操作进行身份验证。
  • sec=krb5 使用 Kerberos V5 代替本地 UNIX UID 和 GID 来对用户进行身份验证。
  • sec=krb5i 使用 Kerberos V5 进行用户身份验证,并使用安全校验和执行 NFS 操作的完整性检查,以防止数据篡改。
  • sec=krb5p 使用 Kerberos V5 进行用户身份验证和完整性检查。 它加密 NFS 流量以防止流量嗅探。 此选项是最安全的设置,但也涉及最大的性能开销。

已测试的性能向量

本部分介绍各种 sec=* 选项对单个客户端性能的影响。

  • 在两个级别上测试了性能影响:低并发(低负载)和高并发(I/O 和吞吐量的上限)。
  • 测试了三种类型的工作负荷:
    • 小型操作随机读取/写入(使用 FIO)
    • 大型操作顺序读取/写入(使用 FIO)
    • 由 git 等应用程序生成的元数据繁重工作负载

预期性能影响

有两个重要方面:轻型负载和上限。 以下列表按安全设置和方案介绍了性能影响安全设置。

测试范围

  • 所有比较都是针对 sec=sys 安全参数进行的。
  • 该测试是使用单个客户端在单个卷上完成的。

krb5 的性能影响:

  • 平均 IOPS 降低了 53%
  • 平均吞吐量下降了 53%
  • 平均延迟增加 0.2 毫秒

krb5i 的性能影响:

  • 平均 IOPS 降低了 55%
  • 平均吞吐量下降了 55%
  • 平均延迟增加了 0.6 毫秒

krb5p 的性能影响:

  • 平均 IOPS 降低了 77%
  • 平均吞吐量下降了 77%
  • 平均延迟增加了 1.6 毫秒

nconnect 的性能注意事项

不建议同时使用 nconnectsec=krb5* 装载选项。 结合使用这两个选项时,发现性能下降。

通用安全标准应用程序编程接口 (GSS-API) 为应用程序提供了一种保护发送到对等应用程序的数据的方法。 此数据可能从一台计算机上的客户端发送到另一台计算机上的服务器。 

在 Linux 中使用 nconnect 时,GSS 安全上下文在与特定服务器的所有 nconnect 连接之间共享。 TCP 是一种可靠的传输方式,它支持无序数据包传递,以使用序列号的滑动窗口来处理 GSS 流中的无序数据包。 当接收到不在序列窗口中的数据包时,会丢弃安全上下文,并协商新的安全上下文。 在现在丢弃的上下文中发送的所有消息都不再有效,因此需要再次发送消息。 nconnect 设置中的数据包数量较多会导致频繁出现窗口外数据包,从而触发所描述的行为。 此行为无法说明特定降级百分比。

后续步骤