问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

QEMU虚拟机相关概念介绍

创作时间:
作者:
@小白创作中心

QEMU虚拟机相关概念介绍

引用
CSDN
1.
https://blog.csdn.net/qq_34719392/article/details/125543643

本文围绕QEMU,介绍虚拟机相关进阶知识。为更好地理解本文,读者最好能够了解虚拟机的基本概念。

虚拟机层次结构示意图


图1.1 虚拟机层次结构

Hypervisor

Hypervisor介于虚拟机和宿主机操作系统之间,负责对宿主机资源(为方便表述,本文均以硬件资源为例,但实际上被虚拟化的不只有硬件资源)进行虚拟化,并将虚拟化后的硬件资源提供给虚拟机。Hypervisor分为两类:

  • Type-1 Hypervisor:位于操作系统内核空间,具备对宿主机硬件资源的直接访问权限。代表:Microsoft Hyper-V、Linux KVM、VMWare ESXi。
  • Type-2 Hypervisor:位于用户空间,需要通过操作系统内核才能访问硬件。代表:QEMU、Oracle VirtualBox。

注意:

  1. QEMU是Hypervisor,而不是Guest。
  2. 一个Hypervisor之上可以运行多个Guest。
  3. 在Linux中,如果采用KVM作为Hypervisor,那么每个Guest本质上就是Linux用户空间的一个进程。

QEMU的工作模式


图3.1 QEMU的层次与工作模式

如上图所示,QEMU有两种工作模式:

  1. QEMU本身作为Hypervisor。QEMU与Linux内核交互,从而获取虚拟化后的硬件。这就是前文所述的Type-2 Hypervisor。
  • 交互层次:VM - QEMU - Linux Kernel - Driver - Hardware
  1. QEMU作为虚拟机与Linux KVM交互的中间层,仅负责传递交互信息,而不发挥Hypervisor的实际功能。真正发挥Hypervisor功能的是Linux KVM。
  • 交互层次:VM - QEMU - Linux KVM - KVM Virtual Driver - Hardware

第二种工作模式能够直接利用KVM,因而效率更高。而第一种工作模式多用于不需要和硬件直接交互的场合,例如在虚拟机中启动虚拟机。

libvirtd、libvirt、virt-manager的概念及与QEMU的关系

libvirtd是Linux中的一个守护进程,其使用的是libvirt库。

libvirt与QEMU的关系,类似于Kubernetes与Docker的关系:QEMU负责实际管理一台宿主机上的所有虚拟机;而libvirtd适用于一台宿主机上启用多台虚拟机的场景,它提供了一系列在虚拟机之间进行资源调度的接口,这些接口底层仍然是以QEMU命令来实现的。

virt-manager是libvirt的图形化界面。在virt-manager上的所有操作,都会被映射为libvirt命令;libvirt命令又会被映射为QEMU命令;如果QEMU处于第3节所述的第二种工作模式,那么QEMU命令又会再次被映射为KVM命令。

从图1.1虚拟机分层的视角来看,virt-manager、libvirt、QEMU与KVM都属于Hypervisor层次。结合图3.1可知,前三者都处于用户空间,只有KVM处于内核空间。

磁盘镜像

虚拟机所有计算资源(包括CPU和内存)都是由Hypervisor提供的。但是,Hypervisor无法直接提供虚拟机的存储资源。最常见的提供虚拟机存储资源的方式,是磁盘镜像。

磁盘镜像是一系列可以模拟各种存储设备的文件的总称。最常见的磁盘镜像文件就是.iso文件,它模拟的是一个光驱。当然,不同的磁盘镜像文件还可以模拟硬盘、软盘、磁带、USB设备等各种常见设备类型的驱动。

磁盘镜像本质上是一种虚拟设备,因此它需要专门的驱动程序来解析(换言之,不能直接使用真实存储设备的驱动,来解析磁盘镜像)。在Linux中,回环设备(loop device)能够解析磁盘镜像。Linux对磁盘镜像解析成功后,将会挂载一个虚拟块设备,在这个虚拟块设备上进行的所有操作,与真实设备上完全相同。

磁盘镜像可直接被KVM解析,从而作为虚拟机的磁盘设备。因此,如果是以KVM作为Hypervisor,那么解析磁盘镜像时,并不要求虚拟机中存在回环设备,因为KVM能够直接解析磁盘镜像。

QEMU中常用的磁盘镜像格式是raw和qcow2。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号