仮想ディスクのインポート

必要なソフトウェアと構成を備えた仮想ディスク(ゴールデン ディスクまたはゴールデン イメージと呼ばれることもあります)がオンプレミス環境にある場合、その仮想ディスクを Compute Engine にインポートし、そのイメージを使用して仮想マシンを作成することによって、時間を節約できます。インポート ツールは、VMDK や VHD などのほとんどの仮想ディスク ファイル形式をサポートしています。

Compute Engine からディスクをエクスポートした場合、ディスクからイメージを作成できます。

複数の仮想マシン(VM)を移行するための自動システムを作成する方法については、Compute Engine への VM の移行をご覧ください。

始める前に

Cloud Build API を有効にする

仮想アプライアンス インポート ツールでは Cloud Build を使用します。

ほとんどの場合、gcloud compute images import はこれらの権限を Cloud Build サービス アカウントに付与しようとします。ただし、これらの権限を手動で付与して、必要な権限が有効になるようにすることもできます。

Console

  1. Cloud Build API を有効にします。

    Cloud Build API を有効にする

    コンソールから Cloud Build API を有効にすると、Compute Engine は Cloud Build サービス アカウントに次の役割を付与し、Cloud Build サービスが Compute Engine にインスタンスをインポートできるようにします。

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

    インポート ツールでは、デフォルトの Compute Engine サービス アカウントも使用されます。デフォルトで、Compute Engine サービス アカウントには Cloud IAM プロジェクト編集者の役割が付与されています。この役割を削除すると、インポート プロセスが失敗することがあります。役割をサービス アカウントに再び追加するには、アクセス権の付与をご覧ください。Compute Engine のデフォルトのサービス アカウントについて詳しくは、Compute Engine のデフォルトのサービス アカウントをご覧ください。

gcloud

gcloud コマンドライン ツールを使用して Cloud Build サービスを設定する手順は次のとおりです。

  1. Cloud Build を有効にします。

    gcloud services enable cloudbuild.googleapis.com

    インポート ツールでは、デフォルトの Compute Engine サービス アカウントも使用されます。デフォルトで、Compute Engine サービス アカウントには Cloud IAM プロジェクト編集者の役割が付与されています。この役割を削除すると、インポート プロセスが失敗することがあります。役割をサービス アカウントに再び追加するには、アクセス権の付与をご覧ください。Compute Engine のデフォルトのサービス アカウントについて詳しくは、Compute Engine のデフォルトのサービス アカウントをご覧ください。

  2. Cloud Build API のサービス アカウントに compute.admin 役割を追加します。

    gcloud projects add-iam-policy-binding project-id \
       --member serviceAccount:project-num@cloudbuild.gserviceaccount.com \
       --role roles/compute.admin
    
  3. Cloud Build API のサービス アカウントに iam.serviceAccountUser 役割を追加します。

    gcloud projects add-iam-policy-binding project-id \
       --member serviceAccount:project-num@cloudbuild.gserviceaccount.com \
       --role roles/iam.serviceAccountUser
    
  4. Cloud Build API のサービス アカウントに iam.serviceAccountTokenCreator 役割を追加します。

    gcloud projects add-iam-policy-binding project-id \
       --member serviceAccount:project-num@cloudbuild.gserviceaccount.com \
       --role roles/iam.serviceAccountTokenCreator
    

    以下を置き換えます。

サポートされているオペレーティング システム

仮想ディスクを 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 SP1
    • Windows Server 2012、Windows Server 2012 R2、Windows Server 2012 R2 Core
    • Windows Server 2016、Windows Server 2016 Core
    • Windows Server 2019、Windows Server 2019 Core
    • Windows 7 SP1(32 ビット版と 64 ビット版、BYOL のみ)
    • Windows 8.1(32 ビット版と 64 ビット版、BYOL のみ)
    • Windows 10、バージョン 1709、1803、1903、1909(32 ビット版と 64 ビット版、BYOL のみ)

制限事項

この機能には次の制限があります。

  • Linux の仮想ディスクは、ブートローダーとして grub を使用する必要があります。
  • UEFI のブートローダーは、Windows および Linux ではサポートされていません。
  • Linux の仮想ディスクはカスタム OS イメージと同じ要件を満たす必要があります(Virtio-SCSI ストレージ コントローラ デバイスのサポートなど)。
  • Windows の仮想ディスクにインストールする場合は、Carbon Black の Cb Protection などのアプリケーション ホワイトリスト ソフトウェアによってインポート プロセスが失敗する可能性があります。インポートする前に、このようなソフトウェアをアンインストールすることが必要になる場合があります。
  • RHEL を実行する仮想ディスクをインポートする場合は、インポートする前に仮想ディスクに python-boto パッケージがインストールされている場合にのみ、BYOL(お客様所有ライセンスの使用)がサポートされます。
  • 仮想ディスク上のオペレーティング システムが ACPI をサポートしている必要があります。

権限

仮想ディスク ファイルをインポートする際に、イメージ インポート ツールで複数の処理を行えます。たとえば、Cloud Storage へのファイルのアップロード、必要なバケットの作成などが挙げられます。また、Compute Engine にファイルをダウンロードした後で、ディスク ファイルを基に Compute Engine へイメージを作成することも可能です。この処理は自動的に行われます。この機能を使用する際に処理がシームレスに行われるように、アカウントに次の役割を付与することをおすすめします。

  • roles/storage.admin
  • roles/viewer
  • roles/resourcemanager.projectIamAdmin

インポート プロセスでは、ワークフローの一部としてデフォルトの Compute Engine サービス アカウントが使用されます。デフォルトで、このアカウントには、この処理を行うのに十分な roles/editor 権限が付与されています。ただし、Compute Engine サービス アカウントのデフォルトの役割や権限を変更した場合は、サービス アカウントに次の役割が引き続き適用されていることを確認してください。

  • roles/compute.storageAdmin
  • roles/storage.objectViewer

仮想ディスクのインポート

互換性の確認

VM のディスクをインポートする前に、VM 内に事前チェックツールをダウンロードして実行します。事前チェックツールは、インポート プロセスが失敗するか、Compute Engine でディスクが正常に動作しなくなる原因となる可能性がある互換性に関する問題を検出します。

起動可能な仮想ディスクのインポート

Console

  1. Google Cloud Console で、仮想ディスク ファイルを Cloud Storage にアップロードします。
  2. [イメージの作成] ページに移動します。

    [イメージの作成] ページに移動

  3. イメージの名前を指定します。
  4. [ソース] で、[仮想ディスク(VMDK、VHD)] を選択します。
  5. Cloud Storage ファイルのストレージの場所を参照するか、手動で入力します。
  6. インポートされたディスクで使用できるオペレーティング システムを選択します。次のように変更することもできます。

    • ゲスト パッケージをインストールすることを選択できます。ゲスト環境をインストールすることをおすすめします。ゲスト環境について詳しくは、ゲスト環境をご覧ください。

    • Windows または Red Hat Enterprise Linux(RHEL)オペレーティング システムの場合、ライセンス オプションも選択できます。Compute Engine にライセンスの提供を許可することも、BYOL も可能です。Windows での BYOL について詳しくは、お客様所有ライセンスをご覧ください。

  7. (オプション)イメージの追加プロパティを指定します。たとえば、このイメージをイメージ ファミリーの一部として管理できます。

  8. [作成] をクリックしてイメージをインポートします。

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 のオペレーティング システム。BYOL ライセンスのあるイメージ、または次のいずれかのイメージを指定してください:

    • centos-6centos-7
    • debian-8debian-9
    • rhel-6rhel-7
    • ubuntu-1404ubuntu-1604
    • windows-2008r2windows-2012windows-2012r2windows-2016、または windows-2019

    BYOL のサポート(ベータ版)

    デフォルトでは、Windows Server および Red Hat Enterprise Linux(RHEL)オペレーティング システムを使用する仮想ディスクは、追加料金が発生するプレミアム OS イメージとしてインポートおよび構成されます。

    • 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-2019-byol
      • windows-7-x64-byol
      • windows-7-x86-byol
      • windows-8-x64-byol
      • windows-8-x86-byol
      • windows-10-x64-byol
      • windows-10-x86-byol

ローカル ファイルを指定すると、仮想ディスクのサイズやネットワーク接続の速度によって、アップロード オペレーションに長時間かかることがあります。インポート オペレーションは、ディスクのサイズによって数十分かかることがあります。

サンプル コマンド

次の例では、gs://your_gcs_bucket に保存されている my_server.vmdk という名前の debian-9 仮想ディスクをインポートします。

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

オプション パラメータ

デフォルトでは、インポートされたすべてのブートディスク イメージにゲスト環境パッケージが追加されます。これらのパッケージが不要な場合は、インポート コマンドに --no-guest-environment フラグを追加してください。

起動できない仮想ディスクのインポート

Console

  1. Google Cloud Console で、仮想ディスク ファイルを Cloud Storage にアップロードします。
  2. [イメージの作成] ページに移動します。

    [イメージの作成] ページに移動

  3. イメージの名前を指定します。
  4. [ソース] で、[仮想ディスク(VMDK、VHD)] を選択します。
  5. Cloud Storage ファイルのストレージの場所を参照するか、手動で入力します。
  6. オペレーティング システムについて、[オペレーティング システムなし。データのみ。] を選択します。
  7. (オプション)イメージの追加プロパティを指定します。たとえば、このイメージをイメージ ファミリーの一部として管理できます。
  8. [作成] をクリックしてイメージをインポートします。

gcloud

gcloud compute images import コマンドを使用して、起動できない Compute Engine イメージを作成できます。仮想ディスクに起動可能なオペレーティング システムがインストールされていない場合でも、--os フラグの代わりに --data-disk フラグを使用すると仮想ディスクをインポートできます。これにより、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://my-gcs-bucket/ に保存されている my-disk.vmdk という名前の仮想ディスクをインポートします。

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

イメージを起動可能にする

起動可能なオペレーティング システムを搭載していながら必要な Compute Engine ドライバやゲスト環境パッケージがない Compute Engine カスタム イメージがある場合、イメージ インポート ツールを使用すると、そのイメージを Compute Engine で起動可能にできます。

インポートする新しいディスクを指定する --source-file フラグを使用する代わりに、--source-image フラグを使用して、起動可能にするカスタム イメージを指定します。

gcloud compute images import image-name \
    --source-image source-image-name \
    --os os

以下を置き換えます。

  • image-name: 対象イメージの名前。
  • source-image-name: ソースイメージの名前。
  • os: --source-image のオペレーティング システム。BYOL ライセンスを取得したイメージか、次のいずれかである必要があります。
    • centos-6centos-7
    • debian-8debian-9
    • rhel-6rhel-7
    • ubuntu-1404ubuntu-1604
    • windows-2008r2windows-2012windows-2012r2windows-2016、または windows-2019

BYOL のサポート

  • RHEL のお客様所有ソフトウェア サブスクリプションを使用している場合は、--os フラグに次のいずれかの BYOL 値を指定して、BYOL ライセンス イメージを起動可能にできます。

    • rhel-6-byol
    • rhel-7-byol
  • Windows の BYOL イメージを使用している場合は、--os フラグに次のいずれかの BYOL 値を指定して、BYOL ライセンス イメージを起動可能にできます。

    • windows-2008r2-byol
    • windows-2012-byol
    • windows-2012r2-byol
    • windows-2016-byol
    • windows-2019-byol
    • windows-7-x64-byol
    • windows-7-x86-byol
    • windows-8-x64-byol
    • windows-8-x86-byol
    • windows-10-x64-byol
    • windows-10-x86-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 のカスタム イメージが 1 つ作成されます。

イメージが正常にインポートされ、Compute Engine インスタンスとして正常に起動することを確認したら、Cloud Storage から仮想ディスク ファイルを削除できます。このツールにより、ファイルが Cloud Storage にアップロードされると、そのファイルの URI が出力されます。この URI の形式は gs://bucket-name/tmpimage/image-name です。

--data-disk フラグを使用してイメージをインポートした後、--source-image フラグを指定して import ツールをもう一度実行してそのイメージを起動可能にしても、最初のイメージはまだ残っています。そのイメージが不要な場合は、削除することを検討してください。--image--source-image の両方のフラグに同じイメージ名を指定すると、そのイメージは自動的に上書きされるため、それ以上のクリーンアップは不要です。

次のステップ