データの同期

データの同期をとる方法

フェイルオーバー型のクラスタシステムでは、メインで動作するサーバと待機しているサーバとで、データの同期がきちんと取れているかどうかが重要です。
データは常に変化しており、厳密な意味でのデータの同期を取ることは、なかなか難しくなっています。そこで、ある時点でのデータの同期をとることになります。
データの同期を取る方法としては、以下のようなものがあります。

 

サーバ間でディスク内容のコピーをとる

各サーバ間でディレクトリごとコピーを行うツール「rsync」や「Intermezzo」などを利用して、定期的に、あるいは必要に応じて実行します。用途によってはデータの同期がとれない可能性があります。さらに、頻繁に情報の更新が発生するような場合は、同期の頻度を上げる必要がありますが、上げすぎるとオーバーヘッドが大きくなりすぎる点が問題となります。

 

 

共有ディスクを利用する

メインのサーバと、待機しているサーバとで、ディスクを共通で使用する仕組みです。単にデータのコピーを定期的にとる場合、システムが停止したときに変更があったデータの内容は消失します。また、データに不整合が発生する可能性もあります。この方法を用いれば、サーバの切替が発生しても、このような事態は最低限防ぐことが可能です。
共有ディスクの接続形態として「SCSI」や「FC(Fibre Channel)-SAN」などがあります。「FC-SAN」は「SCSI」に比較し、高速処理と大容量のストレージの取り扱いを可能にしていますが、システム全体を構築するコストは高くなってしまうのが現状です。

 

 

NFSを利用する

同じようにストレージを共有する方法として、NFSを用いる方法があります。NFSは、TCP/IPネットワークを利用しているので、共有ディスクを用いる方法に比べてオーバーヘッドが大きいという欠点があります。しかし、IAサーバの価格が下がっている昨今、オープンソースのNFS実装との組み合わせで、比較的安価に導入が可能です。
参考:NFSによる高速化

 

 

共有ディスクを利用する場合、NFSを利用する場合、いずれも信頼性を向上させるためには、ストレージの二重化などの必要があります。「VA Linux」では、NFSサーバのHAクラスタ化について取り組みも行っています。
データの同期をとる方法は、利用目的に応じて最適な方法を選択してください。