CN111247508A - 网络存储架构 - Google Patents

网络存储架构 Download PDF

Info

Publication number
CN111247508A
CN111247508A CN201880057746.2A CN201880057746A CN111247508A CN 111247508 A CN111247508 A CN 111247508A CN 201880057746 A CN201880057746 A CN 201880057746A CN 111247508 A CN111247508 A CN 111247508A
Authority
CN
China
Prior art keywords
server
network
storage device
servers
data
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.)
Granted
Application number
CN201880057746.2A
Other languages
English (en)
Other versions
CN111247508B (zh
Inventor
穆尼夫·M·法尔汉
艾哈迈德·穆罕默德·谢哈布
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.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
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 Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of CN111247508A publication Critical patent/CN111247508A/zh
Application granted granted Critical
Publication of CN111247508B publication Critical patent/CN111247508B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • 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/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context

Abstract

提供了用于动态可扩展存储架构的技术。工作负载管理器可被配置为监视以启用网络的存储设备为目标的计算工作负载。工作负载管理器可识别执行计算工作负载的全部或部分的服务器。工作负载管理服务器可将所识别服务器配置为与启用网络的存储设备建立逻辑连接,其中所识别服务器可经由计算机网络向启用网络的存储设备传输数据访问命令。所识别服务器可随后用于执行以启用网络的存储设备为目标的计算工作负载的全部或部分。在至少一些实施方案中,工作负载管理器可监视可用服务器池,从中可识别服务器并将其与启用网络的存储设备相关联。在不同或另一个实施方案中,工作负载管理服务器可实例化新的虚拟服务器并将该虚拟服务器与启用网络的存储设备相关联。

Description

网络存储架构
背景技术
在许多存储架构中,服务器计算机直接连接至存储设备。例如,存储设备可以直接连接至服务器计算机的通信总线。在至少一些架构中,物理地连接至存储设备的服务器计算机用作该存储设备的头节点,其中该服务器计算机充当该存储设备的接入点。在一些情况下,此类服务器可以例如通过计算机网络接收从存储设备存储和/或检索数据的请求。然后,服务器可以经由服务器的通信总线与存储设备进行通信,该存储设备连接至该服务器(例如,使用数据块级访问命令)。在至少一些此类架构中,以存储设备为目标的所有数据访问操作(诸如数据存储和检索操作)通过直接连接至该存储设备的服务器计算机进行引导。
附图说明
图1是描绘被配置为向网络附属服务器计算机动态分配存储工作负载的示例性系统的系统图。
图2是描绘包括服务器计算机和存储设备的示例性服务器机架的系统图。
图3是描绘包括启用网络的存储设备的示例性服务器机架的系统图。
图4A-B是描绘被配置为将头节点服务器动态分配给存储设备的示例性系统的系统图。
图5是描绘包括启用网络的存储设备的示例性系统的系统图。
图6是用于使用网络附属服务器和启用网络的存储设备来执行处理作业的示例性方法的流程图。
图7是用于管理工作负载CPU/存储装置比率的示例性方法的流程图。
图8是用于管理可用虚拟服务器池的示例性方法的流程图。
图9是描绘示例性基于网络的计算服务提供者的系统图。
图10描绘了其中可以实施所述创新的合适的计算环境的一般化示例。
具体实施方式
在至少一些存储架构中,服务器计算机物理连接至一个或多个存储设备。在至少一些此类架构中,以存储设备中的一个或多个为目标的数据访问操作被路由通过服务器计算机,一个或多个存储设备直接连接到服务器计算机。在一些情况下,这可能会导致处理瓶颈。例如,高级别的数据处理活动可能会超出服务器计算机的可用处理资源和/或数据访问资源。然而,由于一个或多个存储设备直接连接至服务器计算机,因此在不物理地更改服务器计算机的硬件资源的情况下,可能无法使其承载附加的处理能力和/或数据访问能力。另外,如果由服务器计算机执行的数据处理操作超出一个或多个存储设备的可用存储容量,则可能无法在不将附加的存储设备直接连接至服务器计算机的情况下增加服务器的可用存储容量。
本文所述技术的至少一些实施方案通过使服务器计算机能够响应于变化的数据访问和/或计算工作负载需求与启用网络的存储设备动态地关联来解决这些问题。这可以提供过更为灵活和可扩展的存储系统。
例如,服务器计算机可以被配置为经由计算机网络向一个或多个存储设备传输数据块级访问命令。一个或多个存储设备可以连接至计算机网络,并且被配置为经由计算机网络接收数据块级访问命令。在至少一些实施方案中,工作负载管理器可以被配置为分析以一个或多个启用网络的存储设备为目标的计算工作负载,并将一个或多个服务器计算机与一个或多个启用网络的存储设备动态地关联。一个或多个服务器计算机可以被配置为执行以一个或多个启用网络的存储设备为目标的全部或部分计算工作负载,并经由计算机网络向该一个或多个启用网络的存储设备传输数据块级访问命令。
在至少一些实施方案中,工作负载管理器可以被配置为管理可用服务器池。响应于接收到执行以存储设备为目标的数据处理作业的请求,工作负载管理器可以在可用服务器池中搜索具有可用处理和/或数据访问能力的一个或多个服务器,以执行全部或部分数据处理作业。工作负载管理器可以将所识别的一个或多个服务器与目标存储设备相关联,并且该一个或多个服务器可以执行全部或部分数据处理作业,其中执行全部或部分数据处理作业包括经由计算机网络向目标存储设备传输一个或多个数据块级访问命令。在至少一些此类实施方案中,可用服务器池中的一个或多个服务器是在一个或多个网络附属服务器计算机上运行的虚拟服务器(诸如虚拟机、虚拟化容器等)。
在不同或另一个实施方案中,工作负载管理器被配置为检测可用服务器池中的服务器数量已降至低于指定阈值,并将一个或多个服务器添加到该可用服务器池。将一个或多个服务器添加到可用服务器池可以包括:识别计算机网络中的一个或多个未充分利用的服务器;以及将该一个或多个未充分利用的服务器添加到可用服务器池。除此之外或另选地,将一个或多个服务器添加到可用服务器池可以包括实例化一个或多个虚拟服务器并将新实例化的虚拟服务器添加到可用服务器池。
图1是描绘示例性系统100的系统图,该系统被配置为向一个或多个网络附属服务器计算机110A-C动态分配存储工作负载。
示例性系统100包括连接至计算机网络130的一个或多个服务器计算机110A-C。示例性系统100还包括连接至计算机网络130的一个或多个存储设备120A-D。提供服务器计算机110和存储设备120的数量是为了例示说明的目的而并非旨在进行限制。服务器计算机110和/或存储设备120的数量也可能更多和/或更少。
连接至网络130的存储设备(例如120A-D)可以被配置为通过计算机网络130从服务器计算机110A-C中的一个或多个接收数据块访问请求。例如,存储设备(例如120A-D)可以包括存储介质(未示出)和网络接口(未示出)。此类存储设备可以被配置为经由网络接口通过计算机网络130接收数据块访问请求。数据块访问请求可以由存储设备通过访问存储在存储介质上的一个或多个数据块进行处理。
服务器计算机(例如110A)可以被配置为经由计算机网络130向存储设备120A-D中的一个或多个传输一个或多个数据访问块请求。例如,服务器(例如110A)可以包括一个或多个处理器(未示出)和网络接口(未示出)。此类服务器计算机可以被配置为经由网络接口通过计算机网络130向存储设备120A-D中的一个传输数据块访问请求。示例性数据块访问请求包括执行以存储设备(例如120A)的一个或多个存储介质的一个或多个数据块为目标的数据访问操作(诸如数据写入操作和/或数据读取操作等)的请求。数据块访问请求由在计算机网络传输层上实现对块级存储操纵命令的传输的一种或多种协议定义。在特定实施方案中,存储设备120A-D中的一个或多个是固态存储设备,其被配置为支持基于结构协议的非易失性存储器(例如,基于结构1.0的NVMe)。
示例性系统100还包括工作负载管理器140。工作负载管理器140可以被配置为确定以存储设备120A-D中的一个或多个为目标的计算工作负载的计算能力与数据存储比率。示例性计算工作负载包括以存储在存储设备120A-D中的一个或多个的一个或多个存储介质上的数据为目标的数据处理作业(诸如数据存储和/或检索操作、数据流操作、数据分析操作、数据迁移操作、存储设备维护操作等)。确定计算能力与数据存储比率可以包括:确定在对计算工作负载的处理期间将被访问的近似数据量,确定执行计算工作负载将需要的近似处理器利用率,以及计算近似处理器利用率与要访问的近似数据量之间的比率。
工作负载管理器140可以被配置为将服务器计算机110A-C中的一个或多个分配给计算工作负载。将服务器分配给计算工作负载可以包括将该服务器配置为执行以存储设备120A-D中的一个或多个为目标的工作负载的至少部分。执行计算工作负载的至少部分可以包括经由计算机网络130向存储设备120A-D中的一个或多个传输一个或多个数据块访问请求。
在至少一些实施方案中,将服务器分配给计算工作负载包括将该服务器配置为充当被工作负载作为目标的存储设备120A-D中的一个或多个的头节点。一个或多个应用服务器可以被配置为经由计算机网络130与服务器计算机进行交互,就好像其是直接连接至存储设备120A-D中的一个或多个的数据存储提供者一样。服务器计算机可以被配置为从应用服务器中的一个或多个接收一个或多个数据访问请求,并至少部分地通过经由网络130向一个或多个存储设备120A-D传输一个或多个数据块级访问请求来处理接收到的一个或多个数据访问请求。
工作负载管理器140可以包括一个或多个计算机软件和/或硬件组件。例如,工作负载管理器140可以包括一个或多个处理器、存储器和/或软件模块。在不同或另一个实施方案中,工作负载管理器140可以包括片上系统(SOC)、专用集成电路(ASIC)和/或现场可编程门阵列(FPGA)。在至少一些实施方案中,工作负载管理器140可以包括连接至计算机网络130的网络接口。
工作负载管理器140可以被配置为经由网络130监视包括服务器计算机110A-C中的一个或多个的服务器池。在至少一些实施方案中,工作负载管理器140被配置为监视服务器计算机110A-C的处理器利用率,其中服务器的处理器利用率指示正在被处理操作活跃利用的服务器的可用处理能力的当前、平均和/或近似量。工作负载管理器140可以被配置为检测服务器110A-C中的一个的处理器利用率低于指定阈值,并且将该服务器添加到可用服务器池。在此类实施方案中,将服务器110A-C中的一个或多个分配给计算工作负载可以包括识别可用服务器池中的服务器和/或使用服务器的处理器利用率确定服务器具有用于执行计算工作负载的可用处理能力。
在至少一个实施方案中,工作负载管理器140可以被配置为将可用服务器池中的多于一个服务器计算机110A-C分配给计算工作负载。例如,对于给定的计算工作负载,可用服务器池中没有任何单个服务器可能具有足以执行所有计算工作负载的可用处理能力。在此类情形下,工作负载管理器140可以分配服务器池中多于一个服务器,这些服务器组合起来具有足以执行计算工作负载的可用处理能力。
在至少一个实施方案中,服务器110A-C中的一个或多个包括一个或多个虚拟服务器(诸如虚拟机、虚拟化容器等)。在此类实施方案中,将服务器分配给计算工作负载可以包括将虚拟服务器中的一个或多个分配给计算工作负载。在至少一些情况下,工作负载管理器140可以被配置为实例化在服务器计算机110A-C中的一个或多个上运行的虚拟服务器中的一个或多个。
例如,工作负载管理器140可以被配置为监视工作负载管理器140确定为未充分利用的虚拟机池。确定给定虚拟机未充分利用可以包括监视该虚拟机的可用处理能力,以及确定可用处理能力高于指定阈值和/或确定虚拟机的平均可用处理能力已经高于指定阈值持续指定时间段。如果工作负载管理器140确定给定的虚拟机未被充分利用,则工作负载管理器140可以将该虚拟机添加到未充分利用的虚拟机池。在此类实施方案中,将服务器分配给计算工作负载可以包括:在未充分利用的虚拟机池中识别具有足以执行全部或部分计算工作负载的可用处理能力的虚拟机,以及将所识别的虚拟机分配给计算工作负载。
在至少一些情况下,工作负载管理器140可以被配置为监视未充分利用的虚拟机池,并确定未充分利用的虚拟机池中的虚拟机数量低于指定阈值。响应于这种确定,工作负载管理器140可以被配置为实例化服务器计算机110A-C中的一个或多个上的一个或多个附加虚拟机,并且将实例化的一个或多个虚拟机添加到未充分利用的虚拟机池。在服务器计算机110A-C上的计算资源不足以支持附加虚拟机实例的情况下,可以提供附加服务器计算机并将其附加到网络130。工作负载管理器140可以被配置为检测新提供的服务器计算机,并在新提供的服务器计算机上实例化一个或多个附加虚拟机。
在至少一个实施方案中,工作负载管理器140可以被配置为确定计算工作负载的延迟敏感性要求。延迟敏感性要求可以指示网络延迟可以影响计算工作负载的有效性能的程度。例如,在一些情况下,实时数据访问操作可能被认为比离线操作(诸如数据分析操作等)对延迟更敏感。预期的数据访问速率也会影响计算工作负载的延迟敏感性要求。例如,包括固态存储介质的存储设备的平均预期访问时间可能低于包括硬盘驱动器或磁带驱动器的存储设备的平均预期访问时间。
工作负载管理器140可以被配置为确定服务器计算机110A-C与被计算工作负载作为目标的一个或多个存储设备120A-D之间的平均网络延迟。确定平均网络延迟可以包括:请求服务器计算机向存储设备传输一个或多个消息,以及测量在接收到响应之前经过的平均时间。除此之外或另选地,可以通过计算机网络130的一个或多个联网协议来提供网络延迟确定。
将服务器110A-C中的一个分配给计算工作负载可以包括:确定服务器相对于被计算工作负载作为目标的一个或多个存储设备的网络延迟满足计算工作负载的延迟敏感性需求。在特定实施方案中,确定服务器相对于被计算工作负载作为目标的存储设备的网络延迟满足计算工作负载的延迟敏感性需求包括确定服务器和存储设备连接至同一网络交换机(例如,同一架顶式交换机)。
在本文所述示例中的任一个中,存储设备可以是能够在一个或多个物理存储介质中存储数据的设备。例如,存储设备可以是能够以一种或多种磁记录格式存储数据的磁存储设备,诸如硬盘驱动器。存储设备的其他示例包括固态存储设备(诸如NAND型闪存设备、NOR型闪存设备等)和随机存取数据存储设备(诸如DRAM设备)。存储设备的其他示例包括非易失性双列直插式内存模块(NVDIMM)。
在一些实施方案中,存储设备包括多个不同的存储介质。例如,存储设备可以是包括一个或多个磁盘和内部存储器的硬盘驱动器。在另一示例中,存储设备包括固态存储装置和磁存储装置。在另一示例中,存储设备包括组织为独立磁盘冗余阵列(RAID)的多个磁盘。不同存储介质的其他组合也是可能的。
在本文所述示例中的任一个中,启用网络的存储设备可以包括连接至计算机网络并且被配置为经由计算机网络连接从一个或多个计算设备接收数据块级访问命令的存储设备。
在本文所述示例中的任一个中,存储设备可以包括存储设备控制器。存储设备控制器可以包括存储设备的一个或多个硬件组件。存储设备控制器可以包括存储在存储设备的只读存储器(ROM)、存储设备的存储介质或其一些组合中的固件。除此之外或另选地,存储设备控制器可以在应用程序和存储设备之间的中间层处实现。此类中间层控制器可以包括软件(诸如驱动器)和一个或多个处理器、片上系统(SoC)、现场可编程门阵列(FPGA)和/或专用集成电路(ASIC)。在至少一些实施方案中,此类中间层控制器可以被实现为如本文所述的存储设备外壳和/或如本文所述的服务器计算机的部分。
在本文所述示例中的任一个中,数据块(或数据的块)可以是具有固定大小(有时称为“块大小”)的数据单元序列,诸如字节、位等。在支持数据块的存储设备中,按照一次一块从存储设备中读取数据和/或将数据写入存储设备。数据块可以具有标识其存储在存储设备中的位置的物理地址和逻辑地址,诸如逻辑块地址(LBA),逻辑块地址被外部组件用来识别和访问数据块。通过使用逻辑地址,可以在无需通知或更新任何外部组件的情况下更改存储设备中数据块的物理存储位置。支持数据块的存储设备可以被配置为处理块级访问命令。此类块级访问命令可以包括用于在存储设备的一个或多个存储介质上存储和/或检索一个或多个已标识数据块的命令。
在本文所述示例中的任一个中,服务器计算机可以是包括处理器并连接至计算机网络的计算设备。服务器计算机可以被配置为与启用网络的存储设备建立逻辑连接(诸如网络连接)。服务器计算机可以被配置为经由计算机网络向存储设备传输数据块级访问命令(例如,用来执行数据块读和/或写操作的命令等)等。服务器计算机可以被配置为经由计算机网络从存储设备接收命令响应。在至少一些情况下,服务器计算机可以逻辑上连接至多于一个的启用网络的存储设备。除此之外或另选地,多于一个的服务器计算机可以逻辑地连接至同一启用网络的存储设备。
在一些实施方案中,服务器计算机可以被配置为充当一个或多个启用网络的存储设备的头节点。在至少一些实施方案中,服务器计算机可以是被配置为为多个启用网络的存储设备提供统一的接入点的计算设备。
图2是描绘包括服务器计算机222-224和存储设备232-238的服务器机架200的系统图。服务器机架200包括连接至服务器计算机222-224的架顶式交换机210。服务器计算机222-224连接至存储设备232-238中的一个或多个。例如,服务器222被描绘为连接至存储设备232和234,并且服务器224被描绘为连接至存储设备236和238。服务器计算机和存储设备之间的连接包括物理连接,诸如通信总线连接(串行总线连接、并行总线连接等)。示例性并行总线连接包括PCI总线连接等。示例性串行总线连接包括SATA总线连接、PCIe总线连接、USB连接等。
服务器计算机222-224被配置为经由架顶式交换机210接收数据访问请求。服务器计算机222-224被配置为经由物理总线连接向它们各自连接的存储设备传输块级访问命令。在此类配置中,连接至给定存储设备的服务器计算机的数量是固定的,并且在不改变存储设备与服务器计算机222-224中的一个或多个之间的物理连接的情况下无法改变。同样,连接至给定服务器计算机的存储设备的数量是固定的,并且在不改变服务器计算机与一个或多个存储设备之间的物理连接的情况下无法改变。
图3是描绘示例性服务器机架300的系统图,其包括连接至架顶式交换机310的一个或多个启用网络的存储设备332-338。存储设备332-338可以包括网络接口,存储设备332-338通过网络接口连接至架顶式交换机310。存储设备332-338可以被配置为经由架顶式交换机310接收网络通信。网络通信可以包括经由网络传输层协议传输的一个或多个数据块级访问命令。例如,存储设备332-338中的一个或多个可以被配置为经由架顶式交换机310从一个或多个服务器接收数据块级访问命令。
架顶式交换机310可以包括一个或多个上行链路端口(未示出),通过这些端口,架顶式交换机310可以连接至广域网。广域网可以包括一个或多个服务器计算机和工作负载管理器。工作负载管理器可以被配置为将服务器计算机中的一个或多个与服务器机架300中的存储设备332-338中的一个或多个相关联。相关联的服务器计算机可以被配置为经由架顶式交换机310向服务器机架300中的一个或多个存储设备332-338传输数据块级访问请求。
任选地,服务器机架300可以包括一个或多个服务器计算机322-324。一个或多个服务器计算机322-324可以连接至架顶式交换机310。在至少一些实施方案中,服务器计算机322-324中的一个或多个可以通过架顶式交换机310所连接的广域网中的工作负载管理器与存储设备332-338中的一个或多个相关联。在此类实施方案中,服务器计算机322-324中的一个或多个可以经由架顶式交换机310向一个或多个相关联的存储设备传输一个或多个数据块级访问命令。
在至少一些实施方案中,存储设备332-338中的一个或多个可以存储在存储设备外壳(未示出)内。例如,存储设备332-338中的一个可以被包含在存储设备外壳内并且被连接至该存储设备外壳的存储设备访问控制器。在此类实施方案中,存储设备外壳的网络接口可以连接至架顶式交换机310的端口(诸如架顶式交换机310的下行链路端口)。存储设备访问控制器可以被配置为经由存储设备外壳的网络接口接收数据块访问命令,并通过访问包含在存储设备外壳内的存储设备的一个或多个存储介质上存储的一个或多个数据块来处理接收到的数据块访问命令。
图4A是描绘示例性系统400的系统图,其包括工作负载管理服务器430,该工作负载管理服务器被配置为将一个或多个头节点服务器410A-B动态地分配给启用网络的存储设备420。头节点服务器410A-B、工作负载管理服务器430以及存储设备420连接至计算机网络(未示出)。在至少一些实施方案中,存储设备420可以包括连接至计算机网络的存储设备外壳,其中该存储设备外壳包括网络接口和被配置为存储数据的一个或多个存储介质。
在本文所述示例中的任一个中,头节点服务器(或头节点)可以是服务器计算机或被配置为为一个或多个存储设备提供数据访问和/或数据操纵服务的其他计算设备。例如,头节点服务器可以公开一个或多个服务,该一个或多个服务可以由其他应用程序用来访问和/或操纵存储在一个或多个存储设备中的数据。在至少一些实施方案中,头节点服务器410A-B中的一个或多个可以包括托管该一个或多个服务的一个或多个虚拟机。在此类实施方案中,工作负载管理器430可以被配置为实例化虚拟机中的一个或多个。
工作负载管理服务器430可以被配置为接收执行以存储设备420为目标的数据处理作业的请求442。请求442可以包括对数据处理作业的描述。对数据处理作业的描述可以包括数据处理作业的类型(例如,实时数据访问、数据分析、存储设备维护、数据流、批处理等)。在至少一些实施方案中,对数据处理作业的描述可以描述将作为数据处理作业的部分被执行的一个或多个特定命令和/或操作。在至少一些实施方案中,处理请求442可以包括由处理作业作为目标的存储设备420的标识符。在不同或另一个实施方案中,处理请求442可以包括被数据处理作业作为目标的数据的一个或多个标识符(诸如数据对象标识符、数据项标识符等)。在此类实施方案中,工作负载管理服务器430可以被配置为确定所标识的数据被存储在存储设备420上。(尽管在图4A中描绘了单个存储设备420,但是在至少一些实施方案中,有可能将被处理作业作为目标的数据存储在多个存储设备上。)
对数据处理作业的描述可以包括数据处理作业的处理需求。例如,对数据处理作业的描述可以包括执行数据处理作业所需处理能力的估计量和/或平均量。除此之外或另选地,工作负载管理服务器430可以被配置为确定数据处理作业的处理需求。例如,工作负载管理服务器430可以被配置为确定执行所请求的数据处理作业所需的处理能力的估计量(诸如,处理器周期的估计数量、计算机操作和/或数据访问操作的估计数量等)。在特定实施方案中,不同的数据处理作业操作与可以由工作负载管理服务器430访问的数据结构(诸如表等)中的预定估计处理需求相关联。
工作负载管理服务器430可以被配置为识别头节点服务器410A-B中具有用于执行全部或部分数据处理作业的可用处理资源的头结点。例如,工作负载管理服务器430可以被配置为监视头节点服务器410A-B的处理器利用率,并且识别头结点服务器中具有满足数据处理作业的全部或部分处理需求的可用处理能力的一个。
工作负载管理服务器430可以被配置为向所识别的头结点服务器传输分配命令。例如,在图4A中,工作负载管理服务器430被描绘为向头节点服务器410A传输分配命令444。分配命令可以包括存储设备420的标识符(诸如,存储设备420的网络地址、头节点服务器可以使用其来查找存储设备420的网络地址的标识符等)。
头节点服务器(例如410A)可以被配置为通过与存储设备420建立逻辑连接来处理分配命令(例如444)。例如,头节点服务器(例如,410A)可以被配置为经由计算机网络向存储设备420传输块级访问命令。在特定实施方案中,头节点服务器的操作系统向在头节点服务器上运行的应用程序(和/或在连接至计算机网络的一个或多个其他服务器上运行的应用程序)公开存储设备420。在至少一些实施方案中,头节点服务器的操作系统(和/或在头节点服务器上运行的一个或多个驱动程序或其他应用程序)被配置为将存储设备420描绘为物理上连接至头节点服务器。在接收到访问存储设备420的请求时,头节点服务器的操作系统(和/或在头节点服务器上运行的一个或多个驱动程序或其他应用程序)可以被配置为经由计算机网络向存储设备420传输一个或多个块级数据访问命令。在其中头节点服务器包括虚拟机的实施方案中,虚拟机可以被配置为经由头节点服务器的网络接口向存储设备420传输块级访问命令中的一个或多个。
在至少一些实施方案中,工作负载管理服务器430可以被配置为确定头节点服务器410A-B中任何单个头节点服务器都不具有用于执行数据处理作业的可用处理能力。在此类情形下,工作负载管理服务器430可以任选地将多于一个头节点服务器410A-B分配给被数据处理作业作为目标的存储设备420。例如,图4A将工作负载管理服务器430描绘为任选地向头结点服务器410B传输分配命令446以将该头节点服务器410B分配给存储设备420。
在至少一个实施方案中,工作负载管理服务器430被配置为确定数据处理作业的处理需求超出头节点服务器410A的可用处理能力,并将头节点服务器410B分配给存储设备420,其中将头节点服务器410B分配给存储设备420包括将头节点服务器410B配置为经由计算机网络向存储设备420传输块级访问命令。在至少一些此类实施方案中,两个头节点服务器410A和410B可以用于执行以存储设备420为目标的全部或部分数据处理作业。
在至少一些情况下,工作负载管理服务器430可以被配置为确定头节点服务器410A-B中的一个已经与被数据处理作业作为目标的存储设备420相关联。在此类情形下,工作负载管理服务器430可以分析分配给存储设备420的头节点服务器的可用处理能力,以确定所分配的头节点服务器是否具有用于执行数据处理作业的可用处理能力。如果所分配的头节点服务器具有可用处理能力,则工作负载管理服务器430可以确定随后不再需要将头节点服务器分配给目标存储设备420,并且可以使用所分配的头节点服务器来处理以存储设备420为目标的数据处理作业。如果所分配的头节点服务器不具有可用处理能力,则工作负载管理服务器430可以将具有可用处理能力的一个或多个附加头节点服务器分配给存储设备420。工作负载管理服务器430可以将该一个或多个附加头节点服务器配置为执行全部或部分数据处理作业。
工作负载管理服务器430可以被配置为向处理请求442的传输方传输响应448。响应448可以标识头节点服务器410A-B中被分配给被数据处理作业作为目标的存储设备420的一个或多个。被标识的一个或多个头节点服务器随后可以用于执行全部或部分数据处理作业。
在至少一些实施方案中,工作负载管理服务器430被配置为确定数据处理作业的存储需求超出存储设备420的存储介质的可用存储容量。例如,工作负载管理服务器430可以被配置为监视存储设备420的可用存储容量。工作负载管理服务器430可以分析数据处理作业的一个或多个数据存储需求。在至少一些情况下,此类数据存储需求可以作为处理请求442的部分来提供。除此之外或另选地,工作负载管理服务器430可以被配置为基于数据处理作业的操作类型来确定此类存储容量需求。工作负载管理服务器430可以分析存储设备420的可用容量以确定可用存储容量是否足以满足数据处理作业的存储需求。如果工作负载管理服务器430确定可用存储容量不足,则工作负载管理服务器430可以将头节点服务器410A-B中被分配给存储设备420的头节点服务器分配给具有可用存储容量的附加存储设备(未示出)。
例如,工作负载管理服务器430可以识别具有可用存储容量的另一启用网络的存储设备,所述可用存储容量足以满足数据处理作业的无法被存储设备420满足的存储需求的一部分。工作负载管理服务器430随后可以将头节点服务器(例如410A)配置为经由计算机网络向第二存储设备传输块级访问命令。在至少一个实施方案中,第二存储设备包括存储装置外壳,该存储装置外壳包括一个或多个存储介质。在此类实施方案中,将头节点服务器配置为向第二存储设备传输块级访问命令可以包括将头节点服务器配置为经由计算机网络向存储设备外壳中的一个或多个存储介质传输块级访问命令。
例如,工作负载管理服务器430可以确定存储设备410不具有足以执行所有数据处理作业的可用存储容量。工作负载管理服务器430可以确定头节点服务器410A被分配给存储设备420,以便执行以存储设备420为目标的数据处理作业。工作负载管理服务器430可以识别连接至计算机网络的具有可用存储容量的另一存储设备,其中该另一存储设备与存储设备420相结合具有足够的存储容量以执行数据处理作业。工作负载管理服务器430随后可以向头节点服务器410A传输分配命令,以将头节点服务器410A分配给该另一存储设备,使得头节点服务器410A被分配给存储设备420和另一存储设备两者。在此类实施方案中,执行数据处理作业可以包括使用头节点服务器410A来将数据存储在存储设备420的一个或多个存储介质中并且将附加数据存储在另一存储设备的一个或多个存储介质中。
图4B是描绘示例性系统400的系统图,其中头节点服务器410A-B中的一个或多个被配置为使用启用网络的存储设备420来处理数据处理作业。
在头节点服务器410A已经处理了分配命令444(在图4A中示出)并且逻辑上连接至存储设备420之后,头节点服务器410A可以被配置为通过经由计算机网络向存储设备420传输一个或多个数据块级访问命令452来处理全部或部分数据处理作业。在至少一些实施方案中,作为数据处理作业的部分的数据访问和/或操纵操作462经由计算机网络从一个或多个应用服务器(未示出)传输到头节点服务器410A。例如,应用服务器可以被配置为向工作负载管理服务器430传输处理请求442并接收响应444,该响应指示头节点服务器410A的身份(诸如网络地址)以用于访问存储在存储设备420上的数据。应用服务器随后可以经由计算机网络向头节点服务器410A传输处理作业操作462。在不同或另一个实施方案中,描述数据处理作业的处理作业描述可以从工作负载管理服务器430传输到头节点服务器410A。在接收到此类处理作业描述时,头节点服务器410A可以被配置为通过执行一个或多个数据处理操作和/或向存储设备420传输一个或多个数据访问命令452来执行数据处理作业。在至少一些此类实施方案中,头节点服务器410A可以被配置为将数据处理作业的结果传输到应用服务器、工作负载管理服务器430、连接至计算机网络的一个或多个其他服务器,或它们的一些组合。
在其中将多于一个头节点服务器分配给存储设备420的实施方案中,数据处理作业的不同部分可以分布在连接至存储设备420的多个头节点服务器上。例如,在其中将头节点服务器410A和头节点服务器410B两者均分配给存储设备420的实施方案中,头节点服务器410A可以接收部分处理作业462的部分,并且头节点服务器410B可以接收处理作业464的另一部分。头节点服务器410A和头节点服务器410B两者均可以经由计算机网络分别向存储设备420传输数据访问命令452和454,并且可以执行单独的处理操作以便执行它们各自的数据处理作业部分。
在此类分布式配置中,数据处理作业的部分结果可以由单独的头节点服务器传输到从其接收数据处理作业部分的应用程序服务器、工作负载管理服务器430、连接至计算机网络的一个或多个其他服务器,或者它们的一些组合。在不同或另一个实施方案中,数据处理操作的结果可以存储在存储设备420上。在特定示例中,处理作业的部分可以使用映射化简处理配置分布在连接至存储设备420的多个头节点服务器上。
在至少一些实施方案中,当在连接至存储设备420的多个头节点服务器上分布数据处理作业的部分时,数据一致性可能作为考虑因素。例如,可以将单个头节点服务器分配为向存储设备420写入数据,而可以将一个或多个头节点服务器分配为从存储设备420读取数据。除此之外或另选地,可以在多个头节点之间协调对存储设备420的写访问,以确保单个头节点服务器在任何给定时间具有排他的写访问。
工作负载管理服务器430可以被配置为监视连接至存储设备420的一个或多个头节点服务器的处理器利用率。工作负载管理服务器430可以确定连接至存储设备420的一个或多个头节点服务器中的一个的处理器利用率低于指定阈值,并且可以删除将该头结点服务器分配给存储设备。在至少一些实施方案中,工作负载管理服务器430可以被配置为将头节点服务器分配给可用服务器池。工作负载管理服务器430可以被配置为在可用服务器池中搜索具有用于执行一个或多个后续数据处理作业的可用处理能力的服务器。
因此,利用本文所述技术中的至少一些,可以基于示例性系统400中的当前操作需求,将头节点服务器动态地分配以及重新分配给存储设备。
图5是描绘包括启用网络的存储设备外壳510的示例性系统500的系统图。示例性存储设备外壳510可以用作本文所述示例中任一个中的存储设备。存储设备外壳510包括连接至计算机网络560的网络接口520。存储设备外壳510包括网络数据块访问控制器530,该网络数据块访问控制器被配置为从经由网络接口520从连接至计算机网络560的一个或多个服务器(未示出)接收一个或多个块级访问请求550。网络数据块访问控制器530可以被配置为处理一个或多个接收到的块级访问请求550。处理块级访问请求可以包括访问存储设备外壳510内包含的存储介质540中的一个或多个数据块(例如542)。网络数据块访问控制器530可以包括一个或多个集成电路(诸如一个或多个ASIC、SoC、FPGA等)。除此之外或另选地,控制器530可以包括一个或多个软件组件(诸如一个或多个固件模块等)。
在至少一些实施方案中,网络数据块访问控制器530可以被配置为经由网络接口520传输块级访问响应。例如,块级访问请求550可以包括一个或多个数据访问命令,它们是可以经由计算机网络560在传输层上进行传输的块级数据访问协议的部分。此类块级数据访问命令可以标识与存储介质540中的一个或多个数据块(例如542)相关联的逻辑块地址。在至少一些实施方案中,网络数据块访问控制器530可以被配置为访问与在块级数据访问命令中标识的逻辑块地址相关联的数据块。在处理一个或多个块级访问请求550之后,网络数据块访问控制器530可以传输一个或多个块级访问响应(未示出)。块级访问响应可以包括存储在一个或多个块级访问请求中标识的一个或多个数据块中的数据和/或一个或多个请求的数据操作已执行/未执行的通知。
任选地,存储设备外壳510可以包括可移除存储设备544,该可移除存储设备包括存储介质540。在此类实施方案中,存储设备外壳510可以包括构成网络接口520和网络数据块访问控制器530的一个或多个硬件和/或软件组件,以及可以连接至可移除存储设备544的物理连接器(诸如并行总线连接器、串行总线连接器等)。网络数据块访问控制器530可以被配置为经由物理连接器与可移除存储设备544进行交互。例如,网络数据块访问控制器530可以被配置为经由网络接口520接收块级访问请求550,并且经由物理连接器向存储设备544传输一个或多个块级访问命令。网络数据块访问控制器530可以经由物理连接器接收对块级访问命令的响应,并且经由网络接口520在网络560上传输对块级访问请求550的响应。对块级访问命令的此类响应可以包括存储在存储设备544中包含的存储介质540的数据块(例如542)中的数据。在至少一些实施方案中,可移除存储设备544可以包括存储设备控制器(未示出),该存储设备控制器被配置为经由物理连接器接收块级访问命令并且访问存储在存储介质540的数据块(例如542)中的数据。
图6是用于使用网络附属服务器和启用网络的存储设备来执行处理作业的示例性方法600的流程图。本文所述示例性系统中的任一个都可以用于执行该示例性方法600。例如,示例性方法600的全部或部分可以由工作负载管理服务器和/或包括工作负载管理器的一个或多个其他网络附属服务器计算机执行。
在602处,接收到利用启用网络的存储设备执行处理作业的请求。该请求可以包括启用网络的存储设备的标识符,诸如网络地址(例如,MAC地址、IP地址等)。除此之外或另选地,该请求可以包括用于启用网络的存储设备的唯一标识符(例如,序列号、存储设备外壳标识符等)。在至少一些实施方案中,唯一标识符可以用于为启用网络的存储设备定位网络地址。
在至少一些实施方案中,执行处理作业的请求可以包括对可用于访问启用网络的存储设备的一个或多个头节点服务器标识的请求。除此之外或另选地,该请求可以包括对要作为处理作业的部分执行的一个或多个操作的描述。示例性操作可以包括在线数据访问操作、离线分析操作、存储设备维护操作、数据流操作等。在至少一些实施方案中,请求可以包括将要在进行处理作业期间访问和/或存储在启用网络的存储设备中的数据的量(和/或数据的估计量)。
在604处,确定对处理作业的处理能力需求。处理能力需求可以包括执行处理作业的操作所需的一定量的处理能力和/或一定数量的专用处理单元和/或核心。处理能力需求可以利用对要作为处理作业的部分执行的一个或多个操作的描述来确定。在至少一些实施方案中,处理能力需求可以被建模为所需处理能力与所需数据存储访问的比率。例如,该请求可以包括对以下的描述:启用网络的存储设备中要被访问的数据量、要使用访问的数据执行的处理操作和/或完成处理作业的预期时间(诸如最大可接受的延迟、总预期运行时间等)。利用此类信息,可以确定数据访问的平均和/或最大速率以及平均和/或最大处理时间。在此类实施方案中,处理能力需求可以包括这些一个或多个数据访问速率和一个或多个处理时间,和/或使用这些一个或多个数据访问速率和一个或多个处理时间计算的一个或多个比率。除此之外或另选地,处理能力需求可以包括完成处理作业的预期时间。
在至少一些实施方案中,一个或多个网络附属服务器可以被视为用于启用网络的存储设备的专用处理资源。例如,在提供启用网络的存储设备时,可以利用本文所述的技术将与启用网络的存储设备位于同一局域网中的网络附属服务器分配为充当启用网络的存储设备的头节点服务器。为启用网络的存储设备选择此类“默认”头节点服务器可以基于各种标准,诸如“默认”头部节点服务器相对于启用网络的存储设备的网络延迟、“默认”头节点服务器的可用处理能力、“默认”头节点服务器的物理位置或它们的一些组合。在此类实施方案中,确定处理作业的处理能力需求可以包括确定用于启用网络的存储设备的“默认”头节点服务器不具有满足处理作业的处理能力需求的足够的处理能力、网络带宽和/或数据访问能力。
在606处,识别具有满足处理作业的处理需求的可用处理能力的网络附属服务器。可以分析连接至计算机网络的一个或多个服务器(即网络附属服务器)以确定它们的可用处理能力。在至少一些实施方案中,服务器工作负载监视器被配置为定期地和/或适时地扫描网络附属服务器,以确定其当前的处理器利用率、当前的网络带宽利用率和/或当前的数据访问能力。例如,可以使用远程管理协议访问网络附属服务器,并查询网络附属服务器以确定网络附属服务器的系统利用率量度。
除此之外或另选地,可以相对于被处理作业作为目标的启用网络的存储设备来确定网络附属服务器的网络延迟。在其中确定处理能力需求包括确定处理作业的最大可接受延迟的实施方案中,识别具有可用处理能力的网络附属服务器可以包括确定网络附属服务器相对于启用网络的存储设备的网络延迟小于或等于处理作业的最大可接受延迟。
在一实施方案中,其中“默认”头节点服务器与启用网络的存储设备相关联,并且在604处确定“默认”头节点服务器并不具有满足处理作业的处理能力需求的足够的计算资源,识别具有可用处理能力的网络附属服务器可以包括识别与“默认”头节点服务器相结合具有满足处理能力需求的足够可用计算资源的网络附属服务器。
在608处,该网络附属服务器被配置为经由计算机网络与启用网络的存储设备进行交互。将服务器配置为与启用网络的存储设备进行交互可以包括经由计算机网络向网络附属服务器传输一个或多个命令。网络附属服务器可以被配置为处理这些一个或多个命令,以便将网络附属服务器与启用网络的存储设备相关联。在如此配置的网络附属服务器时,网络附属服务器可以用作头节点服务器,以用于经由计算机网络访问启用网络的存储设备。例如,可以在网络附属服务器上执行服务应用程序,该服务应用程序被配置为接收一个或多个命令并更新网络附属服务器上的一个或多个内部数据结构和/或一个或多个处理应用程序,以使网络附属服务器用作启用网络的存储设备的头节点服务器。
在特定实施方案中,命令被传输到网络附属服务器,其包括用于启用网络的存储设备的网络标识符和/或用于启用网络的存储设备的标识符,利用该标识符,可以定位启用网络的存储设备的网络地址。网络附属服务器至少部分地通过与启用网络的存储设备建立逻辑连接来处理命令,网络附属服务器通过该逻辑连接向启用网络的存储设备传输数据块级访问命令。
在610处,使用网络附属服务器以利用启用网络的存储设备来执行处理作业。网络附属服务器可以被配置为经由计算机网络接收执行处理作业的一个或多个操作的请求。在处理接收到的请求时,网络附属服务器可以经由计算机网络向启用网络的存储设备传输一个或多个数据块级访问命令,并且可以经由计算机网络从启用网络的存储设备接收一个或多个数据块级访问响应。数据块级访问命令和响应可以符合通过计算机网络传输的一个或多个块级存储访问协议。在特定实施方案中,启用网络的存储设备包括固态存储设备,并且请求和响应符合基于结构的NVMe协议。然而,应当理解,可以使用其他基于网络的数据访问协议来执行本文所述的技术中的至少一些。
在其中启用网络的存储设备与“默认”头节点服务器相关联的实施方案中,“默认”头节点服务器可用于执行处理作业操作中的一个或多个,并且网络附属服务器可以用于执行处理作业操作中的另外一个或多个。例如,在执行处理作业时,在608处进行配置的“默认”头节点服务器和启用网络的存储设备两者均可以用于经由计算机网络向启用网络的存储设备传输数据块级访问命令和/或使用存储在被处理作业作为目标的启用网络的存储设备上的数据来执行处理操作。
图7是用于管理工作负载处理器与存储装置比率的示例性方法700的流程图。本文所述示例性系统中的任一个都可以用于执行该示例性方法700。例如,示例性方法700的全部或部分可以由工作负载管理服务器和/或包括工作负载管理器的一个或多个其他网络附属服务器计算机执行。
在702处,监视用于计算工作负载的处理器与存储装置比率。处理器与存储装置比率也可以称为CPU/存储装置比率,尽管一个或多个处理器不一定是中央处理单元(CPU)。计算工作负载可以包括数据访问和/或处理操作,该数据访问和/或处理操作由以给定的启用网络的存储设备为目标的一个或多个网络附属服务器执行。例如,一个或多个网络附属服务器计算机可以是被配置为通过经由计算机网络向启用网络的存储设备传输块级访问命令而充当启用网络的存储设备的头结点服务器的服务器计算机。
尽管该比率被称为“处理器与存储装置比率”,但是在至少一些实施方案中,也可以监视其他资源的利用率。例如,可以确定存储器需求或计算工作负载,并且可以监视用于计算工作负载的处理器与存储器比率。
在至少一些实施方案中,监视被定期地和/或适时地执行,以便确定一个或多个网络附属服务器的计算资源的当前比率和/或以启用网络的存储设备为目标的一个或多个处理作业的期望数据访问速率。除此之外或另选地,可以响应于接收到执行以启用网络的存储设备为目标的一个或多个附加数据处理作业的请求,来确定计算工作负载的处理器与存储装置比率。例如,响应于接收到执行以启用网络的存储设备为目标的数据处理作业的请求,可以对当前充当启用网络的存储设备的头节点服务器的一个或多个网络附属服务器的可用处理能力和/或数据访问能力进行分析。
在704处,确定计算工作负载的处理器与存储装置比率是否高于指定阈值。指定阈值可以是值(诸如数字、比率、百分比等),该值指示以启用网络的存储设备为目标的计算工作负载已超出(或接近超出)与启用网络的存储设备相关联的一个或多个网络附属服务器的可用处理能力和/或存储访问能力。在其中响应于接收到执行以启用网络的存储设备为目标的数据处理作业的请求而触发在702处的监视的实施方案中,在704处的确定可以包括确定所请求的数据处理作业的附加的估计处理能力需求将超出与启用网络的存储设备相关联的一个或多个网络附属服务器的可用处理能力和/或存储访问能力。
如果处理器与存储装置比率高于指定阈值,则在706处,确定另一网络附属服务器是否可用。在至少一些实施方案中,维护可用网络附属服务器的列表或池。可以搜索可用网络附属服务器的列表或池,以识别具有可用处理器和/或数据访问能力的一个或多个网络附属服务器。例如,可以识别可用服务器池或列表中的具有可用计算和/或网络访问资源的网络附属服务器,该资源将足以使以启用网络的存储设备为目标的计算工作负载的处理器与存储装置比率低于指定阈值。在其中响应于接收到执行以启用网络的存储设备为目标的处理作业的请求而触发在702处的监视的实施方案中,可以识别出可用服务器列表或池中的一个或多个网络附属服务器,它们与已经与启用网络的存储设备相关联的一个或多个网络附属服务器相结合,具有满足处理作业的处理能力需求的足够的处理器和/或网络访问能力。在其中确定了计算工作负载的存储器需求的至少一些实施方案中,可以对一个或多个网络附属服务器的可用存储器容量进行分析作为识别过程的部分。
如果网络附属服务器不可用,则在708处,分配新的网络附属服务器。分配新的网络附属服务器可以包括利用可用的计算和/或网络访问资源标识服务器计算机,以及在标识的服务器计算机上实例化新的虚拟服务器(诸如虚拟机、虚拟化容器等),并将实例化的虚拟服务器配置为经由计算机网络进行通信。实例化的虚拟服务器可包括一个或多个进程,其可用于经由计算机网络访问一个或多个启用网络的存储设备。在其中确定了计算工作负载的存储器需求的至少一些实施方案中,识别服务器计算机可以包括识别具有可以满足存储器需求的可用存储器容量的服务器计算机。在特定实施方案中,可以选择具有可以满足计算工作负载的处理器与存储器比率的处理器和存储器容量配置的虚拟机类型。然后可以在所识别的服务器计算机上创建所选择的虚拟机类型的实例。
分配新的网络附属服务器可以包括将服务器计算机的计算和/或网络访问资源分配给实例化的虚拟服务器。在至少一些实施方案中,分配给实例化的虚拟服务器的计算和/或网络访问资源的量基于足以使以启用网络的存储设备为目标的计算工作负载的处理器与存储装置比率低于指定阈值的计算和/或网络访问资源的量。在不同或另一个实施方案中,分配给虚拟服务器的计算和/或网络访问资源的量基于满足以启用网络的存储设备为目标的数据处理作业的处理能力需求所必需的处理器能力和/或数据访问能力的量。
在710处,将可用的网络附属服务器与启用网络的存储设备相关联。将可用的网络附属服务器与启用网络的存储设备相关联可以包括将可用的网络附属服务器配置为用作头结点服务器以用于执行以启用网络的存储设备为目标的数据访问操作。
可用的网络附属服务器可以包括被配置为经由计算机网络接收命令以将网络附属服务器与一个或多个启用网络的存储设备相关联的一个或多个服务。一旦接收到此类命令,该服务可以被配置为将在接收到的命令中标识的启用网络的存储设备注册为逻辑上连接至可用的网络附属服务器的存储设备。网络附属服务器可以被配置为经由计算机网络与启用网络的存储设备进行通信,就像启用网络的存储设备物理连接至网络附属服务器的通信总线一样(例如,经由计算机网络向启用网络的存储设备传输数据块级访问请求)。在至少一些实施方案中,对于在网络附属服务器上执行的应用程序(和/或在连接至计算机网络的一个或多个其他服务器上执行的应用程序)来说,好像启用网络的存储设备直接连接至网络附属服务器一样。
在至少一些实施方案中,可用网络附属服务器被注册为用于启用网络的存储设备的可用头节点服务器。可以将以启用网络的存储设备为目标的一个或多个数据处理作业的一个或多个操作路由到可用的网络附属服务器进行处理。
任选地,如果处理器与存储装置比率不高于指定阈值,则在712处,将具有低处理器利用率的一个或多个网络附属服务器分配给可用服务器池。例如,可以确定用作启用网络的存储设备的头节点服务器的一个或多个网络附属服务器的当前处理器利用率。如果网络附属服务器中的一个的处理器利用率指示可以在不使用网络附属服务器的情况下(以及在不导致处理器与计算比率超出指定阈值的情况下)执行以启用网络的存储设备为目标的计算工作负载,则可以删除网络附属服务器和启用网络的存储设备之间的关联。然后,可以将网络附属服务器分配给可用的服务器池。随后,当以启用网络的存储设备为目标(或以其他启用网络的存储设备为目标)的计算工作负载的处理器与存储装置比率超出指定阈值时,可以将网络附属服务器与启用网络的存储设备重新相关联(或与其他启用网络的存储设备相关联)。
因此,至少在一些情况下,可以根据不断变化的计算工作负载需求来动态关联和重新关联网络附属计算资源和启用网络的存储资源。
在至少一些实施方案中,用于计算工作负载的处理器与存储装置比率可以指示启用网络的存储设备的可用存储容量不足以完成以启用网络的存储设备为目标的一个或多个处理作业。在此类情形下,附加的启用网络的存储设备可以与一个或多个网络附属服务器动态关联,使得一个或多个网络附属服务器可以充当附加的启用网络的存储设备的一个或多个头节点服务器。附加的启用网络的存储设备随后可用于执行构成当前计算工作负载的处理作业操作的全部或部分。
图8是用于管理可用虚拟服务器池的示例性方法800的流程图。本文所述示例性系统中的任一个都可以用于执行该示例性方法800。例如,示例性方法800的全部或部分可以由工作负载管理服务器和/或包括工作负载管理器的一个或多个其他网络附属服务器计算机执行。
在802处,监视可用虚拟服务器池。可用服务器池可以包括存储可用虚拟服务器的标识符的数据结构(诸如表、数组等)。在至少一些实施方案中,数据结构可以将可用虚拟服务器的标识符与虚拟服务器的可用计算资源相关联。
在804处,确定可用虚拟服务器池中的虚拟服务器的数量是否低于指定阈值。可以将指定阈值设置为可用于分配给启用网络的存储设备的虚拟服务器的最小数量。
如果池中的虚拟服务器数量不低于指定阈值,则在802处监视将继续。如果虚拟服务器的数量低于指定阈值,则在806处,将一个或多个新的虚拟服务器添加到可用虚拟服务器池。将虚拟服务器添加到可用虚拟服务器池可以包括在网络附属服务器上实例化新的虚拟机(或虚拟化容器等),以及将新实例化的虚拟机(或虚拟化容器等)分配给可用虚拟服务器池。
除此之外或另选地,可以对已经实例化的一个或多个虚拟服务器进行分析,以确定是否可以将它们中的一个或多个添加到可用虚拟服务器池。例如,如果虚拟服务器的处理器利用率(或平均处理器利用率)低于指定阈值(这指示虚拟机未充分利用),则可以将其添加到可用虚拟服务器池。在至少一些实施方案中,虚拟服务器的处理器利用率被监视并存储在诸如表等的数据结构中。在此类实施方案中,可以分析利用率以识别处理器利用率低于指定阈值的虚拟服务器。可以将所识别的虚拟服务器中的一个或多个添加到可用虚拟服务器池。例如,可以将一个或多个虚拟服务器的网络标识符添加到可用虚拟服务器池中虚拟服务器的标识符列表或表。
分析虚拟服务器以确定是否可以将其添加到可用虚拟服务器池可以提供比分析数据结构中存储的利用率更当前的利用率量度,但在至少一些情况下可能需要更多时间,因为虚拟服务器必须经由计算机网络进行轮询作为分配过程的部分。相反,定期分析虚拟服务器的利用率并将利用率存储在数据结构中可以提高分配过程的速度,但是在一些情况下,当对存储的利用率数据进行分析时其至少部分不是当前的。
将虚拟服务器分配给可用虚拟服务器池可以包括将虚拟服务器的网络标识符添加到可用虚拟服务器的网络标识符的列表。在至少一些实施方案中,网络标识符可以包括网络地址,诸如MAC地址、IP地址、IP地址和端口号等。
在将一个或多个新的虚拟服务器添加到可用虚拟服务器池之后,对可用虚拟服务器池的监视在802处继续。在本文所述示例中的任一个中,可用虚拟服务器池中的一个或多个虚拟服务器可以与一个或多个启用网络的存储设备相关联,并用作一个或多个启用网络的存储设备的头节点,以执行以一个或多个启用网络的存储设备为目标的数据处理操作。
图9是示出示例性基于网络的计算服务提供者900的系统图,其例示了其中可以使用本文所述实施方案的一种环境。计算服务提供者900(即,云计算环境)能够将计算和存储容量作为服务传递给最终接收者社区。
在示例性实施方案中,计算服务提供者可以针对组织由该组织或代表该组织来建立。也就是说,计算服务提900可以提供”私有云环境”。在另一实施方案中,计算服务提供者900支持多租户环境,其中多个客户独立地工作(即,公共云环境)。一般而言,计算服务提供者900可以提供以下模型:基础设施即服务(“IaaS”)、平台即服务(“PaaS”)、软件即服务(“SaaS”)和/或可扩展存储装置即服务。还可以提供其他模型。对于IaaS模型,计算服务提供者900可以提供计算机作为物理或虚拟机和其他资源。虚拟机可以由超级管理程序(hypervisor)作为运行来宾账户(guest),如下面进一步描述。将PaaS模型提供了一个计算平台,它可以包括操作系统,程序设计语言执行环境,数据库和网络服务器。应用程序开发人员可开发并没有购买和管理的底层硬件和软件的成本运行的计算服务提供商平台上的软件解决方案。SaaS模式允许安装和应用软件运行在计算服务提供商。在一些实施方案中,最终用户使用联网客户端设备(诸如台式计算机、膝上型电脑、平板电脑、智能电话等)运行web浏览器或其他轻量级客户端应用程序来访问计算服务提供者900。本领域的技术人员将认识到,计算服务提供者900可以被描述为“云”环境。
特定示出的计算服务提供者900包括多个服务器计算机902A-C。虽然仅显示了四个服务器计算机,但是可以使用任意数量,并且大型中心可以包括数千个服务器计算机。服务器计算机902A-C可以提供用于执行软件实例906A-C的计算资源。在一个实施方案中,实例906A-C是虚拟机。如本领域已知的,虚拟机是执行如物理机器之类的应用程序的机器(即,计算机)的软件实施的实例。在该示例中,服务器计算机902A-C中的每一个可以被配置为执行超级管理程序(例如916A-C)或另一类型的程序,其被配置为使得能够在单个服务器上执行多个实例906。例如,服务器902A-C中的每一个可以被配置为(例如,经由超级管理程序)支持一个或多个虚拟机分区,其中每个虚拟机分区能够运行虚拟机实例(例如,服务器计算机902A可以被配置为支持各自运行对应虚拟机实例的三个虚拟机分区)。另外,每个实例906可以被配置为充当启用网络的存储装置外壳950A-C中的一个或多个的头节点服务器,如本文所述。
每个服务器计算机902A-C包括一个或多个处理器908A-C,其可用于执行一个或多个实例906A-C。应当理解,尽管本文所述的实施方案主要在虚拟机的上下文下进行描述,但是其他类型的实例也可以与本文公开的构思和技术一起使用。例如,本文公开的技术可以与存储资源、数据通信资源以及其他类型的计算资源一起使用。本文公开的实施方案也可以在不利用虚拟机实例的情况下直接在计算机系统上执行应用程序的全部或一部分。每个实例906都可以具有独立的网络地址(例如,IP地址),可以利用该网络地址经由局域网930访问实例906。数据流量可以通过局域网930进行传送。局域网930可以连接至广域网(WAN)940,使得连接至其他网络的最终用户和/或应用程序能够访问计算服务提供者900。应当理解,图9中所示的网络拓扑结构已经经过简化,并且可以使用更多的网络和联网设备来互连本文公开的各种计算系统。
计算服务提供者900包括多个存储装置外壳950A-C。每个存储装置外壳950包括一个或多个存储设备952和连接至局域网930的网络接口卡954。存储装置外壳950可以被配置为经由网络接口卡954接收数据块访问命令,并且将命令传输到一个或多个封闭的存储设备952。存储装置外壳950可以从一个或多个封闭的存储设备952接收对块级访问命令的响应,并经由网络接口卡954传输该响应。
计算服务提供者900包括工作负载管理器960,该工作负载管理器被配置为经由局域网930监视服务器计算机902A-C上的实例906A-C。在至少一些实施方案中,工作负载管理器960可以被配置为经由局域网930的管理平面与实例906A-C进行通信,该管理平面与用于传输数据通信的局域网的数据平面分开。监视实例906AC可以包括定期地和/或适时地监视服务器计算机902A-C的计算资源利用率和/或监视实例906A-C的计算资源利用率。在至少一个实施方案中,工作负载管理器960可以被配置为识别服务器计算机902A-C中未充分利用的一个或多个,并且可以将一个或多个未充分利用的服务器计算机902A-C添加到由工作负载管理器960维护的可用服务器池。
工作负载管理器960可以被配置为将实例906A-C中的一个或多个与存储装置外壳950A-C中的一个或多个相关联。例如,响应于接收到以存储设备952A-C中的一个或多个为目标的数据处理作业请求,工作负载管理器可以搜索包括服务器计算机902A-C中的一个或多个的可用服务器池,并且可以确定可用服务器池中的一个或多个服务器的可用处理能力和/或数据访问能力。工作负载管理器960可以被配置为识别服务器计算机902A-C中具有足以执行数据处理作业的可用处理能力和/或数据访问能力的一个或多个。工作负载管理器960可以被配置为将所识别的服务器计算机与包含被数据处理作业请求作为目标的一个或多个存储设备的一个或多个存储装置外壳950A-C相关联。
除此之外或另选地,可用服务器池可以包括实例906A-C中的一个或多个。工作负载管理器960可以被配置为识别实例906A-C中具有足以执行数据处理作业的全部或部分的可用处理能力和/或数据访问能力的一个或多个。工作负载管理器960可以被配置为将所识别的实例与包含被数据处理作业请求作为目标的一个或多个存储设备的一个或多个存储装置外壳950A-C相关联。在至少一个实施方案中,工作负载管理器960可以确定可用服务器池中没有具有足以执行数据处理作业的处理和/或数据访问资源的可用实例。在此类实施方案中,工作负载管理器可以被配置为在服务器计算机902A-C中的一个或多个上实例化一个或多个附加实例。
图10描绘了其中可以实施所述创新中的至少一些的合适的计算环境1000的一般化示例。计算环境1000不旨在关于使用范围或功能性提出任何限制,因为创新可以在多种不同的通用或专用计算系统中实施。例如,计算环境1000可以是各种计算设备(例如,台式计算机、膝上型计算机、服务器计算机、平板计算机等)中的任何一种。
参考图10,计算环境1000包括一个或多个处理单元1010、1015和存储器1020、1025。在图10中,这种基本配置1030包括在虚线内。处理单元1010、1015执行计算机可执行指令。处理单元可以是通用中央处理单元(CPU)、专用集成电路(ASIC)中的处理器,或任何其他类型的处理器。在多处理系统中,多个处理单元执行计算机可执行指令以提高处理能力。例如,图10示出了中央处理单元1010以及图形处理单元或共处理单元1015。有形存储器1020、1025可以是可以由一个或多个处理单元访问的易失性存储器(例如,寄存器、高速缓存、RAM)、非易失性存储器(例如,ROM、EEPROM、闪速存储器等)或两者的一些组合。存储器1020、1025以适合于由处理单元执行的计算机可执行指令的形式存储实施本文所述的一个或多个创新的软件1080。
在至少一些实施方案中,计算环境1000可以是如本文所述的网络附属服务器或工作负载管理服务器。
计算系统可以具有附加特征。例如,计算环境1000包括存储装置1040、一个或多个输入设备1050、一个或多个输出设备1060以及一个或多个通信连接1070。诸如总线、控制器或网络之类的互连机构(未示出)将计算环境1000的组件进行互连。通常,操作系统软件(未示出)为在计算环境1000中执行的其他软件提供操作环境,并且协调计算环境1000的组件的活动。
有形存储装置1040可以是可移除的或不可移除的,并且包括磁盘、磁带或盒式磁带、CD-ROM、DVD或可以用于以非暂时性方式存储信息并且可以在计算环境1000内被访问的任何其他介质。存储装置1040存储用于实施本文所述的一个或多个创新的软件1080的指令。
一个或多个输入设备1050可以是诸如键盘、鼠标、笔或轨迹球的触摸输入设备、语音输入设备、扫描设备或向计算环境1000提供输入的另一种设备。一个或多个输出设备1060可以是显示器、打印机、扬声器、CD写入器或提供来自计算环境1000的输出的另一种设备。
一个或多个通信连接1070使得能够通过通信介质与另一计算实体进行通信。通信介质传送诸如计算机可执行指令、音频或视频输入或输出或调制数据信号中的其他数据的信息。调制数据信号是以对信号中的信息进行编码的方式设置或改变其特征中的一个或多个的信号。通过举例而非限制,通信介质可以使用电、光、RF或其他载体。一个或多个通信连接1070可以用于经由本文所述的计算机网络与一个或多个网络附属服务器、一个或多个启用网络的存储设备和/或工作负载管理器进行通信。
尽管为了便于介绍,一些所公开方法的操作以特定的顺序次序进行描述,但是应当理解,这种描述的方式包括重新排列,除非以下阐述的特定语言要求特定的次序。例如,按顺序描述的操作在一些情况下可以重新排列或同时执行。此外,为了简单起见,附图可能并未示出所公开方法可以结合其他方法使用的各种方式。
任何所公开的方法可以实施为计算机可读指令,其被存储在一个或多个计算机可读存储介质(例如,一个或多个光学介质盘、易失性存储器组件(诸如DRAM或SRAM)或非易失性存储器组件(诸如闪速存储器或硬盘驱动器))上并在计算机(例如,任何可商购获得的计算机,包括智能电话或包括计算硬件的其他移动设备)上执行。术语计算机可读存储介质并不包括通信连接,诸如信号和载波。用于实施所公开技术的任何计算机可执行指令以及在所公开实施方案的实施期间创建和使用的任何数据都可以存储在一个或多个计算机可读存储介质上。计算机可执行指令可以是例如经由网络浏览器或其他软件应用程序(诸如远程计算应用程序)访问或下载的专用软件应用程序或软件应用程序的部分。此类软件可以例如在单个本地计算机(例如,任何合适的可商购获得的计算机)上或在利用一个或多个网络计算机的网络环境中(例如,经由因特网、广域网、局域网、客户端服务器网络(诸如云计算网络)、数据中心或其他此类网络)执行。如本文所述,计算机可读存储介质可以是存储设备。
为了清楚起见,仅描述了基于软件的实施方式的某些选定的方面。省略了本领域众所周知的其他细节。例如,应当理解,所公开的技术并不限于任何特定的计算机语言或程序。例如,所公开的技术可以通过以C++、Java、Perl、JavaScript、汇编语言或任何其他合适的编程语言编写的软件来实施。同样,所公开的技术并不限于任何特定的计算机或硬件类型。合适的计算机和硬件的某些细节是众所周知的,并且不需要在本公开中详细阐述。
还应当充分理解,本文所述任何功能可以至少部分地由一个或多个硬件逻辑组件代替软件来执行。例如但不限于,可以使用的说明性类型的硬件逻辑组件包括现场可编程门阵列(FPGA)、专用程序集成电路(ASIC)、专用标准产品(ASSP)、片上系统型系统(SOC)、复杂的可编程逻辑设备(CPLD)等。
此外,任何基于软件的实施方案(包括例如用于促使计算机执行所公开方法中的任一种的计算机可执行指令)可以通过合适的通信装置上传、下载或远程访问。此类合适的通信装置包括,例如,因特网、万维网、内联网、软件应用程序、电缆(包括光纤电缆)、磁通信、电磁通信(包括射频、微波以及红外线通信)、电子通讯,或其他此类通信装置。
所公开的方法、装置和系统不应以任何方式解释为限制性的。相反,本公开涉及所公开的各种实施方案的所有新颖的且非显而易见的特征和方面,这些特征和方面是单独地和彼此呈各种组合和子组合。所公开的方法、装置和系统不限于任何特定方面或特征或其组合,所公开的实施方案也不要求存在任何一个或多个具体优点或解决问题。
示例性实施方案包括以下项:
1.一种用于联网存储架构的系统,所述系统包括:第一头节点服务器,其连接至计算机网络,其中所述头节点服务器被配置为经由所述计算机网络向存储设备传输数据块级访问命令;第二头结点服务器,其连接至所述计算机网络;所述存储设备,其连接至所述计算机网络,其中所述存储设备包括网络接口和存储介质;以及工作负载管理服务器,其被配置为:接收执行以所述存储设备为目标的数据处理作业的请求;确定所述数据处理作业的处理需求超出所述第一头节点服务器的可用处理能力;将所述第二头节点服务器与所述存储设备相关联,其中将所述第二头节点与所述存储设备相关联包括将所述第二头节点服务器配置为经由所述计算机网络向所述存储设备传输数据块级访问命令;以及使用所述第一头节点服务器和所述第二头节点服务器来执行以所述存储设备为目标的所述数据处理作业。
2.根据前述第1段所述的系统,其中所述第二头节点服务器包括虚拟机,所述虚拟机被配置为向所述存储设备传输所述数据块级访问命令;并且所述工作负载管理服务器被进一步配置为实例化所述第二头结点服务器上的所述虚拟机。
3.根据前述第1至2段中任一段所述的系统,其中所述工作负载管理服务器被进一步配置为:确定所述数据处理作业的存储需求超出所述存储设备中的所述存储介质的可用存储容量;将所述第一头节点服务器配置为经由所述计算机网络向第二存储设备传输数据块级访问命令,所述第二存储设备包括第二存储介质;并且其中执行所述数据处理作业包括使用所述第一头节点服务器将数据存储在所述存储设备中的所述存储介质中以及将附加数据存储在所述第二存储设备中的所述第二存储介质中。
4.根据前述第1至3段中任一段所述的系统,其中所述工作负载管理服务器被进一步配置为:监视所述第二头节点服务器的处理器利用率;确定所述第二头节点服务器的所述处理器利用率低于指定阈值;删除所述第二头节点服务器与所述存储设备之间的关联;以及将所述第二头节点服务器分配给可用服务器池。
5.根据前述第1至4段中任一段所述的系统,其进一步包括服务器机架,其中所述服务器机架包括:架顶式交换机;以及所述存储设备,其中所述存储设备的所述网络接口连接至所述架顶式交换机的端口。
6.根据前述第1至5段中任一段所述的系统,其中所述存储设备还包括:网络数据块访问控制器,其被配置为:经由所述网络接口接收块级访问请求;处理所述块级访问请求,其中处理所述块级访问请求包括访问所述存储介质中的一个或多个数据块;以及经由所述网络接口传输块级访问响应。
7.一种系统,其包括:存储设备,其连接至计算机网络,其中所述存储设备包括存储介质和网络接口,其中所述存储设备被配置为利用所述网络接口经由所述计算机网络接收以存储在所述存储介质上的数据块为目标的数据块访问命令;服务器,其连接至所述计算机网络,其中所述服务器包括处理器和第二网络接口,其中所述服务器被配置为利用所述第二网络接口经由所述计算机网络向所述存储设备传输数据块访问命令;以及工作负载管理器,其被配置为:确定以存储在所述存储设备的所述存储介质上的数据为目标的计算工作负载的计算能力与数据存储比率;以及将所述服务器分配给所述计算工作负载,其中分配包括将所述服务器配置为通过经由所述计算机网络向所述存储设备传输数据块访问命令来执行所述计算工作负载的至少部分。
8.根据前述第7段所述的系统,其中所述工作负载管理器被进一步配置为:检测所述服务器的处理利用率低于指定阈值;以及将服务器添加到可用服务器池;其中将服务器分配给所述计算工作负载包括识别所述可用服务器池中的所述服务器。
9.根据前述第7至8段中任一段所述的系统,其中所述工作负载管理器被进一步配置为:确定所述计算工作负载的延迟敏感性需求;并且其中将所述服务器分配给所述计算工作负载包括确定所述服务器相对于所述存储设备的网络延迟满足所述计算工作负载的所述延迟敏感性需求。
10.根据前述第9段所述的系统,其中确定所述服务器相对于所述存储设备的所述网络延迟满足所述计算工作负载的所述延迟敏感性需求包括:确定所述服务器和所述存储设备直接连接至同一网络交换机。
11.根据前述第7至10段中任一段所述的系统,其中所述存储设备包括网络接口控制器,所述网络接口控制器被配置为:使用所述网络接口经由所述计算机网络接收块存储访问请求;响应于接收到所述块存储访问请求,从所述存储设备的所述存储介质中检索数据;以及经由所述计算机网络传输检索到的数据。
12.根据前述第7至11段中任一段所述的系统,其中所述工作负载管理器被进一步配置为:监视包括所述服务器的服务器池;并且其中将所述服务器分配给所述计算工作负载包括:分析所述服务器池中服务器的可用处理能力;以及确定所述服务器具有执行所述计算工作负载的至少部分的可用处理能力。
13.根据前述第7至12段中任一段所述的系统,其中所述服务器包括虚拟机,并且将所述服务器分配给所述计算工作负载还包括将所述虚拟机分配给所述计算工作负载。
14.根据前述第13段所述的系统,其中所述工作负载管理器被进一步配置为在所述服务器上实例化所述虚拟机。
15.根据前述第14段所述的系统,其中所述工作负载管理器被进一步配置为:监视未充分利用的虚拟服务器池;以及确定所述未充分利用的虚拟服务器池中的虚拟服务器数量低于指定阈值;响应于确定所述虚拟服务器的数量低于指定阈值,在所述服务器上实例化所述虚拟服务器;以及将实例化的虚拟服务器添加到所述未充分利用的虚拟服务器池。
16.一种方法,其包括:使用启用网络的存储设备接收执行数据处理作业的请求;确定针对所述数据处理作业的处理能力需求;识别具有满足所述处理能力需求的可用处理能力的网络附属服务器;将所述网络附属服务器配置为经由计算机网络与启用网络的存储设备进行交互;以及使用所述网络附属服务器利用所述启用网络的存储设备来执行所述数据处理作业。
17.根据前述第16段所述的方法,其中识别具有可用处理能力的所述网络附属网络服务器包括:在云计算环境中搜索包括所述网络附属服务器的可用服务器池;以及确定所述网络附属服务器的所述可用处理能力。
18.根据前述第17段所述的方法,其还包括:监视云计算环境中服务器计算机的利用率;确定所述服务器计算机中的一个的利用率低于指定阈值;以及将所述服务器计算机分配给所述可用服务器池。
19.根据前述第17至18段中任一段所述的方法,其还包括:监视所述可用服务器池;确定在所述可用服务器池中的可用服务器的数量低于指定阈值;实例化新的虚拟机;以及将所述新的虚拟机分配给所述可用服务器池。
20.根据前述第16至19段中任一段所述的方法,其中:确定所述处理能力需求包括确定所述数据处理作业的最大可接受延迟;以及识别所述网络附属服务器包括:确定所述网络附属服务器相对于所述启用网络的存储设备的网络延迟小于或等于所述数据处理作业的所述最大可接受延迟。
鉴于可以应用所公开发明的原理的许多可能的实施方案,应当认识到,所示出的实施方案仅是本发明的示例,而不应被认为是限制本发明的范围。我们要求保护我们落入所附权利要求书范围之内的所有发明内容。

Claims (15)

1.一种系统,包括:
存储设备,其连接至计算机网络,其中所述存储设备包括存储介质和网络接口,其中所述存储设备被配置为利用所述网络接口经由所述计算机网络接收以存储在所述存储介质上的数据块为目标的数据块访问命令;
服务器,其连接至所述计算机网络,其中所述服务器包括处理器和第二网络接口,其中所述服务器被配置为利用所述第二网络接口经由所述计算机网络向所述存储设备传输数据块访问命令;和
工作负载管理器,其被配置为:
接收利用所述存储设备执行数据处理作业的请求;
确定所述数据处理作业的处理能力需求;
确定所述服务器具有满足所述处理能力需求的可用处理能力;并且
将所述服务器分配给所述数据处理作业,其中所述分配包括将所述服务器配置为通过经由所述计算机网络向所述存储设备传输数据块访问命令来执行所述数据处理作业的至少部分。
2.根据权利要求1所述的系统,其中确定所述数据处理作业的所述处理能力需求包括确定所述数据处理作业的计算能力与数据存储比率。
3.根据前述权利要求1至2中任一项所述的系统,其中所述工作负载管理器被进一步配置为:
检测所述服务器的处理利用率低于指定阈值;并且
将所述服务器添加到可用服务器池;
其中将所述服务器分配给所述数据处理作业还包括识别所述可用服务器池中的所述服务器。
4.根据前述权利要求1至3中任一项所述的系统,其中所述工作负载管理器被进一步配置为:
确定所述数据处理作业的延迟敏感性需求;并且
其中将所述服务器分配给所述数据处理作业还包括确定所述服务器相对于所述存储设备的网络延迟满足所述数据处理作业的所述延迟敏感性需求。
5.根据权利要求4所述的系统,其中确定所述服务器相对于所述存储设备的所述网络延迟满足所述计算工作负载的所述延迟敏感性需求包括:
确定所述服务器和所述存储设备直接连接至同一网络交换机。
6.根据前述权利要求1至5中任一项所述的系统,其中所述存储设备包括网络接口控制器,所述网络接口控制器被配置为:
利用所述网络接口经由所述计算机网络接收块存储访问请求;
响应于接收到所述块存储访问请求,从所述存储设备的所述存储介质中检索数据;并且
经由所述计算机网络传输所述检索到的数据。
7.根据前述权利要求1至6中任一项所述的系统,其中所述工作负载管理器被进一步配置为:
监视包括所述服务器的服务器池;并且
其中将所述服务器分配给所述数据处理作业包括:
分析所述服务器池中的所述服务器的可用处理能力;以及
确定所述服务器具有执行所述数据处理作业的至少部分的可用处理能力。
8.根据前述权利要求1至7中任一项所述的系统,其中所述服务器包括虚拟机,并且将所述服务器分配给所述数据处理作业还包括将所述虚拟机分配给所述计算工作负载。
9.根据权利要求8所述的系统,其中所述工作负载管理器被进一步配置为在所述服务器上实例化所述虚拟机。
10.根据权利要求9所述的系统,其中所述工作负载管理器被进一步配置为:
监视未充分利用的虚拟服务器池;
确定所述未充分利用的虚拟服务器池中的虚拟服务器的数量低于指定阈值;
响应于确定所述虚拟服务器的数量低于所述指定阈值,在所述服务器上实例化所述虚拟服务器;并且
将所述实例化的虚拟服务器添加到所述未充分利用的虚拟服务器池。
11.一种方法,其包括:
接收利用启用网络的存储设备执行数据处理作业的请求;
确定所述数据处理作业的处理能力需求;
识别具有满足所述处理能力需求的可用处理能力的网络附属服务器;
将所述网络附属服务器配置为经由计算机网络与所述启用网络的存储设备进行交互;以及
使用所述网络附属服务器利用所述启用网络的存储设备执行所述数据处理作业。
12.根据权利要求11所述的方法,其中识别具有可用处理能力的所述网络附属服务器包括:
在云计算环境中搜索包括所述网络附属服务器的可用服务器池;以及
确定所述网络附属服务器的所述可用处理能力。
13.根据前述权利要求11至12中任一项所述的方法,其还包括:
监视所述云计算环境中服务器计算机的利用率;
确定所述服务器计算机中的一个的利用率低于指定阈值;以及
将所述服务器计算机分配给所述可用服务器池。
14.根据前述权利要求11至13中任一项所述的方法,其还包括:
监视所述可用服务器池;
确定所述可用服务器池中的可用服务器的数量低于指定阈值;
实例化新的虚拟机;以及
将所述新的虚拟机分配给所述可用服务器池。
15.根据前述权利要求11至14中任一项所述的方法,其中:
确定所述处理能力需求包括确定所述数据处理作业的最大可接受延迟;以及
识别所述网络附属服务器包括确定所述网络附属服务器相对于所述启用网络的存储设备的网络延迟小于或等于所述数据处理作业的所述最大可接受延迟。
CN201880057746.2A 2017-09-05 2018-09-04 网络存储架构 Active CN111247508B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/695,959 2017-09-05
US15/695,959 US10917496B2 (en) 2017-09-05 2017-09-05 Networked storage architecture
PCT/US2018/049366 WO2019050845A1 (en) 2017-09-05 2018-09-04 NETWORK STORAGE ARCHITECTURE

Publications (2)

Publication Number Publication Date
CN111247508A true CN111247508A (zh) 2020-06-05
CN111247508B CN111247508B (zh) 2024-01-09

Family

ID=63878779

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880057746.2A Active CN111247508B (zh) 2017-09-05 2018-09-04 网络存储架构

Country Status (4)

Country Link
US (1) US10917496B2 (zh)
EP (1) EP3679465A1 (zh)
CN (1) CN111247508B (zh)
WO (1) WO2019050845A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10896266B1 (en) * 2018-07-12 2021-01-19 Amazon Technologies, Inc. Computer hardware attestation
US11841793B2 (en) * 2021-01-27 2023-12-12 Rambus Inc. Switch-based free memory tracking in data center environments
US20220291953A1 (en) * 2021-03-12 2022-09-15 International Business Machines Corporation Dynamically validating hosts using ai before scheduling a workload in a hybrid cloud environment

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040193827A1 (en) * 2003-03-31 2004-09-30 Kazuhiko Mogi Computer system for managing performances of storage apparatus and performance management method of the computer system
US20050119996A1 (en) * 2003-11-28 2005-06-02 Hitachi, Ltd. Method and program of collecting performance data for storage network
US20060218279A1 (en) * 2005-03-23 2006-09-28 Akihiko Yamaguchi Method for controlling a management computer
US20080168163A1 (en) * 2006-12-19 2008-07-10 Koichi Kurokawa Information processing device assignment method, information processing system and management server
CN102652305A (zh) * 2009-12-17 2012-08-29 微软公司 虚拟存储目标卸载技术
WO2012164632A1 (en) * 2011-06-03 2012-12-06 Hitachi, Ltd. Storage apparatus and storage apparatus management method
WO2013066482A1 (en) * 2011-11-05 2013-05-10 Zadara Storage, Inc. Virtual private storage array service for cloud servers
CN104504147A (zh) * 2015-01-04 2015-04-08 华为技术有限公司 一种数据库集群的资源协调方法、装置及系统
CN104956329A (zh) * 2012-10-28 2015-09-30 思杰系统有限公司 在云计算环境中的网络方案

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7054927B2 (en) * 2001-01-29 2006-05-30 Adaptec, Inc. File system metadata describing server directory information
US20020124137A1 (en) * 2001-01-29 2002-09-05 Ulrich Thomas R. Enhancing disk array performance via variable parity based load balancing
US7154621B2 (en) * 2001-03-20 2006-12-26 Lightsurf Technologies, Inc. Internet delivery of digitized photographs
US20030195962A1 (en) * 2002-04-10 2003-10-16 Satoshi Kikuchi Load balancing of servers
JP2004013367A (ja) * 2002-06-05 2004-01-15 Hitachi Ltd データ記憶サブシステム
US7886299B2 (en) * 2004-06-01 2011-02-08 Hitachi, Ltd. Method of dynamically balancing workload of a storage system
US7209967B2 (en) * 2004-06-01 2007-04-24 Hitachi, Ltd. Dynamic load balancing of a storage system
JP4842593B2 (ja) * 2005-09-05 2011-12-21 株式会社日立製作所 ストレージ仮想化装置のデバイス制御引継ぎ方法
US8352602B2 (en) * 2009-07-01 2013-01-08 Juniper Networks, Inc. Arrangements and methods for access to stored data
US9386256B1 (en) * 2010-03-26 2016-07-05 Open Invention Network Llc Systems and methods for identifying a set of characters in a media file
US9606831B2 (en) * 2010-11-30 2017-03-28 Red Hat, Inc. Migrating virtual machine operations
US20120254547A1 (en) * 2011-03-31 2012-10-04 International Business Machines Corporation Managing metadata for data in a copy relationship
US8707085B2 (en) * 2011-06-30 2014-04-22 International Business Machines Corporation High availability data storage systems and methods
US8521705B2 (en) * 2011-07-11 2013-08-27 Dell Products L.P. Accelerated deduplication
US8615528B2 (en) * 2011-07-28 2013-12-24 International Business Machines Corporation Cloud database sharing
US9026658B2 (en) * 2012-03-28 2015-05-05 Microsoft Technology Licensing, Llc Enhanced computer cluster operation using resource allocation requests
US9172754B2 (en) * 2012-04-30 2015-10-27 Hewlett-Packard Development Company, L.P. Storage fabric address based data block retrieval
US9172744B2 (en) * 2012-06-14 2015-10-27 Microsoft Technology Licensing, Llc Scalable storage with programmable networks
US20140007189A1 (en) * 2012-06-28 2014-01-02 International Business Machines Corporation Secure access to shared storage resources
US20140096139A1 (en) * 2012-10-01 2014-04-03 International Business Machines Corporation Workload management considering hardware reliability
CN104583971B (zh) * 2012-11-19 2017-07-14 株式会社日立制作所 管理系统和管理方法
US20140280667A1 (en) * 2013-03-14 2014-09-18 International Business Machines Corporation Scalable data transfer in and out of analytics clusters
US9471585B1 (en) * 2013-12-20 2016-10-18 Amazon Technologies, Inc. Decentralized de-duplication techniques for largescale data streams
US20150347170A1 (en) * 2014-05-27 2015-12-03 Vmware, Inc. Grouping virtual machines in a cloud application
US20160054779A1 (en) * 2014-08-22 2016-02-25 Devadatta Bodas Managing power performance of distributed computing systems
WO2016054028A1 (en) * 2014-09-29 2016-04-07 Fiber Mountain, Inc. Data center network
US20160110436A1 (en) * 2014-10-21 2016-04-21 Bank Of America Corporation Redundant data integration platform
EP3032442B1 (en) * 2014-12-08 2018-12-26 Tata Consultancy Services Limited Modeling and simulation of infrastructure architecture for big data
US10289398B2 (en) * 2015-09-26 2019-05-14 Cisco Technology, Inc. In-service upgrade of kernel loadable modules
US9939862B2 (en) * 2015-11-13 2018-04-10 Microsoft Technology Licensing, Llc Latency-based energy storage device selection
US10575339B2 (en) * 2015-11-29 2020-02-25 Mobilicom Ltd. Scalable mobile ad hoc networks
US10178152B2 (en) * 2016-04-29 2019-01-08 Splunk Inc. Central repository for storing configuration files of a distributed computer system
KR20180061557A (ko) * 2016-11-29 2018-06-08 삼성전자주식회사 컨트롤러 및 컨트롤러와 불휘발성 메모리 장치들을 포함하는 스토리지 장치
US10209982B2 (en) * 2017-05-16 2019-02-19 Bank Of America Corporation Distributed storage framework information server platform architecture
US11592991B2 (en) * 2017-09-07 2023-02-28 Pure Storage, Inc. Converting raid data between persistent storage types
US10719459B2 (en) * 2017-11-27 2020-07-21 Seagate Technology Llc Command splitting for high-cost data access operations

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040193827A1 (en) * 2003-03-31 2004-09-30 Kazuhiko Mogi Computer system for managing performances of storage apparatus and performance management method of the computer system
US20050119996A1 (en) * 2003-11-28 2005-06-02 Hitachi, Ltd. Method and program of collecting performance data for storage network
US20060218279A1 (en) * 2005-03-23 2006-09-28 Akihiko Yamaguchi Method for controlling a management computer
US20080168163A1 (en) * 2006-12-19 2008-07-10 Koichi Kurokawa Information processing device assignment method, information processing system and management server
CN102652305A (zh) * 2009-12-17 2012-08-29 微软公司 虚拟存储目标卸载技术
WO2012164632A1 (en) * 2011-06-03 2012-12-06 Hitachi, Ltd. Storage apparatus and storage apparatus management method
WO2013066482A1 (en) * 2011-11-05 2013-05-10 Zadara Storage, Inc. Virtual private storage array service for cloud servers
CN104956329A (zh) * 2012-10-28 2015-09-30 思杰系统有限公司 在云计算环境中的网络方案
CN104504147A (zh) * 2015-01-04 2015-04-08 华为技术有限公司 一种数据库集群的资源协调方法、装置及系统

Also Published As

Publication number Publication date
EP3679465A1 (en) 2020-07-15
CN111247508B (zh) 2024-01-09
WO2019050845A1 (en) 2019-03-14
US20190075186A1 (en) 2019-03-07
US10917496B2 (en) 2021-02-09

Similar Documents

Publication Publication Date Title
US11044347B2 (en) Command communication via MPIO driver agnostic of underlying communication protocols
US11216314B2 (en) Dynamic reallocation of resources in accelerator-as-a-service computing environment
US9684450B2 (en) Profile-based lifecycle management for data storage servers
US8244924B2 (en) Discovery and configuration of device configurations
US20180024764A1 (en) Technologies for accelerating data writes
US20170220281A1 (en) Smart partitioning of storage access paths in shared storage services
US10324754B2 (en) Managing virtual machine patterns
US11030136B2 (en) Memory access optimization for an I/O adapter in a processor complex
KR102361929B1 (ko) 동적 호스트 디바이스 인스턴스 모델 재구성을 이용한 제공자 네트워크에서의 수용량 관리
US10356176B2 (en) Placement of application services in converged infrastructure information handling systems
US11307802B2 (en) NVMe queue management multi-tier storage systems
US20170199694A1 (en) Systems and methods for dynamic storage allocation among storage servers
CN111247508B (zh) 网络存储架构
US9471352B1 (en) Capability based placement
US20170237809A1 (en) Direct access storage device analyzer
US11663050B2 (en) Method, device and computer program product for managing dedicated processing resources
US9755986B1 (en) Techniques for tightly-integrating an enterprise storage array into a distributed virtualized computing environment
US20140289728A1 (en) Apparatus, system, method, and storage medium
US11436123B2 (en) Application execution path tracing for inline performance analysis
US10846125B2 (en) Memory access optimization in a processor complex
US11226851B1 (en) Execution of multipath operation triggered by container application
US10951537B1 (en) Adjustable receive queue for processing packets in a network device
US11838149B2 (en) Time division control of virtual local area network (vlan) to accommodate multiple virtual applications
US20230409361A1 (en) Generating, aggregating, and querying virtualization service execution metrics using in-memory processing
US20220197874A1 (en) Efficient storage of key-value data with schema integration

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