Linux 实例上的设备名称
当您将卷附加到实例时,需要为卷提供设备名称。该设备名称由 Amazon EC2 使用。实例的块储存设备驱动程序会在装载卷时分配实际的卷名称,指定的名称可以与 Amazon EC2 使用的名称不同。
您的实例可支持的卷的数量取决于操作系统。有关更多信息,请参阅实例卷限制。
有关 Windows 实例上的设备名称的信息,请参阅 Amazon EC2 用户指南(适用于 Windows 实例) 中的 Windows 实例上的设备命名。
可用设备名称
对 Linux 实例提供两种类型的虚拟化:半虚拟化 (PV) 和硬件虚拟机 (HVM)。实例的虚拟化类型由用于启动实例的 AMI 确定。支持 HVM AMI 的所有实例类型。上一代的某些实例类型支持半虚拟化 AMI。请务必注意您的 AMI 的虚拟化类型,因为推荐的和您可以使用的可用设备名称取决于您的实例的虚拟化类型。有关更多信息,请参阅Linux AMI 虚拟化类型。
下表列出了在块储存设备映射中或附加 EBS 卷时您可指定的可用设备名称。
虚拟化类型 | Available | 为根卷预留 | 建议用于 EBS 卷 | 实例存储卷 |
---|---|---|---|---|
半虚拟化 |
/dev/sd[a-z] /dev/sd[a-z][1-15] /dev/hd[a-z] /dev/hd[a-z][1-15] |
/dev/sda1 |
/dev/sd[f-p] /dev/sd[f-p][1-6] |
/dev/sd[b-e] |
全虚拟化 |
/dev/sd[a-z] /dev/xvd[b-c][a-z] |
不同的 AMI /dev/sda1 或 /dev/xvda |
/dev/sd[f-p] * |
/dev/sd[b-e] /dev/sd[b-h] (h1.16xlarge) /dev/sd[b-y] (d2.8xlarge) /dev/sd[b-i] (i2.8xlarge) ** |
* 您在块储存设备映射中为 NVMe EBS 卷指定的设备名称将使用 NVMe 设备名称 (/dev/nvme[0-26]n1
) 进行重命名。块储存设备驱动程序可以使用不同于您在块储存设备映射中为卷指定的顺序来分配 NVMe 设备名称。
** 将自动枚举 NVMe 实例存储卷并为其分配 NVMe 设备名称。
有关实例存储卷的更多信息,请参阅 Amazon EC2 实例存储。有关 NVMe EBS 卷(基于 Nitro 的实例)的更多信息,包括如何识别 EBS 设备,请参阅 Linux 实例上的 Amazon EBS 和 NVMe。
设备名称注意事项
在选择设备名称时请记住以下原则:
-
尽管您可以使用用于附加实例存储卷的设备名附加 EBS 卷,我们还是强烈建议您不要这样做,因为这种操作具有不可预测性。
-
实例的 NVMe 实例存储卷数取决于该实例的大小。将自动枚举 NVMe 实例存储卷并为其分配 NVMe 设备名称 (
/dev/nvme[0-26]n1
)。 -
根据内核的块储存设备驱动程序,附加的设备所采用的名称可能与您指定的名称不同。例如,如果您指定
/dev/sdh
的设备名称,则设备可能命名为/dev/xvdh
或/dev/hdh
。在大多数情况下,尾部字母保持不变。在某些版本的 Red Hat Enterprise Linux(及其变体,例如,CentOS)中,尾部字母可能发生变化(/dev/sda
可能变为/dev/xvde
)。在这些情况下,每个设备名称的尾部字母都会递增相同次数。例如,如果/dev/sdb
重命名为/dev/xvdf
,则/dev/sdc
重命名为/dev/xvdg
。Amazon Linux 为您对重命名设备指定的名称创建符号链接。其他操作系统的行为方式可能有所不同。 -
HVM AMI 不支持在设备名称中使用尾部数字,除为根设备保留的
/dev/sda1
和/dev/sda2
以外。尽管可以使用/dev/sda2
,但我们不建议将此设备映射与 HVM 实例结合使用。 -
使用 PV AMI 时,您不能连接共享相同设备字母的卷,无论是否带有尾部数字都是如此。例如,如果您将一个卷附加为
/dev/sdc
,另一个卷附加为/dev/sdc1
,则只有/dev/sdc
将对实例可见。要在设备名称中使用尾部数字,您必须对所有基础字母相同的设备名称使用尾部数字 (例如/dev/sdc1
、/dev/sdc2
、/dev/sdc3
)。 -
一些自定义内核可能会包含限制,限制使用
/dev/sd[f-p]
或/dev/sd[f-p][1-6]
。如果您在使用/dev/sd[q-z]
或/dev/sd[q-z][1-6]
时遇到问题,请尝试切换为/dev/sd[f-p]
或/dev/sd[f-p][1-6]
。