GentooにKVMとvirt-managerを導入

2012–07–27

img:http://www.amazon.co.jp/gp/product/4774151432/ref%3Das_li_ss_il?ie%3DUTF8&camp%3D247&creative%3D7399&creativeASIN%3D4774151432&linkCode%3Das2&tag%3Dgentooside-22][http://ws.assoc-amazon.jp/widgets/q?_encoding=UTF8&ASIN=4774151432&Format=_SL110_&ID=AsinImage&MarketPlace=JP&ServiceVersion=20070822&WS=1&tag=gentooside-22]]

今読んでる「プロのための Linuxシステム・10年効く技術」でkvmを入れて試す箇所があったので、kvmを入れて見た。 もちろんホストOSはGentooです。 ほとんどの内容はGentoo Wikiに書いて有りますが、USEフラグの設定など、書かれていない内容で若干はまりました。

まずはCPUが仮想化に対応しているか確認。

 $ grep svm /proc/cpuinfo
 flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush
 mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_
 good nopl nonstop_tsc extd_apicid pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legac
 y abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt npt lbrv svm_lock nrip_save
 flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush
 mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_	  

kernelの再構築。

 │ │    --- Virtualization                                               │ │
 │ │    <M>   Kernel-based Virtual Machine (KVM) support                 │ │
 │ │    < >     KVM for Intel processors support                         │ │
 │ │    <M>     KVM for AMD processors support                           │ │


 │ │        Device Drivers  --->                                         │ │
 │ │    [*] Network device support  --->                                 │ │
 │ │    <M>     Universal TUN/TAP device driver support                  │ │

 │ │    -*- Networking support  --->                                     │ │
 │ │          Networking options  --->                                   │ │
 │ │    <*> 802.1Q VLAN Support
 │ │    <M> 802.1Q VLAN Support                                          │ │

 │ │        Processor type and features  --->                            │ │
 │ │    [*] Paravirtualized guest support  --->                          │ │
 │ │    [*]   KVM paravirtualized clock                                  │ │
 │ │    [*]   KVM Guest support                                          │ │
 │ │    -*-   Enable paravirtualization code                             │ │
 │ │    [*]     Paravirtualization layer for spinlocks                   │ │
 │ │    [*] Enable KSM for page merging                                  │ │	  

kvmと自分の環境ではCPUがAMDなのでkvm_amdを追加。

 $ sudo vi /etc/conf.d/module	  

USEフラグに qemuとvirt-networkを追加してemerge

 $ sudo emerge -av qemu-kvm usbutils bridge-utils usermode-utilities iptables macchanger
 $ sudo emerge virt-manager	  

libbirtdを起動

 $ sudo /etc/init.d/libvirtd start
 $ sudo rc-update add libvirtd default	  

グループの編集

 $ sudo gpasswd -a user kvm
 $ sudo gpasswd -a qemu kvm	  

ハマったポイント

virshで下記のようなエラーが出る場合は、USEフラグにvirt-networkが設定されているか疑ってみてください。 自分の環境ではvirt-networkをUSEフラグに入れてlibvirtdをemergeすることで解消しました。

 この関数は接続ドライバーによりサポートされません: virNetworkDefineXML	  

下記のようなエラーが出る場合はグループの編集を疑ってみてください。 自分の環境ではqemuをkvmグループに入れることで解消しました。

 Could not access KVM kernel module: Permission denied
 failed to initialize KVM: Permission denied
 No accelerator found!