本页面介绍了 Google Cloud NetApp Volumes 的应用弹性,以及 NFS、SMB 和 iSCSI 客户端如何处理 I/O 暂停。虽然 NetApp Volumes 具有高可用性,但在计划内维护或计划外服务事件期间,I/O 操作可能会短暂暂停。本页面还 建议了超时设置,以帮助确保应用顺利运行, 尤其是在您使用 Pacemaker等集群软件时。
应用弹性注意事项
虽然 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 和 Flex Unified 服务等级)
120 秒(适用于 Flex File 服务等级) |
我们建议您使用防护方法,该方法使用
nolock 装载选项,而不是依赖于 NFS 锁。 |
| NFSv4.1 | 105 秒(适用于 Standard、Premium、Extreme 和 Flex Unified 服务等级)
165 秒(适用于 Flex File 服务等级) |
NFSv4.1 协议会自动在 NFSv3 上添加可靠的锁定(NFSv4.x RFC, 第 9.6.2 节),您可以将其用作防护机制。 锁状态恢复会增加 45 秒。 |
SMB 共享 I/O 暂停
与 NFS 不同,SMB 会话使用可能会超时的连接。 NetApp Volumes 通常会避免超时。
会话超时
会话超时是在客户端定义的。Windows 客户端的默认超时为 60 秒。您可以使用 SessionTimeout
参数运行 Get-SmbClientConfiguration/Set-SmbClientConfiguration 命令,以读取或更改会话超时。
如果发生会话超时,SMB 会话会中断,并且系统会向执行 I/O 的应用报告 I/O 错误。当用户再次访问 SMB 共享时,文件资源管理器或 Microsoft 365 应用通常会立即重新连接。遇到 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 安全注意事项。