虚拟化分类:
软件虚拟化:完全通过虚拟化层模拟的方式,为虚拟机的运行提供支持
硬件虚拟化:通过虚拟化层结合宿主机硬件支持,为虚拟机的运行提供支持
半虚拟化:需要对虚拟机进行虚拟化相关改动,客户意识到自己在虚拟化环境中
全虚拟化:无需对虚拟机进行任何改动,客户无意识到自己在虚拟化环境中
KVM(Kernel Virtual Machine内核虚拟机)是一种硬件虚拟化技术,同时也是属于全虚拟化技术
KVM中,只有一个KVM内核模块,一台虚拟机对应一个qemu进程,所有的qemu模块都跟KVM模块进行交互
KVM架构:
KVM内核模块+qemu设备模拟器
KVM内核模块:
KVM虚拟化的核心部分,实现了处理器虚拟化、内存虚拟化。KVM内核模块能够打开宿主机的CPU虚拟化模式,为后续虚拟机能够运行在CPU虚拟化模式中提供支持
qemu设备模拟器:
实现了虚拟机外部设备硬件的模拟,仿真实现虚拟机对外部设备的操作,包括模拟BIOS、磁盘、网卡、显卡、声卡、键盘、鼠标等。用户可通过qemu设备模拟器与KVM内核模块交互
注意:在KVM架构中,虚拟机在宿主机中的运行是以Linux用户进程的形式运行的,虚拟机的创建与运行需要通过qemu命令,因此虚拟机进程一般又称为qemu进程,宿主机中有多少台KVM虚拟机在运行,则在宿主机中就有多少个qemu进程。宿主机中只存在一个KVM内核模块,所有虚拟机qemu进程都与这一KVM模块交互。
qemu命令
在宿主机中,用户可以通过qemu命令,完成KVM虚拟机的配置、创建、迁移等操作
例如:
qemu-kvm命令:用于实现虚拟机的配置、创建
qemu-img命令:用于实现虚拟机虚拟磁盘文件的创建
标签:KVM,虚拟化,虚拟机,kvm,介绍,宿主机,qemu,内核模块 From: https://www.cnblogs.com/tang-learning/p/16795437.htmllibvirt产生背景:qeumu命令通常较长,应用起来很不方便,qemu命令只能对宿主机本地的虚拟机进行管理,无法对其它宿主机的虚拟机进行管理。于是libvirt产生了。****
libvirt是一款KVM虚拟化平台管理工具,提供标准化的管理接口,可以对不同厂商的虚拟化平台进行统一管理。同时,libvirt提供可编程接口,方便开发更加便利的虚拟化平台工具,virt-manager,virsh,virt-viewer以及virt-install都是基于此而开发出来的