Hyper-Vで仮想マシンをインポート複製するとUUIDが重複する問題

Hyper-Vで、仮想マシンを単純にエクスポート・インポートで複数複製すると、
仮想マシンのUUIDが重複してしまう問題が起きます。

このUUID重複は、UUIDを使用して一意のマシンを特定しているソフトウェアで、問題が起きるケースがあります。
(Cylance, ARCserve等)

Hyper-Vの仮想マシンインポートの種類での違い

Hyper-Vでのインポートには、上記画像のように三種類のインポート方法があります。

  • 仮想マシンをインプレースで登録する(既存の一意なIDを使用する)
  • 仮想マシンを復元する(既存の一意なIDを使用する)
  • 仮想マシンをコピーする(新しい一意なIDを作成する)

これらの選択肢のどれを選んで仮想マシンを複製しても、残念ながら

複製元と複製先ではUUIDが重複します。

環境・前提条件

  • Windows Server 2016のHyper-Vホスト

環境で確認しました。

Hyper-Vの「一意なID」というのは「UUID」とは異なるの?

残念ながら、Hyper-Vの「一意なID」というのは、「UUID」とは

異なります。

ここで言いますUUIDは、BIOS GUIDとも言われるUUIDのことを言っています。

では、Hyper-Vの「一意なID」いったい何かといいますと、「Hyper-Vホスト管理上での内部ID」です。
具体的には、

C:\ProgramData\Microsoft\Windows\Hyper-V\Virtual Machines

配下に、仮想マシンの設定ファイルがあるのですが、その設定ファイル名がここでいう「一意のID」です。

ファイル名なので、同一ホスト上では、同じIDは存在しえないIDとなります。

となりますと、インポート元の仮想マシンがあります同一Hyper-Vホスト上で、複製目的でインポート出来る種類の選択肢としては、

  • 仮想マシンをコピーする(新しい一意なIDを作成する)

しかありません。

しかし、UUID(BIOS GUID)は重複してしまうのです。

既存の一意なIDを使用する(仮想マシンをインプレースで登録する、仮想マシンを復元する)

既定の一意なIDを使用するインポート選択肢は、インポート元の存在するHyper-Vホスト上では実行できません。(Hyper-Vの内部IDが重複してしまうため)

別のホストでは、インポートの種類として実行可能なのですが、違いとしては

  • 「仮想マシンをインプレースで登録する 」は、インポート元データをそのまま仮想マシンとして使用する
  • 「 仮想マシンを復元する 」は、インポート元データをコピーして仮想マシンとして使用する

という違いがあります。

時間がかかるのは、後者になります(コピー時間が差になります)。

Hyper-VにはUUIDを重複させない仮想マシン複製方法はないのか?

実はあります。

Hyper-Vで新規の仮想マシンを作成しつつ、
コピーした仮想ハードディスクを選択する方法

です。

もしくは、新規の仮想マシンを作成した上で、仮想ハードディスクの指定を変更し、複製元からコピーした仮想ハードディスクを指定します。

新規の仮想マシンを作成すれば、さすがにUUID(BIOS GUID)は変更され、
その上、コピーした仮想ハードディスクを使用しているので、仮想マシンの複製がされています。

注意点としましては、Sysprepを実行しWindows内部のSIDを重複させないように注意することです。

参考までに、VMwareではUUIDの重複はおきませんでした。

  • 仮想マシンのクローン
  • 仮想マシンのOVFエクスポート・インポート

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です