特集: DRBD9紹介 第3回「多ノードレプリケーション」

DRBD9の数多くの新機能のうちで、もっとも重要で新規性が高い機能が、最大32ノードの多ノード・リアルタイム・レプリケーション機能です。

DRBD8でも多ノードレプリケーションは実現できますが、1対1のレプリケーションをスタックする(積み重ねる)必要があります。スタックの段ごとにDRBDレプリケーションを設定する必要があり、下の段がプライマリでなければ上の段を動かすことができないなど、複雑な制御が必要になります。(下図左側)。

スタッキングと多ノードレプリケーション
スタッキングと多ノードレプリケーション

DRBD 9の多ノードレプリケーション(上図右側)は、次のような機能と特徴を持ちます。

  • 最大31ノードにデータをレプリケートできる
  • DRBD通信プロトコル(A、B、またはC)を混在できる
  • 一時的な障害やフェールオーバに伴う制御は高度に自動化される
  • 全ノードがpeer-to-peerでTCPセッションを張るため(フルメッシュ)、設定は面倒だが通信の信頼性は高い
最大32ノードのレプリケーション
最大32ノードのレプリケーション

想定利用シーン

DRBD 9の多ノードレプリケーションの用途は、従来からの「HA化+バックアップ」という用途にとどまりません。並行開発中のdrbdmanageと併用することによって、OpenStackのcinder用ストレージサーバなどに応用できる、ブロックストレージ・ソリューションを提供できるようになります。

HA化+バックアップへの応用

DRBD9では、全ノードが相互に他のノードとのレプリケーションを制御します。スタッキングのような複雑な制御は不要です。

多ノードレプリケーションの例1
多ノードレプリケーションの例1

DRBD 9のストレージソリューション

数台のIAサーバを用意して、多数の論理ボリュームをそれぞれ多重度3でレプリケートさせると、下図のようなストレージを構成できます。

多ノードレプリケーションの例2
多ノードレプリケーションの例2

レプリケーションセットごとに、どれかのノードをプライマリに昇格させてiSCSIプロトコルで公開すれば、これらのサーバ群は、高度に冗長化したSANストレージになります。

DRBDは高速半導体ストレージのI/O性能を生かせる高速レプリケーションツールです。このストレージは、OpenStackのCinderやさまざまな仮想基盤のための高速ブロックストレージとして利用できます。

開発元のLINBIT社では、OpenStack開発コミュニティにCinderドライバdrbdmanagedrv.pyを提案しており、これはOpenStackのGitリポジトリに登録されています。次期バージョンのKiloから広く一般に使えるようになることが期待されます。