服务器系统的制作方法

文档序号:22260187发布日期:2020-09-18 14:26阅读:104来源:国知局
服务器系统的制作方法

本公开涉及一种服务器系统,该服务器系统包括多个处理设备、多个存储设备以及将存储设备连接至处理设备的存储结构,其中该存储结构包括诸如sas交换机的多个交换机。



背景技术:

“存储结构”是一个术语,其指的是在数据中心内使用的用于将服务器连接到盘或通常是在单个服务器机箱(例如机架)或少量相邻机箱的其他此类存储驱动器的低级网络。请注意,在存储结构的上下文中,“服务器”专门指服务处理设备,但不是指它经由存储结构连接到的存储驱动器(与使用术语“更广泛的外部网络的上下文”相对,“服务器”有时是指包括处理和存储的整个服务计算机系统)。每个服务器(服务处理设备)可以包括一个或多个处理单元,诸如cpu或工作加速器处理器。每个存储设备可以采取盘驱动器或其他这种存储驱动器的形式。存储结构可以例如采用存储区域网络(san)的形式。

服务器可能包括一定数量的板载非易失性存储器,但仅用于存储要由服务器运行的代码或临时保存数据的目的。服务器不执行用户内容的长期存储,用户内容是所提供(一个或多个)服务的主题。存储设备可以包括低级嵌入式处理器,但仅用于运行与存储功能有关的固件,而不用于用户功能或至少不用于执行任何任意功能。例如诸如盘的存储设备的嵌入式处理器无法运行防火墙软件。存储设备也无法自已执行路由。

一种存储结构可以包括一个或多个用于在服务器和存储设备之间路由通信的交换机。这样的通信可以采取双向交易的形式,诸如:来自服务器的用于从存储设备读取数据的命令,然后是来自存储设备的返回所请求的数据的对应响应;或来自服务器的将数据存储在存储设备中的命令,然后是来自存储设备的确认存储操作已完成的对应响应。

服务器系统的内部存储结构在许多方面与服务器系统经由其服务客户的更广泛的外部网络(例如因特网)有所不同。例如存储结构可以具有以下属性中的任意一种、多种或全部。

·服务器只能是启动器,并且存储设备只能是目标,其中启动器按目标启动动作。也就是说,存储设备无法启动服务器与存储设备之间的事务(即无法自主发送消息),而只能响应来自服务器的启动命令。仅服务器可以启动事务。

·服务器无法经由结构与其他服务器通信,并且存储设备无法与其他存储设备通信。

·存储设备不能自主运行:它们需要由服务器控制(所有权原则)。·任意给定的存储设备一次只允许由单个服务器控制。

·不允许在给定服务器和给定存储设备之间使用多个路径。即,存储结构的拓扑必须是非循环图的拓扑,诸如树。如果存在多个可能的路径,则结构的行为是不确定的。

·通过存储结构进行的通信是无损的。

·结构上的通信根据有限制的延迟原则(即最大或有限的延迟)进行操作。即,接收者响应于从发送者发送的消息而返回确认,并且如果在最大时间段之后发起者未接收到确认,则认为传输已经失败。如果通信也是无损的,则意味着失败的消息的重传。

·有序传输:通过结构发送的消息被分为分组,并且存储结构协议确保分组以发送时的顺序传递给接收者。例如在存储场景中,可能希望确保在第二片数据之前写入第一片数据。

存储结构协议的一个示例是sas(串行连接scsi)。sas交换机是具有通常为十二个的固定数量的连接器的标准单片设备。sas交换机可以通过这些连接器中的一些连接器之间的电缆连接在一起。sas交换机的核心功能组件是sas扩展器。为了确定允许哪个存储设备被充许由哪个服务器控制,每个交换机都维护权限表,在将业务继续路由到其请求的目的地之前,将对其执行权限检查。

以类似原理运行的其他存储结构协议的示例包括sata、光纤通道和pci。



技术实现要素:

当前,每个个体交换机的权限表必须由服务器的人工管理器经由带外服务器管理应用来分别和手动地配置,带外服务器管理应用运行在连接到服务器系统其余部分的管理终端上。这是繁琐的任务。此外,如果组件发生故障或服务需求发生改变,使得导致服务器到存储设备的当前映射不是期望的甚至无法正常运行,则人工管理器必须手动和单独地将存储结构中每个交换机的权限表重新配置为创建新的映射。希望减轻一个或多个这样的问题或类似问题。

根据本公开的一个方面,提供了一种服务器系统,其包括:多个组件,至少包括:多个处理设备,被布置为经由外部网络向一个或多个客户端系统提供一个或多个服务;以及多个存储设备,供所述处理设备使用以用于存储与所述服务有关的数据;以及存储结构,将所述处理设备连接到所述存储设备,所述存储结构、处理设备和存储设备被布置为根据存储结构协议进行操作,以便通过所述存储结构在所述处理设备和所述存储设备之间进行通信。存储结构包括多个个体交换机,并且所述个体交换机具有模块化设计,通过所述模块化设计,整体交换机从所述多个个体交换机被构建。个体交换机具有个体相应的配置设置,个体相应的配置设置在个体相应的配置设置之间确定在向所述客户端系统提供所述服务时,所述处理设备中的哪些处理设备被分配以使用所述存储设备中的哪些存储设备。所述服务器系统还包括api,所述api使软件控制功能能够配置所述整体交换机。所述api可操作用于从所述控制功能接收所述存储设备到所述处理设备的整体映射,而不是要求所述个体交换机中的每个个体交换机的所述个体配置设置要由所述控制功能指定,所述api被配置为将所述整体映射转换为所述个体交换机的所述个体配置设置中以产生所述整体映射。

交换机的模块化特性使得可以轻松地创建任意所需的拓扑(在存储结构协议的限制内)。此外,api将整体交换机呈现为对控制功能的单个统一交换机,该功能可以是人操作管理应用或自动控制功能。这有利地使得可以通过人工管理器或动态地通过自动控制功能来容易地创建或随后修改服务器的任意期望的映射。

在当前公开的技术的特别有利的应用中,所述组件被布置到故障域中,由此与所述服务之一有关的所述数据在所述故障域中的不同故障域中的所述存储设备中的两个或更多个上被复制,所述域被划分,使得如果在所述域之一中的所述组件之一或其之间的链路发生故障或被关闭,则所述数据仍然从所述域中的另一个域中的所述存储设备可访问。

模块化有利地促进将组件的布置到较小或更佳尺寸的故障域中,这些故障域限制了发生故障的组件的“爆炸半径”,诸如发生故障的存储设备之一、或发生故障的交换机、或交换机之间或交换机与存储设备之间的发生故障的链路。设计人员可以轻松设计结构的拓扑和/或服务器到存储设备的映射,以便于创建故障域,该故障域适应一个或多个故障场景中发生故障的可能性以及由此带来的影响,最好使得数据始终可用。替代地或附加地,在实施例中,在发生故障的情况下,可以动态地适配映射甚至拓扑本身。

存储设备例如可以采取磁存储设备、固态存储设备或光学存储设备的形式。服务可以包括例如云存储,所述数据包括提交以由客户端系统存储的存储内容(用户数据)。其他替代或其他可能性包括在线购物、协作工作区、存档服务等。

api采取被存储在计算机可读存储装置中并被布置在一个或多个处理器上运行的软件的形式。api可以在服务器系统的任意组件或另一个组件上实现。api可以被实现在服务器上,或者被实现为在交换机或存储设备之一的嵌入式处理器上、或者在服务器系统的另一组件上的固件,或被实现为个体带外计算机。

控制功能还采取被存储在计算机可读存储装置中并被布置在一个或多个处理器上运行的软件的形式。控制功能可以在服务器系统的组件中的任意组件或另一个组件上实现。

例如在实施例中,控制功能可以包括在至少一个所述组件本身上实现的带内控制功能。在实施例中,在其上实现带内控制功能的至少一个组件可以包括处理设备中的至少一个。

可替代地或附加地,控制功能可以被实现为交换机或存储设备中的一个或多个和/或服务器系统的另一组件的嵌入式处理器上的固件。

作为另一种可能性,控制功能可以包括在与所述组件分离的服务器管理计算机上运行的带外管理功能。

在实施例中,控制功能可以被配置为响应于以下一项或两项来动态地自动重新配置处理设备到存储设备的映射:组件之一的故障或其他停机时间或组件之间的连接,和/或来自客户端系统的服务需求改变。

在实施例中,所述api被配置为与所述交换结构进行带内通信,以发现所述交换结构的拓扑,并且使其指示可用于所述控制功能和/或所述组件之一。

在实施例中,所述个体交换机的所述模块化设计包括所述个体交换机之间的具有机械设计的连接器,所述机械设计使所述管理功能能够确定所述交换机的相对物理取向,并据此将所述交换机中的故障的一个交换机的位置报告给人工管理器。

在实施例中,所述管理功能使人工管理器能够手动地指定所述整体映射。

在实施例中,所述组件中的一些或全部组件全部被安装在彼此相同的服务器机箱中,所述组件包括所述处理设备中的至少一些处理设备、所述存储设备中的至少一些存储设备、以及在这些处理设备和存储设备之间连接的所述交换机中的至少一些交换机。

在实施例中,根据所述存储结构协议,一个或多个或全部:(a)处理设备中没有处理设备被允许具有去往所述存储设备中的相同的存储设备的多个路径;(b)在任一时间所述处理设备中仅有一个处理设备被允许控制所述存储设备中的任何给定的存储设备;(c)存储设备中没有存储设备能够在没有被分配所述处理设备中的一个处理设备来对存储设备进行控制的情况下操作;(d)只有所述处理设备而没有所述存储设备中的任何存储设备能够发起跨所述存储结构的事务;(e)所述处理设备只能通过所述存储结构与所述处理设备的所分配的存储设备进行通信,但是所述处理设备中没有所述处理设备能够跨所述存储结构与所述处理设备中的任何其他处理设备进行通信,并且所述存储设备中的任何存储设备均不能跨所述存储结构与所述存储设备中的任何其他存储设备通信;(f)所述存储设备仅经由被分配给所述存储设备的处理设备而不是直接地连接到所述外部网络;(g)通信是根据有界延迟原理进行的,由此如果发起所述通信的所述设备在最大时间延迟内未从作为所述通信的所述目标的所述设备收到确认,则所述通信失败;(h)根据所述存储结构协议通所述存储结构进行的所述通信是无损的;和/或(i)通过所述存储结构进行的所述通信被分为分组,并且所述存储结构强制所述分组的有序传递。

在实施例中,存储结构协议可以是sas、sata、光纤通道或pci。

在实施例中,外部网络是ip网络。在实施例中,外部网络可以包括因特网。

根据本文公开的另一方面,提供了一种操作服务器系统的方法,该服务器系统包括多个组件,该多个组件包括至少多个处理设备,该至少多个处理设备被布置为经由外部网络向一个或多个客户端系统提供一个或多个服务;多个存储设备,供处理设备使用以用于存储与所述服务有关的数据,以及存储结构,将处理设备连接到存储设备;该方法包括:布置存储结构、处理设备和存储设备以根据存储结构协议进行操作,以便通过存储结构在处理设备和存储设备之间进行通信;从多个个体交换机组装存储结构,并且个体交换机具有模块化设计,通过该模块化设计,整体交换机从多个个体交换机被构建,其中个体交换机具有个体相应的配置设置,个体相应的配置设置在个体相应的配置设置之间确定在向客户端系统提供所述服务时,处理设备中哪些处理设备被分配以使用存储设备中的哪些存储设备;提供启用软件控制功能的api,以配置整体交换机;以及操作api以从控制功能接收存储设备到处理设备的整体映射,而不是要求个体交换机中的每个个体交换机的个体配置设置都是由控制功能指定,并且操作api以将整体映射转换为个体交换机的个体配置设置中以产生所述整体映射。

根据本文公开的另一方面,提供了一种用于操作服务器系统的程序,该服务器系统包括多个组件,该多个组件包括至少多个处理设备,该至少多个处理设备被布置为经由外部网络向一个或多个客户端系统提供一个或多个服务;多个存储设备,供处理设备使用以存储与所述服务有关的数据,以及存储结构,将处理设备连接到存储设备;该程序包括体现在计算机可读介质上并被布置为在一个或多个处理器上运行时执行以下操作的代码:根据存储结构协议来操作存储结构、处理设备和存储设备,以便通过存储结构在处理设备和存储设备之间进行通信,其中存储结构包括多个个体交换机,并且个体交换机具有模块化设计,通过该模块化设计,整体交换机从多个个体交换机被构建,并且其中个体交换机具有个体相应的配置设置,个体相应的配置设置在个体相应的配置设置之间确定在向客户端系统提供所述服务时,处理设备中的哪些处理设备被分配以使用存储设备中的哪些存储设备;提供api,该api使软件控制功能能够配置整体交换机,该api可操作来从控制功能接收存储设备到处理设备的整体映射,而不是要求个体交换机中的每个个体交换机的个体配置设置都是由控制功能指定,api被配置为将整体映射转换为个体交换机的个体配置设置以产生所述整体映射。

附图说明

为了辅助本公开的实施例的理解并说明如何实施这些实施例,仅以示例的方式参考附图,在附图中:

图1示意性地示出了服务器系统和客户端系统,

图2示意性地示出了sas协议的各层,

图3示意性地示出了由多个文化体交换机形成的模块化交换机,

图4示意性地示出了模块化交换机和控制功能之间的api,

图5示意性地示出了将组件划分为故障域,

图6示意性地示出了sas不允许的拓扑,

图7示意性地示出了使用电气交换机来适配拓扑,

图8示意性地示出了用于适配拓扑的示例布置,

图9a-9d示意性地示出了在发生故障情况时的示例适配,

图10示意性地示出了用于结合交换机的模块化机构,并且

图11示意性地示出了用于结合交换机的另一种模块化机构。

具体实施方式

本公开提供了一种用于从模块化组件构造多个大小的sas交换机的方法和系统,其中所得的复合交换机看起来统一到带外管理和带内控制,但保留了个体模块的故障隔离特性。

传统的sas交换机缺乏模块化。sas标准定义拓扑中一对sas地址之间不得存在多条路径。因此,通过扩展器拓扑附接到存储设备集合的服务器将在扩展器故障下遇到存储设备不可用的情况。在这种情况下,需要确保正确的故障隔离级别,即扩展器的故障具有对设备可用性的最小可能影响。这可以通过减少拓扑中扩展器的基数来实现。另一方面,数据中心机架中的服务器通常附接到大量存储设备,并且通过增加其基数来最小化扩展器的数量具有成本效益。最好的扩展器基数是同时考虑到这两个要求的扩展基数,并且对于每种类型的数据中心机架而言,可能都不相同。当前的sas交换机是为企业设计的,并且由单个高基数扩展器构成。使用此类sas交换机确保正确级别的故障隔离并不具有成本效益。

本公开提供一种从模块化组件构造多个大小的sas交换机的方法。它允许在故障隔离和成本之间实现平衡,其适用于数据中心中每种类型的存储机架。例如能够在交换机中提供大量模块,使得基数增加到超过标准sas交换机的最大基数,这对于冷数据存储机架很有用。相反,能够提供较少数量的模块,以将故障隔离调整为逻辑相关设备的子集。

标准sas交换机是通常具有十二个连接器的单片设备。在供应时无法更改连接器的数量,并且增加故障隔离的方式是使用更多的sas交换机,并在每个交换机上减少连接器的数量。就交换资源和机架中的物理空间而言,这是浪费的。sas交换机通常是为企业设计的,并且不能与数据中心的管理结构很好地对接。相反,当前公开的系统和方法允许数据中心设计者向需求适当地提供sas组件,将它们与数据中心管理结构对接,并抽象远离应用的拓扑的复杂性。

模块化sas交换机可以采用机架可安装设备的形式。它具有插槽集合,其可以填充提供sas连接的组件(例如sas扩展器)。这些组件可以在内部互连成一个最小的拓扑,但是会将sas端口集合展露在模块化sas交换机的前端。

在提供机架时,外部展露的端口将连接到机架中的服务器和机壳。因此,模块化交换机显示为一个物理单元。还提供了一个软件库,应用将其用于带内控制模块化sas交换机。如果需要,该库将模块化sas交换机显示为单个单片sas交换机,抽象出sas组件的拓扑。为此,需要确定交换机中模块的物理顺序。可以从模块化sas交换机的内部拓扑结构推断出排序,假设内部连接已被设计为允许排序推断(例如内部拓扑结构可以是允许排序的链的某种变体)。

sas交换机的插槽可能补填充有sas扩展器,但可以托管可以转发sas业务的任意类型的组件。这样的其他组件的示例包括电路交换机或fpga。

更一般地,根据本公开的一个方面,提供了一种通过使用从模块化组件构建的sas交换机来调整sas拓扑的故障隔离的方法。根据本文公开的另一方面,提供了一种装置,该装置托管多个sas组件,并通过带内控制来展露在其中这些组件被连接的拓扑。根据本文公开的另一方面,提供了一种系统,该系统使用带内控制来发现模块化交换机的拓扑,并将其作为一个统一设备展露于带外管理和带内控制。在这样的系统中,在实施例中,可以提供一种从其拓扑推断sas组件的顺序的方法。

此外,尽管以上和以下实施例以sas存储结构被例,但是本文公开的原理也可以应用于根据诸如sata、光纤通道或pci的其他协议来配置的存储结构。本文描述的sas存储结构、sas交换机、sas协议等的任意概念可以等同地应用于其他类型的存储结构、存储结构交换机、存储结构协议等。

通过图示的方式,图1示出了示例性通信系统,该通信系统包括服务器系统104、外部网络101以及由服务器系统104经由网络101服务的多个客户端系统102。外部网络101可以采用ip网络的形式。它可能包含广域网,诸如因特网。替代地或附加地,它可以包括例如移动蜂窝网络、公司内联网(例如以太网)或无线局域网(wlan),诸如wi-fi网络。每个客户端系统102包括任意合适形式的至少一个相应的用户终端,诸如台式计算机、膝上型计算机、平板电脑、智能手机、或者甚至是可穿戴设备,诸如智能手表或智能眼镜。每个客户端系统102由至少一个相应的用户103使用。服务器系统104被布置为经由外部网络101向客户端系统102提供(即服务)诸如云存储、协作工作区、在线购物、数据存档等一项或多项服务,以供相应用户103通过其相应的客户端系统102进行消费。响应于通过其客户端系统102表达的用户103的需求来提供服务。即,给定用户103使用在他/她相应的客户端系统102上运行的客户端应用选择访问服务,从而使对应的请求经由网络101提交给服务器104。在服务器系统104处以来自客户端系统103上的客户端应用的此类请求的形式检测对此类服务的需求。作为响应,服务器系统104经由网络101将请求的服务提供给相应客户端系统103上的请求客户端应用。在某些情况下,服务的提供可能会受到一个或多个附加条件的影响,诸如用户103的身份验证或付款。

服务器系统包括多个服务器105(即,服务处理设备)、多个专用存储设备106(存储驱动器)以及将服务器105连接到存储设备106的存储结构107。每个服务器105包括至少一个处理器,用于执行与被提供给客户端系统102的服务的至少一项服务有关的处理。每个服务器104的(一个或多个)处理器可以包括至少一个cpu,在某些情况下可以包括一个或多个附加处理器,诸如专用于某些特定任务的一个或多个工作加速器处理器,诸如图形或机器学习。每个存储设备106可以采用任意合适的形式,诸如磁存储设备(例如盘驱动器)、电子存储设备(固态驱动器)、光学存储设备、或者如今甚至正在探索诸如基于生物dna的存储的更奇特的形式。

存储结构107是包含在服务器系统104本身内的低级内部网络,以某种拓扑将存储设备106和服务器105连接在一起。本文中的拓扑是指物理互连被布置在存储结构107中的方式。在实施例中,服务器105、存储设备106和存储结构107全部被包含在单个设备或服务器机箱或少量相邻的服务器机箱中。机箱可以例如包括服务器机架。机箱可包括一个或多个外壳。

存储结构107可以包括一个或多个个体交换机108;加上个体交换机108之间或交换机108与服务器105或交换机108与存储设备106之间的物理链路109。即,链路109中的一些链路可以连接在一对个体交换机108之间,链路109中的一些链路某些可以连接在个体交换机108和服务器105之间,链路109中的一些链可以连接在个体交换机108和存储设备106之间。因此,服务器105、存储设备106和交换机108以某种存储结构拓扑连接在一起:即组件(服务器105、存储设备106和交换机108)中的哪一些经由链路109中的一些来物理地连接到存储结构107中的组件中哪些其他组件。请注意,图1中所示的拓扑仅是示意性说明。

服务器105被布置为经由存储结构107控制存储设备106中相应分配的设备,目的是向客户端系统101提供相应服务。因此,例如如果提供云存储服务,则服务器105可以被分配存储设备106中的一个或多个,其可以控制以存储和取回期望由(一个或多个)相应用户103存储的用户内容。或者,如果提供协作工作空间服务,则服务器105可以被分配存储设备106中的一个或多个,其可以控制以存储和访问由协作用户103处理的共享文档。或者,如果提供在线购物服务,则服务器105可以被分配存储设备106中的一个或多个,其可以控制访问产品信息以服务于用户103,存储来自用户103的客户和/或付款信息等。每个服务器105可以被布置为提供不同的相应服务105,或者一些服务器105可以被布置为在一起工作以提供给定的一项或多项服务。

每个个体交换机108具有以权限表形式的个体配置设置110。在它们之间,不同个体交换机108的权限表110确定服务器105中的哪些服务器被允许控制存储设备106中的哪些存储设备。在实施例中,每个个体权限表110可以将所有存储设备106和服务器105的完整权限列表存储在整体存储结构中。备选地,每个个体权限表110可以仅在某个区域(存储结构107的某个子区域)内或在相应个体交换机108的影响范围内仅保存与服务器105和存储设备106有关的权限。例如图1左上角的交换机108可能只需要知道分配哪些(一个或多个)服务器105来控制其相应的两个存储设备106。例如sas规范定义了服务交付子系统(zpsds)的sas分区部分的概念。zpsds被细分为区域。作为同一zpsds的一部分的每个交换机必须知道该zpsds中所有目标和启动器的权限。每个zpsds中的所有交换机必须具有用于该zpsds的相同区域权限表。交换机最多只能是一个zpsds的一部分。

当个体交换机108接收到要从某个来源(分别为服务器105或存储设备106)发出的路由到某个目的地(存储设备106或服务器105)的消息时,则此当前本地交换机108首先根据当前交换机相应的权限表110检查消息的源地址和目标地址,以确定是否允许将消息路由到该目标。只有这样,本地交换机108才将消息向前路由到下一个节点(可以是下一个个体交换机108或目的地)。该消息例如可以是来自服务器105的命令,以在/从存储设备106中的某个目标存储设备106中存储或访问数据,或者是从存储设备106回到服务器105的确认或数据返回。

存储结构107被配置为根据诸如sas(串行连接的scsi,其中scsi代表小型计算机系统接口)的合适的存储结构协议进行操作。如上所述,其他合适的存储结构协议包括sata(串行高级技术附件)、光纤通道或pci(外围组件互连)。

图2示意性地示出了sas协议的各层。sas具有三层211、212、213。最低层211是点对点的phy层,每条电缆中有四个phy链路。中间层212,sas层,包括hba(主机总线适配器)202、扩展器201和存储设备(例如盘),并且形成无向非循环图,其中扩展器201执行路由。每个个体交换机108包括扩展器201,该扩展器是用于路由目的的交换机108的功能组件。每个服务器105包括hba202,该hba202在服务器105中提供功能的补充层。顶层213是启动器和目标之间的连接,其受制于在扩展器中进行区域权限检查。如将在更详细的层中讨论的,本公开的实施例可以在顶层211和底层213使用灵活性以绕过sas层212中不允许循环的限制。

在sas协议中,“phy”是指电气链路,可以是3、6或12gbps。“电缆”是指带连接器的一个捆绑包中的四个phy链路。phy位于物理层的顶部,并且是了解位的最低层。因此,物理链路末端的phy设备同意如何将电信号转换为比特。这称为phy协商。一旦达成协议,就建立位通道。这就是所谓的phy。“端口”是指通过至少一个phy链路的协议连接。扩展器201通过端口执行协议路由。“域”是指通过路由可访问的设备集合。“区域”是指域中可以通信的设备的子集。

现在回到图1,通过在相关的存储结构协议中向个体交换机108提交相应的控制命令,例如当前示例的sas命令,来编程个体交换机108的权限表110(或更一般地,配置设置)。为了对权限表110(或配置设置)进行编程,传统上,人工管理器112必须从服务器管理终端111上运行的管理应用对存储结构107中每个个体交换机108的相应配置设置(例如权限表)110进行单独编程,服务器管理终端111在带外连接到存储结构107(例如sas交换机通常具有以太网端口,并且管理计算机111可以经由以太网连接到该端口)。权限设置的这种编程是一项繁琐的任务,需要熟练的操作人员。此外,它不允许服务器系统104几乎实时地在任意地方适应以在当前状况下改变,诸如对一项或多项服务的需求的移动、或组件(存储设备105、服务器106或交换机108)的故障。通常,管理器112可能会执行重新配置,例如每月等或该数量级执行一次,或者有时可能是响应严重故障而执行一次。此外,数据中心的设计人员通常难以使用常规的单片sas交换机等来计划故障。

存储结构107与诸如因特网101的其他网络不同,特别是因为存储结构受到更多限制。物理上的拓扑存在一些限制,诸如不允许服务器105和存储设备106之间有多个路径。逻辑配置上还存在其他限制,诸如只有一台服务器105可以在任意一个时间控制存储设备106中的给定的一个(即,存储设备106只能具有一个主机)。通常,在背景部分中概述的任意或所有约束都可以应用于存储结构107。这样的约束使设计人员难以计划组件的故障,或者管理器112难以响应故障或其他改变,诸如需求的移动。

为了解决上述问题或类似问题中的任意一个或多个,如图3中的示例所示,本文公开的实施例提供了由多个个体交换机108提供的模块化交换机301,例如sas交换机。个体组件交换机108优选地具有机械设计,该机械设计使得它们能够被机械地组装成共同的物理单元。例如个体交换机108可以具有机械耦接,使得它们能够机械地彼此附接,或者附接到诸如板的公共支撑结构。例如它们可以被设计成插入到诸如板的通用支撑结构中。在实施例中,个体组件交换机108可以组装到公共壳体中,该公共壳体可以由个体交换机的抵接壳体形成,或者可以由围绕个体交换机108形成的附加的壳体形成。

通过任意方式将个体组件交换机108机械地组装在一起,它们也通过一个或多个内部链路109i彼此电连接。交换机108还向模块化交换机301的外部呈现一个或多个外部连接器303,每个这样的连接器303为一个或多个协议端口提供物理连接。例如连接器通常连接到多个sas端口。每个连接器303可以采取具有多个引脚的插头或插座的形式。外部连接器303使服务器105和存储设备106能够经由外部链路109e(例如在所示示例中示意性示出的线)连接至模块化交换机。存储结构107因此可以由模块化交换机301加上到服务器105和存储设备106的外部链路109e形成。

整体模块化交换机301的模块化性质使数据中心设计人员能够构建适合手头应用的尺寸的交换机,并且(如稍后将更详细讨论的那样),还可以通过将组件布置到合适的故障域中来计划各种组件发生故障的可能性。

此外,本文公开的实施例提供了一种应用编程接口(api)115,该api使整体模块化交换机301能够被控制为好像是单个交换机一样。在实施例中,api115可以包括一个或多个软件库,如前所述。api115以软件控制功能的形式在模块化交换机301和软件组件之间提供接口。该控制功能可以包括带外管理功能113。替代地或附加地,该控制功能可以包括带内控制功能114。“带外”是指控制在数据的路径之外被执行。即,因此从api115发送到个体交换机108的控制命令不会经由用于在存储设备106和盘105之间交换数据的相同链路109之一传播。例如带外管理功能113可以在管理计算机111上被实现。在实施例中,交换设备包括板管理控制器(bmc),该板管理控制器可以通过管理网络(例如以太网)被控制,并且还可以与交换机108进行通信。“带内”是指控制在数据路径中被执行。即,因此从api115发送到个体交换机108的控制命令确实经由用于在存储设备106和服务器105之间传输数据的相同的链路109中的至少一些传播。例如带内控制功能114可以采用在一个、多个或所有服务器115上实施的自动化功能的形式。在跨多个服务器实施的情况下,不同服务器上的控制功能114的实例被布置为同意控制。这可以例如通过外部主实体或通过现有技术的共识算法的运行状态来完成。

api115本身可以在服务器系统104的任意合适的一个或多个组件上实现。例如其可以被布置为运行服务器105、管理计算机111中的一个或多个、或甚至在交换机109或存储设备109中的一个或多个的嵌入式处理器上运行、或这些的任意组合。在实施例中,api在连接到存储结构107的服务器105上的软件中实现。

在图4中以示例的方式示出了api115的操作。api115仅从整体映射的单个描述的角度就从控制功能113、114接收服务器105到存储设备106的期望映射的指示,即,api115仅需要从控制功能113、114接收哪些服务器105被分配来控制哪些存储设备106的指示,这与接收配置每个个体交换机108所需的个体配置设置110(例如,权限表设置)来制定该整体映射相反。此外,该指示不需要以一个或多个sas命令的形式被接收。相反,api115被配置为自动地将从控制功能113、114接收的整体映射的指示转换成用于每个个体交换机108的个体相应的配置设置110,并且相应地将这些设置提供给每个个体相应的交换机108。在sas存储结构107的情况下,这意味着转换为多个个体相应的sas控制命令,以在每个相应的个体交换机108上配置相应的个体权限表110。

带外管理功能113可以采取被布置为在管理计算机111上运行的管理应用的形式。通过指定服务器105到存储设备106的所需映射,而不必指定每个个体交换机配置110,它可以使人工管理器112经由api115手动设置或更改模块化交换机301的配置。这使得人工管理器112可以在需要手动完成映射时更容易地设置或适配映射。

替代地或附加地,带内控制功能114可以采取自动控制功能114的形式,用于动态地适配服务器105到存储设备106的映射,和/或在一些实施例中甚至通过借助于电气交换机701来动态地适配模块化交换机301的内部拓扑,电气交换机701可以切换在节点105、106、108之间形成的电链路109(稍后参考图7a、7b和8更详细地讨论)。在又一替代或附加实施例中,带外管理功能113可以被配置为执行这样的自动动态适配(作为带内功能的替代或除了带内功能之外,并且作为允许人工管理器112进行手动更改的替代或除了允许人工管理器112进行手动更改之外)。

带内控制具有系统104可以重新配置自身而无需外部干预的优点。然而,在内部故障到系统104无法再重新配置它自身的程度下,也可能需要带外控制。

响应于客户端系统102针对被服务的服务的需求,动态适配可以用于适配服务器105到存储设备106的映射和/或模块化交换机301的拓扑。即,控制功能113、114被配置为检测来自客户端系统的需求并且作为响应,以动态地适配映射和/或拓扑,以便更好地适应存储设备106和/或服务器105之间对服务的需求。

替代地或附加地,响应于存储网络的组件105、106、108、109之一的故障,动态适配可以用于适配服务器105到存储设备106的映射和/或模块化交换机301的拓扑。也就是说,当组件105、106、108、109发生故障时,控制功能113、114可以自动检测到该情况,并且作为响应,自动地使适配服务器105到存储设备106的映射,和/或自动适配模块化交换机301的拓扑,以便于确保可能已经由故障以其他方式中断的服务仍可用于客户端系统102(例如以确保所存储的数据仍然可访问)。

优选地,模块化交换机301用于为结构107构建拓扑,该结构将组件105、106、108、109划分为个体故障域。然后,跨故障域中不同故障域中的不同存储设备106复制给定的数据项。当一个域中的组件发生故障时,仍然可以从其他域之一访问数据。例如如果将一些数据的n个冗余实例保存到n个相应的存储设备106,则可以将这些冗余实例保存到不同域中的存储设备106,这些域在存储结构拓扑中不共享相同的骨干(trunk)交换机108。

还应注意,尽管在本文中给出的各个示例中都提到了故障,但是由于其他原因,诸如计划内的维护,相同的机制也可以用于适应停机时间。

图5示出了将存储结构107布置到故障域中的示例。该系统包括至少两个外壳501(外壳a和b),每个外壳包括提供交换机108功能的相应扩展器201。第一服务器105(服务器a)连接至外壳a的扩展器201,并且第二服务器105连接到外壳b的扩展器201。两个外壳501的两个扩展器201彼此连接。每个外壳501包括至少两个相应的盘106,其连接到其相应外壳的相应扩展器201。外壳a至少包括盘a1和a2,并且外壳b至少包括盘b1和b2。第一片数据内容的实例均被复制在盘a1和b1上。第二片数据内容的实例均被复制在盘a2和b2上。在这种布置中,如果服务器105、盘106或扩展器中的任意一个发生故障201,则第一数据内容和第二数据内容仍然可以经由服务器105、盘106和扩展器201中的另一个保持可用。还要注意,这种情况也可以仅由带内控制114处理。

api115的另一个功能是配置为自动发现存储结构的拓扑,包括模块化交换机301的内部拓扑,并使该信息可用于带内控制功能114和/带外管理功能113。发现拓扑的能力使控制功能113或114能够确保拓扑正确(无电缆错误或故障设备),并且由操作所需的所有设备构成。在实施例中,向每个服务器105提供关于存储结构107的拓扑的信息,以便于确保它相对于应用是正确的(除了每个交换机108之外,还知道拓扑或拓扑的至少局部,以便执行路由)。

如上所述,在实施例中,不仅可以适配服务器105到存储设备106的映射,而且可以适配模块化交换机301本身的拓扑。图7a、7b和8示出了其背后的原理。

存储结构107通常对其拓扑有限制。例如sas中的路由在sas层禁止多路径(在给定服务器105和给定存储设备106之间不允许多个可能的路径)。因此,图6中所示的布置-具有两个sas交换机的扩展器201提供了到服务器hba202的冗余路由-不起作用。在这种情况下的行为是未定义的。

然而,在本文中认识到,如图7所示,如果替代地使用两个phy交换机701,则这确实起作用。也就是说,一个或多个电气交换机701可用于在组件105、106、108之间电断开并连接链路109的不同组合以创建不同的拓扑。有效地是电连接和断开链路109,就好像人工管理器正在插拔去往/来自连接器的链路,但是是电气地而不是实际上机械地插入和拔出。换句话说,电气交换机701虚拟化物理布线。电气交换机701可以例如采用基于晶体管的交换机或中继器的形式。根据本文公开的实施例,这些电交换机被布置为可经由api115由带内和/或带外控制功能113、114控制。例如这可以允许人工管理器112更容易地重新配置模块化交换机301的拓扑,和/或它可以允许自动功能响应于故障和/或需求的改变而动态地适配拓扑。

图8示出了使用这种技术来适应组件交换机108的可能故障的示例使用。图8使用了从sas扩展器201形成的sas交换机108的示例,但是应当理解,可以将类似的技术用于代替扩展器201的任意类型的存储结构交换机(即路由交换机)。

在图8中,示出的组件被划分在两个故障域之间:第一故障域801和第二故障域802。连接器303中的一个或多个在服务器105和扩展器201的相应服务器105和扩展器201之间提供多个链路109。在模块化交换机301的内部,这些链路的第一子集(例如一半)经由第一域801中的第一电气交换机701连接到第一扩展器201。这些内部链接的第二子集(例如另一半)经由第二域802中的第二电气交换机701连接到第二扩展器201。另一个连接器303在存储设备106和扩展器201相应存储设备106和扩展器201之间提供多个链路109。在模块化交换机301内部,这些链路的第一子集(例如一半)经由第一电气交换机701连接到第一扩展器201,而其他一些(例如另一半)经由第二电气交换机701连接到第二扩展器201。电气交换机701也彼此连接。电气交换机701可以例如采用交叉交换机的形式。

在正常操作中,服务器105和存储设备106之间经由链路109的第一子集连接的路由由第一故障域801中的第一扩展器201处理,而服务器105和存储设备106之间经由链路109的第二子集连接的路由由第二故障域802中的第二扩展器201处理。但是,如果域801、802中的一个域中的扩展器201发生故障,例如第一故障域801,则其可以是通过控制功能113、114自动地检测,例如带内控制功能114。作为响应,控制功能自动控制第一域801中的电气交换机701,以将先前连接到第一扩展器201的所有链路109重新连接到第二扩展器,使得先前由两个域801、802中的两个扩展器201处理的所有业务现在都经由第二故障域802中的第二扩展器进行路由。尽管这已经对性能产生影响,可以认为优选的是,先前经由第一域801提供的数据或服务变得完全不可访问。通常,优选是保留以比失去对部分数据的访问更低的速率对所有数据的访问。

在实施例中,连接器303实际上可以全部是对称的,并且可以多于此处所示。盒子内可能有两个故障域801、802,并且可以编织连接器303,使得来自每个连接器303的phy链路109的一半附接到每个故障域801、802中。phy交换机701可用于连接多达在任意一对连接器303之间有四个phy链路109。或者来自一个连接器的任意两个phy链路109可以连接到sas扩展器201,以将扇出(fan-out)提供给超过四个输出。如果域801或802发生故障,则编织轨迹表示没有连接丢失,仅可用带宽减少了一半。

在图9a至9d中示出了一些其他示例场景。考虑多个服务器105,每个服务器105附接到不同的相应存储设备106或多个存储设备的一部分,如图9a所示。例如可能有四个服务器105,每个服务器都附接到一个盘分段106,例如在j2010中。如果一个服务器105发生故障,那么附接到该服务器的存储设备106将不可用。然而,使用电气交换机107,能够重新配置服务器105和存储设备106之间的连接以保持存储设备可用,例如如图9c所示。或者,盘可以在其他服务器105中的多个其他服务器或所有服务器之间共享,例如在所示示例中的三个其他服务器,如图9d所示。无论如何,sas链路不太可能成为瓶颈。例如在示出的示例中,说每个链路109可以提供12gbps。在出现故障之前的初始情况下,4x12gbps/22盘给出每盘272mbps。如果负担然后在三个链路被分担,则每个链路的带宽将减少到3x12gbps/22/8=204mbps。如果将负担分担给两个链路,则每个链路的带宽将减少到2x12gbps/22/8=136mbps。

按照从静态重新配置到动态重新配置的顺序,使用重新配置的一些示例场景如下。第一示例是在部署时自定义机架。这将允许标准sku在部署被重新配置在它是多少存储空间和多少实用程序计算之间。第二个示例是生存期的开始和结束。最初,存储忙于填充,而在生存期结束则忙于清空其内容。通过重新配置,可以通过在生存周期的开始和结束时使用所有服务器进行i/o来加快这一过程,而在中间仅使用较少数量的服务器进行存储;在大部分生命周期释放其余的用作计算服务器。第三种示例场景是利用数据在其生命周期内冷却的事实。当机架首先填充数据时,可能需要所有服务器来进行i/o,但是稍后而不是将较冷的数据移动到不同机架上,则能够只释放机架中的一些服务器用于其他任务。作为第四个示例,请考虑地理复制案例。通常,辅站点只接受写操作。但是,如果主站点发生故障,则所有读取的工作负荷将移至辅站点,因此可能想要重新配置以具有更多存储服务器用于存储数据。

图10和11示出了在实施例中可以与模块化交换机301结合使用的另一特征。也就是说,个体交换机108可以以以下方式被设计:管理功能113可以发现相对于彼此(而不仅仅是它们的网络拓扑)的机械(即空间)取向。例如可以使管理功能113可以被启用以确定哪个组件交换机108位于其他组件的左侧或右侧,或者哪个组件交换机108位于其他组件的上方或下方,或组件交换机108的二维或三维空间阵列中的它们的相对位置。这使得管理功能113能够经由管理计算机终端111的用户界面将故障组件交换机108的位置输出到人工管理器112。因此,对于管理器112而言,更容易在各个其他组件中定位发生故障的组件,这些组件中可能有很多在大型的、紧密包装的机架等中。

这种设计的一个示例在图10中示出。这里,组件交换机108通过附接到公共结构元件1050而组装在一起以形成模块化交换机301,例如诸如bmc板的板。板1050(或其他这样的结构)具有多个机械耦接器1060,每个机械耦接器被设计成与任意组件交换机108中的互补耦接器1060'耦合,从而将组件交换机108附接到板1050。板1050或其他这样的结构中的耦接器1060可以例如采用槽的形式,组件交换机108可以插入该槽中以形成模块化交换机301。耦接器1060还包括公或母引脚的集合,或通常为触点,在组件交换机108的任意情况下,它们分别与母或公引脚或其他这样的互补触点结合。每个耦接器1060中的每个引脚或触点集合编码不同的相应空间地址码。根据模块交换机108的给定实例连接到哪个地址,这使得管理功能113能够确定模块交换机实例108在模块交换机108内在空间上被连接的位置。然后,管理功能113可以输出对此位置到人工管理器112的指示,以在特定组件交换机108发生故障时帮助他/她定位特定组件交换机108,例如以便他/她可以维修或更换它。

在图11中示出了另一示例设计。在此,组件交换机108的每个实例在一侧上具有机械耦接器1150并且在另一侧上具有互补的机械耦接器1150'。这允许个体组件交换机108通过彼此连接而组装在一起,成为整体模块化交换机301,而不一定要求个体支撑结构1050(也可以通过可选地使用一个)。即,一个组件交换机实例108的耦接器1050耦接到另一组件交换机实例108中的互补耦接器1150',并且如果需要构建更大的模块化交换机301,依此类推。在这种情况下,每个组件交换机的连接器(经由其链路109被连接)可以分为用于形成外部链路109e的外部连接器303和用于形成内部链路109i的内部连接器。连接器303、303'具有不同的地址,并且内部连接器303在空间上被布置在每个模块108内,使得管理功能可以基于形成特定链路109的连接器的地址来判断它是内部链路109i还是外部链咱109e。此外,管理功能113可以根据该信息确定哪个组件交换机108被连接到哪个其他组件交换机108的哪一侧。例如在所示的示例中,通过第一组件交换机108通过其连接器号7被连接到第二组件交换机的连接器编号5的事实,这告诉管理功能113这是内部链路109i,并且第一交换机在链中第二交换机的左侧。再次,管理功能113可以将这样的空间信息输出到人工管理器112以辅助他/她定位故障。

应当理解,上述实施方式仅作为示例给出。

例如已经参考形成的模块化交换机在本文中描述了某些技术,诸如服务器105到存储设备106的映射的动态适配,或者使用电气交换机701来适配存储结构拓扑,模块化交换机以模块化的方式形成并且具有将整体模块化交换机301呈现给控制功能113、114作为个体交换机的api。但是,这不是限制性的。诸如动态适配或使用电气交换机701以适配拓扑的技术并非固有地与模块化或api思想相关联,并且在本公开的替代方面,它们可以各自独立地或以任意组合使用。例如无论模块如何,都可以采用映射和/或拓扑的自动动态适配。或者,电气交换机701的使用可以用于允许人工管理器112更容易地适配存储结构107的拓扑,而与模块化的问题无关。在其他替代或附加变体中,多个个体交换机108和/或多个模块化交换机301可以经由外部链接109e被连接在一起以形成结构107。

更一般地,一旦给出本文的公开内容,所公开技术的其他变体或应用对于本领域技术人员而言将变得显而易见。本公开的范围不由公开的实施例限制,而仅由所附权利要求书限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1