GNU/Linux >> Znalost Linux >  >> Linux

Spravujte virtuální stroje KVM pomocí programu Virsh

Virsh , zkratka pro Vir tual Sh ell, je uživatelské rozhraní příkazového řádku pro správu virtuálních hostujících počítačů. Virsh vám umožňuje vytvářet, vypisovat, upravovat, spouštět, restartovat, zastavovat, pozastavovat, obnovovat, vypínat a odstraňovat virtuální počítače. V současné době podporuje KVM, LXC, Xen, QEMU, OpenVZ, VirtualBox a VMware ESX. V této příručce budeme diskutovat o tom, jak spravovat KVM virtuální stroje s uživatelským rozhraním pro správu Virsh v Linuxu.

Ujistěte se, že máte na svém počítači se systémem Linux nainstalovaný nástroj KVM a Virsh. Následující průvodce vysvětluje, jak nainstalovat KVM na systémy založené na DEB a RPM.

  • Instalace a konfigurace KVM v Ubuntu 20.04 Headless Server
  • Nainstalujte a nakonfigurujte KVM na serveru CentOS 8
  • Nainstalujte a nakonfigurujte KVM v OpenSUSE Tumbleweed

1. Správa virtuálních počítačů KVM pomocí příkazu Virsh

Pokud s Virsh a KVM začínáte, je lepší začít čtením nápovědy. Poskytne základní představu o tom, jak používat Virsh.

1.1. Získání nápovědy

Chcete-li zobrazit seznam dostupných příkazů spolu se stručným popisem, zadejte následující příkaz:

$ virsh help

Uvidíte rozsáhlý seznam dostupných příkazů virsh pro správu virtuálních strojů KVM z příkazového řádku.

Nemusíte se vše učit nazpaměť. Stačí si přečíst popis příkazu, který chcete spustit, a použít jej.

Příkazy jsou seskupeny do následujících sekcí:

  • Správa domény,
  • Monitorování domény,
  • Hostitel a hypervizor,
  • Kontrolní bod,
  • Rozhraní,
  • Síťový filtr,
  • Vytváření sítí
  • Zařízení uzlu,
  • Tajné,
  • Snímek,
  • Zálohování,
  • Soubor úložiště,
  • Velikost úložiště,
  • Samotný Virsh.

Každá sekce obsahuje příkazy související s prováděním konkrétní sady úkolů. Můžete zobrazit část nápovědy skupiny, například Sítě , jako níže:

$ virsh help Networking

Uvidíte příkazy související s prováděním síťových úloh:

 Networking (help keyword 'network'):
    net-autostart                  autostart a network
    net-create                     create a network from an XML file
    net-define                     define an inactive persistent virtual network or modify an existing persistent one from an XML file
    net-destroy                    destroy (stop) a network
    net-dhcp-leases                print lease info for a given network
    net-dumpxml                    network information in XML
    net-edit                       edit XML configuration for a network
    net-event                      Network Events
    net-info                       network information
    net-list                       list networks
    net-name                       convert a network UUID to network name
    net-start                      start a (previously defined) inactive network
    net-undefine                   undefine a persistent network
    net-update                     update parts of an existing network's configuration
    net-uuid                       convert a network name to network UUID
    net-port-list                  list network ports
    net-port-create                create a network port from an XML file
    net-port-dumpxml               network port information in XML
    net-port-delete                delete the specified network port

Dále můžete zobrazit také část nápovědy konkrétního příkazu. Například zobrazím sekci nápovědy "net-name" příkaz:

$ virsh help net-name
  NAME
    net-name - convert a network UUID to network name

  SYNOPSIS
    net-name <network>

  OPTIONS
    [--network] <string>  network uuid

1.2. Seznam virtuálních počítačů

Chcete-li zobrazit seznam hostovaných virtuálních počítačů v režimu spuštění nebo pozastavení, spusťte následující příkaz:

$ virsh list
Id Name State
--------------------

Jak vidíte, v režimu spuštění nebo pozastavení nejsou žádní hosté.

Můžete použít --inactive možnost vypsat neaktivní hosty.

Chcete-li zobrazit všechny hostující počítače, spusťte:

$ virsh list --all
 Id   Name            State
--------------------------------
 -    centos8-uefi    shut off
 -    nginx_centos8   shut off

Jak vidíte ve výše uvedeném výstupu, mám dva virtuální stroje, konkrétně „centos8-uefi“ a „nginx_centos8“. Oba jsou vypnuté.

1.3. Spusťte virtuální počítače

Chcete-li spustit virtuální počítač, například "centos8-uefi", spusťte:

$ virsh start centos8-uefi

Uvidíte výstup jako níže:

Domain centos8-uefi started

Chcete-li ověřit, zda je virtuální počítač spuštěný, použijte "seznam" příkaz:

$ virsh list
 Id   Name           State
------------------------------
 1    centos8-uefi   running

1.4. Uložit virtuální počítače

Chcete-li uložit aktuální stav běžícího virtuálního počítače, spusťte:

$ virsh save centos8-uefi centos8-save

Domain centos8-uefi saved to centos8-save

Tento příkaz zastaví hosta s názvem "centos8-uefi" a uloží data do souboru s názvem "centos8-save". To bude chvíli trvat v závislosti na velikosti paměti, kterou využívá váš hostující počítač.

1.5. Obnovit virtuální počítače

Chcete-li obnovit dříve uložený stav virtuálního počítače, stačí zadat název souboru, jak je uvedeno níže:

$ virsh restore centos8-save 
Domain restored from centos8-save

Ověřte, zda je virtuální počítač obnoven pomocí příkazu "list":

$ virsh list
 Id   Name           State
------------------------------
 4    centos8-uefi   running

1.6. Restartujte virtuální počítače

Chcete-li restartovat běžící virtuální počítač, spusťte:

$ virsh reboot centos8-uefi
Domain centos8-uefi is being rebooted

1.7. Pozastavit/pozastavit virtuální stroje

Chcete-li pozastavit běžící virtuální počítač, postupujte takto:

$ virsh suspend centos8-uefi 
Domain centos8-uefi suspended

Ověřte to příkazem "list":

$ virsh list
 Id   Name           State
-----------------------------
 1    centos8-uefi   paused

1.8. Obnovit virtuální stroje

Chcete-li obnovit pozastavený virtuální počítač, spusťte:

$ virsh resume centos8-uefi 
Domain centos8-uefi resumed

1.9. Zastavit aktivní virtuální stroje

Chcete-li vynutit zastavení aktivního virtuálního počítače a ponechat jej v neaktivním stavu, spusťte:

$ virsh destroy centos8-uefi
Domain centos8-uefi destroyed

Můžete také elegantně zastavit virtuální počítač namísto vynucení, jak je uvedeno níže:

$ virsh destroy centos8-uefi --graceful
Domain centos8-uefi destroyed

1.10. Vypnutí virtuálních počítačů

Chcete-li vypnout běžící virtuální počítač, postupujte takto:

$ virsh shutdown centos8-uefi
Domain centos8-uefi is being shutdown

1.11. Načíst výpis XML virtuálních strojů

Chcete-li zobrazit konfigurační soubor XML virtuálního počítače ve standardním výstupu, spusťte:

$ virsh dumpxml centos8-uefi

Tento příkaz zobrazí úplné podrobnosti konfigurace (software a hardware) virtuálního počítače:

Výpis XML můžete také exportovat do souboru namísto pouhého zobrazení ve standardním výstupu, jak je uvedeno níže:

$ virsh dumpxml centos8-uefi > centos8.xml

Tento příkaz vypíše soubor XML "centos8-uefi" do souboru s názvem "centos8.xml" a uloží jej do aktuálního pracovního adresáře.

1.12. Vytvářejte virtuální stroje s výpisem XML

Můžete vytvořit nový virtuální počítač hosta pomocí existujícího XML z dříve vytvořených hostů. Nejprve vytvořte výpis XML, jak je znázorněno výše, a poté vytvořte nový virtuální počítač pomocí souboru XML, jak je uvedeno níže:

$ virsh create centos8.xml 
Domain centos8-uefi created from centos8.xml

Tento příkaz vytvoří nový virtuální počítač a okamžitě jej spustí. Můžete to ověřit pomocí příkazu:

1.13. Upravit konfigurační soubor XML virtuálních strojů

Pokud byste chtěli provést nějaké změny v hostujícím počítači, můžete jednoduše upravit jeho konfigurační soubor a provést změny, jak si přejete. Hosty lze upravovat, když běží, nebo když jsou offline.

$ virsh edit centos8-uefi

Tento příkaz otevře soubor ve vašem výchozím editoru, který nastavíte pomocí proměnné $EDITOR.

1.14. Povolit přístup ke konzole pro virtuální počítače

Po vytvoření KVM hostujících počítačů k nim můžete přistupovat přes SSH, VNC klienta, Virt-viewer, Virt-manager a webovou konzoli Cockpit atd. Nelze k nim však přistupovat pomocí příkazu "virsh console". Příkaz console se používá k připojení virtuální sériové konzole pro hosta. Chcete-li přistupovat k hostům KVM pomocí příkazu "virsh console", musíte v počítači hosta povolit přístup k sériové konzole. Chcete-li povolit přístup ke konzole virsh, postupujte podle následujícího průvodce:

  • Jak povolit přístup ke konzole Virsh pro hosty KVM

1,15. Přejmenovat virtuální stroje

Pokud jste někdy chtěli přejmenovat virtuální počítač, postupujte podle následujícího průvodce.

  • Jak přejmenovat hostující virtuální počítač KVM

1.16. Zobrazit ID domény virtuálních počítačů

Chcete-li najít ID domény běžícího hostujícího virtuálního počítače, spusťte:

$ virsh domid centos8-uefi
2

Vezměte prosím na vědomí, že host by měl být spuštěn, aby získal své ID domény.

1.17. Zobrazit název domény virtuálních počítačů

Chcete-li získat název domény běžícího virtuálního počítače, spusťte:

$ virsh domname <domain-id or domain-uuid>

Příklad:

$ virsh domname 2
centos8-uefi

Zde, 2 je ID domény.

1.18. Zobrazit UUID virtuálních počítačů

Chcete-li najít UUID hostujícího počítače, spusťte:

$ virsh domuuid <domain-name or domain-id>

Příklad:

$ virsh domuuid centos8-uefi

Nebo,

$  virsh domuuid 2

Ukázkový výstup:

de4100c4-632e-4c09-8dcf-bbde29170268

1.19. Zobrazit podrobnosti o virtuálních počítačích

Chcete-li zobrazit informace o počítači hosta, použijte název domény, ID domény nebo doménové uuid, jak je uvedeno níže:

$ virsh dominfo centos8-uefi

Nebo,

$ virsh dominfo 2

Nebo,

$ virsh dominfo de4100c4-632e-4c09-8dcf-bbde29170268

Ukázkový výstup:

Id:             -
Name:           centos8-uefi
UUID:           de4100c4-632e-4c09-8dcf-bbde29170268
OS Type:        hvm
State:          shut off
CPU(s):         2
Max memory:     2097152 KiB
Used memory:    2097152 KiB
Persistent:     yes
Autostart:      disable
Managed save:   no
Security model: apparmor
Security DOI:   0

1,20. Zobrazit informace o hostiteli KVM

Chcete-li získat informace o vašem hostitelském systému, spusťte:

$ virsh nodeinfo

Ukázkový výstup:

CPU model:           x86_64
CPU(s):              4
CPU frequency:       1167 MHz
CPU socket(s):       1
Core(s) per socket:  2
Thread(s) per core:  2
NUMA cell(s):        1
Memory size:         8058840 KiB

1.21. Zobrazit informace o virtuálním CPU

Chcete-li zobrazit informace o virtuálním CPU, spusťte:

$ virsh vcpuinfo <domain-id or domain-name or domain-uuid>

Příklad:

$ virsh vcpuinfo centos8-uefi
VCPU: 0
CPU: 3
State: running
CPU time: 5.6s
CPU Affinity: yyyy

VCPU: 1
CPU: 1
State: running
CPU time: 0.0s
CPU Affinity: yyyy

1,22. Najděte IP adresu virtuálních počítačů

Zjištění IP adresy virtuálního stroje není velký problém. Pokud máte konzolový přístup k virtuálnímu stroji, můžete snadno zjistit jeho IP adresu pomocí příkazu „ip“. Je však také možné identifikovat IP adresu virtuálního počítače KVM, aniž byste museli přistupovat k jeho konzoli. Následující průvodce vysvětluje, jak najít IP adresu virtuálního počítače KVM.

  • Jak najít IP adresu virtuálního počítače KVM

1,23. Odstranit virtuální počítače

Pokud již virtuální počítač nechcete, jednoduše jej smažte, jak je uvedeno níže:

$ virsh destroy centos8-uefi
$ virsh undefine centos8-uefi

První příkaz násilně zastaví virtuální počítač, pokud již běží. A druhý příkaz jej zruší a zcela odstraní.

K odstranění úložných svazků a snímků můžete dále použít následující možnosti.

--managed-save remove domain managed state file
--storage remove associated storage volumes (comma separated list of targets or source paths) (see domblklist)
--remove-all-storage remove all associated storage volumes (use with caution)
--delete-storage-volume-snapshots delete snapshots associated with volume(s)
--wipe-storage wipe data on the removed volumes
--snapshots-metadata remove all domain snapshot metadata (vm must be inactive)

2. Správa virtuálních sítí

Doufám, že jste se naučili spravovat virtuální stroje KVM pomocí příkazu Virsh v Linuxu. V této části jsou uvedeny důležité příkazy pro správu virtuálních sítí KVM v systému Linux pomocí nástroje příkazového řádku virsh.

2.1. Seznam virtuálních sítí

Chcete-li zobrazit seznam dostupných virtuálních sítí, spusťte:

$ virsh net-list 
 Name      State    Autostart   Persistent
--------------------------------------------
 default   active   yes         yes

Jak můžete vidět, mám pouze jednu virtuální síť, která je výchozí.

2.2. Zobrazit podrobnosti o virtuální síti

Chcete-li zobrazit podrobnosti o virtuální síti, spusťte:

$ virsh net-dumpxml default

Nahraďte "default" názvem vaší sítě ve výše uvedeném příkazu.

Ukázkový výstup:

<network connections='1'>
  <name>default</name>
  <uuid>ce25d978-e455-47a6-b545-51d01bcb9e6f</uuid>
  <forward mode='nat'>
    <nat>
      <port start='1024' end='65535'/>
    </nat>
  </forward>
  <bridge name='virbr0' stp='on' delay='0'/>
  <mac address='52:54:00:ee:35:49'/>
  <ip address='192.168.122.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.122.2' end='192.168.122.254'/>
    </dhcp>
  </ip>
</network>

2.3. Spusťte virtuální sítě

Chcete-li spustit neaktivní síť, spusťte:

$ virsh net-start <Name-Of-Inactive-Network>

Automatické spuštění sítě:

$ virsh net-autostart <network-name>

2.4. Vytvořte výpis XML virtuálních sítí

Chcete-li vytvořit konfigurační soubor XML existující virtuální sítě, spusťte:

$ virsh net-dumpxml default > default.xml

Výše uvedený příkaz vytvoří XML konfiguraci "výchozí" sítě a uloží ji do souboru s názvem "default.xml" v aktuálním adresáři.

Soubor XML můžete zobrazit pomocí příkazu cat:

$ cat default.xml 
<network connections='1'>
  <name>default</name>
  <uuid>ce25d978-e455-47a6-b545-51d01bcb9e6f</uuid>
  <forward mode='nat'>
    <nat>
      <port start='1024' end='65535'/>
    </nat>
  </forward>
  <bridge name='virbr0' stp='on' delay='0'/>
  <mac address='52:54:00:ee:35:49'/>
  <ip address='192.168.122.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.122.2' end='192.168.122.254'/>
    </dhcp>
  </ip>
</network>

2.5. Vytvořte nové virtuální sítě ze souboru XML

Chcete-li vytvořit novou virtuální síť pomocí existujícího souboru XML a okamžitě ji spustit, spusťte:

$ virsh net-create <Name-of-XMLfile>

Pokud chcete vytvořit síť ze souboru XML, ale nechcete ji spouštět automaticky, spusťte:

$ virsh net-define <Name-of-XMLfile>

2.6. Deaktivujte virtuální sítě

Chcete-li deaktivovat aktivní síť, spusťte:

$ virsh net-destroy <network-name>

2.7. Smazat virtuální sítě

Chcete-li odstranit virtuální síť, nejprve ji deaktivujte, jak je uvedeno výše, a poté spusťte:

$ virsh net-undefine <Name-Of-Inactive-Network>

Virsh má spoustu příkazů a možností. Naučit se důkladně používat nástroj příkazového řádku Virsh stačí k nastavení kompletního virtuálního prostředí v Linuxu. Nepotřebujete žádné GUI aplikace.

Další podrobnosti najdete na prvních manuálových stránkách.

$ man virsh

3. Spravujte hosty KVM graficky

Pamatovat si všechny virsh příkazy je téměř nemožné a také zbytečné. Pokud je pro vás obtížné provádět všechny úlohy správy Kvm z příkazového řádku, můžete vyzkoušet grafické nástroje pro správu KVM, jako je Virt-manager a Cockpit.

  • Správa virtuálních strojů KVM pomocí webové konzole Cockpit
  • Jak spravovat virtuální počítače KVM pomocí nástroje Virt-Manager

Závěr

Pokud víte, jak spravovat virtuální stroje KVM pomocí uživatelského rozhraní pro správu Virsh v systému Linux, jste na půl cesty ke správě virtualizačního prostředí podnikové úrovně. Nastavení KVM a správa virtuálních strojů KVM pomocí příkazu virsh jsou velmi důležité pro všechny administrátory Linuxu.

Vybraný obrázek od Eliase Sch. od Pixabay.


Linux
  1. Správa KVM (QEMU) pomocí Kimchi (webové rozhraní)

  2. Jak přejmenovat KVM VM pomocí virsh

  3. Jak spravovat podnikovou síť linuxových strojů?

  1. Jak vytvořit snímek virtuálního stroje KVM pomocí příkazu Virsh

  2. Jak spravovat virtuální stroje KVM pomocí webové konzole Cockpit

  3. Týdenní virtuální stroje s sestaveními skriptů

  1. Jak vytvářet a spravovat virtuální stroje KVM pomocí příkazového řádku

  2. Spravujte zabezpečení sítě pomocí brány firewall pomocí příkazových řádků

  3. Jak spravovat virtuální stroje KVM pomocí Virt-Manager