因此Ceph在librbd中有一个用户空间页面缓存实现。它是否允许用户提及要分配给每个Pod的页面缓存量?如果是,我们可以动态更改分配吗?
根据项目中的文档和问题,没有在POD级别上引用页面缓存分配。
Ceph支持RBD的写回缓存。要启用它,请将rbd cache = true添加到
ceph.conf
文件的[client]部分。默认情况下,librbd
不执行任何缓存。写入和读取直接进入存储集群,而写入仅在数据位于所有副本上的磁盘上时返回。启用缓存后,写入将立即返回,除非未刷新的字节数超过rbd cache max dirty
个。在这种情况下,写操作将触发写回并阻塞,直到刷新了足够的字节为止。
这是当前支持的RDB缓存参数,必须将其插入ceph.conf
文件的客户端部分:
rbd cache
= RBD缓存大小(以字节为单位)。 | 类型:布尔值,必填:否,默认值:false
[rbd cache size
=为RADOS块设备(RBD)启用缓存。 | 类型:64位整数,必需:否,默认值:32 MiB
[rbd cache max dirty
=缓存触发写回的dirty
限制(以字节为单位)。 |如果为0
,则使用直写式缓存。类型:64位整数,必需:否,约束:必须小于rbd cache size
,默认值:24 MiB
rbd cache target dirty
=缓存开始将数据写入数据存储之前的dirty target
。不阻止写入缓存。 | 类型:64位整数,必需:否,约束:必须小于rbd cache max dirty
,默认值:16 MiB
[rbd cache max dirty age
=开始写回之前,脏数据在高速缓存中的秒数。 | 类型:浮动,必填:否,默认值:1.0rbd缓存最大脏年龄
[rbd cache writethrough until flush
=以直写模式开始,并在收到第一个刷新请求后切换回写。启用此设置是一种保守但安全的设置,以防在rbd上运行的VM太旧而无法发送刷新,例如2.6.32之前的Linux中的virtio驱动程序。 | 类型:布尔值,必填:否,默认值:false