🦁KVM
KVM 是 Kernel-based Virtual Machine 的简称,KVM 要求 CPU 支持硬件虚拟化技术(例如Intel VT或AMD-V),是Linux下全虚拟化解决方案,KVM 由处于内核态的 KVM 模块kvm.ko和用户态的 QEMU 两部分构成。
内核模块kvm.ko实现了 CPU 和内存虚拟化等决定关键性能和核心安全的功能,并向用户空间提供了使用这些功能的接口,QEMU 利用 KVM 模块提供的接口来实现设备模拟、I/O 虚拟化和网络虚拟化等。

KVM:负责CPU、内存等,由kvm_xxx.ko实现,工作于hypervisor,在用户空间通过ioctl()系统调用来完成KVM创建、启动等工作。
QEMU:负责模拟IO设备、网卡、硬盘等,qemu-kvm进程工作于用户空间,用于实现一个虚拟机实例
Libvirt:提供统一API,守护进程libvirtd和相关工具,如:virsh、virt-manager;
创建Linux虚拟机
注意:
yum -y install cockpit
Centos7没有虚拟化管理功能,只支持Centos8
KVM管理工具:
libvirt
虚拟化管理工具和应用程序接口,通过libvirt调用KVM创建虚拟机,libvirt是kvm能用的访问API,不但能管理KVM还能管理Vmware、Xen、VirtualBox等虚拟化方案。
libvirt是一个C语言库,但也被其他语言的应用程序所应用,libvirt被封装为libvirtmod类或包。libvirtmod的实现与其C/C++语言的相应实现在语法和功能方面紧密相关。
virsh
管理KVM虚拟化的命令行工具,Virsh是一个使用C语言编写调用Libvirt API的虚拟化管理命令行工具。
Virt-manager
virt-manager是一个虚拟化图形软件,底层也是调用libvirt API来完成对虚拟机的操作。
常用命令
管理虚拟机
半虚拟化驱动Virtio
virtio 是半虚拟化的解决方案,是半虚拟化 Hypervisor 的一组通用 I/O 设备的抽象。提供了一套上层应用与各 Hypervisor 虚拟化设备(KVM、Xen、VMware 等)之间的通信框架和编程接口,客户机需要知道自己运行在虚拟化环境中,进而根据 Virtio 标准和 Hypervisor 协作,从而提高 I/O 性能。
Windows需要单独安装驱动,Linux自带virtio驱动。
创建Windows虚拟机
安装时选择高级,找到这2个驱动就能识别出硬盘,安装其它Windows都是相同方法
安装 PCI内存管理驱动

找到对应驱动即可。
QEMU guest agent
主要实现是Host哥呢主使用libivrt向VM发送命令。
离线工具
不启动虚拟机直接访问磁盘
· 观看下载虚拟磁盘中的文件
· 编辑或上传文件到虚拟机磁盘
Last updated
Was this helpful?