Ceph: 验证 RBD 缓存是否激活
shan

快速简单的测试,用于验证客户端上是否启用了 RBD 缓存。
首先,如果您的 Ceph 版本较新或等于 0.87,则默认情况下已启用缓存。如果不是,则可以通过 [client] 简单地启用缓存。
[client]
rbd cache = true
rbd cache writethrough until flush = true
然后,您需要在 [client] 部分的 ceph.conf 中激活两个标志
[client]
admin socket = /var/run/ceph/$cluster-$type.$id.$pid.$cctid.asok
log file = /var/log/ceph/
这两个路径必须可被使用 RBD 库的用户写入,并且安全上下文(SELinux 或 AppArmor)必须配置正确。
完成此操作后,运行应该使用 librbd 的应用程序(虚拟机或其他),并从套接字请求管理守护程序
$ sudo ceph --admin-daemon /var/run/ceph/ceph-client.admin.66606.140190886662256.asok config show | grep rbd_cache
"rbd_cache": "true",
"rbd_cache_writethrough_until_flush": "true",
"rbd_cache_size": "33554432",
"rbd_cache_max_dirty": "25165824",
"rbd_cache_target_dirty": "16777216",
"rbd_cache_max_dirty_age": "1",
"rbd_cache_max_dirty_object": "0",
"rbd_cache_block_writes_upfront": "false",
验证缓存行为
如果您想进一步测试缓存带来的性能提升,可以执行以下操作:在 [client] 部分的 ceph.conf 中将其关闭,如下所示:rbd cache = false。然后使用以下命令进行基准测试(假设 RBD 池存在)
$ rbd -p rbd bench-write fio —io-size 4096 —io-threads 256 —io-total 1024000000 —io-pattern seq
最终,使用和不使用缓存部分运行此测试应该会带来显著的差异 :).
尽情享受吧!