高可用Windowsシステムの研究
SQL Server 2005の高可用テクノロジ編

第2回 SQL Serverの可用性向上のためのシステム構成

1.フェイルオーバー・クラスタの構成と働き

デジタルアドバンテージ
資料提供、技術協力:マイクロソフト
2007/03/12

 前回説明したとおり、フェイルオーバー・クラスタでは冗長化構成された複数のコンピュータ同士でストレージ(ディスク)を共有し、一方のコンピュータ(DBシステム)が停止しても他方のコンピュータ(DBシステム)側でサービスを続行可能にする。フェイルオーバー・クラスタの基本構成は次のようになる。

フェイルオーバー・クラスタの基本構成
複数のMSCSノードの一方を本番系としてSQL Serverのインスタンスを実行する。ハートビート信号の停止により本番系ノードの障害を検知した場合には、待機系ノード側でSQL Serverインスタンスを引き継ぎ、クライアントへのサービスを継続させる。

 このようにフェイルオーバー・クラスタでは、MSCS(Microsoft Cluster Service)を構成したWindows Serverを用意し、そのうちの一方を本番系としてSQL Serverインスタンスを稼働させる。SQL Serverインスタンスとは、コンピュータ(サーバ)の実行単位で、サービスやプロセスに近いものだ。SQL Server 2005、および前バージョンのSQL Server 2000では、1つのコンピュータで複数のSQL Serverインスタンスを実行できる。MSCSを構成する各サーバは「MSCSノード」と呼ばれる。MSCSノード同士はハートビート(heartbeat、「心臓の鼓動」の意)と呼ばれる信号を定期的にやりとりしており、これが検出できなくなるとサーバが停止したと判断し、自動的にフェイルオーバーする。

 MSCSノード同士は互いにストレージを共有する(MSCS共有ディスクと呼ばれる)。MSCSノードと共有ディスクは高速なファイバチャネル・スイッチなどで接続し、どちらのノードからも高速に共有ディスクにアクセスできるようにしておく。

 MSCSでは、仮想的なIPアドレスとネットワーク名を割り当てた仮想サーバを作成し、クライアントはこの仮想サーバにアクセスするようにする。これによりクライアントは、実際にSQL Serverインスタンスが実行されている物理ノードを意識する必要がない。障害発生により本番系ノードが停止しても、待機系のノードが仮想サーバを引き継いでサービスを継続すれば、クライアントからは実稼働ノードが切り替わったことは分からない。

フェイルオーバー・クラスタの耐障害性
 フェイルオーバー・クラスタでは、サーバ・ハードウェアやOS、DBシステム、そのほかのミドルウェアによるソフトウェア障害に対応し、フェイルオーバーによるサービス継続を可能にする。ただし、ストレージは冗長化されていないので、ディスク障害が発生した際には、バックアップされているデータからの復旧/復元が必要になる。

フェイルオーバー・クラスタを構成するためのシステム要件
 フェイルオーバー・クラスタを構成するには、次の条件を満たす必要がある。

  • システムを構成するすべてのハードウェアが、HCLまたはWSC互換性基準を満たすこと
     システムを構成するすべてのハードウェアは、マイクロソフトが公開しているHCL(Hardware Compatibility List=ハードウェア互換性リスト:Windows 2000 Server およびWindows NTサーバの場合)、もしくはWSC(Windows Server Catalog:Windows Server 2003の場合)のClusterカテゴリに準拠している必要がある。MSCSでは、同一クラスタ構成内に、x86、x64、IA64といった異なるアーキテクチャを混在させることはできない。最新のHCLおよびWSCは、以下から確認できる。以下のWebページのドロップダウン・リストから、検索したいClusterカテゴリを指定、もしくはCluster Solutionsを指定する。

    ・ Windows 2000 Hardware Compatibility List(Windows 2000 Server/Windows NTサーバの場合)


    ・ Windows Server Catalog(Windows Server 2003の場合)

  • MSCSノードで使用可能な共有ディスクが存在すること
     共有ディスク上には、SQL Serverの各データ・ファイル、トランザクション・ログを配置する。MSCSノードから共有ディスクへのアクセスには、高速なファイバ・チャネル(FC)またはファイバ・チャネル・スイッチ(FCスイッチ)を使用するのが一般的である。なお、MSCSノードから共有ディスクへのネットワークが単一障害点(SPOF:Single Point of Failure)にならないように、冗長構成をとることが望ましい。

 クラスタの構成としては、Active/Passive型(2ノードのうち、一方が本番系、他方が待機系として機能する構成)が基本であるが、必要であればActive/Active型(2ノードの双方が本番系として機能し、可用性向上に加え負荷分散も可能にする構成)やN+1型(本番系複数ノードに対し、待機系ノードを1台用意する構成)、N+I型(本番系複数ノードに対し、待機系にも複数ノードを用意する構成)を選択することも可能である。

 なお図に示したとおり、MSCSを構成するには、Active Directoryが必須である。

SQL Server 2000/SQL Server 2005の機能比較
 従来のSQL Server 2000でもフェイルオーバー・クラスタは構成可能だったが、SQL Server 2005では最大ノード数の拡張など、機能が向上している。これらの機能比較を以下に示す。

SQL Server 2000 SQL Server 2005
エディション Enterprise Edition Standard Edition Enterprise Edition
最大ノード数
4*1
2
8*2
SQL Server最大インスタンス数
16
16
25
共有ディスクにおけるマウント・ボリューム・サポート
×
全SQL Serverサービスでのフェイルオーバー・クラスタ利用
×
フェイルオーバー時間の短縮
×
×
SQL Server 2000/SQL Server 2005 フェイルオーバー・クラスタ機能比較
*1 IA32の場合、IA64版では最大8ノードまでサポートされる。
*2 Windows Server 2003 Enterprise Edition/Datacenter Editionにおける最大構成

 「共有ディスクにおけるマウント・ボリューム」は、ディスク・ボリュームにドライブ文字ではなく、パスを指定可能にする機能である。この機能が使えると、26以上のディスク・ボリュームをマウントできるようになる。

 SQL Server 2005では、「全SQL Serverサービスでのフェイルオーバー・クラスタ利用」が○になっている。ここでいうSQL Serverサービスとは、具体的にはデータベース・エンジン、SQL Server Agent、Analysis Services、Integration Services、フルテキスト検索である。SQL Server 2005では、これらのサービスに対し、フェイルオーバー・クラスタによる可用性向上を図ることが可能になっている*

* Reporting Servicesは、アプリケーション・サーバ層となる「レポート・サーバ」と、管理情報を格納するデータベース層となる「レポート・サーバ・データベース」に分けられる。Reporting Servicesをクラスタ構成にする場合は、「レポート・サーバ」をネットワーク負荷分散(NLB)クラスタ上に配置し、「レポート・サーバ・データベース」をフェイルオーバー・クラスタに配置する。
 

 INDEX
  [高可用Windowsシステムの研究−SQL Server 2005の高可用テクノロジ編]
  第2回 SQL Serverの可用性向上のためのシステム構成
    1.フェイルオーバー・クラスタの構成と働き
      2.ログ配布の構成と働き
      3.データベース・ミラーリングの構成とはたらき
      4.可用性向上テクノロジの比較
      5.複数の可用性向上テクノロジの組み合わせ
 
更新履歴
【2007/03/13】「フェイルオーバー・クラスタを構成するためのシステム要件」として、当初はHCL(Hardware Compatibility List)のみを表記していましたが、HCLの対象はWindows 2000 ServerおよびWindows NTサーバの場合のみで、Windows Server 2003についてはWSC(Windows Server Catalog)で互換性基準が公開されています。このため本文表記にWSCを追加し、WSCページへのリンク情報を追加しました。お詫びして訂正いたします。

 [高可用Windowsシステムの研究]


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間