Amazon Elastic Compute Cloud
Linux 实例用户指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

Amazon EBS 和 NVMe

对于 C5 和 M5 实例,EBS 卷显示为 NVMe 块储存设备。设备名称为 /dev/nvme0n1/dev/nvme1n1,以此类推。您在块储存设备映射中指定的设备名称将使用 NVMe 设备名称 (/dev/nvme[0-26]n1) 进行重命名。

注意

无论块储存设备接口如何,Amazon_EBS_Product_Details 中声明的 EBS 性能保证都有效。

识别 EBS 设备

Amazon Linux AMI

利用 Amazon Linux AMI 2017.09.01 或更高版本,您可以按下面所示运行 ebsnvme-id 命令以将 NVMe 设备名称映射到卷 ID 和设备名称。

[ec2-user ~]$ sudo /sbin/ebsnvme-id /dev/nvme1n1 Volume ID: vol-01324f611e2463981 /dev/sdf

Amazon Linux 还将创建从块储存设备映射中的设备名称 (例如,/dev/sdf) 到 NVMe 设备名称的符号链接。

其他 Linux AMI

利用内核版本 4.2 或更高版本,您可以按下面所示运行 nvme id-ctrl 命令以将 NVMe 设备映射到卷 ID。首先,安装 NVMe 命令行:

[ec2-user ~]$ sudo yum install nvme

以下示例将获取卷 ID 和设备名称。设备名称通过特定于 NVMe 控制器供应商的扩展 (控制器标识的字节 384:4095) 提供。

[ec2-user ~]$ sudo nvme id-ctrl -v /dev/nvme1n1 NVME Identify Controller: vid : 0x1d0f ssvid : 0x1d0f sn : vol01234567890abcdef mn : Amazon Elastic Block Store ... 0000: 2f 64 65 76 2f 73 64 6a 20 20 20 20 20 20 20 20 "/dev/sdf..."

lsblk 命令可列出可用设备及其装载点 (如果适用)。这有助于确定要使用的正确设备名称。在本示例中,/dev/nvme0n1p1 作为根设备装载,/dev/nvme1n1 会附加但不会装载。

[ec2-user ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT nvme1n1 259:3 0 100G 0 disk nvme0n1 259:0 0 8G 0 disk nvme0n1p1 259:1 0 8G 0 part / nvme0n1p128 259:2 0 1M 0 part

使用 NVMe EBS 卷

如果您使用的是 Linux 内核 4.2 或更高版本,您对 NVMe EBS 卷的卷大小进行的所有更改将自动在实例中反映。对于旧版 Linux 内核,您可能需要分离然后附加 EBS 卷或者重启实例才能反映大小更改。对于 Linux 内核 3.19 或更高版本,您可以按下面所示使用 hdparm 命令强制重新扫描 NVMe 设备:

[ec2-user ~]$ sudo hdparm -z /dev/nvme1n1

在分离 NVMe EBS 卷之前,您应该同步并卸载它。当您分离 NVMe EBS 卷时,强制执行选项会隐式启用。因此,在分离卷之前,实例没有机会刷新文件系统缓存或元数据。

注意

如果您使用了 st1sc1 卷,我们建议您现在继续使用 C4 实例。C5 和 M5 目前不支持 st1sc1 卷。

I/O 操作超时

NVMe EBS 卷使用操作系统提供的默认 NVMe 驱动程序。大多数操作系统为提交到 NVMe 设备的 I/O 操作指定一个超时。

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

在 Linux 系统上,默认超时为 30 秒,可以使用 nvme_core.io_timeout 引导参数更改该超时。为了获得与附加到 Xen 实例的 EBS 卷类似的体验,我们建议将该参数设置为可能的最大值。对于 Amazon Linux AMI 2017.09.01 (或更高版本) 以及具有 4.15 或更高版本 Linux 内核,最大值为 4294967295。在 Linux 4.15 之前,最大值为 255 秒。如果使用当前版本的 Amazon Linux AMI,我们已增加了该超时。

对于 Linux 内核 4.14 和更高版本,您还可以配置 I/O 操作可以重试的次数。默认设置为重试 5 次。您可以使用 nvme_core.nvme_max_retries 内核引导参数配置不同的值,或者在运行时使用以下命令配置该值:

[ec2-user ~]$ echo 10 > /sys/module/nvme_core/parameters/max_retries