linux 查看存储卷,识别附加到 Amazon EC2 Linux 实例的实例存储(暂存)卷

如何识别附加到我的 Amazon EC2 Linux 实例的哪些卷是实例存储(暂存)卷?

上次更新时间:2019 年 12 月 19 日

我有一个 Amazon Elastic Compute Cloud (Amazon EC2) Linux 实例,同时具有附加在其上的 Amazon Elastic Block Store (Amazon EBS) 卷和实例存储(暂存)卷。如何识别哪些附加卷是实例存储卷?

简短描述

要识别 Amazon EC2 Linux 实例上的实例存储卷,首先检查实例类型是否支持实例存储卷。如果实例支持实例存储卷,则检查支持的实例存储卷的类型,并从操作系统 (OS) 查看卷的信息。

解决方法

1.    验证实例支持的实例存储卷类型(HDD、SSD 或 NVMe SSD,如果有)。请参阅 Amazon EC2 实例存储 – 实例存储卷以查看实例存储卷的数量、大小、类型和性能优化,这些卷可用于每个支持的实例类型。

2.    确定附加到实例的哪些卷是实例存储卷。所用的识别方法取决于您是否具有 NVMe SSD 或 HDD/SSD 实例存储卷。

NVMe SSD 实例存储卷

2.    使用 Linux 发行版的软件包管理工具安装 NVMe 命令行软件包 nvme-cli。对于 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 实例存储卷,从操作系统获取连接的块储存设备列表,然后检索包含在实例元数据中的块储存设备映射部分。

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 是否为临时驱动器,请使用适用于所有实例元数据请求的基本 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

这篇文章对您有帮助吗?

我们可以改进什么?

需要更多帮助?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值