临时设备和ebs设备几乎可以使用任何带字母的设备文件名,因此不要仅依靠设备名。设备名称对于确定它是否短暂是很重要的,但是,正如我将在下面概述的那样。同样,依靠带有“临时”或“ ebs”一词的安装点名称也不可靠。
尽管其中一些可以通过EC2 GUI来完成,但是仍然需要在服务器本身上运行一些命令,因此在这里,我只为您提供“所有命令行”方法。我将以m3.medium CentOS最低6.5实例存储(即临时)支持的AMI为例。
1)使用以下命令安装wget实用程序 yum install -y wget
2)跑 wget -q 169.254.169.254/latest/meta-data/block-device-mapping/ -O -
在此示例中,实例存储支持AMI-上面命令#2的输出为:
ami
ephemeral0
为了进行比较,以下是仅具有EBS卷(无临时驱动器)的EBS支持的CentOS服务器的示例输出:
ami
ebs2
ebs3
稍后,我将返回具有EBS卷的EBS支持的实例。现在,让我们继续原始的实例存储支持的AMI示例,该示例向我们展示了一个临时驱动器。
要找出哪个设备文件映射到您的临时驱动器,请再次运行wget,这一次将上面#2中发现的临时驱动器的名称添加到url中:
3) wget -q 169.254.169.254/latest/meta-data/block-device-mapping/ephemeral0 -O -
并且,在此示例中,输出为/是:
sdb
这强调了我的观点,即您不能假设/ dev / sdb到/ dev / sde都是ebs设备。这可能是真实的的/ dev / xvdb通过的/ dev / xvde是EBS -但我的系统总是以/ dev / xvde1开始,所以这些设备的信件的存在可能取决于操作系统,区域,AMI等,你正在使用。顺便说一句,您可以对'ebs'名称(如果有的话,例如ebs2
)运行#3 ,并且将产生类似的输出。
4)接下来,运行 lsblk
在这种情况下,输出如下所示:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvde1 202:65 0 8G 0 disk /
xvdf 202:80 0 4G 0 disk
这从上面强调了我的观点,即您不能依靠安装点来告诉您设备是否为临时设备。
您还将注意到,EC2设备卷号和操作系统的映射号之间的映射不匹配。好消息是,即使驱动器号本身不匹配,驱动器号也将以相同的顺序递增。因此,让我们从设备映射元数据中获取“其他”驱动器号。正如您在上面看到的,有两个设备映射,一个称为ami
,另一个称为ephemeral0
。我们已经检查了ephemeral0,因此让我们检查ami:
5) wget -q 169.254.169.254/latest/meta-data/block-device-mapping/ami -O -
输出如下:
sda1
我们可以放心地得出结论,OS映射中的最低字母是EC2块设备映射中的最低字母,我们可以从那里向上递增。从而:
/dev/sda1 = /dev/xvde1
和 /dev/sdb = /dev/xvdf
最后但并非最不重要的一点 -您会注意到,块设备映射ami
不会立即将其自身提供给EBS支持还是实例存储支持。我们还有一个命令要运行。
6) wget -q 169.254.169.254/latest/meta-data/ami-manifest-path -O -
我确信 EBS支持的AMI没有清单路径,因为只有实例存储卷才具有清单(清单列出了S3中AMI捆绑段的名称和路径)。在我检查过的情况下,针对#6和实例存储ami运行时,上面#6的结果类似于:
someamibucketname/someamidescription/someamidescription.manifest.xml
相反,当针对EBS支持的AMI运行#6时,您会得到:
(unknown)