2014/05/18ちょこっと追記
カーネル再構築 CentOSという検索で来ている人がいらっしゃったら
こちらにどうぞ
Linuxのカーネルの再構築をやってみた
GW1日目、なんとなくKVMをちょっち触ってみることみることにしました。
KVMとは、Kernel-based Virtual Machine、すなわち、カーネルベースの仮想マシーンなのだ!ようするに仮想環境が作れるのだね。Linuxカーネル 2.6.20 以降に標準搭載されているのでmodprobeでロードすれば使えるというもの。
というところから物語は始まる。
最近の検証は全部VirtualBoxを使ってたのですがVirtualBoxだとVTXが有効にならないみたい。プロセッサの設定項目にはVT-xの欄があってちゃんとチェックマークも入れてますが。
チェックは付いてるのだけど。
modprobe kvm_intel FATAL: Module kvm_intel not found.
# cat /proc/cpuinfo | grep vm flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx rdtscp lm constant_tsc up pni monitor ssse3 lahf_lm
VMXがない。もしかして元のパソコンのCPUが対応してないんじゃないの?ってことはないです、ちゃんと調べていて対応しています。
という事でおめえの出番だ、VMwareっと。
こんな感じで見た目はVirtualBoxもVMwareも設定画面上では同じ感じなんだけど、VMwareはうまく認識するようでした。
# cat /proc/cpuinfo | grep vmx
flags : fpu vme de pse tsc msr pae mce cx8 apic sep
mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx
rdtscp lm constant_tsc arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc
aperfmperf unfair_spinlock pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2
x2apic popcnt xsave avx hypervisor lahf_lm arat epb xsaveopt
pln pts dts tpr_shadow vnmi ept vpid
参考サイトでは「yum等を使って引っ張ってくると微妙に古いバージョンだったり、コンパイル時オプションがoffだったりします。」ということだけど、1回目ってことでyumで入れることにした、自分でコンパイルは後でやろう。
yum groupinstall Virtualization "Virtualization Client" "Virtualization Platform" "Virtualization Tools"
Installed: hypervkvpd.x86_64 0:0-0.9.el6 libguestfs.x86_64 1:1.16.34-2.el6 libvirt.x86_64 0:0.10.2-18.el6_4.4 libvirt-client.x86_64 0:0.10.2-18.el6_4.4 python-virtinst.noarch 0:0.600.0-15.el6 qemu-kvm.x86_64 2:0.12.1.2-2.355.0.1.el6.centos.2 virt-manager.x86_64 0:0.9.0-18.el6 virt-top.x86_64 0:1.0.4-3.15.el6 virt-viewer.x86_64 0:0.5.2-18.el6_4.2 virt-who.noarch 0:0.8-5.el6.centos
これだけのものが入りました。
# qemu-img create -f qcow2 vm00.img 10G Formatting 'vm00.img', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536
ここまでは良かったのだが、qemu-systemというのが入ってないのでさっそく詰まった。コンパイルすることに……
必要らしいものを入れておく。
yum install -y gcc kernel-devel zlib-devel pciutils-devel pciutils-libs Installed: kernel-devel.x86_64 0:2.6.32-358.6.1.el6 pciutils-devel.x86_64 0:3.1.10-2.el6 zlib-devel.x86_64 0:1.2.3-29.el6
./configure glib-2.12 required to compile QEMU
しかしエラーが出た。
# yum install glib2-devel
足りなかったらしい。
Installed: glib2-devel.x86_64 0:2.22.5-7.el
すると./configureもうまくいった。結果はこんな感じに
Install prefix /usr/local BIOS directory /usr/local/share/qemu binary directory /usr/local/bin library directory /usr/local/lib include directory /usr/local/include config directory /usr/local/etc Manual directory /usr/local/share/man ELF interp prefix /usr/gnemul/qemu-%M Source path /home/takeken/qemu-kvm-1.2.0 C compiler gcc Host C compiler gcc Objective-C compiler gcc CFLAGS -O2 -D_FORTIFY_SOURCE=2 -g QEMU_CFLAGS -fPIE -DPIE -m64 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fstack-protector-all -Wendif-labels -Wmissing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits LDFLAGS -Wl,--warn-common -Wl,-z,relro -Wl,-z,now -pie -m64 -g make make install install python python smbd /usr/sbin/smbd host CPU x86_64 host big endian no target list x86_64-softmmu tcg debug enabled no gprof enabled no sparse enabled no strip binaries yes profiler no static build no -Werror enabled no SDL support no curses support no curl support no mingw32 support no Audio drivers oss Extra audio cards ac97 es1370 sb16 hda Block whitelist Mixer emulation no VirtFS support no VNC support yes VNC TLS support no VNC SASL support yes VNC JPEG support no VNC PNG support no xen support no brlapi support no bluez support no Documentation no NPTL support yes GUEST_BASE yes PIE yes vde support no Linux AIO support no ATTR/XATTR support yes Install blobs yes KVM support yes TCG interpreter no fdt support no preadv support yes fdatasync yes madvise yes posix_madvise yes uuid support no libcap-ng support no vhost-net support yes Trace backend nop Trace output file trace-<pid> spice support no rbd support no xfsctl support no nss used no usb net redir no OpenGL support no libiscsi support no build guest agent yes seccomp support no coroutine backend ucontext
makeとmake installも無事に終わって、CentOSのイメージの用意はrikenからDLした。
# /usr/local/bin/qemu-system-x86_64 -hda vm00.img -m 1024 -monitor telnet::4444,server,nowait -vnc :0 -daemonize -cdrom /home/takeken/CentOS-6.4-i386-minimal.iso -boot d
自分もUltraVNCをインストールして繋いでみるけど、接続できない。
というのも、iptablesでフィルタリングしているからなので5900を開けよう。
キター(´ω`)
とりあえずyum updateも終わってってとこで、ネットワークをどないして繋ごうか~。
どっからか割り振られた感じ、とりあえず今回はここまでだー。
とりあえずKVMのインストール、ゲストOSのインストールはできたけど、ホスティング会社のVPSはこのゲストOSのインストールをクライアントでできるシステムなのだ。
と考えると、全く未知の世界なのである。一寸先は闇だ。
参考サイト