如何确定哪些附加到我的 Amazon EC2 Linux 实例的卷是实例存储(临时)卷?

2 分钟阅读
0

我有一个 Amazon Elastic Compute Cloud(Amazon EC2)Linux 实例,这个实例附加了 Amazon Elastic Block Store(Amazon EBS)卷和实例存储卷。我想确定附加的卷是实例存储卷。

简短描述

要识别 Amazon EC2 Linux 实例上的实例存储卷,请先检查该实例类型是否支持实例存储卷。如果实例支持实例存储卷,请检查其支持的实例存储卷的类型。之后,查看操作系统(OS)中的卷信息。

解决方法

  1. 确认您的实例支持的实例存储卷(HDD、SSD 或 NVMe SSD,如果有)的类型。检查每种受支持的实例类型可用的实例存储卷的数量、大小、类型和性能优化
  2. 确定您的实例的附加卷中哪些是实例存储卷。识别方法取决于您使用的是 NVMe SSD 还是 HDD/SSD 实例存储卷。

NVMe SSD 实例存储卷

  1. 连接到您的实例

  2. 安装 NVMe 命令行软件包 nvme-cli。使用适用于 Linux 发行版的软件包管理工具。对于 Amazon Linux 实例,使用 yum install 命令安装 nvme-cli 软件包。有关其他发行版的下载和安装说明,请参阅 nvme-cli 的 GitHub 文档或该发行版的文档。

  3. 以特权用户身份运行 nvme list 命令:

    $ sudo nvme list

    此输出示例的模型列中列出了连接的每个设备是 Amazon Elastic Block Store 还是 Amazon EC2 NVMe 实例存储。示例输出来自于可为一个 NVMe SSD 设备提供支持的实例类型:

    $ sudo nvme list
    Node             SN                   Model                                    Namespace Usage                      Format           FW Rev
    ---------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- --------
    /dev/nvme0n1     vol0923757ba05df9515 Amazon Elastic Block Store               1           0.00   B /   8.59  GB    512   B +  0 B   1.0
    /dev/nvme1n1     AWS1A4FC25FB16B79F76 Amazon EC2 NVMe Instance Storage         1          50.00  GB /  50.00  GB    512   B +  0 B   0

HDD 或 SSD 实例存储卷

对于 HDD 或 SSD 实例存储卷,请从操作系统获取附加的块设备列表。然后,从实例元数据中检索块设备映射部分。

  1. 连接到您的实例

  2. 运行 lsblk 命令。如果 lsblk 命令不存在,请从适用于 Linux 发行版的软件包管理工具安装 util-linux 软件包。对于 Amazon Linux 实例,使用 yum install 命令安装 util-linux 软件包。有关其他发行版的下载和安装说明,请参阅该发行版的文档:

    $ sudo lsblk

    此输出示例显示了一个有多个驱动器的实例中的块设备列表。此实例在支持 SSD 实例存储卷的实例类型上运行:

    $ 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 745.2G  0 disk
    xvdc    202:32   0 745.2G  0 disk
    xvdd    202:48   0 745.2G  0 disk
    xvde    202:64   0 745.2G  0 disk
  3. 根据上面的示例输出,确定 xvdb 是否为临时驱动器。为此,请检索 block-device-mapping 元数据。使用所有实例元数据请求的基本 URL(http://169.254.169.254/latest/meta-data/block-device-mapping):

    $ curl http://169.254.169.254/latest/meta-data/block-device-mapping/ephemeral0
    sdb
    $ ls -l /dev/sdb
    lrwxrwxrwx 1 root root 4 Aug 27 13:07 /dev/sdb -> xvdb

    在此示例中,ephemeral0 的块设备映射指向 sdb。这是指向 xvdb 的符号链接。这意味着 xvdb 是一个临时设备。

  4. (可选)您还可以使用以下命令自动执行显示实例临时设备的过程:

    识别操作系统块设备:

    OSDEVICE=$(sudo lsblk -o NAME -n | grep -v '[[:digit:]]' | sed "s/^sd/xvd/g")

    设置块设备映射 URL:

    BDMURL="http://169.254.169.254/latest/meta-data/block-device-mapping/"

    遍历操作系统设备并在块设备映射中找到映射:

    for bd in $(curl -s ${BDMURL}); do MAPDEVICE=$(curl -s ${BDMURL}/${bd}/ | sed "s/^sd/xvd/g"); if grep -wq ${MAPDEVICE} <<< "${OSDEVICE}"; then echo "${bd} is ${MAPDEVICE}"; fi; done | grep ephemeral

    此示例显示了这三个命令和一个输出:

    $ OSDEVICE=$(sudo lsblk -o NAME -n | grep -v '[[:digit:]]' | sed "s/^sd/xvd/g")
    $ BDMURL="http://169.254.169.254/latest/meta-data/block-device-mapping/"
    $ for bd in $(curl -s ${BDMURL}); do MAPDEVICE=$(curl -s ${BDMURL}/${bd}/ | sed "s/^sd/xvd/g"); if grep -wq ${MAPDEVICE} <<< "${OSDEVICE}"; then echo "${bd} is ${MAPDEVICE}"; fi; done | grep ephemeral
    ephemeral0 is xvdb
    ephemeral1 is xvdc
    ephemeral2 is xvdd
    ephemeral3 is xvde
AWS 官方
AWS 官方已更新 8 个月前