Distributed Replicated Block Device
開発元 | LINBIT (http://www.linbit.com) |
---|---|
最新版 |
8.3.7
/ 2010年1月13日 |
リポジトリ | |
対応OS | Linux |
種別 | 分散ストレージシステム |
ライセンス | GNU General Public License v2 |
公式サイト | http://www.drbd.org/ |

DRBD (Distributed Replicated Block Device) は、Linuxプラットフォームの分散ストレージシステムである。カーネルモジュール、管理アプリケーション、シェルスクリプトで構成され、高可用 (HA) クラスタで使うのが一般的である。DRBD は RAID 1 に似ているが、ネットワーク上で動作する点が異なる。
DRBD は、ソフトウェアを指すと同時に、そのソフトウェアで管理される論理ブロックデバイスも指す。「DRBDデバイス」とか「DRBDブロックデバイス」といった呼称も見受けられるが、RAS症候群の一種であることは言うまでもない。
DRBDはフリーソフトウェアであり、GNU General Public License version 2 でライセンスされている。
運用モード
DRBD の論理ブロックデバイス(通常 /dev/drbdX で、X はマイナー番号)は既存のブロックデバイス群の上に存在し、クラスタノードを構成している。プライマリノードへの書き込みは下層のブロックデバイスへ転送され、同時にセカンダリノードへも伝播される。セカンダリノードは、書き込みデータを対応する下層のブロックデバイスへ転送する。読み出しは全てローカルに行う。
プライマリノードで障害が発生すると、クラスタ管理プロセスがセカンダリノードをプライマリ状態にする。この遷移の際に、fsckやジャーナルリプレイといったDRBD上のファイルシステムの完全性検証を必要とする場合もある。障害の発生した元のプライマリノードが復旧したら、それを再びプライマリにする場合もあり、その際にはデバイスデータの再同期が必要になる。DRBDの同期アルゴリズムは、デバイス全体ではなく停止していた間に更新されたブロックだけを再同期するもので、効率的である。
DRBDはHeartbeatクラスタマネージャと共に使うことが多いが、他のクラスタ管理フレームワークと組み合わせることもできる。Xenのような仮想化技術と組み合わせたり、Linuxの論理ボリュームマネージャと組み合わせることもできる[1]。
2007年1月にリリースされた DRBD version 8 は負荷分散構成もサポートしており、両方のノードで同時に読み書きできる構成も可能である[2]。そのような構成では分散ロックマネージャが必須となる。
共用クラスタストレージに対する優位点
クラスタシステムは一般に共用ストレージを使い、クラスタリソースに使うデータを格納する。この方式には以下のような欠点があり、DRBDはこれに対処できる。
- 共用ストレージは単一障害点になりやすい。各ノードの障害に対してはサービスを継続可能だが、ストレージの故障はサービス停止を引き起こす。DRBDでは、データは共有されるのではなく複製されるため、そのような問題は発生しない。
- スプリットブレインシンドロームが発生すると、共用ストレージが問題となる。つまり、ノード間の通信に障害が発生し、各ノードが自分だけが動作していると判断した場合、クラスタリソースを全て獲得しようとする。すると共用ストレージに両系から同時に書き込みが発生し内容を破壊してしまう可能性がある。DRBDではデータは共有せずに複製しているので、少なくとも内容が破壊されるような事態にはならない。
- 共用ストレージとしては、SANやNASが使われ、読み込みにもなんらかのオーバーヘッドがある。DRBDでは読み込みはローカルに行うので、オーバーヘッドがずっと小さい。
用途
DRBDはLinuxのブロックデバイスとして次の用途に使用可能である。
- 普通のファイルシステム
- GFSやOCFS2などの共有ディスクファイルシステム
- 例えばLVMで論理ブロックデバイスとして使用する。
- ブロックデバイスへの直接アクセスを必要とするアプリケーションで使用する。
DRBDを使ったクラスタは、ファイルサーバやデータベース(MySQLなど)といった負荷に同期レプリケーションと高可用性を提供するのに使われる。
Linuxカーネルでの採用
DRBD開発者は、このソフトウェアをLinuxカーネルコミュニティに2007年7月に提出し、将来のLinuxカーネルにDRBDを含めることを希望していた[3]。長い議論の末、2010年2月24日にリリースされたLinuxカーネル 2.6.33に取り込まれた。
脚注
- ^ Haas, Florian; Reisner, Philipp; Ellenberg, Lars, The DRBD User's Guide 2008年3月31日閲覧。
- ^ Reisner, Philipp (2005年10月11日). "DRBD v8 - Replicated Storage with Shared Disk Semantics" (PDF). Proceedings of the 12th International Linux System Technology Conference. Hamburg, Germany.
{{cite conference}}
:|year=
の日付が不正です。 (説明) - ^ Ellenberg, Lars (2007年7月21日). "DRBD wants to go mainline". linux-kernel (Mailing list). 2007-08-03閲覧。
{{cite mailing list}}
:|date=
の日付が不正です。 (説明)
外部リンク
- “DRBD 公式サイト”. 2008年9月20日閲覧。
- “High-Availability Linux プロジェクト公式サイト”. 2008年9月20日閲覧。