CN108228084B - 用于管理存储系统的方法和设备 - Google Patents
用于管理存储系统的方法和设备 Download PDFInfo
- Publication number
- CN108228084B CN108228084B CN201611193846.7A CN201611193846A CN108228084B CN 108228084 B CN108228084 B CN 108228084B CN 201611193846 A CN201611193846 A CN 201611193846A CN 108228084 B CN108228084 B CN 108228084B
- Authority
- CN
- China
- Prior art keywords
- data
- access
- access request
- priority
- storage device
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2094—Redundant storage or storage space
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/1092—Rebuilding, e.g. when physically replacing a failing disk
-
- 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/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- 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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/805—Real-time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/82—Solving problems relating to consistency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/85—Active fault masking without idle spares
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种用于管理存储系统的方法和设备。具体地,在本发明的一个实施方式中,提出了一种用于管理存储系统的方法,所述存储系统包括缓存设备和多个存储设备,所述方法包括:接收针对所述存储系统的访问请求;确定所述多个存储设备中的存储设备出现故障;响应于所述访问请求是针对故障的所述存储设备的访问请求,通过使用所述缓存设备中的数据服务于所述访问请求,来减少所述存储系统中的内部数据访问。在本发明的一个实施方式中,提出了一种用于管理存储系统的设备。
Description
技术领域
本发明的各实施方式涉及存储管理,更具体地,涉及用于管理存储系统(例如,独立磁盘冗余阵列(Redundant Array of Independent Disks,RAID)的方法和设备。
背景技术
随着数据存储技术的发展,各种数据存储设备已经能够向用户提供越来越高的数据存储能力,并且数据访问速度也有了很大程度的提高。在提高数据存储能力的同时,用户对于数据可靠性和存储系统的响应时间也提出了越来越高的需求。
目前,已经开发出了基于冗余磁盘阵列的多种数据存储系统来提高数据的可靠性。当存储系统中的一个或者多个磁盘出现故障时,可以从其他正常操作的磁盘上的数据来恢复出故障磁盘中的数据。然而,在用于恢复数据的重建过程中,存储系统接收到的数据访问请求将会占用存储系统中的各种资源,进而干扰重建过程。因而,如何以更为有效的方式管理存储系统并减轻数据访问请求对于重建过程的干扰,成为一个研究热点。
发明内容
因而,期望能够开发并实现一种能够降低数据访问对于重建过程的干扰,进而提高存储系统的运行效率和安全性的技术方案。期望该技术方案能够与现有的存储系统相兼容,并且在无需针对现有存储系统增加额外硬件设备的情况下以更高的效率来管理存储系统中的存储区域。
在本发明的一个实施方式中,提出了一种用于管理存储系统的方法,所述存储系统包括缓存设备和多个存储设备,所述方法包括:接收针对所述存储系统的访问请求;确定所述多个存储设备中的存储设备出现故障;响应于所述访问请求是针对故障的所述存储设备的访问请求,通过使用所述缓存设备中的数据服务于所述访问请求,来减少所述存储系统中的内部数据访问。
在本发明的一个实施方式中,提供了一种用于管理存储系统的设备,包括:一个或者多个处理器;耦合至所述一个或者多个处理器中的至少一个处理器的存储器;在所述存储器中存储的计算机程序指令,当由所述至少一个处理器执行所述计算机程序指令时,使得所述设备执行一种用于管理存储系统的方法,所述方法包括:接收针对所述存储系统的访问请求;确定所述多个存储设备中的存储设备出现故障;响应于所述访问请求是针对故障的所述存储设备的访问请求,通过使用所述缓存设备中的数据服务于所述访问请求,来减少所述存储系统中的内部数据访问。
在本发明的一个实施方式中,提供了一种用于管理存储系统的设备,包括:接收模块,配置用于接收针对所述存储系统的访问请求;确定模块,配置用于确定所述多个存储设备中的存储设备出现故障;使用模块,配置用于响应于所述访问请求是针对故障的所述存储设备的访问请求,通过使用所述缓存设备中的数据服务于所述访问请求,来减少所述存储系统中的内部数据访问。
采用本发明的技术方案,可以降低数据访问对于重建过程的干扰,进而提高存储系统的运行效率和安全性。
附图说明
结合附图并参考以下详细说明,本发明各实施方式的特征、优点及其他方面将变得更加明显,在此以示例性而非限制性的方式示出了本发明的若干实施方式。在附图中:
图1示意性示出了适于实现本发明实施方式的示例性计算系统的框图;
图2示意性示出了其中可以实现根据本发明的实施方式的应用环境的示意图;
图3示意性示出了根据本发明一个实施方式的用于管理存储系统的技术方案的框图;
图4示意性示出了根据本发明一个实施方式的用于管理存储系统的方法的流程图;
图5示意性示出了根据本发明一个实施方式的用于管理存储系统的方法的流程图;
图6示意性示出了根据本发明一个实施方式的用于管理存储系统中的缓存设备的方案的框图;
图7示意性示出了根据本发明一个实施方式的用于管理存储系统中的缓存设备的方法的流程图;
图8示意性示出了根据本发明一个实施方式的用于管理存储系统中的缓存设备的队列的框图;
图9A、9B和9C分别示意性示出了根据本发明一个实施方式的用于管理存储系统中的缓存设备的不同阶段的框图;
图10示意性示出了根据本发明一个实施方式的用于管理存储系统中的缓存设备的框图;
图11示意性示出了根据本发明一个实施方式的用于管理存储系统中的设备的框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了适于用来实现本发明实施方式的示例性计算系统100的框图。如图1所示,计算机系统100可以包括:CPU(中央处理单元)101、RAM(随机存取存储器)102、ROM(只读存储器)103、系统总线104、硬盘控制器105、键盘控制器106、串行接口控制器107、并行接口控制器108、显示控制器109、硬盘110、键盘111、串行外部设备112、并行外部设备113和触摸屏显示器114。在这些设备中,与系统总线104耦合的有CPU 101、RAM 102、ROM 103、硬盘控制器105、键盘控制器106、串行控制器107、并行控制器108和显示控制器109。硬盘110与硬盘控制器105耦合,键盘111与键盘控制器106耦合,串行外部设备112与串行接口控制器107耦合,并行外部设备113与并行接口控制器108耦合,以及触摸屏显示器114与显示控制器109耦合。应当理解,图1所示的结构框图仅仅是为了示例的目的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况增加或减少某些设备。
所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施方式中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如使用因特网服务提供者来通过因特网连接)。
下面将参照本发明实施方式的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其他可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其他可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instructionmeans)的制造品(manufacture)。
也可以把计算机程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其他可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
独立磁盘冗余阵列(Redundant Array of Independent Disks,RAID)可以将多个存储设备组合起来,成为一个磁盘阵列。通过提供冗余的存储设备,可以使得整个磁盘组的可靠性大大超过单一的存储设备。RAID可以提供优于单一的存储设备的各种优势,例如,增强数据整合度,增强容错功能,增加吞吐量或容量,等等。RAID存在多个标准,例如RAID-1,RAID-2,RAID-3,RAID-4,RAID-5,RAID-6,RAID-10,RAID-50等等。关于RAID级别的更多细节,本领域技术人员例如可以参见https://en.wikipedia.org/wiki/Standard_RAID_ levels、以及https://en.wikipedia.org/wiki/Nested_RAID_levels等。
图2A示意性示出了根据一个技术方案的独立磁盘冗余阵列的结构的示意图200A。在图2A中,以包括五个独立存储设备(210A、212A、214A、216A以及218A)的RAID-5(4+1)阵列为示例,来说明RAID的工作原理。应当注意,尽管图2A中示意性示出了五个存储设备,在其他的实施方式中,根据RAID的版本不同,还可以包括更多或者更少的存储设备。尽管图2A中示出了条带220A、222A和224A,在其他的示例中,RAID系统还可以包括不同数量的条带。
在RAID中,条带跨越多个物理存储设备(例如,条带220A跨越了存储设备210A、212A、214A、216A以及218A)。可以简单地将条带理解为多个存储设备中的满足一定地址范围的存储区域。在条带220A中存储的数据包括多个部分:存储在存储设备210A上的数据块D11、存储在存储设备212A上的数据块D12、存储在存储设备214A上的数据块D13、存储在存储设备216A上的数据块D14、以及存储在存储设备218A上的数据块P1。在此示例中,数据块D11、D12、D13、以及D14是被存储的数据,而数据块P1是被存储数据的校验值。
在其他条带中存储数据的方式也类似于条带220A,不同之处在于,有关其他数据块的校验值可以存储在不同于存储设备218A的存储设备上。以此方式,当多个存储设备210A、212A、214A、216A以及218A中的一个存储设备出现故障时,可以从其他的正常的存储设备中恢复出故障设备中的数据。
图2B示意性示出了根据一个技术方案的独立磁盘冗余阵列的重建过程的示意图200B。如图2B所示,当一个存储设备(例如,以阴影示出的存储设备218A)出现故障时,可以从其余的正常操作的多个存储设备210A、212A、214A、216A中恢复数据。此时,可以向RAID中加入新的后备存储设备218B来替代存储设备218A,以此方式,可以将恢复的数据写入218B并实现系统的重建。
存储系统在重建期间仍然可以接收来自外部的数据访问(例如,读取/写入)请求。然而,当该访问请求需要针对故障的存储设备执行数据访问(例如,写入)时,由于存储系统正在被重建,因而常规的数据访问操作将被一系列复杂操作替代。具体而言,如果存储系统接收到针对故障存储设备的写入请求,则在存储系统中需要执行以下操作:(1)向日志写入数据;(2)向RAID地址空间写入数据;(3)将步骤(1)和(2)中写入的数据进行比较以验证RAID地址空间中的数据是正确的;以及(4)将日志中的数据无效。相对于常规写入而言,上文中的步骤(1)、(3)和(4)都是额外的附加步骤。
一方面,在存储系统重建期间,需要在存储系统内部执行这些附加步骤,因而将会对重建造成极大干扰。这些附加步骤将会对存储系统的重建造成额外的负担,并且增加重建过程的时间。另一方面,重建期间的存储系统安全性较差,对于如图2A和图2B所示的RAID5系统而言,在重建期间只有4个存储设备正常操作,一旦4个存储设备中的一个出现故障,则将会对存储系统造成不可恢复的数据损失。重建的时间越长,重建中的存储系统所面临的风险越大。因而,期望开发一种在存储系统中出现故障存储设备的情况下以更为有效的方式管理存储系统的技术方案。
为了解决上述缺陷,本发明的实施方式提供了一种用于管理存储系统的方法。具体地,所述存储系统包括缓存设备和多个存储设备,所述方法包括:接收针对所述存储系统的访问请求;确定所述多个存储设备中的存储设备出现故障;响应于所述访问请求是针对故障的所述存储设备的访问请求,通过使用所述缓存设备中的数据服务于所述访问请求,来减少所述存储系统中的内部数据访问。
图3示意性示出了根据本发明一个实施方式的用于管理存储系统的技术方案的框图300。如图3所示,存储系统例如可以包括三个层次的存储结构:存储设备310是底层存储设备,例如可以包括固态存储盘(Solid State Disk,SSD)312和/或磁盘314,存储设备310的数据访问速度相对较慢,然而这种类型的存储介质的存储容量大并且价格低,因而可以为数据系统提供大容量的数据存储。缓存设备(Buffer Device)320(例如固态高速缓存)具有较高的数据访问速度,此类型的存储介质可以用作缓存设备,例如将最近被访问的数据从存储设备310中加载至其中,以便为未来的数据访问提供更高的响应效率。动态随机访问存储器(Dynamic Random Access Memory,DRAM)高速缓存330具有更快的数据访问速度,因而可以将最新近被访问的数据或者重要数据等加载至其中,以便以更高的效率服务于数据访问请求。
当存储系统接收到数据访问请求340时,可以依次在DRAM高速缓存330和缓存设备320中进行搜索,如果出现命中(hit)则可以直接基于这些较快的设备中的数据来服务于接收到的访问请求340;如果未命中(miss)则需要从速度较慢的存储设备310中获取数据。以此方式,三层的存储结构310、320和330可以协调操作以便提供更快的数据响应。
如图3所示,假设磁盘316出现故障,则当接收到针对该故障的磁盘316的读取请求时,需要从其余的正常磁盘312、…、314中恢复期望被访问的数据。又例如,当访问请求是写入请求时,并不能直接向故障磁盘316写入数据,而是需要向其余的正常磁盘312、…、314写入数据。按照本发明的技术方案,在存储系统中出现故障存储设备后的重建过程期间,可以尽可能多地通过使用所述缓存设备中的数据服务于所述访问请求,来减少所述存储系统中的内部数据访问(例如上文中所描述的附加步骤(1)、(3)和(4))。进而,存储系统中的各种资源可以优先地分配用于存储系统的重建过程。
图4示意性示出了根据本发明一个实施方式的用于管理存储系统的方法的流程图400。在步骤410中,接收针对所述存储系统的访问请求。在此步骤中的访问请求可以是读取请求或者写入请求。在步骤420中,确定所述多个存储设备中的存储设备出现故障。本发明所述的方法特别适用于存储系统的重建期间,因而需要检测系统中是否出现存储设备出现故障,并在出现故障的情况下执行进一步的处理。
在步骤430中,响应于所述访问请求是针对故障的所述存储设备的访问请求,通过使用所述缓存设备中的数据服务于所述访问请求,来减少所述存储系统中的内部数据访问。根据本发明的实施方式,可以使用自定义的标识符来表示访问请求是针对故障的存储设备的访问请求,将在下文中描述有关标识步骤的具体细节。
如果接收到的访问请求是针对故障设备的访问请求,则按照现有技术的方案读取/写入数据,将会产生大量的附加步骤并干扰存储系统的重建过程。因而,在此步骤430中,可以尽可能多地使用缓存设备来响应于该访问请求,以便减少存储系统中的由于访问故障存储设备而导致的额外工作负荷。
在本发明的一个实施方式中,响应于所述访问请求未命中所述缓存设备:响应于所述访问请求为读取请求,旁路针对所述存储系统的历史访问请求的访问历史;将从所述其他存储设备中恢复的与所述访问请求相关联的目标数据加载至所述缓存设备中的目标页面;以及从所述缓存设备返回所述目标页面中的数据以响应于所述访问请求。
在此实施方式中,与访问请求相关联的数据可能已经驻留在缓存设备中(命中),或者与访问请求相关联的数据可能没有驻留在缓存设备中(未命中),此时可以基于命中还是未命中来确定后续步骤。如果访问请求未命中缓存设备,则可以继续判断该访问请求的类型(读取/写入请求),并基于类型来执行后续处理。
在现有技术中,通过记录存储设备中的各个数据块被访问的历史来确定是否将数据块加载至缓存设备中。例如,可以针对存储设备设置记录访问历史的数据结构,并且在中记录存储设备中的每个数据块在特定时间段(例如,10分钟或者其他时间间隔)内被访问的次数。只有当某个数据块被访问的次数达到预定阈值(例如,3次)时,将该数据块从存储设备中加载至缓存设备中。进而在后续接收到针对该数据块的访问请求时,可以由缓存设备来服务于访问请求,而不必再从存储设备中读取数据。
不同于现有技术的技术方案,在本发明的实施方式中,当确定访问请求是针对故障的存储设备的读取请求时,将旁路针对所述存储系统的历史访问请求的访问历史,并且直接从存储设备中向缓存设备加载与读取请求相关联的目标数据。应当注意,由于此时被访问的目标设备是故障的存储设备,因而无法直接从其中读取目标数据,而是需要从存储系统中的其他正常的存储设备中恢复目标数据,并将恢复的数据加载至缓存设备中。以此方式,在存储系统运行期间,如果未来接收到针对相同目标数据的访问请求,则可以直接由缓存设备来服务于该访问请求。
在本发明的一个实施方式中,响应于所述访问请求是针对故障的所述存储设备的读取请求,标记所述访问请求。以此方式,可以区分接收到的访问请求是否是需要特殊处理(即,需要旁路访问历史)的访问请求。
在本发明的一个实施方式中,响应于所述访问请求是未被标记的读取请求,基于针对所述存储系统的历史访问请求的访问历史处理所述访问请求。在此实施方式中,如果访问请求并未被标记,则表示该访问请求并不是针对故障的存储设备的读取请求,而是针对正常的存储设备的读取请求。此时,可以基于访问历史来处理这种类型的访问请求。
在本发明的一个实施方式中,基于针对所述存储系统的历史访问请求的访问历史处理所述访问请求包括:响应于所述访问历史指示与所述访问请求相关联的数据被访问的频率不满足预定条件,更新所述访问历史,以及从所述存储系统中的存储设备检索与所述访问请求相关联的数据。具体地,假设接收到的读取请求并未被标记,并且从访问历史中得知与该读取请求相关联的目标数据在预定时间段内的访问次数是1,则此时更新后的访问历史为1+1=2。继而,需要从访问请求所指定的存储设备检索数据,并使用检索到的数据响应于访问请求。
在本发明的一个实施方式中,基于针对所述存储系统的历史访问请求的访问历史处理所述访问请求包括:响应于所述访问历史指示与所述访问请求相关联的数据被访问的频率满足预定条件,将所述数据加载至所述缓存设备。继续上文的示例,假设经过一段时间后再次接收到针对相同数据的读取请求,则此时更新后的访问历史为2+1=3。在加载条件为“访问次数=3”的情况下,可以从相应的存储设备中向缓存设备中加载目标数据。
在本发明的一个实施方式中,通过使用所述缓存设备中的数据服务于所述访问请求,来减少所述存储系统中的内部数据访问包括:响应于所述访问请求为写入请求,将与所述访问请求相关联的目标数据写入所述缓存设备中的目标页面;以及延迟将所述目标页面中的数据冲刷至所述存储设备。
在上文中已经详细介绍了访问请求是读取请求的具体细节,当访问请求是写入请求时,则可以将待写入的数据直接写入缓存设备中。按照常规的技术方案,数据并不会长时间地保存在缓存设备中,而是在经过指定时间段或者响应于缓存设备中的存储空间不足,缓存设备中的数据将被冲刷至存储设备中。不同于常规的技术方案,在本发明的实施方式中,需要尽可能多地使用缓存设备来服务于针对故障存储设备的访问请求,以便减少存储系统内部的数据通信,尽量减少对于存储系统的重建过程的干扰。因而在本发明的实施方式中,可以延迟将所述目标页面中的数据冲刷至所述存储设备。
图5示意性示出了根据本发明一个实施方式的用于管理存储系统的方法的流程图500。如图5所示,在步骤510中,接收针对存储系统中的存储设备的访问请求。在步骤520中,可以确定接收到的访问请求是否涉及故障的存储设备。如果访问请求是针对正常存储设备的访问请求,则可以按照常规的处理方式进行处理。如果确定访问请求涉及故障的存储设备,则操作前进至步骤530,并进一步判断该访问请求是否命中缓存设备。如果命中,则操作流程前进至步骤560,并且在此步骤中可以由缓存设备中的命中的数据来服务于访问请求;否则操作流程前进至步骤540。
在步骤540中,可以判断访问请求的类型,如果访问请求为读取请求,则操作前进至步骤550。在步骤550中,可以旁路访问历史而直接从存储设备中向缓存设备中加载与访问请求相关联的目标数据;继而在步骤560处由缓存设备服务于访问请求。如果在步骤540中发现该访问请求是写入请求,则操作流程前进至步骤570。在步骤570中,可以直接向缓存设备中写入与该写入请求相关联的目标数据。继而,在步骤560处由缓存设备服务于访问请求。
在本发明的一个实施方式中,延迟可以包括多方面的含义。例如,可以在等待队列中保存与访问故障的存储设备的访问请求相关联的目标页面。在周期性地触发冲刷操作的情况下,可以在较长的时间间隔触发对于该等待队列中的数据的冲刷操作。又例如,在由于缓存设备中的可用存储空间不足而触发冲刷操作的情况下,可以首先处理保存与访问正常存储设备的访问请求相关联的目标页面的常规队列,可以将常规队列中的更多数据冲刷至存储设备以释放缓存设备中的空间。以此方式,可以在缓存设备中为故障的存储设备分配更多的存储空间。
在本发明的一个实施方式中,延迟将所述目标页面中的数据冲刷至所述存储设备包括:将所述目标页面添加至等待队列,所述等待队列包括与故障的所述存储设备相关联的数据页面;为所述等待队列确定优先级;在至少一个轮次中,基于所述优先级将所述等待队列中的数据页面中的数据冲刷至所述其他存储设备。
具体地,图6示意性示出了根据本发明一个实施方式的用于管理存储系统中的缓存设备的方案的框图600。可以在如图6所示的等待队列610中插入与访问故障的存储设备的访问请求相关联的目标页面。此时,队列610包括与所述存储系统中的存储设备(例如,故障的存储设备)相关联的至少一个数据页面612、…、614。在此,可以为队列610确定优先级620,以用于表示该队列中的页面在各个轮次的冲刷操作期间是否应当被冲刷至相应的存储设备。尽管在图6中仅示出了一个队列610,还可以存在多个队列。例如,在独立磁盘冗余阵列的存储设备中,可以为每个存储设备(包括故障存储设备和正常存储设备)分别设置队列。或者,还可以为每个LUN设置一个队列。
基于图6所示的结构,可以在每个轮次的操作中,可以通过判断优先级是否达到预定条件,来确定是否针对队列中的一个或者多个页面执行冲刷操作。还可以修改队列的优先级的数值,并且在下一轮次中基于修改后的优先级来确定是否执行冲刷。
在本发明的一个实施方式中,基于所述优先级将所述等待队列中的数据页面中的数据冲刷至所述其他存储设备包括:响应于所述优先级不满足预定条件,按照更新规则更新所述优先级,所述更新规则使得更新后的所述优先级比所述优先级更接近所述预定条件;以及响应于所述优先级满足所述预定条件,将所述等待队列中的数据页面中的数据冲刷至所述其他存储设备。
在下文中将参见图7详细描述本发明的方法的具体步骤。图7示意性示出了根据本发明一个实施方式的用于管理存储系统中的缓存设备的方法的流程图700。具体地,在此实施方式中,可以采用如图6所示的结构来存储队列和优先级。例如,可以将根据本发明的优先级字段与现有技术方案中的队列相关联地存储,以便为队列设置优先级。在此步骤中,可以采用多种格式来存储优先级。例如,可以以整数、实数或者其他格式来表示优先级。
应当注意,在此步骤中队列中的至少一个数据页面可以涉及多种情况。例如,该数据页面可以是响应于接收到针对存储设备的读取请求而从该存储设备中加载到缓存设备中的页面;又例如,该数据页面还可以是响应于接收到针对存储设备的写入请求而暂时写入该缓存设备、并且最终将被冲刷至存储设备的页面。
在步骤710处,在至少一个轮次中,响应于所述优先级不满足预定条件,按照更新规则更新所述优先级,所述更新规则使得更新后的所述优先级比所述优先级更接近所述预定条件。可以自定义预定条件的具体内容,例如,当以整数或者实数来表示优先级时,可以将预定条件设置为“优先级=0”或者“优先级≤0”等类似的条件。可以自定义更新规则的具体内容,例如,如果以整数或者实数来表示优先级时,可以将更新规则设置为:将当前优先级减去/加上一个步长后的数值来作为更新后的优先级。应当注意,这里的更新规则应当使得更新后的所述优先级比当前优先级更接近所述预定条件。在步骤720中,响应于所述优先级满足所述预定条件,将所述等待队列中的数据页面中的数据冲刷至所述其他存储设备。
为方便描述起见,在下文中将以整数为优先级的具体示例。例如,可以为队列赋予“2”的优先级,预定条件可以是“优先级=0”,并且更新规则可以是“更新后的优先级=当前优先级-1”。此时在第一轮次中,优先级3并不符合预定条件,因而应当将优先级更新为3-1=2。此时队列中的页面并不会被冲刷至存储设备。在第二轮次中,优先级2也不符合预定条件,因而应当将优先级更新为2-1=1。此时队列中的页面不会被冲刷至存储设备。在第三轮次中,优先级被更新为1-1=0,此时符合预定条件“优先级=0”,因而可以将队列中的页面(例如,一个或者多个)冲刷至存储设备。
在本发明的一个实施方式中,为所述等待队列确定优先级包括:基于以下中的至少任一项来设置所述优先级:与故障的所述存储设备相关联的响应时间、故障的所述存储设备对于所述缓存设备的使用率、以及针对故障的所述存储设备的访问请求的访问频率。
在此实施方式中,存储设备的优先级可能会受到多方面的因素的影响。例如,如果该存储设备的响应时间较长,则意味着该存储设备的访问速度较低,此时应当在访问速度较高的缓存设备中尽量长时间地保存与该存储设备相关联的页面(例如,与写入请求相关联的将被写入该存储设备的数据,或者与读取请求相关联的被存储在该存储设备中的数据)。
又例如,如果与存储设备相关的数据已经占用了缓存设备中的大部分存储空间(即,使用率较高),则意味着缓存设备中仅有较少的存储空间可以服务于其他存储设备,因而此时可以适当地降低与该存储设备相关联的使用率(例如,将队列中的一个或者多个页面中的数据冲刷至存储设备。
又例如,如果接收到的针对存储设备的访问请求的频率(例如,以每秒输入/输出次数(Input/Output Per Second,IOPS)来表示)较高,则意味着该存储设备中的数据的更有可能被访问,因而应该在缓存设备中为该存储设备分配更多空间。
在本发明的一个实施方式中,设置所述优先级包括以下中的至少任一项:响应于所述响应时间的增加量大于或者等于第一预定阈值,增加所述优先级;响应于所述使用率的增加量大于或者等于第二预定阈值,降低所述优先级;以及响应于所述访问频率的增加量大于或者等于第三预定阈值,增加所述优先级。具体地,可以以如下公式1来计算优先级的数值:
其中S表示第一优先级的数值,r表示所述第一存储设备相关联的响应时间(例如,以毫秒表示)、u表示所述第一存储设备对于所述缓存设备的使用率(例如,以百分比表示)、以及f表示第一存储设备的访问请求的访问频率(例如,以IOPS表示),并且α、β和γ分别表示自定义的权重。
在本发明的一个实施方式中,还可以基于其他公式计算优先级的数值。例如,可以基于公式2(公式2中的参数的定义与公式1中的定义相同)来确定。或者,本领域技术人员还可以自定义其他的公式来确定队列的优先级。
S=α·r+γ·f-β·u 公式2
在此实施方式中,可以将计算所得的优先级规格化到预定的范围,例如,可以将计算所得的数值映射至[0-10]的范围中。还可以基于优先级的范围来定义更新规则。例如,可以基于优先级的数值范围来确定更新规则中的步长的大小。对于[0-10]的范围,可以将更新规则中的降低步长设置为1。此时,如果一个队列的优先级为10,那么该队列将在第10个轮次中经历冲刷操作。如果降低步长为2则该队列将在第5个轮次中经历冲刷操作。
在本发明的一个实施方式中,基于所述优先级将所述等待队列中的数据页面中的数据冲刷至所述其他存储设备包括:按照最近最少使用(Least Recently Used,LRU)标准,从所述等待队列中选择目标页面;以及将所述目标页面中的数据冲刷至所述故障存储设备。
在此实施方式中,可以基于LRU标准来选择将被冲刷的目标页面。备选地,还可以按照LRU标准来将队列进行排序。图8示意性示出了根据本发明一个实施方式的用于管理存储系统中的缓存设备的队列的框图800。如图8所示,队列810包括页面812、…、814,并且这些页面可以按照从“热”到“冷”的顺序来排序。以此方式,当基于优先级确定需要对队列中的数据执行冲刷时,可以从队列810的末端选择最冷的页面814来作为目标页面。
在上文中已经参见图6至图8描述了针对与故障存储设备相关联的队列执行的操作的具体步骤。应当注意,在本发明的实施方式中,在缓存设备中还可以包括多个队列,并且该多个队列中的每个队列中可以包括与相应的存储设备(包括故障的存储设备和正常的存储设备)相关的页面。每个队列可以具有相应的优先级,并且可以针对每个队列执行上文参见图6至图8描述的方法。
在本发明的一个实施方式中,为所述缓存设备中的第二等待队列确定第二优先级,所述第二等待队列包括与故障的所述存储设备以外的第二存储设备相关联的数据页面;以及在至少一个轮次中,基于所述第二优先级将所述第二等待队列中的数据页面中的数据冲刷至所述第二存储设备。
在此实施方式中,第二队列是不同于等待队列的队列,并且针对第二队列的优先级、预定条件以及更新规则与针对等待队列的相同或者不同。另外,可以存在多个第二队列,例如在RAID存储系统中,针对故障存储设备以外的每个正常存储设备可以设置第二队列。假设存储系统中两个正常存储设备具有完全相同的配置和运行状态,则此时针对两个正常存储设备的优先级、预定条件以及更新规则可以是相同的。又例如,如果两个正常存储设备的配置和运行状态有所区别,则可以为两个正常存储设备设置不同的优先级、预定条件以及更新规则。
在下文中将参见图9A至图9C描述此实施方式的细节。具体地,图9A、9B和9C分别示意性示出了根据本发明一个实施方式的用于管理存储系统中的缓存设备的不同轮次的框图900A、900B和900C。在此实施方式中,第一队列是用于故障存储设备的等待队列,其初始优先级为3,第二队列是用于正常存储设备的等待队列,其初始优先级为1。假设针对两个队列的预定条件相同,均为“优先级=0”,并且针对两个队列的更新规则均为:更新后的优先级=当前优先级-1。
如图9A所示,第一队列包括页面912、…、914、916、918,第二队列包括页面922、…、924、926、928。此时按照上文所述的方法。在第一个伦次中,第一队列的优先级被更新为3-1=2,并且第二队列的优先级被更新为1-1=0(满足预定条件),此时第二队列末尾的页面928将被冲刷至关联于第二队列的第二存储设备。
如图9B示出了第二轮次的细节,此时由于第二队列的优先级已经满足预定条件因而将被重新赋值为1。在第二轮次中,第一队列的优先级被更新为2-1=1,并且第二队列的优先级被更新为1-1=0(满足预定条件),此时第二队列末尾的页面926将被冲刷至关联于第二队列的第二存储设备。
如图9C示出了第三轮次的细节,此时第二队列的优先级将被重新赋值为1。在第三轮次中,第一队列的优先级被更新为1-1=0(满足预定条件),此时第一队列末尾的页面918将被冲刷至关联于第一队列的第一存储设备。第二队列的优先级被更新为1-1=0(满足预定条件),此时第二队列末尾的页面924将被冲刷至关联于第二队列的第二存储设备。
在本发明的一个实施方式中,所述故障存储设备具有第一等级,所述第二存储设备具有第二等级,以及所述第一等级高于所述第二等级。在此实施方式中,多个存储设备可以具有不同的优先级。例如对于图9A至图9C所示的示例而言,由于第一存储设备的等级高于第二存储设备,因而为第一队列设置更高的初始优先级3,并为第二队列设置较低的初始优先级1。
在图9A至图9C所示的实施方式中,第一队列和第二队列的优先级不同,因而两个队列中的数据被冲刷至存储设备的频率也不相同。第一队列在三个轮次中仅涉及一次冲刷操作,而第二队列在三个轮次中涉及三次冲刷操作。在此实施方式中,由于第一队列的初始优先级更高,第一队列比第二队列更优先地使用缓存设备中的存储资源。以此方式,可以按照不同的优先级来为不同的存储设备设置相应的页面调度策略。
在本发明的一个实施方式中,为所述缓存设备中包括的第二队列确定第二优先级包括:设置所述第二优先级,使得按照所述第二更新规则将所述第二优先级更新至满足所述第二预定条件的速度快于按照所述更新规则将所述优先级更新至满足所述预定条件的速度。
可以采用多种方式来设置第二优先级的数值,例如,在更新规则和第二更新规则相同并且预定条件和第二预定条件相同的情况下,可以将第二优先级的数值设置为小于优先级。例如图9A所示的,将优先级设置为3,将第二优先级设置为1。以此方式,第二优先级将在第一个轮次中满足第二预定条件。
又例如,还可以将第二优先级设置为与优先级相同的数值“3”,但将第二更新规则设置为具有较大的降低步长,例如“3”。以此方式,第二优先级将在第一个轮次中满足第二预定条件。
又例如,还可以将第二优先级与第二优先级均设置为“3”,并将第二更新规则与第二更新规则均设置为“减一”,但将第二预定条件设置为“优先级=2”。以此方式,第二优先级将在第一个轮次中满足第二预定条件。应当注意,在上文中仅仅示意性示出了如何设置优先级、预定条件和更新规则的具体示例。根据具体应用环境的要求,还可以采用其他方法来实现在此描述的技术方案的功能。
在上文中详细描述了涉及两个队列的示例,在其他实施方式中,缓存设备中还可以包括更多的队列。图10示意性示出了根据本发明一个实施方式的用于管理存储系统中的缓存设备的框图1000。如图10所示,假设第一、第二、第三队列分别关联于第一、第二和第三存储设备。其中第一存储设备是故障存储设备,而第二和第三存储设备是正常存储设备,此时三个队列的等级关系为:第一等级>第二等级=第三等级。此时可以为第一队列赋予较高的优先级3,并且为第二、第三队列赋予较低的优先级1。
按照上文所示的方法,假设在每个轮次中按照从图10底部向上的顺序处理三个队列,则在第一轮次中,第三、第二队列的优先级均为1,因而应当首先冲刷第三队列末端的页面1020(在图10中以圆圈内的数字1表示),继而冲刷第二队列末端的页面928。由于此时第一队列的优先级为3-1=2,因而第一队列中的页面将不会被冲刷。在第二轮次中,第三队列中的页面1018、第二队列中的页面926将被冲刷。在第三轮次中,第三队列中的页面1016、第二队列中的页面924、以及第一队列中的页面918将被冲刷。在此实施方式中,页面按照图10中的圆圈内的顺序被冲刷:页面1020、页面928、页面1018、页面926、页面1016、页面924、以及页面918。
图10中的第一队列可以是相关于故障存储设备的队列,而第二、第三队列可以是相关于正常存储设备的队列。如图10所示,在冲刷期间,第二、第三队列中的页面在每个轮次中都将被冲刷至相应的正常存储设备,而第一队列中的页面仅在第三个轮次中才被冲刷。可见,采用本发明的技术方案,可以在缓存设备中为故障的存储设备保留更多的空间。
在本发明的一个实施方式中,其中所述方法响应于以下中的任一项而执行:所述缓存设备中的可用空间不足、以及外部调用。可以在存储系统运行的不同阶段执行本发明所述的方法。例如,可以在缓存设备中存在可用空间不足的情况下执行,可以周期性地执行,或者还可以响应于调用而执行。
图11示意性示出了根据本发明的一个实施方式的用于管理存储系统的装置的框图。如图11所示,提供了一种用于管理存储系统的设备1100,包括:接收模块1110,配置用于接收针对所述存储系统的访问请求;确定模块1120,配置用于确定所述多个存储设备中的存储设备出现故障;使用模块1130,配置用于响应于所述访问请求是针对故障的所述存储设备的访问请求,通过使用所述缓存设备中的数据服务于所述访问请求,来减少所述存储系统中的内部数据访问。
在本发明的一个实施方式中,所述使用模块1130进一步配置用于:响应于所述访问请求未命中所述缓存设备,响应于所述访问请求为读取请求,旁路针对所述存储系统的历史访问请求的访问历史;将从所述存储系统中的故障的所述存储设备以外的其他存储设备中恢复的与所述访问请求相关联的目标数据加载至所述缓存设备中的目标页面;以及从所述缓存设备返回所述目标页面中的数据以响应于所述访问请求。
在本发明的一个实施方式中,所述设备进一步包括标记模块,配置用于响应于所述访问请求是针对故障的所述存储设备的读取请求,标记所述访问请求。
在本发明的一个实施方式中,所述设备进一步包括:处理模块,配置用于响应于所述访问请求是未被标记的读取请求,基于针对所述存储系统的历史访问请求的访问历史处理所述访问请求。
在本发明的一个实施方式中,所述处理模块进一步配置用于响应于所述访问历史指示与所述访问请求相关联的数据被访问的频率满足预定条件,将所述数据加载至所述缓存设备;以及响应于所述访问历史指示与所述访问请求相关联的数据被访问的频率不满足预定条件,更新所述访问历史,以及从所述存储系统中的存储设备检索与所述访问请求相关联的数据。
在本发明的一个实施方式中,所述使用模块1030进一步配置用于:响应于所述访问请求为写入请求,将与所述访问请求相关联的目标数据写入所述缓存设备中的目标页面;以及延迟将所述目标页面中的数据冲刷至所述存储设备。
在本发明的一个实施方式中,所述使用模块1030进一步配置用于:将所述目标页面添加至等待队列,所述等待队列包括与故障的所述存储设备相关联的数据页面;为所述等待队列确定优先级;在至少一个轮次中,基于所述优先级将所述等待队列中的数据页面中的数据冲刷至所述其他存储设备。
在本发明的一个实施方式中,所述使用模块1030进一步配置用于:响应于所述优先级不满足预定条件,按照更新规则更新所述优先级,所述更新规则使得更新后的所述优先级比所述优先级更接近所述预定条件;以及响应于所述优先级满足所述预定条件,将所述等待队列中的数据页面中的数据冲刷至所述其他存储设备。
在本发明的一个实施方式中,所述使用模块1030进一步配置用于:基于以下中的至少任一项来设置所述优先级:与故障的所述存储设备相关联的响应时间、故障的所述存储设备对于所述缓存设备的使用率、以及针对故障的所述存储设备的访问请求的访问频率。
在本发明的一个实施方式中,所述使用模块1030进一步配置用于:为所述缓存设备中的第二等待队列确定第二优先级,所述第二等待队列包括与故障的所述存储设备以外的第二存储设备相关联的数据页面;以及在至少一个轮次中,基于所述第二优先级将所述第二等待队列中的数据页面中的数据冲刷至所述第二存储设备。
在本发明的一个实施方式中,提供了一种用于管理存储系统的设备,包括:一个或者多个处理器;耦合至所述一个或者多个处理器中的至少一个处理器的存储器;在所述存储器中存储的计算机程序指令,当由所述至少一个处理器执行所述计算机程序指令时,使得所述设备执行一种用于管理存储系统的方法,所述方法包括:接收针对所述存储系统的访问请求;确定所述多个存储设备中的存储设备出现故障;响应于所述访问请求是针对故障的所述存储设备的访问请求,通过使用所述缓存设备中的数据服务于所述访问请求,来减少所述存储系统中的内部数据访问。
在本发明的一个实施方式中,通过使用所述缓存设备中的数据服务于所述访问请求,来减少所述存储系统中的内部数据访问包括:响应于所述访问请求未命中所述缓存设备,响应于所述访问请求为读取请求,旁路针对所述存储系统的历史访问请求的访问历史;将从所述存储系统中的故障的所述存储设备以外的其他存储设备中恢复的与所述访问请求相关联的目标数据加载至所述缓存设备中的目标页面;以及从所述缓存设备返回所述目标页面中的数据以响应于所述访问请求。
在本发明的一个实施方式中,响应于所述访问请求是针对故障的所述存储设备的读取请求,标记所述访问请求。
在本发明的一个实施方式中,响应于所述访问请求是未被标记的读取请求,基于针对所述存储系统的历史访问请求的访问历史处理所述访问请求。
在本发明的一个实施方式中,其中基于针对所述存储系统的历史访问请求的访问历史处理所述访问请求包括以下中的至少任一项:响应于所述访问历史指示与所述访问请求相关联的数据被访问的频率满足预定条件,将所述数据加载至所述缓存设备;以及响应于所述访问历史指示与所述访问请求相关联的数据被访问的频率不满足预定条件,更新所述访问历史,以及从所述存储系统中的存储设备检索与所述访问请求相关联的数据。
在本发明的一个实施方式中,通过使用所述缓存设备中的数据服务于所述访问请求,来减少所述存储系统中的内部数据访问包括:响应于所述访问请求为写入请求,将与所述访问请求相关联的目标数据写入所述缓存设备中的目标页面;以及延迟将所述目标页面中的数据冲刷至所述存储设备。
在本发明的一个实施方式中,延迟将所述目标页面中的数据冲刷至所述存储设备包括:将所述目标页面添加至等待队列,所述等待队列包括与故障的所述存储设备相关联的数据页面;为所述等待队列确定优先级;在至少一个轮次中,基于所述优先级将所述等待队列中的数据页面中的数据冲刷至所述其他存储设备。
在本发明的一个实施方式中,基于所述优先级将所述等待队列中的数据页面中的数据冲刷至所述其他存储设备包括:响应于所述优先级不满足预定条件,按照更新规则更新所述优先级,所述更新规则使得更新后的所述优先级比所述优先级更接近所述预定条件;以及响应于所述优先级满足所述预定条件,将所述等待队列中的数据页面中的数据冲刷至所述其他存储设备。
在本发明的一个实施方式中,为所述等待队列确定优先级包括:基于以下中的至少任一项来设置所述优先级:与故障的所述存储设备相关联的响应时间、故障的所述存储设备对于所述缓存设备的使用率、以及针对故障的所述存储设备的访问请求的访问频率。
在本发明的一个实施方式中,为所述缓存设备中的第二等待队列确定第二优先级,所述第二等待队列包括与故障的所述存储设备以外的第二存储设备相关联的数据页面;以及在至少一个轮次中,基于所述第二优先级将所述第二等待队列中的数据页面中的数据冲刷至所述第二存储设备。
附图中的流程图和框图显示了根据本发明的多个实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施方式,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施方式。在不偏离所说明的各实施方式的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施方式的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实施方式。
Claims (18)
1.一种用于管理存储系统的方法,所述存储系统包括缓存设备和多个存储设备,所述方法包括:
接收针对所述存储系统的访问请求;
确定所述多个存储设备中的存储设备出现故障;
响应于所述访问请求是针对故障的所述存储设备的访问请求,
通过使用所述缓存设备中的数据服务于所述访问请求,来减少所述存储系统中的内部数据访问,
其中通过使用所述缓存设备中的数据服务于所述访问请求,来减少所述存储系统中的内部数据访问包括:响应于所述访问请求未命中所述缓存设备,
响应于所述访问请求为读取请求,旁路针对所述存储系统的历史访问请求的访问历史;
将从所述存储系统中的故障的所述存储设备以外的至少一个其他存储设备中恢复的与所述访问请求相关联的目标数据加载至所述缓存设备中的目标页面;以及
从所述缓存设备返回所述目标页面中的数据以响应于所述访问请求。
2.根据权利要求1所述的方法,进一步包括:
响应于所述访问请求是针对故障的所述存储设备的读取请求,标记所述访问请求。
3.根据权利要求2所述的方法,进一步包括:
响应于所述访问请求是未被标记的读取请求,基于针对所述存储系统的历史访问请求的访问历史处理所述访问请求。
4.根据权利要求2所述的方法,其中基于针对所述存储系统的历史访问请求的访问历史处理所述访问请求包括以下中的至少任一项:
响应于所述访问历史指示与所述访问请求相关联的数据被访问的频率满足预定条件,将所述数据加载至所述缓存设备;以及
响应于所述访问历史指示与所述访问请求相关联的数据被访问的频率不满足预定条件,更新所述访问历史,以及从所述存储系统中的存储设备检索与所述访问请求相关联的数据。
5.根据权利要求1所述的方法,其中通过使用所述缓存设备中的数据服务于所述访问请求,来减少所述存储系统中的内部数据访问包括:响应于所述访问请求为写入请求,
将与所述访问请求相关联的目标数据写入所述缓存设备中的目标页面;以及
延迟将所述目标页面中的数据冲刷至所述存储设备。
6.根据权利要求5所述的方法,其中延迟将所述目标页面中的数据冲刷至所述存储设备包括:
将所述目标页面添加至等待队列,所述等待队列包括与故障的所述存储设备相关联的数据页面;
为所述等待队列确定优先级;
在至少一个轮次中,基于所述优先级将所述等待队列中的数据页面中的数据冲刷至所述其他存储设备。
7.根据权利要求6所述的方法,其中基于所述优先级将所述等待队列中的数据页面中的数据冲刷至所述其他存储设备包括:
响应于所述优先级不满足预定条件,按照更新规则更新所述优先级,所述更新规则使得更新后的所述优先级比所述优先级更接近所述预定条件;以及
响应于所述优先级满足所述预定条件,将所述等待队列中的数据页面中的数据冲刷至所述其他存储设备。
8.根据权利要求6所述的方法,其中为所述等待队列确定优先级包括:
基于以下中的至少任一项来设置所述优先级:与故障的所述存储设备相关联的响应时间、故障的所述存储设备对于所述缓存设备的使用率、以及针对故障的所述存储设备的访问请求的访问频率。
9.根据权利要求6所述的方法,进一步包括:
为所述缓存设备中的第二等待队列确定第二优先级,所述第二等待队列包括与故障的所述存储设备以外的第二存储设备相关联的数据页面;以及
在至少一个轮次中,基于所述第二优先级将所述第二等待队列中的数据页面中的数据冲刷至所述第二存储设备。
10.一种用于管理存储系统的设备,包括:
一个或者多个处理器;
耦合至所述一个或者多个处理器中的至少一个处理器的存储器;
在所述存储器中存储的计算机程序指令,当由所述至少一个处理器执行所述计算机程序指令时,使得所述设备执行一种用于管理存储系统的方法,所述方法包括:
接收针对所述存储系统的访问请求;
确定所述多个存储设备中的存储设备出现故障;
响应于所述访问请求是针对故障的所述存储设备的访问请求,
通过使用缓存设备中的数据服务于所述访问请求,来减少所述存储系统中的内部数据访问,
其中通过使用所述缓存设备中的数据服务于所述访问请求,来减少所述存储系统中的内部数据访问包括:响应于所述访问请求未命中所述缓存设备,
响应于所述访问请求为读取请求,旁路针对所述存储系统的历史访问请求的访问历史;
将从所述存储系统中的故障的所述存储设备以外的至少一个其他存储设备中恢复的与所述访问请求相关联的目标数据加载至所述缓存设备中的目标页面;以及
从所述缓存设备返回所述目标页面中的数据以响应于所述访问请求。
11.根据权利要求9所述的设备,所述方法进一步包括:
响应于所述访问请求是针对故障的所述存储设备的读取请求,标记所述访问请求。
12.根据权利要求11所述的设备,所述方法进一步包括:
响应于所述访问请求是未被标记的读取请求,基于针对所述存储系统的历史访问请求的访问历史处理所述访问请求。
13.根据权利要求11所述的设备,其中基于针对所述存储系统的历史访问请求的访问历史处理所述访问请求包括以下中的至少任一项:
响应于所述访问历史指示与所述访问请求相关联的数据被访问的频率满足预定条件,将所述数据加载至所述缓存设备;以及
响应于所述访问历史指示与所述访问请求相关联的数据被访问的频率不满足预定条件,更新所述访问历史,以及从所述存储系统中的存储设备检索与所述访问请求相关联的数据。
14.根据权利要求9所述的设备,其中通过使用所述缓存设备中的数据服务于所述访问请求,来减少所述存储系统中的内部数据访问包括:响应于所述访问请求为写入请求,
将与所述访问请求相关联的目标数据写入所述缓存设备中的目标页面;以及
延迟将所述目标页面中的数据冲刷至所述存储设备。
15.根据权利要求14所述的设备,其中延迟将所述目标页面中的数据冲刷至所述存储设备包括:
将所述目标页面添加至等待队列,所述等待队列包括与故障的所述存储设备相关联的数据页面;
为所述等待队列确定优先级;
在至少一个轮次中,基于所述优先级将所述等待队列中的数据页面中的数据冲刷至所述其他存储设备。
16.根据权利要求15所述的设备,其中基于所述优先级将所述等待队列中的数据页面中的数据冲刷至所述其他存储设备包括:
响应于所述优先级不满足预定条件,按照更新规则更新所述优先级,所述更新规则使得更新后的所述优先级比所述优先级更接近所述预定条件;以及
响应于所述优先级满足所述预定条件,将所述等待队列中的数据页面中的数据冲刷至所述其他存储设备。
17.根据权利要求15所述的设备,其中为所述等待队列确定优先级包括:
基于以下中的至少任一项来设置所述优先级:与故障的所述存储设备相关联的响应时间、故障的所述存储设备对于所述缓存设备的使用率、以及针对故障的所述存储设备的访问请求的访问频率。
18.根据权利要求15所述的设备,所述方法进一步包括:
为所述缓存设备中的第二等待队列确定第二优先级,所述第二等待队列包括与故障的所述存储设备以外的第二存储设备相关联的数据页面;以及
在至少一个轮次中,基于所述第二优先级将所述第二等待队列中的数据页面中的数据冲刷至所述第二存储设备。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611193846.7A CN108228084B (zh) | 2016-12-21 | 2016-12-21 | 用于管理存储系统的方法和设备 |
US15/846,319 US10592365B2 (en) | 2016-12-21 | 2017-12-19 | Method and apparatus for managing storage system |
US16/778,030 US11144414B2 (en) | 2016-12-21 | 2020-01-31 | Method and apparatus for managing storage system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611193846.7A CN108228084B (zh) | 2016-12-21 | 2016-12-21 | 用于管理存储系统的方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108228084A CN108228084A (zh) | 2018-06-29 |
CN108228084B true CN108228084B (zh) | 2020-10-13 |
Family
ID=62655914
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611193846.7A Active CN108228084B (zh) | 2016-12-21 | 2016-12-21 | 用于管理存储系统的方法和设备 |
Country Status (2)
Country | Link |
---|---|
US (2) | US10592365B2 (zh) |
CN (1) | CN108228084B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111104054B (zh) * | 2018-10-29 | 2023-10-27 | 伊姆西Ip控股有限责任公司 | 管理输入/输出操作的方法、装置和计算机程序产品 |
CN112764890A (zh) * | 2019-10-21 | 2021-05-07 | 伊姆西Ip控股有限责任公司 | 调度备份任务的方法、设备和计算机程序产品 |
CN111177032A (zh) * | 2019-12-29 | 2020-05-19 | 浪潮电子信息产业股份有限公司 | 缓存空间申请方法、系统、装置及计算机可读存储介质 |
US11163657B2 (en) * | 2020-02-13 | 2021-11-02 | EMC IP Holding Company LLC | Method and apparatus for avoiding redundant data recovery |
US11733900B2 (en) * | 2020-06-15 | 2023-08-22 | Samsung Electronics Co., Ltd. | Prompt and gradual migration schemes |
CN114518833B (zh) * | 2020-10-30 | 2024-05-03 | 伊姆西Ip控股有限责任公司 | 用于存储管理的方法、电子设备和计算机程序产品 |
CN112181733A (zh) * | 2020-10-30 | 2021-01-05 | 北京字跳网络技术有限公司 | 一种服务请求的处理方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101046760A (zh) * | 2006-03-29 | 2007-10-03 | 日本电气株式会社 | 存储装置、数据设置方法以及程序 |
CN103064753A (zh) * | 2012-10-25 | 2013-04-24 | 浪潮电子信息产业股份有限公司 | 磁盘阵列三级恢复系统设计方法 |
CN103534688A (zh) * | 2013-05-29 | 2014-01-22 | 华为技术有限公司 | 数据恢复方法、存储设备和存储系统 |
CN104166601A (zh) * | 2014-08-14 | 2014-11-26 | 浙江宇视科技有限公司 | 一种存储数据的备份方法和装置 |
CN104503923A (zh) * | 2014-11-21 | 2015-04-08 | 华中科技大学 | 一种非对称磁盘阵列高速缓存调度方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9104599B2 (en) * | 2007-12-06 | 2015-08-11 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for destaging cached data |
US8812901B2 (en) * | 2011-09-23 | 2014-08-19 | Lsi Corporation | Methods and apparatus for marking writes on a write-protected failed device to avoid reading stale data in a RAID storage system |
US9569569B1 (en) | 2012-06-18 | 2017-02-14 | EMC IP Holding Company LLC | Data storage system modeling |
US9811380B1 (en) | 2015-12-16 | 2017-11-07 | EMC IP Holding Company LLC | Dynamic allocation of CPU resources based on system load trends |
US9940033B1 (en) | 2015-12-30 | 2018-04-10 | EMC IP Holding Company LLC | Method, system and computer readable medium for controlling performance of storage pools |
US10254970B1 (en) | 2016-06-30 | 2019-04-09 | EMC IP Holding Company LLC | System, method and computer readable medium for obtaining consistent read performance for a plurality of flash drives or raid groups using workload and capacity limits |
-
2016
- 2016-12-21 CN CN201611193846.7A patent/CN108228084B/zh active Active
-
2017
- 2017-12-19 US US15/846,319 patent/US10592365B2/en active Active
-
2020
- 2020-01-31 US US16/778,030 patent/US11144414B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101046760A (zh) * | 2006-03-29 | 2007-10-03 | 日本电气株式会社 | 存储装置、数据设置方法以及程序 |
CN103064753A (zh) * | 2012-10-25 | 2013-04-24 | 浪潮电子信息产业股份有限公司 | 磁盘阵列三级恢复系统设计方法 |
CN103534688A (zh) * | 2013-05-29 | 2014-01-22 | 华为技术有限公司 | 数据恢复方法、存储设备和存储系统 |
CN104166601A (zh) * | 2014-08-14 | 2014-11-26 | 浙江宇视科技有限公司 | 一种存储数据的备份方法和装置 |
CN104503923A (zh) * | 2014-11-21 | 2015-04-08 | 华中科技大学 | 一种非对称磁盘阵列高速缓存调度方法 |
Also Published As
Publication number | Publication date |
---|---|
US11144414B2 (en) | 2021-10-12 |
US10592365B2 (en) | 2020-03-17 |
CN108228084A (zh) | 2018-06-29 |
US20180210798A1 (en) | 2018-07-26 |
US20200167252A1 (en) | 2020-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108228084B (zh) | 用于管理存储系统的方法和设备 | |
US10482032B2 (en) | Selective space reclamation of data storage memory employing heat and relocation metrics | |
US10152423B2 (en) | Selective population of secondary cache employing heat metrics | |
US10824526B2 (en) | Using failed storage device in peer-to-peer storage system to perform storage-centric task | |
US8738975B2 (en) | Runtime dynamic performance skew elimination | |
US9164676B2 (en) | Storing multi-stream non-linear access patterns in a flash based file-system | |
US8856476B2 (en) | Systems, methods, and physical computer storage media to optimize data placement in multi-tiered storage systems | |
US10346245B2 (en) | Data storage system and data storage method | |
CN108228482B (zh) | 用于管理存储系统中的缓存设备的方法和系统 | |
US9921913B2 (en) | Flushing host cache data before rebuilding degraded redundant virtual disk | |
US11023321B2 (en) | Raid storage-device-assisted deferred parity data update system | |
CN110737395B (zh) | I/o管理方法、电子设备和计算机可读存储介质 | |
US11354233B2 (en) | Method and system for facilitating fast crash recovery in a storage device | |
US10437471B2 (en) | Method and system for allocating and managing storage in a raid storage system | |
US10320907B2 (en) | Multi-stage prefetching to exploit long-term future data access sequence knowledge | |
CN113973138B (zh) | 用于使用数据访问网关优化对数据集群的数据节点的访问的方法和系统 | |
CN104375961A (zh) | 用于在数据存储子系统中进行数据访问的方法和装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |