CN103229136A - 磁盘阵列刷盘方法及磁盘阵列刷盘装置 - Google Patents

磁盘阵列刷盘方法及磁盘阵列刷盘装置 Download PDF

Info

Publication number
CN103229136A
CN103229136A CN2012800029032A CN201280002903A CN103229136A CN 103229136 A CN103229136 A CN 103229136A CN 2012800029032 A CN2012800029032 A CN 2012800029032A CN 201280002903 A CN201280002903 A CN 201280002903A CN 103229136 A CN103229136 A CN 103229136A
Authority
CN
China
Prior art keywords
brush
logical block
raid group
dish
concurrent
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2012800029032A
Other languages
English (en)
Other versions
CN103229136B (zh
Inventor
张翔
董浩
李�权
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
XFusion Digital Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN103229136A publication Critical patent/CN103229136A/zh
Application granted granted Critical
Publication of CN103229136B publication Critical patent/CN103229136B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Manufacturing Of Magnetic Record Carriers (AREA)
  • Brushes (AREA)

Abstract

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

Description

磁盘阵列刷盘方法及磁盘阵列刷盘装置
技术领域
本发明实施例涉及计算机技术,尤其涉及一种磁盘阵列刷盘方法及磁盘阵列刷盘装置。
背景技术
随着计算机应用技术的快速发展,随之产生的大量数据对存储的空间和性能的要求都在不断提高。由于当前的主流磁盘操作中仍然存在大量的机械操作,其性能和处理器以及内存都有较大的差距。将高速缓冲存储器(CACHE)技术应用于存储领域,不仅可以隐藏主机时延,还可以整合数据,通过CACHE将数据以磁盘友好的方式写入磁盘,即通过对磁盘进行刷盘,从而达到存储系统最佳的吞吐量。
经过几十年的研究,现有的CACHE算法已经趋于成熟。但是计算机提供的应用日趋多样化,磁盘阵列提供的空间以及性能都需要更灵活的调度方法。而同一磁盘阵列中往往会包括不同类型的盘,即使是同类型的盘组成的独立磁盘冗余阵列(Redundant Array of Independent Disks,以下简称RAID)组,每个RAID组包含的成员盘数往往也会不同。同时单个RAID组中以逻辑单元号(Logic Unit Number,以下简称LUN)标识的逻辑单元的个数也在逐渐增多。
现有技术中,磁盘阵列的刷盘都是在逻辑单元的层面进行调度,即每个刷盘输入输出(Input/Output,以下简称IO)均针对单个逻辑单元,而在磁盘阵列中同时包括多个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数dn=M×(pn/P)×(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数dn=M×(pn/P)×(1-U),其中,M为所述RAID组的并发刷盘上限,pn为所述待刷盘至所述RAID组的脏页面总数,P为所述待刷盘至所述磁盘阵列的脏页面总数,U为所述磁盘阵列的当前利用率。
根据第二方面或第二方面的前两种可能的实现方式之一,在第二方面的第三种可能的实现方式中,所述刷盘模块具体用于:从所述RAID组的刷盘指针指向的当前逻辑单元开始遍历;若待刷盘至所述RAID组的脏页面不包含待刷盘至所述当前逻辑单元的脏页面,则将所述RAID组的刷盘指针指向按照物理地址的顺序排在所述当前逻辑单元下一个的另一逻辑单元;若所述待刷盘至所述RAID组的脏页面包含待刷盘至所述当前逻辑单元的脏页面,对所述当前逻辑单元进行刷盘。
根据第二方面第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述刷盘模块用于对当前逻辑单元进行刷盘,具体包括:若所述当前逻辑单元的已完成刷盘并发IO数未达到所述当前逻辑单元的并发刷盘上限,则将对应所述当前逻辑单元的刷盘并发IO中的脏页面刷盘至所述当前逻辑单元;若所述当前逻辑单元的已完成刷盘并发IO数达到所述当前逻辑单元的并发刷盘上限,则停止对所述当前逻辑单元进行刷盘,将所述RAID组的刷盘指针指向按照物理地址的顺序排在所述当前逻辑单元下一个的另一逻辑单元。
根据第二方面的第三种或者第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述刷盘模块还用于:若所述RAID组的已完成刷盘并发IO数未达到所述RAID组的并发刷盘上限,则对所述当前逻辑单元进行刷盘;若所述RAID组的已完成刷盘并发IO数达到所述RAID组的并发刷盘上限,则停止对所述RAID组的刷盘。
根据第二方面的第五种可能的实现方式,在第二方面的第六种可能的实现方式中,所述刷盘模块还用于:保持所述RAID组的刷盘指针不变。
第三方面,本发明实施例提供的另一种磁盘阵列刷盘装置,包括:
存储器,用于存储指令;
处理器,与所述存储器耦合,处理器被配置为执行存储在存储器中的指令,其中,
处理器被配置为用于:获取磁盘阵列中同一独立磁盘冗余阵列RAID组中各逻辑单元按照所述各逻辑单元的物理地址的排序;将所述RAID组的刷盘并发输入输出IO按照各逻辑单元的物理地址的排序依次刷盘至所述RAID组中的逻辑单元,每个刷盘并发IO包括待刷盘至所述RAID组中一个逻辑单元的至少一个脏页面。
在第三方面的第一种可能的实现方式中,处理器被配置为用于:根据待刷盘至所述磁盘阵列的脏页面总数、待刷盘至所述RAID组的脏页面总数和所述RAID组的并发刷盘上限,确定所述RAID组的刷盘并发IO数。
根据第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述处理器被配置为具体用于:确定所述RAID组的刷盘并发IO数dn=M×(pn/P)×(1-U),其中,M为所述RAID组的并发刷盘上限,pn为所述待刷盘至所述RAID组的脏页面总数,P为所述待刷盘至所述磁盘阵列的脏页面总数,U为所述磁盘阵列的当前利用率。
根据第三方面或第三方面的前两种可能的实现方式之一,在第三方面的第三种可能的实现方式中,所述处理器配置为具体用于:从所述RAID组的刷盘指针指向的当前逻辑单元开始遍历;若待刷盘至所述RAID组的脏页面不包含待刷盘至所述当前逻辑单元的脏页面,则将所述RAID组的刷盘指针指向按照物理地址的顺序排在所述当前逻辑单元下一个的另一逻辑单元;若所述待刷盘至所述RAID组的脏页面包含待刷盘至所述当前逻辑单元的脏页面,对所述当前逻辑单元进行刷盘。
根据第三方面第三种可能的实现方式,在第三方面的第四种可能的实现方式中,所述处理器配置为用于对当前逻辑单元进行刷盘,具体包括:若所述当前逻辑单元的已完成刷盘并发IO数未达到所述当前逻辑单元的并发刷盘上限,则将对应所述当前逻辑单元的刷盘并发IO中的脏页面刷盘至所述当前逻辑单元;若所述当前逻辑单元的已完成刷盘并发IO数达到所述当前逻辑单元的并发刷盘上限,则停止对所述当前逻辑单元进行刷盘,将所述RAID组的刷盘指针指向按照物理地址的顺序排在所述当前逻辑单元下一个的另一逻辑单元。
根据第三方面的第三种或者第四种可能的实现方式,在第三方面的第五种可能的实现方式中,所述处理器配置为还用于:若所述RAID组的已完成刷盘并发IO数未达到所述RAID组的并发刷盘上限,则对所述当前逻辑单元进行刷盘;若所述RAID组的已完成刷盘并发IO数达到所述RAID组的并发刷盘上限,则停止对所述RAID组的刷盘。
根据第三方面的第五种可能的实现方式,在第三方面的第六种可能的实现方式中,所述处理器配置为还用于:保持所述RAID组的刷盘指针不变。
本发明实施例提供的磁盘阵列刷盘方法及磁盘阵列刷盘装置,通过对单个RAID组内的多个逻辑单元统一调度按物理地址顺序进行刷盘,减少了磁臂来回跳动寻址消耗的时间,通过对各RAID组独立的控制,避免了各RAID组之间的影响,从而提高了磁盘阵列的刷盘效率,增加了磁盘阵列的吞吐量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的磁盘阵列刷盘方法实施例一的流程图;
图2为本发明提供的磁盘阵列刷盘方法实施例二的流程图;
图3为本发明提供的磁盘阵列刷盘方法实施例三的流程图;
图4为本发明提供的磁盘阵列刷盘装置实施例一的结构示意图;
图5为本发明提供的磁盘阵列刷盘装置实施例二的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明提供的磁盘阵列刷盘方法实施例一的流程图,如图1所示,本实施例提供的磁盘阵列刷盘方法可以包括:
步骤S110、获取磁盘阵列中同一RAID组中各逻辑单元按照各逻辑单元的物理地址的排序。
具体地,磁盘阵列中可以包括多个RAID组,每个RAID组可以包括多个逻辑单元,逻辑单元可以以逻辑单元号LUN作为标识,逻辑单元用以划分RAID组中的存储空间。通常,可以在创建逻辑单元时,将同一RAID组中的所有逻辑单元按照其在RAID组上的物理地址顺序进行划分,每个逻辑单元占用RAID组中连续的物理地址空间。举例来说,LUN1~5按照物理地址的排序可能为:LUN2、LUN4、LUN1、LUN5、LUN3。
步骤S120、将RAID组的刷盘并发输入输出IO按照各逻辑单元的物理地址的排序依次刷盘至RAID组中的逻辑单元,每个刷盘并发IO包括待刷盘至RAID组中一个逻辑单元的至少一个脏页面。
RAID组的一个刷盘并发IO中可以包含一个或多个需刷盘至RAID组中的同一逻辑单元的脏页面,RAID组的一个刷盘并发IO可以理解为将该刷盘并发IO中的脏页面刷盘至该RAID组的一次刷盘操作。通常,将待刷盘至所述RAID组的脏页面按照其对应的目的地址的顺序连续打包,形成一个个刷盘并发IO,其中,脏页面的目的地址对应该脏页面待写入的逻辑单元的物理地址。对各RAID组分别进行刷盘,在刷盘的过程中,各RAID组之间互不影响。将RAID组中的刷盘并发IO按照一定顺序分别刷盘至RAID组的逻辑单元,如果该顺序与该RAID组中逻辑单元的物理地址的排列顺序一致,由于RAID组中各逻辑单元的物理地址连续,那么将RAID组的刷盘并发IO刷盘至该RAID组的过程即为该RAID组中的磁臂顺序寻址,并将脏页面写入磁盘的过程。
本发明实施例提供的磁盘阵列刷盘方法,通过对单个RAID组内的逻辑单元统一调度按物理地址顺序进行刷盘,减少了磁臂来回跳动寻址消耗的时间,通过对各RAID组独立的控制,避免了各RAID组之间的影响,从而提高了磁盘阵列的刷盘效率,增加了磁盘阵列的吞吐量。
图2为本发明提供的磁盘阵列刷盘方法实施例二的流程图,如图2所示,本实施例提供的磁盘阵列刷盘方法可以包括:
步骤S210、获取磁盘阵列中同一RAID组中各逻辑单元按照各逻辑单元的物理地址的排序。
具体地,磁盘阵列中可以包括多个RAID组,每个RAID组可以包括多个逻辑单元,逻辑单元可以以逻辑单元号LUN作为标识,逻辑单元用以划分RAID组中的存储空间。通常,可以在创建逻辑单元时,将同一RAID组中的所有逻辑单元按照其在RAID组上的物理地址顺序进行划分,每个逻辑单元占用RAID组中连续的物理地址空间。
步骤S220、根据待刷盘至磁盘阵列的脏页面总数、待刷盘至RAID组的脏页面总数和RAID组的并发刷盘上限,确定RAID组的刷盘并发IO数。
本步骤也可以在步骤S210之前实施,具体而言,待刷盘至磁盘阵列的脏页面为已写入CACHE,但尚未写入磁盘阵列的数据,如果CACHE中的脏页面超过了高水位,即CACHE中存放脏页面的空间即将耗尽,则将每个RAID组的并发刷盘上限作为该RAID组的刷盘并发IO数。如果CACHE中的脏页面没有达到高水位,则可以根据待刷盘至该RAID组的脏页面总数占待刷盘至磁盘阵列的脏页面总数的比例、该RAID组的并发刷盘上限,以及磁盘阵列的忙闲程度来确定本次该RAID组中逻辑单元的刷盘并发IO的个数。其中RAID组的并发刷盘上限,即每次刷盘并发中该RAID组可以进行刷盘IO的个数上限,RAID组的并发刷盘上限由该RAID组的成员盘类型、成员盘个数以及该RAID组采用的RAID级别决定。成员盘的速度越快,作为数据盘的成员盘的数量越多,RAID组的并发刷盘上限就越大。
可选地,如果CACHE中的脏页面数没有达到高水位,可以根据下述公式确定本次该RAID组的刷盘并发IO的个数:
dn=M×(pn/P)×(1-U)
其中,dn为RAID组的刷盘并发IO数,包括该RAID组中所有逻辑单元的刷盘并发IO的总数;M为该RAID组的并发刷盘上限;pn为待刷盘至RAID组的脏页面总数;P为待刷盘至磁盘阵列的脏页面总数;U为磁盘阵列的当前利用率。
由此可见,待刷盘至某一RAID组的脏页面总数相对于待刷盘至磁盘阵列的脏页面总数的比例越大,则该RAID组的刷盘并发IO的个数也越多;磁盘阵列的当前利用率越低,则每个RAID组的刷盘并发IO的个数也越多。
步骤S230、将RAID组的刷盘并发输入输出IO按照各逻辑单元的物理地址的排序依次刷盘至RAID组中的逻辑单元,每个刷盘并发IO包括待刷盘至RAID组中一个逻辑单元的至少一个脏页面。
RAID组的一个刷盘并发IO中可以包含一个或多个需刷盘至RAID组中的同一逻辑单元的脏页面,RAID组的一个刷盘并发IO可以理解为将该刷盘并发IO中的脏页面刷盘至该RAID组的一次刷盘操作,RAID组的一个刷盘并发IO中可以包含一个或多个需刷盘至RAID组中的同一逻辑单元的脏页面。通常,将待刷盘至所述RAID组的脏页面按照其对应的目的地址的顺序连续打包,形成一个个刷盘并发IO,其中,脏页面的目的地址对应该脏页面待写入的逻辑单元的物理地址。对各RAID组分别进行刷盘,在刷盘的过程中,各RAID组之间互不影响。将RAID组中的刷盘并发IO按照一定顺序分别刷盘至RAID组的逻辑单元,如果该顺序与该RAID组中逻辑单元的物理地址的排列顺序一致,由于RAID组中各逻辑单元的物理地址连续,那么将RAID组的刷盘并发IO刷盘至该RAID组的过程即为该RAID组中的磁臂顺序寻址,并将脏页面写入磁盘的过程。
本发明实施例提供的磁盘阵列刷盘方法,通过对单个RAID组内的逻辑单元统一调度按物理地址顺序进行刷盘,减少了磁臂来回跳动寻址消耗的时间,通过对各RAID组独立的控制,避免了各RAID组之间的影响,并且通过在RAID组层面对各RAID组刷盘并发IO数的统一管理,一定程度上平衡了各RAID组的使用率。从而提高了磁盘阵列的刷盘效率,增加了磁盘阵列的吞吐量。
进一步地,将RAID组的刷盘并发输入输出IO按照各逻辑单元的物理地址的顺序依次刷盘至RAID组中的逻辑单元,包括:从RAID组的刷盘指针指向的当前逻辑单元开始遍历;若待刷盘至RAID组的脏页面不包含待刷盘至当前逻辑单元的脏页面,则将RAID组的刷盘指针指向按照物理地址的顺序排在当前逻辑单元下一个的另一逻辑单元;若待刷盘至RAID组的脏页面包含对应当前逻辑单元的脏页面,意味着有对应该当前逻辑单元的刷盘并发IO,则对当前逻辑单元进行刷盘。简单而言,单个RAID组中,可以设置刷盘指针,用于指示当前刷盘操作起始的逻辑单元,即上次并发刷盘操作终止的逻辑单元。若在刷盘过程中,待刷盘至RAID组的脏页面不包括待刷盘至刷盘指针指向的当前逻辑单元的脏页面,意味着没有对应该当前逻辑单元的刷盘并发IO,则将刷盘指针指向另一逻辑单元,另一逻辑单元为依照物理地址顺序排在当前逻辑单元下一个的逻辑单元,对另一逻辑单元进行刷盘。如果当前逻辑单元依照物理地址顺序排在该RAID组的最后,则将刷盘指针指向依照物理地址顺序排在该RAID组的首位的逻辑单元。
进一步地,对当前逻辑单元进行刷盘,包括:若当前逻辑单元的已完成刷盘并发IO数未达到当前逻辑单元的并发刷盘上限,则将对应当前逻辑单元的刷盘并发IO中的脏页面刷盘至当前逻辑单元;若当前逻辑单元的已完成刷盘并发IO数达到当前逻辑单元的并发刷盘上限,则停止对当前逻辑单元进行刷盘,将所述RAID组的刷盘指针指向按照物理地址的顺序排在所述当前逻辑单元下一个的另一逻辑单元。简单而言,在将一个刷盘并发IO中的脏页面刷盘至当前逻辑单元之前,若判断当前逻辑单元的已完成刷盘并发IO数达到当前逻辑单元的并发刷盘上限,则停止对当前逻辑单元的刷盘,将刷盘指针指向另一逻辑单元,另一逻辑单元为依照物理地址顺序排在当前逻辑单元下一个的逻辑单元,对另一逻辑单元进行刷盘。
进一步地,对当前逻辑单元进行刷盘,包括:若RAID组的已完成刷盘并发IO数未达到RAID组的并发刷盘上限,则对当前逻辑单元进行刷盘;若RAID组的已完成刷盘并发IO数达到RAID组的并发刷盘上限,则停止对RAID组的刷盘。同样,在将脏页面刷盘至当前逻辑单元之前,如果判断RAID组中所有逻辑单元的已完成刷盘并发IO的个数达到RAID组中逻辑单元的刷盘并发IO数,即本次对该RAID组的刷盘已完成,也将RAID组的刷盘指针停留至当前逻辑单元,退出本次对该RAID组的刷盘。
本发明实施例提供的磁盘阵列刷盘方法,通过对单个RAID组内的逻辑单元统一调度按物理地址顺序进行刷盘,减少了磁臂来回跳动寻址消耗的时间,通过对各RAID组独立的控制,并且根据待刷盘至磁盘阵列的脏页面总数、待刷盘至各RAID组的脏页面总数和各RAID组的并发刷盘上限,分别确定各RAID组的刷盘并发IO数,避免了各RAID组的逻辑单元个数差别较大的影响,提高了磁盘阵列的刷盘效率,增加了磁盘阵列的吞吐量。
图3为本发明提供的磁盘阵列刷盘方法实施例三的流程图,如图3所示,本实施例提供的磁盘阵列刷盘方法应用于为对单个RAID组进行刷盘的方法时,可以包括:
步骤S302、确定RAID组的刷盘并发IO数。
具体地,可以根据待刷盘至磁盘阵列的脏页面总数、待刷盘至RAID组的脏页面总数和RAID组的并发刷盘上限,确定RAID组的刷盘并发IO数。
步骤S304、确定RAID组的刷盘指针指向的当前逻辑单元。
单个RAID组中,可以设置刷盘指针,用于指向当前刷盘操作起始的逻辑单元,也即上次刷盘操作终止时指向的逻辑单元。
步骤S306、判断RAID组的已完成刷盘并发IO数是否达到RAID组的刷盘并发IO数,若是则执行步骤S320,若否则执行步骤S308。
步骤S308、判断待刷盘至RAID组的脏页面是否包含待刷盘至当前逻辑单元的脏页面,若是则执行步骤S310,若否则执行步骤S316。
步骤S310、判断RAID组的已完成刷盘并发IO数是否达到RAID组的并发刷盘上限,若是则执行步骤S320,若否则执行步骤S312。
步骤S312、判断当前逻辑单元的已完成刷盘并发IO数是否达到当前逻辑单元的并发刷盘上限,若是则执行步骤S316,若否执行步骤S314。
进一步地,针对RAID组中的每个逻辑单元也可设置并发刷盘上限。对应地,可以判断刷盘指针指向的当前逻辑单元的已完成刷盘并发IO数是否达到当前逻辑单元的并发刷盘上限。
步骤S314、将对应当前逻辑单元的一个刷盘并发IO中包含的脏页面写入当前逻辑单元中,返回步骤S306。
具体地,步骤S314之前还包括,将对应当前逻辑单元的至少一个脏页面打包成对应当前逻辑单元的一个刷盘并发IO。
步骤S316、刷盘指针是否已遍历所有逻辑单元。若是则执行步骤320,若否执行步骤S318。
具体地,这里的所有逻辑单元是指所述RAID组中的所有逻辑单元。
步骤S318、将刷盘指针指向下一逻辑单元,返回步骤S304。
具体地,下一逻辑单元为按照逻辑块寻址顺序排列在刷盘指针指向的当前逻辑单元下一个的逻辑单元。如果当前逻辑单元依照物理地址顺序排在该RAID组的最后,则将刷盘指针指向依照物理地址顺序排在该RAID组的首位的逻辑单元。
步骤S320、刷盘完成。
本发明实施例提供的磁盘阵列刷盘方法,通过上述各步骤,对单个RAID组内的逻辑单元统一调度按物理地址顺序进行刷盘,减少了磁臂来回跳动寻址消耗的时间,通过对各RAID组独立的控制,并且根据待刷盘至磁盘阵列的脏页面总数、待刷盘至各RAID组的脏页面总数和各RAID组的并发刷盘上限,分别确定各RAID组的刷盘并发IO的个数,避免了各RAID组的逻辑单元个数差别较大的影响。
图4为本发明提供的磁盘阵列刷盘装置实施例一的结构示意图,如图4所示,本实施例提供的磁盘阵列刷盘装置400可以包括:
获取模块410,可以用于获取磁盘阵列中同一独立磁盘冗余阵列RAID组中各逻辑单元按照各逻辑单元的物理地址的排序;
刷盘模块420,可以用于将RAID组的刷盘并发输入输出IO按照各逻辑单元的物理地址的排序依次刷盘至RAID组中的逻辑单元,每个刷盘并发IO包括待刷盘至RAID组中一个逻辑单元的至少一个脏页面。
进一步地,还可以包括:确定模块430,用于根据待刷盘至磁盘阵列的脏页面总数、待刷盘至RAID组的脏页面总数和RAID组的并发刷盘上限,确定RAID组的刷盘并发IO数。
进一步地,确定模块430可以具体用于:确定RAID组的刷盘并发IO数dn=M×(pn/P)×(1-U),其中,M为RAID组的并发刷盘上限,pn为待刷盘至RAID组的脏页面总数,P为待刷盘至磁盘阵列的脏页面总数,U为磁盘阵列的当前利用率。
进一步地,刷盘模块420可以具体用于:从RAID组的刷盘指针指向的当前逻辑单元开始遍历;若待刷盘至RAID组的脏页面不包含待刷盘至当前逻辑单元的脏页面,则将RAID组的刷盘指针指向按照物理地址的顺序排在当前逻辑单元下一个的另一逻辑单元;若待刷盘至RAID组的脏页面包含待刷盘至当前逻辑单元的脏页面,对当前逻辑单元进行刷盘。
进一步地,刷盘模块420用于对当前逻辑单元进行刷盘,具体可以包括:若当前逻辑单元的已完成刷盘并发IO数未达到当前逻辑单元的并发刷盘上限,则将对应当前逻辑单元的刷盘并发IO中的脏页面刷盘至当前逻辑单元;若当前逻辑单元的已完成刷盘并发IO数达到当前逻辑单元的并发刷盘上限,则停止对当前逻辑单元进行刷盘,将RAID组的刷盘指针指向按照物理地址的顺序排在当前逻辑单元下一个的另一逻辑单元。
进一步地,刷盘模块420还可以用于:若RAID组的已完成刷盘并发IO数未达到RAID组的并发刷盘上限,则对当前逻辑单元进行刷盘;若RAID组的已完成刷盘并发IO数达到RAID组的并发刷盘上限,则停止对RAID组的刷盘。
进一步地,刷盘模块420还可以用于:保持RAID组的刷盘指针不变。
本实施例提供的磁盘阵列刷盘装置400,可以用于执行图1至图3中任一所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图5为本发明提供的磁盘阵列刷盘装置实施例二的结构示意图,如图5所示,磁盘阵列刷盘装置500包括:存储器501,用于存储指令;处理器502,与所述存储器耦合,处理器502被配置为执行存储在存储器501中的指令;磁盘阵列刷盘装置500还可以包括网络接口503以及其他用户接口504以及通信总线505。通信总线505用于实现这些装置之间的连接通信。存储器501可能包含高速随机存储器(Random Access Memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。存储器501可选的可以包含至少一个位于远离前述处理器502的存储装置。
其中,处理器502被配置为用于:
获取磁盘阵列中同一独立磁盘冗余阵列RAID组中各逻辑单元按照各逻辑单元的物理地址的排序;将RAID组的刷盘并发输入输出IO按照各逻辑单元的物理地址的排序依次刷盘至RAID组中的逻辑单元,每个刷盘并发IO包括待刷盘至RAID组中一个逻辑单元的至少一个脏页面。
进一步地,处理器502被配置为还用于:根据待刷盘至磁盘阵列的脏页面总数、待刷盘至RAID组的脏页面总数和RAID组的并发刷盘上限,确定RAID组的刷盘并发IO数。
进一步地,处理器502被配置为具体用于:确定RAID组的刷盘并发IO数dn=M×(pn/P)×(1-U),其中,M为RAID组的并发刷盘上限,pn为待刷盘至RAID组的脏页面总数,P为待刷盘至磁盘阵列的脏页面总数,U为磁盘阵列的当前利用率。
进一步地,处理器502被配置为具体用于:从RAID组的刷盘指针指向的当前逻辑单元开始遍历;若待刷盘至RAID组的脏页面不包含待刷盘至当前逻辑单元的脏页面,则将RAID组的刷盘指针指向按照物理地址的顺序排在当前逻辑单元下一个的另一逻辑单元;若待刷盘至RAID组的脏页面包含待刷盘至当前逻辑单元的脏页面,对当前逻辑单元进行刷盘。
进一步地,处理器502被配置为用于对当前逻辑单元进行刷盘,具体包括:若当前逻辑单元的已完成刷盘并发IO数未达到当前逻辑单元的并发刷盘上限,则将对应当前逻辑单元的刷盘并发IO中的脏页面刷盘至当前逻辑单元;若当前逻辑单元的已完成刷盘并发IO数达到当前逻辑单元的并发刷盘上限,则停止对当前逻辑单元进行刷盘,将RAID组的刷盘指针指向按照物理地址的顺序排在当前逻辑单元下一个的另一逻辑单元。
进一步地,处理器502被配置为还用于:若RAID组的已完成刷盘并发IO数未达到RAID组的并发刷盘上限,则对当前逻辑单元进行刷盘;若RAID组的已完成刷盘并发IO数达到RAID组的并发刷盘上限,则停止对RAID组的刷盘。
进一步地,处理器502被配置为还用于:保持RAID组的刷盘指针不变。
本实施例提供的磁盘阵列刷盘装置500,可以用于执行图1至图3任一所示方法实施的技术方案,其实现原理和技术效果类似,此处不再赘述。图5仅为本发明提供的磁盘阵列刷盘装置的结构的一种示意图,具体结构可根据实际进行调整。
综上所述,本发明实施例提供的磁盘阵列刷盘方法和磁盘阵列刷盘装置,通过对单个RAID组内的逻辑单元统一调度按物理地址顺序进行刷盘,减少了磁臂来回跳动寻址消耗的时间,通过对各RAID组独立的控制,避免了各RAID组之间的影响,并且通过在RAID组层面对各RAID组刷盘IO数的平衡,一定程度上平衡了各RAID组的使用率,提高了磁盘阵列的刷盘效率,增加了磁盘阵列的吞吐量。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (14)

1.一种磁盘阵列刷盘方法,其特征在于,包括:
获取磁盘阵列中同一独立磁盘冗余阵列RAID组中各逻辑单元按照所述各逻辑单元的物理地址的排序;
将所述RAID组的刷盘并发输入输出IO按照各逻辑单元的物理地址的排序依次刷盘至所述RAID组中的逻辑单元,每个刷盘并发IO包括待刷盘至所述RAID组中一个逻辑单元的至少一个脏页面。
2.根据权利要求1所述的方法,其特征在于,所述将所述RAID组的刷盘并发输入输出IO按照各逻辑单元的物理地址的顺序依次刷盘至所述RAID组中的逻辑单元之前,还包括:
根据待刷盘至所述磁盘阵列的脏页面总数、待刷盘至所述RAID组的脏页面总数和所述RAID组的并发刷盘上限,确定所述RAID组的刷盘并发IO数。
3.根据权利要求2所述的方法,其特征在于,所述根据待刷盘至所述磁盘阵列的脏页面总数、待刷盘至所述RAID组的脏页面总数和所述RAID组的并发刷盘上限,确定所述RAID组的刷盘并发IO数,包括:
确定所述RAID组的刷盘并发IO数dn=M×(pn/P)×(1-U),
其中,M为所述RAID组的并发刷盘上限,pn为所述待刷盘至所述RAID组的脏页面总数,P为所述待刷盘至所述磁盘阵列的脏页面总数,U为所述磁盘阵列的当前利用率。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述将所述RAID组的刷盘并发输入输出IO按照各逻辑单元的物理地址的顺序依次刷盘至所述RAID组中的逻辑单元,包括:
从所述RAID组的刷盘指针指向的当前逻辑单元开始遍历;
若待刷盘至所述RAID组的脏页面不包含待刷盘至所述当前逻辑单元的脏页面,则将所述RAID组的刷盘指针指向按照物理地址的顺序排在所述当前逻辑单元下一个的另一逻辑单元;
若所述待刷盘至所述RAID组的脏页面包含待刷盘至所述当前逻辑单元的脏页面,对所述当前逻辑单元进行刷盘。
5.根据权利要求4所述的方法,其特征在于,所述对所述当前逻辑单元进行刷盘,包括:
若所述当前逻辑单元的已完成刷盘并发IO数未达到所述当前逻辑单元的并发刷盘上限,则将对应所述当前逻辑单元的刷盘并发IO中的脏页面刷盘至所述当前逻辑单元;
若所述当前逻辑单元的已完成刷盘并发IO数达到所述当前逻辑单元的并发刷盘上限,则停止对所述当前逻辑单元进行刷盘,将所述RAID组的刷盘指针指向按照物理地址的顺序排在所述当前逻辑单元下一个的另一逻辑单元。
6.根据权利要求4或5所述的方法,其特征在于,所述对所述当前逻辑单元进行刷盘,包括:
若所述RAID组的已完成刷盘并发IO数未达到所述RAID组的并发刷盘上限,则对所述当前逻辑单元进行刷盘;
若所述RAID组的已完成刷盘并发IO数达到所述RAID组的并发刷盘上限,则停止对所述RAID组的刷盘。
7.根据权利要求6所述的方法,其特征在于,所述停止对所述RAID组的刷盘之后,还包括:保持所述RAID组的刷盘指针不变。
8.一种磁盘阵列刷盘装置,其特征在于,包括:
获取模块,用于获取磁盘阵列中同一独立磁盘冗余阵列RAID组中各逻辑单元按照所述各逻辑单元的物理地址的排序;
刷盘模块,用于将所述RAID组的刷盘并发输入输出IO按照各逻辑单元的物理地址的排序依次刷盘至所述RAID组中的逻辑单元,每个刷盘并发IO包括待刷盘至所述RAID组中一个逻辑单元的至少一个脏页面。
9.根据权利要求8所述的装置,其特征在于,还包括:
确定模块,用于根据待刷盘至所述磁盘阵列的脏页面总数、待刷盘至所述RAID组的脏页面总数和所述RAID组的并发刷盘上限,确定所述RAID组的刷盘并发IO数。
10.根据权利要求9所述的装置,其特征在于,所述确定模块具体用于:
确定所述RAID组的刷盘并发IO数dn=M×(pn/P)×(1-U),
其中,M为所述RAID组的并发刷盘上限,pn为所述待刷盘至所述RAID组的脏页面总数,P为所述待刷盘至所述磁盘阵列的脏页面总数,U为所述磁盘阵列的当前利用率。
11.根据权利要求8至10中任一项所述的装置,其特征在于,所述刷盘模块具体用于:
从所述RAID组的刷盘指针指向的当前逻辑单元开始遍历;
若待刷盘至所述RAID组的脏页面不包含待刷盘至所述当前逻辑单元的脏页面,则将所述RAID组的刷盘指针指向按照物理地址的顺序排在所述当前逻辑单元下一个的另一逻辑单元;
若所述待刷盘至所述RAID组的脏页面包含待刷盘至所述当前逻辑单元的脏页面,对所述当前逻辑单元进行刷盘。
12.根据权利要求11所述的装置,其特征在于,所述刷盘模块用于对当前逻辑单元进行刷盘,具体包括:
若所述当前逻辑单元的已完成刷盘并发IO数未达到所述当前逻辑单元的并发刷盘上限,则将对应所述当前逻辑单元的刷盘并发IO中的脏页面刷盘至所述当前逻辑单元;
若所述当前逻辑单元的已完成刷盘并发IO数达到所述当前逻辑单元的并发刷盘上限,则停止对所述当前逻辑单元进行刷盘,将所述RAID组的刷盘指针指向按照物理地址的顺序排在所述当前逻辑单元下一个的另一逻辑单元。
13.根据权利要求11或12所述的装置,其特征在于,所述刷盘模块还用于:
若所述RAID组的已完成刷盘并发IO数未达到所述RAID组的并发刷盘上限,则对所述当前逻辑单元进行刷盘;
若所述RAID组的已完成刷盘并发IO数达到所述RAID组的并发刷盘上限,则停止对所述RAID组的刷盘。
14.根据权利要求13所述的装置,其特征在于,所述刷盘模块还用于:
保持所述RAID组的刷盘指针不变。
CN201280002903.2A 2012-12-26 2012-12-26 磁盘阵列刷盘方法及磁盘阵列刷盘装置 Active CN103229136B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2012/087506 WO2014100996A1 (zh) 2012-12-26 2012-12-26 磁盘阵列刷盘方法及磁盘阵列刷盘装置

Publications (2)

Publication Number Publication Date
CN103229136A true CN103229136A (zh) 2013-07-31
CN103229136B CN103229136B (zh) 2016-03-02

Family

ID=48838328

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280002903.2A Active CN103229136B (zh) 2012-12-26 2012-12-26 磁盘阵列刷盘方法及磁盘阵列刷盘装置

Country Status (5)

Country Link
US (1) US9582433B2 (zh)
EP (1) EP2927779B1 (zh)
JP (1) JP6060277B2 (zh)
CN (1) CN103229136B (zh)
WO (1) WO2014100996A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103577349A (zh) * 2013-11-06 2014-02-12 华为技术有限公司 在高速缓存中选择数据进行刷盘的方法和装置
CN104461936A (zh) * 2014-11-28 2015-03-25 华为技术有限公司 缓存数据的刷盘方法及装置
CN105095112A (zh) * 2015-07-20 2015-11-25 华为技术有限公司 控制缓存刷盘方法、装置及非易失性计算机可读存储介质
CN106557430A (zh) * 2015-09-19 2017-04-05 成都华为技术有限公司 一种缓存数据刷盘方法及装置
CN107577439A (zh) * 2017-09-28 2018-01-12 郑州云海信息技术有限公司 分配处理资源的方法、装置、设备及计算机可读存储介质
CN107844436A (zh) * 2017-11-02 2018-03-27 郑州云海信息技术有限公司 一种缓存中脏数据的组织管理方法、系统及存储系统

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015065449A1 (en) * 2013-10-31 2015-05-07 Hewlett-Packard Development Company, L.P. Cache controller for non-volatile memory
US10891264B2 (en) * 2015-04-30 2021-01-12 Vmware, Inc. Distributed, scalable key-value store
CN107870732B (zh) * 2016-09-23 2020-12-25 伊姆西Ip控股有限责任公司 从固态存储设备冲刷页面的方法和设备
CN110413545B (zh) * 2018-04-28 2023-06-20 伊姆西Ip控股有限责任公司 存储管理方法、电子设备和计算机程序产品
US11138122B2 (en) * 2019-07-29 2021-10-05 EMC IP Holding Company, LLC System and method for dual node parallel flush

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101458668A (zh) * 2008-12-19 2009-06-17 成都市华为赛门铁克科技有限公司 缓存数据块的处理方法和硬盘
CN101526882A (zh) * 2008-03-03 2009-09-09 中兴通讯股份有限公司 独立磁盘冗余阵列子系统中逻辑单元重建的方法及装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05303528A (ja) * 1992-04-27 1993-11-16 Oki Electric Ind Co Ltd ライトバック式ディスクキャッシュ装置
JP4322068B2 (ja) 2003-03-07 2009-08-26 富士通株式会社 ストレージシステム及びそのデイスク負荷バランス制御方法
US7539815B2 (en) * 2004-12-29 2009-05-26 International Business Machines Corporation Method, system and circuit for managing task queues in a disk device controller
US7574556B2 (en) * 2006-03-20 2009-08-11 International Business Machines Corporation Wise ordering for writes—combining spatial and temporal locality in write caches
JP2010160544A (ja) * 2009-01-06 2010-07-22 Core Micro Systems Inc キャッシュメモリシステム及びキャッシュメモリの制御方法
US9665442B2 (en) * 2010-03-29 2017-05-30 Kaminario Technologies Ltd. Smart flushing of data to backup storage
WO2011121590A1 (en) * 2010-03-31 2011-10-06 Kaminario Technologies Ltd. Log structure array

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101526882A (zh) * 2008-03-03 2009-09-09 中兴通讯股份有限公司 独立磁盘冗余阵列子系统中逻辑单元重建的方法及装置
CN101458668A (zh) * 2008-12-19 2009-06-17 成都市华为赛门铁克科技有限公司 缓存数据块的处理方法和硬盘

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103577349A (zh) * 2013-11-06 2014-02-12 华为技术有限公司 在高速缓存中选择数据进行刷盘的方法和装置
CN103577349B (zh) * 2013-11-06 2016-11-23 华为技术有限公司 在高速缓存中选择数据进行刷盘的方法和装置
CN104461936A (zh) * 2014-11-28 2015-03-25 华为技术有限公司 缓存数据的刷盘方法及装置
CN104461936B (zh) * 2014-11-28 2017-10-17 华为技术有限公司 缓存数据的刷盘方法及装置
CN105095112A (zh) * 2015-07-20 2015-11-25 华为技术有限公司 控制缓存刷盘方法、装置及非易失性计算机可读存储介质
CN105095112B (zh) * 2015-07-20 2019-01-11 华为技术有限公司 控制缓存刷盘方法、装置及非易失性计算机可读存储介质
CN106557430A (zh) * 2015-09-19 2017-04-05 成都华为技术有限公司 一种缓存数据刷盘方法及装置
CN106557430B (zh) * 2015-09-19 2019-06-21 成都华为技术有限公司 一种缓存数据刷盘方法及装置
CN107577439A (zh) * 2017-09-28 2018-01-12 郑州云海信息技术有限公司 分配处理资源的方法、装置、设备及计算机可读存储介质
CN107844436A (zh) * 2017-11-02 2018-03-27 郑州云海信息技术有限公司 一种缓存中脏数据的组织管理方法、系统及存储系统
CN107844436B (zh) * 2017-11-02 2021-07-16 郑州云海信息技术有限公司 一种缓存中脏数据的组织管理方法、系统及存储系统

Also Published As

Publication number Publication date
US9582433B2 (en) 2017-02-28
JP6060277B2 (ja) 2017-01-11
EP2927779A1 (en) 2015-10-07
US20150293856A1 (en) 2015-10-15
CN103229136B (zh) 2016-03-02
WO2014100996A1 (zh) 2014-07-03
EP2927779B1 (en) 2018-06-13
JP2016503209A (ja) 2016-02-01
EP2927779A4 (en) 2015-12-23

Similar Documents

Publication Publication Date Title
CN103229136A (zh) 磁盘阵列刷盘方法及磁盘阵列刷盘装置
CN100412806C (zh) 存贮控制器及存贮控制方法
CN101699413B (zh) 硬盘数据读写控制方法和装置
KR101502896B1 (ko) 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법
CN105867840B (zh) 闪存组件及非易失性半导体存储器组件
CN101794259B (zh) 数据存储方法和装置
US20160328179A1 (en) Multiple virtually over-provisioned, virtual storage devices created from a single physical storage device
CN102023810B (zh) 一种写数据的方法、装置以及廉价冗余磁盘阵列
CN103019962A (zh) 数据缓存处理方法、装置以及系统
CN103500072A (zh) 数据迁移方法及数据迁移装置
US20160259598A1 (en) Control apparatus, control method, and control program
CN115933994B (zh) 一种数据处理方法、装置、电子设备及存储介质
CN102073461A (zh) 输入输出请求调度方法、存储控制器和存储阵列
CN107479950B (zh) 一种虚拟机调度方法、设备及系统
CN108733324B (zh) 一种固态硬盘的数据读写方法、装置、设备及存储介质
US11526306B1 (en) Command scheduling in a memory subsystem according to a selected scheduling ordering
WO2019032197A1 (en) HYBRID DATA STORAGE MATRIX
CN102263818A (zh) 一种文件数据存放和读取的方法和装置
CN112017700A (zh) 用于存储器装置的动态功率管理网络
CN102541746A (zh) 一种队列的数据处理方法和系统
CN109375868B (zh) 一种数据存储方法、调度装置、系统、设备及存储介质
CN108932112B (zh) 一种固态颗粒的数据读写方法、装置、设备及介质
CN103577349B (zh) 在高速缓存中选择数据进行刷盘的方法和装置
CN103295627B (zh) 相变存储器、数据并行写入方法及数据读取方法
CN105224261B (zh) 一种块虚拟化阵列的实现方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20211224

Address after: 450046 Floor 9, building 1, Zhengshang Boya Plaza, Longzihu wisdom Island, Zhengdong New Area, Zhengzhou City, Henan Province

Patentee after: xFusion Digital Technologies Co., Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right