ミラーリング完全ガイド:RAID1・ブロックレプリケーションからデータベース・ミラーサイト・ネットワーク監視まで徹底解説
ミラーリングとは — 概要
ミラーリング(mirroring)は、あるデータやトラフィック、サービスの「正確な複製(ミラー)」を別の場所に保持する技術を指します。IT分野では用途に応じて複数の意味合いで使われ、主に次のようなカテゴリに分かれます:ディスクやストレージのミラーリング(RAID1、ブロックレプリケーション)、データベースやファイルのレプリケーション、サーバ/サイトのミラー(ミラーホスト、ミラーサイト)、そしてネットワークのポートミラーリング(トラフィック複製)です。目的は可用性の向上、障害耐性、読み出し性能の拡張、負荷分散、バックアップや障害復旧(DR)など多岐にわたります。
ミラーリングの主な種類と仕組み
ディスク・ブロックレベルのミラーリング(例:RAID1、DRBD)
RAID1のようなミラーリングは、同一のデータブロックを複数の物理ディスクに同時書き込みすることで冗長性を確保します。ブロックレベルのレプリケーション(例:DRBD)はネットワーク越しにディスクブロック単位でミラーリングを行い、主に高可用クラスタで使われます。書き込みは同期(同期ミラーリング)または非同期(遅延許容)で行うことができ、同期はデータ一貫性が強い反面、レイテンシの影響を受けます。
ファイル/オブジェクトレベルのミラーリング(例:rsync、lsyncd、S3レプリケーション)
ファイル単位やオブジェクト単位での複製。rsyncのようなツールで差分同期するもの、あるいはクラウドストレージのクロスリージョンレプリケーション(例:S3のCRR)などが該当します。多くは非同期で、ネットワーク帯域や整合性モデルに応じた運用が必要です。
データベース・レプリケーション(例:MySQL、PostgreSQL、Aurora)
DBレプリケーションはトランザクションやバイナリログを用いてマスター→スレーブ(プライマリ→レプリカ)へデータを複製します。多くのRDBMSは非同期レプリケーションをデフォルトとしますが、PostgreSQLやMySQL系は同期モードを選べることもあります(同期は遅延と可用性トレードオフを伴う)。読み取り負荷分散や災害復旧、フェイルオーバーに活用されます。
ミラーサーバ/ミラーサイト(例:ソフトウェア配布ミラー、CDNの一形態)
あるサイトやリポジトリのコンテンツを別のサーバに同期し、地理的分散やトラフィック負荷分散、可用性向上を図るものです。パッケージミラー(Linuxディストリビューションのミラー)やオープンソースプロジェクトの配布ミラーが代表例です。
ネットワーク・ポートミラーリング(SPAN/Port Mirroring)
スイッチやネットワーク機器であるポートの送受信パケットを別ポートに複製し、パケットキャプチャやIDS/IPS、トラフィック解析ツールで監視・解析するために使います。これはデータの「保存」目的ではなく、通信監視が主目的です。
同期(synchronous)と非同期(asynchronous)の違い
ミラーリングにおける最も重要な設計選択は「同期」か「非同期」かです。同期ミラーリングは書き込みが全てのミラーに反映されて初めて完了と見なすため、障害発生時のデータ損失は最小化されますが、書き込み遅延(レイテンシ)が増加します。非同期は書き込み応答を早く返せますが、主系で書き込み後に障害が発生するとまだ複製されていないデータが失われるリスク(レプリケーションラグ)があります。クラウドや地理的に離れた拠点間では通常、非同期が採用されることが多いです。
メリットとデメリット
メリット
- 可用性の向上:ディスクやサーバの故障時にサービス継続が可能。
- 障害復旧(DR):データを別拠点に保つことで災害時の復旧を容易にする。
- 読み取りスケーリング:読み取り専用レプリカを用いて負荷分散が可能。
- メンテナンスの容易化:障害機器の置換やメンテナンス時に切替え可能。
デメリット/リスク
- コスト増:ストレージやネットワーク帯域が二重化される。
- 整合性と遅延のトレードオフ:同期はレイテンシ、非同期はデータ損失のリスク。
- スプリットブレイン問題:クラスタでミラー間の通信が断たれると双方が主になるなどの問題が発生し得る。
- 運用負荷:モニタリング、復旧手順、定期的な整合性チェックが必要。
実装例と代表的なツール/サービス
RAID1
最もシンプルなハードウェア/ソフトウェアでのディスクミラー。OSやBIOSレベルでサポート。
DRBD(Distributed Replicated Block Device)
Linux向けのブロックレベルレプリケーション。クラスタ/HA環境でよく利用されます。
rsync / lsyncd / Unison
ファイル同期用。rsyncは差分転送、lsyncdは監視してリアルタイム近くに反映、Unisonは双方向同期など。
データベースのレプリケーション
MySQL(バイナリログベース、デフォルトは非同期だがセミ同期も可能)、PostgreSQL(ストリーミングレプリケーションで同期/非同期選択可)、AuroraやRDSのリードレプリカなど。
分散ストレージ(Ceph、GlusterFS)
オブジェクト/ブロック/ファイルレベルでのレプリケーションを組み込み、ノード障害時に自動再配置や再複製を行います。
クラウドのレプリケーション機能
AWS:S3クロスリージョン・レプリケーション、RDSリードレプリカ、Auroraの分散ストレージ。Azure:Geo-Redundant Storage(GRS)。GCP:Cloud Storageのマルチ/デュアルリージョン設定など。サービスにより整合性や同期のモデルは異なりますので注意が必要です。
ネットワークのポートミラー(SPAN)
スイッチの機能で、指定ポートのトラフィックを別ポートへ複製して監視装置へ送る。IDSやパケット解析で利用。
運用上の注意点・ベストプラクティス
- 目的を明確にする:可用性重視か読み取りスケールか、DRかで最適なミラー方式が変わる。
- 整合性チェックと監視:レプリケーションラグ、I/Oエラー、同期状態を継続的に監視する。
- 帯域と遅延の設計:非同期でも許容できる最大ラグと帯域を見積もる。地理的に分散する場合はレイテンシを考慮。
- フェイルオーバー手順の策定と定期試験:自動化と定期的な復旧訓練で実効性を確認。
- バックアップは別に取る:ミラーは冗長性を与えるが、ランサムウェアや論理的破壊に対する唯一の防御にはならない。
- セキュリティ:転送経路の暗号化(TLS/IPsec等)、アクセス制御、監査ログを適切に設定する。
- スプリットブレイン対策:クラスタ管理やフェンシング(STONITH)を導入する。
よくある誤解
- 「ミラーがあればバックアップ不要」— ミラーはハードウェア障害や一時的な可用性問題には有効ですが、データの誤消去・マルウェア感染・論理的破壊はミラー先にも波及します。世代管理されたバックアップは別途必要です。
- 「ミラー=即座に安全」— 非同期ミラーではレプリケーションラグにより最新データが複製されていない場合があります。
- 「ミラーで読み取り性能は必ず向上する」— 読み取りスケーリングを実現するにはアプリケーション側のレプリカ利用や負荷分散の実装が必要です。単に複製があるだけでは自動的に読み出し分散は起こりません。
まとめ
ミラーリングは、データやトラフィック、サービスの可用性や耐障害性を高める重要な手段です。用途によりブロックレベル、ファイル/オブジェクトレベル、DBレプリケーション、ミラーサイト、ネットワークミラーリングなど多様な形態があり、それぞれ利点とトレードオフを持ちます。設計時には同期/非同期の選択、帯域やレイテンシの影響、監視・フェイルオーバー手順、そして別途のバックアップ戦略を総合的に考えることが重要です。
参考文献
- Wikipedia: ミラーリング (IT)
- Wikipedia: RAID
- rsync公式
- DRBD公式サイト
- MySQL レプリケーション(公式マニュアル)
- PostgreSQL: ストリーミングレプリケーション(公式)
- AWS: Amazon S3 レプリケーション
- Azure: Storageの冗長化オプション
- Google Cloud Storage: マルチリージョン / デュアルリージョン(ドキュメント)
- Cisco: ポートミラーリング (SPAN) 解説


