高可用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.複数の可用性向上テクノロジの組み合わせ | ||
更新履歴 | |
|
[高可用Windowsシステムの研究] |
- Azure Web Appsの中を「コンソール」や「シェル」でのぞいてみる (2017/7/27)
AzureのWeb Appsはどのような仕組みで動いているのか、オンプレミスのWindows OSと何が違うのか、などをちょっと探訪してみよう - Azure Storage ExplorerでStorageを手軽に操作する (2017/7/24)
エクスプローラのような感覚でAzure Storageにアクセスできる無償ツール「Azure Storage Explorer」。いざというときに使えるよう、事前にセットアップしておこう - Win 10でキーボード配列が誤認識された場合の対処 (2017/7/21)
キーボード配列が異なる言語に誤認識された場合の対処方法を紹介。英語キーボードが日本語配列として認識された場合などは、正しいキー配列に設定し直そう - Azure Web AppsでWordPressをインストールしてみる (2017/7/20)
これまでのIaaSに続き、Azureの大きな特徴といえるPaaSサービス、Azure App Serviceを試してみた! まずはWordPressをインストールしてみる
|
|