試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

QEMU/KVM(AMD-V)の動作報告(Linux 2.6.23 + KVM 49)

久しぶりにQEMU/KVMが動作した。

の組み合わせで動作している。

  1. ネットワークの不具合について
  2. 最近のバージョンについて

ネットワークの不具合について

起動時に固まることなく動作はしているのだが、試しにDebianをインストールしようとしたところ、ネットワークの調子が悪くてうまくいかなかった。
(2007/11/3)sidベースのデイリービルドから、安定版のetchまで試したが、結局ダメだった。
(2007/11/8)バージョン51で試したところ、多少改善された気もするが、ネットワーク接続が切れる(pingも通らなくなる)ことは起こった。Ctrl+Alt+2で「sendkey ctrl-alt-f2」して、Ctrl+Alt+1で戻り、別の仮想端末からifconfigrouteコマンドでネットワークを手動再設定したところ、復活した(「sendkey ctrl-alt-f1」で戻ると、ダウンロードが再開されているのが分かった)。これで何とかインストールが完了。入れたのはx86_64版のDebian lenny。
(2007/11/17)上のDebianは、インストール後もネットワークの調子が悪い。今度、バージョン51にx86_64版Fedora 8(DVDイメージのダイジェストは確認済)を入れようとしたのだが、途中で突然ランダムに固まることが多く、インストールが最後まで行かない。メモリを320M割り当てた上でテキストモードで試したのでメモリ不足という可能性は低く、KVMのほうが安定していない疑いが強い。
(2007/11/20)バージョン53で、ようやくFedora8をインストールできたが、ネットワークの調子は悪い。

TUN/TAPを使用して、ゲストのネットワークは手動で設定し、ミラーサーバのテストも通ったのだが、パッケージのダウンロードまで行ったところで、いつまで経ってもデータが来ない*1ため、一度やり直して、ネットワーク設定が済んだ直後にホストからpingすると

$ ping [ゲストのIPアドレス]
PING [ゲストのIPアドレス] ([ゲストのIPアドレス]) 56(84) bytes of data.
64 bytes from [ゲストのIPアドレス]: icmp_seq=1 ttl=64 time=2.88 ms
64 bytes from [ゲストのIPアドレス]: icmp_seq=2 ttl=64 time=0.674 ms
64 bytes from [ゲストのIPアドレス]: icmp_seq=3 ttl=64 time=3189 ms
64 bytes from [ゲストのIPアドレス]: icmp_seq=4 ttl=64 time=2191 ms
64 bytes from [ゲストのIPアドレス]: icmp_seq=5 ttl=64 time=1193 ms
64 bytes from [ゲストのIPアドレス]: icmp_seq=6 ttl=64 time=195 ms
64 bytes from [ゲストのIPアドレス]: icmp_seq=7 ttl=64 time=0.704 ms
From [ホストのIPアドレス] icmp_seq=38 Destination Host Unreachable
From [ホストのIPアドレス] icmp_seq=39 Destination Host Unreachable
From [ホストのIPアドレス] icmp_seq=40 Destination Host Unreachable
(以下同様)

突然通らなくなってしまう(起動し直して何度試しても同様)。pingを実行した後、ゲストOS上の操作は一切していない。また、VirtualBox(ホストインターフェースで同様にTUN/TAPを使用)にDebianをインストールしてpingすると100%返ってくるため、カーネルやTUN/TAP関連ツールの問題ではなさそう。

GCCは、3.4.6*2と4.1.2*3を試してみたが、どちらも同じ。なお、KVMを使用する上では、GCCの4系を使用してもOKらしい。

今回は結局、サーバからパッケージが取ってこられないため、インストールを断念することに。

最近のバージョンについて

過去に「Linux 2.6.22 + KVM 33」の組み合わせで、ほぼ問題なく動作しているQEMU/KVMを拝むことができたのだが、それ以降のバージョンでは、起動させるとQEMUがCPUを100%使用するだけでkillも(-KILLを付けても)できないという状態で、バージョン48でも同様の結果となっていた。
Linux 2.6.23に上げた後は、それに加えて、バージョン33ですらカーネルを固まらせる*1ようになってしまい、動作するバージョンが無くなってしまっていた。
カーネルに含まれるKVMモジュールを使用してconfigureスクリプト--with-patched-kernelを付けると、ほとんどのバージョンでビルドエラーとなった。
(Linux 2.6.23内蔵のKVMを使用して)ビルドエラーにならなかったのは、バージョン47。ところが、これを起動した瞬間にまたしても完全にフリーズという結果に。

*1:KVMを有効にしてQEMUを起動した瞬間、画面上の表示やディスクアクセス、音などが完全に止まり、一切の操作を受け付けない状態になる