CN105630638B - 用于为磁盘阵列分配缓存的设备和方法 - Google Patents
用于为磁盘阵列分配缓存的设备和方法 Download PDFInfo
- Publication number
- CN105630638B CN105630638B CN201410602434.9A CN201410602434A CN105630638B CN 105630638 B CN105630638 B CN 105630638B CN 201410602434 A CN201410602434 A CN 201410602434A CN 105630638 B CN105630638 B CN 105630638B
- Authority
- CN
- China
- Prior art keywords
- garbage reclamation
- disk array
- state
- disk
- distributions
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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/0871—Allocation or management of cache space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
Abstract
本发明公开了一种用于为磁盘阵列分配缓存的设备和方法。该方法包括:监视所述磁盘阵列在预定时间周期的I/O分布;确定所述磁盘阵列的垃圾回收状态,所述垃圾回收状态包括允许所述磁盘阵列进行垃圾回收以及不允许所述磁盘阵列进行垃圾回收;根据所述I/O分布和所述垃圾回收状态决定所述缓存的分配。根据本发明的设备和方法,能够平衡磁盘阵列忙时和闲时的缓存总量,并使得垃圾回收对磁盘I/O的影响最小化。
Description
技术领域
本发明涉及磁盘阵列的技术领域,更具体地,涉及一种用于为磁盘阵列分配缓存的设备和方法。
背景技术
目前,存储系统主要使用磁盘阵列,这些磁盘阵列中的每个磁盘阵列由多个磁盘组成。根据传统技术,在对进行读写(I/O)操作的磁盘阵列分配用于读写操作的高速缓冲存储器(以下简称为“缓存”)时,通常是基于静态的方法,即在某个时间段为某个磁盘阵列分配固定大小的缓存。
近来,由基于NAND闪存的固态硬盘(SSD)作为磁盘来构成磁盘阵列是一个重要的趋势。在NAND闪存中,存贮单元被分成页,由页组成块。NAND型存贮单元的读、写是以块和/或页为单位来进行的,并且在将数据写入到页之前,必须先擦除该页中的内容。由于这种特性的存在,导致了传统的缓存分配技术对基于NAND闪存的磁盘阵列的系统性能产生了较大影响。
发明内容
在基于NAND闪存的磁盘中,在将数据写入到页之前,必须先擦除该页中的内容,这个过程称为垃圾回收。考虑到磁盘进行垃圾回收对该磁盘的读写(I/O)操作的性能的影响,本发明提出了一种新的分配缓存的机制,即根据磁盘阵列的I/O分布以及磁盘的垃圾回收状态来为磁盘阵列分配缓存。
根据本发明的一个方面,提供了一种用于为磁盘阵列分配缓存的方法,该方法包括:监视所述磁盘阵列在预定时间周期的I/O分布;确定所述磁盘阵列的垃圾回收状态,所述垃圾回收状态包括允许所述磁盘阵列进行垃圾回收以及不允许所述磁盘阵列进行垃圾回收;根据所述I/O分布和所述垃圾回收状态决定所述缓存的分配。
根据本发明的另一个方面,提供了一种用于为磁盘阵列分配缓存的设备,该设备包括:I/O分布监视器,被配置为监视所述磁盘阵列在预定时间周期的I/O分布;垃圾回收状态判定器,被配置为确定所述磁盘阵列的垃圾回收状态,所述垃圾回收状态包括允许所述磁盘阵列进行垃圾回收以及不允许所述磁盘阵列进行垃圾回收;缓存分配控制器,被配置为根据所述I/O分布和所述垃圾回收状态决定所述缓存的分配。
根据本发明的再一方面,提供了一种用于为磁盘阵列分配缓存的计算机程序产品,所述计算机程序产品包括可由计算机读取并存储指令的存储介质,所述指令由所述计算机执行,以执行根据本发明的上述方面提供的为磁盘阵列分配缓存的方法的各步骤。
根据本发明的设备和方法,能够平衡磁盘阵列忙时和闲时的缓存总量,并使得垃圾回收对磁盘I/O的影响最小化。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。
图2是示出根据本发明实施例的用于为磁盘阵列分配缓存的设备的示意性方框图。
图3是示出根据本发明实施例的垃圾回收状态判定器判定垃圾回收状态的操作示例图。
图4是示出根据本发明另一个实施例的基于垃圾回收级别确定垃圾回收状态的示意图。
图5示出根据本发明实施例的多个磁盘阵列在一段时间内的IO分布以及垃圾回收状态的示例图。
图6是示出根据本发明另一个实施例的用于为磁盘阵列分配缓存的设备的示意性方框图。
图7是示出根据本发明一个实施例的垃圾回收控制器和缓存分配控制器之间进行垃圾回收和缓存分配的操作时序图。
图8是示出根据本发明另一个实施例的垃圾回收控制器和缓存分配控制器之间进行垃圾回收和缓存分配的操作时序图。
图9是示出根据本发明再一个实施例的垃圾回收控制器和缓存分配控制器的操作的图示。
图10是示出根据本发明实施例的用于为磁盘阵列分配缓存的方法的流程图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
根据本发明的实施例,在存储系统的磁盘阵列中,缓存的分配可以基于I/O密度分布模型以及磁盘阵列的垃圾回收状态进行动态调整。总体来说,本发明的缓存分配遵循以下三个方面:
1、磁盘阵列达到的I/O密度越高,需要给此磁盘阵列分配的缓存越多;
2、一旦允许磁盘阵列进行垃圾回收,需要增加此磁盘阵列的缓存分配;
3、基于每个磁盘阵列的垃圾回收状态来权衡所有磁盘阵列的缓存分配。
图2是示出根据本发明实施例的用于为磁盘阵列分配缓存的设备的示意性方框图。
如图2所示,根据本发明实施例的用于为磁盘阵列分配缓存的设备200包括:I/O分布监视器201,其被配置为监视所述磁盘阵列在预定时间周期的I/O分布;垃圾回收状态判定器202,其被配置为确定所述磁盘阵列的垃圾回收状态,该垃圾回收状态包括允许该磁盘阵列进行垃圾回收以及不允许该磁盘阵列进行垃圾回收;缓存分配控制器203,被配置为根据所述I/O分布和所述垃圾回收状态决定所述缓存的分配。
根据本发明实施例的用于为磁盘阵列分配缓存的设备200可以通过如图1所示的计算机系统/服务器12来实现。
由于大多数企业级服务有相对忙的时段和相对闲的时段,因此可以从每天进行的I/O数据密度分配中获取I/O数据密度分布模型。例如,根据本发明实施例的I/O分布监视器201可以被配置为记录并更新磁盘阵列每天24小时(预定时间周期)的I/O分布。根据本发明实施例的垃圾回收状态判定器202被配置为确定磁盘阵列的垃圾回收状态,即确定是否允许磁盘阵列进行垃圾回收。根据本发明实施例的缓存分配控制器203根据上述I/O分布和该磁盘阵列的垃圾回收状态来决定缓存的分配。
在本发明中,有关磁盘阵列的I/O数据密度的一些概念定义如下:
“忙”,表示在一段时间内,该磁盘阵列的I/O数据密度大,例如I/O数据密度大于或等于一预定阈值。上述预定阈值的大小不对本发明的范围构成限制,本领域技术人员可以根据磁盘阵列的系统性能以及其它方面的要求进行适当设置。根据本发明的一个实施例,该预定阈值可以但不限于被设定为最大系统I/O密度的60%。
“闲”,表示在一段时间内,该阵列的I/O数据密度小,例如I/O数据密度小于上述预定阈值。
由上述可知,磁盘阵列应该处于非忙即闲的状态。
根据本发明的一个实施例,垃圾回收状态判定器202可以被配置为根据所述磁盘阵列的I/O分布、其它磁盘阵列的I/O分布、和/或其它磁盘阵列的垃圾回收状态来确定所述磁盘阵列的垃圾回收状态。下面将进行详细的描述。
图3是示出根据本发明实施例的垃圾回收状态判定器判定垃圾回收状态的操作示例图。
如图3所示,在根据本发明实施例的判定垃圾回收状态的操作中,首先进行操作301,即判断该磁盘阵列(的I/O分布)是处于“忙”状态还是“闲”状态。当操作301的判断结果是该磁盘阵列处于“忙”状态时,再进行操作302,即判断除此磁盘阵列以外的其它磁盘阵列是处于“忙”状态还是“闲”状态。当操作302的判断结果是有数量超过一阈值(以下可以称为第一阈值)的其它磁盘阵列也处于“忙”状态时,进行操作303,即,垃圾回收状态判定器202响应于所述磁盘阵列的I/O分布处于忙状态以及超过该第一阈值的其它磁盘阵列的I/O分布也处于忙状态,不允许所述磁盘阵列进行垃圾回收。
上述第一阈值的大小不对本发明的范围构成限制,本领域技术人员可以根据磁盘阵列的系统性能以及其它方面的要求进行适当设置。根据本发明的一个实施例,该第一阈值可以但不限于被设定为50%,或更高或更低的值。
当操作302的判断结果是有数量超过第一阈值的其它磁盘阵列处于“闲”状态时,进行操作304。在操作304,判断是否有数量超过另一阈值(以下可以称为第二阈值)的其它磁盘阵列正在进行垃圾回收。当操作304的判断结果是有数量超过该第二阈值的其它磁盘阵列正在进行垃圾回收时,进行操作305,即,垃圾回收状态判定器202响应于所述磁盘阵列的I/O分布处于忙状态、数量超过第一阈值的其它磁盘阵列的I/O分布处于闲状态、以及数量超过第二阈值的其它磁盘阵列正在进行垃圾回收,不允许所述磁盘阵列进行垃圾回收。
上述第二阈值的大小不对本发明的范围构成限制,本领域技术人员可以根据磁盘阵列的系统性能以及其它方面的要求进行适当设置。根据本发明的一个实施例,该第二阈值可以但不限于被设定为50%,或更高或更低的值。
当操作304的判断结果是数量在第二阈值以上的其它磁盘阵列没有进行垃圾回收时,进行操作306,即,垃圾回收状态判定器202响应于所述磁盘阵列的I/O分布处于忙状态、数量超过第一阈值的其它磁盘阵列的I/O分布处于闲状态、以及数量超过第二阈值的其它磁盘阵列没有进行垃圾回收,允许所述磁盘阵列进行垃圾回收。
当操作301的判断结果是该磁盘阵列处于“闲”状态时,再进行操作307,即判断除此磁盘阵列以外的其它磁盘阵列是否正在进行垃圾回收处理。当操作307的判断结果是有超过再一阈值(以下可以称为第三阈值)的其它磁盘阵列正在进行垃圾回收处理时,进行操作308,即,垃圾回收状态判定器202响应于所述磁盘阵列的I/O分布处于闲状态以及超过第三阈值的其它磁盘阵列正在进行垃圾回收,不允许所述磁盘这列进行垃圾回收。
上述第三阈值的大小不对本发明的范围构成限制,本领域技术人员可以根据磁盘阵列的系统性能以及其它方面的要求进行适当设置。根据本发明的一个实施例,该第三阈值可以但不限于被设定为50%,或更高或更低的值。
根据本发明的实施例,上述第一阈值、第二阈值、第三阈值可以被设定同样的值,也可以被设定为至少有一个是不同的值。
当操作307的判断结果是有数量超过第三阈值的其它磁盘阵列没有进行垃圾回收处理时,进行操作309,即,垃圾回收状态判定器202响应于所述磁盘阵列的I/O分布处于闲状态以及数量超过第三阈值的其它磁盘阵列没有进行垃圾回收,允许所述磁盘阵列进行垃圾回收。
也就是说,如果该磁盘阵列的I/O分布处于忙状态,除非有数量多于第一阈值的其它磁盘阵列的I/O分布处于闲状态并且有数量多于第二阈值的其他磁盘阵列没有在进行垃圾回收,否则不推荐进行垃圾回收;如果该磁盘阵列的I/O分布处于闲状态,除非数量多于第三阈值的其它磁盘阵列正在做垃圾回收,否则推荐做垃圾回收。
图4是示出根据本发明另一个实施例的基于垃圾回收级别确定垃圾回收状态的示意图。
根据本发明的一个实施例,垃圾回收状态判定器202可以收集磁盘阵列中的每个磁盘的状态信息,该状态信息中可以包括磁盘的垃圾回收级别。垃圾回收状态判定器202还可以根据磁盘阵列的垃圾回收级别来确定是否进行垃圾回收。垃圾回收级别可以被确定为例如紧急、一般、低。随着磁盘阵列的使用时间的推移,磁盘阵列中可用的存储块会越来越少。例如,如图4所示,例如在时刻t1处,磁盘中还有很多可用的存储块,此时的垃圾回收级别为“低”,这时,没有必要进行垃圾回收处理。随着对该磁盘阵列的继续使用,例如在时刻t2处,磁盘中可用的存储块进一步减少,但是仍然还有一些可用的存储块,因此可以延迟一段时间再进行垃圾回收处理,这时的垃圾回收级别为“一般”。随着对该磁盘阵列的进一步使用,例如在时刻t3处,磁盘中可用的存储块已经少于某个特定阀值,这时的垃圾回收级别为“紧急”,需要马上对该磁盘阵列执行垃圾回收处理。
上述“特定阈值”的大小不对本发明的范围构成限制,本领域技术人员可以根据磁盘阵列的系统性能以及其它方面的要求进行适当设置。
根据本发明的一个实施例,当磁盘阵列的垃圾回收级别为“紧急”时,垃圾回收状态判定器202确定该磁盘阵列的垃圾回收状态为允许进行垃圾回收;当磁盘阵列的垃圾回收级别为“低”时,垃圾回收状态判定器202确定该磁盘阵列的垃圾回收状态为不允许进行垃圾回收;当磁盘阵列的垃圾回收级别为“一般”时,垃圾回收状态判定器202可以根据系统性能的要求,预先设定是否将该磁盘阵列的垃圾回收状态确定为允许进行垃圾回收或不允许进行垃圾回收。
前面已经用示例性的实施例描述了垃圾回收状态判定器202如何确定磁盘阵列的垃圾回收状态。但是,前面描述的确定垃圾回收状态的方式不对本发明的范围构成限制。本领域的技术人员也可以根据其他的方式来确定磁盘阵列的垃圾回收状态,例如,可以由技术人员根据系统性能的具体需要,或者指定特定时间段来确定磁盘阵列的垃圾回收状态。例如,技术人员可以指定磁盘阵列在比较闲的时间段允许进行垃圾回收,而在比较忙的时间段不允许进行垃圾回收。
图5示出根据本发明实施例的多个磁盘阵列在一段时间内的IO分布以及垃圾回收状态的示例图。
图5的上半部分示出了例如5个磁盘阵列在一天24小时的范围内的I/O分布曲线,表示相对于系统最大I/O的分布情况。图5的下半部分的图表示出了用“忙”和“闲”状态表示的例如5个磁盘阵列在一天24小时范围内的I/O状态,垃圾回收状态(在图5中用“GC”表示允许进行垃圾回收,用“NGC”表示不允许进行垃圾回收),以及在每个时段为每个磁盘阵列分配的缓存的大小。
根据本发明的实施例,如图5所示,允许在磁盘阵列闲的时间段(比如00:00-04:00)做垃圾回收,不允许在磁盘阵列忙的时间段(比如12:00-16:00)做垃圾回收。但如果磁盘阵列一直处于忙的状态,则可以允许在该磁盘阵列处于忙的状态,而其它磁盘阵列处于闲的状态并且没有做垃圾回收的时间段(比如04:00-08:00),针对这个磁盘阵列做垃圾回收。这样,针对所有磁盘阵列的缓存分配仍然可以处于一个相对稳定的值。用这种分配方法,可以达到平衡忙时和闲时分配的缓存总量的目的,并且可以将垃圾回收处理给磁盘I/O带来的影响最小化。
根据本发明的一个实施例,为每个磁盘阵列分配的缓存可以限制为例如总缓存的20%,并且可以基于I/O密度分布和垃圾回收状态定义对每个磁盘阵列分配的缓存大小。根据本发明的一个实施例,缓存分配控制器203响应于所述磁盘阵列处于忙状态并且允许进行垃圾回收(例如此时磁盘阵列的垃圾回收级别为“紧急”),可以为该磁盘阵列分配最大的缓存大小,响应于所述磁盘阵列处于闲状态并且没有进行垃圾回收(例如此时磁盘阵列的垃圾回收级别为“低”),可以为该磁盘阵列分配最小的缓存大小。如下表1所示。
表1
状态 | 要分配的缓存大小 |
I/O处于忙状态,允许垃圾回收 | 区域1(左斜线“/”):分配最大缓存,如15% |
I/O处于忙状态,不允许垃圾回收 | 区域2(右斜线“\”):分配较大缓存,如12% |
I/O处于闲状态,允许垃圾回收 | 区域3(水平线“—”):分配较小缓存,如10% |
I/O处于闲状态,不允许垃圾回收 | 区域4(垂直线“|”):分配最小缓存,如5% |
例如,对照上述表1,以08:00-12:00的时段为例分析整个磁盘阵列1-5的缓存分配情况:对于磁盘阵列1、2和4,由于处于忙状态,并且不允许垃圾回收,因此分配总缓存的12%的缓存大小;对于磁盘阵列3,由于处于闲状态,且不允许垃圾回收,因此分配总缓存的5%的缓存大小;对于磁盘阵列5,由于处于忙状态,且允许垃圾回收,因此分配总缓存的15%的缓存大小。这样,在08:00-12:00的时间段,为整个磁盘阵列系统分配的缓存大小为总缓存的56%。
对于表中在其它时段为整个磁盘阵列系统分配的缓存大小如图5所示,这里不再赘述详细的分析过程。
根据本发明的另一个实施例,I/O分布监视器还可以被配置为实时在线监控I/O分布,使得缓存分配控制器203可以根据磁盘阵列实时的I/O密度和垃圾回收状态判定器202确定的垃圾回收状态来调整缓存的分配。
图6是示出根据本发明另一个实施例的用于为磁盘阵列分配缓存的设备的示意性方框图。
如图6所示,根据本发明另一个实施例的用于为磁盘阵列分配缓存的设备600与前面描述的设备200的区别在于,设备600除了包括I/O分布监视器201、垃圾回收状态判定器202、以及缓存分配控制器203外,还包括:垃圾回收控制器604,被配置为控制对所述磁盘阵列进行的垃圾回收操作。
图7是示出根据本发明一个实施例的垃圾回收控制器和缓存分配控制器之间进行垃圾回收和缓存分配的操作时序图。
如图7所示,当一个磁盘阵列准备进行垃圾回收的时候,在操作701,垃圾回收控制器604会发送垃圾回收请求信号给缓存分配控制器203,以请求进行垃圾回收。在操作702,缓存分配控制器203查询垃圾回收状态。如果该垃圾回收状态是允许进行垃圾回收,在操作703,缓存分配控制器203向垃圾回收控制器604发送确认信号,以告知允许进行垃圾回收,并向该磁盘阵列分配更多的缓存。上述分配的缓存的大小可以根据本发明的上述各个实施例的方法来确定。垃圾回收结束以后,在操作704,垃圾回收控制器604发送结束信号给缓存分配控制器203,缓存分配控制器203将在垃圾回收期间进入缓存中的数据写入所述磁盘阵列。
上述操作及其顺序仅是示例性的,其中的部分操作是否需要执行以及以何种顺序执行不对本发明的范围构成限制。
图8是示出根据本发明另一个实施例的垃圾回收控制器和缓存分配控制器之间进行垃圾回收和缓存分配的操作时序图。
如图8所示,当一个磁盘阵列准备进行垃圾回收的时候,在操作801,垃圾回收控制器604发送垃圾回收请求信号给缓存分配控制器203,以请求进行垃圾回收。在操作802,缓存分配控制器203查询垃圾回收状态。如果该垃圾回收状态是不允许进行垃圾回收处理,在操作803,缓存分配控制器203向垃圾回收控制器604发送禁止信号,以告知不允许进行垃圾回收。在不允许进行垃圾回收处理的情况下,在操作804,缓存分配控制器203计算所请求的垃圾回收所需要的缓存大小,以及清理用于垃圾回收的缓存中的数据所需要的时间,并向垃圾回收控制器604发送延迟信号。在这种情况下,垃圾回收控制器604处于等待状态,而不进行垃圾回收处理,同时,缓存分配控制器203将要清理的缓存中的数据写入其他磁盘阵列,以为垃圾回收留出足够的缓存。在缓存清理结束后,在操作805,缓存分配控制器203向垃圾回收控制器604发送可以进行垃圾回收的确认信号,并向该磁盘阵列分配用于垃圾回收的缓存。上述分配的用于垃圾回收的缓存的大小可以根据本发明的上述各个实施例的方法来确定。垃圾回收结束后,在操作806,垃圾回收控制器604发送结束信号给缓存分配控制器203。在操作807,缓存分配控制器203将垃圾回收操作期间进入缓存的数据写入该磁盘阵列。
上述操作及其顺序仅是示例性的,其中的部分操作是否需要执行以及以何种顺序执行不对本发明的范围构成限制。例如但不限于也可以不发送操作803中的禁止信号。
根据本发明的一个实施例,计算分配缓存的公式如下:
(T/Maximum GC Time)*W1+W2*((High Cache usage-Current Cache usage)/(High Cache Usage-Low Cache usage))+W3*(Average Rank Workload/MaximumWorkload)
其中,T表示来自垃圾回收控制器的、用于进行垃圾回收处理的时间;Maximum GCTime表示最大的垃圾回收时间,是一个固定值;W1表示基于时间的缓存增长百分比;W2表示基于总体缓存使用率的常数值;High Cache usage表示高缓存使用率,通常被定义为80%(其余20%为备用缓存);Low cache usage表示低缓存使用率,通常被定义为20%;Currentcache usage表示准备做垃圾回收时的缓存使用率;W3表示基于磁盘阵列的工作量的值;Average rank workload表示正在进行垃圾回收时的磁盘阵列的平均工作量;Maximumworkload rank表示该磁盘阵列的最大工作量。
上述对高缓存使用率和低缓存使用率的定义不对本发明的范围构成限制,本领域的技术人员可以根据系统性能的要求以及其它相关参数,将上述高缓存使用率和低缓存使用率定义为其它的值。
当缓存的大小不能满足垃圾回收时,策略是:选择一个不忙的磁盘阵列来写入缓存中的数据,并将被释放的缓存用于进行垃圾回收。在选择要使用的不忙的磁盘阵列时,可以对每个不忙的磁盘阵列采用轮叫调度算法,如以下算法小程序的示例:
图9是示出根据本发明再一个实施例的垃圾回收控制器和缓存分配控制器的操作的图示。
如图9所示,磁盘阵列中包括多个磁盘,例如磁盘1,…,磁盘N-1,磁盘N等,这些磁盘中的每个磁盘都具有相应的磁盘控制器。垃圾回收控制器604具有与其它模块通信的接口,可以与其它模块协同工作。例如,垃圾回收控制器604分别具有与垃圾回收状态判定器202和缓存分配控制器203通信的接口,也具有与每个磁盘上的磁盘控制器通信的接口。
根据本发明的一个实施例,垃圾回收控制器604控制这个磁盘阵列中所有磁盘的垃圾回收处理,每一磁盘(例如是SSD硬盘)上的磁盘控制器可以控制该磁盘的垃圾回收处理。这个磁盘控制器可以收集所有磁盘(SSD)的状态信息,该状态信息包括例如垃圾回收级别信息。垃圾回收状态判定器202可以根据该垃圾回收级别信息,确定是否允许进行垃圾回收。
垃圾回收控制器604可以基于从缓存分配控制器203收到的开始垃圾回收的指令,控制每个磁盘上的磁盘控制器开始和停止垃圾回收处理。
图10是示出根据本发明实施例的用于为磁盘阵列分配缓存的方法的流程图。
如图10所示,在步骤S1001,监视磁盘阵列在预定时间周期的I/O分布。在步骤S1002,确定所述磁盘阵列的垃圾回收状态,所述垃圾回收状态包括允许所述磁盘阵列进行垃圾回收以及不允许所述磁盘阵列进行垃圾回收。在步骤S1003,根据所述I/O分布和所述垃圾回收状态决定所述缓存的分配。
根据本发明的一个实施例,上述方法中确定所述磁盘阵列的垃圾回收状态的步骤包括:根据所述磁盘阵列的I/O分布、其它磁盘阵列的I/O分布、和/或其它磁盘阵列的垃圾回收状态来确定所述磁盘阵列的垃圾回收状态。
根据本发明的一个实施例,上述方法中确定所述磁盘阵列的垃圾回收状态的步骤包括:响应于所述磁盘阵列的I/O分布处于以下状态之一,所述垃圾回收状态为不允许所述磁盘阵列进行垃圾回收:所述磁盘阵列的I/O分布处于忙状态以及数量超过第一阈值的其它磁盘阵列的I/O分布也处于忙状态;所述磁盘阵列的I/O分布处于忙状态、数量超过第一阈值的其它磁盘阵列的I/O分布处于闲状态、以及数量超过第二阈值的其它磁盘阵列正在进行垃圾回收;所述磁盘阵列的I/O分布处于闲状态以及数量超过第三阈值的其它磁盘阵列正在进行垃圾回收。
根据本发明的一个实施例,上述方法中确定所述磁盘阵列的垃圾回收状态的步骤包括:响应于所述磁盘阵列的I/O分布处于以下状态之一,所述垃圾回收状态为允许所述磁盘阵列进行垃圾回收:所述磁盘阵列的I/O分布处于忙状态、数量超过第一阈值的其它磁盘阵列的I/O分布处于闲状态、以及数量超过第二阈值的其它磁盘阵列没有进行垃圾回收;所述磁盘阵列的I/O分布处于闲状态以及数量超过第三阈值的其它磁盘阵列没有进行垃圾回收。
根据本发明的一个实施例,上述方法中确定所述磁盘阵列的垃圾回收状态的步骤包括:根据磁盘阵列的垃圾回收级别确定是否允许所述磁盘阵列进行垃圾回收。
根据本发明的一个实施例,上述方法中根据所述I/O分布和所述垃圾回收状态决定所述缓存的分配的步骤包括:响应于所述磁盘阵列的I/O分布处于忙状态并且允许进行垃圾回收,为该磁盘阵列分配最大的缓存。
根据本发明的一个实施例,上述方法中根据所述I/O分布和所述垃圾回收状态决定所述缓存的分配的步骤包括:响应于所述磁盘阵列的I/O分布处于闲状态并且不允许进行垃圾回收,为该磁盘阵列分配最小的缓存。
根据本发明的一个实施例,上述方法还包括:接收垃圾回收请求信号;查询所述垃圾回收状态;响应于所述垃圾回收状态是允许所述磁盘阵列进行垃圾回收:发送垃圾回收确认信号;获得使用前述方法确定的要分配的缓存,并向所述磁盘阵列分配该要分配的缓存。
根据本发明的一个实施例,上述方法还包括:响应于所述垃圾回收状态是不允许进行垃圾回收:发送垃圾回收延迟信号;将要清理的缓存的数据写入其他磁盘阵列;响应于要清理的缓存的数据写入结束:发送垃圾回收确认信号;获得使用前述方法确定的要分配的缓存,并向所述磁盘阵列分配该要分配的缓存。
根据本发明的一个实施例,上述方法还包括:响应于垃圾回收结束,将分配的缓存中的数据写入所述磁盘阵列。
以上结合附图对本发明的各个实施例进行了描述。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (18)
1.一种用于为磁盘阵列分配缓存的方法,包括:
监视所述磁盘阵列在预定时间周期的I/O分布;
确定所述磁盘阵列的垃圾回收状态,所述垃圾回收状态包括允许所述磁盘阵列进行垃圾回收以及不允许所述磁盘阵列进行垃圾回收;
响应于所述磁盘阵列的I/O分布处于以下状态之一,所述垃圾回收状态为不允许所述磁盘阵列进行垃圾回收:
所述磁盘阵列的I/O分布处于忙状态以及数量超过第一阈值的其它磁盘阵列的I/O分布也处于忙状态;
所述磁盘阵列的I/O分布处于忙状态、数量超过第一阈值的其它磁盘阵列的I/O分布处于闲状态、以及数量超过第二阈值的其它磁盘阵列正在进行垃圾回收;以及
所述磁盘阵列的I/O分布处于闲状态以及数量超过第三阈值的其它磁盘阵列正在进行垃圾回收;以及
根据所述I/O分布和所述垃圾回收状态决定所述缓存的分配。
2.如权利要求1所述的方法,其中确定所述磁盘阵列的垃圾回收状态的步骤包括:根据所述磁盘阵列的I/O分布、其它磁盘阵列的I/O分布、和其它磁盘阵列的垃圾回收状态来确定所述磁盘阵列的垃圾回收状态。
3.如权利要求1所述的方法,该方法还包括:
响应于所述磁盘阵列的I/O分布处于以下状态之一,所述垃圾回收状态为允许所述磁盘阵列进行垃圾回收:
所述磁盘阵列的I/O分布处于忙状态、数量超过第一阈值的其它磁盘阵列的I/O分布处于闲状态、以及数量超过第二阈值的其它磁盘阵列没有进行垃圾回收;
所述磁盘阵列的I/O分布处于闲状态以及数量超过第三阈值的其它磁盘阵列没有进行垃圾回收。
4.如权利要求1所述的方法,其中确定所述磁盘阵列的垃圾回收状态的步骤包括:根据磁盘阵列的垃圾回收级别确定是否允许所述磁盘阵列进行垃圾回收。
5.如权利要求1所述的方法,其中根据所述I/O分布和所述垃圾回收状态决定所述缓存的分配的步骤包括:响应于所述磁盘阵列的I/O分布处于忙状态并且允许进行垃圾回收,为该磁盘阵列分配最大的缓存。
6.如权利要求1所述的方法,其中根据所述I/O分布和所述垃圾回收状态决定所述缓存的分配的步骤包括:响应于所述磁盘阵列的I/O分布处于闲状态并且不允许进行垃圾回收,为该磁盘阵列分配最小的缓存。
7.如权利要求1所述的方法,该方法还包括:
接收垃圾回收请求信号;
查询所述垃圾回收状态;
响应于所述垃圾回收状态是允许所述磁盘阵列进行垃圾回收:
发送垃圾回收确认信号;
获得决定的要分配的缓存,并向所述磁盘阵列分配该要分配的缓存。
8.如权利要求7所述的方法,该方法还包括:
响应于所述垃圾回收状态是不允许进行垃圾回收:
发送垃圾回收延迟信号;
将要清理的缓存的数据写入其他磁盘阵列;
响应于要清理的缓存的数据写入结束:
发送垃圾回收确认信号;
获得决定的要分配的缓存,并向所述磁盘阵列分配该要分配的缓存。
9.如权利要求7或8所述的方法,该方法还包括:
响应于垃圾回收结束,将分配的缓存中的数据写入所述磁盘阵列。
10.一种用于为磁盘阵列分配缓存的设备,包括:
I/O分布监视器,被配置为监视所述磁盘阵列在预定时间周期的I/O分布;
垃圾回收状态判定器,被配置为确定所述磁盘阵列的垃圾回收状态,所述垃圾回收状态包括允许所述磁盘阵列进行垃圾回收以及不允许所述磁盘阵列进行垃圾回收,以及被配置为响应于所述磁盘阵列的I/O分布处于以下状态之一,所述垃圾回收状态为不允许所述磁盘阵列进行垃圾回收:
所述磁盘阵列的I/O分布处于忙状态以及数量超过第一阈值的其它磁盘阵列的I/O分布也处于忙状态;
所述磁盘阵列的I/O分布处于忙状态、数量超过第一阈值的其它磁盘阵列的I/O分布处于闲状态、以及数量超过第二阈值的其它磁盘阵列正在进行垃圾回收;以及
所述磁盘阵列的I/O分布处于闲状态以及数量超过第三阈值的其它磁盘阵列正在进行垃圾回收;以及
缓存分配控制器,被配置为根据所述I/O分布和所述垃圾回收状态决定所述缓存的分配。
11.如权利要求10所述的设备,其中所述垃圾回收状态判定器还被配置为:根据所述磁盘阵列的I/O分布、其它磁盘阵列的I/O分布、和其它磁盘阵列的垃圾回收状态来确定所述磁盘阵列的垃圾回收状态。
12.如权利要求10所述的设备,其中所述垃圾回收状态判定器还被配置为,响应于所述磁盘阵列的I/O分布处于以下状态之一,所述垃圾回收状态为允许所述磁盘阵列进行垃圾回收:
所述磁盘阵列的I/O分布处于忙状态、数量超过第一阈值的其它磁盘阵列的I/O分布处于闲状态、以及数量超过第二阈值的其它磁盘阵列没有进行垃圾回收;
所述磁盘阵列的I/O分布处于闲状态以及数量超过第三阈值的其它磁盘阵列没有进行垃圾回收。
13.如权利要求10所述的设备,其中所述垃圾回收状态判定器还被配置为:根据磁盘阵列的垃圾回收级别确定是否允许所述磁盘阵列进行垃圾回收。
14.如权利要求10所述的设备,其中所述缓存分配控制器还被配置为:响应于所述磁盘阵列的I/O分布处于忙状态并且允许进行垃圾回收,为该磁盘阵列分配最大的缓存。
15.如权利要求10所述的设备,其中所述缓存分配控制器还被配置为:响应于所述磁盘阵列的I/O分布处于闲状态并且不允许进行垃圾回收,为该磁盘阵列分配最小的缓存。
16.如权利要求10所述的设备,还包括:
垃圾回收控制器,被配置为控制对所述磁盘阵列进行的垃圾回收操作,
其中所述缓存分配控制器还被配置为:从所述垃圾回收控制器接收垃圾回收请求信号;查询所述垃圾回收状态;响应于所述垃圾回收状态是允许进行垃圾回收,向所述垃圾回收控制器发送确认信号,并向所述磁盘阵列分配所述的设备决定的要分配的缓存。
17.如权利要求16所述的设备,其中所述缓存分配控制器还被配置为:响应于所述垃圾回收状态是不允许进行垃圾回收,向所述垃圾回收控制器发送延迟信号;将要清理的缓存的数据写入其他磁盘阵列;响应于要清理的缓存的数据写入结束,向所述垃圾回收控制器发送垃圾回收确认信号,并向所述磁盘阵列分配决定的要分配的缓存。
18.如权利要求16或17所述的设备,其中所述缓存分配控制器还被配置为:响应于所述垃圾回收结束,将分配的缓存中的数据写入所述磁盘阵列。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410602434.9A CN105630638B (zh) | 2014-10-31 | 2014-10-31 | 用于为磁盘阵列分配缓存的设备和方法 |
US14/857,856 US9934144B2 (en) | 2014-10-31 | 2015-09-18 | Cache allocation for disk array |
US15/788,927 US9952970B2 (en) | 2014-10-31 | 2017-10-20 | Cache allocation for disk array |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410602434.9A CN105630638B (zh) | 2014-10-31 | 2014-10-31 | 用于为磁盘阵列分配缓存的设备和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105630638A CN105630638A (zh) | 2016-06-01 |
CN105630638B true CN105630638B (zh) | 2018-01-12 |
Family
ID=55852700
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410602434.9A Active CN105630638B (zh) | 2014-10-31 | 2014-10-31 | 用于为磁盘阵列分配缓存的设备和方法 |
Country Status (2)
Country | Link |
---|---|
US (2) | US9934144B2 (zh) |
CN (1) | CN105630638B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105630638B (zh) | 2014-10-31 | 2018-01-12 | 国际商业机器公司 | 用于为磁盘阵列分配缓存的设备和方法 |
JP2016122227A (ja) * | 2014-12-24 | 2016-07-07 | 株式会社東芝 | メモリシステムおよび情報処理システム |
US20160188233A1 (en) * | 2014-12-26 | 2016-06-30 | Mediatek Inc. | Method for interrupting cleaning procedure of flash memory |
US9804787B2 (en) * | 2015-11-03 | 2017-10-31 | Samsung Electronics Co., Ltd. | Mitigating GC effect in a raid configuration |
US10740294B2 (en) | 2017-01-12 | 2020-08-11 | Pure Storage, Inc. | Garbage collection of data blocks in a storage system with direct-mapped storage devices |
TWI626540B (zh) * | 2017-03-22 | 2018-06-11 | 慧榮科技股份有限公司 | 一般及垃圾回收的資料存取方法以及使用該方法的裝置 |
JP2018181281A (ja) * | 2017-04-21 | 2018-11-15 | 富士通株式会社 | ストレージシステム、制御装置及びストレージ装置 |
CN107608911B (zh) * | 2017-09-12 | 2020-09-22 | 苏州浪潮智能科技有限公司 | 一种缓存数据刷写方法、装置、设备及存储介质 |
EP4099177A1 (en) * | 2017-10-09 | 2022-12-07 | Huawei Technologies Co., Ltd. | Garbage data scrubbing method, and device |
DE102017124188A1 (de) | 2017-10-17 | 2019-04-18 | Hyperstone Gmbh | Verfahren und Vorrichtung zum Steuern eines Speichersystems zum Zwecke eines sicheren Herunterfahrens eines flüchtigen Speichers eines Hosts |
CN109726137B (zh) * | 2017-10-27 | 2021-01-29 | 华为技术有限公司 | 固态硬盘垃圾回收任务的管理方法、控制器和固态硬盘 |
CN107894958B (zh) * | 2017-11-22 | 2023-06-23 | 深圳市世芯信息技术有限公司 | 垃圾信息清理方法、终端、服务器及计算机可读存储介质 |
KR20200016075A (ko) * | 2018-08-06 | 2020-02-14 | 에스케이하이닉스 주식회사 | 메모리 시스템에서의 유효 데이터 탐색 방법 및 장치 |
CN109086223B (zh) * | 2018-08-21 | 2021-10-29 | 郑州云海信息技术有限公司 | 一种控制垃圾回收的方法和装置 |
KR20200076244A (ko) * | 2018-12-19 | 2020-06-29 | 삼성전자주식회사 | 데이터 스토리지 장치를 포함하는 시스템 및 데이터 스토리지 장치의 디스카드 동작 제어 방법 |
CN110119250B (zh) * | 2019-05-13 | 2023-02-10 | 湖南国科微电子股份有限公司 | 非易失性存储介质数据处理方法及非易失性存储介质 |
CN113971137A (zh) * | 2020-07-22 | 2022-01-25 | 华为技术有限公司 | 一种垃圾回收方法及装置 |
CN112650695B (zh) * | 2020-12-30 | 2023-09-05 | 北京奇艺世纪科技有限公司 | 一种应用服务器的缓存管理方法及装置 |
CN116700634B (zh) * | 2023-08-08 | 2023-11-03 | 苏州浪潮智能科技有限公司 | 分布式存储系统垃圾回收方法、装置及分布式存储系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103838633A (zh) * | 2012-11-20 | 2014-06-04 | 国际商业机器公司 | 在动态虚拟机存储器调整中避免内存不足 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7996609B2 (en) | 2006-12-20 | 2011-08-09 | International Business Machines Corporation | System and method of dynamic allocation of non-volatile memory |
US8843691B2 (en) | 2008-06-25 | 2014-09-23 | Stec, Inc. | Prioritized erasure of data blocks in a flash storage device |
US8244960B2 (en) | 2009-01-05 | 2012-08-14 | Sandisk Technologies Inc. | Non-volatile memory and method with write cache partition management methods |
US8583783B1 (en) * | 2009-08-18 | 2013-11-12 | Sprint Communications Company L.P. | Method and system for adaptive recovery of heap memory |
US8176235B2 (en) | 2009-12-04 | 2012-05-08 | International Business Machines Corporation | Non-volatile memories with enhanced write performance and endurance |
US8285918B2 (en) | 2009-12-11 | 2012-10-09 | Nimble Storage, Inc. | Flash memory cache for data storage device |
US9971513B2 (en) | 2012-07-24 | 2018-05-15 | Intel Corporation | System and method for implementing SSD-based I/O caches |
US8799561B2 (en) * | 2012-07-27 | 2014-08-05 | International Business Machines Corporation | Valid page threshold based garbage collection for solid state drive |
GB2511325A (en) * | 2013-02-28 | 2014-09-03 | Ibm | Cache allocation in a computerized system |
US9183142B2 (en) * | 2013-03-15 | 2015-11-10 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Reducing flash memory write amplification and latency |
US9146862B2 (en) * | 2013-07-18 | 2015-09-29 | International Business Machines Corporation | Optimizing memory usage across multiple garbage collected computer environments |
US10162748B2 (en) * | 2014-05-30 | 2018-12-25 | Sandisk Technologies Llc | Prioritizing garbage collection and block allocation based on I/O history for logical address regions |
US9836407B2 (en) | 2014-10-23 | 2017-12-05 | Netapp, Inc. | Method for using service level objectives to dynamically allocate cache resources among competing workloads |
CN105630638B (zh) | 2014-10-31 | 2018-01-12 | 国际商业机器公司 | 用于为磁盘阵列分配缓存的设备和方法 |
-
2014
- 2014-10-31 CN CN201410602434.9A patent/CN105630638B/zh active Active
-
2015
- 2015-09-18 US US14/857,856 patent/US9934144B2/en active Active
-
2017
- 2017-10-20 US US15/788,927 patent/US9952970B2/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103838633A (zh) * | 2012-11-20 | 2014-06-04 | 国际商业机器公司 | 在动态虚拟机存储器调整中避免内存不足 |
Also Published As
Publication number | Publication date |
---|---|
US9952970B2 (en) | 2018-04-24 |
US20180039574A1 (en) | 2018-02-08 |
US9934144B2 (en) | 2018-04-03 |
US20160124673A1 (en) | 2016-05-05 |
CN105630638A (zh) | 2016-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105630638B (zh) | 用于为磁盘阵列分配缓存的设备和方法 | |
CN104731523B (zh) | 非易失性分级存储系统中的协同管理的方法及其控制器 | |
CN106020715B (zh) | 存储池容量管理 | |
CN102640120B (zh) | 计算增设/减设的存储容量的管理系统 | |
CN109558287B (zh) | 一种固态硬盘寿命预测方法、装置和系统 | |
CN110389820B (zh) | 一种基于v-TGRU模型进行资源预测的私有云任务调度方法 | |
CN104272275B (zh) | 增强数据缓存性能 | |
TWI740899B (zh) | 資料遷移的最佳化方法、評估方法及處理方法及裝置 | |
US11501232B2 (en) | System and method for intelligent sales engagement | |
CN107273302A (zh) | 管理工作负载存储器分配的方法、设备和系统 | |
CN104424106B (zh) | 为存储优化操作分配存储设备的资源的方法和系统 | |
CN110289994B (zh) | 一种集群容量调整方法及装置 | |
CN106155929A (zh) | 数据存储管理系统和方法 | |
CN103946820B (zh) | 从盘的内径和外径周期性降级以改善读响应时间 | |
CN103903069A (zh) | 存储容量预测方法及存储容量预测系统 | |
CN109684162A (zh) | 设备状态预测方法、系统、终端及计算机可读存储介质 | |
CN106066812A (zh) | 基于应用的历史信息管理资源 | |
CN108363643A (zh) | 一种基于文件访问热度的hdfs副本管理方法 | |
CN107343041A (zh) | 一种基于云计算的精准扶贫管理系统与方法 | |
CN105824576A (zh) | 用于准确预测使用寿命的去重跟踪方法和系统 | |
CN107025256A (zh) | 用于减少基于云的服务的重新激活时间的方法和系统 | |
CN115220900B (zh) | 一种基于作业功耗预测的节能调度方法及系统 | |
US20210182188A1 (en) | Behavior-driven die management on solid-state drives | |
CN102662859B (zh) | 一种基于服务等级的数据缓存的系统和方法 | |
CN113554213A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |