Migrate to Virtual Machines を使用すると、アタッチされていないディスクを AWS ソースから Google Cloudの Persistent Disk ボリュームに移行できます。この機能は、アタッチされていないディスク(いずれの仮想マシン(VM)インスタンスにも接続されていないディスク)を Google Cloudに移行する場合に便利です。
アタッチされていないディスクは VM に接続されておらず、アクティブではないため、Migrate to Virtual Machines でレプリケーション サイクルが実行されません。ディスク内のデータは 1 回のオペレーションでコピーされます。
始める前に
移行プロセスを開始する前に、次の操作を行います。
- Migrate to Virtual Machines サービスを有効にして、移行元と移行ターゲットで移行環境を構成します。
- 参照先のポリシーに
ec2:CreateSnapshot
を追加して、ec2:CreateSnapshot
の AWS IAM ポリシーを作成します。
制限事項
次の制限が適用されます。
- ディスクは AWS ソースからのみ移行できます。
- ディスクの移行には REST API のみを使用できます。
- リージョン ディスクと Hyperdisk ディスクはサポートされていません。
ディスク移行プロセス
アタッチされていないディスクを Google Cloudに移行する手順は次のとおりです。
Cloud Shell ターミナルで、Google REST API の呼び出しに便利なシェル エイリアスを定義します。
alias gcurl='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'
次の 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 の概要をご覧ください。
(省略可)ターゲットの詳細を更新します。ターゲット プロジェクトは、移行されたディスクを含むプロジェクトです。必要に応じて、プロジェクト、ゾーン、ディスクタイプを含むターゲットの詳細を構成できます。ターゲットの詳細は随時変更できます。前の手順のコマンドを使用して、ターゲットの詳細を更新することもできます。
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"} } }'
次の REST コマンドを使用して、移行ジョブを実行します。
gcurl https://vmmigration.googleapis.com/v1alpha1/projects/HOST_PROJECT/locations/LOCATION/sources/M2VM_SOURCE/diskMigrationJobs/DISK_MIGRATION_JOB:run -X POST
次の 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