読者です 読者をやめる 読者になる 読者になる

sos の 作業メモ

プログラミングや英会話学習、マイルや旅行、日常生活など。最近はWebFormなASP.NETのお守りがお仕事です。

日々の生活にhappyをプラスする|ハピタス Gポイント

VMWare Fusion 8 Proから Hyper-V に VMを移行してみました

開発環境 windows Mac プログラム一般

普段、Mac Book Proに VMWare Fusion 8 Pro を入れ、その上でWindowsの環境を取っ替え引っ替えしながら開発を行っているのですが、バックアップが面倒になってきたのと、社外に開発環境をまるまる持ち出すのも憚られる時代になってきたらしいのとで、 VM用サーバーとしてWidows Server 2016 TP5 を用意して、普段はリモートデスクトップでアクセスする環境を試験的に構築してみることにしました。

紺屋の白袴ではありませんが、ISVでインフラ部門も持っている会社のくせに、スタッフが個々に環境をバックアップしたり、新しいマシンへの移行を行ったりで、時間も手間も非常に勿体無い状態となっており、これもなんとかしたいなと感じている点です。

もちろん 勉強のためには環境構築も必要だとは思いますが、だからと言って毎度毎度同じことをやるのは効率が悪いので、少しでもみんなが便利になれるような環境を残すことができればと思っています。

さて、本題。

Fusionからの移行の記事を探したのですが、これという手法をあまり見かけなかったため、Fusion標準機能のOVF形式でのエクスポートを行い、その中のVMDKファイルを Hyper-V形式のVHDX(仮想ディスク)に変換し、それをHyper-Vの方でVMを作る時に指定するという方法をとることにしました。


うまくいった方法

www.starwindsoftware.com

V2V Converter を使うのが簡単でした。

  • Fusionで対象のVMをOVF形式でエクスポート。
  • Hyper-VサーバーでV2V Converterを起動し、OVF形式のフォルダの中のVMDKファイルをHyper-Vの vhdx形式を指定して変換。
  • 出来上がったvhdxファイルを使う設定で仮想マシンを新規作成。
  • VMWare Toolsをアンインストールしたりなんやかんや。

第2世代でマシンを作っちゃうとbootできないので気をつけて下さい。

また、第1世代で作ったものを第2世代に変換するためのPowerShell スクリプトが以下で公開されています。

code.msdn.microsoft.com


あと、試してはみたもののダメだった方法。2014年のツールなので、Fusion8のイメージには対応していないのかもしれません。

Microsoft Virtual Machine Converter 3.0

参考にしたサイトは以下

https://oitibs.com/convert-ova-to-vhdx-for-hyper-v/

インポート対象のHyper-Vサーバーマシンを 物理OS環境と表記

  1. 物理OS環境で、MicrosoftのサイトからVirtual Machine Converter 3.0をダウンロードしてインストール
  2. Fusionのファイル -> エクスポート メニューで 移行対象のVMをOVF形式でエクスポートし、物理OS環境へコピー
  3. 以下のコマンドレットを PowerShellで実行 (vmdkとvhdxのパスを適宜変更すること)
# コンバーターモジュールをインポート
Import-Module "C:\Program Files\Microsoft Virtual Machine Converter\MvmcCmdlet.psd1"
# Fusionの vmdkファイルを Hyper-Vの vhdxファイルに変換
ConvertTo-MvmcVirtualHardDisk -SourceLiteralPath "hoge.vmdk" -DestinationLiteralPath "hoge.vhdx" -VhdType DynamicHardDisk -VhdFormat Vhdx

スナップショットをとってから設定をいじったり、別のマシンで環境を再現したりと、VM自体はとても簡単に扱えるのですが、 その基幹となるものを入れ替えるには、やはり相応のコストがかかるようです・・・