特集: DRBD9紹介 第4回「drbdmanage」

DRBD9と同時並行で開発中の「drbdmanage」は、「3台のサーバで冗長化された5GBのディスクボリュームが欲しい」といったニーズにストレートに対応する設定管理ツールです。論理ボリュームの作成、設定ファイルの作成、初期化コマンドの実行などといった複雑な手順はすべて自動化されます。

利用シーン

冒頭のディスクボリュームを作るためのコマンドは、次のようになります。

drbdmanage new-volume vol1 5G --deploy 3

drbdmanageはD-busを介してdrbdmanageデーモンに指示を伝え、drbdmanageデーモンはLVMやDRBD管理コマンドを使って以下の一連の処理をすべて自動的に実行します。

  1. DRBDとdrbdmanageが動作しているサーバから適切な3台を選んで、それぞれに5GBの論理ボリュームを作る。
  2. vol1という名前のボリュームに必要なDRBD設定ファイルを作って関連するサーバに配布する。
  3. vol1のためにボリュームを初期化(DRBDメタデータの作成)する。
  4. DRBDレプリケーションを開始して初期同期を実行する。

管理者がコマンドを実行すると、数秒〜数十秒後に5GBのボリュームが利用できるようになります。あとはお好みのファイルシステムを作ってマウントするだけ。

drbdadmとdrbdmanage

DRBD8でもDRBD9でも、DRBDのベーシックな管理コマンドはdrbdadmです。drbdadmは設定ファイルdrbd.confを読み込んで、低レベルコマンドであるdrbdsetupやdrbdmetaを介してDRBDカーネルモジュールに働きかけます。

一方、drbdmanageは、drbdadmによるDRBDリソースの管理だけにとどまらず、drbd.conf自体の作成や変更、レプリケートするディスク領域(論理ボリューム)の自動割り当て、レプリケーションの初期設定など、DRBDで冗長化済みのブロックストレージのライフサイクル全般を管理できるデプロイメント・ツールです。

drbdadmとdrbdmanage
drbdadmとdrbdmanage

drbdctrl管理ボリューム

drbdmanageを導入したサーバすべてに、drbdmanageの管理情報を保存するためのdrbdctrlという小さなボリュームが自動的に作られます。drbdctrl自体DRBDでリアルタイムにレプリケートされているため、どのノードでも完全な管理情報にアクセスでき、どのノードでdrbdmanageコマンドを実行しても適切に処理されます。

drbdmanageの管理ボリューム「drbdctrl」
drbdmanageの管理ボリューム「drbdctrl」

drbdmanageの拡張性

drbdmanageは、コマンドラインインタフェースを提供するdrbdmanage、実際の処理を行うdrbdmanageデーモンに分かれていて、両者はD-busで通信します。このため、D-bus経由でdrbdmanageデーモンと通信できるプログラムを書けば、drbdmanageを自由に制御できます。現在、LINBIT社ではOpenStackのCinderドライバをこの方式で開発中です。

drbdmanageの拡張性
drbdmanageの拡張性