Migrate to Virtual Machines のトラブルシューティング

Migrate to Virtual Machines で問題が発生した場合に役立つトラブルシューティング手順について説明します。

エラー: compute.subnetworks.use 権限が必要です

共有 VPC を使用して、組織は複数のプロジェクトから共通の Virtual Private Cloud(VPC)ネットワークにリソースを接続できるため、そのネットワークの内部 IP を使用して、安全で効率的な相互通信ができます。

Migrate to Virtual Machines を使用すると、共有 VPC にアクセスできるプロジェクトに Compute Engine インスタンスをデプロイできます。ただし、Migrate to Virtual Machines のデフォルトのサービス アカウントに compute.subnetworks.use ロールを割り当てていない場合は、Compute Engine インスタンスをデプロイしようとすると、次の形式のエラー メッセージが表示されます。

"Create instance of VM "my-vm" from source "my-proj" to target project "target-proj" using Compute Engine instance name "instance-id" failed due to: Required 'compute.subnetworks.use' permission for 'projects/vpc-proj/regions/us-central1/subnetworks/shared-central1'

共有 VPC の権限の構成の説明に沿って、共有 VPC ホスト プロジェクトの compute.subnetworks.use ロールが Migrate to Virtual Machines のデフォルト サービス アカウントに割り当てられていることを確認します。

エラー: このユーザーにはサービス アカウントへのアクセス権がありません

Migrate to Virtual Machines では、移行された VM のターゲット構成の一環として、ターゲット プロジェクトで実行されている Compute Engine インスタンスにサービス アカウントを割り当てることができます。

ただし、ターゲット プロジェクトで実行されている Compute Engine インスタンスにサービス アカウントを割り当てるには、ホスト プロジェクトのデフォルトの Migrate to Virtual Machines サービス アカウントが、サービス アカウントのターゲットに対して Service Account User ロールを持っている必要があります。

Compute Engine インスタンスにサービス アカウントを割り当てたものの、ホスト プロジェクトにターゲット サービス アカウントの Service Account User ロールがない場合、テストクローンの作成または VM のカットオーバーを試行すると、次のエラーが表示されます。

Test-Clone of VM "my-vm" from source "source-vm" to target project "target-proj" using Compute Engine instance name "my-instance" failed due to: The user does not have access to service account 'target-service-account-email'. User: 'host-user-account-email'. Ask a project owner to grant you the iam.serviceAccountUser role on the service account

デフォルトの Migrate to Virtual Machines サービス アカウントが、ターゲット サービス アカウントにアクセスできるように正しく構成されていることを確認します。詳細については、ターゲット プロジェクトのサービス アカウントの権限を構成するをご覧ください。

エラー: vCenter の最大クエリの上限を超過したため、レポートの生成に失敗しました

移行元 VM の使用率レポートを Migrate to Virtual Machines で作成すると、Compute Engine のターゲットの最適な設定を判断するのに役立ちます。このレポートには、vCenter にデプロイされた移行元 VM のリソース割り当てと使用率に関する情報が表示されます。

このレポートは、vCenter で収集されたデータから生成されます。レポートを生成すると、vCenter の割り当て上限に達したことを示す次の形式のエラーが表示されることがあります。

Report generation for source source connected to vCenter vcenter failed due to vCenter maximum query limit exceeded. Details: VC message

割り当て上限の引き上げについては、こちらの vSphere に関する記事をご覧ください。

エラー: Migrate to Virtual Machines で作成されたインスタンスが起動しません

ソース VM ブートディスクが、VM のディスクリストの最初のディスクでない場合、次のコンソール シリアル エラーが表示されることがあります。

drive 0x000f2410: PCHS=0/0/0 translation=lba LCHS=1024/255/63 s=104857600
drive 0x000f23d0: PCHS=0/0/0 translation=lba LCHS=1024/255/63 s=167772160
drive 0x000f2390: PCHS=0/0/0 translation=lba LCHS=1024/255/63 s=83886080
Sending Seabios boot VM event.
Booting from Hard Disk 0...

このエラーを回避するには、ディスクのクローンを作成し、そのクローンを Migrate to Virtual Machines 上の新しい VM に正しい順序で接続します。

ディスクのクローンを作成して正しい順序で接続するには、次の手順を行います。

  1. レプリケートされた VM を停止します。
  2. 元のブートディスクのクローンを作成します。

    gcloud compute disks create -project=$PROJECT --zone=$ZONE --source-disk=$DISK new-disk-name
    
  3. 次のコマンドを実行して、クローン作成したブートディスクにライセンスを再割り当てし、関連するタグを追加します(次の例では windows2008-r2)。

    gcloud compute disks create --project=$PROJECT --zone=$ZONE --source-disk=disk created on step #2 --licenses=projects/windows-cloud/global/licenses/windows-server-2008-r2-dc --guest-os-features=VIRTIO_SCSI_MULTIQUEUE,MULTI_IP_SUBNET,WINDOWS new-disk-name
    
  4. VM を編集します。

    1. 現在のブートディスクを切断して、追加ディスクにアタッチします。
    2. 追加ディスクから元のブートディスクを削除します。
    3. 手順 3 で作成したディスクをブートディスクにアタッチします。
    4. 変更を保存します。

VM の起動プロセスを確認したら、元のブートディスクを削除できます。

エラー: Windows VM がクローンの初回起動時に chkdsk を実行します

Migrate to Virtual Machines のテストクローン フェーズでは、ソース VM の実行中に作成されたスナップショットに基づいて、クラウド内の VM のクローンをインスタンス化します。

場合によっては、クラウドでクローンが起動されているときに、Windows VM で自動 chkdsk スキャン オペレーションがトリガーされることがあります。このようなエラーで検証手順が妨げられている場合は、レプリケーション サイクル間で VM をシャットダウンし、VM がオフのときに Migrate to Virtual Machines がスナップショットを作成できるようにすることを検討してください。

Migrate to Virtual Machines が最後の同期フェーズを完了する前に、カットオーバー プロセスの一環として VM がシャットダウンするため、カットオーバー時の VM への影響はありません。