Linux系统中指定的EBS卷名与实际设备名之间的链接

XZe*_*Zen 9 amazon-ec2 amazon-ebs amazon-web-services

我有附加了EBS卷的EC2实例,因此describe-instances命令打印:

     "DeviceName": "/dev/sdf",
     "Ebs": {   "Status": "attached",
                "DeleteOnTermination": false,
                "VolumeId": "vol-04bfa2fab8e57a3dc",
                "AttachTime": "2016-09-26T09:39:08.000Z"   }
Run Code Online (Sandbox Code Playgroud)

根据文件:

根据内核的块设备驱动程序,可能使用与指定名称不同的名称附加设备

在我的情况下,这个卷的实际名称是/dev/xvdf.

是否可以从实例中知道在亚马逊控制台中为卷指定了哪个名称?

反之亦然 - 知道linux将为实例外的卷使用哪个实际名称?

gar*_*les 6

这让我对基于 Nitro 的实例感到抓狂,其中实例上的设备名称可能与 AWS 控制台中显示的顺序不同。幸运的是,根据AWS 文档,实例上设备的序列号设置为 EBS 卷 ID。所以就跑

lsblk -o +SERIAL

它将为您提供控制台中显示的卷 ID。


小智 5

在这里得到回应

您在 Xen VPS(或虚拟机)上;xvd* 只是 Xen 磁盘存储设备(Xen 虚拟块设备)。当您使用更高效的半虚拟化 Xen 磁盘驱动程序而不是直接的 SCSI 磁盘模拟时,它们会代替 sda 等出现。如果您在 Xen HVM 上列出已安装的模块(驱动程序),该驱动程序将显示为 blkfront(如果您在非常旧的 Xen 版本上运行,则该驱动程序将显示为 xen_blk——非常罕见)。

简而言之,像对待普通 PC 上的 sda1 一样对待 xvda1

AWS 文档中也提到

根据内核的块设备驱动程序,设备可能使用与您指定的名称不同的名称附加。例如,如果您指定设备名称为 /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 AMI 使用您在启动时指定的名称创建一个符号链接,指向重命名的设备路径,但其他 AMI 的行为可能有所不同。


小智 0

从 AWS 控制台您永远无法知道,因为此映射是由操作系统完成的。在 Amazon AMI 中,它可能有不同的设备,但始终存在从您请求的原始设备到系统上的实际设备的链接,因此您始终可以使用 DeviceName 作为实际设备。在 RedHat 中情况有所不同,但逻辑上会保持顺序。

  • 您能否再澄清一下 - 您提到从原始设备到系统上的实际设备始终存在一个链接 - 但究竟如何获取此链接?在我的系统中,与 fs 相关的命令仅显示实际名称,而不显示原始名称。 (2认同)
  • 只有 Amazon Linux 创建链接,并非所有 Linux 发行版 (2认同)