Add a Storage Worker
Deploy storage workers on dedicated hosts, alongside normal STRATUM workers, or as multiple isolated storage instances on one physical server.
Run storage workers wherever your storage lives
Use STRATUM Storage Workers to put existing storage under the Storage Fabric—without dedicating an entire physical server to each storage role. A storage worker can run on its own host, alongside a normal STRATUM worker, or alongside other storage workers on the same host. These roles use the same STRATUM container image; stratum-host selects the services through each instance's configuration.
Bring local disk mounts, hardware RAID arrays, direct-attached storage (DAS), or network-attached storage (NAS) mounts into the fabric. Run separate storage worker instances when you want different storage mounts to appear as independent placement targets. STRATUM does not replace the physical disks, RAID controller, or NAS beneath them; it brings those resources into the same datacenter-wide storage operations.
Run multiple storage workers on a single physical host
Compute and storage can share one physical host. Keep the normal worker's configuration at /etc/stratum/host.yaml and launch a storage container using its own configuration file, such as /etc/stratum/storage.yaml. For another storage mount, launch another storage instance with a separate configuration, such as /etc/stratum/storage-2.yaml. Each instance is independently configured and can serve a different mounted storage location.
Storage containers run in isolated container network namespaces. Each storage worker exposes its connection through storage.connectHostPort (default 51821) binding only to STRATUM's Continuum network mesh (it is not exposed and is protected within the mesh), so assign a different host port for every additional storage container on the same physical host. Keep each instance's configuration and storage mount separate.
| Instance | Configuration | Storage or role | Storage host port |
|---|---|---|---|
| Normal STRATUM worker | /etc/stratum/host.yaml | Compute / infrastructure | — |
| Storage Worker 1 | /etc/stratum/storage.yaml | Local disks or RAID mount | 51821 |
| Storage Worker 2 | /etc/stratum/storage-2.yaml | Separate DAS or NAS mount | 51822 (example) |
These are independent STRATUM storage instances, not independent physical servers: workloads on the same machine still share its hardware and failure domain. Use separate hosts when you need physical redundancy.
Start a storage worker without replacing your normal worker
STRATUM Host Manager is stratum-host. Run it interactively as a terminal user interface (TUI) or pass commands directly to the same tool. The example below uses the CLI and a dedicated storage configuration. Leave /etc/stratum/host.yaml in place for the normal worker.
sudo stratum-host --config /etc/stratum/storage.yaml config init
sudo stratum-host --config /etc/stratum/storage.yaml config set role storage
sudo stratum-host --config /etc/stratum/storage.yaml config set controller.host ctrl1.example.com
stratum-host --config /etc/stratum/storage.yaml plan
sudo stratum-host --config /etc/stratum/storage.yaml apply --yes
sudo stratum-host --config /etc/stratum/storage.yaml startReplace ctrl1.example.com with your controller's resolvable hostname. These commands assume stratum-host is on your PATH; use ./stratum-host when running the binary from its current directory. Prepare the controller trust and worker enrollment material as described in the illustrated procedure below.
To run a second storage worker on this host, give it another --config path, another storage mount, and a unique storage.connectHostPort value (for example, 51822). Apply and start each storage instance with its own configuration file. Do not change the normal worker's role to storage just to add a storage container.
Enroll a dedicated storage worker
The illustrated steps below show a dedicated storage-worker deployment, including controller enrollment. For a storage container sharing a host with a normal worker, use the separate configuration and quick start above instead of replacing the normal worker configuration.
Copy Enrollment Files To Storage Worker
Copy the controller CA, enrollment token, and generated host configuration to the storage worker using a protected transfer method.
Commands
Copy the controller-issued enrollment files using an approved encrypted transfer method. Replace the example host name and account; keep the token private and do not include secrets in support bundles.
# On the controller, from a folder containing the generated files
ssh admin@storage1.example.com 'mkdir -p ~/ENROLL && chmod 700 ~/ENROLL'
scp host.yaml stratum-ca.crt stratum-enroll admin@storage1.example.com:~/ENROLL/Prepare Storage Worker Host
Prepare a dedicated storage host through the stratum-host TUI or its CLI. The illustrated standalone workflow checks controller name resolution and reachability, installs the enrollment token and controller Certificate Authority under /etc/stratum/secure, configures the host for the storage role, and applies the configuration. On a host that already runs a normal worker, use the separate storage.yaml workflow above; do not overwrite its host.yaml or change the existing worker role.
Commands
Use the storage-role host.yaml generated by the controller. On hosts sharing compute and storage, follow the separate --config procedure above instead; do not replace the running worker configuration.
# Dedicated storage host only: stage its controller-issued enrollment files
getent hosts ctrl1.stratum.lab
sudo install -d -m 0700 /etc/stratum/secure
sudo install -m 0600 ENROLL/stratum-enroll /etc/stratum/secure/stratum-enroll
sudo install -m 0644 ENROLL/stratum-ca.crt /etc/stratum/secure/controller-ca.crt
sudo install -m 0600 ENROLL/host.yaml /etc/stratum/host.yaml
sudo ./stratum-host apply --yesStorage Worker Host Setup Complete
Host setup should complete without error before the storage worker is started.
Start Storage Worker
Start the storage worker, then check its status with the normal Docker or Podman container-status and log commands used for the selected runtime.
Commands
For Podman hosts use podman. For a co-located storage instance, use its dedicated --config /etc/stratum/storage.yaml start path, not this default config.
# Dedicated storage host after a successful apply
sudo ./stratum-host start
sudo docker ps -a
sudo docker logs --tail 30 stratumStorage Worker Visible In Network Fabric
Refresh Network Fabric and confirm that the storage worker appears ONLINE with the storage role. Its FABRIC Address is computed automatically by STRATUM as part of the zero-configuration Continuum. That virtual address is independent of the site’s physical subnet and is one of the mechanisms that lets the STRATUM mesh span datacenters, clouds, edge sites, labs, and other platforms as one logical network.
The outcome you should see
Each storage worker instance appears ONLINE with the storage role in Network Fabric and becomes available to Storage Fabric as a placement target for VM image content. When storage runs alongside a normal worker, that worker keeps operating under its own configuration.
