業務システムにおいて、データベース内の情報は非常に重要です。システム障害などでデータベースが使用不可能になってしまうと、業務に重大な影響があるでしょう。そのような事態を防ぐための機能が、ディスクミラーリングやレプリケーションです。
この記事では、ディスクミラーリング、レプリケーションの詳細やメリット・デメリットなどについて解説します。
ディスクミラーリングとは
ディスクミラーリングとは、データを保存する際に同じデータを同時に複数のストレージに書き込むことをいいます。これにより、1つのハードディスクが故障しても他のハードディスクに同じデータが残っているため、データの損失を防ぐことができます。
複数のハードディスクを組み合わせて1台の仮想的なハードディスクとして扱う手法をRAIDといい、RAID0~6の大きく7種類の構成に分類されます。ミラーリングは、このRAID1に相当する仕組みです。全く同じ状態の複数のディスクを鏡に例えて、ミラーリングと呼ばれています。ミラーリングの目的は、ディスクを冗長化してシステムの可用性を高めることです。ハードディスクが故障すると、OSが起動できなくなったりデータが消えてしまったりすることがあります。しかし、ミラーリングを行っていれば正常に動いているもう一方のハードディスクが処理を引き継ぐことができ、システムを継続して利用することができます。
ミラーリングの特徴は、複数のハードディスクに同じデータを書き込むため、実際に使用できるデータ保存領域は構成するハードディスクの合計容量の2分の1以下となることです。また、同時に複数のハードディスクに書き込みを行うため、通常の単一ドライブへの書き込みよりも時間がかかるという特徴もあります。
ディスクミラーリングのメリット
ディスクミラーリングは、2つのハードディスクドライブに同じデータを書き込むという方法です。そのため、一方のデータが何らかの理由で破損してしまった場合でも、もう一方のハードディスクに問題がなければ完全な状態のデータが残っているという点がメリットです。故障したハードディスクからデータを復元するのは不可能な場合も多く、復元できたとしてもかなりの手間や時間がかかります。障害対策としてディスクミラーリングを事前に行っておけば、そのような苦労をすることなく、データの損失を防ぐことが可能です。
ミラーリングのメリットとして、比較的コストを抑えた障害対策であるという点も挙げられます。例えば、後述のレプリケーションと比較すると、ミラーリングの方が低コストで管理することができます。ミラーリングはハードディスクのみを複製するため、レプリケーションのような環境をまるごと冗長化する方式よりも費用が安くなるのです。
このように、コストを抑えながらデータの欠損を防ぐことができるのが、ミラーリングのメリットです。
ディスクミラーリングのデメリット
ミラーリングのデメリットは、メンテナンス対象が多くなるという点です。2つのハードディスクを同時に稼働させるということは、ハードディスク1つのケースと単純に比較すると、故障する確率は2倍になります。メンテナンス対象が増えるということは、運用の手間が増えるということです。故障前に定期的にハードディスクを交換するなど、障害を起こさないようにする対策も2つのハードディスクに対して平等に行う必要があります。
複数のハードディスクに対して同時に同じデータを書き込むミラーリングは、削除データの復旧ができないというデメリットもあります。データの削除を行った場合、両方のハードディスクのデータに対して削除という処理が行われるのです。誤ってデータを削除してしまった場合、データはどちらのハードディスクにも残っていません。ある時点でのデータを復元したいというケースには、ミラーリングでは対応することができないのです。このような場合は、バックアップを定期的に保存するなど、ミラーリング以外の対策を取っておく必要があります。
ミラーリングは低コストであることがメリットですが、その分ほかの対策に比べて可用性が劣るという点がデメリットです。通常、ミラーリングは重要なデータを保存するデータベースに実施するもののため、障害が発生した箇所によってはデータやシステムの復旧が難しいケースもあります。かといって、すべてのデータベースに対してミラーリングを行うのは運用面の負担が大きいうえにコストもかかり、低コストというメリットがなくなってしまいます。
レプリケーションとは
レプリケーションとは、「複製する」という意味で、ストレージやデータベースの複製を独立した環境に作成する機能です。目的はシステムの可用性を高めることで、ストレージに障害が発生してもレプリケーション用のストレージに切り替えることでシステムの停止を防ぎます。
レプリケーションとミラーリングは混同されてしまうこともありますが、別の機能であるため注意が必要です。
複製を作るという意味ではミラーリングと同じですが、ミラーリングがデータの損失を防ぐ、ハードディスクドライブに対する障害対策であるのに対し、レプリケーションはサーバーやデータベースごと複製することでシステム自体の障害対策になります。また、ミラーリングが複数のハードディスクに対して同じデータを書き込む方法であるのに対して、レプリケーションはシステムのコピーを作るという違いもあります。
レプリケーションのメリット
レプリケーションはハードウェア含め同じシステム環境を複製し、データはリアルタイムで更新されます。そのため、障害が起こった時点までのデータが保持され、障害が発生してもデータ喪失の被害を最小限にとどめられるというメリットがあります。例えば、データのバックアップという対策ではデータ自体は守れますが、システム停止を防ぐことはできません。レプリケーションはデータを守りつつ、予備環境に切り替えることでシステム停止対策が可能になります。
レプリケーションのデメリット
一方で、レプリケーションにはデメリットもあります。ひとつは、稼働するメイン環境とまったく同じ予備環境を準備するためにかかるコストが大きくなることです。複製データを作成するためのサーバーも必要になるため、運用にかかる負担も増えてしまいます。リアルタイムでデータの複製を行うには、サーバーやネットワークなどにかかる負荷も考慮しなくてはなりません。レプリケーションを採用するには、求めるレベルとかかる費用や負荷を天秤にかけて、検討する必要があります。
また、リアルタイムのデータ複製には、任意の時点のデータが取得できないというデメリットもあります。誤ってデータを消去してしまったり、ウイルス感染などでデータが書き換えられてしまったりした場合でも、レプリケーションの機能だけでは元の状態に戻すことはできません。そのため、レプリケーションを導入した場合でも、データのバックアップと併用して運用する必要があります。
まとめ
データベースの障害は業務に与える影響が大きく、データの損失が招く被害は多岐にわたります。そのような事態を防ぐため、データベースの可用性を高めておくことは非常に重要です。データベースのシステム障害対策として、データレプリケーションは有効な手段です。ミッションクリティカルなシステムのダウンタイムを極力短くし、システム障害の影響を最小限にするために、データレプリケーションと一緒にHAクラスタを導入することは非常に有効です。
データレプリケーション、HAクラスターといった、システムの可用性対策についてもっと知りたい方は、マンガでわかりやすく解説した資料がございますのでぜひご一読ください。