应用弹性注意事项

本页详细介绍了 Google Cloud NetApp Volumes 应用的弹性。

应用弹性注意事项

虽然 NetApp Volumes 具有高可用性,但计划内维护事件(例如平台更新、服务升级、软件升级)或服务中计划外的组件故障可能会导致输入和输出 (I/O) 操作短暂暂停。

I/O 暂停

操作系统内的网络文件系统 (NFS)、服务器消息块 (SMB) 和 iSCSI 客户端软件会处理短暂的 I/O 暂停。客户端会等待并重试 I/O 操作,而不会将问题上报给应用。此类短暂的暂停被认为不会造成中断,因为虽然应用的用户可能会看到更长的响应时间,但应用不会报告 I/O 错误。

对于较长的 I/O 暂停,行为取决于操作系统的 NFS、SMB 或 iSCSI 客户端以及应用中配置的潜在超时。以下各部分讨论了 I/O 暂停的协议特定详细信息。

NFS I/O 暂停

对不可用的硬装载 NFS 共享的所有调用都会在 NFS 客户端中被阻止,并无限期等待,直到 NFS 服务器再次响应。在 NFS 客户端等待期间,客户端日志中会显示表明 NFS 服务器未响应的消息。

从应用的角度来看,读取或写入等 I/O 操作会被阻塞,并且在 NFS 共享成功返回之前一直处于未完成状态。在 I/O 暂停期间,不会丢失任何 I/O 操作,并且 NetApp Volumes 可确保数据一致性,除非您强制停止客户端上未完成的 I/O 操作。

使用集群软件应用自动执行故障切换

如果您在客户端虚拟机上使用 Pacemaker 等集群软件应用来自动执行应用故障切换,请配置 NFS 共享的超时时间,以应对 NetApp Volumes 维护事件。此类故障切换会中止客户端上未完成的 I/O 操作,并可能导致事务丢失。我们建议采用以下超时时间:

协议类型 建议的超时时间 备注
NFSv3 共享 60 秒(对于 Standard、Premium 和 Extreme 服务等级)
120 秒(对于 Flex 服务等级)
我们建议您使用隔离方法,该方法使用 nolock 装载选项,而不是依赖于 NFS 锁定。
NFSv4.1 105 秒(对于 Standard、Premium 和 Extreme 服务等级)
165 秒(对于 Flex 服务等级)
NFSv4.1 协议会自动在 NFSv3 上添加可靠的锁定机制(NFSv4.x RFC,第 9.6.2 节),您可以将其用作隔离机制。 锁定状态恢复会额外增加 45 秒。

SMB 共享 I/O 暂停

与 NFS 不同,SMB 会话使用可能会超时的连接。在大多数情况下,NetApp Volumes 都会在超时之前完成操作。

会话超时

会话超时时间在客户端定义。Windows 客户端的默认超时时间为 60 秒。您可以使用 Get-SmbClientConfiguration/Set-SmbClientConfiguration 命令以及 SessionTimeout 参数来读取或更改会话超时时间。

如果发生会话超时,SMB 会话会中断,并且系统会向执行 I/O 的应用报告 I/O 错误。文件资源管理器或 Microsoft 365 应用通常会在用户再次访问 SMB 共享时立即重新连接。遇到 I/O 错误时,有些应用会尝试重新连接并重试失败的 I/O 操作,而有些应用则不会。请参阅应用供应商的文档,了解应用如何处理 SMB 超时以及如何在 SMB 共享上以弹性方式运行。

持续可用 (CA) 共享是一项 SMB3.x 功能,可提高类数据库应用的故障切换恢复能力。NetApp Volumes 支持为 Microsoft SQL Server 和 FSLogix 提供持续可用的共享。

随着每个新的 SMB 版本的推出,故障恢复能力都会得到提升。NetApp Volumes 支持 SMB 2.1、3.0 和 3.1.1。如果可能,请使用最新的受支持的 SMB 版本。Windows 10/Server 2016 及更高版本支持最新的 SMB 版本 3.1.1。

基于 SMB 应用的注意事项

某些基于 SMB 的应用需要 SMB 透明故障切换。 SMB 透明故障切换可让您在 NetApp Volumes 内的 SMB 卷上执行维护操作,而不会与存储和访问数据的服务器应用中断连接。NetApp Volumes 支持 SMB 持续可用共享选项,以确保特定应用支持 SMB 透明故障切换。使用 SMB 持续可用性共享仅支持以下工作负载:

  • FSLogix 用户个人资料容器

  • Microsoft SQL Server(而非 Linux SQL Server)

SMB 持续可用共享不支持自定义应用。

iSCSI I/O 暂停

在 Linux 和 Windows 环境中,iSCSI 客户端(启动器)通过重试命令来处理 I/O 暂停,直到目标(NetApp Volumes)可用为止。在短暂的维护事件期间,iSCSI 启动器会尝试重新连接并恢复未完成的 I/O 操作,这有助于保持应用弹性。

iSCSI 超时

正确配置 iSCSI 超时对于在维护事件或意外服务中断期间保持应用弹性至关重要。

对于 Linux 系统,NetApp Volumes 使用默认的 iSCSI 启动器设置。这些设置包括默认 Linux 设备映射器多路径中的 NetApp 特定配置,可在 NetApp Volumes 维护事件期间自动管理超时要求。

不过,对于 Windows 系统,请使用以下命令修改 Windows MPIO 设置,以处理 NetApp Volumes 维护事件。

 Set-MPIOSetting -NewPathVerificationState Enabled `
 -NewPDORemovePeriod 130 `
 -NewRetryCount 6 `
 -CustomPathRecovery Enabled `
 -NewPathRecoveryInterval 30 `

在 I/O 暂停期间,iSCSI 发起程序会重试命令,并在超时期间保持未完成的 I/O。如果超过超时时间,操作系统可能会向应用报告 I/O 错误,这可能会导致事务丢失或需要应用级恢复。

应用和集群注意事项

如果您使用可自动执行故障切换的集群软件或应用,请配置 iSCSI 超时,以适应 NetApp Volumes 维护事件。过早的故障切换可能会中止未完成的 I/O 操作,并可能导致数据或事务丢失。请务必参阅应用和操作系统文档,了解有关 iSCSI 超时设置的最佳实践。

有时可能会发生计划内的维护事件,例如平台升级和服务软件升级。从文件协议(NFS 或 SMB)的角度来看,只要应用能够处理在这些事件期间可能发生的 I/O 暂停,维护事件就不会造成中断。

对于 Standard、Premium 和 Extreme 服务等级,I/O 暂停通常很短,从几秒到 30 秒不等。

对于 Flex 服务等级,I/O 暂停时间最长可达 70 秒。

后续步骤

了解 Google Cloud NetApp Volumes 的安全注意事项