アシアルブログ

アシアルの中の人が技術と想いのたけをつづるブログです

Debian+virt-managerでKVMを扱ってみた

最近、社内の開発Xenが遅い。
常時12,13台起動しているため、そろそろ新サーバを導入してもいいんじゃないかと考えています。

新サーバもXenにしようかと考えましたが、最近RedHatKVMをメインにすると言っているので、試しにKVMで仮想化してみました。
もちろんDebianです。
squeeze(testing)を使用しています。
(以前、クライアント機でチラッと使ってみた記事を書きましたが、今回は社内での開発用途で使うために構築しています)

1・KVMとは?
Linuxカーネルを使用した仮想化システム。(切替器でも某太陽社の製品でもありません)
AMD-Vなどの仮想化支援機構を使用するためシンプル。
さらに、デバイスドライバなどはLinuxのものを使用するため、Linuxの資産をそのまま活用出来ます。

2・virt-managerとは?
RedHat社からリリースされた仮想マシン管理ツール。
OSSなため、他ディストリビューションにも移植されています。
コマンド叩かなくても、クリックだけで管理出きるため便利。


3・インストール
ホスト側には、例のごとくapt-getでインストールします。



apt-get install kvm libvert-bin bridge-utils virt-manager


※なお、今回はXサーバは入れません。手元のPCにX-forwardします。
 ローカルで使用するなら、普通に起動してください。

管理に使用するユーザを、libvertグループに追加して置くと、一般ユーザで作業出来ます。

4・起動


$ ssh 192.168.100.100 -X
$ virt-manager

接続先設定が出てきたら、localhostを選択

5・新規作成

左上のNewボタンをクリックし、後は道なりに進んでいけば完成します。簡単ですね。

また、新規に領域確保・インストールだけではなく、既存のイメージからでも作成出来ます。
Xenで動いていたDebianのイメージをコピーして、
Newクリック->名前入力->import existing disk imageを選択->コピーしたイメージを選択->後は道なり
とすれば、問題なく起動しました。
ただし、自分の場合は、OS Type, VersionをGenericにしないと、virtioのドライバが入っていない関係で起動しないようです。
(もちろん、全て新規に作成した場合は動作します)

6・リソース管理など
マシンをダブルクリック->メニューのDetailsを選択 とすれば、概要だのCPU使用率やメモリ使用率の確認、その他変更などが出来ます。

この辺は触ってみれば分かると思います。

7・使用感など

KVMWindows7をいれていますが、MSOfficeくらいしか走らせないので、リモートデスクトップで快適に使用できます。
また、ゲストの方のDebianは問題なく動いています。

今回はあくまでも実験用で余っていたPCを流用して作ってみただけなので、新開発サーバを購入した時にはいろいろと性能を調査しようと考えています。
その時はまたブログに書くかもしれません。

この構成だと、本番サーバとしては不安が残るかもしれませんが、個人用開発用途程度なら実用的かと思います。

kvmでwindows7を入れてみました

kvmwindows7を入れてみました

仮想化といえば、VMWareXenが有名ですが、
今回は割と新しいkvmを使用したいと思います。

kvmと言っても切替器ではなく、KernelbasedVirtualMachineのkvmです。

kvmとは
http://ja.wikipedia.org/wiki/Kernel-based_Virtual_Machine

要は、軽量でシンプルな仮想化システムです。
kvm自身では何もできないので、フロントエンドとしてqemuを使用します。

ぐだぐだ書いてもおもしろくないので、百聞は一見にしかず。ぜひ試してみてください。

0・前提条件
カーネルは2.6.20以降が必要
AMD-V、IntelVTなどの仮想化機構が必要
・~/vm/ にvmのディスクイメージを入れます
・~/win7.iso がwindows7のDVDイメージです

1・kvmのインストール
kvmqemu-utilsをインストールします。
Debian系使っていることを前提とすれば、


$ sudo apt-get install kvm qemu-utils

以上。簡単ですね。

2・ディスクイメージの作成
これはqemu-utilsのqemu-imgを使用して以下コマンドで作成します。


## qcow2で ~/vm/win7.img に 30GBで作成
$ qemu-img create -f qcow2 ~/vm/win7.img 30G


または、ddであらかじめスペースを確保する方法もあります。
(最初から領域を確保するので、若干ディスクアクセスが早くなるかもしれません)


$ dd if=/dev/zero of=~/vm/win7.img bs=1024 count=$((20 * 1024 * 1024))


3・起動
windowsをインストールします


$ sudo kvm -hda ~/vm/win7.img -cdrom ~/win7.iso -boot d -m 1024 -monitor stdio

この一行で仮想マシンが起動します。
(後はwindowsのインストールを道なりに進むだけですので割愛します)

4・その他
・ネットワーク
起動オプションにの-redirでホストの任意のポートにゲストの任意のポートをマッピング出来るので、
例えば以下のようにして起動すると、rdesktopで接続出来ます。


$ sudo kvm -hda ~/vm/win7.img -m 1024 -monitor stdio -redir tcp:3389::3389


・USBデバイス
VMPlayerのようにワンクリックでとはいきませんが、コンソールで以下のようにすれば接続できます。


# -usbオプションをつけてkvmを起動
# ホストのデバイスを確認
(qemu) info usbhost
【省略】
    Class 00: USB device 04fe:000d, HHKB Professional JP
  Device 1.5, speed 1.5	Mb/s
    Class 00: USB device 0458:0048, Wireless Keyboard  &	Mouse
  Device 1.6, speed 480	Mb/s  	      	      	      	      	<= これを追加   
    Class 00: USB device 1307:0163, Flash Disk

# usb_addで追加 
(qemu) usb_add host:1307:0163

# 仮想マシンに接続中のデバイス確認
(qemu) info usb 
  Device 0.2, Speed 480	Mb/s, Product Flash Disk

なお、/proc/bus/usb/devicesがないといわれる場合には以下を実行してマウントしておきます。


$ sudo mount -t	usbfs none /proc/bus/usb



使用感としては、思ったよりサクサク動いています。
kvmを使わないqemuの場合は実用に耐えうるスピードではありませんでしたが、kvmを使用するとほぼネイティブと言ってもいいくらいのスピードですね。
ただし、グラフィック系はあまり速くないので、rdesktopでつないだ方が結果として快適かもしれません。
出来て間もないため、サーバー用途にはまだ不安が残りますが、テスト用マシンなどの用途には実用的かと思います。