2009年2月22日日曜日

RedHatとMicrosoftがサーバ仮想化の相互運用に関して提携

Red HatとMicrosoftがサーバ仮想化ついての相互運用に関して提携を結んだようです。この提携により下記の内容が実現されることになりそうです。


  • Red Hat Virtualization の機能上で Windows Server ゲストの動作検証が行われ、正式にサポートされる

  • Windows ServerのHyper-Vゲストとして、Red Hat Enterprise Linuxゲストの動作検証が行われ、正式にサポートされる

特に Hyper-V は、これまでは Windows Server および SUSE Linux Enterprise Server と、対応するゲストが非常に限定されていました。 Hyper-V 上で事実上標準的な Red Hat Enterprise Linux がゲストとしてサポートされれば、 Hyper-V を利用した Windows & Linux サーバ統合がより現実的なものとなり、現状 VMware ESX が絶対的に優位なサーバ統合の現状に、何らかの変化がおきるのかもしれません。


Red Hat Moves to Expand Server Virtualization Interoperability


blktapベースの仮想ブロックデバイスをDomain-0にマウントするには

最近の Xen では、仮想ブロックデバイス(VBD)のバックエンドドライバとして blktap を利用することができます。 blktap は VBD のバックエンドのためのインターフェイスで、さらに実際の I/O 機能を持つドライバを組み合わせることで利用します。仮想マシンの定義ファイルに下記の指定をする場合、それは blktap の aio ドライバ(async I/O = 非同期I/O)を使用することになります。

disk = [ 'tap:aio:/var/lib/xen/images/linux.ext3,xvda,w' ]

blktap では、 aio 以外に qcow, qcow2, vmdk など、他の仮想マシン技術で使われるディスクフォーマットの利用が可能となっています。

さて、 aio ドライバのように Linux で普通にループバックマウントできる形式であれば、 Domain-0 からとりあえず触りたいような場合は何も考えずにマウントしてしまえばよいのですが、 QEMU の形式である qcow2 フォーマットのイメージを Domain-0 からマウントしたい時はどうしたらいいでしょうか。

このような場合には、 xm block-attach コマンドを使用して Domain-0 に仮想ブロックデバイス(VBD)を割り当てることができます。第二引数はDomain-0のドメインID(ゼロ)を指定しています。

# xm block-attach 0 tap:qcow2:/var/lib/xen/image/linux-image.qcow2 xvda w
# mkdir -p /mnt/linux-image
# mount /dev/xvda /mnt/linux-image

用が済んだら、アンマウント後に xm block-detach コマンドで仮想ブロックデバイス(VBD)を解放します。

# umount /dev/xvda
# xm block-detach 0 xvda

Domain-0 は特権ドメインであり、一般的には VBD をサービスする側なのですが、それと同時に Domain-0 の正体は「一部ハードウェアやハイパーバイザーへの特権アクセスが許されている」点を除けば、あくまでXen にとっては他のドメインと同じゲストに違いありません。



2009年2月16日月曜日

GPL PV Drivers のパフォーマンス

製品の仮想化技術には、 VMware でも Parallels でも、 Windows をゲストとして動作させる時に I/O パフォーマンスを向上させるためのドライバが用意されています。

このような仮想化デバイスのドライバを使用しない場合、仮想マシン上で動作する Windows などの OS は、仮想マシン技術がエミュレートする PCI バス上のディスクコントローラに対して I/O を行います。これに対して、先のドライバは VMware などの仮想化ソフトウェアと直接 I/O データをやりとりするため、パフォーマンスが向上する仕組みになっています。

さて、 Xen においてもこのようなドライバの仕組みは Paravirtual Driver (準仮想化ドライバ) という形で存在しています。 Xen のソースコードをダウンロードすると unmodified_driver/ などというディレクトリがあったりしますが、それがまさにそのドライバです。

アンオフィシャルですが、 Windows 用のオープンソースな PV ドライバも存在しています。


しかし、ただ単純にベンチマークをとってみると...



【検証環境】

・HP ProLiant ML115 G1
・Athlon64 X2 5600+ (2.8GHz x2)
・8GB PC5300 RAM
・Hitachi HTS72323 320GB 2.5inch HDD
・openSUSE 11.1 + Xen 3.3
・Windows xp SP3 (x86)


あれれ~? PV ドライバを入れた場合のほうがパフォーマンス伸び悩んでますね。というか QEMU のハードウェアエミュレーションと比較し完敗です。何かの間違いでしょう。しかし、再計測しても再計測してもこの結果がひっくり返ることはありませんでした。

そこで、このツールで計測をはじめてから計測が終わるまでの時間を、愛用の G-SHOCK で測ってみました。なお Crystal Disk Mark のソースコードを確認したところ決まった量の I/O 負荷をかけて、それの所要時間から性能を算出しているようです。つまり計測値はアテにならなくても、 I/O に要した"時間"は信用できると考えられます。結果は以下のとおりでした。

PV ドライバ使用時: 3分23秒
PV ドライバ未使用時: 3分31秒

なんだ、やっぱり PV ドライバのほうが早かったんですね。約 6 % の性能アップしていたようです。しかし、これでは本当のスループットがわかりませんね。敢えていえば QEMU エミュレーションから 6% しか性能向上がない PV ドライバというのも随分寂しいものです。( XenSource や Novell が作っているドライバはもっと高いパフォーマンスを示してくれることでしょう)

PV ドライバには I/O パフォーマンスを向上させる以外のメリットとして CPU に対する負荷の低減があります。無意味に低レベルなハードウェアの真似(ゲストによる I/O ポートへのアクセスをトラップしエミュレーション)をする必要がなくなるからです。

I/O パフォーマンスについてはまた計測方法を検討して検証をしてみたいと思います。というわけで、今日はおやすみなさい。




2009年2月15日日曜日

"家庭内乱"管理を少しでもラクにするには

このサイトをご覧いただいている方には、自宅のネットワークを仕切っている方、また実家や親戚の家のネットワーク(家庭内乱)管理をついつい頼まれてしまい、なかなか断れずに面倒をみるハメになっている方なんて、そこそこ多いのではないでしょうか?少なくとも私は実家や親戚宅のネットワーク管理にたびたびかり出されています。

また、ネットに繋がるようにして帰ってくるのは簡単ですが、いざしばらくすると「ネットに繋がらなくなった」と電話がかかってきたり、いろいろな都合でネットワークの変更が必要になるケースがあり、とっても面倒なものです。私は、そういう時のために、(内容はケースバイケースですが)簡単な設定資料を作っていたりします。


このネットワークにおいて、以前機器の移設時に配線ミスによる混乱があったため、この資料は、どちらかといえば物理配線にフォーカスした内容となっています。とはいえクライアント側の設定に必要な項目は網羅されているので、この資料があれば



  • 問い合わせを受けたときに何がどうなっているかを思い出せる
  • ユーザ自身で有る程度の配線見直しなどが可能
  • クライアントの設定方法を書いておけばユーザが自分たちで新ノードを追加できる。もしくは設定業者が対応できる
  • 大きなトラブルがおきたとしても、他の人に対応を引き継げる・・・ことがある
などのメリットが生まれます。

ところで、今回紹介した図は2006年1月時点の私の実家のネットワーク構成に基づいたものです。私は実家から東名高速道路で約300km離れた地点に住んでいるため、なかなか度々面倒を見に行くことはできません。その後実家のネットワークはADSLからひかり電話にサービスを変更するためファイバの引き込みONUなどを設置したのですが、その作業の担当者にこの資料を見せることで、スムーズにWAN側の切り替えを済ませることができたそうです。

パスワードなどの機密情報も含めて記載されている点など、賛否両論はあるでしょうが(そもそもセキュリティ要求が高いような場所ではWANの切り替え工事を電話工事の担当者にやらせないと思いますが:-)、この手の資料は、「備えあれば憂いなし」です。


なお、構成が変わったときにはドキュメントの更新もお忘れなく。