CN109725838B - 用于管理多个盘的方法、装置以及计算机可读介质 - Google Patents
用于管理多个盘的方法、装置以及计算机可读介质 Download PDFInfo
- Publication number
- CN109725838B CN109725838B CN201711031273.2A CN201711031273A CN109725838B CN 109725838 B CN109725838 B CN 109725838B CN 201711031273 A CN201711031273 A CN 201711031273A CN 109725838 B CN109725838 B CN 109725838B
- Authority
- CN
- China
- Prior art keywords
- stripe
- disks
- disk
- raid
- sections
- 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
- 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
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3433—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
-
- 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
- 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
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- 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
-
- 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/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
- 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/1658—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
- G06F11/1662—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
-
- 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
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1028—Distributed, i.e. distributed RAID systems with parity
-
- 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/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- 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/7211—Wear leveling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开的实施例提供了用于管理多个盘的方法、装置以及计算机可读介质。该方法包括响应于接收到针对独立盘冗余阵列(RAID)的第一条带的写入请求,查找被映射到第一条带的区段。RAID建立在由多个盘划分而来的多个区段上。该方法还包括响应于未查找到被映射到第一条带的区段,从多个盘的多个区段中选择处于空闲状态的第一组区段。该方法进一步包括将第一条带映射到第一组区段。
Description
技术领域
本公开的实施例涉及数据存储领域,并且更具体地,涉及用于管理多个盘的方法、装置以及计算机可读介质。
背景技术
独立磁盘冗余阵列(RAID)技术是一种数据存储虚拟化技术。根据该虚拟化技术,可以在多个物理存储盘上建立一个或多个RAID,以用于提供数据冗余、性能提升等多种特性。RAID以条带为单位进行数据写入和读取。一些传统RAID在盘级别上均匀写入数据。具体地,在写入数据时,RAID的每个条带的数据被均匀写入用于建立该系统的多个盘,以使得该RAID的总体数据在多个盘上均匀分布。这样的系统可能存在盘管理、数据读写等多个方面的缺陷。
随着RAID技术的发展,已经提出了一种新的RAID技术。该RAID在盘的区段级别上而不是在盘的级别上执行数据读取和写入。根据这样技术,多个盘被划分为多个区段。基于这些盘建立的RAID的每个条带被分配一定数目的区段,并且RAID的全部条带所包括的区段在多个盘上基本上均匀分布。这样的RAID也可以被称为映射RAID或分布式RAID。通过以盘的区段为单位来创建RAID,实现了更灵活的盘管理、提高了系统的运行性能。
然而,尽管RAID技术不断发展,在RAID中仍然需要更优化的盘管理方案。
发明内容
本公开的实施例提供了一种改进的管理多个盘的方案。
在本公开的第一方面中,提供了一种管理多个盘的方法。该方法包括响应于接收到针对独立盘冗余阵列(RAID)的第一条带的写入请求,查找被映射到第一条带的区段。RAID建立在由多个盘划分而来的多个区段上。该方法还包括响应于未查找到被映射到第一条带的区段,从多个盘的多个区段中选择处于空闲状态的第一组区段。该方法进一步包括将第一条带映射到第一组区段。
在本公开的第二方面中,提供了一种用于管理多个盘的装置。该装置包括处理器以及与处理器耦合的存储器,存储器具有存储于其中的指令,指令在被处理器执行时使装置执行动作。动作包括响应于接收到针对独立盘冗余阵列(RAID)的第一条带的写入请求,查找被映射到第一条带的区段。RAID建立在由多个盘划分而来的多个区段上。动作还包括响应于未查找到被映射到第一条带的区段,从多个盘的多个区段中选择处于空闲状态的第一组区段。动作进一步包括将第一条带映射到第一组区段。
在本公开的第三方面中,提供了一种计算机可读介质,其上存储有计算机可读指令,计算机可读指令在被执行时使设备执行根据第一方面的方法。
在本公开的第四方面中,提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,机器可执行指令在被执行时使机器执行根据第一方面的方法。
提供发明内容部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或主要特征,也无意限制本公开的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。
图1示出了本公开的实施例可以在其中被实现的存储系统的示意图;
图2示出了根据本公开的一个实施例的盘的区段的状态转换图;
图3示出了根据本公开的一个实施例的管理多个盘的过程的流程图;
图4示出了根据本公开的一个实施例的区段分配的示意图;
图5示出了根据本公开的另一个实施例的管理多个盘的过程的流程图;
图6A和图6B示出了根据本公开的实施例的区段分配的示意图;以及
图7示出了可以用来实施本公开的实施例的示例设备的框图。
具体实施方式
下面将参考附图中示出的若干示例实施例来描述本公开的原理。虽然附图中显示了本公开的优选实施例,但应当理解,描述这些实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
图1示出了本公开的实施例可以在其中被实现的存储系统100的示意图。该系统100包括独立磁盘冗余阵列(RAID)虚拟化层110和物理存储层120。物理存储层120包括多个(例如,N+1个)物理盘122-1、122-2、……、122-3、122-4,用于提供物理存储空间。这些盘可以被统称为或单独称为盘122。盘122可以是各种持久性盘,其示例可以包括但不限于数字通用盘(DVD)、蓝光盘(BD)、光盘(CD)、软盘、硬盘、磁带驱动、光学驱动、固态存储器设备(SSD)等等。能够提供存储空间的其他盘也可以被使用。每个盘122被划分为多个区段121。多个区段121可以具有相同存储容量。区段121有时也可被称为盘扩展、存储单元等,而层120也可以被称为存储池。在一些情况中,一个或多个新盘可以被添加到层120中,以扩展存储容量。
RAID虚拟化层110可以包括一个或多个RAID 112-1、……、112-2。这些RAID可以被统称或单独称为RAID 112。每个RAID 112建立在由物理存储层120的多个盘122划分而来的多个区段121上。这样的RAID 112有时也被称为映射RAID或分布式RAID。RAID 112可以包括多个条带113,每个条带113被映射到层120的一个或多个区段121。每个条带113包括的区段121的数目可以指示条带宽度,也称为RAID宽度。当用户向RAID 122的某个条带113写入数据时,所写入的数据将被存储到该条带113映射的区段121中。
取决于冗余度和性能等特性,RAID 112可以具有不同的级别。不同级别的RAID112将以不同方式在条带113映射的区段121上分布数据。RAID的级别例如可以包括RAID 1、RAID 2、……、RAID 5。以RAID 5级别的RAID 112为例,每个条带113包括五个区段121,其中四个区段121可以包含数据,而另一区段121可以包含校验信息。包含校验信息的区段121可用于恢复该条带113的其他区段121的数据。应当理解,任何其他级别的RAID均可以在存储系统100中实现。
在层120中,一个或多个盘122(例如,盘122-4)可以被用作备用盘122。在正常操作中,备用盘122不用于提供RAID 112的存储容量。换言之,备用盘122的区段121不被映射到RAID 112的条带113。当已使用的盘122的任一盘上的出错次数过多(例如超过预定阈值)时,该盘122被标记为寿命终止(EOL)盘122。备用盘122-4可以被用于替换EOL盘122。被启用的备用盘122的区段分配将继承EOL盘122的区段分配。
除了备用盘之外,层120中还可以包括备用区段121。层120的可用盘122中的一些区段121可以被用作备用区段。这样的备用区段121在正常操作中不会被分配给RAID 112以用作RAID 112的存储容量。当某个已使用的盘122发生故障时,控制模块130将发起RAID重建过程。在该过程中,控制模块130将重建故障盘122中的数据,并且选择备用区段121用于存储重建后的数据。寻址到这些数据的条带113将被映射到所选择的备用区段121。
根据RAID技术的特性,每个RAID 112在多个可用盘122上均匀分布,即每个RAID112都被均匀分配有层120中的各个可用盘122的区段121。在图1的示例中,盘122-4为备用盘,而其余盘122-1、122-2、……、122-3的区段121可以被映射到RAID 112-1、……、112-2的条带113。例如,RAID 112-1的一个条带113被映射到盘122-1的一个区段121和盘122-2的一个区段121,另一条带113被映射到盘122-3的一个区段121和盘122-1的一个区段121,其他条带也可以类似被映射。RAID 112-1在每个可用盘122上映射到的区段121的数目基本相同,从而实现跨多个盘的均匀分布。
存储系统100还包括控制模块130,用于控制层120的多个盘122。控制模块130可以由具有处理能力的设备实现,例如处理器、控制器、微控制器、或者包括前述部件的计算机等。控制模块130可以对RAID层120的条带113的读/写请求进行响应,以从对应的区段121读取数据和/或向对应的区段121写入数据。涉及数据的读和/或写的操作被称为输入/输出(I/O)操作或I/O路径。控制模块130还可以执行对多个盘122的各种维护操作,以支持存储系统100的数据冗余性、可靠性以及其他方面的性能。涉及多个盘122的维护的操作被称为后台操作或后台路径。以下将介绍控制模块130中涉及区段分配的后台操作。
在一些情况中,当新盘被添加到层120时,控制模块130将执行区段重分配操作。控制模块130将用于将新盘的区段和层120中已有的盘122的区段一起重新分配,以使得RAID112的全部条带113被均匀分配有这些盘的区段。因此,新盘的一些区段将取代已有的盘122中的一些区段而被分配给RAID 112的一个或多个条带113。这样的重分配操作也被称为洗牌操作。经过重分配操作,与RAID 112的一个或多个条带113相关的映射将要根据重分配结果而被更新。在另外一些情况中,当已有的可用盘122被标记为EOL盘时,控制模块130将选择备用盘122替换EOL盘122。由于被启用的备用盘122的区段分配将继承EOL盘122的区段分配,这也会引发RAID 112的条带113与区段121的映射的更新。
应当理解,图1示出的设备和/或布置仅是一个示例。在其他示例中,存储系统100可以包括任意适当数目的盘122和在其上建立的RAID。所建立的RAID类型可以相同或者不同。取决于存储系统的架构,在一些示例中,在RAID虚拟化层110之上还可以存在其他逻辑层,例如Flare逻辑单元号(LUN)层、映射LUN层和/或精简(Thin)LUN层,用于处理来自用户的读/写请求或者其他请求。
在常规方案中,在建立每个RAID时,将从已有盘的多个区段为该RAID分配满足其要求的存储容量。例如,如果用户期望建立容量为500GB的RAID,则从盘中分配满足该容量要求的区段用于映射到该RAID的条带(所选择的容量可能等于或大于500GB)。已被分配的区段被填充虚拟数据(例如,全零值)。当用户向该RAID的某个条带写入数据时,该数据(被称为有效数据)将被写入该条带映射到的区段,以替换先前填充的虚拟数据。
常规方案中的区段分配方式存在多种问题。
例如,在由新盘的添加而触发的区段重分配过程中,如果确定RAID的条带从已有盘的区段被重新映射到新盘上的区段,那么已有盘的区段上的数据将被迁移到新盘的相应区段。如以上提及的,被分配给RAID的条带的区段在未被写入来自用户的有效数据时,将被预先填充虚拟数据(即无效数据)。如果区段存储有无效数据,这样的无效数据也会被迁移到新盘的区段。在替换EOL盘的过程也会发生类似的无效数据迁移,即将EOL盘上的无效数据迁移到当前启用的备用盘。无效数据的迁移将会不必要地延长区段重新分配过程所花费的时间。如果在该过程中用户发起读或写请求,则需要更长的时间完成区段重新分配。
在另外一些情况中,用户向存储层添加一个或多个新盘用于扩展存储层的存储容量,并且希望在此基础上建立新RAID。如果存储层的已有区段均被分配给已有的RAID,并且新添加的盘的数目小于要建立的新RAID的条带宽度,则需要等待基于新添加的盘触发的区段重新分配之后才能够建立新RAID。这降低了RAID建立的灵活性,导致更长的延迟。
根据本公开的实施例,提出了一种改进的管理多个盘的方案。本公开的方案提供了按需区段分配。在RAID建立后,在RAID的条带将被实际写入数据时,从多个盘的区段中选择处于空闲状态的区段并且将该条带映射到所选择的区段。取代于为RAID的所有条带分配所映射的区段,本公开的方案能够提供更灵活的区段分配,提高盘管理的性能。
以下将参考附图来详细描述本公开的实施例。在本公开的实施例中,盘的区段被标识有相应的状态。处于空闲状态的区段可以被选择用于映射到RAID的条带。取决于当前的状况,区段可以在预先定义的状态之间转换。图2描述了区段的一些示例状态和这些状态之间的转换图200。区段的状态可以包括无效状态(I)210、空闲状态(F)220、预留状态(R)230、占用状态(C)240和出错状态(E)250。以下分别介绍这些状态。
无效状态210指示相应的区段不存在、相应区段的盘不可用、或者该区段上发生的错误过多(大于某个阈值)。被标识为无效状态210的区段不可用。例如,如果某个盘被移除、被标记为故障或者处于任何不可用的状态,该盘的所有区段被标识为处于无效状态。
空闲状态220指示相应的区段是可用的,但是尚未被分配给任何RAID。处于空闲状态220的区段没有被映射到RAID的任何条带。在新构造存储池并且未在存储池之上建立RAID时,该存储池的所有盘的区段可以处于空闲状态220。
预留状态230指示相应区段已经被预留给某个RAID(例如,该RAID的某个条带),但是还未建立该区段与RAID的相应条带之间的映射。预留状态230是空闲状态220与稍后讨论的占用状态240之间的过渡状态。
占用状态240指示相应区段已经被分配给某个RAID(例如,该RAID的某个条带)且该区段与RAID的相应条带之间的映射已经被建立。
出错状态250指示相应区段已经被RAID占用,但是在执行输入/输出(I/O)时,在该区段上发生错误。例如,当向处于占用状态240的区段写入输出或者从中读取数据时,由于盘或区段的错误而导致写入/读取失败。在这种情况下,该区段的状态将被改变为出错状态。
图2示出了上述状态之间的可能的转换。应当理解,这些状态以及它们之间的转换仅是一个示例。在其他实施例中,其中一个或多个状态可以被省略,或者从一个状态到另一个状态的转换可以被禁止或增加。在下文讨论中将更详细讨论盘的区段在这些状态之间的转换。
图3示出了根据本公开的一个实施例的管理多个盘的过程300的流程图。过程300可以被实现在图1的控制模块130处。为了讨论的目的,将参考图1和图2来描述过程300。
在310,控制模块130接收针对RAID 112的条带113(下文称为“第一条带”113)的写入请求。写入请求也可以被称为写入I/O请求,用于请求写入相关数据。通常,在建立RAID时,根据RAID的预定容量和其他配置(例如,RAID级别等),可以确定该RAID的条带数目和条带宽度。该RAID的存储容量将由用户获知,并且每个条带可以由相应地址(例如,标识符)寻址。用户可以根据需要向RAID写入数据和/或从中读取数据。数据将按RAID的条带被写入。层110(例如,层110的控制模块130)根据用户请求,确定要请求向RAID 112的第一条带113写入数据。因此,层110并且向层120的控制模块130发送针对第一条带113的写入请求,以将相关数据写入到盘122的区段121中。
在320,控制模块130查找被映射到第一条带113的区段121。控制模块130维护RAID的条带与盘的区段之间的映射表。通过该映射表控制模块130可以响应于针对特定条带的写入请求而将要求请求写入的数据存储到该条带所映射的区段中,并且还可以响应于针对特定条带的读取请求而将该条带所映射的区段中的数据读取出来。如上文提及的,取代于在建立RAID 112时为该RAID 112的全部条带113分配和映射对应的区段,在本公开的实施例中,采用按需区段分配的方式。在建立RAID 112之后,并非RAID 112的所有条带113均被映射到相应区段121,而是仅被请求写入数据的条带113将被创建与区段121的映射。
如果控制模块130未查找到被映射到第一条带113的区段,这意味着第一条带113先前未被请求写入数据。在330,控制模块130从多个盘122的多个区段121中选择处于空闲状态220的一组区段121(被称为“第一组区段”)。在一些实施例中,多个盘122包括一个或多个备用盘(例如,盘122-4)和当前可用盘(例如,盘122-1、122-2、……、122-3)。控制模块130可以仅从当前可用盘122的区段121中选择第一组区段121。所选择的第一组区段121的区段数目可以基于RAID 112的条带宽度。RAID的条带宽度与RAID 112建立时的配置(包括RAID的级别)有关。例如,如果RAID 112被建立为RAID5,则该RAID 112的条带宽度为可以五个区段,并且第一组区段121将包括五个区段。
第一组区段121的选择还可以遵循一些预定的区段选择准则。例如,由于第一组区段121要被映射到第一条带113,第一组区段121中任何两个区段不处于同一个盘122。附加地或备选地,在选择第一组区段121之后,每个盘122已被映射到RAID 112的条带113的区段和所选择的即将被映射的区段的数目基本相同,以确保RAID 112跨多个盘122均有分布。因此,第一组区段121可以来自不同的盘122。
在一些实施例中,控制模块130可以附加地或备选地基于盘122的I/O负载和/或盘122的磨损程度来选择第一组区段121。例如,在确保两个区段不会来自同一盘122并且在RAID 112跨多个盘122均有分布的情况下,控制模块130可以选择出比第一组区段121的数目更多的出于空闲状态的区段121。在这种情况下,控制模块130可以考虑处于盘122的I/O负载和/或盘122的磨损程度。
盘122的I/O负载指示该盘122的区段中的数据被读取和/或写入的频率或次数。盘122的磨损程度可以指示盘122的使用寿命。在盘122为固态硬盘(SSD)类型的情况下,因为SSD类型的盘的数据擦除次数是有限的,盘122的磨损程度可能特别有用。如果SSD类型的盘122的剩余可擦除数目较少,意味着该盘122的磨损程度较高。在选择第一组区段121时,控制模块130可以选择I/O负载较低和/或磨损程度较低的盘122上的空闲区段121。
在其他实施例中,除了以上提及的区段选择准则之外或者作为备选方式,控制模块130还可以采用任何其他能够确保存储系统100的特性以及提高系统性能的区段分配准则。本公开的实施例在此方面不受限制。
在340,在选择第一区段之后,控制模块130可以可选地将第一区段的状态改变为预留状态230。预留状态230指示第一组区段121被预留给RAID 112的第一条带113,因此不再是“空闲”的。处于预留状态230的区段121将不会被直接分配给其他RAID或其他条带。
在350,控制模块130将第一条带113映射到第一组区段121。具体地,控制模块130可以创建第一条带113与第一组区段121的映射,并且将该映射添加到所维护的映射表中。第一条带113与第一组区段121的映射可以包括用于定位第一条带113的标识符与用于定位第一组区段121中每个区段的标识符之间的映射。
在一个示例中,第一条带113的标识符可以被标识为(RAID_ID,RAID_Extent_ID,Offset),其中RAID_ID表示RAID 112的标识,RAID_Extent_ID表示第一条带113在RAID 112中的标识,并且Offset表示第一条带113在RAID 112中的偏移。控制模块130可以从接收到的写入请求中确定第一条带113的标识符。每个区段121的标识符可以被标识为(DISK_ID,DISK_Extent_Number),其中DISK_ID表示该区段112所处的盘122的标识,DISK_Extent_Number表示该区段112在盘122中的标识(例如,区段号)。
在360,控制模块130可以可选地将第一组区段121的状态改变为占用状态240。占用状态240可以指示第一组区段121已经被RAID 112占用且相应的映射也已被正确建立。在370,控制模块130可以将写入请求所请求写入的相关数据写入到所选择的第一区段121。当然,如果控制模块130在320查找到被映射到第一条带113的区段121,控制模块130也可以在370将相关数据写入到被映射的区段121而无需为第一条带113分配区段。
图4示出了图1的存储系统100中经过写入请求后的区段分配。RAID 112的某个条带113先前未被映射到区段121。在用户发起对该条带113的写入请求后,经过过程300,盘122的多个区段121(由410指示)被选择并且被映射到该条带113。所选择的区段121曾处于空闲状态220,然后被改变到预留状态230,并且在区段121与第一条带113的映射建立之后被改变到占用状态240(以“C”表示)。未与RAID 112的条带113建立映射的区段121处于空闲状态(以“F”表示)。
应当理解,虽然以上讨论并且在图3中以特定顺序示出了各个步骤,这些步骤并非必须按照所示出的顺序来执行。在一些实施例中,过程300的步骤中的一些步骤可以被并列执行,或者其顺序可以被调整。例如,在370处的数据写入可以在第一区段被选择之后执行,并且可以与状态的某个改变或条带和区段的映射并列地被执行。在一些实施例中,过程300的一些步骤可以被省略,例如步骤340、360和370。
根据过程300可知,用户不断向RAID 112的条带113写入数据,更多的条带113被分配和映射到相应的区段121。通常,在建立RAID 112时,可以确保层120的可用盘122提供的容量能够满足RAID 112所要求的容量,尽管盘122的区段121未被具体映射到RAID 112的条带。通过这种方式,层120中可以存在更多的空闲区段121以供灵活使用。此外,对于未被映射而处于空闲状态的区段121,控制模块130可以无需如传统方案那样向这些区段写入无效数据(例如,全零值)以表示相应RAID对区段的占用。这降低了对区段的I/O访问,从而可以减小盘或区段的磨损程度,这在SSD盘的情况下尤其有利。
在一些实施例中,在RAID 112的某个条带113被映射到相应区段121后,由于操作过程中一些特定状况的出现,控制模块130可能将某个条带113重新映射到盘122的其他区段121。图5示出了这样的管理多个盘的另一过程500。该过程500也可以由控制模块130实现。为了讨论的目的,将参考图1和图2来描述过程500。
在510,响应于预定重映射请求被触发,控制模块130从多个区段中选择处于空闲状态的一组区段121(被称为“第二组区段”)。重映射请求的触发将引起RAID 112的一个或多个条带113(下文中被称为“第二条带”)与区段121的映射被改变,导致区段重分配。第二组区段121被选择以用于替换RAID 112的第二条带113先前被映射到的一组区段121(被称为“第三组区段”)。在存储系统100中,可以有多种情况会触发预定重映射请求。
在一些实施例中,触发预定重映射请求的情况可以包括新盘的添加。通常,在一个或多个新盘被添加到层120时,由于新盘的区段均处于空闲状态并且未被分配给任何RAID,这将造成已建立的RAID 112在包括新盘在内的多个盘上分布不均匀。因此,控制模块130在检测到新盘被添加时,可以确定预定重映射请求被触发。此时,控制模块130在510选择的第二组区段为新盘上的空闲区段。
这样的预定重映射请求触发对RAID 112的条带113与层120中的区段的重新映射,从而确保RAID在当前多个盘之间的均匀分布。控制模块130可以基于在当前盘上建立的一个或多个RAID 112的存储容量要求、条带宽度和区段121的单位存储容量,确定包括新添加的盘在内的盘122中有多少盘应当被分配用于映射到RAID 112的条带113。基于分配结果,控制模块130可以确定层120中已有盘122上的哪些区段将被取消映射,从而使得该部分区段对应的条带113(即第二条带113)被映射到新盘上的区段。应当理解,可以使用当前存储系统中的各种技术来确定在这样的区段重新分配(也即洗牌过程)中要被重新分配的区段和条带,本公开的范围在此方面不受限制。
通过重新分配,控制模块130可以确定RAID 112的一个或多个第二条带113要从先前映射到的一个或多个区段121被重新映射到新盘上的第二组区段。对于每个要被重新映射的第二条带113,控制模块130均可以确定新盘上的一组空闲区段。在一些实施例中,第二条带113先前被映射到的全部区段或者部分区段将被替换为新盘上的空闲区段。控制模块130可以据此选择新盘上相应数目的区段以用作第二组区段。
在另外一些实施例中,触发预定重映射请求的情况可以包括对出错盘的标识。如果已被使用的盘122中的某个盘(或者相应区段)发生错误的次数达到预定阈值,控制模块130可以将该盘122标识为的EOL盘,并且将启动相应程序以选择层120中的备用盘(例如,存储系统100中的备用盘122-4)用于替换该EOL盘122。备用盘122中的区段在初始时可以被设置为空闲状态。在这样的情况下,先前被映射到EOL盘122的一个或多个区段的条带113(被视为第二条带)将需要被重新映射到被启用的备用盘122上的空闲区段121。针对每个第二条带113,控制模块130在备用盘122中选择与该条带被映射到EOL盘122上的区段对应数目的空闲区段121。
在一些实施例中,在执行重新映射过程中,如以上参照图3讨论的,控制模块130也可以基于盘122的磨损程度和/或I/O负载来选择要被重新映射的区段。例如,基于盘122的磨损程度和/或I/O负载来确定将哪些区段迁移到新盘的空闲区段。
在520,控制模块130可以可选地将第二组区段121的状态改变为预留状态230。预留状态230指示第二组区段121被预留给RAID 112的第二条带113,因此不再是“空闲”的。处于预留状态230的区段121将不会被直接分配给其他RAID或其他条带。
在530,控制模块130将RAID 112的第二条带113映射到第二组区段121。具体地,控制模块130可以更新第二条带113相关的映射,以将第二条带113先前映射到的第三组区段121替换为当前选择的第二组区段121。如以上讨论的,取决于重映射请求的不同触发条件,第三组区段121可以是已使用的盘122上的区段或者是被标记为EOL的盘122上的区段。通常,第三组区段121的数目等于第二组区段121的数目。该数目可以等于或小于第二条带113的条带宽度。也就是说,第二条带113先前映射到的全部或部分区段可以被调整。
在540,控制模块130可以可选地将第二组区段121的状态改变为占用状态230。占用状态240可以指示第二组区段121已经被RAID 112占用且相应的映射也已被正确建立。
除了映射更新之外,控制模块130还可以在550将第二条带113先前被映射到的第三组区段121中存储的数据迁移到新映射到的第二组区段121。通过状态的标识以及按需区段分配,在由映射更新而触发的数据迁移过程中,控制模块130可以仅迁移有效数据,而无需迁移不必要的无效数据。这是因为第三区段121先前被映射到第二条带113,意味着第三区段121处于占用状态240并且存储用户写入的数据。
在迁移EOL盘122上的第三组区段121的数据时,由于该盘122上发生过较多错误,第三组区段121中的一个或多个区段121的状态可能被标记为出错状态250,其他区段121被标记为占用状态240。然而,处于出错状态250和占用状态240的第三组区段121也都包含有效数据。在这种情况下,控制模块130也可以避免迁移不必要的无效数据。
在560,控制模块130还可以可选地将第三组区段121的状态改变为空闲状态220。如果第三组区段121是已使用的盘122中的区段,将其状态改变为空闲状态220,可以使得这些区段随着RAID 112的使用而被继续映射到其他条带113。在第三组区段121位于EOL盘122的情况,将这些区段121的状态改变为空闲状态220,可以有利于对EOL盘122的后续处理。例如,通过空闲状态220,控制模块130可以确定EOL盘122的区段121与RAID 112的条带113的映射已经被更新,从而可以将该EOL盘122从层120中移除。
在一些实施例中,在利用备用盘122来替换EOL盘122时,希望备用盘122中保留EOL盘122的相应区段的状态,例如处于过渡的预留状态230。控制模块130可以确定EOL盘122中是否存在处于预留状态230的区段121。如果控制模块130确定EOL盘122的一个或多个区段121处于预留状态,也可以将备用盘122中对应数目的区段121的状态设置为预留状态230(例如,从空闲状态220改变为预留状态230)。处于预留状态230的区段121即将被映射到的条带113也可以由控制模块130获知。在完成盘的替换之后,控制模块130可以继续在已启用的备用盘中为预留区段121和相应的条带113建立映射。
图6A示出了新盘被添加的情况下映射状态的改变。在图4的区段分配之后,新盘610(盘(N+1))被添加到层120并且也包括多个区段121。控制模块130通过过程500为RAID112-1、112-2等重新分配区段,以使得这些RAID 112在已有的盘122和新盘610之间基本均匀分配。如图6A所示,新盘610的一些区段121被映射到RAID 112的条带,使得多个盘122和新盘610的区段的使用基本相同。被映射的区段121的状态也被改变为占用状态240(以“C”)表示,而已有的盘122的更多区段被改变到空闲状态220(以“F”)表示。
图6B示出了出错盘被替换的情况下映射状态的改变。在图4的区段分配之后,盘122-2上出错的次数超过预定阈值,因此备用盘122-4被启用以替换出错盘122-2。盘122-4的区段121初始被设置为空闲状态220(以“F”),并且盘122-2上处于占用状态的区段121被迁移到盘122-4。因此,盘122-4的一些区段121被改变为预留状态230,在映射建立后又被改变为占用状态240(以“C”)表示。盘122-2上的区段121的状态被改变为空闲状态220。稍后盘122-2可以从层120被移除。
基于过程500,控制模块130可以根据在存储系统100的操作过程中发生的不同状况,实现区段映射的更新。应当理解,虽然以上讨论并且在图5中以特定顺序示出了各个步骤,这些步骤并非必须按照所示出的顺序来执行。在一些实施例中,过程500的步骤中的一些步骤可以被并列执行,或者其顺序可以被调整。例如,步骤540、550和560可以并列地被执行。在一些实施例中,过程500的一些步骤可以被省略,例如步骤520、540、550和560。
通过本公开的按需区段分配,在区段的重新映射过程中,可以更快速地完成映射。在由于区段的重新映射而引发的数据迁移过程中,仅需要迁移有效数据,这较少了数据迁移的量,降低了数据迁移引发的延迟,并且还可以避免不必要的增加I/O访问负载。此外,在用户向存储层添加一个或多个新盘用于扩展存储层的存储容量并且希望在此基础上建立新RAID的情况中,控制模块可以无需等待区段重新分配的过程结束,而是直接利用可用存储容量(新盘和已使用盘的空闲区段)来建立新RAID。
图7示出了可以用来实施本公开的实施例的示例设备700的示意性框图。设备700可以用于实现图1、图4、图6A和图6B中的控制模块130或者控制模块130的一部分。如图所示,设备700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的计算机程序指令或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序指令,来执行各种适当的动作和处理。在RAM 703中,还可存储设备700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理单元701执行上文所描述的各个方法和处理,例如过程200和/或过程500。例如,在一些实施例中,过程200和/或过程500可被实现为计算机软件程序或计算机程序产品,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到RAM 703并由CPU 701执行时,可以执行上文描述的过程200和/或过程500的一个或多个步骤。备选地,在其他实施例中,CPU 701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行过程200和/或过程500。
本领域的技术人员应当理解,上述本公开的方法的各个步骤可以通过通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本公开不限制于任何特定的硬件和软件结合。
应当理解,尽管在上文的详细描述中提及了设备的若干装置或子装置,但是这种划分仅仅是示例性而非强制性的。实际上,根据本公开的实施例,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
以上所述仅为本公开的可选实施例,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本公开的保护范围之内。
Claims (22)
1.一种管理多个盘的方法,包括:
响应于接收到针对独立盘冗余阵列RAID的第一条带的写入请求,查找被映射到所述第一条带的区段,所述RAID建立在由多个盘划分而来的多个区段上;
响应于未查找到被映射到所述第一条带的区段,从所述多个盘的所述多个区段中选择处于空闲状态的第一组区段;
将所述第一条带映射到所述第一组区段;
响应于预定重映射请求被触发,从所述多个区段中选择处于所述空闲状态的第二组区段,其中所述第二组区段包括的区段的总数目小于所述RAID的第二条带的条带宽度;
将所述RAID的所述第二条带重新映射到所述第二组区段,所述第二条带先前被映射到所述多个区段中的第三组区段;以及
将所述第二组区段的状态改变为占用状态。
2.根据权利要求1所述的方法,进一步包括:
响应于所述第一组区段被选择,将所述第一组区段的状态改变为预留状态。
3.根据权利要求1所述的方法,进一步包括:
响应于将所述第一条带映射到所述第一组区段,将所述第一组区段的状态改变为占用状态。
4.根据权利要求1所述的方法,其中从所述多个区段中选择所述第一组区段包括:
基于以下至少一项来从所述多个区段中处于所述空闲状态的区段选择所述第一组区段:所述多个盘的磨损程度,以及所述多个盘的输入/输出I/O负载。
5.根据权利要求4所述的方法,其中所述第一组区段至少部分通过选择位于所述多个盘中的以下个体盘中的区段而被选择:i)所述个体盘具有较低I/O负载以及ii)较低磨损程度,其中相对较低的磨损程度指示相对较高数目的剩余可擦除数目。
6.根据权利要求1所述的方法,进一步包括:
将所述第三组区段中存储的数据迁移到所述第二组区段;以及
将所述第三组区段的状态改变为空闲状态。
7.根据权利要求1所述的方法,进一步包括:
响应于所述多个盘中的第一盘被添加以用于所述RAID,触发所述预定重映射请求,由所述第一盘划分而来的区段处于空闲状态;并且
其中从所述多个区段中选择所述第二组区段包括从所述第一盘的所述区段中选择所述第二组区段。
8.根据权利要求1所述的方法,进一步包括:
响应于所述多个盘中的第二盘上发生错误的次数达到预定阈值,触发所述预定重映射请求,所述第二盘包括所述第三组区段;并且
其中从所述多个区段中选择所述第二组区段包括从所述多个盘中的第三盘的区段选择所述第二组区段,所述第三盘被标识为备用盘。
9.根据权利要求8所述的方法,进一步包括:
响应于所述第二盘中预定数目的区段处于预留状态,将所述第三盘中的所述预定数目的区段的状态设置为预留状态。
10.根据权利要求1所述的方法,其中所述第一条带具有条带宽度;并且
其中从所述多个盘的所述多个区段中选择处于所述空闲状态的所述第一组区段包括:选择所述第一组区段中如下总数目的区段,所述总数目等于所述第一条带的所述条带宽度。
11.根据权利要求1所述的方法,其中将所述第一条带映射到所述第一组区段包括:将所述第一条带到所述第一组区段的映射添加到映射表。
12.根据权利要求11所述的方法,其中将所述第一条带到所述第一组区段的所述映射添加到所述映射表包括:将用于定位所述第一条带的标识符与用于定位所述第一组区段的标识符之间的映射添加到所述映射表。
13.一种用于管理多个盘的装置,包括:
处理器;以及
与所述处理器耦合的存储器,所述存储器具有存储于其中的指令,所述指令在被处理器执行时使所述装置执行动作,所述动作包括:
响应于接收到针对独立盘冗余阵列RAID的第一条带的写入请求,查找被映射到所述第一条带的区段,所述RAID建立在由多个盘划分而来的多个区段上;
响应于未查找到被映射到所述第一条带的区段,从所述多个盘的所述多个区段中选择处于空闲状态的第一组区段;
将所述第一条带映射到所述第一组区段;
响应于预定重映射请求被触发,从所述多个区段中选择处于所述空闲状态的第二组区段,其中所述第二组区段包括的区段的总数目小于所述RAID的第二条带的条带宽度;
将所述RAID的所述第二条带重新映射到所述第二组区段,所述第二条带先前被映射到所述多个区段中的第三组区段;以及
将所述第二组区段的状态改变为占用状态。
14.根据权利要求13所述的装置,其中所述动作进一步包括:
响应于所述第一组区段被选择,将所述第一组区段的状态改变为预留状态。
15.根据权利要求13所述的装置,其中所述动作进一步包括:
响应于将所述第一条带映射到所述第一组区段,将所述第一组区段的状态改变为占用状态。
16.根据权利要求13所述的装置,其中从所述多个区段中选择所述第一组区段包括:
基于以下至少一项来从所述多个区段中处于所述空闲状态的区段选择所述第一组区段:所述多个盘的磨损程度,以及所述多个盘的输入/输出I/O负载。
17.根据权利要求16所述的装置,其中所述第一组区段至少部分通过选择位于所述多个盘中的以下个体盘中的区段而被选择:i)所述个体盘具有较低I/O负载以及ii)较低磨损程度,其中相对较低的磨损程度指示相对较高数目的剩余可擦除数目。
18.根据权利要求13所述的装置,其中所述动作进一步包括:
将所述第三组区段中存储的数据迁移到所述第二组区段;以及
将所述第三组区段的状态改变为空闲状态。
19.根据权利要求13所述的装置,其中所述动作进一步包括:
响应于所述多个盘中的第一盘被添加以用于所述RAID,触发所述预定重映射请求,由所述第一盘划分而来的区段处于空闲状态;并且
其中从所述多个区段中选择所述第二组区段包括从所述第一盘的所述区段中选择所述第二组区段。
20.根据权利要求13所述的装置,其中所述动作进一步包括:
响应于所述多个盘中的第二盘上发生错误的次数达到预定阈值,触发所述预定重映射请求,所述第二盘包括所述第三组区段;并且
其中从所述多个区段中选择所述第二组区段包括从所述多个盘中的第三盘的区段选择所述第二组区段,所述第三盘被标识为备用盘。
21.根据权利要求20所述的装置,其中所述动作进一步包括:
响应于所述第二盘中预定数目的区段处于预留状态,将所述第三盘中的所述预定数目的区段的状态设置为预留状态。
22.一种计算机可读介质,其上存储有计算机可读指令,所述计算机可读指令在被执行时使设备执行根据权利要求1至12中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711031273.2A CN109725838B (zh) | 2017-10-27 | 2017-10-27 | 用于管理多个盘的方法、装置以及计算机可读介质 |
US16/172,005 US11150990B2 (en) | 2017-10-27 | 2018-10-26 | Method, apparatus and computer readable medium for managing a plurality of disks |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711031273.2A CN109725838B (zh) | 2017-10-27 | 2017-10-27 | 用于管理多个盘的方法、装置以及计算机可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109725838A CN109725838A (zh) | 2019-05-07 |
CN109725838B true CN109725838B (zh) | 2022-02-25 |
Family
ID=66243013
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711031273.2A Active CN109725838B (zh) | 2017-10-27 | 2017-10-27 | 用于管理多个盘的方法、装置以及计算机可读介质 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11150990B2 (zh) |
CN (1) | CN109725838B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111104047B (zh) * | 2018-10-25 | 2023-08-25 | 伊姆西Ip控股有限责任公司 | 管理冗余磁盘阵列的方法、设备和计算机可读存储介质 |
CN111857549A (zh) * | 2019-04-29 | 2020-10-30 | 伊姆西Ip控股有限责任公司 | 用于管理数据的方法、设备和计算机程序产品 |
CN112748858B (zh) * | 2019-10-30 | 2024-04-19 | 伊姆西Ip控股有限责任公司 | 用于管理盘阵列的方法、电子设备和计算机程序产品 |
CN113641298A (zh) | 2020-04-27 | 2021-11-12 | 伊姆西Ip控股有限责任公司 | 数据存储方法、设备和计算机程序产品 |
US11477267B2 (en) * | 2020-11-09 | 2022-10-18 | Microsoft Technology Licensing, Llc | Operating cloud-managed remote edge sites at reduced disk capacity |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9417822B1 (en) * | 2013-03-15 | 2016-08-16 | Western Digital Technologies, Inc. | Internal storage manager for RAID devices |
CN107247565A (zh) * | 2009-03-18 | 2017-10-13 | 株式会社日立制作所 | 存储控制装置以及虚拟卷的控制方法 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5960169A (en) * | 1997-02-27 | 1999-09-28 | International Business Machines Corporation | Transformational raid for hierarchical storage management system |
US6405284B1 (en) * | 1998-10-23 | 2002-06-11 | Oracle Corporation | Distributing data across multiple data storage devices in a data storage system |
US7055058B2 (en) * | 2001-12-26 | 2006-05-30 | Boon Storage Technologies, Inc. | Self-healing log-structured RAID |
US7631155B1 (en) * | 2007-06-30 | 2009-12-08 | Emc Corporation | Thin provisioning of a file system and an iSCSI LUN through a common mechanism |
US8959280B2 (en) * | 2008-06-18 | 2015-02-17 | Super Talent Technology, Corp. | Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear |
US9594770B1 (en) | 2011-06-28 | 2017-03-14 | EMC IP Holding Company LLC | Score-based selection of storage device for virtual disk with specification of quality of service |
US9250810B2 (en) * | 2011-08-17 | 2016-02-02 | International Business Machines Corporation | Priority based depopulation of storage ranks |
GB2503274A (en) * | 2012-06-22 | 2013-12-25 | Ibm | Restoring redundancy in a RAID |
US9135096B2 (en) * | 2012-12-06 | 2015-09-15 | Compellent Technologies | RAID surveyor |
US9304901B2 (en) * | 2013-03-14 | 2016-04-05 | Datadirect Networks Inc. | System and method for handling I/O write requests |
US20150019807A1 (en) * | 2013-07-11 | 2015-01-15 | Silicon Graphics International Corp. | Linearized dynamic storage pool |
US9755986B1 (en) | 2013-12-19 | 2017-09-05 | EMC IP Holding Company LLC | Techniques for tightly-integrating an enterprise storage array into a distributed virtualized computing environment |
US9529546B2 (en) * | 2014-01-08 | 2016-12-27 | Netapp, Inc. | Global in-line extent-based deduplication |
US10613933B2 (en) * | 2014-12-09 | 2020-04-07 | Hitachi Vantara Llc | System and method for providing thin-provisioned block storage with multiple data protection classes |
US9934264B2 (en) * | 2015-06-02 | 2018-04-03 | Netapp, Inc. | Technique for reducing metadata stored in a memory of a node |
US9612754B1 (en) | 2015-06-29 | 2017-04-04 | EMC IP Holding Company LLC | Data storage system with window allocation using window cache |
US9703498B1 (en) | 2015-06-29 | 2017-07-11 | EMC IP Holding Company LLC | Allocating space in a file system from sequential and random cursors |
US9779023B1 (en) | 2015-06-30 | 2017-10-03 | EMC IP Holding Company LLC | Storing inline-compressed data in segments of contiguous physical blocks |
US9823875B2 (en) * | 2015-08-31 | 2017-11-21 | LinkedIn Coporation | Transparent hybrid data storage |
US9804939B1 (en) | 2015-09-30 | 2017-10-31 | EMC IP Holding Company LLC | Sparse raid rebuild based on storage extent allocation |
US10430279B1 (en) * | 2017-02-27 | 2019-10-01 | Tintri By Ddn, Inc. | Dynamic raid expansion |
-
2017
- 2017-10-27 CN CN201711031273.2A patent/CN109725838B/zh active Active
-
2018
- 2018-10-26 US US16/172,005 patent/US11150990B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107247565A (zh) * | 2009-03-18 | 2017-10-13 | 株式会社日立制作所 | 存储控制装置以及虚拟卷的控制方法 |
US9417822B1 (en) * | 2013-03-15 | 2016-08-16 | Western Digital Technologies, Inc. | Internal storage manager for RAID devices |
Also Published As
Publication number | Publication date |
---|---|
US20190129797A1 (en) | 2019-05-02 |
CN109725838A (zh) | 2019-05-07 |
US11150990B2 (en) | 2021-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109725838B (zh) | 用于管理多个盘的方法、装置以及计算机可读介质 | |
US10558383B2 (en) | Storage system | |
US9378093B2 (en) | Controlling data storage in an array of storage devices | |
JP5532982B2 (ja) | ストレージ装置、ストレージ装置のコントローラおよびストレージ装置の記憶領域割当方法 | |
US10459639B2 (en) | Storage unit and storage system that suppress performance degradation of the storage unit | |
CN110096217B (zh) | 用于重新定位数据的方法、数据存储系统和介质 | |
US8627181B1 (en) | Storage apparatus, storage controller, and method for managing locations of error correcting code blocks in array | |
US20150286531A1 (en) | Raid storage processing | |
US20180275894A1 (en) | Storage system | |
US8812779B2 (en) | Storage system comprising RAID group | |
CN110058960B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
CN111124264B (zh) | 用于重建数据的方法、设备和计算机程序产品 | |
US11301137B2 (en) | Storage system and data arrangement method of storage system | |
US11474919B2 (en) | Method for managing multiple disks, electronic device and computer program product | |
US20200341874A1 (en) | Handling of offline storage disk | |
CN111857554A (zh) | Raid冗余级别的自适应改变 | |
US9983963B2 (en) | System and method for exploiting hard disk drive capacity reserve and extending operating life thereof | |
CN109725835B (zh) | 用于管理盘阵列的方法、设备和计算机程序产品 | |
JP6476959B2 (ja) | ストレージ制御装置、ストレージシステム、および制御プログラム | |
WO2016013202A1 (ja) | ストレージ装置、コンピュータシステム、アクセス制御方法および記録媒体 | |
CN113811862A (zh) | 存储驱动器的动态性能等级调整 | |
CN111124251B (zh) | 用于i/o控制的方法、装置以及计算机可读介质 | |
US9569329B2 (en) | Cache control device, control method therefor, storage apparatus, and storage medium | |
CN109558068B (zh) | 数据迁移方法及迁移系统 | |
CN114721585A (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 |