GNU/Linux >> Znalost Linux >  >> Cent OS

Nainstalujte a nakonfigurujte KVM na serveru CentOS 8

Tento průvodce krok za krokem vysvětluje, co je KVM a jak nainstalovat a nakonfigurovat KVM v operačním systému CentOS 8 Linux.

Tato příručka je oficiálně testována v minimální serverové edici CentOS 8. Měl by však fungovat také v RHEL 8 a jeho klonech jako AlmaLinux 8 a Rocky Linux 8.

Co je KVM?

KVM , zkratka pro K V založené na ernel irtuální M achine, je modul jádra FreeBSD a Linuxu, který umožňuje jádru fungovat jako hypervizor.

Od verze jádra 2.6.20 je KVM začleněno do hlavní řady jádra Linuxu.

Pomocí KVM můžete snadno nastavit virtualizační prostředí v počítači se systémem Linux a nasadit širokou škálu hostovaných operačních systémů včetně Linuxu, Windows, BSD, Mac OS a mnoha dalších.

Nyní se podívejme, jak nainstalovat a nakonfigurovat KVM v CentOS 8 Linux.

Předpoklady

Před instalací KVM se nejprve ujistěte, že váš systém podporuje virtualizaci hardwaru. V následující příručce jsme zdokumentovali několik různých způsobů, jak zjistit, zda systém Linux podporuje virtualizaci.

  • Jak zjistit, zda procesor podporuje technologii virtualizace (VT)

Pokud váš systém podporuje virtualizaci hardwaru, pokračujte podle následujících kroků.

1. Nainstalujte a nakonfigurujte KVM na serveru CentOS 8

Pro účely této příručky budu používat následující systém:

Virtualizační server KVM:

  • OS – CentOS 8 minimální server (bez GUI)
  • IP adresa :192.168.225.53/24

I když je testován na CentOS 8, tato příručka by měla fungovat dobře i na RHEL 8.

1.1. Nainstalujte KVM v CentOS 8

Poznámka: Všechny příkazy zadané v tomto tutoriálu by měly být spouštěny jako root uživatel. Pokud jste se přihlásili jako normální uživatel, přidejte sudo před všemi příkazy uveďte níže.

Nainstalujte Kvm a všechny požadované závislosti pro nastavení virtualizačního prostředí na vašem serveru CentOS 8 pomocí příkazu jako root uživatel:

# dnf install qemu-kvm libvirt virt-install

Tady,

  • emu-kvm - metabalíček QEMU pro podporu KVM (tj. plná virtualizace QEMU na hardwaru x86),
  • libvirt - programy pro knihovnu libvirt,
  • virt-install - programy pro vytváření a klonování virtuálních strojů.

Jakmile je KVM nainstalováno, povolte a spusťte libvertd služba (Pokud již není spuštěna):

# systemctl povolit libvirtd
# systemctl start libvirtd

Můžete také zkombinovat oba příkazy a spustit je jako jeden řádek, jak je uvedeno níže:

# systemctl enable --now libvirtd

Zkontrolujte stav služby libvirtd příkazem:

# systemctl status libvirtd

Ukázkový výstup:

● libvirtd.service – Virtualizační démon Načteno:načteno (/usr/lib/systemd/system/libvirtd.service; povoleno; přednastaveno dodavatelem:enable> Aktivní:aktivní (spuštěno) od středy 2020-07-15 14:27:32 IST; Před 5 s Dokumenty:man:libvirtd(8) https://libvirt.org Hlavní PID:1097 (libvirtd) Úkoly:17 (limit:32768) Paměť:57,0M CGroup:/system.slice/libvirtd.service └─1097 / usr/sbin/libvirtd 15. července 14:27:28 centos8.ostechnix.lan systemd[1]:Spouštění démona virtualizace... 15. července 14:27:32 centos8.ostechnix.lan systemd[1]:Spouštění démona virtualizace. 

Služba libvertd je v provozu!

Ověřte, zda jsou načteny moduly KVM:

# lsmod | grep kvm

Ukázkový výstup:

kvm_intel 294912 0kvm 786432 1 kvm_intelirqbypass 16384 1 kvm

Skvělý! Jsou načteny moduly KVM. Pojďme nyní vytvořit síťový most.

1.2. Nastavte síťový most pomocí KVM v CentOS

Přemostěná síť sdílí skutečné síťové rozhraní hostitelského počítače s jinými virtuálními počítači pro připojení k vnější síti. Každý virtuální počítač se tedy může vázat přímo na jakýkoli dostupný IPv4 nebo IPv6 adresy, stejně jako fyzický počítač.

Ve výchozím nastavení KVM nastavuje soukromý virtuální most, takže všechny virtuální počítače mohou mezi sebou komunikovat v rámci hostitelského počítače.

Poskytuje svou vlastní podsíť a DHCP pro konfiguraci sítě hosta a pro přístup k hostitelské síti používá NAT.

Podívejte se na IP adresu výchozích virtuálních rozhraní KVM pomocí ip příkaz:

# ip a

Ukázkový výstup:

1:lo: mtu 65536 stav qdisc noqueue NEZNÁMÝ výchozí skupina qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:0 hostitel rozsahu inet 127.0.0.1/8 lo valid_lft navždy preferovaný_lft navždy inet6 ::1/128 hostitel rozsahu valid_lft navždy preferovaný_lft navždy2:enp0s3: mtu default 1500 qdisc UP qether_10l0l0l0l0l skupina fqether 08:00:27:b7:3a:84 brd ff:ff:ff:ff:ff:ff inet 192.168.225.52/24 brd 192.168.225.255 rozsah globální dynamická noprefixroute enp0s3 valid_lft 42221724sec preferovaná :ad3b:b969:8ec8:f9c7/64 rozsah globální noprefixroute valid_lft navždy preferovaný_lft navždy inet6 fe80::b404:4d52:8bee:18bf/64 odkaz na rozsah noprefixroute valid_lft navždy preferovaný_lft, navždy3:enpLOWULTCUP_AST,AST> 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 08:00:27:2a:be:53 brd ff:ff:ff:ff:ff:ff4:enp0s9: mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 08:00:27:41:91:4d brd ff:ff:ff:ff:ff:ff5:virbr0  192.168.122.1/24 brd 192.168.122.255 rozsah globální virbr0 platný_lft navždy preferovaný_lft navždy6:virbr0-nic: mtu 1500 qdisc fq_codel master virbr0 stav DOWN výchozí skupina qlen 1000 link/ether:002:554cdb5 502:5 ff:ff:ff:ff:ff

Jak vidíte, výchozí síť KVM virbr0 používá 192.168.122.1/24 IP adresa. Všechny virtuální počítače budou používat IP adresu v 192.168.122.0/24 Rozsah IP adres a hostitelský operační systém budou dosažitelné na 192.168.122.1 .

Měli byste být schopni připojit ssh do hostitelského OS (na adrese 192.168.122.1 ) zevnitř hostujícího OS a použijte scp pro kopírování souborů tam a zpět.

Je v pořádku, pokud k virtuálním počítačům uvnitř přistupujete pouze ze samotného hostitele. K virtuálním počítačům však nemůžete přistupovat z jiných vzdálených systémů v síti.

Protože používají jiný rozsah IP adres, např. 192.168.225.0/24 v mém případě. Abychom mohli přistupovat k virtuálním počítačům z jiných vzdálených hostitelů, musíme nastavit veřejný most, který běží v hostitelské síti a používá jakýkoli externí server DHCP v hostitelské síti.

Abychom to řekli laicky, připravíme všechny VM tak, aby používaly stejnou řadu IP, jakou používá hostitelský systém.

Před nastavením veřejné přemostěné sítě bychom měli deaktivovat Netfilter z důvodů výkonu a zabezpečení . Netfilter je aktuálně na mostech ve výchozím nastavení povolen.

Chcete-li zakázat síťový filtr, vytvořte soubor s názvem /etc/sysctl.d/bridge.conf :

# vi /etc/sysctl.d/bridge.conf

Přidejte následující řádky:

net.bridge.bridge-nf-call-ip6tables=0net.bridge.bridge-nf-call-iptables=0net.bridge.bridge-nf-call-arptables=0

Uložte a zavřete soubor.

Potom vytvořte další soubor s názvem /etc/udev/rules.d/99-bridge.rules :

# vi /etc/udev/rules.d/99-bridge.rules

Přidejte následující řádek:

ACTION=="add", SUBSYSTEM=="modul", KERNEL=="br_netfilter", RUN+="/sbin/sysctl -p /etc/sysctl.d/bridge.conf"

Tímto se nastaví potřebné příznaky pro deaktivaci síťového filtru na mostech na příslušném místě při spouštění systému. Uložte a zavřete soubor. Restartujte systém aby se tyto změny projevily.

Dále bychom měli zakázat výchozí síť, kterou si KVM nainstaloval.

Najděte název výchozích síťových rozhraní KVM pomocí příkazu "ip link":

# ip odkaz

Ukázkový výstup:

1:lo: mtu 65536 stav qdisc noqueue UNKNOWN režim VÝCHOZÍ skupina výchozí qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00:00:00 :002:enp0s3: mtu 1500 qdisc fq_codel stav UP režim DEFAULT výchozí skupina qlen 1000 link/ether 08:00:27:b7:3a:84 brd ff:ff:ff::ff3:enp0s8: mtu 1500 qdisc fq_codel stav UP režim DEFAULT výchozí skupina qlen 1000 link/ether 08:00:27:2a:be:53 brd ff:ff:ff:ff::ff4:enp0s9: mtu 1500 qdisc fq_codel stav UP režim DEFAULT výchozí skupina qlen 1000 link/ether 08:00:27:41:91:4d brd ff:ffff:ff:ff :ff5:virbr0 : mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000 link/ether 52:54:00:5b:a4:cd brd ff:ff:ff:ff:ff:ff6 :virbr0-nic : mtu 1500 qdisc fq_codel master virbr0 stav DOWN režim DEFAULT skupina výchozí qlen 1000 link/ether 52:54:00:5b:a4:cd brd ff:ff:ff:ff:ff:ff

Jak vidíte ve výše uvedeném výstupu, položky virbr0 a virbr0-nic jsou sítě KVM.

Odebereme výchozí síť KVM příkazem:

# virsh net-destroy default

Ukázkový výstup:

Výchozí nastavení sítě bylo zničeno

Zrušte definici výchozí sítě příkazem:

# virsh net-undefine default

Ukázkový výstup:

Výchozí nastavení sítě bylo nedefinováno

Pokud výše uvedené příkazy z nějakého důvodu nefungují, můžete pomocí těchto příkazů zakázat a zrušit definici výchozí sítě KVM:

# ip link delete bridge typu virbr0
# ip link delete virbr0-nic

Nyní spusťte ip link znovu pro ověření, zda virbr0 a virbr0-nic rozhraní jsou ve skutečnosti odstraněna:

# ip odkaz

Ukázkový výstup:

1:lo: mtu 65536 stav qdisc noqueue UNKNOWN režim VÝCHOZÍ skupina výchozí qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00:00:00 :002:enp0s3: mtu 1500 qdisc fq_codel stav UP režim DEFAULT výchozí skupina qlen 1000 link/ether 08:00:27:b7:3a:84 brd ff:ff:ff::ff3:enp0s8: mtu 1500 qdisc fq_codel stav UP režim DEFAULT výchozí skupina qlen 1000 link/ether 08:00:27:2a:be:53 brd ff:ff:ff:ff::ff4:enp0s9: mtu 1500 qdisc fq_codel stav UP režim DEFAULT výchozí skupina qlen 1000 link/ether 08:00:27:41:91:4d brd ff:ffff:ff:ff :ff

Výchozí sítě KVM jsou pryč.

Nyní nastavíme veřejný most KVM, který se použije při vytváření nového virtuálního počítače.

Vytvořte nové přemostěné rozhraní s názvem br0 pomocí nmcli příkaz:

# nmcli connection add type bridge autoconnect yes con-name br0 ifname br0

Nastavte IP adresu pro rozhraní mostu:

# nmcli připojení upravit br0 ipv4.addresses 192.168.225.53/24 ipv4.manuál k metodě

Nastavte bránu pro rozhraní mostu:

# nmcli připojení upravit br0 ipv4.gateway 192.168.225.1

Nastavte DNS pro rozhraní mostu:

# nmcli připojení upravit br0 ipv4.dns 192.168.225.1

Dále musíme odstranit jednu z vašich karet síťového rozhraní a přidat ji jako slave k mostu.

Vezměte prosím na vědomí, že pokud má váš server pouze jednu NIC a přistupujete k serveru přes SSH, vaše připojení bude po odebrání NIC ukončeno. Doporučuji vám provést následující kroky v konzole vašeho serveru.

Například přidám enp0s8 rozhraní jako slave k rozhraní mostu br0 .

Chcete-li odebrat síťové rozhraní enp0s8 , spustit:

# nmcli připojení k enp0s8

Nahraďte enp0s8 s vlastní síťovou kartou.

Poznámka: Pro mosty nepoužívejte karty bezdrátového síťového rozhraní. Většina bezdrátových prokládání nepodporuje přemostění. Pro bezproblémové připojení vždy používejte kabelová síťová rozhraní!

Dále přidejte enp0s8 na most pomocí příkazu:

# nmcli connection add type bridge-slave autoconnect yes con-name enp0s8 ifname enp0s8 master br0

Zde je síťové rozhraní mostu br0 je připojen k síťovému rozhraní hostitele enp0s8 . Nahraďte výše uvedené názvy síťových rozhraní, které odpovídají vaší síti.

Restartujte správce sítě, aby se změny projevily:

# systemctl restartujte NetworkManager

Pokud je to možné, je lepší restartovat systém:

# restartovat

Přihlaste se ke svému serveru a zkontrolujte, zda byla IP adresa přiřazena k rozhraní mostu:

$ ip a

Ukázkový výstup:

1:lo: mtu 65536 stav qdisc noqueue NEZNÁMÝ výchozí skupina qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:0 inet 127.0.0.1/8 rozsah hostitel lo valid_lft navždy preferovaný_lft navždy inet6 ::1/128 rozsah hostitel valid_lft navždy preferovaný_lft navždy2:enp0s3: mtu 1500 qdisc fq_codel stav 00 link DOWN výchozí skupina:00 výchozí skupina 27:b7:3a:84 brd ff:ff:ff:ff:ff:ff3:enp0s8 : mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000 link/ether 08:00:27:2a:be:53 brd ff:ff:ff:ff:ff:ff4:enp0s9: mtu 1500 qdisc fq_codel state UP výchozí skupina qlen 1000 link/ether 08:00:27:41:91:4d brd ff:ff:ff:ff:ff:ff5:br0 : mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 08:00:27:2a:be:53 brd ff:ff:ff:ff:ff:ff inet  192.168.225.53/24 brd 192.168.225.255 rozsah globální noprefixroute br0 valid_lft navždy preferovaný_lft navždy inet6 2409:4072:6084:198:df03:d9ed:62eb:df34/64 rozsah globální noprefixroute preferovaný_84lft forever:9e590 preferovaný_lft navždy:84lft navždy:rozsah odkaz noprefixroute valid_lft navždy preferovaný_lft navždy

Jak vidíte na výše uvedeném výstupu, přemostěné síťové rozhraní br0 je přiřazena IP adresa 192.168.225.53 a enp0s8 záznam má nyní master br0 vstup. Znamená to, že enp0s8 patří mostu.

Můžete také použít bridge příkaz pro zobrazení stavu mostu:

# bridge link show br0 3:enp0s8: mtu 1500 master br0 state forwarding priority 32 cost 100

Úspěšně jsme vytvořili rozhraní mostu a je aktivní. Musíme udělat poslední věc.

Měli bychom nakonfigurovat KVM tak, aby používal toto rozhraní mostu jako výchozí rozhraní. Chcete-li tak učinit, vytvořte XML soubor s názvem host-bridge.xml :

# vi host-bridge.xml

Přidejte následující řádky:

 host-bridge  

Spuštěním následujících příkazů spusťte nově vytvořený most a nastavte jej jako výchozí most pro virtuální počítače:

# virsh net-define host-bridge.xml
# virsh net-start host-bridge
# virsh net-autostart host-bridge

Ověřte, zda je most aktivní a spustil se pomocí příkazu:

# virsh net-list --all

Ukázkový výstup:

Trvalé automatické spuštění stavu názvu------------------------------------------ ----- host-bridge aktivní ano ano

Gratulujeme! Úspěšně jsme nainstalovali a nakonfigurovali KVM na bezhlavém serveru CentOS 8.

2. Vytvářejte a spravujte hostující počítače KVM

Můžeme vytvářet a spravovat VM buď z příkazového řádku nebo pomocí jakýchkoli nástrojů pro správu KVM, jako je Cockpit a Virt-manager. Další podrobnosti naleznete v následujících příručkách.

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

3. Povolit přístup ke konzole Virsh pro virtuální stroje

Po vytvoření hostů KVM k nim mohu přistupovat přes SSH, VNC klienta, Virt-viewer, Virt-manager a webovou konzoli Cockpit atd. Ale nemohl jsem k nim přistupovat pomocí virsh console příkaz. Chcete-li získat přístup k hostům KVM pomocí „virsh console“, postupujte podle následujícího průvodce:

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

Další příručky související s KVM na tomto blogu

  • Instalace a konfigurace KVM v Ubuntu 20.04 Headless Server
  • Nainstalujte a nakonfigurujte KVM v OpenSUSE Tumbleweed
  • Vytvořte virtuální počítač KVM pomocí obrazu Qcow2 v systému Linux
  • Jak migrovat virtuální počítače Virtualbox na virtuální počítače KVM v systému Linux
  • Povolte podporu UEFI pro virtuální počítače KVM v systému Linux
  • Jak povolit vnořenou virtualizaci v KVM v Linuxu
  • Zobrazení statistik virtualizačních systémů pomocí Virt-top v Linuxu
  • Jak najít IP adresu virtuálního počítače KVM
  • Jak přejmenovat hostující virtuální počítač KVM
  • Přístup k obrazům disku virtuálního počítače a jejich úprava pomocí Libguestfs
  • Rychle vytvářejte obrazy virtuálních strojů pomocí Virt-builderu
  • Jak zachránit virtuální stroje pomocí Virt-Rescue
  • Jak rozšířit velikost disku virtuálního počítače KVM v systému Linux
  • Nastavte sdílenou složku mezi hostitelem KVM a hostem
  • Jak změnit výchozí umístění fondu úložiště KVM Libvirt
  • [Vyřešeno] Nelze získat přístup k souboru úložiště, oprávnění odepřeno Chyba v KVM Libvirt
  • Jak exportovat a importovat virtuální stroje KVM v systému Linux

Závěr

V této příručce jsme probrali, jak nainstalovat a nakonfigurovat KVM v serverové edici CentOS 8.

Podívali jsme se také na to, jak vytvořit a spravovat virtuální stroje KVM z příkazového řádku pomocí virsh a pomocí nástrojů GUI s názvem Cockpit a Virt-manager.

Nakonec jsme viděli, jak povolit virsh konzolový přístup pro virtuální stroje KVM.

V této fázi byste měli mít na svém serveru CentOS 8 plně funkční virtualizační prostředí.


Cent OS
  1. Instalace a konfigurace FTP serveru na CentOS 7 / RHEL 7 – (vsftpfd)

  2. Jak nainstalovat a nakonfigurovat Gitlab na CentOS 8

  3. Jak nainstalovat a nakonfigurovat Postgres 13 na Centos 8

  1. Nainstalujte a nakonfigurujte HAProxy na RHEL 8 / CentOS 8 Linux

  2. Jak nainstalovat a nakonfigurovat VNC na CentOS 7

  3. Jak nainstalovat a nakonfigurovat server NFS na CentOS 8

  1. Jak nainstalovat a nakonfigurovat VNC na CentOS 8

  2. Nainstalujte a nakonfigurujte VNC Server v CentOS 7 a RHEL 7

  3. Jak nainstalovat a nakonfigurovat FreeIPA na CentOS 7 Server