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-masterpod runs an OpenSearchmanager eligible
node that manages the OpenSearch cluster, but does not store any API event data. - The
storagepod 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:
The
storage type is defined in the analytics CR, in the - For OpenShift users - The example steps in this
document use the Kubernetes
kubectlcommand. On OpenShift, use the equivalentoccommand in its place. - If you are using a top-level CR, you must edit the
APIConnectClusterCR (the top-level CR), instead of directly editing the subsystem CRs. - If you are using a top-level CR (
APIConnectCluster), make sure that thespec.gatewaysection is included. If it is not included already, you must add thespec.gatewaysection before adding the required property within it.
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-masterpods, then also add thespec.storage.mastersection 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
storagepods restart and are in theReadystate. - Edit your analytics CR and remove the
spec.storage.mastersection. - Delete the
data-analytics-storage-os-masterPVCs: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.