必要なソフトウェアと構成を備えた仮想ディスクがオンプレミス環境にある場合(ゴールデン ディスクまたはゴールデン イメージとも呼ばれます)、そのような仮想ディスクを GDC エアギャップ アプライアンスにインポートし、インポートされたイメージを使用して仮想マシンを作成することで、時間を節約できます。インポート ツールは、RAW と QCOW のイメージ形式をサポートしています。
始める前に
続行する前に、次のことを確認してください。
- gdcloud CLI がダウンロード、インストール、構成されている。GDC のすべての CLI コマンドは
gdcloudまたはkubectlCLI を使用し、オペレーティング システム(OS)環境が必要です。
Management API サーバーへのアクセス。ログインの CLI の手順に沿って、Management API サーバーにログインします。
権限とアクセス権をリクエストする
このページに記載されているタスクを行うには、プロジェクトの VirtualMachine 管理者ロールとプロジェクトの VirtualMachine イメージ管理者ロールが必要です。確認するか、VM が存在するプロジェクトの Namespace でプロジェクト仮想マシン管理者(project-vm-admin)ロールとプロジェクト仮想マシン イメージ管理者(project-vm-image-admin)ロールをプロジェクト IAM 管理者に割り当ててもらう手順に沿って操作します。
GDC コンソールまたは gdcloud CLI を使用した VM オペレーションの場合は、プロジェクト IAM 管理者に、前の段落に記載されているロールとプロジェクト閲覧者(project-viewer)ロールの割り当てをリクエストします。
仮想ディスクをインポートする
仮想ディスクは、gdcloud CLI または Virtual Machine Manager API を使用してインポートできます。
イメージのインポートに必要な権限を取得するには、組織の IAM 管理者に、プロジェクトに対するプロジェクトの VirtualMachine イメージ管理者(project-vm-image-admin)ロールを付与するよう依頼してください。
gdcloud
gdcloud compute images import コマンドを使用して、起動可能なイメージを作成します。
import コマンドを使用すると、Linux でセキュアシェル(SSH)を使用してインスタンスに接続し、Windows でリモート デスクトップ プロトコル(RDP)を使用してインスタンスに接続するための認証情報を構成するために必要なゲスト環境など、必要なパッケージが必ずディスクに収められます。
Linux では、このコマンドは、インスタンスが GDC で適切に実行されるように、ネットワーク タイム プロトコル(NTP)と cloud-init のパッケージもインストールします。
仮想ディスク ファイルは、ワークステーションから直接インポートできます。インポート ツールは、ファイルをプロジェクトのオブジェクト ストレージ バケットに自動的にアップロードします。
gdcloud compute images import IMAGE_NAME \
--source-file=SOURCE_FILE \
--os=IMAGE_OS \
--timeout=TIMEOUT
次の変数を置き換えます。
- IMAGE_NAME: 対象イメージの名前。名前は 35 文字以下にする必要があります。
- SOURCE_FILE: 仮想ディスク ファイル。このファイルはワークステーションのローカル ファイルです。絶対パスまたは相対パスを指定できます。
- IMAGE_OS: インポートするディスクの OS。
- TIMEOUT: インポートが「TIMEOUT」で失敗するまでの時間。たとえば、
2hを指定すると、プロセスは 2 時間後に失敗します。デフォルトのタイムアウトは1hです。
アップロード オペレーションには、仮想ディスクのサイズとネットワーク接続の速度に応じて、長時間かかることがあります。インポート オペレーションは、ディスクのサイズによって数十分かかることがあります。
API
API を使用してインポート プロセスを開始する前に、仮想ディスクを vm-images-bucket という名前のオブジェクト ストレージ バケットにアップロードする必要があります。オブジェクト ストレージ バケットを作成するには、プロジェクトのストレージ バケットを作成するをご覧ください。
API を使用して仮想ディスクをインポートする手順は次のとおりです。
Management API サーバーに
VirtualMachineImageImportオブジェクトを作成して、イメージのインポート プロセスを開始します。kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ apply -n PROJECT_ID -f - <<EOF apiVersion: virtualmachine.gdc.goog/v1 kind: VirtualMachineImageImport metadata: name: IMAGE_NAME namespace: PROJECT_ID spec: source: objectStorage: bucketRef: name: vm-images-bucket objectName: SOURCE_FILE imageMetadata: name: IMAGE_NAME operatingSystem: OPERATING_SYSTEM minimumDiskSize: DISK_SIZE EOF次の変数を置き換えます。
変数 説明 IMAGE_NAME インポートするイメージの名前。名前は 35 文字以下にする必要があります。 PROJECT_ID イメージをインポートするプロジェクトのプロジェクト ID。 SOURCE_FILE オブジェクト ストレージへの仮想ディスクのアップロードを含むソースファイルの名前。この値は、 vm-images-bucket/の後のオブジェクト ストレージ パスのセクションです。OPERATING_SYSTEM インポートするディスクの OS。 DISK_SIZE このイメージで作成されるディスクの最小サイズ。元の画像のファイル システム サイズに加えて、少なくとも 20% のバッファを使用することをおすすめします。たとえば、元のファイル システム サイズが 10 GiB の仮想ディスクには、少なくとも 12 GiB を使用します。 VirtualMachineImageImportオブジェクトのステータスをクエリして、インポートの進行状況をモニタリングします。kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ get virtualmachineimageimport --namespace PROJECT_ID \ IMAGE_NAME -o jsonpath='{.status}'
リソースのクリーンアップ
インポート プロセスでは、仮想ディスク ファイルをオブジェクト ストレージにアップロードします。gdcloud CLI を使用する場合、コマンドが成功したかどうかにかかわらず、コマンドが完了するとオブジェクトはクリーンアップされます。コマンドが中断された場合、または API でイメージのインポートが完了した場合、仮想ディスク ファイルは、手動で削除するまで vm-images-bucket という名前のオブジェクト ストレージ バケットに残る可能性があります。
次のステップ
[VM の作成と起動] ページで、イメージを使用する新しい VM インスタンスを作成します。