CN109947761A - 存储管理系统和方法 - Google Patents
存储管理系统和方法 Download PDFInfo
- Publication number
- CN109947761A CN109947761A CN201710643708.2A CN201710643708A CN109947761A CN 109947761 A CN109947761 A CN 109947761A CN 201710643708 A CN201710643708 A CN 201710643708A CN 109947761 A CN109947761 A CN 109947761A
- Authority
- CN
- China
- Prior art keywords
- data object
- data
- object type
- storage
- ranking
- 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.)
- Pending
Links
- 238000003860 storage Methods 0.000 title claims abstract description 370
- 238000000034 method Methods 0.000 title claims abstract description 113
- 238000004590 computer program Methods 0.000 claims abstract description 21
- 230000001052 transient effect Effects 0.000 claims 2
- 241000406668 Loxodonta cyclotis Species 0.000 claims 1
- 230000008569 process Effects 0.000 description 96
- 238000007726 management method Methods 0.000 description 94
- 238000010586 diagram Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 7
- 230000005291 magnetic effect Effects 0.000 description 5
- 238000013500 data storage Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 230000005055 memory storage Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 101100264195 Caenorhabditis elegans app-1 gene Proteins 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000004883 computer application Methods 0.000 description 2
- 230000006378 damage Effects 0.000 description 2
- 238000013480 data collection Methods 0.000 description 2
- 238000000151 deposition Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000005662 electromechanics Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000008929 regeneration Effects 0.000 description 1
- 238000011069 regeneration method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Classifications
-
- 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/0638—Organizing or formatting or addressing of data
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
- G06F3/0649—Lifecycle management
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Abstract
本申请的各实施例涉及存储管理系统和方法。一种用于接收用以在存储阵列中存储至少一个数据对象的多个请求的方法、计算机程序产品和计算系统。多个数据对象类型的按照重要性顺序的排名可以被接收。多个数据对象中的一个或者多个数据对象可以至少部分基于与该多个数据对象中的该一个或者多个数据对象关联的多个数据对象类型中的一个或者多个数据对象类型的排名而从存储阵列被移除。该至少一个数据对象可以被存储在存储阵列中。
Description
技术领域
本申请的各实施例涉及存储管理系统和方法。
背景技术
存储和保护电子内容在现代商业和其他领域中可以是有益的。因此,大型数据存储系统可以被用来保护这样的电子内容,其中这样的大型数据存储系统可以被配置为数据存储阵列以提供高级数据可用性。这样的大型数据存储系统可以存储各种数据对象类型的各种数据对象。
发明内容
在一个示例实现方式中,一种计算机实施的方法在计算设备上被执行并且可以包括但不限于在该计算设备处接收用以在存储阵列中存储至少一个数据对象的多个请求。多个数据对象类型的按照重要性顺序的排名可以被接收。多个数据对象中的一个或者多个数据对象至少部分基于与该多个数据对象中的该一个或者多个数据对象关联的多个数据对象类型中的一个或者多个数据对象类型的排名可以从存储阵列被移除。该至少一个数据对象可以被存储在存储阵列中。
以下示例特征中的一个或者多个示例特征可以被包括。接收用以存储该至少一个数据对象的该多个请求可以包括确定用于存储阵列的最大存储使用。移除该一个或者多个数据对象可以包括移除在预定时间段内被生成的一个或者多个数据对象类型的一个或者多个核心转储数据对象。移除该一个或者多个数据对象可以包括确定用于存储阵列中的该多个数据对象类型中的至少一个数据对象类型的当前存储使用,确定用于该多个数据对象类型中的该至少一个数据对象类型的最大存储使用,以及移除该一个或者多个数据对象,直至与该一个或者多个数据对象关联的、用于该一个或者多个数据对象类型的该当前存储使用低于与该一个或者多个数据对象关联的、用于该一个或者多个数据对象类型的该最大存储使用。移除该一个或者多个数据对象可以包括至少部分基于第一数据对象类型的排名,移除第一数据对象类型的一个或者多个数据对象,以及当第一数据对象类型的该一个或者多个数据对象中的每个数据对象被移除时,至少部分基于第二数据对象类型的排名,移除第二数据对象类型的一个或者多个数据对象。移除该一个或者多个数据对象可以包括至少部分基于第一数据对象类型的排名,移除第一数据对象类型的数据对象,以及至少部分基于第二数据对象类型的排名,移除第二数据对象类型的数据对象。移除该一个或者多个数据对象可以包括移除该一个或者多个数据对象类型的该一个或者多个数据对象中的一个或者多个最旧数据对象。
在另一示例实现方式中,一种计算机程序产品驻留在计算机可读介质上,该计算机可读介质基于存储于其上的多个指令。当被处理器执行时,该指令使得处理器执行操作,该操作可以包括但不限于接收用以在存储阵列中存储至少一个数据对象的多个请求。多个数据对象类型的按照重要性顺序的排名可以被接收。多个数据对象中的一个或者多个数据对象至少部分基于与该多个数据对象中的该一个或者多个数据对象关联的多个数据对象类型中的一个或者多个数据对象类型的排名可以从存储阵列被移除。该至少一个数据对象可以被存储在存储阵列中。
以下示例特征中的一个或者多个示例特征可以被包括。接收用以存储该至少一个数据对象的该多个请求可以包括确定用于存储阵列的最大存储使用。移除该一个或者多个数据对象可以包括移除在预定时间段内被生成的一个或者多个数据对象类型的一个或者多个核心转储数据对象。移除该一个或者多个数据对象可以包括确定用于存储阵列中的该多个数据对象类型中的至少一个数据对象类型的当前存储使用,确定用于该多个数据对象类型中的该至少一个数据对象类型的最大存储使用,以及移除该一个或者多个数据对象,直至与该一个或者多个数据对象关联的、用于该一个或者多个数据对象类型的该当前存储使用低于与该一个或者多个数据对象关联的、用于该一个或者多个数据对象类型的该最大存储使用。移除该一个或者多个数据对象可以包括至少部分基于第一数据对象类型的排名,移除第一数据对象类型的一个或者多个数据对象,以及当第一数据对象类型的该一个或者多个数据对象中的每个数据对象被移除时,至少部分基于第二数据对象类型的排名,移除第二数据对象类型的一个或者多个数据对象。移除该一个或者多个数据对象可以包括至少部分基于第一数据对象类型的排名,移除第一数据对象类型的数据对象,以及至少部分基于第二数据对象类型的排名,移除第二数据对象类型的数据对象。移除该一个或者多个数据对象可以包括移除该一个或者多个数据对象类型的该一个或者多个数据对象中的一个或者多个最旧数据对象。
在另一示例实现方式中,一种计算系统包括至少一个处理器和与该至少一个处理器耦合的至少一个存储器架构,其中该计算系统被配置用于执行操作,该操作可以包括但不限于接收用以在存储阵列中存储至少一个数据对象的多个请求。多个数据对象类型的按照重要性顺序的排名可以被接收。多个数据对象中的一个或者多个数据对象至少部分基于与该多个数据对象中的该一个或者多个数据对象关联的多个数据对象类型中的一个或者多个数据对象类型的排名可以从存储阵列被移除。该至少一个数据对象可以被存储在存储阵列中。
以下示例特征中的一个或者多个示例特征可以被包括。接收用以存储该至少一个数据对象的该多个请求可以包括确定用于存储阵列的最大存储使用。移除该一个或者多个数据对象可以包括移除在预定时间段内被生成的一个或者多个数据对象类型的一个或者多个核心转储数据对象。移除该一个或者多个数据对象可以包括确定用于存储阵列中的该多个数据对象类型中的至少一个数据对象类型的当前存储使用,确定用于该多个数据对象类型中的该至少一个数据对象类型的最大存储使用,以及移除该一个或者多个数据对象,直至与该一个或者多个数据对象关联的、用于该一个或者多个数据对象类型的该当前存储使用低于与该一个或者多个数据对象关联的、用于该一个或者多个数据对象类型的该最大存储使用。移除该一个或者多个数据对象可以包括至少部分基于第一数据对象类型的排名,移除第一数据对象类型的一个或者多个数据对象,以及当第一数据对象类型的该一个或者多个数据对象中的每个数据对象被移除时,至少部分基于第二数据对象类型的排名,移除第二数据对象类型的一个或者多个数据对象。移除该一个或者多个数据对象可以包括至少部分基于第一数据对象类型的排名,移除第一数据对象类型的数据对象,以及至少部分基于第二数据对象类型的排名,移除第二数据对象类型的数据对象。移除该一个或者多个数据对象可以包括移除该一个或者多个数据对象类型的该一个或者多个数据对象中的一个或者多个最旧数据对象。
一个或者多个示例实现方式的细节在附图和以下描述中被阐明。其他可能的示例特征和/或可能的示例优点将从描述、附图和权利要求变得清楚。一些实现方式可以不具有那些可能的示例特征和/或可能的示例优点,并且这样的可能的示例特征和/或可能的示例优点可以不是一些实现方式所必然要求的。
附图说明
图1是根据本公开内容的一个或者多个示例实现方式的被耦合到分布式计算网络的存储系统和存储管理过程的示例示意图;
图2是根据本公开内容的一个或者多个示例实现方式的图1的存储系统的示例示意图;
图3是根据本公开内容的一个或者多个示例实现方式的图1的存储系统的另一示例示意图;以及
图4是根据本公开内容的一个或者多个示例实现方式的图1的存储管理过程的示例流程图。
各个附图中的相同参考符号指示相同元素。
具体实施方式
系统概述:
参考图1的示例实现方式,示出了可以驻留在存储系统12上并且可以由存储系统12执行的存储管理过程10,存储系统可以被连接到网络14(例如,因特网或者局域网)。存储系统12的示例可以包括但不限于:网络附接存储(NAS)系统、存取区域网络(SAN)、具有存储器系统的个人计算机、具有存储器系统的服务器计算机以及具有存储器系统的基于云的设备。
如本领域中所知的,SAN可以包括个人计算机、服务器计算机、一系列服务器计算机、微型计算机、大型计算机、RAID设备和NAS系统中的一项或者多项。存储系统12的各种部件可以执行一个或者多个操作系统,其示例可以包括但不限于: OSRedMobile,Chrome OS,Blackberry OS,Fire OS,或者定制操作系统。(Microsoft和Windows是微软公司在美国、其他国家或者二者中的注册商标;Mac和OS X是苹果公司在美国、其他国家或者二者中的注册商标;Red Hat是Red Hat公司在美国、其他国家或者二者中的注册商标;并且Linux是Linus Torvalds在美国、其他国家或者二者中的注册商标)。
可以被存储在被包括在存储系统12内的存储设备16上的存储管理过程10的指令集和子例程可以由被包括在存储系统12内的一个或者多个处理器(未示出)和一个或者多个存储器架构(未示出)执行。存储设备可以包括但不限于:硬盘驱动;磁带驱动;光驱;RAID设备;随机存取存储器(RAM);只读存储器(ROM);以及所有形式的快闪存储器存储设备。附加地/备选地,存储管理过程10的指令集和子例程的一些部分可以被存储在存储系统12外部的存储设备上(和/或由处理器和存储器架构执行)。
网络14可以被连接到一个或者多个次级网络(例如,网络18),其实力可以包括但不限于:例如,局域网;广域网;或者内联网。
各种IO请求(例如,IO请求20)可以从客户端应用22、24、26、28被发送给存储系统12。IO请求20的示例可以包括但不限于数据写入请求(即,内容被写入到存储系统12的请求)和数据读取请求(即,内容被从存储系统12读取的请求)。
可以被(分别地)存储在被(分别地)耦合到客户端电子设备38、40、42、44的存储设备30、32、34、36的客户端应用22、24、26、28的指令集和子例程可以由被(分别地)并入到客户端电子设备38、40、42、44内的一个或者多个处理器(未示出)和一个或者多个存储器架构(未示出)执行。存储设备30、32、34、36可以包括但不限于:硬盘驱动;磁带驱动;光驱;RAID设备;随机存取存储器(RAM);只读存储器(ROM),以及所有形式的快闪存储器存储设备。客户端电子设备38、40、42、44的示例可以包括但不限于个人计算机38、膝上型计算机40、智能电话42、笔记本计算机44、服务器(未示出)、支持数据的蜂窝电话(未示出)以及专用网络设备(未示出)。
用户46、48、50、52可以通过网络14或者通过次级网络18来直接地访问存储系统12。另外,存储系统可以如用链接线54所图示的、通过次级网络18被连接到网络14。
各种客户端电子设备可以被直接地或者间接地耦合到网络14(或者网络18)。例如,个人计算机38被示出为经由硬接线的网络连接被直接地耦合到网络14。另外,笔记本计算机44被示出为经由硬接线的网络连接被直接地耦合到网络18。膝上型计算机40被示出为经由被建立在膝上型计算机40和被示出为被直接地耦合到网络14的无线接入点(例如,WAP)58之间的无线通信信道56被无线地耦合到网络14。WAP 58可以例如是能够建立在膝上型计算机40和WAP 58之间的无线通信信道56的IEEE 802.11a、802.11b、802.11g、802.11n、Wi-Fi和/或蓝牙设备。智能电话42被示出为经由被建立在智能电话42和被示出为被直接地耦合到网络14的蜂窝网络/网桥62的无线通信信道60被无线地耦合到网络14。
客户端电子设备38、40、42、44可以各自执行操作系统,其实力可以包括但不限于:OSRedMobile,Chrome OS,Blackberry OS,Fire OS,或者定制操作系统。(Microsoft和Windows是微软公司在美国、其他国家或者二者中的注册商标;Mac和OS X是苹果公司在美国、其他国家或者二者中的注册商标;Red Hat是Red Hat公司在美国、其他国家或者二者中的注册商标;并且Linux是Linus Torvalds在美国、其他国家或者二者中的注册商标)。
在一些实现方式中,如将在以下非常详细地讨论的,存储管理过程(比如图1的存储管理过程10)可以包括但不限于在计算设备处接收用以在存储阵列中存储至少一个数据对象的多个请求。多个数据对象类型的按照重要性顺序的排名可以被接收。多个数据对象中的一个或者多个数据对象可以至少部分基于与该多个数据对象中的该一个或者多个数据对象关联的多个数据对象类型中的一个或者多个数据对象类型的排名而从存储阵列被移除。该至少一个数据对象可以被存储在存储阵列中。
出于示例目的,存储系统12将作为包括多个机电后端存储设备的基于网络的存储系统而被讨论。然而,这仅仅是出于示例目的并且并未旨在于是对本公开内容的限制,因为其他配置是可能的并且被认为是在本公开内容的范围内。
也参考图2的示例实现方式,存储系统12可以包括存储处理器200和多个存储目标T 1-n(例如,存储目标202、204、206、208)。存储目标202、204、206、208可以被配置用于提供各种级别的性能和/或高可用性。例如,存储目标202、204、206、208中的一个或者多个存储目标可以被配置为RAID 0阵列,其中数据跨存储目标被条带化(strip)。通过跨多个存储目标将数据条带化,可以实现改进的性能。然而,RAID 0阵列并不提供高可用性的级别。因此,存储目标202、204、206、208中的一个或者多个存储目标可以被配置为RAID1阵列,其中数据在存储目标之间被镜像。通过在存储目标之间将数据镜像,高可用性的级别被实现,因为数据的多个副本被存储在存储系统12内。
尽管存储目标202、204、206、208以上被讨论为在RAID 0或者RAID 1阵列中被配置,但这仅仅是出于示例目的并且并未旨在于是对本公开内容的限制,因为其他配置是可能的。例如,存储目标202、204、206、208可以被配置为RAID 3、RAID 4、RAID 5或者RAID 6阵列。
尽管在这一特定示例中,存储系统12被示出为包括四个存储目标(例如,存储目标202、204、206、208),但这仅仅是出于示例目的并且并未旨在于是对本公开内容的限制。具体而言,存储目标的实际数目可以取决于例如所需的冗余性/性能/容量的级别而被增加或者减少。
存储系统12也可以包括一个或者多个经编码目标110。如本领域中所知的,经编码目标可以被用来存储经编码数据,经编码数据可以允许在存储目标202、204、206、208中的一个或者多个存储目标被丢失/损坏的数据的再生。这样的经编码目标的示例可以包括但不限于被用来在RAID阵列内存储奇偶校验数据的硬盘驱动。
尽管在这一特定示例中,存储系统被示出为包括一个经编码目标(例如,经编码目标210),但这仅仅是出于示例目的并且并未旨在于是对本公开内容的限制。具体而言,经编码目标的实际数目可以取决于例如所需的冗余性/性能/容量的级别而被增加或者减少。
存储目标202、204、206、208和经编码目标210的示例可以包括一个或者多个机电硬盘驱动和/或固态/快闪设备,其中存储目标202、204、206、208和经编码目标210和处理/控制系统(未示出)的组合可以形成数据阵列212。
存储系统12被实施的方式可以取决于例如所需的冗余性/性能/容量的级别而变化。例如,存储系统12可以是RAID设备,在RAID设备中,存储处理器100是RAID控制器卡并且存储目标202、204、206、208和/或经编码目标210是各个“可热插拔”硬盘驱动。这样的RAID设备的另一示例可以包括但不限于NAS设备。备选地,存储系统12可以被配置为SAN,在SAN中,存储处理器200可以是例如服务器计算机并且存储目标202、204、206、208和/或经编码目标210中的每一项可以是RAID设备和/或基于计算机的硬盘驱动。再进一步,存储目标202、204、206、208和/或经编码目标210中的一项或者多项可以是SAN。
在存储系统12被配置为SAN的情况下,存储系统12的各种部件(例如,存储处理器100、存储目标202、204、206、208以及经编码目标210)可以使用网络基础设施214而被耦合,网络基础设施214的示例可以包括但不限于以太网(例如,层2或者层3)网络、光纤信道网络、无限带宽网络或者任何其他电路交换/分组交换网络。
存储系统12可以执行存储管理过程10的全部或者部分。可以被存储在被耦合到存储处理器200的存储设备(例如,存储设备16)上的存储管理过程10的指令集和子例程可以由被包括在存储处理器200内的一个或者多个处理器(未示出)和一个或者多个存储器架构(未示出)执行。存储设备16可以包括但不限于:硬盘驱动;磁带驱动;光驱;RAID设备;随机存取存储器(RAM);只读存储器(ROM);以及所有形式的快闪存储器存储设备。如以上所讨论的,存储管理过程10的指令集和子例程的一些部分可以被存储在存储系统12外部的存储设备上(和/或由处理器和存储器架构执行)。
如以上所讨论的,各种IO请求(例如,IO请求20)可以被生成。例如,这些IO请求可以从客户端应用22、24、26、28被发送给存储系统12。附加地/备选地并且当存储处理器220被配置为应用服务器时,这些IO请求可以被内部地生成在存储处理器200内。IO请求20的示例可以包括但不限于数据写入请求216(即,内容被写入到存储系统12的请求)和数据读取请求220(即,内容被从存储系统12读取的请求)。
在存储处理器200的操作期间,将被写入到存储系统12的内容218可以由存储处理器200处理。附加地/备选地并且当存储处理器200被配置为应用服务器时,将被写入到存储系统12的内容218可以由存储处理器200内部地生成。
存储处理器200可以包括前端高速缓存存储器系统222。前端高速缓存存储器系统222的示例可以包括但不限于易失性固态高速缓存存储器系统(例如,动态RAM高速缓存存储器系统)和/或非易失性固态高速缓存存储器系统(例如,基于闪存的高速缓存存储器系统)。
存储处理器200可以最初在前端高速缓存存储器系统222内存储内容118。取决于前端高速缓存存储器系统222被配置的方式,存储处理器200可以立即将内容218写入到数据阵列212(如果前端高速缓存存储器系统222被配置为写通高速缓存)或者可以随后将内容218写入到数据阵列212(如果前端高速缓存存储器系统222被配置为写回高速缓存)。
数据阵列212可以包括后端高速缓存存储器系统224。后端高速缓存存储器系统224的示例可以包括但不限于易失性固态高速缓存存储器系统(例如,动态RAM高速缓存存储器系统)和/或非易失性固态高速缓存存储器系统(例如,基于闪存的高速缓存存储器系统)。在数据阵列212的操作期间,将被写入到数据阵列212的内容218可以从存储处理器200被接收。数据阵列212可以在内容218被存储在例如存储目标202、204、206、208和经编码目标210中的一项或者多项上之前最初在后端高速缓存存储器系统224内存储内容218。
如以上所讨论的,可以被存储在被包括在存储系统12内的存储设备16上的存储管理过程10的指令集和子例程可以由被包括在存储系统12内的一个或者多个处理器(未示出)和一个或者多个存储器架构(未示出)执行。因此,除了在存储处理器200上被执行之外,存储管理过程10的指令集和子例程中的一些或者全部可以由被包括在数据阵列212内的一个或者多个处理器(未示出)和一个或者多个存储器架构(未示出)执行。
进一步地并且如以上所讨论的,在数据阵列212的操作期间,将被写入到数据阵列212的内容(例如,内容218)可以从存储处理器200被接收并且在被存储在例如存储目标202、204、206、208、210中的一项或者多项上之前被最初存储在后端高速缓存存储器系统224内。因此,在对数据阵列212的使用期间,后端高速缓存存储器系统224可以被填充(例如,变暖)并且因此随后的读取请求可以由后端高速缓存存储器系统224满足(例如,如果在读取请求中被请求的内容存在于后端高速缓存存储器系统124内),从而因此避免对从存储目标202、204、206、208、210获得内容(这通常将会更慢)的需要。
存储管理过程:
也参考图3至图4的示例实现方式,存储管理过程10可以接收400用以在存储阵列中存储至少一个数据对象的多个请求。存储管理过程10可以接收402多个数据对象类型的按照重要性顺序的排名。存储管理过程10可以至少部分基于与多个数据对象中的一个或者多个数据对象关联的多个数据对象类型中的一个或者多个数据对象类型的排名,从存储阵列移除404该多个数据对象中的该一个或者多个数据对象。存储管理过程10可以存储阵列中存储406该至少一个数据对象。
例如,请求(例如,多个IO请求)可以被接收以在存储阵列(例如,数据阵列212)中存储至少一个数据对象(例如,数据对象300)。数据对象通常可以包括但不限于写入请求(例如,写入请求216)的内容(例如,内容118)、一个或者多个文件等。
在一些示例实现方式中,接收400用以存储至少一个数据对象的多个请求可以包括确定408用于存储阵列的最大存储使用。例如,在将至少一个数据对象(例如,数据对象300)存储到数据阵列(例如,数据阵列212)之前,存储管理过程10可以确定用于存储阵列的最大存储使用。存储阵列(例如,存储阵列212)和/或存储阵列内的存储目标(例如,存储目标202、204、206、208、210)可以包括最大存储使用或者最大盘使用(MDU)。在一些实现方式中,最大存储使用可以表示在存储阵列中和/或在存储阵列内的存储目标中被允许的最大数据量。在一些实现方式中,最大数据存储可以被表示为存储阵列和/或存储阵列内的存储目标的总存储容量的百分比。在一些实现方式中,存储阵列的最大存储使用可以是用户定义的、由存储管理过程10定义的和/或可以是与数据阵列212关联的预定值。
例如,假设存储阵列212具有90%的最大存储使用。在一些实现方式中,存储管理过程10可以确定存储阵列的当前存储使用(例如,总容量的当前被占据或者使用的量)加上存储至少一个数据对象所需要的存储容量是否超过最大存储使用(例如,当前存储使用加上存储至少一个数据对象所需要的存储容量>存储阵列的总容量的90%)。如果存储管理过程10确定数据对象300的存储将不超过最大存储使用,则存储管理过程10可以在数据阵列212中存储数据对象300。如将在以下非常详细地讨论的,如果存储管理过程10确定当前存储使用加上存储至少一个数据对象所需要的存储容量超过最大存储使用,则存储管理过程10可以移除被存储在数据阵列212中的一个或者多个数据对象。
在一些实现方式中,存储管理过程10可以接收402多个数据对象类型的按照重要性顺序的排名。在一些实现方式中,数据对象可以与数据对象类型关联和/或可以是数据对象类型的数据对象。数据对象类型的示例可以包括但不限于用户数据对象类型、诊断数据对象类型、专用数据对象类型、文件格式和/或这些的组合。在一些实现方式中,用户数据对象类型可以包括但不限于由用户(例如,经由客户端应用22、24、26、28)创建和/或修改的数据对象类型。用户数据对象类型通常可以包括但不限于音频数据对象类型(例如,音频文件格式、标准以及比如MP3数据对象(.mp3)、WMA数据对象(.wav)之类的扩展等);媒体或者多媒体数据对象类型(例如,比如多媒体数字容器格式RealMedia可变比特率(.rmvb)等之类的媒体文件(RealMedia是RealNetworks公司在美国、其他国家或者二者中的注册商标));压缩数据对象类型(例如,比如分组数据对象(.pkg)、RAR数据对象(.rar)等之类的压缩文件类型);盘数据对象类型(例如,比如二进制盘图像(.bin)等之类的盘或者媒体文件);数据库数据对象类型(例如,比如逗号分隔值文件(.csv)、数据文件(.dat或者.data)、日志文件(.log)、XML文件(.xml)等之类的与数据库有关的数据文件);可执行数据对象类型(例如,比如批处理文件(.bat)、二进制文件(.bin)、可执行文件(.exe)等之类的可以利用解译器可执行或者可以利用解译器被执行的文件);图像数据对象类型(例如,比如位图图像(.bmp)、JPEG图像(.jpeg)、PNG图像(.png)等之类的当在计算设备上创建和/或保存图像时被使用的图像文件类型);编程数据对象类型(例如,比如C和C++源代码文件(.c)、Java类文件(.java)、Java源代码文件(.Java)等之类的在编译之前和之后被用于程序的文件);与系统有关的数据对象类型(例如,比如核心转储文件(.dmp)、临时文件(.tmp)、配置文件(.cfg)、备份文件(.bak)等之类的由操作系统或者其他程序使用的文件);视频数据对象类型(例如,比如音频视频交错(AVI)文件(.avi)、MPEG4视频文件(.mpeg)等之类的视频文件格式、标准和扩展)字处理数据对象类型(例如,比如PDF文件(.pdf)、纯文本文件(.txt)等之类的被用来在计算设备上创建文档的文本或者其他字处理文件);等等。
在一些实现方式中,诊断数据对象类型可以包括但不限于可以被用来诊断程序、应用、软件模块、硬件模块等的性能和/或与程序、应用、软件模块、硬件模块等关联的错误的数据对象类型。诊断数据对象类型通常可以包括但不限于数据库数据对象类型(例如,比如逗号分隔值文件(.csv)、数据文件(.dat或者.data)、日志文件(.log)、XML文件(.xml)等之类的与数据库有关的数据文件);可执行数据对象类型(例如,比如批处理文件(.bat)、二进制文件(.bin)、可执行文件(.exe)等之类的可以利用解译器可执行或者可以利用解译器被执行的文件);编程数据对象类型(例如,比如C和C++源代码文件(.c)、Java类文件(.java)、Java源代码文件(.Java)等之类的在编译之前和之后被用于程序的文件);与系统有关的数据对象类型(例如,比如核心转储文件(.dmp)、临时文件(.tmp)、配置文件(.cfg)、备份文件(.bak)等之类的由操作系统或者其他程序使用的文件);等等。在一些实现方式中,多个数据对象类型可以通过数据对象名称和/或数据对象扩展被指定和/或标识。例如,具有数据对象名称或者文件名“app1.log”的数据对象可以是用于具体应用(例如,app1和/或客户端应用22、24、26、28)的日志数据对象类型。与数据对象类型关联的附加数据对象名称和/或数据对象扩展可以包括但不限于“*_server.log”和/或“*_client.log”。
在一些实现方式中,存储管理过程10可以接收402按照列表形式的排名(例如,数据对象类型排名列表302)。例如,存储管理系统10可以接收对多个数据对象类型的选择以及与选择的多个数据对象类型中的一个或者多个数据对象类型关联的排名或者优先级。在一些实现方式中,存储管理过程10可以经由用户界面(未示出)来接收402多个数据对象类型的排名。在一些实现方式中,多个数据对象类型的排名可以指示多个数据对象类型中的哪些数据对象类型对用户而言更重要以及哪些数据对象类型对用户而言更不重要。在一些实现方式中,未被包括在排名中的一个或者多个数据对象类型可以被指派缺省排名或者可以被指明为无资格或者被保护以免由存储管理过程10移除。例如,与一个或者多个数据对象关联的一个或者多个数据对象类型可以由存储管理过程10指明以用于在无资格时被存储在存储阵列中(例如,仅仅出于示例目的而被指明为“其他数据对象类型”)和/或被保护以免由存储管理过程10移除。附加地和/或备选地,可能未被包括子啊多个数据对象类型的排名中的一个或者多个数据对象类型可以被存储管理过程10指明为无资格和/或被保护以免移除。
在一些实现方式中,多个数据对象类型的排名可以包括诊断数据对象类型的排名,在一些实现方式中,用户(例如,经由存储管理过程10)可能想要将与特定应用关联的诊断数据对象或者文件的存储区分优先级。因此,存储管理过程10可以接收402具有用于具体应用的多个诊断数据对象类型的排名的多个数据对象类型的排名(例如,数据对象类型排名列表302)。附加地和/或备选地,用户(例如,经由存储管理过程10)可能想要在配置数据对象(例如,.config和/或.cfg文件)之上将日志数据对象(例如,日志文件)区分优先级。因此,存储管理过程10可以接收具有日志数据对象和配置数据对象的排名的多个数据对象的排名(例如,数据对象类型排名列表302)。如将在以下非常详细地讨论的,存储管理过程10在移除日志数据对象之前移除配置数据对象,即使日志数据对象例如是更旧的数据对象。将领会到,在本公开内容的各种实现方式中,其他具体数据对象类型可以被排名。
在一些实现方式中,存储管理过程10可以至少部分基于与多个数据对象中的一个或者多个数据对象关联的多个数据对象类型中的一个或者多个数据对象类型的排名,从存储阵列移除404该多个数据对象中的该一个或者多个数据对象。在一些实现方式中,存储管理过程10可以响应于确定当前存储使用加上存储至少一个数据对象所需要的存储容量超过存储阵列的最大存储使用,来移除该一个或者多个数据对象。再次参考图3的示例实现方式,仅仅出于示例目的,假设存储管理过程10接收与一个或者多个数据对象(例如,数据对象310、312、314、316、318、320、322、324、326)关联的三个数据对象类型(例如,数据对象类型304、306、308)的排名。如以上所讨论的,在一些实现方式中,其他数据对象类型(例如,未被包括在数据对象类型排名列表302和/或被指明为无资格被移除的一个或者多个数据对象类型328)可以包括一个或者多个数据对象(例如,数据对象330、332、334)。再次仅仅出于示例目的,假设三个数据对象类型从最重要到最不重要而被排名为数据对象类型304、数据对象类型306和数据对象类型308。
在其中存储管理过程10确定用于数据阵列212的最大存储使用已被超过的一些实现方式中,存储管理过程10可以至少部分基于多个数据对象类型的排名,移除404多个数据对象(例如,数据对象类型304、306、308)的一个或者多个数据对象(例如,数据对象310、312、314、316、318、320、322、324、326)。存储管理过程10可以首先移除数据对象类型308的一个或者多个数据对象322、324、326,因为数据对象类型308可以具有三个数据对象类型在数据对象类型的排名的列表(例如,数据对象类型排名列表302)中的最低排名。在一些实现方式中,存储管理过程10可以确定在数据对象322、324、326中的一个或者多个数据对象的移除之后最大存储使用是否被超过。如果最大存储使用仍然被超过,则存储管理过程10可以移除一个或者多个附加数据对象,直至最大存储使用至少部分基于多个数据对象类型的排名(例如,数据对象类型排名列表302)不再被超过并且可以在存储阵列(例如,数据阵列212)中存储该至少一个数据对象(数据对象300)。如果在数据对象322、324、326中的一个或者多个数据对象的移除之后最大存储使用不再被达到或者超过,则存储管理过程10可以在存储阵列(例如,数据阵列212)中存储数据对象300。
在一些实现方式中,移除404该一个或者多个数据对象可以包括移除410在预定时间段内被生成的一个或者多个数据对象类型的一个或者多个核心转储数据对象。核心转储数据对象通常可以包括通常当计算机程序或者应用已经被破坏(crash)或者以其他方式被不正常终止时,该计算机程序或者应用(例如,客户端应用22、24、26、28)在特定时间的工作存储器的记录的状态。在一些实现方式中,核心转储数据对象可以包括其他条的程序状态,比如存储器寄存器(这可以包括程序计数器和栈指针)、存储器管理信息以及其他处理器和操作系统标志和信息。在一些实现方式中,一个或者多个核心转储数据对象可以(例如,经由存储管理过程10和/或其他客户端应用22、24、26、28)被用来诊断程序为何破坏和/或帮助理解程序如何运行。
在一些实现方式中,一个或者多个核心转储数据对象可以在预定时间段内被生成。例如,假设第一应用(例如,客户端应用22、24、26、28)持续地破坏或者转储核心转储文件。在一些实现方式中,由第一应用生成的这些核心转储文件可能冗余,因为第一应用可以持续地破坏或者转储核心转储文件的第一集合。与此相反,仅仅出于示例目的假设第二应用(例如,客户端应用22、24、26、28)破坏或者转储核心转储数据对象的第二集合一次。在一些实现方式中,存储管理过程10可以移除在预定时间段内或者期间由第一应用生成的冗余或者频繁核心转储数据对象。预定时间段可以是用户定义的、可以是由存储管理过程10定义的和/或可以是由应用(例如,客户端应用22、24、26、28)定义的。将领会到,其他来源可以定义预定时间段。
在一些实现方式中,存储管理过程10可以至少部分基于与一个或者多个核心转储数据对象关联的多个数据对象类型中的一个或者多个数据对象类型的排名,移除410在预定时间段内被生成的该一个或者多个数据对象类型的一个或者多个核心转储数据对象。仅仅出于示例目的假设数据文件类型304的数据对象312、314、数据文件类型306的数据对象320以及数据文件类型308的数据对象326是在预定时间段内被生成的核心转储数据对象。也仅仅出于示例目的假设三个数据对象类型的排名从最重要到最不重要为数据对象类型304、数据对象类型306和数据对象类型308。在这一示例中,存储管理过程10可以至少部分基于数据对象类型排名列表302中的该三个数据对象类型的排名来移除410数据对象类型308的核心转储数据对象326。在这一示例中,存储管理过程10可以确定在核心转储数据对象326的移除之后最大存储使用是否被超过。如果最大存储使用仍然被超过,则存储管理过程10可以移除一个或者多个附加核心转储数据对象,直至最大存储使用至少部分基于多个数据对象类型的排名(例如,数据对象类型排名列表302)不再被超过并且可以存储406该至少一个数据对象(数据对象300)。如果在数据对象326的移除之后最大存储使用不再被超过,则存储管理过程10可以在存储阵列(例如,数据阵列212)中存储406数据对象300。
在一些实现方式中,移除404该一个或者多个数据对象可以包括确定412用于存储阵列中的该多个数据对象类型中的至少一个数据对象类型的当前存储使用。在一些实现方式中,存储管理过程10可以通过确定与该多个数据对象类型关联的该多个数据对象的当前存储使用来确定412用于该多个数据对象类型的当前存储使用。在图3的示例中,仅仅出于示例目的假设存储管理过程10通过确定412数据对象310、312、314的当前存储使用来确定数据对象类型304的当前存储使用例如是数据阵列212的总存储容量的8%。附加地,假设存储管理过程10通过确定412数据对象316、318、320的当前存储使用来确定数据对象类型306的当前存储使用例如是数据阵列212的总存储容量的12%,并且通过确定数据对象322、324、326的当前存储使用来确定数据对象类型308的当前存储使用例如是数据阵列212的总存储容量的32%。
在一些实现方式中,移除该一个或者多个数据对象可以包括确定414用于该多个数据对象类型中的该至少一个数据对象类型的最大存储使用。在一些实现方式中,用于该至少一个数据对象类型的最大存储使用或者存储空间限制通常可以表示用于给定数据对象类型的、在具体磁盘上被允许的存储或者磁盘使用的百分比和/或可以是用户定义的、由存储管理过程10定义的和/或可以是每数据对象类型的缺省值。在一些实现方式中,存储管理过程10可以通过接收用于该多个数据对象类型的多个最大存储使用来确定4141用于该多个数据对象类型的多个最大存储使用。例如,存储管理过程10可以作为存储阵列的总容量的百分比和/或作为用于该多个数据对象类型的存储容量的最大量来接收最大存储使用/存储空间限制。在图3的示例中,存储管理过程10可以例如接收用于数据对象类型304的10%的最大存储使用336、用于数据对象类型306的20%的最大存储使用338、用于数据对象类型308的30%的最大存储使用340以及用于其他数据对象类型(例如,其他数据对象类型328)的30%的最大存储使用342。在一些实现方式中,剩余的存储使用344(例如,总存储容量阵列减去存储阵列的最大存储使用)仅仅出于示例目的可以是100%-90%=10%。
在一些实现方式中,移除404该一个或者多个数据对象可以包括移除416该一个或者多个数据对象、直至用于与该一个或者多个数据对象关联的该一个或者多个数据对象类型的当前存储使用低于用于与该一个或者多个数据对象关联的该一个或者多个数据对象类型的最大存储使用。继续其中存储管理过程10确定数据对象类型304的当前存储使用例如是8%、数据对象类型306的当前存储使用是12%、并且数据对象类型308的当前存储使用例如是32%、并且用于数据对象类型304的最大存储使用336例如是10%、用于数据对象类型306的最大存储使用338例如是20%并且用于数据对象类型308的最大存储使用340例如是30%的以上示例,存储管理过程10可以移除416一个或者多个数据对象,直至用于该一个或者多个数据对象类型的当前存储使用低于最大存储使用。例如,存储管理过程10可以确定用于数据对象类型308的当前存储使用(例如,32%)超过用于该数据对象类型的最大存储使用(例如,30%)。因此,存储管理过程10可以移除416与数据对象类型308关联的一个或者多个数据对象(例如,数据对象322、324、326),直至用于数据对象类型308的当前存储使用不再超过最大存储使用(例如,30%)。附加地和/或备选地,存储管理过程10可以移除该一个或者多个数据对象,直至用于存储阵列的当前存储使用加上存储数据对象300所需要的存储空间低于用于存储阵列的最大存储使用。
在一些实现方式中,移除404该一个或者多个数据对象可以包括移除418该一个或者多个数据对象类型的该一个或者多个数据对象中的一个或者多个最旧数据对象。例如,如果存储管理过程10确定一个或者多个数据对象类型的最大存储使用被达到或者超过,则存储管理过程10可以移除418最旧文件中的一个或者多个文件,直至该一个或者多个数据对象类型的当前存储使用低于最大存储使用。仅仅出于示例目的假设数据对象类型308的数据对象322是数据对象322、324、326中的最旧的(例如,已经在数据阵列212中达最长时间段),接着是数据对象324和数据对象326。在这一示例中,存储管理过程10可以移除最旧数据对象(例如,数据对象322)。附加地,存储管理过程10可以移除下一最旧数据对象(例如,数据对象324和/或数据对象326),直至存储管理过程10确定用于数据对象类型308的当前存储使用不再超过最大存储使用(例如,30%)。附加地和/或备选地,存储管理过程10可以移除该一个或者多个最旧数据对象,直至用于存储阵列的当前存储使用加上存储数据对象302所需要的存储空间低于用于存储阵列的最大存储使用。
在一些实现方式中,移除404该一个或者多个数据对象可以包括至少部分基于第一数据对象类型的排名,移除420第一数据对象类型的一个或者多个数据对象,并且当第一数据对象类型的该一个或者多个数据对象中的每个数据对象被移除时,至少部分基于第二数据对象类型的排名,移除422第二数据对象类型的一个或者多个数据对象。例如,存储管理过程10可以至少部分基于第一数据对象类型(例如,数据对象类型308)的排名,移除420第一数据对象类型(例如,数据对象类型308)的一个或者多个数据对象(例如,数据对象322、324、326)。在这一示例中,第一数据对象类型(例如,数据对象类型308)基于数据对象类型排名列表(例如,数据对象类型排名列表302)可以具有最低排名和/或可以是最不重要的数据对象类型。这样,存储管理过程10可以移除一个或者多个数据对象(例如,数据对象322、324、326)。
在一些实现方式中,当第一数据对象类型(例如,数据对象类型308)的该一个或者多个数据对象中的每个数据对象被移除,并且仅仅出于示例目的,存储管理过程确定用于存储阵列的当前存储使用加上存储数据对象300所需要的存储空间达到或者超过用于存储阵列的最大存储使用时,存储管理过程10可以至少部分基于第二数据对象类型(例如,数据对象类型306)的排名,移除422第二数据对象类型(例如,数据对象类型306)的一个或者多个数据对象(例如,数据对象316、318、320)。在这一示例中,第二数据对象类型(例如,数据对象类型306)基于数据对象类型排名列表(例如,数据对象类型排名列表302)可以具有在第一数据对象类型之后的次最低排名。这样,存储管理过程10可以移除第二数据对象类型(例如,数据对象类型306)的一个或者多个数据对象(例如,数据对象316、318、320)。
在一些实现方式中,存储管理过程10可以继续至少部分基于数据对象类型的排名,移除404一个或者多个数据对象类型的一个或者多个数据对象。例如,存储管理过程10可以移除404每个数据对象类型的一个或者多个数据对象,直至用于存储阵列的当前存储使用加上存储数据对象300所需要的存储空间低于用于存储阵列的最大存储使用。
在一些实现方式中,移除该一个或者多个数据对象可以包括至少部分基于第一数据对象类型的排名,移除424第一数据对象类型的一个或者多个数据对象中的数据对象,以及至少部分基于第二数据对象类型的排名,移除426第二数据对象类型的数据对象。例如,存储管理过程10可以至少部分基于第一数据对象类型(例如,数据对象类型308)的排名,移除424第一数据对象类型(例如,数据对象类型308)的数据对象(例如,数据对象326)。在这一示例中,第一数据对象类型(例如,数据对象类型308)基于数据对象类型排名列表(例如,数据对象类型排名列表302)可以具有最低排名和/或可以是最不重要的数据对象类型。这样,存储管理过程10可以移除424第一数据对象类型(例如,数据对象类型308)的一个或者多个数据对象(例如,数据对象322、324、326)中的数据对象。在一些实现方式中,存储管理过程10可以移除418该一个或者多个数据对象中的最旧数据对象。在这一示例中,存储管理过程10可以移除第一数据对象类型(例如,数据对象类型308)的一个或者多个数据对象(例如,数据对象322、324、326)中的最旧数据对象(例如,数据对象322)。
在一些实现方式中,在移除了第一数据对象类型的数据对象之后,存储管理过程10可以至少部分基于第二数据对象类型(例如,数据对象类型306)的排名,移除426第二数据对象类型(例如,数据对象类型306)的数据对象。在这一示例中,第二数据对象类型(例如,数据对象类型306)基于数据对象类型排名列表(例如,数据对象类型排名列表302)可以具有在第一数据对象类型之后的次最低排名。这样,存储管理过程10移除426第二数据对象类型(例如,数据对象类型306)的一个或者多个数据对象(例如,数据对象316、318、320)中的数据对象。在一些实现方式中,存储管理过程10可以移除一个或者多个数据对象中的最旧数据对象。在这一示例中,存储管理过程10移除第二数据对象类型(例如,数据对象类型306)的一个或者多个数据对象(例如,数据对象316、318、320)中的最旧数据对象(例如,数据对象316)。
在一些实现方式中,存储管理过程10可以继续至少部分基于多个数据对象类型的排名,移除404一个或者多个数据对象类型的一个或者多个数据对象中的数据对象。例如,存储管理过程10可以从每个数据对象类型移除数据对象,直至用于存储阵列的当前存储使用加上存储数据对象300所需要的存储空间低于用于存储阵列的最大存储使用。在一些实现方式中,存储管理过程10可以重复这一过程一次或者多次,直至用于存储阵列的当前存储使用加上存储数据对象300所需要的存储空间低于用于存储阵列的最大存储使用。
存储管理过程10可以在存储阵列中存储406至少一个数据对象。在一些实现方式中,当存储管理过程10已经确定用于存储阵列的当前存储使用加上存储数据对象300所需要的存储空间低于用于存储阵列的最大存储使用时,存储管理过程10可以在存储阵列(例如,数据阵列212)中存储该至少一个数据对象(例如,数据对象300)。
在一些实现方式中,可以观察到剩余的一个或者多个数据对象可以是最重要的数据对象。在一些实现方式中,存储管理过程10可以帮助更高效地使用存储阵列(例如,数据阵列212)的存储空间和/或磁盘空间。进一步地,向数据收集(DC)应用存储管理过程10可以帮助标识核心转储的根本原因并且可以减少分诊和支持成本。
综合:
如本领域技术人员将领会到的,本公开内容可以被体现为方法、系统或者计算机程序产品。因此,本公开内容可以采取以下形式:完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或者组合软件和硬件方面、可以被统称为“电路”、“模块”或者“系统”的实施例。另外,本公开内容可以采取具有被体现在计算机可用存储介质中的计算机可用程序代码的该介质上的计算机程序产品的形式。
任何适当计算机可用或者计算机可读介质可以被使用。计算机可用或者计算机可读介质可以例如但不限于电、磁、光、电磁、红外线、或者半导体系统、装置、设备或者传播介质。计算机可读介质的更具体示例(非穷举列表)可以包括以下各项:具有一个或者多个接线的电连接、便携式计算机磁盘、硬盘、随机存储存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或者快闪存储器)、光纤、便携式压缩盘只读存储器(CD-ROM)、光存储设备、比如支持因特网或者内联网的传输介质的传输介质或者磁存储设备。计算机可用或者计算机可读介质也可以是纸或者其他适当介质,程序可以被打印在它们上,因为程序可以例如经由对纸或者其他介质的光扫描而被电子地捕获,然后如果必须则被编译、解译或者以其他方式按照适当方式被处理,并且然后被存储在计算机存储器中。在本文献的上下文中,计算机可用或者计算机可读介质可以是能够包含、存储、传达、传播或者运送程序以用于由指令执行系统、装置或者设备使用或者结合指令执行系统、装置或者设备使用的任何介质。计算机可用介质可以包括在基带中或者作为载波的部分的、具有被体现于其中的计算机可用程序代码的传播的数据信号。计算机可用程序代码可以使用包括但不限于因特网、有线、光纤电缆、RF等的任何适当介质而被传输。
用于执行本公开内容的操作的计算机程序代码可以按照比如Java、Smalltalk、C++等的面向对象编程语言而被编写。然而,用于执行本公开内容的操作的计算机程序代码也可以按照比如“C”编程语言或者类似编程语言的常规过程编程语言而被编写。程序代码可以完全在用户的计算机上执行、部分地在用户的计算机上执行、作为独立软件包执行、部分地在用户的计算机上并且部分地在远程计算机上执行或者完全在远程计算机或者服务器上执行。在后者的场景中,远程计算机可以通过局域网/广域网/因特网(例如,网络14)被连接到用户的计算机。
本公开内容参考根据本公开内容的实现方式的方法、装置(系统)和计算机程序产品的流程图图示和/或框图而被描述。将理解,流程图图示和/或框图的每个框以及流程图图示和/或框图中的框的组合可以由计算机程序指令实施。这些计算机程序指令可以被提供给通用计算机/专用计算机/其他可编程数据处理装置的处理器,从而使得经由计算机或者其他可编程数据处理装置的处理器执行的指令创建用于实施在流程图和/或框图的一个或者多个框中被指定的功能/动作。
这些计算机程序指令也可以被存储在计算机可读存储器中,该计算机可读存储器可以指引计算机或者其他可编程数据处理装置按照特定方式工作,从而使得被存储在计算机可读存储器中的指令产生包括实施在流程图和/或框图的一个或者多个框中被指定的功能/动作的指令装置的制品。
计算机程序指令也可以被加载到计算机或者其他可编程数据处理器装置上,以使得一系列操作步骤在计算机或者其他可编程装置上被执行以产生计算机实施的过程,从而使得在计算机或者其他可编程装置上执行的指令提供用于实施在流程图和/或框图的一个或者多个框中被指定的功能/动作的步骤。
附图中的流程图和框图可以图示根据本公开内容的各种实现方式的系统、方法这计算机程序产品的可能的实现方式的架构、功能和操作。在这点上,流程图或者框图中的每个框可以表示包括用于实施指定的逻辑功能的一个或者多个可执行指令的模块、代码段或者代码的一部分。也应当注意,在一些备选实现方式中,在框中注解的功能可以乱序于附图中注解的顺序而发生。例如,被连续地示出的两个框实际上可以被大体上同时地执行,或者框有时可以按照相反顺序而被执行,这取决于所涉及的功能。也将注意到,框图和/或流程图图示的每个框和框图和/或流程图图示中的框的组合可以由执行指定的功能或者动作的基于专用硬件的系统或者专用硬件和计算机指令的组合实施。
在此所使用的数据仅仅是出于描述特定实现方式的目的,并且并非旨在于是对本公开内容的限制。如在此所使用的,单数形式的“一”、“一个”和“该”除非上下文明显地另有所指否则旨在于也包括复数形式。将进一步理解的是,当在本说明书中被使用时,术语“包括”和/或“包含”指定所阐明的特征、整体、步骤、操作、元素和/或组件的存在,而并非排除一个或者多个其他特征、整体、步骤、操作、元素、组件和/或他们的分组的存在或者添加。
以下权利要求中的所有装置或者步骤加功能的对应的结构、材料、动作和等同物旨在于包括用于结合如被具体要求保护的其他要求保护的元素来执行功能的任何结构、材料或者动作。本公开内容的描述已经出于说明和秒搜狐的目的而被呈现,但是并非旨在于是穷尽的或者限于所公开的公开内容的形式。许多修改和变型对于本领域普通技术人员而言是明显的,而没有脱离本公开内容的范围和精神。实施例被选择和描述以便最佳地说明本公开内容的原理和实践应用,以及使得本领域其他普通技术人员能够理解本公开内容以用于如适合于预期的特定使用的、具有各种修改的各种实现方式。
已经描述了多个实现方式。在如此详细地描述了本申请的公开内容的情况下并且通过参考它的实现方式,将明显的是,修改和变型是可能的,而没有脱离在所附权利要求中限定的本公开内容的范围。
Claims (20)
1.一种在计算设备上被执行的计算机实施的方法,包括:
在所述计算设备处接收用以在存储阵列中存储至少一个数据对象的多个请求;
接收多个数据对象类型的按照重要性顺序的排名;
至少部分基于与多个数据对象中的一个或者多个数据对象关联的多个数据对象类型中的一个或者多个数据对象类型的所述排名,从所述存储阵列移除所述多个数据对象中的所述一个或者多个数据对象;以及
在所述存储阵列中存储所述至少一个数据对象。
2.根据权利要求1所述的计算机实施的方法,其中接收用以存储所述至少一个数据对象的所述多个请求包括确定用于所述存储阵列的最大存储使用。
3.根据权利要求1所述的计算机实施的方法,其中移除所述一个或者多个数据对象包括移除在预定时间段内被生成的一个或者多个数据对象类型的一个或者多个核心转储数据对象。
4.根据权利要求1所述的计算机实施的方法,其中移除所述一个或者多个数据对象包括:
确定用于所述存储阵列中的所述多个数据对象类型中的至少一个数据对象类型的当前存储使用,
确定用于所述多个数据对象类型中的所述至少一个数据对象类型的最大存储使用,以及
移除所述一个或者多个数据对象,直至与所述一个或者多个数据对象关联的、用于所述一个或者多个数据对象类型的所述当前存储使用低于与所述一个或者多个数据对象关联的、用于所述一个或者多个数据对象类型的所述最大存储使用。
5.根据权利要求1所述的计算机实施的方法,其中移除所述一个或者多个数据对象包括:
至少部分基于第一数据对象类型的所述排名,移除所述第一数据对象类型的一个或者多个数据对象,以及
当所述第一数据对象类型的所述一个或者多个数据对象中的每个数据对象被移除时,至少部分基于第二数据对象类型的所述排名,移除所述第二数据对象类型的一个或者多个数据对象。
6.根据权利要求1所述的计算机实施的方法,其中移除所述一个或者多个数据对象包括:
至少部分基于第一数据对象类型的所述排名,移除所述第一数据对象类型的数据对象,以及
至少部分基于第二数据对象类型的所述排名,移除所述第二数据对象类型的数据对象。
7.根据权利要求1所述的计算机实施的方法,其中移除所述一个或者多个数据对象包括移除所述一个或者多个数据对象类型的所述一个或者多个数据对象中的一个或者多个最旧数据对象。
8.一种驻留在非瞬态计算机可读介质上的计算机程序产品,所述非瞬态计算机可读介质具有存储于其上的多个指令,当所述多个指令被处理器执行时,使得所述处理器执行操作,所述操作包括:
接收用以在存储阵列中存储至少一个数据对象的多个请求;
接收多个数据对象类型的按照重要性顺序的排名;
至少部分基于与多个数据对象中的一个或者多个数据对象关联的多个数据对象类型中的一个或者多个数据对象类型的所述排名,从所述存储阵列移除所述多个数据对象中的所述一个或者多个数据对象;以及
在所述存储阵列中存储所述至少一个数据对象。
9.根据权利要求8所述的计算机程序产品,其中接收用以存储所述至少一个数据对象的所述多个请求包括确定用于所述存储阵列的最大存储使用。
10.根据权利要求8所述的计算机程序产品,其中移除所述一个或者多个数据对象包括移除在预定时间段内被生成的一个或者多个数据对象类型的一个或者多个核心转储数据对象。
11.根据权利要求8所述的计算机程序产品,其中移除所述一个或者多个数据对象包括:
确定用于所述存储阵列中的所述多个数据对象类型中的至少一个数据对象类型的当前存储使用,
确定用于所述多个数据对象类型中的所述至少一个数据对象类型的最大存储使用,以及
移除所述一个或者多个数据对象,直至与所述一个或者多个数据对象关联的、用于所述一个或者多个数据对象类型的所述当前存储使用低于与所述一个或者多个数据对象关联的、用于所述一个或者多个数据对象类型的所述最大存储使用。
12.根据权利要求8所述的计算机程序产品,其中移除所述一个或者多个数据对象包括:
至少部分基于第一数据对象类型的所述排名,移除所述第一数据对象类型的一个或者多个数据对象,以及
当所述第一数据对象类型的所述一个或者多个数据对象中的每个数据对象被移除时,至少部分基于第二数据对象类型的所述排名,移除所述第二数据对象类型的一个或者多个数据对象。
13.根据权利要求8所述的计算机程序产品,其中移除所述一个或者多个数据对象包括:
至少部分基于第一数据对象类型的所述排名,移除所述第一数据对象类型的数据对象,以及
至少部分基于第二数据对象类型的所述排名,移除所述第二数据对象类型的数据对象。
14.根据权利要求8所述的计算机程序产品,其中移除所述一个或者多个数据对象包括移除所述一个或者多个数据对象类型的所述一个或者多个数据对象中的一个或者多个最旧数据对象。
15.一种计算系统,包括处理器和存储器,所述计算系统被配置用于执行操作,所述操作包括:
接收用以在存储阵列中存储至少一个数据对象的多个请求;
接收多个数据对象类型的按照重要性顺序的排名;
至少部分基于与多个数据对象中的一个或者多个数据对象关联的多个数据对象类型中的一个或者多个数据对象类型的所述排名,从所述存储阵列移除所述多个数据对象中的所述一个或者多个数据对象;以及
在所述存储阵列中存储所述至少一个数据对象。
16.根据权利要求15所述的计算系统,其中接收用以存储所述至少一个数据对象的所述多个请求包括确定用于所述存储阵列的最大存储使用。
17.根据权利要求15所述的计算系统,其中移除所述一个或者多个数据对象包括移除在预定时间段内被生成的一个或者多个数据对象类型的一个或者多个核心转储数据对象。
18.根据权利要求15所述的计算系统,其中移除所述一个或者多个数据对象包括:
确定用于所述存储阵列中的所述多个数据对象类型中的至少一个数据对象类型的当前存储使用,
确定用于所述多个数据对象类型中的所述至少一个数据对象类型的最大存储使用,以及
移除所述一个或者多个数据对象,直至与所述一个或者多个数据对象关联的、用于所述一个或者多个数据对象类型的所述当前存储使用低于与所述一个或者多个数据对象关联的、用于所述一个或者多个数据对象类型的所述最大存储使用。
19.根据权利要求15所述的计算系统,其中移除所述一个或者多个数据对象包括:
至少部分基于第一数据对象类型的所述排名,移除所述第一数据对象类型的一个或者多个数据对象,以及
当所述第一数据对象类型的所述一个或者多个数据对象中的每个数据对象被移除时,至少部分基于第二数据对象类型的所述排名,移除所述第二数据对象类型的一个或者多个数据对象。
20.根据权利要求15所述的计算系统,其中移除所述一个或者多个数据对象包括:
至少部分基于第一数据对象类型的所述排名,移除所述第一数据对象类型的数据对象,以及
至少部分基于第二数据对象类型的所述排名,移除所述第二数据对象类型的数据对象。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710643708.2A CN109947761A (zh) | 2017-03-31 | 2017-07-31 | 存储管理系统和方法 |
US16/038,530 US20180321867A1 (en) | 2017-03-31 | 2018-07-18 | Storage management system and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710643708.2A CN109947761A (zh) | 2017-03-31 | 2017-07-31 | 存储管理系统和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109947761A true CN109947761A (zh) | 2019-06-28 |
Family
ID=64015300
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710643708.2A Pending CN109947761A (zh) | 2017-03-31 | 2017-07-31 | 存储管理系统和方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20180321867A1 (zh) |
CN (1) | CN109947761A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11055179B2 (en) * | 2019-08-07 | 2021-07-06 | Rubrik, Inc. | Tree-based snapshots |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101836184A (zh) * | 2007-10-24 | 2010-09-15 | 伊姆西公司 | 基于策略的文件管理 |
US20120173594A1 (en) * | 2008-12-16 | 2012-07-05 | Fabrice Jogand-Coulomb | System and Method for Managing Discardable Objects |
US20150006822A1 (en) * | 2013-06-27 | 2015-01-01 | International Business Machines Corporation | Memory dump optimization in a system |
CN105190567A (zh) * | 2013-03-06 | 2015-12-23 | 戴尔产品有限公司 | 用于管理存储系统快照的系统和方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7882223B2 (en) * | 2007-09-05 | 2011-02-01 | Hewlett-Packard Development Company, L.P. | System and method for saving dump data of a client in a network |
-
2017
- 2017-07-31 CN CN201710643708.2A patent/CN109947761A/zh active Pending
-
2018
- 2018-07-18 US US16/038,530 patent/US20180321867A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101836184A (zh) * | 2007-10-24 | 2010-09-15 | 伊姆西公司 | 基于策略的文件管理 |
US20120173594A1 (en) * | 2008-12-16 | 2012-07-05 | Fabrice Jogand-Coulomb | System and Method for Managing Discardable Objects |
CN105190567A (zh) * | 2013-03-06 | 2015-12-23 | 戴尔产品有限公司 | 用于管理存储系统快照的系统和方法 |
US20150006822A1 (en) * | 2013-06-27 | 2015-01-01 | International Business Machines Corporation | Memory dump optimization in a system |
Also Published As
Publication number | Publication date |
---|---|
US20180321867A1 (en) | 2018-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7908246B2 (en) | Separating file data streams to enhance progressive incremental processing | |
US10152268B1 (en) | System and methods for replication resource management in asymmetric secure multi-tenancy deployments in protection storage | |
US9268711B1 (en) | System and method for improving cache performance | |
US11296944B2 (en) | Updating path selection as paths between a computing device and a storage system change | |
US20190007208A1 (en) | Encrypting existing live unencrypted data using age-based garbage collection | |
CN107710215A (zh) | 在测试设施中的移动计算装置安全的方法和设备 | |
CN110609797A (zh) | 基于块的存储的页面高速缓存存录 | |
DE112020003277T5 (de) | Erzeugen von tags für die datenzuweisung | |
CN103197924B (zh) | 用于实时选择压缩操作的方法和系统 | |
US9268693B1 (en) | System and method for improving cache performance | |
CN109213420A (zh) | 数据存储方法、装置及系统 | |
CN105227672B (zh) | 数据存储及访问的方法和系统 | |
US11210282B2 (en) | Data placement optimization in a storage system according to usage and directive metadata embedded within the data | |
CN109558213A (zh) | 管理OpenStack平台的虚拟机快照的方法和装置 | |
US8738858B1 (en) | System and method for improving cache performance | |
CN102255866A (zh) | 一种数据下载方法及装置 | |
CN107450856A (zh) | 存储数据的写入方法、读取方法以及相应的装置、终端 | |
US10678481B2 (en) | Adaptive caching and dynamic delay scheduling for in-memory data analytics | |
KR102195839B1 (ko) | 데이터베이스 관리 시스템에서의 로그 레코드 관리를 위한 기법 | |
US9710337B1 (en) | Systems and methods for restoring web parts in content management systems | |
US8793455B2 (en) | Storage apparatus, control method for storage apparatus, and storage system | |
CN109947761A (zh) | 存储管理系统和方法 | |
US20210132833A1 (en) | System and method for implementing heterogeneous media types with raid | |
JP7193515B2 (ja) | 情報ライフサイクル管理のための同期オブジェクト配置 | |
US11347404B2 (en) | System and method for sharing spare storage capacity between a log structured file system and RAID |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190628 |
|
WD01 | Invention patent application deemed withdrawn after publication |