今回は ESXi で作成した VM を GCP へ移行する手順をメモしておきます。移行対象の VM には Red Hat Enterprise Linux を使います。
大まかな流れ
- ESXi で RHEL VM を作成
- RHEL VM をセットアップ
- GCP でアップロード用のリソースを作成
- GCP へ RHEL VM ディスクをアップロード
- GCP で VM ディスクをイメージ化
事前準備
1. ESXi で RHEL VM を作成
まずは ESXi で移行元の VM を準備します。Red Hat 開発者用サブスクリプションであれば RHEL の ISO イメージをサイトからダウンロードできるので、利用するバージョンの OS を準備しておきます。
GCP では無料枠の中に 30 GB の標準永続ディスクが含まれているので、イメージも 30 GB に変更しています。
ESXi で作成したあとは VM を起動します。
2. RHEL VM をセットアップ
起動した RHEL をセットアップします。基本的にはウィザードに従うのでそこまで迷いませんが、次の点だけ注意します。
- ネットワーク インタフェースは DHCP 構成にする
- ソフトウェア構成は 「Minimal Install」にする
Boot ISO ではセットアップ時に Red Hat サブスクリプションの登録が必須になり、Binary DVD の場合はセットアップ後にあらためて登録できる、ということになっていると思います。
作成したらホスト名の変更や必要なツールをインストールしておきます。
vmname='VM 名'
hostnamectl set-hostname $vmname
コマンドでの Red Hat サブスクリプション有効化手順
インストーラーでサブスクリプションを登録しなかった場合は、SSH などで接続して次のコマンドで登録します。実行すると Red Hat のユーザー名とパスワードを要求されるので入力します。
subscription-manager register
正常に登録できると次のようになります。
# subscription-manager register
Registering to: subscription.rhsm.redhat.com:443/subscription
Username: <ユーザー名>
Password:
The system has been registered with ID: ********-****-****-****-************
The registered system name is: <ホスト名>
登録が完了したら、アクティベートに必要な情報を取得します。次のコマンドでサブスクリプションの詳細情報を取得します。
subscription-manager list --available
表示されたものの中から「Pool ID」の値を確認します。
# subscription-manager list --available
+-------------------------------------------+
Available Subscriptions
+-------------------------------------------+
(---sniped---)
Subscription Name: Red Hat Developer Subscription for Individuals
(---sniped---)
Contract:
Pool ID: ***********************************
Provides Management: No
(---sniped---)
確認した値をもとに VM をアクティベートします。
subscription-manager subscribe --pool=<Pool ID の値>
次のコマンドでサブスクリプションの登録状態を確認し、Subscribed となっていることを確認します。
subscription-manager list
# subscription-manager list
+-------------------------------------------+
Installed Product Status
+-------------------------------------------+
Product Name: Red Hat Enterprise Linux for x86_64
Product ID: 479
Version: 8.5
Arch: x86_64
Status: Subscribed
Status Details:
Starts: 06/08/2021
Ends: 06/08/2022
正常にアクティベートと準備が終わったら VM を停止し、ESXi で VMDK ファイルをエクスポートします。
3. GCP でアップロード用のリソースを作成
GCP にディスク イメージをアップロードするためのリソースを作成します。次のコマンドで GCP にログインします。
gcloud auth login
次のコマンドで Google Cloud Storage (GCS) にバケットを新規作成します。
gsutil mb gs://<バケット名>
4. GCP へ RHEL VM ディスクをアップロード
次のコマンドで GCS へ VM ディスク ファイルをアップロードします。
gsutil cp<VMDK ファイルのパス> gs://<バケット名>
5. GCP で VM ディスクをイメージ化
アップロードが完了したら、次のコマンドでイメージ化を実行します。Red Hat 開発者用サブスクリプションには Cloud Access の権利がついているので BYOL で利用できるよう、--os=rhel-8-byol
オプションを付与しています。BYOL にする場合は事前にイメージ側でサブスクリプション
デフォルトの VPC ネットワークが削除されていると失敗するので、その場合は代替の VPC ネットワークを作成する必要があります。
gcloud compute images import<イメージ リソース名> --source-file=gs://<バケット名>/<VMDK ファイル名> --guest-environment --os=rhel-8-byol
実行にはほぼクリーン インストール状態でも 40 分程度かかりました。
イメージ化が完了すると、イメージの一覧に表示されるので、このイメージをもとに VM を作成します。
今回は以上です。
コメント