Double-Takeは、レプリケーション処理を通常のアプリケーション処理から独立して続けられるよう、本番サーバ(ソース)/待機サーバ(ターゲット)の両方に独自のキャッシュ領域を保有。さらに、本番サーバ側の更新I/Oをインターセプトし、それをレプリケーションキューとして待機サーバに転送する方式をカーネルに組み込んでいます。これにより、トランザクションが膨大な場合でも、高速にデータを送ることができます。
1 | 複製対象領域内のファイルに対するI/Oはdblhookでフィルターされバッファリング領域に書き出されます。 |
2 | Diskから書き込み完了スティタスが戻った時点でバッファリング領域からターゲット側にキュー転送を開始します。ターゲットで受信したI/Oは、先ずバッファリング領域に転送されます。 |
3 | ファイルシステムへの書き込みを実行します。 |
4 | Diskから書き込み完了スティタスが戻ったら、Ackをソース側に転送しバッファリング領域内のデータをフラッシュします。 |
※Double-Takeの非同期レプリケーションは、ターゲットサーバへの書き込みが完了するまでソースサーバ側のバッファリング領域から転送すべきデータを削除しないため確実な転送ができます。 |
Double-Takeの非同期レプリケーションは、本番サーバで発生したトランザクションの書き込み順序を完全に保ちながら待機サーバに転送します。これは、SQLやExchange、Oracleなどのトランザクションベースのアプリケーションに特に効果を発揮します。仮に転送順に問題が発生した場合でも、本番サーバに対し、本来受信すべきキューの再送要求をします。待機サーバでは、トランザクション発生順序通りにデータが書き込まれ、整合性を確保します。
1 | 1~10の順序でWrite I/Oが発生 |
2 | 1~6はソース側に書き込みが完了しているため、ターゲット側へキューを転送 |
3 | 1.2はターゲット側へ書き込みが完了したため、Ackをソース側に転送し、ソースバッファリング領域からデータを削除 |
4 | 3~6はターゲット側のファイルシステムへの書き込みがまだ終わっていないため、ソース側のバッファリング領域にはデータを保持 |
![]() |
![]() |
ストラタス製品のお見積りをご希望の方はこちらから承ります。 お見積り詳細 |
|
![]() |
![]() |
製品やサービス、購入方法、その他のお問合せはこちらから承ります。 お問合せ詳細 |
|
![]() |
![]() |
ストラタス製品に関する技術資料などをダウンロードいただけます。 資料ダウンロード詳細 |
|
![]() |
![]() |
ストラタス製品に関する資料請求はこちらから承ります。 資料請求詳細 |