CN112748848A - 用于存储管理的方法、设备和计算机程序产品 - Google Patents
用于存储管理的方法、设备和计算机程序产品 Download PDFInfo
- Publication number
- CN112748848A CN112748848A CN201911039303.3A CN201911039303A CN112748848A CN 112748848 A CN112748848 A CN 112748848A CN 201911039303 A CN201911039303 A CN 201911039303A CN 112748848 A CN112748848 A CN 112748848A
- Authority
- CN
- China
- Prior art keywords
- storage units
- virtual storage
- virtual
- physical
- disks
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003860 storage Methods 0.000 title claims abstract description 251
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000004590 computer program Methods 0.000 title claims abstract description 17
- 230000004044 response Effects 0.000 claims abstract description 23
- 238000012545 processing Methods 0.000 claims description 22
- 241001522296 Erithacus rubecula Species 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 23
- 238000007726 management method Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 7
- 238000009826 distribution Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000005012 migration Effects 0.000 description 4
- 238000013508 migration Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 2
- 239000000835 fiber Substances 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
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000013500 data storage Methods 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
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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/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/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/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- 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/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/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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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
-
- 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
-
- 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/2056—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 by mirroring
-
- 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/815—Virtual
-
- 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/825—Indexing scheme relating to error detection, to error correction, and to monitoring the problem or solution involving locking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开的实施例涉及用于存储管理的方法、设备和计算机程序产品。一种方法包括:响应于接收到针对逻辑存储地址的访问请求,确定与该逻辑存储地址相对应的第一虚拟存储单元和第一虚拟存储单元内的第一地址偏移;确定第一虚拟存储单元所属的第一虚拟存储单元集合和第一虚拟存储单元在第一虚拟存储单元集合中的位置;基于该位置和第一地址偏移,从与第一虚拟存储单元集合相对应的多个物理存储单元中确定与该逻辑存储地址相对应的物理存储单元和该物理存储单元内的第二地址偏移;以及基于该物理存储单元的标识和第二地址偏移,执行访问请求所请求的数据访问操作。本公开的实施例能够均衡多个盘上的I/O负载,从而提高存储系统的整体性能。
Description
技术领域
本公开的实施例总体涉及数据存储领域,具体涉及用于存储管理的方法、设备和计算机程序产品。
背景技术
在当前存储系统中,通常将多个盘中的每个盘划分成多个盘切片。通过将来自不同盘的多个盘切片组合成盘阵列(例如,独立冗余磁盘阵列,RAID)中的条带,来将多个盘组织成盘阵列以进行管理。在此情况下,整个存储空间将以由一个或多个条带组成的固定大小的存储单元为单位进行管理,这样的存储单元也被称为“物理存储单元”。
物理存储单元通常按需分配。由于每个物理存储单元仅涉及多个盘中较少数目的盘(例如,以RAID1为例,每个物理存储单元仅涉及2个盘),因此针对该物理存储单元的I/O操作将仅由该较少数目的盘来服务。在一些情况下,某些物理存储单元中的数据将被频繁访问,这将导致不同盘之间的I/O负载不平衡,从而损害存储系统的整体性能。
发明内容
本公开的实施例提供了用于存储管理的方法、设备和计算机程序产品。
在本公开的第一方面,提供了一种用于存储管理的方法。该方法包括:响应于接收到针对逻辑存储地址的访问请求,确定与该逻辑存储地址相对应的第一虚拟存储单元和第一虚拟存储单元内的第一地址偏移;确定第一虚拟存储单元所属的第一虚拟存储单元集合和第一虚拟存储单元在第一虚拟存储单元集合中的位置,其中第一虚拟存储单元集合被映射到均匀分布在第一组盘中的多个物理存储单元并且包括多个虚拟存储单元,该多个虚拟存储单元中的数据以循环方式被分布到多个物理存储单元中;基于该位置和第一地址偏移,从与第一虚拟存储单元集合相对应的多个物理存储单元中确定与该逻辑存储地址相对应的物理存储单元和该物理存储单元内的第二地址偏移;以及基于该物理存储单元的标识和第二地址偏移,执行该访问请求所请求的数据访问操作。
在本公开的第二方面,提供了一种用于存储管理的设备。该设备包括至少一个处理单元和至少一个存储器。至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令。该指令当由至少一个处理单元执行时使得该设备执行动作,动作包括:响应于接收到针对逻辑存储地址的访问请求,确定与该逻辑存储地址相对应的第一虚拟存储单元和第一虚拟存储单元内的第一地址偏移;确定第一虚拟存储单元所属的第一虚拟存储单元集合和第一虚拟存储单元在第一虚拟存储单元集合中的位置,其中第一虚拟存储单元集合被映射到均匀分布在第一组盘中的多个物理存储单元并且包括多个虚拟存储单元,该多个虚拟存储单元中的数据以循环方式被分布到多个物理存储单元中;基于该位置和第一地址偏移,从与第一虚拟存储单元集合相对应的多个物理存储单元中确定与该逻辑存储地址相对应的物理存储单元和该物理存储单元内的第二地址偏移;以及基于该物理存储单元的标识和第二地址偏移,执行该访问请求所请求的数据访问操作。
在本公开的第三方面,提供了一种计算机程序产品。该计算机程序产品被有形地存储在非瞬态计算机存储介质中并且包括机器可执行指令。该机器可执行指令在由设备执行时使该设备执行根据本公开的第一方面所描述的方法。
提供发明内容部分是为了以简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或必要特征,也无意限制本公开的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。
图1示出了本公开的实施例能够在其中被实施的示例存储系统的框图;
图2示出了根据本公开的实施例的各种存储单元之间的拓扑关系的示意图;
图3示出了根据本公开的实施例的将虚拟存储单元中的数据以循环方式分布在多个物理存储单元的示意图;
图4示出了根据本公开的实施例的用于存储管理的示例方法的流程图;
图5A和5B示出了根据本公开的实施例的在存储资源池扩展后重新分布多个物理存储单元的示意图;
图6示出了根据本公开的实施例的虚拟存储单元在具有不同性能的多个虚拟存储单元集合之间迁移的示意图;以及
图7示出了可以用来实施本公开内容的实施例的示例设备的示意性框图。
在各个附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
如上所述,在当前存储系统中,通常将多个盘中的每个盘划分成多个盘切片。通过将来自不同盘的多个盘切片组合成RAID中的条带,来将多个盘组织成盘阵列以进行管理。在此情况下,整个存储空间将以由一个或多个条带组成的固定大小的物理存储单元为单位进行管理。
物理存储单元通常按需分配。由于每个物理存储单元仅涉及多个盘中较少数目的盘(例如,以RAID1为例,每个物理存储单元仅涉及2个盘),因此针对该物理存储单元的I/O操作将仅由该较少数目的盘来服务。在一些情况下,某些物理存储单元中的数据将被频繁访问,这将导致不同盘之间的I/O负载不平衡,从而损害存储系统的整体性能。
本公开的实施例提出了一种用于存储管理的方案。该方案将均匀分布在多个盘中的多个物理存储单元映射到虚拟存储单元集合,并且在虚拟存储单元集合中以更小粒度分配虚拟存储单元以进行存储空间的管理,其中虚拟存储单元中的数据以循环方式被分布到多个物理存储单元中。然后,该方案以虚拟存储单元为单位来管理存储空间的分配、访问请求的处理和数据在不同性能的存储介质之间的迁移。此外,该方案以物理存储单元为单位来管理存储空间的扩展和故障盘的数据重建等。以此方式,本公开的实施例能够均衡多个盘上的I/O负载,从而提高存储系统的整体性能。
以下将进一步结合附图来详细描述本公开的实施例。图1示出了本公开的实施例能够在其中被实现的示例存储系统100的框图。应当理解,仅出于示例性的目的描述存储系统100的结构,而不暗示对于本公开的范围的任何限制。例如,本公开的实施例还可以被应用到与存储系统100不同的系统或环境中。
如图1所示,系统100可以包括存储管理器110和存储资源池120。存储资源池120可以包括多个盘121-1、121-2……121-N(统称为或者单独地称为“盘121”,其中N≥1)。在此所述的“盘”可以指代任何目前已知或者将来开发的非易失性存储介质,例如磁盘、光盘、或固态盘等等。多个盘121可以基于不同的存储介质来构建。存储管理器110可以被配置为管理存储资源池120。在一些实施例中,存储管理器110可以被划分成多个模块,以实现相应功能。在下文中,将针对存储管理器110所实现的功能作一般性描述,而不限制存储管理器110的模块划分方式。
在一些实施例中,存储管理器110可以将存储资源池120中的每个盘121划分成多个固定大小的盘切片(例如,每个盘切片可以为4GB大小)。存储管理器110可以将不同盘上的多个盘切片组织成盘阵列,并且维护盘阵列与多个盘切片之间的映射信息。在一些实施例中,盘阵列中的条带通常被尽可能均匀地分布在整个存储资源池120上,使得整个存储资源池构成一个故障域。可以通过限制存储资源池120(也即,一个故障域)中的盘数N来保证盘阵列的可靠性。
在一些实施例中,盘阵列的类型可以与所存储的数据类型有关。例如,当多个盘121被用于存储与用户数据相关联的元数据(在此所述的“元数据”用于记录用户数据所在的地址、用户数据的属性和与用户数据有关的其他信息)时,多个盘121可以被组织成RAID1,其中每个条带包括来自2个不同盘的2个盘切片,并且2个盘切片内的数据互为镜像。又例如,当多个盘121被用于存储用户数据时,多个盘121可以被组织成诸如RAID 5等其他类型的盘阵列。在下文中,将以RAID1为例来描述本公开的一些实施例。应当理解,这仅仅出于示例的目的而无意于限制本公开的范围。
在一些实施例中,存储管理器110可以将盘阵列中的一个或多个条带组成固定大小的物理存储单元,并且维护物理存储单元与盘阵列(或者多个盘切片)之间的映射信息。以RAID1为例,每个物理存储单元例如可以由来自2个不同盘的2个盘切片组成,并且2个盘切片内的数据互为镜像。也即,每个物理存储单元可以用于存储例如4GB大小的数据。
在一些实施例中,存储管理器110可以将多个物理存储单元映射成一个虚拟存储空间,并且以更小的粒度将该虚拟存储空间划分成多个虚拟存储单元。在下文中,该虚拟存储空间因此也被称为“虚拟存储单元集合”。存储管理器110可以维护物理存储单元与虚拟存储单元集合(以及其中的虚拟存储单元)之间的映射信息。在一些实施例中,被映射到一个虚拟存储单元集合的多个物理存储单元的数目可以基于存储资源池120(也即,一个故障域)中的盘数N的上限和盘阵列的宽度来确定。被映射到一个虚拟存储单元集合的多个物理存储单元应当尽可能均匀地分布在存储资源池120中的多个盘121上。每个虚拟存储单元的大小是可配置的,其通常小于一个物理存储单元的大小。例如,在一些实施例中,每个虚拟存储单元的大小为128MB。
在一些实施例中,存储管理器110可以进一步将虚拟存储单元映射到逻辑地址空间,以供其上层模块或应用(图1中未示出)使用。也即,上层模块或应用可以基于逻辑存储地址来执行针对虚拟存储单元的数据访问(例如,读操作或写操作)。
图2示出了根据本公开的实施例的各种存储单元之间的拓扑关系的示意图。图2示出了虚拟存储单元集合200,其被映射到多个物理存储单元220-1、220-2……220-P(统称为或者单独地称为“物理存储单元220”,其中P>1)。多个物理存储单元220例如被均匀分布在如图1所示多个盘121中。在一些实施例中,被映射到虚拟存储单元集合200的多个物理存储单元220的数目P可以基于存储资源池120(也即,一个故障域)中的盘数N的上限和多个盘121所组成的盘阵列宽度来决定。以RAID 1为例,其宽度为2(也即,每个条带包括2个盘切片)。假设N的上限为25,则虚拟存储单元集合200所对应的物理存储单元220的数目P可以是12。
如图2所示,虚拟存储单元集合200可以以更小的粒度(例如,128MB)被划分成一系列用于虚拟存储单元的槽210-1、210-2……210-M(其中M>1),每个槽可以对应于一个虚拟存储单元。在本文中,“槽”与“虚拟存储单元”在一些情况下可互换使用。
在一些实施例中,虚拟存储单元集合200中的多个虚拟存储单元210中的数据可以以循环方式被分布到多个物理存储单元220中。图3示出了根据本公开的实施例的将虚拟存储单元中的数据以循环方式分布在多个物理存储单元的示意图。
图3示出了如图2所示的多个物理存储单元220,其中P例如为12。在图3所示的示例中,如图2所示的虚拟存储单元210中的数据可以以循环方式被分布在虚拟存储单元集合200中的所有物理存储单元220之中。在一些实施例中,数据分布粒度可以是可配置的,例如,2Mb、4MB、8MB等。在图3所示的示例中,数据分布粒度例如为4MB,并且虚拟存储单元集合200包含12个物理存储单元220。
以虚拟存储单元集合200中的第一个虚拟存储单元210-1为例,虚拟存储单元210-1中的第一个4M数据可以被放置在物理存储单元220-1上,虚拟存储单元210-1中的第二个4MB数据可以被放置在物理存储单元220-2上……以此类推,虚拟存储单元210-1中的第十二个4MB数据可以被放置在物理存储单元220-12上,由此完成第一轮数据放置。在下一轮中,虚拟存储单元210-1中的第十三个4MB数据将被再次放置在物理存储单元220-1上……虚拟存储单元210-1中的后续数据以及虚拟存储单元210-1后续的其他虚拟存储单元210中的数据可以以此方式被分布在所有物理存储单元220之中。
如以下将进一步详细描述的,本公开的实施例可以以虚拟存储单元为单位来管理存储空间的分配、访问请求的处理和数据在不同性能的存储介质之间的迁移,并且可以以物理存储单元为单位来管理存储空间的扩展和故障盘的数据重建等。以此方式,本公开的实施例能够均衡多个盘上的I/O负载,从而提高存储系统的整体性能。
图4示出了根据本公开的实施例的用于存储管理的示例方法400的流程图。例如,方法400可以由如图1所示的存储管理器110来执行。应当理解,方法400还可以包括未示出的附加动作和/或可以省略所示出的动作,本公开的范围在此方面不受限制。
在框410处,响应于接收到针对逻辑存储地址的访问请求,存储管理器110可以确定与该逻辑存储地址相对应的虚拟存储单元(本文中也称为“第一虚拟存储单元”)和该虚拟存储单元内的地址偏移(本文中也称为“第一地址偏移”)。
在一些实施例中,可以基于该逻辑存储地址和每个虚拟存储单元的大小来确定第一虚拟存储单元的标识符(ID)和第一地址偏移。例如,
VU_ID=LBA/VU_SIZE (1)
VU_OFFSET=LBA%VU_SIZE (2)
其中,LBA表示逻辑存储地址,VU_SIZE表示每个虚拟存储单元的大小(例如,128MB),VU_ID表示第一虚拟存储单元的ID,并且VU_OFFSET表示第一地址偏移。
在框420处,存储管理器110可以确定第一虚拟存储单元所属的虚拟存储单元集合(本文中也称为“第一虚拟存储单元集合”)和第一虚拟存储单元在该虚拟存储单元集合中的位置(例如,所对应的槽的ID)。
在一些实施例中,存储管理器110可以维护关于虚拟存储单元的描述信息的表,其中每个虚拟存储单元所属的虚拟存储单元集合的ID和每个虚拟存储单元在其所属的虚拟存储单元集合中的位置(例如,所对应的槽的ID)被记录在该表的一个条目中,并且该条目以该虚拟存储单元的ID作为索引。在一些实施例中,存储管理器110可以以第一虚拟存储单元的ID作为索引来搜索该描述信息表,以确定第一虚拟存储单元所属的虚拟存储单元集合的ID和第一虚拟存储单元在该虚拟存储单元集合中所对应的槽的ID。
在框430处,存储管理器110可以基于所确定的位置和第一地址偏移,从与第一虚拟存储单元集合相对应的多个物理存储单元中确定与逻辑存储地址对应的物理存储单元和该物理存储单元内的地址偏移(本文中也称为“第二地址偏移”)。
在一些实施例中,如以上结合图3所描述的,第一虚拟存储单元集合可以被映射到多个物理存储单元并且包括多个虚拟存储单元,第一虚拟存储单元集合中的多个虚拟存储单元中的数据以循环方式被分布到该多个物理存储单元中。在此假设每个物理存储单元的大小为4GB,并且数据分布粒度为4MB。在一些实施例中,可以基于以下公式来确定第m个虚拟存储单元210-m中的第n个4MB的数据被分布到的物理存储单元的标识符PU_ID和该数据在该物理存储单元内的地址偏移PU_OFFSET:
PU_ID=((m–1)*4GB/4MB+n)mod NUMBERS_OF_PU_IN_VC (3)
PU_OFFSET=ceil(((m–1)*4GB/4MB+n)/NUMBERS_OF_PU_IN_VC (4)
其中,NUMBERS_OF_PU_IN_VC表示虚拟存储单元集合所对应的物理存储单元的数目(在图3所示的示例中,例如为12)。
在框440处,存储管理器110可以基于所确定的物理存储单元的ID和第二地址偏移,执行该访问请求所请求的数据访问操作。数据操作例如可以包括读操作和写操作中的任一项。
在一些实施例中,存储管理器110可以以以虚拟存储单元为单位来管理存储空间的分配。例如,当存储管理器110确定当前已分配的虚拟存储单元已被用完,并且存在需要被存储的新数据时,存储管理器110可以分配新的虚拟存储单元以用于存储新数据。
为了分配新的虚拟存储单元,存储管理器110可以确定是否能够从当前虚拟存储单元集合中分配新的虚拟存储单元。当存储管理器110确定当前虚拟存储单元集合存在空闲的槽(即,未被虚拟存储单元使用的槽)时,存储管理器110可以从当前虚拟存储单元集合中分配与该空闲槽对应的虚拟存储单元。
当存储管理器110确定当前虚拟存储单元集合不存在空闲的槽(即,未被虚拟存储单元使用的槽)时,存储管理器110可以确定新的虚拟存储单元不能够从当前虚拟存储单元集合被分配。在此情况下,存储管理器110可以在多个盘(例如,在如图1所示多个盘121)上利用多个物理存储单元来创建新的虚拟存储单元集合(本文中也称为“第二虚拟存储单元集合”)。例如,新的虚拟存储单元集合可以以与如图2所示的虚拟存储单元集合200类似的方式被构建。在一些实施例中,当多个盘上没有足够数目(例如,在N的上限为25并且盘阵列宽度为2的情况下,不足12个物理存储单元)的物理存储单元时,新的虚拟存储单元集合可能无法被创建,并且因此新的虚拟存储单元无法被分配。备选地,在另一些实施例中,当多个盘上没有足够数目(例如,在N的上限为25并且盘阵列宽度为2的情况下,不足12个物理存储单元)的物理存储单元时,新的虚拟存储单元集合可能基于剩余的物理存储单元来被创建。响应于第二虚拟存储单元集合被创建,存储管理器110可以从第二虚拟存储单元集合中分配新的虚拟存储单元(例如,可以与第二虚拟存储单元集合中的第一个槽相对应)。
在一些实施例中,当一个或多个新盘被加入到如图1所示的存储资源池120中时,为了使物理存储单元能尽可能均匀地分布在存储资源池120中的多个盘上,存储管理器110可以执行物理存储单元的再平衡操作。也即,存储管理器110可以将部分物理存储单元迁移至一个或多个新盘中。由于存储管理器110仅改变了部分物理存储单元的位置,存储管理器110仅需要修改这部分物理存储单元的位置信息,而无须修改物理存储单元与虚拟存储单元集合(和/或虚拟存储单元)之间的映射关系。
图5A和5B示出了根据本公开的实施例的在存储资源池扩展后重新分布多个物理存储单元的示意图。在图5A和5B所示的示例中,假设盘阵列类型为RAID1,并且存储资源池(也即,一个故障域)中的盘数上限为16。
如图5A所示,当前存储资源池中例如仅包括4个盘121-1、121-2、121-3和121-4。当前虚拟存储单元集合500包括8个物理存储单元510-1、510-2……510-8(统称或单独称为“物理存储单元510”),其中每个物理存储单元510包括互为镜像的2个盘切片。
如图5B所示,4个新盘121-5、121-6、121-7和121-8被加入到当前存储资源池中。8个物理存储单元510中的4个物理存储单元510-5、510-6、510-7和510-8被迁移至新盘121-5、121-6、121-7和121-8中。经过再平衡操作后的虚拟存储单元集合500中的8个物理存储单元510-1、510-2……510-8被均匀地分布在8个盘121-1、121-2、121-3……121-8中。由于仅改变了物理存储单元510-5、510-6、510-7和510-8的位置,存储管理器110仅需要修改这部分物理存储单元的位置信息,而无须修改物理存储单元510与虚拟存储单元集合500(以及其中的虚拟存储单元)之间的映射关系。
在一些实施例中,当如图1所示的存储资源池121中的某个盘发生故障时,存储管理器110需要利用备用盘来重建故障盘上的数据。以RAID 1为例,由于每个条带包括互为镜像的2个盘切片,因此存储管理器110仅需要将未发生故障的盘切片中的数据拷贝到备用盘的对应盘切片中即可。在一些实施例中,在执行上述数据重建之前,存储管理器110可以首先确定故障盘所涉及的至少一个物理存储单元,然后确定与该至少一个物理存储单元相对应的逻辑存储地址的范围。例如,逻辑存储地址的范围的确定过程与以上结合图3所描述的基于逻辑存储地址来确定物理存储单元的过程互为逆过程,在此不再赘述。存储管理器110可以对所确定的逻辑存储地址的范围加锁,以禁用针对该逻辑存储地址的范围的数据访问操作。然后,存储管理器110可以执行上述数据重建,并且在数据重建完成之后释放锁,以启用针对该逻辑存储地址的范围的数据访问操作。以此方式,能够防止在数据重建过程中由于其他I/O操作而导致的数据不一致。
在一些实施例中,存储系统中的盘可以基于具有不同性能的存储介质来构建。性能较高的盘可以用于构建具有较高性能的虚拟存储单元集合,而性能较低的盘可以用于构建具有较低性能的虚拟存储单元集合。在一些实施例中,存储管理器110可以监控虚拟存储单元集合中的虚拟存储单元的访问热度。例如,可以将虚拟存储单元以低于阈值时间间隔(例如,预定时间窗口)的时间间隔被访问的次数作为该虚拟存储单元的访问热度的度量,或者可以将虚拟存储单元被访问的频率、该虚拟存储单元在特定时间间隔内被访问的次数或其他指标作为该虚拟存储单元的访问热度的度量。当某个虚拟存储单元的访问热度超过第一阈值时,存储管理器110可以将该虚拟存储单元迁移至具有较高性能的虚拟存储单元集合中。类似地,当某个虚拟存储单元的访问热度低于第二阈值(例如,第二阈值低于第一阈值)时,存储管理器110可以将该虚拟存储单元迁移至具有较低性能的虚拟存储单元集合中。
图6示出了根据本公开的实施例的虚拟存储单元在具有不同性能的多个虚拟存储单元集合之间迁移的示意图。图6示出了具有较低性能的虚拟存储单元集合610,其包括虚拟存储单元611。此外,图6示出了具有较高性能的虚拟存储单元集合620,其包括虚拟存储单元621。在一些实施例中,当存储管理器110确定虚拟存储单元611的访问热度超过第一阈值时,存储管理器110可以将虚拟存储单元611中的数据从虚拟存储单元集合610迁移至具有较高性能的虚拟存储单元集合620。在一些实施例中,当存储管理器110确定虚拟存储单元621的访问热度低于第二阈值(例如,第二阈值低于第一阈值)时,存储管理器110可以将虚拟存储单元621中的数据从虚拟存储单元集合620迁移至具有较低性能的虚拟存储单元集合610。以此方式,通过将访问热度较高的数据存储在具有更高访问速度的存储介质中,本公开的实施例能够实现更高的访问效率。
通过以上描述能够看出,本公开的实施例提出了一种用于存储管理的方案。该方案将均匀分布在多个盘中的多个物理存储单元映射到虚拟存储单元集合,并且在虚拟存储单元集合中以更小粒度分配虚拟存储单元以进行存储空间的管理,其中虚拟存储单元中的数据以循环方式被分布到多个物理存储单元中。然后,该方案以虚拟存储单元为单位来管理存储空间的分配、访问请求的处理和数据在不同性能的存储介质之间的迁移。此外,该方案以物理存储单元为单位来管理存储空间的扩展和故障盘的数据重建等。以此方式,本公开的实施例能够均衡多个盘上的I/O负载,从而提高存储系统的整体性能。
图7示出了可以用来实施本公开内容的实施例的示例设备700的示意性框图。例如,如图1所示的存储管理器110可以由设备700实施。如图7所示,设备700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的计算机程序指令或者从存储页面708加载到随机访问存储器(RAM)703中的计算机程序指令,来执行各种适当的动作和处理。在RAM 703中,还可存储设备700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储页面708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法300,可由处理单元701执行。例如,在一些实施例中,方法300可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储页面708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序被加载到RAM 703并由CPU 701执行时,可以执行上文描述的方法300的一个或多个动作。
本公开可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是——但不限于——电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (19)
1.一种用于存储管理的方法,包括:
响应于接收到针对逻辑存储地址的访问请求,确定与所述逻辑存储地址相对应的第一虚拟存储单元和所述第一虚拟存储单元内的第一地址偏移;
确定所述第一虚拟存储单元所属的第一虚拟存储单元集合和所述第一虚拟存储单元在所述第一虚拟存储单元集合中的位置,
其中所述第一虚拟存储单元集合被映射到均匀分布在第一组盘中的多个物理存储单元,并且包括多个虚拟存储单元,所述多个虚拟存储单元中的数据以循环方式被分布到所述多个物理存储单元中;基于所述位置和所述第一地址偏移,从与所述第一虚拟存储单元集合相对应的所述多个物理存储单元中确定与所述逻辑存储地址相对应的物理存储单元和所述物理存储单元内的第二地址偏移;以及
基于所述物理存储单元的标识和所述第二地址偏移,执行所述访问请求所请求的数据访问操作。
2.根据权利要求1所述的方法,其中所述第一组盘中的每个盘被划分成多个盘切片,并且所述多个物理存储单元之一包括来自所述第一组盘中的不同盘的至少两个盘切片。
3.根据权利要求1所述的方法,还包括:
确定是否需要分配新的虚拟存储单元;
响应于确定需要分配新的虚拟存储单元,确定是否能够从所述第一虚拟存储单元集合中分配所述新的虚拟存储单元;以及
响应于确定所述新的虚拟存储单元能够从所述第一虚拟存储单元集合被分配,从所述第一虚拟存储单元集合中分配所述新的虚拟存储单元。
4.根据权利要求3所述的方法,还包括:
响应于确定所述新的虚拟存储单元不能够从所述第一虚拟存储单元集合被分配,创建第二虚拟存储单元集合;以及
从所述第二虚拟存储单元集合中分配新的虚拟存储单元。
5.根据权利要求1所述的方法,还包括:
响应于新盘被添加到所述第一组盘中,将所述多个物理存储单元中的至少一部分物理存储单元中的数据转移至所述新盘,以使得所述多个物理存储单元被均匀地分布在包括所述新盘的所述第一组盘中。
6.根据权利要求1所述的方法,还包括:
响应于所述第一组盘中的至少一个盘发生故障,从所述多个物理存储单元中确定所述至少一个盘所涉及的至少一个物理存储单元;
确定与至少一个物理存储单元相对应的逻辑存储地址的范围;
禁用针对所述逻辑存储地址的范围的数据访问操作;
将所述至少一个盘中的数据重建至备用盘中;以及
响应于所述数据重建完成,启用针对所述逻辑存储地址的范围的数据访问操作。
7.根据权利要求1所述的方法,还包括:
确定所述第一虚拟存储单元集合中的第二虚拟存储单元被访问的热度;以及
响应于所述热度超过阈值,将所述第二虚拟存储单元从所述第一虚拟存储单元集合迁移至第二虚拟存储单元集合中,
其中所述第二虚拟存储单元集合被映射到均匀分布在第二组盘中的多个物理存储单元,并且所述第二组盘的性能超过所述第一组盘的性能。
8.根据权利要求1所述的方法,还包括:
确定所述第一虚拟存储单元集合中的第二虚拟存储单元被访问的热度;以及
响应于所述热度低于阈值,将所述第二虚拟存储单元从所述第一虚拟存储单元集合迁移至第三虚拟存储单元集合中,
其中所述第三虚拟存储单元集合被映射到均匀分布在第三组盘中的多个物理存储单元,并且所述第一组盘的性能超过所述第三组盘的性能。
9.根据权利要求1所述的方法,其中所述数据访问操作包括读操作和写操作中的任一项。
10.一种用于存储管理的设备,包括:
至少一个处理单元;
至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时,使得所述设备执行动作,所述动作包括:
响应于接收到针对逻辑存储地址的访问请求,确定与所述逻辑存储地址相对应的第一虚拟存储单元和所述第一虚拟存储单元内的第一地址偏移;
确定所述第一虚拟存储单元所属的第一虚拟存储单元集合和所述第一虚拟存储单元在所述第一虚拟存储单元集合中的位置,
其中所述第一虚拟存储单元集合被映射到均匀分布在第一组盘中的多个物理存储单元,并且包括多个虚拟存储单元,所述多个虚拟存储单元中的数据以循环方式被分布到所述多个物理存储单元中;基于所述位置和所述第一地址偏移,从与所述第一虚拟存储单元集合相对应的所述多个物理存储单元中确定与所述逻辑存储地址相对应的物理存储单元和所述物理存储单元内的第二地址偏移;以及
基于所述物理存储单元的标识和所述第二地址偏移,执行所述访问请求所请求的数据访问操作。
11.根据权利要求10所述的设备,其中所述第一组盘中的每个盘被划分成多个盘切片,并且所述多个物理存储单元之一包括来自所述第一组盘中的不同盘的至少两个盘切片。
12.根据权利要求10所述的设备,其中所述动作还包括:
确定是否需要分配新的虚拟存储单元;
响应于确定需要分配新的虚拟存储单元,确定是否能够从所述第一虚拟存储单元集合中分配所述新的虚拟存储单元;以及
响应于确定所述新的虚拟存储单元能够从所述第一虚拟存储单元集合被分配,从所述第一虚拟存储单元集合中分配所述新的虚拟存储单元。
13.根据权利要求12所述的设备,其中所述动作还包括:
响应于确定所述新的虚拟存储单元不能够从所述第一虚拟存储单元集合被分配,创建第二虚拟存储单元集合;以及
从所述第二虚拟存储单元集合中分配新的虚拟存储单元。
14.根据权利要求10所述的设备,其中所述动作还包括:
响应于新盘被添加到所述第一组盘中,将所述多个物理存储单元中的至少一部分物理存储单元中的数据转移至所述新盘,以使得所述多个物理存储单元被均匀地分布在包括所述新盘的所述第一组盘中。
15.根据权利要求10所述的设备,其中所述动作还包括:
响应于所述第一组盘中的至少一个盘发生故障,从所述多个物理存储单元中确定所述至少一个盘所涉及的至少一个物理存储单元;
确定与至少一个物理存储单元相对应的逻辑存储地址的范围;
禁用针对所述逻辑存储地址的范围的数据访问操作;
将所述至少一个盘中的数据重建至备用盘中;以及
响应于所述数据重建完成,启用针对所述逻辑存储地址的范围的数据访问操作。
16.根据权利要求10所述的设备,其中所述动作还包括:
确定所述第一虚拟存储单元集合中的第二虚拟存储单元被访问的热度;以及
响应于所述热度超过阈值,将所述第二虚拟存储单元从所述第一虚拟存储单元集合迁移至第二虚拟存储单元集合中,
其中所述第二虚拟存储单元集合被映射到均匀分布在第二组盘中的多个物理存储单元,并且所述第二组盘的性能超过所述第一组盘的性能。
17.根据权利要求10所述的设备,其中所述动作还包括:
确定所述第一虚拟存储单元集合中的第二虚拟存储单元被访问的热度;以及
响应于所述热度低于阈值,将所述第二虚拟存储单元从所述第一虚拟存储单元集合迁移至第三虚拟存储单元集合中,
其中所述第三虚拟存储单元集合被映射到均匀分布在第三组盘中的多个物理存储单元,并且所述第一组盘的性能超过所述第三组盘的性能。
18.根据权利要求10所述的设备,其中所述数据访问操作包括读操作和写操作中的任一项。
19.一种计算机程序产品,所述计算机程序产品被有形地存储在计算机存储介质中并且包括机器可执行指令,所述机器可执行指令在由设备执行时使所述设备执行根据权利要求1-9中的任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911039303.3A CN112748848A (zh) | 2019-10-29 | 2019-10-29 | 用于存储管理的方法、设备和计算机程序产品 |
US16/878,957 US11119703B2 (en) | 2019-10-29 | 2020-05-20 | Utilizing a set of virtual storage units distributed across physical storage units |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911039303.3A CN112748848A (zh) | 2019-10-29 | 2019-10-29 | 用于存储管理的方法、设备和计算机程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112748848A true CN112748848A (zh) | 2021-05-04 |
Family
ID=75586778
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911039303.3A Pending CN112748848A (zh) | 2019-10-29 | 2019-10-29 | 用于存储管理的方法、设备和计算机程序产品 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11119703B2 (zh) |
CN (1) | CN112748848A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023093122A1 (zh) * | 2021-11-25 | 2023-06-01 | 华为技术有限公司 | 处理器、地址转换的方法、装置、存储介质及程序产品 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11461029B1 (en) * | 2021-03-18 | 2022-10-04 | EMC IP Holding Company LLC | Techniques for storage management |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101075211A (zh) * | 2007-06-08 | 2007-11-21 | 马彩艳 | 基于sector访问的flash存储器的存储管理 |
CN101625627A (zh) * | 2009-08-05 | 2010-01-13 | 成都市华为赛门铁克科技有限公司 | 写入数据的方法、磁盘冗余阵列的控制器及磁盘冗余阵列 |
US20110197023A1 (en) * | 2009-03-18 | 2011-08-11 | Hitachi, Ltd. | Controlling methods of storage control device and virtual volumes |
US20120002469A1 (en) * | 2010-07-02 | 2012-01-05 | Kabushiki Kaisha Toshiba | Nonvolatile semiconductor memory device |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050114595A1 (en) * | 2003-11-26 | 2005-05-26 | Veritas Operating Corporation | System and method for emulating operating system metadata to provide cross-platform access to storage volumes |
-
2019
- 2019-10-29 CN CN201911039303.3A patent/CN112748848A/zh active Pending
-
2020
- 2020-05-20 US US16/878,957 patent/US11119703B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101075211A (zh) * | 2007-06-08 | 2007-11-21 | 马彩艳 | 基于sector访问的flash存储器的存储管理 |
US20110197023A1 (en) * | 2009-03-18 | 2011-08-11 | Hitachi, Ltd. | Controlling methods of storage control device and virtual volumes |
CN101625627A (zh) * | 2009-08-05 | 2010-01-13 | 成都市华为赛门铁克科技有限公司 | 写入数据的方法、磁盘冗余阵列的控制器及磁盘冗余阵列 |
US20120002469A1 (en) * | 2010-07-02 | 2012-01-05 | Kabushiki Kaisha Toshiba | Nonvolatile semiconductor memory device |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023093122A1 (zh) * | 2021-11-25 | 2023-06-01 | 华为技术有限公司 | 处理器、地址转换的方法、装置、存储介质及程序产品 |
Also Published As
Publication number | Publication date |
---|---|
US11119703B2 (en) | 2021-09-14 |
US20210124533A1 (en) | 2021-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11379142B2 (en) | Snapshot-enabled storage system implementing algorithm for efficient reclamation of snapshot storage space | |
US11386042B2 (en) | Snapshot-enabled storage system implementing algorithm for efficient reading of data from stored snapshots | |
CN110413201B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
US10282136B1 (en) | Storage system and control method thereof | |
US20170177224A1 (en) | Dynamic storage transitions employing tiered range volumes | |
CN109213619B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
CN109725823B (zh) | 用于管理混合存储盘阵列的方法和设备 | |
CN109725830B (zh) | 管理独立磁盘冗余阵列的方法、设备和存储介质 | |
US10365845B1 (en) | Mapped raid restripe for improved drive utilization | |
CN112748867B (zh) | 用于存储管理的方法、电子设备以及计算机程序产品 | |
US11320988B2 (en) | Method, apparatus and computer program product for managing disk array | |
CN113590019B (zh) | 用于存储管理的方法、电子设备和计算机程序产品 | |
US11287996B2 (en) | Method, device and computer program product for storing data | |
CN112748848A (zh) | 用于存储管理的方法、设备和计算机程序产品 | |
CN111857557B (zh) | Raid类型转换的方法、设备和计算机程序产品 | |
CN113126890A (zh) | 用于存储的方法、设备和计算机程序产品 | |
CN111857559A (zh) | 用于管理元数据的方法、装置和计算机程序产品 | |
US20170255530A1 (en) | User-defined failure domains for software-defined storage systems | |
CN111124249A (zh) | 用于数据处理的方法、设备和计算机程序产品 | |
CN114442910A (zh) | 管理存储系统的方法、电子设备和计算机程序产品 | |
JP2016149048A (ja) | ストレージ制御装置、ストレージシステム、および制御プログラム | |
US10698618B1 (en) | User-defined failure domains for software-defined storage systems | |
CN112748862A (zh) | 用于管理盘的方法、电子设备和计算机程序产品 | |
CN111857560A (zh) | 用于管理数据的方法、设备和计算机程序产品 | |
US20210334042A1 (en) | Data storage method, device and computer program product |
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 |