Obsah
Virtio
Virtio je standard pro tzv. paravirtualizované (paravirtualized) I/O ovladače. Jedná se o abstrakční vrstvu, která umožňuje virtuálním strojům (VM) komunikovat s hypervisorem efektivněji než prostřednictvím emulace reálného hardwaru.
V ekosystému Linuxu se Virtio stalo standardem pro virtualizaci v prostředí KVM a QEMU.
Proč Virtio vzniklo? (Emulace vs. Paravirtualizace)
Při klasické emulaci se hypervisor snaží napodobit existující fyzické zařízení (např. starou síťovou kartu Realtek).
- Problém: Operační systém hosta si myslí, že komunikuje s reálným hardwarem, což vyžaduje složité a pomalé překlady instrukcí v hypervisoru.
- Řešení: Paravirtualizace (Virtio) přiznává virtuálnímu stroji, že běží ve virtualizovaném prostředí. Host a hypervisor pak používají sdílenou paměť k extrémně rychlému přenosu dat.
Jak Virtio funguje?
Virtio využívá mechanismus zvaný virtqueue (virtuální fronty). Funguje to následovně:
1. Operační systém hosta zapíše data do sdíleného bufferu (fronty) v paměti RAM. 2. Hypervisor (hostitel) si tato data přímo převezme a odešle je na fyzický hardware. 3. Tento proces eliminuje potřebu emulovat registry a přerušení (interrupts) reálného hardwaru.
Hlavní typy Virtio ovladačů
V konfiguraci virtuálních strojů se nejčastěji setkáte s těmito moduly:
| Typ | Název v systému | Popis |
|---|---|---|
| Síť | virtio-net | Nejrychlejší síťové rozhraní pro VM. Snižuje režii procesoru při vysokém provozu. |
| Disk | virtio-blk | Blokové zařízení pro pevné disky. Podporuje pokročilé funkce jako ořezávání (TRIM). |
| SCSI | virtio-scsi | Pokročilejší diskové rozhraní umožňující připojení stovek disků k jedné VM. |
| Grafika | virtio-gpu | Umožňuje 2D a 3D akceleraci v rámci virtuálního stroje. |
| Paměť | virtio-balloon | Umožňuje hypervisoru dynamicky odebírat nebo přidávat RAM běžícímu virtuálnímu stroji. |
Výhody Virtio
- Vysoká propustnost: Blíží se rychlosti fyzického hardwaru (zejména u 10Gbps+ sítí).
- Nižší zátěž CPU: Hypervisor nemusí plýtvat výkonem na simulaci starých čipů.
- Standardizace: Jeden typ ovladače funguje pro různé hypervisory (KVM, VirtualBox, bhyve).
Podpora v operačních systémech
- Linux: Podpora Virtio je součástí jádra již mnoho let. Většina distribucí detekuje Virtio automaticky.
- Windows: Windows standardně Virtio ovladače neobsahuje. Pro jejich funkci je nutné během instalace (nebo po ní) nahrát tzv. virtio-win ovladače (často distribuované jako ISO obraz).
Praktické nasazení
Pokud spravujete virtuální servery (např. v Proxmoxu nebo přes virsh), vždy se doporučuje nastavit model síťové karty i diskového řadiče na Virtio, pokud to operační systém hosta podporuje. Výkonnostní rozdíl oproti emulaci (např. Intel E1000 nebo IDE) může být i několikanásobný.
— Související termíny: KVM, QEMU, Hypervisor, Virtuální stroj, IaaS.
