[发明专利]软件RAID请求处理方法、控制器及RAID存储系统在审
| 申请号: | 202210319903.0 | 申请日: | 2022-03-29 |
| 公开(公告)号: | CN114780025A | 公开(公告)日: | 2022-07-22 |
| 发明(设计)人: | 曹强;王书成 | 申请(专利权)人: | 华中科技大学 |
| 主分类号: | G06F3/06 | 分类号: | G06F3/06;G06F9/52 |
| 代理公司: | 华中科技大学专利中心 42201 | 代理人: | 夏倩;李智 |
| 地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 软件 raid 请求 处理 方法 控制器 存储系统 | ||
1.一种软件RAID请求处理方法,其特征在于,包括:
为每个IO线程分配对应的处理线程和写请求合并队列,并为每个条带分配条带处理锁,所述条带处理锁为独占锁;
在IO线程TIO发出写请求Rw时,将所述写请求Rw发送到所述IO线程TIO对应的处理线程Tp,由所述处理线程Tp通过如下步骤处理所述写请求Rw:
(S1)获得所述写请求Rw的目标条带的状态,以判断所述目标条带的条带处理锁当前是否被专用线程所占用,若是,则转入步骤(S2);若否,则转入步骤(S3);
(S2)判断所述专用线程对应的写请求合并队列Qd是否允许合并写请求,若是,将则所述写请求Rw添加到所述写请求合并队列Qd的队尾,等待所述专用线程将所述写请求Rw处理完成后返回;若否,则转入步骤(S1);
(S3)所述处理线程Tp获取所述目标条带的条带处理锁而成为专用线程,并处理所述写请求Rw,处理完成后返回。
2.如权利要求1所述的软件RAID请求处理方法,其特征在于,所述步骤(S3)中,所述处理线程Tp获取所述目标条带的条带处理锁而成为专用线程,并处理所述写请求Rw,包括:
所述处理线程Tp获取所述目标条带的条带处理锁而成为专用线程后,设置所述写请求合并队列Qw的状态为允许合并写请求;
等待预设时间窗口T之后,设置所述写请求合并队列Qw的状态为不允许合并写请求,并将所述写请求合并队列Qw中的写请求合并之后,将请求写入的数据写入所述目标条带。
3.如权利要求2所述的软件RAID请求处理方法,其特征在于,将请求写入的数据写入所述目标条带,包括:
计算并比较条带重建时需要从目标条带中读取的原始数据块数量和原始校验块数量,若需从所述目标条带中读取的原始数据块的数量较少,则使用“读-重建-写”的方式重建条带,并从所述目标条带中读取原始数据块;若需从所述目标条带中读取的原始校验块的数量较少,则使用“读-修改-写”方式重建条带,并从缓存和所述目标条带中读取原始校验块。
4.如权利要求1~3任一项所述的软件RAID请求处理方法,其特征在于,还包括:为每一个条带建立一个处理状态条目;所述处理状态条目记录的信息包括:条带号、条带处理锁状态、专用线程ID和停止合并标记位;
其中,停止合并标记位用于指示专用线程的写请求合并队列是否允许合并写请求。
5.如权利要求4所述的软件RAID请求处理方法,其特征在于,所述步骤(S3)中,在写请求处理完成Rw处理完成后,返回之前还包括:将所述目标条带的处理状态条目中专用线程ID和停止合并标记位清空后,将条带处理锁状态设置为未占用。
6.如权利要求1~3任一项所述的软件RAID请求处理方法,其特征在于,还包括:在IO线程发出读请求时,直接将所述读请求发送到对应的条带。
7.一种软件RAID控制器,其特征在于,包括:处理器和计算机可读存储介质;
所述计算机可读存储介质中存储有计算机程序;
所述处理器用于读取所述计算机程序,执行权利要求1~6任一项所述的软件RAID请求处理方法。
8.一种RAID存储系统,其特征在于,包括:用于组成RAID的多个物理存储器,和权利要求7所述的软件RAID控制器。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210319903.0/1.html,转载请声明来源钻瓜专利网。





