用于在可组合基础设施中保持存储设备故障容差的方法和系统技术方案

技术编号:28203581 阅读:28 留言:0更新日期:2021-04-24 14:27
具有可组合基础设施的系统(例如,数据中心),其中计算设备(例如,服务器)通过网络或其他通信机制访问被组织成存储组的磁盘驱动器;用于实现此类系统的设备;用于配置和操作此类系统的方法;以及(以非瞬态方式)存储用于执行本发明专利技术的方法或其步骤的任何实施例的代码的计算机可读介质。通常,存储组被确定成使得每个存储组中的驱动器具有至少一种耦合故障机制,并且根据驱动器的存储组成员关系来将驱动器分配给服务器(并且通常也将数据项放置在服务器中)。在一些实施例中,(例如,根据RAID技术)将来自服务器的数据以冗余方式存储在驱动器中的至少两个驱动器上。器中的至少两个驱动器上。器中的至少两个驱动器上。

【技术实现步骤摘要】
【国外来华专利技术】用于在可组合基础设施中保持存储设备故障容差的方法和系统
[0001]专利技术人:James G.Hanko(J
·
G
·
汉科),Christopher Unkel(C
·
温克尔),Jean

Francois Remy(J

F
·
雷米)


[0002]本专利技术涉及其中计算设备(服务器)通过网络或其他通信机制访问磁盘驱动器(在服务器外部)的方法和系统,并且涉及用于实现此类方法和系统的设备。根据一些实施例,磁盘驱动器被组织成存储组(例如,使得每个存储组中的驱动器具有至少一种耦合故障机制)并且根据驱动器的存储组成员关系来将驱动器分配给服务器(并且通常也将数据项放置在服务器中)。

技术介绍

[0003]以下定义贯穿本说明书(包括权利要求中)适用:
[0004]“存储设备”表示被配置成存储和检取数据的设备(例如,磁盘驱动器或闪存)。通常使用逻辑块地址(LBA)和数个块来访问存储设备。逻辑块是总存储容量的固定大小的块(例如,512字节或4096字节);
[0005]“磁盘驱动器”(或“驱动器”)表示大容量数据存储设备。磁盘驱动器的示例包括(但不限于):包含旋转磁介质或闪存单元的驱动器,或实现至少一种其他数据存储技术的驱动器;
[0006]“JBOD”(或集束磁盘(Just a Bunch Of Disks))表示包含一组至少两个磁盘驱动器的外壳。该外壳通常具有冗余电源和数据通信连接;/>[0007]“可组合基础设施”表示用于设计包括服务器(各自实现至少一个计算元件)和磁盘驱动器的系统(例如,数据中心)的技术,其中磁盘驱动器在服务器外部(并且使用数据网络或其他通信机制附连到或耦合到服务器),使得磁盘驱动器的子集可分配(可指派)给服务器中的各个服务器,并且每个服务器能够使用在其外部并且已经分配给其的磁盘驱动器中的至少一个磁盘驱动器(例如,在其上存储数据)。本文中通信机制有时被称为(具有可组合基础设施的系统的)“通信子系统”。每个服务器还可以(但不是必须)包括(例如,直接包含)至少一个内部磁盘驱动器,但是此类内部磁盘驱动器(如果有的话)不是前面句子中提到的(外部的且可分配的)磁盘驱动器中的一者。例如,服务器中的至少一个服务器可包括仅用于引导其操作系统的内部磁盘驱动器(本文中有时被称为“引导”驱动器)。作为另一个示例,服务器中的至少一个服务器可以不包括任何内部磁盘驱动器。作为另一个示例,服务器中的至少一个服务器可包括内部磁盘驱动器(例如,DAS磁盘驱动器),服务器将该内部磁盘驱动器用于除了引导服务器的操作系统之外的至少一个操作,但是该内部磁盘驱动器不是系统的外部和可分配驱动器中的一者。在该上下文中,内部磁盘驱动器(其在服务器内部)可被包含在服务器的底架内,或者尽管它不被包含在服务器的底架内,但它可被直接线接到服务器的计算元件(计算子系统)。根据(本段中)上述技术设计的系统(例如,数据中
心)在本文中有时被称为可组合基础设施(或可组合架构)、或具有可组合基础设施(或可组合架构)的系统。具有可组合基础设施的系统的驱动器通常(但不一定)作为“原始”存储设备被(它们被分配给的服务器)直接访问,而(除了由服务器本身提供的之外)没有提供RAID、快照处理、去重服务等(这些服务传统上在NAS和SAN环境中可获得)的能力。在一些实施例中,具有可组合基础设施的系统的驱动器可作为“原始”存储设备被RAID控制器直接访问,以将来自可组合基础设施的服务器的数据存储在驱动器上;
[0008]“服务器”表示一种计算设备(计算机或处理器),该计算设备(计算机或处理器)被配置成运行应用并且通常还用于跨网络(或其他通信机制)访问和使用存储设备(例如,磁盘驱动器)以存储和检取数据(例如,文件和/或应用)。服务器通常包括被编程为和/或以其他方式配置成运行应用的至少一个计算子系统(本文中有时称为“计算元件”);
[0009]“适配器”表示一种设备,该设备被配置成将存储设备(例如,磁盘驱动器)或包括两个或更多个存储设备的存储系统(例如,包含两个或更多个磁盘驱动器的JBOD)的设备连接到具有可组合基础设施的系统的通信子系统(例如,网络)。在题为“Method and System for Balancing Storage Data Traffic in Converged Networks(用于在融合网络中平衡存储数据流量的方法和系统)”的美国专利9,794,112中描述了适配器的示例;
[0010]“服务器接口”表示一种服务器部件,该服务器部件将服务器连接到具有可组合基础设施的系统的通信子系统(例如,网络),并且“适配器接口”表示一种适配器部件,该适配器部件将适配器连接到具有可组合基础设施的系统的通信子系统(例如,网络)。服务器接口(或适配器接口)的示例是物理设备(即,网络接口控制器(NIC))和多个NIC的软件定义的包装器(如用于链路聚合)。在本专利技术的一些实施例中,服务器接口(或适配器接口)是在融合网络中具有其自己的因特网协议(IP)地址的硬件或软件元件;
[0011]在可组合架构中,“计算机架”表示服务器的机架。通常,每个服务器不包含用于大容量存储的任何磁盘驱动器(但是经常地,其包含用于引导其操作系统的磁盘驱动器)。
[0012]服务器的“DAS”(或“直接附加存储”)表示用于(服务器的)计算元件的大容量存储的一个或多个磁盘驱动器,其中每个这样的磁盘驱动器(有时被称为“DAS驱动器”)直接线接到服务器的计算元件(计算子系统)。通常,服务器的每个DAS驱动器被包含在服务器的底架内。有线连接技术的示例包括(但不限于)SATA、SAS和NVMe;
[0013]“数据节点”表示被配置成执行针对横向扩展(scale

out)应用(例如,Hadoop)的存储操作的服务器(或由服务器实现的虚拟机或服务器的其他元件)。
[0014]“横向扩展应用”表示一种应用,服务器被配置成运行该应用(通常,用软件对服务器进行编程以执行该应用)以协调该服务器的行为与(使用数据网络或其他通信机制)附连到或耦合到该服务器的其他服务器(通常也被配置成运行相同应用)的行为,从而允许该服务器与其他服务器中的至少一个服务器协作以执行处理操作(例如,从而以分布式方式解决问题)。例如,为了以分布式方式解决问题,所有服务器(各自被配置成运行相同的横向扩展应用)可以运行协调它们的行为的横向扩展应用;
[0015]“Hadoop”表示由阿帕奇基金会(Apache Foundation)提供的一种横向扩展应用;
[0016]应用(例如,横向扩展应用)的“数据放置策略”表示(多个)规则,运行该应用的服务器根据该(多个)规则放置数据项(例如,向一个或多个其他服务器发送数据项)和/或(例如,在服务器外部的磁盘驱动器上)存储数据项。“数据复制策略”表示一种数据放置策略,
服务器根据该数据放置策略的(多个)规则在服务器外本文档来自技高网...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种具有可组合基础设施的系统,包括:通信子系统;耦合到所述通信子系统的磁盘驱动器,其中根据涉及所述驱动器的至少一种耦合故障机制将所述驱动器组织成存储组;以及一组服务器,其中所述服务器中的每个服务器耦合到所述通信子系统并且已经根据所述驱动器的存储组成员关系分配了所述驱动器的不同子集,并且所述服务器中的所述每个服务器包括配置成运行至少一个应用的计算子系统,所述应用允许所述服务器中的每个服务器访问已经分配给它的驱动器,但不访问未分配给所述服务器中的所述每个服务器的驱动器中的任何驱动器。2.如权利要求1所述的系统,其特征在于,所述存储组中的至少一个存储组由具有至少一种耦合故障机制的驱动器中的那些驱动器组成或包括具有至少一种耦合故障机制的驱动器中的那些驱动器。3.如权利要求2所述的系统,其特征在于,所述应用被配置成依照根据分配给所述服务器的所述驱动器的存储组成员关系设置的数据放置策略来运行,以确保将根据所述应用存储的每个数据项以冗余方式存储在所述存储组中的至少两个存储组中,其中所述两个存储组中的一个存储组由具有耦合故障机制的驱动器中的那些驱动器组成或包括具有耦合故障机制的驱动器中的那些驱动器,并且所述两个存储组中的另一个存储组不包括具有所述耦合故障机制的驱动器中的任何驱动器。4.如权利要求3所述的系统,其特征在于,所述应用是横向扩展应用。5.如权利要求1所述的系统,其特征在于,所述存储组中的至少一个存储组包括:所有共享耦合故障机制的驱动器的子集,以及不共享所述耦合故障机制的驱动器中的至少一个驱动器。6.如权利要求1所述的系统,其特征在于,所述服务器中的至少一个服务器被配置成根据所述应用实现RAID技术,包括通过根据在RAID集中的驱动器中的每个驱动器的存储组成员关系来确定所述驱动器的所述RAID集。7.如权利要求6所述的系统,其特征在于,所述服务器中的所述至少一个服务器被配置成实现所述RAID技术,包括通过使数据以冗余方式存储在所述RAID集的驱动器中,其中所述RAID集包括所述存储组中的第一存储组的驱动器和所述存储组中的第二存储组的驱动器,所述存储组中的所述第一存储组由具有耦合故障机制的驱动器中的那些驱动器组成或包括具有耦合故障机制的驱动器中的那些驱动器,并且所述存储组中的所述第二存储组不包括具有所述耦合故障机制的驱动器中的任何驱动器。8.如权利要求1所述的系统,还包括管理员,其中所述管理员是耦合到所述通信子系统并且被配置成运行管理应用以根据所述存储组中的驱动器的成员关系将所述驱动器分配给所述一组服务器中的服务器的服务器。9.如权利要求8所述的系统,其特征在于,所述管理应用被配置成与在所述一组服务器中的每个服务器上运行的所述应用交互,以将所述应用配置成根据数据放置策略将要由所述每个服务器存储的数据放置在所述一组服务器中的至少一个其他服务器上,从而确保将所述数据以冗余方式存储在所述存储组中的至少两个存储组中,所述数据放置策略根据分配给所述一组服务器中的服务器的驱动器的存储组成员关系来设置。
10.如权利要求8所述的系统,其特征在于,所述管理应用被配置成与在所述一组服务器中的至少一个服务器上运行的所述应用交互,以授权所述服务器实现RAID功能,并且其中所述服务器被配置成实现所述RAID功能,包括通过根据在RAID集中的驱动器中的每个驱动器的存储组成员关系来确定所述驱动器的所述RAID集。11.如权利要求1所述的系统,还包括RAID控制器,其中所述RAID控制器耦合到所述通信子系统并且被配置成实现RAID功能,包括通过根据在RAID集中的驱动器中的每个驱动器的存储组成员关系来确定所述驱动器的所述RAID集。12.如权利要求11所述的系统,其特征在于,所述RAID控制器被配置成实现所述RAID功能,包括通过使来自所述服务器中的一个服务器的数据以冗余方式存储在所述RAID集的驱动器中,其中所述RAID集包括所述存储组中的第一存储组的驱动器和所述存储组中的第二存储组的驱动器,所述存储组中的所述第一存储组由具有耦合故障机制的驱动器中的那些驱动器组成或包括具有耦合故障机制的驱动器中的那些驱动器,并且所述存储组中的所述第二存储组不包括具有所述耦合故障机制的驱动器中的任何驱动器。13.如权利要求1所述的系统,其特征在于,所述服务器中的至少一个服务器被配置成根据所述存储组中的驱动器的成员关系将所述驱动器分配给所述一组服务器中的服务器。14.如权利要求1所述的系统,其特征在于,所述驱动器中的至少一些驱动器在JBOD中,并且所述JBOD中的每个JBOD耦合到所述通信子系统。15.如权利要求1所述的系统,其特征在于,所述一组服务器中的服务器跨足够数量的机架分布,使得所述机架中的任何一个机架的故障将导致不超过预定数量或分数的所述服务器的有效损失。16.如权利要求15所述的系统,其特征在于,所述一组服务器是或者包括跨至少n个机架分布的s个服务器,其中s和n是整数,其中不超过向下取整(s/n)个服务器在所述机架的单个机架中,并且其中向下取整(s/n)表示小于或等于s/n的最大整数。17.如权利要求15所述的系统,其特征在于,所述一组服务器是或者包括跨至少n个机架分布的s个服务器,其中s和n是整数,其中不超过向下取整(s/n)个所述服务器在所述机架的单个机架中,并且其中向下取整(s/n)表示小于或等于s/n的最大整数;以及其中已经为所述服务器中的每个服务器分配仅来自所述存储组中的一个存储组的驱动器,受制于所分配的驱动器跨至少m个所述存储组分布的约束,其中m是整数。18.如权利要求1所述的系统,其特征在于,已经为所述服务器中的每个服务器分配仅来自所述存储组中的一个存储组的驱动器,受制于所分配的驱动器跨至少m个所述存储组分布的约束,其中m是整数。19.如权利要求18所述的系统,其特征在于,已经将驱动器分配给所述服务器中的s个服务器,其中s是整数,使得为不超过向下取整(s/m)个所述服务器分配来自任何单个存储组的驱动器,其中向下取整(s/m)表示小于或等于s/m的最大整数。20.一种服务器,所述服务器被配置成用于在具有可组合基础设施的系统中使用,其中所述系统包括耦合到通信子系统的磁盘驱动器,并且根据涉及所述驱动器的至少一种耦合故障机制将所述驱动器组织成存储组,所述服务器包括:服务器接口,所述服务器接口被配置成将所述服务器耦合到所述通信子系统;以及至少一个计算子系统,所述至少一个计算子系统被耦合并配置成运行至少一个应用,
其中已经根据所述驱动器的子集中的每个驱动器的存储组成员关系为所述服务器分配所述驱动器的所述子集,并且所述应用允许所述服务器访问已经分配给所述服务器的驱动器,但不访问未分配给所述服务器的驱动器中的任何驱动器。21.如权利要求20所述的服务器,其特征在于,所述存储组中的至少一个存储组由具有至少一种耦合故障机制的驱动器中的那些驱动器组成或包括具有至少一种耦合故障机制的驱动器中的那些驱动器。22.如权利要求21所述的服务器,其特征在于,所述应用被配置成依照根据所述驱动器的存储组成员关系设置的数据放置策略来运行,以确保当所述服务器将数据项存储在分配给所述服务器的所述驱动器中的一个驱动器中时,所述服务器还根据所述数据放置策略将所述数据项放置在所述系统的至少一个其他服务器上,以确保以冗余方式将所述数据项存储在所述存储组中的至少两个存储组中,其中所述两个存储组中的一个存储组由具有耦合故障机制的驱动器中的那些驱动器组成或包括具有耦合故障机制的驱动器中的那些驱动器,并且所述两个存储组中的另一个存储组不包括具有所述耦合故障机制的驱动器中的任何驱动器。23.如权利要求22所述的服务器,其特征在于,所述应用是横向扩展应用。24.如权利要求20所述的服务器,其特征在于,所述存储组中的至少一个存储组包括:所有共享耦合故障机制的驱动器的子集,以及不共享所述耦合故障机制的驱动器中的至少一个驱动器。25.如权利要求20所述的服务器,其特征在于,所述服务器被配置成根据所述应用实现RAID技术,包括通过根据在RAID集中的驱动器中的每个驱动器的存储组成员关系来确定所述驱动器的所述RAID集。26.如权利要求25所述的服务器,其特征在于,所述服务器被配置成在耦合到所述通信子系统时实现所述RAID技术,包括通过使数据以冗余方式存储在所述RAID集的驱动器中,其中所述RAID集包括所述存储组中的第一存储组的驱动器和所述存储组中的第二存储组的驱动器,所述存储组中的所述第一存储组由具有耦合故障机制的驱动器中的那些驱动器组成或包括具有耦合故障机制的驱动器中的那些驱动器,并且所述存储组中的所述第二存储组不包括具有所述耦合故障机制的驱动器中的任何驱动器。27.如权利要求20所述的服务器,其特征在于,所述系统还包括耦合到所述通信子系统的其他服务器,并且所述驱动器中的至少一些驱动器能分配给所述其他服务器,使得所述其他服务器中的每个服务器可以访问已经分配给它的驱动器中的每个驱动器,但不访问未分配给它的驱动器中的任何驱动器,并且其中至少一个所述应用被配置成将所述驱动器中的至少一些驱动器分配给所述其他服务器,使得根据所述驱动器的每个子集中的每个驱动器的存储组成员关系为所述其他服务器中的每个服务器分配所述驱动器的所述子集。28.管理员,所述管理员被配置成用于在具有可组合基础设施的系统中使用,其中所述系统包括耦合到通信子系统的磁盘驱动器和服务器,并且所述驱动器能分配给所述服务器,使得所述服务器中的每个服务器可以访问已经分配给它的驱动器中的每个驱动器,但不访问未分配给它的驱动器中的任何驱动器,所述管理员包括:服务器接口,所述服务器接口被配置成将所述管理员耦合到所述通信子系统;以及至少一个计算子系统,所述至少一个计算子系统被耦合并配置成运行至少一个管理应
用以将所述驱动器分配给所述服务器,使得根据涉及所述驱动器的至少一种耦合故障机制将所述驱动器组织成存储组,并且根据所述驱动器的每个子集中的每...

【专利技术属性】
技术研发人员:J
申请(专利权)人:推特股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1