CN114221873B - 基于Linux系统的数据处理方法、装置及系统 - Google Patents
基于Linux系统的数据处理方法、装置及系统 Download PDFInfo
- Publication number
- CN114221873B CN114221873B CN202111503118.2A CN202111503118A CN114221873B CN 114221873 B CN114221873 B CN 114221873B CN 202111503118 A CN202111503118 A CN 202111503118A CN 114221873 B CN114221873 B CN 114221873B
- Authority
- CN
- China
- Prior art keywords
- flow control
- rule
- type
- devices
- control rule
- 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
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0209—Architectural arrangements, e.g. perimeter networks or demilitarized zones
Abstract
本发明公开了一种基于Linux系统的数据处理方法、装置及系统,预先将本地机房中的一部分设备设置为包含第一类设备和第二类设备的本地设备,一部分设备设置为异地模拟设备,该方法应用于第一类设备,该方法包括:基于预定规则利用第一类设备Linux系统中的流控模块设置具有延时传输数据包功能的流控规则,基于流控规则为第一类设备的防火墙设置数据包传输规则,并为第一类设备设置具有流控规则的虚拟网卡,基于防火墙的数据包传输规则将数据包发送至异地模拟设备;通过具有流控规则的虚拟网卡接收来自异地模拟设备的数据包,以此在本地机房中模拟异地机房的数据传输过程。通过本发明,可以较为准确地模拟异地机房之间的网络通信。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种基于Linux系统的数据处理方法、装置及系统。
背景技术
在对分布式系统的高可用测试中,常常涉及到多活和多AZ(Availability Zone,可用区)的场景,这些AZ分布在不同机房中,可能跨城市或地区;无论是同城多AZ,还是异地多活,都涉及到长物理距离下分布式应用进行网络通信会产生较长延迟的问题,物理距离越长,延迟越高,整体延迟分布在几ms(毫秒)到几十ms之间。这些因为物理距离产生的延时对于分布式应用可能会产生很大的影响,尤其是当出现AZ整体出现问题或多数节点出现问题时。这些影响包括分布式应用整体处理业务延时大幅度上升,TPS(Transaction PerSecond,每秒事务处理量)下降,数据复制失败(分布式数据库服务)等问题,进而影响用户用户体验。
因此,在测试阶段,对这些异地网络通信进行测试是很有必要的。但是在测试过程中,往往很难用实际的异地环境来进行测试,因此一般采用在本地Linux机器上,通过增加对应网络通信延时的方法来解决。
目前最普遍的在Linux上模拟网络延迟的方法就是通过tc模块来实现的,通过在其根目录下添加rootqdisc来实现。但是该方法虽然可以达到模拟网络延迟的作用,但其使用场景简单,具有很多缺陷,其中最大的缺陷是该方法会对所有使用eth0网卡的请求都延时100ms,不区分网段,不区分ip,不区分出入口流量,所有请求一律无差别延迟,这与真实的网络通信情况差异较大不符,从而无法模拟异地网络环境。
发明内容
有鉴于此,本发明提供一种基于Linux系统的数据处理方法、装置及系统,以解决上述提及的至少一个问题。
根据本发明的第一方面,提供一种基于Linux系统的数据处理方法,预先将本地机房中的一部分设备设置为包含第一类设备和第二类设备的本地设备,一部分设备设置为异地模拟设备,所述方法应用于所述第一类设备,所述方法包括:
基于预定规则利用所述第一类设备Linux系统中的流控模块设置具有延时传输数据包功能的流控规则,基于所述流控规则为所述第一类设备的防火墙设置数据包传输规则,并为所述第一类设备设置具有所述流控规则的虚拟网卡,
基于所述防火墙的数据包传输规则将数据包发送至所述异地模拟设备;
通过具有所述流控规则的虚拟网卡接收来自所述异地模拟设备的数据包,以此在本地机房中模拟异地机房的数据传输过程。
进一步地,将本地机房中的一部分设备设置为本地设备之后,所述方法还包括:
基于Linux系统为所述第一类设备创建包含目标网段地址或目标IP地址的地址集合;
将所述异地模拟设备所在的网段地址或IP地址加入到所述地址集合中。
进一步地,基于所述流控规则为所述第一类设备的防火墙设置数据包传输规则之前,所述方法还包括:
基于Linux系统为所述防火墙创建自定义链;
将所述流控规则和所述地址集合挂载到所述自定义链上。
进一步地,上述方法还包括:
将所述自定义链挂载到所述防火墙的输出链上。
具体地,为所述第一类设备设置具有所述流控规则的虚拟网卡包括:
为所述第一类设备创建所述虚拟网卡,其中,在所述虚拟网卡的输出链上设置所述流控规则。
具体地,基于预定规则利用所述第一类设备Linux系统中的流控模块设置所述流控规则包括:
基于预定的延时规则利用所述流控模块创建流控规则,其中,所述流控规则还包括:基于公平算法的流量调度规则,该流量调度规则应用于所述第一类设备与所述第二类设备之间的数据传输过程。
根据本发明的第二方面,提供一种基于Linux系统的数据处理装置,预先将本地机房中的一部分设备设置为包含第一类设备和第二类设备的本地设备,一部分设备设置为异地模拟设备,所述装置设置于所述第一类设备,所述装置包括:
流控规则设置单元,用于基于预定规则利用所述第一类设备Linux系统中的流控模块设置具有延时传输数据包功能的流控规则;
数据包传输规则设置单元,用于基于所述流控规则为所述第一类设备的防火墙设置数据包传输规则;
虚拟网卡设置单元,用于为所述第一类设备设置具有所述流控规则的虚拟网卡;
数据发送单元,用于基于所述防火墙的数据包传输规则将数据包发送至所述异地模拟设备;
数据接收单元,用于通过具有所述流控规则的虚拟网卡接收来自所述异地模拟设备的数据包,以此在本地机房中模拟异地机房的数据传输过程。
进一步地,所述装置还包括:
地址集合设置单元,用于基于Linux系统为所述第一类设备创建包含目标网段地址或目标IP地址的地址集合;
地址加入单元,用于将所述异地模拟设备所在的网段地址或IP地址加入到所述地址集合中。
进一步地,所述装置还包括:
自定义链创建单元,用于基于Linux系统为所述防火墙创建自定义链;
规则挂载单元,用于将所述流控规则和所述地址集合挂载到所述自定义链上。
进一步地,所述装置还包括:
自定义链挂载单元,用于将所述自定义链挂载到所述防火墙的输出链上。
具体地,所述虚拟网卡设置单元具体用于:
为所述第一类设备创建所述虚拟网卡,其中,在所述虚拟网卡的输出链上设置所述流控规则。
具体地,所述流控规则设置单元具体用于:
基于预定的延时规则利用所述流控模块创建流控规则,其中,所述流控规则还包括:基于公平算法的流量调度规则,该流量调度规则应用于所述第一类设备与所述第二类设备之间的数据传输过程。
优选地,所述装置还包括:
删除单元,用于删除所述流控规则、所述数据包传输规则和所述虚拟网卡。
根据本发明的第三方面,提供一种基于Linux系统的数据处理系统,所述系统包括:上述的基于Linux系统的数据处理装置、第二类设备以及异地模拟设备。
根据本发明的第四方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法的步骤。
根据本发明的第五方面,提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
由上述技术方案可知,通过基于预定规则利用第一类设备Linux系统中的流控模块设置具有延时传输数据包功能的流控规则,并基于所述流控规则为所述第一类设备的防火墙设置数据包传输规则,同时为所述第一类设备设置具有所述流控规则的虚拟网卡,可以实现第一类设备与异地模拟设备之间的数据传输上的延迟,从而可以较为准确地模拟异地机房之间的网络通信,提高了分布式系统测试的准确度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是相关技术中的分布式系统中各模块的场景示意图;
图2是根据本发明实施例的基于Linux系统的数据处理方法的流程图;
图3是根据本发明实施例的异地机房模拟示意图;
图4是根据本发明实施例的流量控制处理规则T的示意图;
图5是根据本发明实施例的模拟异地机房通信方式示意图;
图6是根据本发明实施例的构建模拟异地机房的流程示意图;
图7是根据本发明实施例的分布式系统架构示意图;
图8是根据本发明实施例的环境恢复流程图;
图9是根据本发明实施例的基于Linux系统的数据处理系统的结构框图;
图10是根据本发明实施例的基于Linux系统的数据处理装置的结构框图;
图11为本发明实施例的电子设备600的系统构成的示意框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在实现本申请的过程中,申请人发现如下相关技术:
网络的IP服务模型是尽力而为的,这样的模型不能体现某些流量的重要性,所以诞生了QoS技术,Linux很早就提供了流量控制接口,其对应的命令行工具就是tc(TrafficControl,流量控制),tc中包含qsidc(queueing discipline)队列规则、class(类)控制策略和filter过滤选择策略三部分,其中qdisc用于决定何时以及如何发送报文,class和filter制定策略。
目前最普遍的在Linux上模拟网络延迟的方法就是通过tc模块来实现的,通过在其根目录下添加rootqdisc来实现,具体规则设置举例如下:
tc qdisc add dev eth0 root netem delay 100ms
上述命令表示:通过添加tc规则,将所有使用eth0网卡的请求都延时100ms。
上述方法虽然也可以达到模拟网络延迟的作用,但其使用场景简单,具有很多缺陷,其中最大的缺陷是该方法会对所有使用eth0网卡的请求都延时100ms,不区分网段,不区分ip,不区分出入口流量,所有请求一律无差别延迟。这会带来很多问题,如,参见图1所示,一个分布式系统模块A需要同时与B、C模块进行通信,其中只有C模块是异地模块,如果使用以上方法,要么A对B、C都有延时,要么都没有延时,显然无法模拟上述图1所示的场景。而对于真正的分布式环境来说,其复杂程度往往比上述举例更加复杂,因此,需要一种能够准确模拟异地机房之间的网络通信方案。
基于此,本发明实施例提供一种基于Linux系统的数据处理方案,该方案能够较为准确地模拟异地机房之间的网络通信,提高了分布式系统测试的准确度。
在本发明实施例中,可以预先将本地机房中的一部分设备设置为包含第一类设备和第二类设备的本地设备,一部分设备设置为异地模拟设备,其中,第一类设备与异地模拟设备构成异地机房场景。以下结合附图来详细描述本发明实施例。
图2是根据本发明实施例的基于Linux系统的数据处理方法的流程图,如图2所示,该方法包括:
步骤201,基于预定规则利用所述第一类设备Linux系统中的流控模块(流量控制模块)设置具有延时传输数据包功能的流控规则,基于所述流控规则为所述第一类设备的防火墙设置数据包传输规则,并为所述第一类设备设置具有所述流控规则的虚拟网卡。
需要说明的是,Linux流量控制模块(简称为流控模块)是一种利用软件或硬件方式来实现对Linux系统下网络流量控制的模块。它的最主要方法,是引入QoS(Quality ofService,服务质量)的概念,从通过为不同类型的网络数据包标记,从而决定数据包通行的优先次序。
Linux流控模块可以针对某种类别的数据流,可以为它赋予某个级别的传输优先级,来标识它的相对重要性,并使用设备所提供的各种优先级转发策略、拥塞避免等机制为这些数据流提供特殊的传输服务。对流控模块的合理配置能够有效地分配网络带宽,更加合理地利用网络资源。
上述涉及到的防火墙(iptables)技术是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内、外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术。iptables是与最新的3.5版本Linux内核集成的IP信息包过滤系统,netfilter/iptables组成Linux平台下的包过滤防火墙,通常用于完成封包过滤、封包重定向和网络地址转换(NAT)等功能。
通过步骤201,可以完成异地机房场景的模拟,之后可以执行如下步骤202和203,以模拟异地机房的数据传输过程。
步骤202,基于所述防火墙的数据包传输规则将数据包发送至所述异地模拟设备;
步骤203,通过具有所述流控规则的虚拟网卡接收来自所述异地模拟设备的数据包,以此在本地机房中模拟异地机房的数据传输过程。
通过基于预定规则利用第一类设备Linux系统中的流控模块设置具有延时传输数据包功能的流控规则,并基于所述流控规则为所述第一类设备的防火墙设置数据包传输规则,同时为所述第一类设备设置具有所述流控规则的虚拟网卡,可以实现第一类设备与异地模拟设备之间的数据传输上的延迟,从而可以较为准确地模拟异地机房之间的网络通信,提高了分布式系统测试的准确度。
在实际操作中,在将本地机房中的一部分设备设置为本地设备之后,可以基于Linux系统为上述第一类设备创建包含目标网段地址或目标IP地址的地址集合;之后将所述异地模拟设备所在的网段地址或IP地址加入到所述地址集合中。
之后,可以基于Linux系统为防火墙创建自定义链;并将上述流控规则和所述地址集合挂载到所述自定义链上,随后,将自定义链挂载到所述防火墙的输出(OUTPUT)链上,以此可以实现基于流控规则为第一类设备的防火墙设置数据包传输规则。如此,可以实现从第一类设备发出的数据包到异地模拟设备会有与流控规则相应的延迟。
在实际操作中,由于流控规则无法附加在防火墙的输入(INPUT)链上,因此需要为第一类设备创建虚拟网卡,并在虚拟网卡的输出(OUTPUT)链上设置所述流控规则。如此,可以实现从异地模拟设备发出的数据包到第一类设备会有与流控规则相应的延迟。
在一个实施例中,可以基于预定的延时规则利用上述流控模块创建流控规则,该流控规则包括:用于第一类设备与异地模拟设备之间延迟传输数据包的规则,还包括:基于公平算法的流量调度规则,该流量调度规则可以应用于所述第一类设备与所述第二类设备之间的数据传输过程。
为了更好地理解本发明,以下结合图3的示例来详细描述本发明实施例。
图3是本地机房模拟异地机房的示例图,如图3所示,先将机器(即,设备)分成两批,一批表示本地机房的机器(A1-An),统称为A,另一批表示异地机房的机器(B1-Bn),统称为B,在这两批机器上部署了相同或不同的分布式应用程序C,C使用端口D。
如果从A中任选一台机器Ax,从A1发出的请求,到A中除Ax外其他机器上D端口没有延时,而到B机房机器上D端口有一个因为模拟距离不同而产生的不同延时M;同时,A中除Ax外其他机器上的响应到Ax无延时,而B机房机器上的响应到Ax有因为模拟距离不同而产生的不同延时M,则达到了模拟异地机房进行通信的效果。其中,Ax对应于上述的第一类设备,A中除Ax外的其他设备对应于上述的第二类设备,B对应于上述的异地模拟设备。
Linux流控模块具有流量整形(Traffic Shaping)和调度功能,流量整形通过令牌桶机制可以限制网络包通过的速率,而调度功能则可以按照网络包的优先级来对数据包进行调度,将两者结合,最终可以达到对网络包进行延时的效果。
需要说明的是,令牌桶算法是网络流量整形和速率限制(Rate Limiting)中最常使用的一种算法。在典型情况下,令牌桶算法用来控制发送到网络上的数据的数目,并允许突发数据的发送。大小固定的令牌桶可自行以恒定的速率源源不断地产生令牌。如果令牌不被消耗,或者被消耗的速度小于产生的速度,令牌就会不断地增多,直到把桶填满。后面再产生的令牌就会从桶中溢出。最后桶中可以保存的最大令牌数永远不会超过桶的大小。
Linux防火墙机制可以进行网络数据包识别、过滤或进行内容修改、网络地址转换等,将Linux防火墙机制中的数据包识别功能与上述Linux流控机制中的流量整形和调度功能进行整合,即可达到对特定的网络数据包(如制定ip、端口等)进行延时的效果,即可以实现对异地机房的模拟。
以下将对实现过程进行详细讲解,在该示例中,延迟规则均在Ax中建立。图4是流量控制处理规则T的示意图,其中,延时M(M为时间)调度器具有延迟时间为M的功能,所有使用延时M调度器处理的数据包均会被延迟M。
以下结合图4和图5所示的模拟异地机房通信方式,具体描述规则T的制定流程:
1、创建一个PRIO类型调度器(有类排队规则)。
2、在调度器中包含默认的3个子调度器,其调度规则为sfq。
3、最后再创建一个新的子调度器同样挂载在PRIO调度器下,其功能为增加延时M。
4、防火墙中包含5种链,本示例主要涉及到的是OUTPUT(输出)链,OUTPUT链位于Linux内核空间中,所有从用户空间服务往外发出的数据包均需要经过OUTPUT链来做转发。在本示例中,在OUTPUT链上新建一条规则F,该规则规定所有目标地址是B的数据包都使用上述制定的流量控制处理规则T,这样可以使Ax->B的请求增加延时M。
5、由于流控规则无法附加在INPUT(输入)链上,因此对于响应的延时,需要在Ax上新建一个虚拟网卡,在虚拟网卡上的OUTPUT(输出)链上新建一条规则F,让所有目标地址是Ax的数据包都使用上述制定的流量控制处理规则T,这样可以使B->Ax的请求增加延时M。
通过以上步骤即可达到模拟异地机房进行通信的效果。
由于linux流量控制接口对应的命令行工具就是tc(traffic control),而iptables则是位于用户空间的可操作linux内核防火墙的命令行工具,因此以下以tc和iptables为例,结合图6来说明如何在真实的场景中构建模拟异地机房,参见图6,整体流程包括以下3个步骤:
1、创建包含目标网段或ip地址的ipset,该目标网段或ip地址可对应于上述图3中机器B的网段或ip地址;
2、使用Linux流控模块创建模拟延时的tc规则,tc规则可参见图4所示;
3、使用上述1和2中的内容创建防火墙iptables规则,具体创建流程可参见图5。
在一个实例中,参见图7所示的网络架构,共有ABC三台设备,在模拟异地场景时,假设A设备在甲地区,BC设备在乙地区,需要模拟从A到BC设备上的因为异地造成的延时3ms,具体操作如下,以下操作均在A设备(对应于上述的第一类设备)上进行:
1、创建一个ipset,类型为hash:net或hash:ip,前者表示ipset中包含的是网段,后者表示ipset中包含的是ip,以下以hash:net为例说明:
(1)创建一个名为DELAY_IPSET的ipset:
ipset create DELAY_IPSET hash:net
(2)将目标子网段(即BC所在子网段)加入该ipset中:
ipset add DELAY_IPSET xxx.xxx.xxx.xxx/16
2、创建tc规则,用于制造网络延时:
(1)创建一个tcqdisc根节点,使用prio算法,其中,eth0为需要模拟异地需求所使用的网卡,该网卡可根据需要替换:
tc qdisc add dev eth0 root handle 1:prio bands 4 priomap 1 2 2 2 1 20 0 1 1 1 1 1 1 1 1
(2)创建根节点下的3个普通qdisc叶子节点,默认使用sfq公平算法对流量进行调度,可参见图4所示:
tc qdisc add dev eth0 parent 1:1 handle 2:sfq
tc qdisc add dev eth0 parent 1:2 handle 3:sfq
tc qdisc add dev eth0 parent 1:3 handle 4:sfq
(3)创建根节点下最后一个带延时规则的qdisc叶子节点,规则中3000表示3ms:
tc qdisc add dev eth0 parent 1:4 handle 5:netem delay 3000
3、创建防火墙规则
(1)创建一条名为DELAY-TABLE的自定义链:
Iptables-w-N DELAY-TABLE
(2)将上述步骤1和2中创建的ipset和tc规则挂载到该自定义链上:
Iptables-w-A DELAY-TABLE-m set--match-set DELAY_IPSET dst-jCLASSIFY--set-class 1:4-w 5
(3)将自定义链DELAY-TABLE挂载到OUTPUT链上:
Iptables-w-A OUTPUT-j DELAY-TABLE
由此即可配置完成,此时无论是从A发往BC设备的请求还是从BC设备发往A设备的请求,均会延时3ms,即可模拟异地机房进行网络通信,而不会影响A机器与本地其他机器之间的通信。
其他类似的模拟场景可在上述场景的基础上对上述指令进行调整,如:
1)针对多个单独ip进行模拟,可以修改ipset中的类型为hash:ip,依次将目标ip加入新创建的ipset中即可;
ipset add DELAY_IPSET dst_ip1
ipset add DELAY_IPSET dst_ip2
……
2)模拟的延时根据实际情况会有不同,此时将tc规则中最后一条改成对应延时即可:
tc qdisc add dev eth0 parent 1:4handle 5:netem delay目标延时;
3)不同机器或服务使用的网卡不同,此时需要将步骤2的tc规则中所涉及到的网卡全部改成实际使用的网卡。
在实际操作中,在完成场景模拟之后,需要恢复环境,图8示出了恢复环境的流程,如图8所示,恢复流程包括:
1、删除ipset:
ipset destroy DELAY_IPSET
2、删除tc规则
3、删除对应的iptables规则,具体包括:
(1)删除OUTPUT链中对于自定义链的引用,其中,下述1是该条规则在OUTPUT表中的位置:
iptables-D OUTPUT 1
(2)清空自定义链中规则:
iptables-F DELAY-TABLE
(3)删除自定义链:
iptables-X DELAY-TABLE
由以上描述可知,本发明实施例结合Linux流控模块和Linux防火墙模块,提供了一种linux上的可模拟异地机房进行网络通信的方法。其中,Linux流控模块负责对数据包增加延时,Linux防火墙模块负责识别本次需要延时的数据包,并将上述流控模块的规则应用到这些数据包上,以达到对制定数据包做网络延时以模拟异地机房进行通信的效果。本发明实施例可以较大地降低操作难度,且可以针对特定网段或IP进行操作,从而在测试的同时不影响部署在相同机器上的其他进程或服务。
在实际操作中,本发明实施例基于Linux自带流控模块和防火墙模块的实现,既可以通过命令行工具来简单实现,也可以通过程序调度接口等方式实现,对于其他组件没有依赖,通用性强,使得在任何类unix系统上都可以简单地模拟异地机房的网络通信情况。
通过模拟异地机房网络通信情况,可以覆盖分布式系统在传统高可用测试中难以覆盖到或难以进行实际操作的异地多活场景(如同城双机房、两地三中心等),进一步保障了分布式系统的高可用性,提升了其在异常条件下的稳定性。
基于相似的发明构思,本发明实施例还提供一种基于Linux系统的数据处理系统,图9是该系统的结构框图,如图9所示,该系统包括:基于Linux系统的数据处理装置1、第二类设备2以及异地模拟设备3,其中,数据处理装置1可用于实现上述基于Linux系统的数据处理方法,该数据处理装置1位于上述的第一类设备,第一类设备、第二类设备2和异地模拟设备3位于同一本地机房,其中,第一类设备和异地模拟设备3用于模拟异地机房场景。
图10是数据处理装置1的结构框图,如图10所示,该数据处理装置1包括:流控规则设置单元11、数据包传输规则设置单元12、虚拟网卡设置单元13、数据发送单元14和数据接收单元15,其中:
流控规则设置单元11,用于基于预定规则利用所述第一类设备Linux系统中的流控模块设置具有延时传输数据包功能的流控规则。
该流控规则设置单元11具体用于:基于预定的延时规则利用所述流控模块创建流控规则,其中,所述流控规则还包括:基于公平算法的流量调度规则,该流量调度规则应用于所述第一类设备与所述第二类设备之间的数据传输过程。
数据包传输规则设置单元12,用于基于所述流控规则为所述第一类设备的防火墙设置数据包传输规则。
虚拟网卡设置单元13,用于为所述第一类设备设置具有所述流控规则的虚拟网卡。
虚拟网卡设置单元13具体用于:为所述第一类设备创建所述虚拟网卡,其中,在所述虚拟网卡的输出链上设置所述流控规则。
数据发送单元14,用于基于所述防火墙的数据包传输规则将数据包发送至所述异地模拟设备。
数据接收单元15,用于通过具有所述流控规则的虚拟网卡接收来自所述异地模拟设备的数据包,以此在本地机房中模拟异地机房的数据传输过程。
通过流控规则设置单元11基于预定规则利用第一类设备Linux系统中的流控模块设置具有延时传输数据包功能的流控规则,数据包传输规则设置单元12基于所述流控规则为所述第一类设备的防火墙设置数据包传输规则,同时虚拟网卡设置单元13为所述第一类设备设置具有所述流控规则的虚拟网卡,从而数据发送单元14和数据接收单元15可以实现第一类设备与异地模拟设备之间的延迟数据传输,从而可以较为准确地模拟异地机房之间的网络通信,提高了分布式系统测试的准确度。
在实际操作中,上述装置还包括:地址集合设置单元和地址加入单元,其中:
地址集合设置单元,用于基于Linux系统为所述第一类设备创建包含目标网段地址或目标IP地址的地址集合;
地址加入单元,用于将所述异地模拟设备所在的网段地址或IP地址加入到所述地址集合中。
上述装置还包括:自定义链创建单元、规则挂载单元和自定义链挂载单元,其中:
自定义链创建单元,用于基于Linux系统为所述防火墙创建自定义链;
规则挂载单元,用于将所述流控规则和所述地址集合挂载到所述自定义链上;
自定义链挂载单元,用于将所述自定义链挂载到所述防火墙的输出链上。
在具体实施时,上述装置还包括:删除单元,用于删除所述流控规则、所述数据包传输规则和所述虚拟网卡。如此,可以将模拟场景恢复为现状。
上述各单元的具体执行过程,可以参见上述方法实施例中的描述,此处不再赘述。
在实际操作中,上述各单元可以组合设置、也可以单一设置,本发明不限于此。
本实施例还提供一种电子设备,该电子设备可以是台式计算机、平板电脑及移动终端等,本实施例不限于此。在本实施例中,该电子设备可以参照上述方法实施例进行实施及基于Linux系统的数据处理装置/系统的实施例进行实施,其内容被合并于此,重复之处不再赘述。
图11为本发明实施例的电子设备600的系统构成的示意框图。如图11所示,该电子设备600可以包括中央处理器100和存储器140;存储器140耦合到中央处理器100。值得注意的是,该图是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
一实施例中,基于Linux系统的数据处理功能可以被集成到中央处理器100中,预先将本地机房中的一部分设备设置为包含第一类设备和第二类设备的本地设备,一部分设备设置为异地模拟设备。其中,中央处理器100可以被配置为进行如下控制:
基于预定规则利用所述第一类设备Linux系统中的流控模块设置具有延时传输数据包功能的流控规则,基于所述流控规则为所述第一类设备的防火墙设置数据包传输规则,并为所述第一类设备设置具有所述流控规则的虚拟网卡,
基于所述防火墙的数据包传输规则将数据包发送至所述异地模拟设备;
通过具有所述流控规则的虚拟网卡接收来自所述异地模拟设备的数据包,以此在本地机房中模拟异地机房的数据传输过程。
从上述描述可知,本申请实施例提供的电子设备,通过基于预定规则利用第一类设备Linux系统中的流控模块设置具有延时传输数据包功能的流控规则,并基于所述流控规则为所述第一类设备的防火墙设置数据包传输规则,同时为所述第一类设备设置具有所述流控规则的虚拟网卡,可以实现第一类设备与异地模拟设备之间的数据传输上的延迟,从而可以较为准确地模拟异地机房之间的网络通信,提高了分布式系统测试的准确度。
在另一个实施方式中,基于Linux系统的数据处理装置/系统可以与中央处理器100分开配置,例如可以将基于Linux系统的数据处理装置/系统配置为与中央处理器100连接的芯片,通过中央处理器的控制来实现基于Linux系统的数据处理功能。
如图11所示,该电子设备600还可以包括:通信模块110、输入单元120、音频处理单元130、显示器160、电源170。值得注意的是,电子设备600也并不是必须要包括图11中所示的所有部件;此外,电子设备600还可以包括图11中没有示出的部件,可以参考现有技术。
如图11所示,中央处理器100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器100接收输入并控制电子设备600的各个部件的操作。
其中,存储器140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器100可执行该存储器140存储的该程序,以实现信息存储或处理等。
输入单元120向中央处理器100提供输入。该输入单元120例如为按键或触摸输入装置。电源170用于向电子设备600提供电力。显示器160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器140还可以是某种其它类型的装置。存储器140包括缓冲存储器141(有时被称为缓冲器)。存储器140可以包括应用/功能存储部142,该应用/功能存储部142用于存储应用程序和功能程序或用于通过中央处理器100执行电子设备600的操作的流程。
存储器140还可以包括数据存储部143,该数据存储部143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器140的驱动程序存储部144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块110即为经由天线111发送和接收信号的发送机/接收机110。通信模块(发送机/接收机)110耦合到中央处理器100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)110还经由音频处理器130耦合到扬声器131和麦克风132,以经由扬声器131提供音频输出,并接收来自麦克风132的音频输入,从而实现通常的电信功能。音频处理器130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器130还耦合到中央处理器100,从而使得可以通过麦克风132能够在本机上录音,且使得可以通过扬声器131来播放本机上存储的声音。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时以实现上述基于Linux系统的数据处理方法的步骤。
综上所述,本发明实施例公开了一种Linux上模拟异地机房进行网络通信的方法,涉及故障模拟、Linux底层网络通信、Linux流控、Linux防火墙等技术。通过对Linux流控模块和Linux防火墙技术的综合运用,使得可以在基于Linux搭建的本地机房中模拟异地机房进行通信,从而达到对分布式系统同城多活、两地三中心等场景进行高可用测试的目的。本发明实施例可以较大地降低操作难度,且可以针对特定网段或IP进行操作,从而在测试的同时不影响部署在相同机器上的其他进程或服务。
以上参照附图描述了本发明的优选实施方式。这些实施方式的许多特征和优点根据该详细的说明书是清楚的,因此权利要求旨在覆盖这些实施方式的落入其真实精神和范围内的所有这些特征和优点。此外,由于本领域的技术人员容易想到很多修改和改变,因此不是要将本发明的实施方式限于所例示和描述的精确结构和操作,而是可以涵盖落入其范围内的所有合适修改和等同物。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (16)
1.一种基于Linux系统的数据处理方法,其特征在于,预先将本地机房中的一部分设备设置为包含第一类设备和第二类设备的本地设备,一部分设备设置为异地模拟设备,所述方法应用于所述第一类设备,所述第二类设备上的响应到所述第一类设备无延时,所述异地模拟设备上的响应到所述第一类设备有因为模拟距离不同而产生的不同延时,所述方法包括:
基于预定规则利用所述第一类设备Linux系统中的流控模块设置具有延时传输数据包功能的流控规则,基于所述流控规则为所述第一类设备的防火墙设置数据包传输规则,并为所述第一类设备设置具有所述流控规则的虚拟网卡,
基于所述防火墙的数据包传输规则将数据包发送至所述异地模拟设备;
通过具有所述流控规则的虚拟网卡接收来自所述异地模拟设备的数据包,以此在本地机房中模拟异地机房的数据传输过程。
2.根据权利要求1所述的方法,其特征在于,将本地机房中的一部分设备设置为本地设备之后,所述方法还包括:
基于Linux系统为所述第一类设备创建包含目标网段地址或目标IP地址的地址集合;
将所述异地模拟设备所在的网段地址或IP地址加入到所述地址集合中。
3.根据权利要求2所述的方法,其特征在于,基于所述流控规则为所述第一类设备的防火墙设置数据包传输规则之前,所述方法还包括:
基于Linux系统为所述防火墙创建自定义链;
将所述流控规则和所述地址集合挂载到所述自定义链上。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
将所述自定义链挂载到所述防火墙的输出链上。
5.根据权利要求1所述的方法,其特征在于,为所述第一类设备设置具有所述流控规则的虚拟网卡包括:
为所述第一类设备创建所述虚拟网卡,其中,在所述虚拟网卡的输出链上设置所述流控规则。
6.根据权利要求1所述的方法,其特征在于,基于预定规则利用所述第一类设备Linux系统中的流控模块设置所述流控规则包括:
基于预定的延时规则利用所述流控模块创建流控规则,其中,所述流控规则还包括:基于公平算法的流量调度规则,该流量调度规则应用于所述第一类设备与所述第二类设备之间的数据传输过程。
7.一种基于Linux系统的数据处理装置,其特征在于,预先将本地机房中的一部分设备设置为包含第一类设备和第二类设备的本地设备,一部分设备设置为异地模拟设备,所述装置设置于所述第一类设备,所述第二类设备上的响应到所述第一类设备无延时,所述异地模拟设备上的响应到所述第一类设备有因为模拟距离不同而产生的不同延时,所述装置包括:
流控规则设置单元,用于基于预定规则利用所述第一类设备Linux系统中的流控模块设置具有延时传输数据包功能的流控规则;
数据包传输规则设置单元,用于基于所述流控规则为所述第一类设备的防火墙设置数据包传输规则;
虚拟网卡设置单元,用于为所述第一类设备设置具有所述流控规则的虚拟网卡;
数据发送单元,用于基于所述防火墙的数据包传输规则将数据包发送至所述异地模拟设备;
数据接收单元,用于通过具有所述流控规则的虚拟网卡接收来自所述异地模拟设备的数据包,以此在本地机房中模拟异地机房的数据传输过程。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
地址集合设置单元,用于基于Linux系统为所述第一类设备创建包含目标网段地址或目标IP地址的地址集合;
地址加入单元,用于将所述异地模拟设备所在的网段地址或IP地址加入到所述地址集合中。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
自定义链创建单元,用于基于Linux系统为所述防火墙创建自定义链;
规则挂载单元,用于将所述流控规则和所述地址集合挂载到所述自定义链上。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
自定义链挂载单元,用于将所述自定义链挂载到所述防火墙的输出链上。
11.根据权利要求7所述的装置,其特征在于,所述虚拟网卡设置单元具体用于:
为所述第一类设备创建所述虚拟网卡,其中,在所述虚拟网卡的输出链上设置所述流控规则。
12.根据权利要求7所述的装置,其特征在于,所述流控规则设置单元具体用于:
基于预定的延时规则利用所述流控模块创建流控规则,其中,所述流控规则还包括:基于公平算法的流量调度规则,该流量调度规则应用于所述第一类设备与所述第二类设备之间的数据传输过程。
13.根据权利要求7所述的装置,其特征在于,所述装置还包括:
删除单元,用于删除所述流控规则、所述数据包传输规则和所述虚拟网卡。
14.一种基于Linux系统的数据处理系统,其特征在于,所述系统包括:如权利要求7至13中任一项所述的基于Linux系统的数据处理装置、第二类设备以及异地模拟设备。
15.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至6中任一项所述方法的步骤。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111503118.2A CN114221873B (zh) | 2021-12-09 | 2021-12-09 | 基于Linux系统的数据处理方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111503118.2A CN114221873B (zh) | 2021-12-09 | 2021-12-09 | 基于Linux系统的数据处理方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114221873A CN114221873A (zh) | 2022-03-22 |
CN114221873B true CN114221873B (zh) | 2023-06-09 |
Family
ID=80700680
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111503118.2A Active CN114221873B (zh) | 2021-12-09 | 2021-12-09 | 基于Linux系统的数据处理方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114221873B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117176475B (zh) * | 2023-11-02 | 2024-02-27 | 成都卓拙科技有限公司 | 规则配置方法、装置、linux主机及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103618645A (zh) * | 2013-11-28 | 2014-03-05 | 武汉虹旭信息技术有限责任公司 | 智能模拟复杂网络环境的测试系统及其方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102857363B (zh) * | 2012-05-04 | 2016-04-20 | 运软网络科技(上海)有限公司 | 一种虚拟网络的自主管理系统和方法 |
-
2021
- 2021-12-09 CN CN202111503118.2A patent/CN114221873B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103618645A (zh) * | 2013-11-28 | 2014-03-05 | 武汉虹旭信息技术有限责任公司 | 智能模拟复杂网络环境的测试系统及其方法 |
Non-Patent Citations (1)
Title |
---|
Linux下P2P流量控制的研究及利用TC实现;王卫星;;重庆文理学院学报(自然科学版)(第02期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114221873A (zh) | 2022-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109672612A (zh) | Api网关系统 | |
CN106375142B (zh) | 应用程序的测试方法和装置 | |
CN108777625A (zh) | 签名的验证方法、装置和系统、存储介质、电子装置 | |
CN108199925A (zh) | 一种数据发送方法、接收方法及装置 | |
TWI801812B (zh) | 處理用於時間敏感網路中的資料流的路由路徑的裝置及方法 | |
CN103581042B (zh) | 一种数据包发送的方法和设备 | |
US11729108B2 (en) | Queue management in a forwarder | |
CN110022267A (zh) | 网络数据包处理方法及装置 | |
JP2015149577A (ja) | 帯域制御装置 | |
CN114221873B (zh) | 基于Linux系统的数据处理方法、装置及系统 | |
CN110764881A (zh) | 分布式系统后台重试方法及装置 | |
CN109417507A (zh) | 部分延迟的报文访问 | |
JP7098711B2 (ja) | 遠隔ノード発見、ならびに通信チャネル確認および通信チャネル接続のためのプロセッサによって実施される方法、コンピュータ・システム、およびコンピュータ・プログラム | |
CN109561054A (zh) | 一种数据传输方法、控制器及接入设备 | |
CN106792923A (zh) | 一种配置QoS策略的方法及装置 | |
CN110430112A (zh) | 一种实现虚拟机网络io优先级的方法和装置 | |
CN111669322B (zh) | 一种中继器桥接方法和网关 | |
WO2023185428A1 (zh) | 一种重构用户面功能网元关键服务能力的方法及通信装置 | |
CN109005116A (zh) | 一种报文转发方法及装置 | |
US11863382B2 (en) | Software defined network device exposure to third parties | |
CN110324265B (zh) | 流量分发方法、路由方法、设备及网络系统 | |
CN106921553A (zh) | 在虚拟网络中实现高可用的方法及系统 | |
EP4142220A1 (en) | Method and apparatus for evaluating network operation impact, and device | |
WO2021051936A1 (zh) | 软件定义网络sdn网络构建方法及装置 | |
US20220360494A1 (en) | Assisted and context-driven network changes |
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 |