• 締切済み

クラスタリングとレプリケーションの意味と違い

1)クラスタリングの意味 クラスタリングは「複数のコンピュータを全体で一つのコンピュータであるかのように動作させる技術」とDB本にあり、さらにそれはホットとコールドスタンバイの2種類あるとありました。ただ、どちらの場合であっても「共有ストレージ上のDBはひとつ」とあったので、そのひとつのDBに障害があった場合には、復旧させることはできないのではないかと思うのですが… ホットスタンバイとは、障害時にすぐにDBもアプリも何事もなかったように待機サーバに切り替わり通常処理を行えると思っていたのですが、これは認識違いでしょうか? 2)レプリケーションとの違い 「共有ストレージ上のDBはひとつ」であるとすれば、レプリケーションは「ネットワーク上に同じ内容のデータベースを複数台用意し常に同期される構成」であるので障害時には別のDBを継続使用できるので耐障害ではレプリケーションの方が優れているのではないでしょうか?

みんなの回答

  • ss2600
  • ベストアンサー率100% (1/1)
回答No.3

一般的な業務で使われている構成で見れば 普通はクラスタリングとリプリケーションを 併用します。 クラスタリングはサーバー側で行なわれ VCS・RAC・HACMP等があります。 これらは基本的にはサーバーのハードウェア に対する冗長化(2重化)です。 (ソフト側の冗長化にもなっていますが、  サービス・OSがクラッシュすると、結局は  同じOS構成なのでスタンバイでも同じ  問題が起きる可能性があります) HBA・イーサカード・CPUが仕様不可になった場合は スタンバイに切り替わり業務再開となります。 リプリケーションとは大抵の場合はストレージ側(外部HDD) で取られています。 RAID構成の1ボリューム対し ミラーリング・静止点バックアップ・災害対策 この3つのボリュームが作られます。 ミラーリングとは実際に使用しているデータがそのままコピーされています。 生のデータが入っているので、もしも本番のHDDが壊れた場合は このコピーが即座に使用可能になり業務再開します。 静止点バックアップは、ある一定の間隔でバックアップを取る事によって 不正データ等があった際にその時点までロールバックできます。 災害対策は物理的に違う場所、機器にデータをコピーしておき 地震等の災害に備えてあります。地震が来た際はサーバー側からは HDDが壊れている事等は全く関係なく、遠距離にあるHDDにDBはアクセスします。 クラスター = サーバーの二重化 リプリケーション = HDDの二重化 となります。

noname#87380
noname#87380
回答No.2

こんにちは。 私なりに質問を解釈して回答します。 1-A) クラスタリング ノード(コンピュータ)上の障害(インスタンス、プロセス障害等)に 対するものなので、それ以外の場所である共有ディスク上のDBで 障害が起これば、それを復旧させるまでサービス停止となります。 1-B) ホットスタンバイ 合ってます。 厳密に言えば、何事もなかったように出来る処理と出来ない処理が あるのですが別な話なので省略します。 2) レプリケーションの方が耐障害に優れているか? クラスタシステム全体に対する障害のためのものなので、一概に 優れているかを比較しようがないと思います。 レプリケーションを行っているから、クラスタリングしなくても 良いという話にはならないですし。※レプリケーションの同期間隔に より データが消失してしまう可能性があります クラスタシステム全体の障害に対しては優れていますが、データ障害 の面では劣ってますよね。

  • dyna_1550
  • ベストアンサー率34% (122/353)
回答No.1

合ってるような、間違ってるような・・・ それぞれの技術には、本来の目的がありますので、「優れている」というのは価値観に よりけり(運用コスト、復旧速度など)だと思います。 1)クラスタリング > そのひとつのDBに障害があった場合には、復旧させることはできないのではないかと思うのですが… これは具体的にはなにができないと疑問に思われているのでしょうか。 SQLServerを例にあげると、DBインスタンスとストレージの間に、 クラスタサービスというものを介在させて、片方のインスタンスに障害が発生すると、もう一方に 切り替わる仕組みがあったと思いますので、サービスは継続します。 ただし、トランザクションが完了していないものは、(たぶん)ロールバックされると 思います。 Oracleの場合はOracleRACでクラスタリングすると思いますが、その場合は、メモリ内の情報もクラスタリングするので、 処理は継続されます。 ですので、「何事もなかったように」というのは、OracleRACでは合っていて、その他のDBでは、その瞬間にトランザクションを実行していた人は不幸にもロールバックしちゃいますが、 システム全体としてのサービスは継続可能と思います。 2)レプリケーション >耐障害ではレプリケーションの方が優れている レプリケーションの場合、更新系のDBから参照系に複製されますので、 レプリケーションしている最中に更新系のDBが逝っちゃった場合は、 データが消滅します。 共有ストレージを利用しているクラスタの場合は、片方のインスタンスの サーバーが死んだところで、もう一方で共有ストレージ上のデータを利用することができます。

関連するQ&A