ラベル Hyper-V の投稿を表示しています。 すべての投稿を表示
ラベル Hyper-V の投稿を表示しています。 すべての投稿を表示

2025年9月20日土曜日

AHV上の仮想マシンでHyper-Vを稼動させる(Nestedの方法)

AHV環境においてPrismから仮想マシンを作成したデフォルト状態の場合、Hyper-Vをインストールしようとすると、以下のようなエラーメッセージが表示され、Hyper-V機能をインストールすることはできません。


AHVには、 「hardware_virtualization」という機能設定を有効化することでHyper-Vをインストールすることができます。AOS7.3で確認する限り、「cpu_passthrough」パラメーターであっても、Hyper-Vをインストールすることができます。

元々、Nestedの場合、「cpu_passthrough」が使用されておりましたが、このパラメーターではHyper-Vは動作しませんでした。(ESXiのNestedは、cpu_passthroughパラメーターで動作します)
Nutanixが、WSL2の対応を行う際に「hardware_virtualization」パラメーターが新たに追加されました。WSL2が、内部的にHyper-Vエンジンを内部で利用しているため、「hardware_virtualization」パラメーターを有効化することで、Hyper-Vの動作に対応したというのがその背景にあります。

では、この「hardware_virtualization」を有効化する方法をご紹介します。

まず、CVMにSSH等でシェルにログインします。

以下のコマンドを実行します。

acli vm.update <仮想マシン名> hardware_virtualization=true

※該当の仮想マシンは、パワーオフの状態で実行してください。


コマンド実行完了後、通常通り仮想マシンを起動し、Hyper-Vを有効化します。

これで、Hyper-Vを動作させることができます。

vSphere ESXiの場合は、仮想マシンが仮想スイッチを通じて外部ネットワークと疎通する場合、仮想スイッチの無差別モード(プロミスキャスモード)の設定変更が必要であったりしますが、AHV環境の場合は、仮想スイッチの設定変更などは特に必要ありません。

AOS 7.0以降は、Nestedの仮想マシンのライブマイグレーションにも対応したことから、利便性が増したと言えるかと思います。

AHV上の仮想マシンにさらにハイパーバイザーをインストールし仮想マシンなどを動作させるNestedに関しては、サポートに制限があります。
Nested環境でサポートされるのは、以下の2つの機能のみとなります。

  • Credential Guard
  • WSL2(Linux 用 Windows サブシステム 2)

上記機能以外は、サポートされていないことから、Hyper-VをAHV上の仮想マシンで動作させることは、サポート対象外となりますので、検証目的など一時的な環境として利用される場合にご利用ください。

(参考)ネスト化された仮想化は AHV でサポートされていますか?

(参考)Windows Subsystem for Linux (WSL2) Support on AHV





 

2019年12月21日土曜日

AHVへの引っ越しは、Nutanix Moveで HyperV編(その1)

前回までに、ESXiからAHVへの移行が簡単にかつ、ダウンタイムをかなり短く行うことが出来ることが分かりました。
では、今回はHyper-VからAHVへの仮想マシン移行についてご紹介します。

今回は、Nutanix Move 3.4を利用して作業を行います。
移行元環境は、Windows Server 2012R2で、第2世代の仮想マシン対応で構成された環境にWindows Server 2012 R2をインストールした仮想マシンを移行します。

まずは、Nutanix MoveのSourceにHyper-Vを登録します。

すると、add the environment と表示されしばらく待ちが発生します。
このタイミングでHyper-Vホスト側にWinRM機能を利用して、MoveのAgentがインストールされます。インストール場所は、上記のSourceを登録する際のユーザープロファイルの配下にできあがります。この環境は、Administratorで登録をしていますので、「C:\Users\Administrator\Nutanix\Move\3.4」になります。
併せて、「move-service.exe」 が、「Nutanix Move Agent」という名前でサービスに登録されます。

なお、Move3.2までは、このAgentが日本語版のWindowsですとうまくインストールが出来ませんでした。これは、インストール時に利用しているPowerShellのコードが日本語に対応していないことに由来していましたが、Move3.3.1以降では、問題なく日本語環境でもインストールが可能です。

もし、Agentのインストールに失敗し、Sourceの登録に失敗した場合、Agentを手動でHyper-Vホストにインストール後、再度Source登録することで成功する可能性が高いです。
Agentバイナリは、Moveアプライアンスにhttp経由でアクセスします。
http://<nutanix-move-ip>/downloads/agents/move-agent-installer.exe
ダウンロードしたバイナリを、Hyper-Vホストにインストールします。

なお、インストール時には以下のパラメーターを入力します。
move-agent-installer.exe -o install <nutanix-move-ip> -u Administrator
最後のAdministratorは、サービスを起動するユーザーに紐付きますので、Administratorと書きましたが、実際には管理者権限を保有したユーザーとなります。

なお、AgentをインストールするとWindows Firewallにて、8087番のポートが開放されるルールが追加されます。このポート番号は、MoveとAgentがやりとりするために利用され、ポート番号を変更することはできません。

では、続いて、マイグレーションプランを作成します。

続いてソース環境とターゲット環境のNutanixを登録します。

続いて、移行したい仮想マシンの「+」マークをクリックし、移動対象のVMに登録します。ここで!マークが表示されます。
この内容は、セキュアブートに関する注意事項です。
第2世代の仮想マシンでは、カットオーバープロセス中及びカットオーバーが完了するまでは、仮想マシンのセキュアブート機能は無効になります。カットオーバープロセスが終了すると、セキュアブート機能が再び有効化されます。

▼Hyper-Vで第2世代仮想マシンを作成するとデフォルトでセキュアブートが有効になる

セキュアブートは自動的に無効にされ、移行終了後にHyper-V側のソース仮想マシンは元の設定に戻りますが、セキュアブートが必要でない場合はあらかじめチェックを外しておいてもよいかと思います。なお、セキュアブートの無効化は該当の仮想マシンがパワーオフ状態の時のみ設定変更が可能です。

続いてネットワークのマッピングを行います。
ここで出てくるにSource Networkは、Hyper-Vホストのアダプタになります。
割り当てるネットワークは、仮想マシンが通信したいネットワークになります。

この画面では、vSphere同様、ゲストOSへVirt IO Driverをインストールするためのcredential情報の入力を行います。vSphereの場合同様複数の仮想マシンを一括して移行する場合、仮想マシン個別のcredential情報を入力することも可能です。

また、Move 3.4からタイムゾーンの設定項目も追加されました。
ここでは、「Asia/Tokyo」を選択します。

Hyper-Vの仮想NICに付与されたMac Addressをを引き継ぐ場合は、「Retain MAC Addresses form the Source VMs.」にチェックを入れます。

最後にサマリーを確認し、「Save and Start」をクリックします。

これで、Hyper-Vの仮想マシンにVirtI/O Driverなど必要なモジュールが、「C:\Nutanix」に配置されます。


Hyper-Vマネージャーで確認すると、vSphereと同様にチェックポイント(スナップショット)が順次取得されているのが分かります。


 では次回に実際に、カットオーバーを行いAHVへの移行を行ってみましょう。









2016年12月11日日曜日

HyperVからAHVへの仮想マシン移行その3 VHDX仮想ディスクでの移行方法

前回の投稿では、VHDファイルで作成されたHyper-V仮想マシンの移行方法をご紹介しました。
非常に手軽に移行できたのがわかります。
では、Windows 2012から採用されたVHDXの移行方法についても見ていきたいと思います。

まずは、今回の移行環境です。


AOS4.7.2
AHV20160217.2
Hyper-V2012R2
ゲストOS2012R2
世代第1世代

まずは、VHDの移行の時と同様、VM Mobilityをインストールします。
VM Mobilityについては、以下を参考にしてください。

(参考)
http://infraapp.blogspot.jp/2016/12/hypervahv-vhd.html


ドライバーを含めインストールが行われます。
一部ドライバーインストールで確認画面が表示される場合がありますので、その際は許可してドライバーをインストールします。

インストールが完了したら仮想マシンの準備はこれで終わりです。


さて、ここから同じくImage ServiceにPutすればOKかというと、実はそうではありません。
VHDXの場合は、Nutanixのコンテナに直接ファイルを配置し、コマンドを使ってディスクイメージを変換する必要があります。
まずは、NFSでNutanixのストレージをマウントし、VHDXファイルを配置するところから始めましょう。

Windows Server 2012 R2の場合、サーバーマネージャーから「管理」メニューの「役割と機能の追加」を選択します。



まずは、ウィザードを進めます。


次に、「役割ベースまたは機能ベースのインストール」を選択します。

インストールするサーバーを選択します。

役割は追加せずに次へをクリックします。

NFSクライアントにチェックをいれ次へをクリックします。


タスクを確認し、インストールをクリックします。

インストールタスクが走りますので、インストールが完了するまで待ちます。

インストールが完了したら、「閉じる」をクリックします。

ここから、このWindows Server 2012 R2のOSから、Nutanixのコンテナをマウントします。
その前に、マウントしたいコンテナにホワイトリスト設定をしておく必要があります。

Nutanix側のPRISMにログインします。
ログイン後、メニューからStorageの画面に行きます。
そこから、これからマウントしたコンテナを選択し、Updateボタンをクリックします。


コンテナの設定画面が出ますので、「Advanced Setting」を選択します。


ホワイトリスト設定の画面が出てきますので、ここでマウントしたいマシンのIPアドレスを入れてマウント可能なアドレスとして登録をしておきます。入力は「192.168.0.0/255.255.255.0」といった形式での入力となりますので、CIDR形式と違うことに注意が必要です。

これで、Windowsからのマウントができる準備ができました。
Windows Server 2012 R2側で、コマントプロンプトを立ち上げて、Nutanixのストレージコンテナをマウントしてみましょう。

Windowsでマウントする場合は、以下のコマンドを利用します。
mount \\Nutanixの任意のCVM\コンテナ名 *

正常にマウントが成功すると「コマンドは正常に終了しました」と表示されます。


マイコンピューターから見てみると、ネットワークドライブとしてコンテナがマウントされていることがわかります。


このマウントしたNFSのドライブに、Hyper-Vで利用していた、VHDXファイルをコピーします。


このファイルコピーが終わったら、今度はAHVで読み込めるようにファイルを変換する必要があります。まずは、SSHで、CVMにログインします。

ここで登場するのが「qemu-img」コマンドです。

具体的には以下のコマンドを実行します。
qemu-img convert -f vhdx -O raw 元のVHDXファイル 変換後のファイル
となります。CVMから直接コンテナを見ることができませんので今回は、NFSを利用します。
CVMからコンテナをマウントする場合は、CVMがストレージサービスを提供しているため、127.0.0.1のアドレスを利用できます。
qemu-img convert -f vhdx -O raw nfs://127.0.0.1/container/Windows2012R2-V2.vhdx nfs://127.0.0.1/container/Windows2012R2-V2.raw

変換が終わったら、仮想マシンをPRISMから作成します。
VMメニューからCreate VMをクリックします。



仮想マシンのスペックを入力します。Hyper-Vの仮想マシン構成情報は引き継がれませんので手動で必要なスペックを構成します。

続けて、仮想ディスクをマウントする必要がありますので「Add new disk」をクリックします。

ここで仮想ディスクのマウント設定を行います。


ここで設定のポイントがいくつかあります。
まず、OPERATIONは、「CLONE FORM ADSF FILE」を選択することです。
コンテナを直接NFSでマウントし。、VHDXファイルの配置とqemu-imgコマンドで変換をしましたので、これはNutanixの管理配下にあるものではありません。
また、このファイルは直ファイルパスでの設定が必要になります。これが「PATH」の項になります。
PATHは、「/コンテナ名/ファイル名」となります。ファイルはかならず変換後の「raw」を選択します。
ファイル名をある程度入れると補完機能がありますので、自動的に候補が出てきますのでそこまで難しくないと思います。
また、ディスクサイズも手で入力する必要があります。
元のイメージよりも大きいサイズ(もしくは同じサイズ)で設定する必要があります。

上記の設定が終わったら、Addをクリックします。

仮想ディスクが追加されたのを確認し、適宜仮想NICを追加後、「Save」をクリックし、仮想マシンを保存します。

仮想マシンを保存したのち、実際に起動してみましょう
何事もなかったかのように仮想マシンが起動します。


VHDとの違いは、コマンドで仮想ディスクファイルの変換が必要となりますが、基本はそのひと手間だけです。

Hyper-VからAHVへの移行はそんなに難しいものではないかとが、理解できたかともいます。





HyperVからAHVへの仮想マシン移行その2 VHD仮想ディスクでの移行方法

前回の投稿で、Hyoer-Vの仮想ディスク形式にVHDとVHDXの2種類があるというお話をしました。
では、実際に2008R2のHyper-V環境にある仮想マシンを、AHVに移行したいと思います。

まず今回の環境ですが、


AOS4.7.2
AHV20160217.2
Hyper-V2008R2
ゲストOS2008R2
世代第1世代

となります。

では、実際の手順を見ていきましょう。

まず、Hyper-Vで稼働している仮想マシン上で、行う作業が1つあります。
それは、Nutanix VM Mobilityを、仮想マシンにインストールしておく必要があります。

VM Mobilityは、Nutanixのサポートページからダウンロードすることができます。





ファイルは、MSIになっていますゲストOSで直接ダウンロードするか、ファイルサーバー等からアクセスする形でも構いません。
では早速インストールと行きたいところなのですが、実はその前に確認しておくことがあります。これは、SHA2の対応が必要で、WindowsのKB3033929が適用されている必要があります。

(参考)KB3033929
https://technet.microsoft.com/ja-jp/library/security/3033929.aspx?f=255&MSPPError=-2147217396

さて、パッチ3033929を適用後、改めてVM Mobiltyをインストールしましょう。


インストール自身は1~2分程度です。

途中でドライバーのインストールを聞かれますので、インストールをクリックします。






これだけの手順でインストールは完了です。


インストール完了後、特に再起動は必要ありません。
これから仮想マシンを移行しますので、この仮想マシンをシャットダウンしておきましょう。


では、Nutanix側でPRISMにログインし、Image Confugurationを開きます。


VHDファイルをアップロードしますので、Upload Imageを選択します。

アップロードに際して管理情報を入力します。
NAMEは、管理名を、ANNOTATIONは、説明事項になりますので入力が必要ない場合は空白でも構いません。
重要なのは、IMAGE TYPEです。ISOとDISKと選択肢がありますが、今回はVHDになりますので、「DISK」を選択する必要があります。
CONTAINERは、Nutanixで作成したストレージコンテナでVHDをどのコンテナに投入するかを選択します。
最後に、IMAGE SOURCEで、Upload a fileを選択し、今回の仮想マシンのVHDファイルを選択します。



VHDファイルがアップロードされ終わるまで待ちます。

アップロードが完了しました。しかし、画面上部のタスクを見ると、なにやら別のタスクが走っていることがわかります。


詳細を見てみると、Image Updateという処理が走っています。

これは、アップロードしたVHDファイルを、Nutanix側で扱うオブジェクトとして変換してくれています。同時にAHVで利用可能な仮想ディスクにしてくれます。

このタスクが完了したら、あとは仮想マシンを作成し、この仮想ディスクを割り当てるだけです。

メニューのVMから、Create VMをクリックします。


通常通り仮想マシンを作成します。仮想マシン構成情報は、Hyper-Vから移行されませんので必要に応じて、CPUやメモリーの割り当てを行う必要があります。

次に、ディスクを選択します。まずは、「Add new disk」をクリックします。

TYPEは、DISKを選択します。
OPERATIOnですが、今回はImage Serviceを利用してVHDをアップロードしましたので、「CLONE FROM IMAGE SERVICE」を選択します。
すると自動的に、Image Serviceに入っているものが出てきますので、該当するものを選択します。


BUS TYPEは、必要に応じてですが、今回はVM Mobilityをあらかじめインストールしておきましたので、SCSIドライバーもOS内にあらかじめ入っておりますので、SCSIを選択しましょう。
すべてのパラメーター入力が完了したら、Addをクリックします。

仮想ディスクが追加されたことを確認し、あとはAdd new NICで必要に応じてNICを追加し、SAVEをクリックし、仮想マシンを保存します。


作成した仮想マシンを実際にパワーオンして、Lunch Consoleで、画面を見てみましょう。


何事もなかったかのように仮想マシンが起動しました。
ハイパーバイザーが稼働するホストが変わったことで、一部再起動が発生する事項が出ていることがわかりますが、デバイスが何ら問題なく再認識されていることがわかります。
特にドライバーの場所参照場所指定などの画面が出てくることはありません。

Hyper-Vからの仮想マシン移行は、実はこんなに簡単に可能です。