VMware vSphere Hypervisor(ESX/ESXi)[以下ESXiと略]はNested ESXi機能によって実機のESXi上で「ESXiをゲストOSとする仮想マシン」を仮想ESXiホスト化できます。
またWindows Server 2016でもNested Virtualization機能によって実機のWindows Server 2016上で「Windows Server 2016をゲストOSとする仮想マシン」を仮想Hyper-Vホスト化できます。
※無償のHyper-V Server 2016や有償のWindows 10系のクライアントHyper-Vについても同様です。
ESXiではWindows Server 2016をゲストOSとする仮想マシンも仮想Hyper-Vホスト化できます。
更にESXiでは「Xenの完全仮想化対応OSをゲストOSとする仮想マシン」も仮想Xenホスト化できます(代表的なXenの完全仮想化対応OSはSUSE Linux Enterprise Serverです)。
つまり無償版のESXi搭載PCが1台あればその上で3種類の無償仮想化サポートホスト(仮想ESXiホスト、仮想Hyper-Vホスト、仮想Xenホスト(仮想Xen Hypervisorホスト))を自由に利用できます。
※Hyper-V上ではその仮想マシンにESXi自体をインストールできないためHyper-V上での仮想ESXiホストの構築はできません。
ここではSLES 11 SP4(SUSE Linux Enterprise Server 11 SP4)をESXi環境上で仮想Xenホスト化する手順を紹介します。
※その仮想Xenホスト上のDomainUでSLES 11 SP4やSLES 12 SP1を実行させる方法も紹介します。
尚、オープンギャラリー:Xen 3.0.4(Xen on VMware編)ではVMware環境で「SLES 10 SP1を準仮想化対応の仮想Xenホスト化する」手順を紹介しましたのでESXi環境で「SLES 11 SP4を完全仮想化対応の仮想Xenホスト化する(Xen HVM domU)」手順を扱う本編はその続編という位置付けとなります。
※HVMはHardware Virtual Machine(ハードウェアの仮想化支援機能を利用して動作する仮想マシン)の略です。
今回使用したPCのハードウェア/ソフトウェア構成は以下の通りです。
[補足] デフォルトのネットワークアダプタは[VMXNET 3]ですが[VMXNET 3]のドライバ(vmxnet3.ko)はDomain0で動作させるSLES 11 SP4のXenカーネルには含まれていません。 ※[E1000]のドライバはDomain0で動作させるSLES 11 SP4のXenカーネルに含まれます。 もし間違って[VMXNET 3]を選択した場合でもDomain0とDomainUとの間では通信可能ですがESXiの属するネットワークには接続できません。 [VMXNET 3]を指定した場合は本仮想マシンの[設定の編集]で[E1000]を追加してブリッジ定義を変更すればESXiの属するネットワークに接続可能となります。 |
・82545EM Gigabit Ethernet Controller 0.0.0.0/32で設定済み ・ネットワークブリッジ DHCPで設定済み |
###Don't change this comment - YaST2 identifier: Original name: xen### title Xen -- SUSE Linux Enterprise Server 11 SP4 - 3.0.101-63 root (hd0,1) kernel /boot/xen.gz vga=mode-0x334 module /boot/vmlinuz-3.0.101-63-xen root=/dev/sda2 resume=/dev/sda1 splash=silent showopts vga=0x334 module /boot/initrd-3.0.101-63-xen |
vhv.enable = "TRUE" featMask.vm.hv.capable = "Min:1" |
・Virtual Ethernet Card 0 DHCPで設定済み |
/usr/lib/xen/bin/qemu-dm -d 1 -domain-name xensles11 -videoram 4 -k ja -vnc 127.0.0.1:0 ※実際には改行されません。 -vncunused -vcpus 1 -vcpu_avail 0x1L -boot c -localtime -serial pty -acpi -watchdog-action reset -net none -M xenfv |
[補足] <サインイン>ボタンの左隣りにはウィンドウマネジャの選択アイコンがあります。 KDMを導入していない今回の場合は選択可能なウィンドウマネジャは以下の通りです。 ・GNOME ※[アクティビティ]やお気に入り(ラウンチャ)表示のデスクトップです ・GNOMEクラシック ・IceVM ・SLE Classic ※SLE ClassicがSLES 12のデフォルトでこれはSLES 11とほぼ同じものです) |
(1)ESXi対応のネットワークアダプタが見つからないという事象は仮想マシンの設定変更で対応可能 (2)Nested Xen(実機上のXen Hypervisor上の完全仮想化仮想マシンの中で更にHypervisorを実行できるようにすること)はXen 4.4系からサポートされていますが、 Nested Xen対応にするために仮想マシン構成ファイルに最低限必要とされる以下の2行はなくてもESXi 6.0のインストール自体は可能(但しその動作については問題あり)
|
[変更前] vif=[ 'mac=00:16:3e:1e:73:af,bridge=br0,model=e1000,type=netfront', ] [変更後] vif=[ 'mac=00:16:3e:1e:73:af,bridge=br0,model=e1000', ] |
[変更前] xm create /etc/xen/vm/xenesxi6test boot=c ※仮想ディスクからのブート |
hap=1 nestedhvm=1 |
cpuid = ['0:eax=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,...,edx=00000000000000000000000000000000'] |
Hypervisor launch failed; Processor does not support the minimum features required to run the hypervisor (MSR index 0x481, allowed bits 0x3FFFFFFFE1, required bits 0x1F00000016). |
cpuid = ['0:eax=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,...,edx=00000000000000000000000000000000'] |
vhv.enable = "TRUE" featMask.vm.hv.capable = "Min:1" |
|
・Virtual Ethernet Card 0 DHCPで設定済み |
/usr/lib/xen/bin/qemu-dm -d 1 -serial pty -domain-name pvsles11 -videoram 4 -k ja -vnc 127.0.0.1:0 -vncunused -M xenpv |
vi /etc/libvirt/libvirtd.conf #listen_tcp=1のアンコメント(#削除) #tcp_port="1659"のアンコメント #auth_tcp="sasl"のアンコメント vi /etc/libvirt/qemu.conf #vnc_sasl=1は変更なし。 #vnc_listen="0.0.0.0"のアンコメント #vnc_password="パスワード"のアンコメントおよびパスワード指定 #auth_tcp="sasl"のアンコメント |
saslpasswd2 -a libvirt root Password: ******** Again (for verification): ******** |
rclibvirtd restart |
sudo apt-get update sudo apt-get install virt-manager sudo apt-get install xen-utils-common ※必須ではありませんがxmコマンドが含まれています |
zypper install virt-manager ※前提となるlibvirt関連パッケージも自動インストールされます |
libvirtに接続できませんでした。 以下を確認してください: - Xenホストカーネルが起動していること - Xenサービスが開始されていること ※つまりはDomain0として起動されていることが必要ということです。 |