From lars.ellenberg at linbit.com Thu Oct 3 11:15:40 2019 From: lars.ellenberg at linbit.com (Lars Ellenberg) Date: Thu, 3 Oct 2019 11:15:40 +0200 Subject: [DRBD-announce] drbd-9.0.20-0rc3 Message-ID: <20191003091540.GB29493@soda.linbit> Changes wrt RC2 (for RC2 announcement see below): 9.0.20-0rc3 (api:genl2/proto:86-115/transport:14) -------- * fix regression related to the quorum feature, introduced by code deduplication; regression never released, happened during this .20 development/release cycle * completing aspects of "allow-remote-read=no" behavior * build: add spatch-as-a-service Please help testing this pre-release. If nothing serious is found we will have a final release on October 10. https://www.linbit.com/downloads/drbd/9.0/drbd-9.0.20-0rc3.tar.gz https://launchpad.net/~linbit/+archive/ubuntu/linbit-drbd9-stack https://github.com/LINBIT/drbd/commits/a28cd09d83ab610cf15f07fa3e7c7eecdfc8fe4f Cheers, Lars On Wed, Sep 25, 2019 at 01:24:17PM +0200, Philipp Reisner wrote: > Hi, > > Rc1 was broken on recent RHELs. The problem was that some compat > tests were failing for wrong reason, compile-time disabling some features. > Well, and then the running RHEL kernel was sending IO requests with > exactly those feature flags down to DRBD. Not good. That resulted in > DRBD sending stuff on the network the receiving DRBD can not digest. > > The other commits touch on building in Proxmox environment, > where the .tgz does not contain a pre-computed compat patch, but the > platform has a working coccinelle package. > > 9.0.20-0rc2 (api:genl2/proto:86-115/transport:14) > -------- > * fix a case of false split brain detection if a diskless node promotes > multiple times, by aligning the rules for generating a new current-UUID > on a diskless nodes with them on a node with disk > * check if we still have quorum by exchanging a drbd-ping with peers > before creating new current UUID after loosing one peer > * fix after weak handling to not interfere with reconciliation resyncs > * retry connect when one of the relevant flags changes during UUID exchange > * fix reconciliation resync if one of the secondary got an current-UUID update > * fix resync to make progress after it was paused by an other resync operation > * fix false split-brains when a resync source changes current-UUID during > resync operation > * fix restore of D_OUTDATED when the resource first only attached and > then the peer objects are created (in contrast to the usual, new-peer, > attach, connect) > * abort creating new current-UUID when writing to meta-data fails in > the moment where the new-current-UUID should be written > * removed DRBD marking itself as read-only when secondary; this flag > was exposed using the BLKROGET ioctl; that should be left to user-land > use; recent KVM checks that flag, and does not dare auto-promote when > set by DRBD > * fix a small memory-leak when creating peer devices > * fix a possible information leak of kernel memory that pads net-link packets > * code cleanups, introduced enums for remaining magic numbers > * new kernel-backward-compatibility framework based on spatch/coccinelle, > replacing an unmaintainable moloch of C preprocessor hell; Merged the > complete kernel-compat submodule > * compat with up to Linux-5.3-rc2 > > best regards, > Phil From philipp.reisner at linbit.com Thu Oct 10 13:19:53 2019 From: philipp.reisner at linbit.com (Philipp Reisner) Date: Thu, 10 Oct 2019 13:19:53 +0200 Subject: [DRBD-announce] drbd-9.0.20-1 Message-ID: <2821659.NS9FCa6JyO@fat-tyre> Hi, With this release the big news is the new way we deal with compatibility for older linux kernels. It used to be a mechanism based of #IFDEFs that tainted the main drbd code more and more. Now the DRBD code is clean Linux-upstream compatible code. In order that you can compile it against older and distribution kernels the build process automatically applies a compat-patch. These compat-patches are computed using coccinelle/spatch semantic patches. See here for more information: https://www.linbit.com/en/how-to-make-drbd-compatible-to-the-linux-kernel/ During the long release-candidate phase of this release we had the idea to offer spatch as a service. I.e. make sure your build environment may connect to the internet, building should work and you do not need to care about installing coccinelle/spatch into your build environment. Other than that the number of bug-fixes that landed in this release is higher than in any previous releases. What started as a loosely knit group of open source uses is now a group of serious enterprise users. This time we got a lot of feedback during the RC phase that allowed us to iron out more issues than with any previous releases. A big thank you to our community! Here is the changelog: 9.0.20-1 (api:genl2/proto:86-115/transport:14) -------- * fix a case of false split brain detection if a diskless node promotes multiple times, by aligning the rules for generating a new current-UUID on a diskless nodes with them on a node with disk * check if we still have quorum by exchanging a drbd-ping with peers before creating new current UUID after loosing one peer * fix after weak handling to not interfere with reconciliation resyncs * retry connect when one of the relevant flags changes during UUID exchange * fix reconciliation resync if one of the secondary got an current-UUID update * fix resync to make progress after it was paused by an other resync operation * fix false split-brains when a resync source changes current-UUID during resync operation * fix restore of D_OUTDATED when the resource first only attached and then the peer objects are created (in contrast to the usual, new-peer, attach, connect) * abort creating new current-UUID when writing to meta-data fails in the moment where the new-current-UUID should be written * removed DRBD marking itself as read-only when secondary; this flag was exposed using the BLKROGET ioctl; that should be left to user-land use; recent KVM checks that flag, and does not dare auto-promote when set by DRBD * fix a small memory-leak when creating peer devices * fix a possible information leak of kernel memory that pads net-link packets * completing implications of "allow-remote-read=no"; i.e. when not to create a new-current-UUID as read-write access to the data set was lost; also fail both reads and writes if reads are no longer possible * new option value "rr-conflict=retry-connect"; that helps in scenarios with quorum where stopping a service takes longer than a temporarily network outage and DRBD's reconnect * code cleanups, introduced enums for remaining magic numbers * new kernel-backward-compatibility framework based on spatch/coccinelle, replacing an unmaintainable moloch of C preprocessor hell; Merged the complete kernel-compat submodule * ships with pre-computed compat-patches for main distros' kernels; in case an other kernel is found it tries to use local spatch, if that is not installed the build process tries to use a LINBIT hosted web service to create the compat patch ("spatch-as-a-service"). * compat with up to Linux-5.3-rc2 https://www.linbit.com/downloads/drbd/9.0/drbd-9.0.20-1.tar.gz https://launchpad.net/~linbit/+archive/ubuntu/linbit-drbd9-stack https://github.com/LINBIT/drbd/commits/7dce3c8be99f4912f1490f9bb37f5aff6c873335 cheers! -- LINBIT | Keeping The Digital World Running DRBD? and LINBIT? are registered trademarks of LINBIT, Austria. From roland.kammerer at linbit.com Thu Oct 10 15:57:37 2019 From: roland.kammerer at linbit.com (Roland Kammerer) Date: Thu, 10 Oct 2019 15:57:37 +0200 Subject: [DRBD-announce] [DRBD-user] drbd-9.0.20-1 In-Reply-To: <2821659.NS9FCa6JyO@fat-tyre> References: <2821659.NS9FCa6JyO@fat-tyre> Message-ID: <20191010135737.GQ2889@rck.sh> On Thu, Oct 10, 2019 at 01:19:53PM +0200, Philipp Reisner wrote: > Hi, > > With this release the big news is the new way we deal with compatibility > for older linux kernels. It used to be a mechanism based of #IFDEFs that > tainted the main drbd code more and more. > Now the DRBD code is clean Linux-upstream compatible code. In order that > you can compile it against older and distribution kernels the build > process automatically applies a compat-patch. These compat-patches are > computed using coccinelle/spatch semantic patches. See here for more > information: > > https://www.linbit.com/en/how-to-make-drbd-compatible-to-the-linux-kernel/ Some additional hints/tl;tr: 1. It tries to find a patch in the local cache (shipped in the tar ball). 2. If not in cache, try to generate with spatch. You need to have at least version 1.0.8 (latest release, as of about 2 weeks ago). Earlier version might generate patches, put they might be invalid! AFAIK no distri packaged 1.0.8 so far. 3. If spatch is not installed, it fetches the patch from a web service. For that you need access to the web, and you need `curl`. I forget to add it as explicit dependency for the dkms. Most systems should have it - PVE is a famous exception - or the build process will complain anyways. Best, rck From roland.kammerer at linbit.com Wed Oct 16 13:48:07 2019 From: roland.kammerer at linbit.com (Roland Kammerer) Date: Wed, 16 Oct 2019 13:48:07 +0200 Subject: [DRBD-announce] drbd-utils-9.11.0 Message-ID: <20191016114807.GD2194@rck.sh> Hi DRBD users, This release contains some bug fixes and some new features. The features were mainly driven by customer requests, so they solve some specific corner cases. If you don't use these features (or a pretty recent kernel), there is no urgent need to upgrade now. Highlights include: - There were changes in netlink for Linux 5.2. If you use one of these kernels, you should update. This change is shared between utils code for versions 9.0 and 8.4 of the kernel code. - rr-conflict got a retry-connect option. This is particularly useful in setups where quorum and pacemaker are used. See the according commit msg. - drbdsetup got an option to force resync which, on new-current-uuid' set the current data set UpToDate and forces a resync to all peers. - drbdmon got a 256/16 color mode. Overall the changes are pretty small, so I'm almost sure it won't kill you kittens. The new versions can be found on the usual locations. 9.11.0 -------- * drbdsetup,all: prepare for netlink changes (linux v5.2+) * drbdadm,v9: fix a check for setting up connections multiple times * init: setup file backed loop devices (mapping from LINSTOR) * rr-conflict: add retry-connect option (>=drbd 9.0.20) * drbdmon: 256/16 colors; events2 handler improvements * drbdsetup,v9: new flag: force-resync (>=drbd 9.0.21) https://www.linbit.com/downloads/drbd/utils/drbd-utils-9.11.0.tar.gz https://github.com/LINBIT/drbd-utils/tree/v9.11.0 https://launchpad.net/~linbit/+archive/ubuntu/linbit-drbd9-stack Regards, rck -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 488 bytes Desc: not available URL: From johannes at johannesthoma.com Thu Oct 17 17:03:38 2019 From: johannes at johannesthoma.com (Johannes Thoma) Date: Thu, 17 Oct 2019 17:03:38 +0200 Subject: [DRBD-announce] WinDRBD 0.10.0 with root device ("C:\") support - technical preview Message-ID: <42c5863d-ae01-ff30-ce2d-96d998d6a66f@johannesthoma.com> Dear DRBD and WinDRBD community, It's been about 6 months since the last WinDRBD version (0.9.2) was released. The reason for such a long development cycle is that we finally managed to implement system root ("C:\") atop a WinDRBD device. In order to do so, we had to reengineer the device layer (how WinDRBD devices are presented to the System) such that Windows recognizes a WinDRBD device as a boot/root device. WinDRBD devices are now implemented as (virtual) SCSI port devices. One side effect of this is that WinDRBD disks appear as regular hard disks in partition manager and device manager and also can be partitioned using the common Windows tools (diskpart and partition manager). Note that this 0.10.0 temporarily breaks compatibility with 0.9.2 devices, so if you have 0.9.2 (or older) running do not install 0.10.0 over it. 0.10.0 is solely intended for those who want to test the WinDRBD device as Windows root drive feature. What currently works is using WinDRBD for diskless boot/root device operation in a virtual machine setup. There is a tech guide which can be downloaded from the Linbit homepage at https://downloads.linbit.com/ It describes the necessary steps to get WinDRBD as a root device working with VirtualBox machines. You can download an inno-setup installer EXE of WinDRBD 0.10.0 with the driver signed by Linbit-HA at the homepage of linbit: https://www.linbit.com/en/drbd-community/drbd-download/ (scroll down to DRBD 9 Windows driver). If you just want to test WinDRBD (and not develop for it) using Linbit's signed EXE is the recommended way to obtain it (rather than build it from the sources). As always, any feedback is highly appreciated, Best wishes, - Johannes From rene.peinthor at linbit.com Thu Oct 24 16:10:20 2019 From: rene.peinthor at linbit.com (Rene Peinthor) Date: Thu, 24 Oct 2019 16:10:20 +0200 Subject: [DRBD-announce] python-linstor, linstor-client 1.0.4 release Message-ID: Hi! This client release fixed a few bugs and changed(breaking) a few filter options all of them should have now short-forms in lower case. The new auto-tiebreaker resources will not show per default in the list output until `-a` is specified. python-linstor 1.0.4 -------------------- * Add resource group support for high level API * Add controller filter support https://www.linbit.com/downloads/linstor/python-linstor-1.0.4.tar.gz linstor-client 1.0.4 -------------------- * Show failed Volumes in volume list output * Add `-a`, `--all` flag for showing all resources * Fix broken `-m` on prop list commands https://www.linbit.com/downloads/linstor/linstor-client-1.0.4.tar.gz Linstor PPA: https://launchpad.net/~linbit/+archive/ubuntu/linbit-drbd9-stack Best regards, Rene -------------- next part -------------- An HTML attachment was scrubbed... URL: From rene.peinthor at linbit.com Thu Oct 24 16:10:18 2019 From: rene.peinthor at linbit.com (Rene Peinthor) Date: Thu, 24 Oct 2019 16:10:18 +0200 Subject: [DRBD-announce] linstor-server 1.2.0 release Message-ID: Hi! After 1 month of LINSTOR silence here is a new release, that brings a new feature called auto-tiebreaker. This means if you would deploy a diskfull DRBD resource on 2 nodes and you have a third node in your cluster, LINSTOR will automatically create a diskless resource on the third node and set appropriate DRBD quorum settings. Also a lot of bug fixes found their way into this release. linstor-server 1.2.0 -------------------- * Add auto-tiebreaker feature * Fix possible deadlock on closeConnection event * Better volume error reporting * Fix a race condition on deleting peers * Fixes to snapshot restoring * Most client list filter now on the Controller * NVME allow multiple NVMe initiators * REST-API at version 1.0.10 https://www.linbit.com/downloads/linstor/linstor-server-1.2.0.tar.gz Linstor PPA: https://launchpad.net/~linbit/+archive/ubuntu/linbit-drbd9-stack Best regards, Rene -------------- next part -------------- An HTML attachment was scrubbed... URL: From rene.peinthor at linbit.com Fri Oct 25 14:08:25 2019 From: rene.peinthor at linbit.com (Rene Peinthor) Date: Fri, 25 Oct 2019 14:08:25 +0200 Subject: [DRBD-announce] python-linstor, linstor-client 1.0.5 release Message-ID: Hi! Unfortunately the 1.0.4 release of python-linstor had bad error checking for controller responses, which broke the opennebula plugin. This release fixes this issue and also adds compatibility code for volume definition list from old controller versions. Additionally also the client learnt the new zstd compression method for the latest drbd-proxy. python-linstor 1.0.5 -------------------- * Fixed volume_dfn_list on controller with API < 1.0.10 * Fixed incorrect error checks in the resource high level API https://www.linbit.com/downloads/linstor/python-linstor-1.0.5.tar.gz linstor-client 1.0.5 -------------------- * Added support for zstd proxy compression * Fixed missing global argument filters for certificate arguments https://www.linbit.com/downloads/linstor/linstor-client-1.0.5.tar.gz Linstor PPA: https://launchpad.net/~linbit/+archive/ubuntu/linbit-drbd9-stack Best regards, Rene -------------- next part -------------- An HTML attachment was scrubbed... URL: