障害監視ツールなどと一緒に使うことで、サービスの継続提供を助けるDRBD。Linuxカーネルに統合されている機能ですが、上手に使いこなしているでしょうか? 本連載では、DRBDの動作や使いどころを順を追って紹介していきます。
2015年6月、約8年ぶりに「DRBD」のメジャーバージョンアップ版となる「DRBD9」がリリースされました。DRBDは、リアルタイムでデータをレプリケート(複製)するソフトウエアです。
最新版であるDRBD9では、多ノード(最大31台)レプリケーション対応、実質無制限のデータサイズサポート、ストレージ性能を活用したさらなる高速化などの新機能が盛り込まれています。
連載第一回となる今回は、DRBD9の詳細を解説する前に、そもそもDRBDとはどのようなソフトウエアで、どのような使われ方をしているかを解説していきます。
DRBDは「Distributed Replicated Block Device」の略で、名前の通りデータをブロックデバイス単位でリアルタイムにレプリケートするためのソフトウエアです。
ブロックデバイスとは、ハードディスクなどの記憶装置のことを指します。そして「ブロックデバイス単位」とはハードディスクなどの記憶装置の中でも「パーティションで区切られたひとまとまりの部分」を指します。パーティションがどういったものか分かりやすくするために、一般的なLinux環境を使ってコマンドプロンプトから「df」コマンド実行してみましょう(図1)。
図1の中で、「/dev/sda3」と表示されている箇所があります。この「/dev/sda3」がブロックデバイス単位です。dfコマンドの出力では、マウントされているパーティション領域のみが表示されますが、DRBD自体はマウントされていないパーティションでもレプリケーション可能です。
図1の例では「/dev/sda3」の「Mounted on」が「/(ルート)」になっているので、このLinux環境ではブロックデバイス「sda3」を「/」に充てていることが分かります。
よく「DRBDはファイルシステムのExt4に対応していますか?」「XFSに対応していますか?」と聞かれることがあります。DRBDはブロックデバイス単位で複製しますので、ファイルシステムには依存しません。よって、「どのようなファイル形式にも対応している」といえます。
ブロックデバイス、ファイルシステム、ファイルは図2のような関係にあります。
図2を見ると分かるように、ブロックデバイスのパーティションの上にファイルシステムがあり、ファイルシステムの上にファイルが存在します。ブロックデバイス単位でレプリケートすれば、いかなるファイルシステムにも依存しない理由がお分かりいただけたでしょうか。
DRBDはGNU General Public License(GPL)v2に準拠したオープンソースソフトウエアです。ソースコードは公開されており、改変して再配布することも可能です。
DRBDは、開発元であるオーストリアの企業「LINBIT」が2007年にLinuxカーネルコミュニティにソースコードを提供しています。Linuxカーネルコミュニティも、この機能を実装することの重要性を認め、2010年には正式にLinuxカーネルに統合されました。
Linuxのカーネルに統合されたことで、個別に導入する必要がなく、また他のプログラムとの干渉などの問題が発生しないよう検証されることになったため、DRBD自体の環境構築を効率的に行えるようになりました。
RAIDなどを使えばデータを冗長化できるので「DRBDでわざわざデータをレプリケートしなくてもよいのでは?」と思われるかもしれません。しかし、仮にRAIDコントローラーが壊れたらどうでしょうか? すぐにデータを救い出すのは難しくなります。それ以外にも、電源の障害などによるデータ破損など、さまざまな障害が考えられます。
そこで、サーバー2台構成でデータ保護を行うDRBDが持つ機能に意味が出てくるのです。次ページではDRBDの基本的な構成と、障害発生時の挙動イメージをつかんでいきます。
Copyright © ITmedia, Inc. All Rights Reserved.