首页> 中国专利> 一种RAID5级别磁盘阵列的写性能优化方法

一种RAID5级别磁盘阵列的写性能优化方法

摘要

本发明公开了一种RAID5级别磁盘阵列的写性能优化方法,同时兼具连续数据保护功能,属于计算机数据存储领域,解决RAID5级别磁盘阵列在写负载请求聚发时系统响应慢的问题。本发明包括存储系统构建步骤、数据读写步骤和磁盘失效后的数据恢复步骤,采用阵列与数据备份盘组合的存储系统组织方案,通过暂停校验位的更新,减少写操作引起的磁盘I/O次数来提高系统的响应速度,同时利用备份盘数据可恢复阵列至之前任一时间点的状态。本发明通过暂停校验位更新的方法为具有连续数据保护功能的RAID5磁盘阵列提升写负载请求聚发时系统的性能,可用于需要数据保护功能、负载突发率高的存储环境,适用于构建高性能、高可靠性的存储系统。

著录项

  • 公开/公告号CN102184079A

    专利类型发明专利

  • 公开/公告日2011-09-14

    原文格式PDF

  • 申请/专利权人 华中科技大学;

    申请/专利号CN201110111806.4

  • 申请日2011-04-29

  • 分类号G06F3/06(20060101);

  • 代理机构42201 华中科技大学专利中心;

  • 代理人李佑宏

  • 地址 430074 湖北省武汉市洪山区珞喻路1037号

  • 入库时间 2023-12-18 03:08:57

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2012-11-07

    授权

    授权

  • 2011-11-02

    实质审查的生效 IPC(主分类):G06F3/06 申请日:20110429

    实质审查的生效

  • 2011-09-14

    公开

    公开

说明书

技术领域

本发明属于计算机数据存储领域,具体涉及一种具有连续数据保护功能的RAID5级别磁盘阵列的写性能优化方法。

背景技术

随着计算机技术和网络通信技术的发展,信息化程度越来越高,人们对数据可靠性和关键数据保护的要求也越来越高。磁盘阵列RAID(Redundant Array of Independent Disks)是可靠存储系统领域中的一个典型装置,磁盘阵列的工作原理与特征:RAID的基本结构特征就是组合(Striping),捆绑2个或多个物理磁盘成组,形成一个单独的逻辑盘。连续数据保护CDP(Continuous Data Protection)是传统数据保护领域的一个重大突破,系统记录每次数据更新请求的相关信息,在灾难发生后可恢复到任意的数据备份时间点。

RAID结构已经被划分为几个标准,其中RAID5级别是无独立校验盘的奇偶校验磁盘阵列,采用奇偶校验来检查错误,校验信息分布在各个磁盘驱动器上,可以恢复任意单磁盘出错。RAID5磁盘阵列处理写请求时都要更新校验信息,通常采用有读改写(read modifywrite)或重构写(reconstruct write)方式处理。读改写方式是先读出写请求将覆盖的磁盘扇区内容,再计算校验信息,最后更新写请求数据块和校验信息到磁盘;重构写方式是先读出条带中除校验磁盘外没有被写请求覆盖的磁盘内容,再与写请求数据块计算校验,最后更新写请求数据块和校验信息到磁盘。

目前具有连续数据保护功能的磁盘阵列往往没有充分发挥磁盘阵列读写性能,美国发明专利US7730347B1提出的具有连续数据保护功能的磁盘阵列方案巧妙的将磁盘阵列写过程中产生的异或值压缩存储到备份盘,但其并没有充分利用磁盘阵列校验信息与连续数据保护所产生数据之间的关系,阵列的写性能也有一定的降低。

发明内容

本发明提出一种RAID5级别磁盘阵列的写性能优化方法,同时兼具连续数据保护功能,采用一种阵列与备份盘结合的架构,通过暂停校验位更新,使得RAID5的写性能得到提升尤其是在负载很大的时候作用更加明显,解决现有的RAID5级别磁盘阵列在负载较大时写性能不好的问题。

本发明的一种具有连续数据保护功能的RAID5级别磁盘阵列的写性能优化方法,包括存储系统构建、数据读写和磁盘失效后的数据恢复这三个具体步骤,其特征如下:

(1)存储系统构建

首先,在RAID5磁盘阵列结构外加一个备份盘,以保存RAID5磁盘阵列写请求数据块与将被写请求覆盖的原数据块通过异或计算的异或数据块。

其次,同时在内存中设置Hash表和备份数据缓冲区,其中,备份数据缓冲区存放异或数据块,Hash表用于记录写请求数据块对应的磁盘号、扇区号、请求时间以及异或数据块在备份数据缓冲区或备份盘中的索引信息。

一般情况下系统清空备份盘数据时应先恢复RAID5磁盘阵列校验信息到一致状态,同样,使用本发明方法前应确保RAID5磁盘阵列校验信息为一致状态。

对备份盘的写操作采取顺序追加的方式,写往备份盘的数据先累积在备份数据缓冲区中,待缓冲区填满之后再一次性写到备份盘上。

该存储系统中RAID5磁盘阵列固定采用读改写方式而非重构写方式处理写请求。

(2)数据读写

系统处理读请求的流程一般RAID5磁盘阵列相同,处理写请求时并不需要读取校验块、计算校验信息和更新校验块,其主要步骤如下:

(2.1)将上层发下来的写请求按照阵列结构进行分解,将针对各磁盘相同扇区的写请求用条带s组织起来,假设条带对应的扇区号为C(s);

(2.2)记录当前时间为T(m),m为系统内部时间。采用读改写方式,读出写请求数据块BT(m+1)将覆盖磁盘位置的原数据块BT(m)放入条带缓冲区;

(2.3)判断备份缓冲区是否满,如果缓冲区满,转步骤(2.4),否则转步骤(2.5);

(2.4)将备份缓冲区中的数据顺序写到备份盘上,更新Hash表中对应数据块条目的位置信息L为备份盘中该数据块的存放位置;

(2.5)计算写请求数据块BT(m+1)与条带缓冲区中原数据块BT(m)的异或数据块PT(m+1),即添加异或数据块到备份数据缓冲区中;

(2.6)假设请求数据块的磁盘号为D(i),i为阵列内部磁盘序号,创建一个Hash表条目,记录数据块的磁盘号D(i)、扇区号C(s)、请求时间T(m)以及异或块PT(m+1)在备份缓冲区中的位置L(PT(m+1)),将条目插入到Hash表中;

(2.7)将写请求数据块填充到条带缓冲区,由条带下发到各磁盘。在条带中各磁盘写操作完成之后,该次写操作即成功返回。

(3)磁盘失效后的数据恢复

阵列发生磁盘失效的数据恢复需要借助备份盘,将备份缓冲区中数据更新到备份盘,以RAID5磁盘阵列中条带为单位,逐条带恢复整个失效磁盘,其单条带处理流程如下:

(3.1)读取磁盘数据块到条带s的磁盘缓冲区,置条带中失效盘缓冲区为零。假设失效磁盘为D(r),条带处理的磁盘扇区号为C(s),条带s的磁盘缓冲区中数据块分别为BT(m+k(1))(D(1))、BT(m+k(2))(D(2))、…、BT(m+k(n))(D(n)),n为阵列内部磁盘总数,k(i)为磁盘i从时间m到当前被写请求覆盖的次数,其中BT(m+k(r))(D(r))=0;

(3.2)设临时变量j,并赋值为1;

(3.3)如果j大于n,转步骤(3.7),否则转步骤(3.4);

(3.4)查找Hash表中扇区号为C(s),磁盘号为D(j)的条目,根据条目中数据块的位置信息L,从备份盘中读取异或数据块PT(m+1)(D(j))、PT(m+2)(D(j))、…、PT(m+k(j))(D(j)),计算所有块的异或值若无对应条目,PD(j)=0;

(3.5)将条带中磁盘D(j)缓冲区数据块BT(m+k(j))(D(j))与PD(j)异或,即更新RD(j)到条带中磁盘D(j)缓冲区;

(3.6)临时变量j增1,转步骤(3.3);

(3.7)磁盘缓冲区均完成更新,同步条带,计算更新BD(r)到条带失效磁盘缓冲区,由于且m时刻RAID5磁盘阵列牌校验一致性状态,BD(r)即为失效盘D(r)最新数据块;

(3.8)写条带中磁盘D(r)缓冲区数据块到恢复盘扇区C(s),完成条带s恢复。

本发明基于一个普遍存在的现象,即RAID5级别的磁盘阵列写性能较差,尤其是小数据块写请求时性能更差。本发明通过利用磁盘阵列与连续数据保护的冗余信息,采用阵列与备份盘结合的架构,包括存储系统构建、数据读写和磁盘失效后的数据恢复这三个具体步骤,解决了RAID5级别磁盘阵列写性能不好的问题,同时兼具连续数据保护功能,极大提升了RAID5级别磁盘阵列小数据块写请求性能。

附图说明

图1为本发明系统架构示意图;

图2为本发明的Hash链表结构示意图;

图3为本发明的写请求处理示意图;

图4为本发明的恢复单条带示意图;

具体实施方式

下面结合附图对本发明进一步详细说明。

本发明的一种RAID5级别磁盘阵列的写性能优化方法,同时兼具连续数据保护功能,包括存储系统构建、数据读写和磁盘失效后的数据恢复这三个具体步骤,其特征如下:

(1)存储系统构建步骤,组成架构如国1所示

首先,在RAID5磁盘阵列结构外加一个备份盘,以保存RAID5磁盘阵列写请求数据块与将被写请求覆盖的原数据块通过异或计算的异或数据块。

其次,同时在内存中设置Hash表和备份数据缓冲区,其中,备份数据缓冲区存放异或数据块,Hash表用于记录写请求数据块对应的磁盘号、扇区号、请求时间以及异或数据块在备份数据缓冲区或备份盘中的索引信息,Hash表具体结构如图2所示。

一般情况下系统清空备份盘数据时应先恢复RAID5磁盘阵列校验信息到一致状态,同样,使用本发明方法前应确保RAID5磁盘阵列校验信息为一致状态。

对备份盘的写操作采取顺序追加的方式,写往备份盘的数据先累积在备份数据缓冲区中,待缓冲区填满之后再一次性写到备份盘上。

该存储系统中RAID5磁盘阵列固定采用读改写方式而非重构写方式处理写请求。

(2)数据读写

系统处理读请求的流程一般RAID5磁盘阵列相同,处理写请求时并不需要读取校验块、计算校验信息和更新校验块,具体流程如图3所示,其主要步骤如下:

(2.1)将上层发下来的写请求按照阵列结构进行分解,将针对各磁盘相同扇区的写请求用条带s组织起来,假设条带对应的扇区号为C(s);

(2.2)记录当前时间为T(m),m为系统内部时间。采用读改写方式,读出写请求数据块BT(m+1)将覆盖磁盘位置的原数据块BT(m)放入条带缓冲区;

(2.3)判断备份缓冲区是否满,如果缓冲区满,转步骤(2.4),否则转步骤(2.5);

(2.4)将备份缓冲区中的数据顺序写到备份盘上,更新Hash表中对应数据块条目的位置信息L为备份盘中该数据块的存放位置;

(2.5)计算写请求数据块BT(m+1)与条带缓冲区中原数据块BT(m)的异或数据块PT(m+1),即添加异或数据块到备份数据缓冲区中;

(2.6)假设请求数据块的磁盘号为D(i),i为阵列内部磁盘序号,创建一个Hash表条目,记录数据块的磁盘号D(i)、扇区号C(s)、请求时间T(m)以及异或块PT(m+1)在备份缓冲区中的位置L(PT(m+1)),将条目插入到Hash表中;

(2.7)将写请求数据块填充到条带缓冲区,由条带下发到各磁盘。在条带中各磁盘写操作完成之后,该次写操作即成功返回。

(3)磁盘失效后的数据恢复

阵列发生磁盘失效的数据恢复需要借助备份盘,将备份缓冲区中数据更新到备份盘,以RAID5磁盘阵列中条带为单位,逐条带恢复整个失效磁盘,其单条带处理流程如图4所示,主要处理步骤如下:

(3.1)读取磁盘数据块到条带s的磁盘缓冲区,置条带中失效盘缓冲区为零。假设失效磁盘为D(r),条带处理的磁盘扇区号为C(s),条带s的磁盘缓冲区中数据块分别为BT(m+k(1))(D(1))、BT(m+k(2))(D(2))、…、BT(m+k(n))(D(n)),n为阵列内部磁盘总数,k(i)为磁盘i从时间m到当前被写请求覆盖的次数,其中BT(m+k(r))(D(r))=0;

(3.2)设临时变量j,并赋值为1;

(3.3)如果j大于n,转步骤(3.7),否则转步骤(3.4);

(3.4)查找Hash表中扇区号为C(s),磁盘号为D(j)的条目,根据条目中数据块的位置信息L,从备份盘中读取异或数据块PT(m+1)(D(j))、PT(m+2)(D(j))、…、PT(m+k(j))(D(j)),计算所有块的异或值若无对应条目,PD(j)=0;

(3.5)将条带中磁盘D(j)缓冲区数据块BT(m+k(j))(D(j))与PD(j)异或,即更新RD(j)到条带中磁盘D(j)缓冲区;

(3.6)临时变量j增1,转步骤(3.3);

(3.7)磁盘缓冲区均完成更新,同步条带,计算更新BD(r)到条带失效磁盘缓冲区,由于且m时刻RAID5磁盘阵列牌校验一致性状态,BD(r)即为失效盘D(r)最新数据块;

(3.8)写条带中磁盘D(r)缓冲区数据块到恢复盘扇区C(s),完成条带s恢复。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号