Home > Storage > Data Storage Essentials > Storage Automation Software > Persistent Storage for Containerized Applications on Kubernetes with PowerMax SAN Storage > Storage Classes
A StorageClass defines the infrastructure's type of storage. Each class has distinct characteristics that we can associate with different service levels and data services provided by the storage platform.
The CSI Driver for PowerMax source code repository gives multiple examples of StorageClass definitions. The following definition shows a sample PowerMax StorageClass with only the mandatory options needed to create a LUN in PowerMax and mount the volume using xfs:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: powermax
parameters:
SRP: SRP_1
SYMID: "000000000000"
provisioner: csi-powermax.dellemc.com
reclaimPolicy: Delete
volumeBindingMode: Immediate
The key attributes that can be modified to be tuned are:
Note: All the StorageClass fields except annotations are immutable. This means that once a StorageClass is configured it is not possible to modify it. Only delete/create allows you to change the settings of a named StorageClass.
Future versions of the driver might require changing a StorageClass parameter; nonetheless, take caution when changing parameters because changes can impact already provisioned volumes.
Here is a more exhaustive example of StorageClass for PowerMax. This example includes more options and concepts:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: powermax-metro
annotations:
storageclass.kubernetes.io/is-default-class: true
parameters:
SRP: SRP_1
SYMID: "000000000001"
ServiceLevel: Diamond
csi.storage.k8s.io/fstype: xfs
replication.storage.dell.com/Bias: "true"
replication.storage.dell.com/RdfGroup: "17"
replication.storage.dell.com/RdfMode: METRO
replication.storage.dell.com/RemoteRDFGroup: "19"
replication.storage.dell.com/RemoteSRP: SRP_1
replication.storage.dell.com/RemoteSYMID: "000000000002"
replication.storage.dell.com/RemoteServiceLevel: Diamond
replication.storage.dell.com/isReplicationEnabled: "true"
provisioner: csi-powermax.dellemc.com
reclaimPolicy: Delete
allowVolumeExpansion: true
volumeBindingMode: WaitForFirstConsumer
allowedTopologies:
- matchLabelExpressions:
- key: csi-powermax.dellemc.com/000000000001
values:
- csi-powermax.dellemc.com
- key: csi-powermax.dellemc.com/000000000001.fc
values:
- csi-powermax.dellemc.com
- key: csi-powermax.dellemc.com/000000000002
values:
- csi-powermax.dellemc.com
- key: csi-powermax.dellemc.com/000000000002.fc
values:
- csi-powermax.dellemc.com
The new fields presented here are:
To access the details of an existing StorageClass such as powermax, run the following command:
kubectl get storageclass powermax -o yaml