概要
スペイン・バルセロナにて、「LinuxCon Europe 2012」との併設で「KVM Forum/oVirt Workshop 2012」が開催されました。
バルセロナは時期的に日本より暖かく過ごしやすく、食事もパエリアなどおいしい物ばかりでした。
KVM Forumは、年々と参加者が増えており、議論も活発に行われています。数百人の参加者のうち日本からの参加は10名程でした。
1日目(11月7日)
For Performance and Latency, Not for Fun – Jan Kiszka, Siemens
qemu threading に関して議論を行った。
qemu が big lock (QBL) を使用してることにより起因する scalability および latency の問題に対処していくためである。 fine grained lock と user RCU を導入していく事になるのであるが、locking protocol の問題が残る。qemu の対応している device は数多く、performance critical でない物については QBL が残るだろうとした。
理論上、device が相互に dma しあう場合が考えられる。その場合、dead lock を避けるのが難しい。実用上そのようなケースはないと考えられるので、当面はその様なケースは対応しない事で対処していきたい。
最後に Jan の試作した cut-through case でのベンチマークが示された。
KVM Scalability: Preparing for big SMP VMs – Andrew Theurer, IBM
Big SMP VMs での評価結果が示された。
vcpu数=80 で非常に大きな guest での評価結果を行っていた。
AutoNUMA, SchedNUMA の比較結果も示された。
Lock Holder Preemption (LHP) が問題になる。しかし pv spin lock でも問題が残る。
一方、Gang Scheduling は Linuxに取り込まれる可能性は低いため、LHP が起きた場合、
すべての vcpu を yeild させ、次の実行時に vcpu を同時に実行開始させる方法で gang scheduling に近い性能がでるとの実行結果を示した。
Integrated Testing in QEMU – An Overview of qtest and qemu-test
– Anthony Liguori, IBM
開発者が使用できる様な unit test を提案し、test の書き方と使用方法が紹介された。
patch の半分は既に merge されており、Release 1.3.0 に含まれる。残り半分は、Release 1.4 になるとのこと。
Live Migration: Even faster, Now With a Dedicated Thread!
– Juan Quintela, Orit Wasserman (Red Hat), Chegu Vinod (HP)
RedHat の二人と、HP の一人での共同発表である。
大きなメモリを持つ guest を live migration する時の問題に関して議論をし、改善と評価結果を示した。基本的には、現在の qemu live migration の code がいかに駄目かについて語る事となった。
- 必要以上に memory copy を行っている bitmap の管理が悪く、無駄な memory を使っている。
- bitmap の copy が多すぎる。
- latency の計算をしても、bitmap 処理が大きく、downtime が長くなっている。
などの事が議論された。Chegu は、big iron machine でのベンチマーク結果を示した。
Yabusame Update on Postcopy Live Migration for QEMU/KVM
– Isaku Yamahata, VA Linux Systems Japan K.K.
Qemu/KVM 対応ポストコピー型ライブマイグレーション技術である『Yabusame』についての性能評価と分析結果を発表した。 発表資料は、PDF(186KB)を参照ください。
A New Chipset for Qemu – Intel’s Q35 – Jason Baron, Red Hat
qemu PC emulator として、Q35 チップセットの対応を upstream merge していく事に関して議論がされた。
patch は以前からあったが、merge されていなかった。今回は Release 1.3 に experimental として merge されそうである。
ゲストとしてWindows や FreeBSD での動作確認を行っており、そうとう頑張ってる様だ。
特に、Windows での動作のための debug には 2ヶ月かかったそうで、お疲れ様である。
2日目(11月8日)
Keynote – Anthony Liguori, IBM
今年は QEMU summit を行った。
今回は招待者のみでの開催だが、来年以降はオープンにして、summitを継続していきたい。minutes については、etherpad に公開しているので見てほしい。
Virtio & Networking Status and Challenges
– Michael S. Tsirkin, Red Hat
virtio と networking に関する状況報告である。virtio は、OASIS で標準化を進めていく事になった。zerocopy TX や multi queue 対応などが実装されている。
今後の作業としては、同一 machine 内の通信での zerocpoy, zerocopy RX や scalability, NUMA 対応を挙げた。
KVM Memory Management Update & Plans – Rik van Riel, Red Hat
KVMに関連する memory 管理まわりのトピックまとめである。
EPT A&D bit, 1GB huge page, baloon driver が紹介された。これらは、upstreamで対応済である。
AutoNUMA と SchedNUMA について議論した。これまで merge されていなかったが、Mel Gorman が新たな patch を投稿したことにより、merge に向け進みそうである。
Anton Vorontsov, Pekka Enberg による vmevent も紹介された。
Revamping the QEMU Memory API – Avi Kivity, Red Hat
QEMU 内部 API である memory API について議論された。
Partial Device Port Acceleration – Alexander Graf, SUSE
現在 qemu 内で emulation されている device の一部を kernel に持っていくことで、user land への遷移を減らす事ができ、性能向上が見込めることを示した。
実験として、IDE device での bench mark 結果が示された。
Enabling Optimized Interrupt/APIC Virtualization in KVM
– Jun Nakajima, Intel
Intel による新たな hardware accelaration が示された。
- APIC-register virtualiztion
- virtual interrupt delivery (receiving side)
- posted interrupt processing
である。これによりより一層の性能向上が期待される。
Multiqueue Networking for KVM – Jason Wang, Red Hat
10G に向けて、関連 network layer の multi queue 化について紹介した。
virtio-net driver, qemu backend, vhost-net, mq tap (macvtap) に修正を行った。
3日目(11月9日)
Memory Aggregation / Cloud with KVM – Benoit Hudzia, SAP
RDMA を使用した memory swap を実装した。
Linux MMU core には、4箇所の hook を入れるだけで transparent integration with MMU が実現できている。 hookは少ないので、使用しない場合の overhead はなく、upstream にも merge できると考えている。
現在は、postcopy live-migration と memory aggregation を use case として実装し、評価を行った。11月末にはコードを open にできる予定。
- 資料をPDFにまとめましたのでこちらからもお読みいただけます。
- プレゼン資料『Yabusame update:Postcopy Live migration for QEmu/KVM』 (PDF:187 KB)