管理實例儲存體
實例儲存體提供快速、經濟實惠的暫時儲存體,可改善部分雲端原生工作負載 (或應用程式或服務) 的效能。 如需相關資訊,請參閱 關於實例儲存空間。
若要使用虛擬伺服器實例佈建實例儲存空間磁碟,請選取包括實例儲存空間的設定檔。 實例儲存體磁碟裝置無法即時連接或分離,因為它們是作為實例設定檔本身的一部分購買。 一般用途設定檔系列 (平衡、計算及記憶體) 及一些特殊設定檔系列 (非常高記憶體及儲存體最佳化) 都具有具有實例儲存體的設定檔選項。 所有第三代實例配置文件都包含實例儲存。 如需詳細資訊,請參閱 第三代實例設定檔。 實例儲存量會依據分配給設定檔的 vCPUs 數量按比例分配。 有關設定檔的詳細資訊,請參閱 x86-64 instance profiles。
在主控台中使用實例儲存配置虛擬伺服器實例
在建立具備實例儲存的虛擬伺服器實例之前,您需要先建立一個 IBM Cloud VPC.
若要使用實例儲存空間佈建,請完成下列步驟:
- 在 IBM Cloud 主控台中,移至導覽功能表圖示
> Infrastructure
> 運算 > 虛擬伺服器實體。
- 在 VPC 的虛擬伺服器實例頁面上,按一下 建立 並輸入必要資訊。 如需特定欄位的相關資訊,請參閱 建立虛擬伺服器。
- 若要選擇實例儲存空間設定檔,請按一下 檢視所有設定檔。 所有 ox2 設定檔及在「設定檔」名稱第四個位置中具有字母 "d" 的設定檔都包括實例儲存體。 包括實例儲存空間的設定檔範例為 bx2d-2x8 及 ox2-2x16。 使用勾選框來過濾清單。 如需實例設定檔的清單,請參閱 x86-64 實例設定檔。
- 選擇您要使用的設定檔,然後點擊「儲存」。 實例儲存空間磁碟在開機磁區之後及遠端 Block Storage 磁區之前 (如果有的話) 連接至虛擬伺服器實例。
- 當您準備好佈建實例時,請按一下 建立虛擬伺服器實例。
下一步
建立實例之後,將浮動 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是開機磁區。vdb和vdc是 600 GB 實例儲存空間磁碟。 在 Linux®中,實例儲存空間磁碟遵循開機磁區,第一個是/dev/vdb。 由於 lsblk 指令會將 "G" 單位顯示為 base-2 GB,因此大小會顯示為 558.8 GiBs。 視作業系統或設定檔的產生而定,磁區大小直欄值可能會不同。 例如,x3d實例設定檔系列可能為本端磁碟佈建 512 位元組磁區大小。vdd和vde是連接至實例的遠端資料磁區。 由於這些資料磁區所要求的單位與lsblk顯示的單位相同,因此其大小會維持完整 GiBs (50)。vdf和vdg是小型區塊磁區,用於實例的 cloud-init 配置。
使用 meta 資料服務來列出實例儲存體
meta 資料服務可以從實例內使用,以擷取實例的相關資訊,包括實例儲存空間磁碟。 若要擷取 meta 資料資訊,必須在佈建實例時啟用 meta 資料服務功能,或之後更新實例來啟用 meta 資料服務功能。 如需啟用及使用程序的相關資訊,請參閱 從實例存取 meta 資料。
如果您具有已啟用 meta 資料服務的實例,則下列步驟示範從 Linux 虛擬伺服器使用實例儲存體 meta 資料的範例。
-
擷取短期實例身分記號。
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 指令之前,您可能需要先安裝
curl或jq套件。jq是以 MIT 授權條款授權的第三方工具。 -
使用記號來取得實例 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') -
對
/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
在此情況下,磁碟名稱是隨機四字產生的名稱,但可以編輯這些名稱以具有自訂名稱。 如需相關資訊,請參閱 更新其中一個預設名稱。
分割、格式化及裝載實例儲存空間磁碟
實例儲存體磁碟可以分割、以檔案系統格式化,並以與遠端區塊磁區相同的方式裝載至階層式檔案系統。
- 如需 Linux®的指示,請參閱 設定 Block Storage for VPC 資料磁區以供使用(Linux) 或 使用 cloud-config Script 來配置單一磁碟實例儲存空間。
- 若為 Windows ®,請使用「電腦管理使用者介面」讓區塊磁區上線、分割區及格式化。 如需相關資訊,請參閱 設定 Block Storage for VPC 資料磁區以供使用(Windows)。
下列 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