仮想化: Hyper-V と高可用性
Hyper-V と Windows Server のフェールオーバー クラスタリングを組み合わせて使用すると、物理的なコンピューターと仮想マシンで構成された高可用性のクラスターを実現できます。
Thomas Olzak
出典: 『Microsoft Virtualization』(Syngress、2010 年)
端的に言うと、高可用性 (HA) は、常時サービスにアクセスできるという前提でユーザーにサービスを提供することです。通常、この状態を実現するために、なんらかの労力が注がれています。
HA と言う場合、なんらかのサーバー クラスターを示唆しています。サーバー クラスターは、2 台以上のサーバーを 1 つのリソースとして構成および管理しているものです。サーバー クラスターには、クライアントのニーズに基づいて物理サーバーのリソースを使用する負荷分散クラスター、または一度に使用するのは 1 台のクラスター メンバー (ノード) だけで、もう 1 台はプライマリで障害が発生したときのために用意しておくフェールオーバー クラスターがあります。
Windows Server では、従来のホスト ベースのクラスターを提供し、フェールオーバーと負荷分散で Hyper-V を使用できるようにしています。可用性の高いサービスを実現するうえで Hyper-V がもたらす特殊な考慮事項もあります。
クラスターの概念
フェールオーバー クラスターは、すべてのクライアント要求を処理する 1 つのノード (通称、プライマリ ノード) で構成されています。また、プライマリ ノードがオンラインの間は基本的にオフラインになっているノードが 1 つ以上あります。これらはセカンダリ ノードと呼ばれます。
負荷分散クラスターでは、すべてのノードが、クライアント要求への対応に積極的に参加します。多くの場合、負荷分散クラスターは、フェールオーバー クラスターとしても機能します。負荷分散クラスターのノードは、他のノードに影響を与えることなく終了できます。
どのクラスターでも、最大の課題は、ノード メンバー (特に、フェールオーバー クラスターの場合) の状態を判断し、現在クラスター アプリケーションとそのデータを制御しているノードを判断することです。多くの場合、各ノードの状態を判断するには、ハードビート ネットワーク (通常、信号 (ハートビート) を通信する物理的に別のネットワークカード) を使用します。
Windows Server 2000 以降の Enterprise Edition と Datacenter Edition には、フェールオーバー クラスターを作成する機能が組み込みで用意されています。この処理は、Windows Server 2008 で大幅に簡略化され、ノードの評価と構成にウィザード ベースのアプローチが使用されるようになりました。
セットアップ ウィザードの検証プロセスでは、ノードだけでなく、インフラストラクチャでクラスターがサポートされることを確認するために利用可能なストレージとネットワーク接続もチェックします。また、アプリケーションでクラスター環境がサポートされるかどうかもチェックします。クラスターのセットアップと構成に必要な手順を実行する前に、サーバー ハードウェアがクラスター環境をサポートする要件を満たしているかどうかも確認します。
ネットワーク負荷分散 (NLB) を使用すると、複数のネットワーク リソースに同じネットワーク名を付けて特定のプールの一部にすることができます。クライアントが、このネットワーク リソースを要求すると、いずれかのノードが応答します。応答するサーバーは、各サーバーで処理するクライアント要求の割合が一定になるようにサーバーを選択するアルゴリズムによって判断されます (この割合は管理者が設定します)。
Hyper-V の HA を定義する
Hyper-V クラスターでは、仮想スタックのどの層を仮想化するかという判断が重要です。物理コンピューターが要件 (接続された記憶域、ハートビート専用ネットワーク インターフェイスへのアクセスなど) を満たしている場合、そのホストはクラスターに含めることができます。
仮想マシン (VM) 自体 (ゲスト) を 1 台のホストでクラスター化することもできます。ハートビートに仮想ネットワークを使用し、クォーラムと他の接続された記憶域に仮想 iSCSI を使用すると、ホスト ハードウェアでサポートしていない場合でも、ゲスト クラスターを作成することができます。また、Hyper-V ゲストを複数の物理ホストでノードとしてホストすることもできます (ただし、すべてのホストがクラスター化できることが条件となります)。
Hyper-V の仮想化を使用すると、非常に堅牢なフェールオーバー ソリューションを作成できます。各物理ホストには複数の VM を含めることが可能で、各 VM はフェールオーバー クラスターのメンバー ノードになります。物理ホストもフェールオーバー クラスターに含めることができます。そのため、VM を配置するときには記憶域とリソースを考慮することが重要です。
各 VM は個別に監視できるので、クラスターの複数の物理ノードに VM を配置することができます。このようにするとパフォーマンスは向上しますが、記憶域の容量に関するニーズの計画を立てるのが難しくなることがあります。
NLB クラスターの VM がもたらすメリットは、サービスの可用性が高くなることです。NLB は、1 台のホストまたは複数のホスト間で使用して、サービスの可用性を提供できます。NLB では、負荷分散に加えて、メンテナンス時や障害が発生したときに、メンバー ノードをクラスターから取り除くことができます。
NLB の機能によってフェールオーバー クラスターのノードになっている VM では、VM のメンテナンス中でもワークロードで高可用性が実現されます。VM で更新やなんらかのメンテナンスが必要な場合は、その VM のワークロードを同じホストの別の VM に転送したり、すべてを別のホストに転送したりすることができます。
Thomas Olzak は、HCR ManorCare の情報セキュリティの責任者です。HCR ManorCare は、米国オハイオ州に本社を構える、短期および長期のリハビリ サービスと医療サービスを提供する企業で、米国内 32 の州に 500 以上の施設を持っています。この記事と出典元の書籍の執筆には、Jason Boomer、Robert Keefer、および James Sabovik も貢献しています。
©2011 Elsevier Inc. All rights reserved. Syngress (Elsevier の事業部) の許可を得て掲載しています。Copyright 2011. 『Microsoft Virtualization』(Thomas Olzak 著) この書籍と類似書籍の詳細については、elsevierdirect.com (英語) を参照してください。