"深入解析KVM虚拟化技术和常用命令",KVM虚拟化技术及常用命令详解。小编来告诉你更多相关信息。
KVM虚拟化技术及常用命令详解
今天介绍KVM虚拟化技术及常用命令详解方面的知识,接下来小编为网友介绍。
KVM全称是Kernel-based Virtual Machine,即基于内核的虚拟机,是采用硬件辅助虚拟化技术的全虚拟化解决方案。对于I/O设备(如硬盘、网卡等),KVM即支持QEMU仿真的全虚,也支持virtio方式的半虚。
KVM从诞生开始就定位于基于硬件虚拟化支持的全虚实现,由于其在Linux内核2.6版本后被集成,通过内核加载模式使得Linux内核变成一个事实上的Hypervisor(虚拟机管理器,也叫VMM(Virtual Machine Monitor)),但是硬件管理还是由Linux Kernel来完成。
Hypervisor和VMM:
可以把hypervisor和VMM(virtual machine monitor)理解为同一样东西,它们都是用于监控和控制虚拟机操作系统。
在创建虚拟机的过程中,会虚拟出一整套的硬件资源,例如硬盘、内存、CPU、网络设备等,这些工作都是由hypervisor负责,除此之外,它还负责虚拟系统运行过程的资源分配和虚拟机的生命周期管理等。
一个KVM客户机就对应一个Linux进程,每个vCPU对应这个进程下的一个线程,还有单独处理I/O的线程,属于同一个进程组。
所以,宿主机上Linux Kernel可以像调度普通Linux进程一样调度KVM虚拟机,这种机制使得Linux Kernel的进程优化和调度功能优化等策略,都能用于KVM虚拟机。比如:通过进程权限限定功能可以限制KVM客户机的权限和优先级等。
由于KVM嵌入Linux内核中,除了硬件辅助虚拟化(如VT-d)的硬件设备能被虚拟机看见外,其他的I/O设备都是QEMU模拟出来的,所以QEMU是KVM天生的好基友。
可以说KVM就是在硬件辅助虚拟化技术之上构建起来的VMM。
但并非要求所有硬件虚拟化技术都支持才能运行KVM虚拟化,KVM对硬件最低的依赖是CPU的硬件虚拟化支持(比如:Intel的VT-x技术和AMD的AMD-V技术),而其他的内存和I/O的硬件虚拟化支持,会让整个KVM虚拟化下的性能得到更多的提升。
所以在虚拟机部署KVM功能时,首先就是要查看宿主机Host(也就是主机上的虚拟机,这里是在VMware Workstations的虚拟机打开CPU虚拟化功能。
然后在Linux系统中可以通过如下命令确定支持VT-x功能:
如果什么输出都没有,那说明你的系统并没有支持虚拟化的处理 ,不能使用KVM。
“vmx” 是 Intel CPU 的虚拟化技术标识,”svm” 是 AMD CPU 的虚拟化技术标识。安装KVM及相关的工具:
sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager
– qemu-kvm
:KVM虚拟化的基本包
– libvirt-daemon-system
:libvirt守护程序,提供API和管理虚拟化功能
– libvirt-clients
:包含用于与libvirt守护程序通信的客户端实用程序
– bridge-utils
:用于创建和管理网络桥接的工具集
– virt-manager
:用于管理虚拟机的图形化工具确认libvirtd服务已启动并运行:
sudo systemctl start libvirtdsudo systemctl status libvirtd#确保在系统启动时自动启动sudo systemctl enable libvirtd
通过virt-manger(图形化工具)来创建或者管理虚拟机
或者通过virsh(命令行工具)来创建或者管理虚拟机
"深入解析KVM虚拟化技术和常用命令",KVM虚拟化技术及常用命令详解。小编来告诉你更多相关信息。
KVM虚拟化技术及常用命令详解
下面是一些常用的virsh命令:
virsh list
: 列出当前运行的虚拟机virsh start
: 启动指定名称的虚拟机virsh shutdown
: 关闭指定名称的虚拟机virsh reboot
: 重启指定名称的虚拟机virsh create
: 根据指定的XML文件创建虚拟机virsh destroy
: 强制停止指定名称的虚拟机virsh undefine
: 删除指定名称的虚拟机配置virsh console
: 进入指定名称的虚拟机控制台virsh dominfo
: 显示指定名称的虚拟机信息virsh domstate
: 显示指定名称的虚拟机状态
接下来分析一下kvm的Makefile :
可以看出kvm的Makefile主要生成三个模块,kvm.o和kvm-intel.o、kvm-amd.o。
- kvm.o是kvm的核心模块,kvm基本只实现硬件辅助虚拟化相关部分,而不支持的用Qemu来模拟实现。
- kvm-intel.o是intel平台架构虚拟化模块,平台相关
- kvm-amd.o是amd架构虚拟化模块,平台相关
上述就是KVM虚拟化技术及常用命令详解的全面知识讲解,网小编希望能帮到您。