DRBD Driver Working To Land ~15 Years Worth Of Changes Into The Linux Kernel
#Infrastructure

DRBD Driver Working To Land ~15 Years Worth Of Changes Into The Linux Kernel

Hardware Reporter
2 min read

LINBIT engineers are tackling a massive 7,260-line DRBD driver update to modernize the 15-year-old kernel code and bridge the gap with their actively maintained out-of-tree version.

Developers behind the Distributed Replicated Block Device (DRBD) are embarking on a significant undertaking to modernize the Linux kernel's DRBD support, which has remained largely unchanged for approximately 15 years while the out-of-tree version continued to evolve.

The DRBD Maintenance Gap

DRBD was originally accepted into the mainline Linux kernel back in 2009, providing a mechanism for mirroring block devices between multiple host systems. However, since that time, the upstream kernel code has seen minimal maintenance while the out-of-tree module, maintained by LINBIT (a commercial company focused on enterprise software-defined storage), has continued to progress significantly.

This divergence has created a substantial delta between the kernel's DRBD implementation and the actively maintained version used in production environments. The out-of-tree code has accumulated approximately 10-15 years worth of development work, depending on how you count the changes.

The Massive Code Refresh

The LINBIT team has begun staging a massive patch series totaling 7,260 lines of code changes to the DRBD block device driver. This update aims to bring the upstream kernel code closer to parity with the out-of-tree version that has been actively developed and used in enterprise environments.

Linux block maintainer Jens Axboe has proposed a structured approach for reviewing and integrating these changes. Rather than attempting to merge everything at once, the plan involves:

  • Rebasing the changes against the for-7.1/block branch
  • Stashing the series in for-7.1/drbd for testing in Linux-Next
  • Iteratively refining the code through subsequent kernel versions (7.2, 7.3, etc.)
  • Eventually including the updated DRBD driver in the mainline merge window

The staged approach allows for proper vetting and code review while avoiding disruptions to the Linux-Next development cycle.

Breaking Changes and Compatibility

One significant consideration with this update is that it technically breaks userspace compatibility. Some older versions of DRBD userspace utilities will not be able to communicate with this updated driver version due to incompatibilities between v8 and v9 genetlink families.

To address this, LINBIT plans to introduce a completely new genetlink family ("drbd2") that follows modern conventions. Both the old and new families will be registered simultaneously, with a compatibility layer handling communication for the older family.

Current Status and Timeline

The code won't be ready for the upcoming Linux 7.1 merge window, but the developers hope that within a few releases of the Linux 7.x series, the DRBD block driver will be sufficiently modernized and ready for mainline inclusion.

This refresh represents a critical step in ensuring that the kernel's DRBD implementation remains viable and maintainable for the future, bridging the 15-year gap between the upstream and out-of-tree versions.

For those interested in understanding how DRBD functions at a deeper level, LINBIT's website provides detailed information about the architecture and operation of this distributed block device technology.

Comments

Loading comments...