QEMU 机器类型和兼容性【翻译】

如果您想要将最初在较旧的 QEMU 版本上启动的来宾迁移到较新版本的 QEMU,您需要确保两台机器实际上彼此兼容。一旦排除了根本无法迁移的设备之类的东西,并确保两个 QEMU 调用实际上创建了相同的虚拟硬件,这基本上可以归结为使用兼容的机器。

版本化机器类型

如果你只是想创建一台机器而不考虑迁移兼容性,你通常会这样做

qemu-system-ppc64 -machine pseries (...)

这将创建一个这种pseries类型的机器。但在本例中,pseries
实际上是该机器类型的最新版本的别名;
对于 6.2,这将是
pseries-6.2. 您可以通过以下方式找出哪些机器类型已版本化(以及给定二进制文件实际存在哪些机器类型)-machine ?

$ qemu-system-ppc64 -machine ?
Supported machines are:
40p                  IBM RS/6000 7020 (40p)
bamboo               bamboo
g3beige              Heathrow based PowerMAC
mac99                Mac99 based PowerMAC
mpc8544ds            mpc8544ds
none                 empty machine
pegasos2             Genesi/bPlan Pegasos II
powernv10            IBM PowerNV (Non-Virtualized) POWER10
powernv8             IBM PowerNV (Non-Virtualized) POWER8
powernv              IBM PowerNV (Non-Virtualized) POWER9 (alias of powernv9)
powernv9             IBM PowerNV (Non-Virtualized) POWER9
ppce500              generic paravirt e500 platform
pseries-2.1          pSeries Logical Partition (PAPR compliant)
pseries-2.10         pSeries Logical Partition (PAPR compliant)
pseries-2.11         pSeries Logical Partition (PAPR compliant)
pseries-2.12         pSeries Logical Partition (PAPR compliant)
pseries-2.12-sxxm    pSeries Logical Partition (PAPR compliant)
pseries-2.2          pSeries Logical Partition (PAPR compliant)
pseries-2.3          pSeries Logical Partition (PAPR compliant)
pseries-2.4          pSeries Logical Partition (PAPR compliant)
pseries-2.5          pSeries Logical Partition (PAPR compliant)
pseries-2.6          pSeries Logical Partition (PAPR compliant)
pseries-2.7          pSeries Logical Partition (PAPR compliant)
pseries-2.8          pSeries Logical Partition (PAPR compliant)
pseries-2.9          pSeries Logical Partition (PAPR compliant)
pseries-3.0          pSeries Logical Partition (PAPR compliant)
pseries-3.1          pSeries Logical Partition (PAPR compliant)
pseries-4.0          pSeries Logical Partition (PAPR compliant)
pseries-4.1          pSeries Logical Partition (PAPR compliant)
pseries-4.2          pSeries Logical Partition (PAPR compliant)
pseries-5.0          pSeries Logical Partition (PAPR compliant)
pseries-5.1          pSeries Logical Partition (PAPR compliant)
pseries-5.2          pSeries Logical Partition (PAPR compliant)
pseries-6.0          pSeries Logical Partition (PAPR compliant)
pseries-6.1          pSeries Logical Partition (PAPR compliant)
pseries              pSeries Logical Partition (PAPR compliant) (alias of pseries-6.2)
pseries-6.2          pSeries Logical Partition (PAPR compliant) (default)
ref405ep             ref405ep
sam460ex             aCube Sam460ex
taihu                taihu
virtex-ml507         Xilinx Virtex ML507 reference design

pseries-x.y如您所见,旧版本有多种机器类型;这些旨在提供与使用较旧的 QEMU 版本创建的默认机器兼容的配置。例如,如果您想要迁移在pseries使用 QEMU 5.1 创建的计算机上运行的来宾,则接收 QEMU 需要启动

qemu-system-ppc64 -machine pseries-5.1 (...)

支持的机器类型

注意:以下内容适用于上游 QEMU。发行版可能在其构建中支持不同版本的机器类型。

此列表自 QEMU 6.2 起;将来可能会添加新版本的机器类型,有时旧版本的机器类型会被弃用和删除。下一个 QEMU 版本的机器类型通常在发布周期的早期引入(至少,这是目标......)

arm,aarch64

virt机器类型支持 2.6 以后的版本。

m68k

virt机器类型支持 6.0 以后的版本。

ppc64

pseries机器类型支持 2.1 之后的版本。

s390x

s390-ccw-virtio机器类型支持 2.4 以后的版本。

i386、x86_64

机器pc-i440fx类型支持1.4以后的版本(以前还有更老的版本,但是已经被删除了),而pc-q35机器类型支持2.4以后的版本。

这里还需要考虑另一件事:pc机器类型别名(从 QEMU 6.2 开始)指向最新的pc-i440fx机器类型;如果您想要最新的
pc-q35机器类型,则必须使用q35.

如何使用这个

如果您只想启动 QEMU 实例并再次关闭它,而不希望将其迁移到任何地方,则可以坚持使用默认机器类型。但是,如果您以后可能想要迁移机器,那么明确指定版本化机器类型可能是个好主意,这样您就不必记住启动时使用的 QEMU 版本。

或者直接使用libvirt之类的管理软件,它会自动帮你把机器类型扩展到最新版本,以后就不用担心了。

兼容机种的使用部分就到此结束;后续文章将介绍如何实际实施。

ref:https://people.redhat.com/~cohuck/2022/01/05/qemu-machine-types.html

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注