![如何确定我的 ec2 存储中哪些部分是临时的](https://linux22.com/image/604505/%E5%A6%82%E4%BD%95%E7%A1%AE%E5%AE%9A%E6%88%91%E7%9A%84%20ec2%20%E5%AD%98%E5%82%A8%E4%B8%AD%E5%93%AA%E4%BA%9B%E9%83%A8%E5%88%86%E6%98%AF%E4%B8%B4%E6%97%B6%E7%9A%84.png)
这可能是一个愚蠢的问题,请原谅我的无知。
我有一个像这样运行的实例:
做根设备:EBS这是否意味着我的整个系统都在 EBS 上?
我在这里配置了 apache 和 perl 应用程序,我的所有配置和文件都将不会消失正确的?
我如何知道临时存储上运行着什么以及 EBS 上运行着什么?如果我单击管理控制台中的实例并查看底部的详细信息,它会显示: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)
答案1
根设备是您的“/”。在本例中,它是 /dev/xvda1,它是 EBS 驱动器。
据我所知,临时设备包括:
- sdb(xvdb)
- sdc(xvdc)
- sdd(xvdd)
- sde(xvde)
您可以随时使用 AWS UI 检查哪些设备是 EBS 驱动器:EC2 -> 实例 -> [选择您的] -> 块设备
答案2
临时和 ebs 设备几乎可以采用任何带字母的设备文件名,因此不要仅仅依赖设备名称。不过,设备名称对于确定它是否是临时的非常重要,正如我将在下面概述的那样。依赖带有“ephemeral”或“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 支持还是 Instance Store 支持。我们还有一个命令要运行。
6)wget -q 169.254.169.254/latest/meta-data/ami-manifest-path -O -
我是肯定EBS 支持的 AMI 没有清单路径,因为只有实例存储卷才有清单(清单列出了 S3 中 AMI 的捆绑段的名称和路径)。在我检查过的情况下,上述第 6 项针对实例存储 AMI 运行时的结果类似于:
someamibucketname/someamidescription/someamidescription.manifest.xml
然而,当 #6 针对 EBS 支持的 AMI 运行时,您会获得:
(unknown)
答案3
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
答案4
这是迄今为止最好和最简单的答案:sudo nvme list
示例输出:
Node SN Model Namespace Usage Format FW Rev
--------------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- --------
/dev/nvme0n1 vol0e48b0af811e38f32 Amazon Elastic Block Store 1 1.10 TB / 1.10 TB 512 B + 0 B 1.0
/dev/nvme1n1 AWS2B98C3128CB6B74BC Amazon EC2 NVMe Instance Storage 1 950.00 GB / 950.00 GB 512 B + 0 B 0