一个计算机由CPU、内存、各种控制器、外设组成,既然QEMU是一个模拟器,那么它一样遵循基本的计算机架构与原理。首先QEMU能够模拟的设备有很多种,按照设备类别可以分为总线控制器(南北桥)、USB总线控制器、存储设备、网络设备、输入设备、显示设备、声音设备、附加外设等。诸多设备都要在接入总线并与控制器通信的前提下才能使用,而我们需要在了解计算机架构的基础上进行添加,避免造成设备或者总线发生冲突。我们已经在之前章节介绍了计算机的逻辑架构,接下来我们从QEMU的两种经典x86机器模型入手,提供一个比较科学的命令构建或者是“计算机组装”方法。
1.I440FX
QEMU引入的Intel I440FX芯片组模型已经有二十多年的历史了,它使用了支持ACPI以及USB 2.0的PIIX4南桥,是绝大多数x86操作系统都支持的经典芯片组之一。I440FX芯片组在QEMU机器模型列表中一般是PC-XXX,芯片组中的控制器与芯片型号根据发行版的差异而有所不同,其整体架构如图4-2。
图4-2 I440FX芯片组
我们在CentOS7服务器中用CentOS LiveCD系统启动x86虚拟机,并列举这个模型中的默认PCI设备。
我们可以看出新的硬盘控制器接入了PCI总线,由于我们未指定位置,所以QEMU将其自动排列至网卡的后一个PCI槽位。另外,我们指定了网卡类型为“virtio”,而QEMU使用了指定类型的网卡而并不是在82540的基础上添加一个新网卡。注意某些版本QEMU机器模型都有一些“未指定则默认(缺省)”的选项或设备。(www.xing528.com)
2.Q35
Q35是Intel于2007年9月公布的主板芯片组,它使用ICH9作为南桥主控。相较于之前的I440FX,Q35拥有PCI-E总线、AHCI、IOMMU、SATA控制器等诸多主流功能,能更好地适应现代操作系统,其架构如图4-3所示。
图4-3 Q 35芯片组
同样我们先来看一下Q35的基本PCI设备。
一般不同的虚拟化平台使用的机器模型也不大相同,比如在OpenStack中默认使用的是I440FX,而oVirt中两种模型都可选。我们选择平台时以及增添设备时需要注意这点,尤其在需要添加PCIE设备的场景中。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。