ミラーリングとは?レプリケーションとの違いやメリット・デメリットを解説

    業務システムにおいて、データベース内の情報は非常に重要です。システム障害などでデータベースが使用不可能になってしまうと、業務に重大な影響があるでしょう。そのような事態を防ぐための機能が、データベースミラーリングです。

    この記事では、データベースミラーリングの詳細やメリット・デメリットなどについて解説します。

    ミラーリングとは

    ミラーリングとは、データを保存する際に同じデータを同時に複数のストレージに書き込むことをいいます。これにより、1つのハードディスクが故障しても他のハードディスクに同じデータが残っているため、データの損失を防ぐことができます。

    複数のハードディスクを組み合わせて1台の仮想的なハードディスクとして扱う手法をRAIDといい、RAID0~6の大きく7種類の構成に分類されます。ミラーリングは、このRAID1に相当する仕組みです。全く同じ状態の複数のディスクを鏡に例えて、ミラーリングと呼ばれています。ミラーリングの目的は、ディスクを冗長化してシステムの可用性を高めることです。ハードディスクが故障すると、OSが起動できなくなったりデータが消えてしまったりすることがあります。しかし、ミラーリングを行っていれば正常に動いているもう一方のハードディスクが処理を引き継ぐことができ、システムを継続して利用することができます。

    ミラーリングの特徴は、複数のハードディスクに同じデータを書き込むため、実際に使用できるデータ保存領域は構成するハードディスクの合計容量の2分の1以下となることです。また、同時に複数のハードディスクに書き込みを行うため、通常の単一ドライブへの書き込みよりも時間がかかるという特徴もあります。

    ミラーリングとレプリケーションの違い

    データベースの高可用性を実現するための機能として、レプリケーションがあります。レプリケーションとミラーリングは混同されてしまうこともありますが、別の機能であるため注意が必要です。ここでは、ミラーリングとレプリケーションの違いについて解説します。

    レプリケーションとは、「複製する」という意味で、ストレージやデータベースの複製を独立した環境に作成する機能です。目的はシステムの可用性を高めることで、ストレージに障害が発生してもレプリケーション用のストレージに切り替えることでシステムの停止を防ぎます。

    複製を作るという意味ではミラーリングと同じですが、ミラーリングがハードディスクドライブの障害対策であるのに対し、レプリケーションはストレージやデータベースごと複製することでストレージ自体の障害対策になります。また、レプリケーションがデータのコピーを作るという方法であるのに対し、ミラーリングは複数のハードディスクに対して同じデータを書き込む方法であるという違いもあります。レプリケーションはハードウェア含め同じシステム環境を複製し、データはリアルタイムで更新されます。そのため、障害が起こった時点までのデータが保持され、障害が発生してもデータ喪失の被害を最小限にとどめられるというメリットがあります。例えば、データのバックアップという対策ではデータ自体は守れますが、システム停止を防ぐことはできません。レプリケーションはデータを守りつつ、予備環境に切り替えることでシステム停止対策も可能になります。

    一方で、レプリケーションにはデメリットもあります。ひとつは、稼働するメイン環境とまったく同じ予備環境を準備するためにかかるコストが大きくなることです。複製データを作成するためのサーバーも必要になるため、運用にかかる負担も増えてしまいます。リアルタイムでデータの複製を行うには、サーバーやネットワークなどにかかる負荷も考慮しなくてはなりません。レプリケーションを採用するには、求めるレベルとかかる費用や負荷を天秤にかけて、検討する必要があります。

    また、リアルタイムのデータ複製には、任意の時点のデータが取得できないというデメリットもあります。誤ってデータを消去してしまったり、ウイルス感染などでデータが書き換えられてしまったりした場合でも、レプリケーションの機能だけでは元の状態に戻すことはできません。そのため、レプリケーションを導入した場合でも、データのバックアップと併用して運用する必要があります。

    ミラーリングのメリットとデメリット

    レプリケーションのメリットとデメリットについては先述の通りですが、ミラーリングにもメリットとデメリットが存在します。ここでは、ミラーリングのメリットとデメリットについてそれぞれ解説します。

    ミラーリングのメリット

    ミラーリングは、2つのハードディスクドライブに同じデータを書き込むという方法です。そのため、一方のデータが何らかの理由で破損してしまった場合でも、もう一方のハードディスクに問題がなければ完全な状態のデータが残っているという点がメリットです。故障したハードディスクからデータを復元するのは不可能な場合も多く、復元できたとしてもかなりの手間や時間がかかります。障害対策としてミラーリングを事前に行っておけば、そのような苦労をすることなく、データの損失を防ぐことが可能です。

    ハードディスクが同時に2つ以上稼働していることは、システムの可用性を高めるというメリットもあります。ミラーリングを行っていないデータベースの場合、ハードディスクが故障すると処理に問題が発生し、システムが正常に稼働しなくなる恐れがあります。しかし、ミラーリングを行っている場合、一方のハードディスクが故障しても残りが稼働していればシステムの稼働に問題はありません。予期せぬシステム停止は業務に支障が出るだけでなく、取引先や顧客など、外部にまで影響が及ぶ可能性もあります。ミラーリングは、このような事態を防ぐためにも効果的です。

    ミラーリングのメリットとして、比較的コストを抑えた障害対策であるという点も挙げられます。例えば、先述のレプリケーションと比較すると、ミラーリングの方が低コストで管理することができます。ミラーリングはハードディスクのみを複製するため、レプリケーションのような環境をまるごと冗長化する方式よりも費用が安くなるのです。

    このように、コストを抑えながらシステムの可用性を高めることができるのが、ミラーリングのメリットです。

    ミラーリングのデメリット

    ミラーリングのデメリットは、メンテナンス対象が多くなるという点です。2つのハードディスクを同時に稼働させるということは、ハードディスク1つのケースと単純に比較すると、故障する確率は2倍になります。メンテナンス対象が増えるということは、運用の手間が増えるということです。故障前に定期的にハードディスクを交換するなど、障害を起こさないようにする対策も2つのハードディスクに対して平等に行う必要があります。

    複数のハードディスクに対して同時に同じデータを書き込むミラーリングは、削除データの復旧ができないというデメリットもあります。データの削除を行った場合、両方のハードディスクのデータに対して削除という処理が行われるのです。誤ってデータを削除してしまった場合、データはどちらのハードディスクにも残っていません。ある時点でのデータを復元したいというケースには、ミラーリングでは対応することができないのです。このような場合は、バックアップを定期的に保存するなど、ミラーリング以外の対策を取っておく必要があります。

    ミラーリングは低コストであることがメリットですが、その分ほかの対策に比べて可用性が劣るという点がデメリットです。通常、ミラーリングは重要なデータを保存するデータベースに実施するもののため、障害が発生した箇所によってはデータやシステムの復旧が難しいケースもあります。かといって、すべてのデータベースに対してミラーリングを行うのは運用面の負担が大きいうえにコストもかかり、低コストというメリットがなくなってしまいます。

    まとめ

    データベースの障害は業務に与える影響が大きく、データの損失が招く被害は多岐にわたります。そのような事態を防ぐため、データベースの可用性を高めておくことは非常に重要です。データベースの障害対策として、ミラーリングは有効な手段です。メリット・デメリットを把握して、適切にその他の対策も併せて事前に対応しておきましょう。

     

    SNSでもご購読できます。