这些文章已经写了好几年了,可能已经过时了。在MSN space和QQzone几经辗转之后,我想也许这些技术文章还是放在搞技术的博客中更能帮助人。于是做了一个艰难的决定,把这些文章一篇篇搬过来!绝对是原创的。
说到调度,一般都是说进程或者线程调度,这里也不例外,因为resync和recovery都是由一个后台的MD工作线程在执行的,我们且称之为syncd。不再象2.4那样在RAID启动时为其注册一个syncd,如果没有工作就一直休眠,有resync的需要时就起来工作,2.6内核是在有resync需要时才注册syncd,在resync完毕就将其注销;2.6也不象2.4那样将resync线程与recovery线程分开,而是在需要时注册一个线程需要做resync就做resync,需要recovery就做recovery。我们暂且将如何注册MD工作线程放到一边,集中精力看看何时启动syncd,它又是何时结束的。