基于硬件故障分配数据的制作方法
【专利说明】基于硬件故障分配数据 相关申请的交叉引用
[0001] 本申请要求均在2013年5月15日提交的第13/895,237号和第13/895,205号 共同未决美国专利申请的优先权,所述专利申请的内容的全文以引用的方式并入本文中。 本申请为关于2013年5月15日提交、标题为"通过控制数据访问减少干扰(REDUCING INTERFERENCE THROUGH CONTROLLED DATA ACCESS)"的第 13/895, 205 号美国专利申请的主 旨,所述专利申请的内容的全文以引用的方式并入本文中。
【背景技术】
[0002] 数据存储系统已进化且继续进化以满足使用其的组织的需求。除其它原因外,出 于大量数据的数据归档、冗余和存储的目的,诸多组织例如利用数据存储系统。.尽管现代 数据存储系统具有诸多优点,但其含有由数据存储系统提供者和利用其的组织需承受的固 有风险。例如,尽管已尽最大努力避免,但数据存储系统常包括可易于起因于由各种移动部 件(诸如旋转磁介质)造成的系统振动而导致过热和/或疲劳损坏的组件。因此,数据存 储系统中所含的数据可能易于被损坏或丢失。诸如通过适当冗余数据存储适当地解决这些 风险对依赖于数据存储系统的组织和服务提供者添加额外成本。 附图简述 将参考附图描述根据本公开的各种实施方案,在附图中:
[0003] 图1示出可以实行各种实施方案的环境的说明性实例;
[0004] 图2示出可以实行各种实施方案的环境的说明性实例;
[0005] 图3示出根据至少一个实施方案的用于存储数据的过程的说明性实例;
[0006] 图4示出含有多个多存储装置单元(诸如"集束磁盘"单元(JBOD))的数据存储 系统机柜的说明性实例;
[0007] 图5示出可以在数据存储机柜内所含的多存储装置单元(诸如JB0D)的说明性实 例;
[0008] 图6示出可以托管数据存储系统的设施的说明性实例;
[0009] 图7示出根据至少一个实施方案的用于存储数据对象的过程的说明性实例;
[0010] 图8示出根据至少一个实施方案的用于追踪数据存储系统中的硬件故障的过程 的说明性实例;
[0011] 图9示出根据至少一个实施方案的用于将数据对象片段放置到数据存储装置中 的过程的说明性实例;
[0012] 图10示出根据至少一个实施方案的用于从数据存储装置检索数据对象的过程的 说明性实例;
[0013] 图11示出根据至少一个实施方案的用于将数据对象片段放置到数据存储装置中 的过程的说明性实例;和
[0014] 图12示出可以实行各种实施方案的环境的说明性实例。
【具体实施方式】
[0015] 在下文描述中,将描述各种实施方案。出于解释的目的,阐述特定配置和详情以便 提供对实施方案的透彻了解。然而,还将对所属领域的一般技术人员明显的是,可以在没有 特定详情的情况下实行实施方案。此外,熟知特征可以被省略或简化以免使所述实施方案 变模糊。
[0016] 本文中所述和所建议的技术涉及数据存储和访问同时最小化数据丢失或损坏的 风险。在实施方案中,实体(例如,组织)诸如通过对服务的适当配置的应用编程接口(API) 调用来联系服务,以请求对数据对象的归档或访问(例如,数据对象检索)。在实施方案 中,实体为操作数据存储服务的计算资源服务提供者的客户。在接收请求之后,服务提供者 可以从客户接收数据对象,且通过使用冗余编码算法将对象转换成各种片段以存储在系统 中。算法可以例如为一种将数据对象分成冗余片段使得仅一些片段需要重新编译对象的算 法。示例性算法包括利用纠删码以将位序列变换成全体大于位序列的多个位序列使得多个 位序列的适当子集适于重建位序列的算法。
[0017] 在各种实施方案中,通过使用各种网络机柜促进数据存储系统。这些机柜含有各 种多存储装置单元(诸如JB0D),多存储装置单元转而可以由各种存储装置(诸如利用旋 转磁介质(例如,磁盘)的存储装置、磁带存储装置或固态驱动器(SSD))组成。这些存储 装置可能易于由于操作环境发生故障。例如,在存储装置利用旋转磁介质的情况下,每个存 储装置产生可以影响近距离其它存储装置的振动。这种类型的振动可以导致磁头碰撞(例 如,存储装置臂上的读取/写入磁头接触旋转磁盘,从而物理地破坏一个或多个磁盘)和数 据损失。存储装置还易于过热,从而可能降低存储装置自身的使用寿命。服务提供者可以 具有关于数据存储系统中的故障模式的信息,且使用这个信息可以尝试减轻破坏和数据损 失的风险。重要的是,应注意,这些故障模式不一定是已知为造成故障的模式,但如果所述 故障模式将造成故障,那么其可以是将削弱数据持久性的模式。例如,计算机资源服务提供 者可以不具有用来确定是否存在明显数据丢失风险、是否将数据写入到不同存储装置中的 相同磁盘的信息,但由于起因于故障的潜在破坏,服务提供者可能想要避免这种情况。
[0018] 在各种实施方案中,服务提供者以将降低由于硬件故障的数据丢失的风险的方式 确定数据存储系统中的片段的放置。放置可以指示数据存储系统中的物理位置。物理位置 可以特定到服务提供者能够控制的物理位置。例如,对于多个片段中的每个片段,放置可以 指示或以其它方式对应于片段位置的一个或多个物理特性,诸如将存储片段的地理区域、 数据中心、数据中心机房、机柜、机柜单元(例如,机柜内的多存储装置单元)和/或存储装 置。在一些实施方案中,服务提供者可以对数据放置具有甚至更大粒度的控制,且如此,对 于多个片段中的每个片段,放置可以指示或以其它方式对应于以下项的物理特性:诸如具 有旋转磁介质(磁盘)的存储装置中的磁盘的位置、磁盘侧、磁盘上的环形区域、可供存储 装置的特定磁头访问的磁盘上位置和/或其它物理位置。服务提供者可以具有在被配置来 作出放置决定以减轻这个丢失的放置引擎中所阐述的特定规则。例如,服务提供者可以使 用数据存储系统中的硬件故障来更新并入到放置引擎中的规则以避免重复这个硬件故障 和其它故障模式。
[0019] 在一些实例中,放置引擎接收用来将数据对象片段放置到数据存储系统中的请 求。在放置引擎已确定第一片段的位置之后,引擎可以基于由服务提供者阐述的各种规则 选择下一片段的数据存储位置以便减轻数据丢失的风险。例如,如果后续片段的选定位置 不满足在引擎中所阐述的规则,那么其将继续为所述片段重选位置直到识别适当位置为 止。此时,放置引擎将移动到下一片段,或如果没有片段要分析,那么将所有片段放置到数 据存储系统中。
[0020] 在各种情况下,数据存储系统可以同时处理来自众多客户的众多请求,或出于其 它原因(例如,垃圾收集)通常可以在请求处理期间访问数据存储装置。因此,在数据存储 系统内的存储至少部分响应于请求的数据的存储装置可以在由客户作出用来访问或归档 数据对象的请求时进行操作。如上述,存储装置可产生振动且可能易于过热。因此,在各种 实施方案中,服务提供者通过例如防止在归档或检索过程期间透过使用放置引擎中的规则 访问特定存储装置来减轻数据丢失的风险。例如,如果放置引擎已建立片段将存储在特定 存储装置中但相邻存储装置在使用中,那么引擎可以在将片段放置在数据存储装置中之前 确定任何其它片段的位置。在数据检索的实例中,数据存储系统可以执行相似于上述操作 的操作,但相反可以选择仅获得重新编译数据对象所要的必需片段。在一些实施方案中,读 取、写入和/或删除操作可以被延迟直到数据存储系统的状态使得允许执行读取、写入和/ 或删除操作以降低故障风险为止。例如,如果数据将写入到特定存储装置、从特定存储装置 读取或从特定存储装置删除,那么写入、读取或删除数据可以被延迟直到任何相邻存储装 置处于闲置状态为止
[0021] 以此方式,数据存储系统中的数据较不易于由于系统内的硬件故障而发生丢失。 此外,本文中所述和所建议的技术促进额外技术优点。例如,在一些实施方案中,因为可以 在任何给出时间基于操作环境限制对某些存储装置的访问,所以数据存储系统内所含的硬 件较不易于发生疲劳破坏且因此可以降低服务提供者的维护成本。这转而可以导致客户成 本的降低。还通过本文中所述的各种技术启用额外用途。
[0022] 图1示出可以实行各种实施方案的环境100的说明性实例。在环境100中,客户 102将数据对象104(例如,这可以包括由一个或多个位组成的文件,诸如但不限于可执行 程序、图和文本文档)传输到计算资源服务提供者以存储在数据存储系统中。客户和计算 资源服务提供者可以是组织实体,诸如公司或其它组织。应注意,虽然本公开论述与计算资 源服务提供者进行通信的客户,但除非上下文另有清楚说明,否则这些通信可以经由通过 使用一个或多个通信协议(诸如下述通信协议)的组织操作和/或代表组织操作的装置 (例如,计算机系统)发生。
[0023] 通过冗余编码引擎106处理数据对象104。冗余编码引擎106可以利用一种或多 种算法以将由客户102提供的数据对象转换成众多数据片段108。数据存储系统可以维护 使父数据对象104的识别符与数据片段108的数据存储位置相关联的数据库。此外,数据 片段108可以被编码来在系统内进行追踪。例如,可以在以后某个时间用父数据对象104 的名称和重新编译数据对象所要的片段的数量对数据片段108进行编码。
[0024] 随后,如图1中所示,通过确定数据存储系统中的每个数据片段108的位置的放置 引擎110处理数据片段108。放置引擎110可以是被配置来应用规则集以将数据片段108 放置到数据存储系统中的存储装置(例如,驱动器)112中的计算机系统或计算机系统组 件。放置引擎110可以使用由服务提供者指定的各种规则来确定适当位置。一旦已指定每 个数据片段108的位置,那么将数据片段108传送到对应存储装置112以便存储。
[0025] 存储装置112可以由旋转磁介质、磁带驱动器、SSD或任何其它形式的数据存储装 置组成。数据片段108可以驻留在这些存储装置112中直到客户102将用来修改数据对象 104的请求提供到服务提供者时为止。例如,客户102可以请求删除、取代或重写数据对象 104。在这个实例中,服务提供者将访问含有数据对象108的存储装置112且遵从客户请求。
[0026] 图2示出可以实行本公开的各种实施方案的环境200的说明性实例。图2中所示 的环境200可以包括诸如上文结合图1所述的组件的组件。例如,图2中的环境200包括 客户202和计算资源服务提供者206。可以诸如上文结合图1所述般配置客户202和计算 资源服务提供者206。如图2中所示