NVMe 亚马逊 EBS 卷的 I/O 操作超时 - Amazon EBS

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

NVMe 亚马逊 EBS 卷的 I/O 操作超时

大多数操作系统都为提交给 NVMe 设备的 I/O 操作指定超时时间。

Linux 实例

在 Linux 上,连接到基于 Nitro的实例的 EBS 卷使用操作系统提供的默认 NVMe 驱动程序。大多数操作系统都为提交给 NVMe 设备的 I/O 操作指定超时时间。默认超时为 30 秒,可以使用 nvme_core.io_timeout 引导参数更改该超时。对于 4.6 版之前的大多数 Linux 内核版本,此参数为 nvme.io_timeout

如果 I/O 延迟超过此超时参数的值,Linux NVMe 驱动程序将 I/O 失败并向文件系统或应用程序返回错误。根据 I/O 操作,您的文件系统或应用程序可以重试错误。在某些情况下,您的文件系统可能会通过只读方式重新挂载。

为了获得与附加到 Xen 实例的 EBS 卷类似的体验,我们建议将 nvme_core.io_timeout 设置为可能的最大值。对于当前内核,最大值为 4294967295,而对于较早的内核,最大值为 255。根据 Linux 版本的不同,超时时间可能已设置为支持的最大值。例如,对于 Amazon Linux AMI 2017.09.01 以及更高的版本,超时时间默认设置为 4294967295。

您可以通过将高于建议最大值的值写入 /sys/module/nvme_core/parameters/io_timeout 并在尝试保存文件时检查数值结果超出范围错误,以此来验证您的 Linux 发行版的最大值。

Windows 实例

在 Windows 上,默认超时为 60 秒,最大超时为 255 秒。您可以使用 SCSI 微端口驱动程序的注册表项中所述的步骤修改 TimeoutValue 磁盘类注册表设置。