IO部分落盘,文件数据损坏-数据库论坛-技术分享-千百度社区

IO部分落盘,文件数据损坏

IO部分落盘,文件数据损坏

转载自华为服务支持的IO部分落盘,文件数据损坏避免文件系统损坏的关键参数

问题描述

存储断链后,部分文件数据错误。

原因分析

更新一个文件,按照落盘顺序分为: 数据、JBD2日志、元数据。

需要说明的是,日志和元数据下发会等数据IO流程结束, 但是并没有要求数据IO一定下发成功。

IO闪断情况下,可能存在以下场景:

数据下发失败, 日志和元数据下发成功,从而表现出文件内容损坏的现象。

解决办法

mount磁盘时,指定data_err=abort, 保证在数据IO下发失败时,不再进行后续日志和元数据更新。

其它避免文件系统损坏的关键参数

为避免文件系统损坏,有两个挂载参数需要特别关注:mount -o

元数据异常后的处理策略

errors=panic  文件系统错误发生后,直接复位系统,复位后修复

errors=remount-ro  文件系统错误发生后,对应挂载点变为只读模式,用户可以通过卸载、修复、重新挂载恢复使用

errors=continue 文件系统错误发生后,系统继续运行,需要注意这个模式有问题扩散风险。这种模式,不推荐,也达不到预期效果。

数据下发异常后的处理策略

data_err=ignore 文件数据发生错误后,仅仅打印告警日志,系统继续运行(原生默认模式)

data_err=abort  文件数据发生错误后,abort掉jbd2日志,当触发新的元数据变更时会根据前面errors=***的配置流程处理。

© 著作权归作者所有,转载或内容合作请联系作者

请登录后发表评论

    没有回复内容