從卷建立映像檔

您可以在主控台、CLI、API 或 Terraform 中從連接至已停止的虛擬伺服器實體的磁碟區建立映像,作為開機磁碟區。

在目前發行的第二代區塊儲存磁碟區中,不支援從 sdp 開機磁碟區建立具有客戶管理加密功能的自訂影像。

從磁區建立映像檔的實務範例

您可以透過數種方式從磁區建立映像檔。

  • 選取實例並從該實例的啟動磁區建立映像檔。 新映像檔會繼承開機磁區的加密 (客戶管理或 IBM管理)。

  • 選取實例,從該實例的開機磁區建立映像檔,並指定不同的加密。 例如,如果使用 IBM管理的加密來加密開機磁區,則可以為新映像檔選取客戶管理的加密。

Hyper Protect Crypto Services 已被標記為過時。 客戶可在 2027 年 3 月 20 日前使用現有的實體。 如需更多資訊,請參閱 《 IBM Cloud Hyper Protect Crypto Services 已停用 》。 為了持續確保安全性,請考慮將現有的加密金鑰遷移至專用的 Key Protect 執行個體。 如需更多資訊,請參閱《 遷移指南 》。

  • 從 Block Storage 磁區清單中建立開機磁區的映像檔。 磁區必須是連接至虛擬伺服器實例的啟動磁區。

視您所建立的影像大小而定,這項工作可能需要 5 分鐘到 1.5 小時不等。 您可以取消花費太長時間來佇列的工作。 如需相關資訊,請參閱 效能考量。

當您為客戶影像選擇名稱時,請記住該名稱不能被區域中的其他影像使用,而以 ibm- 開頭的名稱是保留給系統提供的影像。

在主控台中從磁碟區建立影像

您可以從附加到虛擬伺服器實例的磁碟區建立影像,作為主控台中的開機磁碟區。

若要建立開機磁區的映像檔,必須停止相關聯的虛擬伺服器實例。

  1. 在 IBM Cloud控制台中,點選導航選單圖示選單圖示> 基礎架構VPC 圖示>計算>影像。

  2. 在 自訂影像 標籤上,按一下 建立。 即會顯示「VPC 的自訂映像檔」頁面。

  3. 完成「匯入自訂映像檔」頁面上的必要欄位,然後繼續使用其中一個 來源 選項。

導入自訂圖像使用者介面字段
欄位 值
位置 選取您希望自訂映像檔可用於佈建的地理區域及位置。
地理 請從清單中選取。
地區 請從清單中選取。
詳細資料
名稱 您的自訂圖片必須命名。
資源群組 為該映像選擇一個資源群組。 此選項日後無法更改。
標籤 您可以將標籤指派給此資源,以便您可以輕鬆地過濾資源清單中的資源。
存取管理標籤 如名稱所指示,這些標籤可以協助組織存取控制,而不需要更新 IAM 原則。 如需相關資訊,請參閱 使用標籤控制對資源的存取權。
來源 透過選擇以下任一選項來選擇自訂影像的來源虛擬伺服器執行個體啟動卷(預設)或 Block Storage啟動音量。
  1. 選擇您的映像檔來源:

    • 選取 虛擬伺服器實例啟動磁區 作為自訂映像檔的來源,以顯示可用實例的清單。

      • 請從清單中選取該執行個體。
      • 如果實例正在執行中,且磁區選取器已停用,請按一下 動作 圖示 「動作」圖示,然後選取 停止。
    • 選取 Block Storage 開機磁區 作為自訂映像檔的來源,以顯示可用開機磁區的清單。

      • 請從清單中選取磁碟。
      • 如果已停用磁區選取器,請按一下 動作 圖示 「動作」圖示,然後選取 停止連接的實例。
  2. 選取您的加密類型: IBM管理的加密或客戶管理的加密。

    • 預設選項為 提供者管理。 此加密使用 IBM管理的金鑰。 您稍後無法移除加密。
    • 若要建立一個使用您自己的金鑰進行加密的影像,請選擇儲存您客戶根金鑰(CRK)的金鑰管理服務,該金鑰用於保護您的密碼短語。 然後,您可以使用兩種方式來指定金鑰。
      • 依實例尋找
        1. 從清單中選取金鑰管理服務實例。
        2. 選取您的金鑰。 如果您沒有可用的金鑰,請按一下 建立 以建立金鑰。
      • 依 CRN 尋找
        1. 請輸入您的加密金鑰的 CRN。
  3. 進階選項:您可以設定允許使用的表達方式,並啟動影像生命週期管理。

    • 「允許用途」表達式用以定義映像檔的功能與限制,協助您在建立伺服器時,找出相容的映像檔與設定檔組合。 您可以為虛擬伺服器實體和裸機伺服器輸入 允許使用的表達式。
    • 您可以使用切換鍵啟動影像生命週期管理。 選擇此選項後,您可以管理圖片變為 deprecated 和 obsolete 的時間。 您可以排定單一狀態變更,或排定映像檔的完整生命週期。 您可以使用行事曆日期和時間或天數來排定狀態變更。 作廢日期必須一律晚於淘汰日期。 如需詳細資訊,請參閱 自訂影像生命週期。
  4. 在右側畫面上,按一下 建立自訂映像檔。

檢視及使用自訂映像檔

建立映像檔時,它會出現在自訂映像檔清單中。

  1. 在 IBM Cloud 主控台中,移至 功能表 功能表圖示 > VPC 基礎架構 VPC 圖示 > 運算> 映像檔。
  2. 在 自訂映像檔 標籤上,按一下映像檔名稱以查看從中建立它的磁區。
  3. 檢閱映像檔詳細資料。 按一下 來源 區段中的鏈結,以移至來源磁區。

若要在建立實例時使用此映像檔,請選取它作為作業系統類型。

  1. 在 IBM Cloud 主控台中,移至 功能表 功能表圖示 > VPC 基礎架構VPC 圖示 > 運算> 虛擬伺服器實例。
  2. 按一下建立。 有關如何配置新虛擬伺服器實例的詳細資訊,請參閱 在主控台中建立虛擬伺服器實例。 對於 作業系統,選取 自訂映像檔 磚。
  3. 按一下 選取自訂映像檔,然後從您建立的磁區中選取映像檔。

使用 CLI 從磁區建立映像檔

使用命令列介面 (CLI) 從連接到虛擬伺服器實例作為開機磁碟區的磁碟區建立影像。

開始之前

  1. 確定您已下載、安裝和起始設定下列 CLI 外掛程式:

    • IBM Cloud CLI
    • infrastructure-service 外掛程式

    如需相關資訊,請參閱 CLI 參考資料。

  2. 確保您已建立 IBM Cloud VPC。

從連接至實例的開機磁區建立映像檔

  1. 若要尋找您要從中建立映像檔的實例,請在地區中 列出實例。 請記下指令輸出中的實例 ID。

    ibmcloud is instances
    
  2. 停止執行中實例,然後從磁區建立映像檔。

    ibmcloud is instance-stop INSTANCE_ID
    
  3. 執行 image-create 指令,以建立開機磁區的映像檔。 指定來源磁區的 ID。

    ibmcloud is image-create IMAGE_NAME [--source-volume VOLUME_ID]
    

    請參閱下列範例:

    $ ibmcloud is image-create test-ifv-vol1 --source-volume ecc68c2f-96a1-4862-bc86-14f47e5d9ed8
    Creating image test-ifv-vol1 in resource group  under account Test Account as user test.user@ibm.com...
    ID                 5b2fd4ee-c636-44c4-9673-453fca36832e
    Name               test-ifv-vol1
    CRN                crn:v1:bluemix:public:is:us-south:a/a123456::image:5b2fd4ee-c636-44c4-9673-453fca36832e
    Status             pending
    Status reason      Code                   Message                                                More info
                       image_request_queued   The image request is accepted and waiting for system   -
                                              resources to become available.
    Operating system   Name             Architecture   Vendor   Version                 Dedicated host only
                       centos-8-amd64   amd64          CentOS   8.x - Minimal Install   false
    Source volume      ID                                     Name
                       ecc68c2f-96a1-4862-bc86-14f47e5d9ed8   aa-1-bx-boot-1617035447000
    Created            2021-05-20T09:43:16+08:00
    Visibility         private
    File size(GB)      -
    Encryption         none
    Resource group     f22cf48f-8836-4527-9131-1d7c73ba85e9
    

使用 CLI 排定自訂映像檔生命週期狀態變更

建立自訂影像時,您也可以使用 ibmcloud is image-create 指令的 --deprecate-at 或 --obsolete-at 選項,同時排程 IBM Cloud VPC 自訂影像的生命週期狀態變更。

若要排定 deprecate-at 或 obsolete-at 內容,請以 ISO 8601 (YYYY-MM-DDThh:mm:ss+hh:mm) 日期和時間格式指定日期。

  • YYYY 是四位數的年份。
  • MM 是兩位數的月份。
  • DD 是兩位數的日期。
  • T 會區隔日期和時間資訊。
  • hh 是兩位數的小時。
  • mm 是兩位數的分鐘。
  • +hh:mm 或 -hh:mm 是「世界標準時間 (UTC)」時區。

例如,北美中央標準時區 (CST) 2025 年 9 月 30 日晚上 8:00 的日期為 2025-09-30T20:00:00-06:00

排定日期和時間時,不能使用您目前的日期和時間。 預定日期和時間必須在未來。 如果您同時定義 deprecate-at 和 obsolete-at 日期和時間,則 deprecate-at 日期必須晚於 obsolete-at 日期和時間。

ibmcloud is image-create IMAGE_NAME [--source-volume VOLUME_ID] [--deprecate-at YYYY-MM-DDThh:mm:ss+hh:mm] [--obsolete-at YYYY-MM-DDThh:mm:ss+hh:mm]

使用 API 從磁區建立映像檔

透過呼叫 VPC REST API,以程式化方式從 Block Storage for VPC 開機磁區建立自訂映像檔。 您可以列出所有實例及磁區,然後使用特定磁區的詳細資料來建立映像檔。

開始之前

開始之前,請確定 設定 API 環境。

使用 API 從實例開機建立映像檔

  1. 尋找您要從中建立映像檔的實例及開機磁區。 使用 list instance 方法取得可用實例的清單。

    curl -X GET "$vpc_api_endpoint/v1/instances?version=2024-06-11&generation=2" -H "Authorization: Bearer $iam_token"
    
  2. 請記下實例 ID,並使用它來 擷取實例 詳細資料。

    curl -X GET "$vpc_api_endpoint/v1/instances/$instance_id?version=2024-06-11&generation=2" -H "Authorization: Bearer $iam_token"
    

    回應在 volume_attachments 區段中包含開機磁區的名稱、ID 及其他詳細資料。

    "volume_attachments": [
     {
      "device": {
        "id": "a8a15363-a6f7-4f01-af60-715e85b28141"
        },
      "href": "https://us-south.iaas.cloud.ibm.com/v1/instances/e402fa1b-96f6-4aa2-a8d7-703aac843651/volume_attachments/7389-a8a15363-a6f7-4f01-af60-715e85b28141",
      "id": "a8a15363-a6f7-4f01-af60-715e85b28141",
      "name": "my-boot-volume-attachment",
      "volume": {
        "crn": "crn:[...]",
        "href": "https://us-south.iaas.cloud.ibm.com/v1/volumes/49c5d61b-41e7-4c01-9b7a-1a97366c6916",
        "id": "49c5d61b-41e7-4c01-9b7a-1a97366c6916",
        "name": "my-boot-volume"
        }
      }
    ]
    
  3. 如果實例正在執行中,請在 POST /instances 呼叫中指定 stop 動作來停止它:

    curl -X POST \
    "$vpc_api_endpoint/v1/instances/{instance-id}/gen/actions?ersion=2024-06-11&generation=2"
    -H "Authorization: Bearer $iam_token"\
    -d '{"type":"stop"}'
    
  4. 透過使用開機磁區 ID,建立映像檔。 請參閱下列範例:

     curl -X POST "$vpc_api_endpoint/v1/images?version=2024-06-11&generation=2"
     -H "Authorization: Bearer $iam_token"
     -d '{
          "name": "my-image",
          "source_volume": {"id": "4fec84ef-baf9-405d-bf3b-9d5a60e068f7"}
          }`
    

    在範例回應中,source_volume 指出用來建立映像檔的開機磁區。 此外,請注意映像檔加密會顯示為 none,因為來源磁區使用預設 IBM受管理加密。 如果您 使用自己的 root 密鑰,回應會顯示 user-managed。

    {
     "created_at": "2021-05-20T00:05:13.873893Z",
     "crn": "crn:[...]",
     "encryption": "none",
     "file": {},
     "href": "https://us-south.iaas.cloud.ibm.com/v1/images/4fec84ef-baf9-405d-bf3b-9d5a60e068f7",
     "id": "4fec84ef-baf9-405d-bf3b-9d5a60e068f7",
     "name": "test-ifv-boot-volume",
     "operating_system": {
       "architecture": "amd64",
       "display_name": "CentOS 8.x - Minimal Install (amd64)",
       "family": "CentOS",
       "href": "https://us-south.iaas.cloud.ibm.com/v1/operating_systems/centos-8-amd64",
       "name": "centos-8-amd64",
       "vendor": "CentOS",
       "version": "8.x - Minimal Install"
       },
     "resource_group": {
       "href": "https://us-south.iaas.cloud.ibm.com/v1/resource_groups/3fad3f2204eb4998c3964d254ffcd771",
       "id": "3fad3f2204eb4998c3964d254ffcd771",
       "name": "Default"
       },
     "status": "pending",
     "status_reasons": [],
     "visibility": "private",
     "source_volume":  {
       "id": "4fec84ef-baf9-405d-bf3b-9d5a60e068f7",
       "crn": "crn:[...]",
       "href": "",
       "name": "my-boot-volume"
       }
     }
    

從磁區建立映像檔並指定您自己的加密金鑰

  1. 如前一節所述,尋找實例及開機磁區資訊。 停止實例。

  2. 取得金鑰管理服務實例 ID 及根金鑰 CRN。

  3. 發出 API 要求以 建立映像檔。 指定卷 ID 和根密鑰的 CRN,如下例所示。

    curl -X POST "$vpc_api_endpoint/v1/images?version=2024-06-11&generation=2"
    -H "Authorization: Bearer $iam_token"
        -d '{
             "name": "my-encrypted-image",
             "source_volume": {"id": "4fec84ef-baf9-405d-bf3b-9d5a60e068f7"}
             "encryption_key":{"crn":"crn:[...key:...]"
            },
    

    回應包括根金鑰的相關資訊。

    {
     "created_at": "2021-05-20T00:05:13.873893Z",
     "crn": "crn:[...]",
     "encryption_key": {
       "crn": "crn:[...key:...]"
       },
     "encryption": "user_managed",
     "file": {},
     "href": "https://us-south.iaas.cloud.ibm.com/v1/images/4fec84ef-baf9-405d-bf3b-9d5a60e068f7",
     "id": "4fec84ef-baf9-405d-bf3b-9d5a60e068f7",
     "name": "test-ifv-boot-volume",
     "operating_system": {
       "architecture": "amd64",
       "display_name": "CentOS 8.x - Minimal Install (amd64)",
       "family": "CentOS",
       "href": "https://us-south.iaas.cloud.ibm.com/v1/operating_systems/centos-8-amd64",
       "name": "centos-8-amd64",
       "vendor": "CentOS",
       "version": "8.x - Minimal Install"
       },
     "resource_group": {
       "href": "https://us-south.iaas.cloud.ibm.com/v1/resource_groups/3fad3f2204eb4998c3964d254ffcd771",
       "id": "3fad3f2204eb4998c3964d254ffcd771",
       "name": "Default"
       },
     "status": "pending",
     "status_reasons": [],
     "visibility": "private",
     "source_volume":  {
       "id": "4fec84ef-baf9-405d-bf3b-9d5a60e068f7",
       "crn": "crn:[...]",
       "href": "",
       "name": "ifv-boot-vol"
       }
     }
    

使用 API 排定自訂映像檔生命週期狀態變更

從磁碟區建立影像時,您可以同時排程自訂影像的生命週期狀態變更。

若要排定 deprecation_at 或 obsolescence_at 內容,請以 ISO 8601 (YYYY-MM-DDThh:mm:ss+hh:mm) 日期和時間格式指定日期。

  • YYYY 是四位數的年份
  • MM 是兩位數的月份
  • DD 是兩位數的日期
  • T 會區隔日期和時間資訊
  • hh 是兩位數的小時
  • mm 是兩位數的分鐘
  • +hh:mm 或 -hh:mm 是世界時區 (UTC)

例如,北美中央標準時區 (CST) 2023 年 9 月 30 日晚上 8:00 的日期為 2023-09-30T20:00:00-06:00

排定日期和時間時,不能使用您目前的日期和時間。 預定日期和時間必須在未來。 如果您同時定義 deprecation_at 和 obsolescence_at 日期和時間,則 obsolescence_at 日期必須晚於 deprecation_at 日期和時間。

curl -X POST "$vpc_api_endpoint/v1/images?version=2023-02-21&generation=2"\
-H "Authorization: Bearer $iam_token"\
-d '{
      "name": "test-ifv-boot-volume",
      "source_volume": {
    	  "id": "4fec84ef-baf9-405d-bf3b-9d5a60e068f7"
      },
      "deprecation_at": "2025-11-28T06:11:28+05:30",
      "obsolescence_at": "2025-12-28T06:11:28+05:30"
    }'

使用 Terraform 從卷建立映像

使用 ibm_is_image 資源,利用 Terraform 從 Block Storage for VPC 開機磁碟區建立自訂影像。 指定映像名稱後,指定來源磁碟區 ID。

您也可以選擇指定用於加密自訂映像的客戶根金鑰的 CRN,並設定 允許使用的表達式。 請參閱下列範例:

resource "ibm_is_image" "example" {
  name               = "example-image"
  source_volume      = "xxxx-xxxx-xxxxxxx"
  encrypted_data_key = "eJxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx0="
  encryption_key     = "crn:v1:bluemix:public:kms:us-south:a/6xxxxxxxxxxxxxxx:xxxxxxx-xxxx-xxxx-xxxxxxx:key:dxxxxxx-fxxx-4xxx-9xxx-7xxxxxxxx"
  allowed_use {
    api_version       = "2025-04-03"
    bare_metal_server = "enable_secure_boot == true"
    instance          = "enable_secure_boot == true"
  }
  //increase timeouts as per volume size
  timeouts {
    create = "45m"
  }
}

您也可以使用 deprecation_at 或 obsolescence_at 屬性,同時排程 IBM Cloud VPC 自訂影像的生命週期狀態變更。 以 ISO 8601 (YYYY-MM-DDThh:mm:ss+hh:mm) 日期和時間格式指定日期。

  • YYYY 是四位數的年份
  • MM 是兩位數的月份
  • DD 是兩位數的日期
  • T 會區隔日期和時間資訊
  • hh 是兩位數的小時
  • mm 是兩位數的分鐘
  • +hh:mm 或 -hh:mm 是世界時區 (UTC)

例如,北美中央標準時區 (CST) 2025 年 9 月 30 日晚上 8:00 的日期為 2025-09-30T20:00:00-06:00

排定日期和時間時,不能使用您目前的日期和時間。 預定日期和時間必須在未來。 如果您同時定義 deprecation_at 和 obsolescence_at 日期和時間,則 obsolescence_at 日期必須晚於 deprecation_at 日期和時間。

  • 將狀態變更排程至 deprecated。

    resource "ibm_is_image" "example" {
      name               = "example-image"
      source_volume      = "xxxx-xxxx-xxxxxxx"
      encrypted_data_key = "eJxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx0="
      encryption_key     = "crn:v1:bluemix:public:kms:us-south:a/6xxxxxxxxxxxxxxx:xxxxxxx-xxxx-xxxx-xxxxxxx:key:dxxxxxx-fxxx-4xxx-9xxx-7xxxxxxxx"
      deprecated_at      = "2025-11-28T15:10:00.000Z"
    }
    
  • 將狀態變更排程至 obsolete。

    resource "ibm_is_image" "example" {
      name               = "example-image"
      source_volume      = "xxxx-xxxx-xxxxxxx"
      encrypted_data_key = "eJxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx0="
      encryption_key     = "crn:v1:bluemix:public:kms:us-south:a/6xxxxxxxxxxxxxxx:xxxxxxx-xxxx-xxxx-xxxxxxx:key:dxxxxxx-fxxx-4xxx-9xxx-7xxxxxxxx"
      obsolescence_at    = "2025-12-28T15:10:00.000Z"
    }
    

下一步