CN111684421B - 服务器系统 - Google Patents
服务器系统 Download PDFInfo
- Publication number
- CN111684421B CN111684421B CN201980011554.2A CN201980011554A CN111684421B CN 111684421 B CN111684421 B CN 111684421B CN 201980011554 A CN201980011554 A CN 201980011554A CN 111684421 B CN111684421 B CN 111684421B
- Authority
- CN
- China
- Prior art keywords
- storage
- devices
- storage structure
- server system
- processing
- 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
Links
- 238000012545 processing Methods 0.000 claims abstract description 93
- 238000013507 mapping Methods 0.000 claims abstract description 48
- 230000004044 response Effects 0.000 claims abstract description 25
- 238000004891 communication Methods 0.000 claims description 17
- 239000004744 fabric Substances 0.000 claims description 17
- 238000000034 method Methods 0.000 claims description 17
- 230000006978 adaptation Effects 0.000 claims description 10
- 230000000977 initiatory effect Effects 0.000 claims description 5
- 239000000835 fiber Substances 0.000 claims description 4
- 239000004606 Fillers/Extenders Substances 0.000 claims 2
- 230000006870 function Effects 0.000 description 56
- 239000010410 layer Substances 0.000 description 19
- 238000007726 management method Methods 0.000 description 13
- 230000007246 mechanism Effects 0.000 description 12
- 230000008859 change Effects 0.000 description 5
- 239000003999 initiator Substances 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000000295 complement effect Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000013316 zoning Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 239000002346 layers by function Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2053—Error 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/2094—Redundant storage or storage space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0661—Format or protocol conversion arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
- H04L49/356—Switches specially adapted for specific applications for storage area networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/805—Real-time
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Hardware Redundancy (AREA)
Abstract
一种服务器系统包括处理设备、磁盘和存储结构,所有这些被布置为根据存储结构协议进行操作以便通过存储结构在处理设备与存储设备之间进行通信,其中存储结构利用映射可设置,该映射确定在向客户端系统提供所述服务时,处理设备中的哪些处理设备被分配以使用存储设备中的哪些存储设备。该系统包括被布置为响应于以下之一而动态地适配映射的控制功能:(i)处理设备、存储设备、存储结构的组件或存储结构中的连接之一的故障或其他停机时间;或者(ii)从客户端系统对服务的当前需求。
Description
技术领域
本公开涉及一种包括多个存储设备、多个处理设备以及将存储设备连接到处理设备的存储结构的服务器系统。该存储结构可以例如采用SAS结构的形式。
背景技术
“存储结构”是一个技术术语,其是指在数据中心内用于将服务器连接到磁盘或其他这样的存储驱动器的低级网络,通常是在单个服务器机箱(例如,机架)或少量相邻机箱内。注意,在存储结构的上下文中,“服务器”专门是指服务处理设备,而不是指它经由存储结构连接到的存储驱动器(与该术语在更广泛的外部网络的上下文中的使用相对而言,其中“服务器”有时是指整个服务计算机系统,包括处理和存储)。每个服务器(服务处理设备)可以包括一个或多个处理单元,诸如CPU或工作加速器处理器。每个存储设备可以采用磁盘驱动器或其他这样的存储驱动器的形式。存储结构可以例如采用存储区域网络(SAN)的形式。
服务器可以包括一定数量的板载非易失性存储器,但是仅用于存储要由服务器运行的代码或者临时保存数据的目的。服务器不执行用户内容的长期存储,用户内容是所提供的服务的主题。存储设备可以包括低级嵌入式处理器,但是仅用于运行与存储功能有关的固件的目的,而不用于用户功能,或者至少不用于执行任何任意功能。例如。诸如磁盘等存储设备的嵌入式处理器无法运行防火墙软件。存储设备也无法自行执行路由。
存储结构可以包括用于在服务器与存储设备之间路由通信的一个或多个交换机。这样的通信可以采用双向事务的形式,诸如:来自服务器的用于从存储设备读取数据的命令,然后是来自存储设备的返回所请求的数据的对应响应;或者来自服务器的用于将数据存储在存储设备中的命令,然后是来自存储设备的确认存储操作已经完成的对应响应。
服务器系统的内部存储结构在很多方面与服务器系统经由其来服务于其客户端的更广泛的外部网络(例如,因特网)有所不同。例如,存储结构可以具有以下特性中的任何一种、多种或全部特性。
·服务器只能是发起方,并且存储设备只能是目标,其中发起方按目标来发起动作。也就是说,存储设备不能发起服务器与存储设备之间的事务(即,不能自主地发送消息),而只能响应于来自服务器的发起命令。仅服务器可以发起事务。
·服务器无法经由该结构与其他服务器通信,并且存储设备无法与其他存储设备通信。
·存储设备不能自主地运行:它们需要由服务器来控制(所有权原则)。
·任何给定存储设备仅被允许一次由单个服务器来控制。
·不允许在给定服务器与给定存储设备之间具有多个路径。也就是说,存储结构的拓扑必须是非循环图的拓扑,诸如树。如果存在多个可能路径,则该结构的行为是不确定的。
·通过存储结构进行的通信是无损的。
·通过该结构进行的通信根据有界等待时间原则(即,最大或有限等待时间)进行操作。也就是说,接收者响应于从发送者传输的消息而返回确认,并且如果在最大时间段之后发起者仍未接收到确认,则认为传输失败。如果通信也是无损的,则表示失败的消息的重传。
·有序传输:通过该结构发送的消息被划分为分组,并且存储结构协议确保分组以与发送它们时的相同的顺序被传递给接收者。例如。在存储场景中,可能需要确保在第二数据之前写入第一数据。
存储结构协议的一个示例是SAS(串行连接SCSI)。SAS交换机是具有固定数目(通常为12个)连接器的标准单片设备。SAS交换机可以通过这些连接器中的一些连接器之间的电缆而连接在一起。SAS交换机的核心功能组件是SAS扩展器。为了确定允许哪个服务器控制哪些存储设备,每个交换机都维护权限表,在朝着其请求的目的地继续路由业务之前,每个交换机将对照该权限表来执行权限检查。
以类似原理朝着的其他存储结构协议的示例包括SATA、光纤通道和PCI。
发明内容
当前,必须由服务器的人工管理器经由在连接到服务器系统的其余部分的管理终端上运行的带外服务器管理应用个体地和手动地为每个个体交换机配置权限表。这是一项繁琐的任务。此外,如果组件发生故障或服务需求发生变化使得服务器到存储设备的当前映射不理想或者甚至无法正常运行,则人工管理器必须手动地和个体地重新配置存储结构中的每个交换机的权限表以创建新的映射。希望减轻一个或多个这样的问题或类似问题。
根据本公开的一个方面,提供了一种服务器系统,该服务器系统包括:被布置为经由外部网络向一个或多个客户端系统供应(serve)一个或多个服务的多个处理设备、供处理设备使用以存储与上述服务有关的数据的多个存储设备、以及将处理设备连接到存储设备的存储结构。存储结构、处理设备和存储设备被布置为根据存储结构协议进行操作以便通过存储结构在处理设备与存储设备之间进行通信,其中存储结构利用映射可设置,该映射确定在向客户端系统提供所述服务时,处理设备中的哪些处理设备被分配以使用存储设备中的哪些存储设备。该系统还包括被配置为响应于以下之一而动态地适配映射的软件控制功能:(i)处理设备、存储设备、存储结构的组件或存储结构中的连接之一的故障或其他停机时间;或者(ii)从客户端系统对上述服务的当前需求。
例如,存储设备可以采用磁性存储设备、固态存储设备或光学存储设备的形式。服务可以包括例如云存储,上述数据包括被提交以由客户端系统存储的存储内容(用户数据)。其他替代或另外的可能性包括在线购物、协作工作区、存档服务等。
在实施例中,存储结构包括多个个体逻辑交换机。例如,逻辑交换机可以采用SAS交换机的形式,每个SAS交换机包括SAS扩展器。
控制功能采用存储在计算机可读存储装置上并且被布置为在一个或多个处理器上运行的软件的形式。控制功能可以在服务器系统的任何组件或另一组件上实现。
例如,控制功能可以包括在处理设备和/或在存储设备中的至少一个存储设备或存储结构的交换机上的嵌入式处理器中的至少一个上实现的带内控制功能。
备选地或附加地,控制功能可以被实现为交换机或存储设备中的一个或多个的嵌入式处理器和/或服务器系统的另一组件上的固件。
在实施例中,控制功能可以被配置为响应于逻辑交换机之一的故障或其他停机时间而动态地适配映射。
在实施例中,逻辑交换机可以具有个体配置设置,该个体配置设置在它们之间定义处理设备到存储设备的映射,该处理设备到存储设备的映射确定哪些处理设备被分配以使用哪些存储设备。
在实施例中,系统还可以包括可操作以从控制功能接收存储设备到处理设备的映射的总体指示而不是要求由控制功能指定个体交换机中的每个交换机的个体配置设置的API,该API被配置为将映射的总体指示转换为个体交换机的个体配置设置以产生上述映射。
API采用存储在计算机可读存储上并且被布置为在一个或多个处理器上运行的软件的形式。API可以在服务器系统的任何组件或另一组件上实现。API可以在服务器上实现,也可以实现为交换机或存储设备之一的嵌入式处理器上或者服务器系统的另一组件上的固件;或者实现为单独的带外计算机。
在实施例中,控制功能还可以被配置为响应于逻辑交换机之一的故障或其他停机时间或者去往或来自逻辑交换机之一的连接而动态地适配处理设备到服务器的映射。
在实施例中,存储结构可以包括以物理拓扑将逻辑交换机、处理设备和存储设备物理地连接在一起的多个电交换机;其中电交换机可以被布置为由控制功能可操作以电气地重新配置物理拓扑,控制功能被配置为至少部分通过如此重新配置物理拓扑来执行上述适配。
也就是说,通过在处理设备、存储设备和逻辑交换机的组合之间电气地进行连接和断开连接,电交换机使得控制功能能够动态且自动地适配存储网络内的物理互连,即,哪些组件电连接到存储结构中的哪些其他组件。
物理拓扑的适配可以是创建处理设备到存储设备的新的映射。或者,在至少另一种情况下,在交换机之一或者去往或来自交换机之一的连接的故障或其他停机时间的情况下,可以动态地且自动地适配物理适配以保留相同的映射。
在实施例中,包括处理设备中的至少一些处理设备、存储设备中的至少一些存储设备、以及在这些处理设备与存储设备之间进行连接的逻辑交换机中的至少一些逻辑交换机的组件中的一些或全部组件可以都被彼此安装在同一服务器机箱中。
在实施例中,根据上述存储结构协议,以下中的一项或多项或全部:(a)处理设备中没有处理设备被允许具有去往存储设备中的同一存储设备的多个路径;(b)在任一时间,处理设备中仅有一个处理设备被允许控制存储设备中的任何给定存储设备;(c)存储设备中没有存储设备能够在没有被分配处理设备之一以对存储设备进行控制的情况下操作;(d)只有处理设备而没有存储设备中的任何存储设备能够发起跨存储结构的事务;(e)处理设备只能通过存储结构与处理设备的所分配的存储设备通信,但是处理设备中没有处理设备能够与跨存储结构的处理设备中的任何其他处理设备通信,并且存储设备中也没有存储设备能够与跨存储结构的存储设备中的任何其他存储设备通信;(f)存储设备仅经由分配给存储设备的处理设备而不是直接地连接到外部网络;(g)通信根据有界等待时间原理(bounded latency principle)而被进行,由此,如果发起通信的设备在最大时间延迟内未从作为通信的目标的设备接收到确认,则通信失败;(h)根据上述存储结构协议通过存储结构进行的通信是无损的;和/或(i)通过存储结构进行的通信被划分为分组,并且存储结构强制分组的有序传递。
在实施例中,存储结构协议可以是SAS、SATA、光纤通道或PCI。
在实施例中,外部网络是IP网络。在实施例中,外部网络可以包括互联网。
根据本文中公开的另一方面,提供了一种操作服务器系统的方法,该服务器系统包括被布置为经由外部网络向一个或多个客户端系统供应一个或多个服务的多个处理设备、供处理设备使用以存储与上述服务有关的数据的多个存储设备、以及将处理设备连接到存储设备的存储结构;该方法包括:将存储结构、处理设备和存储设备布置为根据存储结构协议进行操作以便通过存储结构在处理设备与存储设备之间进行通信,其中存储结构利用映射可设置,该映射确定在向客户端系统提供所述服务时,处理设备中的哪些处理设备被分配以使用存储设备中的哪些存储设备;以及响应于以下之一而动态地适配映射:(i)处理设备、存储设备、存储结构的组件或存储结构中的连接之一的故障或其他停机时间;或者(ii)从客户端系统对上述服务的当前需求。
根据本文中公开的另一方面,提供了一种用于操作服务器系统的程序,该服务器系统包括被布置为经由外部网络向一个或多个客户端系统供应一个或多个服务的多个处理设备、供处理设备使用以存储与上述服务有关的数据的多个存储设备、以及将处理设备连接到存储设备的存储结构;该程序包括被体现在计算机可读存储装置上并且被配置为当在一个或多个服务器或管理计算机上被运行时执行以下操作的代码:将存储结构、处理设备和存储设备操作为根据存储结构协议进行操作以便通过存储结构在处理设备与存储设备之间进行通信,其中存储结构利用映射可设置,该映射确定在向客户端系统提供所述服务时,处理设备中的哪些处理设备被分配以使用存储设备中的哪些存储设备;以及响应于以下之一而动态地适配映射:(i)处理设备、存储设备、存储结构的组件或存储结构中的连接之一的故障或其他停机时间;或者(ii)从客户端系统对上述服务的当前需求。
附图说明
为了帮助理解本公开的实施例并且说明如何实施这样的实施例,仅以示例的方式参考附图,在附图中:
图1示意性地示出了服务器系统和客户端系统,
图2示意性地示出了SAS协议的各层,
图3示意性地示出了由多个个体交换机形成的模块化交换机,
图4示意性地示出了模块化交换机与控制功能之间的API,
图5示意性地示出了将组件划分为故障域,
图6示意性地示出了SAS不允许的拓扑,
图7示意性地示出了使用电交换机来适配拓扑,
图8示意性地示出了用于适配拓扑的示例布置,
图9a至图9d示意性地示出了在发生故障的情况下的示例适配,
图10示意性地示出了用于联接(join)交换机的一种模块化机构,以及
图11示意性地示出了用于联接交换机的另一模块化机构。
具体实施方式
本文中公开的实施例提供了一种用于在数据中心机架中进行存储分解的系统和方法。提供了一种动态地重新配置数据中心机架中的存储结构以满足高级应用特定要求或数据中心策略的机制。该机制可以控制机架中的每个服务器管理哪些存储设备,并且修改该映射以匹配观察到的负载、服务器的运行状况或任何其他期望属性。
这有利地解决了在数据中心机架内随着时间的推移在存储资源与这些资源的应用需求之间发生的不匹配。在标准机架中,每个服务器具有一组物理地附接的存储设备,通过这些存储设备,它具有唯一的完全的控制权。虽然在设计时会为每个服务器静态地供给这些存储设备,但是在这些服务器上执行的应用会随着时间的推移而不断变化。所公开的机制确定在任何给定时间点什么服务器应当控制每个存储设备,并且动态地配置机架以实施该映射。服务器与存储设备之间的这个映射可以基于数据中心策略要求(例如,数据可用性)或应用特定属性(例如,每个服务器上的负载)。可以假定机架中的服务器和存储设备通过存储结构互连,该存储结构允许配置和实施这个映射。这样的结构的一个示例是SAS(串行连接SCSI)。
在实施例中,所公开的机制与SATA和SAS存储设备一起使用,不需要到该设备的双路径,并且允许任意数目的服务器随时间来管理该设备。
实施例可以被实现为可以由服务器上的应用或由理解应用的需求的独立机架控制器使用的用户空间软件库。当为SAS架构而实现时,该库使用在SAS标准中定义的命令,这些命令通过在其上使用该库的服务器的主机总线适配器卡被转发到拓扑中的扩展器。这些命令允许发现SAS拓扑、每个组件的状态,并且使得该库可以在每个扩展器上配置SAS分区。通过将每个服务器和存储设备分配给区域,并且设置区域权限表,该库可以控制服务器与存储设备之间的映射。重新配置区域权限表可以在系统运行时动态地进行,也可以直接由需要改变的应用在带内进行。区域配置和区域权限表实例化了由应用定义的某种高级策略。
替代(或附加)实现可以使用电路交换机。电路交换机是一种在物理层存在的设备。当在两个端口之间建立电路时,电路交换机将开始在这些端口之间转发电信号。电路分配可以动态地改变。可以使用电路交换结构代替SAS结构以使我们的发明有效。由于在物理层进行操作,电路交换机对服务器和存储设备是透明的,这表示,这种实现也可以与任何类型的服务器和存储设备一起使用。
所公开的机制可以具有很多应用,诸如(但不限于)以下示例场景。第一示例场景是负载平衡。在此,应用可以监测机箱中的所有服务器的性能,检测过载的服务器,并且重新平衡其存储以平衡业务。第二示例场景是服务器故障转移。在这种情况下,应用可以检测机箱中的服务器是否由于故障或者作为计划维护的一部分而变得无响应。在服务器再次变得可用之前,应用可以决定将由该服务器使用的所有存储设备迁移到机架中的其他服务器。第三示例场景是电缆故障转移。
与现有解决方案不同,本文中公开的技术实现了机架的极大灵活性,而没有专用存储设备或附加的前端服务器或其他组件的开销。
此外,总体上,根据本文中公开的一个方面,提供了一种能够理解高级策略和应用需求并且动态地重新配置机架中的存储结构以使其匹配的机制。该机制的好处是可以提高机架中的存储资源的利用率并且提高应用性能。根据本文中公开的另一方面,提供了一种使用SAS分区来实现这样的机制的方法,这与简单地提供静态隔离(这是其典型的使用情况)相反。这使得能够针对SAS光纤网络中的任何类型的存储设备进行低成本的存储分解。根据另一方面,提供了一种可以由服务器上的应用或者由独立机架控制器使用的用户空间软件库,该软件库可以根据应用要求来重新配置SAS结构。
如上所述,在实施例中,一组SAS扩展器与电路交换机组合以使得能够动态地重新配置扩展器之间的物理互连。备选地或附加地,该技术可以用于促进手动重新配置。
这样的电交换机的使用解决了限制可以使用SAS组件来构建的拓扑集的SAS标准的局限性。首先,该标准禁止在一对SAS设备端口之间具有多个路径。其次,该标准禁止在SAS设备拓扑中循环。这些限制限制了SAS允许的所有拓扑应对扩展器故障的能力。也就是说,在HBA(主机总线适配器)与目标设备之间的路径上的任何扩展器的故障都将导致该目标设备无法从HBA获取。因此,单个扩展器的故障通常会导致数十个硬盘驱动器不可用。这些限制还可能会限制SAS拓扑的性能,因为从一组启动器到一组目标的总带宽受到路径上的最被超额预订的扩展器的带宽的限制。直观上,这是因为,业务不可能通过采用替代路由来绕过超额订购的扩展器。与网络拓扑类似,无法使用SAS扩展器来构建胖树拓扑,因为多路径被禁止。
实施例通过经由一组电路交换机互连SAS扩展器来解决这些问题。这使得SAS拓扑可重新配置,即,SAS组件之间的连接性可以在运行时通过重新配置电路交换机来适应应用的要求。因此,在扩展器发生故障时,可以将电路交换机配置为通过有效扩展器而不是发生故障的扩展器来路由业务。还可以动态地连接扩展器之间的更多PHY链路以增加它们之间的总带宽。最后,可以“拆分”SAS电缆(由4个独立PHY链路组成),并且将其每个PHY链路路由到不同的故障域。
在技术上,在服务器与SAS中的存储设备之间可以具有多个路径,前提是,服务器每个路径只有一个HBA,这既昂贵又很难扩展到超过两个路径。这也需要存储设备的支持。附加HBA占用在服务器内数目有限并且其他组件可以使用的PCIe插槽。
实施例可以被实现为具有类似于标准SAS交换机的外部SAS连接器的单个设备。在内部,该结构可以包括一组扩展器ASIC和一个或一组电交叉点交换机ASIC。扩展器和/或电路交换机PHY链路的子集被路由到外部连接器,而其余部分用于内部连接。在最简单的情况下,该设备内部的所有扩展器PHY链路都将被路由到单个大型交叉点ASIC。如果扩展器PHY链路的数目超过交叉点上的端口计数,则可以使用多个交叉点。交叉点ASIC可以在其端口之间建立电路,并且沿着端口之间的电路来转发电信号。信号转发是在物理层进行的,使得交叉点ASIC对SAS组件是透明的。交叉点在下面的层运行,因此不需要遵守SAS标准。备选地,该机制可以使用独立SAS以及使用SAS电缆互连的电路交换机来实现。在这种配置中,所有上述好处仍然将被保留。
交叉点可重新配置性弥补了SAS组件缺乏灵活性的缺点。例如,可以使SAS拓扑适应观察到的负载。另一示例是,当扩展器发生故障时,可以重新配置交叉点以“绕过”发生故障的组件。第三有价值的示例是将单个SAS电缆连接到多个故障域的能力。SAS电缆由四个独立的PHY链路组成,这些链路连接到电路交换机上的4个独立端口。这允许按需“拆分”4个PHY链路,并且将它们路由到不同的SAS组件。这样,即使电缆附接到的电路交换机和扩展器发生故障,也可以通过电缆转发SAS业务。
可以使用软件库来控制扩展器和电路交换机。它要求,在任何时间点,实例化的拓扑都符合SAS标准,因此SAS扩展器可以使用它来转发SAS业务。它通过重新配置电路交换机并且在重新配置之后重新发现并且验证SAS拓扑来监督重新配置过程。SAS库抽象了扩展器与电路交换机之间的连接,并且为应用提供了简单的“一个大电路交换机”抽象。
更一般地,根据本文中公开的一个方面,提供了一种绕过SAS标准施加在拓扑上的限制的方法,以允许在不违反该标准的情况下创建更鲁棒和高性能的拓扑。根据另一方面,提供了一种通过一个或多个电路交换机来互连一组标准(未修改)SAS扩展器的方法。根据另一方面,提供了一种管理SAS拓扑的重新配置方面的系统。它要求拓扑符合SAS标准。当使用多个电路交换机时,软件会将它们抽象在单个电路交换机中,而不会失去灵活性。一旦建立拓扑,择软件会发现新的拓扑并且将其公开给应用。
通过图示的方式,图1示出了包括服务器系统104、外部网络101和由服务器系统104经由网络101服务的多个客户端系统102的示例通信系统。外部网络101可以采用IP网络的形式。它可以包括广域网,诸如因特网。备选地或附加地,它可以包括例如移动蜂窝网络、公司内联网(例如,以太网)或局域网(WLAN),诸如Wi-Fi网络。每个客户端系统102包括任何合适形式的至少一个相应的用户终端,诸如台式计算机、膝上型计算机、平板电脑、智能电话、或者甚至是可穿戴设备,诸如智能手表或智能眼镜。每个客户端系统102由至少一个相应的用户103使用。服务器系统104被布置为经由外部网络101向客户端系统102提供(即,供应)诸如云存储、协作工作空间、在线购物、数据档案等一个或多个服务以供相应用户103通过其相应客户端系统102来消费。服务是响应于用户103通过其客户端系统102表达的需求而提供的。也就是说,给定用户103使用在其相应客户端系统102上运行的客户端应用来选择访问服务,从而引起对应请求经由网络101被提交给服务器105。在服务器系统104处以来自客户端系统103上的客户端应用的这样的请求的形式检测对这样的服务的需求。作为响应,服务器系统104经由网络101将所请求的服务供应给相应客户端系统103上的请求客户端应用。在某些情况下,服务的提供可能会受到一个或多个附加条件的影响,诸如用户103的认证、或付款。
服务器系统包括多个服务器105(即,服务处理设备)、多个专用存储设备106(存储驱动器)、以及将服务器105连接到存储设备106的存储结构107。每个服务器105包括用于执行与提供给客户端系统102的至少一个服务的提供有关的处理的至少一个处理器。每个服务器105的处理器可以包括至少一个CPU,并且在某些情况下可以包括一个或多个附加处理器,诸如专用于诸如图形或机器学习等某些特定任务的一个或多个工作加速器处理器。每个存储设备106可以采用任何合适的形式,诸如磁性存储设备(例如,磁盘驱动器)、电子存储设备(固态驱动器)、光学存储设备、或者如今甚至正在探索的诸如基于生物DNA的存储装置等更奇特的形式。
存储结构107是以某种拓扑将存储设备106和服务器105连接在一起的被包含在服务器系统104本身内的低级内部网络。本文中的拓扑是指物理互连在存储结构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中的相应的分配的存储设备,目的是向客户端系统102提供相应服务。因此,例如,如果提供云存储服务,则可以向服务器105分配可以控制存储和检索期望由相应用户103存储的用户内容的一个或多个存储设备106。或者,如果提供协作工作空间服务,则可以向服务器105分配可以控制存储和访问由协作用户103处理的共享文档的一个或多个存储设备106。或者,如果提供在线购物服务,则可以向服务器105分配可以控制访问产品信息以服务于用户103,存储来自用户103的客户和/或付款信息等的一个或多个存储设备106。每个服务器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回到服务器105的数据的确认或返回。
存储结构107被配置为根据诸如SAS(串行连接SCSI,其中SCSI代表小型计算机系统接口)等合适的存储结构协议进行操作。如上所述,其他合适的存储结构协议包括SATA(串行高级技术附件)、光纤通道或PCI(外围组件互连)。
图2示意性地示出了SAS协议的各层。SAS具有三个层211、212、213。最低层211是点对点的PHY层,每个电缆中有四个PHY链路。中间层212(即,SAS层)包括HBA(主机总线适配器)202、扩展器201和存储设备(例如,磁盘),并且形成无向非循环图,其中扩展器201执行路由。每个个体交换机108包括扩展器201,该扩展器201是用于路由目的的交换机108的功能组件。每个服务器105包括HBA 202,该HBA 202在服务器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必须从在带外连接到存储结构107的服务器管理终端111上运行的管理应用来对存储结构107中的每个个体交换机108的相应配置设置(例如,权限表)110进行个体地编程(例如,SAS交换机通常具有以太网端口,并且管理计算机111可以经由以太网连接到该端口)。权限设置的这种编程是一项繁琐的任务,其需要熟练的操作人员。此外,它不允许服务器系统104几乎实时地在任何地方适应当前状况的变化,诸如对一个或多个服务的需求的变化、或者组件(存储设备106、服务器105或交换机108)的故障。通常,人工管理员112可以执行重新配置,例如,每月一次等,或者有时可能是响应于严重故障而执行一次。此外,数据中心的设计人员通常难以使用常规的单片SAS交换机等来计划故障。
存储结构107不像诸如因特网101等其他网络,特别是在存储结构受到更多限制的情况下。物理上的拓扑存在一些限制,诸如不允许服务器105与存储设备106之间有多个路径。对逻辑配置也存在其他限制,诸如在任何一个时间只有一个服务器105可以控制给定存储设备106(即,存储设备106只能具有一个主机)。通常,在背景部分中概述的任何或所有约束都可以应用于存储结构107。这样的约束使设计人员难以计划组件的故障,或者使人工管理员112难以响应于故障或其他改变,诸如需求变化。
为了解决上述问题或类似问题中的任何一个或多个,如图3中的示例所示,本文中公开的实施例提供了一种模块化交换机301,该模块化交换机301由例如SAS交换机等多个个体交换机108组成。个体组件交换机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 115使得整个模块化交换机301能够被控制为好像是单个交换机一样。在实施例中,API 115可以包括一个或多个软件库,如前所述。API 115以软件控制功能的形式在模块化交换机301与软件组件之间提供接口。该控制功能可以包括带外控制功能113。备选地或附加地,该控制功能可以包括带内控制功能114。“带外”是指在数据路径之外执行控制。也就是说,因此,从API 115发送到个体交换机108的控制命令不会行进经由用于在存储设备106与磁盘之间交换数据的相同链路109之一。例如,带外控制功能113可以在管理计算机111上实现。在实施例中,交换设备包括板管理控制器(BMC),该BMC可以通过管理网络(例如,以太网)来控制并且还可以与交换机108通信。“带内”是指在数据路径中执行控制。也就是说,因此,从API115发送到个体交换机108的控制命令确实会行进经由用于在存储设备106与服务器105之间传输数据的相同链路109中的至少一些。例如,带内控制功能114可以采用在一个或多个或全部服务器115上实现的自动化功能的形式。在跨多个服务器的实现的情况下,不同服务器上的控制功能114的实例被布置为同意控制。这可以例如通过外部主实体或者通过运行现有技术的共识算法来完成。
API 115本身可以在服务器系统104的任何合适的一个或多个组件上实现。例如,它可以被布置为运行服务器105、管理计算机111中的一个或多个,或者甚至在交换机108或存储设备106中的一个或多个的嵌入式处理器上运行,或者这些的任何组合。在实施例中,API在连接到存储结构107的服务器105上的软件中实现。
在图4中以示例的方式示出了API 115的操作。就整体映射的单个描述而言,API115仅从控制功能113、114接收服务器105到存储设备106的期望映射的指示,即,API 115仅需要从控制功能113、114接收关于哪些服务器105被分配以控制哪些存储设备106的指示,这与接收配置每个个体交换机108以制定该总体映射所需要的个体配置设置110(例如,权限表设置)相反。此外,该指示不需要以一个或多个SAS命令的形式来接收。而是,API 115被配置为自动地将从控制功能113、114接收的总体映射的该指示转换成用于每个个体交换机108的个体相应配置设置110并且相应地将这些设置提供给每个个体相应交换机108。在SAS存储结构107的情况下,这表示转换为多个个体相应SAS控制命令以在每个相应个体交换机108上配置相应个体权限表110。
带外控制功能113可以采用被布置为在管理计算机111上运行的管理应用的形式。它可以使得人工管理员112能够通过以下方式经由API 115手动设置或改变模块化交换机301的配置:指定服务器105到存储设备106的期望映射,而不是必须指定每个个体交换机配置110。这使得人工管理员112可以在需要手动进行时更容易地设置或适配映射。
备选地或附加地,带内控制功能114可以采用自动控制功能114的形式,该自动控制功能114用于动态地适配服务器105到存储设备106的映射,和/或在一些实施例中,甚至用于借助于可以切换形成在服务器105、存储设备106、交换机108之间的电链路109(稍后参考图7和图8更详细地讨论)的电交换机701来动态地适配模块化交换机301的内部拓扑。在其他替代或附加实施例中,带外控制功能113可以被配置为执行这样的自动动态适配(作为带内功能的替代或补充,作为允许人工管理员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,则可以将这些冗余实例保存到在存储结构拓扑中不共享相同中继交换机108的不同域中的存储设备106。
还应当注意,尽管在本文中给出的各个示例中都提到了故障,但是由于诸如所计划的维护等其他原因,相同的机制也可以用于适应停机时间。
图5示出了将存储结构107布置到故障域中的示例。该系统包括至少两个外壳501(外壳A和B),每个外壳包括提供交换机108的功能的相应扩展器201。第一服务器105(服务器A)连接到外壳A的扩展器201,并且第二服务器105连接到外壳B的扩展器201。两个外壳501的两个扩展器201彼此连接。每个外壳501包括连接到其相应外壳的相应扩展器201的至少两个相应磁盘。外壳A至少包括磁盘A1和A2,外壳B至少包括磁盘B1和B2。第一数据内容的实例在磁盘A1和B1上均被复制。第二数据内容的实例在磁盘A2和B2上均被复制。在这种布置中,如果服务器105、磁盘106或扩展器201中的任何一个发生故障,则第一数据内容和第二数据内容仍然可以经由服务器105、磁盘106和扩展器201中的另一个而保持可用。还应当注意,这个场景也可以仅由带内控制114来处理。
API 115的另一特征是其被配置为自动地发现包括模块化交换机301的内部拓扑的存储结构的拓扑,并且使该信息可用于带内控制功能114和/或带外控制功能113。发现拓扑的能力使得控制功能113或114能够确保拓扑是正确的(无电缆错误或故障设备),并且由操作所需要的所有设备组成。在实施例中,向每个服务器105被提供有关于存储结构107的拓扑的信息,以确保它关于应用是正确的(除了每个交换机108也知道拓扑,或者至少每个交换机108都知道拓扑的本地部分,以执行路由)。
如上所述,在实施例中,不仅可以适配服务器105到存储设备106的映射,而且可以适配模块化交换机301本身的拓扑。图7和图8示出了其背后的原理。
存储结构107通常对其拓扑具有限制。例如,SAS中的路由在SAS层禁止多径(在给定服务器105和给定存储设备106之间不允许多个可能的路径)。因此,图6所示的布置(具有两个SAS交换机的扩展器201提供了到服务器的HBA 202的冗余路由)不起作用。在这种情况下的行为是不确定的。
然而,在本文中认识到,如图7所示,如果改为使用两个PHY交换机701,则这确实起作用。也就是说,一个或多个电交换机701可以用于在组件(服务器105、存储设备106、交换机108)之间电断开和连接链路109的不同组合以创建不同拓扑。有效地是电连接和断开链路109,就好像人工管理员正在插拔与连接器的链路一样,但是实际上是电气地而不是机械地插拔。换言之,电交换机701虚拟化物理布线。电交换机701可以例如采用基于晶体管的交换机或继电器的形式。根据本文中公开的实施例,这些电交换机被布置为经由API 115由带外控制功能113和/或带内控制功能114可控制。例如,这可以允许人工管理员112更容易地重新配置模块化交换机301的拓扑,和/或它可以允许自动功能以响应于故障和/或需求变化而动态地适配拓扑。
图8示出了使用这样的技术来适应组件交换机108的可能故障的示例用途。图8使用由SAS扩展器201形成的SAS交换机108的示例,但是应当理解,代替扩展器201,可以采用类似的技术用于任何类型的存储结构交换机(即,路由交换机)。
在图8中,所示出的组件在两个故障域之间被划分:第一故障域801和第二故障域802。连接器303中的一个或多个在相应服务器105与扩展器201之间提供多个链路109。在模块化交换机301内部,这些链路的第一子集(例如,一半)经由第一域801中的第一电交换机701连接到第一扩展器201。这些内部链路的第二子集(例如,另一半)经由第二域802中的第二电交换机701连接到第二扩展器201。另一连接器303在相应存储设备106与扩展器201之间提供多个链路109。在模块化交换机301内部,这些链路的第一子集(例如,一半)经由第一电交换机701连接到第一扩展器201,而一些其他链路(例如,另一半)经由第二电交换机701连接到第二扩展器201。电交换机701也彼此连接。电交换机701可以例如采用交叉交换机的形式。
在正常操作中,经由链路109的第一子集而连接的服务器105与存储设备106之间的路由由第一故障域801中的第一扩展器201处理,而经由链路109的第二子集而连接的服务器105与存储设备106之间的路由由第二故障域802中的第二扩展器201处理。但是,如果域801、802之一(例如,第一故障域801)中的扩展器201发生故障,则这可以由控制功能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,以扇出超过四个输出。如果域801或802发生故障,则所编织的轨迹表示没有连接丢失,可用带宽仅减少了一半。
在图9a至9d中示出了一些其他示例场景。考虑多个服务器105,每个服务器105附接到不同的相应存储设备106或多个存储设备的分段,如图9a所示。例如,可以存在四个服务器105,每个服务器105附接到磁盘106的一个分段,例如,在J2010中。如果一个服务器105发生故障,则附接到该服务器的存储设备106将不可用。然而,使用交换机108,可以重新配置服务器105与存储设备106之间的连接以保持存储设备可用,例如,如图9c所示。或者,磁盘可以在多个其他服务器或所有其他服务器105之间共享,例如,在所示示例中为其他三个服务器,如图9d所示。无论如何,SAS链路不太可能成为瓶颈。例如,在所示示例中,例如,每个链路109可以提供12Gbps。在出现故障之前的初始情况下,4×12Gbps/22个磁盘每磁盘可以提供272MBps。如果然后将负担在三个链路之间进行拆分,则每个链路的带宽将减少到3×12Gbps/22/8=204MBps。如果将负担在两个链路之间进行拆分,则每个链路的带宽将减少到2×12Gbps/22/8=136MBps。
按照从静态重新配置到动态重新配置的顺序,使用重新配置的一些示例场景如下。第一示例是在部署时自定义机架。这将允许在存储多少存储空间与计算多少实用程序之间进行部署时重新配置标准SKU。第二示例是生命的开始和结束。最初,存储忙于填充,而在生命结束时则忙于清空其内容。通过重新配置,可以通过在生命的开始和结束时使用所有服务器进行I/O来加快这一过程,而在中间仅使用少量服务器进行存储;释放其余服务器在大部分时间用作计算服务器。第三示例场景是利用数据在其生命周期内冷却的这一事实。当机架最初填充数据时,可能需要所有服务器来进行I/O,但是稍后,不是将较冷的数据移动到其他机架上,而是可以只释放机架中的一些服务器来执行其他任务。作为第四示例,考虑地理复制案例。通常,辅助站点只接受写入操作。但是,如果主站点发生故障,则所有读取的工作负载将移动到辅助站点,因此可能需要重新配置以使更多存储服务器用于数据。
图10和11示出了在实施例中可以与模块化交换机301结合使用的另一特征。也就是说,个体交换机108可以被设计为使得相对于彼此的机械(即,空间)取向(而不仅仅是它们的网络拓扑)可以由控制功能113发现。例如,可以使得控制功能113能够确定哪个组件交换机108位于哪个其他组件交换机左侧或右侧,或者哪个组件交换机位于哪个其他组件交换机上方或下方,或者其在组件交换机108的二维或三维空间阵列中的相对位置。这使得控制功能113可以经由管理计算机终端111的用户界面将发生故障的组件交换机108的位置输出给人工管理员112。因此,人工管理员112更容易在各种其他组件中定位发生故障的组件,这些组件中可能有很多在大型的紧密包装的机架等中。
这样的设计的一个示例在图10中示出。在此,组件交换机108通过附接到公共结构元件(例如,板,诸如BMC板)来组装在一起以形成模块化交换机301。板1050(或其他这样的结构)具有多个机械联接器1060,每个机械联接器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(但是,也可以可选地使用支撑结构)。也就是说,如果需要构建甚至更大的模块化交换机301,则一个组件交换机108的机械联接器1150耦合到另一组件交换机108中的互补的机械联接器1150',以此类推。在这种情况下,每个组件交换机的连接器(经由其连接链路109)可以划分为用于形成外部链路109e的外部连接器303和用于形成内部链路109i的内部连接器。连接器303、303'具有不同的地址,并且内部连接器303在空间上布置在每个交换机108内,使得控制功能可以基于形成特定链路109的连接器的地址来判断它是内部链路109i还是外部链路109e。此外,控制功能113可以根据该信息来确定哪个组件交换机108连接到哪个其他组件交换机108的哪一侧。例如,在所示示例中,通过第一组件交换机108通过它的连接器编号7连接到第二组件交换机的连接器编号5的事实,这告知控制功能113这是内部链路109i并且第一交换机在链中的第二交换机的左侧。再次,控制功能113可以将这样的空间信息输出到人工管理员112以帮助他/她定位故障。
应当理解,上述实施例仅作为示例给出。
例如,在此已经参考以模块化方式形成的并且具有将整个模块化交换机301作为单个交换机呈现给控制功能113、114的API的模块化交换机描述了某些技术,诸如服务器105到存储设备106的映射的动态适配,或者使用电交换机701来适配存储结构拓扑。但是,这不是限制性的。诸如动态适配或使用电交换机701来适配拓扑的技术并非固有地与模块化或API思想相关联,并且在本公开的替代方面,它们可以各自独立地或以任何组合使用。例如,无论模块如何,都可以采用映射和/或拓扑的自动动态适配。或者,电交换机701的使用可以用于允许人工管理员112更容易地适配存储结构107的拓扑,而与模块化问题无关。在其他替代或附加变体中,多个个体交换机108和/或多个模块化交换机301可以经由外部链路109e连接在一起以形成存储结构107。
更一般地,一旦给出本文中的公开内容,所公开的技术的其他变体或应用对于本领域技术人员而言将变得很清楚。本公开的范围不受所公开的实施例的限制,而仅由所附权利要求书限制。
Claims (20)
1.一种服务器系统,包括:
多个处理设备,被布置为经由外部网络向一个或多个客户端系统供应一个或多个服务;
多个存储设备,供所述处理设备使用以存储与所述服务有关的数据;
存储结构,包括多个交换机,所述多个交换机中的每个交换机包括单个扩展器,用于将所述处理设备连接到所述存储设备,所述存储结构、所述处理设备和所述存储设备被布置为根据存储结构协议进行操作以便通过所述存储结构在所述处理设备与所述存储设备之间进行通信,其中所述存储结构利用映射可设置,所述映射确定在向所述客户端系统提供所述服务时,所述处理设备中的哪些处理设备被分配以使用所述存储设备中的哪些存储设备;以及
控制功能,被配置为响应于以下之一而动态地适配所述映射:(i)所述处理设备、所述存储设备、所述存储结构的组件或所述存储结构中的连接之一的故障或其他停机时间;或者(ii)从所述客户端系统对所述服务的当前需求。
2.根据权利要求1所述的服务器系统,其中只有所述处理设备而没有所述存储设备发起跨所述存储结构的事务。
3.根据权利要求1所述的服务器系统,其中所述控制功能被配置为响应于所述处理设备、所述存储设备、所述存储结构的组件或所述存储结构中的连接之一的所述故障或其他停机时间而动态地适配所述映射。
4.根据权利要求3所述的服务器系统,其中所述控制功能被配置为响应于所述存储设备之一的所述故障或其他停机时间而动态地适配所述映射。
5.根据权利要求1所述的服务器系统,其中所述存储结构包括多个个体逻辑交换机。
6.根据权利要求5所述的服务器系统,其中所述控制功能被配置为响应于所述逻辑交换机之一的所述故障或其他停机时间而动态地适配所述映射。
7.根据权利要求5所述的服务器系统,其中所述处理设备中的至少一些处理设备、所述存储设备中的至少一些存储设备、以及在这些处理设备与存储设备之间进行连接的所述逻辑交换机中的至少一些逻辑交换机都被彼此安装在同一服务器机箱中。
8.根据权利要求5所述的服务器系统,其中所述逻辑交换机具有个体配置设置,所述个体配置设置在所述个体配置设置之间定义处理设备到存储设备的映射,所述处理设备到所述存储设备的所述映射确定所述处理设备中的哪些处理设备被分配以使用所述存储设备中的哪些存储设备。
9.根据权利要求8所述的服务器系统,还包括API,所述API可操作以从所述控制功能接收所述存储设备到所述处理设备的所述映射的总体指示而不是要求由所述控制功能指定所述个体逻辑交换机中的每个逻辑交换机的所述个体配置设置,所述API被配置为将所述映射的所述总体指示转换为所述个体逻辑交换机的所述个体配置设置以产生所述映射。
10.根据权利要求8所述的服务器系统,其中所述控制功能被配置为响应于所述逻辑交换机之一或者去往或来自所述逻辑交换机之一的连接的故障或其他停机时间而动态地适配所述处理设备到存储设备的映射。
11.根据权利要求8所述的服务器系统,其中所述存储结构包括多个电交换机,所述多个电交换机以物理拓扑将所述逻辑交换机、所述处理设备和所述存储设备物理地连接在一起;并且其中所述多个电交换机被布置为由所述控制功能可操作以电气地重新配置所述物理拓扑,所述控制功能被配置为至少部分通过如此重新配置所述物理拓扑来执行动态适配。
12.根据权利要求1所述的服务器系统,其中所述控制功能包括在所述处理设备、在所述存储设备中的至少一个存储设备上的嵌入式处理器和所述存储结构的交换机中的至少一个上实现的带内控制功能。
13.根据权利要求1所述的服务器系统,其中根据所述存储结构协议所述处理设备中没有处理设备被允许具有去往所述存储设备中的同一存储设备的多个路径。
14.根据权利要求1所述的服务器系统,其中根据所述存储结构协议,以下中的至少一项:
在任一时间,所述处理设备中仅有一个处理设备被允许控制所述存储设备中的任何给定存储设备;
所述存储设备中没有存储设备能够在没有被分配所述处理设备之一以对所述存储设备进行控制的情况下操作;
只有所述处理设备而没有所述存储设备中的任何存储设备能够发起跨所述存储结构的事务;
所述处理设备只能通过所述存储结构与所述处理设备的所分配的存储设备通信,但是所述处理设备中没有处理设备能够与跨所述存储结构的所述处理设备中的任何其他处理设备通信,并且所述存储设备中也没有存储设备能够与跨所述存储结构的所述存储设备中的任何其他存储设备通信;以及
所述存储设备仅经由分配给所述存储设备的所述处理设备而不是直接地连接到所述外部网络。
15.根据权利要求1所述的服务器系统,其中根据所述存储结构协议,以下一项或两项:
通信根据有界等待时间原理而被进行,由此,如果发起所述通信的设备在最大时间延迟内未从作为所述通信的目标的所述设备接收到确认,则所述通信失败;
根据所述存储结构协议通过所述存储结构进行的所述通信是无损的;以及
通过所述存储结构进行的所述通信被划分为分组,并且所述存储结构强制所述分组的有序传递。
16.根据权利要求1所述的服务器系统,其中所述存储结构是SAS、SATA、光纤通道或者PCI。
17.根据权利要求1所述的服务器系统,其中所述外部网络是IP网络。
18.根据权利要求1所述的服务器系统,其中所述外部网络包括因特网。
19.一种操作服务器系统的方法,所述服务器系统包括被布置为经由外部网络向一个或多个客户端系统供应一个或多个服务的多个处理设备、供所述处理设备使用以存储与所述服务有关的数据的多个存储设备、以及存储结构,所述存储结构包括多个交换机,所述多个交换机中的每个交换机包括单个扩展器,用于将所述处理设备连接到所述存储设备;所述方法包括:
将所述存储结构、所述处理设备和所述存储设备布置为根据存储结构协议进行操作以便通过所述存储结构在所述处理设备与所述存储设备之间进行通信,其中所述存储结构利用映射可设置,所述映射确定在向所述客户端系统提供所述服务时,所述处理设备中的哪些处理设备被分配以使用所述存储设备中的哪些存储设备;以及
响应于以下之一而动态地适配所述映射:(i)所述处理设备、所述存储设备、所述存储结构的组件或所述存储结构中的连接之一的故障或其他停机时间;或者(ii)从所述客户端系统对所述服务的当前需求。
20.一种具有存储于其上的计算机可执行指令的一个或多个存储器设备,所述计算机可执行指令用于操作服务器系统,所述服务器系统包括被布置为经由外部网络向一个或多个客户端系统供应一个或多个服务的多个处理设备、供所述处理设备使用以存储与所述服务有关的数据的多个存储设备、以及存储结构,所述存储结构包括多个交换机,所述多个交换机中的每个交换机包括单个扩展器,用于将所述处理设备连接到所述存储设备,其中所述计算机可执行指令由一个或多个处理器的执行使得所述一个或多个处理器执行操作,所述操作包括:
将所述存储结构、所述处理设备和所述存储设备操作为根据存储结构协议进行操作以便通过所述存储结构在所述处理设备与所述存储设备之间进行通信,其中所述存储结构利用映射可设置,所述映射确定在向所述客户端系统提供所述服务时,所述处理设备中的哪些处理设备被分配以使用所述存储设备中的哪些存储设备;以及
响应于以下之一而动态地适配所述映射:(i)所述处理设备、所述存储设备、所述存储结构的组件或所述存储结构中的连接之一的故障或其他停机时间;或者(ii)从所述客户端系统对所述服务的当前需求。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/889,129 US20190245923A1 (en) | 2018-02-05 | 2018-02-05 | Server system |
US15/889,129 | 2018-02-05 | ||
PCT/US2019/015491 WO2019152331A1 (en) | 2018-02-05 | 2019-01-29 | Server system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111684421A CN111684421A (zh) | 2020-09-18 |
CN111684421B true CN111684421B (zh) | 2023-10-31 |
Family
ID=65576654
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980011554.2A Active CN111684421B (zh) | 2018-02-05 | 2019-01-29 | 服务器系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20190245923A1 (zh) |
EP (1) | EP3750059B1 (zh) |
CN (1) | CN111684421B (zh) |
WO (1) | WO2019152331A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10809926B2 (en) | 2018-02-05 | 2020-10-20 | Microsoft Technology Licensing, Llc | Server system |
US10673701B2 (en) * | 2018-04-24 | 2020-06-02 | Dell Products L.P. | PHY ability auto-negotiation system |
US11003394B2 (en) * | 2019-06-28 | 2021-05-11 | Seagate Technology Llc | Multi-domain data storage system with illegal loop prevention |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110145452A1 (en) * | 2009-12-16 | 2011-06-16 | Lsi Corporation | Methods and apparatus for distribution of raid storage management over a sas domain |
CN102833237A (zh) * | 2012-08-14 | 2012-12-19 | 南京斯坦德通信股份有限公司 | 一种基于桥接的无限带宽协议转换方法及系统 |
CN106462498A (zh) * | 2014-06-23 | 2017-02-22 | 利奇德股份有限公司 | 用于数据存储系统的模块化交换架构 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110128972A1 (en) * | 2000-04-17 | 2011-06-02 | Randy Thornton | Peer to peer dynamic network link acceleration |
US6990667B2 (en) * | 2001-01-29 | 2006-01-24 | Adaptec, Inc. | Server-independent object positioning for load balancing drives and servers |
US7685148B2 (en) * | 2005-01-31 | 2010-03-23 | Computer Associates Think, Inc. | Automatically configuring a distributed computing system according to a hierarchical model |
US8589550B1 (en) * | 2006-10-23 | 2013-11-19 | Emc Corporation | Asymmetric data storage system for high performance and grid computing |
US7996509B2 (en) * | 2007-09-26 | 2011-08-09 | International Business Machines Corporation | Zoning of devices in a storage area network |
US8930537B2 (en) * | 2008-02-28 | 2015-01-06 | International Business Machines Corporation | Zoning of devices in a storage area network with LUN masking/mapping |
US20130212134A1 (en) * | 2012-02-09 | 2013-08-15 | Vijay Ram S | Storage configuration discovery |
US8788724B2 (en) * | 2012-11-30 | 2014-07-22 | Hewlett-Packard Development Company, L.P. | Storage device to provide access to storage resources over a data storage fabric |
US9619410B1 (en) * | 2013-10-03 | 2017-04-11 | Jpmorgan Chase Bank, N.A. | Systems and methods for packet switching |
US9329780B2 (en) * | 2014-02-11 | 2016-05-03 | International Business Machines Corporation | Combining virtual mapping metadata and physical space mapping metadata |
US9939865B2 (en) * | 2014-06-13 | 2018-04-10 | Seagate Technology Llc | Selective storage resource powering for data transfer management |
US20160091913A1 (en) * | 2014-09-30 | 2016-03-31 | Cisco Technology, Inc. | Smart power management in switches and routers |
US10084691B2 (en) * | 2016-10-14 | 2018-09-25 | Oracle International Corporation | Scalable framework for managing QoS requirements after a switch link failover in a switch fabric network |
-
2018
- 2018-02-05 US US15/889,129 patent/US20190245923A1/en active Pending
-
2019
- 2019-01-29 EP EP19707916.3A patent/EP3750059B1/en active Active
- 2019-01-29 CN CN201980011554.2A patent/CN111684421B/zh active Active
- 2019-01-29 WO PCT/US2019/015491 patent/WO2019152331A1/en unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110145452A1 (en) * | 2009-12-16 | 2011-06-16 | Lsi Corporation | Methods and apparatus for distribution of raid storage management over a sas domain |
CN102833237A (zh) * | 2012-08-14 | 2012-12-19 | 南京斯坦德通信股份有限公司 | 一种基于桥接的无限带宽协议转换方法及系统 |
CN106462498A (zh) * | 2014-06-23 | 2017-02-22 | 利奇德股份有限公司 | 用于数据存储系统的模块化交换架构 |
Also Published As
Publication number | Publication date |
---|---|
EP3750059A1 (en) | 2020-12-16 |
EP3750059B1 (en) | 2023-05-03 |
CN111684421A (zh) | 2020-09-18 |
WO2019152331A1 (en) | 2019-08-08 |
US20190245923A1 (en) | 2019-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10936520B2 (en) | Interfaces for peer-to-peer graphics processing unit arrangements | |
TWI704459B (zh) | 提供平衡性能與高可用性之冗餘資源連接連線構體及計算系統 | |
US6732104B1 (en) | Uniform routing of storage access requests through redundant array controllers | |
CN101140497B (zh) | 存储系统及其控制方法 | |
CN111684421B (zh) | 服务器系统 | |
JP5363924B2 (ja) | 単一sasエクスパンダの機能性を提供するために複数のsasエクスパンダを組み合わせる方法、及び、単一sasエクスパンダ | |
US11232006B2 (en) | Server system | |
WO2018160351A1 (en) | DYNAMIC PARTITION OF PCLe DISK ARRAYS BASED ON SOFTWARE CONFIGURATION / POLICY DISTRIBUTION | |
US20080162987A1 (en) | System and method for connecting SAS RAID controller device channels across redundant storage subsystems | |
JP5460188B2 (ja) | Sasワイドポート接続のためのレーンの指定 | |
WO2009002514A2 (en) | Storage area network with target side recognition and routing table upload | |
US8244948B2 (en) | Method and system for combining multiple SAS expanders into a SAS switch | |
US8788753B2 (en) | Systems configured for improved storage system communication for N-way interconnectivity | |
CN116501681B (zh) | Cxl数据传输板卡及控制数据传输的方法 | |
JP2008228150A (ja) | スイッチ装置及びフレーム交換方法とそのプログラム | |
US20220350767A1 (en) | Flexible high-availability computing with parallel configurable fabrics | |
US20140095754A1 (en) | Back-Off Retry with Priority Routing | |
CN105763488B (zh) | 数据中心汇聚核心交换机及其背板 | |
EP3995963A1 (en) | Method of improving reliability of storage system, and related apparatus | |
EP3316114A1 (en) | Data reading and writing method and device | |
CN101170544A (zh) | 一种高可用群集系统采用单一实ip地址的通讯方法 | |
CN113392053B (zh) | 一种存储系统,一种通信方法及组件 | |
JP2017055184A (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 |