[DRBD-user] drbd-9.0.26-rc1

Stéphane Rivière stef at genesix.org
Mon Nov 16 09:17:24 CET 2020


Hi Philipp,

At first, I would like to warmly thank you - and the Linbit team - to
have created and to support DRBD.

> with this release, DRBD becomes compatible with Linux 5.8 and 5.9. Thanks to
> the coccinelle based compatibility framework it stays compatible all the
> way back to the kernel 2.6.32.

I'm a Debian 10 user, which don't comes with a DRBD 9 package. So i did
it, through the well described process DRBD 9 comes with.

Particullary, I appreciate the trick to use a full docker container as a
command (spatch/inria coccinelle). And I understand why you are using
Coccinelle. The build complexity involved worth it.

Now my problem (if we should consider it is so) - stock new Debian 10
with original kernel 4.19 on a new high grade server (Xeon 16c, 64 Go,
NVMe 1To).

A first attempt with 9.0.25-1 6/11/20 :
- build ok
- packaging ok

But installing dkms_9.0.25-1_all.deb (kernel module) failed with a
non-explicit debian dpkg-buildpackage message (like... error : kernel
module not installed).

Second attempt with the drbd version closest to the kernel version :
9.0.16-1 25/10/18 (kernel 4.19 is dated 22/10/18)

All went fine.

It's not a problem for us to go in production with 9.0.16-1 (we will see
later / if / I am right to say so).

I wonder :

- how we could explain this behaviour and, maybe...
- how we could fix it

- why drbd 9 is not in debian 10 (and does not seem planned in debian
11, at least today)


Freundliche Grüße der Insel Oléron




Build process - also in case other readers would like to test drbd 9
with debian 10


* Coccinelle

aptitude install apt-transport-https ca-certificates curl gnupg2
software-properties-common

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

add-apt-repository "deb [arch=amd64]
https://download.docker.com/linux/debian $(lsb_release -cs) stable"

aptitude update
apt-cache policy docker-ce
aptitude install docker-ce

systemctl status docker
docker pull szeder/coccinelle

touch /usr/local/bin/spatch
chmod +x s/usr/local/bin/spatch

#!/bin/bash
docker run -it --rm -v "$PWD:$PWD" -w "$PWD" szeder/coccinelle spatch "$@"


* Drbd - kernel module

aptitude install git build-essential fakeroot debhelper dkms docbook-xsl
help2man python-all python-dbus python-gobject xsltproc help2man
dh-systemd flex autoconf automake po4a clitest python-natsort
thin-provisioning-tools

mkdir /root/sow-drbd
cd /root/sow-drbd
git clone https://github.com/LINBIT/drbd.git
cd drbd

search match between kernel date and drbd date

git log --tags --simplify-by-decoration --pretty="format:%ai %d" | grep
2018

2018-10-25 11:15:45 +0200  (HEAD, tag: drbd-9.0.16-1)
2018-10-16 15:10:45 +0200  (tag: drbd-9.0.16-0rc1)
2018-08-14 13:13:50 +0200  (tag: drbd-9.0.15)
2018-05-01 00:13:42 +0200  (tag: drbd-9.0.14)
2018-04-17 10:33:08 +0200  (tag: drbd-9.0.13)
2018-04-06 14:33:03 +0200  (tag: drbd-9.0.13-0rc1)
2018-01-22 13:28:17 +0100  (tag: drbd-9.0.12)
2018-01-09 13:14:33 +0100  (tag: drbd-9.0.11)

git checkout drbd-9.0.16-1

Doc build workaround : Comment out all references to the documentation
in Makefile.in (search with the string "doc"). The --without-manual and
/ or --with-prebuiltman flags are not sufficient. Without this, the
compilation will be carried out perfectly but the build of the package
will fail.

make clean
make
dpkg-buildpackage -rfakeroot -b -uc



* Drbd - utils

cd /root/sow-drbd
git clone https://github.com/LINBIT/drbd-utils.git
cd drbd-utils

./autogen.sh

./configure --prefix=/usr --localstatedir=/var --sysconfdir=/etc
--without-manual --with-prebuiltman --with-xen --with-distro=debian

make
dpkg-buildpackage -rfakeroot -b -uc

dpkg-buildpackage rebuild with theses configure options :

./configure
 --prefix=/usr
 --localstatedir=/var                          modifiable single-machine
data [PREFIX/var]
 --sysconfdir=/etc                             read-only single-machine
data [PREFIX/etc]
 --sbindir=/usr/sbin                           system admin executables
[EPREFIX/sbin]
 --with-udev                                   Enable udev integration
 --with-xen                                    Enable Xen integration
 --with-pacemaker                              Enable Pacemaker integration
 --with-rgmanager                              Enable Red Hat Cluster
Suite integration
 --without-bashcompletion                      Enable programmable bash
completion
 --with-systemdunitdir=/lib/systemd/system     Directory for systemd
service files [Auto]
 --with-initscripttype=both        Type of init script to install
(sysv|systemd|both|none). [auto]
 --with-prebuiltman                            Do not try to
(re)generate man pages


* Installing

packages created :

drbd-dkms_9.0.16-1_all.deb
drbd-module-source_9.0.16-1_all.deb
drbd-utils_9.13.1-1_amd64.deb
drbd-utils-dbgsym_9.13.1-1_amd64.deb
drbd8-utils_9.13.1-1_amd64.deb

Installing :

dpkg -i drbd-dkms_9.0.16-1_all.deb drbd-utils_9.13.1-1_amd64.deb

(Lecture de la base de données... 96165 fichiers et répertoires déjà
installés.)
Préparation du dépaquetage de drbd-dkms_9.0.16-1_all.deb ...
Dépaquetage de drbd-dkms (9.0.16-1) sur (9.0.16-1) ...
Sélection du paquet drbd-utils précédemment désélectionné.
Préparation du dépaquetage de drbd-utils_9.13.1-1_amd64.deb ...
Dépaquetage de drbd-utils (9.13.1-1) ...
Paramétrage de drbd-utils (9.13.1-1) ...
Paramétrage de drbd-dkms (9.0.16-1) ...
Loading new drbd-9.0.16-1 DKMS files...
Building for 4.19.0-12-amd64
Building initial module for 4.19.0-12-amd64
Done.

drbd.ko:
Running module version sanity check.
 - Original module
 - Installation
   - Installing to /lib/modules/4.19.0-12-amd64/updates/dkms/

drbd_transport_tcp.ko:
Running module version sanity check.
 - Original module
 - Installation
   - Installing to /lib/modules/4.19.0-12-amd64/updates/dkms/

depmod...

DKMS: install completed.
Traitement des actions différées (« triggers ») pour systemd
(241-7~deb10u4) ...


After reboot

modinfo drbd

filename:       /lib/modules/4.19.0-12-amd64/updates/dkms/drbd.ko
alias:          block-major-147-*
license:        GPL
version:        *9.0.16-1*
description:    drbd - Distributed Replicated Block Device v9.0.16-1
author:         Philipp Reisner <phil at linbit.com>, Lars Ellenberg
<lars at linbit.com>
srcversion:     E3A2E554068CD055CD421FC
depends:        libcrc32c
retpoline:      Y
name:           drbd
vermagic:       4.19.0-12-amd64 SMP mod_unload modversions
parm:           enable_faults:int
parm:           fault_rate:int
parm:           fault_count:int
parm:           fault_devs:int
parm:           disable_sendpage:bool
parm:           allow_oos:DONT USE! (bool)
parm:           minor_count:Approximate number of drbd devices (1-255)
(uint)
parm:           usermode_helper:string
parm:           protocol_version_min:drbd_protocol_version

-- 
Stéphane Rivière
Ile d'Oléron - France


More information about the drbd-user mailing list