Microsoft Failover Clustering のサポート (Windows)

Microsoft Failover Clustering は、Windows オペレーティング・システム上のサーバーのクラスターをサポートします。 これはサーバーまたはアプリケーションの障害を自動的に検出および対応し、サーバーのワークロードの平衡を取ることができます。

概要

Microsoft Failover Clustering は、Windows サーバー・オペレーティング・システムの機能の 1 つです。 これは、高可用性とデータおよびアプリケーション管理の簡易化を目的に、クラスターへの 2 台のサーバー (Datacenter Server では最大 4 台のサーバー) の接続をサポートするソフトウェアです。 Failover Clustering はさらに、自動的にサーバーまたはアプリケーションの障害を検出し、リカバリーすることもできます。 それを使用して、サーバーのワークロードを移動して、マシン使用率の平衡を取り、 ダウン時間を取らずに計画保守を行うことが可能になります。

以下の Db2® データベース製品は、Microsoft Failover Clustering をサポートします。
  • Db2 Connect サーバー製品 (Db2 Connect Enterprise EditionDb2 Connect Application Server EditionDb2 Connect Unlimited Edition for System i® および Db2 Connect Unlimited Edition for System z®)。
  • Db2 Advanced Enterprise Server Edition
  • Db2 Enterprise Server Edition
  • Db2 Workgroup Server Edition

Db2 Failover Clustering のコンポーネント

クラスターとは、複数のノードの構成であり、各ノードは独立したコンピューター・システムです。 クラスターは、ネットワーク・クライアントには単一サーバーのように見えます。

図1: Failover Clustering の構成の例
Failover Clustering の構成の例

Failover Clustering クラスター内のノードは、1 つ以上の共有ストレージ・バスおよび 1 つ以上の物理的に独立したネットワークによって接続されています。 サーバーだけを接続していてクライアントをクラスターに接続していないネットワークのことを、 プライベート・ネットワークといいます。 クライアント接続をサポートするネットワークのことを、 パブリック・ネットワークといいます。 各ノードには、1 つ以上のローカル・ディスクがあります。 各共有ストレージ・バスは、1 つ以上のディスクにアタッチします。 共有バスの各ディスクは、一度にクラスターの 1 つのノードだけが所有します。 Db2 ソフトウェアは、ローカル・ディスクに常駐します。 Db2 データベース・ファイル (例えば表、索引、ログ・ファイル) は、共有ディスク上に常駐します。 Microsoft Failover Clustering はクラスターでのロー・パーティションの使用をサポートしないため、Microsoft Failover Clustering 環境でロー・デバイスを使用するように Db2 を構成することはできません。

Db2 リソース

Microsoft Failover Clustering 環境では、リソースはクラスタリング・ソフトウェアによって管理されるエンティティーです。 例えば、ディスク、IP アドレス、または汎用サービスは、リソースとして管理することができます。 Db2 は、 Db2 Server と呼ばれる独自のリソース・タイプを作成することにより、Microsoft Failover Clustering と統合します。 1 つの Db2 サーバー・リソースが Db2 インスタンスを管理します。 パーティション・データベース環境では、各 Db2 サーバー・リソースが 1 つのデータベース・パーティションを管理します。 インスタンス名がその Db2 Server リソースの名前になります。ただし、パーティション・データベース環境の場合は、インスタンス名およびデータベース・パーティション (またはノード) 番号の両方によって Db2 Server リソースの名前が構成されます。

オンライン接続前およびオンライン接続後のスクリプト

スクリプトは、Db2 リソースがオンラインになる前、オンラインになった後に実行できます。 これらのスクリプトはそれぞれ、オンライン接続前 のスクリプト、オンライン接続後 のスクリプトと呼ばれます。 オンライン接続前およびオンライン接続後のスクリプトは、Db2 およびシステム・コマンドを実行できる .BAT ファイルです。

Db2 の複数インスタンスを同一のマシン上で実行している場合は、 オンライン接続前およびオンライン接続後のスクリプトを使用して、 両方のインスタンスが正常に開始されるように構成を調整することができます。 フェイルオーバーが発生した場合には、オンライン接続後のスクリプトを使用して、 手動でデータベース・リカバリーを実行できます。 さらに、オンライン接続後のスクリプトは、任意のアプリケーションまたは Db2 に依存するサービスを開始するためにも使用されます。

Db2 グループ

関連する、または従属するリソースは、リソース・グループに編成されます。 1 つのグループのすべてのリソースは、クラスター・ノード間を 1 つの単位として移動します。 例えば、典型的な Db2 単一パーティション・クラスター環境には、以下のリソースを含む Db2 グループがあります。
  1. Db2 リソース。 Db2 リソースは Db2 インスタンス (またはノード) を管理します。
  2. IP アドレス・リソース。 IP アドレス・リソースを使用すると、クライアント・アプリケーションが Db2 サーバーに接続することが可能になります。
  3. Network Name リソース。 Network Name リソースを使用すると、IP アドレスを使用してではなく名前を使用して、 クライアント・アプリケーションが Db2 サーバーに接続することが可能になります。 Network Name リソースは、IP アドレス・リソースと従属関係にあります。 Network Name リソースは、オプションです。 (Network Name リソースを構成すると、フェイルオーバー・パフォーマンスに影響するかもしれません。)
  4. 1 つ以上の Physical Disk リソース。 それぞれの Physical Disk リソースは、クラスター内の共有ディスクを管理します。
注: MSCS を使用する場合、 Db2 データベースおよび表スペース・コンテナーのパスを決定する際には、ドライブ名を使用することをお勧めします。 ドライブ名を使用できない場合、または db2mscs ユーティリティーがディスク・リソースのドライブ名を取得できない場合、db2mscs.cfg ファイル内で INSTPROF_PATH を使用して、MSCS ディスク上のパスを指定する必要があります。
注: Db2 リソースは、同じグループ内の他のすべてのリソースに依存するように構成されているため、 Db2 サーバーは、他のすべてのリソースがオンラインになった後でのみ始動できます。

フェイルオーバーの構成

2 つのタイプの構成が使用可能です。
  • アクティブ/パッシブ
  • 相互テークオーバー

パーティション・データベース 環境では、すべてのクラスターが同じタイプの構成を持つ必要はありません。 いくつかのクラスターをアクティブ/パッシブを使用するようにセットアップし、他のクラスターを相互テークオーバー用にセットアップすることができます。 例えば、Db2 インスタンスが 5 台のワークステーションで構成される場合、それらのマシンのうち 2 台を相互テークオーバー構成を使用するようにセットアップし、2 台をパッシブ・スタンバイ構成を使用するようにセットアップし、残りの 1 台はフェイルオーバー・サポート用に構成しないでおくことが可能です。

アクティブ/パッシブ構成

Active-Passive 構成では、Microsoft Failover Clustering クラスターの 1 つのマシンが専用のフェイルオーバー・サポートを提供し、もう 1 つのマシンがデータベース・システムに参加します。 データベース・システム用のマシンで障害が発生すると、そのマシン上のデータベース・サーバーは、フェイルオーバー・マシンで開始されます。 パーティション・データベース環境で、複数の論理ノードを 1 台のマシンで実行している場合、そのマシンで障害が発生すると、それらの論理ノードはフェイルオーバー・マシンで開始されます。 図 2 に、アクティブ/パッシブ構成の例を示します。

図2: アクティブ/パッシブ構成
アクティブ/パッシブ構成

相互テークオーバー構成

相互テークオーバー構成では、両方のワークステーションがデータベース・システムに参加します (つまり、各マシンで少なくとも 1 つのデータベース・サーバーが実行されます)。 Microsoft Failover Clustering クラスター内のいずれかのワークステーションで障害が発生すると、障害のあるマシン上のデータベース・サーバーはもう一方のマシン上で稼働するように始動されます。 相互テークオーバー構成では、あるマシン上のデータベース・サーバーは、 別のマシン上のデータベース・サーバーとは別個に障害を起こす場合があります。 指定されたどの時点であっても、 すべてのデータベース・サーバーはどのマシン上でもアクティブであることができます。 図 3 は、相互テークオーバー構成の例を示しています。

図3: 相互テークオーバー構成
相互テークオーバー構成

Windows Server 2008 Failover Clustering のサポート

パーティション化された Db2 データベース・システムを Windows Server 20081 フェイルオーバー・クラスターで実行するように構成するには、以下のようにします。
  1. ホワイト・ペーパー「 Implementing IBM®Db2 9.7 Enterprise Server edition with Microsoft Failover Clustering2 ( developerWorks® Web サイトで入手可能) に記載されている手順と同じ手順に従ってください。
  2. Windows Server 2008 の Failover Clustering 機能の変更により、以下の追加セットアップが必要になる場合があります。
    • Windows Server 2008 フェイルオーバー・クラスターでは、Windows クラスター・サービスは特別なローカル・システム・アカウントで実行されますが、Windows Server 2003 では、Windows クラスター・サービスは管理者のアカウントで実行されます。 このことは、Db2 リソース (db2server.dll) の操作に影響します。このリソースは、クラスター・サービス・アカウントのコンテキストで実行されます。

      Windows フェイルオーバー・クラスターで DB2_EXTSECURITY レジストリー変数が YES に設定されている場合、 DB2ADMNS グループと DB2USERS グループはドメイン・グループでなければなりません。

      複数のパーティション・インスタンスが Windows フェイルオーバー・クラスターで実行されている場合は、INSTPROF パスをネットワーク・パス (例えば、 \\NetName\DB2MSCS-DB2\DB2PROFS) に設定する必要があります。 これは、 db2mscs コマンドを使用して Db2 データベース・システムをクラスター化する場合に自動的に行われます。

      Windows Server 2008 フェイルオーバー・クラスターが形成されると、新規クラスターを表すコンピューター・オブジェクトが Active Directoryに作成されます。 例えば、クラスターの名前が MYCLUSTER の場合は、コンピューター・オブジェクト MYCLUSTER が Active Directory 内に作成されます。 ユーザーが複数のパーティション・インスタンスをクラスター化し、 DB2_EXTSECURITY レジストリー変数が YES (デフォルト設定) に設定されている場合、このコンピューター・オブジェクトを DB2ADMNS グループに追加する必要があります。 この追加は、 Db2 リソース DLL が \\NetName\DB2MSCS-DB2\DB2PROFS パスにアクセスできるようにするために行う必要があります。 例えば、Db2 管理者グループが MYDOMAIN¥Db2ADMNS の場合、コンピューター・オブジェクト MYCLUSTER をこのグループに追加しなければなりません。 コンピューター・オブジェクトを Db2ADMNS グループに追加したら、最後に、クラスター内の両方のノードをリブートする必要があります。

    • Windows Server 2008 Failover Clustering では、 クラスター・ファイル共有リソース はサポートされなくなりました。 代わりにクラスター・ファイル・サーバーを使用します。 このファイル共有 (通常のファイル共有) は、クラスター・ファイル・サーバー・リソースに基づいています。 Microsoft では、クラスター内に作成されたクラスター・ファイル・サーバーは、ネーム・レゾリューションにドメイン・ネーム・システム (DNS) を使用する必要があります。 複数のパーティション・インスタンスの実行時には、ファイル共有をサポートするためにファイル・サーバー・リソースが必要です。 db2mscs.cfg ファイルに指定されている NETNAME_NAMENETNAME_VALUE、および NETNAME_DEPENDENCY パラメーターの値は、ファイル・サーバーおよびファイル共有リソースの作成に使用されます。 NetName は IP アドレスに基づき、この NetName は DNS 内になければなりません。 例えば、 db2mscs.cfg ファイルに以下のパラメーターが含まれている場合、ファイル共有 \\MSCSV\DB2MSCS-DB2 が作成されます。
      ...
      NETNAME_NAME  = MSCSN
      NETNAME_VALUE = MSCSV
      ...
      名前 MSCSV は、DNS で登録されていなければなりません。 登録されていない場合、DNS 解決が成功しなければ、Db2 クラスター用に作成されるファイル・サーバーまたはファイル共有は失敗します。
1 このホワイト・ペーパーに記載されている手順は、Windows Server 2012 の場合と実質的に異なるものではありません。
2 このホワイト・ペーパーで説明されている手順は、 Db211.1 の場合と実質的には異なりません。