KVM (hardware)
Jak bylo napsáno hned v úvodu manuálu pro KVM, QEMU bylo původně vyvíjeno jako virtualizační nástroj, který emuloval kompletní hardware virtuálního stroje. To bylo pochopitelně velmi náročné na výpočetní výkon, proto se začala kolem r. 2010 integrovat podpora hardwarové virtualizace přímo v CPU. A z QEMU, které umělo emulovat funkce ostatního hardware, se stal především nástroj, který funguje jako prostředník mezi systémem virtuálního stroje a hostitelským strojem.
Původní koncept konfigurace QEMU
Původní koncept konfigurace QEMU byl zaměřen především na jednoduchost. Proto je do značné míry i dnes zachována určitá kompatibilita. Kupř. chceme-li pouze otestovat linuxové LiveCD, stažené z webu, stačí pouze předhodit pomocí parametru -cdrom
stažený ISO soubor:
user@stroj:~$ qemu-system-x86_64 -cdrom livecd.iso
|
Pro sofistikovanější použití však takto jednoduchá konfigurace nestačí. Proto se objevily konfigurační volby, pojmenované nikoliv podle obvyklého jména zařízení, ale podle typu. Pro ukázku viz výše uvedený příklad, ovšem tentokrát zpracovaný s využitím parametru -drive
:
user@stroj:~$ qemu-system-x86_64 -drive file=livecd.iso,cache=unsafe,if=ide,media=cdrom
|
Tímto způsobem lze poměrně jednoduše vytvořit virtuální stroj s prakticky neomezeným počtem blokových zařízení[1]. Jenže zrovna u blokových zařízení poměrně záhy přestaly konfigurační možnosti vyhovovat. V rámci jednoho parametru totiž byly současně uvedeny jak konfigurační hodnoty určené pro virtuální prostředí hosta (volby if a media, které jsou důležité pro systém virtualizovaného stroje), tak volby důležité především pro hostitele (volby file a cache, které určují kde jsou uložená data a jak se má s nimi pracovat).
Proto byl koncept upraven tak, že původní parametry se používají pro nastavení na straně hostitele a konfigurace hardwarových zařízení pro virtuál se dělá přes parametr -device
. S tím, že lze pro zjednodušení používat i konfiguraci dle původního konceptu.
Konfigurace HW zařízení podle typu
Jaké jsou typy virtuálních virtuální zařízení, se kterými pak bude pracovat systém virtuálního stroje, lze zjistit tak, že se parametru -device
předá místo názvu zařízení klíčové slovo help
. QEMU pak vypíše na konzoli seznam všech dostupných zařízení:
… -device help …
|
Kombinací jména vybraného zařízení a klíčového slova help
, lze vypsat další parametry, kterými lze upřesnit vlastnosti virtuálního zařízení:
… -device qxl-vga,help …
|
Místo klíčového slova help , lze použít také znak otazníku ? . Výchozí parametry není nutné měnit, pokud jejich výchozí hodnota dostačuje.
|
Paměť
Grafická karta
Přes původní parametr -vga
lze nastavit pouze jednu VGA grafickou kartu na PCI. Použít jej lze i u aktuálních verzí QEMU, pokud si vystačíte s výchozími parametry grafické karty, které lze ovšem označit za minimalistické - 16MB paměti grafické karty pro výchozí std (VGA) adaptér.
… -vga std …
|
Chcete-li mít k dispozici větší množství paměti, musíte použít místo -vga
parametr -device
:
… -device VGA,vgamem_mb=128 …
|
Volba vgamem_mb zajistí, že virtuální VGA karta bude mít k dispozici 128MB paměti.
Nastavení dalších grafických karet
Přes parametr -device
, lze pro virtuální stroj nastavit více než jednu VGA kartu, ale záleží na typu jejím typu:
- cirrus
- QEMU umí emulovat tuto jednoduchou grafickou kartu jak pro virtuální PCI či ISA slot. Její ovladač je dostupný u drtivé většiny virtualizovaných systémů.
- VGA
- je virtuální grafická karta s podporou VGA, stejná jako se přidá přes
… -vga std …
, která má podporu pro rozlišení >= 1280x1024x16 (v závislosti na množství dostupné paměti. - vmware-svga
- Emulace virtuální VMware SVGA-II karty. Vyžaduje nainstalovaný ovladač ve virtualizovaném systému. U MS Windows je součástí vmware-tools, určených pro virtualizaci v prostředí VMware a pro linuxové systémy má podobný ovladač k dispozici u Debianu X server v instalačním balíčku xserver-xorg-video-vmware
- qxl
- Virtuální grafická karta určená pro použití při přístupu přes SPICE protokol. U Debianu má X server ovladač dostupný v instalačním balíčku xserver-xorg-video-qxl ale na MS Windows se musí doinstalovat.
qxl[2]. Pokud pro použití v rámci virtualizovaného stroje postačí výchozích 64MB paměti grafické karty, nemusíte nic dalšího řešit. Pokud byste chtěli používat u virtualizovaného stroje grafický desktop s vyšším rozlišením, je třeba rozhodně navýšit dostupné množství paměti alespoň na dvojnásobek. To lze udělat buď globálně přes parametr -global
:
… -vga qxl -global qxl-vga.ram_size_mb=256 -global qxl-vga.vram_size_mb=256 -global qxl-vga.vram64_size_mb=512 …
|
A nebo nastavením zařízení qxl-vga
[3] přes -device
:
… -device qxl-vga,ram_size_mb=256,vram_size_mb=256,vram64_size_mb=512 …
|
Ovladač virtuální grafické karty qxl má podporu pro více monitorů, takže kromě výchozího zařízení qxl-vga lze přidat i další grafické karty typu qxl. Pro každou z nich lze nastavit dostupné množství paměti samostatně, nebo lze pro jejich hromadnou konfiguraci využít parametru -global
:
… -vga qxl -device qxl -device qxl …
|
Každá grafická karta se zobrazí na PCI sběrnici virtuálního stroje jako samostatné zařízení. Chcete-li zjistit, kolik má která z nich dostupné množství paměti, můžete k tomu využít konzolový příkaz lspci. Viz následující příklad jeho použití:
Blokové zařízení
Konfigurace HW hosta
Konfigurace hostitele
file
format
snapshot
cache
aio
readonly
rerror
werror
USB zařízení
Znakové zařízení
Síťová karta
Konfigurace virtuálních síťových rozhraní je u QEMU úzce spjatá s řešením síťové konektivity. Proto je součástí samostatné manuálové stránky s názvem KVM (konfigurace sítě)