任务一: 搭建openEuler系统的qemu虚拟机
知识点
1、qemu
qemu是一个模拟器,它向Guest OS模拟CPU和其他硬件,Guest OS同qemu模拟出来的硬件打交道,qemu将这些指令转译给真正的硬件。由于所有的指令都要从qemu里面过一手,因而性能较差。
qemu作为系统模拟器,可以模拟出一台能够独立运行操作系统的虚拟机。如下图所示,每个虚拟机对应主机(Host)中的一个qemu进程,而虚拟机的vCPU对应qemu进程的一个线程。
2、KVM
KVM是linux的内核模块,它需要CPU的支持,采用硬件辅助虚拟化技术Intel-VT,AMD-V。KVM通过/dev/kvm暴露接口,可通过ls /dev/kvm
或 ls /sys/module/kvm
查看是否存在相应目录/文件,来确定内核是否支持KVM虚拟化。若上述文件/目录不存在,则说明系统内核编译时未开启KVM虚拟化,需要更换支持KVM虚拟化的Linux内核。
KVM内核模块本身只能提供CPU和内存的虚拟化,所以它必须结合QEMU才能构成一个完成的虚拟化技术,即qemu-kvm。
qemu-kvm:qemu将KVM整合进来,通过ioctl调用/dev/kvm接口,将有关CPU指令的部分交由内核模块来做。kvm负责cpu虚拟化+内存虚拟化,实现了cpu和内存的虚拟化,但kvm不能模拟其他设备;而qemu模拟IO设备(网卡,磁盘等),kvm加上qemu之后就能实现真正意义上服务器虚拟化。因为用到了上面两个东西,所以称之为qemu-kvm。
3、libvirt
libvirt是目前使用最为广泛的对KVM虚拟机进行管理的工具和API。libvirtd是其daemon进程,可以被本地的virsh调用,