Linux-KVMをVMware Fusionで動かそう!あとFreeBSD BHyVe……!
皆さん仮想化してますか?
仮想化を膝に受けると、VMM(仮想計算機モニタ)の動作検証用に次々と実機が生えてきて大変だそうです。
「仮想環境やってんのに、実機増えてどうすんねーん!」ってお思いの方、多いと思います。今回は、Mac OSX向けの仮想化ソリューションであるVMWare Fusionの上でLinuxを動作させ、Linux-KVMが扱えるようにします。
VMware Fusionの上でKVMしようぜ!
VMMの上でVMMを動かす……それを人はnested vmm*1と呼ぶ……。今回はVMware Fusionの上でKVMを動かします。
今回の検証環境は以下の通り:
- Host OS: Mac OSX Lion(with Early 2011 Mac Book Pro)
- VMM: VMware Fusion 4.11
- Guest OS: Debian 6.0(64bit)
やること。
たった一行、VMware Fusionの仮想マシン定義ファイル「vmxファイル」に書き加えるだけです。仮想マシン定義ファイルは、デフォルトだと以下のディレクトリに入っています。USER_NAMEとMACHINE_NAMEの部分は適宜読み替えて下さい:
mac$ cd /Users/USER_NAME/Documents/Virtual Machines.localized mac$ ls MACHINE_NAME.vmwarevm mac$vim MACHINE_NAME.vmwarevm/MACHINE_NAME.vmx
vmxファイルを開いたら、以下の一行を追記します:
vhv.enable = TRUE
確認。
きちんと設定できているか確認します。以下は、設定前と後のcpuinfoの結果です:
- 設定前
$ cat /proc/cpuinfo | grep flags
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 popcnt aes xsave avx hypervisor lahf_lm ida arat epb xsaveopt pln pts dts
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 popcnt aes xsave avx hypervisor lahf_lm ida arat epb xsaveopt pln pts dts
- 設定後
$ cat /proc/cpuinfo | grep flags
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq vmx ssse3 cx16 sse4_1 sse4_2 popcnt aes xsave avx hypervisor lahf_lm ida arat epb xsaveopt pln pts dts tpr_shadow vnmi ept vpid
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq vmx ssse3 cx16 sse4_1 sse4_2 popcnt aes xsave avx hypervisor lahf_lm ida arat epb xsaveopt pln pts dts tpr_shadow vnmi ept vpid
Intel VTの証、vmxが見えています。
もしかして:貴方のマシンはSandyBridge搭載のMac? BHyVeしよう!
Sandy Bridge搭載以降のMac*2ですと、嬉しいサプライズがあります。それは、今最もアツい生まれたてのType II VMM「FreeBSD BHyVe」を試せるということです。
FreeBSD BHyVeは、Intel VTとEPTが必要ですが、Early 2011以降のMacですと、喜ぶべきことにこれが搭載されているのです!先のcpuinfoの結果を見比べてみて頂いても分かる通り、vmxの他にeptという文字列がひょっこり現れているではありませんか。これは活用スル他ありませんね!
最後にーその他のNested VMM
Nested VMMは、その他VMware社製品でも動くようです。WindowsやらLinuxやら使っているひと、是非試してみて下さい。
また、kvm上でkvmを動かすことも可能なようです(Linux Kernel 3.2以降)。
参考資料
ハードウェア仮想化支援
- 軽快なPlan9(スライド)
- 軽快なPlan9(冊子)
- Linux KVMのコードを追いかけてみよう!
- Intel VTの役割、ハードウェア仮想化支援の仕組みについての解説
- VMware ESXにおけるメモリ管理(3) - メモリに関する仮想化支援機能(Intel EPT/VPID, AMD RVI/Tagged TLB) ー Simple is Beautiful
- Intel EPTについての分かりやすい解説
BHyVe
- BHyVeってなんや
- BSD Hypervisor ー FreeBSD wiki
- BHyVeの導入方など
- BHyVeコミットコメント
- VMWare Fusion,VMWare Workstation/VMware Player4で動くようになったことが報告されている
お知らせ
カーネルVM探検隊第七回が開催されます。
- 日時: 04/22 (日)13:00〜04/22 (日)22:00
- 場所: 神保町三井ビル 17F 株式会社インターネットイニシアティブ(IIJ) 大会議室
- 費用: 懇親会費込み\3,500+ATND手数料