一种在存储阵列中处理WriteHole的方法

文档序号:6535739阅读:668来源:国知局
一种在存储阵列中处理Write Hole的方法
【专利摘要】本发明提供一种在存储阵列中处理WriteHole的方法,其处理过程为:互为冗余控制器对的存储系统中,在RAID5降级时将本端控制器所写数据备份到对端控制器。待本端控制器成功写入后,再通知对端控制器释放所备份数据。如果本端控制器在刷写磁盘的时候,控制器故障。对端控制器接管本端控制器存储资源时,重启RAID5将备份数据写到对应的磁盘上。该一种在存储阵列中处理WriteHole的方法和现有技术相比,提高RAID5磁盘阵列的数据一致性、稳定性,实用性强,易于推广。
【专利说明】—种在存储阵列中处理Write Hole的方法
【技术领域】
[0001]本发明涉及计算机存储阵列【技术领域】,更具体地说是在存储阵列中处理WriteHole的方法。
【背景技术】
[0002]RAID5是“采用块交叉访问及校验信息均匀分布”模式。
[0003]RAID5读写操作是以条带为基本单位,条带的宽度为4KB,条带的长度为成员磁盘个数。对于条带中磁盘数据的写操作,都要更新校验盘数据,以确保条带数据的一致性。其写操作为读改写时存在Write Hole问题。
[0004]什么是Write Hole ?我们知道在RAID5的一个条带中,必须满足Dl ? D2 ? D3 ? D4 ? P = 0,这样任何一个数据Dx才能由其他数据和P计算出来。但是在Power Failure的情况下会使得Dl ? D2 ? D3 ? D4 ? P !=0。为什么呢?假设这样一种情况:我们要写D1’,那么新的P’都会写到disk上,然而不幸的是在还没写完的情况下就停电了。这时候可能出现的情况Dl和P就会变成未知数据X和Y。X当然有可能是Dl也有可能是D1’,更可能是Dl和D1’的混合物,Y也是如此。这种情况下该条带上的数据不一致,而如果此时RAID5中有一块盘是失效的(RAID5降级),则利用未失效的磁盘计算出的失效盘在该条带上的数 据则是错误的。这就是Write Hole问题。
[0005]基于此,现需要一种能够保证RAID5条带上数据一致性、解决Write Hole问题的处理方法。

【发明内容】

[0006]本发明的技术任务是解决现有技术的不足,提供一种在存储阵列中处理WriteHole的方法。
[0007]本发明的技术方案是按以下方式实现的,该一种在存储阵列中处理Write Hole的方法,其具体处理过程为:
设置互为冗余的控制器存储系统,在RAID5模块中增加处于降级状态下的数据备份操作:即降级下的RAID5每次写数据都将要写的数据和校验值,以条带为单元同步传输到对端冗余控制器中,待本端控制器成功写入后,再通知对端控制器释放所备份数据;
如果刷写磁盘的时候,控制器故障,冗余控制器接管故障控制器存储资源时,重启RAID5,在RAID5提供外部读写请求前,将未释放的备份数据和校验写到对应的磁盘上。
[0008]互为冗余的控制器在RAID5降级的情况下,本端控制器和对端控制器为Sever/Client模式,将本端所写数据备份到对端控制器上:即本端控制器Client同对端控制器Sever建立连接,并将本端RAID5信息,以及所写条带和数据发送到对端备份;本端数据刷写完成,发送命令到对端,让对端释放掉所备份数据。
[0009]本发明与现有技术相比所产生的有益效果是:
本发明的一种在存储阵列中处理Write Hole的方法在本端控制器在刷写磁盘、控制器故障的时候,对端控制器接管本端控制器存储资源时,重启RAID5将备份数据写到对应的磁盘上,进而提高RAID5磁盘阵列的数据一致性、稳定性,实用性强,易于推广。
【专利附图】

【附图说明】
[0010]附图1为本发明的实现结构示意框图。
【具体实施方式】
[0011]下面结合附图对本发明的一种在存储阵列中处理Write Hole的方法作以下详细说明。
[0012]如附图1所示,现提供一种有效降低服务器功耗的风扇设计实现方法,其具体处理过程为:
设置互为冗余的控制器存储系统,在存储阵列为成对冗余控制器时,两冗余控制器之间设计成高速互联。在RAID5模块中增加处于降级状态下的数据备份操作:即降级下的RAID5每次写数据都将要写的数据和校验值,以条带为单元同步传输到对端冗余控制器中,待本端控制器成功写入后,再通知对端控制器释放所备份数据;
如果刷写磁盘的时候,控制器故障。冗余控制器接管故障控制器存储资源时,重启RAID5,在RAID5提供外部读写请求前,将未释放的备份数据和校验写到对应的磁盘上。这样就保证了 RAID5条带上数据的一致性,解决了 Write Hole问题。
[0013]互为冗余的控制器在RAID5降级的情况下,本端控制器和对端控制器为Sever/Client模式,将本端所写数据备份到对端控制器上:即本端控制器Client同对端控制器Sever建立连接,并将本端RAID5信息,以及所写条带和数据发送到对端备份;本端数据刷写完成,发送命令到对端,让对端释放掉所备份数据。
[0014]以上所述仅为本发明的实施例而已,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种在存储阵列中处理Write Hole的方法,其特征在于其具体处理过程为: 设置互为冗余的控制器存储系统,在RAID5模块中增加处于降级状态下的数据备份操作:即降级下的RAID5每次写数据都将要写的数据和校验值,以条带为单元同步传输到对端冗余控制器中,待本端控制器成功写入后,再通知对端控制器释放所备份数据; 如果刷写磁盘的时候,控制器故障,冗余控制器接管故障控制器存储资源时,重启RAID5,在RAID5提供外部读写请求前,将未释放的备份数据和校验写到对应的磁盘上。
2.根据权利要求1所述的一种在存储阵列中处理WriteHole的方法,其特征在于:互为冗余的控制器在RAID5降级的情况下,本端控制器和对端控制器为Sever/Client模式,将本端所写数据备份到对端控制器上:即本端控制器Client同对端控制器Sever建立连接,并将本端RAID5信息,以及所写条带和数据发送到对端备份;本端数据刷写完成,发送命令到对端,让对端释放掉所备份数据。
【文档编号】G06F3/06GK103729150SQ201410016709
【公开日】2014年4月16日 申请日期:2014年1月14日 优先权日:2014年1月14日
【发明者】周耀辉 申请人:浪潮电子信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1