なーお さんの日記
仮想PC、今度は「KVM」+「QEMU」にトライ中です。 もうほとんどビョーキですね。
しかし、かなりサクサク動く印象です。
KVM(Kernerl-Based-VirtualMachine)って、まだQEMUだから遅いんじゃないの? と思って敬遠していたのですが、 折角AMD-V対応のCPUを使っていることだし、物は試しでインストールしてみました。
KVMの解説ページ
- Computerworld.jp 「KVM」――Linux標準の仮想化機能の得意領域を知る|Linuxカーネルに統合された仮想マシン環境 : 仮想化
(タイトル、長っ!)
追記
その後、ネットワークブリッジ接続について いろいろググッて下記のサイトを参考にしてやってみましたが ブリッジデバイス「br0」を作成して、libvirtでゲストOSに割り当てできるようになるものの、ゲストOS側からの通信がうまくいきませんでした。
きっとどこかで間違ったのだろう・・またそのうちトライすることにして今回はここまで。
コメント一覧
投稿ツリー
-
Re: [仮想PC] KVM+QMEU on UbuntuでAMD-V
(なーお, 2008/12/21 15:49)
-
[仮想PC] KVM+QMEU まとめ
(なーお, 2008/12/22 7:09)
ようやく、ブリッジ接続ができた。
原因は、ホストOS側のファイヤーウオールと、VMware-serverのブリッジが有効になったままだったからでした。
ホスト側のファイヤーウオールは、VMware-serverの時は全く意識せずに行けたので、気にしていませんでした。
少し触ってみた感じでは、ネットワーク速度も十分に速そうです。
時間があるときに、WEBサーバー環境を作って色々試してみます。 その前に、VMwareからのインポートツールで使えそうなものがあればやってみたい。。
現行のVMware-server上の仮想OSブートティスクをRawDiskに変換して、KVM+QEMUで起動することだできた!
まずは、前日分に遡ってのメモから。
1 パッケージのインストール
sudo apt-get install kvm qemu bridge-utils libvirt-bin virt-manager
ほかにもあったかも。。
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 |
|
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 |
|
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-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コア設定にしたら却って遅くなったりしていた。)
- 2コアのCPUに対して1コア設定だと、実際に消費されるホストOSのCPUパワーも1コア分だけみたい。よって2コア設定(-smp 2)を推奨。(ホストOSのシステムモニタで確認済み)
なお、初回起動時に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側ファイルを元に使ったので、1回目は計測できず。)マシン 実行時間 ホストOS(ubuntu8.10)2回目 15秒 VMware-server2(Vine4.2)1回目 45秒 VMware-server2(Vine4.2)2回目 26秒
マシンAのほうがCPU速度が遅いのですが、その割りにKVMの速度低下の割合は小さいですね。 キャッシュが効く2回目はとても速いですし。 ただ、すぐに乗り換えるほどでは無いという気もします。