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).

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

Podpora v operačních systémech

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.