VM Migration のライフサイクル

Migrate to Virtual Machines を使用すると、わずかな自動変更で、移行元の環境から Google Compute Engine に仮想マシン(VM)を移行(リフト&シフト)できます。Migrate to Virtual Machines では、移行元のダウンタイムを発生させずに、移行元 VM から Google Cloud にディスクデータを継続的に複製するデータ レプリケーション テクノロジーを使用します。テスト用にレプリケートしたデータから VM クローンを作成し、Google Cloud で実行されている最終的なワークロードに対して予測可能な VM カットオーバーを行います。

データ レプリケーションにより、Migrate to Virtual Machines は移行元 VM からデータの初期のレプリケーションが行えるため、移行した VM のクローン作成とテストを迅速に行うことができます。ただし、移行元 VM はテスト中を含め、移行プロセス中も継続して実行されるため、Migrate to Virtual Machines は、移行された VM に最終的なカットオーバーを行うまでデータのレプリケーションを続行します。

Migrate to Virtual Machines は Google Cloud コンソールに完全に統合されているため、Google Cloud コンソールの UI 内ですべての移行タスクを行えます。

移行プロセスについて

Migrate to Virtual Machines では、VM を Compute Engine に簡単に移行できます。移行プロセスは次の個別フェーズで行われます。

  • オンボーディング: 移行する移行元 VM を選択します。

  • レプリケーション: 移行元 VM から Google Cloud にデータをレプリケートします。データ レプリケーションは、最終的なカットオーバーまで、または移行を削除するまで、バックグラウンドで行われる継続的なプロセスです。

  • VM ターゲットの詳細の設定: 移行した VM のプロジェクト、インスタンス タイプ、メモリ、ネットワークなどの Compute Engine の設定を構成します。

  • テストクローン: 必要に応じて、レプリケーション データから移行元 VM の Compute Engine クローンを作成し、Google Cloud でテストします。

  • カットオーバー: 移行元 VM を Compute Engine に移行します。このプロセスには、移行元 VM の停止、最終レプリケーションの完了、移行元 VM からの本番環境 Compute Engine インスタンスの作成が含まれます。

  • ファイナライズ: 正常に移行した後、最終的なクリーンアップを実行します。

次の図に、これらのフェーズを示します。

移行フェーズ。

各フェーズについては、以降のセクションで詳しく説明します。

オンボーディング フェーズ

移行の最初のフェーズは、移行する VM を選択するオンボーディング フェーズです。

移行のオンボーディング フェーズ。

たとえば、vSphere データセンターの場合、Google Cloud コンソールにデータセンター内のすべての VM が表示されます。VM をオンボーディングするために移行する VM のみを選択します。

レプリケーション フェーズ

VM をオンボーディングしたら、移行元 VM から Google Cloud に、ディスクデータのレプリケーションを開始します。移行元 VM はレプリケーション中も継続して実行されます。

移行のレプリケーション フェーズ。

データ レプリケーションは、移行元 VM への影響を最小限に抑えながらバックグラウンドで行われる、継続的なプロセスです。

データ レプリケーションは、次の 2 つのステップで構成されます。

  1. 最初のレプリケーション ステップ: Migrate to Virtual Machines は、移行元 VM データディスクの初期スナップショットを作成し、スナップショット データを Google Cloud にレプリケートします。初期レプリケーションは、移行元 VM 上のディスクデータの量に応じて、完了まで数分または数時間かかることがあります。

  2. 増分レプリケーション ステップ: 最初のレプリケーション ステップが成功すると、増分レプリケーション ステップが設定された時間間隔で行われます(デフォルトでは 2 時間ごと)。各ステップで、データディスクごとに新しいスナップショットが作成されます。前のステップで行われたデータ更新のみが、変更ブロック トラッキング(CBT)メカニズムを使用して Google Cloud にレプリケートされます。

移行元 VM のレプリケーションを開始すると、移行を削除するまでレプリケーションが続行されます。

VM のレプリケーションはいつでも一時停止できます。たとえば、1 つ以上の VM でレプリケーションを一時停止し、ネットワーク リソースを最小化したり、一時停止していない移行中の VM の優先度を上位に設定したりすることが可能です。その後、レプリケーションを再開できます。

OS 適応

Google Cloud で正しく機能させるために、移行された VM の構成を変更する必要がある場合があります。このプロセスを OS 適応といいます。各レプリケーション ステップの完了時にオペレーティング システム(OS)適応プロセスが実行され、Google Cloud で VM を実行できるようになります。

たとえば、Migrate to Virtual Machines は、ネットワーク構成の適応、Compute Engine エージェントのデプロイ、移行された VM でのシリアル コンソールの有効化を行います。Linux VM と Windows VM に適用される具体的な適応を含め、詳細については OS 適応をご覧ください。

ターゲットの詳細を設定する

データ レプリケーションを開始したら、移行された VM について、Google Cloud 上の Compute Engine ターゲット環境を設定します。

移行のターゲット設定フェーズ。

Compute Engine ターゲットの詳細では、Google Cloud 上の移行された VM のランディング ゾーンを定義します。ターゲットの詳細には、プロジェクト、インスタンス タイプ、ネットワーク設定などが含まれます。次に、Migrate to Virtual Machines は、ターゲットの詳細を使用して、移行後の VM をホストする Compute Engine インスタンスを作成します。

ターゲットの詳細は随時変更できます。テストクローン フェーズまたはカットオーバー フェーズの Compute Engine インスタンスをインスタンス化するときに、Migrate to Virtual Machines はオペレーションの実行時点でのターゲットの詳細設定を使用します。

テストクローン フェーズ

移行元 VM からディスクデータの初期のレプリケーションが完了した後はいつでも、テスト用に移行元 VM のクローンを Compute Engine インスタンスに作成できます。

移行のテストクローン フェーズ。

多くの場合、移行元の VM や移行先の詳細を変更するときに、移行プロセス全体でテストクローンを作成します。テストクローンは、現在のレプリケーション データと移行先の詳細から作成された移行元 VM の静的スナップショットです。新しいレプリケーション データと移行先の詳細の変更は、既存のテストクローンではなく、新しいテストクローンにのみ適用されます。

必須ではありませんが、本番環境にデプロイする前に VM のテストクローンを作成することを強くおすすめします。テストは、移行された VM が Google Cloud で正しく機能するようにするための、移行プロセスの重要なフェーズです。

移行元 VM からテストクローンを作成する場合、Migrate to Virtual Machines は、移行先の詳細を使用して最新のレプリケーション データから Compute Engine インスタンスを作成します。

: 移行元 VM はテストフェーズ中も継続して実行されます。つまり、データ レプリケーションも継続します。

移行元 VM はテストフェーズ中に継続的に実行されるため、元の移行元 VM からテスト VM を隔離するサンドボックス環境でテストを行う必要があります。

テスト VM が稼働状態になったら、テスト VM が期待どおりに動作していることを確認し、VM が Google Cloud で機能するために必要な変更を文書化します。テストが完了したら、通常はテスト用の Compute Engine インスタンスを削除し、カットオーバー フェーズの一環として本番環境の Compute Engine インスタンスを作成します。

カットオーバー フェーズ

カットオーバー フェーズでは、移行元 VM が Migrate to Virtual Machines によって停止され、レプリケーションが完了し、Google Cloud 上の Compute Engine に新しい VM インスタンスが作成されます。

移行のカットオーバー フェーズ。

カットオーバーは、推奨されるテストフェーズですべての検証を実施した後にのみ、実施してください。

カットオーバー フェーズには短い VM ダウンタイムが含まれるため、定期メンテナンスの時間枠内に行う必要があります。移行元 VM を停止して Compute Engine で実行されている移行された VM にトラフィックをリダイレクトできるだけのメンテナンスの時間枠を最初に決定する必要があります。

移行中の VM でカットオーバーを開始すると、Migrate to Virtual Machines によって行われる次の一連のアクションが開始されます。

  1. 移行元 VM をシャットダウンします。

  2. 最終的なデータ レプリケーションを実施します。レプリケーションは移行フェーズのあらゆる段階で発生するため、複製するデータの量はそれほど大きくしないでください。 レプリケーションが進行中であれば、完了です。レプリケーションが進行中でない場合は、最終的なレプリケーションを実施します。

  3. レプリケーションを停止します。

  4. 最後にレプリケートされたデータから Compute Engine インスタンスを作成します。

カットオーバー後に、移行された VM で最終的な検証を行います。カットオーバーの結果によって、次のアクションが決まります。

  • カットオーバーが失敗した: なんらかの理由で、Compute Engine の新しい VM インスタンスへのカットオーバーが失敗しました。これは、ネットワークの問題や他の単純な問題が原因である可能性があります。この時点で移行元 VM は停止しており、最終的なレプリケーション データはまだ有効です。カットオーバーを再試行して、再試行によってエラーがクリアされるかどうかを確認します。

  • カットオーバーは成功したが新しい VM インスタンスが正しく機能していない: Compute Engine の新しい VM インスタンスが正しく機能していない場合は、Compute Engine VM を削除し、移行元 VM を起動します。このプロセスを「ロールバック」といいます。

    移行のロールバックは複雑であるため、ロールバックは自動プロセスではありません。ロールバックを行う必要がある場合は、トラフィックを移行元 VM にリダイレクトする必要があります。また、Compute Engine インスタンスに書き込まれたデータは、元の移行元 VM にプッシュバックされません。

    移行元 VM が再び機能すると、移行エラーを診断して解決できます。エラーを解決したら、レプリケーションを再起動して移行を再試行できます。

  • カットオーバーが成功し、新しい VM インスタンスが正しく機能している: 検証結果から、新しい VM が正しく機能していると判断された場合、移行は完了です。

ファイナライズ フェーズ

カットオーバーの成功に続いて、移行をファイナライズ(最終処理)します。ファイナライズすると、移行された VM に関連付けられたすべてのレプリケーション データと他のすべてのストレージ リソースが削除され、VM の状態がファイナライズ済みになります。

ファイナライズは、カットオーバー状態の VM でのみ実行できます。

移行のファイナライズ フェーズ。

Compute Engine VM の作成に使用されるレプリケーション データは、カットオーバー後も保持されます。つまり、そのデータを使用して、カットオーバー後に移行された VM の追加インスタンスを作成できます。ただし、最終的にはファイナライズ フェーズでストレージを解放する必要があります。

ファイナライズ後は、移行に関する操作は以下に限られます。

  • 移行の削除
  • グループへの追加、またはグループからの削除

次のステップ