~Hyper-V 移行・導入の実践~
今回は、障害対策のためHyper-V上に構築した部門サーバをフェールオーバークラスタリングで冗長化した際のポイントをご紹介します。
(注)本検証で用いたPRIMERGYは先行評価用として使用したものです。PRIMERGYのWindows Server 2008動作に関してはWindows Server 2008サポートモデルの他、サーバ本体動作確認状況(Windows Server 2008)掲載モデルでご確認ください。
図1 フェールオーバークラスタリング
高信頼サーバであるPRIMERGYでもハードウェア障害は避けられません。サーバを仮想上に集約した場合には、ハード故障が原因ですべての仮想マシンが停止することがあるという大きなリスクを抱えています。
そのリスクは、Windows Server 2008のEnterprise/Datacenterに標準装備されているフェールオーバークラスタリング機能を利用して解消できます。同じシステム構成のサーバを2台以上用意し、フェールオーバークラスタリング機能を使うと、ハード故障時には、仮想マシンの実行を別の物理サーバで自動稼働させることができ、システムの停止時間は数分で済みます。
Hyper-Vにおいて、フェールオーバークラスタリング機能を使い、仮想マシンを別の物理サーバに移動する手動操作をクイック・マイグレーションと呼びます。
Windows Server 2008では、フェールオーバークラスタリング機能が新しくなっており、Windows Server 2003のMicrosoft Cluster Service(MSCS)よりも使いやすくなっています。例えば、「構成の検証」機能により、導入前にネットワークやディスク設定の不備について知ることができるので事前の対処が可能です。また、クラスタの構築作業はウィザードを進めていくことで簡単にできます。
Hyper-Vをクラスタ化する手順は下記のようになります。
Windows Server 2008のファイアウォールでは、3種のプロファイル(ドメイン/プライベート/パブリック)を持っており、ネットワークの接続状況に応じて、そのうちの1種が選択され利用されます。それぞれのプロファイルには、どのような通信の接続を許可/拒否するかが定義されています。
クラスタの設定を行う前は、ドメイン環境のネットワークにのみ接続していたため、ファイアウォールはドメインプロファイルを利用していました。この環境において、クラスタ用にノード間をネットワークケーブルで接続すると、ファイアウォールはパブリックプロファイルに切り替わります。これは、複数のネットワークに接続されている場合には、セキュリティ的にリスクが高いネットワークに応じたプロファイルが選択されるためです。
図2 ファイアウォールのプロファイルの切替
ファイアウォールのプロファイルが切り替わることにより、今まで接続できていた通信が、ファイアウォールに遮断されて通信できなくなることがあります。そのため、新しくネットワークを接続する前に、パブリックプロファイルへ必要な許可ポリシーを設定しておく必要があります。
また、その後、ノード間ネットワークが障害等により通信できなくなると、ドメインプロファイルに戻ります。その際でも通信できなくなることがないようにファイアウォールを設定しておきます。
フェールオーバークラスタリング機能は、Active Directoryドメインコントローラと通信できる必要があります。本環境では、Hyper-V上の仮想マシンとして部門サーバを集約しており、Active Directoryのドメインコントローラも仮想マシンとして稼働させています。
しかし、フェールオーバークラスタリングは、障害が発生しそのサーバ上で仮想マシンが動作しなくなったときにもう一台のサーバ上で仮想マシンを起動させるという機能のため、フェールオーバークラスタリング機能が通信するActive Directoryドメインコントローラを、クラスタ化するHyper-V以外の環境で稼働させておく必要があります。
図2 部門サーバ最終構成イメージ
「構成の検証」および「クラスタの作成」では、共有ディスクのチェックが行われます。このチェックでは、共有ディスクの切り替えが正常に行えるかについても確認するため、共有ディスク上に仮想ハードディスクファイル(vhdファイル)や仮想マシンの構成ファイルを保存している仮想マシンは、異常終了します。これらの操作を行う前に、仮想マシンをシャットダウンする必要があります。
「クラスタの作成」を行い、仮想マシンを「サービスとアプリケーション」に登録すれば、ハード障害等が発生した際に、別の物理サーバでその仮想マシンが稼働されます。「フェールオーバークラスタ管理」コンソールを用いて、手動で別ノードに移動させることもできます。
ただし、移動後に、移動前の物理サーバと同じ名称の仮想ネットワークが存在していない場合には、その仮想マシンがネットワークに接続できなくなります。ネットワークに接続させるためには、すべての物理サーバ上に同じ名称で仮想ネットワークを準備しておく必要があります。
フェールオーバークラスタリングでHyper-Vの仮想マシンを冗長化させる場合についてのポイントを紹介しました。Hyper-Vクイック・マイグレーションの環境を構築しておくことで、ハード障害時に数分で別の物理サーバにて仮想マシンが自動稼働するため、障害対応が随分と楽になります。また、修正プログラムの適用などで物理サーバを再起動させる場合、仮想マシンを別物理サーバに移動させることで、仮想マシン停止時間の短縮が可能となります。Hyper-Vを用いてサーバ集約する際には、フェールオーバークラスタリングの採用をお勧めします。