Use Auto Tiering on Kubernetes
Deploy a cluster with Auto Tiering on Kubernetes.
Prerequisites
Redis Enterprise Software for Kubernetes supports using Auto Tiering (previously known as Redis on Flash), which extends your node memory to use both RAM and flash storage. SSDs (solid state drives) can store infrequently used (warm) values while your keys and frequently used (hot) values are still stored in RAM. This improves performance and lowers costs for large datasets.
Before creating your Redis clusters or databases, these SSDs must be:
- locally attached to worker nodes in your Kubernetes cluster
- formatted and mounted on the nodes that will run Redis Enterprise pods
- dedicated to Auto Tiering and not shared with other parts of the database, (e.g. durability, binaries)
- provisioned as local persistent volumes
- You can use a local volume provisioner to do this dynamically
- a StorageClass resource with a unique name
For more information on node storage, see Node persistent and ephemeral storage.
Create a Redis Enterprise cluster
To deploy a Redis Enterprise cluster (REC) with Auto Tiering, you'll need to specify the following in the redisOnFlashSpec
section of your REC custom resource:
- enable Auto Tiering (
enabled: true
) - flash storage driver (
bigStoreDriver
)rocksdb
orspeedb
(default)
- storage class name (
storageClassName
) - minimal flash disk size (
flashDiskSize
)
bigStoreDriver
(previously called flashStorageEngine
) to the new default speedb
, regardless of previous configuration.speedb
and rocksdb
) requires guidance by Redis Support or your Account Manager.Here is an example of an REC custom resource with these attributes:
apiVersion: app.redislabs.com/v1
kind: RedisEnterpriseCluster
metadata:
name: "rec"
spec:
nodes: 3
redisOnFlashSpec:
enabled: true
bigStoreDriver: speedb
storageClassName: local-scsi
flashDiskSize: 100G
Create a Redis Enterprise database
By default, any new database will use RAM only. To create a Redis Enterprise database (REDB) that can use flash storage, specify the following in the redisEnterpriseCluster
section of the REDB custom resource definition:
isRof: true
enables Auto TieringrofRamSize
defines the RAM capacity for the database
Below is an example REDB custom resource:
apiVersion: app.redislabs.com/v1alpha1
kind: RedisEnterpriseDatabase
metadata:
name: autoteiring-redb
spec:
redisEnterpriseCluster:
name: rec
isRof: true
memorySize: 2GB
rofRamSize: 0.5GB
memorySize
and rofRamSize
. When using Auto Tiering, memorySize
refers to the total combined memory size (RAM + flash) allocated for the database. rofRamSize
specifies only the RAM capacity for the database. rofRamSize
must be at least 10% of memorySize
.