Skip to content

v20260901

Pre-release
Pre-release

Choose a tag to compare

@dicode-nl dicode-nl released this 01 Sep 18:28

Full Changelog: v20260827...v20260901

Native Ceph RBD storage for XCP-ng 8.3 (aes256k / msgr2). Source + full docs:
https://github.com/dicode-nl/xcp-ng-ceph-rbd. Verify with sha256sum -c SHA256SUMS.

Four parts: install the kernel modules (the datapath) first, then — if you use the
SMAPIv3 backend=local control plane — the Ceph userspace bindings, then the
SMAPIv1 driver and/or the SMAPIv3 plugin.

1. Kernel modules — backported krbd (aes256k + msgr2)

Give the 8.3 dom0 kernel (4.19.0+1) the aes256k CephX key type and msgr2. Install
all three in ONE transaction (locked, circular dependency):

rpm -ivh krb5-module-*.rpm libceph-module-alt-*.rpm rbd-module-alt-*.rpm
modprobe rbd

Requires: kernel-uname-r = 4.19.0+1 (stock 8.3 dom0 kernel), kmod.

2. Ceph userspace bindings — aes256k librados / librbd + python3

The dom0-side librados/librbd (built with aes256k) and their python3 bindings. Used
by the SMAPIv3 plugin's backend=local control plane (native librados/librbd), and
by any userspace librbd/librados tooling on dom0. Self-contained (librados2 provides
libceph-common.so.2); install all four in one transaction:

rpm -ivh librados2-*.rpm librbd1-*.rpm python3-rados-*.rpm python3-rbd-*.rpm

NOT needed for the SMAPIv1 driver (which uses the rbd CLI + kernel map only).

3. SMAPIv1 driver — sm-additional-rbd (SR type rbd)

rpm -ivh sm-additional-rbd-*.rpm
xe-toolstack-restart                 # on every pool host — registers SR type 'rbd'

Requires (from the XCP-ng repos): sm, python3; plus rbd-module-alt (part 1).

4. SMAPIv3 plugin (SR type rbd-vol)

Three RPMs (shared libs + volume + datapath); install all — the volume pulls the
datapath, both pull the libs:

rpm -ivh dicode-xapi-storage-libs-rbd-*.rpm \
         dicode-xapi-storage-volume-rbd-*.rpm \
         dicode-xapi-storage-datapath-rbd-*.rpm
xe-toolstack-restart                 # registers SR type 'rbd-vol' (on every host;
                                     # VDI_MIRROR/VDI_MIRROR_IN promote once all
                                     # hosts have re-registered)

Requires (from the XCP-ng repos): xapi-storage-script, python3-xapi-storage,
blktap, python3; plus rbd-module-alt (part 1).

Optional runtime deps (installed on demand, NOT hard requirements — the plugin
fails with a clear error if a mode is used without its tool):

  • python3-rados + python3-rbd (part 2) — for device-config datapath= /
    backend=local (the librados/librbd LocalBackend).
  • qemu-dp + nbd (from the XCP-ng repos) — for the qemu datapath serve mode
    and live storage migration (SXM). The default blkback mode needs neither.

Dependencies NOT included here

These ship with XCP-ng 8.3 (base repos) and are pulled in by yum/dnf:
sm, xapi-storage-script, python3-xapi-storage, blktap, python3, the
4.19.0+1 kernel, and (optional, for the qemu/SXM datapath) qemu-dp, nbd.

Tip: to serve these as a yum repo instead of installing by hand, run createrepo_c .
in this directory and add it as a repo on your hosts (yum install then resolves
everything, including the correct install order).

Contents / versions

RPM version
krb5-module, libceph-module-alt, rbd-module-alt 1.0.0-1.xcpng8.3 (x86_64)
librados2, librbd1, python3-rados, python3-rbd 2:15.2.17-0.xcpng8.3.dicode.aes256k1 (x86_64)
sm-additional-rbd 2.0-3.xcpng8.3 (noarch)
dicode-xapi-storage-libs-rbd, -volume-rbd, -datapath-rbd 0.2-5.xcpng8.3 (noarch)