DRBD 9、7本の準備パッチでLinuxメインライン入りに前進
LINBITは9月23日、カーネルのDRBD 8.4コードをDRBD 9の形に近づける7本のパッチを投稿した。DRBD 9は1ボリュームあたり最大31台のピアへのレプリケーション(複製)に対応する。
3 分で読めます

数字で見る
- patches in the preparation series
- 7
- peers per volume in DRBD 9
- 31
- new maximum resync rate
- 8 GiB/s
Christoph Böhmwalder氏は2026年9月23日、7本のパッチからなるシリーズをLinuxカーネルのメーリングリストに投稿した。題名は「drbd: preparation for DRBD 9」だ。このシリーズはカーネル内の古いDRBDコードを作り直し、はるかに新しいDRBD 9が後からメインラインに入れるようにする。Linuxで複製ストレージを運用する人にとって、これは重要だ。カーネルに同梱されているバージョンは、いまだに古い8.4系だからである。
DRBDはDistributed Replicated Block Deviceの略だ。ディスクをブロック単位で、ネットワーク越しに1台以上の別のマシンへコピーする。あるサーバーが停止しても、別のサーバーが同一のデータのコピーを保持している。開発元の企業であるLINBITによれば、このプロジェクトは20年以上にわたって保守されてきた。
7本のパッチが変えるもの
カバーレターは、その手法を1行で説明している。「各パッチは、カーネルツリー内のDRBD 8.4コードの一部を、ツリー外のDRBD 9コードでの形に移すものだ」とBöhmwalder氏は書いた。
「ツリー内(in-tree)」とは、公式のカーネルソースに含まれるコードを指す。「ツリー外(out-of-tree)」とは、別途保守され、追加モジュールとしてビルドされるコードを指す。DRBD 9はこれまで一貫してツリー外だった。
カバーレターは次の変更を挙げている。
- 高速ネットワーク向けに上限を引き上げる。ソケットバッファは最大128 MiB、再同期の最大速度は8 GiB/sになる。
- ファイル
drbd_worker.cをdrbd_sender.cに改名し、DRBD 9の構成に合わせる。 - データ構造
drbd_intervalのビットフィールドを置き換える。 - ネットワークパケット名の表を新しい場所に移す。
- ログメッセージにオブジェクト単位のレート制限を加え、1台の故障したデバイスがカーネルログをあふれさせないようにする。
このシリーズはlinux-kernelとlinux-blockの両方のリストに送られた。カバーレターは、現在のユーザーにとって何も変わらないことを強調している。「デフォルト値は変わらず、既存の設定はすべて有効なままだ」。
DRBD 9に手間をかける価値がある理由
LINBITは2026年4月27日、Michael Troutman氏によるブログ記事でその目標を説明した。カーネルに含まれているのはDRBD 8.4.11で、記事はこれを停滞していると表現している。活発な開発はカーネルの外で、DRBD 9.3に対して行われている。
両者の差は大きい。
| 機能 | DRBD 8.4(カーネル内) | DRBD 9(ツリー外) |
|---|---|---|
| 1ボリュームあたりのノード数 | 2台(フェイルオーバー用) | 最大31台のピア |
| スプリットブレイン対策 | フェンシングに依存 | 3台以上のノードで組み込みのクォーラム |
| 故障ノードの処理 | STONITHやフェンシングを手動で設定 | 自動 |
スプリットブレインとは、2台のマシンがどちらも自分が現行のコピーを持っていると信じ、異なるデータを書き込み始める障害だ。クォーラムは、ノードがクラスターの過半数を確認できる間だけ書き込みを許すことで、これを防ぐ。STONITHは「shoot the other node in the head(相手ノードの頭を撃ち抜け)」の略で、より古い対処法だ。疑わしいノードが被害を出す前に電源を切る。DRBD 9は、クラスターに再参加するノードを同期する際の安全策も追加している。
LINBITの記事は、DRBD 9.3パッチの目標としてLinux 7.2を挙げていた。今週のシリーズは準備と位置付けられている。したがって、DRBD 9の完全なコードは後日の別の投稿になる。
開発者にとっての意味
現在DRBDを運用しているなら、どちらを使っているか確認しよう。カーネルの8.4ドライバーではなく、LINBITのツリー外のDRBD 9モジュールをすでに読み込んでいるかもしれない。cat /proc/drbdで読み込まれているバージョンが表示される。このシリーズは現時点でどちらのグループにも何も変えず、カバーレターは既存の設定が有効なままだと約束している。
カーネル内の8.4ドライバーに頼っているなら、上流での作業は、今のうちにDRBD 9のテストを計画する理由になる。取り込まれれば、カーネル内のドライバーはマルチピアのボリュームとクォーラムを得る。これらはクラスターの設定方法とフェンシングの方法を変える。ディストリビューションのカーネル更新後に違いに気づくより、先にステージング用クラスターで試すほうがよい。
高速ネットワーク上にストレージを構築しているなら、新しい上限に注目しよう。8 GiB/sの再同期上限と128 MiBのソケットバッファは、高速なデータセンター回線に余裕を残す。LINBITのサイトによれば、DRBDはTCP/IPまたはRDMAで複製できる。RDMAはInfiniBandやRoCEのネットワークで使われる低遅延の転送方式だ。デフォルト値は変わらないため、引き上げは引き続き自分で行う必要がある。
次のラウンドに向けてlinux-blockリストを注視しよう。この7本のパッチへのレビューコメントは、長く続いてきた大規模なツリー外ドライバーをメンテナーがどれだけ早く受け入れるかを示すだろう。その答えが、標準のカーネルが別途パッケージ化されたDRBDモジュールをいつ置き換えられるかを決める。
出典
- [PATCH 0/7] drbd: preparation for DRBD 9 - linux-kernel mailing list
- Working to Put DRBD 9 in the Mainline Linux Kernel - LINBIT
- DRBD - LINBIT
関連記事

Kubernetes 1.37、rootlessモードがベータに昇格
Kubernetes 1.37でKubeletInUserNamespaceがベータになりました。kubelet、コンテナランタイム、CNIプラグイン、kube-proxyのすべてを非rootユーザーで動かせます。

Linux LZ4がv1.10.0に再同期、解凍が最大21%高速に
9本のパッチからなるシリーズが、カーネルの2017-2018年のLZ4コードを上流のLZ4 v1.10.0に更新し、境界チェックを加え、16Kブロックの解凍(デコンプレッション)を21%高速化する。

Linuxのset_robust_list2システムコール、FEX-Emu向けにv7が登場
Igaliaは2026年9月25日、futex用システムコールset_robust_list2のv7を投稿した。v6から10か月ぶりで、FEX-EmuがArm64上で32ビットx86コードを動かすのを助ける。