1.7 KiB
05 - Linstor & Storage Implementation
This document details the configuration enforcement executed by the Linstor roles.
LVM Global Filter
To prevent PVE from detecting double LVM signatures (raw block vs DRBD layer), the playbook injects the following global filter into /etc/lvm/lvm.conf:
global_filter =[ "r|^/dev/drbd|", "r|^/dev/mapper/[lL]instor|" ]
Storage Provisioning
The community.general.lvg task targets raw block devices strictly when the target string starts with /dev/. The playbook does not invoke wipefs. If residual partition tables exist on the target block device, the LVM module will purposefully fail to prevent data destruction.
Double Provisioning Protection (local-lvm)
By default, Proxmox creates a local storage entry named local-lvm pointing to the pve/data thin-pool. If the playbook detects that you are reusing pve/data as a Linstor backend, it automatically executes pvesm remove local-lvm. This prevents users from accidentally deploying local VMs to the underlying pool, which causes silent thin-pool exhaustion and DRBD corruption. The local directory storage (/var/lib/vz) is intentionally retained for ISOs and backups.
HA Controller Topology
Linstor Controller HA is handled via drbd-reactor.
- A 200M DRBD resource (
linstor_db) is spawned across all nodes. - The default
linstor-controllersystemd service is disabled. - A
var-lib-linstor.mountunit is deployed. - The local
/var/lib/linstormount point is secured with the immutable flag (chattr +i). This guarantees that if the DRBD resource fails to mount, the local filesystem rejects writes, preventing database split-brains. drbd-reactormanages the floating VIP and promoter plugin logic.