如何識別連接到我的 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 命令來安裝 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 安裝命令來安裝 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

相關內容
- 已提問 1 年前lg...
- 已提問 6 個月前lg...
- 已提問 2 年前lg...
- 已提問 1 年前lg...
- 已提問 2 個月前lg...
- AWS 官方已更新 2 年前
- AWS 官方已更新 3 個月前
- AWS 官方已更新 3 年前
- AWS 官方已更新 2 年前