Ubuntu11.10にKVM環境構築#1

仮想化をやってみようということでKVMを用いて構築を行う

環境

  • Ubuntu server 11.10 64bit

インストール

$ sudo aptitude install qemu-kvm libvirt-bin virtinst

kvm

KVM。qemu-kvmというパッケージ名で提供されている

ちなみにkvmというパッケージ名にはこうかかれている

kvm - dummy transitional package from kvm to qemu-kvm

インストールするとkvm-okというコマンドが使えるようになる。これで使用の可否が判断可能

$ kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used

libvirt

libvirtは仮想マシンを管理するために必要なAPIを提供してくれるライブラリ
元々Xen向けに開発されていたもののようだが、現在では今回使用するKVMも含めVirtualBoxやVMwareでも使えるようだ。

詳しいことはこのあたりをみるといいのかもしれない

virt-install

virtinstパッケージに含まれているvirt-installコマンドは、libvirtをバックエンドにコマンドラインからゲストOSのインストールを行う
Ubuntuでは他にもubuntu-vm-builderというものもあるのだけど今回はvirt-installを使ってみる

ubuntu-vm-builderはこのへんをみるといいのかもしれない

ブリッジ設定

ホストOS上で仮想ブリッジを作成して、ゲストOSはこのブリッジネットワークに接続しようと思う
ゲストOSも同一ネットワーク内に存在できるようになるので、ゲストOSに直接アクセスできる(んだとおもう

Ubuntuでのブリッジ設定

vim sudo:/etc/network/interfaces

--- /etc/network/interfaces.static	2011-11-19 22:05:08.664892671 +0900
+++ /etc/network/interfaces	2011-11-19 23:50:53.655320655 +0900
@@ -7,11 +7,16 @@
 
 # The primary network interface
 auto eth0
-iface eth0 inet static
+iface eth0 inet manual
+
+auto br0
+iface br0 inet static
     address 192.168.0.100
     netmask 255.255.255.0
     network 192.168.0.0
     broadcast 192.168.0.255
     gateway 192.168.0.1
+    bridge_ports eth0
+    bridge_step off
 # This is an autoconfigured IPv6 interface
 iface eth0 inet6 auto

各所の説明をみるかぎりだとeth0をプロミスキャスモードにすることでうまいこといくらしい。
これも各所の設定をみるとだけど、eth0をmanualにするまたはeth0の固定IPを0.0.0.0にするといいらしい。


このあたり全く理解していないので後で調べる必要あり。# TODO

ゲストOSのインストール

libvirtの場合ゲストOSのイメージファイルは/var/lib/libvirt/images配下に置かれるようなのでここにイメージは作る。


virt-installコマンドのオプションでイメージの作成までできるので特に準備はしない。
オプションである程度のところは指定できる。


オプションについては理解しているもので必要そうなものだけ。適宜修正したりするかも
CentOS6 64bitをCPU数2,メモリ2GB,ストレージサイズ20GBでhttpからOSのファイルを取得してインストールする

$ sudo virt-install \
--connect=qemu:///system \
-n centos_x86_64 \
-r 2048 \
--disk path=/var/lib/libvirt/images/centos_x86_64.img,size=20,format=qcow2 \
--vcpus=2 \
--os-type linux \
--os-variant=virtio26 \
--network bridge=br0 \
--nographics \
--extra-args='console=tty0 console=ttyS0,115200n8' \
--location http://ftp.riken.jp/Linux/centos/6.0/os/x86_64/

今回はCentOS6_x86_64をインストールしてみている。実行するとテキストモードのインストール画面になる
この画面はゲストOS側のコンソールになっている
なお、ゲストOSからホストOSに戻るさいにはCtrl-]を叩くと戻れる

virt-installのオプション

とりあえず指定しているものとか理解したものだけメモしとく(適宜足す)

オプション 説明
--connect 接続するハイパーバイザ(KVMだとqemu:///systemがデフォルト)
-n,--name 仮想マシンの名前
-r,--ram 仮想マシンに割り当てるメモリ(MegaByte)
--vcpus 仮想マシンのCPUコア数
--location 仮想マシンのインストール元
--os-type OSのタイプ(ex. linux, windows)
--os-variant OSの種類(ディストリビューションとかバージョンとか)
--disk 仮想マシンのストレージの設定
-f,--file --disk path=の省略形
-s,--size --disk size=の省略形
--network 仮想マシンのネットワーク
--extra-args カーネルに渡すパラメータ
OS_VARIANT
## virt-install --os-variant listするとリストみれる
$ sudo virt-install --os-variant list
win7                 : Microsoft Windows 7
vista                : Microsoft Windows Vista
winxp64              : Microsoft Windows XP (x86_64)
winxp                : Microsoft Windows XP
win2k                : Microsoft Windows 2000
win2k8               : Microsoft Windows Server 2008
win2k3               : Microsoft Windows Server 2003
openbsd4             : OpenBSD 4.x
freebsd8             : FreeBSD 8.x
freebsd7             : FreeBSD 7.x
freebsd6             : FreeBSD 6.x
solaris9             : Sun Solaris 9
solaris10            : Sun Solaris 10
opensolaris          : Sun OpenSolaris
netware6             : Novell Netware 6
netware5             : Novell Netware 5
netware4             : Novell Netware 4
msdos                : MS-DOS
generic              : Generic
debiansqueeze        : Debian Squeeze
debianlenny          : Debian Lenny
debianetch           : Debian Etch
fedora16             : Fedora 16
fedora15             : Fedora 15
fedora14             : Fedora 14
fedora13             : Fedora 13
fedora12             : Fedora 12
fedora11             : Fedora 11
fedora10             : Fedora 10
fedora9              : Fedora 9
fedora8              : Fedora 8
fedora7              : Fedora 7
fedora6              : Fedora Core 6
fedora5              : Fedora Core 5
mes5.1               : Mandriva Enterprise Server 5.1 and later
mes5                 : Mandriva Enterprise Server 5.0
mandriva2010         : Mandriva Linux 2010 and later
mandriva2009         : Mandriva Linux 2009 and earlier
rhel6                : Red Hat Enterprise Linux 6
rhel5.4              : Red Hat Enterprise Linux 5.4 or later
rhel5                : Red Hat Enterprise Linux 5
rhel4                : Red Hat Enterprise Linux 4
rhel3                : Red Hat Enterprise Linux 3
rhel2.1              : Red Hat Enterprise Linux 2.1
sles11               : Suse Linux Enterprise Server 11
sles10               : Suse Linux Enterprise Server
ubuntuoneiric        : Ubuntu 11.10 (Oneiric Ocelot)
ubuntunatty          : Ubuntu 11.04 (Natty Narwhal)
ubuntumaverick       : Ubuntu 10.10 (Maverick Meerkat)
ubuntulucid          : Ubuntu 10.04 (Lucid Lynx)
ubuntukarmic         : Ubuntu 9.10 (Karmic Koala)
ubuntujaunty         : Ubuntu 9.04 (Jaunty Jackalope)
ubuntuintrepid       : Ubuntu 8.10 (Intrepid Ibex)
ubuntuhardy          : Ubuntu 8.04 LTS (Hardy Heron)
virtio26             : Generic 2.6.25 or later kernel with virtio
generic26            : Generic 2.6.x kernel
generic24            : Generic 2.4.x kernel

さて次回の放送は

ゲストOSのインストール画面まで行った。

To Be Continued