Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

ミラーリング(ミラーリング)とは | 意味や読み方など丁寧でわかりやすい用語解説

ミラーリング(ミラーリング)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

読み方

日本語表記

ミラーリング (ミラーリング)

英語表記

mirroring (ミラーリング)

用語解説

ミラーリングとは、ITシステムにおいてデータやシステムの状態を複製し、常に同じ内容を保持することで、データの保護やシステムの可用性を高める技術である。主にストレージやデータベース、サーバーなどのコンポーネントで利用され、障害発生時にもシステムが停止することなく運用を継続できるようにすることを目的としている。

詳細に説明する。ミラーリングは、あるデータやシステムの状態を「プライマリ」(主系)とし、その内容をリアルタイムまたは準リアルタイムで「セカンダリ」(副系)に複製し続ける仕組みである。これにより、プライマリ側に何らかの障害が発生し、それが利用不能になった場合でも、セカンダリ側がその役割を引き継ぐことで、システムの停止時間を最小限に抑えることができる。これはシステム全体の耐障害性を高める上で非常に重要な概念である。

最も一般的なミラーリングの例として、ストレージにおけるRAID 1(Redundant Array of Independent Disks Level 1)が挙げられる。これは、複数の物理ディスクに全く同じデータを書き込むことで、どれか一つのディスクが故障してもデータが失われることなく、もう一方のディスクから読み書きを継続できる方式である。この考え方は、より上位のレイヤーにも適用される。例えば、OSが管理する論理ボリュームのミラーリングや、特定のデータベースシステムにおけるデータベース自体のミラーリング、さらにはサーバーアプリケーション全体を複数のサーバーで同期させるサーバーミラーリングなどがある。

ミラーリングの実現方式は、主にデータの同期方法によって「同期ミラーリング」と「非同期ミラーリング」に大別される。

同期ミラーリングは、プライマリ側へのデータの書き込みが完了したことをアプリケーションに通知する前に、セカンダリ側へのデータの書き込みも完了したことを確認する方式である。この方式の最大の利点は、プライマリ側とセカンダリ側の間で常にデータの一貫性が完全に保たれる点にある。つまり、いつプライマリ側に障害が発生しても、セカンダリ側には障害発生直前までの最新のデータが完全に存在するため、データ損失が全く発生しない(RPO=0、Recovery Point Objective)。しかし、データの書き込み要求が発生するたびに、ネットワークを介してセカンダリ側への書き込みが完了するのを待つ必要があるため、処理性能に遅延が発生しやすいという欠点がある。このため、プライマリとセカンダリ間の物理的な距離が離れすぎると、ネットワークの遅延が顕著になり、実用性が損なわれる場合がある。通常、同一データセンター内や比較的近距離での利用に適している。

一方、非同期ミラーリングは、プライマリ側へのデータの書き込みが完了した時点で、すぐにアプリケーションに書き込み完了を通知し、セカンダリ側へのデータ転送はバックグラウンドで非同期的に行われる方式である。この方式の利点は、プライマリ側の書き込み性能への影響が小さく、ネットワークの遅延に左右されにくい点である。これにより、プライマリとセカンダリ間の距離が離れていても利用が可能で、遠隔地への災害対策(DR: Disaster Recovery)としての活用に適している。しかし、セカンダリへのデータ転送が完了する前にプライマリ側で障害が発生した場合、転送途中のわずかなデータはセカンダリ側に反映されていない可能性がある。このため、データ損失が完全にゼロではない(RPO>0)というリスクが伴う。一般的には数秒から数分のデータ差が許容されるシステムで採用されることが多い。

ミラーリングの利点は、システムの可用性と耐障害性を飛躍的に向上させる点にある。プライマリ側でハードウェア故障やソフトウェアエラーなどが発生しても、自動的または手動でセカンダリ側へ処理を切り替える「フェイルオーバー」を実行することで、サービスの中断時間を最小限に抑えることができる。これにより、ユーザーへの影響を限定し、ビジネスの継続性を確保する。また、災害対策として遠隔地にセカンダリを配置することで、大規模な災害によってプライマリが物理的に破壊された場合でも、データを保護し、システムの復旧を可能にする。

しかし、ミラーリングにはいくつかの課題や考慮点も存在する。まず、コストが増大する点が挙げられる。プライマリ側のリソース(ストレージ、サーバー、ネットワークなど)と同等かそれに近いリソースをセカンダリ側にも用意する必要があるため、導入費用および運用費用が単純に倍近くになる場合がある。次に、運用管理の複雑さが増す点である。ミラーリングの設定、監視、そして障害発生時のフェイルオーバーや、プライマリが復旧した際の「フェイルバック」といった一連のプロセスを適切に管理するには、専門的な知識と経験が必要となる。

さらに、ミラーリングはデータの論理的な破損や誤削除に対しては無力である。例えば、ユーザーが誤ってファイルを削除した場合や、アプリケーションのバグによってデータが破損した場合、その誤った操作や破損したデータもミラーリングによってセカンダリ側に複製されてしまう。このため、ミラーリングはデータの可用性を高めるためのものであり、データ損失から完全に保護するためには、別途バックアップとリストアの仕組みを併用することが重要となる。これらは相互に補完しあう関係にある。また、プライマリとセカンダリ間のネットワークが分断された際に、両方がプライマリとして動作しようとする「スプリットブレイン」問題にも注意が必要であり、これを防ぐための監視機構やクォーラム(多数決)の仕組みが必要となる場合もある。

このように、ミラーリングはシステムの信頼性を高める強力な技術であるが、その種類や特性、利点と課題を理解し、システムの要件や予算に合わせて適切に設計・導入・運用することが求められる。

関連コンテンツ

関連ITニュース

関連プログラミング言語