[改进后的中文总结内容]

会议纪要

会议时间: 2023年11月(具体日期未提及)

会议地点: 线上会议

参会人员: 与会者

会议主题: 讨论Ceph分布式存储系统中OSD的Scrub和Repair功能

会议内容

一、主要议题

  1. Scrub和Repair问题
    • 当前Scrub功能在处理不一致性时,需要手动分析中央日志,难以识别具体问题。
    • 建议增加接口,让OSD在Scrub PG时跟踪不一致性,并记录到LevelDB中。
    • 将不一致性信息与活跃区间逻辑绑定,便于后续处理。
  2. 接口设计
    • 定义所有对象不一致的方式,作为基础数据结构。
    • 使用该数据结构描述不一致对象,并记录到LevelDB中。
    • 增加查询不一致PG和对象的接口。
    • 增加修复不一致对象的接口,并考虑异步执行。
  3. 实现细节
    • 使用SnapMapper等架构设备记录不一致信息。
    • 使用新的Radius API,需要提供Epic序列号,以便比较请求。
    • 增加读取特定副本的接口,以及修复副本的接口。
  4. 一致性信息结构
    • 不一致性信息应包含与对象和一致性设计相关的所有信息。
    • 避免在结构中遗漏信息,否则无法传播给Liberators。
  5. Replica修复
    • 使用列表指定用于修复的正确副本。
    • 考虑将修复操作与Radius操作分离。
  6. 自动修复
    • 在Scrub命令中使用接口实现自动修复,或设置自动修复策略。
  7. 内部OSD元数据不一致
    • 通过修改对象信息来解决内部OSD元数据不一致。
    • 考虑将修复操作与Radius操作分离。

二、决定事项

  1. 增加接口,让OSD在Scrub PG时跟踪不一致性,并记录到LevelDB中。
  2. 定义不一致信息的数据结构,并记录到LevelDB中。
  3. 增加查询不一致PG和对象的接口。
  4. 增加修复不一致对象的接口,并考虑异步执行。
  5. 考虑将修复操作与Radius操作分离。
  6. 实现自动修复功能。
  7. 考虑将内部OSD元数据不一致的修复操作与Radius操作分离。

三、后续行动计划

  1. 与会者将根据会议讨论结果进行代码实现。
  2. 定期进行代码审查和讨论。
  3. 完成功能开发后,进行测试和验证。

四、其他事项

  1. 会议中讨论了使用Radius API或PGTell接口的问题,最终决定使用Radius API。
  2. 会议决定将修复操作与Radius操作分离,以避免引入过多的复杂性。