知识卡片

BlueFS为RocksDB量身定制的极简文件系统

专业/工作 · 555.l

内容

BlueStore的元数据用RocksDB以Key/Value形式保存,但RocksDB自身的实现要求跑在某个文件系统之上,如果直接用XFS/Btrfs,等于又绕回了通用文件系统的开销问题。Ceph没有选择妥协,而是专门实现了一个极简的用户态文件系统BlueFS,只满足RocksDB这一个客户所需要的最小功能集,挂载时把所有元数据一次性加载进内存,还能在自身空间不足时向BlueStore共享的块设备借用空间,解决小文件场景下元数据空间和数据空间不匹配的经典问题。发散:这是”通用组件的依赖不可避免时,就把这个依赖的使用范围压缩到只服务一个调用方,从而可以对它做激进的裁剪和定制”的思路——BlueFS不追求成为通用文件系统,它唯一的产品经理就是RocksDB,这种”专用到只服务一个内部客户”的组件往往能做到通用组件做不到的性能水准。

参考来源

《Linux开源存储全栈详解从Ceph到容器存储》第7章《分布式存储与Ceph》