Mazn.net

やってみて 調べてみて 苦労しなけりゃ 箱は動かじ

KVM on KVM @ Fedora 17

      2013/07/15

最近のLinuxカーネルは、KVMのネスト (KVMのゲストOS上でKVMを動かす)ができますのでやってみました。
※古いカーネルではできないようですが、Fedora 17のカーネルは対応済みです。

デフォルトは、ネスト機能がOFFになっています。

# cat /etc/issue
Fedora release 17 (Beefy Miracle)
Kernel \r on an \m (\l)
# cat /sys/module/kvm_intel/parameters/nested
N

ホストOS(Fedora 17)の設定を変更します。/etc/modprobe.d/kvm-nested.conf ファイルを作って以下を記述。

options kvm_intel nested=1
モジュールをリロード
# modprobe -r kvm_intel
# modprobe kvm_intel
ちなみに、KVMがすでに動いていると、-r する時に以下のようなエラーが出てしまいますので注意してください。
FATAL: Module kvm_intel is in use.

有効になったことを確認します。

# cat /sys/module/kvm_intel/parameters/nested
Y
次にゲストOSの設定です。普通にvirt-managerでゲストを作ると、ゲスト内でのCPUのタイプが”QEMU Virtual CPU”となり、仮想化を使うことができません。(表示例はゲストOSにCentOS6を使用)
# cat /proc/cpuinfo | grep -e "model name" -e "vmx"
model name      : QEMU Virtual CPU version 1.0.1
よって、一端ゲストOSを停止し、CPUのタイプを変更します。Fedora 17の仮想マシンマネージャーでは、以下のように”ホストCPUのコピーの設定”というボタンがあるので、これをクリックするだけです。
virtmanager
私のホストの環境は、”Intel(R) Core(TM) i5 CPU   661  @ 3.33GHz”で、ボタンをクリックすると上記のように”Westmere”が自動的に設定されました。ちなみに、設定前と設置後のゲストOSの設定xmlファイルのdiffを見ると以下のように行が追加されていました。
     <pae/>
   </features>
+  <cpu mode='custom' match='exact'>
+    <model fallback='allow'>Westmere</model>
+    <vendor>Intel</vendor>
+    <feature policy='require' name='tm2'/>
+    <feature policy='require' name='est'/>
+    <feature policy='require' name='monitor'/>
+    <feature policy='require' name='ss'/>
+    <feature policy='require' name='vme'/>
+    <feature policy='require' name='dtes64'/>
+    <feature policy='require' name='rdtscp'/>
+    <feature policy='require' name='ht'/>
+    <feature policy='require' name='ds'/>
+    <feature policy='require' name='pbe'/>
+    <feature policy='require' name='tm'/>
+    <feature policy='require' name='pdcm'/>
+    <feature policy='require' name='vmx'/>
+    <feature policy='require' name='ds_cpl'/>
+    <feature policy='require' name='pclmuldq'/>
+    <feature policy='require' name='xtpr'/>
+    <feature policy='require' name='acpi'/>
+  </cpu>
   <clock offset='utc'/>
   <on_poweroff>destroy</on_poweroff>
では、再度ゲストOSを起動し、ゲスト内でCPUの情報を見てみます。
# cat /proc/cpuinfo | grep -e "model name" -e "vmx"
model name      : Intel(R) Core(TM)2 Duo CPU     T7700  @ 2.40GHz
flags           : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush 
mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc arch_perfmon rep_good unfair_spinlock 
pni pclmulqdq vmx ssse3 cx16 sse4_1 sse4_2 popcnt aes hypervisor lahf_lm
model name      : Intel(R) Core(TM)2 Duo CPU     T7700  @ 2.40GHz
flags           : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush 
mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc arch_perfmon rep_good unfair_spinlock 
pni pclmulqdq vmx ssse3 cx16 sse4_1 sse4_2 popcnt aes hypervisor lahf_lm
ホストとはCPUのmodelが異なりますが、仮想化を使うためのvmxビットがうまく立ちました。
ゲストOS上でのゲストOSの作成は特に特別な操作は必要ありません。

 - IT技術, サーバ構築 , ,

336px

Message

メールアドレスが公開されることはありません。

  関連記事

no image
vardiaの地上デジタルが不安定なときは@RD-S601

東芝のVardiaでは、地上デジタルの電波が強すぎて、逆に画面が不安定になること …

no image
NEC Aterm 8300N DHCPの固定割り当てIPが割り当てられない

NEC Aterm 8300N の設定でDHCPの固定割り当てを設定しても、なぜ …

no image
nForceのマザーM2NPV-VMでのRAID (NVRAID) の使用

数年前に買ったASUSのnForceのマザーボード M2NPV-VMで使っていた …

no image
ATOK 2009@Windows 7

Windows7 に ATOK 2009を入れてみた。何事もなく普通に使えました …

no image
使用中のファイルの追跡@WindowsXP

Windows上であるファイルを削除しようとすると、使用中で削除出来ないときがあ …

no image
ポート監視やwatchdogで簡易サーバ監視@CentOS 5

アカウント共有型のレンタルサーバならサーバが落ちても、管理者の方が監視してくれて …

no image
DockerHubのイメージのタグ一覧をコマンドで取得する

docker コマンドでタグを指定せずにコンテナイメージをpullすると、lat …

no image
cygwin@Windows 7 64bit

Windows 7 64bit にcygwin 1.7を入れてみました。 結果、 …

no image
ciscoコマンド覚え書き

普段あまりcisco製品触ることないので単なる覚え書き いろいろな情報を一気に取 …

no image
日本語入力 ON/OFF キー変更@Fedora 13

今までscim というインプットメソッドがメジャーだったような気がしていたのです …