DRBD (Distributed Replication Block Device) は MySQL HA (高可用性) の主要ソリューションの 1 つです。Pacemaker および Corosync を合わせて使用すると、ユーザーは次のことを実現できます。
成熟した実証済みオープンソーステクノロジーのエンドツーエンド統合スタック、これを Oracle が完全にサポート (MySQL Enterprise Edition の一部として)。
自動フェイルオーバーおよびリカバリによるサービス継続性。
同期レプリケーションによるミラーリング、確定されたトランザクションを失うリスクなしにノード間フェイルオーバー。
コモディティーハードウェアから HA クラスタを構築、共有ストレージは不要。
次の図では、MySQL サービスに高可用性レベルを実現するために使用できるスタックを示します。
もっとも低いレベル 2 では、物理的な冗長性を提供するために 2 つのホストが必要です。仮想環境を使用する場合、これらの 2 つのホストは別の物理マシン上に置くことをお勧めします。共有ストレージの必要がない点が重要な特徴です。いずれかの時点で、サービスは一方のホストではアクティブであり、もう一方のホストではスタンバイモードです。
Pacemaker および Corosync は、サービスと基盤となるホスト/オペレーティングシステムとの間に位置するクラスタリングレイヤーを提供するために結合されます。Pacemaker はサービスの起動と停止を担っており、それらが正確に 1 つのホスト上で動作することを保証することで、高可用性を実現してデータの破損を回避します。Corosync は、ノード間に Pacemaker がジョブを実行するための基盤となるメッセージングインフラストラクチャーを提供し、さらにクラスタ内のノードメンバーシップを処理し、変更を Pacemaker に通知します。
Pacemaker コアプロセスには、管理すべき特定サービスの知識は組み込まれていません。代わりに、サービス固有のアクションにラッパーを提供するエージェントを使用します。たとえば、このソリューションでは、仮想 IP アドレス、MySQL、および DRBD にエージェントを使用します。これらはすべて既存のエージェントであり、Pacemaker にパッケージされます。
この構成で Pacemaker が管理する必須のサービスは、DRBD、MySQL、およびアクティブな MySQL サービスに接続するためにアプリケーションが使用する仮想 IP アドレスです。
DRBD は、ブロック型デバイス (一般的に、スピニングディスクまたは半導体ディスク) のデータをアプリケーション、データベース、さらにファイルシステムに透過的に同期します。DRBD は、ext3
や ext4
などのジャーナリングファイルシステムを使用することを要求します。このソリューションのために、アクティブ-スタンバイモードで動作します。任意の時点で、DRBD が管理するディレクトリには、2 つのホストの正確に 1 つから読み書きのためにアクセスでき、もう一方には (読み取りであっても) アクセスできません。アクティブホストに行われた変更は、DRBD によって同期的にスタンバイホストに複製されます。
完全な MySQL および DRBD スタックをインストール、構成、プロビジョニング、およびテストするための詳細な説明については、次のガイドをダウンロードしてください。
MySQL データベース。
DRBD カーネルモジュールおよびユーザーランドユーティリティー。
Pacemaker および Corosync クラスタメッセージングおよび管理プロセス。
Oracle Linux オペレーティングシステム。
http://www.mysql.com/why-mysql/white-papers/mysql-high-availability-drbd-configuration-deployment-guide/からガイドをダウンロードしてください。
DRBD のサポート
MySQL 用の完全な DRBD スタックは Oracle によって認定されました。問題がオペレーティングシステム、DRBD、クラスタリングソフトウェア、または MySQL に関係するかどうかにかかわらず、スタック全体に対して 1 つの契約を提供する商用サポートは、MySQL Enterprise Edition および Oracle Linux Premier Support の両方の契約をしたユーザーが利用できます。