Pełna forma KVM to Kernel Virtual Machine. Jest to rozwiązanie wirtualizacyjne dla systemu Linux. KVM to moduł jądra Linuksa, który pozwala jądru Linuksa działać jako program hiperwizora, taki jak VMware ESXi lub VSphere.

W tym artykule pokażę, jak zainstalować KVM na Ubuntu 20.04 LTS i utworzyć prostą maszynę wirtualną KVM z nim. A więc zaczynajmy.

Włączanie wirtualizacji sprzętowej:

Aby KVM działało, należy włączyć rozszerzenie wirtualizacji sprzętowej w BIOS-ie komputera. W przypadku procesorów Intel należy włączyć w systemie BIOS funkcję procesora VT-x lub VT-d. W przypadku procesorów AMD należy włączyć w systemie BIOS funkcję procesora AMD-v.

Po włączeniu wirtualizacji sprzętowej w systemie BIOS należy wykonać następujące polecenie, aby sprawdzić, czy rozszerzenie VT-x/VT-d lub AMD-v jest włączone.

$ grep –color –perl-regexp 'vmx|svm’ /proc/cpuinfo

Na wyjściu powinna być dostępna flaga svm lub vmx, jeśli masz włączoną wirtualizację sprzętu w BIOS-ie.

Ja używam procesora AMD. Więc, flaga svm jest dostępna w moim przypadku. Jeśli używasz procesora Intela, będzie to vmx.

Uaktualnianie systemu:

Przed zainstalowaniem KVM należy zaktualizować pakiety oprogramowania systemu Ubuntu 20.04 LTS.

Najpierw należy zaktualizować pamięć podręczną repozytorium pakietów APT systemu Ubuntu 20.04 LTS za pomocą następującego polecenia:

Powinna zostać zaktualizowana pamięć podręczna repozytorium pakietów APT systemu Ubuntu 20.04 LTS.

Jak widać, wszystkie pakiety mojej maszyny Ubuntu 20.04 LTS są już aktualne. Tak więc, nie muszę nic robić.

Jeśli masz dostępne aktualizacje, możesz zastosować te aktualizacje za pomocą następującego polecenia:

$ sudo apt upgrade

Następnie naciśnij Y, a następnie naciśnij <Enter>, aby potwierdzić instalację.

Po zainstalowaniu aktualizacji należy ponownie uruchomić komputer za pomocą następującego polecenia:

$ sudo reboot

Instalacja KVM:

Pakiety KVM są dostępne w oficjalnym repozytorium pakietów Ubuntu 20.04 LTS.

Można zainstalować KVM na swoim Ubuntu 20.04 LTS za pomocą następującego polecenia:

$ sudo apt install qemu qemu-kvm qemu-system qemu-utils

Aby potwierdzić instalację, naciśnij Y, a następnie naciśnij <Enter>.

Menedżer pakietów APT powinien pobrać z Internetu wszystkie wymagane pakiety.

Po pobraniu pakietów menedżer pakietów APT zainstaluje je.

Na tym etapie należy zainstalować KVM.

Instalacja LibVirt:

LibVirt to narzędzie do tworzenia maszyn wirtualnych KVM i zarządzania nimi oraz konfigurowania KVM. Jest to niezbędne narzędzie do wirtualizacji za pomocą KVM.

LibVirt jest dostępny w oficjalnym repozytorium pakietów Ubuntu 20.04 LTS.

Aby zainstalować LibVirt, wykonaj następujące polecenie:

$ sudo apt install libvirt-clients libvirt-daemon-system virtinst

Aby potwierdzić instalację, naciśnij Y, a następnie naciśnij <Enter>.

Menedżer pakietów APT powinien pobrać i zainstalować wszystkie wymagane pakiety z Internetu.

LibVirt powinien być zainstalowany w tym momencie.

Po zainstalowaniu LibVirt dodaj swojego użytkownika logowania do grupy libvirt za pomocą następującego polecenia:

$ sudo usermod -aG libvirt $(whoami)

Następnie zrestartuj komputer następującym poleceniem, aby zmiany zaczęły obowiązywać.

$ sudo reboot

Po uruchomieniu komputera uruchom następującą komendę, aby potwierdzić, że LibVirt działa.

$ virsh –version

Komenda powinna zwrócić numer wersji LibVirt. W moim przypadku jest to 6.0.0.

Ustawianie wymaganych katalogów KVM:

Myślę, że dobrym pomysłem jest uporządkowanie wszystkich danych maszyn wirtualnych. Ja zazwyczaj przechowuję wszystkie dane maszyn wirtualnych KVM w katalogu /kvm/. W katalogu /kvm/ tworzę 2 podkatalogi disk/ i iso/. W podkatalogu disk/ przechowuję wszystkie pliki dysków twardych maszyn wirtualnych (VM). W podkatalogu iso/ przechowuję obrazy instalacyjne ISO różnych systemów operacyjnych (np. Ubuntu, Debian, CentOS itp.).

Możesz utworzyć te same struktury katalogów za pomocą następującego polecenia:

$ sudo mkdir -pv /kvm/{disk,iso}.

Tworzenie maszyny wirtualnej KVM:

W tym rozdziale pokażę, jak utworzyć maszynę wirtualną Ubuntu Server 20.04 LTS KVM.

Na początku należy pobrać obraz instalacyjny ISO Ubuntu Server 20.04 LTS. Aby zachować porządek we wszystkich plikach/danych maszyny wirtualnej, dobrze jest przechowywać obraz ISO w katalogu /kvm/iso/.

Więc przejdź do katalogu /kvm/iso/ za pomocą następującego polecenia:

$ cd /kvm/iso

Możesz pobrać obraz ISO Ubuntu Server 20.04 LTS obraz ISO z oficjalnej strony Ubuntu za pomocą następującego polecenia:

$ sudo wget https://releases.ubuntu.com/20.04/ubuntu-20.04.1-live-server-amd64.iso

wget powinien rozpocząć pobieranie obrazu ISO Ubuntu Server 20.04 LTS. 04 \
–ram 1024 \
–disk /kvm/disk/server-01.img,device=disk,bus=virtio,size=10,format=qcow2 \
–graphics vnc,listen=0.0.0.0 \
–noautoconsole \
–hvm \
–cdrom /kvm/iso/ubuntu-20.04.1-live-server-amd64.iso \
–boot cdrom,hd

Nazwa maszyny wirtualnej będzie brzmiała server-01.

System operacyjny, który będziemy instalować to linux.

Wariant systemu operacyjnego to ubuntu20.04 (Ubuntu 20.04 LTS).

Wartości typu OS i wariantu OS nie są losowe. Możesz znaleźć typ systemu operacyjnego i wariant systemu operacyjnego dla żądanej dystrybucji Linuksa za pomocą polecenia osinfo-query. Jak widać, dla Ubuntu 20.04 LTS, typ systemu operacyjnego w linux i wariant systemu operacyjnego jest ubuntu20.04.

$ osinfo-query os –fields=name,short-id,family | grep -i Ubuntu

Jeśli nie masz polecenia osinfo-query dostępnego na swoim komputerze, możesz je zainstalować za pomocą następującego polecenia:

$ sudo apt install libosinfo-bin

Pamięć RAM (Random Access Memory) maszyny wirtualnej będzie wynosić 1024 MB (megabajty).

Dysk wirtualny maszyny wirtualnej zostanie zapisany w pliku /kvm/disk/server-01.img. Wirtualny dysk ma rozmiar około 10 GB, a jego format to QCOW2 (QEMU Copy-On-Write v2)

Maszyna wirtualna będzie dostępna za pośrednictwem protokołu zdalnego pulpitu VNC (Virtual Network Computing), a serwer VNC będzie nasłuchiwał na wszystkich dostępnych interfejsach sieciowych skonfigurowanych na Twoim Ubuntu 20.04 LTS KVM host.

Ubuntu 20.04 LTS KVM host nie będzie automatycznie próbował połączyć się z maszyną wirtualną po jej utworzeniu. Maszyna wirtualna będzie nadal działać w tle.

Użyj pełnej wirtualizacji dla maszyny wirtualnej. Dzięki temu maszyny wirtualne będą działać lepiej.

Użyj obrazu ISO Ubuntu Server 20.04 LTS, który właśnie pobraliśmy jako wirtualny CD/DVD ROM maszyny wirtualnej i użyliśmy do instalacji Ubuntu Server 20.04 LTS na maszynie wirtualnej.

Ustawiamy kolejność uruchamiania maszyny wirtualnej. Pierwszym wpisem startowym jest wirtualny CD/DVD ROM, a następnie wirtualny dysk twardy. Tak więc maszyna wirtualna będzie mogła uruchomić się z obrazu ISO Ubuntu Server 20.04 LTS i zainstalować Ubuntu Server 20.04 LTS na dysku twardym.

To w zasadzie wszystkie opcje potrzebne do utworzenia maszyny wirtualnej KVM.

Po uruchomieniu polecenia virt-install program KVM powinien rozpocząć tworzenie maszyny wirtualnej. Może to chwilę potrwać w zależności od konfiguracji maszyny wirtualnej.

W tym momencie maszyna wirtualna KVM powinna zostać utworzona.

Listowanie maszyn wirtualnych KVM:

Po utworzeniu maszyny wirtualnej KVM można ją wylistować, wykonując następujące polecenie:

$ virsh list –all

Polecenie powinno wyświetlić wszystkie posiadane maszyny wirtualne KVM. W tej chwili mam tylko 1 maszynę wirtualną server-01. To jest ta, którą właśnie utworzyłem. Jak widać, maszyna wirtualna server-01 jest uruchomiona. Można się z nią połączyć za pomocą dowolnego klienta VNC.

Połączenie z maszynami wirtualnymi KVM zdalnie za pomocą VNC:

W tym rozdziale pokażę, jak połączyć się zdalnie z maszyną wirtualną KVM za pomocą VNC.

Numer portu VNC maszyny wirtualnej KVM server-01 można znaleźć za pomocą następującego polecenia:

$ virsh vncdisplay server-01

Jak widać, numer portu VNC maszyny wirtualnej server-01 to 0.

Port 0 oznacza port 5900. Analogicznie port 1 oznacza port 5901 i tak dalej.

Teraz znajdź adres IP hosta KVM Ubuntu 20.04 LTS za pomocą następującego polecenia:

$ ip a

W moim przypadku adres IP to 192.168.20.131. Dla Ciebie będzie on inny. Upewnij się więc, że od teraz zastąpisz go swoim.

Otwórz dowolnego klienta VNC i połącz się z adresem 192.168.20.131:0.

Kliknij na Kontynuuj.

Powinieneś być połączony z wyświetlaczem maszyny wirtualnej KVM Server-01, jak widać na poniższym zrzucie ekranu.

Teraz można zainstalować żądany system operacyjny na maszynie wirtualnej.

W moim przypadku zainstaluję system operacyjny Ubuntu Server 20.04 LTS na maszynie wirtualnej.

Ubuntu Server 20.04 LTS jest zainstalowany na maszynie wirtualnej w tym momencie. Uruchommy ponownie maszynę wirtualną.

Naciśnij <Enter>, gdy zobaczysz ten komunikat.

Maszyna wirtualna Server-01 KVM powinna zostać automatycznie wyłączona, jak widać na poniższym zrzucie ekranu.

$ virsh list –all

Uruchom maszynę wirtualną Server-01 KVM za pomocą następującego polecenia:

$ virsh start server-01

Maszyna wirtualna Server-01 powinna zostać uruchomiona.

Teraz można połączyć się z maszyną wirtualną server-01 z klienta VNC, tak jak poprzednio. Jak widać, wyświetlany jest ekran logowania Ubuntu Server 20.04 LTS.

Możesz się zalogować i uruchomić dowolne polecenie.

Usuwanie maszyn wirtualnych KVM:

Maszynę wirtualną KVM można również bardzo łatwo usunąć za pomocą LibVirt.

Jak widać, na moim hoście Ubuntu 20.04 LTS KVM działają 2 maszyny wirtualne KVM (server-01 i server-02). Usuńmy maszynę wirtualną KVM server-02.

$ virsh list –all

Jak widać, maszyna wirtualna KVM server-02 jest uruchomiona. Przed jej usunięciem należy ją zatrzymać.

$ virsh list –all

Aby wymusić zatrzymanie maszyny wirtualnej Server-02 KVM, wykonaj następujące polecenie:

$ virsh destroy server-02

Jak widać, maszyna wirtualna server-02 jest wyłączona.

$ virsh list –all

Maszynę wirtualną server-02 i wszystkie podłączone do niej wirtualne dyski twarde można trwale usunąć za pomocą następującego polecenia:

$ virsh undefine –remove-all-storage server-02

Jak widać, maszyna wirtualna server-02 nie jest już dostępna.

$ virsh list –all

Issue#1: Fixing cpu->kvm_msr_buf->nmsrs Assertion Error

Podczas tworzenia maszyny wirtualnej KVM w Ubuntu 20.04 LTS może pojawić się następujący komunikat o błędzie. Jest to błąd jądra. Zazwyczaj dzieje się tak, gdy użytkownik uruchamia KVM wewnątrz innej maszyny wirtualnej. Ja uruchamiam KVM wewnątrz maszyny wirtualnej VMware. Dlatego, jak sądzę, otrzymałem ten błąd. Łatwo go naprawić.

Utwórz nowy plik /etc/modprobe.d/qemu-system-x86.conf za pomocą następującego polecenia:

$ sudo nano /etc/modprobe.d/qemu-system-x86.conf

Dodaj następujące linie w pliku, jeśli używasz procesora AMD.

options kvm_amd nested=1 enable_apicv=n
options kvm ignore_msrs=1

Dodaj następujące linie w pliku, jeśli używasz procesora Intel.

options kvm_intel nested=1 enable_apicv=n
options kvm ignore_msrs=1

Gdy skończysz, naciśnij <Ctrl> + X a następnie Y i <Enter> aby zapisać plik /etc/modprobe.d/qemu-system-x86.conf.

Następnie uruchom ponownie komputer za pomocą następującego polecenia, aby zmiany zaczęły obowiązywać.

$ sudo reboot

Twój problem powinien zostać rozwiązany.

Podsumowanie:

W tym artykule pokazałem, jak zainstalować KVM na Ubuntu 20.04 LTS i tworzyć maszyny wirtualne KVM za pomocą LibVirt. Pokazałem również, jak usuwać maszyny wirtualne KVM. To powinno pomóc w rozpoczęciu pracy z wirtualizacją KVM w systemie Linux.

.

admin

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.

lg