CN106104460B - 分布式存储系统中的可靠性增强 - Google Patents

分布式存储系统中的可靠性增强 Download PDF

Info

Publication number
CN106104460B
CN106104460B CN201580012223.2A CN201580012223A CN106104460B CN 106104460 B CN106104460 B CN 106104460B CN 201580012223 A CN201580012223 A CN 201580012223A CN 106104460 B CN106104460 B CN 106104460B
Authority
CN
China
Prior art keywords
data
copy
storage
risk
restored
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
Application number
CN201580012223.2A
Other languages
English (en)
Other versions
CN106104460A (zh
Inventor
D·Y·索特尼科夫
D·哈尼克
P·K·塔-什玛
E·克罗德纳
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN106104460A publication Critical patent/CN106104460A/zh
Application granted granted Critical
Publication of CN106104460B publication Critical patent/CN106104460B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • 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
    • G06F11/1092Rebuilding, e.g. when physically replacing a failing disk
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1461Backup scheduling policy
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/2053Error 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/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1456Hardware arrangements for backup
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)
  • Retry When Errors Occur (AREA)
  • Debugging And Monitoring (AREA)

Abstract

用于在数据存储系统中增强数据恢复的机器、系统和方法,该方法包括:确定在数据存储系统中的一个或多个数据存储介质是否不可用;基于一个或多个数据存储介质不可用,确定处于丢失风险中的数据;从被确定为处于丢失风险中的数据中,识别极易丢失的数据;以及创建极易丢失的数据的一个或多个临时副本。

Description

分布式存储系统中的可靠性增强
技术领域
所公开的主题一般涉及在分布式存储系统中增强可靠性,并且更具体地说,涉及一种用于分布式存储系统的辅助可靠性提高机制的系统和方法。
背景技术
通常的做法是以某种程度的冗余来对信息进行存储,以避免在硬件故障的情况下的数据丢失。这种冗余可以通过复录(duplicate)(或复制(replicate))数据或者通过添加一些冗余编码(例如,奇偶校验块或擦除码)的方式而被引入。冗余数据或数据副本可以跨越若干域被存储以允许在域故障的情况下的数据恢复。
副本可以被存储在不同的磁盘、服务器、机架或地理上相距较远的站点上,因此单个磁盘、服务器、机架、或者甚至整个数据中心的故障不会造成数据丢失。因此,内置的冗余使得系统弹性对抗同时的故障。无论如何,系统只能承受一定数量的同时故障。例如,具有三重复制的存储系统被保护对抗双重磁盘故障,但无法对抗三重磁盘故障。
为了通过复制提供可靠性,一旦发生故障,系统可以将位于出故障的硬件上的数据从其余的副本修复(restore)到预定的冗余级。在修复期间,系统对附加的故障而言是脆弱的,从而尽可能快地进行修复是很重要的。但是,不是参与修复过程中的所有数据都是同等脆弱的。例如,具有少量副本的数据一般可以被认为是更脆弱的。
所希望的是基于对更脆弱数据的恢复动态地区分优先级的恢复方案来增强存储系统的可靠性。实施这种恢复方案通常是不太可行,因为在存储系统中的恢复组件可以以硬件实现,或者面临禁止对系统的恢复机制进行修改的许可证条款。需要克服上述缺点的系统和方法。因此,在本领域中需要解决上述问题。
发明内容
出于概括的目的,本文已经描述了某些方面、优点和新颖特征。应当理解的是,不是根据任一特定实施例都可以实现所有这样的优点。因此,所公开的主题可以以实现或优化一个优点或一组优点的方式而被体现或执行,而不必实现在本文中教导或暗示的全部优点。
从第一方面看,本发明提供了一种用于在数据存储系统中增强数据恢复的方法,所述方法包括:确定在数据存储系统中的一个或多个数据存储介质是否不可用;根据所述一个或多个数据存储介质不可用,确定处于丢失风险中的数据;从被确定为处于丢失风险中的所述数据中,识别极易丢失的数据;以及创建极易丢失的数据的一个或多个临时副本。
从另一方面看,本发明提供了一种用于在数据存储系统中增强数据恢复的系统,所述系统包括:用于确定在数据存储系统中的一个或多个数据存储介质是否不可用的逻辑单元;用于由于所述一个或多个数据存储介质不可用而确定处于丢失风险中的数据的逻辑单元;用于从被确定为处于丢失风险中的所述数据中识别极易丢失的数据的逻辑单元;和用于创建是极易丢失的数据的一个或多个临时副本的逻辑单元。
从又一方面看,本发明提供了一种用于在数据存储系统中增强数据恢复的计算机程序产品,所述计算机程序产品包括:计算机可读存储介质,所述计算机可读存储介质可由处理电路读取并存储指令以供所述处理电路执行,以用于执行本发明步骤的方法。
从再一方面看,本发明提供了一种被存储在计算机可读介质上并可加载到数字计算机的内部存储器上的计算机程序,所述计算机程序包括软件代码部分,当所述程序在计算机上运行时,以用于执行本发明的步骤。
根据一个或多个实施例,提供了包括一个或多个逻辑单元的系统。该一个或多个逻辑单元被配置来执行与上面公开的方法相关联的功能和操作。在另一个实施例中,提供了包括具有计算机可读程序的计算机可读存储介质的计算机程序产品。当在计算机上被执行时,该计算机可读程序使计算机执行与上面公开的方法相关联的功能和操作。
下面参考附图进一步详细提供除了某些替代方案之外的一个或多个以上公开的实施例。然而,所公开的主题不限于所公开的任何特定实施例。
附图说明
现在将参照如以下附图所示的优选实施例、仅仅通过示例的方式来描述本发明:
图1示出了根据一个或多个实施例的、根据现有技术的、并且本发明的优选实施例可以在其中被实现的示例性数据存储系统;
图2是根据本发明的优选实施例的在分布式存储系统中增强可靠性的示例性方法的流程图;
图3和图4是本公开的系统和方法可以在其中操作的、根据现有技术的、以及本发明的优选实施例可以在其中被实现的硬件和软件环境的框图。
根据一个或多个实施例,在不同的图中用相同的数字标记的特征、元件和方面表示相同、等效或类似的特征、元件或方面。
具体实施方式
在下文中,阐述了许多具体细节以提供对各种实施例的彻底描述。可以在没有这些具体细节、或在细节中存在一些变化的情况下实践本发明的某些实施例。在一些实例中,为了不使其他方面变模糊,没有详细描述某些特征。与元件或特征中的每个相关联的细节水平不应被解释为将一个特征的新颖性或重要性限定为超过其他特征。
参照图1,提供了数据存储系统100,在其中数据112被存储在具有服务器110的第一站点中的数据存储介质A中。为了提供用于数据恢复的主装置,数据112的拷贝可以跨越具有服务器120的站点2上的存储媒体B被复制。以这种方式,主恢复系统可被提供在数据存储系统100中。除了主恢复系统之外,可以为数据存储系统100在主数据恢复基础设施上还引入副机制就位。
副机制可以通过辅助组件的方式来实现,例如,其监视数据存储系统100,以便通过使用系统的现有应用程序编程接口(API)来创建数据的附加临时副本、而不改变数据存储系统的数据恢复100的主要手段。这样,可以提供副机制来与用于修复或恢复丢失数据的主数据恢复基础设施一起,来改善整体数据恢复操作的可靠性。
参照图2,副机制可以被实现为在数据存储系统中独立地扫描服务器,并确定服务器(或存储介质,比如由服务器利用的磁盘)是否可用(S210,S220)。如果例如服务器或磁盘中的一个不可用,则应当被存储在不可用服务器或磁盘上的风险数据(例如,数据对象)的列表被获取。该列表可以被用来确定可能会导致数据丢失的故障(S230)。如果确定某数据丢失(S240),那么丢失的数据可以从存储在别处的数据的临时拷贝或副本进行修复(S250)。
在本发明的一个优选实施例中,可以检查风险数据的列表,以确定在数据列表中标识的风险数据与先前故障(例如,可能仍在经受一个恢复过程的故障)相关联的风险数据的其他列表之间是否有交叉点。检查帮助确定极其脆弱的数据(S260)。如果是的话,则可以创建极其脆弱数据的附加临时拷贝或副本(S270)。在一种实现中,如果风险数据被成功地恢复,则该临时副本可以被移除。否则,如果需要,则该临时副本可被保持以维持或增强数据存储系统的可靠性以及用于数据恢复。
如在下面进一步详细提供的那样,在大多数情况下,极其脆弱的数据分区(例如,受多个故障影响的数据)相比于受单个故障影响的数据来说是可忽略的。因此,创建极其脆弱数据的附加临时副本所需要的时间也可以忽略不计。数据对象的脆弱性例如可以基于特定数据对象在未来的故障期间可能被丢失的概率来计算。这种脆弱性可以通过确定数据对象的剩余副本数来近似估计,或者通过考虑可能与故障的概率相关的一些属性(例如,数据对象存储在其上的磁盘的年龄)来近似估计。
在本发明的一个优选实施例中,数据存储系统100中的脆弱性可以与层次结构的某层级相关联,其中,层次结构可以限定哪些数据比其他数据更脆弱。如早前所指出的那样,在数据存储系统100中,极其脆弱数据的量可能会比脆弱或非脆弱数据的量小得多。这样,在一个实现中,如果对于极其脆弱数据的临时副本被首先创建,则数据存储系统100的可靠性可以以相对低的成本而被显著地提高。
通过考虑对不加区别地复制系统中的所有脆弱的数据或所有数据进行替代的备选,可以更好地被理解与复制极其脆弱的数据相关联的相对低的成本的原因。当然,临时复制极其脆弱的数据将花费较少的时间和资源。例如,如果在数据存储系统100中只有5%的数据被认为是极其脆弱的,则创建那5%的临时副本会相对快速且并不太昂贵。一旦极其脆弱的数据被复制,则较不脆弱的数据可以稍后被复制。
正如所指出的,可以取决于实现(通过根据历史或实时信息检测已受到一定数量故障的数据),来做出关于哪些数据是极其脆弱的确定。例如其中故障数目超出了预定故障容差阈值,则受试数据可以被视为极其脆弱的。使用分层的方式,在本发明的一个优选实施例中,可以针对不同的数据或数据集确定脆弱性的各个级别,使得极其脆弱的数据是与最高数量的故障相关联的数据。
在示例实现中,跨越存储系统具有最大数量的丢失副本的数据可以被视为极其脆弱的数据。在本发明的一个或多个优选实施例中,方案(或算法)可用于基于各种因素来计算脆弱性的级别。例如,可以基于在存储数据和副本中所涉及的数据存储系统100的组件(例如,磁盘,服务器等)的故障率、跨越数据存储系统100的组件故障的实时检测、针对数据存储组件或类似数据存储组件所收集的历史故障数据、或者基于制造商针对相应数据存储组件的故障率所提供的统计数据来计算脆弱性。
如早前所指出的,在本发明的一些优选实施例中,可以基于除了系统组件相关联的故障率之外的因素来确定极其脆弱的数据。例如,脆弱性可以通过一个或多个下列量度来进行测量:系统组件的年龄,数据的可行的副本数,与读取数据相关联的差错率,或者将影响数据丢失的概率或从其副本恢复数据的潜在可能的任何其他因素。
无论用于确定极其脆弱的数据的机制和数据脆弱性的层次结构,一旦极其脆弱的数据被确定,则可以制作极其脆弱数据的一个或多个副本,并将其存储在一个或多个数据存储介质(例如,磁带,硬盘驱动磁盘,非易失性存储器,固态存储设备等)中。或者直接地或者经由应用编程接口(API)或以其他方式,数据存储介质相对于数据存储系统100中的现有数据恢复基础设施是可访问的(但理想的是分开坐落的)。
基于上述方法,丢失风险最高的极其脆弱的数据首先被拷贝。取决于实现,其余的脆弱数据可以以分层的方式根据各自的丢失风险而被拷贝,因此,更脆弱的数据在较不脆弱的数据之前被拷贝,直到没有遗留尚未被拷贝的更脆弱数据。取决于实现,因为某些数据的脆弱性状态被更新,相应的拷贝数量可以以动态的方式被更新。例如,对于不再被视为是风险或脆弱状态的数据的拷贝的数量可以被减少。
有利的是,基于上述副本管理方案,可以在一段相对短的时间量中且以相对小的成本,来显著地减少与被标识为极其脆弱的数据相关联的丢失机会可能。在本发明的一个或多个优选实施例中,如果数据的拷贝或者该数据的副本丢失,则拷贝或副本可以从其他复制中被修复。数据的丢失拷贝可以基于管理实体生成的请求或者通过定期在后台运行的机制的方式而被恢复,以便在底层数据恢复基础设施中修复任何丢失的拷贝。
在本发明的一个优选实施例中,与制作脆弱数据的副本相关联的复制过程是在主数据恢复系统的外部,使得数据的重复拷贝不是存储系统的内部部分。在上文中,已根据本发明的一个或多个优选实施例讨论了复制方法。在下文中,通过两个说明性示例的方式提供具体的特征和实现。然而,值得注意的是,下面的特征在性质上是示例性的,并不意味着将所要求保护的主题的范围限制到任何具体的细节。
在一个双重复制示例中,数据副本被放置在独立磁盘冗余阵列(RAID)RAID 5设备上——RAID 5设备可以是本地的并且双重复制可以是全局的(例如,在广域网(WAN)上实现)。在这个示例中,单个磁盘故障可以由RAID 5设备的内部机制来处理。因为数据保持可用,全局复制过程不会在这个过程中产生干扰。但是,如果在不同的RAID 5设备中的另一个磁盘出现故障,则恢复过程可以独立地并且并行地运行。
在上述示例中,相对于系统中的其他数据,存储在两个降级的RAID阵列的交叉点处的数据风险更大。这种情况是特别相关的,因为RAID设备的恢复过程是非常冗长并且随着系统中的磁盘的大小而增加。针对交叉点中的数据制成稳定副本可以比完成每个RAID设备的恢复所需要时间快得多地被完成。因此,制成稳定拷贝可以大大减少数据丢失的概率。
在三重复制示例中,两个磁盘故障不会导致数据丢失,但可能危及在两个故障磁盘上具有副本的数据(即,该数据具有单个剩余的副本,并且如果最后一个磁盘出现故障则可能丢失)。附加临时稳定副本的创建将保护数据,这样,如果在恢复过程期间发生了第三次故障,则没有数据将丢失。在具有三重复制的分布式系统中,在两个磁盘的交叉点中的数据量远远小于两个磁盘上的数据的总量。这样,虽然对于整个磁盘的恢复过程将是非常耗时的,但是创建稳定副本的时间将是短的。因此,其中数据处于真正的丢失危险的时间帧是最小的。
Openstack Swift是在不同级别风险数据之间不进行区分并且不对恢复区分优先级的系统示例。Openstack具有允许外部地识别数据的接口。通过采用上面讨论的方案,SWIFT集群的可靠性可以在不必贡献代码至开源社区的情况下被增强,但仍从当前开源恢复机制以及可以被添加到共用代码库的任何更新或缺陷修复中受益。应该注意的是,术语“副本”或“复录”和“复制”或“复制品”在本文中已被互换地使用,并且是指制作目标数据的额外拷贝的过程。
使用上述方法,由于极其脆弱数据的量相对于所有其他数据而言是小量的,所以通过复制极其脆弱数据,可以通过在相对低的开销水平保持系统的可靠性时实现大幅的改善。此外,有利地,主数据恢复机制可以跨越系统硬件而保持同质,同时在需要的时候异构硬件可以被用来实现副复制层,以支持对某些数据的更快访问(例如,极其脆弱数据的临时拷贝可以被存储在具有快速访问时间的固态设备上)。
本说明书中对“实施例”、“一个实施例”、“一个或多个实施例”等的参考意味着所描述的特定元件、特征、结构或特性被包括在所公开主题的至少一个实施例中。该类短语在本说明书中的出现不应被特别地解释为指相同的实施例,该类短语也不应被解释为是指关于所讨论的特征或元件是相互排斥的实施例。
在不同的实施例中,所要求保护的主题可以被实现为硬件和软件元件的组合,或者可选地完全以硬件的形式或者完全以软件的形式实现。此外,本文所公开的计算系统和程序软件可以包括受控制的计算环境,其可以用硬件组件或逻辑代码呈现,其被执行以执行实现本文所设想的结果的方法和过程。当由通用计算系统或机器执行时,所述方法和过程将通用机器转换为专用机器。
参考图3和图4,根据示例性实施例的计算系统环境可以包括硬件环境1110和软件环境1120。硬件环境1110可以包括逻辑单元、电路或其他机器和设备,其提供软件环境1120的组件的执行环境。继而,软件环境1120可以提供执行指令,其包括用于硬件环境1110的各种组件的底层操作设置和配置。
参考图3,本文所公开的应用软件和逻辑代码可以以机器可读代码的形式实现,所述机器可读代码通过由示例性硬件环境1110表示的一个或多个计算系统而被执行。如图所示,硬件环境1110可以包括通过系统总线1100耦合到一个或多个存储元件的处理器1101。存储元件例如可以包括本地存储器1102、存储介质1106、高速缓冲存储器1104或者其他机器可用或计算机可读介质。在本公开的上下文内,机器可用或计算机可读存储介质可以包括任何可记录物品,其可以被用于包含、存储、传递、传播或传输程序代码。
计算机可读存储介质可以是电子、磁、光学、电磁、红外或半导体介质、系统、装置或设备。计算机可读存储介质还可以以传播介质实现,而不限于这样的范围:所述实现被认为是法定的主题。在适当的情况下,计算机可读存储介质的示例可以包括半导体或固态存储器、磁带、可移除计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、刚性磁盘、光盘或载波。光盘的当前示例包括紧凑盘、只读存储器(CD-ROM)、紧凑盘读/写(CD-R/W)、数字视频盘(DVD)、高清晰度视频盘(HD-DVD)或蓝光TM(Blue-rayTM)盘。
在一个实施例中,处理器1101从存储介质1106向本地存储器1102加载可执行代码。高速缓冲存储器1104通过提供有助于降低代码被加载以用于执行的次数的临时存储,来优化处理时间。一个或多个用户接口设备1105(例如,键盘、指点设备等)和显示屏幕1107可以被耦合到硬件环境1110中的其他元件,例如直接耦合或通过居间I/O控制器1103耦合。通信接口单元1108(诸如网络适配器)可以被提供以使得硬件环境1110能够经由居间的专用或公用网络(例如,因特网)而与本地或远程定位的计算系统、打印机和存储设备通信。有线或无线调制解调器和以太网卡是网络适配器的几种示例性类型。
值得注意的是,在特定实现中硬件环境1110可以不包括一些或全部上述组件,或者可以包括附加组件以提供补充功能或效用。取决于设想的用途和配置,硬件环境1110可以是诸如台式计算机或膝上型计算机之类的机器,或者可选地在嵌入式系统中体现的其他计算设备,诸如机顶盒、个人数字助理(PDA)、个人媒体播放器、移动通信单元(例如,无线电话)或者具有信息处理或数据存储能力的其他类似硬件平台。
在一些实施例中,通信接口1108充当数据通信端口,以通过发送和接收承载表示各种类型的信息(包括程序代码)的模拟或数字数据流的数字、电、电磁或光信号,来提供与一个或多个计算系统通信的手段。可以通过本地或远程网络来建立通信,或者可选地,通过经由空气或其他介质进行传输(包括但不限于经由载波传播)来建立通信。
如本文所提供的,在所示出的硬件元件上执行的所公开的软件元件是根据本质上是示例性的逻辑或功能关系来定义的。然而,应当注意的是,通过所述示例性软件元件实现的各个方法还可以例如通过经配置和编程的处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)和数字信号处理器(DSP)而被编码在所述硬件元件中。
参考图4,软件环境1120通常可以被划分为两类,包括在一个或多个硬件环境1110上执行的系统软件1121和应用软件1122。在一个实施例中,本文所公开的方法和过程可以被实现为系统软件1121、应用软件1122或其组合。系统软件1121可以包括控制程序,诸如操作系统(OS)或信息管理系统,其指示硬件环境1110中的一个或多个处理器1101(例如,微控制器)如何运作和处理信息。应用软件1122可以包括但不限于程序代码、数据结构、固件、驻留软件、微代码或可以由处理器1101读取、分析或执行的任何其他形式的信息或例程。
换言之,应用软件1122可以被实现为机器可用或计算机可读存储介质的形式的计算机程序产品中嵌入的程序代码,所述机器可用或计算机可读存储介质提供由机器、计算机或任何指令执行系统使用或与其结合使用的程序代码。此外,应用软件1122可以包括一个或多个计算机程序,其在从存储介质1106加载到本地存储器1102中之后在系统软件1121之上被执行。在客户端-服务器架构中,应用软件1122可以包括客户端软件和服务器软件。例如,在一个实施例中,客户端软件可以在客户端计算系统上被执行,所述客户端计算系统不同于在其上执行服务器软件的服务器计算系统并且与其是相分离的。
软件环境1120还可以包括浏览器软件1126,用于访问通过本地或远程计算网络可用的数据。此外,软件环境1120可以包括用户接口1124(例如,图形用户接口(GUI)),用于接收用户命令和数据。值得重申的是,上述硬件和软件架构及环境是出于示例的目的。如此,一个或多个实施例可以通过任何类型的系统架构、功能或逻辑平台或处理环境来实现。
还应当理解的是,逻辑代码、程序、模块、过程、方法以及各方法的各个过程被执行的顺序是纯示例性的。取决于实现,除非在本公开中另外指出,否则可以以任何顺序或并行地执行各过程或任何底层子过程和方法。此外,除非另外特别声明,否则本公开的上下文内的逻辑代码的定义无关于或不限于任何特定编程语言,并且可以包括一个或多个模块,该一个或多个模块可以在分布式、非分布式、单处理或多处理环境中的一个或多个处理器上执行。
本领域技术人员将理解的是,软件实施例可以包括固件、驻留软件、微代码等。包括软件或硬件或者组合软件和硬件方面的特定组件在本文中通常被称作“电路”、“模块”或“系统”。此外,所公开的主题可以被实现为以一个或多个计算机可读存储介质体现的计算机程序产品,所述计算机可读存储介质具有在其上体现的计算机可读程序代码。可以使用一个或多个计算机可读存储介质的任何组合。计算机可读存储介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质例如可以是但不限于电子、磁、光学、电磁、红外或半导体系统、装置或设备、或上述的任何适当组合。
在本文件的上下文中,计算机可读存储介质可以是可包含或存储程序的任何有形介质,所述程序由指令执行系统、装置或设备使用或与其结合使用。计算机可读信号介质可以包括例如在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读程序代码。这种传播的信号可以采用各种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或设备使用或者与其结合使用的程序。
计算机可读存储介质上包含的程序代码可以使用任何适当的介质来传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。可以以一种或多种程序设计语言的任意组合来编写用于执行所公开的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言(诸如Java、Smalltalk、C++等),还包括常规的过程式程序设计语言(诸如“C”程序设计语言或类似的程序设计语言)。
程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网进行连接)。
参照根据实施例的方法、装置(系统)和计算机程序产品的流程图图示或框图公开了某些实施例。应当理解的是,流程图图示或框图的每个方框以及流程图图示和/或框图中各方框的组合,都可以由计算机程序指令来实现。这些计算机程序指令可以被提供给通用计算机、专用机器或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生实现流程图或框图中的一个或多个方框中规定的功能或动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令可以使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,使得存储在计算机可读介质中的指令产生包括实现流程图或框图中的一个或多个方框中规定的功能或动作的指令的制造品。
计算机程序指令还可以被加载到计算机、其它可编程数据处理装置或其他设备上,以使一系列操作步骤在计算机、其它可编程装置或其他设备上被执行以产生计算机实现的过程,使得在计算机或其它可编程装置上执行的指令提供用于实现流程图或框图中的一个或多个方框中规定的功能/动作的处理。
附图中的流程图和框图示出了根据各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含用于实现规定的逻辑功能的一个或多个可执行指令。也应当注意的是,在有些替代性实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序或以任意顺序发生。
例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图图示中的每个方框、以及框图或流程图图示中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
这里已经参考一个或多个特征或实施例而提供了所要求保护的主题。本领域技术人员应当认识并理解的是,尽管本文提供了示例性实施例的详细特性,但不限制一般期望的范围,在不脱离一般期望的范围的情况下,可以对所述实施例进行改变和修改。本文提供的实施例的这些和各种其他调整及组合在所公开主题的范围内,其中该范围由权利要求及其等效形式的完整集限定。

Claims (15)

1.一种用于在数据存储系统中增强数据恢复的方法,所述方法包括:
确定在数据存储系统中的一个或多个数据存储介质是否不可用;
基于所述一个或多个数据存储介质不可用,确定在所述数据存储系统中与所述一个或多个数据存储介质相关的、处于丢失风险中的数据;
从被确定为处于所述丢失风险中的所述数据中,至少部分基于考虑与未来故障事件的概率相关的一个或多个因素,识别极易丢失的数据,其中所述一个或多个因素包括以下中的至少一个:在其上存储所述数据的盘的年龄、在所述数据存储系统中的系统组件的年龄、针对所述数据可行副本的数量、与读取所述数据相关联的差错率;以及
创建极易丢失的所述数据的一个或多个临时副本。
2.根据权利要求1所述的方法,其中处于所述丢失风险中的所述数据包括存储在不可用的所述一个或多个数据存储介质上的数据。
3.根据权利要求1所述的方法,其中在外部存储设备或固态存储设备上创建至少一个临时副本。
4.根据权利要求1所述的方法,其中极易丢失的所述数据包括副本的数量小于预定阈值的数据。
5.根据权利要求1所述的方法,其中所述一个或多个因素还包括:影响数据丢失的所述概率或从所述数据的一个或多个副本中恢复所述数据的潜力的一个或多个事件。
6.根据权利要求1到5中的任一项所述的方法,其中响应于确定针对所述数据的副本的所述数量被恢复到预定阈值,所创建的所述临时副本的数量被减少。
7.根据权利要求1所述的方法,其中临时副本被用来从数据丢失中进行恢复。
8.一种用于在数据存储系统中增强数据恢复的系统,所述系统包括:
用于确定在数据存储系统中的一个或多个数据存储介质是否不可用的逻辑单元;
用于基于所述一个或多个数据存储介质不可用而确定在所述数据存储系统中与所述一个或多个数据存储介质相关的、处于丢失风险中的数据的逻辑单元;
用于从被确定为处于所述丢失风险中的所述数据中,至少部分基于考虑与未来故障事件的概率相关的一个或多个因素,识别极易丢失的数据的逻辑单元,其中所述一个或多个因素包括以下中的至少一个:在其上存储所述数据的盘的年龄、在所述数据存储系统中的系统组件的年龄、针对所述数据可行副本的数量、与读取所述数据相关联的差错率;以及
用于创建极易丢失的所述数据的一个或多个临时副本的逻辑单元。
9.根据权利要求8所述的系统,其中处于所述丢失风险中的所述数据包括存储在不可用的所述一个或多个数据存储介质上的数据。
10.根据权利要求8所述的系统,其中在外部存储设备或固态存储设备上创建至少一个临时副本。
11.根据权利要求8所述的系统,其中极易丢失的所述数据包括副本的数量小于预定阈值的数据。
12.根据权利要求8所述的系统,其中所述一个或多个因素还包括:影响数据丢失的所述概率或从所述数据的一个或多个副本中恢复所述数据的潜力的一个或多个事件。
13.根据权利要求8到12中的任一项所述的系统,其中响应于确定针对所述数据的副本的所述数量被恢复到预定阈值,所创建的所述临时副本的数量被减少。
14.根据权利要求8所述的系统,其中临时副本被用来从数据丢失中进行恢复。
15.一种用于在数据存储系统中增强数据恢复的计算机可读存储介质,所述计算机可读存储介质由处理电路可读取并存储指令以供所述处理电路执行,以用于执行根据权利要求1至7中的任一项的方法。
CN201580012223.2A 2014-03-06 2015-02-19 分布式存储系统中的可靠性增强 Active CN106104460B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/198,592 2014-03-06
US14/198,592 US9336091B2 (en) 2014-03-06 2014-03-06 Reliability enhancement in a distributed storage system
PCT/IB2015/051266 WO2015132690A1 (en) 2014-03-06 2015-02-19 Reliabilty enhancement in a distributed storage system

Publications (2)

Publication Number Publication Date
CN106104460A CN106104460A (zh) 2016-11-09
CN106104460B true CN106104460B (zh) 2019-04-12

Family

ID=54017485

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580012223.2A Active CN106104460B (zh) 2014-03-06 2015-02-19 分布式存储系统中的可靠性增强

Country Status (6)

Country Link
US (3) US9336091B2 (zh)
JP (1) JP6452712B2 (zh)
CN (1) CN106104460B (zh)
DE (1) DE112015000384B4 (zh)
GB (1) GB2538206A (zh)
WO (1) WO2015132690A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9264494B2 (en) * 2013-10-21 2016-02-16 International Business Machines Corporation Automated data recovery from remote data object replicas
US9336091B2 (en) 2014-03-06 2016-05-10 International Business Machines Corporation Reliability enhancement in a distributed storage system
US9891973B2 (en) * 2015-02-18 2018-02-13 Seagate Technology Llc Data storage system durability using hardware failure risk indicators
US10275302B2 (en) 2015-12-18 2019-04-30 Microsoft Technology Licensing, Llc System reliability by prioritizing recovery of objects
EP3466795B1 (en) * 2016-05-24 2020-08-19 Mitsubishi Electric Corporation Electronic control device and operation control method therefor
US10437241B2 (en) 2016-12-16 2019-10-08 General Electric Company Systems and methods for generating maintenance packages
CN107589916A (zh) * 2017-09-29 2018-01-16 郑州云海信息技术有限公司 一种基于纠删码的纠删池的创建方法及相关装置
CN109407975B (zh) * 2018-09-19 2020-08-25 华为技术有限公司 写数据方法与计算节点以及分布式存储系统
CN113467703A (zh) * 2020-03-31 2021-10-01 杭州海康存储科技有限公司 存储介质的管理方法、装置及设备
CN113726899B (zh) * 2021-09-01 2022-10-04 内蒙古工业大学 一种基于OpenStack的高校高可用微型数据中心构建方法
CN115167782B (zh) * 2022-07-28 2023-02-28 北京志凌海纳科技有限公司 临时存储副本管理方法、系统、设备和存储介质

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6516425B1 (en) 1999-10-29 2003-02-04 Hewlett-Packard Co. Raid rebuild using most vulnerable data redundancy scheme first
US6609212B1 (en) * 2000-03-09 2003-08-19 International Business Machines Corporation Apparatus and method for sharing predictive failure information on a computer network
JP4500063B2 (ja) * 2004-02-06 2010-07-14 富士通株式会社 電子装置、予測方法および予測プログラム
JP2007249441A (ja) * 2006-03-15 2007-09-27 Hitachi Ltd 仮想化システム及び障害対処方法
US7743276B2 (en) 2006-09-27 2010-06-22 Hewlett-Packard Development Company, L.P. Sufficient free space for redundancy recovery within a distributed data-storage system
JP5075465B2 (ja) * 2007-04-20 2012-11-21 株式会社東芝 インシデント・アクシデントレポート分析装置、方法、およびプログラム
US8019728B2 (en) 2008-04-17 2011-09-13 Nec Laboratories America, Inc. Dynamically quantifying and improving the reliability of distributed data storage systems
JP4843693B2 (ja) * 2009-03-30 2011-12-21 株式会社東芝 記憶装置
US8566354B2 (en) * 2010-04-26 2013-10-22 Cleversafe, Inc. Storage and retrieval of required slices in a dispersed storage network
WO2012017641A1 (ja) 2010-08-03 2012-02-09 パナソニック株式会社 アレイ管理装置、方法、集積回路およびプログラム
EP2439908A1 (en) * 2010-09-20 2012-04-11 Thomson Licensing Method of data replication in a distributed data storage system and corresponding device
US8732518B2 (en) 2011-04-13 2014-05-20 Netapp, Inc. Reliability based data allocation and recovery in a storage system
JP5887757B2 (ja) * 2011-08-17 2016-03-16 富士通株式会社 ストレージシステム、ストレージ制御装置およびストレージ制御方法
WO2013038618A1 (ja) * 2011-09-14 2013-03-21 パナソニック株式会社 情報記憶媒体ライブラリアレイ装置、情報記録方法及び情報記録プログラム
US8812902B2 (en) 2012-02-08 2014-08-19 Lsi Corporation Methods and systems for two device failure tolerance in a RAID 5 storage system
US8862948B1 (en) * 2012-06-28 2014-10-14 Emc Corporation Method and apparatus for providing at risk information in a cloud computing system having redundancy
US9635109B2 (en) * 2014-01-02 2017-04-25 International Business Machines Corporation Enhancing reliability of a storage system by strategic replica placement and migration
US9336091B2 (en) 2014-03-06 2016-05-10 International Business Machines Corporation Reliability enhancement in a distributed storage system

Also Published As

Publication number Publication date
US20150254140A1 (en) 2015-09-10
US20160162361A1 (en) 2016-06-09
WO2015132690A1 (en) 2015-09-11
DE112015000384B4 (de) 2021-12-02
JP6452712B2 (ja) 2019-01-16
GB201615112D0 (en) 2016-10-19
US20180203769A1 (en) 2018-07-19
GB2538206A (en) 2016-11-09
US9946602B2 (en) 2018-04-17
US9336091B2 (en) 2016-05-10
JP2017507427A (ja) 2017-03-16
CN106104460A (zh) 2016-11-09
DE112015000384T5 (de) 2016-09-29
US10223207B2 (en) 2019-03-05

Similar Documents

Publication Publication Date Title
CN106104460B (zh) 分布式存储系统中的可靠性增强
US11500570B2 (en) Efficient relocation of data utilizing different programming modes
US11112990B1 (en) Managing storage device evacuation
US11604598B2 (en) Storage cluster with zoned drives
US11341136B2 (en) Dynamically resizable structures for approximate membership queries
US9635109B2 (en) Enhancing reliability of a storage system by strategic replica placement and migration
US11947814B2 (en) Optimizing resiliency group formation stability
US20210382800A1 (en) Efficient partitioning for storage system resiliency groups
US20220291837A1 (en) Inline flash memory qualification in a storage system
US11782625B2 (en) Heterogeneity supportive resiliency groups
US11520514B2 (en) Optimized relocation of data based on data characteristics
CN110058787B (zh) 用于写入数据的方法、设备和计算机程序产品
US9547707B2 (en) Copy of replication status for synchronization
US20220180950A1 (en) Refresh of differing capacity nand
US20230132591A1 (en) Coordinated Snapshots For Data Stored Across Distinct Storage Environments
US11531577B1 (en) Temporarily limiting access to a storage device
US11789651B2 (en) Compliance monitoring event-based driving of an orchestrator by a storage system
US20230244399A1 (en) Selecting Storage Resources Based On Data Characteristics
US11816068B2 (en) Compliance monitoring for datasets stored at rest
US20210255927A1 (en) Granular Voltage Tuning
US11803453B1 (en) Using host connectivity states to avoid queuing I/O requests
US20230125030A1 (en) Context Driven User Interfaces For Storage Systems
WO2023003627A1 (en) Heterogeneity supportive resiliency groups
WO2022240938A1 (en) Rebalancing in a fleet of storage systems using data science

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant