はじめに
こんにちは!BFT名古屋支店のマッチです。今回はGCEに関する記事になります。
GCEのインスタンスを作成する際、一般的にはGoogle Cloud提供のイメージから作成することが多いかと思います。
この方法は手軽にインスタンスを作成できる一方で、論理ボリューム マネージャー(LVM)がサポートされていない、推奨イメージではOSのマイナーバージョンが最新以外選択できないなどの制約事項があります。また、オンプレのサーバをGCEにリフトする際などには使用できません。
そこで今回はESXi上に仮想マシンを作成し、OVFファイルを使用してGCEに移行する方法を紹介します。
この方法を取ることで、LVMによるボリューム管理が可能になり、また、既にESXi上に構築済みのサーバを容易にGCEに移行することができます。
目次
前提
作業端末:Windows 10
ESXi バージョン:7.0.2
Chrome バージョン:119.0.6045.160
ESXi上での作業
仮想マシンの作成、OSの初期設定
ESXiにログインし、仮想マシンを作成・OSの初期設定をします。手順は各環境や仮想マシンのOSによって異なるため、詳細はここでは割愛します。今回私はRHEL8.7で作成しました。
OVFテンプレートのエクスポート
- 作成した仮想マシンをシャットダウンし、「アクション」>「エクスポート」を選択します。
- mf、nvram、ovf、vmdkの4ファイルを選択し、エクスポートします。
※エクスポートする際に、以下のようなポップアップが表示され、エクスポートに失敗する場合があります。その場合は「"サイトURL"からのポップアップとリダイレクトを常に許可する」を選択し「完了」を押下した後、再度エクスポートを実施してください。
Google Cloudでの作業
Cloud Storageへのファイルのアップロード
Google Cloudにログインし、ナビゲーションメニューより、「Cloud Storage」>「バケット」を選択します。
ファイル配置先のバケットを選択し、先程エクスポートした4ファイルをドラッグ&ドロップで配置します(配置先のバケットを作成していない場合は事前に作成してください)。
GCEインスタンスの作成
- Cloud Shellを起動します。
- Cloud Shell上で以下のコマンドを実行し、GCEインスタンスを作成します(
--network
、--subnet
オプションを指定しない場合、デフォルトのネットワーク上に作成されます)。
gcloud compute instances import [インスタンス名] \ --source-uri=gs://[ディレクトリ名]/[ovfファイル名] \ --project [プロジェクトID] \ --network [ネットワーク名] \ --subnet [サブネット名] \ --zone=[インスタンスを作成するリージョン]
- 以下のメッセージが表示されればインスタンスの作成は成功です。
OVF import workflow finished successfully. Cleaning up.
ディスクタイプの変更(任意)
ここまででGCEインスタンスの作成は完了ですが、この方法ではディスクタイプがデフォルトで「SSD 永続ディスク」になります。
もし別のディスクタイプを選択したい場合は以下手順で一度スナップショットを作成した後、再度インスタンスを作成して選び直す必要があります。
- ナビゲーションメニューより、「Compute Engine」>「スナップショット」を選択し、「スナップショットを作成」を選択します。
- 各設定を入力し、スナップショットを作成します(「ソースディスク」には先程作成したインスタンス名を指定します)。
- 作成したスナップショットを選択し、「ディスクを作成」を選択します。
- 各設定を入力し、ディスクを作成します(ディスクタイプはここで指定します)。
- ナビゲーションメニューより、「Compute Engine」>「VMインスタンス」を選択し、インスタンスが作成されていることを確認します。
※この時点でディスクサイズ変更前と変更後の2つのインスタンスができている状態のため、必要に応じて変更前のインスタンスは削除ください。
おわりに
今回紹介したOVFテンプレートを使用した移行手順は事前準備が少なくシンプルな手順でできますが、仮想マシンを1台ずつ移行するため、移行台数が少ない場合に有効な方法になります。多くの仮想マシンを移行する場合にはM2VMなどの移行ツールを使用するなど、別の方法の検討をおすすめします。