07:53:10 # Life kvm について熱く語っている Ulrich。 CNETでKVMについて報道されている件で、 Ulrich が KVM の構成の利点を説明している。 Xen と VMWare は Hypervisor モデルだが、結果として Hypervisor がデバイスドライバとスケジューリングを扱う必要があり、 それが問題となっているので、 PCIバスの仮想化がハードウェア的にできるようになるまでは KVM の設計のほうが利点がある、 というもの。
09:45:41 # Life kvm のレポジトリがgitに。 kvm-14がリリースされて、レポジトリがsvnからgitになったみたいですね。 kernel.org からカーネルのツリーは clone して、こっちのツリーからは負荷を下げるために pull だけしてくださいというメールの内容だったけど、 そういう使いかたもできるのだなぁ、と納得してしまいました。
07:18:16 # Life 東京エリアDebian勉強会報告。 2月の第25回Debian勉強会を実施しました。 今回は初の小林さんが幹事の会の予定でしたが、小林さんがたおれてしまったので、代理開催です。 今回の参加人数は13人でした。 あけどさん、小室さん、岩松さん、えとーさん、上川、吉田さん@板橋、Henrichさん、前田さん、石原さん、David Smithさん、 澤田さん、キタハラさん、吉田さん(女性)でした。
(+ ;;資料コピー10人分 -2646 ;;コピーをとりにいく交通費 -420 ;;会場代 -1500 ;;勉強会費 x 10 +5000 ;;景品代金 -260 ) 174 の黒字
23:35:47 # Life Debianのgdm経由のX起動にTCPソケットをlistenさせる。 /etc/gdm/gdm.conf をみたら空っぽだったのですが、どうやら /usr/share/gdm/defaults.conf がデフォルトのようです。 そこでは、securityというセクションで、 DisallowTCP=true というオプションが設定されており、それが設定されていると TCPソケットをlisten しないようにXを起動するようです。 /etc/gdm/gdm.conf の security のセクションに DisallowTCP=falseを追記してめでたくTCPソケットをlisten するようになりました。 これに気づくまでに試行錯誤してしまったよ・・・。
18:49:34 # Life PaSoRi をかってきたので、kvm の中でうごかす。 -usb コマンドラインオプションをつけて kvm を起動すると、 kvm はホストのUSBデバイスを仮想OSに見せてくれます。 デバイス名を info usb コマンドで確認して、 デバイス名を指定して add_usb で接続させると仮想OS側で認識できます。簡単だね。 ただ、rootだけがアクセスできるように最初は設定されているので、 /proc/bus/usb のデバイスの権限について操作が必要。
09:10:20 # Life kqemuが自由に。 いままで無料で配布されていた、kqemuが自由になり、GPLv2として配布されることになったらしい。 qemuという複数のCPUをエミュレーションできるエミューレータで、kqemu は 実行中のCPUでそのまま実行できるコードをそのまま実行するための カーネル側のインタフェースを提供するもの。 kqemu があれば、プログラムが高速に実行できるようになる。 kvm が登場したことで、qemu でも仮想化機能を搭載しているCPUであれば CPUで仮想マシン内部のコードをそのまま実行できるようになっていたのだが、 それを仮想化機能を搭載していないCPUでカーネルの機能で実現していたもの。 しかし、今回の変更、ChangeLog にかいてはいるのだが、なぜそうなったのかがわからないのでちょっと不安なのは僕だけか?
22:07:34 # Life KVM の API バージョン注意。 KVMは、「KVM_API_VERSION」という定数で、バージョンを管理していて、 ユーザ空間(kvm 用に改変した qemu)とカーネル空間(Linux kernel) の間の整合性をたもっている。 最初は1だったのだが、気づいたら 2.6.20 は 2 で、 kvm の最新の開発版は 3 になっていた。 忘れててはまりそう・・・。
13:36:50 # Life kvm で loadvm を使ってみた。 簡単ですな。 Windows などを KVM 内部で利用していると、毎回Windowsの起動画面を見るのも面倒なので、起動した状態でおいておきたいな、と思いはじめます。 そこで、loadvm/savevmを利用するわけです。 まず、準備として、kvm で Windowsなりを起動して、すきな状態におきます。 ログインして必要なアプリケーションを起動した状況が一番便利でしょう。 その状況で、ctrl-alt-2でコンソールで切替え、 'stop'(仮想マシンの停止), 'savevm 状態ファイル名'(仮想マシンの状態の保存), 'quit'(終了) とします。 一度これをやってしまうと、ディスクの中身さえかわっていなければ何度でもこの状態から起動できるようになります。 ディスクの中身を変えないためには毎回 COW デバイスを作りなおせばよいですよね。 qemu-img create の -b オプションでベースイメージを指定してあげれば、 そのイメージとの差分を新しいファイルに書き込むような COW デバイスを作成できます。 毎回このファイルをつくっては捨てればよいわけです。そうして、作成したCOWデバイスと保存した VM ファイルを利用すれば 10秒くらいで使える状態でVMが起動するようになりました。よかったよかった。
[作成時の手順] kvm ... -hda winxp.img で起動 コンソールで stop savevm winxp.state(状態ファイル名) quit [起動時の手順] qemu-img create -b winxp.img winxp.img-work kvm. ... -loadvm winxp.state -hda winxp.img-work
08:11:20 # Life 前田さんの御指摘で、手順修正。 kvm のパッケージが 11-1 ちゃんと kvm グループを作成してくれて、 udev の設定が kvm グループからアクセスできるデバイスファイルを作成してくれるので、 Debian勉強会の資料を改訂しました。
$Id: 200702.html.ja,v 1.14 2007/02/27 22:55:46 dancer Exp $