CN116010161A - 用于管理存储系统中的区块的方法、设备和程序产品 - Google Patents

用于管理存储系统中的区块的方法、设备和程序产品 Download PDF

Info

Publication number
CN116010161A
CN116010161A CN202111228595.2A CN202111228595A CN116010161A CN 116010161 A CN116010161 A CN 116010161A CN 202111228595 A CN202111228595 A CN 202111228595A CN 116010161 A CN116010161 A CN 116010161A
Authority
CN
China
Prior art keywords
reserved
blocks
storage
data
type
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
Application number
CN202111228595.2A
Other languages
English (en)
Inventor
王胜
陈欢
迟大鹏
柳文阳
田颖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EMC Corp
Original Assignee
EMC IP Holding Co LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by EMC IP Holding Co LLC filed Critical EMC IP Holding Co LLC
Priority to CN202111228595.2A priority Critical patent/CN116010161A/zh
Priority to US17/826,396 priority patent/US11995358B2/en
Publication of CN116010161A publication Critical patent/CN116010161A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

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)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开涉及用于管理存储系统中的区块的方法、设备和程序产品。存储系统包括支持冗余存储策略的多个存储设备,并且在一种方法中,基于分别位于多个存储设备中一组第一类型的预留区块生成存储系统的预留区域,一组第一类型的预留区块用于在多个存储设备中出现故障存储设备时支持针对故障存储设备的重建操作。基于分别位于多个存储设备中的预留区域以外的一组数据区块生成存储系统的数据区域,数据区域用于向存储系统的用户提供数据存储。在此,一组第一类型的预留区块的预留区块尺寸小于一组数据区块中的数据区域中的数据区块的数据区块尺寸。可以降低存储系统的区块数量,进而降低与各个区块相关联的元数据涉及的存储和计算资源的开销。

Description

用于管理存储系统中的区块的方法、设备和程序产品
技术领域
本公开的各实现方式涉及存储系统,更具体地,涉及用于管理存储系统中的区块的方法、设备和计算机程序产品。
背景技术
随着数据存储技术的发展,各种数据存储设备已经能够向用户提供越来越高的数据存储能力,并且数据访问速度也有了很大程度的提高。在提高数据存储能力的同时,用户对于数据可靠性和存储系统的响应时间也提供了越来越高的需求。目前,已经开发出了基于独立磁盘冗余阵列(Redundant Array of Independent Disks,RAID)的多种数据存储系统来提高数据的可靠性。当存储系统中的一个或者多个磁盘出现故障时,可以从其他正常操作的磁盘上的数据来重建故障磁盘中的数据。
目前已经开发出了映射RAID(Mapped RAID),在该映射RAID中,磁盘是一个逻辑概念并且可以包括多个区块。一个逻辑磁盘中包括的多个区块可以分布在存储系统的资源池中的不同物理存储设备上。对于映射RAID的一个条带中的多个区块而言,该多个区块应当分布在不同的物理存储设备上。这使得当该多个区块中的一个区块所在的物理存储设备出现故障时,可以执行重建操作以便从其他区块所在的物理存储设备中恢复数据。
随着存储设备的存储容量的增加,存储设备可以包括越来越多的区块。此时,与每个区块相对应的元数据的数量也将会显著增加。这导致元数据的存储和计算将会占用大量资源。因而,期望可以更为有效的方式划分存储设备中的区块。
发明内容
因而,期望能够开发并实现一种以更为有效的方式来管理存储系统中的区块的技术方案。期望该技术方案能够与现有的存储系统相兼容,并且通过改造现有存储系统的各种配置,来以更为有效的方式管理存储系统中的区块。
根据本公开的第一方面,提供了一种用于管理存储系统中的区块的方法。在此,存储系统包括支持冗余存储策略的多个存储设备,并在该方法中,可以基于分别位于多个存储设备中一组第一类型的预留区块生成存储系统的预留区域,一组第一类型的预留区块用于在多个存储设备中出现故障存储设备时支持针对故障存储设备的重建操作。可以基于分别位于多个存储设备中的预留区域以外的一组数据区块生成存储系统的数据区域,数据区域用于向存储系统的用户提供数据存储,其中一组第一类型的预留区块的预留区块尺寸小于一组数据区块中的数据区域中的数据区块的数据区块尺寸。
根据本公开的第二方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器耦合的存储器,存储器具有存储于其中的指令,指令在被至少一个处理器执行时使得设备执行根据本公开的第一方面的方法。
根据本公开的第三方面,提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,机器可执行指令用于执行根据本公开的第一方面的方法。
附图说明
结合附图并参考以下详细说明,本公开各实现方式的特征、优点及其他方面将变得更加明显,在此以示例性而非限制性的方式示出了本公开的若干实现方式。在附图中:
图1A和1B分别示意性示出了其中可以实现本公开的实现方式的存储系统的框图;
图2示意性示出了其中可以实现本公开的实现方式的示例性环境的框图;
图3示意性示出了图2中的存储资源池的图示;
图4示意性示出了根据本公开的示例性实现方式的存储系统的框图;
图5示意性示出了根据本公开的示例性实现方式的用于管理存储系统的方法的流程图;
图6示意性示出了根据本公开的示例性实现方式的支持扩展的存储系统的框图;
图7示意性示出了根据本公开的示例性实现方式的存储系统中的预留区域的框图;
图8示意性示出了根据本公开的示例性实现方式的存储系统中的数据区域的框图;以及
图9示意性示出了根据本公开的示例性实现的用于管理存储系统的设备的框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实现。虽然附图中显示了本公开的优选实现,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实现所限制。相反,提供这些实现是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实现”和“一个实现”表示“至少一个示例实现”。术语“另一实现”表示“至少一个另外的实现”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
在本公开的上下文中,存储系统可以是基于RAID的存储系统。基于RAID的存储系统可以将多个存储设备组合起来,成为一个磁盘阵列。通过提供冗余的存储设备,可以使得整个磁盘组的可靠性大大超过单一的存储设备。RAID可以提供优于单一的存储设备的各种优势,例如,增强数据整合度,增强容错功能,增加吞吐量或容量,等等。RAID存在多个标准,例如RAID-1,RAID-2,RAID-3,RAID-4,RAID-5,RAID-6,RAID-10,RAID-50等等。
图1A示意性示出了其中可以实现本公开的方法的存储系统100A的示意图。在图1A所示的存储系统中,以包括五个独立存储设备(110、112、114、116以及118)的RAID-5(4D+1P,其中4D表示存储系统中包括四个存储设备来用于存储数据,1P表示存储系统中包括一个存储设备来用于存储P校验)阵列为示例,来说明RAID的工作原理。应当注意,尽管图1A中示意性示出了五个存储设备,在其他的实现方式中,根据RAID的等级不同,还可以包括更多或者更少的存储设备。尽管图1A中示出了条带120、122、124、…、126,在其他的示例中,RAID系统还可以包括不同数量的条带。
在RAID中,条带可以跨越多个物理存储设备(例如,条带120跨越存储设备110、112、114、116以及118)。可以简单地将条带理解为多个存储设备中的满足一定地址范围的存储区域。在条带120中存储的数据包括多个部分:存储在存储设备110上的数据块D00、存储在存储设备112上的数据块D01、存储在存储设备114上的数据块D02、存储在存储设备116上的数据块D03、以及存储在存储设备118上的数据块P0。在此示例中,数据块D00、D01、D02、以及D03是被存储的数据,而数据块P0是被存储数据的P校验。
在其他条带122和124中存储数据的方式也类似于条带120,不同之处在于,有关其他数据块的校验可以存储在不同于存储设备118的存储设备上。以此方式,当多个存储设备110、112、114、116以及118中的一个存储设备出现故障时,可以从其他的正常的存储设备中恢复出故障设备中的数据。
图1B示意性示出了存储系统110A的重建过程的示意图100B。如图1B所示,当一个存储设备(例如,以阴影示出的存储设备116)出现故障时,可以从其余的正常操作的多个存储设备110、112、114、118中恢复数据。此时,可以向RAID中加入新的后备存储设备118B来替代存储设备118,以此方式,可以将恢复的数据写入118B并实现系统的重建。
应当注意,尽管在上文中参见图1A和图1B描述了包括5个存储设备(其中4个存储设备(4D)用于存储数据,1个存储设备(1P)用于存储校验)的RAID-5的存储系统,根据其他RAID等级的定义,还可以存在包括其他数量的存储设备的存储系统。例如,基于RAID-6的定义,可以利用两个存储设备来分别存储校验P和Q。又例如,基于三重校验RAID的定义,可以利用三个存储设备来分别存储校验P、Q和R。
随着分布式存储技术的发展,图1A和1B所示的存储系统中的各个存储设备110、112、114、116以及118可以不再局限于物理存储设备,而是可以是虚拟存储设备。例如,存储设备110上的各个区块可以分别来自于资源池中的不同的物理存储设备(在下文中将简称为存储设备)。图2示意性示出了其中可以实现本公开的方法的示例性环境的框图。如图2所示,存储资源池270可以包括多个物理存储设备210、211、212、213、214、215、216、以及217。此时,该多个存储设备中的存储空间可以被分配给多个用户的存储系统290、…、292。此时,用户的存储系统290、…、292可以经由网络280来访问存储资源池270中的各个存储设备中的存储空间。将会理解,尽管图2仅示意性示出了存储资源池270包括8个存储设备的情况,根据本公开的示例性实现方式,存储资源池270还可以包括更多或者更少的存储设备。
图3示意性示出了如图2所示的存储资源池270的更多信息的图示。资源池270可以包括多个存储设备210至217。每个存储设备可以包括多个区块(例如,位于数据区域312中的数据区块和位于预留区域310中的预留区块),其中图例320表示空闲的区块,图例322表示用于RAID条带1的区块,图例324所示表示用于RAID条带2的区块。此时,用于RAID条带1的区块D11、D22、D33、D44分别用于存储该条带的数据块,而区块D75用于存储数据的校验。用于RAID条带2的区块D01、D12、D23、D34分别用于存储该条带的数据块,而区块D45用于存储数据的校验。
如图3中所示,地址映射330示出了条带与条带中的区块所在地址之间的关联关系。例如,RAID条带1可以包括5个区块:D11、D22、D33、D44和D75,这5个区块分别位于存储设备211、212、213、214和217。具体地如图3所示,区块D11是存储设备211中的第一个区块,区块D22是存储设备212中的第二个区块。如图3所示,在各个存储设备中还可以存在预留的预留区域310,以便用于在资源池中的一个存储设备出现故障时,可以选择各个存储设备中的预留区域310中的区块,来重建故障存储设备中的各个区块。
应当注意,图3仅以4D+1P的RAID-5存储系统为示例示出了各个条带中的区块如何分布在资源池的多个存储系统中。当采用基于其他RAID等级时,本领域技术人员可以基于上文的原理来实现具体细节。例如,在6D+1P+1Q的存储系统中,每个条带中的8个区块可以分布在多个存储设备上。
随着硬件存储技术的发展,目前存储设备的容量不断增加,这使得每个存储设备可以包括更多的区块(包括数据区块和预留区块两种类型)。然而,在存储系统的运行期间需要为每个区块维护元数据,区块数量的增加导致元数据的数据量也相应地增加。进一步,与元数据的存储和计算相关的资源开销也大大增加。目前已经提出了将存储设备划分为具有更大尺寸的区块的技术方案,然而,区块尺寸的增加导致不能充分利用每个存储设备中的存储空间。
为了解决上述技术方案中的至少某些缺陷,根据本公开的一个示例性实现方式,提供了一种用于管理存储系统中的区块的技术方案。在下文中,参见图4描述根据本公开的一个示例性实现方式的概要。图4示意性示出了根据本公开的示例性实现方式的存储系统400的框图。如图4所示,提出了一种存储系统400,该存储系统400可以包括多个存储设备210、211、212、213、…、以及217等。将会理解,在此的存储设备的数量是基于存储系统400所支持的冗余存储策略来确定的。假设存储系统400是基于4D+1P的存储系统,则存储设备的最小数量为4+1=5。在考虑提供预留存储空间的情况下,存储系统的预留区域至少包括1个存储设备的容量。此时,存储系统中的存储设备的最小数量为5+1=6。进一步,基于易于管理的目的,存储系统400所包括的存储设备的最大数量通常被设置为64(或者其他数值)。
在存储系统400中,可以提供预留区域410和数据区域420。在此,在每个存储系统具有相同容量的情况下,可以在每个存储设备中分配相同数量的预留区块来生成预留区域410,并且在每个存储设备中分配相同数量的数据区块来生成数据区域420。如图4所示,预留区域410中的预留区块与数据区域420中的区块可以具有不同的尺寸。例如,预留区块的尺寸可以小于数据区块的尺寸。
利用本公开的示例性实现方式,通过为预留区块和数据区块设置不同的尺寸,在不损失存储系统的现有性能的情况下,可以将数据区块设置为较大数值,并且将预留区块设置为较小数值。此时,每个存储设备可以包括较少的区块总量。通过降低区块总量,可以降低各个区块的相关元数据的数据总量,进而降低与元数据的存储和计算相关的各种资源开销。进一步,设置不同大小的区块可以更加有益于充分利用每个存储设备中的存储空间。
在下文中,将参见图5描述根据本公开的一个示例性实现方式的更多细节。图5示意性示出了根据本公开的示例性实现方式的用于管理存储系统中的区块的方法500的流程图。在框510处,基于分别位于多个存储设备中一组第一类型的预留区块生成存储系统的预留区域410。在此,一组第一类型的预留区块用于在多个存储设备中出现故障存储设备时支持针对故障存储设备的重建操作。将会理解,相比于数据区块,在此的预留区块可以具有较小的尺寸。在下文中,将提供有关生成预留区域410的更多细节。
将会理解,存储系统400的基本功能是在多个存储设备中出现故障存储设备时,可以支持故障存储设备的数据重建操作。因而,存储系统中的预留区块的尺寸和数量必须满足数据重建的基本需求。根据本公开的一个示例性实现方式,可以考虑在不同条件下的预留区块的尺寸。假设存储系统包括n个存储设备,则将由n个存储设备来提供预留区域。通常而言,在4D+1P的存储系统中,预留区域的总容量为一个存储设备的容量,假设存储设备的容量为Sizedisk,则每个存储设备可以包括Sizedisk/(n-1)的预留容量。
当存储系统包括64个(最大数量)存储设备的极端情况时,将由64-1=63个存储设备提供用于重建操作的预留区域,此时该极端情况涉及预留区块的最大尺寸。根据本公开的一个示例性实现方式,为了确定第一类型的预留区块的最大尺寸,可以确定对应于冗余存储策略的多个存储设备的最大数量,进一步,可以基于最大数量和存储设备的容量,确定第一类型的预留区块的最大尺寸。
在下文中,将返回图4描述确定最大尺度的情况。如图6所示,假设存储系统包括64个(最大数量)存储设备210、211、212、213、...和217,可以基于该极端情况来确定预留区块的最大尺寸。此时,每个存储设备将要提供Sizedisk/(64-1)的预留容量。具体地,可以基于如下公式1来确定预留区块的最大尺寸:
Figure BDA0003315140190000081
其中Sizede_small表示第一类型的预留区块的最大尺寸,为Sizedisk表示存储设备的容量的最大值,nmax表示存储系统中包括的多个存储设备的最大数量,并且m表示正整数。利用本公开的示例性实现方式,可以基于简单的数学运算,来快速确定预留区块的最大尺寸。将会理解,公式1仅仅示意性示出了用于确定最大尺寸的示例,当m=1时可以确定最大尺寸,并且可以将m设置为其他数值,例如当m=2时,两个预留区块的组合可以对应于具有最大尺寸的一个预留区块。
根据本公开的一个示例性实现方式,在已经确定预留区块的最大尺寸之后,可以进一步确定每个存储设备中的第一类型的预留区块的最小数量。在本公开的上下文中,每个存储设备可以包括相同数量的预留区块。此时,可以基于预留区域的预定容量和第一类型的预留区块的最大尺寸,确定每个存储设备包括的预留区块的最小数量。将会理解,在此的最小数量是指为了支持故障重建操作,每个存储设备包括的预留区块的数量必须大于或者等于该最小数量;否则,预留区域中的存储空间将不足以存储重建后的数据。
将会理解,在已经确定预留区块的大小的情况下,一个存储设备中的预留区块的最小数量取决于存储系统的预留区域的容量。也即,最小数量应该大于或者等于故障驱动器上的区块数量。在极端情况下,该数量是由预留区域的预定容量(通常是一个存储设备的容量)和预留区块的最大尺寸确定的。由于上述情况是极端情况,只要最小数量满足该极端情况,则以此方式生成的预留区域的总容量即可满足数据重建的需求。在4D+1P的存储系统中,最少需要5个存储设备和1个后备存储设备。此时,可以基于如下公式2来确定每个存储设备包括的第一类型的预留区块的最小数量:
Figure BDA0003315140190000091
其中nde_spare表示用于支持故障数据重建的第一类型的预留区块的最小数量,Sizedisk_max表示存储设备的最大容量,Sizede_small表示第一类型的预留区块的尺寸(该尺寸可以小于或者等于由公式1确定的预留区块的最大尺寸),并且Widthraid表示存储系统的宽度(在此示例中,Widthraid=4+1=5)。
在已经分别基于公式1和公式2确定了第一类型的预留区块的最大尺寸和每个存储设备包括的预留区块的最小数量之后,可以基于该最大尺寸和最小数量,从存储设备中确定至少一个第一类型的预留区块,以用于生成预留区域410。利用本公开的示例性实现方式,基于上述公式确定的最大尺寸和最小数量仅仅是示意性的,并且上述公式表示了极端情况下的最低要求。在生成预留区域410时,预留区块的尺寸可以被设置为不大于该最大尺寸的任意数值(例如,该最大尺寸的一半、1/4或者其他比例)。备选地和/或附加地,每个存储设备中的预留区块的数量可以被设置为不低于该最小数量的任意数值。
利用本公开的示例性实现方式,基于上文描述的方式生成的第一类型的预留区域410可以满足故障数据重建的基本需求。换言之,当存储系统中出现故障存储设备时,可以基于RAID原理来将故障存储设备中的数据重建至预留区域410中。此时预留区域410将足以容纳与故障存储设备相对应的被重建的全部数据。将会理解,上文仅以4D+1P的存储系统作为示例描述了具体实现方式,当存储系统采用其他冗余存储策略(例如,6D+1P+1Q等)时,可以相应地修改上文的公式1和2。
上文已经描述有关利用第一类型的预留区块410来支持故障重建操作的基本要求。在下文中,将描述有关利用预留区域支持存储系统扩展的进一步要求。将会理解,随着存储系统400的使用,存储系统400中的存储设备的数量可能会变化。例如,当存储系统400中的可用存储空间不足时,可以向存储系统400中加入后备存储设备,以便扩充存储系统400的空间。根据本公开的一个示例性实现方式,预留区域可以包括第二类型的预留区块以用于支持存储系统的扩展。在下文中,参见图6描述有关存储系统扩展的更多细节。
图6示意性示出了根据本公开的示例性实现方式的支持扩展的存储系统的框图600。如图6所示,除了第一类型的预留区域410以外,每个存储系统还可以包括第二类型的预留区域610,并且该预留区域610可以在多个存储设备的数量出现变化时支持存储系统中的扩展操作。在扩展过程中,可以向存储系统添加更多的存储设备。在此添加的存储设备的数量可以有所不同,例如,可以向存储系统添加1个、2个、或者更多的存储设备。
在下文中,将考虑存储系统中的全部存储设备为“满”的极端情况描述有关扩展过程的更多细节。假设同时向存储系统添加多个存储设备并且多个存储设备的数量大于或者等于RAID宽度,则可以在无需数据迁移的情况下直接利用新添加的多个存储设备中的空闲存储空间,来构造跨越多个存储设备的条带。然而,如果新添加的存储设备的数量小于RAID宽度时,则全部空闲区块都位于新添加的空闲存储设备,因而不能立即生成跨越多个存储设备的满足RAID宽度的条带。在使用空闲存储设备中的存储空间之前,需要在存储系统内部迁移数据,以便形成满足存储系统的RAID宽度要求的条带。在下文中,参见图7描述有关预留区域中的数据迁移的更多细节。
图7示意性示出了根据本公开的示例性实现方式的存储系统中的预留区域的框图700。具体地,图7示意性示出了向存储系统添加仅一个存储设备710的极端情况。存储系统最初包括多个存储设备210、211、212、213、…、217,并且每个存储设备可以包括第一类型的预留区域410、第二类型的预留区域710以及数据区域420。可以向存储系统添加空闲的存储设备710,存储设备710的大小与其他存储设备相同。
将会理解,每个存储设备可以具有类似的结构,类似地,存储设备710可以包括第一类型的预留区域732、第二类型的预留区域734和数据区域730。在执行扩展操作之后,数据区域420和数据区域730两者一起作为扩展后存储系统的数据区域,预留区域710和734两者一起作为扩展后存储系统的第二类型的预留区域,预留区域410和732两者一起作为扩展后存储系统的第一类型的预留区域。
在添加存储设备710之后,全部空闲空间都位于存储设备710中,因而应当首先执行数据迁移操作,以便形成满足RAID宽度的条带。具体地,可以分别将区块730、732、734、736和738(分别位于存储设备210、211、212、213、和217)中的数据迁移至预留区域734中的区块720、722、724、726和728,以便在扩展后的存储系统中形成跨越5个存储设备的空闲条带740。从图7中可见,第二类型的预留区域734需要至少包括5个(也即,存储系统所支持的RAID宽度)区块,才能容纳来自被迁移的5个区块中的数据。换言之,可以基于对应于冗余存储策略的多个存储设备的最小数量(也即,4D+1P的存储系统的RAID宽度),确定位于存储设备中的第二类型的预留区块的数量。具体地,可以基于如下公式3来确定第二类型的预留区域734中所包括的区块数量:
nde_provisioning≥m*Widthraid   公式3
其中nde_provisionig表示一个存储设备中的用于支持扩展操作的第二类型的预留区块的数量,m表示正整数,Widthraid表示存储系统的冗余存储策略所支持的RAID宽度。
上文已经描述了仅向存储系统添加一个存储设备710的极端情况。该极端情况涉及数据迁移的最差情况,并且已经基于该最差情况确定了第二类型的预留区块的最小数量。在极端情况以外的其他情况下(例如,向存储系统添加2个或者更多存储设备),仅需要较少的数据迁移,因而涉及的第二类型的预留区块的数量将会变小。由此,只要每个存储设备中的第二类型的预留区块的数量大于或者等于nde_provisioning,即可满足存储系统的扩展操作的要求。
根据本公开的一个示例性实现方式,可以将第二类型的预留区块设置为与第一类型的预留区块具有相同的尺寸。也即,两种类型的预留区块具有相同尺寸。此时,可以基于两种类型的预留区块的数量总和,来确定每个存储设备中的预留区块的总量。具体地,可以基于如下公式4来确定每个存储设备中的预留区块的数量:
nde_small=nde_spare+nde_provisioning   公式4
其中nde_small表示一个存储设备中的预留区块的数量,nde_spare表示一个存储设备中的第一类型的预留区块的数量(例如,可以基于公式2来确定),nde_provisioning表示一个存储设备中的第二类型的预留区块的数量(例如,可以基于公式3来确定)。以此方式,可以将确定预留区块的数量的问题转换为简单的数学问题,从而确定使用多少预留区块来生成预留区域。
上文已经描述了分别确定存储系统中的第一类型的预留区域和第二类型的预留区域的具体过程。在下文中,将参见图7描述用于确定存储系统的数据区域的更多细节。返回图5,在框520处,基于分别位于多个存储设备中的预留区域以外的一组数据区块生成存储系统的数据区域420,数据区域420用于向存储系统的用户提供数据存储。将会理解,在此的数据区块可以具有较大的尺寸。换言之,预留区块的预留区块尺寸小于数据区域中的数据区块的数据区块尺寸。
根据本公开的一个示例性实现方式,在生成数据区域420时,可以基于预留区块的最大尺寸的倍数,确定数据区块尺寸的最小值。具体地,可以基于如下公式5来确定数据区块尺寸的最小值:
Sizede_large=m×SiZede_small    公式5
其中Sizede_large表示确定数据区块的尺寸,Sizede_small表示预留区块的尺寸的最小值(例如,基于公式1来确定),并且m表示正整数。利用本公开的示例性实现方式,数据区块和预留区块不必具有相同的尺寸,而是可以将数据区块的尺寸设置为预留区块的倍数。例如,将数据区块的尺寸设置为预留区块的尺寸的2倍(或者其他倍数),可以大大降低每个存储设备中的数据区块的数量(例如,可以降低一半数量),进而降低区块的总数量并由此降低与区块相元数据的存储和计算资源开销。
根据本公开的一个示例性实现方式,可以基于对应于存储策略的多个存储设备的最小数量,确定与数据区块数量相关联预定条件。进一步,可以基于多个存储设备中的存储设备的容量、最小值和预定条件,确定每个存储设备中的数据区块数量。将会理解,每个存储设备的总容量等于预留区域的容量和数据区域的容量的总和。因而,数据区块的最大尺寸受到存储设备的总容量和预留区域的容量的影响。具体地,可以基于如下公式6来确定数据区块的最大尺寸。
Sizede_large<=(Sizedisk-Sizede_small*nde_small)/nde_large   公式6
其中Sizede_large表示数据区块的尺寸,Sizedisk表示存储设备的容量,Sizede_small表示预留区块的尺寸,nde_small表示存储设备中的预留区块的数量,以及nde_large表示存储设备中的数据区块的数量。也即,数据区块的尺寸应当同时满足公式5和公式6的要求。根据本公开的一个示例性实现方式,可以选择数据区块的尺寸,并且使得该尺寸同时满足同时5和6的要求。
进一步,可以基于多个存储设备中的存储设备的容量和数据区块尺寸的最小值,确定位于存储设备的数据区块的数据区块数量。在下文中,参见图8描述有关生成数据区域的更多细节。图8示意性示出了根据本公开的示例性实现方式的存储系统中的数据区域的框图800。图8示出了存储设备710中的数据区域730的更多细节。继续图7的示例,假设存储设备210、211、212、213、...、217已经为“满”,在向存储系统添加存储设备710之后,仅有存储设备710的数据区域730包括多个空闲区块820、822、824、826以及828。因而,在使用这些空闲区块之前,需要将存储设备210、211、212、213、...、217中的数据迁移至新添加的存储设备710中,进而在扩展后的存储系统中形成满足RAID宽度的条带。
具体地,可以分别将区块830、832、834、836和838(分别位于存储设备210、211、212、213、和217)中的数据迁移至数据区块730中的区块820、822、824、826和828,以便在存储系统中形成跨越5个存储设备的空闲条带840。从图8中可见,数据区域730需要至少包括5个区块(也即,存储系统所支持的RAID宽度),才能容纳来自被迁移的5个区块的数据。换言之,可以基于对应于冗余存储策略的多个存储设备的最小数量(也即,4D+1P的存储系统的RAID宽度),确定位于每个存储设备中的数据区块的数量。具体地,可以基于如下公式7来确定数据区域730中所包括的数据区块数量:
nde_large≥m*Widthraid   公式7
其中nde_large表示存储设备中的数据区块的数量,m表示正整数,Widthraid表示存储系统的冗余存储策略所支持的RAID宽度。以此方式,可以以简单并且有效的方式确定每个存储设备中的数据区块的数量。根据本公开的一个示例性实现方式,可以基于公式5、6、7来确定数据区块的尺寸和各个存储设备中包括的数据区块的数量。以此方式,可以使得生成的数据区域可以支持存储系统扩展的需求,同时确保数据区块的数量尽量小。以此方式,可以降低存储系统中涉及的元数据的数量和相应的存储和计算开销,同时可以提高各个存储设备的使用率。
将会理解,上文仅以4D+1P的存储系统作为示例描述了用于生成预留区域和数据区域的过程。根据本公开的一个示例性实现方式,还可以在基于其他冗余存储规则的存储系统中应用上文描述的方法。例如,在6D+1P+1Q的存储系统中,RAID宽度将变为6+1+1=8,并且本领域技术人员可以基于上文描述的原理来相应地修改各个公式,以便适用于6D+1P+1Q的存储系统。
将会理解,上文示例中的各个存储设备可以具有相同或者不同的容量。根据本公开的一个示例性实现方式,可以将最小容量作为各个存储设备的容量,并且应用上文描述的方法。根据本公开的一个示例性实现方式,为了进一步充分利用每个存储设备的存储空间,具有不同容量的存储设备可以包括不同数量的数据区块。例如,具有较小容量的存储设备可以包括较少的数据区块,具有较大容量的存储设备可以包括较多的数据区块。
在下文中,将以包括6个存储设备(每个存储设备的容量为12TB)的存储系统作为具体示例,描述应用上文描述的方法的执行过程。当按照已有的技术方案(预留区块和数据区块具有相同大小)来生成预留区域和数据区域时,每个存储设备可以包括488个区块(包括预留区块和数据区块两者)。此时,存储系统将包括488*6=2928个区块。这些区块将涉及大量元数据,当存储系统中的存储设备的数量更多(例如,成百上千)时,则元数据的数据量将会更多。
可以向上述存储系统应用上文描述的方法500,具体地,可以基于上文描述的公式来确定预留区块的尺寸和数量、并且确定数据区块的尺寸和数量。此时,每个存储设备可以包括216个区块(包括186个预留区块和30个数据区块)。具体地,预留区块的尺寸可以被设置为不大于12*1024/(64-1)=195GB))。此时,可以选择195、97、48等中的任意数值。假设将预留区块的尺寸设置为97GB,每个存储设备至少包括12*1024/5/97=26个第一类型的预留区块。进一步,为了支持存储系统的扩展操作,每个存储设备可以包括5个第二类型的预留区块。
此时,每个存储设备中的其余存储空间可以表示为(12*1024–97*(26+5))/5=1856GB。因而,数据区块的尺寸可以被设置为1856、928、464、232、…、等。进一步,数据区块的尺寸应当是预留区块的尺寸(即,97GB)的倍数,因而可以选择最接近数据区块的最大尺寸1856GB的数值1843GB,来作为数据区块的尺寸。尽管在存储系统中存在浪费,此时每个存储设备仅包括5个数据区块。存储系统中的全部区块(包括预留区块和数据区块)的总数为:(5+26+5)*6=216。相比于利用已有技术方案生成的2928个区块而言,利用本公开的示例性实现方式可以将区块总量降低至216个。此时,存储系统中的元数据的数据量将会大大降低。以此方式,可以降低与元数据相关的存储资源和计算资源的开销,进而提高存储系统的整体性能。
在上文中已经参见附图详细描述了根据本公开的方法的示例,在下文中将描述相应的装置的实现。根据本公开的一个示例性实现方式,提供了一种用于管理存储系统中的区块的装置。在此,存储系统包括支持冗余存储策略的多个存储设备,并且该装置包括:预留区域生成模块,配置用于基于分别位于多个存储设备中一组第一类型的预留区块生成存储系统的预留区域,一组第一类型的预留区块用于在多个存储设备中出现故障存储设备时支持针对故障存储设备的重建操作;数据区域生成模块,配置用于基于分别位于多个存储设备中的预留区域以外的一组数据区块生成存储系统的数据区域,数据区域用于向存储系统的用户提供数据存储。根据本公开的一个示例性实现方式,一组第一类型的预留区块的预留区块尺寸小于一组数据区块中的数据区域中的数据区块的数据区块尺寸。根据本公开的示例性实现方式,该装置进一步包括用于执行上文描述的方法500中的其他步骤的模块。
图9示意性示出了根据本公开的示例性实现的用于管理存储系统中的区块的设备900的框图。如图所示,设备900包括中央处理单元(CPU)901,其可以根据存储在只读存储器(ROM)902中的计算机程序指令或者从存储单元908加载到随机访问存储器(RAM)903中的计算机程序指令,来执行各种适当的动作和处理。在RAM 903中,还可存储设备900操作所需的各种程序和数据。CPU 901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
设备900中的多个部件连接至I/O接口905,包括:输入单元906,例如键盘、鼠标等;输出单元907,例如各种类型的显示器、扬声器等;存储单元908,例如磁盘、光盘等;以及通信单元909,例如网卡、调制解调器、无线通信收发机等。通信单元909允许设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法500,可由处理单元901执行。例如,在一些实现中,方法500可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实现中,计算机程序的部分或者全部可以经由ROM 902和/或通信单元909而被载入和/或安装到设备900上。当计算机程序被加载到RAM 903并由CPU 901执行时,可以执行上文描述的方法500的一个或多个步骤。备选地,在其他实现中,CPU 901也可以以其他任何适当的方式被配置以实现上述过程/方法。
根据本公开的示例性实现,提供了一种电子设备,包括:至少一个处理器;易失性存储器;以及与至少一个处理器耦合的存储器,存储器具有存储于其中的指令,指令在被至少一个处理器执行时使得设备执行一种用于管理存储系统中的区块的动作,存储系统包括支持冗余存储策略的多个存储设备。该动作包括:基于分别位于多个存储设备中一组第一类型的预留区块生成存储系统的预留区域,一组第一类型的预留区块用于在多个存储设备中出现故障存储设备时支持针对故障存储设备的重建操作;基于分别位于多个存储设备中的预留区域以外的一组数据区块生成存储系统的数据区域,数据区域用于向存储系统的用户提供数据存储,其中一组第一类型的预留区块的预留区块尺寸小于一组数据区块中的数据区域中的数据区块的数据区块尺寸。
根据本公开的一个示例性实现方式,生成预留区域包括:确定第一类型的预留区块的最大尺寸;确定位于多个存储设备中的存储设备中的第一类型的预留区块的最小数量;以及基于最大尺寸和最小数量,从存储设备中确定至少一个第一类型的预留区块,以用于生成预留区域。
根据本公开的一个示例性实现方式,确定最大尺寸包括:确定对应于冗余存储策略的多个存储设备的最大数量;以及基于最大数量和存储设备的容量,确定第一类型的预留区块的最大尺寸。
根据本公开的一个示例性实现方式,确定最小数量包括:基于预留区域的预定容量和第一类型的预留区块的最大尺寸,确定最小数量。
根据本公开的一个示例性实现方式,生成预留区域进一步包括:基于分别位于多个存储设备中一组第二类型的预留区块生成预留区域,一组第二类型的预留区块用于在多个存储设备的数量出现变化时支持存储系统中的扩展操作。
根据本公开的一个示例性实现方式,基于一组第二类型的预留区块生成预留区域包括:基于对应于存储策略的多个存储设备的最小数量,确定位于存储设备中的第二类型的预留区块的数量。
根据本公开的一个示例性实现方式,第二类型的预留区块和第一类型的预留区块具有相同的尺寸,以及生成预留区域进一步包括:针对存储设备,基于第一类型的预留区块的最小数量和第二类型的预留区块的数量的和,确定位于存储设备中的预留区块的数量。
根据本公开的一个示例性实现方式,生成数据区域包括:基于预留区块的最大尺寸的倍数,确定数据区块尺寸的最大值;以及基于多个存储设备中的存储设备的容量和数据区块尺寸的最大值,确定位于存储设备的数据区块的数据区块数量。
根据本公开的一个示例性实现方式,确定位于存储设备的数据区块的数据区块数量进一步包括:基于对应于存储策略的多个存储设备的最小数量,确定与数据区块数量相关联预定条件;以及基于多个存储设备中的存储设备的容量、最大值和预定条件,确定数据区块数量。
根据本公开的一个示例性实现方式,预定条件包括:数据区块数量为对应于存储策略的多个存储设备的最小数量的整数倍。
根据本公开的示例性实现,提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,机器可执行指令用于执行根据本公开的方法。
根据本公开的示例性实现,提供了一种计算机可读介质。计算机可读介质上存储有机器可执行指令,当机器可执行指令在被至少一个处理器执行时,使得至少一个处理器实现根据本公开方法。
本公开可以是方法、设备、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实现中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实现的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实现的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实现,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实现。在不偏离所说明的各实现的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实现的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文公开的各实现。

Claims (20)

1.一种用于管理存储系统中的区块的方法,所述存储系统包括支持冗余存储策略的多个存储设备,所述方法包括:
基于分别位于所述多个存储设备中一组第一类型的预留区块生成所述存储系统的预留区域,所述一组第一类型的预留区块用于在所述多个存储设备中出现故障存储设备时支持针对所述故障存储设备的重建操作;
基于分别位于所述多个存储设备中的所述预留区域以外的一组数据区块生成所述存储系统的数据区域,所述数据区域用于向所述存储系统的用户提供数据存储,
其中所述一组第一类型的预留区块的预留区块尺寸小于所述一组数据区块中的数据区域中的数据区块的数据区块尺寸。
2.根据权利要求1所述的方法,其中生成所述预留区域包括:
确定所述第一类型的预留区块的最大尺寸;
确定位于所述多个存储设备中的存储设备中的第一类型的预留区块的最小数量;以及
基于所述最大尺寸和所述最小数量,从所述存储设备中选择至少一个第一类型的预留区块,以用于生成所述预留区域。
3.根据权利要求2所述的方法,其中确定所述最大尺寸包括:
确定对应于所述冗余存储策略的所述多个存储设备的最大数量;以及
基于所述最大数量和所述存储设备的容量,确定所述第一类型的预留区块的所述最大尺寸。
4.根据权利要求2所述的方法,其中确定所述最小数量包括:
基于所述预留区域的预定容量和所述第一类型的预留区块的所述最大尺寸,确定所述最小数量。
5.根据权利要求4所述的方法,其中生成所述预留区域进一步包括:
基于分别位于所述多个存储设备中一组第二类型的预留区块生成所述预留区域,所述一组第二类型的预留区块用于在所述多个存储设备的数量出现变化时支持所述存储系统中的扩展操作。
6.根据权利要求5所述的方法,其中基于所述一组第二类型的预留区块生成所述预留区域包括:
基于对应于所述存储策略的所述多个存储设备的最小数量,确定位于所述存储设备中的第二类型的预留区块的数量。
7.根据权利要求6所述的方法,其中所述第二类型的预留区块和所述第一类型的预留区块具有相同的尺寸,以及生成所述预留区域进一步包括:针对所述存储设备,基于所述第一类型的预留区块的最小数量和所述第二类型的预留区块的所述数量的和,确定位于所述存储设备中的预留区块的数量。
8.根据权利要求2所述的方法,其中生成所述数据区域包括:
基于所述预留区块的最大尺寸的倍数,确定所述数据区块尺寸的最大值;以及
基于所述多个存储设备中的存储设备的容量和所述数据区块尺寸的所述最大值,确定位于所述存储设备的数据区块的数据区块数量。
9.根据权利要求8所述的方法,其中确定位于所述存储设备的数据区块的所述数据区块数量进一步包括:
基于对应于所述存储策略的所述多个存储设备的最小数量,确定与所述数据区块数量相关联预定条件;以及
基于所述多个存储设备中的存储设备的容量、所述最大值和所述预定条件,确定所述数据区块数量。
10.根据权利要求9所述的方法,其中所述预定条件包括:所述数据区块数量为对应于所述存储策略的所述多个存储设备的最小数量的整数倍。
11.一种电子设备,包括:
至少一个处理器;
易失性存储器;以及
与所述至少一个处理器耦合的存储器,所述存储器具有存储于其中的指令,所述指令在被所述至少一个处理器执行时使得所述设备执行一种用于管理存储系统中的区块的动作,所述存储系统包括支持冗余存储策略的多个存储设备,所述动作包括:
基于分别位于所述多个存储设备中一组第一类型的预留区块生成所述存储系统的预留区域,所述一组第一类型的预留区块用于在所述多个存储设备中出现故障存储设备时支持针对所述故障存储设备的重建操作;
基于分别位于所述多个存储设备中的所述预留区域以外的一组数据区块生成所述存储系统的数据区域,所述数据区域用于向所述存储系统的用户提供数据存储,
其中所述一组第一类型的预留区块的预留区块尺寸小于所述一组数据区块中的数据区域中的数据区块的数据区块尺寸。
12.根据权利要求11所述的设备,其中生成所述预留区域包括:
确定所述第一类型的预留区块的最大尺寸;
确定位于所述多个存储设备中的存储设备中的第一类型的预留区块的最小数量;以及
基于所述最大尺寸和所述最小数量,从所述存储设备中确定至少一个第一类型的预留区块,以用于生成所述预留区域。
13.根据权利要求12所述的设备,其中确定所述最大尺寸包括:
确定对应于所述冗余存储策略的所述多个存储设备的最大数量;以及
基于所述最大数量和所述存储设备的容量,确定所述第一类型的预留区块的所述最大尺寸。
14.根据权利要求12所述的设备,其中确定所述最小数量包括:
基于所述预留区域的预定容量和所述第一类型的预留区块的所述最大尺寸,确定所述最小数量。
15.根据权利要求14所述的设备,其中生成所述预留区域进一步包括:
基于分别位于所述多个存储设备中一组第二类型的预留区块生成所述预留区域,所述一组第二类型的预留区块用于在所述多个存储设备的数量出现变化时支持所述存储系统中的扩展操作。
16.根据权利要求15所述的设备,其中基于所述一组第二类型的预留区块生成所述预留区域包括:
基于对应于所述存储策略的所述多个存储设备的最小数量,确定位于所述存储设备中的第二类型的预留区块的数量。
17.根据权利要求16所述的设备,其中所述第二类型的预留区块和所述第一类型的预留区块具有相同的尺寸,以及生成所述预留区域进一步包括:针对所述存储设备,基于所述第一类型的预留区块的最小数量和所述第二类型的预留区块的所述数量的和,确定位于所述存储设备中的预留区块的数量。
18.根据权利要求12所述的设备,其中生成所述数据区域包括:
基于所述预留区块的最大尺寸的倍数,确定所述数据区块尺寸的最大值;以及
基于所述多个存储设备中的存储设备的容量和所述数据区块尺寸的所述最大值,确定位于所述存储设备的数据区块的数据区块数量。
19.根据权利要求18所述的设备,其中确定位于所述存储设备的数据区块的所述数据区块数量进一步包括:
基于对应于所述存储策略的所述多个存储设备的最小数量,确定与所述数据区块数量相关联预定条件,其中所述预定条件包括:所述数据区块数量为对应于所述存储策略的所述多个存储设备的最小数量的整数倍;以及
基于所述多个存储设备中的存储设备的容量、所述最大值和所述预定条件,确定所述数据区块数量。
20.一种计算机程序产品,所述计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,所述机器可执行指令用于执行根据权利要求1至10中的任一项所述的方法。
CN202111228595.2A 2021-10-21 2021-10-21 用于管理存储系统中的区块的方法、设备和程序产品 Pending CN116010161A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202111228595.2A CN116010161A (zh) 2021-10-21 2021-10-21 用于管理存储系统中的区块的方法、设备和程序产品
US17/826,396 US11995358B2 (en) 2021-10-21 2022-05-27 Method, device and computer program product for managing extent in storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111228595.2A CN116010161A (zh) 2021-10-21 2021-10-21 用于管理存储系统中的区块的方法、设备和程序产品

Publications (1)

Publication Number Publication Date
CN116010161A true CN116010161A (zh) 2023-04-25

Family

ID=86021608

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111228595.2A Pending CN116010161A (zh) 2021-10-21 2021-10-21 用于管理存储系统中的区块的方法、设备和程序产品

Country Status (1)

Country Link
CN (1) CN116010161A (zh)

Also Published As

Publication number Publication date
US20230132242A1 (en) 2023-04-27

Similar Documents

Publication Publication Date Title
US11048416B2 (en) Method, apparatus and computer program product for managing storage system
CN110413208B (zh) 用于管理存储系统的方法、设备和计算机程序产品
US11232005B2 (en) Method, device, and computer program product for managing storage system
CN110737391B (zh) 用于管理存储系统的方法、设备和计算机程序产品
US11341049B2 (en) Method, apparatus, and computer program product for managing storage system
US20200341845A1 (en) Method, device, and computer program product for managing storage system
CN109725830B (zh) 管理独立磁盘冗余阵列的方法、设备和存储介质
JP2022525919A (ja) コンピューティング・ストレージ環境におけるリビルド時間を減少させること
CN111104051A (zh) 用于管理存储系统的方法、设备和计算机程序产品
CN112732168B (zh) 用于管理存储系统的方法、设备和计算机程序产品
CN112948279A (zh) 管理存储系统中的访问请求的方法、设备和程序产品
US11422909B2 (en) Method, device, and storage medium for managing stripe in storage system
CN108733307B (zh) 存储管理方法、设备以及计算机可读介质
US11269745B2 (en) Two-node high availability storage system
US20210334042A1 (en) Data storage method, device and computer program product
CN116010161A (zh) 用于管理存储系统中的区块的方法、设备和程序产品
CN113535065A (zh) 在存储系统中管理条带的方法、设备和计算机程序产品
US11995358B2 (en) Method, device and computer program product for managing extent in storage system
CN114564144B (zh) 在存储系统中创建区块阵列的方法、设备和程序产品
CN112732167B (zh) 用于管理存储系统的方法、设备
US11709755B2 (en) Method, device, and program product for managing storage pool of storage system
US11593011B2 (en) Method, device, and program product for managing spare block based on dynamic window
US11385813B2 (en) Method, device, and computer program product for managing stripe in storage system
US20220342546A1 (en) Method, device, and computer program product for managing storage system
US20230012813A1 (en) Method, device, and program product for extending storage system

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