Open mrschyte opened 1 year ago
Depending on the hosting client, there might not be all machine types available, as they are QEMU version dependent. Maybe the QEMU-driver could discover the available machine types and expose them on the driver status list on the client detail page.
https://www.qemu.org/docs/master/system/invocation.html
/usr/bin/qemu-system-x86_64 -machine help
Example output when running that command on an raspberry pi running Debian Bookworm:
Supported machines are:
microvm microvm (i386)
pc Standard PC (i440FX + PIIX, 1996) (alias of pc-i440fx-7.2)
pc-i440fx-7.2 Standard PC (i440FX + PIIX, 1996) (default)
pc-i440fx-7.1 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-7.0 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-6.2 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-6.1 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-6.0 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-5.2 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-5.1 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-5.0 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-4.2 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-4.1 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-4.0 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-3.1 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-3.0 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-2.9 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-2.8 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-2.7 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-2.6 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-2.5 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-2.4 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-2.3 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-2.2 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-2.12 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-2.11 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-2.10 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-2.1 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-2.0 Standard PC (i440FX + PIIX, 1996)
pc-i440fx-1.7 Standard PC (i440FX + PIIX, 1996) (deprecated)
pc-i440fx-1.6 Standard PC (i440FX + PIIX, 1996) (deprecated)
pc-i440fx-1.5 Standard PC (i440FX + PIIX, 1996) (deprecated)
pc-i440fx-1.4 Standard PC (i440FX + PIIX, 1996) (deprecated)
q35 Standard PC (Q35 + ICH9, 2009) (alias of pc-q35-7.2)
pc-q35-7.2 Standard PC (Q35 + ICH9, 2009)
pc-q35-7.1 Standard PC (Q35 + ICH9, 2009)
pc-q35-7.0 Standard PC (Q35 + ICH9, 2009)
pc-q35-6.2 Standard PC (Q35 + ICH9, 2009)
pc-q35-6.1 Standard PC (Q35 + ICH9, 2009)
pc-q35-6.0 Standard PC (Q35 + ICH9, 2009)
pc-q35-5.2 Standard PC (Q35 + ICH9, 2009)
pc-q35-5.1 Standard PC (Q35 + ICH9, 2009)
pc-q35-5.0 Standard PC (Q35 + ICH9, 2009)
pc-q35-4.2 Standard PC (Q35 + ICH9, 2009)
pc-q35-4.1 Standard PC (Q35 + ICH9, 2009)
pc-q35-4.0.1 Standard PC (Q35 + ICH9, 2009)
pc-q35-4.0 Standard PC (Q35 + ICH9, 2009)
pc-q35-3.1 Standard PC (Q35 + ICH9, 2009)
pc-q35-3.0 Standard PC (Q35 + ICH9, 2009)
pc-q35-2.9 Standard PC (Q35 + ICH9, 2009)
pc-q35-2.8 Standard PC (Q35 + ICH9, 2009)
pc-q35-2.7 Standard PC (Q35 + ICH9, 2009)
pc-q35-2.6 Standard PC (Q35 + ICH9, 2009)
pc-q35-2.5 Standard PC (Q35 + ICH9, 2009)
pc-q35-2.4 Standard PC (Q35 + ICH9, 2009)
pc-q35-2.12 Standard PC (Q35 + ICH9, 2009)
pc-q35-2.11 Standard PC (Q35 + ICH9, 2009)
pc-q35-2.10 Standard PC (Q35 + ICH9, 2009)
isapc ISA-only PC
none empty machine
I am just toying with this a bit, I have tried adding args:
config {
args = [
# ...
"-machine",
"type=q35,accel=tcg"
]
}
Proposal
The qemu driver should allow specifying the machine type for a vm. For example the config section could have a machine_type field which is copied to the qemu arguments when launching the vm.
Use-cases
Having an option to change the machine type would allow running microvms as well as virtual machines which require a specific machine type to be able to boot.
Attempted Solutions
I've tried specifying the machine type in the args array, however this is ignored since nomad automatically prepends a hard-coded machine type.