見出し画像

ESXi環境からHyper-V環境へ仮想マシンを移行してみる

世の中、ESXiユーザーは非常に多いですが、昨今のBroadcomのドタバタを受けて仮想化環境をESXiではなく、NutanixやHyper-V環境に移行する話が増えているように感じます。また、これを機にパブリッククラウドに移行するケースもかなり多いのではないかと思います。
身近でESXiからHyper-Vに移行しようと思うけど、、、という話をよく聞くので、折角だから移行の検証をしてみようと思い、実際に試した内容を書いていこうと思います。
移行にあたってはバックアップソフトウェアであるVeeamを使っています。他にもやり方はありますが、Veeamユーザーはかなり多い印象があり、私も検証用途でよく使っているので取っつきやすいのではないかと思い、今回はVeeamをベースに検証しています。
で、単にVeeamを使うだけはなぁと思って、ちょうどHyper-V環境に展開したバックアップデータを格納する専用ストレージであるData Domainの仮想アプライアンス(通称DDVE)があるので、 Veeamのバックアップリポジトリとして、このDDVEを活用したいと思います。
このDDVEのセットアップの仕方について知りたい方は以下をご覧ください。


環境

以下を準備済みです。

  • 移行元のホストとしてESXi環境およびESXi上の仮想マシン

  • 移行先のホストとしてHyper-V環境

  • Veeam Backup & Replicationをインストールしたサーバー

移行先となるHyper-V環境はWindows Server 2025ベースでStorage Spaces Directを有効化した、いわゆるAzure Stack HCI環境を用意しています。
Hyper-V環境およびVeeamについて、これらの構築手順についてはここでは記載しません。すでにこれら環境が準備できていることを前提としています。
※多少、準備となる設定については記載します。

手順

DDVEをVeeamに登録する

バックアップ先としてDDVEを指定したいと思います。移行作業とは直接関係ないので、この設定は必要のないなと思う場合は飛ばしてください。

Veeamの管理画面を開き、左下のリンクからBackup Infrastructureを押して以下のような画面を出します。

Backup Repositoriesを押します。

画面の余白で右クリックしてレポジトリとして追加をします。

Add backup repositoryを押します。

DDVEを含むData Domainは重複排除が効く専用ストレージとして分類されているため、重複排除ストレージアプライアンスを選択します。

Deduplication storage applianceを押します。

Data Domainというのが確認できますね。こちらを選択します。

Dell Data Domainを押します。

ウィザード形式で設定を進めます。まずレポジトリの名前を付けます。

Nameの箇所に名前を入力します。[Next]を押します。

DDVEのホスト名を入力します。

ホスト名を入力してから、Credentialsの[Add]を押します。

VeeamがDDVEに接続するため認証情報を入力します。
DDVEには接続しますが、DDVE全体を管理・操作するわけではなく、あくまでDDVEがバックアップサーバー用に用意した論理的なスペース(Storage Unit)に対してアクセスをすることになるため、ここではこのStorage Unitに対するアクセス権を持ったユーザーを指定することになります。

UserrnameとPasswordを入力して[OK]を押します。

以下のような形でCredentialsが入力できれば問題ありません。

前の操作で問題なく認証が通れば、以下のようにStorage Unitの設定を行う画面に進みます。

[Browse]を押します。

表示されたStorageUnitを選択します。

[OK]を押します。

もしも利用しようとしているStorage Unitが表示されてこない場合は、DD System Managerを開き、Mtree設定でStorage Unitの情報を確認したり、作成したUserを確認してみるとよいかと思います。

以下のような状態であることを確認して、先に進みます。

[Next]を押します。

ファイル レベルおよびアプリケーションアイテムの復元に使用するマウント サーバーの設定をします。バックアップレポジトリ取得されたバックアップファイルから仮想マシンのディスクをこのマウントサーバーにマウントするための設定となります。

このまま[Next]を押します。

バックアップリポジトリの設定とバックアップ リポジトリ サーバーにインストールされるコンポーネントのリストが表示されます。

[Apply]を押します。

チェックがすべて通ったことを確認します。

[Next]を押します。

以下のようにSummaryが表示されれば完了となります。

[Finish]を押します。

以下のようにRepositoryにDDVEが登録されればOKです。

Veeam上にHyper-V環境を登録する

Veeamの管理画面上にHyper-Vホストを登録します。上でも記載しましたが、今回登録するHyper-VホストはWindows ServerベースのAzure Stack HCI環境になります。

Veeamの管理画面で、画面左下のメニューからBackup Infrastractureを選択し以下の画面を表示します。
ツリーの中にあるManaged Servers - Hyper-Vを表示します。

[Add server]を押します。

Azure Stack HCI環境なのでクラスタ名を入力します。Standaloneホストであれば、ホスト名を入力します。

クラスタ名を入力して[Next]を押します。

TypeではHyper-Vクラスタを選択します。

Microsoft Hyper-V clusterを選択して、[Next]を押します。

クラスタを登録するための認証情報を入力します。

プルダウンメニューから定義済みの認証情報を選択するか、[Add]を押して認証情報を登録します。

クラスタ環境下のHyper-Vホストが表示されます。以下の通り、この環境は2ノード構成となります。

[Select All]を押し、[Apply]を押します。

数分待ちます。この間、各ホストにHyper-V用のパッケージがインストールされます。

全ホストがSuccessfullyと表示されたら、[Next]を押します。

サマリーが表示されます。

[Finish]を押します。

以下のようにクラスタが登録されました。

今回移行元となるESXiサーバーのVeeam上への登録手順については記載しておりませんが、Veeamの画面上でManaged ServersのVMware vSphereの箇所から上記と同じ手順で登録をすれば登録できます。

バックアップを取得する

移行元であるESXi上で移行対象の仮想マシンを選び、フルバックアップを取得します。
移行元のマシンとしてUbuntuが入った仮想マシンを選びました。
こちらです。

フルバックアップを取得した後、移行する前までは日次、週次、月次といった頻度で差分のバックアップを取得していると思いますが、いよいよ移行するタイミングでは最後の差分バックアップを手動で取得しましょう。

なお、ここではバックアップジョブの作成については触れませんので、ジョブの作成について知りたい方はVeeamさんのページを見てみてください。

では、バックアップジョブを表示して、手動で実行します。
ジョブが正常終了するまでにしばらく待ちます。

ジョブの箇所で右クリックしStartを押します。

ジョブが完了しました。

インスタントリカバリーでバックアップデータをHyper-V環境にリストアする

次にバックアップデータを元にHyper-V上に仮想マシンのリストア操作を行う形でHyper-V環境に仮想マシンを移行します。

左のツリーメニューからBackups - Diskを参照してバックアップ済みの仮想マシンを参照します。

右クリックメニューを開いて、Hyper-V環境にインスタントリカバリーを行います。

バックアップ済みの仮想マシンを右クリックし、Instant Recovery - Microsoft Hyper-Vを押します。

バックアップ済みの仮想マシンが表示されます。

[Next]を押します。

バックアップ済みの仮想マシンをリストアする先のHyper-Vホストやクラスタを指定します。

No target host or clusterの箇所を押します。

対象のホストを選択します。今回はAzure Stack HCI環境のHyperV01というホストを指定したいと思います。

ホストを選択して[OK]を押します。

リストア先が指定されました。

[Next]を押します。

仮想マシンの収容先となるディスクを選択します。Azure Stack HCI環境の共有ディスク上に仮想マシンを収容したいのでパスを変更します。

[Path]を押します。

あらかじめAzure Stack HCI環境上で作成したボリューム(以下のVolume01)に収容したいので、これを選択します。

Volume01を選択して[OK]を押します。

以下のように指定しました。

[Next]を押します。

リストア後に仮想マシンがどのHyper-V上のどのネットワークに接続するかを指定します。

Not connectedを押します。

以下のようにHyper-V上で定義済みのネットワークを指定します。

[OK]を押します。

以下のようになりました。

[Next]を押します。

Hyper-V上に登録される名前を指定します。UUIDは変更しないでこのままにします。

[Next]を押します。

Linuxベースの仮想マシンをリストアする際にはヘルパーアプライアンスという小さなLinuxが起動します。移行を補助する仮想マシンだそうですが、このヘルパーが接続するネットワークを指定します。
特に変更しないので、そのままにします。

[Next]を押します。

Reasonは復元する理由を書いておくメモのようなものなります。Migrationと書いておきました。

[Next]を押します。

サマリーが表示されます。
リストア後に仮想マシンを起動するかどうかのチェックがありますが、リストア後に手動操作が必要な箇所があり、ここで最終的に移行して切り替えるかどうかの判断と操作を行うこととなります。リストアする仮想マシンとは別に、移行元の仮想マシンは起動状態のままなので、ここで移行して切り替える場合には移行元の仮想マシンを停止した上で切り替えを行う必要があります。仮にこのチェックボックスを付けたまま先に進んで切り替え操作をし、移行元の仮想マシンも起動したままの状態にしてしまうと、同一ホスト名・IPアドレスの仮想マシンが同時起動してしまう状態になるので、事故につながりかねません。このような操作ミスを防ぐためにはこのチェックボックスを外しておいた方がいいかと思います。(今回はテスト環境なのでそのままにしておきました)

[Finish]を押します。

Finishを押してからしばらく待つと、Wating for user action…というユーザーによる操作を待っている旨のログが出力されてきます。ここでリストアした仮想マシンに切り替えるかどうかの作業が必要になりますが、切り替え作業をする場合、操作前に移行元の仮想マシンは停止しておくことになります。

[Close]を押します。

※modify disksの箇所は特に何も手を加えていませんでしたが、Failedになってしまっていました。ですが、警告扱いであったため、このまま移行を進められるので先に進めています。

Instant Recoveryの箇所にRunning状態のタスクがあることが分かります。
仮想マシンの名前の箇所を右クリックして、リストアした仮想マシンに切り替え(移行)を行います。

Migrate to productionを押します。

Restore completed successfullyと表示されて、移行が完了しました。

[Close]を押します

起動確認

正常に移行ができているかを確認しましょう。
まずはHyper-V Managerを開いて、仮想マシンが動作しているかを見てみましょう。
以下の通り、仮想マシンの状態が実行中となり、動作していることが分かります。

コンソールを開いてみましたが、問題なく仮想マシンは動作しています。

各種設定やサービスの状態に問題がないかを確認し、問題がなければHyper-V環境への移行は完了と判断してよいでしょう。

なお、今回移行した仮想マシンのOSはUbuntuでしたが、Windows Server 2022の仮想マシンを用意して、上記と同様の手順でESXiからHyper-V環境へ移行作業をしてみましたが、こちらも問題なく移行ができました。
Ubuntuの仮想マシンの時はmodify disksで警告が出ていましたが、Windowsサーバーの場合は何も警告が出ることもなく、正常に完了しました。

おわりに

ESXi環境からHyper-V環境への移行にはVeeam以外にも方法はありますが、個人的な感想としてはVeeamを使うのが一番簡単かなという印象です。移行先がAzure Stack HCI環境であれば、Azure Migrateを使う方法もありますが、こちらはこの記事を書いている時点ではプレビュー版なので何ともいえませんが、Azure Migrateが正式リリースされたら試してまた記事にしてみようかなと思います。
今回は操作画面をたくさん貼ったので、記事がだいぶ長くなってしまいましたが、これで終わろうと思います。


いいなと思ったら応援しよう!