管理實例儲存體

實例儲存體提供快速、經濟實惠的暫時儲存體,可改善部分雲端原生工作負載 (或應用程式或服務) 的效能。 如需相關資訊,請參閱 關於實例儲存空間

若要使用虛擬伺服器實例佈建實例儲存空間磁碟,請選取包括實例儲存空間的設定檔。 實例儲存體磁碟裝置無法即時連接或分離,因為它們是作為實例設定檔本身的一部分購買。 一般用途設定檔系列 (平衡、計算及記憶體) 及一些特殊設定檔系列 (非常高記憶體及儲存體最佳化) 都具有具有實例儲存體的設定檔選項。 所有第三代實例配置文件都包含實例儲存。 如需詳細資訊,請參閱 第三代實例設定檔。 實例儲存量會依據分配給設定檔的 vCPUs 數量按比例分配。 有關設定檔的詳細資訊,請參閱 x86-64 instance profiles。

在主控台中使用實例儲存配置虛擬伺服器實例

在建立具備實例儲存的虛擬伺服器實例之前,您需要先建立一個 IBM Cloud VPC.

若要使用實例儲存空間佈建,請完成下列步驟:

  1. IBM Cloud 主控台中,移至導覽功能表圖示功能表圖示 > Infrastructure VPC 圖示 > 運算 > 虛擬伺服器實體
  2. 在 VPC 的虛擬伺服器實例頁面上,按一下 建立 並輸入必要資訊。 如需特定欄位的相關資訊,請參閱 建立虛擬伺服器
  3. 若要選擇實例儲存空間設定檔,請按一下 檢視所有設定檔。 所有 ox2 設定檔及在「設定檔」名稱第四個位置中具有字母 "d" 的設定檔都包括實例儲存體。 包括實例儲存空間的設定檔範例為 bx2d-2x8 及 ox2-2x16。 使用勾選框來過濾清單。 如需實例設定檔的清單,請參閱 x86-64 實例設定檔
  4. 選擇您要使用的設定檔,然後點擊「儲存」。 實例儲存空間磁碟在開機磁區之後及遠端 Block Storage 磁區之前 (如果有的話) 連接至虛擬伺服器實例。
  5. 當您準備好佈建實例時,請按一下 建立虛擬伺服器實例

下一步

建立實例之後,將浮動 IP 位址與實例相關聯。 然後您便可以連接至實例。 如需相關資訊,請參閱連接至 Linux 實例連接至 Windows 實例。 如果您的現有實例具有浮動 IP 位址,則不需要將第二個浮動 IP 指派給另一個實例。 您可以先使用浮動 IP 連接至第一個實例,然後使用自動指派給它的專用子網路 IP 位址,透過 SSH 連接至第二個實例。

從 CLI 佈建具有實例儲存空間的虛擬伺服器實例

若要佈建具有實例儲存空間的虛擬伺服器實例,請遵循 使用 CLI 建立虛擬伺服器 的指示。 選擇包含實例儲存空間磁碟的設定檔。 如需設定檔的相關資訊,請參閱 實例設定檔

使用 API 佈建具有實例儲存體的虛擬伺服器實例

若要佈建具有實例儲存空間的虛擬伺服器實例,請遵循 使用 REST API 來建立 VPC 資源 的指示。 選擇包含實例儲存空間磁碟的設定檔。 如需設定檔的相關資訊,請參閱 實例設定檔

API (或 CLI) 有助於決定用於連接實例儲存空間磁碟的介面類型。 從建立作業 (或取得) 傳回的實例物件會報告 disks 陣列中的實例磁碟,如下列範例局部輸出所示。

  "disks": [
    {
      "created_at": "2022-04-19T17:13:28Z",
      "href": "https://sample-region.iaas.cloud.ibm.com/v1/instances/vsi_aba03916-8804-46ae-9275-b7dc196e94b3/disks/c4e4d137-a44f-47b8-beb0-a22dc8f8c6ea",
      "id": "c4e4d137-a44f-47b8-beb0-a22dc8f8c6ea",
      "interface_type": "virtio_blk",
      "name": "babbling-drove-grove-catnap",
      "resource_type": "instance_disk",
      "size": 600
    }]

此範例顯示介面類型 virtio_blk

搭配使用自訂映像檔與實例儲存體磁碟

如果您使用自訂映像檔,請確定您在映像檔中載入正確的裝置驅動程式,以使用磁碟。

如果實例儲存裝置具有介面類型 virtio_blk,則必須安裝 libvirt virtio 驅動程式。 libvirt virtio 驅動程式會隨所有 IBM 提供的作業系統自動安裝。 具有實例儲存體的所有一般用途設定檔僅提供 virtio_blk 連線。

使用實例中的實例儲存空間

列出實例上的區塊裝置

在 Linux®上,您可以在登入實例之後使用 lsblk 指令來列出區塊裝置。 在下列範例中,佈建的實例具有兩個 600 GB 實例磁碟及兩個 50 GiB 資料磁區。 lsblk 指令會指定自訂直欄清單,以強調顯示實例儲存空間與遠端 Block Storage之間的部分差異。

實例磁碟以千兆位元組(GB)為單位計量,但 lsblk 顯示容量單位為吉比位元組( GiB )。

$ lsblk -o NAME,SIZE,MAJ:MIN,TYPE,PHY-SEC,LOG-SEC,MOUNTPOINT
NAME          SIZE MAJ:MIN TYPE PHY-SEC LOG-SEC MOUNTPOINT
vda           100G 252:0   disk     512     512
├─vda1          1G 252:1   part     512     512 /boot
└─vda2         99G 252:2   part     512     512
  ├─cl-root    97G 253:0   lvm      512     512 /
  └─cl-swap   2.1G 253:1   lvm      512     512
vdb         558.8G 252:16  disk    4096    4096
vdc         558.8G 252:32  disk    4096    4096
vdd            50G 252:48  disk     512     512
vde            50G 252:64  disk     512     512
vdf           366K 252:80  disk     512     512
vdg            44K 252:96  disk     512     512

在此範例中,所有 Block Storage 裝置都是 virtio_blk 裝置:

  • vda 是開機磁區。
  • vdbvdc 是 600 GB 實例儲存空間磁碟。 在 Linux®中,實例儲存空間磁碟遵循開機磁區,第一個是 /dev/vdb。 由於 lsblk 指令會將 "G" 單位顯示為 base-2 GB,因此大小會顯示為 558.8 GiBs。 視作業系統或設定檔的產生而定,磁區大小直欄值可能會不同。 例如,x3d 實例設定檔系列可能為本端磁碟佈建 512 位元組磁區大小。
  • vddvde 是連接至實例的遠端資料磁區。 由於這些資料磁區所要求的單位與 lsblk 顯示的單位相同,因此其大小會維持完整 GiBs (50)。
  • vdfvdg 是小型區塊磁區,用於實例的 cloud-init 配置。

使用 meta 資料服務來列出實例儲存體

meta 資料服務可以從實例內使用,以擷取實例的相關資訊,包括實例儲存空間磁碟。 若要擷取 meta 資料資訊,必須在佈建實例時啟用 meta 資料服務功能,或之後更新實例來啟用 meta 資料服務功能。 如需啟用及使用程序的相關資訊,請參閱 從實例存取 meta 資料

如果您具有已啟用 meta 資料服務的實例,則下列步驟示範從 Linux 虛擬伺服器使用實例儲存體 meta 資料的範例。

  1. 擷取短期實例身分記號。

    instance_identity_token=`curl -X PUT "http://api.metadata.cloud.ibm.com/instance_identity/v1/token?version=2022-03-01" -H "Metadata-Flavor: ibm" -H "Accept: application/json" -d '{ "expires_in": 300}' | jq -r '(.access_token)'`
    

    若已啟用安全元資料服務端點,請使用 HTTPSHTTP 取代。 在執行 curl 指令之前,您可能需要先安裝 curljq 套件。jq 是以 MIT 授權條款授權的第三方工具。

  2. 使用記號來取得實例 meta 資料,並選取 disks 部分,然後將 JSON 儲存在 Bash 變數中。

    disks=$(curl -sS -X GET "http://api.metadata.cloud.ibm.com/metadata/v1/instance?version=2024-02-20" -H "Authorization: Bearer $instance_identity_token" | jq -r '.disks')
    
  3. /dev/disk/by-id 中的 virtio 裝置進行迴圈,並使裝置路徑與前一個步驟中儲存的實例磁碟資訊產生關聯。

    for ln in $(ls /dev/disk/by-id/virtio*); do b=$(basename $ln); s=${b#virtio-}; disk=$(echo $disks | jq -r ".[] | select(.id | startswith(\"$s\"))"); if [ -n "$disk" ]; then echo "$ln $(readlink -f $ln) $(echo $disk | jq -r '(.size|tostring) + " " + .name')";fi;done
    

以下是先前指令的範例輸出,其中直欄順序為 (1) by-id 路徑、(2) symlink 裝置目標、(3) 大小 (GB) 及 (4) Cloud UI/CLI/API 磁碟名稱:

/dev/disk/by-id/virtio-0736-35db69bb-d09b-4 /dev/vdc 600 palmtree-vacuumed-judiciary-wharf
/dev/disk/by-id/virtio-0736-874803ac-2593-4 /dev/vdb 600 lunacy-dismantle-dotted-fiddling

在此情況下,磁碟名稱是隨機四字產生的名稱,但可以編輯這些名稱以具有自訂名稱。 如需相關資訊,請參閱 更新其中一個預設名稱

分割、格式化及裝載實例儲存空間磁碟

實例儲存體磁碟可以分割、以檔案系統格式化,並以與遠端區塊磁區相同的方式裝載至階層式檔案系統。

下列 lsblk 範例顯示登入 bx3d-48x240 實例並將 vdc 分割成兩個主要分割區、使用個別檔案系統格式化並裝載它們之後的輸出。 grep 指令與正則表達式用來篩選輸出,使其只包含透過 Metadata 服務取得的 vdb 和 vdc 裝置 (請參閱前一節)。

$ lsblk | grep -E "NAME|vd[b|c]"
NAME    MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
vdb     252:16   0 726.4G  0 disk
vdc     252:32   0 726.4G  0 disk
├─vdc1  252:33   0   200G  0 part /mnt/localdisk1
└─vdc2  252:34   0 526.4G  0 part /mnt/localdisk2

由於實例儲存具有短暫性,請 Linux® 在虛擬 /etc/fstab 機器的檔案中使用 nofail 選項設定掛載條目,或完全省略掛載條目。 此設定可在開機期間避免裝載失敗。

下列範例顯示具有 nofail 選項的裝載項目。

/dev/vdb1 /mnt/inststg1 ext4 defaults,nofail 0 0

查閱實例設定檔的實例儲存空間詳細資料

當您過濾實例設定檔時,請在 Web 使用者介面或 CLI 中尋找實例儲存體直欄。 它可能稱為 Storage(GB)

下列範例顯示可能的直欄值及其意義:

  • 1 x 150 GB-單一 150 GB 區塊裝置連接至實例儲存體的虛擬伺服器實例。
  • 2 x 600 GB-連接兩個 600 GB (總計 1200 個) 實例儲存區塊裝置。

在某些環境定義中,您可能會看到實例設定檔或所連接實例磁碟的「介面類型」(通常是 virtio_blk)。 下列範例顯示從 CLI 取得特定實例設定檔的詳細資料。

ibmcloud is in-pr bx2d-48x192
Getting instance profile bx2d-48x192 under account YYYYYY as user vpc-user@myco.com...

Name                     bx2d-48x192
Architecture             amd64
vCPU Manufacturer        intel
Family                   balanced
vCPUs                    48
Memory(GiB)              192
GPU                      Model   Manufacturer   Count   Memory(GiB)
                         -       -              -       -

Numa Count               -
Bandwidth(Mbps)          80000
Volume bandwidth(Mbps)   -
Instance Storage Disks   Quantity   Size   Supported interface types
                         2          900    virtio_blk

Min NIC Count            1
Max NIC Count            10

報告實例儲存體資訊

您可以使用下列 CLI 範例來報告虛擬伺服器實例的實例儲存空間資訊。 請替換為您自己的實例ID或名稱。

ibmcloud is instance-disks 0716_f8c0fd3b-cada-46c3-91f6-c271937ef488
Listing disks of instance 0716_f8c0fd3b-cada-46c3-91f6-c271937ef488 under account YYYYYY as user vpc-user@myco.com...
ID                                          Name                               Size   Interface Type
0716-6ebed02f-c421-4b06-a73b-f334413e84b3   clunky-refocus-tidings-underpaid   600    virtio_blk
0716-54ee0659-d92a-4d4c-ac6b-8f03cb178a07   linguini-epiphany-lush-preschool   600    virtio_blk

更新其中一個預設名稱

您可以使用下列 CLI 指令來更新實例儲存空間磁碟的自訂名稱。 將最後兩個參數分別替換為您自己的實例 ID 和磁碟 ID。

ibmcloud is instance-disk-update 0716_f8c0fd3b-cada-46c3-91f6-c271937ef488 0716-6ebed02f-c421-4b06-a73b-f334413e84b3 --name my-instance-disk1
Updating instance disk 0716-6ebed02f-c421-4b06-a73b-f334413e84b3 of instance 0716_f8c0fd3b-cada-46c3-91f6-c271937ef488 under account YYYYYY as user vpc-user@myco.com...

ID               0716-6ebed02f-c421-4b06-a73b-f334413e84b3
Name             my-instance-disk1
Size             600
Interface Type   virtio_blk
Created          2020-10-29T22:57:15-05:00

$ ibmcloud is instance-disks 0716_f8c0fd3b-cada-46c3-91f6-c271937ef488
Listing disks of instance 0716_f8c0fd3b-cada-46c3-91f6-c271937ef488 under account YYYYYY as user vpc-user@myco.com...
ID                                          Name                               Size   Interface Type
0716-6ebed02f-c421-4b06-a73b-f334413e84b3   my-instance-disk1                  600    virtio_blk
0716-54ee0659-d92a-4d4c-ac6b-8f03cb178a07   linguini-epiphany-lush-preschool   600    virtio_blk