狠狠撸

狠狠撸Share a Scribd company logo
谢型果
新型高性能对象存储引擎——BlueStore
? ZTE Corporation. All rights reserved
2
目录
缘由01
目标02
途径03
架构04
实现细节05
总结与展望06
? ZTE Corporation. All rights reserved
3
1
缘由
Chapter
? ZTE Corporation. All rights reserved
4
FileStore
(1) 元数据瓶颈:数据和元数据分离不彻底
(2) IO 路径过长:强烈依赖本地文件系统;缺省 XFS 仍然过于重量级
(3) 目录层级复杂:针对 PG 中的对象进行顺序遍历非常困难
(4) 写放大严重:日志叠加日志,写性能受制约
(5) 流控不完整:IOPS 和带宽抖动
(6) 资源消耗大:频繁 syncfs 系统调用导致居高不下的 CPU 利用率
缘由
? ZTE Corporation. All rights reserved
5
2
目标
Chapter
? ZTE Corporation. All rights reserved
6
目标
(1) 性能提升: 2 倍写性能提升和至少同等读性能
(2) 新硬件支持:新设备支持(NVMe SSD、NVRAM)
(3) 新特性支持:新特性支持(数据校验、数据压缩)
? ZTE Corporation. All rights reserved
7
3
途径
Chapter
? ZTE Corporation. All rights reserved
8
途径
(1) 分离元数据:元数据全部使用数据库存储,并支持使用独立的块设备存储
(2) 缩短 IO 路径:绕过本地文件系统,直接接管裸设备
(3) 新的数据库引擎:RocksDB + BlueFS
(4) 新的块设备接口:NVMe SSD、NVRAM…
(5) 技术改造:新的磁盘数据结构、新的缓存技术、新的磁盘空间管理技术…
? ZTE Corporation. All rights reserved
9
4
架构
Chapter
? ZTE Corporation. All rights reserved
10
架构
? ZTE Corporation. All rights reserved
11
5
实现细节
Chapter
? ZTE Corporation. All rights reserved
12
磁盘数据结构
(1) PG
(2) 对象:稀疏段支持
(3) 全局命名空间:轻松搞定 PG 分裂
(4) 数据校验:静默数据错误抵御能力
(5) 数据压缩:有效提升空间利用率
(6) 数据共享:范围(轻量级)的克隆操作支持,EC 必须
? ZTE Corporation. All rights reserved
13
磁盘数据结构
? ZTE Corporation. All rights reserved
14
缓存管理
(1) LRU
(2) LFU
(3) ARC
(4) 2Q
? ZTE Corporation. All rights reserved
15
磁盘空间管理
(1) 段
(2) 位图
(3) 段 + 位图?
(4) 如何处理 PG 之间的并行分配?
? ZTE Corporation. All rights reserved
16
BlueFS
目的
完美适配 RocksDB
形态
简易用户态事务(日志)文件系统
特点
(1) 扁平目录
(2) 增量日志
(3) 支持数据和日志分开存储
(4) 支持 .sst 和 .wal 分开存储
? ZTE Corporation. All rights reserved
17
file1
directory2
(“/var/db”)
file2
file3
file_map
file1
directory3
(“/var/log/ceph”)
file2
file3
file_map
file1
directory1
(“/root”)
file2
file3
file_map
dir_map
BlueFS
? ZTE Corporation. All rights reserved
18
6
总结与展望
Chapter
? ZTE Corporation. All rights reserved
19
总结与展望
收益
(1) 基本实现 2 倍写性能提升
(2) 具备静默数据错误抵御能力(依赖数据校验)
(3) 新型块设备支持能力
TODO
(1) 随机性能仍然不够理想
(2) 对象级的压缩策略性价比太低(多副本模式下存在重复)
(3) 内存消耗巨大
(4) 与已有版本兼容性问题(潜在的升级风险)
谢谢!

More Related Content

Ceph Day Beijing - BlueStore and Optimizations

  • 2. ? ZTE Corporation. All rights reserved 2 目录 缘由01 目标02 途径03 架构04 实现细节05 总结与展望06
  • 3. ? ZTE Corporation. All rights reserved 3 1 缘由 Chapter
  • 4. ? ZTE Corporation. All rights reserved 4 FileStore (1) 元数据瓶颈:数据和元数据分离不彻底 (2) IO 路径过长:强烈依赖本地文件系统;缺省 XFS 仍然过于重量级 (3) 目录层级复杂:针对 PG 中的对象进行顺序遍历非常困难 (4) 写放大严重:日志叠加日志,写性能受制约 (5) 流控不完整:IOPS 和带宽抖动 (6) 资源消耗大:频繁 syncfs 系统调用导致居高不下的 CPU 利用率 缘由
  • 5. ? ZTE Corporation. All rights reserved 5 2 目标 Chapter
  • 6. ? ZTE Corporation. All rights reserved 6 目标 (1) 性能提升: 2 倍写性能提升和至少同等读性能 (2) 新硬件支持:新设备支持(NVMe SSD、NVRAM) (3) 新特性支持:新特性支持(数据校验、数据压缩)
  • 7. ? ZTE Corporation. All rights reserved 7 3 途径 Chapter
  • 8. ? ZTE Corporation. All rights reserved 8 途径 (1) 分离元数据:元数据全部使用数据库存储,并支持使用独立的块设备存储 (2) 缩短 IO 路径:绕过本地文件系统,直接接管裸设备 (3) 新的数据库引擎:RocksDB + BlueFS (4) 新的块设备接口:NVMe SSD、NVRAM… (5) 技术改造:新的磁盘数据结构、新的缓存技术、新的磁盘空间管理技术…
  • 9. ? ZTE Corporation. All rights reserved 9 4 架构 Chapter
  • 10. ? ZTE Corporation. All rights reserved 10 架构
  • 11. ? ZTE Corporation. All rights reserved 11 5 实现细节 Chapter
  • 12. ? ZTE Corporation. All rights reserved 12 磁盘数据结构 (1) PG (2) 对象:稀疏段支持 (3) 全局命名空间:轻松搞定 PG 分裂 (4) 数据校验:静默数据错误抵御能力 (5) 数据压缩:有效提升空间利用率 (6) 数据共享:范围(轻量级)的克隆操作支持,EC 必须
  • 13. ? ZTE Corporation. All rights reserved 13 磁盘数据结构
  • 14. ? ZTE Corporation. All rights reserved 14 缓存管理 (1) LRU (2) LFU (3) ARC (4) 2Q
  • 15. ? ZTE Corporation. All rights reserved 15 磁盘空间管理 (1) 段 (2) 位图 (3) 段 + 位图? (4) 如何处理 PG 之间的并行分配?
  • 16. ? ZTE Corporation. All rights reserved 16 BlueFS 目的 完美适配 RocksDB 形态 简易用户态事务(日志)文件系统 特点 (1) 扁平目录 (2) 增量日志 (3) 支持数据和日志分开存储 (4) 支持 .sst 和 .wal 分开存储
  • 17. ? ZTE Corporation. All rights reserved 17 file1 directory2 (“/var/db”) file2 file3 file_map file1 directory3 (“/var/log/ceph”) file2 file3 file_map file1 directory1 (“/root”) file2 file3 file_map dir_map BlueFS
  • 18. ? ZTE Corporation. All rights reserved 18 6 总结与展望 Chapter
  • 19. ? ZTE Corporation. All rights reserved 19 总结与展望 收益 (1) 基本实现 2 倍写性能提升 (2) 具备静默数据错误抵御能力(依赖数据校验) (3) 新型块设备支持能力 TODO (1) 随机性能仍然不够理想 (2) 对象级的压缩策略性价比太低(多副本模式下存在重复) (3) 内存消耗巨大 (4) 与已有版本兼容性问题(潜在的升级风险)