本文說明如何將開機和非開機磁碟連接至 Compute Engine 裸機和虛擬機器 (VM) 執行個體,以及如何重新連接這些磁碟。
卸載執行個體的開機磁碟後,您不必重新建立執行個體,即可完成下列工作:
- 以其他磁碟取代執行個體的開機磁碟
- 將執行個體的開機磁碟暫時連接至其他執行個體,藉此修復開機磁碟
將非開機磁碟從一個執行個體卸載,並掛接至另一個執行個體,即可在第二個執行個體中使用磁碟上的資料,無須將資料複製到新磁碟。
事前準備
-
如果尚未設定驗證,請先完成設定。
驗證可確認您的身分,以便存取 Cloud de Confiance by S3NS 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列其中一個選項,向 Compute Engine 進行驗證:
選取這個頁面上範例的預計用途分頁:
控制台
使用 Cloud de Confiance 控制台存取 Cloud de Confiance by S3NS 服務和 API 時,不需要設定驗證。
gcloud
-
安裝 Google Cloud CLI,然後 使用聯合身分登入 gcloud CLI。登入後,執行下列指令來初始化 Google Cloud CLI:
gcloud init
-
- 設定預設區域和可用區。
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI,然後 使用聯合身分登入 gcloud CLI。
詳情請參閱 Cloud de Confiance 驗證說明文件中的「使用 REST 進行驗證」。
這項工作需要的權限
如要執行這項工作,您必須具備下列權限:
- 執行個體的
compute.instances.detachDisk權限 - 執行個體的
compute.instances.attachDisk權限
在執行個體之間移動開機磁碟
在不同機器系列的執行個體之間移動開機磁碟前,請確認兩個執行個體的開機磁碟架構是否相符。舉例來說,您無法將 C4A 執行個體的開機磁碟連接至 C4 執行個體,因為 C4A 和 C4 分別使用 Arm 和 x86 架構。如要判斷機器系列的架構,請參閱「機器系列比較」表格中的「架構」列。
如要瞭解在不同機器系列之間移動開機磁碟時,需要考量的其他因素,請參閱「將工作負載移至新的運算執行個體」。
限制
- 開機磁碟的架構必須與執行個體的架構相符。舉例來說,您無法將使用 x86 的開機磁碟連接至 Arm 執行個體。
- 您只能從已停止的 VM 執行個體連接或卸離開機磁碟。
- 每個 VM 執行個體只能附加一個開機磁碟。
- 如果使用 gcloud CLI 或 REST,您只能將現有的開機磁碟連結至 VM 執行個體。
- 您無法將本機 SSD 磁碟從執行個體卸離。您只能在建立執行個體時,將本機 SSD 磁碟附加至執行個體。
卸載開機磁碟
從 VM 執行個體卸載開機磁碟前,請務必停止執行個體。不必卸載磁碟。
控制台
- 前往「VM instances」(VM 執行個體) 頁面。
- 如果出現系統提示,請選取您的專案,然後按一下 [Continue] (繼續)。
- 按一下要卸離開機磁碟的執行個體。
- 按一下「停止」停止 VM。如果沒有「停止」選項,請依序點選 「更多動作」>「停止」。
- 按一下 [編輯]。
- 在「開機磁碟」部分,按一下 「卸離開機磁碟」。
- 按一下 [儲存]。
gcloud
使用 gcloud compute instances detach-disk 指令從執行個體卸載開機磁碟:
gcloud compute instances detach-disk INSTANCE_NAME \
--disk=DISK_NAME
更改下列內容:
INSTANCE_NAME:執行個體的名稱。DISK_NAME:要卸離的磁碟名稱。 磁碟名稱通常與執行個體名稱相同。
REST
建構 POST 要求,卸離磁碟:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/detachDisk?deviceName=DISK_NAME
更改下列內容:
PROJECT_ID:專案的 ID。INSTANCE_NAME:執行個體的名稱。ZONE:執行個體所在的可用區。DISK_NAME:要卸離的磁碟名稱。 磁碟名稱通常與執行個體名稱相同。
重新連結開機磁碟
只要執行個體還沒有連結任何開機磁碟,且開機磁碟與 VM 執行個體屬於同一個區域,就能重新連結任何磁碟,視同執行個體的開機磁碟。如果自訂開機磁碟,請務必確認開機磁碟附加後可正常開機。
現有磁碟和新磁碟必須都與 UEFI 相容,或都不相容。
如要建立與 UEFI 相容的磁碟,請使用 gcloud compute disk create 指令,並將 --guest-os-features 旗標設為 UEFI_COMPATIBLE。
控制台
- 前往「VM instances」(VM 執行個體) 頁面。
- 如果出現系統提示,請選取您的專案,然後按一下 [Continue] (繼續)。
- 按一下要附加開機磁碟的執行個體。
- 如果 VM 正在執行,請按一下 「停止」停止 VM。如果沒有「停止」選項,請依序點選 「更多動作」>「停止」。
- 按一下 [編輯]。
- 前往「開機磁碟」部分。
- 按一下 [新增項目]。
- 從下拉式選單中選取開機磁碟。
- 按一下 [儲存]。
gcloud
使用 gcloud compute instances attach-disk 指令,將開機磁碟連接或重新連接至 VM 執行個體。加入 --boot
gcloud compute instances attach-disk INSTANCE_NAME \
--disk=DISK_NAME \
--boot
更改下列內容:
INSTANCE_NAME:執行個體的名稱。DISK_NAME:要附加的磁碟名稱。 磁碟名稱可能與執行個體名稱相同。
REST
建構 POST 要求,附加磁碟。加入選用的 "boot": true 參數,指出這個磁碟是開機磁碟。如果沒有這個參數,磁碟會以非開機資料磁碟的形式附加。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/attachDisk
{
"boot": true,
"source": "zones/ZONE/disks/DISK_NAME"
}
更改下列內容:
PROJECT_ID:專案的 ID。INSTANCE_NAME:要將新 Persistent Disk 附加至的執行個體名稱。ZONE:執行個體和新磁碟所在的可用區。DISK_NAME:新磁碟的名稱。
將磁碟連接至 VM 執行個體後,請重新啟動執行個體。
更新執行個體的開機磁碟
您只能使用 Cloud de Confiance 控制台,以一個步驟更新 VM 的開機磁碟。具體而言,您可以透過同一項操作卸離現有開機磁碟並連結新的開機磁碟。
這項功能無法透過 gcloud CLI 或 REST 使用。
- 前往「VM instances」(VM 執行個體) 頁面。
- 如果出現系統提示,請選取您的專案,然後按一下 [Continue] (繼續)。
- 按一下要附加開機磁碟的執行個體。
- 如果 VM 正在執行,請按一下 「停止」停止 VM。如果沒有「停止」選項,請依序點選 「更多動作」>「停止」。
- 按一下頁面頂端的「Edit」(編輯)。
- 在「開機磁碟」部分,按一下「卸離開機磁碟」。
- 按一下 [新增項目]。
- 從下拉式選單中選取開機磁碟。
- 按一下 [儲存]。
Cloud de Confiance 控制台會卸載現有的開機磁碟,並附加您指定的新開機磁碟。完成這項程序後,請重新啟動 VM 執行個體。
將非開機磁碟連接至執行個體
如需將新的或現有的非開機磁碟連接至執行中執行個體的詳細操作說明,請參閱「將磁碟連接至執行個體」。
將非開機磁碟卸離執行個體
您不需要停止執行個體,即可卸離非開機磁碟。執行個體運作時,您可以執行這些作業。
控制台
- 前往「VM instances」(VM 執行個體) 頁面。
- 按一下要卸離磁碟的執行個體。
- 按一下「編輯」圖示 。
- 在「Additional disks」(其他磁碟) 部分,找出要卸載的磁碟,然後按一下「close」(關閉)「Remove disk」(移除磁碟)。
- 按一下 [儲存]。
gcloud
使用 gcloud compute instances detach-disk 指令:
gcloud compute instances detach-disk INSTANCE_NAME \ DISK_OR_DEVICE_NAME --disk-scope DISK_SCOPE
更改下列內容:
INSTANCE_NAME:執行個體的名稱。DISK_OR_DEVICE_NAME:磁碟名稱或建立磁碟時指定的裝置名稱。裝置名稱是 OS 用來識別磁碟的名稱。如果為磁碟提供裝置名稱,請務必使用--device-name標記指定裝置名稱。- 如要指定磁碟名稱,請指定
--disk=DISK_NAME,其中DISK_NAME是磁碟名稱,例如my-data-disk。 如要指定裝置名稱,請指定
--device-name=DEVICE_NAME,其中DEVICE_NAME是您為磁碟提供的裝置名稱。如要找出磁碟的裝置名稱,請執行
gcloud compute instances describe指令。舉例來說,如要以 JSON 格式列印執行個體附加的磁碟清單,請執行gcloud compute instances describe INSTANCE_NAME --format="json(disks)"。
- 如要指定磁碟名稱,請指定
DISK_SCOPE:磁碟的範圍。 如果是可用區磁碟,請指定zonal。如果是區域磁碟,請指定regional。
REST
建構對 instances.detachDisk 方法的 POST 要求。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/detachDisk?deviceName=DEVICE_NAME
更改下列內容:
PROJECT_ID:專案的 ID。INSTANCE_NAME:執行個體的名稱。ZONE:執行個體所在的可用區。DEVICE_NAME:磁碟的裝置名稱。如要找出磁碟的裝置名稱,請對instances資源發出GET要求,查看其連結的磁碟和裝置名稱。