4 ms·
Can someone teach me what is needed for “cloud” based workloads?
by asimpletune 8y ago
Can someone teach me what is needed for “cloud” based workloads?
- geofft 8y agoI think the backstory for this project is that QEMU is a full-featured virtualization project, capable of emulating many machines including actually emulating them (i.e., not using hardware virtualization features, just interpreting machine code), doing userspace virtualization (running a binary for a different CPU in the same kernel, instead of emulating an entire machine), supporting all sorts of hardware, supporting features needed for debugging OS development, etc. Most of that isn't useful in the cloud - in the cloud you've got hardware virtualization, almost always on x86-64 but occasionally on ARM64 and virtualizing the same platform as the host. In the cloud you're typically running an OS that can have custom drivers for your virtualization platform, you're not running old/historic OS images that need to run faithfully. In the cloud you generally want custom drivers for your virtualization platform because they're higher-performance, and you wouldn't want to emulate certain models of real-world network cards/disks/etc. in the first place - and in QEMU, those turn out to be huge attack surfaces. In the cloud you generally do not need a local graphical display and often do not need a graphics driver at all, since you're logging into machines over SSH (and if you need early boot debug output, you can do that over a virtualized serial port). In the cloud you don't need a floppy disk or a parallel port. In the cloud you probably don't need the standard PC bootup process where it starts in 16-bit mode for compatibility with old bootloaders, which themselves switch to 32-bit and then to 64-bit: you can have the hypervisor directly start EFI in 64-bit mode. NEMU only does hardware virtualization on x86-64 machines and only exposes an emulated "machine" type that has the various virtualization-optimized devices and no emulation of real-world devices. Maybe "production workloads" would be a better descriptor here than "cloud."
- asimpletune 8y agoThanks for the thoughtful and thorough explanation!