====== Libvirt ====== **Libvirt** je open-source API, démon (služba) a sada nástrojů navržená pro správu virtualizačních platforem. Poskytuje jednotné a stabilní rozhraní pro interakci s různými [[hypervisor|hypervisory]], čímž odstiňuje uživatele a nadřazený software od složitosti a rozdílů v jejich příkazových řádcích. Ačkoliv je Libvirt nejčastěji spojován s **[[kvm|KVM]]/[[qemu|QEMU]]**, jeho architektura je navržena tak, aby podporovala širokou škálu technologií. ===== Hlavní funkce Libvirt ===== * **Správa domén:** Vytváření, spouštění, pozastavení, obnovování a mazání virtuálních strojů (v terminologii Libvirt nazývaných "domény"). * **Správa sítí:** Konfigurace virtuálních switchů, mostů (bridges), NATu a firewallových pravidel. * **Správa úložišť:** Práce s diskovými obrazy (qcow2, raw), LVM svazky, iSCSI nebo síťovými NFS disky. * **Vzdálená správa:** Libvirt umožňuje spravovat servery přes síť pomocí zabezpečeného protokolu TLS nebo SSH. ===== Podporované Hypervisory ===== Jednou z největších výhod Libvirt je jeho univerzálnost. Mezi podporované technologie patří: * **KVM / QEMU** (primární zaměření). * **Xen** * **VMware ESXi a Workstation** * **Microsoft Hyper-V** * **LXC** (Linuxové kontejnery) * **VirtualBox** ===== Komponenty systému Libvirt ===== Systém se skládá ze tří hlavních částí: ==== 1. libvirtd (Démon) ==== Služba běžící na pozadí hostitelského serveru. Přijímá požadavky z API, provádí je na hypervisoru a monitoruje stav virtuálních strojů. ==== 2. Virsh (Příkazová řádka) ==== Hlavní nástroj pro administrátory. Umožňuje kompletní správu virtualizace z terminálu. * ''virsh list --all'' – vypíše všechny virtuální stroje. * ''virsh start jmeno_vm'' – spustí konkrétní stroj. * ''virsh edit jmeno_vm'' – otevře XML konfiguraci stroje. ==== 3. XML formát ==== Libvirt nepoužívá k popisu virtuálních strojů složité řetězce příkazů, ale přehledné **XML soubory**. To umožňuje snadnou zálohovatelnost a přenositelnost konfigurací. ===== Proč používat Libvirt? ===== Bez Libvirt byste pro spuštění virtuálního stroje v QEMU museli psát extrémně dlouhé příkazy (často na 20 a více řádků). Libvirt: 1. **Zjednodušuje automatizaci:** Programy mohou volat API místo parsování textových výstupů. 2. **Zvyšuje bezpečnost:** Automaticky nastavuje oprávnění a izolaci (SELinux/AppArmor). 3. **Standardizuje prostředí:** Je jedno, zda pod ním běží KVM nebo Xen, příkazy ''virsh'' zůstávají stejné. ===== Nadstavby postavené na Libvirt ===== Libvirt slouží jako základ pro mnoho populárních aplikací: * **Virt-Manager:** Grafické rozhraní pro Linux (desktop). * **Cockpit:** Webová správa serverů. * **OpenStack:** Masivní cloudová platforma využívá Libvirt k řízení výpočetních uzlů. * **oVirt:** Robustní enterprise správa virtualizace. --- **Související termíny:** [[kvm|KVM]], [[qemu|QEMU]], [[hypervisor|Hypervisor]], [[virt-manager|Virt-Manager]], [[iaas|IaaS]].