磁盘阵列刷盘方法及磁盘阵列刷盘装置制造方法及图纸

技术编号:8983309 阅读:167 留言:0更新日期:2013-08-01 02:03
本发明专利技术实施例提供一种磁盘阵列刷盘方法及磁盘阵列刷盘装置,方法包括:获取磁盘阵列中同一独立磁盘冗余阵列RAID组中各逻辑单元按照各逻辑单元的物理地址的排序;将RAID组的刷盘并发输入输出IO按照各逻辑单元的物理地址的排序依次刷盘至RAID组中的逻辑单元,每个刷盘并发IO包括待刷盘至RAID组中一个逻辑单元的至少一个脏页面。本发明专利技术实施例提供的磁盘阵列刷盘方法及磁盘阵列刷盘装置,通过对单个RAID组内的逻辑单元统一调度按物理地址顺序进行刷盘,减少了磁臂来回跳动寻址消耗的时间,通过对各RAID组独立的控制,避免了各RAID组之间的影响,从而提高了磁盘阵列的刷盘效率,增加了磁盘阵列的吞吐量。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术实施例涉及计算机技术,尤其涉及一种磁盘阵列刷盘方法及磁盘阵列刷盘装置
技术介绍
随着计算机应用技术的快速发展,随之产生的大量数据对存储的空间和性能的要求都在不断提高。由于当前的主流磁盘操作中仍然存在大量的机械操作,其性能和处理器以及内存都有较大的差距。将高速缓冲存储器(CACHE)技术应用于存储领域,不仅可以隐藏主机时延,还可以整合数据,通过CACHE将数据以磁盘友好的方式写入磁盘,即通过对磁盘进行刷盘,从而达到存储系统最佳的吞吐量。经过几十年 的研究,现有的CACHE算法已经趋于成熟。但是计算机提供的应用日趋多样化,磁盘阵列提供的空间以及性能都需要更灵活的调度方法。而同一磁盘阵列中往往会包括不同类型的盘,即使是同类型的盘组成的独立磁盘冗余阵列(Redundant Arrayof Independent Disks,以下简称RAID)组,每个RAID组包含的成员盘数往往也会不同。同时单个RAID组中以逻辑单元号(Logic Unit Number,以下简称LUN)标识的逻辑单元的个数也在逐渐增多。现有技术中,磁盘阵列的刷盘都是在逻辑单元的层面进行调度,即每个刷盘输入输出(Input/Output,以下简称10)均针对单个逻辑单元,而在磁盘阵列中同时包括多个RAID组,每个RAID组中又有多个逻辑单元,目前的磁盘阵列刷盘方法不能对该情况进行很好地处理。比如同一个RAID组内的多个逻辑单元,针对单个逻辑单元的刷盘IO在该逻辑单元内是有序的,但由于需要对多个逻辑单元并发刷盘、且并发刷盘的多个逻辑单元之间的顺序是离散的,表现在整个RAID组内的刷盘并发IO往往是离散的。离散的刷盘并发IO会导致磁盘的磁臂来回跳动寻址,大量的时间消耗在磁臂寻址而非数据读写,对磁盘阵列的整体性能造成极大的负面影响,磁盘阵列的吞吐量较低。
技术实现思路
本专利技术实施例提供一种磁盘阵列刷盘方法及磁盘阵列刷盘装置,用以提高磁盘阵列的刷盘效率,增加磁盘阵列的吞吐量。第一方面,本专利技术实施例提供的一种磁盘阵列刷盘方法,包括:获取磁盘阵列中同一独立磁盘冗余阵列RAID组中各逻辑单元按照所述各逻辑单元的物理地址的排序;将所述RAID组的刷盘并发输入输出IO按照各逻辑单元的物理地址的排序依次刷盘至所述RAID组中的逻辑单元,每个刷盘并发IO包括待刷盘至所述RAID组中一个逻辑单元的至少一个脏页面。在第一方面的第一种可能的实现方式中,所述将所述RAID组的刷盘并发输入输出IO按照各逻辑单元的物理地址的页序依次刷盘至所述RAID组中的逻辑单元之前,还包括:根据待刷盘至所述磁盘阵列的脏页面总数、待刷盘至所述RAID组的脏页面总数和所述RAID组的并发刷盘上限,确定所述RAID组的刷盘并发IO数。根据第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述根据待刷盘至所述磁盘阵列的脏页面总数、待刷盘至所述RAID组的脏页面总数和所述RAID组的并发刷盘上限,确定所述RAID组的刷盘并发IO数,包括:确定所述RAID组的刷盘并发IO数Cln = MX (pn/P) X (1-U),其中,M为所述RAID组的并发刷盘上限,pn为所述待刷盘至所述RAID组的脏页面总数,P为所述待刷盘至所述磁盘阵列的脏页面总数,U为所述磁盘阵列的当前利用率。根据第一方面或第一方面的前两种可能的实现方式之一,在第一方面的第三种可能的实现方式中,所述将所述RAID组的刷盘并发输入输出IO按照各逻辑单元的物理地址的顺序依次刷盘至所述RAID组中的逻辑单元,包括:从所述RAID组的刷盘指针指向的当前逻辑单元开始遍历;若待刷盘至所述RAID组的脏页面不包含待刷盘至所述当前逻辑单元的脏页面,则将所述RAID组的刷盘指针指向按照物理地址的顺序排在所述当前逻辑单元下一个的另一逻辑单元;若所述待刷盘至所述RAID组的脏页面包含待刷盘至所述当前逻辑单元的脏页面,对所述当前逻辑单元进行刷盘。根据第一方面第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述对所述当前逻辑单元进行刷盘,包括:若所述当前逻辑单元的已完成刷盘并发IO数未达到所述当前逻辑单元的并发刷盘上限,则将对应所述当前逻辑单元的刷盘并发IO中的脏页面刷盘至所述当前逻辑单元;若所述当前逻辑单元的已完成刷盘并发IO数达到所述当前逻辑单元的并发刷盘上限,则停止对所述当前逻辑单元进行刷盘,将所述RAID组的刷盘指针指向按照物理地址的顺序排在所述当前逻辑单元下一个的另一逻辑单元。根据第一方面的第三种或者第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述对所述当前逻辑单元进行刷盘,包括:若所述RAID组的已完成刷盘并发IO数未达到所述RAID组的并发刷盘上限,则对所述当前逻辑单元进行刷盘;若所述RAID组的已完成刷盘并发IO数达到所 述RAID组的并发刷盘上限,则停止对所述RAID组的刷盘。根据第一方面的第五种可能的实现方式,在第一方面的第六种可能的实现方式中,所述停止对所述RAID组的刷盘之后,还包括:保持所述RAID组的刷盘指针不变。第二方面,本专利技术实施例提供的一种磁盘阵列刷盘装置,包括:获取模块,用于获取磁盘阵列中同一独立磁盘冗余阵列RAID组中各逻辑单元按照所述各逻辑单元的物理地址的排序;刷盘模块,用于将所述RAID组的刷盘并发输入输出IO按照各逻辑单元的物理地址的排序依次刷盘至所述RAID组中的逻辑单元,每个刷盘并发IO包括待刷盘至所述RAID组中一个逻辑单元的至少一个脏页面。在第二方面的第一种可能的实现方式中,还包括:确定模块,用于根据待刷盘至所述磁盘阵列的脏页面总数、待刷盘至所述RAID组的脏页面总数和所述RAID组的并发刷盘上限,确定所述RAID组的刷盘并发IO数。根据第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述确定模块具体用于:确定所述RAID组的刷盘并发IO数Cln = MX (pn/P) X (1_U),其中,M为所述RAID组的并发刷盘上限,Pn为所述待刷盘至所述RAID组的脏页面总数,P为所述待刷盘至所述磁盘阵列的脏页面总数,U为所述磁盘阵列的当前利用率。根据第二方面或第二方面的前两种可能的实现方式之一,在第二方面的第三种可能的实现方式中,所述刷盘模块具体用于:从所述RAID组的刷盘指针指向的当前逻辑单元开始遍历;若待刷盘至所述RAID组的脏页面不包含待刷盘至所述当前逻辑单元的脏页面,则将所述RAID组的刷盘指针指向按照物理地址的顺序排在所述当前逻辑单元下一个的另一逻辑单元;若所述待刷盘至所述RAID组的脏页面包含待刷盘至所述当前逻辑单元的脏页面,对所述当前逻辑单元进行刷盘。根据第二方面第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述刷盘模块用于对当前逻辑单元进行刷盘,具体包括:若所述当前逻辑单元的已完成刷盘并发IO数未达到所述当前逻辑单元的并发刷盘上限,则将对应所述当前逻辑单元的刷盘并发IO中的脏页面刷盘至所述当前逻辑单元;若所述当前逻辑单元的已完成刷盘并发IO数达到所述当前逻辑单元的并发刷盘上限,则停止对所述当前逻辑单元进行刷盘,将所述RAID组的刷盘指针指向按照物理地址的顺序排在所述当前逻辑单元下一个的另一逻辑单元。根据第二本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】

【专利技术属性】
技术研发人员:张翔董浩李权
申请(专利权)人:华为技术有限公司
类型:
国别省市:

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

1