CN107665180A - 分解系统和用于处理请求的方法 - Google Patents

分解系统和用于处理请求的方法 Download PDF

Info

Publication number
CN107665180A
CN107665180A CN201710624816.5A CN201710624816A CN107665180A CN 107665180 A CN107665180 A CN 107665180A CN 201710624816 A CN201710624816 A CN 201710624816A CN 107665180 A CN107665180 A CN 107665180A
Authority
CN
China
Prior art keywords
node
calculate
memory
nodes
cpu
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.)
Pending
Application number
CN201710624816.5A
Other languages
English (en)
Inventor
李舒
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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of CN107665180A publication Critical patent/CN107665180A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1031Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)

Abstract

公开了一种分解系统和用于处理请求的方法。所述分解系统包括一个或多个计算节点和一个或多个存储节点。分解系统的一个或多个计算节点和一个或多个存储节点协同工作以提供一个或多个服务。当系统分别需要较少的计算容量和存储容量时,可移除分解系统中的已有计算节点和已有存储节点。当系统分别需要较多的计算容量和存储容量时,可分别添加分解系统中额外的计算节点和已有存储节点。

Description

分解系统和用于处理请求的方法
技术领域
本申请涉及数据存储和计算领域,尤其涉及一种分解系统和用于处理请求的方法。
背景技术
传统上,数据服务器在数据中心中运行以并行地执行更多的服务。实现数据服务器的成本是昂贵的,并且每个追加的数据服务器可提供比实际需要更多的存储和/或计算容量。因此,通常通过添加追加的服务器来适应更大的存储和/或计算需求的传统方法可能是浪费的,因为通常,至少一些追加的容量可能不会被使用
发明内容
本申请实施例提供了一种分解系统,包括:一个或多个计算节点,其中,所述一个或多个计算节点中的每一个均不包括配置为存储数据的存储驱动器,其中,所述一个或多个计算节点中的每一个包括:中央处理单元CPU;存储设备,耦接到所述CPU,并且配置为向所述CPU提供操作系统代码;多个存储器,被配置给所述CPU,并且配置为向所述CPU提供指令;和计算节点联网接口,耦接到交换机,并且配置为与包括在所述分解系统中的所述至少一个或多个存储节点进行通信;所述一个或多个存储节点,其中,所述一个或多个存储节点中的每一个均不包括对应的CPU,其中,所述一个或多个存储节点中的每一个包括:多个存储设备,配置为存储数据;控制器,耦接到所述多个存储设备,并且配置为控制所述多个存储设备;存储器,耦接到所述控制器,配置为存储从所述控制器接收的数据;和存储节点联网接口,耦接到所述交换机,并且配置为与至少所述一个或多个计算节点进行通信;和所述交换机,耦接到所述一个或多个计算节点和所述一个或多个存储节点,并且配置为促进所述一个或多个计算节点与所述一个或多个存储节点之间的通信。
本申请实施例还提供一种用于处理请求的方法,包括:在第一计算节点处接收来自请求者的请求,其中,所述第一计算节点为分解系统的一个或多个计算节点中的计算节点;将所述请求的至少一部分分配到所述一个或多个计算节点的第二计算节点;从所述第二计算节点接收对所述请求的响应的至少一部分;和将所述响应的至少一部分发送到所述请求者,其中,所述第一计算节点包括:中央处理单元CPU;存储设备,耦接到所述CPU,并且配置为向所述CPU提供操作系统代码;多个存储器,配置于所述CPU,并且配置为向所述CPU提供指令;和计算节点联网接口,耦接到交换机,并且配置为与包括在所述分解系统中的至少一个或多个存储节点通信。
采用本申请实施例提供的上述方案,可以避免存储和计算资源的浪费,同时节省了扩展存储和计算资源的成本。
附图说明
在下面的详细描述和附图中公开了本发明的各种实施例。
图1是表示数据中心中的传统服务器和以太网交换机的图。
图2A和2B是示出了传统服务器的配置的CPU和RAM容量以及两个不同服务所需的CPU和RAM容量的图。
图3A和3B是示出了传统服务器的配置的CPU和RAM容量以及相同服务随时间需要的CPU和RAM容量的图。
图4是示出根据一些实施例的实例分解计算和存储系统中的各种存储节点和计算节点的图。
图5是示出连接到以太网交换机的计算节点和存储节点的示例分解系统以及由分解系统共享的一组公共外部设备的图。
图6是示出将新节点添加到分解系统的过程的实施例的流程图。
图7是示出从分解系统中去除已有节点的过程的实施例的流程图。
图8是计算节点的实例。
图9是存储节点的实例。
图10示出了实例传统服务器机架与具有实例分解系统的服务器机架之间的比较。
图11是示出与数据中心中的其他系统连接的实例分解系统的图。
具体实施方式
本发明可以以多种方式实现,包括实施为过程、装置、系统、物质的组成;体现在计算机可访问/可读介质上的计算机程序产品;和/或处理器,诸如被配置为执行存储在耦接到所述处理器的存储器的指令的处理器和/或执行由耦接到所述处理器的存储器提供的指令的处理器。在本说明书中,这些实现或本发明可能采取的任何其他形式可被称为技术。通常,所公开的过程的步骤的顺序可在本发明的范围内改变。除非另有说明,诸如处理器或存储模块和/或被描述为被配置为执行任务的存储器的组件可被实现为通用组件,该组件被临时配置为在给定时间执行任务的或被制造来执行所述任务的专用组件。如本文所使用的,术语“处理器”是指被配置为处理诸如计算机程序指令之类的数据的一个或多个设备、电路和/或处理核。
下面提供了本发明的一个或多个实施例的详细描述以及说明本发明的原理的附图。结合这些实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求限制,并且本发明包括许多替代方案、修改和等同方案。为了提供对本发明的透彻理解,在下面的描述中阐述了许多具体细节。出于实例的目的提供这些细节,并且根据权利要求可实现本发明,而没有这些具体细节中的一些或全部。出于清楚的目的,与本发明相关的技术领域中已知的技术资料没有详细描述,使得本发明不会被不必要地模糊。
图1是表示数据中心中的传统服务器和以太网交换机的图。如图所示,每个服务器102,104和106是传统服务器的实例。每个服务器被配置有固定数量的存储组件(例如,固态驱动器(SSD)/硬盘驱动器(HDD)、双列直插式存储器模块(DIMM))和固定数量的计算组件(例如,中央处理单元(CPU))。因此,每个服务器是具有自己固定的存储设备容量、CPU能力和存储器容量的独立机器。通常,在传统服务器的服务器建立时,输入/输出(IO)比率和容量被一次配置。传统服务器的固定配置的一个主要缺点是,从客户端发送的不同类型和数量的服务请求可能无法完全适应服务器的固定配置。
图2A和2B是示出了传统服务器的配置的CPU和RAM容量以及两个不同服务所需的CPU和RAM容量的图。在图2A和2B绘图中,虚线202表示传统服务器的配置的固定CPU和RAM容量。通常,传统服务器被配置为容纳多个服务。但是,不同服务对不同的CPU和RAM最大需求可能导致服务器被配置有比某些服务所需更多的一种或多种资源类型的容量,从而导致浪费这些过量的资源。因此,在传统的服务器中,CPU、存储器、存储器或其组合可能在提供多个服务时被浪费。在2A和2B的实例中,服务器的配置是为客户端提供服务A定制的。因此,如图2A所示,服务A所需的CPU和RAM容量由服务器的固定CPU和RAM容量满足,如虚线202所示。但是,由于服务器的配置不是为客户端提供服务B而定制的,如图2B中的绘图所示,服务B所需的CPU容量远远小于服务器的固定CPU容量提供的CPU容量,如虚线202所示。因此,服务器的固定CPU容量在某些时间不可避免地被浪费,诸如当服务器正在处理服务B的请求时。
图3A和3B是示出了传统服务器的配置的CPU和RAM容量以及同一服务随时间需要的CPU和RAM容量的图。在图3A和3B的绘图中,虚线302表示传统服务器的配置的固定CPU和RAM容量。为了证明新服务器的成本,服务器在报废之前通常在数据中心使用三年或更长时间。但是,随着时间的推移,对同一服务的需求可能会改变。在该实例中,服务器的配置是为了提供特定服务而定制的,并且似乎满足该特定服务在服务器寿命的第一年期间所需的CPU和RAM容量。但是,由于服务器所需的CPU和RAM容量可能随着时间的推移而增加,如图3B中的绘图所示,服务器的固定CPU容量变得不足以满足服务器寿命的第二年提供的服务CPU需求。通常,为了解决提供服务所需的资源不足的问题,可向数据中心添加更多的服务器来扩大数据中心的计算能力。但是,如果由于限制和约束而不能添加追加的服务器,则必须用全新的服务器替换旧的服务器,所述全新的服务器至少包括同样多的资源(例如,存储器),该资源随时间变得不足。
服务器和以太网交换机是传统数据中心的主要组件。简单来说,传统的数据中心包括这样的服务器,该服务器与以太网连接,并与各种设备连接,例如带外(OOB)通信设备、冷却系统、备用电池单元(BBU)、配电单元(PDU)、机架、二次电源、汽油发电机等。在各种实施例中,当一次电源和/或二次电源不可用时,BBU临时向系统供电。如今,由于服务器可被配置,然后针对不同的应用程序以及在不同时间在线部署,数据中心可包括具有不同配置的服务器。多样化的服务器类型可在某些时期临时地向应用提供定制的改善。但是,考虑到数据中心的长期发展,例如,多样化的传统服务器类型也可能在管理、故障控制、维护、迁移和进一步横向扩展等方面引起越来越多的问题。
另一个问题在于终端用户的变化需求。传统服务器的传统规则或特性不太可能长时间适应客户端的变化的服务需求。因此,一个服务器配置可能很快就会变得过时,因此很难被各种应用中长时间使用。换句话说,具有固定配置的传统服务器可以只在短时间内使用,但在资源池中保持闲置而没有进一步的使用,直到质保期满。
本文描述了分解计算和存储系统的实施例。在各种实施例中,分解计算和存储系统(其有时被称为“分解系统”)包括单独的存储组件和计算组件。在各种实施例中,存储组件的每个单元被称为“存储节点”,并且计算组件的每个单元被称为“计算节点”。在各种实施例中,分解系统包括一个或多个计算节点和零个或多个存储节点。在各种实施例中,分解系统中的每个计算节点不包括存储驱动器(例如,硬盘驱动器(HDD)或固态驱动器(SSD)),而是包括中央处理单元(CPU);被配置为向CPU提供操作系统代码的存储设备;被配置为向CPU提供指令的一个或多个存储器;联网接口,被配置为与同一系统中的至少一个存储节点通信(例如,经由以太网交换机)。在各种实施例中,分解系统中的每个存储节点不包括CPU,而是包括被配置为存储数据的一个或多个存储设备;被配置为控制一个或多个存储设备的控制器(具有嵌入式微处理器);被配置为向控制器提供指令的一个或多个存储器;以及联网接口,被配置为与至少一个计算节点通信。在各种实施例中,同一个分解系统的计算节点和存储节点被配置为共同提供一个或多个服务。在各种实施例中,分解系统中的至少一个计算节点包括“主计算节点”,该“主计算节点”将接收将要由分解系统处理的请求(例如,来自负载均衡器或客户端);将请求分配到分解系统中一个或多个计算和/或存储节点;并且如果合适,将所执行的请求的结果返回给请求者。在各种实施例中,可根据需要,针对增加或减少的计算/处理,将计算节点动态地和灵活地添加到分解系统或从分解系统移除,而不浪费多余/未使用的存储和/或计算能力。在各种实施例中,每个计算和/或存储节点与卡的尺寸(例如,半高全长(HHFL)的附加卡(Add in cad,AIC))相关联,使得与同一分解系统相关联的计算和/或存储节点系统可跨服务器机架的同一个机架安装。因此,可在同一个服务器机架中安装多个分解系统,以有效利用服务器机架空间。
图4是示出根据一些实施例的实例分解计算和存储系统中的各种存储节点和计算节点的图。如图4的实例所示,计算节点402、404、406和408以及存储节点410、412和414形成单个分解系统,并且还连接到以太网交换机416。计算节点402、404、406和408中以及存储节点410、412和414中的每一个本身不是传统服务器,而是具有紧凑形状要素的小卡。例如,计算节点402、404、406和408中的每一个可在单个印刷电路板(PCB)上实现,并且存储节点410、412和414中的每一个可在单个PCB上实现。计算节点402、404、406和408以及存储节点410、412和414中的每一个直接连接到以太网交换机416,用于彼此之间的超快速互连,与其他系统和/或以太网结构超快速互连。计算节点402、404、406和408以及存储节点410、412和414中的每一个与对应的标识符和对应的因特网协议(IP)地址相关联。以太网交换机416可提供例如128×25Gb的带宽,其可用于通过网络(例如,因特网或其他高速电信和/或数据网络)促进分解系统的存储节点和计算节点之间的通信以及分解系统与数据中心中的外部设备和/或其他系统之间的通信。用于交换机控制的CPU 418被配置为向以太网交换机416提供指令。用于交换机控制的CPU 418的实例包括x86或ARM CPU。例如,用于交换机控制的CPU418可运行诸如 Tomahawk的协议。与被配置为管理分解系统的操作的主计算节点相反,用于交换机控制的CPU 418被配置为控制与分解系统相关联的以太网交换机416。
如下面将进一步详细描述的,计算节点402、404、406和408以及存储节点410、412和414中的每一个与通常为服务器配置的相比包括更少的组件/资源,并且所有节点,无论它们是计算节点还是存储节点,都被配置为一起工作,从而共同提供一个或多个服务给客户端。在各种实施例中,每个分解系统包括一个或多个计算节点和零个或多个存储节点。每个分解系统中的至少一个计算节点有时被称为“主计算节点”,并且主计算节点被配置为针对一个或多个服务从客户端(例如经由负载平衡器)接收请求;将请求分配到一个或多个其他计算和/或存储节点;将来自所述一个或多个其他计算和/或存储节点的响应聚合;并且向所述请求客户端返回聚合的响应。在一些实施例中,分解系统中的主计算节点将存储包括在与主计算节点相同的分解系统中的每个存储节点和计算节点的标识符和/或IP地址,使得这些成员节点可以聚集在一起,并由主计算节点共同管理。在一些实施例中,主计算节点存储确定需要多少计算节点和/或存储节点来执行每个服务的逻辑,该每个服务是分解系统被配置用于执行的服务。在一些实施例中,系统的主计算节点首先接收分解系统的客户端请求,并且主计算节点将在系统的其他计算节点和存储节点之间分配请求。在一些实施例中,分解系统中的主计算节点可将接收到的客户端请求划分为多个部分请求,并将每个部分请求分配到系统中的不同节点。在一些实施例中,已经接收到部分请求的节点将至少处理部分请求(例如,执行计算、检索所请求的文件的至少一部分、存储所请求的文件的至少一部分、删除请求文件的至少一部分、在请求文件的至少一部分上执行指定的操作等),然后将对部分请求的响应发送回主计算节点。主计算节点可对已经从系统中的其他节点接收到的部分请求的响应进行聚合/组合/协调,生成对所述请求的聚合的/组合的响应(例如,将所请求的文件的各个部分组合成完整文件),并将聚合/组合的响应返回给请求的客户端。
以下是管理分解系统中的计算和存储节点的主计算节点的实例:分解系统的主计算节点接收客户端请求以调整存储在系统中的图像的大小。主计算节点使用存储在节点上的分布式文件系统来确定系统的哪些存储节点包含(部分)文件。主计算节点还保持关于分解系统中每个计算节点和每个存储节点的当前工作负载和/或可用性的元数据(例如,计算节点和存储节点可周期性地发送关于其当前工作负载和/或可用性的反馈到主计算节点)。然后,主计算节点可将用于调整图像大小的客户端请求分解成若干部分请求,并且基于分布式文件系统和存储的元数据将部分请求分配给系统的适当的存储节点和计算节点。例如,主计算节点可将用于调整图像大小的请求分解成用于检索所请求的图像的第一部分请求,以及用于将图像大小调整到指定尺寸的第二部分请求。主计算节点然后可分配第一部分请求以从存储所请求的文件的存储节点检索所请求的图像,并将用于将图像大小调整到指定尺寸的第二部分请求发送到具有足够的可用性计算能力来执行任务的计算节点。在计算节点将调整大小的图像返回到主计算节点之后,主计算节点可通过将调整大小的图像发送到请求者来响应客户端请求。
在各种实施例中,分解系统的主计算节点被配置为存储分布式文件系统,所述分布式文件系统保持关于哪些其他节点存储系统所保持的文件的哪些部分的记录。分布式文件系统的实例包括Hadoop分布式文件系统。在一些实施例中,仅分解系统中的存储节点存储用户文件。同时每个计算节点包括相对小的存储器容量,安装在计算节点中的存储器被配置为存储用于计算节点的启动的操作系统代码。
在各种实施例中,由于分解系统的存储节点和/或计算节点出于其他原因而失败和/或需要被替换,所以可使用新的存储节点和/或计算节点来代替发生故障的存储节点或计算节点。在一些实施例中,新的存储节点或新的计算节点可以通过不要求整个分解系统关闭的方式来替换先前相应的存储节点或计算节点。例如,当新节点(例如,卡)插入系统并通电时,它广播消息宣布其存在。主计算节点接收到消息后,向新节点分配(例如,IP)地址,并且从主计算节点的那一点经由以太网交换机与新节点进行通信。
在各种实施例中,在需要追加的存储和/或计算容量的情况下,分解系统的追加的存储节点和/或计算节点可以被灵活地添加到分解系统。在一些实施例中,新的存储节点或新的计算节点可热插拔到分解系统。在一些实施例中,将新的存储节点或新的计算节点“热插拔”到分解系统中是指通过不要求整个分解系统关闭的方式将新的存储节点或新的计算节点添加到分解系统中,被分解系统识别和初始化。
在各种实施例中,在需要减少的存储和/或计算容量的情况下,分解系统的一个或多个存储节点和/或计算节点可从分解系统中灵活地移除。在一些实施例中,已有存储节点或已有计算节点可以通过不要求整个分解系统关闭的方式从分解系统中移除。
在各种实施例中,除了被配置为主计算节点的一个计算节点之外,分解系统可具有零个或多个其他计算节点和零个或多个存储节点。在一些实施例中,分解系统可具有的计算和/或存储节点的最大数目至少受到服务器机架的总功率预算的限制。例如,可包括在单个分解系统中的计算和/或存储节点的数量受到服务器机架的总功率预算除以计算节点和/或存储节点的功耗的限制。
图5是示出连接到以太网交换机的计算节点和存储节点的实例分解系统以及由分解系统共享的一组公共外部设备的图。在该实例中,“S N”表示存储节点,“C N”表示计算节点。如实例所示,分解系统502包括几个计算节点和几个存储节点,其共同执行与分解系统502相关联的一个或多个服务。以太网交换机504(例如,128x25Gb以太网交换机)位于分解系统502之后。可出于以太网的控制目的分配(ARM架构的)CPU(图中未示出)。外部设备和以太网端口506安装在以太网交换机504之后。以太网交换机504由用于控制交换机的CPU 508控制。外部设备和以太网端口506由分解系统502的所有节点共享。实例外部设备包括诸如以下设备中的一个或多个:带外(OOB)通信设备(例如,串行端口、USB端口、以太网端口等),被配置为通过独立于主带内数据流的流传输数据、冷却系统、BBU、配电单元(PDU)、机架、二次电源、汽油发电机和风扇。以太网端口可用于将分解系统502连接到数据中心中的其他系统。在一些实施例中,将分解系统安装在服务器机架中,使得存储节点和/或计算节点面向冷通道(例如,数据中心中的面向空调输出管道的通道)。
在一些实施例中,分解系统502的高度(以及因此是形成分解系统502的计算节点和存储节点中的每一个的高度)是预先确定的。在一些实施例中,分解系统502的高度500(以及因此是形成分解系统502的计算节点和存储节点的高度)是两个机架单元(RU)。在一些实施例中,安装有一个或多个分解系统的服务器机架是19英寸宽的机架。在一些实施例中,其上安装有一个或多个分解系统的服务器机架是23英寸宽的机架。鉴于典型的全机架尺寸为48RU,可在单个服务器机架中安装多个分解系统。
在一些实施例中,分解系统502可经由负载平衡器从客户端接收请求,负载平衡器可基于配置的分配策略将请求分发到一个或多个分解系统和/或一个或多个传统服务器。
图6是示出将新节点添加到分解系统的过程的实施例的流程图。在一些实施例中,过程600在诸如图4中描述的分解系统的分解系统中实现。
在602,监测由与分解系统相关联的多个节点执行的请求的处理。随着时间的推移,可监测与分解系统的存储节点和/或计算节点处理请求的方式相关联的各种特征(例如,量、速度、请求类型、请求者类型等)。可将监测的特性和/或从监测的性能推测的未来性能的特性与配置的标准(例如阈值或条件)进行比较,以将新的存储节点或新的计算节点添加到分解系统。
在604,至少部分地基于监测,确定应该将新节点添加到与分解系统相关联的多个节点中。在满足将新存储节点或新计算节点添加到分解系统的配置标准(例如,阈值或条件)的情况下,则将与所满足的标准相关联的新节点添加到分解系统。例如,如果满足添加新存储节点的标准,则将新的存储节点添加到分解系统中。否则,如果不满足添加新的计算节点的标准,则不会将新的计算节点添加到分解系统。例如,主计算节点(例如,通过轮询节点或通过从节点接收周期性更新)监测节点所需的CPU/存储器使用量,并且当使用超过阈值时,将新节点添加到分解系统中。在一些实施例中,当超过这样的阈值时,向管理用户发送警报,管理用户可提交命令以确定向系统添加新节点。
图7是示出从分解系统中去除已有节点的过程的实施例的流程图。在一些实施例中,过程700在诸如图4中描述的分解系统的分解系统中实现。
在702,监测由与分解系统相关联的多个节点执行的请求的处理。随着时间的推移,可监测与分解系统的存储和/或计算节点处理请求的方式相关联的各种特征(例如,量、速度、请求类型、请求者类型等)。可将监测的特性和/或从监测的性能推测的未来性能的特性与配置的标准(例如阈值或条件)进行比较,以从分解系统中移除已有存储节点或已有计算节点。
在704,至少部分地基于监测来确定已有节点应该从与分解系统相关联的多个节点中移除。在用于从分解系统中去除已有存储节点或已有计算节点的配置标准(例如,阈值或条件)得到满足的情况下,从分解系统中移除与所满足的标准相关联的已有节点。例如,如果满足移除已有存储节点的标准,则从分解系统中移除已有的存储节点。否则,如果不符合移除已有计算节点的标准,则不会从分解系统中移除已有计算节点。例如,主计算节点监测(例如,通过轮询节点或通过从节点接收周期性更新)节点所需的CPU/存储器使用量,并且当使用量低于阈值时,新节点将添加到分解系统。在一些实施例中,当使用量低于阈值时,向管理用户发送警报,管理用户可提交命令以确认从系统中移除已有节点。
图8是计算节点的实例。计算节点800包括安装在PCB上的中央处理单元(CPU)802、操作系统(OS)存储器804、存储器模块806、808、810和812以及网络接口卡(NIC)814。虽然在计算节点800中示出了四个存储器模块,但实际上可在计算节点上安装更多或更少的存储器模块。计算节点800可以热插拔到分解系统中。
与传统服务器相反,计算节点800采用与半高全长(HHFL)附加卡(Add in card,简称为AIC)相似的形状因子。HHFL AIC的测量结果为4.2英寸(高)×6.9英寸(长)。进一步地,与传统服务器相反,计算节点800不具有存储驱动器。因此,计算节点800的主板的尺寸比传统服务器的尺寸小得多。
存储器模块806、808、810和812中的每一个可包括高速双列直插存储器模块(DIMM)。CPU 802包括单插槽CPU。CPU 802用于简化对存储器模块806、808、810和812的访问,并因此实现存储器模块806、808、810和812的延时的减小。在一些实施例中,CPU 802包括四个或更多个核心。在计算节点800包括分解系统中的主计算节点的情况下,分布式文件系统可存储在CPU 802中。在一些实施例中,存储器模块806、808、810和812以与PCB成锐角的方式安装,以便有效控制计算节点800的厚度,这有利于增加机架密度。
在一些实施例中,OS存储器804用NAND闪存实现,并且被配置为向CPU 802提供与本地操作系统相关联的计算机代码,以使得CPU 802能够执行计算节点800的正常功能。因为OS存储器804是被配置为存储操作系统代码,因此不同于允许写入操作的常用SSD或HDD,OS存储器804是只读的。在一些实施例中,由于OS存储器804被配置为仅存储操作系统代码,所以存储器的存储容量要求低,这降低了计算节点800的总体成本。例如,由CPU 802运行的操作系统可以是Ubuntu或Linux。例如,与操作系统相关联的计算机代码的大小可以是20到60GB。接通电源后,指令从OS存储器804加载到存储器模块806、808、810和812,以使得CPU802能够执行计算。在一些实施例中,NIC 814包括以太网控制器,并被配置为通过以太网发送和接收数据包。例如,NIC 814直接连接到与分解系统相关联的以太网交换机。
当在分解系统中需要更多的计算资源时,计算节点800的额外实例可被添加到分解系统。
图9是存储节点的实例。存储节点900包括存储设备902、904、906、908、910、912、914、916、918、920、922和924、存储器926、存储控制器928和NIC 930。尽管在存储节点900中示出了12个存储器,可在存储节点上安装更多或更少的存储器。存储节点900可热插拔到分解系统中。
与传统服务器相反,存储节点900具有与半高全长(HHFL)附加卡(AIC)相似的形式。此外,与传统服务器相反,存储节点900不具有CPU。因此,存储节点900的主板的尺寸远小于传统服务器的尺寸。
在一些实施例中,存储控制器928包括NAND控制器,并且每个存储设备902、904、906、908、910、912、914、916、918、920、922和924包括(例如,256GB)NAND闪存芯片。存储设备902、904、906、908、910、912、914、916、918、920、922和924被配置为存储被分配存储在存储节点900处的数据。不同于包括多个NAND闪存芯片的(例如,闪存)存储驱动器,存储设备902、904、906、908、910、912、914、916、918、920、922和924中的每一个可包括单个NAND闪存片,并且存储设备共同由存储控制器928管理。在一些实施例中,存储控制器928在内部包括一个或多个微处理器。存储控制器928中包括的微处理器处理以太网协议和NAND存储管理。在一些实施例中,存储器926包括诸如动态随机存取存储器(DRAM)的易失性存储器。存储器926被配置为用作存储控制器928的微处理器的数据桶以完成协议交换、数据成帧、编码、映射等。在一些实施例中,存储器926还被配置为向存储控制器928和存储设备902、904、906、908、910、912、914、916、918、920、922和924提供指令。在一些实施例中,网络接口控制器(NIC)930包括以太网控制器,并且被配置为通过以太网发送和接收数据包。例如,NIC 930直接连接到与分解系统相关联的以太网交换机。由于分解系统具有支持系统的共同BBU,因此存储节点900上的每个单个组件(例如,存储设备902、904、906、908、910、912、914、916、918、920、922和924)的电力故障保护不是必需的。
在各种实施例中,一个或多个计算节点,诸如图8的计算节点800,和一个或多个存储节点,诸如存储节点900,被包括在分解系统中并且被配置为共同执行一个或多个功能。分解系统的存储和/或计算节点共享包括OOB数据设备的一组通用设备。
当分解系统中需要更多的存储资源时,存储节点900的额外实例可被添加到分解系统。
图10示出了实例传统的服务器机架与实例分解系统之间的比较。图10的实例示出了实例传统的服务器机架1002与实例分解系统1006。传统的服务器机架1002包括以太网交换机(OOB)1008和以太网交换机1010。以太网交换机(OOB)1008被配置为监测和控制通信,但不用于生产或工作负载。以太网交换机1010被配置为接收和分配传统服务器机架1002的正常网络流量。传统服务器机架1002还包括传统存储服务器1012、1016、1020、1022、1024和1028以及传统计算服务器1014、1018、1026和1030。如图所示,每个传统的计算服务器和存储服务器包括相应的电源(“电源”)和BBU。此外,每个传统计算服务器和存储服务器还包括相应的CPU。(传统的计算服务器中包含的CPU在图中被标记为“CPU ST”,而传统的存储服务器中包括的CPU在图中被标记为“CPU CP”)。通常,因为传统的存储服务器主要出于存储目的设计,因此传统的存储服务器的CPU可能不需要执行顶级的计算性能。因此,传统的存储服务器中CPU的频率和核心数量可能只需要满足相对放宽的要求。但是,为了使传统的存储服务器工作,CPU仍然是不可避免的。类似地,DRAM DIMM也安装在传统的存储服务器中。服务器中装有多个存储单元(固态驱动器或SSD),以提供高容量的数据存储。传统的计算服务器通常配置有高性能CPU和大容量DRAM DIMM。另一方面,传统的计算服务器对存储空间的需求通常并不重要,因此很少有SSD主要出于数据缓存的目的配备。
以下是传统的服务器装备1002和分解系统1006之间的一些对比的方面:
可使用图9的实例存储节点来实现的分解系统1006的每个存储节点(在图中被标记为“S N”)不包括CPU和相应的DRAM DIMM。相反,分解系统1006的每个存储节点包括嵌入式微处理器(在存储器(例如,NAND)控制器内))和小容量的板上易失性存储器(例如,DRAM)。在一些实施例中,存储节点的嵌入式微处理器和DRAM一起工作以存储数据以及从存储节点上的NAND存储设备检索数据。通过缩小存储节点中的主板,减少了每个存储节点的复杂性和成本。
可使用图8的实例计算节点来实现的分解系统1006的每个存储节点(在图中被标记为“C N”)不包括存储驱动器(例如,SSD或HDD)。相反,一个板载OS NAND能够存储在每个计算节点上,该计算节点具有作为本地启动驱动的小存储容量。主板也是简化的,因为外围设备种类很少。因此,可减少关于计算节点的设计、信号完整性和电源完整性的工作。
在分解系统1006中,诸如BBU、OOB、电源和风扇之类的公共外部设备现在被汇聚在一起,以便由分解系统1006中的所有计算和/或存储节点共享,这显著节省了的服务器机架空间和资源,诸如服务器机箱、电源线和机架轨。
分解系统1006还在服务器机架空间上占据显著更少的空间。而包括以太网组件的传统服务器占用整个服务器机架,分解系统1006的高度1004只是服务器机架的高度的预定部分(例如,两个机架单元),因此多于一个的分解系统1006可安装在单个服务器机架上,从而增强了机架密度,并改善了服务器机架的散热。
功率降低是由分解系统1006提供的另一个改进。例如,功率节省缘于以下方面:对存储节点的CPU-存储器复合体的简化;计算节点的SSD;以及去除传统机架中重复的模块,诸如一个或多个风扇、一个或多个电源、一个或多个BBU以及一个或多个OOB。
分解系统的另一个优点是使用汇聚的BBU来简化每个存储节点和计算节点的设计。由于整个分解系统现在受到BBU的保护,因此不再需要对像SSD、RAID控制器和其他某些中间缓存这样的设备的单独的电源故障保护设计。由于其成本和总体故障率较高,因此要求在各级和/或相对于单独的组件安装或存在电源故障保护的传统方式被认为是次优的。
图11是示出连接到数据中心中的其他系统的实例分解系统的图。如图所示,分解系统1102和1110中的每一个包括满足顶架式(TOR)功能的以太网交换机。因此,分解系统1102和1110中的每一个可经由以太网结构1108连接到数据中心的其他系统、系统1104和1106。系统1104和1106可各自包括传统服务器或分解系统。
如上所述,分解系统可由至少一个计算节点和任何数量的存储节点的任何组合动态地形成,以适应由分解系统执行的功能。因此,分解系统是高度可重构的、灵活的和方便的。分解系统通过其高级抽象和符合广泛采用的以太网结构与目前的数据中心基础设施广泛兼容。分解系统可被认为是可重配置的计算和存储资源盒,其中配备有插入到基础设施中的高速以太网。例如,当分解系统中除主计算节点以外的所有节点都是存储节点时,该分解系统可用作像网络附加存储(NAS)的存储阵列。另一方面,当分解系统包括所有计算节点,系统将具有大容量,用于通过数据中心的高速网络执行计算和数据交换。
如本文所述的具有以太网交换机的分解系统具有高效可重构、低功率、低成本并且配备有高速互连的优点。此外,分解系统提高了机架密度。分解系统通过配置灵活性升级服务器,以及移除冗余模块,降低了大型基础设施的总体拥有成本(TCO)。同时,对分解系统的子系统进行了仔细研究,简化了单独节点。此外,分解系统与现有基础架构具有很强的兼容性,因此可将其直接添加到数据中心,而不会出现主要的架构变化。
虽然出于清楚理解的目的,已经对前述实施例进行了一些细节的描述,本发明不限于所提供的细节。有许多实现本发明的替代方法。所公开的实施例是说明性的而不是限制性的。

Claims (18)

1.一种分解系统,包括:
一个或多个计算节点,其中,所述一个或多个计算节点中的每一个均不包括配置为存储数据的存储驱动器,其中,所述一个或多个计算节点中的每一个包括:
中央处理单元CPU;
存储设备,耦接到所述CPU,并且配置为向所述CPU提供操作系统代码;
多个存储器,被配置给所述CPU,并且配置为向所述CPU提供指令;和
计算节点联网接口,耦接到交换机,并且配置为与包括在所述分解系统中的所述至少一个或多个存储节点进行通信;
所述一个或多个存储节点,其中,所述一个或多个存储节点中的每一个均不包括对应的CPU,其中,所述一个或多个存储节点中的每一个均包括:
多个存储设备,配置为存储数据;
控制器,耦接到所述多个存储设备,并且配置为控制所述多个存储设备;
存储器,耦接到所述控制器,配置为存储从所述控制器接收的数据;和
存储节点联网接口,耦接到所述交换机,并且配置为与至少所述一个或多个计算节点进行通信;和
所述交换机,耦接到所述一个或多个计算节点和所述一个或多个存储节点,并且配置为促进所述一个或多个计算节点与所述一个或多个存储节点之间的通信。
2.根据权利要求1所述的系统,其中,所述一个或多个计算节点或所述一个或多个存储节点中的每一个配置为被热插拔到所述系统中。
3.根据权利要求1所述的系统,其中,所述一个或多个计算节点中的至少一个包括主计算节点,其中,所述主计算节点配置为:
从请求者接收请求;
将所述请求的至少一部分分配到所述一个或多个计算节点中的另一计算节点;
从所述另一计算节点接收对所述请求的响应的至少一部分;以及
将所述响应的至少一部分发送给所述请求者。
4.根据权利要求1所述的系统,其中,所述一个或多个计算节点中的至少一个包括主计算节点,其中,所述主计算节点配置有分布式文件系统,其中,所述分布式文件系统被配置为跟踪所述一个或多个计算节点中的哪个计算节点存储文件的哪个一个部分或哪些部分,其中,所述主计算节点配置为:
从请求者接收请求;
将所述请求的至少一部分分配到所述一个或多个计算节点中的另一计算节点;
从所述另一计算节点接收对所述请求的响应的至少一部分;以及
将所述响应的至少一部分发送给所述请求者。
5.根据权利要求1所述的系统,其中,所述一个或多个计算节点中的每一个与两个机架单元的高度相关联。
6.根据权利要求1所述的系统,其中,所述一个或多个计算节点和所述一个或多个存储节点共享一组外部设备。
7.根据权利要求1所述的系统,其中,所述一个或多个计算节点和所述一个或多个存储节点共享一组外部设备,其中,所述一组外部设备包括以下中的一个或多个:风扇、备用电池单元、带外通信系统、冷却系统,配电单元、二次电源和发电机。
8.根据权利要求1所述的系统,其中,所述一个或多个计算节点和所述一个或多个存储节点配置为面向数据中心中的冷通道。
9.根据权利要求1所述的系统,其中,在满足用于添加新节点的条件的情况下,新的计算节点或新的存储节点配置为动态地添加到所述分解系统。
10.根据权利要求1所述的系统,其中,在满足用于移除已有节点的条件的情况下,已有计算节点或已有存储节点配置为从所述分解系统中动态地移除。
11.根据权利要求1所述的系统,其中,所述控制器包括一个或多个微处理器。
12.根据权利要求1所述的系统,其中,所述多个存储设备包括多个NAND存储设备。
13.一种用于处理请求的方法,包括:
在第一计算节点处接收来自请求者的请求,其中,所述第一计算节点为分解系统的一个或多个计算节点中的计算节点;
将所述请求的至少一部分分配到所述一个或多个计算节点的第二计算节点;
从所述第二计算节点接收对所述请求的响应的至少一部分;和
将所述响应的至少一部分发送到所述请求者,
其中,所述第一计算节点包括:
中央处理单元CPU;
存储设备,耦接到所述CPU,并且配置为向所述CPU提供操作系统代码;
多个存储器,配置于所述CPU,并且配置为向所述CPU提供指令;和
计算节点联网接口,耦接到交换机,并且配置为与包括在所述分解系统中的至少一个或多个存储节点通信。
14.根据权利要求13所述的方法,还包括:
识别存储与所述请求相关的数据的第一存储节点,其中,所述第一存储节点为所述一个或多个存储节点中的存储节点;和
请求来自所述第一存储节点的与所述请求相关的数据。
15.根据权利要求13所述的方法,还包括:至少部分地基于从所述第二计算节点接收的反馈,选择所述第二计算节点以分配所述请求的至少一部分。
16.根据权利要求13所述的方法,其中,所述第一计算节点不包括配置为存储数据的存储驱动器。
17.根据权利要求13所述的方法,其中,包括在所述分解系统中的所述一个或多个存储节点的第一存储节点包括:
多个存储设备,配置为存储数据;
控制器,耦接到所述多个存储设备,并且配置为控制所述多个存储设备;
存储器,耦接到所述控制器,配置为存储从所述控制器接收的数据;和
存储节点联网接口,耦接到所述交换机,并且配置为至少与所述一个或多个计算节点进行通信。
18.根据权利要求13所述的方法,其中,所述一个或多个存储节点中的第一存储节点不包括CPU。
CN201710624816.5A 2016-07-27 2017-07-27 分解系统和用于处理请求的方法 Pending CN107665180A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/221,229 2016-07-27
US15/221,229 US20180034908A1 (en) 2016-07-27 2016-07-27 Disaggregated storage and computation system

Publications (1)

Publication Number Publication Date
CN107665180A true CN107665180A (zh) 2018-02-06

Family

ID=61010737

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710624816.5A Pending CN107665180A (zh) 2016-07-27 2017-07-27 分解系统和用于处理请求的方法

Country Status (3)

Country Link
US (1) US20180034908A1 (zh)
CN (1) CN107665180A (zh)
TW (1) TWI738798B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111159443A (zh) * 2019-12-31 2020-05-15 深圳云天励飞技术有限公司 一种图像特征值的搜索方法、装置及电子设备
CN114553899A (zh) * 2022-01-30 2022-05-27 阿里巴巴(中国)有限公司 一种存储设备

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11755534B2 (en) 2017-02-14 2023-09-12 Qnap Systems, Inc. Data caching method and node based on hyper-converged infrastructure
TWI710954B (zh) * 2019-07-26 2020-11-21 威聯通科技股份有限公司 超融合基礎架構的資料快取方法與節點、機器學習框架及檔案系統代理程式
US10317967B2 (en) * 2017-03-03 2019-06-11 Klas Technologies Limited Power bracket system
US20190068466A1 (en) * 2017-08-30 2019-02-28 Intel Corporation Technologies for auto-discovery of fault domains
WO2020219807A1 (en) * 2019-04-25 2020-10-29 Liqid Inc. Composed computing systems with converged and disaggregated component pool
CN110688674B (zh) * 2019-09-23 2024-04-26 中国银联股份有限公司 一种访问对接器、系统及应用该访问对接器的方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120197596A1 (en) * 2011-01-31 2012-08-02 Raytheon Company System And Method For Distributed Processing
CN105516263A (zh) * 2015-11-28 2016-04-20 华为技术有限公司 存储系统中数据分发方法、装置、计算节点及存储系统
CN105723338A (zh) * 2013-11-12 2016-06-29 微软技术许可有限责任公司 构建虚拟主板和虚拟存储设备
CN106250053A (zh) * 2015-06-08 2016-12-21 阿里巴巴集团控股有限公司 一种数据存储设备以及动态存储分配的方法
US9641616B2 (en) * 2014-07-10 2017-05-02 Kabushiki Kaisha Toshiba Self-steering point-to-point storage protocol

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4814617B2 (ja) * 2005-11-01 2011-11-16 株式会社日立製作所 ストレージシステム
WO2009005487A1 (en) * 2007-06-27 2009-01-08 Rosario Giacobbe Memory content generation, management, and monetization platform
JP6233672B2 (ja) * 2014-02-27 2017-11-22 インテル・コーポレーション 計算リソースの検出および管理用の技術
US8850108B1 (en) * 2014-06-04 2014-09-30 Pure Storage, Inc. Storage cluster
CN105163286B (zh) * 2015-08-21 2019-02-26 北京岩与科技有限公司 一种基于低速率无线网络的蔓延式广播方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120197596A1 (en) * 2011-01-31 2012-08-02 Raytheon Company System And Method For Distributed Processing
CN105723338A (zh) * 2013-11-12 2016-06-29 微软技术许可有限责任公司 构建虚拟主板和虚拟存储设备
US9641616B2 (en) * 2014-07-10 2017-05-02 Kabushiki Kaisha Toshiba Self-steering point-to-point storage protocol
CN106250053A (zh) * 2015-06-08 2016-12-21 阿里巴巴集团控股有限公司 一种数据存储设备以及动态存储分配的方法
CN105516263A (zh) * 2015-11-28 2016-04-20 华为技术有限公司 存储系统中数据分发方法、装置、计算节点及存储系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111159443A (zh) * 2019-12-31 2020-05-15 深圳云天励飞技术有限公司 一种图像特征值的搜索方法、装置及电子设备
CN114553899A (zh) * 2022-01-30 2022-05-27 阿里巴巴(中国)有限公司 一种存储设备

Also Published As

Publication number Publication date
US20180034908A1 (en) 2018-02-01
TW201804336A (zh) 2018-02-01
TWI738798B (zh) 2021-09-11

Similar Documents

Publication Publication Date Title
CN107665180A (zh) 分解系统和用于处理请求的方法
US9477279B1 (en) Data storage system with active power management and method for monitoring and dynamical control of power sharing between devices in data storage system
Boru et al. Energy-efficient data replication in cloud computing datacenters
Cao et al. An energy-aware heuristic framework for virtual machine consolidation in cloud computing
US11789878B2 (en) Adaptive fabric allocation for local and remote emerging memories based prediction schemes
US9128682B2 (en) Independent removable computer rack power distribution system for high-density clustered computer system
US9582377B1 (en) Dynamic sizing of storage capacity for a remirror buffer
US20180027063A1 (en) Techniques to determine and process metric data for physical resources
DE102015118705A1 (de) Technologien für leistungsbasierte Außer-der-Reihe-Task-Planung für Datenzentren
US10908940B1 (en) Dynamically managed virtual server system
US20200042608A1 (en) Distributed file system load balancing based on available node capacity
US11789609B2 (en) Allocating memory and redirecting memory writes in a cloud computing system based on temperature of memory modules
US20170199694A1 (en) Systems and methods for dynamic storage allocation among storage servers
CN105718785A (zh) 用于免认证组态的计算机实施方式与系统
Boru et al. Models for efficient data replication in cloud computing datacenters
CN116195375A (zh) 分解的计算机系统
Choi Virtual machine placement algorithm for energy saving and reliability of servers in cloud data centers
US10897429B2 (en) Managing multiple cartridges that are electrically coupled together
US11182189B2 (en) Resource optimization for virtualization environments
US11809893B2 (en) Systems and methods for collapsing resources used in cloud deployments
US11860783B2 (en) Direct swap caching with noisy neighbor mitigation and dynamic address range assignment
US11126452B2 (en) Performance modeling for virtualization environments
US20230380099A1 (en) Systems with at least one multi-finger planar circuit board for interconnecting multiple chassis
CN109002347B (zh) 一种虚拟机内存分配方法、装置及系统
WO2023172319A1 (en) Direct swap caching with noisy neighbor mitigation and dynamic address range assignment

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20180206

RJ01 Rejection of invention patent application after publication