Multiinstance
Portworx Storage for MultiInstance QueueManager's
Starting from CP4I 2020.3 Portworx Storage Version 2.5.5 is offically supported
However, for MultiInstance QueManager's where there is a requirment for Shared File Storage the default Portworx StorageClass will not be sufficient:
kind: StorageClassmetadata:labels:app.kubernetes.io/instance: portworxapp.kubernetes.io/managed-by: Helmapp.kubernetes.io/name: portworx-portworxhelm.sh/chart: portworx-1.0.21name: portworx-shared-scparameters:repl: "3"shared: "true"provisioner: kubernetes.io/portworx-volumereclaimPolicy: DeletevolumeBindingMode: Immediate
You must enable nfsv_4 to work with MultiInstance QM's like so:
kind: StorageClassapiVersion: storage.k8s.io/v1metadata:name: portworx-shared-sc3provisioner: kubernetes.io/portworx-volumeparameters:io_profile: db_remotenfs_v4: 'true'repl: '3'sharedv4: 'true'reclaimPolicy: DeletevolumeBindingMode: Immediate
A major advantage of working with Portworx Storage is that it can replicate data across Availability Zones.
This means if you have a Multi AZ Cluster, Kubernetes will schedule the Active/Passive pod pair into different Zones and they can still share the same PVC's for failover since the PVC's backing the MultiInstance pods will be replicated across Availability Zones
Here is an example of how to use the Storage Class for MultiInstance:
apiVersion: mq.ibm.com/v1beta1kind: QueueManagermetadata:name: miqmnamespace: cp4ispec:license:accept: truelicense: L-RJON-BN7PN3metric: ProcessorValueUnituse: NonProductionweb:enabled: trueversion: 9.2.0.0-r2queueManager:metrics:enabled: truename: miqmavailability:type: MultiInstancestorage:persistedData:class: portworx-shared-sc3enabled: truetype: persistent-claimqueueManager:class: portworx-shared-sc3type: persistent-claimrecoveryLogs:class: portworx-shared-sc3enabled: truetype: persistent-claim