[改进后的中文总结内容]
会议纪要
会议时间: 2023年11月(具体日期未提及)
会议地点: 线上会议
参会人员: 与会者
会议主题: 讨论Ceph分布式存储系统中OSD的Scrub和Repair功能
会议内容:
一、主要议题
- Scrub和Repair问题:
- 当前Scrub功能在处理不一致性时,需要手动分析中央日志,难以识别具体问题。
- 建议增加接口,让OSD在Scrub PG时跟踪不一致性,并记录到LevelDB中。
- 将不一致性信息与活跃区间逻辑绑定,便于后续处理。
- 接口设计:
- 定义所有对象不一致的方式,作为基础数据结构。
- 使用该数据结构描述不一致对象,并记录到LevelDB中。
- 增加查询不一致PG和对象的接口。
- 增加修复不一致对象的接口,并考虑异步执行。
- 实现细节:
- 使用SnapMapper等架构设备记录不一致信息。
- 使用新的Radius API,需要提供Epic序列号,以便比较请求。
- 增加读取特定副本的接口,以及修复副本的接口。
- 一致性信息结构:
- 不一致性信息应包含与对象和一致性设计相关的所有信息。
- 避免在结构中遗漏信息,否则无法传播给Liberators。
- Replica修复:
- 使用列表指定用于修复的正确副本。
- 考虑将修复操作与Radius操作分离。
- 自动修复:
- 在Scrub命令中使用接口实现自动修复,或设置自动修复策略。
- 内部OSD元数据不一致:
- 通过修改对象信息来解决内部OSD元数据不一致。
- 考虑将修复操作与Radius操作分离。
二、决定事项
- 增加接口,让OSD在Scrub PG时跟踪不一致性,并记录到LevelDB中。
- 定义不一致信息的数据结构,并记录到LevelDB中。
- 增加查询不一致PG和对象的接口。
- 增加修复不一致对象的接口,并考虑异步执行。
- 考虑将修复操作与Radius操作分离。
- 实现自动修复功能。
- 考虑将内部OSD元数据不一致的修复操作与Radius操作分离。
三、后续行动计划
- 与会者将根据会议讨论结果进行代码实现。
- 定期进行代码审查和讨论。
- 完成功能开发后,进行测试和验证。
四、其他事项
- 会议中讨论了使用Radius API或PGTell接口的问题,最终决定使用Radius API。
会议决定将修复操作与Radius操作分离,以避免引入过多的复杂性。