kvm虚拟化技术实现原理

kvm虚拟化技术实现原理,第1张

Qemu, PearPC, Bochs, ...

VMWare Workstation, VirtualBox, VMWare Server, Parallels Desktop, KVM(hvm), XEN(hvm)

LXC, OpenVZ, libcontainer, runC, rkt, Linux V Servers, Virtuozzo, ...

wine

jvm, pvm, ...

Type-I:Hypervisor直接运行于硬件;

Type-II:Hypervisor运行主机OS之上;

硬件级物理内存映射到虚拟机

KVM 是基于虚拟化扩展(Intel VT 或者 AMD-V)的 X86 硬件的开源的 Linux 原生的全虚拟化解决方案。KVM 中,虚拟机被实现为常规的 Linux 进程,由标准 Linux 调度程序进行调度;虚机的每个虚拟 CPU 被实现为一个常规的 Linux 进程。这使得 KMV 能够使用 Linux 内核的已有功能。

但是,KVM 本身不执行任何硬件模拟,需要客户空间程序通过 /dev/kvm 接口设置一个客户机虚拟服务器的地址空间,向它提供模拟的 I/O,并将它的视频显示映射回宿主的显示屏。目前这个应用程序是 QEMU。

KVM模块load进内存之后,系统的运行模式:

扫描物理内存,发现多个虚拟机实例有相同的内存空间,合并成为一个共享内存空间,节省内存。

运行中的一个kvm虚拟机就是一个qemu-kvm进程,运行qemu-kvm程序并传递给它合适的选项及参数即能完成虚拟机启动,终止此进程即能关闭虚拟机;

kvm:核心模块

CentOS 7创建物理桥,使用内核自带的桥接模块实现:

桥接口配置文件保留地址信息;

物理网卡配置文件:

删除地址、掩码和网关等相关的配置,添加

重启网络服务即可:

此时会断网,到虚拟机重启一下,发现已生成网桥,但还要配置网桥的dns,否则无法上网。

其他终端图形登录[root@node-60 ~]# ssh -X root@192.168.1.64

参考链接:

http://www.178linux.com/103971

https://www.cnblogs.com/sunhao96/p/7605865.html

https://bbs.csdn.net/topics/391040787

https://www.ibm.com/developerworks/cn/linux/l-pci-passthrough

前面介绍的虚拟化技术本质上都是共享设备,带来的代价就是性能的降低,在追求性能的场景中并不适用。设备透传技术提供了虚拟机独占设备的方法,这在网卡PCI Passthrough可以将物理网卡直接交给虚拟机使用。虚拟机独占网卡,使用性能接近物理网卡。

因为PCI透传虚机要独占网卡,所以对宿主的网卡数也是有要求的。同时设备透传在虚机热迁移时还会遇到问题。

SR-IOV全称Single-Root I/O Virtualization,是一个将PCI-E设备共享给虚拟机的使用方案,多用在网络设备。SR-IOV从硬件上绕过系统和虚拟化层,使每个虚机能有单独的内存地址、中断、DMA流。

SR-IOV有两个功能模型:


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/374599.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-14
下一篇2023-05-14

发表评论

登录后才能评论

评论列表(0条)

    保存