monoの開発ブログ

Xenのblktapとpvopsについて

前回説明らしい説明が何もなかったので、補足しておきます。

paravirt_ops (pvops)

pvopsとは、Linuxカーネルが持つ準仮想化のための機構です。Xenなどの仮想計算機モニタ上で準仮想化を利用するためには、ゲストOSのカーネルがpvopsをサポートしている必要があります。最近のLinuxカーネルはpvopsを標準でサポートしており、メジャーなディストリビューションのそれなりのバージョンであればそのまま準仮想化できます。

blktap

blktapはブロックデバイスのIOをユーザ空間のコードで行うためのツールキットです。標準ではQCowやVMDKなど他の仮想計算機モニタのディスクイメージをサポートするために利用されており、そのほかにもデバイスドライバでは実現しづらい既存ライブラリの活用ややネットワークの利用など様々な応用が可能です。

というわけで、前回の記事は実はblktapを利用するための下準備だったのです。blktapとは一度も書いていませんでしたが。

blktapを利用する上での問題

pvopsを利用するだけならバージョンのことを心配する必要がほとんどないのですが、blktapのサポート状況はあまりよくないので対応するバージョンを選んでインストールしなければなりません。Xen Kernel Feature Matrixによると、ディストリビューションで提供されるバイナリを利用する場合、ソースから導入する場合のどちらにしても最近のバージョンは利用できないようだったので、あのバージョンを選ぶことになりました。

なお、blktapはDom0 (とXen本体) の問題なので、DomUについては特に気にする必要はありません。前回の記事ではCentOSのドキュメントに沿って適当に導入しています。