MD模块之处理读写过程分析-2

本文深入探讨了RAID5模块中的读写处理流程,重点关注handle_stripe函数,该函数在同步、重建和扩展中起关键作用。条带作为基本单位,其数据结构包括hash、lru、sector等字段,而r5dev结构体描述了每个设备的缓冲区状态。在读写过程中,缓冲区状态会变化。make_request函数重新分配请求并确定加入的条带,handle_stripe函数随后处理条带,最后通过release_stripe释放条带资源。
摘要由CSDN通过智能技术生成

这一节讲述raid5模块中处理读写流程。这个过程很复杂,最关键的函数就是handle_stripe,处理一次读或写都会多次调用这个函数才能完成。当然,这个函数也是raid5模块的一个核心函数,他还负责同步,重建,以及扩展的实现。在分析之前,我们需要准备一些预备知识:

一、条带:我们知道,raid5是以条带为基本单位来存取数据的。如下图所示:

raid5还有其它中数据分布方式,这里只列出一种。图中的block0,block1,block2等这些数据块在逻辑上是连续的。

值得注意的是,MD中raid5处理数据的最小单位是一个由大小4KB组成的小条带,即一个页大小,并不是一次处理一个block大小的条带。以后出现的条带均指的是这个由4KB组成的小条带。这个数据结构如下:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值