一种磁盘阵列结构中的写处理方法技术

技术编号:2857467 阅读:208 留言:0更新日期:2012-04-11 18:40
一种磁盘阵列结构中的写处理方法,主机写请求到来时,如果Cache未满,直接将数据写入Cache,同时进行预回写,将Cache中写请求所在的分条以及其后的若干个分条预取满;当Cache满时,主机写请求进行等待,从已完成预回写的区域中选取其中的若干个区域进行回写;当有某区域回写完成后,从主机写请求等待队列中取出一个,重新尝试进行主机写。本发明专利技术减少了空洞,以提高合并的可能,减少了写请求数量,进一步提高了存储系统中Cache的回写效率。而且分条上没有了空洞,即满分条,也可简化错误处理难度,提高校验数据产生速度。

【技术实现步骤摘要】

本专利技术涉及数据的存储技术,尤其涉及。
技术介绍
随着计算机应用领域的不断拓宽,用户对于存储系统的容量要求越来越大,对其可靠性、可用性要求越来越高,速度要求也越来越快。微处理器的处理速度提高很快,但是作为主要外存的磁盘由于机械运动的限制其速度改善不大(存取时间停留在毫秒级),这样就大大限制了存储系统的整体性能。解决这个瓶颈的带Cache(缓存)的磁盘阵列结构(RAID)以其高效快速、大容量、高可靠性和灵活、价廉的优点在高性能计算机存储中占主导地位。磁盘阵列技术将普通硬盘组成一个磁盘阵列,在主机写入数据时,RAID控制器把主机要写入的数据分解为多个数据块,然后并行写入磁盘阵列;主机读取数据时,RAID控制器并行读取分散在磁盘阵列中各个硬盘上的数据,把它们重新组合后提供给主机。由于采用并行读写操作,从而提高了存储系统的存取程度。此外,RAID磁盘阵列还可以采用镜像、奇偶校验等措施,来提高系统的容错能力,保证数据的可靠性。回写是将Cache中写数据写入磁盘的过程,回写时间=磁头定位时间(寻道时间和旋转延迟)+数据传输时间,相对来说磁头定位时间是很长的(毫秒级别),而数据传输时间跟写数据的大小有关,因此要提高回写效率,主要是减少磁头定位时间。目前在带Cache的磁盘阵列结构中普遍采用快速写技术(Fast Write)当写请求到来时,数据块写进Cache后即发响应完成信号,实际回写操作在后台异步实现,减少了写请求响应时间。如图1所示,HDS(日立数据系统公司)的专利US6327673“STORAGE UNIT SUBSYSTEM”中提出了一种写处理方法主机写请求到达时,判断新的写数据需要生成新校验数据的信息是否在Cache中,如果不全在,则从磁盘读入(包括旧数据、旧校验数据),并生成校验数据写入Cache,Cache选定时间采用一定的回写策略将数据写入磁盘。其中,主机写请求写入Cache后就返回,向主机报告写完成,以上校验数据相关过程和主机读写过程独立。该专利提高了写性能,相对于常规的RAID5快速写算法而言,在下发写请求给磁盘前,已事先将校验数据生成,并保存在Cache中,减少了回写的时延。此外,由于每次写请求时,都将写请求所在的磁道预取满,提高了读写请求在Cache中的命中率,同时,也因大大增加了回写时满写的数量,提高了回写的性能。对应图中的各步骤说明如下(1)如果写数据在Cache中没命中,即新的写数据需要生成新校验数据的信息不全在Cache中,则从目标数据块到它所在磁道结尾的数据被从数据盘(Data Disk)读取到Cache的Old Data(旧数据)中;(2)需要写的新数据在Old Data数据建立过程中写到Cache的Write Data(写数据)中;(3)生成请求数据的校验信息时需要检查数据是否命中,如果没有命中,旧的校验数据被读取到Cache的Old Parity(旧校验数据)中;(4)如果产生新校验数据所需的所有数据都已经就绪,这些数据被传送到磁盘适配器(disk adapter,DKA)的数据恢复及再生(DataRecovery and Regeneration,DRR)电路中; (5)当新的校验数据产生完毕,DRR将其传递到Cache A和CacheB的New Parity(新校验数据)中(New Parity和主机要写的新数据的处理方式是一样的)。上述技术方案虽在一定程度上提高了回写效率,但由于它是“从目标数据块到它所在磁道结尾的数据被读取到Old Data中”,这样如果写入的新数据本身不足一个分条单元,按照这种预取方式,新数据所在的分条将形成一个“空洞”,即Cache中既没有“脏数据”(脏数据指Cache中与磁盘不一致的数据,即主机写入Cache的数据,但该数据尚未同步到磁盘),也没有“旧数据”(旧数据指Cache中与磁盘一致的数据,即已将主机写入的Cache数据同步到磁盘的数据,或从磁盘读到Cache的数据),也就是说,该分条中某数据块从未被主机写过,或从未被磁盘数据覆盖过,即存在“空洞”。由于下发给磁盘的一个请求必须是连续的,比如写磁盘物理地址从10到100的一块区域。如果要写10~50,60~100这么两个区域,就只能分别下发10~50和60~100两个请求,而无法按照一个请求下发,因为50~60这个区间即所谓空洞,不允许写。如图2所示,由于现有技术按照磁道进行预回写,预取是从目标数据块到它所在磁道结尾,因而使分条0的SU00、分条1的SU12、分条2的SU20、分条3的SU32都或多或少存在一些空洞,图中A为Cache中的空洞,B为Cache中的脏数据,C为Cache中已有的旧数据,D为Cache中预取得到的旧数据,E为磁道1的结束位置,F为磁道2的结束位置(假定磁道1、2地址连续,那么磁道1从SU00左边界到箭头E所指位置,磁道2从磁道1结束位置到下一个箭头F所指位置)。由于下发给磁盘的请求必须连续,分条单元SU20在Cache中存在“空洞”,因此,回写时SU00、SU10、SU20、SU30将无法合并成一个写请求,而不得不拆分两个写请求(SU00~SU10,SU20~SU30)。同理,SU02、SU12、SU22、SU32也不得不拆成两个请求。由于Cache总容量是有限的,按照这种回写方法,由于每次写请求都要读取从目标数据块到它所在磁道结尾的数据,虽然简化了回写方法,但却难以更好地利用Cache有限的空间。这样,当Cache回写时,存在“空洞”的分条中的数据将不得不拆分成多个写请求下发,从而增加了写请求的次数,降低了回写的效率。
技术实现思路
本专利技术所要解决的技术问题是克服现有的写处理过程中,存在空洞的分条中的数据不得不拆分成多个写请求下发,从而增加了写请求的次数,降低了回写效率的不足,提供,减少写请求的次数,提高存储系统中Cache的回写效率。本专利技术为解决上述技术问题所采用的技术方案为这种磁盘阵列结构中的写处理方法,Cache中数据写入磁盘的回写过程包括以下步骤a、预回写,所述的预回写以分条为基本单位,将Cache中写请求所在的分条以及其后的若干个分条预取满,使这些分条变成满分条;b、写阶段,从已完成所述预回写的区域中选取其中的若干个区域写入磁盘。所述预回写是一个读盘过程,从磁盘阵列将分条所在的地址范围的旧数据都读入Cache,同时用该分条中的新数据替换读出的旧数据。进一步对Cache是否满进行判断,包括以下步骤A、主机写请求到来时,如果Cache未满,直接将数据写入Cache,同时进行预回写;B、当Cache满时,主机写请求进行等待,从已完成预回写的区域中选取其中的若干个区域开始回写中的写阶段;C、当有某区域回写完成后,从主机写请求等待队列中取出一个,返回步骤A。所述的步骤A中,当主机写请求写入Cache后,返回主机写成功,判断写请求是否命中Cache,即Cache中是否存在与当前主机写请求相同起始和结束地址的一块数据;如果命中,再判断该写请求所在分条之后的若干个分条是否进行了预回写,如果没有预回写,则下发预回写请求,将该写请求所在分条之后的若干个分条进行预回写;如果未命中,则下发预回写请求,将写请求所在的分条以及其后的若干个分条进行预回写;所述写请求所本文档来自技高网
...

【技术保护点】
一种磁盘阵列结构中的写处理方法,其特征在于,Cache中数据写入磁盘的回写过程包括以下步骤:a、预回写,所述的预回写以分条为基本单位,将Cache中写请求所在的分条以及其后的若干个分条预取满,使这些分条变成满分条;b、写阶段 ,从已完成所述预回写的区域中选取其中的若干个区域写入磁盘。

【技术特征摘要】
1.一种磁盘阵列结构中的写处理方法,其特征在于,Cache中数据写入磁盘的回写过程包括以下步骤a、预回写,所述的预回写以分条为基本单位,将Cache中写请求所在的分条以及其后的若干个分条预取满,使这些分条变成满分条;b、写阶段,从已完成所述预回写的区域中选取其中的若干个区域写入磁盘。2.根据权利要求1所述的磁盘阵列结构中的写处理方法,其特征在于所述预回写是一个读盘过程,从磁盘阵列将分条所在的地址范围的旧数据都读入Cache,同时用该分条中的新数据替换读出的旧数据。3.根据权利要求1或2所述的磁盘阵列结构中的写处理方法,其特征在于,进一步对Cache是否满进行判断,包括以下步骤A、主机写请求到来时,如果Cache未满,直接将数据写入Cache,同时进行预回写;B、当Cache满时,主机写请求进行等待,从已完成预回写的区域中选取其中的若干个区域开始回写中的写阶段;C、当有某区域回写完成后,从主机写请求等待队列中取出一个,返回步骤A。4.根据权利要求3所述的磁盘阵列结构中的写处理方法,其特征在于所述的步骤A中,当主机写请求写入Cache后,返回主机写成功,判断写请求是否命中Cache,即Cache中是否存在与当前主机写请求相同起始和结...

【专利技术属性】
技术研发人员:张巍张粤张国彬
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:94[中国|深圳]

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

1