CN113220242B - 存储管理方法、设备和计算机可读介质 - Google Patents
存储管理方法、设备和计算机可读介质 Download PDFInfo
- Publication number
- CN113220242B CN113220242B CN202110613308.3A CN202110613308A CN113220242B CN 113220242 B CN113220242 B CN 113220242B CN 202110613308 A CN202110613308 A CN 202110613308A CN 113220242 B CN113220242 B CN 113220242B
- Authority
- CN
- China
- Prior art keywords
- raid
- extent
- metadata
- tuple
- storage space
- 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
- 238000007726 management method Methods 0.000 title claims abstract description 15
- 238000000034 method Methods 0.000 claims abstract description 32
- 238000013507 mapping Methods 0.000 claims description 38
- 238000012545 processing Methods 0.000 claims description 23
- 238000010586 diagram Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 7
- 238000013500 data storage Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008602 contraction Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012795 verification 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
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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/0614—Improving the reliability of storage systems
- G06F3/0617—Improving the reliability of storage systems in relation to availability
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开的实施例提供了存储管理方法、设备和计算机可读介质。该方法包括接收用于创建存储空间的请求,请求至少包括存储空间的存储容量和RAID配置,RAID配置至少指示RAID类型;基于存储容量分配盘区;基于RAID类型为盘区创建RAID组;以及将RAID组的元数据存储到盘区,元数据指示RAID组的配置以及盘区中的用户数据区域的配置。
Description
本申请是申请日为2017年4月17日、申请号为201710250028.4,发明名称为“存储管理方法、设备和计算机可读介质”的发明专利申请的分案申请。
技术领域
本公开的实施例涉及数据存储领域,并且更具体地,涉及存储管理方法、存储系统以及计算机程序产品。
背景技术
独立磁盘构成的具有冗余能力的阵列(RAID)是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。
当用户需要存储空间时,可以向服务器或者存储空间管理系统申请,以获取相应容量的存储空间。具体地,当用户申请创建存储空间时,从一组固定的磁盘上划分相应大小的磁盘区域作为用户申请的存储空间;基于所划分的磁盘区域创建RAID组,该部分磁盘区域被划分为多个块(例如每个块为1Mb),用于描述每个块状态的元数据存储在该部分磁盘区域的末尾,而用于描述RAID配置的信息则存储在存储器的存储空间中。
然而,当采用上述方式创建存储空间时,对所创建存储空间的所有I/O操作都需要访问或更新所存储的元数据,因此元数据的存储方式将成为整个映射RAID业务的瓶颈。例如,当存储元数据的磁盘损坏时,必须使整个RAID映射失效,从而导致降低数据存储的可靠性;此外,用户无法在已经申请的存储空间的基础上,扩展或收缩存储空间的大小。
发明内容
本公开的实施例提供了存储管理方法、设备和计算机可读介质。
根据本公开的第一方面,提供了一种存储管理方法,该方法包括:接收用于创建存储空间的请求,请求至少包括存储空间的存储容量和RAID配置,RAID配置至少指示RAID类型;基于存储容量分配盘区;基于RAID类型为盘区创建RAID组;以及将RAID组的元数据存储到盘区,元数据指示RAID配置以及盘区中的用户数据区域的属性。
根据本公开的第二方面,提供了一种设备。该设备包括:至少一个处理单元;至少一个存储器,至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令,指令当由至少一个处理单元执行时,使得设备执行动作,动作包括:接收用于创建存储空间的请求,请求至少包括存储空间的存储容量和RAID配置,RAID配置至少指示RAID类型;基于存储容量分配盘区;基于RAID类型为盘区创建RAID组;以及将RAID组的元数据存储到盘区,元数据指示RAID配置以及盘区中的用户数据区域的属性。
根据本公开的第三方面,提供了一种计算机可读存储介质,该计算机可读存储介质具有存储在其上的计算机可读程序指令,计算机可读程序指令在被处理单元执行时使得处理单元实现根据权利要求1-10中的任一项的方法。
提供发明内容部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或主要特征,也无意限制本公开的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。
图1图示了可以实施本公开内容的多个实施例的计算环境100的框图。;
图2图示了盘区池以及盘区与为RAID组的映射关系;
图3图示了根据本公开的一个示例实施例的创建存储空间过程300的流程图;
图4图示了根据本公开的一个示例实施例的动态映射的示意图;
图5图示了根据本公开的一个示例实施例的RAID类型为RAID 5的RAID组中一个RAID单元与盘区的映射关系的示意图;
图6图示了根据本公开的一个示例实施例的扩展存储空间过程600的流程图;
图7图示了根据本公开的一个示例实施例的收缩存储空间过程700的流程图;以及
图8图示了根据本公开的实施例的存储管理装置800的框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
如上所述,关于元数据的存储方式,如果采用集中存储的方式存储元数据,一旦存储元数据的盘区发生损坏,则整个RAID组和存储空间的映射都将失效,这会导致映射可靠性较低。此外,元数据集中存储的方式还将导致已经分配给用户的存储空间无法扩展或压缩,进而导致存储管理效率较低,无法有效地利用存储系统中的存储空间。
在本公开实施例中,术语“盘区”是指从硬盘、磁盘、光盘、固态硬盘(SSD)等存储介质划分的预定容量的存储空间。基于创建存储空间的请求所分配的“存储空间”是指由多个盘区组成的存储空间,以供用户存储数据或运行程序等。
为了至少部分地解决上述问题以及其他潜在问题,本公开的实施例提供了一种在存储系统中执行存储管理的方案。在该方案中,将存储设备划分成多个盘区,在接收到用于创建存储空间的请求时,基于所请求存储空间的存储容量分配对应数量的盘区,在所分配的每个盘区均保留一部分存储空间,用于存储元数据。也即是,每个盘区均有其自身的元数据存储区域。因此,当任一盘区损坏时,只需替换该损坏盘区,而不会影响其他盘区与RAID组的映射,从而提高映射的可靠性。
以下参考附图来说明本公开内容的基本原理和若干示例实现。图1图示了可以实施本公开内容的多个实施例的计算环境100的框图。应当理解,图1所示出的计算环境100仅仅是示例性的,而不应当构成对本公开内容所描述的实现的功能和范围的任何限制。
如图1所示,计算环境100包括通用计算设备形式的计算系统/服务器102。计算系统/服务器102可以用于实施本公开内容的实现的存储管理。计算系统/服务器102可以接收存储空间的创建、扩展和收缩请求并且响应这些请求。计算系统/服务器102的组件可以包括但不限于一个或多个处理器或处理单元110、存储器120、存储设备130、一个或多个通信单元140、一个或多个输入设备150以及一个或多个输出设备160。处理单元110可以是实际或虚拟处理器并且能够根据存储器120中存储的程序来执行各种处理。在多处理器系统中,多个处理单元并行执行计算机可执行指令,以提高计算系统/服务器102的并行处理能力。
计算系统/服务器102通常包括多个计算机存储介质。这样的介质可以是计算系统/服务器102可访问的任何可以获得的介质,包括但不限于易失性和非易失性介质、可拆卸和不可拆卸介质。存储器120可以是易失性存储器(例如寄存器、高速缓存、随机访问存储器(RAM))、非易失性存储器(例如,只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存)或其某种组合。存储器120可以包括一个或多个程序产品122,其具有一个或多个程序模块集合,这些程序模块被配置为执行本文所描述的各种实现的功能。
存储设备130可以是可拆卸或不可拆卸的介质,并且可以包括机器可读介质,诸如内存、闪存驱动、磁盘或者任何其他介质,其能够用于存储信息和/或数据并且可以在计算系统/服务器102内被访问。
计算系统/服务器102可以进一步包括另外的可拆卸/不可拆卸、易失性/非易失性存储介质。尽管未在图1中示出,可以提供用于从可拆卸、非易失性磁盘进行读取或写入的磁盘驱动和用于从可拆卸、非易失性光盘进行读取或写入的光盘驱动。在这些情况中,每个驱动可以由一个或多个数据介质接口被连接至总线(未示出)。
通信单元140实现通过通信介质与另外的计算设备进行通信。附加地,计算系统/服务器102的组件的功能可以以单个计算集群或多个计算机器来实现,这些计算机器能够通过通信连接进行通信。因此,计算系统/服务器102可以使用与一个或多个其他服务器、网络个人计算机(PC)或者另一个一般网络节点的逻辑连接来在联网环境中进行操作。
输入设备150可以是一个或多个各种输入设备,例如鼠标、键盘、追踪球、语音输入设备等。输出设备160可以是一个或多个输出设备,例如显示器、扬声器、打印机等。计算系统/服务器102还可以根据需要通过通信单元140与一个或多个外部设备(未示出)进行通信,外部设备诸如存储设备、显示设备等,与一个或多个使得用户与计算系统/服务器102交互的设备进行通信,或者与使得计算系统/服务器102与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)进行通信。这样的通信可以经由输入/输出(I/O)接口(未示出)来执行。
如图1所示,存储设备130可以划分为多个盘区,并且添加到盘区池,以在接收到存储空间创建请求时,从该盘区池中为用户分配盘区。每个盘区的存储容量可以为1MB或1GB。应当理解,每个盘区的存储容量可以为任意值,以上所述存储容量仅仅是示例性的,无意限制本公开内容的范围。
以下通过具体示例来进一步描述本公开内容的实现。图2图示了盘区池以及盘区与为RAID组的映射关系。在一些实施例中,存储设备130被池化为盘区池。
在图2的示例中示出了两种RAID类型的RAID组与盘区的映射关系,包括RAID 1类型和RAID 5类型的RAID组。每个RAID组包括多个RAID单元,每个RAID单元映射多个盘区,所映射的盘区数量取决于RAID类型。应当理解,以上所述RAID类型仅仅是示例性的,无意限制本公开内容的范围。
对于RAID 1类型的RAID组,RAID组的每个RAID单元21映射两个盘区,盘区22用于存储数据信息,盘区23用于镜像数据信息,作为校验信息。需要注意的是,一个RAID 1类型的RAID组映射的两个盘区来自两个不同的盘,以确保数据的安全性,避免一个盘损坏,导致数据丢失的情况发生。
对于RAID 5类型的RAID组,RAID组的每个RAID单元24映射五个盘区,盘区25用于存储数据信息,盘区26用于存储校验信息,以使得当存储数据信息的四个盘区中任意一个盘损坏时,仍然能够根据校验信息恢复损坏的盘上的数据,从而确保数据的安全性。此外,一个RAID 5类型的RAID组映射的盘区来自5个不同的盘。
应当理解,盘区所映射的RAID组的RAID类型不限于图2所示的两种,还可以包括其他RAID类型,如RAID 2、RAID 3、RAID 4、RAID 6等,无意限制本公开内容的范围。
图3图示了根据本公开的一个示例实施例的创建存储空间过程300的流程图。过程300例如可以实现在计算系统/服务器102中。
在310,接收用于创建存储空间的请求,请求至少包括存储空间的存储容量和RAID配置,RAID配置至少指示RAID类型。该用于创建存储空间的请求由申请存储空间的用户设备发送,该请求的发送方式可以为在用户设备上加载存储空间的申请网页,用户在该网页上定义所申请存储空间的存储容量和RAID配置等信息,并向计算系统/服务器102发送该请求,以使得计算系统/服务器102在接收到该请求后,能够根据该请求为该用户创建存储空间。
在320,基于存储容量分配盘区。具体地,基于存储容量和每个盘区的存储容量,计算所需的盘区数;根据所需的盘区数,从盘区池中分配对应数量的盘区以创建存储空间。该盘区池包括由多个存储介质划分的多个盘区,每个盘区的存储容量相同。
在一些实施例中,维护维护动态映射,动态映射包括以下至少一个:第一多元组,包括存储空间的标识信息、存储空间的存储容量、存储空间的RAID配置和参考信息,参考信息用于指示存储空间对应的逻辑区块地址(LBA),第二多元组,包括存储空间的逻辑单元号(LUN)与RAID组的地址的映射关系,并且第二多元组包括至少一个具有相同大小的子多元组,第三多元组,包括存储空间的RAID组与盘区之间的映射关系。
存储空间的标识信息用于唯一标识对应的存储空间,第一多元组除了包括存储空间的标识信息、存储空间的存储容量、存储空间的RAID配置和参考信息,该RAID配置可以包括RAID组的盘区数以及有关盘区性能的相关信息等,本公开对该RAID配置所包括的具体信息不作限定。
图4图示了根据本公开的一个示例实施例的动态映射的示意图。在图4的存储空间的标识信息为LUN 0对应的动态映射41中,第三多元组中的RAID组的RAID类型为RAID 1;存储空间LUN 1对应的动态映射42中,第三多元组中的RAID组的RAID类型为RAID 5。
根据该动态映射,在执行数据读写等操作时,根据第一多元组中所存储的参考信息能够寻址到第二多元组,根据第二多元组中存储的RAID组的地址,能够确定RAID组的存储位置,根据RAID组映射的盘区,能够向盘区写入数据或者从盘区读取数据。
在一些实施例中,在基于存储容量分配盘区之前,初始化即将创建的存储空间对应的动态映射。具体地,基于在310中接收的请求,将存储空间的标识信息、存储空间的存储容量、存储空间的RAID配置和参考信息等信息存储到第一多元组中;将第二多元组初始化为空;以及从存储器中为第三多元组分配存储空间。
通过维护动态映射,能够实现对所创建的存储空间更有效的管理,并且能够更好的管理即将创建的RAID组与盘区之间的映射关系,从而确保用户在使用所创建的存储空间存储数据时,数据读写的快速性和数据存储的安全性。
在一些实施例中,在分配盘区之前,检测第二多元组中是否存在用于存储RAID组的地址的空闲存储单元;如果第二多元组中不存在空闲存储单元,分配子多元组,子多元组包括多个空闲存储单元;将子多元组置于第二多元组的末尾。
如图4所示,在RAID类型为RAID 1的动态映射41中,第二多元组的存储单元411用于存储LUN为0~0x100000对应的RAID组的地址,存储单元412用于存储LUN为0~0x200000对应的RAID组的地址等,存储单元413为空闲存储单元。
在330,基于RAID类型为盘区创建RAID组。
每个RAID组映射的盘区数量与RAID类型有关。当RAID类型为RAID 1时,每个RAID组映射两个盘区,并且每个RAID组所映射的两个盘区来自两个不同的盘。相应地,当RAID类型为RAID 5时,每个RAID组映射5个盘区,并且每个RAID组所映射的5个盘区分别来自不同的盘。当RAID类型为其他类型时,采用类似方法为所分配的盘区创建RAID组。
在一些实施例中,在基于RAID类型为盘区创建RAID组之后,将RAID组中每个RAID单元所映射的每个盘区的盘区位置和所在盘的盘状态存储到动态映射的第三多元组中。该盘区位置可以包括盘索引和盘区在盘中的起始LBA,也可以是其他能够表示盘区位置的信息,如盘区索引等,本公开对此不作具体限定。该盘状态用于指示盘区所在的盘是否已经损坏和/或是否已经填满数据等。
如图4所示,动态映射41中的第三多元组可以用于存储RAID组中每个RAID单元所映射的每个盘区的盘区配置信息,例如,该RAID组中的RAID单元414所映射的两个盘区的盘区位置和所在盘的盘状态分别存储到对应的存储单元中。
在一些实施例中,在基于RAID类型为盘区创建RAID组之后,将所创建的RAID组的地址存储到动态映射的第二多元组的空闲存储单元中。例如,在图4中,动态映射41中编号为0~n的RAID组415的地址可以存储到LUN为0~0x100000对应的存储单元411中,编号为n+1~2n的RAID组416的地址可以存储到LUN为0x100000~0x200000对应的存储单元412中。相应地,动态映射42中的RAID组424的地址可以存储到第二多元组中的存储单元421中。应当理解,以上所述内容仅仅是示例性的,无意限制本公开内容的范围。
在340,将RAID组的元数据存储到盘区,元数据指示RAID配置以及盘区中的用户数据区域的属性。
该元数据包括第一元数据,用于记录RAID组的RAID单元的配置信息,该RAID组包括多个RAID单元,以及第二元数据,用于记录用户数据区域中的数据块是否用于替换已损坏的数据块。每个RAID单元映射多个盘区。需要说明的是,每个RAID单元所映射的盘区数取决于该RAID组的RAID类型。例如,当RAID类型为RAID1时,每个RAID单元映射两个盘区,当RAID类型为RAID 5时,每个RAID单元映射五个盘区。应当理解,以上所述内容仅仅是示例性的,无意限制本公开内容的范围。
对于RAID组中的任一RAID单元,该RAID单元对应的第一元数据所记录的RAID单元的配置信息包括:标签信息、存储空间的标识信息、RAID组的标识信息、RAID类型、宽度信息、盘区大小、盘区标识信息以及盘区位置信息,每个配置信息的含义如表1所示。
表1
该第一元数据的标签信息可以为特定字符串,对于任一数据如果检测到该数据中包括该特定字符串,则确定该数据为第一元数据。此外,该特定字符串中的特定比特位可以为有效位;例如,当该有效位为1时,确定该第一元数据有效,当该有效位为0时,确定该第一元数据无效。在该第一元数据所包括的盘区信息中,盘区位置信息可以包括盘索引和盘区索引。应当理解,以上所述内容仅仅是示例性的,无意限制本公开内容的范围。也即是该第一元数据除了包括表1中的配置信息外,还可以包括其他信息,本公开对此不作限定。
用于记录用户数据区域的配置的第二元数据包括有效位、位掩码和验证位,每个配置信息的含义如表2所示。
表2
在一些实施例中,将RAID组的元数据存储到盘区的方法为:将第一元数据存储到为盘区创建的镜像条带中,镜像条带被存储在盘区的起始处;将第二元数据存储到盘区的末尾,盘区的起始处和末尾之间的区域为用户数据区域。也即是,第一元数据采用镜像方式进行存储,每个盘区的起始处都存储该第一元数据。存储到盘区末尾的第二元数据采用与用户数据区域相同的算法执行数据读写等操作。通过将元数据存储到RAID组所映射的每个盘区中,不仅能够实现存储空间的缩放,还能够提高元数据的I/O性能。
图5图示了根据本公开的一个示例实施例的RAID类型为RAID 5的RAID组中一个RAID单元与盘区的映射关系的示意图。5个盘区的起始处为镜像条带,作为第一元数据存储区域51;5个盘区的末尾作为第二元数据存储区域53;起始处和末尾之间为用户数据区域52。末尾的第二元数据区域53和用户数据区域52均采用RAID 5算法执行数据读写等操作。
在一些实施例中,每个盘区存储的第一元数据和第二元数据包括动态映射中所存储的全部或部分信息,以使得能够基于第一元数据和第二元数据得到或推断出动态映射。通过这种方式,当动态映射存储在存储器中时,如果发生掉电或者系统故障,能够基于每个盘区所存储的元数据重新得到该动态映射,从而能够确保映射和数据存储的可靠性。
图6图示了根据本公开的一个示例实施例的扩展存储空间过程600的流程图,所扩展的存储空间为基于图3所示的方法所创建的存储空间。过程600可以实现在计算系统/服务器102中。
在610,接收已有存储空间的扩展请求,该扩展请求包括该已有存储空间(将要扩展的存储空间)的标识信息和扩展容量。
在620,基于该扩展容量,为该已有存储空间分配扩展盘区。具体分配方法与步骤320中的盘区分配方法类似,此处不再赘述。
在一些实施例中,在分配扩展盘区之前,检测动态映射该已有存储空间对应的第二多元组中是否存在用于存储RAID组的地址的空闲存储单元;如果第二多元组中不存在空闲存储单元,分配子多元组,子多元组包括多个空闲存储单元;将子多元组置于第二多元组的末尾,以能够将新创建的扩展RAID组的地址存放到该第二多元组的空闲存储单元中。
在630,基于该已有存储空间的RAID类型,为扩展盘区创建扩展RAID组。具体地,根据该已有存储空间的标识信息,从动态映射的该已有存储空间对应的第一多元组中获取RAID类型,也可以从该已有存储空间的任一盘区的镜像条带中获取RAID类型,以能够基于RAID类型,为扩展盘区创建扩展RAID组。需要注意的是,与步骤330类似,在创建扩展RAID组之后,将每个扩展RAID组所映射扩展盘区的盘区状态和盘区位置,存储到动态映射的该已有存储空间对应的第三多元组中。
在640,将元数据存储到扩展盘区中,元数据的具体存储方法与步骤330中存储元数据的方法类似,在此不作赘述。需要注意的是,将元数据存储到扩展盘区之后,更新动态映射该已有存储空间对应的第一多元组中的信息,包括存储容量等。
图7图示了根据本公开的一个示例实施例的收缩存储空间过程700的流程图,所收缩的存储空间为基于图3所示的方法所创建的存储空间。过程700可以实现在计算系统/服务器102中。
在710,接收待收缩存储空间的收缩请求,该收缩请求包括指示信息,该指示信息用于指示将被收缩的预定RAID组。该指示信息可以包括待收缩存储空间的标识信息和收缩容量,根据该待收缩存储存储空间和收缩容量确定该预定RAID组。当用户所申请的预定存储空间的存储容量超过其预期需要的存储空间时,或者当用户不需要在预定存储空间存储的数据时,为了提高存储介质的利用率,可以对该预定存储空间进行收缩,以将多余的存储空间即盘区放置到盘区池,从而在其他用户需要时进行再分配,能够充分利用存储介质所划分的盘区。
在720,根据指示信息,擦除预定RAID组对应的盘区上的元数据。具体地,根据指示信息,可以在动态映射中查找该预定RAID组所映射的盘区,然后再执行擦除操作。在一些实施例中,在擦除元数据时,为了提高数据擦除速率以提高存储空间收缩速率,可以只擦除第一元数据,也即是用于记录RAID配置的元数据;也可以同时擦除第一元数据和第二元数据。
在一些实施例中,在擦除元数据之前,将动态映射中与预定RAID组对应的第三多元组标记为无效,以使所述预定RAID组无效。也即是,解除第三多元组中该预定RAID组与相应盘区的映射关系,以使得对该相应盘区的数据读写操作无效。
通过无效标记,能够确保在存储空间收缩期间,无法再对预定RAID组所对应的盘区中的数据执行读写操作,进而提高数据存储的安全性和稳定性。
在730,将已经擦除了元数据的盘区放置到盘区池。解除已经擦出了元数据的盘区的所有映射关系,或者将该盘区标记为空闲,以使其返回到盘区池中,该盘区在再分配时进行初始化,其上存储的数据会被完全擦除,将该盘区与其它盘区重新组合,形成新的存储空间或者作为所要扩展的存储空间的扩展存储空间。
在一些实施例中,将动态映射的第二多元组中原来用于存储预定RAID组的地址的存储单元标记为空闲。也即是,解除第二多元组中LUN和RAID组之间的映射关系。如果预定存储单元所在的预定子多元组中的所有存储单元均被标记为空闲,则解除预定子多元组与第二多元组的对应关系,使预定子多元组所占用的存储器中的存储空间可用于存储其他数据。通过释放子多元组所占用的存储器中的存储空间,能够提高存储器中存储空间的使用率。
图8图示了根据本公开的实施例的存储管理装置800的框图。例如,图1中充当存储管理的主动方的计算系统/服务器102可以由装置800来实现。如图8所示,装置800可以包括接收模块810,被配置为接收用于创建存储空间的请求,请求至少包括存储空间的存储容量和RAID配置,RAID配置至少指示RAID类型;盘区分配模块820,被配置为基于存储容量分配盘区;RAID组创建模块830,被配置为基于RAID类型为盘区创建RAID组;以及元数据存储模块840,被配置为将RAID组的元数据存储到盘区,元数据指示RAID配置以及盘区中的用户数据区域的属性。
出于清楚的目的,在图8中没有示出装置800的某些可选模块。然而,应当理解,上文参考图1-7所描述的各个特征同样适用于装置800。而且,装置800的各个模块可以是硬件模块,也可以是软件模块。例如,在某些实施例中,装置800可以部分或者全部利用软件和/或固件来实现,例如被实现为包含在计算机可读介质上的计算机程序产品。备选地或附加地,装置800可以部分或者全部基于硬件来实现,例如被实现为集成电路(IC)、专用集成电路(ASIC)、片上系统(SOC)、现场可编程门阵列(FPGA)等。本公开的范围在此方面不受限制。
本公开可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (20)
1.一种存储管理方法,包括:
至少部分通过以下来将元数据存储到盘区,所述元数据指示RAID组的配置以及所述盘区中的用户数据区域的配置:
将第一元数据存储在所述盘区的起始处,以及
将第二元数据存储在所述盘区的末尾处,在所述盘区的所述起始与所述末尾之间的区域是所述用户数据区域。
2.根据权利要求1所述的方法,进一步包括:
其中所述第一元数据用于记录所述RAID组的RAID单元的配置信息,所述RAID组包括多个RAID单元;并且
其中所述第二元数据用于记录所述RAID单元所映射的盘区中需要重建的盘区。
3.根据权利要求2所述的方法,其中将所述RAID组的所述元数据存储到所述盘区进一步包括:
将所述第一元数据存储到为所述盘区创建的镜像条带中,所述镜像条带被存储在所述盘区的起始处。
4.根据权利要求1所述的方法,进一步包括:
维护动态映射,所述动态映射包括以下至少一项:
第一多元组,包括存储空间的标识信息、所述存储空间的存储容量、所述存储空间的RAID配置和参考信息,所述参考信息用于指示所述存储空间对应的逻辑区块地址(LBA),
第二多元组,包括所述存储空间的逻辑单元号(LUN)与RAID组的地址的映射关系,并且所述第二多元组包括至少一个具有相同大小的子多元组,以及
第三多元组,包括所述存储空间的RAID组与盘区之间的映射关系。
5.根据权利要求4所述的方法,进一步包括:
检测所述第二多元组中是否存在用于存储所述RAID组的地址的空闲存储单元;
如果所述第二多元组中不存在所述空闲存储单元,分配子多元组,所述子多元组包括多个空闲存储单元;以及
将所述子多元组置于所述第二多元组的末尾。
6.根据权利要求4所述的方法,进一步包括:
接收用于创建所述存储空间的请求,其中用于创建所述存储空间的所述请求包括用于扩展已有存储空间的请求。
7.根据权利要求4所述的方法,进一步包括:
接收待收缩所述存储空间的收缩请求,所述收缩请求包括指示信息,所述指示信息用于指示将被收缩的预定RAID组;
根据所述指示信息,擦除所述预定RAID组对应的盘区上的元数据;以及
将已经擦除了元数据的盘区放置到盘区池,所述盘区池包括多个盘区。
8.根据权利要求7所述的方法,进一步包括:
将所述动态映射中与所述预定RAID组对应的第三多元组标记为无效,以使所述预定RAID组无效。
9.根据权利要求7所述的方法,进一步包括:
将所述动态映射的第二多元组中原来用于存储所述预定RAID组的地址的预定存储单元标记为空闲。
10.根据权利要求9所述的方法,进一步包括:
如果所述预定存储单元所位于的预定子多元组中的所有存储单元均被标记为空闲,则解除所述预定子多元组与所述第二多元组的对应关系,使所述预定子多元组所占用的存储器中的存储空间可用于存储其他数据。
11.一种设备,包括:
至少一个处理单元;
至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时,使得所述设备执行动作,所述动作包括:
至少部分通过以下来将元数据存储到盘区,所述元数据指示RAID组的配置以及所述盘区中的用户数据区域的配置:
将第一元数据存储在所述盘区的起始处,以及
将第二元数据存储在所述盘区的末尾处,在所述盘区的所述起始与所述末尾之间的区域是所述用户数据区域。
12.根据权利要求11所述的设备,进一步包括:
其中所述第一元数据用于记录所述RAID组的RAID单元的配置信息,所述RAID组包括多个RAID单元;并且
其中所述第二元数据用于记录所述RAID单元所映射的盘区中需要重建的盘区。
13.根据权利要求12所述的设备,其中将所述RAID组的所述元数据存储到所述盘区进一步包括:
将所述第一元数据存储到为所述盘区创建的镜像条带中,所述镜像条带被存储在所述盘区的起始处。
14.根据权利要求11所述的设备,其中所述动作进一步包括:
维护动态映射,所述动态映射包括以下至少一项:
第一多元组,包括存储空间的标识信息、所述存储空间的存储容量、所述存储空间的RAID配置和参考信息,所述参考信息用于指示所述存储空间对应的逻辑区块地址(LBA),
第二多元组,包括所述存储空间的逻辑单元号(LUN)与RAID组的地址的映射关系,并且所述第二多元组包括至少一个具有相同大小的子多元组,以及
第三多元组,包括所述存储空间的RAID组与盘区之间的映射关系。
15.根据权利要求14所述的设备,其中所述动作进一步包括:
检测所述第二多元组中是否存在用于存储所述RAID组的地址的空闲存储单元;
如果所述第二多元组中不存在所述空闲存储单元,分配子多元组,所述子多元组包括多个空闲存储单元;以及
将所述子多元组置于所述第二多元组的末尾。
16.根据权利要求14所述的设备,其中所述动作进一步包括:
接收用于创建所述存储空间的请求,其中用于创建所述存储空间的所述请求包括用于扩展已有存储空间的请求。
17.根据权利要求14所述的设备,其中所述动作进一步包括:
接收待收缩所述存储空间的收缩请求,所述收缩请求包括指示信息,所述指示信息用于指示将被收缩的预定RAID组;
根据所述指示信息,擦除所述预定RAID组对应的盘区上的元数据;以及
将已经擦除了元数据的盘区放置到盘区池,所述盘区池包括多个盘区。
18.根据权利要求17所述的设备,其中所述动作进一步包括:
将所述动态映射中与所述预定RAID组对应的第三多元组标记为无效,以使所述预定RAID组无效。
19.根据权利要求17所述的设备,其中所述动作进一步包括:
将所述动态映射的第二多元组中原来用于存储所述预定RAID组的地址的预定存储单元标记为空闲。
20.根据权利要求19所述的设备,其中所述动作进一步包括:
如果所述预定存储单元所在的预定子多元组中的所有存储单元均被标记为空闲,则解除所述预定子多元组与所述第二多元组的对应关系,使所述预定子多元组所占用的存储器中的存储空间可用于存储其他数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110613308.3A CN113220242B (zh) | 2017-04-17 | 2017-04-17 | 存储管理方法、设备和计算机可读介质 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110613308.3A CN113220242B (zh) | 2017-04-17 | 2017-04-17 | 存储管理方法、设备和计算机可读介质 |
CN201710250028.4A CN108733309B (zh) | 2017-04-17 | 2017-04-17 | 存储管理方法、设备和计算机可读介质 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710250028.4A Division CN108733309B (zh) | 2017-04-17 | 2017-04-17 | 存储管理方法、设备和计算机可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113220242A CN113220242A (zh) | 2021-08-06 |
CN113220242B true CN113220242B (zh) | 2023-10-24 |
Family
ID=63790029
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110613308.3A Active CN113220242B (zh) | 2017-04-17 | 2017-04-17 | 存储管理方法、设备和计算机可读介质 |
CN201710250028.4A Active CN108733309B (zh) | 2017-04-17 | 2017-04-17 | 存储管理方法、设备和计算机可读介质 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710250028.4A Active CN108733309B (zh) | 2017-04-17 | 2017-04-17 | 存储管理方法、设备和计算机可读介质 |
Country Status (2)
Country | Link |
---|---|
US (2) | US10678463B2 (zh) |
CN (2) | CN113220242B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10977174B2 (en) * | 2018-12-31 | 2021-04-13 | Micron Technology, Inc. | Using a common pool of blocks for user data and a system data structure |
CN111488117B (zh) * | 2019-01-29 | 2023-10-13 | 伊姆西Ip控股有限责任公司 | 用于管理元数据的方法、电子设备和计算机可读介质 |
CN112199047A (zh) * | 2020-10-12 | 2021-01-08 | 北京集创北方科技股份有限公司 | 一种存储装置、方法、驱动芯片、显示面板及电子设备 |
CN112328457B (zh) * | 2020-11-20 | 2023-02-28 | 浪潮电子信息产业股份有限公司 | 硬盘raid类型的显示装置、显示方法和服务器 |
CN112882653A (zh) * | 2021-01-26 | 2021-06-01 | 北京金山云网络技术有限公司 | 存储卷创建方法、装置及电子设备 |
CN113282240A (zh) * | 2021-05-24 | 2021-08-20 | 深圳市盈和致远科技有限公司 | 存储空间数据读写方法、设备、存储介质及程序产品 |
CN115277640B (zh) * | 2022-07-29 | 2023-11-24 | 迈普通信技术股份有限公司 | 数据处理方法、装置、智能网卡及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100094157A (ko) * | 2009-02-18 | 2010-08-26 | 한국과학기술원 | 저널링 파일 시스템을 이용한 소프트웨어 레이드에서의 일관성 유지방법 |
CN104216660A (zh) * | 2013-05-30 | 2014-12-17 | 华为软件技术有限公司 | 提高磁盘阵列性能的方法及装置 |
CN105893188A (zh) * | 2014-09-30 | 2016-08-24 | 伊姆西公司 | 用于加速磁盘阵列的数据重构的方法和装置 |
CN106557266A (zh) * | 2015-09-25 | 2017-04-05 | 伊姆西公司 | 用于独立磁盘冗余阵列raid的方法和装置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US613053A (en) | 1898-10-25 | Packing for pipe-joints | ||
KR100392382B1 (ko) * | 2001-07-27 | 2003-07-23 | 한국전자통신연구원 | 동적 크기 변경 및 메타 데이터 양의 최소화를 위한 논리볼륨 관리 방법 |
US7032125B2 (en) * | 2002-04-25 | 2006-04-18 | Lsi Logic Corporation | Method for loosely coupling metadata and data in a storage array |
US7409494B2 (en) * | 2004-04-30 | 2008-08-05 | Network Appliance, Inc. | Extension of write anywhere file system layout |
US9122399B2 (en) * | 2013-04-18 | 2015-09-01 | Hitachi, Ltd. | Storage system and storage control method |
CN103699585B (zh) * | 2013-12-06 | 2017-04-19 | 华为技术有限公司 | 文件的元数据存储以及文件恢复的方法、装置和系统 |
US9529546B2 (en) * | 2014-01-08 | 2016-12-27 | Netapp, Inc. | Global in-line extent-based deduplication |
US9916312B1 (en) | 2014-06-30 | 2018-03-13 | EMC IP Holding Company LLC | Coordination of file system creation to ensure more deterministic performance characteristics |
US9613053B1 (en) | 2014-06-30 | 2017-04-04 | EMC IP Holding Company LLC | Techniques for providing access to a virtualized block storage device over a file-based network storage protocol |
CN104461388B (zh) * | 2014-12-04 | 2017-06-09 | 北京同有飞骥科技股份有限公司 | 一种存储阵列配置保存及仲裁方法 |
US10235059B2 (en) * | 2015-12-01 | 2019-03-19 | Netapp, Inc. | Technique for maintaining consistent I/O processing throughput in a storage system |
US10296235B2 (en) * | 2016-06-27 | 2019-05-21 | International Business Machines Corporation | Partial volume reorganization to increase data availability |
CN106528003A (zh) * | 2016-12-09 | 2017-03-22 | 曙光信息产业(北京)有限公司 | 一种磁盘阵列的重建方法和装置 |
US10146456B1 (en) | 2016-12-30 | 2018-12-04 | EMC IP Holding Company LLC | Data storage system with multi-level, scalable metadata structure |
-
2017
- 2017-04-17 CN CN202110613308.3A patent/CN113220242B/zh active Active
- 2017-04-17 CN CN201710250028.4A patent/CN108733309B/zh active Active
-
2018
- 2018-04-17 US US15/954,831 patent/US10678463B2/en active Active
-
2020
- 2020-04-29 US US16/861,337 patent/US11106377B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100094157A (ko) * | 2009-02-18 | 2010-08-26 | 한국과학기술원 | 저널링 파일 시스템을 이용한 소프트웨어 레이드에서의 일관성 유지방법 |
CN104216660A (zh) * | 2013-05-30 | 2014-12-17 | 华为软件技术有限公司 | 提高磁盘阵列性能的方法及装置 |
CN105893188A (zh) * | 2014-09-30 | 2016-08-24 | 伊姆西公司 | 用于加速磁盘阵列的数据重构的方法和装置 |
CN106557266A (zh) * | 2015-09-25 | 2017-04-05 | 伊姆西公司 | 用于独立磁盘冗余阵列raid的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108733309B (zh) | 2021-06-11 |
US11106377B2 (en) | 2021-08-31 |
US10678463B2 (en) | 2020-06-09 |
US20180300080A1 (en) | 2018-10-18 |
US20200257464A1 (en) | 2020-08-13 |
CN108733309A (zh) | 2018-11-02 |
CN113220242A (zh) | 2021-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113220242B (zh) | 存储管理方法、设备和计算机可读介质 | |
US11640353B2 (en) | Memory system, data storage device, user device and data management method thereof | |
US10365983B1 (en) | Repairing raid systems at per-stripe granularity | |
US10977124B2 (en) | Distributed storage system, data storage method, and software program | |
US9111618B2 (en) | De-duplication in flash memory module | |
WO2018072420A1 (zh) | 存储管理方法及存储设备 | |
US20150212752A1 (en) | Storage system redundant array of solid state disk array | |
US10503424B2 (en) | Storage system | |
JP2019133601A (ja) | ストレージ制御装置、ストレージ制御方法及びストレージ制御プログラム | |
EP3989052B1 (en) | Method of operating storage device and method of operating storage system using the same | |
US11640244B2 (en) | Intelligent block deallocation verification | |
CN110737394B (zh) | 管理缓存的方法、装置和计算机程序产品 | |
US20230342054A1 (en) | Method, electronic device and computer program product for processing data | |
US11144243B2 (en) | Method and device for managing redundant array of independent disks and computer program product | |
CN110737395B (zh) | I/o管理方法、电子设备和计算机可读存储介质 | |
CN115904255A (zh) | 一种数据请求方法、装置、设备及存储介质 | |
US10922003B1 (en) | Realizing host-assisted device-level data deduplication on solid-state data storage devices with embedded non-volatile memory | |
CN109002265B (zh) | 一种数据处理的方法以及相关装置 | |
US20180067676A1 (en) | Storage device | |
TWI633434B (zh) | 管理固態硬碟之方法、系統及電腦可讀取媒體 | |
US11144445B1 (en) | Use of compression domains that are more granular than storage allocation units | |
CN116010113B (zh) | 用于管理智能卡内存的方法及智能卡 | |
KR100472204B1 (ko) | 매핑 테이블 구조를 구비한 논리 볼륨 관리 시스템 및 이를 이용한 효율적인 스냅샷 방법 | |
US11995318B2 (en) | Deallocated block determination | |
KR100479330B1 (ko) | 스트라이핑을 하는 레이드 시스템에서 동적 디스크의 수를지원하는 계산에 의한 매핑에서의 스냅샷 방법 |
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 |