Placeholder image

DRBDの多段スタックを活用したバックアップ

クラスタの可用性を維持したまま必要なファイルをバックアップしたいと思いませんか。DRBDの多段スタックがヒントになるかもしれません。

バージョン8.4.2から、DRBD管理ツールの「2段まで」というスタック段数チェックが廃止されました。したがって、DRBDを3段以上に積み重ねられます。多段スタックの動作イメージは下のイラストのようになります。

DRBB多段スタック動作イメージ

各サーバの役割は以下のとおりです。

  • ノードAとノードBの2台のサーバがHAクラスタを構成している。
  • DR-nodeは遠隔サーバで、実際にはDRBD Proxyを経由した接続が望ましい。
  • Backupはクラスタと同一LAN上に置いたバックアップサーバ。

この構成の特別な工夫は、実線以外のDRBDコネクションは、必ずしも常時接続していなくてもかまわない、ということです。たとえば、バックアップ開始時刻になったらBackupノード側のcronジョブでコネクションを切断して、任意のファイルベースのバックアップツールでデータをバックアップします。終了したら再接続してDRBDにデータを同期させます。

バックアップは案外ディスクI/OやCPUを消費しますが、ノードA/BとBackupノードの間のコネクションが切断されているため、バックアップ中でもプライマリノードのパフォーマンスやスループット低下を避けられます。

しかし、BackupノードのDRBDはセカンダリなので、このままではデータ領域にアクセスできません。これについては、次のような2とおりの対応が可能なので、心配はいりません。

  • あらかじめBackupノードのレプリケーション領域をLVMの論理ボリューム上に構築しておきます。コネクションを切断した後でLVMのスナップショットを作成すれば、スナップショットは問題なくマウントできます。バックアップの負荷が問題にならない場合には、スナップショット作成後ただちにDRBDコネクションを再開するというバリエーションも選択できます。なお、バックアップが終ったらスナップショットを削除することを忘れないでください。
  • コネクションを切断したら、Backupノードをプライマリに昇格させ、マウントしてバックアップします。バックアップ終了後の再接続時に、DRBDは「スプリットブレイン」を検出してしまうので、drbdadm connect –discard-my-dataを実行する必要があります。

DR-nodeとの間のコネクションも、同じように取り扱えます。

Thermeon社のMark Olliver氏がこの方法の設定やテストに協力してくださいました。感謝の意を表します。

この記事はLINBIT社のブログ「Backup ideas: using a double-stacked setup (2012年10月1日)」の翻訳をベースにしました。

DOWNLOAD
ダウンロード

img06

DOWNLOAD

カタログ、セミナー資料のダウンロード

img06

DOWNLOAD

技術資料、マニュアルのダウンロード

img06

DOWNLOAD

ユーザ事例のダウンロード