Testovací VM, která je zastavena, nemusí být nutně porouchaná. Na KVM hostiteli je prvním rizikem spustit příkazy na nesprávné doméně, a pak měnit most nebo produkční síť, zatímco stačí přečíst stav libvirt.
S virsh můžete identifikovat VM, spustit ji a pak zkontrolovat rozhraní a získanou IP adresu. Níže uvedený postup zůstává záměrně omezen na laboratořskou VM a virtuální síť libvirt.

Identifikace VM a její sítě před spuštěním
Přihlaste se na hostitele KVM, nikoli do pozvaného. Také si udržujte konzolový přístup k VM. Pokud síť neodpovídá po spuštění, tato konzole zabrání slepému zásahu do konfigurace sítě hostitele.
sudo virsh list --all
sudo virsh net-list --all
sudo virsh domiflist vm-lab
Nahraďte vm-lab názvem zobrazeným pomocí virsh list --all. První příkaz udává, zda je doména zastavena. Druhý zobrazuje dostupné libvirt sítě. Třetí přiřazuje rozhraní VM k virtuální síti, mostu nebo fyzickému rozhraní.
- Rozhraní připojené k
defaultčasto používá NAT síť poskytovanou libvirt. - Most jako
br0umisťuje VM na síť hostitele a vyžaduje kontrolu ze strany DHCP nebo VLAN. - Prázdný zdroj nebo chybějící rozhraní si zaslouží diagnostiku XML definice VM, nikoli restart libvirt.
Choval bych se k síti default jako k testovací VM. Poskytuje jednoduchou oblast k přečtení s DHCP pronájmy libvirt. Produkční most mění diagnózu a neměl by být měněn pro testování jediného stroje.
Spuštění domény a kontrola jejího stavu
Když jsou název domény a rozhraní konzistentní, spusťte pouze tuto VM.
sudo virsh start vm-lab
sudo virsh list --all
sudo virsh dominfo vm-lab
virsh start by měl vrátit Domain 'vm-lab' started, pak virsh list --all by měl zobrazit stav running. virsh dominfo potvrzuje doménu, její stav a množství požadované paměti bez otevření grafické konzole.
Pokud spuštění selže, přečtěte si aktuální boot log před tím, než něco změníte. Novější instalace mohou používat virtqemud, starší libvirtd.
sudo journalctl -u virtqemud -u libvirtd -b --no-pager | tail -n 50
Chyba cesty ISO, obraz disku, oprávnění nebo zdroje se zde často objevuje. Log poskytuje přesný startovací bod. Restartování všech virtualizačních služeb může přerušit další aktivní VM.
Najít IP adresu VM
Spuštěná VM nemusí mít adresu viditelnou z hostitele. U NAT sítě default začněte s DHCP pronájmy libvirt.
sudo virsh domifaddr vm-lab --source lease
sudo virsh net-dhcp-leases default
První příkaz spojuje adresu s doménovým rozhraním, když libvirt zná pronájem. Druhý zobrazuje pronájmy sítě default. Pokud je VM připojena k mostu, tyto příkazy mohou zůstat prázdné, i když hostitel funguje správně.
V tomto případě použijte agenta QEMU, pokud ho hostitel provozuje, a pak konzolu, pokud je to nutné.
sudo virsh domifaddr vm-lab --source agent
sudo virsh console vm-lab
Z konzole VM spusťte ip -br addr a poté ip route. Příručky Ip addr pod Linuxem a Route IP pod Linuxem pomáhají interpretovat rozhraní a bránu. Pro opuštění virsh console použijte Ctrl + ].
Ověřit síť bez zásahu do mostu
Pokud VM spustí, ale zůstane bez adresy se sítí default, nejprve zkontrolujte její stav.
sudo virsh net-info default
sudo virsh net-list --all
Na testovacím prostředí může být neaktivní default síť spuštěna s sudo virsh net-start default. Poté znovu použijte virsh domifaddr vm-lab --source lease. Tato akce se nehodí pro pracovní most, VLAN nebo síť spravovanou jiným týmem.
Když je rozhraní na mostě, zkontrolujte v hostiteli, zda rozhraní skutečně obdrželo adresu a trasu. Problém se pak často nachází na straně DHCP, VLAN nebo filtrování sítě, nikoli v příkazu virsh start.
Správné zastavení testovací VM
Po kontrole požádejte o správné zastavení pozvaného a zkontrolujte jeho stav. virsh destroy okamžitě přeruší virtuální napájení. Zachovejte jej pro zablokovanou VM po zhodnocení rizika poškození.
sudo virsh shutdown vm-lab
sudo virsh list --all
Dokumentace virsh od libvirt podrobně popisuje varianty každého příkazu. Na hostiteli, který hostí aktivní VM, platí jednoduché pravidlo: přečtěte si doménu a její rozhraní před jakoukoliv globální akcí na službách nebo síti.