- CPU虚拟化
KVM的虚拟化需要CPU硬件的支持。CPU厂商Intel和AMD都支持虚拟化,除非是非常老的CPU。
一个KVM虚拟机在宿主机中其实是一个qemu-kvm进程,与其他Linux进程一样被调度。可以通过ps命令查看。
虚机的vCPU总数可以超过物理CPU数量,这个叫做CPU的超配。KVM允许超配情况的出现,这种特性使得虚机能充分利用宿主机的CPU资源,但是有前提的,即同一时刻,不是所有的虚机都满负荷运行。。。否则会影响性能,所以在超配前要对负载情况有了解。 - 内存虚拟化
KVM通过VA(虚拟内存)->PA(物理内存)->MA(机器内存)之间的地址转换,实现一台机器运行多个虚拟机。虚机OS控制虚拟地址到客户内存物理地址的映射(VA->PA),但是虚机OS不能直接访问实际机器内存,因此KVM需负责映射客户物理内存到实际机器内存(PA->MA)。
内存也支持超配。 - 存储虚拟化
KVM的存储虚拟化通过存储池和卷来管理。
存储池是宿主机上可以看到的一片空间,可多种类型。
卷是存储池划分出来的一块空间,宿主机将卷分配给虚机,卷在虚拟机中看到就是一块硬盘。
卷的优点:存储方便、移植性好、可复制、可远程访问(可放在远程文件系统中,便于多宿主机共享)。
KVM支持卷文件格式有raw/qcow2/vmdk。
raw默认格式,原始磁盘镜像格式,移植便利,性能好,但是大小固定,难节省空间。
qcow2推荐使用,copy on write,省空间,支持AES加密,支持压缩,多快照。
vmdk是VMWare的虚拟磁盘格式,简单而言,就是VMWare可以直接在KVM上运行。
openStack五分钟之KVM虚拟化原理
最新推荐文章于 2024-03-18 17:33:52 发布