CN110321197A - 一种基于kvm的虚拟网卡管理方法 - Google Patents
一种基于kvm的虚拟网卡管理方法 Download PDFInfo
- Publication number
- CN110321197A CN110321197A CN201910411554.3A CN201910411554A CN110321197A CN 110321197 A CN110321197 A CN 110321197A CN 201910411554 A CN201910411554 A CN 201910411554A CN 110321197 A CN110321197 A CN 110321197A
- Authority
- CN
- China
- Prior art keywords
- microsoft loopback
- loopback adapter
- virtual
- bridge
- virtual machine
- 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
Classifications
-
- 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/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/45591—Monitoring or debugging support
-
- 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/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种基于KVM的虚拟网卡管理方法,包括如下步骤:获取虚拟机的虚拟网卡与虚拟网桥的映射关系;将虚拟机的ID信息、虚拟网卡与虚拟网桥的映射关系、虚拟网卡信息以及虚拟网桥信息归档并存入数据库;检测虚拟网桥与虚拟网卡是否保持连接,若没有连接,则同步数据库中虚拟网卡与虚拟网桥的映射数据;检测虚拟机是否处于正常运行状态以及检测虚拟网卡是否正常使用时,若均正常,则自动完成虚拟网卡和虚拟网桥映射;出现虚拟网卡与虚拟网桥的连接丢失,需读取数据库中虚拟网卡与虚拟网桥的映射关系,并对虚拟网卡和虚拟网桥的重新映射,自动恢复虚拟机的网络连通。本发明能够自动完成虚拟网卡和虚拟网桥的重新映射,并恢复虚拟机的网络连通性。
Description
技术领域
本发明涉及虚拟网卡技术领域,特别涉及一种基于KVM的虚拟网卡管理方法。
背景技术
KVM的虚拟化环境下,目前主流的虚拟网络管理工具有linux bridge和openvswitch,该工具通过建立虚拟网桥,与虚拟机(guest domain)的虚拟网卡(vnet)相连接,组成了虚拟网络场景。
在实际的应用场景中,虚拟机处于开机状态,libvirt会主动建立虚拟网卡和虚拟网桥的映射。但是该映射关系只有在虚拟管理器(libvirt)和虚拟网络服务(linux bridge或openvswitch)都正常,才能生效。如果一方的服务出现异常,则会导致虚拟网卡和虚拟网桥的映射无法建立。
其中,当虚拟网桥无法正常工作,则虚拟网卡与虚拟网桥的映射关系会丢失。因为其映射关系没有以数据的形式保存,所以即使是故障修复后,也无法自动建立虚拟网卡与虚拟网桥的映射关系,导致出现虚拟机的网络不可达问题。
发明内容
本发明要解决的技术问题在于,提供一种基于KVM的虚拟网卡管理方法,能够自动监控和校验虚拟机网卡与虚拟网桥的数据一致性,且当故障发生致虚拟网卡与虚拟网桥的连接丢失时,能够快速、自动完成虚拟网卡和虚拟网桥的重新映射,并恢复虚拟机的网络连通性。
为解决上述技术问题,本发明提供如下技术方案:一种基于KVM的虚拟网卡管理方法,包括以下步骤:
S1、获取到运行中的虚拟机信息,根据虚拟机的id信息,得到虚拟机的虚拟网卡与虚拟网桥的映射关系;
S2、不断检查并获取libvirt中的映射关系,确认其与步骤S1的映射关系是否保持一致;若一致,则该映射关系有效,并将虚拟机的ID信息、虚拟网卡与虚拟网桥的映射关系、虚拟网卡信息以及虚拟网桥信息归档并存入数据库;若不一致,则重复检查并获取信息,直至完成确认;
S3、确保libvirt服务和linux bridge处于正常情况下,当虚拟机在非运行状态或虚拟网卡失效时,检测虚拟网桥与虚拟网卡是否保持连接,若没有连接,则同步数据库中虚拟网卡与虚拟网桥的映射关系;反之,则删除该连接;
S4、确保libvirt服务和linux bridge处于正常情况下,当虚拟网桥与虚拟网卡的连接无故断开时,检测虚拟机是否处于正常运行状态以及检测虚拟网卡是否正常使用时,若均正常,则自动完成虚拟网卡和虚拟网桥映射;若虚拟机或虚拟网卡任一者处于异常,则同步数据库中虚拟网卡与虚拟网桥的映射数据;
S5、当网络服务重启、虚拟网桥故障修复或者虚拟网卡故障修复后,而出现虚拟网卡与虚拟网桥的连接丢失,此时需读取数据库中虚拟网卡与虚拟网桥的映射关系,并根据映射关系对虚拟网卡和虚拟网桥的重新映射,自动恢复虚拟机的网络连通。
作为优选地,所述步骤S1中,采用kvm-br-sync进程监控程序以轮循方式或触发形式来获取到运行中的虚拟机信息。
作为优选地,kvm-br-sync进程通过virsh list接口或者libvirt api的listAllDomains接口来获取到运行中的虚拟机信息。
作为优选地,所述步骤S1中,根据虚拟机的id信息,使用virsh domiflist id或者通过libvirt api的virdomain.XMLDesc接口得到虚拟机虚拟网卡与虚拟网桥的映射关系。
作为优选地,所述步骤S3中,在虚拟网桥与虚拟网卡保持连接情况下,使用brctl管理工具来删除该连接。
作为优选地,所述步骤S5中,使用brctl管理工具完成对虚拟网卡和虚拟网桥的重新映射。
作为优选地,还包括步骤S6、完成步骤S5后,再重复步骤S1-S5。
采用上述技术方案后,本发明至少具有如下有益效果:本发明在基于kvm虚拟环境下,能够自动检测并存储虚拟网卡与虚拟网桥的映射关系,并且能够自动校验虚拟网卡与虚拟网桥的数据一致性;本发明在发生虚拟网卡与虚拟网桥的连接丢失故障时,能快速、自动完成虚拟网卡和虚拟网桥的重新映射,并恢复虚拟机的网络连通性。
附图说明
图1为本发明实施例1一种基于KVM的虚拟网卡管理方法的步骤流程图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互结合,下面结合附图和具体实施例对本申请作进一步详细说明。
本发明通过监听libvirt服务和虚拟网桥服务,通过libvirt api或者virsh获取虚拟机的网卡与虚拟网桥的映射关系,然后同步校验虚拟网桥连接虚拟网卡情况,如果获取的映射关系与实际虚拟网桥连接虚拟网卡情况一致,则以数据形式保存,数据保存可通过文本数据库或其他数据库软件。
实施例1
如图1所示,本实施提供一种基于KVM的虚拟网卡管理方法,其步骤为:
S101、kvm-br-sync进程获取数据流程监控的守护进程以轮循方式或触发形式获取信息:首先获取到运行中的虚拟机信息,获取信息接口则通过virsh list或者通过libvirt api的listAllDomains(flags=1)接口;根据运行中的虚拟机id信息,使用virshdomiflist id或者通过libvirt api的virdomain.XMLDesc接口得到虚拟机虚拟网卡与虚拟网桥的映射关系得到虚拟机的网卡与虚拟网桥的映射关系;
映射关系可以使用virsh domiflist id得到数据,如:
映射关系亦或通过虚拟机的xml文件获得相关信息,如:
再通过brctl获取虚拟网桥连接虚拟网卡实际情况
其中,vnet{X}表示虚拟网卡,virbr{0}表示虚拟网桥。
以上获取到的映射关系是一个虚拟机拥有一或一以上张虚拟网卡,一张虚拟网卡只能映射到一个虚拟网桥上,一个网桥可关联多个虚拟网卡。
S102、当kvm-br-sync进程轮循监听或新虚拟机启动触发获取到libvirt中的映射关系;而libvirt中的映射关系,其与虚拟网桥和虚拟网卡的映射关系连接保持一致时,则该映射关系有效,并将虚拟机的ID信息、虚拟网卡与虚拟网桥的映射关系、虚拟网卡信息和虚拟网桥信息归档存入数据库。若不一致,则重复检查并获取信息,直至完成确认。
S103、确保libvirt服务和linux bridge正常情况下,当虚拟机在非运行状态或者虚拟网卡失效时,触发检测虚拟网桥与失效的虚拟网卡是否保持连接,如果没有连接,则同步数据库中关于其映射数据。反之,使用brctl管理工具删除该连接,解决了僵尸虚拟网卡导致的网络不稳定风险。
S104、确保libvirt服务和linux bridge正常情况下,当虚拟网桥与虚拟网卡的连接无故消失或断开(异常故障或者人为误操作),触发检测虚拟机是否在运行状态或者虚拟网卡正常使用时,如果正常,则自动完成虚拟网卡和虚拟网桥映射。反之,同步数据库中关于其映射数据。
S105、当网络重启、虚拟网桥故障修复或者硬件网卡故障修复后,出现了虚拟网卡与虚拟网桥的连接丢失,此时监控后台程序读取数据库的映射数据,并自动调用brctl管理工具,完成虚拟网卡和虚拟网桥的重新映射,自动恢复虚拟机的网络连通。
S1066、完成步骤S105后,再重复步骤S101-S105。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解的是,在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种等效的变化、修改、替换和变型,本发明的范围由所附权利要求及其等同范围限定。
Claims (7)
1.一种基于KVM的虚拟网卡管理方法,其特征在于,包括以下步骤:
S1、获取到运行中的虚拟机信息,根据虚拟机的id信息,得到虚拟机的虚拟网卡与虚拟网桥的映射关系;
S2、不断检查并获取libvirt中的映射关系,确认其与步骤S1的映射关系是否保持一致;若一致,则该映射关系有效,并将虚拟机的ID信息、虚拟网卡与虚拟网桥的映射关系、虚拟网卡信息以及虚拟网桥信息归档并存入数据库;若不一致,则重复检查并获取信息,直至完成确认;
S3、确保libvirt服务和linux bridge处于正常情况下,当虚拟机在非运行状态或虚拟网卡失效时,检测虚拟网桥与虚拟网卡是否保持连接,若没有连接,则同步数据库中虚拟网卡与虚拟网桥的映射关系;反之,则删除该连接;
S4、确保libvirt服务和linux bridge处于正常情况下,当虚拟网桥与虚拟网卡的连接无故断开时,检测虚拟机是否处于正常运行状态以及检测虚拟网卡是否正常使用时,若均正常,则自动完成虚拟网卡和虚拟网桥映射;若虚拟机或虚拟网卡任一者处于异常,则同步数据库中虚拟网卡与虚拟网桥的映射数据;
S5、当网络服务重启、虚拟网桥故障修复或者虚拟网卡故障修复后,而出现虚拟网卡与虚拟网桥的连接丢失,此时需读取数据库中虚拟网卡与虚拟网桥的映射关系,并根据映射关系对虚拟网卡和虚拟网桥重新映射,自动恢复虚拟机的网络连通。
2.根据权利要求1所述的一种基于KVM的虚拟网卡管理方法,其特征在于,所述步骤S1中,采用kvm-br-sync进程监控程序以轮循方式或触发形式来获取到运行中的虚拟机信息。
3.根据权利要求2所述的一种基于KVM的虚拟网卡管理方法,其特征在于,kvm-br-sync进程通过virsh list接口或者libvirt api的listAllDomains接口来获取到运行中的虚拟机信息。
4.根据权利要求1或3所述的一种基于KVM的虚拟网卡管理方法,其特征在于,所述步骤S1中,根据虚拟机的id信息,使用virsh domiflist id或者通过libvirt api的virdomain.XMLDesc接口得到虚拟机虚拟网卡与虚拟网桥的映射关系。
5.根据权利要求1所述的一种基于KVM的虚拟网卡管理方法,其特征在于,所述步骤S3中,在虚拟网桥与虚拟网卡保持连接情况下,使用brctl管理工具来删除该连接。
6.根据权利要求1所述的一种基于KVM的虚拟网卡管理方法,其特征在于,所述步骤S5中,使用brctl管理工具完成对虚拟网卡和虚拟网桥的重新映射。
7.根据权利要求1所述的一种基于KVM的虚拟网卡管理方法,其特征在于,还包括步骤S6、完成步骤S5后,再重复步骤S1-S5。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910411554.3A CN110321197A (zh) | 2019-05-17 | 2019-05-17 | 一种基于kvm的虚拟网卡管理方法 |
JP2020007535A JP6806349B2 (ja) | 2019-05-17 | 2020-01-21 | Kvmに基づく仮想ネットワークカード管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910411554.3A CN110321197A (zh) | 2019-05-17 | 2019-05-17 | 一种基于kvm的虚拟网卡管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110321197A true CN110321197A (zh) | 2019-10-11 |
Family
ID=68113170
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910411554.3A Pending CN110321197A (zh) | 2019-05-17 | 2019-05-17 | 一种基于kvm的虚拟网卡管理方法 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6806349B2 (zh) |
CN (1) | CN110321197A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112099902A (zh) * | 2020-08-17 | 2020-12-18 | 杭州安恒信息安全技术有限公司 | 虚拟机的网络适配器配置方法、装置、电子装置和存储介质 |
CN114422295A (zh) * | 2021-12-27 | 2022-04-29 | 联想(北京)有限公司 | 一种网络信息处理方法、电子设备以及存储介质 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102557145B1 (ko) * | 2021-07-27 | 2023-07-19 | 엘아이지넥스원 주식회사 | 가상 훈련 서비스 제공 시스템 및 가상 훈련 서비스 제공 방법 |
KR102660421B1 (ko) * | 2021-10-28 | 2024-04-23 | 에스케이텔레콤 주식회사 | 가상네트워크관리장치 및 가상네트워크관리장치의 동작 방법 |
CN115328712B (zh) * | 2022-08-05 | 2023-06-06 | 深圳市湘凡科技有限公司 | 一种kvm切换器的检测方法和相关设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5558422B2 (ja) * | 2011-06-27 | 2014-07-23 | 日本電信電話株式会社 | ネットワークシステム、冗長化方法、障害検知装置及び障害検知プログラム |
JP2014138407A (ja) * | 2013-01-18 | 2014-07-28 | Hitachi Ltd | ノード装置、通信システム及び仮想スイッチの切替方法 |
US9680772B2 (en) * | 2013-09-09 | 2017-06-13 | Vmware, Inc. | System and method for managing configuration of virtual switches in a virtual machine network |
-
2019
- 2019-05-17 CN CN201910411554.3A patent/CN110321197A/zh active Pending
-
2020
- 2020-01-21 JP JP2020007535A patent/JP6806349B2/ja not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112099902A (zh) * | 2020-08-17 | 2020-12-18 | 杭州安恒信息安全技术有限公司 | 虚拟机的网络适配器配置方法、装置、电子装置和存储介质 |
CN114422295A (zh) * | 2021-12-27 | 2022-04-29 | 联想(北京)有限公司 | 一种网络信息处理方法、电子设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
JP2020191068A (ja) | 2020-11-26 |
JP6806349B2 (ja) | 2021-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110321197A (zh) | 一种基于kvm的虚拟网卡管理方法 | |
CN104503965B (zh) | PostgreSQL高弹性的高可用及负载均衡实现方法 | |
CN110377395A (zh) | 一种Kubernetes集群中的Pod迁移方法 | |
CN104378423B (zh) | 元数据集群分布式存储系统及读取、写入存储数据的方法 | |
CN103780417B (zh) | 一种基于云硬盘的数据库故障转移方法及装置 | |
CN102194009B (zh) | 一种数据库托管方法和一种数据库托管平台系统 | |
CN106850260A (zh) | 一种虚拟化资源管理平台的部署方法和装置 | |
US7464302B2 (en) | Method and apparatus for expressing high availability cluster demand based on probability of breach | |
CN111309524A (zh) | 分布式存储系统故障恢复方法、装置、终端及存储介质 | |
CN104036043A (zh) | 一种mysql高可用的方法及管理节点 | |
CN112395047A (zh) | 虚拟机故障疏散方法、系统及计算机可读介质 | |
CN108319617A (zh) | 确定数据库主从差异的方法、装置及切换控制方法、装置 | |
CN110659158A (zh) | 基于双机热备环境的Influx DB数据备份方法 | |
CN101572724A (zh) | 一种软件版本管理系统 | |
US20230004465A1 (en) | Distributed database system and data disaster backup drilling method | |
CN112583648A (zh) | 一种基于dns的智能服务故障处理方法 | |
CN107220104A (zh) | 一种虚拟机备灾方法和装置 | |
CN104794119A (zh) | 用于中间件消息的存储与传输方法及系统 | |
CN106325768B (zh) | 一种双机存储系统及方法 | |
CN105389231A (zh) | 一种数据库双机备份方法及系统 | |
CN110647425A (zh) | 一种数据库恢复方法及装置 | |
CN111125060B (zh) | 一种数据库管理方法、系统、设备及存储介质 | |
CN106612314A (zh) | 基于虚拟机实现软件定义存储的系统 | |
CN102073523B (zh) | 实现软件版本同步的方法及装置 | |
CN110377487A (zh) | 一种处理高可用集群脑裂的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20191011 |