Activating a Storage Cluster
Activation makes a storage cluster serve I/O for the first time. It is normally automatic. A cluster deployed from a
ClusterDeploymentConfig is activated by the Simplyblock Operator once every storage node the document created is
Online: the operator then creates a StorageClusterOps named <cluster>-activate with the action Activate, and
the document reports the phase Expanded. See
Create a Storage Cluster for the deployment flow.
An Activate operation is created by hand for a cluster that was not deployed from a ClusterDeploymentConfig, or when
the automatic activation did not complete.
apiVersion: storage.simplyblock.io/v1alpha2
kind: StorageClusterOps
metadata:
name: activate-simplyblock-cluster
namespace: simplyblock
spec:
clusterRef: simplyblock-cluster
action: Activate
kubectl apply -f activate-cluster.yaml
The operation runs the steps Requesting and Awaiting, and it succeeds once the cluster reports the backend status
active. An activation of a cluster that is already active succeeds at once without a call to the control plane.
Activation Gates
Before the activation request is sent, two conditions are checked. Neither fails the operation immediately: it stays
in Requesting and emits an event, and it continues on its own once the condition holds.
- Enough storage nodes: The cluster has at least as many storage nodes as its erasure coding scheme needs. While it
has fewer, a
StripeNodesNotReadyevent is emitted. - Balanced failure domains: On a cluster with
enableFailureDomains: true, the failure domains hold an equal number of hosts. While they do not, aFailureDomainNotReadyevent names the imbalance. See Managing Failure Domains.
The Requesting step has a deadline of two minutes, so an activation that waits on a gate for longer fails with
StepDeadlineExceeded. A new Activate operation is created once the missing nodes are online.
kubectl get events -n simplyblock \
--field-selector involvedObject.name=activate-simplyblock-cluster
While the control plane activates the cluster, StorageCluster.status.phase reads Activating, and it moves to
Online once the cluster is active. How an operation is tracked, aborted, and cleaned up is described in
Storage Cluster Actions.