RHCSA Series: Essentials of Virtualization and Guest Administration with KVM - Część 15


Jeśli sprawdzisz słowo wirtualizacja w słowniku, przekonasz się, że oznacza to „ stworzenie wirtualnej (a nie rzeczywistej) wersji czegoś ”. W informatyce termin wirtualizacja odnosi się do możliwości jednoczesnego uruchamiania wielu systemów operacyjnych i izolowania ich od siebie, oprócz tego samego fizycznego (sprzętowego) systemu, znanego w schemacie wirtualizacji jako host .

Dzięki użyciu monitora maszyny wirtualnej (znanego również jako hypervisor ) maszyny wirtualne (określane jako goście ) udostępniają zasoby wirtualne (np. CPU, RAM, pamięć masowa, sieć) interfejsy, aby wymienić tylko kilka) z podstawowego sprzętu.

Mając to na uwadze, oczywiste jest, że jedną z głównych zalet wirtualizacji jest oszczędność kosztów (w zakresie sprzętu i infrastruktury sieciowej oraz w zakresie prac konserwacyjnych) oraz znaczne zmniejszenie przestrzeni fizycznej niezbędnej do pomieszczenia całego niezbędnego sprzętu.

Ponieważ ten krótki poradnik nie może obejmować wszystkich metod wirtualizacji, zachęcam do odwoływania się do dokumentacji wymienionej w podsumowaniu w celu uzyskania dalszych informacji na ten temat.

Należy pamiętać, że niniejszy artykuł ma być punktem wyjścia do nauki podstaw wirtualizacji w RHEL 7 za pomocą KVM (maszyny wirtualnej opartej na jądrze) z narzędziami wiersza poleceń, a nie in -głębna dyskusja na ten temat.

Sprawdzanie wymagań sprzętowych i instalowanie pakietów

Aby skonfigurować wirtualizację, Twój procesor musi go obsługiwać. Możesz sprawdzić, czy Twój system spełnia wymagania za pomocą następującego polecenia:

# grep -E 'svm|vmx' /proc/cpuinfo

Na poniższym zrzucie ekranu widzimy, że obecny system (z mikroprocesorem AMD ) obsługuje wirtualizację, jak wskazuje svm . Gdybyśmy mieli procesor z procesorem Intela, zamiast tego widzieliśmy vmx w wynikach powyższego polecenia.

Ponadto konieczne będzie włączenie funkcji wirtualizacji w oprogramowaniu układowym hosta ( BIOS lub UEFI ).

Teraz zainstaluj niezbędne pakiety:

  1. qemu-kvm is an open source virtualizer that provides hardware emulation for the KVM hypervisor whereas qemu-img provides a command line tool for manipulating disk images.
  2. libvirt includes the tools to interact with the virtualization capabilities of the operating system.
  3. libvirt-python contains a module that permits applications written in Python to use the interface supplied by libvirt.
  4. libguestfs-tools: miscellaneous system administrator command line tools for virtual machines.
  5. virt-install: other command-line utilities for virtual machine administration.
# yum update && yum install qemu-kvm qemu-img libvirt libvirt-python libguestfs-tools virt-install

Po zakończeniu instalacji upewnij się, że uruchamiasz i włącz usługę libvirtd :

# systemctl start libvirtd.service
# systemctl enable libvirtd.service

Domyślnie każda maszyna wirtualna będzie mogła komunikować się z resztą tylko na tym samym serwerze fizycznym iz samym hostem. Aby umożliwić gościom dotarcie do innych komputerów w naszej sieci LAN, a także do Internetu, musimy skonfigurować interfejs mostu u naszego hosta (np. br0 ),,

1. dodanie następującego wiersza do naszej głównej konfiguracji karty sieciowej (najprawdopodobniej /etc/sysconfig/network-scripts/ifcfg-enp0s3 ):

BRIDGE=br0

2. utworzenie pliku konfiguracyjnego dla br0 (/etc/sysconfig/network-scripts/ifcfg-br0 ) z tymi treściami (zwróć uwagę, że być może trzeba będzie zmienić adres IP, adres bramy i informacje DNS):

DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
IPADDR=192.168.0.18
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
NM_CONTROLLED=no
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=br0
ONBOOT=yes
DNS1=8.8.8.8
DNS2=8.8.4.4

3. w końcu, umożliwiając przekazywanie pakietów, tworząc, w /etc/sysctl.conf ,

net.ipv4.ip_forward = 1

i ładowanie zmian do bieżącej konfiguracji jądra:

# sysctl -p

Pamiętaj, że być może będziesz musiał powiedzieć firewalld , że ten rodzaj ruchu powinien być dozwolony. Pamiętaj, że możesz odwołać się do artykułu na ten temat w tej samej serii (Część 11: Kontrola ruchu sieciowego przy użyciu FirewallD i Iptables), jeśli potrzebujesz pomocy, aby to zrobić.