CN115774599A - 用于使用容器编排服务管理的集群的分布式数据网格路由 - Google Patents
用于使用容器编排服务管理的集群的分布式数据网格路由 Download PDFInfo
- Publication number
- CN115774599A CN115774599A CN202111401794.9A CN202111401794A CN115774599A CN 115774599 A CN115774599 A CN 115774599A CN 202111401794 A CN202111401794 A CN 202111401794A CN 115774599 A CN115774599 A CN 115774599A
- Authority
- CN
- China
- Prior art keywords
- node
- proxy server
- container
- request
- reverse proxy
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/121—Shortest path evaluation by minimising delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/7453—Address table lookup; Address filtering using hashing
-
- 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/061—Improving I/O performance
-
- 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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/122—Shortest path evaluation by minimising distances, e.g. by selecting a route with minimum of number of hops
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/42—Centralised routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/742—Route cache; Operation thereof
-
- 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/2866—Architectures; Arrangements
- H04L67/2895—Intermediate processing functionally located close to the data provider application, e.g. reverse proxies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Power Engineering (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
描述了一种用于使用一致性哈希路由的容器化系统的云原生架构。在使用容器编排服务管理的基于容器的计算节点集群上执行的反向代理服务器可以确定当前数据网格拓扑。反向代理服务器可以从第一客户端设备接收第一请求以从基于容器的计算节点集群检索第一数据。可以解析该请求以确定键值对的键,并且可以使用该键计算哈希值。可以执行一致性哈希算法来确定与哈希值相关联的节点。可以使用哈希值从节点检索第一数据。第一数据可以被发送到第一客户端设备。
Description
背景技术
可信执行环境(Trusted Execution Environment,TEE),诸如虚拟机和/或容器,可以用于模拟计算机系统的全部或一部分。可信执行环境允许在一个或多个互连的物理计算机系统上同时并与其他软件模块隔离地运行各种软件模块,例如多个操作系统。此外,可信执行环境可以例如允许将多个物理服务器整合到运行多个客户虚拟机的一个物理服务器中,以便提高硬件利用率。
可信执行环境集群可以在基于云的架构中向各种客户端提供分布式计算服务。许多这样的集群提供分布式数据网格,将集群设备/TEE的随机存取存储器汇集在一起,以允许应用与集群中运行的其他应用共享数据。
发明内容
本公开提供了用于将请求路由到在使用容器编排服务管理的集群上执行的分布式数据网格的新的和创新的系统和方法。在一示例中,系统包括使用容器编排服务管理的基于容器的计算节点集群。该系统还可以包括在基于容器的计算节点集群上执行的反向代理服务器。在各种示例中,反向代理服务器可以被配置成确定基于容器的计算节点集群的当前数据网格拓扑。在一些情况下,反向代理服务器可以被配置为从客户端设备接收第一请求以从基于容器的计算节点集群检索第一数据。在各种示例中,代理服务器还可以被配置成解析第一请求以确定包括在第一请求中的键值对的键。在一些示例中,代理服务器可以进一步被配置为通过将键输入到哈希函数中来计算哈希值。代理服务器还可以被配置成使用由反向代理服务器执行的一致性哈希算法来确定与哈希值相关联的基于容器的计算节点集群中的至少一个节点。反向代理服务器可以向至少一个节点发送第一请求。反向代理服务器可以响应于第一请求从至少一个节点接收第一数据。在其他示例中,反向代理服务器可以被配置为向客户端设备发送第一数据。
在一示例中,一种方法包括由在使用容器编排服务管理的基于容器的计算节点集群上执行的反向代理服务器确定基于容器的计算节点集群的当前数据网格拓扑。该方法可以包括由反向代理服务器从客户端设备接收第一请求以从基于容器的计算节点集群检索第一数据。该方法还可以包括由反向代理服务器解析第一请求,以确定包括在第一请求中的键值对的键。该方法还可以包括由反向代理服务器通过将键输入哈希函数来计算哈希值。该方法还可以包括使用由反向代理服务器执行的一致性哈希算法来确定与哈希值相关联的基于容器的计算节点集群中的至少一个节点。该方法可以包括由反向代理服务器向至少一个节点发送第一请求。该方法还可以包括由反向代理服务器响应于第一请求从至少一个节点接收第一数据。在一些示例中,该方法可以包括向客户端设备发送第一数据。
在一些示例中,非暂时性机器可读介质可以存储程序,该程序在由处理器执行时,可以使得在基于容器的计算节点集群上执行的反向代理服务器确定基于容器的计算节点集群的当前数据网格拓扑。在一些情况下,该程序还可以使反向代理服务器从客户端设备接收第一请求以从基于容器的计算节点集群检索第一数据,其中使用容器编排服务来管理基于容器的计算节点集群。在一些示例中,程序可以进一步使反向代理服务器解析第一请求,以确定包括在第一请求中的键值对的键。在一些示例中,该程序可以进一步使反向代理服务器通过将键输入哈希函数来计算哈希值。在各种情况下,该程序可以进一步使得反向代理服务器使用由反向代理服务器执行的一致性哈希算法来确定与哈希值相关联的基于容器的计算节点集群中的至少一个节点。该程序还可以使反向代理服务器向至少一个节点发送第一请求。该程序可以使反向代理服务器响应于第一请求从至少一个节点接收第一数据。在一些情况下,该程序可以进一步使反向代理服务器向客户端设备发送第一数据。
所公开的方法和装置的附加特征和优点在下面的具体实施方式和附图中描述,并且将从下面的具体实施方式和附图中变得明显。这里描述的特征和优点并不包括全部,特别是,鉴于附图和描述,许多附加的特征和优点对于本领域普通技术人员来说将是显而易见的。此外,应当注意,说明书中使用的语言主要是出于可读性和指导性的目的而选择的,而不是为了限制本发明主题的范围。
附图说明
图1是根据本公开的各种示例的从基于容器的计算节点集群请求数据的客户端设备的框图。
图2是示出根据本公开的各种示例的由在基于容器的集群上执行的反向代理服务器执行的操作的框图。
图3是示出根据本公开的示例的用于使用容器编排服务管理的集群的分布式数据网格路由的示例过程的流程图。
图4A、图4B示出了根据本公开的各个方面的对由在基于容器的集群上执行的分布式数据网格存储的数据的示例请求和检索的流程图。
图5是根据本公开的示例的在基于容器的计算节点集群上执行并与客户端设备通信的反向代理服务器的框图。
具体实施方式
在计算机系统中,可以实现虚拟化以允许计算资源的灵活扩展,例如,在多租户云环境中。在一示例中,虚拟机(virtual machine,VM)可以是实际物理计算机系统的稳健模拟,该实际物理计算机系统利用管理程序向虚拟机分配物理资源。在一些示例中,基于容器的虚拟化系统,例如由执行诸如的容器化运行时间环境的诸如Red的容器管理器(有时称为“容器编排服务”)管理的这种资源的“集群”可能是有利的,因为基于容器的虚拟化系统可以比利用虚拟机管理程序使用虚拟机的系统更轻量。在容器的情况下,容器通常将被托管在已经执行操作系统的物理主机或虚拟机上,并且容器可以被托管在物理主机或VM的操作系统上。在大规模实现中,容器调度器,诸如包含在容器编排器中的调度器(例如Red Docker),通常以低延迟响应频繁的容器启动和清理。容器可以为特定任务实现计算能力的广泛、并行部署。在典型的示例中,容器可以被实例化以处理特定的任务,并且可以在任务完成后被回收(例如,未实例化)。
计算服务,诸如内容交付网络(content delivery network,CDN)、视频分析即服务、零售即服务和其他计算服务,通常跨大量计算节点进行部署。每个服务可能有不同的计算资源要求,诸如计算能力、网络延迟、缓存和存储要求等。传统上,计算服务的计算资源部署在单一计算节点集群内。这里使用的计算节点集群指的是其上已经部署了编排框架的计算节点(例如,Docker等)。
数据网格是一组集群节点,它们将存储器(例如,RAM)汇集在一起,以允许应用存储/检索数据,并允许应用与集群上执行的其他应用共享数据。数据网格通常是为需要比单一服务器通常可用的更多的RAM的大规模应用而设计的。这种数据网格被设计用于高速(低延迟)数据处理。
许多分布式数据网格使用跨不同节点共享条目的键值存储(例如)来设计。条目(例如,表示键值对的值的数据)通常存储在数据网格节点的子集上。存储条目的数据网格节点被称为该条目的“所有者”。条目通常使用一致性哈希算法分布在数据网格集群上。一致性哈希根据条目的键和数据网格的集群配置选择数据网格节点用于数据的存储。分布式数据网格的集群配置通常被称为“数据网格拓扑”。
一致性哈希是指将数据对象映射到一组n节点的算法。例如,考虑一负载平衡问题,其中一组数据对象(例如,网页、视频段或任何其他类型的数据)将被分配给该组n节点。使用标准哈希函数将对象o存储在具有id hash(o)(mod n)的节点中,可以将该组对象跨n节点均匀地分布。然而,如果在集群中添加或删除节点(通常会发生这种情况,导致值n发生变化),数据网格中几乎每个对象的节点分配都会发生变化。在节点不断被启用/回收的集群中,这是有问题的,因为它可能需要将大部分数据对象重新分配并移动到不同的节点。
当节点被添加到数据网格或从数据网格移除时,可以使用一致性哈希来避免数据对象的节点重分配。在一致性哈希中,哈希函数用于将对象和节点随机映射到单位圆(例如,相对于水平轴以hash(o)(mod 360°)的角)。每个对象o被分配给出现在圆上的下一节点(例如,以顺时针顺序)。这提供了对象到节点的均匀分布。如果节点不能容纳特定的对象(例如,在节点没有足够的存储器的情况下),该对象可以被分配给圆上的下一节点。此外,如果节点出现故障(并因此从单位圆中移除),则只有该节点拥有的对象被重分配给下一节点(例如,取决于一致性哈希算法,以顺时针或逆时针顺序)。类似地,如果新节点被启用,该节点可以被添加到单位圆中,并且只有该节点拥有的对象被重分配。重要的是,当添加或移除节点时,绝大多数对象保持它们先前的节点从属关系。除了调整大小之外,数据网格拓扑可以与一致性哈希算法一起使用,以一致地确定对象(例如,数据)将存储在哪个节点上。
客户端(例如,应用)可以向数据网格集群的任何节点发出请求(例如,检索和/或存储数据)。然而,如果请求被发送到集群的非所有者节点,则需要将请求传播到所有者节点以便得到服务。这种重路由是性能问题。为了解决这样的问题,客户端通常配备有逻辑,使得客户端能够确定正确的所有者节点,从而将请求直接发送给所有者节点。
然而,使用容器编排服务(诸如Red等)来管理的容器集群旨在与应用无关。这些容器编排服务控制软件实例,并使用它们自己的请求路由逻辑。通常,这种路由逻辑使用常见的服务,诸如负载平衡器/节点端口(LoadBalancer/Nodeport)或路由/入口(Route/Ingress)。虽然这种与应用无关的服务在可靠性方面可能是有益的,但是由于简单的路由逻辑,路由逻辑可能会打破上述客户端逻辑的行为,导致路由效率低下。例如,对于给定的客户端请求,负载平衡器可以采用循环逻辑,随机选择将请求路由到其的节点。这通常会导致请求从一个节点传播到另一个节点,直到找到所有者节点。
这里描述的是可以在容器编排者管理的集群上执行的反向代理服务器,其智能地将客户端请求路由到数据网格的适当所有者节点。反向代理服务器可以解析每个传入的客户端请求,以确定该请求中包括的键值。反向代理服务器可以将键值输入到哈希函数中,以确定键值的哈希值。反向代理服务器可以重复查验(ping)数据网格以确定当前数据网格拓扑。反向代理服务器可以使用当前数据网格拓扑来执行一致性哈希算法,以基于当前数据网格拓扑来确定将哈希值空间的每个段映射到节点所有者的段到所有者映射。因此,在计算键的哈希值之后,反向代理服务器可以查找一个或多个所有者节点并相应地路由请求。
有利的是,将智能路由从客户端移动到反向代理服务器避免了容器编排服务暴露所有数据网格集群节点的需要,这是客户端实现所需要的。此外,使用这里描述的反向代理服务器,客户端不需要在每个相关编程语言中实现完全一致性哈希算法。此外,如果数据网格拓扑发生变化,客户端不需要设置各种网络层。这避免了客户端需要打开和关闭各种节点的套接字。以其他方式,在客户端一致性路由实现中,这些网络层更改需要用每种相关的编程语言来实现。相反,反向代理可以公开一个与编程语言不相关的接口。此外,客户端现在可以利用容器编排服务的其他优势,诸如身份验证层、授权层和扩展。此外,反向代理服务器可以包括用于确定根据当前数据网格拓扑可以实现的进一步效率和/或优化的逻辑。例如,如果反向代理服务器确定有两个数据网格所有者节点可以服务于当前请求,则反向代理服务器可以确定第一所有者节点能够以相对于第二所有者节点更少的延迟处理当前请求(例如,基于反向代理服务器和所有者节点之间的跳数、网络拥塞、吞吐量、缓冲水平等)。
图1是根据本公开的各种示例的系统100的框图,该系统包括使用反向代理服务器140从基于容器的计算节点集群(包括集群节点102a、102b、…、102n)请求数据的客户端设备144。系统100可以包括数据网格集群101的基于容器的计算节点集群(包括集群节点102a、102b、…、102n)。集群可以使用容器编排服务(诸如Red或)来管理。在各种示例中,数据网格集群101的节点和/或其他设备(例如,客户端设备144)可以被配置为经由网络104(例如,互联网、局域网等)彼此通信。
集群节点102a可以执行反向代理服务器140,该反向代理服务器140可以有效地使用一致性哈希逻辑142和当前数据网格拓扑141将从客户端设备144接收的请求路由到数据网格集群101的所有者节点,如下面进一步详细描述的。集群节点102a可以使用软件、硬件和/或它们的一些组合来实现。在图1所描绘的示例中,集群节点102a可以包括一个或多个物理主机,这些物理主机包括物理主机110A。物理主机110A又可以包括一个或多个物理处理器(例如,CPU 112A),其通信耦合到一个或多个存储器设备(例如,MD 114A、MD 114B)和一个或多个输入/输出设备(例如,I/O 116A)。如这里所使用的,一个或多个物理处理器112A指的是能够执行编码算术、逻辑和/或I/O操作的指令的设备。在一个说明性示例中,处理器可以遵循冯·诺依曼(Von Neumann)架构模型,并且可以包括算术逻辑单元(arithmetic logic unit,ALU)、控制单元和多个寄存器。在一示例中,处理器可以是单核处理器,其通常能够一次执行一个指令(或者处理单一指令流水线),或者可以同时执行多个指令和/或线程的多核处理器。在另一示例中,处理器可以被实现为单一集成电路、两个或更多个集成电路,或者可以是多芯片模块的组件(例如,其中单个微处理器管芯被包括在单一集成电路封装中并因此共享单一插座)。处理器也可以被称为中央处理单元(centralprocessing unit,CPU)。
如本文所讨论的,存储器设备114A-114B指的是易失性或非易失性存储器设备,诸如RAM、ROM、EEPROM或能够存储数据的任何其他设备。在一示例中,存储器设备114A可以是持久存储设备,诸如硬盘驱动器(hard drive disk,HDD)、固态驱动器(solid statedrive,SSD)和/或持久存储器(例如,非易失性双列直插式存储器模块(Non-Volatile DualIn-line Memory Module,NVDIMM)。存储器设备114A-114B可以另外包括数据的复制,以防止由于任何一个设备中的故障而导致的数据丢失。这种复制可以通过例如独立磁盘冗余阵列(redundant array of independent disks,RAID)设置来实现。RAID阵列可以设计为提高性能、提供实时数据备份,或者两者兼而有之。如本文所讨论的,一个或多个I/O设备116A是指能够在一个或多个处理器引脚和外部设备之间提供接口的设备,其操作基于处理器输入和/或输出二进制数据。一个或多个CPU 112A可以使用各种技术互连,从点对点处理器互连到系统区域网络,诸如基于以太网的网络。物理主机110A内的本地连接,包括处理器112A和存储器设备114A-114B之间以及处理器112A和I/O设备116A之间的连接,可以由合适架构的一个或多个本地总线提供,例如外围组件互连(peripheral component interconnect,PCI)。
在一示例中,物理主机110A可以运行一个或多个隔离的客户,例如,VM 122,其又可以托管附加的虚拟环境(例如VM和/或容器)。在一示例中,容器(例如,存储容器160a、服务容器150A-150B)可以是使用任何形式的操作系统级虚拟化的隔离客户,例如,Redcontainers、chroot、-VServer、Jails、Containers(SRP)、VMware等。存储容器160a和/或服务容器150A-150B可以直接在主机操作系统(例如,主机OS 118)上运行,或者在另一虚拟化层内运行,例如,在虚拟机(例如,VM 122)中运行。在一示例中,执行统一功能的容器可以被一起分组在可以一起部署的容器集群中(例如,在舱中)。在一示例中,给定的服务可能需要在多个物理位置部署多个VM、容器和/或舱。在一示例中,VM 122可以是在物理主机110A上执行的VM。
其他节点(例如,集群节点102b、…、102n)可以存储各种数据作为数据网格集群101的一部分。因此,在各种示例中,其他集群节点102b、…、102n中的每一个可以部署一个或多个存储容器。在图1所描绘的示例中,集群节点102b部署了存储容器160b,集群节点102n部署了存储容器160n。
集群节点102a可以通过在硬件之上和VM 122之下执行软件层(例如,管理程序120)来运行一个或多个VM(例如,VM 122),如图1示意性示出。在一示例中,管理程序120可以是在物理主机110A上执行的相应主机操作系统118的组件,例如,实现为主机操作系统118的基于内核的虚拟机功能。在另一示例中,管理程序120可以由运行在主机操作系统118A上的应用提供。在一示例中,管理程序120可以直接在物理主机110A上运行,而不需要管理程序120下面的操作系统。管理程序120可以虚拟化物理层,包括处理器、存储器和I/O设备,并将该虚拟化作为设备呈现给虚拟机122,包括虚拟中央处理单元(virtual centralprocessing unit,VCPU)190A、虚拟存储器设备(virtual memory device,VMD)192A、虚拟输入/输出(virtual input/output,VI/O)设备194A和/或客户存储器195A。在一示例中,另一虚拟客户(例如,VM或容器)可以直接在主机OS 118上执行,而不需要虚拟化的中间层。
在一示例中,VM 122可以是虚拟机,并且可以执行客户操作系统196A,其可以利用底层VCPU 190A、VMD 192A和VI/O 194A。处理器虚拟化可以通过管理程序120在物理CPU112A上调度时隙来实现,使得从客户操作系统的角度来看,这些时隙被调度在虚拟处理器190A上。VM 122可以运行在底层硬件和主机操作系统118上的任何类型的依赖、独立、兼容和/或不兼容的应用上。管理程序120可以管理主机操作系统118的存储器以及分配给VM122和客户操作系统196A的存储器,诸如提供给客户OS 196A的客户存储器195A。在一示例中,存储容器160a和/或服务容器150A、150B可以类似地实现。
在一示例中,除了由存储容器160a提供的分布式存储之外,存储控制器还可以管理专用存储节点(例如,NAS、SAN等)中的数据网格存储。在一示例中,存储控制器可以在具有预先配置的性能特性的大型逻辑单元(例如,存储节点170A)中部署存储。在一示例中,对给定存储节点(例如,存储节点170A)的访问可以在帐户和/或租户级别上被控制。在一示例中,服务容器(例如,服务容器150A-150B)可以需要应用数据的持久存储,并且可以向编排器请求具有持久存储声明的持久存储。在该示例中,存储控制器可以通过存储节点(例如,存储节点170A)以持久存储卷的形式将存储分配给服务容器150A-150B。在一示例中,服务容器150A-150B的持久存储卷可以被分配给定存储节点(例如,存储节点170A)的存储容量和吞吐量的一部分。在各种示例中,存储容器160和/或服务容器150A-150B可以部署作为分布在跨多个集群的计算服务的一部分的计算资源(例如,存储、缓存等)。
在图1所描绘的示例中,客户端设备144可以向反向代理服务器140发送请求122(例如,检索数据或存储数据的请求)。请求122可以包括键值124(例如,键值对的键)。反向代理服务器140可以将键值124输入到哈希函数中,该哈希函数可以输出哈希值。另外,如下面进一步详细描述的,反向代理服务器140可以使用当前数据网格拓扑141和一致性哈希逻辑142来生成段到所有者的映射,该映射将每个哈希值(段)映射到数据网格集群101的特定集群节点102b…102n。因此,反向代理服务器140可以使用从键值124确定的哈希值从段到所有者映射中查找一个或多个所有者节点。此后,反向代理服务器140可以向集群节点102b,…,102n中的一个或多个适当的集群节点发送请求。在请求122是检索数据的情况下,检索到的数据126可以从所有者节点发送到反向代理服务器140。反向代理服务器140可以将检索到的数据126发送到客户端设备144。
图2是示出根据本公开的各种示例的由在基于容器的集群上执行的反向代理服务器204执行的操作的框图200。如图2所示,客户端202可以被配置为与使用容器编排服务管理的基于容器的集群(例如,被管理的基于容器的集群201)通信。在各种示例中,反向代理服务器204可以包括存储指令的非暂时性计算机可读介质,当由至少一个处理器组件执行时,这些指令可以被配置为执行这里描述的各种数据网格路由技术和/或一致性哈希技术。
被管理的基于容器的集群201可以执行反向代理服务器204,并且可以提供部署在包括节点206a、…、206n的多个集群节点上的数据网格。反向代理服务器204可以是“反向的”代理,因为与传统代理相反,在传统代理中,数据从集群或其他网络内部发送到外部,反向代理从集群/网络外部接收指向集群/网络内节点的数据。一旦从客户端202接收到检索数据的请求,反向代理服务器204可以解析该请求以提取包括在该请求中的键(框208)。反向代理服务器204可以将键输入到将键值转换为哈希值的哈希函数中。因此,反向代理服务器204可以使用哈希函数计算对应于键的哈希值(框210)。反向代理服务器204可以确定当前数据网格拓扑(框212)。在一示例中,每当节点被启用(例如,实例化)、移除(例如,“回收”)或发生故障时,数据网格可以向当前数据网格拓扑发送更新。例如,反向代理服务器可以经由事件驱动架构订阅,以每当在拓扑更新时接收当前数据网格拓扑。因此,在数据网格拓扑发生变化时,数据网格可以向反向代理服务器发送指示数据网格拓扑的变化的消息。在其他示例中,反向代理服务器204可以周期性地从数据网格请求当前数据网格拓扑。
在框214,反向代理服务器204可以使用一致性哈希算法来确定所有者节点。例如,哈希值空间(例如,可以使用哈希函数计算的哈希值的范围(例如,范围从0-MAX_HASH_VALUE的整数))可以被划分为段号(SEGMENTS_NUM)。可以根据数据网格的可用节点的当前数量(和当前拓扑)使用一致性哈希算法将段映射到数据网格的当前节点,以生成段到所有者的映射,该映射将每个段映射到一个或多个所有者节点。反向代理服务器204可以通过针对与键相对应的哈希值HV计算适当段S来确定给定键的所有者节点。哈希值HV的段S可以计算为S=round(HV*SEGMENTS_NUM/MAX_HASH_VALUE)。该段然后可以用于在段到所有者的映射中查找一个或多个所有者节点。
在框216,客户端请求可被发送到所有者节点,并可以用于检索数据或写入数据(取决于请求)。客户端请求可以包括键值对的键、所请求的操作(例如,获取、放置、删除等)、值(用于放置操作)、有效期或最大空闲时间(如果特定的数据网格实现了数据到期)。该键可以用于从所有者节点检索数据。检索到的数据可以返回到反向代理服务器。在框218,反向代理服务器204可以将检索到的数据返回给客户端202。因此,在反向代理服务器204充当与数据网格的单一联系的情况下,从客户端202的角度来看,似乎数据是直接从反向代理服务器204检索的。
图3示出了根据本公开的各种示例的用于使用容器编排服务管理的集群的分布式数据网格路由的示例过程300的流程图。尽管参考图3所示出的流程图描述了示例性过程300,但是应当理解,可以使用执行与过程300相关联的动作的许多其他方法。例如,这些框中的一些的顺序可以改变,某些框可以与其他框组合,框可以重复,并且所描述的框中的一些可以是可选的。过程300可以通过处理逻辑来执行,该处理逻辑可以包括硬件(电路、专用逻辑等)、软件或两者的组合。在一些示例中,过程300的框中描述的动作可以表示一系列指令,这些指令包括由一个或多个计算设备的一个或多个处理单元可执行的计算机可读机器代码。在各种示例中,计算机可读机器代码可以包括从一个或多个计算设备的本机指令集和/或操作系统(或系统)中选择的指令。
示例过程300包括由反向代理服务器确定基于容器的计算节点集群的当前数据网格拓扑(框310)。例如,可以确定数据网格的当前节点(部署在被管理的基于容器的集群上)以及指示网络拓扑的信息(例如,哪些节点被配置为彼此通信和/或处于哪些分层级别)。在各种示例中,反向代理服务器可以查验数据网格,以便接收当前数据网格拓扑(例如,可以查验提供用于确定关于数据网格的信息的接口的数据网格节点)。
在一示例中,过程300可以包括由反向代理服务器从客户端设备接收检索第一数据的第一请求(框315)。例如,客户端设备可以请求由数据网格存储的数据。该请求可以包括与键值对相关联的键。该请求可以经由暴露在被管理的基于容器的集群之外的反向代理服务器的接口来接收。
在一示例中,过程300可以包括解析第一请求以确定包括在第一请求中的键值对的键(框320)。在各种示例中,反向代理服务器可以包括有效解析请求以识别与键相关联的字段的逻辑。可以根据这里描述的技术提取键来路由请求。在一示例中,过程300可以包括使用键计算哈希值(框325)。哈希值可以使用预定义的哈希函数来计算。特定的哈希函数是特定于实现的。哈希函数的示例包括安全哈希算法(Secure Hash Algorithm,SHA)Curl系列等。
在一示例中,过程300可以包括使用由反向代理服务器执行的一致性哈希算法来确定与哈希值相关联的节点(框330)。例如,如前所述,可以基于最大哈希值来计算段号。可以将段号划分为当前节点(使用当前数据网格拓扑来确定)。当前哈希值的段可以通过将哈希值乘以段号与最大哈希值的比率来计算(并且通过舍入到最近的段)(例如,S=round(HV*SEGMENTS_NUM/MAX_HASH_VALUE))。该段可用于查找使用一致性哈希算法和当前网络拓扑确定的段到所有者映射中的节点所有者。
在一示例中,过程300可以包括向节点发送第一请求(框335)。例如,反向代理服务器可以向在框330识别的每个所有者节点发送第一请求。一个或多个所有者节点可以使用包括在第一请求中的键来查找所请求的第一数据(由键-值对关联),并且可以将第一数据返回给反向代理服务器。因此,在框340,反向代理服务器可以从一个或多个所有者节点接收第一数据。在框345,反向代理服务器可以向客户端设备发送第一数据。例如,反向代理服务器可以响应于包括键值的客户端请求发送第一数据。
图4A、图4B示出了根据本公开的各个方面的由在基于容器的集群上执行的分布式数据网格存储的数据的示例请求和检索的流程图400。尽管下面的示例是参考图4A和图4B中所示的流程图来描述的,但可以理解,可以使用执行与图4A和4B相关联的动作的许多其他方法。例如,这些框中的一些的顺序可以改变,某些框可以与其他块组合,并且所描述的这些框中的一些是可选的。这些方法可以通过处理逻辑来执行,处理逻辑可以包括硬件(电路、专用逻辑等)、软件或两者的组合。
反向代理服务器404(例如,在使用容器编排服务管理的基于容器的计算节点集群上执行)可以请求由集群提供的数据网格的数据网格拓扑(框408)。在一些示例中,反向代理服务器404可以周期性地请求数据网格拓扑。可以请求数据网格拓扑,使得反向代理服务器404可以使用一致性哈希算法来确定将请求路由到的一个或多个适当的所有者节点,如下面进一步详细描述的。
数据网格存储节点406(例如,在与反向代理服务器404相同的集群上执行的数据网格的节点)可以接收该请求(框410),并且可以向反向代理服务器404发送当前数据网格拓扑(框412)。在一些示例中,每当数据网格拓扑发生变化时(例如,当数据网格节点被启用和/或回收时),数据网格存储节点406可以发送当前数据网格拓扑。反向代理服务器404可以基于由数据网格存储节点406提供的当前数据网格拓扑来更新网格拓扑(例如,存储在与反向代理服务器404相关联的存储器中)(框414)。
在各种示例中,反向代理服务器404可以确定哈希值空间(例如,在反向代理服务器404的配置期间定义的),该哈希值空间包括指定的哈希函数和使用该哈希函数可以计算的哈希值的范围(例如,范围从0-MAX_HASH_VALUE的整数)。表示最大哈希值的整数(例如,MAX_HASH_VALUE)可以被划分为段号(SEGMENTS_NUM),这些段号又可以被划分为数据网格的可用节点(使用从数据网格存储节点406接收的当前数据网格拓扑)。将段划分成数据网格的可用节点可用于生成段到所有者的映射,该映射将段(或哈希值)映射到数据网格内的所有者节点。每当数据网格拓扑被更新时,段到所有者的映射可以被更新。
如水平虚线416所指示,可以是经过一些时间。在框418,客户端设备402可以生成检索第一数据的请求。该请求可以包括键值对的键。该请求可以被发送到反向代理服务器404(框420)。在一些示例中,反向代理服务器404可以公开接口,并且可以在接口处接收请求。在框422,反向代理服务器404可以接收请求。反向代理服务器404可以解析请求以提取键值对的键(框424)。例如,反向代理服务器404可以确定请求的有效载荷的被指定用于键的字段以识别该键。
反向代理服务器404可以将键输入哈希函数以计算哈希值(框426)。在各种示例中,哈希值可以用于确定与哈希值相关联的段。哈希值HV的段S可以计算为S=round(HV*SEGMENTS_NUM/MAX_HASH_VALUE)。
反向代理服务器404可以使用一致性哈希算法和当前数据网格拓扑来计算一个或多个所有者节点(框428)。例如,如上所述,反向代理服务器404可以使用一致性哈希算法和当前数据网格拓扑生成段到所有者的映射。在计算段号S时,反向代理服务器可以在段到所有者的映射中查找与段号S相关联的一个或多个所有者节点。
处理可以在图4B的框430继续。在框430,反向代理服务器404可以向所确定的一个或多个所有者节点发送客户端请求。在框432,数据网格存储节点406可以接收客户端请求。数据网格存储节点406可以使用包括在客户端请求中的键来查找键值对的值(例如,所请求的数据条目)(框434)。数据网格存储节点406可以将数据值返回给反向代理服务器(框438)。例如,数据网格存储节点406可以使用由容器编排软件的控制平面提供的集群内通信来将数据值发送回反向代理服务器404。反向代理服务器404可以接收数据值(框440),并且可以响应于客户端请求将数据值发送到请求客户端(框442)。在框444,客户端设备402可以接收所请求的数据。虽然没有具体示出,但是相同的过程可以用于经由反向代理服务器404在数据网格中存储数据。
图5是根据本公开的示例的在基于容器的计算节点502集群上执行并与客户端设备512通信的反向代理服务器506的框图500。在各种示例中,基于容器的计算节点集群502可以使用容器编排服务504(诸如Red 或)来管理,。基于容器的计算节点集群502可以提供数据网格。
客户端设备512可以向反向代理服务器506发送第一请求514。第一请求514可以是从由基于容器的计算节点集群502提供的数据网格中检索数据的请求,或者可以是在数据网格上存储数据的请求。第一请求514可以包括键值对516的键。键值对516的键可以由反向代理服务器506输入到哈希函数518中。哈希函数518可以响应于键值对516的键输入到哈希函数518中而输出哈希值520。
反向代理服务器506可以接收由基于容器的计算节点集群502提供的数据网格的当前数据网格拓扑510。数据网格可以包括各种数据网格节点,诸如节点508a、508b、…、508n。当前数据网格拓扑510可以描述节点508a、508b、…、508n的拓扑。反向代理服务器506可以生成段到所有者的映射,该映射将哈希值空间的每个段映射到数据网格的节点508a、508b、…、508n中的节点所有者。反向代理服务器506可以使用一致性哈希算法522和哈希值520来确定与哈希值相关联的所有者节点。例如,哈希值520可用于计算段S,该段S可用于在段到所有者的映射中查找所有者节点。此后,第一请求514’可以被发送到所有者节点。在图5所00示的示例中,所有者节点可以是节点508n。节点508n可以使用包括在第一请求514’中的键来检索与第一请求514’相关联的数据。在该示例中,数据可以是第一数据524。第一数据524可以从节点508n发送到反向代理服务器506。此后,反向代理服务器506可以响应于第一请求514向客户端设备512发送第一数据524’。
应当理解,这里描述的公开的方法和过程的全部可以使用一个或多个计算机程序或组件来实现。这些组件可以作为任何常规计算机可读介质或机器可读介质(包括易失性或非易失性存储器,例如RAM、ROM、闪存、磁盘或光盘、光存储器或其他存储介质)上的一系列计算机指令来提供。指令可以作为软件或固件提供,和/或可以全部或部分在硬件组件(诸如ASICs、FPGAs、DSPs或任何其他类似设备)中实现。这些指令可以由一个或多个处理器执行,当执行该系列计算机指令时,这些处理器执行或促进所公开的方法和过程的全部或部分的执行。
应当理解,对这里描述的示例实施例的各种改变和修改对于本领域技术人员来说是显而易见的。在不脱离本主题的精神和范围并且不减少其预期优点的情况下,可以进行这样的改变和修改。因此,旨在所附权利要求涵盖了这些变化和修改。
Claims (20)
1.一种系统,包括:
使用容器编排服务管理的基于容器的计算节点集群;以及
在基于容器的计算节点集群上执行的反向代理服务器,所述反向代理服务器被配置为:
确定基于容器的计算节点集群的当前数据网格拓扑;
从客户端设备接收第一请求以从基于容器的计算节点集群检索第一数据,所述第一请求包括键值对的键;
通过将键输入哈希函数来计算哈希值;
至少部分基于当前数据网格拓扑,确定与哈希值相关联的基于容器的计算节点集群中的至少一个节点;
向所述至少一个节点发送第一请求;
响应于第一请求,从所述至少一个节点接收第一数据;以及
向客户端设备发送第一数据。
2.根据权利要求1所述的系统,其中,所述反向代理服务器有效地使用由反向代理服务器执行的一致性哈希算法来确定与哈希值相关联的基于容器的计算节点集群中的所述至少一个节点。
3.根据权利要求1所述的系统,其中,所述反向代理服务器有效地:
从容器编排服务接收消息,所述消息指示新节点已经被部署在基于容器的计算节点集群上;以及
基于消息更新当前数据网格拓扑。
4.根据权利要求1所述的系统,其中,所述反向代理服务器还被配置为使用一致性哈希算法和基于容器的计算节点集群的当前数据网格拓扑来确定向其发送第一请求的所述至少一个节点。
5.根据权利要求1所述的系统,其中,所述反向代理服务器还被配置成:
从客户端设备接收第二请求以在基于容器的计算节点集群上存储第二数据;
使用一致性哈希算法和当前数据网格拓扑,确定基于容器的计算节点集群中的至少第一节点以在所述第一节点上存储第二数据;以及
向第一节点发送第二数据,其中第一节点被配置为存储第二数据。
6.根据权利要求1所述的系统,其中,所述反向代理服务器还被配置成:
确定哈希值与第一节点和第二节点相关联;
使用当前数据网格拓扑确定第二节点能够相对于第一节点以更少的延迟处理第一请求;以及
向第一节点发送第一请求。
7.根据权利要求1所述的系统,其中,所述反向代理服务器将第一请求发送到容器编排服务的认证层。
8.根据权利要求7所述的系统,其中,所述反向代理服务器还被配置为:
向客户端设备公开接口;以及
在接口处从客户端设备接收第一请求,所述第一请求还包括将第一请求发送到容器编排服务的认证和授权层的指令。
9.一种方法,包括:
由反向代理服务器确定基于容器的计算节点集群的当前数据网格拓扑,所述反向代理服务器在使用容器编排服务管理的基于容器的计算节点集群上执行;
由反向代理服务器从客户端设备接收第一请求以从基于容器的计算节点集群检索第一数据,所述第一请求包括键值对的键;
由反向代理服务器通过将键输入哈希函数来计算哈希值;
由反向代理服务器至少部分基于当前数据网格拓扑来确定与哈希值相关联的基于容器的计算节点集群中的至少一个节点;
由反向代理服务器向所述至少一个节点发送第一请求;
响应于第一请求,由反向代理服务器从至少一个节点接收第一数据;以及
向客户端设备发送第一数据。
10.根据权利要求9所述的方法,还包括使用由反向代理服务器执行的一致性哈希算法来确定与所述哈希值相关联的基于容器的计算节点集群中的所述至少一个节点。
11.根据权利要求9所述的方法,还包括:
由反向代理服务器接收来自容器编排服务的消息,所述消息指示新节点已经被部署或者节点已经故障;以及
由反向代理服务器基于消息更新当前数据网格拓扑。
12.根据权利要求9所述的方法,还包括由所述反向代理服务器使用一致性哈希算法和基于容器的计算节点集群的当前数据网格拓扑来确定向其发送第一请求的所述至少一个节点。
13.根据权利要求9所述的方法,还包括:
由反向代理服务器从客户端设备接收第二请求以在基于容器的计算节点集群上存储第二数据;
由反向代理服务器使用一致性哈希算法和当前数据网格拓扑来确定基于容器的计算节点集群中的至少第一节点以在所述第一节点上存储第二数据;以及
由反向代理服务器向第一节点发送第二数据,其中第一节点被配置为存储第二数据。
14.根据权利要求9所述的方法,还包括:
由反向代理服务器确定哈希值与第一节点和第二节点相关联;
由反向代理服务器使用当前数据网格拓扑确定第二节点能够相对于第一节点以更少的延迟处理第一请求;以及
由反向代理服务器向第一节点发送第一请求。
15.根据权利要求9所述的方法,还包括将第一请求发送到容器编排服务的认证层。
16.根据权利要求15所述的方法,还包括:
由反向代理服务器向客户端设备公开接口;以及
在接口处从客户端设备接收第一请求,所述第一请求还包括将第一请求发送到容器编排服务的认证和授权层的指令。
17.一种存储程序的非暂时性机器可读介质,所述程序在由处理器执行时,使得在基于容器的计算节点集群上执行的反向代理服务器:
确定基于容器的计算节点集群的当前数据网格拓扑;
从客户端设备接收第一请求以从基于容器的计算节点集群检索第一数据,所述第一请求包括键值对的键,其中使用容器编排服务来管理基于容器的计算节点集群;
通过将键输入哈希函数来计算哈希值;
由反向代理服务器至少部分基于当前数据网格拓扑来确定与哈希值相关联的基于容器的计算节点集群中的至少一个节点;
向所述至少一个节点发送第一请求;
响应于第一请求,从所述至少一个节点接收第一数据;以及
向客户端设备发送第一数据。
18.如权利要求17所述的非暂时性机器可读介质,所述程序在由处理器执行时,还使得代理服务器使用由反向代理服务器执行的一致性哈希算法来确定与哈希值相关联的基于容器的计算节点集群中的所述至少一个节点。
19.如权利要求17所述的非暂时性机器可读介质,所述程序在由处理器执行时,还使得代理服务器:
接收来自容器编排服务的消息,所述消息指示新节点已经被部署或者节点已经故障;以及
根据消息更新当前数据网格拓扑。
20.根据权利要求17所述的非暂时性机器可读介质,所述程序在由处理器执行时,还使得代理服务器使用一致性哈希算法和基于容器的计算节点集群的当前数据网格拓扑来确定向其发送第一请求的所述至少一个节点。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/468,257 | 2021-09-07 | ||
US17/468,257 US12015540B2 (en) | 2021-09-07 | Distributed data grid routing for clusters managed using container orchestration services |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115774599A true CN115774599A (zh) | 2023-03-10 |
Family
ID=78709256
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111401794.9A Pending CN115774599A (zh) | 2021-09-07 | 2021-11-19 | 用于使用容器编排服务管理的集群的分布式数据网格路由 |
Country Status (2)
Country | Link |
---|---|
EP (1) | EP4145801A1 (zh) |
CN (1) | CN115774599A (zh) |
-
2021
- 2021-11-19 EP EP21209172.2A patent/EP4145801A1/en active Pending
- 2021-11-19 CN CN202111401794.9A patent/CN115774599A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4145801A1 (en) | 2023-03-08 |
US20230074530A1 (en) | 2023-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11838199B1 (en) | System and method for deploying, scaling and managing network endpoint groups in cloud computing environments | |
US11216314B2 (en) | Dynamic reallocation of resources in accelerator-as-a-service computing environment | |
US10896064B2 (en) | Coordinated, topology-aware CPU-GPU-memory scheduling for containerized workloads | |
US20180375936A1 (en) | Containerized high-performance network storage | |
US10055239B2 (en) | Resource optimization recommendations | |
US9582221B2 (en) | Virtualization-aware data locality in distributed data processing | |
US10387179B1 (en) | Environment aware scheduling | |
KR100834340B1 (ko) | 서버 최적화 방법과 시스템 및 컴퓨터 판독 가능한 저장매체 | |
US9501325B2 (en) | System and method for shared utilization of virtualized computing resources | |
US10110450B2 (en) | Monitoring element hierarchies in a cloud computing system | |
US11650856B2 (en) | Federated operator for edge computing network | |
US20160380832A1 (en) | Host management across virtualization management servers | |
US11487591B1 (en) | Automatically configuring execution of a containerized application | |
US20200396306A1 (en) | Apparatuses and methods for a distributed message service in a virtualized computing system | |
US10237346B2 (en) | Maintaining partition-tolerant distributed metadata | |
Vig et al. | An efficient distributed approach for load balancing in cloud computing | |
US11886898B2 (en) | GPU-remoting latency aware virtual machine migration | |
US10250455B1 (en) | Deployment and management of tenant services | |
US10969959B2 (en) | Effective resynchronization in virtual storage area network using dynamic partitioning and data deduplication techniques | |
US10789088B2 (en) | Peer-to-peer license enforcement in virtualized computing environments | |
US9584594B2 (en) | Dynamic provisioning of processing resources in a virtualized computational architecture | |
US11561824B2 (en) | Embedded persistent queue | |
JP2010205208A (ja) | ホストコンピュータ、マルチパスシステム、パス割当方法およびプログラム | |
US11928517B2 (en) | Feature resource self-tuning and rebalancing | |
US12015540B2 (en) | Distributed data grid routing for clusters managed using container orchestration services |
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 |