在Kubernetes上使用自动分层
在Kubernetes上部署一个带有自动分层的集群。
先决条件
Redis Enterprise Software for Kubernetes 支持使用自动分层(以前称为 Redis on Flash),它扩展了您的节点内存,以同时使用 RAM 和闪存存储。SSD(固态硬盘)可以存储不常使用的(温)值,而您的键和经常使用的(热)值仍然存储在 RAM 中。这提高了性能并降低了大数据集的成本。
注意:
强烈推荐使用NVMe(非易失性内存快速)SSD以实现最佳性能。在创建您的Redis集群或数据库之前,这些SSD必须满足以下条件:
- 本地附加到您的Kubernetes集群中的工作节点
- 格式化并挂载在将运行 Redis Enterprise pods 的节点上
- 专用于自动分层,不与数据库的其他部分共享(例如,持久性、二进制文件)
- provisioned as local persistent volumes
- 您可以使用local volume provisioner来动态地完成此操作
- 一个具有唯一名称的StorageClass资源
有关节点存储的更多信息,请参阅Node persistent and ephemeral storage。
创建一个Redis企业集群
要部署带有自动分层的Redis Enterprise集群(REC),您需要在REC自定义资源的redisOnFlashSpec
部分中指定以下内容:
- 启用自动分层 (
enabled: true
) - 闪存存储驱动 (
bigStoreDriver
)rocksdb
或speedb
(默认)
- 存储类名称 (
storageClassName
) - 最小闪存盘大小 (
flashDiskSize
)
注意:
从早期版本升级到7.2.4-2版本的集群将更改bigStoreDriver
(以前称为flashStorageEngine
)为新的默认speedb
,无论之前的配置如何。警告:
在存储引擎(speedb
和 rocksdb
)之间切换需要 Redis 支持或您的客户经理的指导。以下是一个具有这些属性的REC自定义资源的示例:
apiVersion: app.redislabs.com/v1
kind: RedisEnterpriseCluster
metadata:
name: "rec"
spec:
nodes: 3
redisOnFlashSpec:
enabled: true
bigStoreDriver: speedb
storageClassName: local-scsi
flashDiskSize: 100G
创建一个Redis企业数据库
默认情况下,任何新数据库将仅使用RAM。要创建一个可以使用闪存存储的Redis Enterprise数据库(REDB),请在REDB自定义资源定义的redisEnterpriseCluster
部分中指定以下内容:
isRof: true
启用自动分层rofRamSize
定义了数据库的RAM容量
以下是一个REDB自定义资源的示例:
apiVersion: app.redislabs.com/v1alpha1
kind: RedisEnterpriseDatabase
metadata:
name: autoteiring-redb
spec:
redisEnterpriseCluster:
name: rec
isRof: true
memorySize: 2GB
rofRamSize: 0.5GB
注意:
此示例定义了memorySize
和rofRamSize
。使用自动分层时,memorySize
指的是为数据库分配的总内存大小(RAM + 闪存)。rofRamSize
仅指定数据库的RAM容量。rofRamSize
必须至少为memorySize
的10%。