Planning a storage solution
Plan a storage solution for the applications in your cluster. Pick a storage provider that meets your requirements.
Storage types
Following storage types that are based on the volume mode are available in IBM® Cloud Private.
- Block storage
- File storage
- Object storage
Storage providers
Following storage providers are available in IBM Cloud Private.
- GlusterFS
- Rook Ceph
- Minio
- vSphere
- hostpath
- Network file system (NFS)
- IBM Spectrum Scale™
Storage retention
Following storage reclaim policies are supported in IBM Cloud Private.
- Retain: manual reclamation
- Recycle: basic scrub (rm -rf /thevolume/*)
- Delete: Associated storage assets such as AWS EBS, GCE PD, Azure Disk, or OpenStack Cinder volume are deleted
Storage access mode
Note: The access mode that you select has an impact on decisions that are related to multiple replicas and node failover.
Following access modes can be configured:
- ReadWriteOnce – the volume can be mounted as read/write by a single node
- ReadOnlyMany – the volume can be mounted read-only by multiple nodes
- ReadWriteMany – the volume can be mounted as read/write by multiple nodes
Volume plug-in | ReadWriteOnce | ReadOnlyMany | ReadWriteMany |
---|---|---|---|
GlusterFS | ✓ | ✓ | ✓ |
Ceph | ✓ | ✓ | ✓ |
IBM Spectrum Scale | ✓ | ✓ | ✓ |
hostPath | ✓ | - | - |
vSphere | ✓ | - | - (works when pods are collocated) |
NFS | ✓ | ✓ | ✓ |
Storage provisioning
Understand how a persistent volume (PV) is created, provisioned, and accessed by the infrastructure team to perform backup and restore. Also, understand how a PV can be replicated to a secondary site.
Static provisioning
Infrastructure administrator first creates application volumes (mount points) and then ensures that they are mounted. A Kubernetes administrator exposes these application mount points through Kubernetes PersistentVolumes.
Dynamic provisioning
A Kubernetes administrator creates a set of storage classes for pods to invoke. Each storage class has a predefined set of storage characteristics. You need PVs with various parameters, such as performance, to meet different storage requirements. These parameters can be defined by using storage class resources. For more information, see Configure a Pod to Use a PersistentVolume for Storage .
Persistent volume resize
In Kubernetes v1.11, the persistent volume expansion feature is promoted to Beta and you can easily resize an existing volume by editing the PVC object. You no longer need to manually interact with the storage backend or delete and re-create PV and PVC objects to increase the size of a volume. Shrinking persistent volumes is not supported.
If the cloud provider that you choose does not support this feature, you need to manually resize a volume, if required.
To allow expansion of PVC, turn on the ExpandPersistentVolumes
feature. For more information, see Feature Gates .
If you want to prevent resizing of all claims except when you enable it in a storage class, enable PersistentVolumeClaimResize
. For more information, see Using Admission Controllers .
When you enable resizing in a storage class, only the PVCs that use the storage class can expand volumes. For more information, see Expanding Persistent Volumes Claims .
Other considerations
Consider these additional factors while you decide a storage solution.
Performance
Understanding your application storage needs and performance requirement can help to decide which storage provider to choose and plan for operation and skill enablement.
Backup and restore
Understand how persistent volumes are created, how a volume name is mapped to internal cluster volume name, where the volume is located, and how you can back up and restore the volumes.
Security for data at rest and in motion
Consider the secret that is used for the storage class, encryption of disk, and file system.
Resiliency
For information about high availability persistent storage, see Planning highly available persistent storage. In IBM Cloud Private, enterprise storage is used.
Comparison of storage nodes hosted in IBM Cloud Private versus external storage nodes
Topic | IBM Cloud Private storage node | External storage node |
---|---|---|
Support | IBM support by using TSS support subscription | You manage the storage |
Update and rollback | By using Helm chart | You manage update and rollback |
Availability | Depends on the cluster availability | You provide the storage |