特集: DRBD9紹介 第1回「DRBD 8.4と9の互換性」

DRBD9は多ノードレプリケーションなど数多くの新機能を持っていますが、既存のDRBDユーザにとっての最大の関心事は、なんといっても「データと設定の互換性」でしょう。したがって、連載の第1回では、DRBD 8.4とDRBD 9.0の互換性の概要を紹介します。

なお以下の説明におけるDRBD8のバージョンは、すべてDRBD 8.4になります。DRBD 8.3以前のバージョンとDRBD9はダイレクトにバージョンアップすることはできず、いったんDRBD 8.4にアップグレードする必要があります。

メタデータは互換である

現在のメインバージョンであるDRBD 8.4は、もともとDRBD8からDRBD9への橋渡しを目標のひとつにしていました。このため、2ノード構成時のメタデータは互換です。DRBD 8.4からDRBD 9.0へのバージョンアップにあたって、メタデータの作り直しやデータの一時退避とリストアなどの面倒な作業は不要です。(2015年6月24日訂正) DRBD 9.0.0と同時にリリースされた管理ツール側パッケージのdrbd-utils 8.9.3では、DRBD 8.4からDRBD 9.0への移行にあたってメタデータの変換が必要になります。”drbdadm create-md <リソース>”を実行すると、変換するかどうかを尋ねるプロンプトが表示されます。

ただしDRBD9の多ノードレプリケーションに必要なメタデータ領域のサイズは、ノード数に応じて大きくなります。このため、DRBD 8.4の2ノードレプリケーションをDRBD 9.0の多ノードレプリケーションに拡張する場合には、少なくともメタデータ領域の作り替えが必要になります。

設定ファイルの変更は不要

DRBD 8.3以前とDRBD 8.4では、設定ファイル(drbd.conf)の構文が一部変更になっています。これは、並行して開発していたDRBD 9.0との整合性も考慮してのことでした。

したがって、DRBD 8.4用の構文で書かれたdrbd.confは、DRBD 9.0へのバージョンアップにあたって書き換える必要はありません。

なお、DRBD 8.4では、DRBD 8.3以前の構文のdrbd.confも使えましたが、DRBD 9.0では使えない見込みですので、注意が必要です。

デバイスのスタッキングもサポートされる

DRBD9の最大のセールスポイントは多ノードレプリケーションです。DRBD 8.4までのバージョンで3ノード以上のレプリケーションを実現するには、複数のDRBDインスタンスをスタック(積み重ね)する必要がありました。

DRBD 8.4からDRBD 9.0にバージョンアップするにあたって、デバイススタッキングを多ノードレプリケーションに変更することは、もちろん可能です。しかしデータの退避やメタデータの作り直しが必要になり、サービスの可用性が損なわれます。

このため、DRBD 9.0では、DRBD 8.4からの移行を考慮して、デバイススタッキングは引き続きサポートされます。ただしobsolete扱いになるため、新規にスタック構成を作ることは推奨されません。

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

その他の機能比較

開発者へのインタビューやこれまでの海外でのプレゼンテーション資料にもとづいて、DRBD 8.4とDRBD 9.0の機能や特徴の比較表を作成しました。

項目DRBD 8.4DRBD 9.0
メタデータ互換性2ノード構成時のみ互換メタデータ変換が必要
(8.4→9.0のアップグレード可能)
レプリケーション最大ノード数(リソースあたり)232
リソースの最大サイズ1PB
レプリケーションノードの動的再配置
DRBDクライアント
drbdmanage
シングルプライマリモード
デュアルプライマリモード○ (2ノード構成時のみ)
プロトコルの混在○ (スタッキング必須)
スタッキング○ (非推奨)
自動プロモーション×
同期速度調整速度固定、速度可変
チェックサムベースの同期
混雑時のレプリケーション一時停止機能設定可能
オンライン照合
ネットワーク転送データの整合性チェック
  スプリットブレインの自動検出と通知機能
高速デバイス向け対応disk flushサポート、SCSI TRIMサポート
ディスクエラー時の対応設定によりディスクを自動的に切り離し可能
(Pacemakerとの組み合わせで自動フェールオーバ可能)
(同期が崩れたときに)古いデータへのアクセス禁止設定可能
効率的な遠距離レプリケーションDRBD Proxyとの併用で実現
HDDの物理的な輸送による初期同期
DRBD動作ノードの動的切り替え