CentOSにKVMを入れてみる

2014/05/18ちょこっと追記
カーネル再構築 CentOSという検索で来ている人がいらっしゃったら

こちらにどうぞ
Linuxのカーネルの再構築をやってみた

GW1日目、なんとなくKVMをちょっち触ってみることみることにしました。

KVMとは、Kernel-based Virtual Machine、すなわち、カーネルベースの仮想マシーンなのだ!ようするに仮想環境が作れるのだね。Linuxカーネル 2.6.20 以降に標準搭載されているのでmodprobeでロードすれば使えるというもの。

というところから物語は始まる。

最近の検証は全部VirtualBoxを使ってたのですがVirtualBoxだとVTXが有効にならないみたい。プロセッサの設定項目にはVT-xの欄があってちゃんとチェックマークも入れてますが。

kvm1

チェックは付いてるのだけど。

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っと。

kvm2

こんな感じで見た目は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を開けよう。

kvm3

キター(´ω`)

とりあえずyum updateも終わってってとこで、ネットワークをどないして繋ごうか~。

kvm4

どっからか割り振られた感じ、とりあえず今回はここまでだー。

とりあえずKVMのインストール、ゲストOSのインストールはできたけど、ホスティング会社のVPSはこのゲストOSのインストールをクライアントでできるシステムなのだ。

と考えると、全く未知の世界なのである。一寸先は闇だ。

参考サイト

さくらインターネット研究所 KVMを使う(インストール編)

CentOS6.0、windows、その他忘備録

 OSSでLinuxサーバ構築

Related Posts


投稿者: Takeken

インターネット利用者のITリテラシーを向上したいという設定の2次元キャラです。 サーバー弄りからプログラミングまで手を付けた自称エッセイストなたけけんの物語。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です