第4回 クラスタリングとライセンス・コストを考慮した全体設計Windows Server 2012 R2時代のHyper-Vサーバ設計術(2/4 ページ)

» 2013年12月05日 15時33分 公開
[小川大地(Microsoft MVP for Virtual Machine)日本ヒューレット・パッカード]

ホスト・クラスタリングとゲスト・クラスタリング

 NICチーミングやストレージなど、Hyper-Vホストの設計において“冗長化”は非常に重要である。しかしながら冗長化と言われると、インフラ・エンジニアは“ハードウェアを二重化すること”ばかりに集中してしまう傾向がある。“業務サービスのダウンを防ぐ”ことや、“万一ダウンした場合にすぐに自動復旧させる”といった本質を忘れがちだ。そこで、ハードウェアからいったん離れて業務サービス、つまり「アプリケーション」に軸に置いて、冗長化(高可用化)について考えてみよう。

 サーバ仮想化環境において高可用化を行うには、「ホスト・クラスタリング」か「ゲスト・クラスタリング」のどちらかの構成を取る必要がある(図4)。

■ホスト・クラスタリング
 ホスト・クラスタリングはVMwareでは「vSphere HA」という機能名で広く知られている手法である。Hyper-Vの場合は、ホストに対してOSの標準機能である「Windowsフェイルオーバー・クラスタリング(WSFC)」を構成し、仮想マシンを丸ごと保護対象とする。ゲストOS内では何も手を入れなくてよいところが特長であり、WSFCに非対応のアプリケーションでも高可用化を実現できる。

■ゲスト・クラスタリング
 ゲスト・クラスタリングは英語ではしばしば「In-Guest」など呼ばれる手法であり、言葉の通り、ゲストOSの中でWSFCといったクラスタウェアを使用して、アプリケーションのみを保護対象とする。OS部分は複数存在するために「OSが起動しない」といったシステム障害に対応できるうえ、「サービスは起動しているものの、クライアント要求を受け付けない」といったアプリの内部障害にまで対応できるところが特長だ。

図4「Hyper-V環境におけるアプリケーションの高可用化」 図4「Hyper-V環境におけるアプリケーションの高可用化」
Hyper-V上のアプリケーションを高可用化するには、仮想マシンを丸ごとフェイルオーバー対象にする「ホスト・クラスタリング」と、仮想マシン内のアプリケーションのみを対象にする「ゲスト・クラスタリング」の2つの手法がある。

 この2つの手法は一長一短である(表1参照)。どちらを選ぶかはアプリケーションのSLA(Service Level Agreement)などと天秤にかけることになるだろう。利用するアプリケーションがWSFCに対応していなければホスト・クラスタリングしかないし、逆にWSFCに対応している著名なパッケージ・アプリケーションであれば、より深くまで監視可能なゲスト・クラスタリングの方が向いているはずだ。

    ホスト・クラスタリング ゲスト・クラスタリング
耐障害性― ホスト全体 Hyper-Vホストのダウン
仮想マシン・ネットワークのダウン *2
耐障害性― ゲストOS ゲストOSの全体障害(BSODやフリーズ)
ゲストOSの部分障害(上記以外) ×
ゲストOSの起動障害 ×
耐障害性― 保護アプリケーション アプリケーションの全体障害(サービス・ダウン) *3
アプリケーションの部分障害(プロセス障害など) ×
そのほか 設定や運用の容易さ ホストOS側で設定するのみ ゲストOS内での各種設定が必要
保護可能なアプリ すべてのアプリケーション WSFCに対応したアプリケーションのみ
表1「ホスト・クラスタリングとゲスト・クラスタリングの比較」
ホスト・クラスタリングは簡単な設定ですべてのアプリケーションを保護できるが、検知できない障害もある。ゲスト・クラスタリングはその逆であり、アプリケーションのSLAに応じて使い分けるとよいだろう。どちらを使うかについては、仮想マシン単位で選択できる。
*2 Windows Server 2012 R2のHyper-Vからの新機能
*3 ゲストOS がWindows Server 2012以降の場合

 なお、VMwareの有識者がこの表を見ると、制約の少なさに驚くかもしれない。例えば、vSphere HAでホスト・クラスタリングを行う場合はここまで「○」の数は多くないはずだ。Hyper-Vは同じWindows Server OSの標準機能であるWSFCと深く連携するため、一般的なホスト・クラスタリングの欠点が補われている(図5)。

図5「Hyper-VとWSFCの連携による監視項目の補完」
図5「Hyper-VとWSFCの連携による監視項目の補完」 図5「Hyper-VとWSFCの連携による監視項目の補完」
Windows Server 2012以降のHyper-Vでは、サービスの動作状態やNICの障害などを監視できる。
  (1)ゲストOSがWindows Server 2012以降の場合、任意のサービスに対して死活監視ができる。
  (2)仮想スイッチにマップされている物理NICの障害を検知し、自動フェイルオーバーを行える。

Hyper-V上でゲスト・クラスタリングを構成するには?

 Hyper-V上でゲスト・クラスタリングを構成する場合、“共有ディスクをどのように認識させるか”が悩ましいところだ。Windows Server 2012 R2のHyper-Vでは次の3つのアプローチが考えられるが(図6)、それぞれのメリット・デメリットをきちんと把握しておこう。

■仮想NIC方式
 1つ目は、Windows Server 2008 R2までのHyper-Vで唯一の手法であった、iSCSIストレージ限定の方式だ。ゲストOS上でiSCSIソフトウェア・イニシエータを有効化し、仮想NICから直接LUNをマウントするという“荒業”である。なぜなら、ホストOS上でiSCSIソフトウェア・イニシエータを利用するのに対し、ゲストOS上で利用する場合は二重のオーバーヘッドが発生する。プロセッサにかなりの高負荷がかかるうえ、パフォーマンス面でのロスも大きいためだ。

■仮想FC方式
 2つ目は、Windows Server 2012のHyper-Vでサポートされた「仮想ファイバ・チャネル(FC)」技術を用いる方式である。こちらはイメージ的には仮想NICを仮想FCに変えたものであるが、仮想FCは仮想NICとは異なる仕組みであり、またFCはデータ転送をHBA側でハードウェア処理できるためプロセッサに負荷がかかりにくい。

■VHDX共有方式
 3つ目は、最新のWindows Server 2012 R2のHyper-Vで新しく追加された「仮想ハードディスク共有」機能を用いる方式である。VMwareの“SCSIバス共有”に近い仕組みであるが、Hyper-Vの場合はパススルー・ディスクを用いることなく、仮想ディスク形式のままゲスト・クラスタリングを実現できる(「Windows Server 2012 R2の仮想ディスクの共有」参照)。

図6「Windows Server 2012 R2のHyper-Vで構成できるゲスト・クラスタリング」 図6「Windows Server 2012 R2のHyper-Vで構成できるゲスト・クラスタリング」
ゲストOS上でWSFCを実行するとなると、共有ディスクをどう認識させるかが悩ましい。Hyper-Vはバージョンアップを追うごとにこのあたりの機能改善が進んでいる。

 このように、マイクロソフトはゲスト・クラスタリングによるきめ細やかなアプリケーションの高可用性に力を入れている。今後の主流としては、おそらくFCの場合は仮想FC方式、それ以外の接続プロトコルの場合はVHDX共有方式となるだろう。

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。