1. KVM的介绍
1.1 KVM架构的介绍
1. 目前有3种较为主流的虚拟化技术架构:ESXi架构、Xen架构及KVM架构,主要区别在虚拟化CPU、内存、磁盘及网络通信组件的模块不同及管理调度组件实现方式的不同;流虚拟化技术架构如图1.1所示。
图1.1 主流虚拟化技术架构
-
ESxi架构:CPU、内存、磁盘及网络通信组件的虚拟化都在ESXi内核中实现;由于CPU、内存、磁盘及网络通信组件的虚拟化都在同一内核中实现,故不需要管理调度组件。
-
Xen架构:CPU及内存的虚拟化都在Xen内核中实现,磁盘及网络通信组件的虚拟化都在Domain0中实现;管理调度组件由Domain0实现。
-
KVM架构:CPU及内存的虚拟化都在KVM内核中实现,磁盘及网络通信组件的虚拟化都在QEMU内核中实现;管理调度组件由Linux进程调度器实现。
-
管理调度组件:用于管理实现虚拟化的模块。
-
Domain0:计算机上启动的第一个虚拟机。
2. KVM内核模块:主要包括kvm.ko模块及kvm_intel.ko模块或kvm_amd.ko模块(硬件相关);KVM内核模块用于部分Linux内核的功能,如设备驱动及内存管理、进程管理调度等;负责虚拟化CPU及内存。
3. QEMU内核模块:通过IOCTL系统调用QEMU内核模块与KVM内核模块进行交互;负责虚拟化磁盘及网络通信组件。
4. KVM内核模块与QEMU内核模块交互的实现:KVM仅支持基于硬件辅助的虚拟化,在内核加载时,KVM先初始化内部数据结构,打开CPU控制寄存器CR4里面的虚拟化模式开关,执行VMXON指令将Host OS设置为root模式,并创建的特殊设备文件/dev/kvm等待来自用户空间的命令,通过IOCTL系统调用QEMU内核模块与KVM内核模块进行交互,实现虚拟机的管理。
1.2 安装及配置KVM
1. 参考文章https://help.ubuntu.com/community/KVM/Installation安装KVM及虚拟系统管理器(Virt-Manager)。
2. 命令行内输入virt-manager;启动虚拟系统管理器。
-
若报错Unable to connect to libvirt qemu:///system. 确定 ‘libvirtd’ 守护进程正在运行;则=>cd /var/run/libvirt/;进入libvirt文件夹=>sudo chmod 777 libvirt-sock