如何識別連接到我的 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 命令來安裝 nvme-cli 套件。如需其他發行套件的下載和安裝說明,請參閱 nvme-cli 的 GitHub 文件,或參閱您發行套件的文件。

  3. 以特許使用者身分執行 nvme list 命令:

    $ sudo nvme list

    若每個連接的裝置為 Amazon Elastic Block StoreAmazon 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 安裝命令來安裝 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 個月前