Home / Platform management / Storage / StorageClasses / Overview

Overview

StorageClasses (StorageClass) is a Kubernetes resource used to describe the available storage resources in a Kubernetes cluster. It is a cluster-related resource. Administrators can configure StorageClasses based on the desired service quality level, as well as backup, security, or other policies, to be applied to different business scenarios.

Basic concepts

StorageClasses (StorageClass) is a Kubernetes resource used to describe the available storage resource categories in a Kubernetes cluster. It is a cluster-related resource. Administrators can configure StorageClasses based on the desired service quality level, as well as backup, security, or other policies, to be applied to different business scenarios.

StorageClasses can also be seen as templates for creating PV (PersistentVolume) or storage bucket. When developers or testers create PV claims (PVC) or storage bucket claims to request storage resources, they need to select a StorageClass. After the PV claim or storage bucket claim is successfully created, Kubernetes will call the API of the storage plugin to automatically and dynamically create storage volumes that meet the requirements of the PV claim or storage bucket request, thereby saving time and manpower costs for creating storage resources.

At the same time, through StorageClasses, different types of backend storage can be connected to PVs and storage buckets in the cluster. By setting StorageClasses as default and allocating them to all projects under the cluster or a specific project, it is convenient for ordinary users to choose associations.

Platform capabilities

The platform supports the creation of StorageClasses through forms or YAML manifest files, which encapsulate different types of storage resources. It also supports assigning StorageClasses to all projects or specific projects to allocate the usage permissions of StorageClasses to projects.

The YAML orchestration file method is suitable for administrators who are familiar with Kubernetes and proficient in using YAML.

StorageClasses feature comparison

Supported access modes

The following table shows the default StorageClasses provided by the platform and the corresponding differences in access modes. If you are using other StorageClasses, please refer to the official Kubernetes documentation to understand the level of support for access modes in the Kubernetes environment.

StorageClasses Single-node Read/Write (RWO) Multi-node Read-only (ROX) Multi-node Read/Write (RWX)
CephFS File Storage Supported Not supported Supported
CephRBD Block Storage Supported Not supported Not supported
TopoLVM Supported Not supported Not supported
NFS Shared Storage Supported Not supported Supported

Supported storage system types

File storage, also known as file-level storage or file-based storage, has a wide range of functionalities and can store almost any type of content. It is particularly suitable for storing a collection of complex files and helps users quickly locate them.

Block storage is an efficient and reliable data storage method that is easy to use and manage. It is suitable for business applications that require large transactions or deploy large databases.

StorageClasses Type Volume Mode
CephFS File Storage File Storage File System
CephRBD Block Storage Block Storage File System, Block Device
TopoLVM Block Storage File System, Block Device
NFS Shared Storage File Storage File System

Storage features

Currently, the platform only supports creating volume snapshots for PVCs that are dynamically created using StorageClasses. You can create new PVCs based on these snapshots and bind them. The supported access modes for creating PVCs using snapshots are different from the supported access modes for creating PVCs using StorageClasses. Please refer to Deploying the Volume Snapshot Component for more information.

StorageClasses Volume Snapshot Scaling
CephFS File Storage Supported Supported
CephRBD Block Storage Supported Supported
TopoLVM Supported Supported
NFS Shared Storage Not supported Not supported