CN114253460A - 管理存储池的方法、设备和计算机程序产品 - Google Patents

管理存储池的方法、设备和计算机程序产品 Download PDF

Info

Publication number
CN114253460A
CN114253460A CN202011011638.7A CN202011011638A CN114253460A CN 114253460 A CN114253460 A CN 114253460A CN 202011011638 A CN202011011638 A CN 202011011638A CN 114253460 A CN114253460 A CN 114253460A
Authority
CN
China
Prior art keywords
storage
storage pool
disk array
space
redundancy
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.)
Granted
Application number
CN202011011638.7A
Other languages
English (en)
Other versions
CN114253460B (zh
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 CN202011011638.7A priority Critical patent/CN114253460B/zh
Priority to US17/166,255 priority patent/US20220091769A1/en
Publication of CN114253460A publication Critical patent/CN114253460A/zh
Application granted granted Critical
Publication of CN114253460B publication Critical patent/CN114253460B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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
    • 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
    • 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

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

管理存储池的方法、设备和计算机程序产品
技术领域
本公开的实施例总体上涉及存储领域,具体涉及管理存储池的方法、设备和计算机程序产品。
背景技术
在存储领域,具有映射的独立冗余磁盘阵列的存储池常常被用来存储数据。然而,对于特定类型的存储池,在不引起存储池的数据丢失的情况下,存储池所允许的故障存储装置的数目是固定的。当存储池中的故障存储装置的数目达到所允许的数目,并且故障存储装置没有被新的存储装置所替换,存储池就有可能发生数据丢失。在一些情况下,例如,企业的预算有限、存储装置的购买周期较长等,故障存储装置不能被及时替换,这会导致数据丢失的风险增大。
发明内容
本公开的实施例提供了管理存储池的方法、设备和计算机程序产品。
在本公开的第一方面,提供了一种管理存储池的方法。该方法包括:如果检测到存储池发生故障,确定存储池中的故障存储装置的数目;如果确定数目达到阈值数目,确定存储池的冗余度是否能够被增加,该冗余度指示在不引起存储池的数据丢失的情况下允许的故障存储装置的数目;以及如果确定存储池的冗余度能够被增加,将存储池的用于存储用户数据的存储空间的至少一部分调整为存储池的备用空间,以用于存储未来发生故障的存储装置中的数据。
在本公开的第二方面,提供了一种电子设备。该电子设备包括:至少一个处理单元;至少一个存储器,至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令,该指令当由至少一个处理单元执行时,使得设备执行动作,该动作包括:如果检测到存储池发生故障,确定存储池中的故障存储装置的数目;如果确定数目达到阈值数目,确定存储池的冗余度是否能够被增加,该冗余度指示在不引起存储池的数据丢失的情况下允许的故障存储装置的数目;以及如果确定存储池的冗余度能够被增加,将存储池的用于存储用户数据的存储空间的至少一部分调整为存储池的备用空间,以用于存储未来发生故障的存储装置中的数据。
在本公开的第三方面,提供了一种计算机程序产品。该计算机程序产品被有形地存储在非瞬态计算机存储介质中并且包括机器可执行指令。该机器可执行指令在由设备执行时使该设备执行根据本公开的第一方面所描述的方法的任意步骤。
提供发明内容部分是为了以简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的重要特征或必要特征,也无意限制本公开的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。
图1示出了本公开的实施例能够在其中被实现的示例存储池管理系统的框图;
图2示出了适用于本公开的实施例的示例存储池的示意图;
图3示出了根据本公开的实施例的用于管理存储池的示例方法的流程图;
图4示出了根据本公开的实施例的用于将存储池的存储空间的至少一部分调整为备用空间的示例方法的流程图;
图5A示出了在将存储池的存储空间的至少一部分调整为备用空间之前的存储池的示意图;
图5B示出了在将存储池的存储空间的至少一部分调整为备用空间期间的存储池的示意图;
图5C示出了在将存储池的存储空间的至少一部分调整为备用空间之后的存储池的示意图;以及
图6示出了可以用来实施本公开的实施例的示例设备的示意性框图。
在各个附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
在存储领域,具有映射的独立冗余磁盘阵列(Redundant Arrays of IndependentDisks,RAID)的存储池常常被用来存储数据。这样的存储池被称为动态池。动态池有助于实现以下目标:一,通过向重建过程增加并行性并且允许重建性能随存储装置数目的增加而增加,从而减少重建时间;二,改进存储池规划,使存储池的创建和扩展更多地基于所需的容量(扩展可以是一次一个存储装置);三,无需专用的备用存储装置就可以进行备用管理。同时,通过跨存储池中的存储装置来分配备用空间,从而减少闪存损耗和提高阵列性能。
通过在不减少存储器冗余度的情况下移除专用的备用存储装置,动态池可以一些企业用户显著地受益,例如使预算有限以及业务增长不可预测的初创企业用户显著地受益。在本文中,“冗余度”是指在不引起存储池的数据丢失的情况下,存储池所允许的故障存储装置的最大数目。“当前冗余度”是指在不引起存储池的数据丢失的情况下,存储池还能够允许的故障存储装置的数目。随着业务的增长,可以在存储池中创建不同大小的磁盘阵列组(RAID group,RG)。
然而,对于特定类型的存储池,在不引起存储池的数据丢失的情况下,存储池所允许的故障存储装置的数目是固定的。当存储池中的故障存储装置的数目达到所允许的数目,并且故障存储装置没有被新的存储装置所替换,存储池就有可能发生数据丢失。在一些情况下,例如,企业的预算有限、存储装置的购买周期较长等,故障存储装置不能被及时替换,这会导致数据丢失的风险增大。
本公开的实施例提出了一种管理存储池的解决方案,以解决上述问题和其他潜在问题中的一个或多个问题。该解决方案通过将存储池的用于存储用户数据的存储空间的至少一部分调整为存储池的备用空间,能够增加存储池的冗余度,从而在无需替换故障存储装置的情况下增加存储池的冗余度,显著降低数据丢失的概率。此外,由于在故障存储装置不被替换的情况下降低了数据丢失的概率,从而降低了用户购买存储装置的成本,优化了对存储池的现有存储装置的使用。
图1示出了本公开的实施例能够在其中被实现的示例存储池管理系统100的框图。如图1所示,存储池管理系统100包括存储池管理设备110和存储池120。存储池包括存储装置130-1至130-N(统称为存储装置130)。存储池的存储空间140和备用空间150跨存储装置130分布,存储空间140中包括多个磁盘阵列组(未示出)。根据本公开的实施例的各个方法可以在存储池管理设备110处实现。应当理解,仅出于示例性的目的描述存储池管理系统100的结构,而不暗示对于本公开的范围的任何限制。例如,本公开的实施例还可以被应用到与存储池管理系统100不同的系统中。应当理解,上述各设备和装置的具体数目仅出于说明性目的给出,而不暗示对本公开范围的任何限制。例如,本公开的实施例还可以被应用于更多的或更少的设备和装置。
存储池管理设备110可以在检测到存储池120发生故障时,确定存储池120中的故障存储装置的数目。在确定该数目达到阈值数目并且存储池120的冗余度能够被增加时,存储池管理设备110可以将存储池120的用于存储用户数据的存储空间140的至少一部分调整为存储池120的备用空间150,以用于存储未来发生故障的存储装置中的数据。
存储池管理设备110可以例如是计算机、虚拟机、服务器等,本公开在此方面不受限制。存储装置130可以例如是硬盘、软盘、磁盘等,本公开在此方面不受限制。存储池管理设备110和存储池120通过网络彼此通信,网络可以例如是互联网、内联网等。
图2示出了适用于本公开的实施例的示例存储池的示意图200。如图2所示,存储池200包括10个存储装置,分别由210-1至210-10来表示。也就是说,每一列表示一个存储装置210。每个存储装置210的空间尺寸相同。3个磁盘阵列组被设置在存储装置210的一部分上,分别由220-1至220-3来表示。这3个磁盘阵列组220分别跨存储装置210分布,并且共同地组成存储池200的存储空间。存储装置210的一部分被设置为备用空间230。备用空间230被设置为在存储池200中的存储装置210发生故障时存储故障存储装置中的数据。如图2所示,每个存储装置210被划分为10个尺寸相同的部分,其中前9个部分被设置为存储空间,最后一个部分被设置为备用空间。
在如图2所示的示例中,假设存储池200的冗余度为1。当存储池200中的存储装置210都正常工作时,用户数据被存储在磁盘阵列组220中,备用空间230为空。当存储装置之一,例如存储装置210-10,发生故障时,则故障存储装置210-10中的数据被复制到备用空间230中。在这种情况下,存储池210的当前冗余度为0,直到故障存储装置被替换为新的存储装置并且完成数据重建才恢复成冗余度1。在故障存储装置被替换之前,如果另一存储装置,例如存储装置210-9,发生故障时,已经没有备用空间230来存储故障存储装置210-9中的数据,因此会发生数据丢失(DL)。
在传统的实施方式中,特定类型的存储池具有特定的冗余度。换言之,在不引起存储池的数据丢失的情况下,特定类型的存储池所允许的故障存储装置的数目是固定的。例如,对于RAID 5类型的存储池,冗余度为1。对于RAID 6类型的存储池,冗余度为2。
应当理解,仅出于示例性的目的示出了示例存储池,而不暗示对于本公开的任何限制。例如,存储池还可以包括更多的或更少的存储装置。存储装置上还可以被设置更多的或更少的磁盘阵列组。磁盘阵列组的尺寸可以是相同的,也可以是不同的等等。本公开在这些方面都不受限制。
图3示出了根据本公开的实施例的用于管理存储池的示例方法300的流程图。例如,方法300可以由如图1所示的存储池管理设备110来执行。应当理解,方法300还可以由其他设备来执行,本公开的范围在此方面不受限制。还应当理解,方法300还可以包括未示出的附加动作和/或可以省略所示出的动作,本公开的范围在此方面不受限制。
在310,存储池管理设备110检测存储池120是否发生故障。在一些实施例中,存储池管理设备110可以周期性地检测存储池120中的存储装置130是否发生故障。附加地或备选地,在一些实施例中,存储池管理设备110可以在存储池120中的存储装置130发生故障时接收到指示存储池120发生故障的通知。
如果存储池管理设备110检测到存储池120发生故障,则在320,存储池管理设备110确定存储池120中的故障存储装置的数目。在一些实施例中,存储池管理设备110可以设置计数器来指示故障存储装置的数目。例如,每当存储池管理设备110检测到存储池120中的某一存储装置130发生了故障,则将计数器递增一。附加地或备选地,在一些实施例中,存储池管理设备110可以设置状态标识符来指示存储池120中的每个存储装置130的状态,并且通过该状态标识符来确定故障存储装置的数目。
如上文所提及的,在不引起存储池的数据丢失的情况下,特定类型的存储池所允许的故障存储装置的数目是固定的。例如,对于RAID5类型的存储池,冗余度为1,也就是说,在不引起存储池的数据丢失的情况下,此类型的存储池所允许的故障存储装置的数目为1。类似地,对于RAID 6类型的存储池,冗余度为2,也就是说,在不引起存储池的数据丢失的情况下,此类型的存储池所允许的故障存储装置的数目为2。因此,在330,存储池管理设备110确定存储池120中的故障存储装置的数目是否达到阈值数目,并且如果确定该数目达到阈值数目,则在340,存储池管理设备110确定存储池120的冗余度是否能够被增加,该冗余度指示在不引起存储池120的数据丢失的情况下允许的故障存储装置的数目。
在一些实施例中,该阈值数目可以被设置为在不引起数据丢失的情况下存储池120所允许的故障存储装置的数目。例如,对于RAID 5类型的存储池,该阈值数目可以被设置为2。在这种情况下,当存储池120中的故障存储装置的数目达到阈值数目时,如果以下所描述的增加冗余度的操作不被执行,则当更多的存储装置发生故障时,存储池就会发生数据丢失。
备选地,在一些实施例中,该阈值数目可以被设置为小于在不引起数据丢失的情况下存储池120所允许的故障存储装置的数目。例如,对于RAID 5类型的存储池,该阈值数目可以被设置为1。在这种情况下,当存储池120中的故障存储装置的数目达到阈值数目时,存储池120实际上还能允许更多的存储装置发生故障而不引起数据丢失。在这种情况下,以下所描述的增加冗余度的操作仍然可以被执行,以进一步增加存储池120的冗余度。
如下文将详细描述的,由于增加冗余度的操作是将存储池120的用于存储用户数据的存储空间140的至少一部分调整为存储池120的备用空间150,因此,存储池管理设备110在执行该调整操作之前先确定存储池120冗余度是否能够被增加,以使增加冗余度的操作失败的概率被减少,从而避免不必要地影响存储池的性能。
在一些实施例中,存储池管理设备110可以确定存储池120是否可访问且没有正在进行的数据复制过程。容易理解,如果存储池120不可访问,例如存储池120处于离线状态,则存储池管理设备110无法执行增加存储池120的冗余度的操作。此外,如下文将详细描述的,由于增加存储池120的冗余度的操作会涉及存储池120中的磁盘阵列组之间的数据复制,因此,如果存储池120中存在正在进行的数据复制过程,则存储池管理设备110确定存储池120的冗余度不能够被增加。否则,如果在存储池120中存在正在进行的数据复制过程的情况下执行增加存储池120的冗余度的操作,存储池120的性能会受到影响。
附加地或备选地,在一些实施例中,如果存储池管理设备110确定存储池120可访问并且没有正在进行的数据复制过程,存储池管理设备110可以确定跨存储池120中的存储装置130分布的多个磁盘阵列组中是否存在目标磁盘阵列组,该目标磁盘阵列组中存储的第一数据的尺寸小于或等于多个磁盘阵列组中的其余磁盘阵列组的空闲存储空间的尺寸。
为了将存储池120的存储空间140的至少一部分调整为存储池120的备用空间150,存储池管理设备110需要从多个磁盘阵列组中选择一个磁盘阵列组,将所选择的磁盘阵列组中的用户数据复制到其他磁盘阵列组中,然后释放所选择的磁盘阵列组的存储空间。因此,其他磁盘阵列组的空闲存储空间的尺寸必须足以容纳所选择的磁盘阵列组中存储的用户数据,否则将存储空间的至少一部分调整为备用空间的操作会导致数据丢失。
在一些实施例中,存储池管理设备110可以检查存储池120中的每个磁盘阵列组中的固定尺寸的数据块,以确定每个磁盘阵列组中存储的数据的尺寸。这些固定尺寸的数据块有时也被称为“切片(slice)”。然后,存储池管理设备110可以确定多个磁盘阵列组中是否存在目标磁盘阵列组,以实现将目标磁盘阵列组中的数据复制到其他磁盘阵列组中,而不引起数据丢失。
附加地,在一些实施例中,存储池管理设备110可以根据历史的存储空间消耗速率来估计存储池中是否存在足够的空闲存储空间来容纳目标磁盘阵列组中存储的数据。
附加地,在一些实施例中,存储池管理设备110可以从多个磁盘阵列组中确定所存储的数据所占用的存储空间最小的磁盘阵列组,然后,存储池管理设备110将该磁盘阵列组确定为目标磁盘阵列组。在这样的实施例中,由于被复制的磁盘阵列组中的数据最少,因此,该复制操作所占用的资源最少,使得增加冗余度的操作对存储池的影响被最小化。
如果存储池管理设备110确定存储池120的冗余度能够被增加,则在350,存储池管理设备110将存储池120的用于存储用户数据的存储空间140的至少一部分调整为存储池120的备用空间150,以用于存储未来发生故障的存储装置中的数据。
在一些实施例中,存储池管理设备110可以从多个磁盘阵列组中确定目标磁盘阵列组,然后将目标磁盘阵列组的存储空间的一部分设置为备用空间。
附加地,在一些实施例中,存储池管理设备110在确定存储池120的冗余度能够被增加之后,确定是否接收到增加冗余度的请求。如果确定接收到增加冗余度的请求,则存储池管理设备110将存储池120的存储空间140的至少一部分调整为备用空间150。
例如,存储池管理设备110可以在确定存储池120的冗余度能够被增加之后,生成用户接口来接收增加冗余度的请求。在这样的实施例中,用户可以根据需要来确定是否向存储池管理设备110发送增加存储池120的冗余度的请求。例如,当用户的预算有限而不打算购买新的存储装置来替换故障存储装置时,或者当用户发现存储池的空间通常大于日常所需的存储空间要求时,用户可以向存储池管理设备110发送增加存储池120的冗余度的请求,以牺牲存储池120的一部分存储空间来增加存储池120的冗余度。反之,如果用户不希望减少存储池120的存储空间,则即使存储池120的冗余度能够被增加,用户也可以根据需要来选择不增加存储池120的冗余度。
附加地或备选地,在一些实施例中,如果存储池管理设备110在确定存储池120的冗余度能够被增加之后的预定时间段内未接收到不增加冗余度的请求,则存储池管理设备110自动地进行上面所描述的对存储空间的调整。在以上的实施例中,用户可以根据需要灵活地设置是否增加存储池的冗余度。
在上述示例性实施例中,通过将存储池的用于存储用户数据的存储空间的至少一部分调整为存储池的备用空间,能够增加存储池的冗余度,从而在无需替换故障存储装置的情况下增加存储池的冗余度,显著降低数据丢失的概率。
此外,由于在故障存储装置不被替换的情况下降低了数据丢失的概率,从而降低了用户购买存储装置的成本,优化了对存储池的现有存储装置的使用。
图4示出了根据本公开的实施例的用于将存储池的存储空间的至少一部分调整为备用空间的示例方法400的流程图。例如,方法400可以由如图1所示的存储池管理设备110来执行。方法400是方法300中的350的示例实施例。应当理解,方法400还可以由其他设备来执行,本公开的范围在此方面不受限制。还应当理解,方法400还可以包括未示出的附加动作和/或可以省略所示出的动作,本公开的范围在此方面不受限制。
下面参考图5来描述图4。图5A示出了在将存储池的存储空间的至少一部分调整为备用空间之前的存储池的示意图510。图5B示出了在将存储池的存储空间的至少一部分调整为备用空间期间的存储池的示意图520。图5C示出了在将存储池的存储空间的至少一部分调整为备用空间之后的存储池的示意图530。
在410,存储池管理设备110将目标磁盘阵列组中存储的第一数据复制到多个磁盘阵列组中的其余磁盘阵列组。在一些实施例中,存储池管理设备110可以将目标磁盘阵列组中存储的第一数据均匀地复制到其他磁盘阵列组。在一些实施例中,存储池管理设备110可以将目标磁盘阵列组中存储的第一数据复制到指定的磁盘阵列组,只要该磁盘阵列组的空闲空间足以容纳目标磁盘阵列组中存储的第一数据。
如图5A所示,存储池502中存在多个磁盘阵列组504-2至504-N(统称为“磁盘阵列组504”)。假设存储池管理设备110已经从磁盘阵列组504-2至504-N中确定磁盘阵列组504-2为目标磁盘阵列组,则存储池管理设备110可以将目标磁盘阵列组504-2中的切片均匀地复制到其他磁盘阵列组504-4至504-N中。
附加地,在一些实施例中,存储池管理设备110可以设置针对目标磁盘阵列组的冻结指示符,以在目标磁盘阵列组到其他磁盘阵列组的数据复制期间将目标磁盘阵列组设置为“只读”。在这种情况下,对目标磁盘阵列组的写入操作、移动操作等会被阻止。针对目标磁盘阵列组的输入输出操作可以被重新定向到其他磁盘阵列组。
当目标磁盘阵列组中存储的第一数据被全部复制到多个磁盘阵列组中的其余磁盘阵列组之后,在420,存储池管理设备110释放目标磁盘阵列组的存储空间。如图5C中所示,当目标磁盘阵列组504-2中的数据被全部复制到磁盘阵列组504-4至504-N之后,目标磁盘阵列组504-2的存储空间被释放。
在一些情况下,如果目标磁盘阵列组到其他磁盘阵列组的数据复制因为意外状况而被终止,则存储池管理设备110可以使目标磁盘阵列组恢复到进行数据复制之前的初始状态。
在430,存储池管理设备110将所释放的存储空间的至少一部分设置为备用空间。
在一些实施例中,存储池管理设备110可以将所释放的存储空间中与一个存储装置130具有相同尺寸的存储空间设置为备用空间。备选地,在一些实施例中,存储池管理设备110可以将尺寸为存储装置130的存储空间的倍数的存储空间设置为备用空间。附加地,在一些实施例中,存储池管理设备110可以选择来自每个存储装置130的、相同尺寸的所释放的存储空间,以组合成备用空间。
在一些实施例中,存储池管理设备110还可以确定所释放的存储空间中的、未被设置为备用空间的剩余空间的尺寸。如果存储池管理设备110确定剩余空间的尺寸大于或等于一个存储装置的空间的尺寸,则将剩余空间的至少一部分设置为新的磁盘阵列组。例如,存储池管理设备110可以将剩余空间中与一个存储装置130具有相同尺寸的存储空间设置为新的磁盘阵列组。存储池管理设备110也可以将剩余空间中尺寸为一个存储装置130的存储空间的倍数的存储空间设置为新的磁盘阵列组。
在上述示例性实施例中,通过将存储池的存储空间的至少一部分调整为备用空间,使得增加存储池的冗余度成为可能。此外,通过将所释放的存储空间中未被设置为备用空间的剩余空间设置为新的磁盘阵列组,能够充分地利用所释放的存储空间。
图6示出了可以用来实施本公开的实施例的示例设备600的示意性框图。例如,如图1所示的存储池管理设备110可以由设备600实施。如图6所示,设备600包括中央处理装置(CPU)601,其可以根据存储在只读存储器(ROM)602中的计算机程序指令或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序指令,来执行各种适当的动作和处理。在RAM 603中,还可存储设备600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法300和400,可由处理装置601执行。例如,在一些实施例中,方法300和400可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序被加载到RAM 603并由CPU 601执行时,可以执行上文描述的方法300和400的一个或多个动作。
本公开可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是——但不限于——电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理装置,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理装置执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (13)

1.一种管理存储池的方法,包括:
如果检测到存储池发生故障,确定所述存储池中的故障存储装置的数目;
如果确定所述数目达到阈值数目,确定所述存储池的冗余度是否能够被增加,所述冗余度指示在不引起所述存储池的数据丢失的情况下允许的故障存储装置的数目;以及
如果确定所述存储池的所述冗余度能够被增加,将所述存储池的用于存储用户数据的存储空间的至少一部分调整为所述存储池的备用空间,以用于存储未来发生故障的存储装置中的数据。
2.根据权利要求1所述的方法,其中确定所述存储池的所述冗余度是否能够被增加包括:
确定跨所述存储池中的存储装置分布的多个磁盘阵列组中是否存在目标磁盘阵列组,所述目标磁盘阵列组中存储的第一数据的尺寸小于或等于所述多个磁盘阵列组中的其余磁盘阵列组的空闲存储空间的尺寸;以及
如果确定所述多个磁盘阵列组中存在所述目标磁盘阵列组,确定所述存储池的所述冗余度能够被增加。
3.根据权利要求1所述的方法,其中确定所述存储池的所述冗余度是否能够被增加包括:
如果确定所述存储池可访问并且没有正在进行的数据复制过程,确定跨所述存储池中的存储装置分布的多个磁盘阵列组中是否存在目标磁盘阵列组,所述目标磁盘阵列组中存储的第一数据的尺寸小于或等于所述多个磁盘阵列组中的其余磁盘阵列组的空闲存储空间的尺寸;以及
如果确定所述多个磁盘阵列组中存在所述目标磁盘阵列组,确定所述存储池的所述冗余度能够被增加。
4.根据权利要求2或3所述的方法,其中将所述存储空间的所述至少一部分调整为所述备用空间包括:
将所述目标磁盘阵列组中存储的所述第一数据复制到所述多个磁盘阵列组中的所述其余磁盘阵列组;
释放所述目标磁盘阵列组的存储空间;以及
将所释放的所述存储空间的至少一部分设置为所述备用空间。
5.根据权利要求4所述的方法,还包括:
确定所释放的所述存储空间中的、未被设置为所述备用空间的剩余空间的尺寸;以及
如果确定所述剩余空间的尺寸大于或等于所述存储池中的一个存储装置的空间的尺寸,将所述剩余空间的至少一部分设置为新的磁盘阵列组。
6.根据权利要求1所述的方法,其中将所述存储空间的所述至少一部分调整为所述备用空间包括:
如果接收到增加所述冗余度的请求,将所述存储空间的所述至少一部分调整为所述备用空间。
7.一种电子设备,包括:
至少一个处理单元;
至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时,使得所述设备执行动作,所述动作包括:
如果检测到存储池发生故障,确定所述存储池中的故障存储装置的数目;
如果确定所述数目达到阈值数目,确定所述存储池的冗余度是否能够被增加,所述冗余度指示在不引起所述存储池的数据丢失的情况下允许的故障存储装置的数目;以及
如果确定所述存储池的所述冗余度能够被增加,将所述存储池的用于存储用户数据的存储空间的至少一部分调整为所述存储池的备用空间,以用于存储未来发生故障的存储装置中的数据。
8.根据权利要求7所述的设备,其中确定所述存储池的所述冗余度是否能够被增加包括:
确定跨所述存储池中的存储装置分布的多个磁盘阵列组中是否存在目标磁盘阵列组,所述目标磁盘阵列组中存储的第一数据的尺寸小于或等于所述多个磁盘阵列组中的其余磁盘阵列组的空闲存储空间的尺寸;以及
如果确定所述多个磁盘阵列组中存在所述目标磁盘阵列组,确定所述存储池的所述冗余度能够被增加。
9.根据权利要求7所述的设备,其中确定所述存储池的所述冗余度是否能够被增加包括:
如果确定所述存储池可访问并且没有正在进行的数据复制过程,确定跨所述存储池中的存储装置分布的多个磁盘阵列组中是否存在目标磁盘阵列组,所述目标磁盘阵列组中存储的第一数据的尺寸小于或等于所述多个磁盘阵列组中的其余磁盘阵列组的空闲存储空间的尺寸;以及
如果确定所述多个磁盘阵列组中存在所述目标磁盘阵列组,确定所述存储池的所述冗余度能够被增加。
10.根据权利要求8或9所述的设备,其中将所述存储空间的所述至少一部分调整为所述备用空间包括:
将所述目标磁盘阵列组中存储的所述第一数据复制到所述多个磁盘阵列组中的所述其余磁盘阵列组;
释放所述目标磁盘阵列组的存储空间;以及
将所释放的所述存储空间的至少一部分设置为所述备用空间。
11.根据权利要求10所述的设备,所述动作还包括:
确定所释放的所述存储空间中的、未被设置为所述备用空间的剩余空间的尺寸;以及
如果确定所述剩余空间的尺寸大于或等于所述存储池中的一个存储装置的空间的尺寸,将所述剩余空间的至少一部分设置为新的磁盘阵列组。
12.根据权利要求7所述的设备,其中将所述存储空间的所述至少一部分调整为所述备用空间包括:
如果接收到增加所述冗余度的请求,将所述存储空间的所述至少一部分调整为所述备用空间。
13.一种计算机程序产品,所述计算机程序产品被有形地存储在非瞬态计算机存储介质中并且包括机器可执行指令,所述机器可执行指令在由设备执行时使所述设备执行根据权利要求1-6中的任一项所述的方法。
CN202011011638.7A 2020-09-23 2020-09-23 管理存储池的方法、设备和计算机程序产品 Active CN114253460B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202011011638.7A CN114253460B (zh) 2020-09-23 2020-09-23 管理存储池的方法、设备和计算机程序产品
US17/166,255 US20220091769A1 (en) 2020-09-23 2021-02-03 Method, device and computer program product for managing storage pool

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011011638.7A CN114253460B (zh) 2020-09-23 2020-09-23 管理存储池的方法、设备和计算机程序产品

Publications (2)

Publication Number Publication Date
CN114253460A true CN114253460A (zh) 2022-03-29
CN114253460B CN114253460B (zh) 2024-08-23

Family

ID=80740422

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011011638.7A Active CN114253460B (zh) 2020-09-23 2020-09-23 管理存储池的方法、设备和计算机程序产品

Country Status (2)

Country Link
US (1) US20220091769A1 (zh)
CN (1) CN114253460B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220075771A1 (en) * 2020-09-08 2022-03-10 International Business Machines Corporation Dynamically deploying execution nodes using system throughput

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5666512A (en) * 1995-02-10 1997-09-09 Hewlett-Packard Company Disk array having hot spare resources and methods for using hot spare resources to store user data
US20050091452A1 (en) * 2003-10-28 2005-04-28 Ying Chen System and method for reducing data loss in disk arrays by establishing data redundancy on demand
US20050283655A1 (en) * 2004-06-21 2005-12-22 Dot Hill Systems Corporation Apparatus and method for performing a preemptive reconstruct of a fault-tolerand raid array
JP2010277240A (ja) * 2009-05-27 2010-12-09 Nec Corp データストレージシステム、データ領域管理方法
US20170256328A1 (en) * 2016-03-04 2017-09-07 SanDisk Technologies, Inc. Dynamic-shifting redundancy mapping for non-volatile data storage
US20190004899A1 (en) * 2017-06-30 2019-01-03 EMC IP Holding Company LLC Method, device and computer program product for managing storage system
CN110737394A (zh) * 2018-07-20 2020-01-31 伊姆西Ip控股有限责任公司 管理缓存的方法、装置和计算机程序产品

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7386666B1 (en) * 2005-09-30 2008-06-10 Emc Corporation Global sparing of storage capacity across multiple storage arrays
US7409523B2 (en) * 2005-12-16 2008-08-05 Microsoft Corporation Online storage volume shrink
US8060772B2 (en) * 2008-01-04 2011-11-15 International Business Machines Corporation Storage redundant array of independent drives
JP5056747B2 (ja) * 2008-12-25 2012-10-24 富士通株式会社 記憶領域管理装置、記憶領域管理方法
JP5556192B2 (ja) * 2010-01-26 2014-07-23 日本電気株式会社 ストレージシステム
US8799705B2 (en) * 2012-01-04 2014-08-05 Emc Corporation Data protection in a random access disk array
US20130227345A1 (en) * 2012-02-28 2013-08-29 International Business Machines Corporation Logically Extended Virtual Disk
US9081753B2 (en) * 2013-03-14 2015-07-14 Microsoft Technology Licensing, Llc Virtual disk recovery and redistribution
US9620165B2 (en) * 2015-02-26 2017-04-11 Netapp, Inc. Banded allocation of device address ranges in distributed parity schemes
US10120570B2 (en) * 2015-06-11 2018-11-06 International Business Machines Corporation Temporary spill area for volume defragmentation
US10635344B2 (en) * 2016-04-27 2020-04-28 International Business Machines Corporation Dynamic spare storage allocation by creating logical volumes from unused space allocated for user data of a raid storage
US10268375B2 (en) * 2016-05-27 2019-04-23 Netapp, Inc. Methods for proactive prediction of disk failure in the disk maintenance pipeline and devices thereof
US20190196911A1 (en) * 2017-01-25 2019-06-27 Hitachi, Ltd. Computer system
CN109725830B (zh) * 2017-10-27 2022-02-08 伊姆西Ip控股有限责任公司 管理独立磁盘冗余阵列的方法、设备和存储介质
US10891066B2 (en) * 2018-12-28 2021-01-12 Intelliflash By Ddn, Inc. Data redundancy reconfiguration using logical subunits
JP6889742B2 (ja) * 2019-03-04 2021-06-18 株式会社日立製作所 ストレージシステム、データ管理方法、及びデータ管理プログラム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5666512A (en) * 1995-02-10 1997-09-09 Hewlett-Packard Company Disk array having hot spare resources and methods for using hot spare resources to store user data
US20050091452A1 (en) * 2003-10-28 2005-04-28 Ying Chen System and method for reducing data loss in disk arrays by establishing data redundancy on demand
US20050283655A1 (en) * 2004-06-21 2005-12-22 Dot Hill Systems Corporation Apparatus and method for performing a preemptive reconstruct of a fault-tolerand raid array
JP2010277240A (ja) * 2009-05-27 2010-12-09 Nec Corp データストレージシステム、データ領域管理方法
US20170256328A1 (en) * 2016-03-04 2017-09-07 SanDisk Technologies, Inc. Dynamic-shifting redundancy mapping for non-volatile data storage
US20190004899A1 (en) * 2017-06-30 2019-01-03 EMC IP Holding Company LLC Method, device and computer program product for managing storage system
CN110737394A (zh) * 2018-07-20 2020-01-31 伊姆西Ip控股有限责任公司 管理缓存的方法、装置和计算机程序产品

Also Published As

Publication number Publication date
US20220091769A1 (en) 2022-03-24
CN114253460B (zh) 2024-08-23

Similar Documents

Publication Publication Date Title
US10169163B2 (en) Managing backup operations from a client system to a primary server and secondary server
CN110389858B (zh) 存储设备的故障恢复方法和设备
US10719407B1 (en) Backing up availability group databases configured on multi-node virtual servers
US8271968B2 (en) System and method for transparent hard disk drive update
CN110058787B (zh) 用于写入数据的方法、设备和计算机程序产品
WO2015132690A1 (en) Reliabilty enhancement in a distributed storage system
CN110058965B (zh) 存储系统中的数据重建方法及设备
US10782913B2 (en) Apparatus, method, and program product for data integrity during asynchronous remote copy
CN111143113A (zh) 复制元数据的方法、电子设备和计算机程序产品
US11128708B2 (en) Managing remote replication in storage systems
CN112748856B (zh) 管理盘的方法、电子设备和计算机程序产品
US11347418B2 (en) Method, device and computer program product for data processing
US9934106B1 (en) Handling backups when target storage is unavailable
CN114253460B (zh) 管理存储池的方法、设备和计算机程序产品
CN111857560B (zh) 用于管理数据的方法、设备和计算机程序产品
CN111104047B (zh) 管理冗余磁盘阵列的方法、设备和计算机可读存储介质
WO2015069225A1 (en) Method and apparatus for avoiding performance decrease in high availability configuration
CN111104049A (zh) 管理冗余磁盘阵列的方法、设备和计算机可读存储介质
US20150088826A1 (en) Enhanced Performance for Data Duplication
WO2017026070A1 (ja) ストレージシステム及びストレージ管理方法
US10884874B1 (en) Federated restore of availability group database replicas
CN112667434A (zh) 用于恢复数据的方法、装置和计算机程序产品
CN112748860A (zh) 用于存储管理的方法、电子设备和计算机程序产品
US10009422B1 (en) Backup management based on client device statuses
JP2014170448A (ja) レプリケーションシステム、業務処理システム、レプリケーション方法、及びプログラム

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