Ceph是一个可靠的、自治的、可扩展的分布式存储系统,它支持文件系统存储、块存储、对象存储三种不同类型的存储,以满足多样存储的需求。在Ceph的存储架构中,FileStore和BlueStore是两种重要的后端存储引擎,下面将分别进行详细介绍:
FileStore
-
概述:
- FileStore是Ceph早期采用的后端存储引擎。
- 它建立在传统的文件系统之上,如XFS、EXT4、BTRFS等。
-
工作原理:
- 在FileStore模式下,数据从OSD(Object Storage Daemon)到DISK的流程会经过文件系统层。
- 对象数据保存在文件中,对象的属性最初保存在POSIX的扩展文件属性中,后来由于限制转移到LevelDB这类事务性数据库中。
-
特点与限制:
- FileStore依赖于底层文件系统,因此会受到文件系统性能的限制。
- 数据写入过程涉及将磁盘操作转换为操作系统识别的文件系统操作,这个过程相对复杂且可能带来性能开销。
- 存在写放大问题,即实际写入的数据比要写入的数据更多,导致内存空间的浪费。
BlueStore
-
概述:
- BlueStore是Ceph团队在2015年提出的新型后端存储引擎。
- 它旨在解决FileStore存在的性能问题,并提升存储效率。
-
工作原理:
- BlueStore直接将对象数据保存在原始块设备中,绕过了本地文件系统层。
- 它采用RocksDB管理元数据,提高了存储效率。
- BlueStore还实现了一个用户态的文件系统BlueFS,用于直接操作块设备。
-
特点与优势:
- 避免了文件系统开销和其性能缺陷,提升了Ceph集群整体的性能。
- 通过实现用户态的文件系统BlueFS,以异步方式将数据直接写入磁盘,减少了写放大问题。
- RocksDB作为元数据管理后端,提供了强大的事务处理能力和性能。
-
应用情况:
- BlueStore因其表现出的优越性,在生产中被广泛应用,成为Ceph后端存储的主流选择。
总结
- FileStore和BlueStore都是Ceph的重要后端存储引擎。
- FileStore建立在传统文件系统之上,受到文件系统性能的限制,存在写放大等问题。
- BlueStore则直接操作块设备,绕过了文件系统层,提升了存储效率和性能,成为Ceph后端存储的主流选择。