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のインストールをクライアントでできるシステムなのだ。
と考えると、全く未知の世界なのである。一寸先は闇だ。



