Libvirt je open-source rozhraní (API) a sada nástrojů pro správu virtualizačních platforem, jako jsou KVM, QEMU, Xen, LXC nebo VirtualBox. Umožňuje správu virtuálních strojů (VM) nezávisle na konkrétním hypervizoru. Díky tomu je libvirt široce využíván v enterprise prostředích, datových centrech i vývojářských laboratořích.
S libvirt lze jednoduše vytvářet, upravovat, spouštět, pozastavovat nebo migrovat virtuální stroje a jejich konfigurace. Základní nástroj pro práci s libvirt je virsh, příkazový nástroj s rozsáhlou sadou funkcí.
Virsh: Terminálový nástroj pro správu VM
Virsh je CLI nástroj, který umožňuje správu libvirt VM bez nutnosti grafického rozhraní. To je ideální pro servery, automatizaci nebo skriptování.
Nejčastější příkazy virsh
:
-
virsh list --all
– seznam všech VM
-
virsh start název
– spuštění virtuálního stroje
-
virsh shutdown název
– vypnutí virtuálního stroje
-
virsh define /path/to/file.xml
– definování nové VM ze souboru
-
virsh console název
– připojení ke konzoli virtuálního stroje
-
virsh snapshot-create-as
– vytvoření snapshotu VM
Virsh komunikuje přes libvirtd
démon a podporuje vzdálenou správu pomocí TLS, SSH nebo TCP socketů.
Hlavní výhody používání libvirt a virsh
-
Standardizace – jednotné rozhraní pro různé hypervizory
-
Automatizace – snadná integrace do skriptů a CI/CD pipeline
-
Bezpečnost – možnost omezení práv pomocí AppArmor/SELinux a TLS šifrování pro vzdálený přístup
-
Snapshoty a klonování – pokročilé možnosti správy image disků
-
Podpora virtualizačních technologií jako KVM, QEMU, LXC, Xen – v jednom nástroji
Příklad vytvoření a spuštění VM pomocí virsh a libvirt
-
Vytvoření XML definice (např. vm.xml
):
<domain type='kvm'>
<name>test-vm</name>
<memory unit='MiB'>1024</memory>
<vcpu>1</vcpu>
<os>
<type arch='x86_64'>hvm</type>
<boot dev='hd'/>
</os>
<devices>
<disk type='file' device='disk'>
<source file='/var/lib/libvirt/images/test.img'/>
<target dev='vda' bus='virtio'/>
</disk>
<interface type='network'>
<source network='default'/>
</interface>
<graphics type='vnc' port='-1'/>
</devices>
</domain>
- Zaregistrování VM:
virsh define vm.xml
- Spuštění virtuálního stroje:
virsh start test-vm
Monitoring a vzdálený přístup s libvirt
Libvirt lze konfigurovat pro vzdálenou správu přes libvirtd
, například pomocí SSH tunelování:
virsh -c qemu+ssh://user@remote-system/system list
To umožňuje správu vzdálených hypervizorů bez nutnosti fyzického přístupu nebo VNC.
Libvirt a virsh tvoří silnou kombinaci nástrojů pro správu Virtualizace v Linuxových prostředích. Umožňují detailní kontrolu nad virtuálními stroji, podporují pokročilé funkce jako snapshoty a vzdálená správa a jsou ideální pro automatizaci a serverové prostředí bez grafického rozhraní.