目的
解决 cephfs slow request 问题
参考故障信息
故障分析
- 通常发生 slow request 的原因有很多种,很难直接根据告警就可以获取关键信息
- 常见为 mds 正在 rebalace 属于正常现场,无需人工干预
- 由于用户操作了大量的文件导致,这个时候就比较痛苦
- 两个用户同时对一个目录下的文件做不同操作。例如一个 rename, 一个 rm 一个 vim 这个时候也是无法避免出问题
- 还有就是用户不断往目录创建大量的文件,有可能也会打爆 mds
题外话
- 最近听了 ceph 全国的一个公开论坛
- REDHAT 的工程师也指出, 类似与 cephfs 只适合用于大文件
- 对于小文件的生产环境必须要用 RGW, 因为 CEPHFS 的 MDS 性能受不住海量小文件的操作
用户操作
- 参考一下最近用户的数据操作量
- 以为记忆中, llm 现在一般的读写操作都是一波一波来,最多就是 1~2 G/s 左右很少连续频繁文件读写
参考最近监控
说明
- 6-27 ~ 6-28 两天内数据写入异常的夸张
- 这个操作可以把 mds 自身内存写满
- 那么如果再出现频繁的文件操作,mds 就需要做内存交换并且频繁与其他 mds 做数据交换
- 参考下图,mds 之间会相互保存了同一个目录信息
- 就是一个文件目录的信息回在多个 mds 中出现,当文件目录被修改,即多个 MDS 都需要同步数据
参考 mds slow 原因
- 由于需要命令行获取信息,命令可能一次过输出过百行的数据量
- 而 log.vip.vip.com 无法 一次过返回完整信息,因此当前没有自动定期输出日志信息
- 参考下面 mds 返回信息
cluster:
id: a1d0e45f-0e03-452f-87f3-1704a4555220
health: HEALTH_WARN
1 clients failing to advance oldest client/flush tid
6 clients