Skip to content

Add LINSTOR / DRBD Storage

LINSTOR with DRBD replication is MFCloud's default HCI storage backend: synchronous block replication between two or three nodes, low latency, and live migration without copy-on-the-wire.

Prerequisites

  • LINSTOR controller running on an MFCloud-reachable host (typically the master).
  • DRBD kernel module loaded on every storage node (modprobe drbd; lsmod | grep drbd).
  • An LVM thin pool (drbdpool/thinpool is the convention) on each storage node.
  • Firewall: 3370/tcp (controller API), 3366/tcp (satellite ↔ controller), 7000-7999/tcp (DRBD replication).

Add satellite hosts by static IPv4 — never by DNS name

LINSTOR's node create <name> <ip> stores the satellite's network address as a literal IP and reuses it verbatim as the DRBD peer endpoint — it does not resolve DNS. In the Hosts panel, add nodes that will run DRBD using their static IP (e.g. 192.168.10.55), not a hostname like kvm-lins-01, or registration fails with Failed to parse IP address. See LINSTOR / DRBD Storage Issues for the full root cause if you hit it after the fact.

Bootstrap (one-time)

On the controller host (usually the master):

# Confirm the API is up
curl -sf http://localhost:3370/v1/controller/version | jq .

# Register each satellite node
linstor node create rocky-01 192.168.10.55 --node-type Satellite
linstor node create rocky-02 192.168.10.56 --node-type Satellite

# Wire the storage pool on each
linstor storage-pool create lvmthin rocky-01 mfcloud-pool drbdpool/thinpool
linstor storage-pool create lvmthin rocky-02 mfcloud-pool drbdpool/thinpool

Quick steps

  1. Settings → LINSTOR Clusters → + Add Cluster.
  2. Fill in:
  3. Cluster Name — friendly label.
  4. Controller IP — host running the LINSTOR controller.
  5. API Port — defaults to 3370.
  6. Storage Poolmfcloud-pool (must match what you created above).
  7. Save & Test. MFCloud probes the controller, lists known nodes, and validates the pool exists on at least 2.

LINSTOR appears in the Storage picker for new VMs. Each created VM becomes a DRBD resource (drbd-<vm_uuid>) with a 2-way or 3-way replica depending on the cluster placement policy.

Replica count

The default is --auto-place 2. To favour 3-way replication for production VMs:

linstor controller set-property AutoPlacementCount 3

This applies to new VMs only. Existing resources stay at their current replica count until you linstor resource create <name> <node> --auto to add another.

Live migration

DRBD's dual-primary mode is enabled per-resource by MFCloud during a migration window, then dropped back to single-primary. The VM moves with sub-second downtime as long as both replicas are healthy.

Removing a cluster

Removing the row drops MFCloud's record, not the LINSTOR resources themselves. VMs continue to run; you re-add the same cluster to pick them back up. To free disk on the satellites, delete the resources manually with linstor resource delete <node> <resource>.

See also