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

内部磁盘快照使用单个qcow2文件来保存快照和快照之后的改动。这种快照是libvirt默认支持的方式,其缺点是只支持qcow2格式的磁盘镜像,而且过程较慢。

使用 virsh save/restore 命令,可以在虚拟机开机状态下保存内存状态、设备状态、磁盘装套到指定文件中,还原的是后虚拟机关机,使用 virsh restore 还原。(类似于休眠)

外置磁盘快照创建的快照是一个只读文件,成为1个backing-file,快照后改动的内容存放到另一个qcow2文件,成为1个overlay,外置快照可以支持各种格式的磁盘镜像文件,外置快照的结果是形成一个qcow2文件链。快照状态为disk-snapshot的为外置快照。

虚拟机的磁盘磁盘状态被保存到一个文件中,内存和设备状态被保存到另一个文件中。

注意:如果虚拟机存在多硬盘,在创建外置快照时,为保证原子性,需要添加参数atomic

虚拟机的快照链:

外置快照可以用合并的方式缩短快照链,而不能通过删除的方式,因为每个快照中都保存相应的数据。合并快照的方式有2种:blockcommit向下合并和blockpull向上合并。

blockcommit将top镜像合并至低层的base镜像,一旦合并完成,处在最上面的overlay将自动被指向低层的overlay或base,即合并overlay到backing-file。

在创建外置快照时出现 Operation not supported: live disk snapshot not supported with this QEMU binary 的错误提示,需要执行以下操作:

KVM的快照之间存在链式关系,快照链中在未执行合并前,不能删除快照链中的任意一个快照。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存