Ceph存储系统:BlueStore与非原生协议的深入解析
1. BlueStore概述
1.1 延迟写入机制
BlueStore在写入操作上与filestore有很大不同。在filestore中,每次写入都要先完整写入日志,再写入磁盘;而在BlueStore中,大多数情况下写入的数据部分会直接写入块设备,避免了双重写入的开销,提升了纯机械磁盘OSD的性能,并降低了SSD的磨损。不过,双重写入在机械磁盘搭配SSD日志时,能降低写入延迟。
BlueStore还可通过延迟写入来降低写入延迟,先将数据写入RocksDB的预写日志(WAL),再将条目刷新到磁盘。并非所有写入都会进入WAL,可通过配置参数 bluestore_prefer_deferred_size 来控制先写入WAL的I/O大小。对于机械磁盘,该参数默认值为32 KB,SSD默认不延迟写入。若写入延迟很重要且SSD速度足够快,可增大该值。
1.2 BlueFS文件系统
尽管开发BlueStore的初衷是不依赖底层文件系统,但它仍需一种方法来存储RocksDB和OSD磁盘上的数据。于是,BlueFS应运而生,它是一个极简的文件系统,仅提供BlueStore所需的最少功能集,专为Ceph提交的少量操作而设计,能可靠运行,还消除了使用标准POSIX文件系统时的双重文件系统日志写入开销。
与filestore不同,BlueFS不是原生Linux文件系统,无法直接浏览文件夹结构和查看对象,但可使用 ceph-objectstore-tool 挂载BlueFS文件系统,以便进行探索或手动纠正错误。
超级会员免费看
订阅专栏 解锁全文
1799

被折叠的 条评论
为什么被折叠?



