CN104503825B - 一种基于kvm混合式设备虚拟化方法 - Google Patents

一种基于kvm混合式设备虚拟化方法 Download PDF

Info

Publication number
CN104503825B
CN104503825B CN201410840861.0A CN201410840861A CN104503825B CN 104503825 B CN104503825 B CN 104503825B CN 201410840861 A CN201410840861 A CN 201410840861A CN 104503825 B CN104503825 B CN 104503825B
Authority
CN
China
Prior art keywords
equipment
kvm
virtual
virtual machines
direct
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
Application number
CN201410840861.0A
Other languages
English (en)
Other versions
CN104503825A (zh
Inventor
李兵兵
林春
黄敏
贾琼
于海龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xidian University
Original Assignee
Xidian University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xidian University filed Critical Xidian University
Priority to CN201410840861.0A priority Critical patent/CN104503825B/zh
Publication of CN104503825A publication Critical patent/CN104503825A/zh
Application granted granted Critical
Publication of CN104503825B publication Critical patent/CN104503825B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种基于KVM混合式设备虚拟化方法,通过在现有设备虚拟化模型上增加了虚拟机访问I/O路径选择控制器,当需要访问I/O设备的虚拟机数目大于物理机上I/O设备的个数时,虚拟机采用设备模拟I/O虚拟路径访问I/O设备;当需要访问I/O设备的虚拟机数目小于物理机上I/O设备的个数时,虚拟机采用直接I/O虚拟路径访问I/O设备。本发明降低了虚拟机访问I/O设备的平均时延,同时提高了设备的利用率。

Description

一种基于KVM混合式设备虚拟化方法
技术领域
本发明涉及计算机领域,具体涉及计算机资源虚拟化,适用于解决虚拟机访问物理设备方式的问题。
背景技术
虚拟化技术是一种将物理平台上不同种类的、分散的物理资源按不同属性进行抽象、重新组合,以逻辑资源的形式呈现给用户的方法。虚拟化技术最早应用于IBM等大型平台机上,由于当时计算机速度慢,资源利用率低,而计算机资源又比较昂贵,人们针对这个问题提出采用分时复用物理资源的办法来提高资源的利用率,这也是虚拟化的最初思想。随着计算机技术的发展,PC机逐渐普及,功能也越来越强大,人们开始关注内存和CPU的利用率问题。对物理内存的抽象,就产生了虚拟内存技术,使得应用程序认为自身拥有连续可用的地址空间,而实际上对应的物理内存可能是不连续的,分段存在的,即使物理内存不足,应用程序也能顺利执行。虚拟CPU是指在一台服务器上同时运行多个操作***,并且这些***相互隔离,互不影响。近几年移动业务的高速发展使得运营商之间竞争日趋激烈,如何降低能耗以及提高资源利用率等是各大运营商必须解决的重要问题。针对上述问题,***提出了基于集中式基带处理池、远端无线射频单元和天线组成的协作式无线网络以及基于开放平台的实时云型基础设施的C-RAN架构。集中式基带处理可以减少覆盖同样区域的基站的数量,从而可以降低能耗、减少成本,实现业务和利润的可持续增长。当处理单元被集中在基带池以后,如何实现物理资源到虚拟资源的映射以及提高资源利用率是虚拟化技术需要解决的关键问题。特别是近几年云计算概念的提出以及云计算技术的广泛应用,虚拟化技术再次成为企业界和学术界广泛关心的热门话题。
随着虚拟化技术的发展,CPU与内存虚拟化技术得到了深入地研究并且性能有了很大的提高。虽然最近几年国内外都在关注I/O设备虚拟化的研究,但由于物理设备多样性,同一生产厂家的设备种类和设备型号也有所不同,不同通信协议下使用的设备接口标准也不一样,这些都给I/O设备实现虚拟化和性能提升带来了一定的困难。目前硬件平台上,I/O的吞吐量明显增长,I/O设备的性能直接影响整个***性能的高低。调查显示,在虚拟化***中,对I/O频繁访问产生的工作负荷远大于因计算产生的负荷,因此提高I/O设备虚拟化的性能是研究虚拟化技术工作中的一个重要的任务。
目前,针对虚拟化有几种比较典型的产品,如VMware,Xen,KVM等。每种产品下按VMM所处的位置不同,又可以有不同的实现架构,如监控模型(Hypervisor Model)、宿主模型(Host-based Model)和混合模型(Hybrid Model)。目前对KVM研究的比较多,KVM(Kernel-based Virtual Machine)是一种GPL授权方式的开源虚拟机软件,基于硬件辅助的虚拟化解决方案。与其他虚拟机不同,KVM作为一个独立的内核模块存在于***内,与Linux结合的很好,使***内核自身成为一个虚拟机管理程序,降低了虚拟化开发的代码量。KVM能够提供CPU和内存的虚拟化,但它本身没有设备模拟作用,要实现物理设备的虚拟化需要借助于QEMU模拟器,QEMU是由Fabrice Bel lard所编写的开源模拟处理器软件,能支持多种处理器架构的模拟,包括X86、ARM、PowerPC等。目前基于KVM物理设备虚拟化方法有两种,即设备模拟I/O虚拟化和直接I/O虚拟化方法。这两种设备虚拟化方法均有其优点和缺点,设备模拟I/O虚拟化方法的优点在于它对硬件平台依赖性低,能模拟各种各样的设备,不需要宿主机及KVM虚拟机特殊的技术支持,模拟代码模块兼容性高。缺点是I/O访问路径长,完成一次I/O请求需要KVM模块与KVM虚拟机,KVM模块与QEMU之间多次切换,数据拷贝次数多,使得KVM虚拟机性能下降。直接I/O虚拟化方法克服了上下文切换的缺陷,也缩短了虚拟机访问I/O设备的路径,这种方法下I/O性能几乎与物理情况下相同,但是一台服务器上的主板空间有限,允许添加的PCI和PCIE设备也有限,设备直接分配后,只能固定的被一个虚拟机访问,物理设备的利用率不高。
发明内容
针对现有技术的不足,考虑实际应用中,基带池物理设备资源有限,而虚拟机开启的数目波动比较大,本发明旨在提出一种基于KVM混合式设备虚拟化方法,以降低虚拟机访问I/O的平均时延,同时提高设备的利用率。
为了实现上述目的,本发明采用如下技术方案:
一种基于KVM混合式设备虚拟化***,包括Linux内核、KVM虚拟机、KVM模块、QEMU模拟代码模块、KVM虚拟机监控器以及设有I/O设备的物理机,另外还设置有虚拟机访问I/O路径选择控制器。
需要说明的是,所述虚拟机访问I/O路径选择控制器是所述虚拟化***的关键部件,是实现优化KVM虚拟机访问I/O设备虚拟路径的关键手段,其实质上是一种选择开关。
基于上述***,一种基于KVM混合式设备虚拟化方法,包括如下步骤:
S1空闲的I/O设备的集合用E表示,被占用的I/O设备的集合用B表示,被KVM虚拟机以直接I/O虚拟路径访问的I/O设备的集合用B_d表示,被KVM虚拟机以设备模拟I/O虚拟路径访问的I/O设备的集合用B_s表示;记B_d中每个I/O设备还需执行任务的时间为Td,选择出Td<T0的I/O设备,组成集合B_p,其中,T0为任务等待的门限值;
S2记每次开启需要访问I/O设备的KVM虚拟机数目为K,而Ne和Nbp则分别表示集合E和集合B_p中元素的个数;虚拟机访问I/O路径选择控制器通过Ne、Nbp和K的关系比较为KVM虚拟机选择最优的I/O虚拟路径访问I/O设备。
需要说明的是,步骤S2的具体步骤包括:
2.1)当Ne>=K时,K个KVM虚拟机均采用直接I/O虚拟路径访问I/O设备;
2.2)当0<Ne<K且Nbp+Ne>K时,则根据一定要求的优先级对KVM虚拟机进行排序,分别将前Ne个KVM虚拟机以直接I/O虚拟路径访问I/O设备,其余的K-Ne个KVM虚拟机排队等待B_p集合中的I/O设备,有完成处理的I/O设备,则KVM虚拟机就以直接I/O虚拟路径访问该I/O设备;当0<Ne<K且Nbp+Ne<K时,则根据相同要求的优先级对KVM虚拟机进行排序,前Ne个虚拟机以直接I/O虚拟路径访问空闲的I/O设备,剩下的Nbp个虚拟机依次排队等待以直接I/O虚拟路径访问B_p中的I/O设备,最后剩余的KVM虚拟机以设备模拟I/O虚拟路径访问B_s中的I/O设备,并使这些I/O设备上加载的KVM虚拟机均衡;
2.3)当Ne=0时,则根据与步骤2.2)相同要求的优先级对KVM虚拟机进行排序,前Nbp个KVM虚拟机排队等待以直接I/O虚拟路径访问B_p中的I/O设备,剩余的以设备模拟I/O虚拟路径访问在B_s中的I/O设备,并使这些I/O设备负载的KVM虚拟机个数达到均衡。
需要进一步说明的是,步骤2.2)和2.3)中,具体按照任务请求的优先级对KVM虚拟机进行排序。
需要进一步说明是,KVM虚拟机采用设备模拟I/O虚拟路径访问I/O设备的方法具体如下:
a1)KVM虚拟机发起一次I/O操作请求,被KVM模块中的I/O捕获代码截获,I/O捕获代码对I/O请求命令进行相应处理,解析出端口号,数据的大小、起始地址的等信息,并把这些信息存储在I/O共享页中,I/O捕获代码和QEMU模拟代码模块通过I/O共享页交互信息;
a2)I/O捕获代码以中断的形式通知QEMU模拟代码模块有I/O请求需要处理,QEMU模拟代码收到通知后访问I/O共享页,从I/O共享页中获取该I/O请求的具体信息并由模拟代码出对应的I/O操作;
a3)操作完成后QEMU模拟代码模块把结果放回到I/O共享页中,同时以中断的形式通知给KVM模块中的I/O捕获代码;
a4)I/O捕获代码从I/O共享页中读出操作结果,并把该结果按原路返回反馈给KVM虚拟机,这时KVM虚拟机完成了一次I/O请求操作。
需要进一步说明的是,KVM虚拟机采用直接I/O方式访问I/O设备时,实现直接I/O设备虚拟化需要修改Linux内核和QEMU;具体步骤如下:
b1)由于实现I/O设备的直接I/O虚拟化需要硬件的支持,因此在物理机的基本输入输出***(BIOS)设置有一个VT-d功能模块,开启物理机时候,需要将这一功能模块打开;使用DMA重映射之前需要对支持直接I/O设备虚拟化的硬件进行探测,根据BIOS的ACPI表解析出物理机上每个DMA重映射所述支持直接I/O设备虚拟化硬件的包括该硬件寄存器地址、管理的I/O设备在内的所有信息,并把这些信息汇报给上层软件;***会根据这些信息进行识别并且进入I/O设备初始化;
b2)抽象I/O设备
在该KVM虚拟机使用目标I/O设备之前,KVM虚拟机通过设备隐藏阻挡其它KVM虚拟机或宿主机对其访问;QEMU模拟代码模块把QEMU模拟出来的I/O设备在KVM虚拟机里作为设备占位符,再把分配的I/O设备映射到该模拟I/O设备上;
b3)KVM虚拟机启动初始化
KVM虚拟机启动之前,创建I/O端口转换表、MMIO转换表与KVM虚拟机I/O页表;I/O端口转换表和MMIO转换表主要用于虚拟基地址寄存器(PCI Bar)到真实PCI Bar的转换,KVM虚拟机I/O页表用于地址转换。
需要进一步说明的是,步骤b1)中,I/O设备初始化包括建立和初始化根条目、旁路转换缓存器(IOTLB)初始化以及上下文条目的初始化。
需要进一步说明的是,步骤b2)中,把分配的I/O设备映射到该模拟I/O设备上主要包括给I/O设备分配标识符、填充PCI配置信息、建立PCI Bar映射。
本发明的有益效果在于:
1、使I/O设备能够执行虚拟机的工作负荷,降低虚拟机访问I/O设备的平均访问时延;以及提高设备利用率;
2、支持KVM虚拟机以不同的方式访问I/O设备;
3、将设备资源动态地分配给KVM虚拟机,而不要求对虚拟化的I/O设备进行显著的硬件改变;
4、能够修改设备软件和(或)固件,以支持对不同虚拟机的工作负荷进行隔离和调度。
附图说明
图1为本发明的总体实施示意图;
图2为基于KVM设备模拟I/O虚拟化模型;
图3为基于KVM直接I/O虚拟化模型;
具体实施方式
以下将结合附图对本发明作进一步的描述,需要说明的是,本实施例以本技术方案为前提,给出详细的实施方式和具体的操作过程,但并不限于本实施例。
一种基于KVM混合式设备虚拟化***,包括Linux内核、KVM虚拟机、KVM模块、QEMU模拟代码模块、KVM虚拟机监控器以及设有I/O设备的物理机,另外还设置有虚拟机访问I/O路径选择控制器。
需要说明的是,所述虚拟机访问I/O路径选择控制器是所述虚拟化***的关键部件,是实现优化KVM虚拟机访问I/O设备虚拟路径的关键手段,其实质上是一种选择开关。
如图1所示,基于上述***,一种基于KVM混合式设备虚拟化方法,包括如下步骤:
S1空闲的I/O设备的集合用E表示,被占用的I/O设备的集合用B表示,被KVM虚拟机以直接I/O虚拟路径访问的I/O设备的集合用B_d表示,被KVM虚拟机以设备模拟I/O虚拟路径访问的I/O设备的集合用B_s表示;记B_d中每个I/O设备还需执行任务的时间为Td,选择出Td<T0的I/O设备,组成集合B_p,其中,T0为任务等待的门限值;
S2记每次开启需要访问I/O设备的KVM虚拟机数目为K,而Ne和Nbp则分别表示集合E和集合B_p中元素的个数;虚拟机访问I/O路径选择控制器通过对Ne、Nbp、K的关系比较为KVM虚拟机选择最优的I/O虚拟路径访问I/O设备;
步骤S2实际上是虚拟机访问I/O路径控制器根据物理机上I/O设备的个数和KVM虚拟机的数目,为KVM虚拟机选择设备模拟I/O虚拟路径或者直接I/O虚拟路径访问I/O设备。
需要说明的是,步骤S2的具体步骤包括:
2.1)当Ne>=K时,K个KVM虚拟机均采用直接I/O虚拟路径访问I/O设备;
2.2)当0<Ne<K且Nbp+Ne>K时,则根据一定要求的优先级对KVM虚拟机进行排序,分别将前Ne个KVM虚拟机以直接I/O虚拟路径访问I/O设备,其余的K-Ne个KVM虚拟机排队等待B_p集合中的I/O设备,有完成处理的I/O设备,则KVM虚拟机就以直接I/O虚拟路径访问该I/O设备;当0<Ne<K且Nbp+Ne<K时,则根据相同要求的优先级对KVM虚拟机进行排序,前Ne个虚拟机以直接I/O虚拟路径访问空闲的I/O设备,剩下的Nbp个虚拟机依次排队等待以直接I/O虚拟路径访问B_p中的I/O设备,最后剩余的KVM虚拟机以设备模拟I/O虚拟路径访问B_s中的I/O设备,并使这些I/O设备上加载的KVM虚拟机均衡;
2.3)当Ne=0时,则根据与步骤2.2)相同的优先级对KVM虚拟机进行排序,前Nbp个KVM虚拟机排队等待以直接I/O虚拟路径访问B_p中的I/O设备,剩余的以设备模拟I/O虚拟路径访问在B_s中的I/O设备,并使这些I/O设备负载的KVM虚拟机个数达到均衡。
需要进一步说明的是,步骤2.2)和2.3)中,具体按照任务请求的优先级对KVM虚拟机进行排序。
需要进一步说明是,如图2所示,KVM虚拟机采用设备模拟I/O虚拟路径访问I/O设备的方法具体如下:
a1)KVM虚拟机发起一次I/O操作请求,被KVM模块中的I/O捕获代码截获,I/O捕获代码对I/O请求命令进行相应处理,解析出端口号,数据的大小、起始地址的等信息,并把这些信息存储在I/O共享页中,I/O捕获代码和QEMU模拟代码模块通过I/O共享页交互信息;
a2)I/O捕获代码以中断的形式通知QEMU模拟代码模块有I/O请求需要处理,QEMU模拟代码收到通知后访问I/O共享页,从I/O共享页中获取该I/O请求的具体信息并由模拟代码出对应的I/O操作;
a3)操作完成后QEMU模拟代码模块把结果放回到I/O共享页中,同时以中断的形式通知给KVM模块中的I/O捕获代码;
a4)I/O捕获代码从I/O共享页中读出操作结果,并把该结果按原路返回反馈给KVM虚拟机,这时KVM虚拟机完成了一次I/O请求操作。
需要进一步说明是,如图3所示,KVM虚拟机采用直接I/O虚拟路径访问I/O设备时,实现直接I/O设备虚拟化需要修改Linux内核和QEMU;其具体步骤如下:
b1)支持直接I/O虚拟化的硬件探测及初始化
由于实现I/O设备的直接I/O虚拟化需要硬件的支持,因此在物理机的基本输入输出***(BIOS)设置有一个VT-d功能模块,开启物理机时候,需要将这一功能模块打开;使用DMA重映射之前需要对支持直接I/O虚拟化的硬件进行探测,根据BIOS的ACPI表解析出物理机上的每个DMA重映射所述支持直接I/O虚拟化硬件的包括该硬件寄存器地址、管理的I/O设备在内的所有信息,并把这些信息汇报给上层软件;***会根据这些信息进行识别并且进入I/O设备初始化;
b2)抽象I/O设备
直接I/O虚拟化使得目标I/O设备被一个KVM虚拟机独占,因此在该KVM虚拟机使用目标I/O设备之前需要阻挡其它KVM虚拟机或宿主机对其访问,虚拟机中使用设备隐藏解决这一问题,使得除了目标KVM虚拟机外其他KVM虚拟机或宿主机无法检测到该I/O设备,因此也就无法访问这一I/O设备。抽象设备是把隐藏的真实设备抽象出来给目标KVM虚拟机识别。QEMU主要用于设备模拟,但利用VT-d技术实现直接I/O访问时仍需借助于QEMU模拟代码模块,它把QEMU模拟出来的I/O设备在KVM虚拟机里作为设备占位符,再把分配的I/O设备映射到该模拟I/O设备上,在KVM虚拟机看来使用的仍然是I/O设备。
b3)KVM虚拟机启动初始化
KVM虚拟机启动之前,创建I/O端口转换表、MMIO转换表与KVM虚拟机I/O页表;I/O端口转换表和MMIO转换表主要用于虚拟PCI Bar到真实PCI Bar的转换,KVM虚拟机I/O页表用于地址转换。
需要进一步说明的是,步骤b1)中,I/O设备初始化包括建立和初始化根条目、旁路转换缓存器(IOTLB)初始化以及上下文条目的初始化。
需要进一步说明的是,步骤b2)中,把分配的I/O设备映射到该模拟I/O设备上主要包括给设备分配标识符、填充PCI配置信息、建立PCI Bar映射。
对于本领域的技术人员来说,可以根据以上的技术方案和构思,给出各种相应的改变和变形,而所有的这些改变和变形都应该包括在本发明权利要求的保护范围之内。

Claims (7)

1.一种基于KVM混合式设备虚拟化***,包括Linux内核、KVM虚拟机、KVM模块、QEMU模拟代码模块、KVM虚拟机监控器以及设有I/O设备的物理机,其特征在于,还设置有虚拟机访问I/O路径选择控制器;
所述基于KVM混合式设备虚拟化***的基于KVM混合式设备虚拟化方法包括如下步骤:
S1空闲的I/O设备的集合用E表示,被占用的I/O设备的集合用B表示,被KVM虚拟机以直接I/O虚拟路径访问的I/O设备的集合用B_d表示,被KVM虚拟机以设备模拟I/O虚拟路径访问的I/O设备的集合用B_s表示;记B_d中每个I/O设备还需执行任务的时间为Td,选择出Td<T0的I/O设备,组成集合B_p,其中,T0为任务等待的门限值;
S2记每次开启需要访问I/O设备的KVM虚拟机数目为K,而Ne和Nbp则分别表示集合E和集合B_p中元素的个数;虚拟机访问I/O路径选择控制器通过Ne、Nbp和K的关系比较为KVM虚拟机选择最优的I/O虚拟路径访问I/O设备。
2.根据权利要求1所述的一种基于KVM混合式设备虚拟化***,其特征在于,步骤S2的具体步骤包括:
2.1)当Ne>=K时,K个KVM虚拟机均采用直接I/O虚拟路径访问空闲的I/O设备;
2.2)当0<Ne<K且Nbp+Ne>K时,则根据一定要求的优先级对KVM虚拟机进行排序,分别将前Ne个KVM虚拟机以直接I/O虚拟路径访问空闲的I/O设备,其余的K-Ne个KVM虚拟机排队等待B_p集合中的I/O设备,有完成处理的I/O设备时,则KVM虚拟机就以直接I/O虚拟路径访问该I/O设备;当0<Ne<K且Nbp+Ne<K时,则根据相同要求的优先级对KVM虚拟机进行排序,前Ne个虚拟机以直接I/O虚拟路径访问空闲的I/O设备,剩下的Nbp个虚拟机依次排队等待以直接I/O虚拟路径访问B_p中的I/O设备,最后剩余的KVM虚拟机以设备模拟I/O虚拟路径访问B_s中的I/O设备并使这些I/O设备上加载的KVM虚拟机均衡;
2.3)当Ne=0时,则根据与步骤2.2)相同要求的优先级对KVM虚拟机进行排序,前Nbp个KVM虚拟机排队等待以直接I/O虚拟路径访问B_p中的I/O设备,剩余的以设备模拟I/O虚拟路径访问在B_s中的I/O设备并使这些I/O设备负载的KVM虚拟机个数达到均衡。
3.根据权利要求2所述的一种基于KVM混合式设备虚拟化***,其特征在于,步骤2.2)和2.3)中,具体是按照任务请求的优先级对KVM虚拟机进行排序。
4.根据权利要求1-3任一所述的一种基于KVM混合式设备虚拟化***,其特征在于,KVM虚拟机采用设备模拟I/O虚拟路径访问I/O设备的方法具体如下:
a1)KVM虚拟机发起一次I/O操作请求,被KVM模块中的I/O捕获代码截获,I/O捕获代码对I/O请求命令进行相应处理,解析出端口号,数据的大小、起始地址的信息,并把这些信息存储在I/O共享页中,I/O捕获代码和QEMU模拟代码模块通过I/O共享页交互信息;
a2)I/O捕获代码以中断的形式通知QEMU模拟代码有I/O请求需要处理,QEMU模拟代码收到通知后访问I/O共享页,从I/O共享页中获取该I/O请求的具体信息并模拟出对应的I/O操作;
a3)操作完成后QEMU模拟代码模块把结果放回到I/O共享页中,同时以中断的形式通知给KVM模块中的I/O捕获代码;
a4)I/O捕获代码从I/O共享页中读出操作结果,并把该结果按原路返回反馈给KVM虚拟机,这时KVM虚拟机完成了一次I/O请求操作。
5.根据权利要求1、2或3所述的一种基于KVM混合式设备虚拟化***,其特征在于,KVM虚拟机采用直接I/O虚拟路径访问I/O设备时,实现直接I/O虚拟化需要修改Linux内核和QEMU;其具体步骤如下:
b1)支持直接I/O虚拟化的硬件探测及初始化
由于实现I/O设备的直接I/O虚拟化需要硬件的支持,因此在物理机的基本输入输出***(BIOS)设置有VT-d功能模块,开启物理机时候,需要启动所述VT-d功能模块;使用DMA重映射之前需要对支持直接I/O虚拟化的硬件进行探测,根据BIOS的ACPI表解析出物理机上每个DMA重映射所述支持直接I/O虚拟化硬件的包括该硬件寄存器地址、管理的I/O设备的在内的所有信息,并把这些信息汇报给上层软件;***会根据这些信息进行识别并且进入I/O设备初始化;
b2)抽象I/O设备
在KVM虚拟机使用目标I/O之前,KVM虚拟机通过设备隐藏阻挡其它KVM虚拟机或宿主机对其访问;QEMU模拟代码模块把QEMU模拟出来的I/O设备在KVM虚拟机里作为设备占位符,再把分配的I/O设备映射到该模拟I/O设备上;
b3)KVM虚拟机启动初始化
KVM虚拟机启动之前,创建I/O端口转换表、MMIO转换表与KVM虚拟机I/O页表;I/O端口转换表和MMIO转换表用于虚拟PCI Bar到真实PCI Bar的转换,KVM虚拟机I/O页表用于地址转换。
6.根据权利要求5所述的一种基于KVM混合式设备虚拟化***,其特征在于,步骤b1)中,I/O设备初始化包括建立和初始化根条目、旁路转换缓存器初始化以及上下文条目的初始化。
7.根据权利要求5所述的一种基于KVM混合式设备虚拟化***,其特征在于,步骤b2)中,把分配的I/O设备映射到该模拟I/O设备上包括给设备分配标识符、填充PCI配置信息、建立PCI Bar映射。
CN201410840861.0A 2014-12-29 2014-12-29 一种基于kvm混合式设备虚拟化方法 Active CN104503825B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410840861.0A CN104503825B (zh) 2014-12-29 2014-12-29 一种基于kvm混合式设备虚拟化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410840861.0A CN104503825B (zh) 2014-12-29 2014-12-29 一种基于kvm混合式设备虚拟化方法

Publications (2)

Publication Number Publication Date
CN104503825A CN104503825A (zh) 2015-04-08
CN104503825B true CN104503825B (zh) 2017-11-24

Family

ID=52945226

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410840861.0A Active CN104503825B (zh) 2014-12-29 2014-12-29 一种基于kvm混合式设备虚拟化方法

Country Status (1)

Country Link
CN (1) CN104503825B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105653372B (zh) * 2015-12-30 2019-03-29 中电科华云信息技术有限公司 基于云平台实现多虚拟化混合管理与调度的方法
CN106970821B (zh) * 2016-01-12 2021-02-02 阿里巴巴集团控股有限公司 一种kvm虚拟化下处理i/o请求的方法和装置
CN106371895A (zh) * 2016-09-04 2017-02-01 国云科技股份有限公司 一种升级kvm虚拟机去虚拟化的方法
CN107977251B (zh) * 2016-10-21 2023-10-27 超威半导体(上海)有限公司 对在虚拟化***中的共享寄存器的排他访问
CN106789337B (zh) * 2017-01-18 2020-06-26 郑州云海信息技术有限公司 一种kvm的网络性能优化方法
CN107977256A (zh) * 2017-12-15 2018-05-01 郑州云海信息技术有限公司 一种对fpga加速卡的访问方法、装置及介质
CN113886007B (zh) * 2021-09-18 2022-03-01 云宏信息科技股份有限公司 Kvm虚拟化***配置方法、管理方法、***及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101876954A (zh) * 2009-12-23 2010-11-03 中国科学院计算技术研究所 一种虚拟机控制***及其工作方法
CN103034526A (zh) * 2012-12-06 2013-04-10 中国电信股份有限公司云计算分公司 一种虚拟化服务的实现方法和装置
CN103473139A (zh) * 2013-09-26 2013-12-25 四川中电启明星信息技术有限公司 虚拟机集群资源分配调度方法
CN103605562A (zh) * 2013-12-10 2014-02-26 浪潮电子信息产业股份有限公司 一种kvm虚拟机在物理主机之间迁移的方法
CN104050014A (zh) * 2014-05-23 2014-09-17 上海爱数软件有限公司 基于虚拟化平台的高效存储管理方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101876954A (zh) * 2009-12-23 2010-11-03 中国科学院计算技术研究所 一种虚拟机控制***及其工作方法
CN103034526A (zh) * 2012-12-06 2013-04-10 中国电信股份有限公司云计算分公司 一种虚拟化服务的实现方法和装置
CN103473139A (zh) * 2013-09-26 2013-12-25 四川中电启明星信息技术有限公司 虚拟机集群资源分配调度方法
CN103605562A (zh) * 2013-12-10 2014-02-26 浪潮电子信息产业股份有限公司 一种kvm虚拟机在物理主机之间迁移的方法
CN104050014A (zh) * 2014-05-23 2014-09-17 上海爱数软件有限公司 基于虚拟化平台的高效存储管理方法

Also Published As

Publication number Publication date
CN104503825A (zh) 2015-04-08

Similar Documents

Publication Publication Date Title
CN104503825B (zh) 一种基于kvm混合式设备虚拟化方法
CN102707991B (zh) 多根i/o虚拟化共享方法和***
CN102110196B (zh) 并行运行多用户操作***间的数据安全传输方法及***
CN101751284A (zh) 一种分布式虚拟机监控器的i/o资源调度方法
CN104021109B (zh) 用于在计算机***中传递中断的技术
CN104239238B (zh) 用于管理转换旁视缓冲的方法和装置
CN102184122A (zh) 一种龙芯CPU主板bios及中断的实现方法
CN103034524A (zh) 半虚拟化的虚拟gpu
CN103608769A (zh) 组合的虚拟图形设备
CN102819312B (zh) 用于一异质性电脑***的超级作业***
CN100570562C (zh) 显卡、应用该显卡的虚拟机***及显示处理方法
US10241817B2 (en) Paravirtualized access for device assignment by bar extension
US7370137B2 (en) Inter-domain data mover for a memory-to-memory copy engine
WO2013091185A1 (en) Gpu accelerated address translation for graphics virtualization
CN102799465B (zh) 分布式虚拟化***的虚拟中断管理方法及装置
CN104486255A (zh) 业务资源调度方法和装置
CN103793260A (zh) 一种平台虚拟化***
CN101477496A (zh) 基于分布式内存虚拟化的numa结构的实现方法
CN101183315A (zh) 一种并行多处理器虚拟机***
CN104299466A (zh) 一种基于云计算平台的远程硬件实验方法及***
CN101876954B (zh) 一种虚拟机控制***及其工作方法
CN103455363B (zh) 一种虚拟机的指令处理方法、装置及物理主机
CN101739283A (zh) 一种计算机及虚拟***直接访问计算机硬件的方法
CN104298535A (zh) 延伸只读存储器管理***、方法及其管理主机
CN104583959A (zh) 允许处理器资源的虚拟化

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant