Linuxカーネルは現在、分散レプリケーションブロックデバイス(DRBD)に新しい命を吹き込みながら、最近数年間でストレージサブシステムの最も大規模な改善の1つを進めています。多くの人がこのテクノロジーが陳腐化するものと考えていました。
LINBITのChristoph Böhmwalderは最近、カーネルメーリングリストに最初のパッチシリーズを投稿し、DRBD 9の大規模なリファクタリングを開始しました。目的は簡潔に述べられていますが、実行には困難があります。それはカーネルのネイティブバージョンを現代の標準に合わせることです。現在、Linuxカーネルはまだ2.6.33カーネル時代の遺物であるDRBD 8を使用しており、内部コードベースが外部モジュールの進化から約15年遅れています。
DRBDは複数のサーバーを統合ストレージエンティティに結合することで機能します。ユーザーにとっては従来のディスクのように見えますが、表面下ではデータはノード全体で同期的に複製されます。書き込み操作時に、情報は即座にセカンダリマシンに送信され、プライマリサーバーに障害が発生した場合でも操作の継続性が確保されます。休止中のノードが再開されると、その内容は自動的に同期され、パリティが保たれます。
次期バージョンはアーキテクチャにパラダイムシフトをもたらします。時代遅れなポイント・ツー・ポイント方式に取って代わるのは、堅牢なマルチノードクラスタリングフレームワークです。単一クラスタは最大32個のノードを含むことができ、ローカルネットワークまたは異なるデータセンターに広がっています。データは回復力のあるデイジーチェーントポロジーを介して送信され、単一障害点を効果的に排除します。
ネットワーキングスタックも同様に厳密な最適化を受けています。標準的なTCPに加えて、更新はRDMAおよびInfiniBandのサポートを導入し、リモートマシン間のダイレクトメモリアクセスを促進します。この強化は複製速度を潜在的に2倍にし、同時にCPUオーバーヘッドを半分にすると予測されています。
内部ロジックも同様に洗練されています。開発者はリクエスト処理、状態管理、アクティビティログを修正し、メタデータ処理を加速するための不揮発性メモリのサポートを導入しました。さらに、2フェーズコミットプロトコルとノンブロッキングデータ更新を特徴とする、より多目的な同期モデルが出現しました。
しかし、この移行は既存のユーザースペースユーティリティとの互換性を一時的に破壊します。レガシーツールは更新されたドライバーと互換性がなくなります。これは開発者が新しい通信インターフェースと過去のバージョン用の互換性レイヤーを介して克服することを意図しています。プロジェクトが進行中の作業であるため、パッチシリーズは連続したマージウィンドウで反復的に改善されます。強化機能は最初にlinux-nextテストブランチ向けにスケジュールされており、メインラインカーネルへの統合が最終目標で、おそらく今後の7.xリリース向けです。