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有两个功能模型:
在所谓的kvm技术中,应用到的其实有2个东西:qemu+kvmkvm负责cpu虚拟化+内存虚拟化,实现了cpu和内存的虚拟化,但kvm不能模拟其他设备;
qemu是模拟IO设备(网卡,磁盘),kvm加上qemu之后就能实现真正意义上服务器虚拟化。
因为用到了上面两个东西,所以一般都称之为qemu-kvm。
libvirt则是调用kvm虚拟化技术的接口用于管理的,用libvirt管理方便,直接用qemu-kvm的接口太繁琐
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)