EnterpriseZine(エンタープライズジン)

EnterpriseZine(エンタープライズジン)

テーマ別に探す

第1回 XenServer 5.0を使用したサーバの仮想化

  2008/12/16 09:00

シトリックス・システムズ・ジャパンは2008年10月14日、XenServer 5.0をリリースしました。この新バージョンでは、大企業のデータセンターで仮想化を利用することを前提として、機能強化が行われています。今回の強化によって、小企業から大企業まで企業の規模を問わず、部門サーバからミッションクリティカルなシステムまで、全てのサーバを仮想化できるようになりました。今回は、XenServer 5.0の大きな機能強化点を3つ紹介します。

1. ビジネスの継続性

 複数の仮想マシンが1つの物理マシン上で動く仮想化環境では、物理マシンが障害になってしまうと多くの仮想マシンが停止するため、ビジネスインパクトが大きくなってしまいます。このため、仮想環境ではビジネスの継続性を高めることが非常に重要です。

 XenServerでは、仮想マシンを停止することなくハードウェアメンテナンスを可能にするライブマイグレーション機能をXenMotionとして以前より提供していましたが、新バージョンでは、よりビジネスの継続性を高めるために、仮想マシンのハイアベイラビリティ(HA)機能とディザスターリカバリー(DR)機能を追加しました。

1.1. Citrix XenServer HA機能

 XenMotionは、稼働中の仮想マシンを他のXenServer物理サーバに移動します。このため、移動元のXenServer自体は稼動状態である必要があります。万が一、物理サーバがダウンをしてしまった場合には、XenMotionは仮想マシンを他のサーバに移動させることができません。その上で動いていた仮想マシンも全てダウンしてしまいます。

 XenServer HAは、物理サーバがダウンした際に、その上で動いていた仮想マシンを他の物理サーバで自動的に再起動させます。各々のXenServerは、他のXenServerが動いているかどうかを定期的に調べます。もし、いずれかのXenServerが動いていなければ(すなわち障害となりダウンしてしまった場合には)、そのサーバ上で動いていた仮想マシンを稼働中の物理サーバで再起動します。

 サーバの生存チェックは、ネットワークを使用して行われます。各XenServerは、ハートビートパケットを他のXenServerに5秒間隔で送信します。あるハートビートパケットが40秒間途絶えた場合、他のサーバはそのXenServerはダウンしたとみなします。

 この方式には一つ問題があります。ハートビートパケットが途絶えた場合に、サーバダウンが原因なのか、ネットワーク障害が原因なのか区別がつかないということです。ネットワーク障害になった場合に仮想マシンを起動させてしまうと、同じ仮想マシンが2つ起動してしまう所謂スプリットブレーンの状態となり、データが破損してしまいます。よって、スプリットブレーンにならない仕組みが必要です。

ネットワーク障害でもXenServer-1のハートビートが来ないため、
XenServer-1上の仮想マシンを起動させてしまう(スプリットブレーン)
ネットワーク障害でもXenServer-1のハートビートが来ないため、XenServer-1上の仮想マシンを起動させてしまう(スプリットブレーン)

 XenServer HAでは、ハードウェア障害かネットワーク障害かを判断するためにハートビート用の共有ディスクを使用します。各々のXenServerは、ネットワーク上にハートピートのパケットを送信するのと同じように、定期的に共有ディスク上の自分に割り当てられたブロックにデータを書き込みます。

 ネットワークからハートビートのデータが来なくなった時に、ハートビートディスクにそのサーバからのデータが書かれていればネットワーク障害と判断します。また、ディスクにデータが書かれていなければサーバ障害と認識します。そして、サーバ障害の時のみ仮想マシンのフェールオーバー(他のXenServerで仮想マシンが自動的に再起動される)処理を実行します。

XenServer HAの構成
XenServer HAの構成

 このハートビート用のディスクは、iSCSIまたはFC-SANで接続されている必要がありますが、仮想マシンの共有ディスクと同じである必要はありません。HA構成にする場合には、共有ディスクを用意し、その上に仮想マシンが使用するディスク(仮想ディスク)を保持する必要があります。共有ディスク自体はNFS、iSCSI、FC-SANと一部のSASストレージをサポートしていますが、ハートビート用ディスクにはiSCSIまたはFC-SANのストレージを使用する必要があります。

 XenServerは利用者が容易に仮想環境を管理できることを目指しています。HAの機能を使用する場合でもその思想は引き継がれていなければなりません。HAのセットアップはウィザード形式でわずか2つのステップにすぎません。最初のステップでハートビート用ストレージを選択し、次のステップで仮想マシンに対する保護レベルを設定するだけです。

1.ハートビートストレージの選択
1.ハートビートストレージの選択
2.仮想マシン保護レベルの設定
2.仮想マシン保護レベルの設定

 仮想マシンの保護レベルは、「保護する」「可能なら再起動」「再起動しない」の3段階で設定します。「保護する」を設定すると、ハードウェア障害時に必ず再起動されます。「可能なら再起動」は、XenServerにその仮想マシンを起動するだけのリソースがある場合に再起動されます。そして、「再起動しない」はハードウェア障害時に再起動されない仮想マシンとなります。

 全ての仮想マシンに保護レベルの設定を行うと、「許容障害数」が自動的に計算され表示されます。XenServer HAでは、複数台のXenServerでハイアベイラビリティのグループを作成します。許容障害数は、「保護する」と設定された仮想マシンが必ず再起動される環境を保つことを考えた場合に、グループ(プール)に属しているXenServerのハードウェア障害を何台まで許容できるかを表示しています。

 XenServer HAの機能は、ハードウェア障害時に仮想マシンを自動的に再起動する機能です。よって、ゲストOSの中で動いているExchange ServerやSQL Serverのようなアプリケーション(サービス)レベルのフェールオーバー機能を提供しているわけではありません。アプリケーションレベルでの保護が必要な場合には、別途クラスタソフトウェアを検討する必要があります。

 また、ハードウェア障害時には仮想マシンもダウンし、サービスの停止やクライアントとのセッションが切れてしまいます。ハードウェア障害時に仮想マシンを停止させたくないミッションクリティカルなシステムはフォールトトレラントシステムを検討してください。

※この続きは、会員の方のみお読みいただけます(登録無料)。


※この続きは、会員の方のみお読みいただけます(登録無料)。


著者プロフィール

バックナンバー

連載:XenServer 5.0を使ってサーバを仮想化する
All contents copyright © 2007-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5