Files
proxmox-post-install/docs/05-linstor-storage.md
Francesco Zimbolo 983688a388 Updated docs
2026-04-23 09:10:34 +00:00

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.

  1. A 200M DRBD resource (linstor_db) is spawned across all nodes.
  2. The default linstor-controller systemd service is disabled.
  3. A var-lib-linstor.mount unit is deployed.
  4. The local /var/lib/linstor mount 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.
  5. drbd-reactor manages the floating VIP and promoter plugin logic.