[发明专利]一种磁盘阵列初始化性能提升方法有效
申请号: | 201310671498.X | 申请日: | 2013-12-12 |
公开(公告)号: | CN103645862A | 公开(公告)日: | 2014-03-19 |
发明(设计)人: | 杨峰;孙斌;李艳国;周泽湘;李辉;单晓宇;罗华;谢红军 | 申请(专利权)人: | 北京同有飞骥科技股份有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100095 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明涉及一种更加有效的磁盘阵列初始化方法。该方法包括:将组建磁盘阵列设备的每个存储介质划分成N个区域,每个区域内可包括多个条带,同一区域内,选取一块存储介质作为初始化校验盘,不同区域,选择的初始化校验盘不同;初始化时,从磁盘阵列中初始化校验盘以外的每个存储介质上读取未完成初始化的数据,其中每个存储介质读取的数据块大小相同,且在同一区域;根据磁盘阵列校验算法对读取的多个存储介质的数据进行校验,以生成校验数据,然后将其写入到校验盘的相应位置,以保证上述初始化区域的数据一致性。本发明实现了多个区域并行初始化,不会出现读写交叉,通过区域的设计,大大提高了初始化速度与性能。 | ||
搜索关键词: | 一种 磁盘阵列 初始化 性能 提升 方法 | ||
【主权项】:
一种磁盘阵列初始化性能提升方法,其特征在于: 步骤一、对存储介质进行区域划分:将组成RAID设备中的每个存储介质划分为N个区域,其中1<=N<=STRIPE_NUM,STRIPE_NUM为条带个数,每个区域包含STRIPE_NUM/N个条带; 步骤二、进行多区域并行初始化,且多区域在并行初始化时,同一存储介质保证一次处理的读写请求足够长,避免读写频繁交叉造成的性能下降; 步骤三、每个区域内部,选择至少一个存储介质为校验块写入盘,其他存储介质为数据块读取盘; 步骤四、进行读写请求判断,若为读请求,则执行步骤五,若为写请求,执行步骤六; 步骤五、读线程用于各区域内初始化读请求的下发: (1)当初始化开始时,唤醒一个空闲的读线程; (2)读线程唤醒后,选择一个未被初始化区域,根据初始化位置计算出该位置所在区域号; (3)计算该区域内校验块数据写入盘号; (4)从该区域内非校验块数据写入盘上读取数据,其中所有数据的大小相同,记录读请求下发个数; (5)检查该区域内读请求是否处理完毕,如果是,则唤醒一个空闲写线程,执行步骤六,然后读线程继续下一步;如果不是,则读线程继续下一步; (6)判断所有区域的读请求是否下发完毕,如果是,则跳转至步骤五(7);如果不是,则返回步骤五(1)继续下一个区域的读请求下发; (7)读线程停止; 步骤六、写线程用于处理完成读请求的区域写请求的下发,在某一区域数据读取完毕后,写线程负责校验出校验块数据,并写入该区域内的校验盘对应位置,具体处理流程如下: (1)唤醒一个空闲写线程,第一次被唤醒是由步骤五(5)触发; (2)扫描一个初始化未完成区域; (3)判断该区域内读请求计数是否为0,如果是,则使用RAID校验所有读取出来的数据,返回步骤六(1);如果不是,则写线程继续下一步; (4)判断该区域内是否有数据校验完成,如果是,则向当前区域内校验块写入盘下发写请求,准备将校验出来的数据写入校验盘,返回步骤六(1);如果不是,则写线程继续下一步; (5)判断该区域内是否有写请求处理完成,如果是,则更新当前区域初始化状态和初始化位置信息,然后写线程继续下一步;如果不是,则写线程停止,跳转至步骤六(8); (6)判断当前区域初始化是否完成,如果是,则写线程继续下一步;如果不是,则写线程停止,跳转至步骤六(8); (7)判断所有区域初始化是否完成,如果是则更新RAID初始化状态,然后初始化结束;如果不是,则写线程停止。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京同有飞骥科技股份有限公司,未经北京同有飞骥科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201310671498.X/,转载请声明来源钻瓜专利网。