Maszyna wirtualna oparta na jądrze (w skrócie KVM) to open-source’owe i de facto standardowe rozwiązanie wirtualizacyjne, które jest ściśle zintegrowane z Linuksem. Jest to moduł ładowany przez jądro, który przekształca Linuksa w hiperwizora typu 1 (bare-metal), który tworzy wirtualną platformę operacyjną używaną do uruchamiania maszyn wirtualnych (VM).
W ramach KVM każda maszyna wirtualna jest procesem linuksowym, który jest zaplanowany i zarządzany przez jądro oraz ma prywatny zwirtualizowany sprzęt (tj. procesor, kartę sieciową, dysk itp.). Obsługuje również wirtualizację zagnieżdżoną, która umożliwia uruchamianie maszyny wirtualnej wewnątrz innej maszyny wirtualnej.
Kilka kluczowych cech KVM to obsługa szerokiej gamy platform sprzętowych obsługiwanych przez system Linux (sprzęt x86 z rozszerzeniami wirtualizacji (Intel VT lub AMD-V)), większe bezpieczeństwo i izolacja maszyn wirtualnych za pomocą SELinux i bezpiecznej wirtualizacji (sVirt), dziedziczenie funkcji zarządzania pamięcią jądra oraz obsługa migracji w trybie offline i w czasie rzeczywistym (migracja działającej maszyny wirtualnej między hostami fizycznymi).
W tym artykule dowiesz się, jak zainstalować wirtualizację KVM, tworzyć i zarządzać maszynami wirtualnymi w systemach CentOS 8 i RHEL 8 Linux.
Wymagania wstępne
- Świeża instalacja serwera CentOS 8
- Świeża instalacja serwera RHEL 8
- Abonament RedHat włączony na serwerze RHEL 8
Dodatkowo należy się upewnić, że platforma sprzętowa obsługuje wirtualizację, wykonując następujące polecenie.
# grep -e 'vmx' /proc/cpuinfo#Intel systems# grep -e 'svm' /proc/cpuinfo#AMD systems
Potwierdź również, że moduły KVM są załadowane do jądra (domyślnie powinny być).
# lsmod | grep kvm
Tutaj przykładowe dane wyjściowe na systemie testowym opartym na procesorze Intel:
W poprzedniej serii przewodników po KVM pokazaliśmy, jak tworzyć maszyny wirtualne w Linuksie za pomocą KVM (Kernel-based Virtual Machine), gdzie zademonstrowaliśmy, jak tworzyć maszyny wirtualne i zarządzać nimi za pomocą narzędzia GUI virt-manager (które zgodnie z dokumentacją RHEL 8 jest obecnie przestarzałe). W tym poradniku zastosujemy inne podejście, wykorzystamy konsolę webową Cockpit.
Krok 1: Konfiguracja konsoli webowej Cockpit w systemie CentOS 8
1. Kokpit jest łatwym w użyciu, zintegrowanym i rozszerzalnym interfejsem webowym do administrowania serwerem Linux w przeglądarce internetowej. Umożliwia on wykonywanie zadań systemowych, takich jak konfigurowanie sieci, administrowanie pamięcią masową, tworzenie maszyn wirtualnych i przeglądanie logów za pomocą myszy. Wykorzystuje normalne loginy i uprawnienia użytkownika systemu, ale inne metody uwierzytelniania są również obsługiwane.
Jest on wstępnie zainstalowany i włączony na świeżo zainstalowanym systemie CentOS 8 i RHEL 8, jeśli nie masz go zainstalowanego, zainstaluj go za pomocą następującego polecenia dnf. Rozszerzenie cockpit-machines powinno być zainstalowane w celu zarządzania maszynami wirtualnymi w oparciu o Libvirt.
# dnf install cockpit cockpit-machines
2. Po zakończeniu instalacji pakietu należy uruchomić gniazdo cockpit, włączyć jego autouruchamianie przy starcie systemu i sprawdzić jego status, aby potwierdzić, że jest włączony i działa.
# systemctl start cockpit.socket# systemctl enable cockpit.socket# systemctl status cockpit.socket
3. Następnie dodaj usługę kokpitu w zaporze systemowej, która jest domyślnie włączona, używając polecenia firewall-cmd i przeładuj konfigurację zapory, aby zastosować nowe zmiany.
# firewall-cmd --add-service=cockpit --permanent# firewall-cmd --reload
4. Aby uzyskać dostęp do konsoli web kokpitu, otwórz przeglądarkę internetową i użyj następującego adresu URL do nawigacji.
https://FQDN:9090/ORhttps://SERVER_IP:9090/
Kokpit używa samopodpisanego certyfikatu, aby włączyć HTTPS, po prostu kontynuuj połączenie, gdy otrzymasz ostrzeżenie z przeglądarki. Na stronie logowania należy użyć poświadczeń konta użytkownika serwera.
Krok 2: Instalacja wirtualizacji KVM CentOS 8
5. Następnie należy zainstalować moduł wirtualizacji i inne pakiety wirtualizacyjne w następujący sposób. Pakiet virt-install zapewnia narzędzie do instalowania maszyn wirtualnych z poziomu interfejsu wiersza poleceń, a virt-viewer służy do przeglądania maszyn wirtualnych.
# dnf module install virt # dnf install virt-install virt-viewer
6. Następnie uruchom polecenie virt-host-validate, aby sprawdzić, czy host jest skonfigurowany do uruchamiania sterowników hypervisora libvirt.
# virt-host-validate
7. Następnie uruchom demona libvirtd (libvirtd) i włącz jego automatyczne uruchamianie przy każdym starcie systemu. Następnie sprawdź jego status, aby potwierdzić, że jest uruchomiony i działa.
# systemctl start libvirtd.service# systemctl enable libvirtd.service# systemctl status libvirtd.service
Krok 3: Set Up Network Bridge (Virtual Network Switch) via Cockpit
8. Teraz utwórz most sieciowy (wirtualny przełącznik sieciowy), aby zintegrować maszyny wirtualne z tą samą siecią co host. Domyślnie, gdy demon libvirtd jest uruchamiany, aktywuje domyślny interfejs sieciowy virbr0, który reprezentuje wirtualny przełącznik sieciowy, który działa w trybie NAT.
Dla tego przewodnika, stworzymy interfejs sieciowy w trybie mostkowym o nazwie br0. Umożliwi to maszynom wirtualnym dostęp do sieci hostów.
Z głównego interfejsu kokpitu, kliknij na Networking, a następnie kliknij Add Bridge, jak pokazano na poniższym zrzucie ekranu.
9. W wyskakującym okienku wprowadź nazwę mostu i wybierz urządzenia podrzędne lub porty mostu (np. enp2s0 reprezentujący interfejs Ethernet), jak pokazano na poniższym zrzucie ekranu. Następnie kliknij przycisk Zastosuj.
10. Teraz, gdy spojrzysz na listę Interfaces, nowy most powinien się tam pojawić, a po kilku sekundach interfejs Ethernet powinien zostać wyłączony (zdjęty).
Krok 4: Tworzenie i zarządzanie maszynami wirtualnymi poprzez konsolę webową Cockpit
11. W głównym interfejsie kokpitu, kliknij na opcję Maszyny wirtualne, jak pokazano na poniższym zrzucie ekranu. Na stronie Maszyny wirtualne kliknij przycisk Utwórz VM.
12. Zostanie wyświetlone okno z opcjami tworzenia nowej maszyny wirtualnej. Wprowadź Połączenie, Nazwę (np. ubuntu18.04), Typ źródła instalacji (w systemie testowym obrazy ISO są przechowywane w puli pamięci masowej /var/lib/libvirt/images/), Źródło instalacji, Pamięć masową, Rozmiar, Pamięć, jak pokazano na poniższym obrazku. System operacyjny i dostawca systemu operacyjnego powinny zostać wybrane automatycznie po wprowadzeniu źródła instalacji.
Zaznacz także opcję natychmiastowego uruchomienia maszyny wirtualnej, a następnie kliknij przycisk Utwórz.
13. Po kliknięciu przycisku Utwórz w poprzednim kroku maszyna wirtualna powinna zostać automatycznie uruchomiona i powinna się uruchomić przy użyciu dostarczonego obrazu ISO. Przejdź do instalacji systemu operacyjnego gościa (w naszym przypadku Ubuntu 18.04).
Jeśli klikniesz Interfejsy sieciowe maszyny wirtualnej, źródło sieci powinno wskazywać nowo utworzony interfejs sieciowy mostu.
Podczas instalacji, na etapie konfiguracji interfejsu sieciowego, należy zauważyć, że interfejs Ethernet maszyny wirtualnej otrzymuje adres IP z serwera DHCP sieci hosta.
Należy pamiętać, że aby uzyskać dostęp do systemu operacyjnego gościa przez SSH z dowolnej maszyny w sieci hosta, należy zainstalować pakiet OpenSSH, jak opisano w ostatniej sekcji.
14. Po zakończeniu instalacji systemu operacyjnego gościa uruchom ponownie maszynę wirtualną, a następnie przejdź do zakładki Dyski i odłącz/usuń urządzenie cdrom znajdujące się na dyskach maszyny wirtualnej. Następnie kliknij przycisk Uruchom, aby uruchomić maszynę wirtualną.
15. Teraz w sekcji Consoles możesz zalogować się do systemu operacyjnego gościa, używając konta użytkownika utworzonego podczas instalacji systemu operacyjnego.
Krok 5: Uzyskiwanie dostępu do systemu operacyjnego gościa maszyny wirtualnej przez SSH
16. Aby uzyskać dostęp do nowo zainstalowanego systemu operacyjnego gościa z sieci hosta za pomocą protokołu SSH, uruchom następujące polecenie (zastąp adres IP gościa adresem IP 10.42.0.197).
$ ssh [email protected]
17. Aby zamknąć, zrestartować lub usunąć maszynę wirtualną, należy kliknąć ją na liście maszyn wirtualnych, a następnie użyć przycisków zaznaczonych na poniższym zrzucie ekranu.
To na razie wszystko! W tym poradniku pokazaliśmy, jak instalować pakiety wirtualizacyjne KVM oraz tworzyć i zarządzać maszynami wirtualnymi za pomocą konsoli webowej Cockpit. Aby uzyskać więcej szczegółów, zobacz: Rozpoczęcie pracy z wirtualizacją w RHEL 8.
.