一、KVM概述
1、KVM
Kernel-based Virtual Machine 基于内核的虚拟机
以色列Qumranet公司研发,是内核的一个模块
2006年研发,2008被RedHat收购了
依赖于HVM技术:Intel VT-X,AMD AMD-V
2、KVM模块载入后的系统运行模式
内核模式:GuestOS执行I/O类操作,或其它的特殊指令的操作
用户模式:代表GuestOS代为请求I/O类操作,
来宾(guest)模式:GuestOS的非I/O类操作,事实上,它被称作虚拟机的用户模式
3、KVM的组件
两类组件:
/dev/kvm:工作于hypervisor,在用户空间可通过ioctl()系统调用来完成VM创建,启动等管理功能,它是一个字符设备,
功能:创建VM,为VM分配内存,读写VCPU的寄存器,向CPU注入中断,运行VCPU等
qemu进程:工作于用户空间,主要用于实现模拟PC机的I/O设备
4、KVM特性
1)内存管理
将分配给VM的内存交换至SWAP
支持使用Huge Page(大内存页);
支持使用Intel EPT或AMD RVI技术完成内存地址映射:GVA-->GPA-->HPA简化为GVA-->HPA
支持KSM (Kernel Same-page Merging)
这个内核特性实现了内存页面共享。KSM通过扫描每个虚拟机的内存查找各虚拟机间相同的内存页,并将这些内存页合并为一个被各相关虚拟机共享的单独页面。在某虚拟机试图修改此页面中的数据时,KSM会重新为其提供一个新的页面副本。实践中,运行于同一台物理主机上的具有相同GuestOS的虚拟机之间出现相同内存页面的概率是很的,比如共享库、内核或其它内存对象等都有可能表现为相同的内存页,因此,KSM技术可以降低内存占用进而提高整体性能。
2)硬件支持
取决于Linux内核;
3)存储:
本地存储:
网络附加存储:
存储区域网络:
分布式存储:例如GlustFS
4)实时迁移:
支持的GuestOS:
Linux, Windows, OpenBSD, FreeBSD, OpenSolaris;
5)设备驱动:
IO设备的完全虚拟化:模拟硬件
IO设备的半虚拟化:在GuestOS中安装驱动;virtio
virtio-blk, virtio-net, virtio-pci, virtio-console, virtio-ballon
5、KVM局限性
一般局限性:
CPU overcommit
时间记录难以精确,依赖于时间同步机制
MAC地址:
VM量特别大时,存在冲突的可能性;
实时迁移:
性能局限性:
6、KVM的工具栈介绍
分为2大类:
qemu:
qemu-kvm
qemu-img
libvirt
GUI: virt-manager, virt-viewer
CLI: virt-install, virsh
QEMU主要提供了以下几个部分:
处理器模拟器
仿真IO设备
关联模拟的设备至真实设备;
调试器
与模拟器交互的用户接口
补充资料:
VMM:对IO的驱动有三种模式:
自主VMM:VMM自行提供驱动和控制台;
混合VMM:借助于OS提供驱动;
依赖于外部OS实现特权域
自我提供特权域
寄宿式VMM:
二、KVM安装
1、安装kvm
1) 确保CPU支持HVM
# grep -E --color=auto "(vmx|svm)" /proc/cpuinfo
2) 装载模块
[root@BAIYU_180 ~]# lsmodModule Size Used byppdev 8537 0 vmware_balloon 7199 0 parport_pc 22690 0 parport 36209 2 ppdev,parport_pcmicrocode 112685 0 snd_ens1371 21587 0 snd_rawmidi 23017 1 snd_ens1371
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1148
183.71 KB下载数642
644.84 KB下载数2756