CN113067824B - 数据调度方法、系统、虚拟主机及计算机可读存储介质 - Google Patents
数据调度方法、系统、虚拟主机及计算机可读存储介质 Download PDFInfo
- Publication number
- CN113067824B CN113067824B CN202110304428.5A CN202110304428A CN113067824B CN 113067824 B CN113067824 B CN 113067824B CN 202110304428 A CN202110304428 A CN 202110304428A CN 113067824 B CN113067824 B CN 113067824B
- Authority
- CN
- China
- Prior art keywords
- data
- load balancing
- address
- request message
- data request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
Abstract
本申请涉及云计算,提供一种数据调度方法、系统、虚拟主机及计算机可读存储介质,该方法包括:接收负载均衡服务器分配的数据请求报文,数据请求报文是由负载均衡服务器改写客户端发送的数据请求消息的IP选项字段而生成的;根据数据请求报文中的IP选项字段,生成数据请求报文的连接跟踪信息;通过数据请求报文确定客户端请求的数据资源,并结合数据请求报文和数据资源,生成数据资源消息;根据与数据资源消息匹配的连接跟踪信息,将数据资源消息调度至客户端。本申请能够提高负载均衡的实用性和普适性。
Description
技术领域
本申请涉及云计算的技术领域,尤其涉及一种数据调度方法、系统、虚拟主机及计算机可读存储介质。
背景技术
云计算通过对计算、网络、存储等各种物理资源的虚拟化抽象,为用户提供了方便的资源使用方式。负载均衡是云产品的一项基本功能,通过流量分发来提升应用系统的服务能力,并通过消除单点故障来提升应用系统的可用性。传统的负载均衡方法应用到云产品中时,具有如LVS-NAT模式、LVS-DR模式和LVS-TUN模式等多种工作模式。然而,这些工作模式都存在各自的缺点,如不能查看客户端的源地址、数据来回路径都经过负载均衡服务器,导致负载较大等,因此不能满足不同租户的需求,普适性不高。
发明内容
本申请的主要目的在于提供一种数据调度方法、系统、虚拟主机及计算机可读存储介质,旨在优化当前负载均衡的工作流程,提高负载均衡的实用性和普适性,从而提高用户体验。
第一方面,本申请提供一种数据调度方法,应用于虚拟主机,包括:
接收负载均衡服务器分配的数据请求报文,所述数据请求报文是由所述负载均衡服务器改写客户端发送的数据请求消息的IP选项字段而生成的;
根据所述数据请求报文中的IP选项字段,生成所述数据请求报文的连接跟踪信息;
通过所述数据请求报文确定所述客户端请求的数据资源,并结合所述数据请求报文和所述数据资源,生成数据资源消息;
根据与所述数据资源消息匹配的所述连接跟踪信息,将所述数据资源消息调度至所述客户端。
第二方面,本申请还提供一种数据调度系统,所述数据调度系统包括客户端、负载均衡服务器和虚拟主机,其中:
所述客户端,用于生成数据资源的数据请求消息,并将所述数据请求消息发送至所述负载均衡服务器;
所述负载均衡服务器,用于接收客户端发送的数据请求消息,基于所述数据请求消息为所述客户端分配虚拟主机,并改写所述数据请求消息的IP选项字段,得到数据请求报文;
所述虚拟主机,用于接收所述负载均衡服务器分配的数据请求报文,并根据所述数据请求报文中的IP选项字段,生成所述数据请求报文的连接跟踪信息;
所述虚拟主机,还用于通过所述数据请求报文确定所述客户端请求的数据资源,并结合所述数据请求报文和所述数据资源,生成数据资源消息;
所述虚拟主机,还用于根据与所述数据资源消息匹配的所述连接跟踪信息,将所述数据资源消息调度至所述客户端。
第三方面,本申请还提供一种虚拟主机,所述虚拟主机包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的计算机程序,其中所述计算机程序被所述处理器执行时,实现如上所述的数据调度方法的步骤。
第四方面,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其中所述计算机程序被处理器执行时,实现如上所述的数据调度方法的步骤。
本申请提供一种数据调度方法、系统、虚拟主机及计算机可读存储介质,本申请通过接收负载均衡服务器分配的数据请求报文,数据请求报文是由负载均衡服务器改写客户端发送的数据请求消息的IP选项字段而生成的,然后根据数据请求报文中的IP选项字段,生成数据请求报文的连接跟踪信息,之后通过数据请求报文确定客户端请求的数据资源,并结合数据请求报文和数据资源,生成数据资源消息,最后根据与数据资源消息匹配的连接跟踪信息,将数据资源消息调度至客户端。本方案中的数据请求报文和数据资源消息都携带源地址,虚拟主机和客户端可直接查看到源地址,本方案的负载均衡架构对底层网络没有要求,能够满足负载均衡的互联互通、异地部署和横向扩展的要求,同时负载均衡服务器只处理单向流入流量,无需处理流出流量,能够有效降低负载,提高工作性能,进一步满足不同租户的需求,提高负载均衡的实用性和普适性。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种数据调度方法的步骤流程示意图;
图2为图1中的数据调度方法的子步骤流程示意图;
图3为实施本实施例提供的一TCP/IP报文的示意图;
图4为实施本实施例提供的数据调度方法的一场景示意图;
图5为实施本实施例提供的数据请求报文的处理流程图;
图6为实施本实施例提供的数据资源消息的处理流程图;
图7为本申请实施例提供的一种数据调度系统的示意性框图;
图8为本申请实施例提供的一种虚拟主机的结构示意性框图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。另外,虽然在装置示意图中进行了功能模块的划分,但是在某些情况下,可以以不同于装置示意图中的模块划分。
本申请实施例提供一种数据调度方法、系统、虚拟主机及计算机可读存储介质。其中,该数据调度方法可应用于虚拟主机中,该虚拟主机可以包括防火墙和真实服务器,防火墙例如为netfilter/iptables框架,真实服务器可通过防火墙与负载均衡服务器通信连接。
在传统的负载均衡架构中,不同的模式存在不同的缺点。比如,开源LVS-NAT模式要求流量来回路径一致,负载均衡服务器负载较大;开源LVS-DR模式要求租户VM配置负载均衡服务器的IP地址,用户使用不便;开源LVS-Tunnel模式同样要求租户配置负载均衡服务器的IP地址,同时要求租户解封装隧道;而开源LVS-FullNAT模式无法携带源地址,或者要求租户VM安装TOA模块才能携带源地址。可见,这些工作模式都存在各自的缺点,租户体验不好。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
请参照图1,图1为本申请实施例提供的一种数据调度方法的步骤流程示意图。
如图1所示,该数据调度方法包括步骤S101至步骤S104。
步骤S101、接收负载均衡服务器分配的数据请求报文,数据请求报文是由负载均衡服务器改写客户端发送的数据请求消息的IP选项字段而生成的。
在一实施例中,用户可以通过客户端访问网站,并通过客户端发出获取网站上某个数据资源的数据请求消息。例如,用户点击播放网站上的一个视频资源,即通过客户端发出获取该视频资源的数据请求消息。其中,客户端包括web客户端、游戏客户端和移动客户端等,数据资源包括图片资源、音频资源、视频资源、文字资源或者其他可以在计算机设备中展示的内容等,数据资源可以是单个或者多个,本实施例不做具体限定。
在一实施例中,客户端向负载均衡服务器发送数据请求消息,该数据请求消息例如为一数据报,该数据报中携带有客户端请求获取的数据资源的标识。同时,数据报中还携带有源IP地址和目的IP地址。客户端向负载均衡服务器发送数据请求消息时,数据报中的源IP地址为客户端IP地址(Client IP,CIP),目的IP地址为负载均衡服务器的IP地址,客户端通过该数据请求消息中的目的IP地址发送数据请求消息,使得负载均衡服务器准确地接收客户端发送的数据请求消息。
在一实施例中,负载均衡服务器基于数据请求消息为客户端分配虚拟主机,该虚拟主机存储有客户端请求获取的数据资源。例如,负载均衡服务器基于数据请求消息,根据预设的负载均衡算法确定为客户端分配的虚拟主机;获取虚拟主机的IP地址,得到目标IP地址;将数据请求消息中的目的IP地址由负载均衡服务器的IP地址改写为目标IP地址。其中,源IP地址(客户端IP地址)无需进行修改。目标IP地址可以为虚拟主机中的真实服务器的IP地址(Real Server IP,RSIP),负载均衡算法例如包括轮询算法、加权轮询法、源地址哈希法、最小连接数法、加权随机法等算法,本实施例不做具体限定。
需要说明的是,通过负载均衡服务器为客户端分配虚拟主机,改写数据请求消息中的目的IP地址,使得数据请求消息能够准确地发送给为客户端分配的虚拟主机,负载均衡服务器只负责响应从客户端流入的数据报(流量),无需响应虚拟主机返回客户端的数据报(流量),大大的减轻了负载均衡服务器的负载压力,使得负载均衡服务器不容易达到瓶颈。
在一实施例中,负载均衡服务器接收客户端发送的数据请求消息之后,改写该数据请求消息的IP选项字段,例如将数据请求消息的IP选项(IP option)字段中写入负载均衡服务器的IP地址(Virtual IP,VIP),从而生成数据请求报文。可以理解的是,负载均衡服务器也可以向数据请求消息的IP选项字段写入其他数据。负载均衡服务器在执行目的地址转换时(将数据请求消息中的目的IP地址由负载均衡服务器的IP地址改写为目标IP地址),会丢失掉原来的目的IP地址(负载均衡服务器的IP地址,VIP),通过将负载均衡服务器的IP地址写入对应的数据请求消息的IP选项字段,得到数据请求报文,并发送至虚拟主机,便于虚拟主机知晓分配该数据请求报文的负载均衡服务器,从而无需租户手动配置,增强了源地址获取的便捷性。
在一实施例中,接收负载均衡服务器分配的数据请求报文,包括:接收负载均衡服务器通过交换机转发的数据请求报文。示例性的,交换机与负载均衡服务器、虚拟主机共同组成局域网,虚拟主机通过MAC地址与交换机进行交互,从而能够准确接收交换机转发的负载均衡服务器为该虚拟主机分配的数据请求报文。
步骤S102、根据数据请求报文中的IP选项字段,生成数据请求报文的连接跟踪信息。
其中,虚拟主机可以包括防火墙和真实服务器,虚拟主机例如为宿主机,真实服务器通过防火墙与负载均衡服务器进行TCP连接(Transmission Control Protocol,传输控制协议),防火墙能够根据数据请求报文中的IP选项字段,生成数据请求报文的连接跟踪信息。例如,防火墙为netfilter/iptables框架,能够读取数据请求报文中的IP选项字段,并根据读取到的信息对数据请求报文进行连接跟踪(CONNTRACK),以生成数据请求报文的连接跟踪信息。
在一实施例中,如图2所示,步骤S102包括:子步骤S1021至子步骤S1023。
子步骤S1021、确定数据请求报文中的IP选项字段是否包括负载均衡服务器的IP地址。
虚拟主机中的防火墙具备IP选项字段读取功能,能够读取数据请求报文中的IP选项字段,从而确定IP选项字段是否包括负载均衡服务器的IP地址。需要说明的是,IP选项字段是由负载均衡服务器进行改写的,虚拟主机能够挂载多台负载均衡服务器,根据负载均衡服务器的IP地址的特性,确定IP选项字段是否包括负载均衡服务器的IP地址,便于虚拟主机知晓该数据请求报文是否携带转发的该数据请求报文的负载均衡服务器的源IP地址。
子步骤S1022、若数据请求报文中的IP选项字段包括负载均衡服务器的IP地址,则根据数据请求报文的连接记录项和负载均衡服务器的IP地址,生成第一连接跟踪信息。
其中,连接记录项(Connection entry)包括虚拟主机的主机名和IP地址等信息,如果数据请求报文中的IP选项字段包括负载均衡服务器的IP地址,则表明转发该数据请求报文的负载均衡服务器将自身的IP地址改写到了该数据请求报文的IP选项字段,便于虚拟主机获取转发该数据请求报文的负载均衡服务器的IP地址,而无需租户手动输入,有效避免了负载均衡服务器的IP地址丢失,负载均衡服务器的IP地址可采用任播地址,同时异地部署多台多活,满足无限横向扩展的需求,提高负载均衡的实用性和普适性。
在一实施例中,根据数据请求报文的连接记录项和负载均衡服务器的IP地址,生成第一连接跟踪信息,包括:将负载均衡服务器的IP地址与数据请求报文的连接记录项相关联,得到目标连接记录项;根据目标连接记录项,生成第一连接跟踪信息。其中,第一连接跟踪信息包括数据请求报文的会话信息、源IP地址、目的IP地址和负载均衡服务器的IP地址等信息。需要说明的是,可能出现多个负载均衡服务器的多个IP地址挂载同一个虚拟主机的真实服务器的情况,因此可以通过防火墙,利用连接跟踪conntrack会话进行区分。将负载均衡服务器的IP地址与连接记录项相关联,从而更新连接记录项得到目标连接记录项,目标连接记录项记录有负载均衡服务器的IP地址,根据目标连接记录项生成数据请求报文的第一连接跟踪信息,有利于后续对连接跟踪信息进行认证,避免负载均衡服务器的IP地址丢失,并确定后续的数据资源消息的调度方式。
子步骤S1023、若数据请求报文中的IP选项字段不包括负载均衡服务器的IP地址,则根据数据请求报文的连接记录项,生成第二连接跟踪信息。
若数据请求报文中的IP选项字段不包括负载均衡服务器的IP地址,则无需负载均衡服务器的IP地址与连接记录项相关联,而是直接根据数据请求报文的连接记录项生成第二连接跟踪信息,该第二连接跟踪信息包括数据请求报文的会话信息、源IP地址和目的IP地址等信息,实现数据请求报文的正常转发,无需负载均衡服务器处理流出流量,能够有效降低负载,提高负载均衡服务器的工作性能。
在一实施例中,记录数据请求报文的连接记录项;确定数据请求报文中的IP选项字段是否包括负载均衡服务器的IP地址;若数据请求报文中的IP选项字段包括负载均衡服务器的IP地址,则根据连接记录项和负载均衡服务器的IP地址,生成数据请求报文的连接跟踪信息;若数据请求报文中的IP选项字段不包括负载均衡服务器的IP地址,则根据连接记录项,生成数据请求报文的连接跟踪信息。需要说明的是,记录数据请求报文的连接记录项的步骤顺序可以在确定数据请求报文中的IP选项字段是否包括负载均衡服务器的IP地址的步骤顺序之前,本实施例不做具体限定。
步骤S103、通过数据请求报文确定客户端请求的数据资源,并结合数据请求报文和数据资源,生成数据资源消息。
其中,真实服务器通过数据请求报文中携带的标识确定客户端请求的数据资源,通过数据请求报文和数据资源,生成数据资源消息,数据资源消息例如为一数据报,该数据报中携带有数据资源和报头,报头包括源IP地址与目的IP地址等IP协议地址。
在一实施例中,真实服务器改写数据资源消息中的目的IP地址和源IP地址,具体地,将数据资源消息中的目的IP地址从目标IP地址修改为CIP(客户端IP地址),同时将源IP地址从CIP(客户端IP地址)修改为真实服务器的IP地址。
在一实施例中,数据资源至少包括Cookie文件数据、URI数据和/或HOST数据,Cookie文件数据、URI数据和/或HOST数据存储于区块链中。需要说明的是,为进一步保证数据资源等相关信息的私密和安全性,上述数据资源等相关信息还可以存储于一区块链的节点中,本申请的技术方案还可适用于添加其他存储于区块链上的数据文件,本申请所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
步骤S104、根据与数据资源消息匹配的连接跟踪信息,将数据资源消息调度至客户端。
数据资源消息是基于数据请求报文而生成的,数据请求报文的连接跟踪信息即为与数据资源消息匹配的连接跟踪信息,连接跟踪信息记录有客户端的IP地址,根据与数据资源消息匹配的连接跟踪信息,将数据资源消息调度至客户端,无需经由负载均衡服务器转发,负载均衡服务器只负责响应客户端发送的数据报,无需响应从虚拟主机流出的数据报,大大的减轻了负载均衡服务器的负载压力,提高了调度系统的可靠性和稳定性。
在一实施例中,确定与数据资源消息匹配的连接跟踪信息是否包括负载均衡服务器的IP地址;若与数据资源消息匹配的连接跟踪信息包括负载均衡服务器的IP地址,则根据负载均衡服务器的IP地址对数据资源消息进行源地址转换,并将经源地址转换后的数据资源消息发送至客户端;若与数据资源消息匹配的连接跟踪信息不包括负载均衡服务器的IP地址,则将数据资源消息发送至客户端。
需要说明的是,通过防火墙对数据资源消息进行源地址转换,即将数据资源消息的源IP地址由虚拟主机的IP地址(也即真实服务器的IP地址)改写为负载均衡服务器的IP地址,使得客户端能够获取负载均衡服务器的IP地址,负载均衡服务器可同时异地部署多台。防火墙具备连接跟踪信息的字段识别功能,能够识别与数据资源消息匹配的连接跟踪信息是否包括负载均衡服务器的IP地址,若与数据资源消息匹配的连接跟踪信息不包括负载均衡服务器的IP地址,则将数据资源消息直接发送至客户端,无需经由负载均衡服务器。
其中,根据负载均衡服务器的IP地址对数据资源消息进行源地址转换,包括:根据TCP/IP报文的预设格式,确定数据资源消息的源IP地址的存储位置;在数据资源消息的源IP地址的存储位置处将虚拟主机的IP地址改写为负载均衡服务器的IP地址。通过查找目的IP地址的存储位置可以快速准确地对数据资源消息中的目的IP地址进行改写,有利于数据资源消息的转发。
示例性的,如图3所示,图3为实施本实施例提供的一TCP/IP报文的示意图,通过如图3所示的示意图可以快速查找出源IP地址的存储位置为“目标地址”显示的区块位置,在该区块位置处直接将原始数据改写为代表负载均衡服务器的IP地址的数据,即可完成源IP地址的改写。
在一实施例中,将数据资源消息调度至客户端,包括:通过交换机将数据资源消息转发至客户端。例如,交换机与虚拟主机组成局域网,虚拟主机通过MAC地址与交换机进行交互,并将包括数据资源的数据资源消息发送至交换机,交换机从局域网内交互到虚拟主机,并将虚拟主机发送的包括数据资源的数据资源消息发送给客户端,以便客户端获取数据资源消息中的数据资源。
请参照图4,图4为实施本实施例提供的数据调度方法的一场景示意图。
如图4所示,用户通过客户端10发出获取某个数据资源的数据请求消息,负载均衡服务器20接收客户端10发送的数据请求消息,基于数据请求消息为客户端10分配虚拟主机30,并改写该数据请求消息的IP选项字段而生成,数据请求报文负载均衡服务器20将数据请求报文发送给虚拟主机30,虚拟主机30包括防火墙40和真实服务器50,防火墙40接收负载均衡服务器20分配的数据请求报文,然后根据数据请求报文中的IP选项字段,生成数据请求报文的连接跟踪信息,之后将数据请求报文发送至真实服务器50,真实服务器50通过数据请求报文确定客户端10请求的数据资源,并结合数据请求报文和数据资源,生成数据资源消息,之后将数据资源消息返还至防火墙40,防火墙40根据与数据资源消息匹配的连接跟踪信息,将数据资源消息调度至客户端10。
请参照图5,图5为实施本实施例提供的数据请求报文的处理流程图。
如图5所示,数据请求报文为入向报文。防火墙接收数据请求报文之后,记录数据请求报文的连接记录项;确定数据请求报文中的IP选项字段是否包括负载均衡服务器的IP地址(VIP);若数据请求报文中的IP选项字段包括负载均衡服务器的IP地址,则将负载均衡服务器的IP地址与数据请求报文的连接记录项相关联,以生成第一连接跟踪信息;若数据请求报文中的IP选项字段不包括负载均衡服务器的IP地址,则根据连接记录项生成数据请求报文的第二连接跟踪信息,无需将负载均衡服务器的IP地址与数据请求报文的连接记录项相关联;防火墙将数据请求报文转发至真实服务器。
请参照图6,图6为实施本实施例提供的数据资源消息的处理流程图。
如图6所示,数据资源消息为出向报文。真实服务器接收数据资源消息之后,确定与数据资源消息匹配的连接跟踪信息,并确定与数据资源消息匹配的连接跟踪信息是否包括负载均衡服务器的IP地址;若该连接跟踪信息包括负载均衡服务器的IP地址,则根据负载均衡服务器的IP地址对数据资源消息进行源地址转换,即将数据资源消息的源IP地址由真实服务器的IP地址(RSIP)改写为负载均衡服务器的IP地址(VIP),并将经源地址转换后的数据资源消息发送至客户端;与数据资源消息匹配的连接跟踪信息不包括负载均衡服务器的IP地址,则将数据资源消息发送至客户端。
上述实施例提供的数据调度方法,通过接收负载均衡服务器分配的数据请求报文,数据请求报文是由负载均衡服务器改写客户端发送的数据请求消息的IP选项字段而生成的,然后根据数据请求报文中的IP选项字段,生成数据请求报文的连接跟踪信息,之后通过数据请求报文确定客户端请求的数据资源,并结合数据请求报文和数据资源,生成数据资源消息,最后根据与数据资源消息匹配的连接跟踪信息,将数据资源消息调度至客户端。本方案中的数据请求报文和数据资源消息都携带源地址,虚拟主机和客户端可直接查看到源地址,本方案的负载均衡架构对底层网络没有要求,能够满足负载均衡的互联互通、异地部署和横向扩展的要求,同时负载均衡服务器只处理单向流入流量,无需处理流出流量,能够有效降低负载,提高工作性能,进一步满足不同租户的需求,提高负载均衡的实用性和普适性。
请参照图7,图7为本申请实施例提供的一种数据调度系统的示意性框图。
如图7所示,该数据调度系统200,包括:客户端201、负载均衡服务器202和虚拟主机203。
客户端201,用于生成数据资源的数据请求消息,并将所述数据请求消息发送至所述负载均衡服务器;
负载均衡服务器202,用于接收客户端发送的数据请求消息,基于所述数据请求消息为所述客户端分配虚拟主机,并改写所述数据请求消息的IP选项字段,得到数据请求报文;
虚拟主机203,用于接收所述负载均衡服务器分配的数据请求报文,并根据所述数据请求报文中的IP选项字段,生成所述数据请求报文的连接跟踪信息;
虚拟主机203,还用于通过所述数据请求报文确定所述客户端请求的数据资源,并结合所述数据请求报文和所述数据资源,生成数据资源消息;
虚拟主机203,还用于根据与所述数据资源消息匹配的所述连接跟踪信息,将所述数据资源消息调度至所述客户端。
在一个实施例中,虚拟主机203还用于:
确定所述数据请求报文中的IP选项字段是否包括所述负载均衡服务器的IP地址;
若所述IP选项字段包括所述负载均衡服务器的IP地址,则根据所述数据请求报文的连接记录项和所述IP地址,生成第一连接跟踪信息;
若所述IP选项字段不包括所述负载均衡服务器的IP地址,则根据所述数据请求报文的连接记录项,生成第二连接跟踪信息。
在一个实施例中,虚拟主机203还用于:
将所述IP地址与所述数据请求报文的连接记录项相关联,得到目标连接记录项;
根据所述目标连接记录项,生成所述第一连接跟踪信息。
在一个实施例中,虚拟主机203还用于:
确定与所述数据资源消息匹配的所述连接跟踪信息是否包括所述负载均衡服务器的IP地址;
若与所述数据资源消息匹配的连接跟踪信息包括所述IP地址,则根据所述IP地址对所述数据资源消息进行源地址转换,并将经源地址转换后的所述数据资源消息发送至所述客户端;
若与所述数据资源消息匹配的连接跟踪信息不包括所述IP地址,则将所述数据资源消息发送至所述客户端。
在一个实施例中,虚拟主机203还用于:
根据TCP/IP报文的预设格式,确定所述数据资源消息的源IP地址的存储位置;
在所述数据资源消息的源IP地址的存储位置处将所述虚拟主机的IP地址改写为所述负载均衡服务器的IP地址。
在一个实施例中,虚拟主机203还用于:
接收负载均衡服务器通过交换机转发的数据请求报文;
通过交换机将所述数据资源消息转发至所述客户端。
在一个实施例中,所述数据资源包括Cookie文件数据、URI数据和/或HOST数据,所述Cookie文件数据、URI数据和/或HOST数据存储于区块链中。
需要说明的是,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统具体工作过程,可以参考前述数据调度方法实施例中的对应过程,在此不再赘述。
本申请通过包括客户端、负载均衡服务器和虚拟主机的数据调度系统,数据请求报文和数据资源消息都携带源地址,虚拟主机和客户端可直接查看到源地址,本方案的负载均衡架构对底层网络没有要求,能够满足负载均衡的互联互通、异地部署和横向扩展的要求,同时负载均衡服务器只处理单向流入流量,无需处理流出流量,能够有效降低负载,提高工作性能,进一步满足不同租户的需求,提高负载均衡的实用性和普适性。
上述实施例提供的装置可以实现为一种计算机程序的形式,该计算机程序可以在如图8所示的虚拟主机上运行。
请参阅图8,图8为本申请实施例提供的一种虚拟主机的结构示意性框图。如图8所示,该虚拟主机可以包括防火墙和真实服务器,该防火墙和真实服务器包括通过系统总线连接的处理器、存储器和网络接口,其中,存储器可以包括非易失性存储介质和内存储器。
非易失性存储介质可存储操作系统和计算机程序。该计算机程序包括程序指令,该程序指令被执行时,可使得处理器执行任意一种数据调度方法。
处理器用于提供计算和控制能力,支撑整个虚拟主机的运行。
内存储器为非易失性存储介质中的计算机程序的运行提供环境,该计算机程序被处理器执行时,可使得处理器执行任意一种数据调度方法。
该网络接口用于进行网络通信,如发送分配的任务等。本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的虚拟主机的限定,具体的虚拟主机可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
应当理解的是,处理器可以是中央处理单元(Central Processing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
其中,在一个实施例中,所述处理器用于运行存储在存储器中的计算机程序,以实现如下步骤:
接收负载均衡服务器分配的数据请求报文,所述数据请求报文是由所述负载均衡服务器改写客户端发送的数据请求消息的IP选项字段而生成的;
根据所述数据请求报文中的IP选项字段,生成所述数据请求报文的连接跟踪信息;
通过所述数据请求报文确定所述客户端请求的数据资源,并结合所述数据请求报文和所述数据资源,生成数据资源消息;
根据与所述数据资源消息匹配的所述连接跟踪信息,将所述数据资源消息调度至所述客户端。
在一个实施例中,所述处理器在实现所述根据所述数据请求报文中的IP选项字段,生成所述数据请求报文的连接跟踪信息时,用于实现:
确定所述数据请求报文中的IP选项字段是否包括所述负载均衡服务器的IP地址;
若所述IP选项字段包括所述负载均衡服务器的IP地址,则根据所述数据请求报文的连接记录项和所述IP地址,生成第一连接跟踪信息;
若所述IP选项字段不包括所述负载均衡服务器的IP地址,则根据所述数据请求报文的连接记录项,生成第二连接跟踪信息。
在一个实施例中,所述处理器在实现所述根据所述数据请求报文的连接记录项和所述IP地址,生成第一连接跟踪信息时,用于实现:
将所述IP地址与所述数据请求报文的连接记录项相关联,得到目标连接记录项;
根据所述目标连接记录项,生成所述第一连接跟踪信息。
在一个实施例中,所述处理器在实现所述根据与所述数据资源消息匹配的所述连接跟踪信息,将所述数据资源消息调度至所述客户端时,用于实现:
确定与所述数据资源消息匹配的所述连接跟踪信息是否包括所述负载均衡服务器的IP地址;
若与所述数据资源消息匹配的连接跟踪信息包括所述IP地址,则根据所述IP地址对所述数据资源消息进行源地址转换,并将经源地址转换后的所述数据资源消息发送至所述客户端;
若与所述数据资源消息匹配的连接跟踪信息不包括所述IP地址,则将所述数据资源消息发送至所述客户端。
在一个实施例中,所述处理器在实现所述根据所述IP地址对所述数据资源消息进行源地址转换时,用于实现:
根据TCP/IP报文的预设格式,确定所述数据资源消息的源IP地址的存储位置;
在所述数据资源消息的源IP地址的存储位置处将所述虚拟主机的IP地址改写为所述负载均衡服务器的IP地址。
在一个实施例中,所述处理器在实现所述接收负载均衡服务器分配的数据请求报文时,用于实现:
接收负载均衡服务器通过交换机转发的数据请求报文;
将所述数据资源消息调度至所述客户端,包括:
通过交换机将所述数据资源消息转发至所述客户端。
在一个实施例中,所述数据资源包括Cookie文件数据、URI数据和/或HOST数据,所述Cookie文件数据、URI数据和/或HOST数据存储于区块链中。
需要说明的是,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述虚拟主机的具体工作过程,可以参考前述数据调度方法实施例中的对应过程,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序中包括程序指令,所述程序指令被执行时所实现的方法可参照本申请数据调度方法的各个实施例。
其中,所述计算机可读存储介质可以是前述实施例所述的虚拟主机的内部存储单元,例如所述虚拟主机的硬盘或内存。所述计算机可读存储介质也可以是所述虚拟主机的外部存储设备,例如所述虚拟主机上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。
应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (9)
1.一种数据调度方法,其特征在于,应用于虚拟主机,所述方法包括:
接收负载均衡服务器分配的数据请求报文,所述数据请求报文是由所述负载均衡服务器改写客户端发送的数据请求消息的IP选项字段而生成的;
记录所述数据请求报文的连接记录项,所述连接记录项包括所述虚拟主机的主机名和IP地址;
确定所述数据请求报文中的IP选项字段是否包括所述负载均衡服务器的IP地址;
若所述IP选项字段包括所述负载均衡服务器的IP地址,则根据所述数据请求报文的连接记录项和所述负载均衡服务器的IP地址,生成第一连接跟踪信息;
若所述IP选项字段不包括所述负载均衡服务器的IP地址,则根据所述数据请求报文的连接记录项,生成第二连接跟踪信息;
通过所述数据请求报文确定所述客户端请求的数据资源,并结合所述数据请求报文和所述数据资源,生成数据资源消息;
确定与所述数据资源消息匹配的连接跟踪信息是否包括所述负载均衡服务器的IP地址;其中,所述连接跟踪信息为所述第一连接跟踪信息或第二连接跟踪信息;
若与所述数据资源消息匹配的连接跟踪信息不包括所述负载均衡服务器的IP地址,则根据与所述数据资源消息匹配的所述连接跟踪信息,将所述数据资源消息调度至所述客户端。
2.如权利要求1所述的数据调度方法,其特征在于,所述根据所述数据请求报文的连接记录项和所述负载均衡服务器的IP地址,生成第一连接跟踪信息,包括:
将所述负载均衡服务器的IP地址与所述数据请求报文的连接记录项相关联,得到目标连接记录项;
根据所述目标连接记录项,生成所述第一连接跟踪信息。
3.如权利要求1所述的数据调度方法,其特征在于,所述确定与所述数据资源消息匹配的连接跟踪信息是否包括所述负载均衡服务器的IP地址之后,还包括:
若与所述数据资源消息匹配的连接跟踪信息包括所述负载均衡服务器的IP地址,则根据所述负载均衡服务器的IP地址对所述数据资源消息进行源地址转换,并将经源地址转换后的所述数据资源消息发送至所述客户端。
4.如权利要求3所述的数据调度方法,其特征在于,所述根据所述负载均衡服务器的IP地址对所述数据资源消息进行源地址转换,包括:
根据TCP/IP报文的预设格式,确定所述数据资源消息的源IP地址的存储位置;
在所述数据资源消息的源IP地址的存储位置处将所述虚拟主机的IP地址改写为所述负载均衡服务器的IP地址。
5.如权利要求1-2中任一项所述的数据调度方法,其特征在于,所述接收负载均衡服务器分配的数据请求报文,包括:
接收负载均衡服务器通过交换机转发的数据请求报文;
将所述数据资源消息调度至所述客户端,包括:
通过交换机将所述数据资源消息转发至所述客户端。
6.如权利要求1-4中任一项所述的数据调度方法,其特征在于,所述数据资源包括Cookie文件数据、URI数据和/或HOST数据,所述Cookie文件数据、URI数据和/或HOST数据存储于区块链中。
7.一种数据调度系统,其特征在于,所述数据调度系统包括客户端、负载均衡服务器和虚拟主机,其中:
所述客户端,用于生成数据资源的数据请求消息,并将所述数据请求消息发送至所述负载均衡服务器;
所述负载均衡服务器,用于接收客户端发送的数据请求消息,基于所述数据请求消息为所述客户端分配虚拟主机,并改写所述数据请求消息的IP选项字段,得到数据请求报文;
所述虚拟主机,用于接收所述负载均衡服务器分配的数据请求报文,并记录所述数据请求报文的连接记录项,所述连接记录项包括所述虚拟主机的主机名和IP地址;确定所述数据请求报文中的IP选项字段是否包括所述负载均衡服务器的IP地址;若所述IP选项字段包括所述负载均衡服务器的IP地址,则根据所述数据请求报文的连接记录项和所述负载均衡服务器的IP地址,生成第一连接跟踪信息;若所述IP选项字段不包括所述负载均衡服务器的IP地址,则根据所述数据请求报文的连接记录项,生成第二连接跟踪信息;
所述虚拟主机,还用于通过所述数据请求报文确定所述客户端请求的数据资源,并结合所述数据请求报文和所述数据资源,生成数据资源消息;
所述虚拟主机,还用于确定与所述数据资源消息匹配的连接跟踪信息是否包括所述负载均衡服务器的IP地址;其中,所述连接跟踪信息为所述第一连接跟踪信息或第二连接跟踪信息;若与所述数据资源消息匹配的连接跟踪信息不包括所述负载均衡服务器的IP地址,则根据与所述数据资源消息匹配的所述连接跟踪信息,将所述数据资源消息调度至所述客户端。
8.一种虚拟主机,其特征在于,所述虚拟主机包括防火墙和真实服务器,所述防火墙和真实服务器包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的计算机程序,其中所述计算机程序被所述处理器执行时,实现如权利要求1至6中任一项所述的数据调度方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,其中所述计算机程序被处理器执行时,实现如权利要求1至6中任一项所述的数据调度方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110304428.5A CN113067824B (zh) | 2021-03-22 | 2021-03-22 | 数据调度方法、系统、虚拟主机及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110304428.5A CN113067824B (zh) | 2021-03-22 | 2021-03-22 | 数据调度方法、系统、虚拟主机及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113067824A CN113067824A (zh) | 2021-07-02 |
CN113067824B true CN113067824B (zh) | 2023-04-07 |
Family
ID=76562819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110304428.5A Active CN113067824B (zh) | 2021-03-22 | 2021-03-22 | 数据调度方法、系统、虚拟主机及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113067824B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116633934A (zh) * | 2022-02-10 | 2023-08-22 | 华为云计算技术有限公司 | 负载均衡方法、装置、节点及存储介质 |
CN116846896A (zh) * | 2023-09-01 | 2023-10-03 | 中航金网(北京)电子商务有限公司 | 一种报文处理方法、装置、物理机及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102523302A (zh) * | 2011-12-26 | 2012-06-27 | 成都市华为赛门铁克科技有限公司 | 虚拟机集群的负载均衡方法、服务器及系统 |
CN106302225A (zh) * | 2016-10-18 | 2017-01-04 | 上海优刻得信息科技有限公司 | 一种服务器负载均衡的方法与装置 |
CN110708393A (zh) * | 2019-10-21 | 2020-01-17 | 北京百度网讯科技有限公司 | 用于传输数据的方法、装置和系统 |
CN111147583A (zh) * | 2019-12-27 | 2020-05-12 | 杭州迪普科技股份有限公司 | 一种http重定向重写方法及装置 |
CN111866064A (zh) * | 2016-12-29 | 2020-10-30 | 华为技术有限公司 | 一种负载均衡的方法、装置和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10419330B2 (en) * | 2016-07-21 | 2019-09-17 | Alibaba Group Holding Limited | Express route transmissions between virtual machines and cloud service computing devices |
-
2021
- 2021-03-22 CN CN202110304428.5A patent/CN113067824B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102523302A (zh) * | 2011-12-26 | 2012-06-27 | 成都市华为赛门铁克科技有限公司 | 虚拟机集群的负载均衡方法、服务器及系统 |
CN106302225A (zh) * | 2016-10-18 | 2017-01-04 | 上海优刻得信息科技有限公司 | 一种服务器负载均衡的方法与装置 |
CN111866064A (zh) * | 2016-12-29 | 2020-10-30 | 华为技术有限公司 | 一种负载均衡的方法、装置和系统 |
CN110708393A (zh) * | 2019-10-21 | 2020-01-17 | 北京百度网讯科技有限公司 | 用于传输数据的方法、装置和系统 |
CN111147583A (zh) * | 2019-12-27 | 2020-05-12 | 杭州迪普科技股份有限公司 | 一种http重定向重写方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113067824A (zh) | 2021-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11956207B2 (en) | Multi-tenant aware dynamic host configuration protocol (DHCP) mechanism for cloud networking | |
US11095711B2 (en) | DNS Resolution of internal tenant-specific domain addresses in a multi-tenant computing environment | |
US10412156B1 (en) | Techniques for utilizing network destination identifiers simultaneously announced from multiple locations | |
JP7085565B2 (ja) | 分離されたネットワークスタックにわたるインテリジェントなスレッド管理 | |
US9374316B2 (en) | Interoperability for distributed overlay virtual environment | |
CN109032755B (zh) | 一种容器服务托管系统及提供容器服务的方法 | |
US9501345B1 (en) | Method and system for creating enriched log data | |
US9374241B2 (en) | Tagging virtual overlay packets in a virtual networking system | |
US8230050B1 (en) | Providing access to configurable private computer networks | |
CN107196982B (zh) | 一种用户请求的处理方法和装置 | |
US9705847B2 (en) | Management server and management method thereof for managing cloud appliances in virtual local area networks | |
US20140207930A1 (en) | Independent network interfaces for virtual network environments | |
US20150188802A1 (en) | System for supporting multi-tenant based on private ip address in virtual private cloud networks and operating method thereof | |
JP2013533689A (ja) | 分散型仮想ネットワーク・ゲートウェイ | |
CN113067824B (zh) | 数据调度方法、系统、虚拟主机及计算机可读存储介质 | |
US10230795B2 (en) | Data replication for a virtual networking system | |
US11595306B2 (en) | Executing workloads across multiple cloud service providers | |
CN108337116A (zh) | 消息保序方法及装置 | |
US9641611B2 (en) | Logical interface encoding | |
CN113301144B (zh) | Nginx服务器的并发访问处理方法、装置、服务器及存储介质 | |
CN110636149B (zh) | 远程访问方法、装置、路由器及存储介质 | |
US9929951B1 (en) | Techniques for using mappings to manage network traffic | |
CN112449012B (zh) | 数据资源调度方法、系统、服务器及读存储介质 | |
US10958580B2 (en) | System and method of performing load balancing over an overlay network | |
CN107483520B (zh) | 一种网络附属存储实例处理的方法和装置 |
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 |