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

kernel-based Virtual Machine的简称,是一个开源的系统虚仔态拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM目前已成为学术界的主流VMM之一。 KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。是基于硬件的完全虚拟化。而Xen早期则是基于软件模拟的Para-Virtualization,新版本则是基于硬件支持的完全虚拟化。但Xen本身有自己到进程调度器,存储管理模块等,所以代码较为庞大。广为流传的商业系统虚拟化软件VMware ESX系列也旁戚喊是基运野于软件模拟的Para-Virtualization。

常用的虚拟化产品有哪些

1.Kvm(redhat)企业级

2.Vmware:

- - Vmware-workstation(windows和linux)桌面级

- -Vmware-fusion(mac)

- -Vmware-esxi(企业级别)本身就是一个 *** 作系统。

3.hyper-v(微软)

4.Ovm(oracle公司--Windows linux) virtulbox

5.Xen(rhel6之前所有版本默认用的虚拟化产品)

虚拟化技术的分类:

我们通常所说的虚拟化主要是指平台虚拟化技术,通过使用控制程序(Control Program,也被称为 Virtual Machine Monitor(虚拟监控器VMM) 或 Hypervisor ,隐藏特定计算平台的实际物理特性,为用户提供抽象的、统一的、模拟的计算环境(称为虚拟机)。

平台虚拟化类型

全虚拟化(Full Virtualization):

半虚拟化(Para Virtualization):

硬件辅助虚拟化

部分虚拟化

企业级虚拟化与桌面级虚拟化的区别

从rhel6开始使用 直接把kvm的模块做成了内核的一部分

xen用在rhel6之前的企业版中 默认内核不支持,需要重新安装带xen功能的内核

KVM 针对运行在 x86 硬件上的、驻留在内核中的虚拟化基础结构。KVM 是第一个成为原生 Linux 内核(2.6.20)的一部分的 hypervisor,它是由 Avi Kivity 开发和维护的,现在归 Red Hat 所有。

这个 hypervisor 提供 x86 虚拟化,同时拥有到 PowerPC® 和 IA64 的通道。另外,KVM 最近还添加了对对称多处理(SMP)主机(和来仔野宾)的支持,并且支持企业级特性,比如活动迁移(允许来宾 *** 作系统在物理服务器之间迁移)。

KVM 是作为内核模块实现的,因此 Linux 只要加载该模块就会成为一个hypervisor。KVM 为支持 hypervisor 指令的硬件平台提供完整的虚拟化(比如 Intel® Virtualization Technology [Intel VT] 或 AMD Virtualization [AMD-V] 产品)。KVM 还支持准虚拟化来宾 *** 作系统,包括 Linux 和 Windows®。

这种技术由两个组件实现。培戚瞎第一个是可加载的 KVM 模块,当在 Linux 内核安装该模块之后,它就可以管理虚拟化硬件,并通过 /proc 文件系统公开其功能。第二个组件用于 PC 平台模拟,它是由修改版 QEMU 提供的。QEMU 作为用户空间进程执行,并且在来宾 *** 作系统请求方面与内核协调。

当新的 *** 作系统在 KVM 上启动时(通过一个称为 kvm 的实用程序),它就成为宿主 *** 作系统的一个进程,因此就可以像其他进程一样调度它。但与传统的 Linux 进程不一样,来宾 *** 作系统被 hypervisor 标识为处于 "来宾" 模式(独立于内核和用户模式)。

每个配空来宾 *** 作系统都是通过 /dev/kvm 设备映射的,它们拥有自己的虚拟地址空间,该空间映射到主机内核的物理地址空间。如前所述,KVM 使用底层硬件的虚拟化支持来提供完整的(原生)虚拟化。I/O 请求通过主机内核映射到在主机上(hypervisor)执行的 QEMU 进程。

KVM 在 Linux 环境中以主机的方式运行,不过只要底层硬件虚拟化支持,它就能够支持大量的来宾 *** 作系统.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12470399.html

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

发表评论

登录后才能评论

评论列表(0条)

保存