Proč virtualizovat?
Klady
- přenositelnost
- jednodušší zálohování a obnova
- podpora "snapshotů"
- podpora "živé migrace"
Negativa
- Vyšší náročnost na výkon a paměť
- Problémy s virtualizací proprietárních zařízení
Virtualizace
Hypervisory
Hypervisor je software, který řídí a přiděluje zdroje virtuálním strojům.
Rozlišujeme dva typy hypervisorů: Typ 1, který běží přímo na hardwaru "hosta" a typ 2, který běží jako proces v operačním systému.
Typ 1
Typ 2
I/O zařízení
Emulace I/O zařízení
Zařízení jsou emulována softwarově.
- Většinou jsou pomalejší a vyžadují více zdrojů.
Virtio
Umožňuje rychlou komunikaci mezi virtuálním zařízením a ovladačem fyzického zařízení.
Příklady
- virtio-net - Pro síťovou komunikaci
- virtio-scsi - Pro komunikaci s uložištěm
VFIO
Umožňuje propojení fyzického zařízení s virtuálním strojem.
Formáty Disků
- raw - soubor se "surovými" daty
- qcow2 - nativní formát pro QEMU
- VHDX - nativní formát pro Hyper-V
- VDI - nativní formát pro VirtualBox
- VMDK - nativní formát pro hypervisory VMware
Konverze z libovolného formátu do jiného formátu lze docílit pomocí qemu-img
Grafické nástroje
Emulace
Slouží k simulaci fyzického zařízení či jiné procesorové instrukční sady.
Obvykle velmi náročný na výpočetní výkon.
Příklady
- QEMU - např. emulace ARM64 na architektuře X86_64
- FEX - speciálně určený pro emulaci X86_64 na ARM64
- Cemu - emulátor herní konzole Nintendo Wii U
Kontejnerizace
Slouží k izolaci procesů běžící pod stejným systémem.
Procesy běžící v kontejneru sdílí jádro hostitelského systému a díky tomu jsou méně náročné na běh.
Příklady
- chroot - základní kontejnerizace
- systemd-nspawn - alternativa chroot pro systémy s systemd
- Docker - Pokročilejší způsob kontejnerizace a správy kontejnerů.
- Deklarativní správa kontejnerů pomocí Docker Compose
- Pokročilejší možnosti síťového nastavení
- API
- Podman - Rootless daemonless alternativa Dockeru. Má stejnou syntaxi, ale některé funkce chybí.
Vysoká dostupnost
Snaha docílit co možná největší doby dostupnosti u dané služby.
Využívá nástroje poskytující redundanci.
Příklady
- Souborové systémy s podporou RAID
- Servery se záložním zdrojem
- Počítačové clustery
- Redundantní síťové připojení a switche s podporou STP
- UPS a dieselové agregáty
- záložní datacentrum