2011年9月21日水曜日

RAC(リアルタイム アプリケーション クラスタ)の基盤を開発しようと思う。

自社開発を開始しているが、システムの可用性、冗長性の構成を考えている。
・GFSを使う
・ライフキーパーを使う
など、色々と考察してきたが、固まりつつある方法は、少し、特別かもしれない。
通常、クラスタの仕組みは、サーバは冗長化し、データベースも冗長化するが、共有ディスクは、レイドを組んでいるので、1つの共有ディスクにしてあるパターンが多い。しかし、可能性は非常に少ないものの、共有ディスク全体がふっとぶ可能性は、0ではない。

そこで、現在、構築しようと思っているのが
・サーバを2台、共有ディスク装置を2台準備する。
・ロードバランサから、2台のサーバ(アクティブーアクティブ)に対し、バランスさせる。
・1台が故障した場合は、他方のサーバにて処理を続行する。
・2台のサーバは、「リアルタイムで、同期処理を行う」。よって、いつも、2台のサーバは、同一のデータとなる。

さあ、この「リアルタイムで同期処理を行う」というのは、通常は、専用のミドルウエアなどで構築するところであるが。

それを作ってみようと思う。

完成したら、その方法を披露したいと思う。
・驚くべきシンプルさで
・驚くべき廉価で
・驚くべきパフォーマンス
を発揮する仕組みに挑戦しようと思う。