That works as expected. One thing that wasn’t obvious is that in your linstor commands the transport type (RDMA or TCP) are all capital letters. However, that will generate errors. It seems the drbd_transport_xxxx kernel driver is loaded based on the exact spelling of this option. So it must be lower case.
Further, and this is a bit off topic, sometime in the past I spent time figuring out how to tune the RDMA connections for DRBD. I don’t remember all the details, but I have the resulting options saved, and this command is the right place to put them, so I’m including them here to be complete. Caveat: these are tuned for my system/setup. Without tuning however, the RDMA connection is periodically dropped under load, in my case.
My diskfull nodes are pve4, and pve5 (PVE v8.3, ConnectX-4 NIC w/direct cable). My diskless tiebreaker is pve-rpi1 (which is an rpi5 w/ubuntu 24.04 LTS server).
These enable RDMA, and keep TCP for the diskless:
linstor node-connection drbd-peer-options --transport rdma --sndbuf-size 10485760 --rcvbuf-size 10485760 --max-buffers 131072 --max-epoch-size 16 --ping-timeout 150 --resync-rate 488636416 --c-fill-target 536870912 --c-max-rate 1468006400 --c-min-rate 488636416 pve4 pve5
linstor node-connection drbd-peer-options --transport tcp pve5 pve-rpi1
linstor node-connection drbd-peer-options --transport tcp pve4 pve-rpi1
To revert/unset these changes:
linstor node-connection drbd-peer-options --unset-transport --unset-sndbuf-size --unset-rcvbuf-size --unset-max-buffers --unset-max-epoch-size --unset-ping-timeout --unset-resync-rate --unset-c-fill-target --unset-c-max-rate --unset-c-min-rate pve4 pve5
linstor node-connection drbd-peer-options --unset-transport pve5 pve-rpi1
linstor node-connection drbd-peer-options --unset-transport pve4 pve-rpi1
and the proof that RDMA and TCP are both in use on the same resource:
root@pve5:~# cat /sys/kernel/debug/drbd/resources/pm-2a8c6505/connections/*/transport |grep transport_type
transport_type: rdma
transport_type: tcp
root@pve5:~# linstor volume list -r pm-2a8c6505 -p
+-------------------------------------------------------------------------------------------------------------------+
| Node | Resource | StoragePool | VolNr | MinorNr | DeviceName | Allocated | InUse | State |
|===================================================================================================================|
| pve-rpi1 | pm-2a8c6505 | DfltDisklessStorPool | 0 | 1003 | /dev/drbd1003 | | Unused | TieBreaker |
| pve4 | pm-2a8c6505 | pve-linstor-pool | 0 | 1003 | /dev/drbd1003 | 49.87 GiB | InUse | UpToDate |
| pve5 | pm-2a8c6505 | pve-linstor-pool | 0 | 1003 | /dev/drbd1003 | 49.87 GiB | Unused | UpToDate |
+-------------------------------------------------------------------------------------------------------------------+
It’s not a common (yet) setup
Yes, I agree. It feels odd to use Raspberry Pi and RDMA in the same sentence.