11.3. Ceph BlueStore 缓存
BlueStore 缓存是缓冲区的集合,具体取决于配置,可以填充数据,因为 OSD 守护进程从中读取或写入到磁盘。默认情况下,Red Hat Ceph Storage 中 BlueStore 将缓存读内容,但不进行写入。这是因为 bluestore_default_buffered_write
选项设置为 false
,以避免出现与缓存驱除相关的潜在开销。
如果 bluestore_default_buffered_write
选项被设置为 true
,则数据会首先写入缓冲区,然后提交到磁盘。之后,写入确认将发送到客户端,从而加快对缓存中已存在的数据的后续读取速度,直到数据被驱除为止。
对于有大量读操作的工作负载不会立即从 BlueStore 缓存中受益。完成更多阅读后,缓存会随时间增长,后续的读取将提高性能。缓存填充的速度取决于 BlueStore 块和数据库磁盘类型,以及客户端的工作负载要求。
在启用 bluestore_default_buffered_write
选项前,请联系红帽支持。
缓存期限组合
Red Hat Ceph Storage 将不同缓存中的项目与"age bins"相关联,它提供了所有缓存项目的相对年龄视图。例如,当 BlueStore onode 缓存中存在旧的 onode 条目时,会针对单个大型对象发生热读取工作负载。该 OSD 的优先级缓存将旧的 onode 条目排序为比 hot 对象的缓冲缓存数据低的优先级级别。虽然通常,在给定优先级级别上,Ceph 可能会大量优先选择 onodes,但在这种热工作负载场景中,可能会为旧的 onodes 分配比热工作负载数据较低的优先级级别,以便首先实现缓冲区数据内存请求。