Obsah
QEMU (Quick Emulator)
QEMU je open-source emulátor a virtualizátor s širokým spektrem funkcí. Na rozdíl od čistých hypervisorů dokáže QEMU emulovat kompletní hardwarovou architekturu (např. ARM, MIPS, PowerPC) na odlišném hostitelském procesoru (např. x86_64).
V moderním cloudu se nejčastěji používá ve spojení s KVM, kde QEMU zajišťuje emulaci vstupně-výstupních (I/O) zařízení, zatímco KVM se stará o rychlé provádění instrukcí procesoru.
Režimy fungování
QEMU může pracovat ve dvou základních režimech:
1. Full System Emulation (Plná emulace systému)
QEMU emuluje celý počítač včetně procesoru a všech periferií.
- Příklad: Můžete spustit operační systém pro Raspberry Pi (ARM) na svém běžném notebooku (Intel/AMD).
- Výhoda: Umožňuje vývoj softwaru pro jiný hardware.
- Nevýhoda: Je velmi pomalý, protože každá instrukce procesoru se musí překládat softwarově.
2. Virtualizace (s akcelerací KVM/Xen)
Pokud hostitel i host sdílejí stejnou architekturu (např. oba x86_64), QEMU využije KVM k přímému spouštění kódu na procesoru.
- Příklad: Běžný virtuální server v cloudu.
- Výhoda: Výkon je téměř srovnatelný s fyzickým strojem (tzv. „near-native speed“).
Klíčové vlastnosti a nástroje
QEMU Disk Image (qcow2)
QEMU definovalo jeden z nejpopulárnějších formátů virtuálních disků – .qcow2 (QEMU Copy-On-Write).
- Podporuje snapshoty (stavy v čase).
- Podporuje dynamické zvětšování (soubor na disku zabírá jen tolik místa, kolik je skutečně zapsaných dat).
- Umožňuje šifrování a kompresi.
Emulace periférií
QEMU poskytuje virtuálnímu stroji standardizovaný hardware:
- Grafika: Standardní VGA, Cirrus Logic nebo Virtio-GPU.
- Síť: Emulace běžných karet (Realtek, Intel) nebo rychlé rozhraní Virtio.
- Vstupy: USB řadiče, myši, klávesnice.
Virtio
Jedná se o standard pro tzv. paravirtualizované ovladače. Místo aby QEMU složitě emulovalo starou reálnou síťovou kartu, domluví se s operačním systémem hosta na „zkratce“, která výrazně zrychluje přenos dat mezi virtuálním strojem a fyzickým hardwarem.
QEMU v ekosystému Linuxu
QEMU je nízkoúrovňový nástroj a jeho příkazová řádka je velmi komplexní. Proto se málokdy spouští přímo. Většinou je ovládáno nadřazenými nástroji:
- Libvirt: Standardní API, které generuje dlouhé konfigurační řetězce pro QEMU.
- Proxmox / OpenStack: Webová rozhraní, která na pozadí spouštějí QEMU procesy.
- GNS3: Nástroj pro simulaci sítí, který využívá QEMU pro běh virtuálních routerů (Cisco, Juniper).
Proč je QEMU důležité?
Bez QEMU by KVM bylo pouze „mozkem“ bez „rukou a nohou“. Zatímco KVM poskytuje výpočetní sílu, QEMU dodává virtuálnímu stroji vše, co potřebuje k interakci s okolním světem – od pevných disků až po síťové připojení.
— Související termíny: KVM, Hypervisor, Virtio, Libvirt, IaaS.
