CN117850851A - 一种高可靠且热升级友好的虚拟交换机软件系统 - Google Patents
一种高可靠且热升级友好的虚拟交换机软件系统 Download PDFInfo
- Publication number
- CN117850851A CN117850851A CN202311639693.4A CN202311639693A CN117850851A CN 117850851 A CN117850851 A CN 117850851A CN 202311639693 A CN202311639693 A CN 202311639693A CN 117850851 A CN117850851 A CN 117850851A
- Authority
- CN
- China
- Prior art keywords
- dpdk
- vswitch
- upgrade
- virtual switch
- highly reliable
- 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
- 238000000034 method Methods 0.000 claims abstract description 248
- 230000008569 process Effects 0.000 claims abstract description 239
- 230000007774 longterm Effects 0.000 claims abstract description 6
- 238000005516 engineering process Methods 0.000 claims abstract description 4
- 230000007246 mechanism Effects 0.000 claims abstract description 4
- 238000012545 processing Methods 0.000 claims description 22
- 238000001152 differential interference contrast microscopy Methods 0.000 claims description 12
- 230000004888 barrier function Effects 0.000 claims description 3
- 230000006870 function Effects 0.000 claims description 3
- 230000000977 initiatory effect Effects 0.000 claims description 3
- 210000001503 joint Anatomy 0.000 claims description 3
- 238000012544 monitoring process Methods 0.000 claims description 3
- 230000008439 repair process Effects 0.000 claims description 3
- 230000006378 damage Effects 0.000 abstract description 2
- 230000009977 dual effect Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种高可靠且热升级友好的虚拟交换机软件系统,包括:DPDK的共享内存机制和物理NIC对多进程的支持,所述物理NIC对多进程的支持可进行轮询模式驱动程序,并可被多个DPDK进程打开,基于所述DPDK技术的虚拟交换机简称为DPDK vSwitc。本发明解决现有的vSwitch热升级方案中也有采用双进程实现的,但是该双进程不是长期存在的,只是在热升级前创建,升级完成后销毁,但是本发明的方案中双进程是长期存在并且采用主备模式的。本发明通过主备双进程的实现,一方面能为vSwitch提供更高的可靠性,在主进程挂掉时,快速地倒换到备进程;另一方面,能够减少进程创建销毁的开销,使得vSwitch的热升级对用户的影响更小,宕机时间更短。
Description
技术领域
本发明涉及虚拟交换机软件系统技术领域,尤其涉及一种高可靠且热升级友好的虚拟交换机软件系统。
背景技术
云中虚拟网络的入口和数据面主要封包处理组件是虚拟交换机(VirtualSwitch,vSwitch),其常见的实现方式包括基于数据平面开发套件(Data PlaneDevelopment Kit,DPDK)的软件形态、智能网卡(Smart Network Interface Card,SmartNIC)卸载、数据处理单元(Data Processing Unit,DPU)卸载、可编程专用芯片硬件加速等。
现有的vSwitch热升级方案中也有采用双进程实现的,但是该双进程不是长期存在的,只是在热升级前创建,升级完成后销毁,随着云中流量呈指数增长,虚拟网络的功能需求也快速迭代,vSwitch需要考虑如何在不影响用户乃至用户无感的情况下进行版本升级。
发明内容
本部分的目的在于概述本发明的实施例的一些方面以及简要介绍一些较佳实施例。在本部分以及本申请的说明书摘要和发明名称中可能会做些简化或省略以避免使本部分说明书摘要和发明名称的目的模糊,而这种简化或省略不能用于限制本发明的范围。
鉴于上述现有一种高可靠且热升级友好的虚拟交换机软件系统存在的问题,提出了本发明。
因此,本发明目的是提供一种高可靠且热升级友好的虚拟交换机软件系统,其适用于解决现有的vSwitch热升级方案中也有采用双进程实现的,但是该双进程不是长期存在的,只是在热升级前创建,升级完成后销毁,随着云中流量呈指数增长,虚拟网络的功能需求也快速迭代,vSwitch需要考虑如何在不影响用户乃至用户无感的情况下进行版本升级的问题。
为解决上述技术问题,本发明提供如下技术方案:一种高可靠且热升级友好的虚拟交换机软件系统,包括:DPDK的共享内存机制和物理NIC对多进程的支持,
所述物理NIC对多进程的支持可进行轮询模式驱动程序,并可被多个DPDK进程打开,基于所述DPDK技术的虚拟交换机简称为DPDK vSwitch,所述DPDKvSwitch的业务逻辑划为两部分,一部分是协商和Virtio连接,另一部分是流水线包转发逻辑,所述DPDK vSwitch在首次启动时会随机选取两个子进程,一个作为N进程,另一个作为0进程,所述N进程负责处理封包,所述0进程则备用待命。
作为本发明所述一种高可靠且热升级友好的虚拟交换机软件系统的一种优选方案,其中:所述DPDK vSwitch通过RPC发起升级请求时对接主进程,所述主进程将负责0进程中的封包处理逻辑,所述0进程在进行封包处理逻辑时,流量仍然经过N进程,直到0进程完成升级。
作为本发明所述一种高可靠且热升级友好的虚拟交换机软件系统的一种优选方案,其中:所述0进程完成升级后将通知主进程,主进程则将流量倒换到N进程,所述主进程在倒换到N进程时,需将相关指针拷贝到新进程中对应变量即可。
作为本发明所述一种高可靠且热升级友好的虚拟交换机软件系统的一种优选方案,其中:当所述0进程升级后出现业务不稳定或者流水线逻辑错误时,通过控制面使RPC调用,让流量再次倒换回到N进程处理。
作为本发明所述一种高可靠且热升级友好的虚拟交换机软件系统的一种优选方案,其中:当所述0进程升级后表现与预期相符,则主进程将两个子进程的地位互换,即原0进程变为N进程,原N进程变为0进程。
作为本发明所述一种高可靠且热升级友好的虚拟交换机软件系统的一种优选方案,其中:当所述DPDK vSwitch在新版本长期运行中,发现新业务流量导致N进程退出,则主进程将流量切换到0进程后通过RPC向控制面发出告警。
作为本发明所述一种高可靠且热升级友好的虚拟交换机软件系统的一种优选方案,其中:当所述DPDK vSwitch在新版本长期运行中,0进程也无法正确处理新业务流量,主进程则进一步通过RPC向控制面报障。
作为本发明所述一种高可靠且热升级友好的虚拟交换机软件系统的一种优选方案,其中:所述主进程、N进程、0进程及共享内存均包含在vSwitch部署节点内,所述vSwitch部署节点通过RPC与控制集群相连。
作为本发明所述一种高可靠且热升级友好的虚拟交换机软件系统的一种优选方案,其中:所述vSwitch部署节点需不停获取流量源内部信息,且RPC为远程过程调用。
作为本发明所述一种高可靠且热升级友好的虚拟交换机软件系统的一种优选方案,其中,具体操作流程如下:
S1.DPDK vSwitch的业务逻辑划为两部分,一部分是协商和Virtio连接,另一部分是流水线封包转发逻辑,前者由主进程处理,后者由两个子进程分别维护不同的版本,进程间通过共享内存通信,首次启动时,随机选取两个子进程的一个作为N进程,另一个作为0进程,N进程负责处理封包,0进程则备用待命,主进程负责监测两个子进程的状态;
S2.当控制面通过RPC发起升级请求时,该请求对接主进程,主进程将负责升级0进程中的封包处理逻辑,同时,流量仍然经过N进程,直到0进程完成升级;
S3.0进程完成升级后将通知主进程,主进程则将流量倒换到N进程,该倒换过程是非常迅速的,因为共享内存中的内容不必再次拷贝,只要将相关指针拷贝到新进程中对应变量即可,并且,因为物理NIC支持同时被多个DPDK进程打开,所以数据包也可以快速从N进程切换到0进程;
S4.如果0进程升级后出现业务不稳定或者流水线逻辑错误,则再由控制面发RPC调用,让流量再次倒换回到N进程处理;如果0进程升级后表现与预期相符,则主进程将两个子进程的地位互换,即原0进程变为N进程,原N进程变为0进程;
S5.如果在新版本长期运行中,发现新业务流量导致N进程退出,则主进程将流量切换到0进程后通过RPC向控制面发出告警,如果0进程也无法正确处理该新业务流量,主进程则进一步通过RPC向控制面报障;
S6.如果后续故障修复或者功能升级发布了新的vSwitch版本,则按照S2到S4升级新版本。
本发明的有益效果:
现有的vSwitch热升级方案中也有采用双进程实现的,但是该双进程不是长期存在的,只是在热升级前创建,升级完成后销毁,但是本发明的方案中双进程是长期存在并且采用主备模式的。本发明通过主备双进程的实现,一方面能为vSwitch提供更高的可靠性,在主进程挂掉时,快速地倒换到备进程;另一方面,能够减少进程创建销毁的开销,使得vSwitch的热升级对用户的影响更小,宕机时间更短。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。其中:
图1为本发明提出的一种高可靠且热升级友好的虚拟交换机软件系统的系统示意图。
具体实施方式
为使本发明的上述目的特征和优点能够更加明显易懂,下面结合说明书附图对本发明的具体实施方式做详细地说明。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
其次,此处所称的“一个实施例”或“实施例”是指可包含于本发明至少一个实现方式中的特定特征结构或特性。在本说明书中不同地方出现的“在一个实施例中”并非均指同一个实施例,也不是单独地或选择性地与其他实施例互相排斥的实施例。
再其次,本发明结合示意图进行详细描述,在详述本发明实施例时,为便于说明,表示器件结构的剖面图会不依一般比例作局部放大,而且所述示意图只是示例,其在此不应限制本发明保护的范围。此外,在实际制作中应包含长度宽度及深度的三维空间尺寸。
实施例一:
参照图1,为本发明的一个实施例,提供了一种高可靠且热升级友好的虚拟交换机软件系统,包括DPDK的共享内存机制和物理NIC对多进程的支持,
所述物理NIC对多进程的支持可进行轮询模式驱动程序,并可被多个DPDK进程打开,基于所述DPDK技术的虚拟交换机简称为DPDK vSwitch,所述DPDK vSwitch的业务逻辑划为两部分,一部分是协商和Virtio连接,另一部分是流水线包转发逻辑,所述DPDKvSwitch在首次启动时会随机选取两个子进程,一个作为N进程,另一个作为0进程,所述N进程负责处理封包,所述0进程则备用待命。
进一步,所述DPDK vSwitch通过RPC发起升级请求时对接主进程,所述主进程将负责0进程中的封包处理逻辑,所述0进程在进行封包处理逻辑时,流量仍然经过N进程,直到0进程完成升级。
进一步,所述0进程完成升级后将通知主进程,主进程则将流量倒换到N进程,所述主进程在倒换到N进程时,需将相关指针拷贝到新进程中对应变量即可。
进一步,当所述0进程升级后出现业务不稳定或者流水线逻辑错误时,通过控制面使RPC调用,让流量再次倒换回到N进程处理。
进一步,当所述0进程升级后表现与预期相符,则主进程将两个子进程的地位互换,即原0进程变为N进程,原N进程变为0进程。
进一步,当所述DPDK vSwitch在新版本长期运行中,发现新业务流量导致N进程退出,则主进程将流量切换到0进程后通过RPC向控制面发出告警。
进一步,当所述DPDK vSwitch在新版本长期运行中,0进程也无法正确处理新业务流量,主进程则进一步通过RPC向控制面报障。
进一步,所述主进程、N进程、0进程及共享内存均包含在vSwitch部署节点内,所述vSwitch部署节点通过RPC与控制集群相连。
进一步,所述vSwitch部署节点需不停获取流量源内部信息,且RPC为远程过程调用。
具体操作流程如下:
S1.DPDK vSwitch的业务逻辑划为两部分,一部分是协商和Virtio连接,另一部分是流水线封包转发逻辑,前者由主进程处理,后者由两个子进程分别维护不同的版本,进程间通过共享内存通信,首次启动时,随机选取两个子进程的一个作为N进程,另一个作为0进程,N进程负责处理封包,0进程则备用待命,主进程负责监测两个子进程的状态;
S2.当控制面通过RPC发起升级请求时,该请求对接主进程,主进程将负责升级0进程中的封包处理逻辑,同时,流量仍然经过N进程,直到0进程完成升级;
S3.0进程完成升级后将通知主进程,主进程则将流量倒换到N进程,该倒换过程是非常迅速的,因为共享内存中的内容不必再次拷贝,只要将相关指针拷贝到新进程中对应变量即可,并且,因为物理NIC支持同时被多个DPDK进程打开,所以数据包也可以快速从N进程切换到0进程;
S4.如果0进程升级后出现业务不稳定或者流水线逻辑错误,则再由控制面发RPC调用,让流量再次倒换回到N进程处理;如果0进程升级后表现与预期相符,则主进程将两个子进程的地位互换,即原0进程变为N进程,原N进程变为0进程;
S5.如果在新版本长期运行中,发现新业务流量导致N进程退出,则主进程将流量切换到0进程后通过RPC向控制面发出告警,如果0进程也无法正确处理该新业务流量,主进程则进一步通过RPC向控制面报障;
S6.如果后续故障修复或者功能升级发布了新的vSwitch版本,则按照S2到S4升级新版本。
实施例二:
如图1所示,业务流量来源可以是云内网络或者公网,vSwitch部署节点是通用服务器,其可以是基于x-86的,也可以基于arm等架构。该物理服务器包含至少两块独立NIC,分别负责数据面和控制面网络连入。其中负责数据面转发NIC需要支持DPDK多进程PMD连入。vSwitch拉起后,其主进程和两个子进程(0和N)采用共享内存通信。控制器集群通过RPC和主进程通信。
需要注意的是,N进程和0进程虽然长期存在,但是因为业务数据都在共享内存中,所以额外的存储开销几乎可以不计。并且,因为0进程长期待命,不被唤醒,所以额外的CPU开销也可以不计。
应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (10)
1.一种高可靠且热升级友好的虚拟交换机软件系统,其特征在于,包括:DPDK的共享内存机制和物理NIC对多进程的支持,
所述物理NIC对多进程的支持可进行轮询模式驱动程序,并可被多个DPDK进程打开,基于所述DPDK技术的虚拟交换机简称为DPDK vSwitch,所述DPDK vSwitch的业务逻辑划为两部分,一部分是协商和Virtio连接,另一部分是流水线包转发逻辑,所述DPDK vSwitch在首次启动时会随机选取两个子进程,一个作为N进程,另一个作为0进程,所述N进程负责处理封包,所述0进程则备用待命。
2.根据权利要求1所述的一种高可靠且热升级友好的虚拟交换机软件系统,其特征在于:所述DPDK vSwitch通过RPC发起升级请求时对接主进程,所述主进程将负责0进程中的封包处理逻辑,所述0进程在进行封包处理逻辑时,流量仍然经过N进程,直到0进程完成升级。
3.根据权利要求1所述的一种高可靠且热升级友好的虚拟交换机软件系统,其特征在于:所述0进程完成升级后将通知主进程,主进程则将流量倒换到N进程,所述主进程在倒换到N进程时,需将相关指针拷贝到新进程中对应变量即可。
4.根据权利要求1所述的一种高可靠且热升级友好的虚拟交换机软件系统,其特征在于:当所述0进程升级后出现业务不稳定或者流水线逻辑错误时,通过控制面使RPC调用,让流量再次倒换回到N进程处理。
5.根据权利要求1所述的一种高可靠且热升级友好的虚拟交换机软件系统,其特征在于:当所述0进程升级后表现与预期相符,则主进程将两个子进程的地位互换,即原0进程变为N进程,原N进程变为0进程。
6.根据权利要求5所述的一种高可靠且热升级友好的虚拟交换机软件系统,其特征在于:当所述DPDK vSwitch在新版本长期运行中,发现新业务流量导致N进程退出,则主进程将流量切换到0进程后通过RPC向控制面发出告警。
7.根据权利要求1所述的一种高可靠且热升级友好的虚拟交换机软件系统,其特征在于:当所述DPDK vSwitch在新版本长期运行中,0进程也无法正确处理新业务流量,主进程则进一步通过RPC向控制面报障。
8.根据权利要求5所述的一种高可靠且热升级友好的虚拟交换机软件系统,其特征在于:所述主进程、N进程、0进程及共享内存均包含在vSwitch部署节点内,所述vSwitch部署节点通过RPC与控制集群相连。
9.根据权利要求1所述的一种高可靠且热升级友好的虚拟交换机软件系统,其特征在于:所述vSwitch部署节点需不停获取流量源内部信息,且RPC为远程过程调用。
10.一种高可靠且热升级友好的虚拟交换机软件系统,其特征在于,具体操作流程如下:
S1.DPDK vSwitch的业务逻辑划为两部分,一部分是协商和Virtio连接,另一部分是流水线封包转发逻辑,前者由主进程处理,后者由两个子进程分别维护不同的版本,进程间通过共享内存通信,首次启动时,随机选取两个子进程的一个作为N进程,另一个作为0进程,N进程负责处理封包,0进程则备用待命,主进程负责监测两个子进程的状态;
S2.当控制面通过RPC发起升级请求时,该请求对接主进程,主进程将负责升级0进程中的封包处理逻辑,同时,流量仍然经过N进程,直到0进程完成升级;
S3.0进程完成升级后将通知主进程,主进程则将流量倒换到N进程,该倒换过程是非常迅速的,因为共享内存中的内容不必再次拷贝,只要将相关指针拷贝到新进程中对应变量即可,并且,因为物理NIC支持同时被多个DPDK进程打开,所以数据包也可以快速从N进程切换到0进程;
S4.如果0进程升级后出现业务不稳定或者流水线逻辑错误,则再由控制面发RPC调用,让流量再次倒换回到N进程处理;如果0进程升级后表现与预期相符,则主进程将两个子进程的地位互换,即原0进程变为N进程,原N进程变为0进程;
S5.如果在新版本长期运行中,发现新业务流量导致N进程退出,则主进程将流量切换到0进程后通过RPC向控制面发出告警,如果0进程也无法正确处理该新业务流量,主进程则进一步通过RPC向控制面报障;
S6.如果后续故障修复或者功能升级发布了新的vSwitch版本,则按照S2到S4升级新版本。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311639693.4A CN117850851A (zh) | 2023-12-01 | 2023-12-01 | 一种高可靠且热升级友好的虚拟交换机软件系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311639693.4A CN117850851A (zh) | 2023-12-01 | 2023-12-01 | 一种高可靠且热升级友好的虚拟交换机软件系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117850851A true CN117850851A (zh) | 2024-04-09 |
Family
ID=90542559
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311639693.4A Pending CN117850851A (zh) | 2023-12-01 | 2023-12-01 | 一种高可靠且热升级友好的虚拟交换机软件系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117850851A (zh) |
-
2023
- 2023-12-01 CN CN202311639693.4A patent/CN117850851A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
FI101432B (fi) | Vikasietoinen tietokonejärjestelmä | |
US7770062B2 (en) | Redundancy system having synchronization function and synchronization method for redundancy system | |
US6804703B1 (en) | System and method for establishing persistent reserves to nonvolatile storage in a clustered computer environment | |
US6868442B1 (en) | Methods and apparatus for processing administrative requests of a distributed network application executing in a clustered computing environment | |
JPH06202883A (ja) | プロセス間通信装置及び通信方法 | |
JPH10116254A (ja) | 分散型のコンピュータ・システム | |
JPH10105486A (ja) | 分散型のコンピュータ・システム | |
CN104503965A (zh) | PostgreSQL高弹性的高可用及负载均衡实现方法 | |
JPH10116255A (ja) | 分散型のコンピュータ・システム | |
KR100250464B1 (ko) | 고속병렬컴퓨터의 노드 부트 방법 | |
JP2021524104A (ja) | マスター・スタンドバイコンテナシステム切替 | |
US7188149B2 (en) | Storage operating data control system | |
CN104471523A (zh) | 计算机系统及其控制方法 | |
CN115904520B (zh) | 基于pcie拓扑状态变更的配置保存方法及相关设备 | |
CN111865632A (zh) | 分布式数据存储集群的切换方法及切换指令发送方法和装置 | |
JP4517923B2 (ja) | オブジェクト救済システム及び方法 | |
JP2005196726A (ja) | 実時間遠隔バックアップシステム及びそのバックアップ方法 | |
JPH0352049A (ja) | 通信制御プログラムの連続運転保証処理方法 | |
KR0182632B1 (ko) | 클라이언트 서버 시스템 및 그 제어 방법 | |
JP4009192B2 (ja) | 効率的なタイマ管理システム | |
CN102262558A (zh) | 虚拟机同步方法及系统 | |
CN117850851A (zh) | 一种高可靠且热升级友好的虚拟交换机软件系统 | |
JP4572138B2 (ja) | サーバ装置、サーバシステム、及びサーバシステムでの系切り換え方法 | |
CN114124680B (zh) | 一种文件访问控制告警日志管理方法及装置 | |
KR100237395B1 (ko) | 폴트의 수집 및 관리방법 |
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 |