MD(三)resync和recovery的调度(下)

本文详细介绍了RAID系统中resync和recovery的结束过程,包括syncd线程的结束、spare激活、状态更新及错误处理。通过md_error、md_unregister_thread等关键函数,探讨了如何判断并结束resync/recovery,以及在结束过程中如何处理RAID状态的变化。
摘要由CSDN通过智能技术生成

这些文章已经写了好几年了,可能已经过时了。在MSN space和QQzone几经辗转之后,我想也许这些技术文章还是放在搞技术的博客中更能帮助人。于是做了一个艰难的决定,把这些文章一篇篇搬过来!绝对是原创的。

说完启动再来看它的结束。同样是在md_check_recovery中,但我们会发现处理结束的代码处于处理启动的代码之前。其中的逻辑其实也很好理解,无非就是先处理已经启动的线程,但是由于我在阅读这部分代码时花了点时间,所以多罗嗦几句。实际上,光是md_check_recovery中的代码实际上并没有完全结束resync和recovery,只是结束了syncd,从这段代码注释中的“double check”就可以看出来。我们还是先看看syncd是如何结束的,再看resync和recovery如何停止。结束syncd很简单,既然启动它用的是md_register_thread,那结束它用md_unregister_thread就行。每次结束syncd都要做一次检查,就是检查是否需要将spare激活。这是针对recovery的动作,所谓激活spare,就是调用各RAID中的spare_active函数来将完成recovery的spare转换为正式与其他设备同步的设备,它内部是怎么工作可以参考RAID-5。当然,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值