Dedicated storage and scaling up
Use dedicated storage for improved performance, stability, and scalability. Available on Kubernetes and OpenShift. Not available on VMware.
Note: Storage type selection is available on three replica deployments
only.
To make an informed choice on which storage type is best for you, first read and
understand the OpenSearch
concepts that are described in OpenSearch nodes, indices, shards, and replicas.
API Connect provides two
OpenSearch storage types:
- Shared storage
A single pod provides data storage and OpenSearch cluster management. Shared storage is the only option on a one replica deployment.
- Dedicated storage OpenSearch data storage and cluster management functions are split, and run in separate pods on each worker node:
- The
storage-os-master
pod runs an OpenSearchmanager eligible
node that manages the OpenSearch cluster, but does not store any API event data. - The
storage
pod runs an OpenSearchdata
node that stores API event data.
Dedicated storage is the default storage type for three replica deployments.
- The
storage
pod replicas to
scale horizontally (you do not need to increase the number of storage-os-master
replicas). Dedicated storage also provides greater stability and allows some OpenSearch configuration changes to
be made without downtime.Note: For OpenShift users: The example steps in this topic use the
Kubernetes
The
storage type is defined in the analytics CR, in the kubectl
command. On OpenShift, use the equivalent oc
command in its place. If you are using a top-level CR you must edit the
APIConnectCluster
CR (the top-level CR), instead of directly editing the subsystem
CRs. If the subsystem section is not included in the top-level CR, copy and paste the section from
the subsystem CR to the APIConnectCluster
CR.spec.storage.type
section as follows:- Shared storage:
storage: type: shared shared: volumeClaimTemplate: storageClassName: $STORAGE_CLASS volumeSize: $DATA_VOLUME_SIZE
- Dedicated storage:
storage: type: dedicated shared: volumeClaimTemplate: storageClassName: $STORAGE_CLASS volumeSize: $DATA_VOLUME_SIZE master: volumeClaimTemplate: storageClassName: $STORAGE_CLASS
Changing from shared to dedicated storage
- Edit your analytics
CR:
kubectl -n <namespace> edit a7s
- Change storage type to dedicated:
storage: type: dedicated
- If your environment does not have a default storage class, or want to use a different storage
class for your
storage-os-master
pods, then also add thespec.storage.master
section to specify the storage class, for example:storage: type: dedicated ... master: volumeClaimTemplate: storageClassName: local_storage
Changing from dedicated to shared storage
- Edit your analytics
CR:
kubectl -n <namespace> edit a7s
- Change storage type to shared:
storage: type: shared
- Wait until all of your
storage
pods restart and are in theReady
state. - Edit your analytics CR and remove the
spec.storage.master
section. - Delete the
data-analytics-storage-os-master
PVCs:kubectl -n <namespace> delete pvc data-analytics-storage-os-master-<integer>
Horizontal scaling with dedicated storage
To take advantage of the horizontal scaling options with dedicated storage, see Horizontal scaling of storage pods.