这些文章已经写了好几年了,可能已经过时了。在MSN space和QQzone几经辗转之后,我想也许这些技术文章还是放在搞技术的博客中更能帮助人。于是做了一个艰难的决定,把这些文章一篇篇搬过来!绝对是原创的。
延迟写是RAID-5中提高I/O吞吐率的一种重要的方法。延迟写(delay write),顾名思义就是在make_request将写请求加入到stripe_head中以后, 并不急于启动写处理(rmw或rcw),而是等一段时间,看是不是有后续的写请求也会被加入到这个stripe_head中。最好的情况就是后续加入的写请求填满了所有的数据dev,这样我们就不需要任何额外读就可以计算新Parity。这在顺序写(sequential WRITE)的情况下能带来很好的效果,而实践中很多情况都是顺序写的。别看前面的一些写请求被延迟了,但丝毫没有使写处理的效率下降,反而获得了更好的性能。
来看看延迟写在RAID-5中是如何实现的。初时,stripe_head的状态位STRIPE_PREREAD_ACTIVE没有被设置,所以所有的写请求如果需要预读,此时都不作处理,而是打上STRIPE_DE

这是一系列关于RAID-5技术的文章之一,主要探讨了延迟写这一特性。内容可能源于几年前,但依然探讨了RAID-5在Linux内核中的实现,包括IO处理和工作流程。
最低0.47元/天 解锁文章
3717

被折叠的 条评论
为什么被折叠?



