TOP  >  なーお'nぶろぐ  >  なーお  >  PC,Linux,仮想化  >  [仮想PC] KVM+QEMU on UbuntuでAMD-V

なーお さんの日記

 
2008
12月 20
(土)
19:27
[仮想PC] KVM+QEMU on UbuntuでAMD-V
本文

仮想PC、今度は「KVM」+「QEMU」にトライ中です。 もうほとんどビョーキですね。

しかし、かなりサクサク動く印象です。
KVM(Kernerl-Based-VirtualMachine)って、まだQEMUだから遅いんじゃないの? と思って敬遠していたのですが、 折角AMD-V対応のCPUを使っていることだし、物は試しでインストールしてみました。
55.jpg

参考

まだネットワークは繋がっていません。

感触としては、かなり速いです。
Xenには完全に敗北で断念でしたが、コイツは行けます!

追記

その後、ネットワークブリッジ接続について いろいろググッて下記のサイトを参考にしてやってみましたが ブリッジデバイス「br0」を作成して、libvirtでゲストOSに割り当てできるようになるものの、ゲストOS側からの通信がうまくいきませんでした。

きっとどこかで間違ったのだろう・・またそのうちトライすることにして今回はここまで。

56.jpg

参考

閲覧(37381)

コメント一覧

投稿ツリー


naao  投稿日時 2008/12/21 15:49 | 最終変更

ようやく、ブリッジ接続ができた。

原因は、ホストOS側のファイヤーウオールと、VMware-serverのブリッジが有効になったままだったからでした。

ホスト側のファイヤーウオールは、VMware-serverの時は全く意識せずに行けたので、気にしていませんでした。 :-P

少し触ってみた感じでは、ネットワーク速度も十分に速そうです。

時間があるときに、WEBサーバー環境を作って色々試してみます。 その前に、VMwareからのインポートツールで使えそうなものがあればやってみたい。。

naao  投稿日時 2008/12/22 7:09 | 最終変更

現行のVMware-server上の仮想OSブートティスクをRawDiskに変換して、KVM+QEMUで起動することだできた!

まずは、前日分に遡ってのメモから。

2 kvmの有効化

2-1 kvmモジュールをロード

$ sudo modprobe kvm
$ sudo modprobe kvm_amd

2-2 /etc/modulesの編集

起動時にkvmを自動的に読み込むようにするため,/etc/modulesに

kvm
kvm_amd

という2行を追記。

2-3 確認

$ lsmod | grep kvm
kvm_amd   22156 0
kvm       64944 1 kvm_amd

3 ネットワークのブリッジ接続

3-1 /etc/kvm/kvm-ifupの編集

NICの2枚挿しに対応するための編集。
4行目で、「br0」の生書きに変更しないと、うまくリンクされない。

1
2
3
4
5
#!/bin/sh
 
/sbin/ifconfig $1 0.0.0.0 up
/usr/sbin/brctl addif br0 $1
exit 0

3-2 /etc/network/interfacesの編集

ブリッジ接続するほうのNIC「eth3」は記述を完全消去。 それまで使っていた固定IPをbr0に振る。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
auto lo eth4
iface lo inet loopback
 
iface eth4 inet static
	address 192.168.1.26
	netmask 255.255.255.0
	broadcast 192.168.1.255
	network 192.168.1.0
 
auto br0
iface br0 inet static
	address 192.168.0.26
	netmask 255.255.255.0
	broadcast 192.168.0.255
	network 192.168.0.0
	bridge_ports eth3
	bridge_stp off
	bridge_maxwait 5
	gateway 192.168.0.1
	up ip route add 192.168.0.0/24 via 192.168.0.26
	up ip route add 192.168.0.0/24 dev br0

4 .vmdk >> .img DISK変換

実運用中のVMware-server2の仮想DISKイメージから、KVMで実行できるRAW?DISKイメージに変換する。 以下を、変換するDISK毎に実行。

4-1 VMDKの結合

最大2GBまでに分割された複数DISKを結合するVMwareコマンド。

sudo vmware-vdiskmanager -r /Virtual/test/root.vmdk -t 0 /Virtual/root-con.vmdk

4-2 VMDk >> RAW DISK

sudo qemu-img convert root-con.vmdk root.img

5 起動コマンド

5-1 実行権限を振る

sudo adduser user kvm
sudo adduser user libvirt ##virt-managerを使う場合

5-2 起動!

元々、/homeディレクトリを分離させているので、 「root.img」「home.img」の2つのディスクを指定する必要がある。

  • ゲストOSのCPUを1コアで起動の場合
    sudo kvm -m 1024 -hda root.img -hdb home.img -boot c -net nic -net tap,script=/etc/kvm/kvm-ifup -daemonize -localtime
  • ゲストOSのCPUを2コアで起動の場合
    sudo kvm -m 1024 -smp 2 -hda root.img -hdb home.img -boot c -net nic -net tap,script=/etc/kvm/kvm-ifup -daemonize -localtime
    • 2コアのCPUに対して1コア設定だと、実際に消費されるホストOSのCPUパワーも1コア分だけみたい。よって2コア設定(-smp 2)を推奨。(ホストOSのシステムモニタで確認済み) 
       このあたりの挙動は、1コア設定でもホスト2コアをフルに使ってくれたVMware-serverの場合と異なるので、要注意。 (2コア設定にしたら却って遅くなったりしていた。)

なお、初回起動時にDISKのデバイス名違いで途中で止まった場合は、そこでルートログインし、「/etc/fstab」内を編集する。 例えば、「/dev/sda」>>「/dev/hda」など。

6 速度比較

期待した速度ですが、http上のXoopsCubeLegacyの動作速度は、稼動中のVMware-server2と同等ですし、仮想OS内のファイルコピーでも、有意な差は認められません。

  • 方法
     最大500MBバイト、最小11MBほどのgzファイルを計7つ、合計750MBほどのファイルを、SSHログインで一度にコピー。開始?完了の間の時間を計測。
  • マシンA:(CPU)AMD AthronX2-3800+(65W)(2GHz)
     仮想OSの割り当てメモリ:2GB
    マシン実行時間
    ホストOS(ubuntu8.10)1回目34秒
    ホストOS(ubuntu8.10)2回目20秒
    KVM(Vine4.2)1回目55秒
    KVM(Vine4.2)2回目6秒
  • マシンB:(CPU)AMD AthronX2-4850e(45W)(2.5GHz)
     仮想OSの割り当てメモリ:1GB
    マシン実行時間
    ホストOS(ubuntu8.10)2回目15秒
    VMware-server2(Vine4.2)1回目45秒
    VMware-server2(Vine4.2)2回目26秒
     (実運用中のホストOS側ファイルを元に使ったので、1回目は計測できず。)

マシンAのほうがCPU速度が遅いのですが、その割りにKVMの速度低下の割合は小さいですね。 キャッシュが効く2回目はとても速いですし。  ただ、すぐに乗り換えるほどでは無いという気もします。



新しくコメントをつける

題名
ゲスト名
投稿本文
より詳細なコメント入力フォームへ