drbd-9.3.0

Dear DRBD-users,

I'm proud to announce drbd-9.3. The most recent branch that adds new
functionality.
Some of it needed much more time to ripen than I expected when I did the
first release candidate. But now, it feels good. We can't make it
produce any issues in our automated testing: not with the CI tests, not
with the nightly stability tests, nor with the endurance tests.
We rolled out the 6th release candidate to our internal production
systems, in line with the eat-your-own-dogfood methodology. It is
running fine. It is ready for prime time.

The two most noticeable features are: resync without replication, and
variable bitmap block sizes.
Resync without replication speeds up the resync process, especially on
volumes under heavy application I/O.
The variable bitmap block size allows you to tune DRBD to use a single
bit in the out-of-sync bitmap for more than 4KiB of storage (e.g., 8KiB,
16KiB, ... 1MiB), reducing DRBD's memory footprint.

9.3.0 (api:genl2/proto:86-101,118-123/transport:19)
--------
* was forked off between 9.2.12 and 9.2.13
* Implemented resync without replication and made it the default; the
   previous (drbd-9.2 and earlier) behavior is still available via a
   config option. With that, the resync operation begins with
   mirroring of application writes disabled, and it performs multiple
   resync passes, clearing bits in the bitmap. It enables application
   write mirroring when the resync is nearly complete. That reduces
   the I/O load during resync, and in most cases, it reduces resync
   time.
* Implemented support for bitmap granularity between 4k and 1M,
   including exchanging bitmaps with peers with a different bitmap
   block size
* Give filesystems mounted on DRBD a chance to bring their on-disk
   representations into a consistent state before suspending I/O.
* Add support for omitting bitmap allocation for standalone devices
* Explicit config option for drbd8-api-compatibility mode
* Dropped support for RHEL7 and support for kernels older than 3.10.
* All fixes from 9.2.13 to 9.2.16
* Compatibility with Linux-6.18

https://pkg.linbit.com//downloads/drbd/9/drbd-9.3.0.tar.gz

Cheers,
Philipp

2 Likes

For those who might be interested in learning more about the “variable bitmap block sizes” feature introduced in DRBD 9.3, there is an article on the LINBIT blog: “Reducing DRBD Memory Requirements”.

1 Like

Can we safely update a 3-node cluster reactor with one diskless from version 9.2.15? :slight_smile:

Should upgrade without issue as one would expect. However, the “variable bitmap block sizes” features is only enabled/set with meta-data creation. In order to take advantage of this you will need to recreate meta-data and do a full-sync. We have some plans to allow changing this without a full-sync planned for a future release.

Upgrading DRBD does mean needing to unload and reload the kernel module. As such you will need to stop and restart services. With Reactor you could do this by simply failing over between the hosts. We have this process outlined in detail in a blog post here: Using a Cluster Resource Manager and DRBD to Minimize System Maintenance Downtime - LINBIT

1 Like

Yes, that is what we are currently doing: updating the arbitrator, rebooting, then updating the secondary, rebooting, and finally switching role from primary to secondary and updating the last server.

I wanted to ensure that this transition from 9.2.X to 9.3.X went smoothly without any breaking changes.