製品レビュー
Co-StandbyServer 2000 日本語版

1.Co-StandbyServer 2000の動作原理

デジタルアドバンテージ
2004/02/27
Co-StandbyServer 2000 日本語版

 まずはCo-StandbyServer 2000(以下CSBS2000)がどのような動作原理でアプリケーション・クラスタリングを実現しているのかを見てみよう。CSBS2000で構築されるクラスタリング・システムの構成を図示すると次のようになる。

CSBS2000によるクラスタリング・システムの基本構成
CSBS2000によるクラスタリング・システムの基本構成
CSBS2000では、通常のネットワーク接続とは別に専用リンク(100BASE-TXやギガビット・イーサネットなど)で2台のサーバを接続し、この専用リンクを介してハードディスクのデータ・ボリュームをミラーする。ソフトウェアについてはOS、アプリケーションとも同じものをインストールしておき、一方が停止したときには、他方がフェイルオーバーしてサービスを継続する。

 図のようにCSBS2000では、2台構成のクラスタリング・システムをサポートする。Windowsサーバの上位版がサポートするクラスタリング方式(Microsoft Cluster Service、以下MSCS)では、2台以上のサーバでクラスタを構成し、それらのサーバ間でフェイルオーバーだけでなく負荷分散などが行えるが、基本的にフェイルオーバー機能のみを提供するCSBS2000では、2台単位のクラスタのみを構築できる。この際、2台のサーバには通常のネットワーク接続用とは別にそれぞれ第2のネットワーク・カードを差し、これを専用ハブ(またはクロス・ケーブル)で接続する。これは「専用リンク」と呼ばれ、CSBS2000では、この専用リンクを介して2台のシステムが通信したり、ハードディスクのデータ・ボリュームをミラーリングしたりする。

 図に示したとおり、CSBS2000でミラーされるのはデータ・ボリュームのみで、Windows OSやSQL Server、Exchange Serverなどのシステム・ソフトウェアがインストールされたシステム・ボリュームはミラーされない(スワップ・ファイルのあるボリュームもミラーできない)。これらシステム・ソフトウェアの構成や設定は導入担当者の責任で一致させておき、障害発生時には他方ですべてのサービスが実行できるようにしておく。

 そして2台のサーバは専用リンクを通じてハートビート信号(正常に稼働していることを相手に知らせるために、一定時間ごとに発信される信号)をやりとりし、一方の信号が途絶えたら、正常稼働している方のサーバが他方をカバーする(ハートビート以外にも、ディスクやネットワークの故障などでも自動的にフェイルオーバーできる)。具体的には、それまでプライマリのサーバが使っていたIPアドレスをスタンバイしているサーバ(セカンダリ・サーバ)が引き継ぐとともに、データベースやメール・サーバ、Webサーバなどサーバ・アプリケーションの処理も引き継ぐ。データ・ボリュームの内容はあらかじめミラーリングされているので、サービスはこれまでのプライマリ・サーバが処理していたときと同じく継続される。ネットワークの接続セッションなどはいったん切断されるので、100%完全とはいかないが、ほとんどの場合、ユーザーはフェイルオーバーが発生したことを意識することなく、サービスを継続して利用できる。

 通常CSBS2000では、一方のサーバのみを使用してサービスを提供し、他方はバックアップ用として、普段はサービスを提供しないようにしておく。双方をアクティブにする構成も可能だが、その場合でも負荷分散を行うのではなく、例えば一方でSQL Serverを実行し、他方でIIS(Webサーバ)を実行するなど、お互いを補完し合うように使えるのみである(この場合でも、一方が障害を起こしたときに備えて、双方には同じソフトウェアをインストールしておく)。

アプリケーション・クラスタリングであるCSBS2000のメリット

 CSBS2000の最大の利点は、単一サーバで運用されているところに、スタンバイ側となるサーバを追加して、ソフトウェアをインストールするだけでクラスタを構成できることだ。MSCSでは、クラスタリングに対応した同一構成の高価なハードウェアを複数台用意する必要があるため、通常は既存のサーバを完全に置き換えることになる(IAサーバのモデル更新などは頻繁なので、既存のサーバとまったく同一のモデルを新たにもう1台調達できる可能性は高くない)。ハードウェアにかかるコストもさることながら、システムの完全な置き換えになるので、移行作業もかなりの工数になる。

 これに対しCSBS2000のようなアプリケーション・クラスタリングなら、サーバ・ハードウェアは同一である必要がない(ただし、フェイルオーバー時はプライマリのサーバに代わってサービスを行うので、スペック的には同一レベルのものが求められるが)。従って既存のサーバはそのままに、追加のサーバと2台でクラスタを構成できる。CSBS2000のセットアップは非常に簡単なので、ハードウェアの調達コストが小さいだけでなく、作業工数も非常に少なくて済む。

 また、ソフトウェアへの投資が小さいことも重要だ。Windows OSのクラスタリングでは、Windows 2000にしろWindows Server 2003にしろ、下位のパッケージはクラスタリング機能をサポートしない。これはSQL ServerやExchange Serverなどのミドルウェアについても同様である。従って単体サーバ環境からWindows OSのクラスタリング環境に移行するには、サーバ・ソフトウェアもことごとくグレードアップしなければならなくなる。

 これ以外にも、CSBS2000は共有ディスクを使用しないので、ディスクのミラーによりデータが2重化される、共有ディスクが単一の障害点にならない(共有ディスク方式では、共有ディスクが障害を起こすとサービスが停止してしまう)という長所がある。もちろん、より高価な共有ディスクを必要としないことメリットの1つだ。

 まとめれば、単一サーバで運用しているシステムから、わずかなコストと手間で手軽にクラスタ化できるということだ。ボトムアップ的に構築され、そのまま本稼働サービスとなったようなサーバの可用性をできるだけ低コストで高める方法としては非常に魅力的な選択肢だろう。特に、ファイル共有サービスやIISしか利用していないようなシステムならば、ほとんど何の手間もなく、システムを二重化させ、サービスの可用性を向上させることができる。発売元のネットジャパンによれば、CSBS2000(2001年10月発売)の主要なユーザー層はクラアント数50〜100台程度の中規模システムで、適用業種は官公庁から金融、物流まで幅広いとのこと。Webアプリケーション・サーバ・システムにおいて、フロエントエンドのWebサーバと組み合わせるバックエンド側のデータベース・サーバをクラスタ化する例が多いという。

アプリケーション・クラスタリングの欠点

 一方のアプリケーション・クラスタリングの欠点は、システム・ボリューム自体はクラスタ・サーバ間で完全に独立しているため、アプリケーションによってはクラスタリングがうまく働かない場合があることだ。典型的な例としては、リアルタイムでレジストリに情報を書き込むようなアプリケーションなどがある。レジストリのデータはクラスタ・サーバ間で独立しているので、リアルタイムにレジストリにデータを書き込み、その内容を元にして動作するアプリケーションは、セカンダリ・サーバがフェイルオーバーしても正しくサービスを継続できない可能性がある。

 例えばCSBS2000はExchange 2000 Serverをサポートしていない。Exchange 2000 ServerではActive Directoryと連動して、各ユーザーに関する情報などをActive Directoryに書き込む仕様になっている。フェイルオーバー時にはこうしたシステム情報をセカンダリ・サーバ側ですべて書き換える必要がある。少数のユーザーなら可能だが、ユーザー数が増えると、この書き換え作業を有意な時間内で完了できない(つまり実質的にフェイルオーバーできない)。現状CSBS2000でExchange 2000 Serverが未サポートなのはこのためだ。ネットジャパンによれば、現在ローカライズを進めているCSBS2000の次バージョン「Co-StandbyServer・AAdvanced」ではExchange 2000 Serverがサポートされるという。

 しかしこのように随時レジストリにデータを書き込むのではなく、アプリケーションが利用するレジストリ設定をあらかじめ手動で制御できるものなら(あらかじめ同じ設定を2つのサーバで行っておくなど)利用が可能だ。実際、SQL ServerやOracle、DB2などのデータベース・システム、IISなど、サーバ・アプリケーションの多くをCSBS2000環境でクラスタ化することが可能である(もちろん単なるファイル共有サービスならば、レジストリの設定すら必要なく、クラスタ化することができる)。

 多少の工夫が必要な場合もあるが、多くのアプリケーションはCSBS2000で利用できる。なおCSBS2000には、SQL Server 2000やExchange Server 5.5など、主要なサーバ・アプリケーションのセットアップを個別に支援するモジュールが同梱されている。

 またネットジャパンは、業務アプリケーションなど、ユーザー固有のアプリケーションにどう対応すればよいかについて、技術者向けのセミナーを開催している。さらに有償ではあるが、必要ならオンサイト・サポートを受けることも可能である。

CSBS2000の必要システム/価格

 CSBS2000を利用したクラスタリングの概要が分かったところで、さらに一歩踏み込んで、必要システム構成などを見てみようCSBS2000を利用するには、以下のようなハードウェア/ソフトウェア構成が必要である。

コンピュータ本体(サーバ)
 すでに述べたとおり、クラスタ化する2台のサーバのハードウェア構成は同一である必要はない(IBM PC/AT互換機のみ対応)。ただし各サーバは、1台で稼働する場合でも(フェイルオーバー時でも)、サーバ・アプリケーションを正常運用できるだけの性能が必要である。プライマリ・サーバが障害を起こして、セカンダリ・サーバに切り替わった際、セカンダリ・サーバが全アプリケーションの実行を請け負うことになるからだ。従って実際には、2台のサーバのプロセッサ/メモリ/ハードディスクの構成は、できるだけ近いものにした方が確実だろう。

 なお、CSBS2000の各種設定や状態監視はリモートから実行可能で、このためのソフトウェア(管理コンソール)も合わせて提供される。こちらはWindows 95/98/2000/NT 4.0の各OSにインストールできる(Windows XPやWindows Meでの動作についてはドキュメントに明確な記述はないが、Windows XP Professional SP1aでは特に問題なく利用できた)。この管理コンソールはJavaアプリケーションで、実行にあたってはVer.1.2以降のJava2ランタイムが必要だ。

ディスク・サブシステム(ハードディスク)
 ミラーリングを行うディスク・サブシステムの選択ではいくつか注意点がある。まず、保護(ミラー)するデータを保存するパーティションを、ブート・パーティション(OSを格納しているパーティション)やスワップ・ファイル用パーティションとは別に用意する必要がある(なおCSBS2000自体のインストール用として、ブート・パーティションに最低30Mbytesの空き容量が必要である)。ただし物理的に別のハードディスクを用意しなくても、データを保存するパーティションがブート・ボリュームやスワップ・ボリュームと別々になっていれば問題はない。前述したとおり、CSBS2000では、ブート・パーティションとスワップ・ファイル用パーティションをミラーリングで保護することはできない。ブート・パーティションやスワップ・ファイル用パーティションの保護が必要なら、ハードウェアRAIDなど別の手段を組み合わせる。またダイナミック・ボリュームも利用できない。

 ミラー用パーティションとしては、基本パーティションのみがサポートされ、拡張パーティションやその中に配置される論理ドライブは指定できない。また、Windows 2000のボリューム・セットやストライプ・セット、ミラーセットもミラー用パーティションとしては利用できない。

 ミラー用パーティションは、Active/Passive構成(通常時は一方のサーバだけでサービスを提供し、他方は待機する構成)なら最低で1区画、Active/Active(例えば一方でSQL Server、他方にIISをそれぞれ分担させ、両方同時に稼働させるような構成)では最低2区画必要になる。

 ファイル・システムは、プライマリ/セカンダリ・サーバ間で共通であれば、NTFSでもFATでもよい。ただしサーバ用途では、通常は安全性やパフォーマンスの高いNTFSを利用することになるだろう。

 ディスク・サブシステムの要件は以上で、これら以外は特に制限はない。要するに、Windows 2000が1つのドライブとして認識するディスクであれば利用が可能である。SCSIとIDE、あるいはハードウェアRAIDとSCSI/IDEといった具合に、ディスク・インターフェイスが異なる組み合わせでもミラーリングは可能だ。また共有ディスクを使わないのがCSBS2000の特徴と述べたが、必要なら共有ディスク・システムを使うこともできる。

専用リンク
 CSBS2000の2台のサーバは、通常のネットワーク・インターフェイス(クライアントにサービスを提供するインターフェイス)とは別に、サーバ同士をつなぐ専用リンクで結ぶ必要がある。つまり、ネットワーク・インターフェイスが最低でも2系統必要になる。専用リンク回線は、クラスタ化した2台のサーバ間で、ミラーされるデータを転送するのに用いられる。

 専用リンクのネットワーク・インターフェイスは、TCP/IPで通信可能なものなら何でもよい。ただしこの専用リンク回線を通じてデータがミラーリングされるので(片方に書き込まれたデータは、すぐに他方へとミラーされる)、サービスの性能を低下させないためには、最低でも100BASE-TX(全二重)か、できればギガビット・イーサネットを採用するのが望ましい。ギガビット・イーサネットなら、30Mbytes/s以上のスループットがあるので、これならば専用リンクがボトルネックになることはなく、ディスクの性能を最大限に利用することができるだろう。必要ならFibreChannelを利用してもよい。

OS
 CSBS2000がクラスタ・サーバとしてサポートするOSは、Windows 2000 ServerまたはWindows 2000 Advanced Serverである(Service PackレベルはSP1以上が必須だが、SP2以上を推奨。またWindows 2000 Datacenter Serverはサポート対象外)。なおドメイン・コントローラとメンバ・サーバの組み合わせでクラスタ化することはできない。ドメイン・コントローラ同士、メンバ・サーバ同士ならクラスタ化できる。

価格
 CSBS2000の価格は、1年間のサポート付きで135万9000円である。サポート・サービス料は年18万円で、2年目以降も引き続きサポートを受けたければこのサービスを購入する。中小規模システム用として考えると決して安くはないが、Windows OSがサポートするMSCSのように高価なハードウェアやソフトウェアを揃えることを考えれば、かなり安上がりといってよい。最終的にユーザーの要求に見合う金額かどうかは、万一のサービス停止によって受ける被害の大きさを天秤にかけることになるだろう。


 INDEX
  [製品レビュー]Co-StandbyServer 2000 日本語版
  1.Co-StandbyServer 2000の動作原理
    2.事前準備とインストール
    3.ミラーリングの設定

 製品レビュー


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

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間