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





 

管理ユーザーのパスワード変更方法とadminユーザーのパスワード有効期限設定

標的型攻撃やランサムウェアによる被害が増えている昨今、これらの被害を防止するための予防策を講じておく必要があります。

Nutanixにおいては、様々悪意のある攻撃を防御する機能がありますが、セキュリティの基本である管理者アカウントのパスワードをデフォルトから変こしておく必要があります。

Prism Central 7.3からは、Prism Centralのアカウントはもちろん、所属しているクラスターのCVMやAHVの管理者ユーザーのパスワードを変更することができます。

「Infrastructure」メニュー → 「Network & Security」 → 「System Accounts」

から、変更が可能です。


なお、Prism Centralでのパスワード変更の場合、ハードウェアのIPMIで利用するアカウントのパスワードは変更できません。

IPMIのパスワード変更、またはPrism Centralを展開する前にパスワードの変更を先に行いたいというケースもあるかともいます。その場合は、コマンドで対応を行います。


IPMIのパスワード変更

IPMIのGUI画面から変更も可能ですが、AHVから以下のコマンドで変更可能です。

ipmitool user set password user_id new_password  

※各ホストごとに行う必要があります。


AHVのパスワード変更

SSHなどでAHVのシェルにログインします。

passwd root

※各ホストごとに行う必要があります。


CVMのパスワード変更

password nutanix

※任意のCVMで実行すれば全てのCVMで同期されます


なお、AHVやCVMのパスワード変更はAOS 7.x系からPrism Centralでの変更が推奨されています。


なお、Prismのadminユーザーは、60日が有効期限となりパスワードの変更が必要となります。パスワードポリシーによっては、ゆこう期限を短くしたい場合や長くしたい場合などそれぞれ事情があるかと思います。
adminユーザーのパスワード有効期限を変更するには、CVMにSSH等でログインし以下のコマンドを実行します。


パスワードを変更できない期間を指定

sudo chage -m MIN-DAYS admin


パスワードの有効期限を設定

sudo chage -M MAX-DAYS admin


例えば外部システム連携などの影響で、パスワードを変更を要求設定を長くするためには、以下のコマンドを実行します。(あまり推奨はされませんが..)

sudo chage -M 9999 admin


管理者のアカウントのパスワードは、厳密に管理とアクセス制限を行う必要があります。

Nutanixを初めて導入したら、忘れずにデフォルトパスワードを変更してください。

Nutanixでは、管理者カウントをデフォルトパスワードを利用している場合、NCCによりチェック・警告されます。




(参考)Controller VM Access

(参考)KB6153:NCC Health Check: default_password_check, pc_default_password_check and file_server_default_password_check



nutanixやadminユーザーがロックされた場合の対応

CVMやAHVにSSHでログインして作業することは、メンテナンス時にまれに行うことがあるかともいます。普段行わない作業のため、nutanixユーザーのパスワードやAHVのrootパスワードを忘れてしまい、アカウントロックされてしまう問題に遭遇する可能性があります。そのような際の対処法をご紹介します。

まずは、CVMにログインを行います。

CVMにログインするnutanixユーザーのパスワードを忘れたんだよ!という方は、慌てずPrismでログインするadminユーザーのパスワードでCVMにSSH等でログインします。

CVMになにかしログインができればOKです。
状況によって、以下のコマンドを実行します。


AHVのrootユーザーのアカウントロックを解除する場合

hostssh "faillock --user root --reset"


CVM上のnutanixユーザーのアカウントロックを解除する場合

allssh "faillock --user nutanix --reset"


CVM上のadminユーザーのアカウントロックを解除する場合

allssh "faillock --user admin --reset"


AOS 6.7以降でAOS6.10.1.9、AOS7.0.1未満の場合、ロックされたユーザーは自動でロック解除されません。AOS6.10.1.91/AOS 7.0.1以降、AHVは、20230302.102001以降は、ロックされたユーザーは、900秒後にロック解除されます。


(参考)
KB17355:Users nutanix/admin and root are not getting unlocked automatically after 900 seconds