匯入虛擬磁碟

如果您內部環境中的虛擬磁碟具有您需要的軟體和設定 (有時稱為黃金磁碟或黃金映像檔),則可以透過把這些虛擬磁碟匯入 Compute Engine 並使用產生的映像檔建立新的虛擬機器來節省時間。匯入工具支援多數虛擬磁碟檔案格式,包含 VMDK 與 VHD。

若是從 Compute Engine 匯出磁碟,則您不需要重新匯入。您可改為從磁碟建立更多映像檔。

如果您需要自動化系統來遷移數個虛擬機器,請參閱將 VM 遷移至 Compute Engine 的總覽

事前準備

  • 如要使用本指南中的指令列範例,請完成下列事項:
    1. 安裝或更新至最新版 gcloud 指令列工具
    2. 設定預設地區和區域
  • 啟用 Cloud Build API。這項功能會使用 Cloud Build 服務來匯入及建立 Compute Engine 映像檔。您必須啟用 Cloud Build API 才能使用這項功能。

    啟用 Cloud Build API

    Compute Engine 也會為 Cloud Build 服務帳戶授予下列角色,以便將映像檔匯入 Compute Engine:

    • roles/iam.serviceAccountTokenCreator
    • roles/compute.admin
    • roles/iam.serviceAccountUser

支援的作業系統

為了能夠在 Compute Engine 上開機,您的虛擬磁碟必須執行下列其中一種作業系統。

  • Linux 作業系統:
    • CentOS 6、CentOS 7
    • Debian 8、Debian 9
    • Red Hat Enterprise Linux 6、Red Hat Enterprise Linux 7
    • Ubuntu 14.04 LTS、Ubuntu 16.04 LTS
  • Windows 作業系統:
    • Windows Server 2008 R2、Windows Server 2012、Windows Server 2012 R2、Windows Server 2012 R2 Core、Windows Server 2016、Windows Server 2016 Core
    • Windows 7 SP1 x64 與 Windows 10 Enterprise x64 (僅適用於 BYOL)

限制

此功能具有下列限制:

  • Linux 虛擬磁碟必須使用 grub 做為系統啟動載入程式。
  • Windows 或 Linux 均不支援 UEFI 系統啟動載入程式。
  • Linux 虛擬磁碟必須符合與自訂 OS 映像檔相同的條件,其中包括對 Virtio-SCSI 儲存控制器裝置的支援。
  • 安裝在 Windows 虛擬磁碟上時,用以將應用程式加入許可清單的軟體 (例如 Carbon Black 的 Cb Protection) 可能會導致匯入程序失敗。您可能需要在匯入之前解除安裝此類軟體。
  • 如果您要匯入執行 RHEL 的虛擬磁碟,您必須在匯入之前於虛擬磁碟上安裝 python-boto 套件,然後系統才會支援自備授權 (Bring Your Own License,BYOL)。
  • 虛擬磁碟上的作業系統必須支援 ACPI

權限

當您匯入虛擬磁碟檔案時,映像檔匯入工具會執行幾個步驟,包括將檔案上傳至 Google Cloud Storage,在必要時建立新的值區,將檔案下載至 Compute Engine,然後透過磁碟檔案在 Compute Engine 中建立映像檔。這個程序會自動執行;因此,Google 建議您備妥下列角色,以便在使用這項功能時獲得順暢的體驗:

  • 專案上的 roles/storage.admin
  • 專案上的 roles/viewer
  • 專案上的 roles/resourcemanager.projectIamAdmin

匯入虛擬磁碟

檢查相容性

在您嘗試匯入虛擬機器的磁碟之前,請在虛擬機器中下載及執行預先檢查工具。預先檢查工具會掃描可能導致匯入程序失敗或磁碟無法在 Compute Engine 上正常運作的任何相容性問題

匯入可開機的虛擬磁碟

主控台

  1. 在 Google Cloud Platform 主控台中,將虛擬磁碟檔案上傳至 Cloud Storage。
  2. 前往「Create an image」(建立映像檔) 頁面。
    前往「CREATE AN IMAGE」(建立映像檔) 頁面
  3. 指定映像檔的「Name」(名稱)
  4. 在「Source」(來源) 下方,選取 [Virtual disk (VMDK, VHD,..)] (虛擬磁碟 (VMDK、VHD、…))。
  5. 瀏覽至或手動輸入 Cloud Storage 檔案的儲存位置。
  6. 選擇可供匯入的磁碟使用的作業系統。您也可以進行下列變更:

    • 您可以選擇 [Install guest packages] (安裝訪客套件)。建議您安裝訪客環境。如要進一步瞭解訪客環境,請參閱訪客環境一文。

    • 對於 Windows 或 Red Hat Enterprise Linux (RHEL) 作業系統,您也可以選擇授權選項。您可以允許 Compute Engine 提供授權,也可以自備授權。如要進一步瞭解如何在 Windows 上自備授權,請參閱自備授權一文。

  7. (選用) 指定映像檔的其他屬性。例如,您可以將這個映像檔整理為映像檔系列的成員。

  8. 按一下 [Create] (建立) 即可匯入映像檔。

gcloud

使用 gcloud compute images import 指令建立可開機的 Compute Engine 映像檔。儘管 Compute Engine 可以啟動大多數的開機磁碟映像檔,import 指令仍可確保磁碟具有所需驅動程式與最新的訪客環境套件,這是啟動執行個體並使用 SSH 或 RDP 連線至執行個體的必要條件。

您可以從 Cloud Storage 值區或您的本機工作站匯入虛擬磁碟檔案。

如果您從工作站匯入虛擬磁碟檔案,匯入工具會為您將檔案自動上傳至 Cloud Storage 值區。

您也可以選擇自行將虛擬磁碟檔案上傳至 Cloud Storage,然後再啟動匯入程序,但請注意,您必須將檔案上傳至值區,並確定該值區存在於您要用於匯入程序的專案之中。

gcloud beta compute images import [IMAGE_NAME] \
    --source-file [SOURCE_FILE] \
    --os [OS]

其中:

  • [IMAGE_NAME] 是目標映像檔的名稱。
  • [SOURCE_FILE] 是虛擬磁碟檔案。映像檔可以是本機檔案或儲存在 Cloud Storage 中的檔案。如果您的虛擬磁碟是本機檔案,您可以使用絕對或相對路徑。如果您的虛擬磁碟檔案已儲存在 Cloud Storage 中,則檔案必須在匯入程序所用專案的儲存空間值區中,而且您必須以 gs://[BUCKET_NAME]/[OBJECT_NAME] 格式指定檔案的完整路徑。
  • [OS] 是 SOURCE_FILE 的作業系統,且必須是下列其中一項:centos-6centos-7debian-8debian-9rhel-6rhel-7ubuntu-1404ubuntu-1604windows-2008r2windows-2012windows-2012r2windows-2016 或 BYOL 授權映像檔。

    (Beta 版) 自備授權 (BYOL) 的支援

    根據預設,系統會匯入使用 Windows Server 和 Red Hat Enterprise Linux (RHEL) 作業系統的虛擬磁碟,並將其設定為須支付額外費用的進階級作業系統映像檔

    • 如果您想要針對 RHEL 使用您自己的軟體訂閱項目,可為 [OS] 欄位指定下列其中一個 BYOL 值,將磁碟匯入為 BYOL 授權映像檔:

      • rhel-6-byol
      • rhel-7-byol
    • 如果您想針對 Windows 自備授權,可為 [OS] 欄位指定下列其中一個 BYOL 值,將磁碟匯入為 BYOL 授權映像檔:

      • windows-2008r2-byol
      • windows-2012-byol
      • windows-2012r2-byol
      • windows-2016-byol
      • windows-7-byol
      • windows-10-byol

如果您指定本機檔案,視虛擬磁碟的大小以及網路連線速度而定,上傳作業可能會花費很長的時間。視磁碟大小而定,匯入作業可能需要十分鐘的時間。

指令範例

下列範例匯入了儲存在 gs://your_gcs_bucket 中,名為 your_server.vmdkdebian-9 虛擬磁碟。

gcloud beta compute images import my-imported-image \
    --source-file gs://your_gcs_bucket/your_server.vmdk \
    --os debian-9

選用參數

根據預設,系統會將訪客環境套件新增至所有匯入的開機磁碟映像檔。如果您不想使用這些套件,請在匯入指令中新增 --no-guest-environment 標記。

匯入不可開機的虛擬磁碟

主控台

  1. 在 Google Cloud Platform 主控台中,將虛擬磁碟檔案上傳至 Cloud Storage。
  2. 前往「Create an image」(建立映像檔) 頁面。
    前往「CREATE AN IMAGE」(建立映像檔) 頁面
  3. 指定映像檔的「Name」(名稱)
  4. 在「Source」(來源) 下方,選取 [Virtual disk (VMDK, VHD,..)] (虛擬磁碟 (VMDK、VHD、...))。
  5. 瀏覽至或手動輸入 Cloud Storage 檔案的儲存位置。
  6. 在作業系統下,選取 [No operating system. Data only.] (沒有作業系統。僅有資料。)
  7. (選用) 指定映像檔的其他屬性。例如,您可以將這個映像檔整理為映像檔系列的成員。
  8. 按一下 [Create] (建立) 即可匯入映像檔。

gcloud

您可以使用 gcloud compute images import 指令建立不可開機的 Compute Engine 映像檔。如果您的虛擬磁碟上沒有安裝可開機作業系統,您仍可使用 --data-disk 標記而非 --os 標記來匯入。這樣的做法會跳過安裝驅動程式及訪客環境套件的步驟,使映像檔可在 Compute Engine 上開機。

gcloud compute images import [IMAGE_NAME] \
    --source-file [SOURCE_FILE] \
    --data-disk

其中:

  • [IMAGE_NAME] 是目標映像檔的名稱。
  • [SOURCE_FILE] 是虛擬磁碟檔案。映像檔可以是本機檔案或儲存在 Cloud Storage 中的檔案。如果您的虛擬磁碟是本機檔案,您可以使用絕對或相對路徑。如果您的虛擬磁碟檔案已儲存在 Cloud Storage 中,檔案必須存在於用於匯入程序之專案的儲存值區中,且您必須以 gs://[BUCKET_NAME]/[OBJECT_NAME] 格式指定檔案的完整路徑。

指令範例

下列範例將匯入儲存在 gs://your_gcs_bucket 中名為 your_disk.vmdk 的虛擬磁碟。

gcloud compute images import my-imported-image \
    --source-file gs://your_gcs_bucket/your_disk.vmdk \
    --data-disk

將映像檔設定為可開機

如果您的 Compute Engine 自訂映像檔上有可開機作業系統,但沒有必要的 Compute Engine 驅動程式或訪客環境套件,您可以使用映像檔匯入工具來將該映像檔設定為可在 Compute Engine 上開機。

使用 --source-image 標記來指定要設定為可開機的自訂映像檔,而非使用 --source-file 標記來指定要匯入的新磁碟。

gcloud compute images import [IMAGE_NAME] \
        --source-image [SOURCE_IMAGE] \
        --os [OS]

其中

  • [IMAGE_NAME] 是目標映像檔的名稱。
  • [SOURCE_IMAGE] 是來源映像檔的名稱。
  • [OS] 是 SOURCE_IMAGE 的作業系統,且必須是下列其中一項:centos-6centos-7debian-8debian-9rhel-6rhel-7ubuntu-1404ubuntu-1604windows-2008r2windows-2012windows-2012r2windows-2016 或 BYOL 授權映像檔。

自備授權 (BYOL) 的支援

  • 如果您要針對 RHEL 使用您自己的軟體訂閱項目,則可為 [OS] 欄位指定下列其中一個 BYOL 值,將 BYOL 授權映像檔設定為可開機:

    • rhel-6-byol
    • rhel-7-byol
  • 如果您要針對 Windows 自備授權映像檔,則可為 [OS] 欄位指定下列其中一個 BYOL 值,將 BYOL 授權映像檔設定為可開機:

    • windows-2008r2-byol
    • windows-2012-byol
    • windows-2012r2-byol
    • windows-2016-byol
    • windows-7-byol
    • windows-10-byol

指令範例

下列範例將名為 my-image 的 Compute Engine 映像檔轉變成名為 my-bootable-image 的可開機映像檔。在此範例中,在映像檔上安裝的作業系統是 Ubuntu 16.04。

gcloud compute images import my-bootable-image --source-image=my-image --os=ubuntu-1604

資源清除

儲存在 Cloud Storage 上的檔案與 Compute Engine 中的映像檔會產生費用。匯入工具會將虛擬磁碟檔案匯入至 Cloud Storage 並建立一個 Compute Engine 自訂映像檔。

在您驗證映像檔正確匯入,且可正確啟動為 Compute Engine 執行個體之後,便可從 Cloud Storage 刪除虛擬磁碟檔案。工具將該檔案上傳至 Cloud Storage 時,會輸出檔案的 URI。此 URI 的格式如下:gs://<bucket name>/tmpimage/<image name>

如果您使用 --data-disk 標記匯入映像檔,然後再次使用 --source-image 標記執行 import 工具,以將該映像檔設定為可開機,則第一個映像檔仍將存在。如果您不需要該映像檔,可以考慮刪除。如果您為 [IMAGE_NAME][SOURCE_IMAGE] 參數指定相同的映像檔名稱,則系統將自動覆寫映像檔,您也不需要再進行清除。

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Compute Engine 說明文件