ディスクを移行する

Migrate to Virtual Machines を使用すると、アタッチされていないディスクを AWS ソースから Google Cloudの Persistent Disk ボリュームに移行できます。この機能は、アタッチされていないディスク(いずれの仮想マシン(VM)インスタンスにも接続されていないディスク)を Google Cloudに移行する場合に便利です。

アタッチされていないディスクは VM に接続されておらず、アクティブではないため、Migrate to Virtual Machines でレプリケーション サイクルが実行されません。ディスク内のデータは 1 回のオペレーションでコピーされます。

始める前に

移行プロセスを開始する前に、次の操作を行います。

制限事項

次の制限が適用されます。

  • ディスクは AWS ソースからのみ移行できます。
  • ディスクの移行には REST API のみを使用できます。
  • リージョン ディスクと Hyperdisk ディスクはサポートされていません。

ディスク移行プロセス

アタッチされていないディスクを Google Cloudに移行する手順は次のとおりです。

  1. Cloud Shell ターミナルで、Google REST API の呼び出しに便利なシェル エイリアスを定義します。

    alias gcurl='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'
    
  2. 次の REST コマンドを使用して、ディスク移行ジョブを作成します。

    gcurl https://vmmigration.googleapis.com/v1alpha1/projects/HOST_PROJECT/locations/LOCATION/sources/M2VM_SOURCE/diskMigrationJobs/?disk_migration_job_id=DISK_MIGRATION_JOB -X POST --data '{
      "aws_source_disk_details":{"volume_id":"AWS_VOLUME_ID"},
      "target_details":{
        "target_disk":{
          "disk_id":"TARGET_DISK_ID",
          "zone":"TARGET_ZONE",
          "disk_type":"DISK_TYPE"
        },
        "target_project":"projects/HOST_PROJECT/locations/global/targetProjects/TARGET_PROJECT",
        "labels":{CUSTOM_LABELS},
        "encryption":{"kms_key":"KMS_KEY"}
      }
    }'
    

    次のように置き換えます。

    • HOST_PROJECT: ディスクの移行元にするホスト プロジェクトの名前。
    • LOCATION: ディスク移行プロセスを実行するゾーン。サポートされているゾーンのリストについては、リージョンとゾーンをご覧ください。
    • M2VM_SOURCE: ディスクの移行元にするクラウドソース。プレビュー ステージでは、ディスクを AWS ソースからのみ移行できます。
    • DISK_MIGRATION_JOB: ディスク移行ジョブの ID。Compute Engine リソースの命名規則については、命名規則をご覧ください。
    • AWS_VOLUME_ID: 移行するディスクの名前。
    • TARGET_DISK_ID: ターゲット ディスクの ID。Compute Engine リソースの命名規則については、命名規則をご覧ください。
    • TARGET_PROJECT: ディスクの移行先にするターゲット プロジェクトの ID。ターゲット プロジェクトをまだ追加していない場合は、ターゲット プロジェクトを追加するの手順に沿って追加してください。
    • TARGET_ZONE: ターゲット プロジェクトのゾーン。詳しくは、リージョンとゾーンをご覧ください。
    • DISK_TYPE: ディスクの移行先にする永続ディスクのタイプ。Migrate to Virtual Machines は、次のディスクタイプをサポートしています。
      • COMPUTE_ENGINE_DISK_TYPE_STANDARD: 標準ディスクタイプ。
      • COMPUTE_ENGINE_DISK_TYPE_SSD: SSD ハードディスク タイプ。
      • COMPUTE_ENGINE_DISK_TYPE_BALANCED: SSD 永続ディスクの代わりに使用できる、パフォーマンスと費用のバランスが取れたディスクタイプ。
      • COMPUTE_ENGINE_DISK_TYPE_HYPERDISK_BALANCED: Hyperdisk Balanced ディスクタイプ。
    • (任意)CUSTOM_LABELS: 移行されたディスクに付けるラベル。例: "key1":"val1", "key2":"val2"
    • (任意)KMS_KEY: 移行されたディスクに使用する KMS 鍵。詳しくは、Cloud Key Management Service の概要をご覧ください。
  3. (省略可)ターゲットの詳細を更新します。ターゲット プロジェクトは、移行されたディスクを含むプロジェクトです。必要に応じて、プロジェクト、ゾーン、ディスクタイプを含むターゲットの詳細を構成できます。ターゲットの詳細は随時変更できます。前の手順のコマンドを使用して、ターゲットの詳細を更新することもできます。

     gcurl https://vmmigration.googleapis.com/v1alpha1/projects/HOST_PROJECT/locations/LOCATION/sources/M2VM_SOURCE/diskMigrationJobs/DISK_MIGRATION_JOB\?update_mask\=target_details  -X PATCH --data '{
     "target_details":{
       "target_disk":{
          "disk_id":"TARGET_DISK_ID",
          "zone":"TARGET_ZONE",
          "disk_type":"DISK_TYPE"
        },
       "target_project":"projects/HOST_PROJECT/locations/global/targetProjects/TARGET_PROJECT",
       "labels":{CUSTOM_LABELS},
       "encryption":{"kms_key":"KMS_KEY"}
      }
    }'
    
  4. 次の REST コマンドを使用して、移行ジョブを実行します。

    gcurl https://vmmigration.googleapis.com/v1alpha1/projects/HOST_PROJECT/locations/LOCATION/sources/M2VM_SOURCE/diskMigrationJobs/DISK_MIGRATION_JOB:run -X POST
  5. 次の REST コマンドを使用してジョブをポーリングし、ステータスを確認します。

    gcurl https://vmmigration.googleapis.com/v1alpha1/projects/HOST_PROJECT/locations/LOCATION/sources/M2VM_SOURCE/diskMigrationJobs/DISK_MIGRATION_JOB

単一ディスク移行でサポートされている REST API オペレーション

Migrate to Virtual Machines は、単一ディスクの移行で次の REST API オペレーションをサポートしています。

ディスク移行ジョブを作成する

gcurl https://vmmigration.googleapis.com/v1alpha1/projects/HOST_PROJECT/locations/LOCATION/sources/M2VM_SOURCE/diskMigrationJobs/?disk_migration_job_id=DISK_MIGRATION_JOB -X POST --data '{
  "aws_source_disk_details":{"volume_id":"AWS_VOLUME_ID"},
  "target_details":{
    "target_disk":{
      "disk_id":"TARGET_DISK_ID",
      "zone":"TARGET_ZONE",
      "disk_type":"DISK_TYPE"
    },
    "target_project":"projects/HOST_PROJECT/locations/global/targetProjects/TARGET_PROJECT",
    "labels":{CUSTOM_LABELS},
    "encryption":{"kms_key":"KMS_KEY"}
  }
}'

次のように置き換えます。

  • HOST_PROJECT: ディスクの移行元にするホスト プロジェクトの名前。
  • LOCATION: ディスク移行プロセスを実行するゾーン。サポートされているゾーンのリストについては、リージョンとゾーンをご覧ください。
  • M2VM_SOURCE: ディスクの移行元にするクラウドソース。プレビュー ステージでは、ディスクを AWS ソースからのみ移行できます。
  • DISK_MIGRATION_JOB: ディスク移行ジョブの ID。Compute Engine リソースの命名規則については、命名規則をご覧ください。
  • AWS_VOLUME_ID: 移行するディスクの名前。
  • TARGET_DISK_ID: ターゲット ディスクの ID。Compute Engine リソースの命名規則については、命名規則をご覧ください。
  • TARGET_PROJECT: ディスクの移行先にするターゲット プロジェクトの ID。ターゲット プロジェクトをまだ追加していない場合は、ターゲット プロジェクトを追加するの手順に沿って追加してください。
  • TARGET_ZONE: ターゲット プロジェクトのゾーン。詳しくは、リージョンとゾーンをご覧ください。
  • DISK_TYPE: ディスクの移行先にする永続ディスクのタイプ。Migrate to Virtual Machines は、次のディスクタイプをサポートしています。
    • COMPUTE_ENGINE_DISK_TYPE_STANDARD: 標準ディスクタイプ。
    • COMPUTE_ENGINE_DISK_TYPE_SSD: SSD ハードディスク タイプ。
    • COMPUTE_ENGINE_DISK_TYPE_BALANCED: SSD 永続ディスクの代わりに使用できる、パフォーマンスと費用のバランスが取れたディスクタイプ。
    • COMPUTE_ENGINE_DISK_TYPE_HYPERDISK_BALANCED: Hyperdisk Balanced ディスクタイプ。
  • (任意)CUSTOM_LABELS: 移行されたディスクに付けるラベル。例: "key1":"val1", "key2":"val2"
  • (任意)KMS_KEY: 移行されたディスクに使用する KMS 鍵。詳しくは、Cloud Key Management Service の概要をご覧ください。

ディスク移行ジョブを更新する

gcurl https://vmmigration.googleapis.com/v1alpha1/projects/HOST_PROJECT/locations/LOCATION/sources/M2VM_SOURCE/diskMigrationJobs/DISK_MIGRATION_JOB\?update_mask\=target_details  -X PATCH --data '{
  "target_details":{
    "target_disk":{
      "disk_id":"TARGET_DISK_ID",
      "zone":"TARGET_ZONE",
      "disk_type":"DISK_TYPE"
    },
    "target_project":"projects/HOST_PROJECT/locations/global/targetProjects/TARGET_PROJECT",
    "labels":{CUSTOM_LABELS},
    "encryption":{"kms_key":"KMS_KEY"}
  }
}'

ディスク移行ジョブを取得する

gcurl https://vmmigration.googleapis.com/v1alpha1/projects/HOST_PROJECT/locations/LOCATION/sources/M2VM_SOURCE/diskMigrationJobs/DISK_MIGRATION_JOB

ディスク移行ジョブを一覧表示する

gcurl https://vmmigration.googleapis.com/v1alpha1/projects/HOST_PROJECT/locations/LOCATION/sources/M2VM_SOURCE/diskMigrationJobs

ディスク移行ジョブを実行する

gcurl https://vmmigration.googleapis.com/v1alpha1/projects/HOST_PROJECT/locations/LOCATION/sources/M2VM_SOURCE/diskMigrationJobs/DISK_MIGRATION_JOB:run -X POST

ディスク移行ジョブをキャンセルする

gcurl https://vmmigration.googleapis.com/v1alpha1/projects/HOST_PROJECT/locations/LOCATION/sources/M2VM_SOURCE/diskMigrationJobs/DISK_MIGRATION_JOB:cancel -X POST

ディスク移行ジョブを削除する

gcurl https://vmmigration.googleapis.com/v1alpha1/projects/HOST_PROJECT/locations/LOCATION/sources/M2VM_SOURCE/diskMigrationJobs/DISK_MIGRATION_JOB -X DELETE

バッチディスク移行用の REST API スクリプト

次の REST API スクリプトを使用して、バッチディスク移行タスクを実行します。

バッチディスク移行ジョブを作成する

token=`gcloud auth print-access-token`
for PAIR in `echo "SRC_TARGET_PAIRS" |tr -d ' '|tr ',' ' '`;
do
  vol=${PAIR%:*}
  disk=${PAIR#*:}
  curl -H "Authorization: Bearer $token" -H "Content-Type: application/json" https://vmmigration.googleapis.com/v1alpha1/projects/HOST_PROJECT/locations/LOCATION/sources/M2VM_SOURCE/diskMigrationJobs\?disk_migration_job_id\=dmj-${vol}  -X POST -d '{
    "aws_source_disk_details":{"volume_id":"'${vol}'"},
    "target_details":{
      "target_disk":{
        "disk_id":"'${disk}'",
        "zone":"TARGET_ZONE",
        "disk_type":"DISK_TYPE"
      },
      "target_project":"projects/HOST_PROJECT/locations/global/targetProjects/TARGET_PROJECT",
      "labels":{CUSTOM_LABELS},
      "encryption":{"kms_key":"KMS_KEY"}
    }
  }'
done

次のように置き換えます。

  • SRC_TARGET_PAIRS: SOURCE:TARGET ペアのカンマ区切りリスト。例: vol1:disk1, vol2:disk2
  • HOST_PROJECT: ディスクの移行元にするホスト プロジェクトの名前。
  • LOCATION: ディスク移行プロセスを実行するゾーン。サポートされているゾーンのリストについては、リージョンとゾーンをご覧ください。
  • M2VM_SOURCE: ディスクの移行元にするクラウドソース。プレビュー ステージでは、ディスクを AWS ソースからのみ移行できます。
  • DISK_MIGRATION_JOB: ディスク移行ジョブの ID。Compute Engine リソースの命名規則については、命名規則をご覧ください。
  • AWS_VOLUME_ID: 移行するディスクの名前。
  • TARGET_DISK_ID: ターゲット ディスクの ID。Compute Engine リソースの命名規則については、命名規則をご覧ください。
  • TARGET_PROJECT: ディスクの移行先にするターゲット プロジェクトの ID。ターゲット プロジェクトをまだ追加していない場合は、ターゲット プロジェクトを追加するの手順に沿って追加してください。
  • TARGET_ZONE: ターゲット プロジェクトのゾーン。詳しくは、リージョンとゾーンをご覧ください。
  • DISK_TYPE: ディスクの移行先にする永続ディスクのタイプ。Migrate to Virtual Machines は、次のディスクタイプをサポートしています。
    • COMPUTE_ENGINE_DISK_TYPE_STANDARD: 標準ディスクタイプ。
    • COMPUTE_ENGINE_DISK_TYPE_SSD: SSD ハードディスク タイプ。
    • COMPUTE_ENGINE_DISK_TYPE_BALANCED: SSD 永続ディスクの代わりに使用できる、パフォーマンスと費用のバランスが取れたディスクタイプ。
    • COMPUTE_ENGINE_DISK_TYPE_HYPERDISK_BALANCED: Hyperdisk Balanced ディスクタイプ。
  • CUSTOM_LABELS: 移行されたディスクに付けるラベル。例: "key1":"val1", "key2":"val2"
  • KMS_KEY: 移行されたディスクに使用する KMS 鍵。詳しくは、Cloud Key Management Service の概要をご覧ください。

バッチディスク移行ジョブを更新する

token=`gcloud auth print-access-token`
for PAIR in `echo "SRC_TARGET_PAIRS" |tr -d ' '|tr ',' ' '`;
do
  vol=${PAIR%:*}
  disk=${PAIR#*:}
  curl -H "Authorization: Bearer $token" -H "Content-Type: application/json" https://vmmigration.googleapis.com/v1alpha1/projects/HOST_PROJECT/locations/LOCATION/sources/M2VM_SOURCE/diskMigrationJobs/dmj-${vol}\?update_mask\=target_details -X PATCH -d '{
    "target_details":{
      "target_disk":{
        "disk_id":"'${disk}'",
        "zone":"TARGET_ZONE",
        "disk_type":"DISK_TYPE"
      },
      "target_project":"projects/HOST_PROJECT/locations/global/targetProjects/TARGET_PROJECT",
      "labels":{CUSTOM_LABELS},
      "encryption":{"kms_key":"KMS_KEY"}
    }
  }'
done

バッチディスク移行ジョブを取得する

token=`gcloud auth print-access-token`
for PAIR in `echo "SRC_TARGET_PAIRS" |tr -d ' '|tr ',' ' '`;
do
  vol=${PAIR%:*}
  disk=${PAIR#*:}
  curl -H "Authorization: Bearer $token" -H "Content-Type: application/json" https://vmmigration.googleapis.com/v1alpha1/projects/HOST_PROJECT/locations/LOCATION/sources/M2VM_SOURCE/diskMigrationJobs/dmj-${vol};
done

バッチディスク移行ジョブを一覧表示する

token=`gcloud auth print-access-token`
  curl -H "Authorization: Bearer $token" -H "Content-Type: application/json" https://vmmigration.googleapis.com/v1alpha1/projects/HOST_PROJECT/locations/LOCATION/sources/M2VM_SOURCE/diskMigrationJobs

バッチディスク移行ジョブを実行する

token=`gcloud auth print-access-token`
for PAIR in `echo "SRC_TARGET_PAIRS" |tr -d ' '|tr ',' ' '`;
do
  vol=${PAIR%:*}
  disk=${PAIR#*:}
  curl -H "Authorization: Bearer $token" -H "Content-Type: application/json" https://vmmigration.googleapis.com/v1alpha1/projects/HOST_PROJECT/locations/LOCATION/sources/M2VM_SOURCE/diskMigrationJobs/dmj-${vol}:run -X POST;
done

バッチディスク移行ジョブをキャンセルする

token=`gcloud auth print-access-token`
for PAIR in `echo "SRC_TARGET_PAIRS" |tr -d ' '|tr ',' ' '`;
do
  vol=${PAIR%:*}
  disk=${PAIR#*:}
  curl -H "Authorization: Bearer $token" -H "Content-Type: application/json" https://vmmigration.googleapis.com/v1alpha1/projects/HOST_PROJECT/locations/LOCATION/sources/M2VM_SOURCE/diskMigrationJobs/dmj-${vol}:cancel -X POST;
done

バッチディスク移行ジョブを削除する

token=`gcloud auth print-access-token`
for PAIR in `echo "SRC_TARGET_PAIRS" |tr -d ' '|tr ',' ' '`;
do
  vol=${PAIR%:*}
  disk=${PAIR#*:}
  curl -H "Authorization: Bearer $token" -H "Content-Type: application/json" https://vmmigration.googleapis.com/v1alpha1/projects/HOST_PROJECT/locations/LOCATION/sources/M2VM_SOURCE/diskMigrationJobs/dmj-${vol} -X DELETE;
done