如何找出我的ec2存储器的哪个部分是短暂的?

这可能是一个愚蠢的问题,请原谅我的无知。

我有一个这样的实例运行: AWs控制台

根设备:EBS是指我的整个系统在EBS上吗?

我已经在这里configuration了apache和perl应用程序,我所有的configuration和文件都不会消失吗?

我如何知道在临时存储上运行的是什么以及EBS上运行的是什么? 如果我在pipe理控制台中单击实例并查看底部的详细信息,则会显示: EBS Optimized: false这是什么意思?

这是我的存储看起来像:

 [ec2-user@<MY_IP> ~]$ df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda1 7.9G 1.7G 6.2G 22% / tmpfs 298M 0 298M 0% /dev/shm [ec2-user@<MY_IP> ~]$ mount /dev/xvda1 on / type ext4 (rw,noatime) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev/shm type tmpfs (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) 

根设备是你的'/'。 在这种情况下,它是/ dev / xvda1,它是EBS驱动器。

短暂的设备(据我所知):

  • SDB(xvdb)
  • SDC(xvdc)
  • SDD(XVDD)
  • SDE(xvde)

您可以使用AWS UI始终检查哪些设备是EBS驱动器:EC2 – >实例 – > [select您的设备] – >块设备

短暂和ebs设备可以采取几乎所有的字母设备文件名,所以不要单独依靠设备名称。 设备名称对于确定是否短暂是重要的,但是,如下所述。 依靠一个挂载点名称和短语“ebs”同样是不可靠的。

虽然其中一些可以通过EC2 GUI完成,但是仍然需要在服务器上运行一些命令,所以在这里,我只给你一个“全部命令行”的方法。 我会给你从m3.medium CentOS最小6.5实例存储(即短暂)支持的AMI的例子。

1)用yum install -y wget安装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支持的实例。 现在,让我们继续原始实例存储支持的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等。 ebs2 ,你可以运行#3反对'ebs'的名字,如果有的话(例如ebs2 ),并且会产生类似的输出。

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 。 我们已经检查过了,所以我们来看看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没有清单path,因为只有实例存储卷有一个清单(清单列出了S3中AMI的分段的名称和path)。 在我查过的情况下,运行在上面的#6和实例存储ami的结果类似于:

someamibucketname/someamidescription/someamidescription.manifest.xml

而当#6针对EBS支持的AMI运行时,您会得到:

(unknown)

sudo lsblk应该给你一些提示。 IE

 [ec2-user@ec2-host ~]$ sudo lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 8G 0 disk └─xvda1 202:1 0 8G 0 part / xvdb 202:16 0 4G 0 disk /media/ephemeral0