以前にもKVMを使って仮想OSを作成するのはやってましたが、大きな違いがあって、今回はホストが物理サーバーなんです。ついに完成しました。Debian7.2+KVMの環境を作っています。
CPUは第3世代Core-i3の3GHzなので、いままでの仮想サーバーがホストだった状況とは根本的にもいろいろ変わってくるはず。いぁ変わってくれないと困るよ~ということでその土台作りから。
DebianについてはPreceed.cfgでインストールしたものだけど、基本的なインストールです。間違いないけどVMに対応したCPUなのかチェックします。
# grep vmx /proc/cpuinfo
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov
pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm
constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf
pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1
sse4_2 popcnt tsc_deadline_timer xsave avx lahf_lm arat epb xsaveopt pln pts
dtherm tpr_shadow vnmi flexpriority ept vpid
物理2コアの仮想4コアなので、実際はこれが4つでてました。とうぜん全部一緒です。つづいてはモジュールのチェックと、チェックしてKVMがなかったらロードします。modprobeも普段使わないからコマンドを忘れてたよ。
# lsmod | grep kvm # modprobe kvm # modprobe kvm_intel # lsmod | grep kvm kvm_intel 121968 0 kvm 287749 1 kvm_intel
必要なものをインストールします。
aptitude update aptitude install kvm libvert-bin bridge-utils virt-manager
つぎはブリッジネットワークの設定です。
vi /etc/network/interfaces # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # primary network auto eth0 iface eth0 inet manual # bridge network auto br0 iface br0 inet static address 192.168.24.+++ 物理サーバーのIPアドレス network 192.168.24.0 netmask 255.255.255.0 broadcast 192.168.24.255 gateway 192.168.24.1 bridge_ports eth0 bridge_fd 9 bridge_hello 2 bridge_maxage 12 bridge_stp off
ホストサーバーへゲストOSのインストールに使うISOイメージをダウンロードしときます。
cd /var/lib/libvirt/images wgetでrikenとかから落として置いておきましょう。
そして次ですが、おそらくDebian7 Wheezyの場合、たけけんと同じく上手く動かない人がいると思います。libvirtの設定とssh-askpassのインストールをしたら動きました。
vim /etc/libvirt/libvirtd.conf 88行目あたり unix_sock_ro_perms = “0770″ > unix_sock_ro_perms = “0777″ 98行目あたり コメントアウトも外す。 unix_sock_rw_perms = “0770″ > unix_sock_rw_perms = “0777″ 101行目当たり コメントアウト外す。 #unix_sock_dir = “/var/run/libvirt” > unix_sock_dir = “/var/run/libvirt”
あとはゲストと接続するときの認証に使う、ssh-askpassというやつを入れます。Debian Wheezyは新しいせいか情報がめちゃ少なかったのでちょっと大変だった。
$ sudo aptitude install ssh-askpass [sudo] password for takeken: 以下の新規パッケージがインストールされます: ssh-askpass 更新: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。 34.5 k バイトのアーカイブを取得する必要があります。展開後に 160 k バイトのディスク領域が新たに消費されます。 取得: 1 http://ftp.jp.debian.org/debian/ wheezy/main ssh-askpass amd64 1:1.2.4.1-9 [34.5 kB] Fetched 34.5 kB in 2秒 (15.0 kB/s) 以前に未選択のパッケージ ssh-askpass を選択しています。
これであとはゲストOSを作成する段階になりますが、コマンドだと前と同じになっちゃうので、今回はGUIを使いました。仮想マネージャを開いて、まずは接続から設定して、続いてゲストOSの作成をします。
試しにCentOSを作ろうとしたんですが、CentOSが嫌いなのか、一般的なOSの中に表示がありませんでした。初めてみたようなOSはあるのに・・・、なんて書きましたけど、Scientificもないから多分Redhatと同一ってことでしょうな。
環境はGnomeだけど、パッと見こんな感じです。インターフェースを見てわかるかもしれないですが、Windows上でVMwareを動かしているのと同じ感覚ですなあ。
なんだか分からないけど、得体のしれないガッカリ感がある。
そうだなぁ、前はコマンドラインで全部やってたからか、とっても違いを感じていたけど、GUIだとVMwareと同じ感覚なのだなぁ。逆にGUIからゲストを作っているけど、もちろんvirshコマンドでも確認はできます。
# virsh list --all Id Name State ---------------------------------------------------- 2 CentOS001 running
うーむ。今後の予定はVMをどんどん増やしていって、また前回と同じくとりあえずUnixBenchをやってみる予定です。そのあとのことはまたその時に考えよう。
参考サイト
YAMAGUCHI::weblog
10分で始めるKVM
ようへいの日々精進
Debian squeeze の KVM に仮想マシンを構築する一部始終