[DRBD-user] building v9
Eddie Chapman
eddie at ehuk.net
Thu Dec 10 17:50:43 CET 2020
On 10/12/2020 12:07, Christoph Böhmwalder wrote:
> Hi Pierre,
>
> As much as we may want it, DRBD's coccinelle-based compat system is not
> a general purpose solution. We can't guarantee that DRBD will build for
> any given kernel – there is simply too much going on in the block layer
> and other parts of the kernel, so that we cannnot possibly cover for all
> those different combinations (and still expect DRBD to work as intended).
>
> So we have made a bit of a compromise: we build and test DRBD for a
> defined set of kernels. These are deemed "most interesting", according
> to the opinion of LINBIT and our customers. Namely, we currently build
> for these 125 kernels on the amd64 architecture at time of writing:
>
> Distribution | Kernel Version
> ------------ | --------------
> amazonlinux2.0-amd64 | 4.14.128-112.105.amzn2
> debian-buster-amd64 | 4.19.0-5; 4.19.0-6; 4.19.0-8
> debian-jessie-amd64 | 3.16.0-4; 3.16.0-5; 3.16.0-6
> debian-stretch-amd64 | 4.9.0-6; 4.9.0-7; 4.9.0-8; 4.9.0-9; 4.9.0-11
> oracle6.0-amd64 | 4.1.12-124.26.3.el6uek; 4.1.12-124.21.1.el6uek
> oracle7.0-amd64 | 4.14.35-1844.1.3.el7uek; 4.1.12-94.3.9.el7uek;
> 4.1.12-124.26.10.el7uek; 4.14.35-1902.4.8.el7uek; 4.14.35-1818.3.3.el7uek
> oracle8.0-amd64 | 5.4.17-2011.0.7.el8uek
> rhel6.10-amd64 | 2.6.32-754.el6
> rhel6.6-amd64 | 2.6.32-504.el6
> rhel6.7-amd64 | 2.6.32-573.1.1.el6
> rhel6.8-amd64 | 2.6.32-642.1.1.el6
> rhel6.9-amd64 | 2.6.32-696.el6; 2.6.32-696.23.1.el6;
> 2.6.32-696.30.1.el6
> rhel7-xen-amd64 | 4.9.188-35.el7; 4.9.199-35.el7; 4.9.206-36.el7;
> 4.9.212-36.el7; 4.9.215-36.el7
> rhel7.0-amd64 | 3.10.0-123.20.1.el7
> rhel7.1-amd64 | 3.10.0-229.1.2.el7
> rhel7.2-amd64 | 3.10.0-327.el7
> rhel7.3-amd64 | 3.10.0-514.6.2.el7; 3.10.0-514.36.5.el7
> rhel7.4-amd64 | 3.10.0-693.el7; 3.10.0-693.17.1.el7;
> 3.10.0-693.21.1.el7
> rhel7.5-amd64 | 3.10.0-862.el7
> rhel7.6-amd64 | 3.10.0-957.el7
> rhel7.7-amd64 | 3.10.0-1049.el7; 3.10.0-1062.el7
> rhel7.8-amd64 | 3.10.0-1127.el7
> rhel7.9-amd64 | 3.10.0-1160.el7
> rhel8.0-amd64 | 4.18.0-80.1.2.el8_0
> rhel8.1-amd64 | 4.18.0-147.el8
> rhel8.2-amd64 | 4.18.0-193.el8
> rhel8.3-amd64 | 4.18.0-240.1.1.el8_3
> sles11-sp4-amd64 | 3.0.101-108.13.1
> sles12-sp2-amd64 | 4.4.74-92.38.1
> sles12-sp3-amd64 | 4.4.92-6.30.1
> sles12-sp4-amd64 | 4.12.14-95.3.1
> sles12-sp5-amd64 | 4.12.14-120.1
> sles15-sp0-amd64 | 4.12.14-25.25.1
> sles15-sp1-amd64 | 4.12.14-197.29
> sles15-sp2-amd64 | 5.3.18-22.2
> ubuntu-bionic-amd64 | ✗ 5.3.0-1034-aws; ✗ 5.3.0-1035-aws;
> 5.4.0-1025-aws; 5.4.0-1028-aws; 5.4.0-1029-aws; 5.4.0-1030-aws;
> 4.15.0-1007-aws
> ubuntu-bionic-amd64 | ✗ 5.3.0-1035-azure; ✗ 5.4.0-1023-azure;
> 5.4.0-1025-azure; 5.4.0-1026-azure; 5.4.0-1031-azure; 5.4.0-1032-azure;
> 4.15.0-1009-azure
> ubuntu-bionic-amd64 | 4.15.0-112-lowlatency
> ubuntu-bionic-amd64 | ✗ 4.15.0-118; ✗ 4.15.0-121; 4.15.0-122;
> 4.15.0-123; 4.15.0-124; 4.15.0-126; 4.15.0-20
> ubuntu-focal-amd64 | ✗ 5.4.0-1022-aws; ✗ 5.4.0-1024-aws;
> 5.4.0-1025-aws; 5.4.0-1028-aws; 5.4.0-1029-aws; 5.4.0-1030-aws;
> 5.4.0-1009-aws
> ubuntu-focal-amd64 | ✗ 5.4.0-1022-azure; ✗ 5.4.0-1023-azure;
> 5.4.0-1025-azure; 5.4.0-1026-azure; 5.4.0-1031-azure; 5.4.0-1032-azure;
> 5.4.0-1010-azure
> ubuntu-focal-amd64 | ✗ 5.4.0-51; ✗ 5.4.0-52; 5.4.0-48; 5.4.0-53;
> 5.4.0-54; 5.4.0-56; 5.4.0-26
> ubuntu-trusty-amd64 | 4.4.0-1022-aws
> ubuntu-trusty-amd64 | 3.13.0-129; 3.13.0-133; 3.13.0-139; 3.13.0-142;
> 3.13.0-149
> ubuntu-xenial-amd64 | 4.4.0-1092-aws; 4.4.0-1098-aws; 4.4.0-1111-aws;
> 4.4.0-1114-aws; 4.4.0-1117-aws
> ubuntu-xenial-amd64 | 4.13.0-1018-azure; 4.15.0-1036-azure;
> 4.15.0-1040-azure
> ubuntu-xenial-amd64 | ✗ 4.4.0-190; 4.4.0-193; 4.4.0-194; 4.15.0-120;
> 4.15.0-123; 4.4.0-197
> xenserver6.5-amd64 | 3.10.41-323
> xenserver7.1-amd64 | 4.4.27-572.565306
> xenserver7.2-amd64 | 4.4.52-2.1
> xenserver8.0-amd64 | 4.19.19-5.0.8
>
>
> Using one of these kernels will give you the smoothest experience when
> building DRBD. We actually pre-compute all compat patches for these
> kernels and put them in our release tarballs. This means that, if one of
> these kernels is detected, you will not need spatch at all and just need
> to apply a plain patch.
>
> For a lucky set of other kernels, we have made SPAAS (spatch as a
> service). This sends a "fingerprint" of your currently running kernel's
> capabilities to LINBIT, where we can then build a compat patch
> specifically for that kernel. This also works sometimes, but again, we
> cannot possibly guarantee that this works for any given kernel (not to
> mention test it so that it actually does the right thing).
>
> So, in conclusion, you have 2 options:
>
> a) Use one of the kernels we already support
> b) Figure out how to have DRBD build for your kernel yourself (it's not
> fun, take my word for it)
> c) Become a LINBIT customer and we will gladly do it for you :)
>
>
> Regarding this question:
>
> > PS: Coccinelle is only needed for backwards compatibility, right? Is
> there a way to avoid its usage while using a recent enough kernel?
>
> Yes, *theoretically* DRBD should always build against the latest kernel
> release without needing compat patches. But as I already mentioned,
> there is a lot going on in the kernel, especially in the block layer,
> and since we support so many kernels it is a huge piece of work to patch
> back any larger modifications.
>
> So it is perfectly possible that we are lagging behind a few versions. I
> guess you can try finding the "sweet spot" where it works without
> patches. This should be somwhere around 5.9 at the moment.
>
> Hope this helps and isn't too disappointing :)
>
> --
> Christoph Böhmwalder
> LINBIT | Keeping the Digital World Running
> DRBD HA — Disaster Recovery — Software defined Storage
Dear Christoph,
Thank you for this very informative message, and thank you to everyone
at Linbit for all of the hard work you guys do with drbd9.
I appreciate that there is a limit to the number of kernels you can
support, and the list contains a very good selection of distro kernels.
However I think there is a glaring omission which I'd like to ask you to
consider, which is the current Linux kernel (kernel.org) upstream LTS
stable release kernels. Since the LTS releases have multi-year support
life cycles they should not be too much of a burden to track. I suspect
you actually do track them but perhaps just are not included in the list
you emailed to the list. I would argue these are a much easier and all
round better choice than even the latest mainline kernel.org release,
most of which only have a few months of life before they become obsolete
if they do not become an LTS (Greg K only ever issues a few stable point
releases for non-LTS versions before declaring them dead).
I have many servers running drbd9 for many years now, have always built
against an upstream stable LTS release, and have never had a problem
building against them since you started using Coccinelle. So, I suspect,
as I say, you probably do track them anyhow. But just in case you don't
I want to ask you to seriously consider them. Pretty pleeease
warm regards,
Eddie
More information about the drbd-user
mailing list