レプリケーション
リアルタイムのストレージレプリケーションは、単一のブロックデバイスへの更新を複数の物理ハードディスクドライブに分散させるよう実装することでなされることが多い。こうすることで、オペレーティングシステムのサポートするファイルシステムを改造することなくレプリケーションが可能となる(ファイルシステムのコードはブロックデバイスのドライバ層の上で動作するため)。ハードウェア(ディスクアレイ)で実装される場合とソフトウェア(デバイスドライバ)で実装される場合がある。
最も基本的な方式はミラーリングであり、一般にローカルに接続されたディスク群を使う。
一般にストレージ業界では、ローカルな方式を「ミラーリング」、コンピュータネットワーク経由で遠隔にあるディスク間で行える方式を「レプリケーション」と呼ぶ。その目的は何らかの障害によってデータが損なわれることを防ぎ、災害が起きた場合にディザスタリカバリによって復旧可能とすることである。通常、マスタースレーブ型のレプリケーションモデルが使われる。書き込み操作をどう扱うかによって以下のように分類される。
レプリケーションは、分散システムには古くからある概念で、しかも重要である。
レプリケーション対象がデータであっても計算であっても、その目的は、入って来るイベントを処理するプロセス群を用意することである。データレプリケーションの場合、そのプロセス群は受動的であり、格納されたデータを維持し、要求に応じて読み出したり、更新したりする。計算レプリケーションの場合、その目的はフォールトトレラント性を持たせることにある。例えば複製されたサービスは、プライマリのコントローラが故障してもバックアップがその機能を引き継げると保証する目的で、電話の交換網の制御に使われるだろう。しかし、潜在的なニーズはどちらでも同じである。すなわち、複製が同じ順序で同じイベント列を見ると保証することによって全体として一貫性を保ち、どの複製でも要求に答えることができる。
トランザクションデータ(データベースなどのトランザクション的ストレージ構造)のレプリケーションのモデル。この場合、単一コピー逐次化可能性モデルを使い、トランザクションシステムが保証すべきACID属性に従って、複製されたデータ上のトランザクションの結果を正しく定義する。