磁盘阵列结构中进行回写的方法技术

技术编号:2921228 阅读:211 留言:0更新日期:2012-04-11 18:40
一种磁盘阵列结构中进行回写的方法,其特征在于,包括以下步骤:A1、高速缓存(Cache)按照一定的策略选取要回写的区域;A2、对回写区域数据进行预处理,集中批量下发对磁盘的子读请求;A3、对返回的磁盘子读请求响应进行 处理;A4、集中批量下发对磁盘的子写请求;A5、对返回的磁盘子写请求响应进行处理。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及数据的存储,尤其涉及一种。
技术介绍
随着计算机应用领域的不断拓宽,用户对于存储系统的容量要求越来越大,对其可靠性、可用性要求越来越高,速度要求也越来越快。微处理器的处理速度相应提高很快。但是作为主要外存的磁盘由于机械运动的限制,其速度改善不大(存取时间停留在毫秒级),这样就大大限制了SAN(存储区域网络)系统的整体性能。解决这个瓶颈的带Cache(高速缓存)的磁盘阵列结构(RAID),以其高效、快速、大容量、高可靠性和灵活、价廉的优点在高性能计算机存储中占主导地位。磁盘阵列技术将普通硬盘组成一个磁盘阵列,在主机写入数据时,RAID控制器把主机要写入的数据分解为多个数据块,然后并行写入磁盘阵列;主机读取数据时,RAID控制器并行读取分散在磁盘阵列中各个硬盘上的数据,把它们重新组合后提供给主机。由于采用并行读写操作,从而提高了存储系统的存取程度。此外,RAID磁盘阵列还可以采用镜像、奇偶校验等措施,来提高系统的容错能力,保证数据的可靠性。根据RAID所采用的方法不同,可以将其分为0-5六个级别RAID 0即数据分条技术,主机要求写入数据时,RAID控制器将数据分成许多块,然后并行地将它们写到磁盘阵列中的各个硬盘上;读出数据时,RAID控制器从各个硬盘上读取数据,把这些数据恢复为原来顺序后传给主机。整个逻辑盘的数据是被分条(stripped)分布在多个物理磁盘上,可以并行读/写,提供最快的速度,但没有冗余能力。这种方法的优点是采用数据分块、并行传送方式,能够提高主机读写速度,并且磁盘阵列中存储空间没有冗余。但它对系统的可靠性没有任何提高,任一个硬盘介质出现故障时,系统无法恢复。RAID 1它把磁盘阵列中的硬盘分成相同的两组,互为镜像,当任一磁盘介质出现故障时,可以利用其镜像上的数据恢复,从而提高系统的容错能力。对数据的操作仍采用分块后并行传输方式。所以RAID 1不仅提高了读写速度,也加强系统的可靠性。但其缺点是硬盘的利用率低,冗余度为50%。RAID 2/RAID 4这两个级别在实际中很少应用,多数系统也不支持,这里不作介绍。RAID 3同RAID 0一样,RAID 3也采用数据分块并行传送的方法,但所不同的是它在数据分块之后计算它们的奇偶校验和,然后把分块数据和奇偶校验信息一并写到硬盘阵列中。采用这种方法对数据的存取速度和可靠性都有所改善,当阵列中任一硬盘损坏时,可以利用其它数据盘和奇偶校验盘上的信息重构原始数据。在硬盘利用率方面,RAID 3比RAID 1要高,例如由5个硬盘组成的阵列,冗余度只有20%。不过,RAID 3也有缺点,由于奇偶校验信息固定存储在一个硬盘上,使该硬盘负担较重,从而产生新的瓶颈。RAID 5与RAID 3所采用的数据处理方法相似,所不同的是它把奇偶较验信息交叉写到阵列中的每个硬盘上,从而克服了RAID 3中的瓶颈问题。如图1所示为RAID5中分条单元及分条的结构示意图,整个逻辑盘的数据是按分条分布在物理磁盘1、磁盘2、磁盘3和磁盘4上,可以并行读/写,主机访问的逻辑盘地址是按照D1、D2、D3、D4、......D11、D12顺序编排的。其中分条1由分条单元D1、D2、D3和校验单元P组成。目前在带Cache(高速缓存)的磁盘阵列结构中普遍采用快速写技术(Fast Write),即当主机写请求到来时,数据块写进Cache后即发响应完成信号,实际回写操作在后台异步实现,减少了写请求响应时间。因为实际写入过程延迟,所以同磁道或柱面的数据可以一次写入,从而减少了磁盘寻道次数。将多个小块写合并成一次大块或满块写,有效减少了小块写的比例,减少了磁盘写入次数。回写是将Cache中写数据写入磁盘的过程,回写时间=磁头定位时间(寻道时间和旋转延迟)+数据传输时间,相对来说磁头定位时间是很长的(毫秒级别),而数据传输时间跟写数据的大小有关,且没有优化的余地,因此要提高回写效率,主要是减少磁头定位时间。RAID5技术将若干个物理磁盘捆绑在一起提供给用户,通过为用户数据维护校验数据达到单盘故障仍能恢复数据的功能。用户认为这若干个磁盘是一个磁盘(逻辑盘)。其中,最常用的校验数据公式为分条中的校验数据=该分条中所有用户数据分条单元数据的异或如图2所示,就是校验数据P=D0 XOR D1 XOR D2(其中,XOR为异或操作)。每次对磁盘的写,代表D0、D1或者D2有数据发生变化,此时校验数据已经过时,不能用以故障恢复,因此RAID5技术对于每次写都需要重新生成新校验数据。为了使得每次生成校验数据发生的读写次数最少,引入大写和小写两个概念。对于分条中大多数分条单元的写,如分条中包含D0、D1、D2,用户需要写D0、D1,采用大写方式。即把磁盘中D2数据读出,然后根据P=D0 XOR D1 XOR D2直接得到新校验数据。对于分条中小部分分条单元的写,如分条中包含D0、D1、D2、D3,用户需要写D0,采用小写方式。因为假如此时用大写方式,为了计算校验数据需要把D1、D2、D3全部读出来,才能根据P=D0 XOR D1 XOR D2XOR D3计算出来。此时可以用另外一个公式,也就是小写计算校验数据的公式新校验数据=旧校验数据XOR旧数据XOR新数据此时只需要读磁盘的D0数据和旧校验数据P就可以计算出校验数据,比采用大写方式读取的分条单元数少。满写,即当整个分条的数据全部在CACHE中,不需要从磁盘读出时,此时只需要利用P=D0 XOR D1 XOR D2 XOR D3直接计算出校验数据,直接写磁盘就可以了,不用读磁盘数据。前面对大写、小写和满写的原理进行了介绍,下面结合图示对大写和小写的流程进行具体说明如图2所示,小写是RAID5的一种写技术,一般用于当“脏分条单元(即包含写数据的分条单元,比如图1中的D0)”个数<(1/2×成员磁盘个数(图中等于4))时的写,其写过程为1)从磁盘读出“脏分条单元”的原有数据D0old;2)从磁盘读出“脏分条单元”对应的原校验数据Pold;3)根据表达式〔(原有数据)XOR(新数据)〕XOR(原有校验数据)=新的校验数据异或生成新的校验数据Pnew=D0oldXOR D0newXOR Pold;4)将“脏分条单元”和新的校验数据写入磁盘,即将“脏分条单元”的新数据写入D0,新的检验数据写入P中。如图3所示,大写是RAID5的一种写技术,一般用于当“脏分条单元(即包含写数据的分条单元,比如图2中的D0、D1)”个数≥(1/2×成员磁盘个数(图中等于4))时的写,其写过程为1)对未被主机更新的分条单元,从磁盘读出数据D2old;2)计算新的校验数据Pnew=D0newXOR D1newXOR D2old;3)将“脏分条单元”和新的校验数据写入磁盘,即将“脏分条单元”的新数据写入D0、D1,新的检验数据写入P中。业界对回写的实现则是各显神通,但大多数研究都集中在如何选取回写的时机和回写的数据,以达到回写效率最高。这些研究包括IBM(国际商用机器公司)的专利US6192450“Destage of Data forWrite Cache”,采用LRU(最近最少使用)算法确定某个需要回写的数据(作为种子结点),每次回写由该种子结点确定的一个工作集本文档来自技高网...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:陈绍元黄玉环唐小松张粤张国彬张巍任雷鸣
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1