次の方法で共有


高可用性のデータベース クラスタの構築

Duwamish オンライン

Aaron Ching and Steve Kirk
Microsoft Developer Network

December 2000
日本語版最終更新日 2001年10月22日

要約 : この記事では、クラスタ化の技術、および電子商取引サイト向けにクラスタをセットアップするための手順について説明します。また、サンプルの Duwamish オンライン ストアでクラスタ化がどのように実装されたかを考察します。

日本語訳注 : この文書には、使用したハードウェア (Dell PowerVault 外部 SCSI 記憶装置) に特化した設定手順が含まれております。ご参照に際にはご注意ください。

内容

はじめに
Windows 2000 におけるフェールオーバー クラスタ
SQL Server 2000 におけるフェールオーバー クラスタ
Duwamish オンラインのシステム アーキテクチャの概要
ハードウェアのインストールと構成
Windows 2000 クラスタ サービスのインストール
SQL Server 2000 のクラスタのインストール
サーバー クラスタでの運用管理
結論
参考記事

はじめに

次のようなシナリオを想定してみてください : オンライン ストアのカタログを見ながらいくつかの商品をショッピング カートに入れました。ところが、クレジット カード情報を入力する段階でサイトが応答しなくなってしまったため、しかたなく競合店のサイトを探すことにしました。

電子商取引の組織にとって、このようなアプリケーション障害 (あるいは断続的な可用性) は一種の粗悪なサービスであり、回避しなければなりません。オンライン ビジネスを成功させるには、"継続的な可用性" が不可欠です。

Web サイトを障害やデータの損失から保護するには、冗長性を持たせて 1 つのコンポーネントの障害がアプリケーションの障害につながらないようにします。"クラスタ化" 機能を使用すれば、アプリケーション サービスを提供するサーバーの冗長性をサイトに盛り込むことができます。

この記事では、Microsoft® Windows® 2000 のクラスタ サービスおよび Microsoft SQL Server 2000 を使った Duwamish オンライン データベース クラスタの設計と実装について説明します。

クラスタの種類

この記事で取り上げるのはフェールオーバー クラスタで、これは負荷分散クラスタとは異なります。負荷分散を実装するサーバー クラスタでは、処理要求をすべてのサーバーに分散させます。負荷分散クラスタ内のサーバーは、処理の負荷を共有しますが、ディスク アレイやメモリなどのリソースは共有しません。サーバーの 1 つに障害が発生すると、単にその処理負荷がクラスタ内の残りのノードに再分散されます。Duwamish オンラインにおける Windows 2000 の負荷分散の使用については、過去の記事「Building a Highly Available and Scalable Web Farm」 を参照してください。

一方フェールオーバー クラスタは、リソースを共有する複数の独立したコンピュータから構成されるため、サーバーの 1 つに障害が発生した場合は、クラスタ内の別のサーバーが処理負荷と共にリソースも引き継ぎます。このようなクラスタ ノードによるリソース管理は、データベース サービスやメッセージング サービスなどを提供する状態を保つアプリケーションで冗長性を実装する場合に必要となります。

フェールオーバー クラスタ内のコンピュータ間ではリソースが共有されると言われていますが、この論理的な共有の実際の実装は、どの時点でも一切共有を行わないソリューションと、ある時点で実際にリソースを共有するソリューションに分けることができます。共有されるリソースはディスク アレイであることが多いため、ほとんどのクラスタ化ソリューションは、Shared Nothing モデル、または Shared Disk モデルのどちらかがベースとなっています。

"何も共有しない (Shared-Nothing)" モデルでは、クラスタ内の各サーバーが別々のリソースを制御します。たとえば共有ディスク アレイ内の異なるディスク パーティションなどです。このため、特定のリソースやパーティションを同時に所有しアクセスできるのは、1 つのサーバーだけです。障害が発生した場合は、クラスタ内の残ったサーバーが障害の発生したサーバーのリソースを引き継ぎ、それ以降のクライアント要求はそのサーバーにルーティングされます。Windows 2000 のクラスタ サービスの実装は、この Shared Nothing モデルがベースとなっています。Duwamish オンラインでは、この記事の焦点でもあるこの技術を使用しています。

"ディスク共有 (Shared-Disk)" モデルでは、クラスタ内の複数のサーバーが同時に共有ディスクにアクセスできます。ただし、データの整合性を確保するための同期化ロジックがこのモデルを複雑にしています。Windows 2000 のクラスタ サービスではこのモデルを使用していません。

Windows 2000 におけるフェールオーバー クラスタ

Microsoft Windows 2000 Advanced Server および Microsoft Windows 2000 Datacenter Server には、フェールオーバー クラスタのためのクラスタ サービスが用意されています。これは、Microsoft Windows NT® 4.0 Enterprise Edition のクラスタ化技術である "Wolfpack" の後継機能です。Windows 2000 のクラスタ サービスでは、独立したサーバー (ノード) のグループを集合的に動作させることで冗長性をサポートします。その主な目的は、データベース、メッセージ システム、ファイル/印刷サービスなどのアプリケーションに対してフェールオーバーをサポートすることです。Windows 2000 Advanced Server では 2 ノードのフェールオーバー クラスタがサポートされていますが、Windows 2000 Datacenter Server では 4 ノードまでの構成がサポートされています。

クラスタ サービスは、Shared Nothing クラスタモデルを実装しています。このモデルでは、各ノードが独自のディスク リソースを所有するため、論理的にはどの時点においても "何も" 共有されません。ただし物理的には、SCSI (Small Computer System Interface) や Fiber Channel などの共通のバス アーキテクチャを通じて、すべてのノードがすべてのディスク リソースにアクセスできます。いずれかのノードでハードウェア障害やソフトウェア障害が発生した場合は、そのノードで実行されていたアプリケーション (複数の場合もあります) が、クラスタ サービスによって残ったノードに移行され、再起動されます。これで、この残ったノードがその元々のディスク リソースに加えて、障害の発生したノードのディスク リソースを排他的に所有することになり、フェールオーバーの際にデータが失われることはありません。

クラスタ サービスは、主に active-to-active および active-to-passive の 2 種類の構成で運用できます。

"active-to-active" 構成では、すべてのノードが同時にそれぞれのアプリケーションをアクティブに管理します。アクティブなノードのいずれかに障害が発生すると、そのノードのすべてのアプリケーションが残ったノードに転送され、そのノードから提供されます。

"active-to-passive" 構成では、1 つのノードがすべてのアプリケーションをアクティブで実行し、もう一方のノードは単に "ホット スタンバイ" として使用されます。アクティブなノードで障害が発生した場合は、スタンバイ ノードが自動的にすべてのアプリケーションの運用を引き継ぎます。

SQL Server 2000 におけるフェールオーバー クラスタ

Microsoft SQL Server では、バージョン 6.5 より、データ サービスの可用性を高めるためにクラスタ化をサポートしています。SQL Server 2000 では、フェールオーバー クラスタが拡張されて、インストール、構成、管理が以前より簡単になりました。

SQL Server 2000 でのフェールオーバー クラスタは、Windows 2000 のクラスタ サービスの上に構築され、SQL Server がデータとログ ファイルを格納する共有ディスク アレイ システムへのアクセス制御をクラスタ サービスに依存します。SQL Server 2000 がサポートするのは Shared Nothing クラスタモデルで、各ノードが独自のリソースを管理し、非共有型のデータ サービスを提供します。ノードに障害が発生した場合は、そのノードのディスクとサービスが残りのノードにフェールオーバーされますが、どのような場合でも、特定のディスクとサービスは単一のノードによって管理されています。

SQL Server 2000 におけるフェールオーバー クラスタは、active-to-active および active-to-passive の 2 種類のモデルで構成できます。

"active-to-active" 構成では、クラスタ内の各ノードが、クラスタ サービスによって管理される SQL Server のインスタンス (プロセス) を独自に所有します。すべてのインスタンスはフロントエンド サーバーから利用可能で、各インスタンスは独自のデータを処理します。フェールオーバー発生時は、障害の発生したノードが所有していたリソースとデータを、残ったノードが引き継いで提供します。各サーバーに独立したマスタ データベース (master.dat) と一組のユーザー データベースが配置されます。

"active-to-passive" 構成では、クラスタが、クラスタ サービスによって管理される SQL Server のインスタンスを 1 つだけ実行します。常に 1 つのノードのみがクライアント要求にアクティブに応答します。アクティブなノードに障害が発生した場合は、クラスタ内のもう一方のスタンバイ (パッシブ) ノードが、同じ SQL Server インスタンス (クラスタ サービスによってスタンバイ ノードで起動されたもの) を実行し、障害の発生したノードが所有していたすべてのデータを提供します。この構成では、2 つのサーバーが同じマスタ データベースとユーザー データベースを共有します。

設計に関する考慮事項

今回は、よりシンプルな active-to-passive 構成でデータベース クラスタを構成します。この構成を使うと、アプリケーションを複雑にすることなく、フェールオーバー クラスタを通じて可用性を高めることができるためです。アプリケーションから見ると、active-to-passive 構成のフェールオーバー クラスタと単独のデータベース サーバーとの間に違いはありません。

active-to-active クラスタのノードは、それぞれが SQL Server のインスタンスを独自に所有します。このため、パーティション化されたデータベース、あるいはインスタンス間のレプリケーションを使用するデータベースには active-to-active 構成が適しています。パーティション化を行うと、負荷分散と冗長性は実現されますが、複雑さは増大します。

この記事では、active-to-passive 構成をセットアップする手順のみを取り上げます。

Duwamish オンラインのシステム アーキテクチャの概要

注 : ここで使用するネットワーク アーキテクチャの詳細については、Duwamish オンラインの構成概要を説明している「Understanding the Network and System Configuration」を参照してください。

Cc966579.d5clustering01(ja-jp,MSDN.10).gif

図 1. Duwamish オンラインのネットワーク アーキテクチャ

バックエンドのネットワークでは、2 つのまったく同じデータベース サーバーが、共有外部 SCSI 記憶装置に接続されています。これらのサーバーに、Windows 2000 のクラスタ サービスと SQL Server 2000 のフェールオーバー クラスタをインストールおよび構成して、データベース サーバー クラスタを形成します。

これらのソリューションを使ってアーキテクチャの冗長性を高めていますが、障害箇所はまだ存在します。それは、現構成におけるネットワーク スイッチと共有ディスク アレイです。ただし、電子商取引ビジネスの開始時としては、これらが許容範囲のリスクであると判断しました。ディスク アレイは、内部的に冗長であるため十分に信頼できます。また、スイッチは、可動部品のあるサーバー ハードウェアよりも通常は信頼性が高く、障害が発生した場合も比較的簡単に交換できます。スタンバイ スイッチは、手動のフェールオーバーによって冗長性を実装します。

ハードウェアのインストールと構成

以下に示すのは、この 2 種類のクラスタ化技術を、Duwamish オンライン データベース クラスタ向けにセットアップするための手順です。インストールと構成のプロセスは、Microsoft 製品のマニュアルに基づいています。クラスタ サービスのインストール手順は、「ステップバイステップ ガイド:クラスタ サービスのインストール」(https://www.microsoft.com/japan/technet/prodtechnol/windows2000serv/techinfo/planning/server/clustersteps.mspx Non-MSDN Online link) に基づいています。この記事は、このガイドの内容を繰り返すのではなく、それを補足するものです。実際にクラスタを実装する場合は、クラスタ関連のマニュアルを入手してください。

システム要件を確認する

各種ハードウェア構成を使ったパフォーマンス テストの結果を基に、2 台のデュアルプロセッサ サーバーをバックエンド データベース クラスタに使用することにしました。この決定に至った経緯については、今後発行される容量計画に関する記事を参照してください。

Cc966579.d5clustering02(ja-jp,MSDN.10).gif

図 2. バックエンド データベース クラスタのハードウェア構成

各データベース サーバーには、専用の RAID (Redundant Array of Independent Disk) SCSI コントローラ カードが搭載されています。このカードは共有外部 SCSI 記憶装置に接続されます。

各サーバーにはそれぞれ 3 つのネットワーク インターフェイス カード (NIC) が搭載されています。NIC の 1 つは、2 つのサーバー間のプライベート クラスタ通信に使用されます。この NIC は、クラスタの "ハートビート メカニズム" を提供するもので、イーサネットの交差ケーブル経由でもう一方のクラスタ サーバーに接続されます。ほかの 2 つの NIC のうちの 1 つは、バックエンド ネットワークに接続され、100 Mbps (メガビット/秒) のネットワーク スイッチを介してフロントエンド Web サーバーにアクセスします。残りの NIC は、サーバー管理が行われるバックエンド ネットワークに接続されます。またこの NIC は、最初の NIC がハートビート メカニズムを提供できなかった場合に備えて、プライベート クラスタ通信の冗長なバックアップ接続としても機能します。

共有 RAID 記憶装置を設定する

この例の外部記憶装置は、9 ギガバイト (GB) の容量を持つ SCSI ディスク ドライブ 4 台で構成されています。ほかの高価なハイエンド インテリジェント RAID ソリューションとは対照的に、このシステムは RAID 5 ディスク アレイの制御と管理をサーバー マシンの RAID SCSI コントローラ カードに依存しています。

Dell PowerVault 外部 SCSI 記憶装置を RAID 5 ディスク アレイとして設定するには、ベンダーのインストール手順に従って、次のようにコントローラのファームウェアから RAID 設定ユーティリティを起動します。

  1. ブート シーケンス中に、次の例のようなメッセージを伴ったダイアログ ボックスが表示されます。 PowerEdge Expandable RAID Controller BIOS1.25 May 28, 1998 Copyright ?American Megatrends, Inc. Press to run the BIOS Configuration Utility Firmware Initializing... [Scanning SCSI Device]
  2. このダイアログ ボックスが表示されたら、直ちに Ctrl + M キーを押して RAID 構成ユーティリティを起動します。

RAID 設定ユーティリティを使用することで、4 台の 9 GB SCSI ハード ドライブを 1 つの 25 GB RAID 5 論理ドライブとして設定できます。RAID の設定の詳細については、『Dell PowerEdge Expandable RAID Controller 2/SC User's Guide』 (英語) を参照してください。

「ステップバイステップ ガイド:クラスタ サービスのインストール」(https://www.microsoft.com/japan/technet/prodtechnol/windows2000serv/techinfo/planning/server/clustersteps.mspx Non-MSDN Online link) の付録にも記載されているように、各サーバーに搭載された RAID SCSI コントローラ カードを含め、同じ共有 SCSI バス上の SCSI デバイスすべてに一意の SCSI ID 番号を割り当て、これらを適切に終了することが重要です。

すべてのサーバー ハードウェアがクラスタ固有の設定であらかじめ構成されるわけではないため、2 つのデータベース サーバーの RAID SCSI コントローラ カードは、どちらも出荷時に SCSI ID が既定値の 7 に設定されています。この例では、インストールされているソフトウェアで SCSI ID を変更できなかったため、コントローラ カードの 1 つの SCSI ID を 6 に変更するためにファームウェア (http://support.dell.com/ からダウンロード) を更新する必要がありました。

プレインストールの手順

既に説明したように、Windows 2000 Advanced Server と Windows 2000 Datacenter Server はどちらもクラスタ サービスを提供し、Advanced Server は 2 ノードのクラスタ、Datacenter Server は最大 4 ノードをサポートします。Duwamish オンラインの可用性の要件に最も適しているのは 2 ノード クラスタであると判断したため、Advanced Server を選択することにしました。

インストールを開始する前に、「ステップバイステップ ガイド:クラスタ サービスのインストール」(https://www.microsoft.com/japan/technet/prodtechnol/windows2000serv/techinfo/planning/server/clustersteps.mspx Non-MSDN Online link) の「Cluster Installation Overview」を一読しておくことをお勧めします。たとえば、このセクションには、"クラスタ サービスが少なくとも 1 つのノードにインストールされ、そのノードがオンラインでない限りは、両方のノードから同時に共有記憶装置にアクセスしてはならない" と書かれています。この指示に従わないと、共有記憶装置内のデータが失われたり壊れる可能性があります。

ネットワーク アダプタを設定する

ネットワークを設定する際は、共有記憶装置の電源を切ってから両方のデータベース サーバーを再起動します。

図 2 に示されているように、それぞれのデータベース サーバーには 3 つの NIC が搭載されています。

以下に示すのは、データベース サーバー 1 の各 NIC を構成する手順です。詳細については、「ステップバイステップ ガイド:クラスタ サービスのインストール」(/japan/technet/prodtechnol/windows2000serv/techinfo/planning/server/clustersteps.mspx Non-MSDN Online link) の「Configuring the Private Network Adapter」、「Configuring the Public Network Adapter」、「Rename the Local Area Network Icons」 の各セクションを参照してください。これらの手順の順序は、Duwamish オンラインのシナリオに合わせて若干変更されているので注意してください。

  1. ネットワーク ケーブルをたどるか、接続のプラグを抜いてみて、どのネットワーク接続にどのネットワーク セグメントが接続されているかを確認します。対応するネットワーク セグメントに従って、ネットワーク接続の名前を変更します。この例では、それぞれの接続名を "プライベート クラスタ接続"、"バックエンド接続"、および "管理接続" に変更します。

  2. プライベート クラスタ接続に対して、表 1 に示すデータベース サーバー 1 のパラメータで TCP/IP (Transmission Control Protocol/Internet Protocol) の各プロパティをセットアップします。

  3. プライベート クラスタ接続については、さらに NetBIOS (network basic input/output system) over TCP/IP を無効にする (「ステップバイステップ ガイド:クラスタ サービスのインストール」(/japan/technet/prodtechnol/windows2000serv/techinfo/planning/server/clustersteps.mspx Non-MSDN Online link) を参照) と共に、このネットワーク アダプタのネットワークの実際の速度と媒体の種類を明示的に指定します。

  4. バックエンド接続に対して、表 1 に示すデータベース サーバー 1 のパラメータで TCP/IP のプロパティをセットアップします。

  5. 管理接続に対して、表 1 に示すデータベース サーバー 1 のパラメータで TCP/IP のプロパティをセットアップします。

  6. データベース サーバー 2 について、表 1 に示すように、異なる TCP/IP プロパティで上記の手順を繰り返します。

表 1. 2 つのデータベース サーバーの TCP/IP プロパティの要約

  データベース サーバー 1 データベース サーバー 2
プライベート クラスタ接続
  • IP アドレス
  • サブネット マスク
  • NIC の接続の種類
  • NetBIOS over TCP/IP

10.11.11.15

255.255.255.0

100BaseTx Full Duplex

無効

10.11.11.16

255.255.255.0

100BaseTx Full Duplex

無効

バックエンド接続
  • IP アドレス
  • サブネット マスク
  • 優先 DNS サーバー

10.10.10.15

255.255.255.0

10.10.10.18

10.10.10.16

255.255.255.0

10.10.10.18

管理接続
  • IP アドレス
  • サブネット マスク

10.7.7.15

255.255.255.0

10.7.7.16

255.255.255.0

注 : インターネットの規約上、10 で始まる IP アドレスは、内部ネットワーク専用と見なされます。この 10.x.x.x というアドレスとの間にはインターネット トラフィックが発生しません。このため、IP アドレスと競合する可能性を避けて、10.x.x.x というアドレスの専用ネットワークを構成すると安全です。

ネットワークの接続性を確認する

以下の操作を行って、すべてのネットワーク接続を確認します。詳細については、「ステップバイステップ ガイド:クラスタ サービスのインストール」(https://www.microsoft.com/japan/technet/prodtechnol/windows2000serv/techinfo/planning/server/clustersteps.mspx Non-MSDN Online link) の「Verifying Connectivity and Name Resolution」を参照してください。

  1. 各データベース サーバーで、コマンド プロンプトから ipconfig を実行し、表 1 に示したようなネットワーク アダプタの一覧と対応する TCP/IP の設定を表示します。
  2. ping を使用して、すべてのネットワーク接続がアクティブであるかどうかを確認します。たとえば、データベース サーバー 2 の 10.11.11.16、10.10.10.16、および 10.7.7.16 に対してデータベース サーバー 1 から ping を実行し、その逆の操作も行います。

ドメインのメンバシップを確認する

ネットワーク上にドメイン コントローラがセットアップ済みであることが前提となります。

クラスタのすべてのノードは同じドメインに属し、そのドメイン コントローラにアクセスできる必要があります。たとえば、"TESTLAB.COM" という既存のドメインに加えるには、まず [マイ コンピュータ] アイコンをマウスの右ボタンでクリックし、[プロパティ] をクリックします。次に、[ネットワーク ID] タブをクリックして、ドメインの名前を指定します。詳細については、「ステップバイステップ ガイド:クラスタ サービスのインストール」(/japan/technet/prodtechnol/windows2000serv/techinfo/planning/server/clustersteps.mspx Non-MSDN Online link) の「Verifying Domain Membership」を参照してください。

クラスタ ユーザー アカウントをセットアップする

クラスタ サービスでは、サービスを実行するためのドメイン ユーザー アカウントが必要です。このユーザー アカウントは、クラスタ サービスをインストールする前に作成する必要があります。これは、セットアップにユーザー名とパスワードが必要となるためです。また、このユーザー アカウントは管理者グループの "メンバ" であることが必要です。詳細については、「ステップバイステップ ガイド:クラスタ サービスのインストール」(https://www.microsoft.com/japan/technet/prodtechnol/windows2000serv/techinfo/planning/server/clustersteps.mspx Non-MSDN Online link) の「Setting Up a Cluster User Account」を参照してください。

共有ディスクをセットアップする

共有ディスクをセットアップする前に、すべてのノードをシャット ダウンし、最初のノードと共有記憶装置のみを起動します。両方のノードを実行したまま共有ディスクをセットアップすると、共有ディスク上のデータが失われたり壊れる可能性があります。

共有ディスクをパーティションに分割する

Windows 2000 のディスク管理ツールを使って、25 GB 共有ディスクに 4 つの論理パーティションを作成します。図 3 は、Duwamish オンラインの共有ディスクの最終的な設定を示しています。詳細については、「ステップバイステップ ガイド:クラスタ サービスのインストール」(https://www.microsoft.com/japan/technet/prodtechnol/windows2000serv/techinfo/planning/server/clustersteps.mspx Non-MSDN Online link) の「About the Quorum Disk」、「Configuring Shared Disks」、「Assigning Drive Letters」の各セクションを参照してください。

Cc966579.d5clustering03(ja-jp,MSDN.10).gif

図 3. 共有ディスクのパーティション設定

共有ディスクのセットアップに関するガイドラインを以下に示します。

  • クラスタの管理に役立つクラスタ構成とログ ファイルの格納には、クォーラム ディスクと呼ばれる独立したディスクまたはパーティションを使用します。
  • 共有ディスクはすべて NTFS ファイル システムとしてフォーマットし、種類には "Basic" を指定します。
  • 各パーティションにドライブ文字を割り当てます。

ディスクへのアクセスを確認する

新しく作成した共有パーティションをテストします。その方法として、各パーティションに対して単純なテキスト ドキュメントの書き込みと読み取りを行います。詳細については、「ステップバイステップ ガイド:クラスタ サービスのインストール」(https://www.microsoft.com/japan/technet/prodtechnol/windows2000serv/techinfo/planning/server/clustersteps.mspx Non-MSDN Online link) の「Verifying Disk Access and Functionality」を参照してください。

共有装置に電源を入れた状態で、最初のクラスタ ノードをシャット ダウンし、2 番目のノードを起動します。最初のノードと同じ方法で、2 番目のノードに作成した 4 つのパーティションへのアクセスを確認します。

2 番目のノードをシャット ダウンし、最初のノードを再起動してクラスタ サービスの最初のノードを構成します。

Windows 2000 クラスタ サービスのインストール

最初のノードを構成する

Windows 2000 のクラスタ サービスのインストールは、以下の手順で行います。詳細については、「ステップバイステップ ガイド:クラスタ サービスのインストール」(https://www.microsoft.com/japan/technet/prodtechnol/windows2000serv/techinfo/planning/server/clustersteps.mspx Non-MSDN Online link) の「Configuring the First Node」を参照してください。クラスタ化技術は、Windows 2000 Advanced Server および Windows 2000 Datacenter Server でしか利用できないので注意してください。

  1. コントロール パネルの [アプリケーションの追加と削除] をダブルクリックします。次に [Windows コンポーネントの追加と削除] をクリックし、[クラスタ サービス] チェック ボックスをオンにします。

  2. クラスタ サービスの構成ウィザードで、特に説明する必要のないダイアログ ボックスをいくつか過ぎた後に、[クラスタの作成または参加] ダイアログ ボックスが表示されます。このダイアログ ボックスで、最初のノードへのクラスタのインストールを指定するオプション ボタンをクリックし、次に進みます。

  3. [クラスタ名] ダイアログ ボックスで、クラスタの共通名を指定します。たとえば、Duwamish オンラインの実稼働ファームには "D5DBCLUSTER" という名前を使用します。

  4. [アカウントの選択] ダイアログ ボックスで、先に設定したクラスタ ユーザー アカウントの情報を入力します。

  5. 指定したクラスタ ユーザー アカウントが管理者グループの "メンバ" としてセットアップされていない場合は、図 4 に示すダイアログ ボックスが表示されます。[はい] をクリックします。

    Cc966579.d5clustering04(ja-jp,MSDN.10).gif

    図 4. クラスタ ユーザー アカウントを管理者グループに追加する

  6. [管理されるディスクの追加または削除] ダイアログ ボックスには、図 5 のように、ローカル システム ディスクと同じバス上に存在しないすべての SCSI ディスクが、管理されるディスクの一覧に表示されます。この中には、共有ディスク アレイ システム内のすべてのディスク パーティションも含まれます。[次へ] をクリックして次に進みます。

    Cc966579.d5clustering05(ja-jp,MSDN.10).gif

    図 5. クラスタ ディスクを構成する

  7. [クラスタ ファイルの記憶域] ダイアログ ボックスで、クォーラム リソースのディスクを指定します。例では、ディスクのボックスで E ドライブを選択しました。

  8. バックエンド接続の [ネットワーク接続] ダイアログ ボックスで、ネットワークの用途となるクラスタの役割を指定します。[クライアント アクセスのみ (パブリック ネットワーク)] をクリックします。

  9. 管理接続の [ネットワーク接続] ダイアログ ボックスで、ネットワークの用途となるクラスタの役割を指定します。[内部クラスタ通信のみ] をクリックします。このネットワーク接続は、続いてセットアップされるプライベート クラスタ通信に加えて、内部クラスタ通信の冗長なバックアップ接続として使用されます。

    注 : 「ステップバイステップ ガイド:クラスタ サービスのインストール」(https://www.microsoft.com/japan/technet/prodtechnol/windows2000serv/techinfo/planning/server/clustersteps.mspx Non-MSDN Online link) の「Configuring the First Node」に記載されている手順 18 ~ 22 は、すべてのネットワーク構成に適用できるわけではありません。これらの手順が適用されるのは、プライベート クラスタ接続のネットワークでハブやスイッチを使用している場合だけです。この例のネットワーク構成のように、ネットワークにイーサネットの交差ケーブルが使用されている場合は、この記事の手順に従ってください。

  10. [クラスタ IP アドレス] ダイアログ ボックスで、クラスタの IP アドレスを指定します。ここでは「10.10.10.51」と入力し、サブネット マスクとして「255.255.255.0」と入力します。また、バックエンド接続をデータベース クラスタの "パブリック" ネットワークとして選択します。

    注 : IP アドレスには、バックエンド接続の未使用の IP 番号を、10.10.10.x の形式で指定する必要があります。

  11. 最後に [完了] をクリックして、最初のノードに対するクラスタの構成を終了します。

「ステップバイステップ ガイド:クラスタ サービスのインストール」(https://www.microsoft.com/japan/technet/prodtechnol/windows2000serv/techinfo/planning/server/clustersteps.mspx Non-MSDN Online link) の「Validating the Cluster Installation」の説明に従ってクラスタ アドミニストレータを起動すると、図 6 のようなウィンドウが表示されます。

Cc966579.d5clustering06(ja-jp,MSDN.10).gif

図 6. 最初のノードの構成が終わった状態のクラスタ アドミニストレータ

この段階では、最初のノードで 2 つのネットワークしか利用できません。これは、3 番目のネットワークにイーサネットの交差ケーブルが使用されているためです。2 番目のノードに対するクラスタのインストールが完了すれば、プライベート クラスタ接続が構成されます。

2 番目のノードを構成する

最初のノードと共有ディスク デバイスの実行を終了し、クラスタをインストールする 2 番目のノードを起動します。

2 番目のノードに対するクラスタ サービスのインストールは、最初のノードよりもはるかに簡単です。実際には、最初のノードにクラスタ サービスをインストールしたときと同じ手順に従いますが、次の点が異なるので注意してください。

  1. [クラスタの作成または参加] ダイアログ ボックスでは、[クラスタの 2 番目以降のノード] をクリックします。

  2. [クラスタ名] ダイアログ ボックスでは、最初のノードに定義した「D5DBCLUSTER」を入力しますが、[クラスタへの接続] チェック ボックスはオンにしないでください。

  3. その他の手順については、特に説明する必要はありません。これらの手順に従って、2 ノード クラスタ サービスのインストールを完了させます。

  4. ここでクラスタ アドミニストレータを開くと、図 7 のように、左側のペインに 2 つのデータベース サーバー ノードの名前 (D5PRODB1 と D5PRODB2) が表示されます。この時点で、共有ディスク、クラスタ IP アドレス、クラスタ名などのクラスタ化されたリソースすべてが、最初のノード (D5PRODB1) によって所有されています。つまり、最初のノードからは共有ディスク ファイルにアクセスできますが、2 番目のノードからはアクセスできません (これが Shared Nothing クラスタモデルであることを思い出してください)。

    Cc966579.d5clustering07(ja-jp,MSDN.10).gif

    図 7. 2 つのノードを示すクラスタ アドミニストレータ

  5. プライベート クラスタ接続は、Cluster Configuration フォルダの Networks サブフォルダの下に表示されます。この接続のアイコンを右クリックし、[プロパティ] をクリックします。[プロパティ] ダイアログ ボックスで、[内部クラスタ通信のみ] をクリックします。

    注 : プライベート クラスタ接続のネットワークにハブやスイッチを使用する場合は、この手順が不要となります。「ステップバイステップ ガイド:クラスタ サービスのインストール」(https://www.microsoft.com/japan/technet/prodtechnol/windows2000serv/techinfo/planning/server/clustersteps.mspx Non-MSDN Online link) の「Configuring the First Node」に示されている手順 18 ~ 22 は、このプライベート クラスタ接続をセットアップする手順を既に完了した状態で行っています。

  6. また、クラスタ アドミニストレータの左側のペインで、クラスタ名 D5DBCLUSTER を右クリックし、[プロパティ] を選択します。[ネットワークの優先順位] タブをクリックし、[プライベート クラスタ接続] を一覧の一番上に移動します。

    これにより、プライベート クラスタ接続が内部クラスタ通信のプライマリ ネットワークとして指定され、プライマリ ネットワークに障害が発生したときは、管理接続にフェールオーバーされます。

これで、active-to-passive モードの 2 ノード サーバー クラスタのセットアップが完了しました。この構成では、1 つのノードがすべての共有ディスク リソースを完全に制御します。もう一方のノードは、ホット スタンバイとして機能し、最初のノードが機能しなくなった場合に、共有リソースの制御を自動的に引き継ぎます。

インストールを確認する

「ステップバイステップ ガイド:クラスタ サービスのインストール」(https://www.microsoft.com/japan/technet/prodtechnol/windows2000serv/techinfo/planning/server/clustersteps.mspx Non-MSDN Online link) で説明されているように、クラスタ サービスのインストールが成功したことを簡単に確認するには、リソースのクラスタ グループを一方のノードからもう一方のノードに移動するのが 1 つの方法ですが、これ以外にも多数の方法があります。

  • [クラスタ アドミニストレータ] ダイアログ ボックスの [クラスタ グループ] アイコンを右クリックし、[移動] をクリックします。15 ~ 30 秒ほどで、共有ディスクなどのすべての共有リソースの所有権が、もう一方のノードに移動されたことを確認できます。

  • クラスタを確認するもう 1 つの方法として、フロントエンド サーバーの 1 つからネットワーク ドライブを割り当てます。たとえば、実稼働ファームの Web サーバーの 1 つから、ネットワーク ドライブを \\10.10.10.51\E$ に割り当てます。この場合、10.10.10.51 は、サーバー クラスタのクラスタ IP アドレスです。

    このネットワーク ドライブにメモ帳などで簡単なドキュメントを作成し、その後そのドキュメントにアクセスして読み取ることができるかどうかを確認します。

    これらの確認方法に従って、クラスタ リソースを一方のノードからもう一方のノードに移すことで、サーバー クラスタを手動でフェールオーバーします。すべてのリソースをもう一方のノードに切り替えた後で、先ほど作成したメモ帳のドキュメントに Web サーバーからアクセスして内容を読み取り、サーバー クラスタのフェールオーバーが成功したかどうかを確認します。

  • サーバー クラスタのフェールオーバーをテストする 3 番目の方法として、制御を担当するノードからネットワーク ケーブルを抜いてみます。その後で先ほど説明した 1 番目または 2 番目の確認方法に従って、残ったノードが共有リソースを制御しているかどうかを確認します。

  • 最終的なフェールオーバー テストでは、制御を担当するノードの電源を切って、残ったノードが自動的に処理を引き継ぐかどうかを確認します。

Duwamish オンライン セットアップに対してこれらすべてのテストを行い、サーバー クラスタが完全に機能することを確認しました。次に、フェールオーバー クラスタを有効にした SQL Server 2000 をこのクラスタにインストールします。

SQL Server 2000 のクラスタのインストール

Duwamish オンラインの最初の展開では、active-to-passive 構成を実装してデータベース管理をできるだけシンプルにすることにしました。

DTC を構成する

SQL Server Books Online のドキュメント「Installation Using Windows 2000」 (SQL Server 2000 に付属) を基に、DTC (分散トランザクション コーディネータ) にサーバー クラスタを認識させる必要があります。そのためには次の操作を行います。

  1. コマンド プロンプトから Comclust.exe を実行します。

  2. このプログラムが終了したら、[クラスタ アドミニストレータ] ダイアログ ボックスを開きます。すると図 8 のように、MSDTC が共有リソースの 1 つとしてクラスタ グループに追加されているのがわかります。

    Cc966579.d5clustering08(ja-jp,MSDN.10).gif

    図 8. クラスタ リソースとして追加された MSDTC

  3. もう一方のデータベース サーバー ノードで同じ操作を繰り返します。

SQL Server クラスタを新規作成する

Windows 2000 のクラスタ サービスが適切に構成されていれば、SQL Server 2000 にフェールオーバー クラスタをインストールする作業は比較的簡単です。共有ディスクを現在制御しているアクティブなサーバー ノードで以下の手順を実行します。SQL Server セットアップ ウィザードを使用すると、共有ディスクに加えて、両方のサーバー ノードのローカル ハード ドライブに必要なソフトウェアをセットアップできます。詳細については、『SQL Server Books Online』のドキュメントを参照してください。

SQL Server クラスタを新規作成するには

  1. CD-ROM から SQL Server Enterprise Edition をインストールします。Standard Edition と Desktop Edition では、フェールオーバー クラスタがサポートされていません。
  2. [コンピュータ名] ダイアログ ボックスで、データベース クラスタの仮想サーバー名を指定します (Duwamish オンラインではデータベース サーバー名として "D5Data" を使用)。[仮想サーバー] ボタンは選択したままにします。
  3. ライセンス関連のダイアログ ボックスをいくつか過ぎた後に、[フェールオーバー クラスタリング] ダイアログ ボックスで仮想サーバーの IP アドレスを指定します。Duwamish オンラインでは、仮想データベース サーバーの IP アドレスとして 10.10.10.50 を指定します。既に説明したように、内部プライベート ネットワーク (インターネットとの間でトラフィックを直接ルーティングできないネットワーク) には、10 で始まる任意の IP アドレスを使用できます。ただし、その IP アドレスは、バックエンド接続ネットワークのアドレス範囲内であることが必要です (Duwamish オンラインの場合は 10.10.10.x)。
  4. [クラスタ管理] ダイアログ ボックスでは、クラスタの 2 つのサーバーが構成されたノードとして追加されます。[次へ] をクリックして、既定の設定を確定します。
  5. [リモート情報] ダイアログ ボックスで、両方のサーバー ノードで有効な管理者パスワードを入力します (Duwamish オンラインでは "TESTLAB" ドメインの管理者アカウントを使用)。セットアップ用に管理者権限を持つドメイン アカウントを新たに作成して使用することもできます。
  6. [インスタンス名] ダイアログ ボックスで、既定のインスタンス名の使用を指定するチェック ボックスをオンにして、[次へ] をクリックします。
  7. [セットアップの種類] ダイアログ ボックスで、データ ファイルの保存場所を変更します。既定の E ドライブはクォーラム リソースに使用されているため、代わりに F ドライブを使用します。
  8. [サービス アカウント] ダイアログ ボックスで、手順 5 で入力した管理者アカウントをデータベース関連サービスに対して使用します。[各サービスに同じアカウントを使用する] をクリックします。
  9. セットアップ ウィザードによって、SQL Server プログラム ファイルが 2 つのサーバー ノードのローカル ハード ドライブにコピーされ、データ ファイルが共有ディスクにコピーされます。
  10. その後で、ライセンス情報を入力するよう要求されます。[完了] をクリックして、フェールオーバー クラスタのセットアップを終了します。

インストールを確認する

SQL Server 2000 でフェールオーバー クラスタが正常にインストールされたことを確認するには、次の手順に従います。

  1. クラスタ アドミニストレータを起動し、図 9 のように、SQL Server 関連リソースがクラスタ グループに追加されていることを確認します。

    Cc966579.d5clustering09(ja-jp,MSDN.10).gif

    図 9. SQL Server フェールオーバー クラスタがインストールされていることを示すクラスタ アドミニストレータ

  2. [クラスタ グループ] アイコンを右クリックし、[移動] をクリックして、フェールオーバーを手動で開始します。30 ~ 60 秒ほどで、共有ディスクと SQL Server を含むすべてのクラスタ リソースの所有権が、一方のサーバー ノードからもう一方のサーバー ノードに移ったことを確認できるはずです。この移動操作を 2 ~ 3 回繰り返して、2 つのサーバー ノード間でフェールオーバーが往復して行われることを確認します。

  3. アクティブなサーバー ノードに対して、ネットワーク ケーブルを抜いたり電源を切るなどして、ネットワーク障害やハードウェア障害をシミュレートします。フェールオーバーが行われ、残ったノードがすべてのクラスタ リソースの制御を引き継いでいることを確認します。

  4. 最後に、第 3 のコンピュータから仮想データベース サーバーへの ODBC (Open Database Connectivity) 接続をセットアップします。たとえば、フロントエンド Web サーバーの 1 つから "D5Data" というサーバーおよび "NorthWind" というサンプル データベースへのデータベース接続を作成します。Microsoft Query、または同様の機能を提供するツールを使って、新しい ODBC 接続を含んだテーブルを開きます。このテーブルのデータ レコードによって、接続を確認します。一方のノードからもう一方のノードにクラスタ グループを移動することで、サーバー クラスタを手動でフェール オーバーします。その後で、ODBC 接続が引き続きアクティブであり、正しいデータ セットを返すことを確認します。

サーバー クラスタでの運用管理

バックエンド サーバー クラスタをインストールした後は、それを管理する必要があります。サーバー クラスタを管理する際に実行しなければならない管理タスクとメンテナンス タスクには、以下のものがあります。

  • ハードウェアまたはソフトウェアのアップグレードを実行する。
  • クラスタ内のサーバーをプライマリ ノードからバックアップ ノードに移動する。
  • クラスタ内で SQL Server を追加または削除する。
  • 共有ディスク サブシステムを交換する。
  • システム修復ディスクを作成する。
  • システムのバックアップと復元を実行する。
  • サーバー パフォーマンスを監視し、改善する。

次に、データベース サーバー クラスタに対するこれらの共通タスクのいくつかについて詳しく説明します。

クラスタ化された SQL Server を管理する

クラスタ内の SQL Server を管理するには、クラスタ化されていないサーバーを管理する場合と同様に、SQL Server Enterprise Manager を使用します。ただし、対象となる SQL Server は常にリモート サーバーと見なされます。また、クラスタ化された SQL Server を開始するには、クラスタ サービス管理者のアカウントを使用する必要があります。クラスタ サービスは、クラスタ内の SQL Server の開始とシャットダウンをすべて監視していますが、サーバー障害とユーザーによるシャットダウンを区別できません。その結果、クラスタ サービスによって管理されないシャットダウンは障害と見なされ、クラスタ内のバックアップ ノード上でサーバーが再起動されます。Windows NT Service Control Manager を使ってクラスタ内のサーバーを開始またはシャット ダウンした場合も、同じ状況となります。

共有ディスクを交換する

クラスタ サービスでは共有ディスク アレイ システムの使用を必要とします。このシステムには、高いレベルのフォールト トレランスを実現する冗長メカニズムが組み込まれています。RAID 5 ディスク アレイでは、ハード ディスクの 1 つに障害が発生した場合、そのディスク装置をシステムから取り外して代わりの装置を取り付けるだけで済み、ディスク アレイ システムの通常の運用に支障が出ることはありません。システムでは、新しいハード ディスクがディスク アレイの一部として自動的に再構築されます。

ただし、同時に複数のハード ディスク装置に障害が発生したり、ディスク アレイ システムのほかの非冗長コンポーネントが壊れた場合は、交換作業の間クラスタをシャット ダウンしなければなりません。このような状況はまれですが、発生すると大きな被害を引き起こします。あらゆる最悪のシナリオに備えて計画と手順を立てておく必要があります。また、ダウンタイムを最小限に抑えてサイトの信頼性を高めるために、これらの手順を別のスタンバイ ディスク アレイ システムで試しておく必要があります。

システム修復ディスクを作成する

可用性の高いシステムの特徴の 1 つは、データをバックアップしてシステム障害が発生した場合に復元できる点です。システム修復ディスクには、起動しないシステムの復旧やバックアップの復元に必要なシステム関連情報が含まれています。ほかのシステムと同様に、システム構成を変更するときは、このディスクをアップデートする必要があります。

システム バックアップを実行する

システム修復ディスクにはクラスタ構成が含まれていません。この情報は、別のレジストリ ハイブに保存され、システム バックアップから復元できます。その場合は、クラスタ構成の情報が保存されているハイブをシステム バックアップに含める必要があります。

クラスタのセットアップに関するその他のヒント

以下に示すガイドラインは、組織にクラスタを実装する際に必要となります。

  • クラスタ サービスは、少なくとも 1 つのノードでインストールし、それを実行してから別のノードにインストールします。複数のノードが同時に実行され、共有記憶装置に接続されている場合に、クラスタ サービスがどちらのノードでも実行されていないときは、クラスタ サービスをインストールしないでください。
  • クラスタ サービスをインストールした後は、クラスタのどちらのノードでもコンピュータ名を変更できません。
  • クラスタ ノードまたはクラスタ アドレスに、WINS データベースの静的エントリを使用することはできません。
  • クラスタ リソースを構成する際に、サポートされていないネットワーク プロトコルや関連するネットワーク サービスの使用を指定することはできません。たとえば、IPX (Internetwork Package Exchange)、NETBEUI (NetBIOS Enhanced User Interface)、DLC (Data Link Control)、Appletalk、Services for Macintosh などはサポートされていません。Microsoft Cluster Server は、TCP/IP プロトコルのみをサポートします。
  • クラスタを実行する間、またはローカルのソフトウェア フォールト トレランスを使用している場合は、HKEY_LOCAL_MACHINE\System\Disk レジストリ キーを削除しないでください。

結論

Windows 2000 のクラスタ サービスおよび SQL Server のフェールオーバー クラスタのセットアップには、実に多くの単調な作業が伴います。ハードウェアとネットワークの構成を十分に計画することから始まり、各種のソフトウェア コンポーネントを特定の順序でインストールする必要があります。この記事の目標は、この長いプロセスを順調にスタートできるようにすることでした。

インストール中に問題が発生する可能性があるため、インストールのさまざまな段階でローカル ハード ディスクと共有ディスクのイメージを作成しておく必要があります。たとえばここでは、以下の段階のディスク イメージを作成しました。

  • ネットワークを設定した Windows 2000 Advanced Server の基本インストール
  • 上記のインストールに Windows 2000 のクラスタ サービスを加えたもの
  • 上記すべてを備えたインストールに SQL Server のフェールオーバー クラスタを加えたもの

これらのイメージがあれば、システムをいつでも直前の段階まで戻し、それ以降の手順をもう一度実行することができます。

参考記事

Windows 2000 のクラスタ サービスに関連するリンク

SQL Server 2000 のフェールオーバー クラスタに関連するリンク

ハードウェア構成に関連するリンク

ページのトップへ ページのトップへ