↑日記で日々積み重ねた情報をトップの「わんこのページ」にまとめています。

おのたく日記 [RDF] YouTubeも始めました→


2008-04-15(Tue) KVM(Kernel Based Virtual Machine)を使ってみる [長年日記]

[Debian]KVM(Kernel Based Virtual Machine)を使ってみる

KVMっていったら携帯向けのJava VMとか思っていたので、「Linux Kernel Watch > 2月版 仮想化技術「KVM」の高速化パッチ登場!」とか読んでもピンと来ないでいた。

実は Kernel Based Virutal Machineの事でLinux Kernelに組み込まれていてIntel VTの機能などを利用した、VMwareやXenと同様な仮想化エンジンだと知ったので、早速使ってみた。

基本動作

参考: Debian で KVM(Kernel Based Virtual Machine)を使う

0準備

システムの起動時に、モジュールを読み込むように、/etc/modules にkvm-intel(amd のひとは、kvm-amd)を追記。

※おうちではVMware ServerもIntel VTを使っていて喧嘩してしまい、kvm-intelモジュールを使うときにはVMwareのGuestOSは起動できない。起動するとHungする(;_;) ので、必要な時に # /etc/init.d/vmware stop;modprobe kvm-intelするようにしている。

kvm を一般ユーザでも使えるようにするために、# adduser USERNAME kvm

1:cdrom ドライブに入ったライブCD/DVDを起動する

$ kvm -m 512 -cdrom /dev/cdrom -boot d -localtime

※KNOPPIX 5.1.1はkernelブートすると真っ黒画面になってしまい動かなかったけど、KNOPPIX 3.8.1は動いた。

2:インストール用 CDイメージ(.iso)からインストールを始める

$ qemu-img create -f qcow test.img 16G

$ kvm -m 1024 -smp 1 -boot d -cdrom /dev/cdrom1 -hda test.img -usb -soundhw es1370

3:インストール済みのイメージファイルからOSを起動する

$ kvm -m 1024 -hda test.img -usb -soundhw es1370

VistaをKVMにインストールしてみた

$ qemu-img create -f qcow VistaBasic.img 16G

$ kvm -m 1024 -smp 1 -boot d -cdrom /dev/cdrom1 -hda VistaBasic.img -k ja -localtime -usb -soundhw es1370

でインストールして通常使うには

$ kvm -m 1024 -smp 1 -hda VistaBasic.img -k ja -localtime -usb -soundhw es1370 -monitor pty

としている。通常起動時に「-vnc 127.0.0.1:2」をつけるとコンソールなしで良いかと思ったけど、vncviewでカーソルが二つ出る現象が発生して使いものにならなかった。

KVM上のVistaでIPアドレスが取ってこれない

Kinoppixでは、QEMU/KVM内臓のHDCPからIPアドレスを取得できるのだけど、

IP: 10.0.0.15

NETMASK: 255.255.255.0

Default Route: 10.0.2.2

DNS Server: 10.0.2.2

Windows Vistaだと、いつのまにかIPアドレスが取得できなくなっている。

色々悩んだけど、DHCPは諦めてスタティックでIPアドレスを指定すればネットワークが使えるようになった。

Vistaにavast! AntivirusをインストールしてからDHCPで取れなくなったような気もするけど気のせいか…

kvmコマンドでの-netオプションのdefault

/etc/kvm/utils/kvmあたりを見ると -net nic,macaddr=RAND,model=rtl8139 -net tap,script=/etc/kvm/qemu-ifup

と読める。しかし/etc/kvm/qemu-ifupなんてないし…

$ screen /dev/pts/1

(qemu) info network

VLAN 0 devices:

user redirector

rtl8139 pci macaddr=52:54:00:12:34:56

ということなので、 -net nic,macaddr=52:54:00:12:34:56,model=rtl8139 -net user となっているのかなぁ。

KVMでのサスペンドとリジューム

$ screen /dev/pts/1

(qemu) savevm

Device ide0-hd0 does not support VM state snapshots

うーむ、ロードは -loadvmで行くかと思ったけど、良く考えればIntel VTではステートとれないよな…

サスペンドとリジュームが出来ないのは辛いな。

virt-managerを使ってみる

virt-managerで新規にGuestを作ろうとすると、Wizardが途中で進まなくなり出来なかった。virt-installでトライするけど、KVM向きの設定XMLファイルが出来ない。

結局、サウンドカードは設定できないけど何となくできた設定XMLファイル

<domain type='qemu'>

<name>VistaBasic</name>

<uuid>04042a35-0ee2-36ed-2789-4ce70165bce5</uuid>

<memory>1048576</memory>

<currentMemory>1048576</currentMemory>

<vcpu>1</vcpu>

<os>

<type arch='x86_64' machine='pc'>hvm</type>

<boot dev='hd'/>

</os>

<features>

<acpi/>

</features>

<clock offset='localtime'/>

<on_poweroff>destroy</on_poweroff>

<on_reboot>restart</on_reboot>

<on_crash>destroy</on_crash>

<devices>

<emulator>/usr/bin/kvm</emulator>

<disk type='file' device='disk'>

<source file='/mnt/sdb4/KVM/VistaBasic.img'/>

<target dev='hda'/>

</disk>

<interface type='user'>

<mac address='00:16:3e:34:54:67'/>

</interface>

<input type='mouse' bus='ps2'/>

<graphics type='vnc' port='-1' listen='127.0.0.1'/>

</devices>

</domain>

をvirshで読みこませることにした。

$ virsh -c qemu:///system

Welcome to virsh, the virtualization interactive terminal.

Type: 'help' for help with commands

'quit' to quit

virsh # define VistaBasic.xml

Domain VistaBasic defined from VistaBasic.xml

virsh # start VistaBasic

Domain VistaBasic started

何となく動いている…

画像の説明


コンソールは開けるけど、メニューがイネーブルになっていて仮想マシンのstart/shutdownはvirt-managerから出来ない。

KVMを使ってみて

VMware Serverより動作は早いみたいだけど、機能不足なのでまだKVMに乗り換えるのは早いかな〜

本日のPingbacks(全0件)

Google Web検索 on-o.com内を検索