2.9. Ceph ObjectStore

ObjectStore 为 OSD 的原始块设备提供低级别接口。当客户端读取或写入数据时,它会与 ObjectStore 接口交互。Ceph 写入操作本质上是 ACID 事务:即,它们提供 原子性一致性隔离 和持久性ObjectStore 确保 Transaction 提供 原子性ObjectStore 还处理对象语义。存储集群中存储的对象具有唯一标识符、对象数据和元数据。因此 ObjectStore 通过确保 Ceph 对象语义正确来提供 ConsistencyObjectStore 另外,在写操作上调用 Sequencer 来提供 ACID 事务的 隔离 部分,以确保 Ceph 写入操作按顺序进行。相反,OSD 复制或纠删代码功能提供了 ACID 事务的可达 组件。因为 ObjectStore 是存储介质的低级别接口,所以它还提供性能统计。

Ceph 实施多种具体存储数据的方法:

  • FileStore: 利用文件系统存储对象数据的生产级别实施。
  • BlueStore: 利用原始块设备存储对象数据的生产评级实施。
  • Memstore: 一种开发人员实施,用于直接在 RAM 中测试读/写操作。
  • K/V 存储: 一种供 Ceph 使用键/值数据库的内部实施。

因为管理员通常只解决 BlueStore,因此以下小节将只详细描述这些实现。