Skip to content

Storage

Concept What it is
Pool One node’s LVM-thin space on one or more disks. It holds instance root disks and volumes.
Storage class What a tenant picks when creating a volume. A class binds one pool name; on a cluster, the pools of that name on every node are its capacity.
Default class The class used when none is named: by volume creates, image imports and the console.

The install creates the first pool and makes its class the default: stratum-compute on the OS disks’ free tail, or, with the whole-disk layout, the first compute data disk. Each data disk chosen in stage 2 is a pool of its own.

Terminal window
stratumctl storage-pools list # pools, state, capacity, disks
stratumctl storage-classes list
stratumctl nodes disks n-abc123 # the node's disks and which are free
Terminal window
stratumctl storage-pools create bulk --disk /dev/disk/by-id/nvme-EXAMPLE_C --create-storage-class
stratumctl storage-pools create fast --disk /dev/disk/by-id/nvme-EXAMPLE_D \
--create-storage-class --storage-class-name nvme
stratumctl storage-pools extend bulk --disk /dev/disk/by-id/nvme-EXAMPLE_E # grow a pool

A disk that holds data is refused; clear it first with stratumctl nodes disk-wipe <node-id> <disk> --force-wipe. The names stratum-compute, stratum, stratum-block and data are reserved.

State Means Refused
healthy Under 80% used Nothing
degraded 80% or more used New volumes from 90%
full 95% or more used New volumes, attaching volumes. Only freeing space helps.
missing The disk’s volume group is gone Everything on the pool, until it is back

Crossing 80%, 90% or 95% writes an audit event.

Data disks can be combined into MD RAID arrays (RAID 1, 10 or 0) in stage 2 of the install; each array then becomes one pool. See Stage 2: Storage. Arrays are declared in /etc/mdadm.conf beside the OS arrays and assemble at boot.

A pool given several disks with --disk spans them without redundancy: one failed disk loses the pool.

Tenants create volumes in a storage class, attach them to instances, and resize them.

Terminal window
stratumctl volumes create data-1 --size-gib 100 --storage-class nvme --project p-web
stratumctl volumes attach vol-abc123 --instance i-abc123 --project p-web

Volumes on an LVM-thin pool live on one node’s disks. Classes can carry IOPS and throughput limits:

Terminal window
stratumctl storage-classes create nvme --pool fast --max-iops-limit 20000