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

Amazon EBS 卷的 NVMe 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 磁盘类注册表设置。