Get Hands-on with Amazon EKS - Workshop Event Series
Whether you're taking your first steps with Kubernetes or you're an experienced practitioner looking to sharpen your skills, our Amazon EKS workshop series delivers practical, real-world experience that moves you forward. Learn directly from AWS solutions architects and EKS specialists through hands-on sessions designed to build your confidence with Kubernetes. Register now and start building with Amazon EKS!
如何确定哪些附加到我的 Amazon EC2 Linux 实例的卷是实例存储(临时)卷?
我有一个 Amazon Elastic Compute Cloud(Amazon EC2)Linux 实例,这个实例附加了 Amazon Elastic Block Store(Amazon EBS)卷和实例存储卷。我想确定附加的卷是实例存储卷。
简短描述
要识别 Amazon EC2 Linux 实例上的实例存储卷,请先检查该实例类型是否支持实例存储卷。如果实例支持实例存储卷,请检查其支持的实例存储卷的类型。之后,查看操作系统(OS)中的卷信息。
解决方法
- 确认您的实例支持的实例存储卷(HDD、SSD 或 NVMe SSD,如果有)的类型。检查每种受支持的实例类型可用的实例存储卷的数量、大小、类型和性能优化。
- 确定您的实例的附加卷中哪些是实例存储卷。识别方法取决于您使用的是 NVMe SSD 还是 HDD/SSD 实例存储卷。
NVMe SSD 实例存储卷
-
安装 NVMe 命令行软件包 nvme-cli。使用适用于 Linux 发行版的软件包管理工具。对于 Amazon Linux 实例,使用 yum install 命令安装 nvme-cli 软件包。有关其他发行版的下载和安装说明,请参阅 nvme-cli 的 GitHub 文档或该发行版的文档。
-
以特权用户身份运行 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 实例存储卷,请从操作系统获取附加的块设备列表。然后,从实例元数据中检索块设备映射部分。
-
运行 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 -
根据上面的示例输出,确定 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 是一个临时设备。
-
(可选)您还可以使用以下命令自动执行显示实例临时设备的过程:
识别操作系统块设备:
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 官方已更新 1 年前