OVSがVMに仮想ディスクを割り当てるとき、まずDom0にディスクを認識させます。なる)を作成し、VMに使用させます。実はOVS環境では、Dom0がVMのディスクのRead/Writeを担当しています。Dom0と、それ以外のVMとは横並びの存在なのですが、Dom0は他のVMとは違った特権を持っています。他のVMのディスクへの読み書きをかわりに処理するのです。図中で「Front」「Back」と書いているのは、ディスクIOを処理するためのドライバです。VMの処理を正面から受け取る「フロントエンドドライバ」とそれを、裏側のDom0側で受け取る、「バックエンドドライバ」がセットで動いています。これは、スプリットドライバ(分割されたドライバ)ともよばれXenの特徴的なアーキテクチャです。上の図の補足になりますが、VMでなにかIO処理が発生した場合・・・まずVM上のアプリケーションは、普通にOSに対してデータの書き込みを依頼します。Oracleがデータベースに書き込みをした場合、Oracleは普通にOSに対してデータの書き込みを依頼します。バックエンドドライバに書き込みを依頼します。Dom0では、バックエンドドライバから受け取った書き込み依頼をDom0自身がもつLinuxドライバで、ディスクに書き込みます。複数のVMからのIOは、こんなイメージになります。Dom0は、このように他のいくつかのVMからの処理をさばくことは得意なようです。複雑な仕組みですが、Xenの世界では、この仕組みを取ることでIOを仮想化に合わせた方法で処理して性能UP。PVM)もともとあるLinuxのドライバをうまく流用して使う。いったことを狙っているようです。自分自身のIO処理で負荷がかかったりすると、けっこう弱いです。他のVMの処理をしてくれなくなったりします。このとき、負荷が大きいと他のVMはフリーズしたように見えることもあります。これが、冒頭でふれた状況の裏側になります。どのような時に気にするのか?例を一つ挙げると、IO負荷が大きい「バックアップ処理」があります。Oracleの稼働しているVMをバックアップするとして、VMの何を、どこからバックアップするかを考える必要があります。バックアップ対象とするのを、ファイルか、OSイメージか、DBのデータかとと考えるわけです。VM側、Dom0側どちらから取得するかも考えます。VM側からのバックアップVM内(ゲストOS内)でコマンドを実行してバックアップします。(DB)などを使うと思います。(単純に考えるためにOS/DB区別しかしていませんが)普通の物理Linuxサーバと同じバックアップの仕方です。側からのバックアップよりも他VMに対する影響を少なくすることができます。Dom0側からのバックアップDom0でログインして、コマンドを実行する方法です。gzipなど(OSのイメージファイル"xxxx.img"をそのままコピー)といった方法などです。物理Linuxの入っているハードディスクを丸ごとコピーするような感じです。バックアップもリストアも、ファイルコピーだけなので簡単です。したらよいのか?引き続き、バックアップを例として説明します。サービス提供目的でシステム稼働させている場合はほかのシステム(VM)に影響を出さないようにVM側からのバックアップを検討することがあります。他の仮想マシンに迷惑をかけてもよいことが多いのでほとんどDom0側でバックアップを取ると思います。いったように、他VMへの影響と、便利さを天秤にかけてバックアップの方法を考えることが多いはずです。OVSだけでなく、ほかのハイパーバイザでも同じように考えます。会社で怖い人と共用で検証VM環境を使っているときは、あえてVM側からファイルコピーをして、隣のVMへの影響を小さくしたりするといった感じです。Dom0のために考えられること最後におまけてきな話ですが・・・もともと仮想化環境ではIOがボトルネック(処理性能の問題点)になることが多く、Dom0側のIO処理負荷に対しては、下記のような対策があります。ボリューム複製などIO性能はどうしても問題になるんで、いろいろなレイヤで、いろいろな対策がとられています。(バックアップにしても、結局ストレージ側の機能でとることが多い気も・・・)以上、OVSの話でした。マイナーな部類とおもわれるOVSですが、すこしでも好きな人が増えてくれるとうれしいです。