KVM jest oprogramowaniem open source do wirtualizacji sprzętu, dzięki któremu możemy tworzyć i uruchamiać wiele maszyn wirtualnych opartych na Linuksie i Windows jednocześnie. KVM jest znany jako maszyna wirtualna oparta na jądrze, ponieważ kiedy instalujemy pakiet KVM, moduł KVM jest ładowany do bieżącego jądra i zamienia naszą maszynę linuksową w hypervisor.
W tym poście najpierw zademonstrujemy, jak możemy zainstalować hypervisor KVM na CentOS 7.x i RHEL 7.x, a następnie spróbujemy zainstalować maszyny wirtualne.
Przed przystąpieniem do instalacji KVM sprawdźmy, czy procesor systemu obsługuje sprzętową wirtualizację.
Wykonaj polecenie beneath z konsoli.
# grep -E '(vmx|svm)' /proc/cpuinfo
Powinniśmy otrzymać słowo vmx lub svm na wyjściu, w przeciwnym razie procesor nie obsługuje wirtualizacji.
Krok:1 Zainstaluj KVM i powiązane z nim pakiety
Uruchom następujące polecenie yum, aby zainstalować KVM i powiązane z nim pakiety.
# yum install qemu-kvm qemu-img virt-manager libvirt libvirt-python libvirt-client virt-install virt-viewer bridge-utils
Uruchom i włącz usługę libvirtd
# systemctl start libvirtd# systemctl enable libvirtd
Uruchom poniższe polecenie, aby sprawdzić, czy moduł KVM jest załadowany, czy nie
# lsmod | grep kvmkvm_intel 162153 0kvm 525409 1 kvm_intel#
W przypadku minimalnej instalacji CentOS 7 i RHEL 7, wtedy virt-manger nie uruchomi się, aby to zrobić musisz zainstalować pakiet x-window.
# yum install "@X Window System" xorg-x11-xauth xorg-x11-fonts-* xorg-x11-utils -y
Reboot serwera i następnie spróbuj uruchomić virt manager.
Krok:2 Uruchom Virt Manager
Virt Manager jest graficznym narzędziem, dzięki któremu możemy instalować i zarządzać wirtualnymi maszynami. Aby uruchomić menedżera wirtualnego wpisz polecenie 'virt-manager’ z terminala.
# virt-manager
Krok:3 Konfiguracja interfejsu mostu
Przed rozpoczęciem tworzenia maszyn wirtualnych, najpierw stwórzmy interfejs mostu. Interfejs mostu jest wymagany, jeśli chcesz uzyskać dostęp do maszyn wirtualnych spoza sieci hypervisor.
# cd /etc/sysconfig/network-scripts/# cp ifcfg-eno49 ifcfg-br0#
W poleceniu cp zastąp nazwę interfejsu, który pasuje do Twojego systemu, a następnie edytuj plik Interface i ustaw następujące elementy:
# vi ifcfg-eno49TYPE=EthernetBOOTPROTO=staticDEVICE=eno49ONBOOT=yesBRIDGE=br0
Edytuj plik Bridge (ifcfg-br0) i ustaw następujące elementy:
# vi ifcfg-br0TYPE=BridgeBOOTPROTO=staticDEVICE=br0ONBOOT=yesIPADDR=192.168.10.21NETMASK=255.255.255.0GATEWAY=192.168.10.1DNS1=192.168.10.11
Zastąp adres IP i dane serwera DNS zgodnie z konfiguracją.
Restart usługi menedżera sieci, aby włączyć interfejs mostu.
# systemctl restart NetworkManager#
Uwaga: Domyślnie, w CentOS 7 / RHEL 7 usługa menedżera sieci jest włączona i jeśli dokonano zmian w plikach sieciowych to musimy ponownie uruchomić usługę menedżera sieci, aby zmiany weszły w życie. W przypadku, gdy usługa Network Manager jest wyłączona i zatrzymana, możemy użyć usługi sieciowej (systemctl restart network)
Sprawdź interfejs Bridge używając poniższego polecenia :
# ip addr show br0
Krok:4 Rozpocznij tworzenie maszyn wirtualnych.
Teraz utwórz maszynę wirtualną albo z linii poleceń używając polecenia 'virt-install’ albo z GUI (virt-manager).
Utwórzmy maszynę wirtualną „Windows Server 2012 R2” używając virt-manager.
Uruchom „virt-manager”
Wejdź do opcji Plik, kliknij na „Nowa maszyna wirtualna”
Będziemy używać pliku ISO jako nośnika instalacji. W następnym kroku określ ścieżkę dostępu do pliku ISO.
Kliknij na Forward.
Sprecyzuj zasoby obliczeniowe : RAM i CPU zgodnie z konfiguracją.
Kliknij na Forward, aby kontynuować.
Wybierz rozmiar pamięci masowej maszyny wirtualnej, w moim przypadku używam 25G.
W następnym kroku Określ nazwę maszyny wirtualnej i wybierz sieć jako ’ Bridge bro’
Kliknij na Finish, aby rozpocząć instalację.
Postępuj zgodnie z instrukcjami na ekranie i zakończ instalację.
Tworzenie maszyny wirtualnej z wiersza poleceń:
Maszyny wirtualne mogą być tworzone również z konsoli za pomocą polecenia 'virt-install’. W poniższym przykładzie przechodzę do maszyny wirtualnej Ubuntu 16.04 LTS.
# virt-install --name=Ubuntu-16-04 --file=/var/lib/libvirt/images/ubuntu16-04.dsk --file-size=20 --nonsparse --graphics spice --vcpus=2 --ram=2048 --cdrom=ubuntu-16.04-server-amd64.iso --network bridge=br0 --os-type=linux --os-variant=genericStarting install...Allocating 'ubuntu16-04.dsk' | 20 GB 00:00:00Creating domain...
Postępuj zgodnie z instrukcją i zakończ instalację.
W powyższym poleceniu 'virt-install’ użyliśmy następujących opcji :
- -name = <Nazwa maszyny wirtualnej>
- -file = <Lokalizacja gdzie będzie przechowywany plik dyskowy naszej maszyny wirtualnej >
- -file-size = < Rozmiar maszyny wirtualnej, w moim przypadku jest to 20GB >
- -nonsparse = < Przydziel całą przestrzeń dyskową podczas tworzenia>
- -graphics = < Określ narzędzie graficzne dla instalacji interaktywnej, w powyższym przykładzie używam spice >
- -vcpu = < liczba wirtualnych CPU dla maszyny >
- -ram = < rozmiar pamięci RAM dla wirtualnej maszyny >
- -cdrom = < wirtualny CD ROM, który określa media instalacyjne jak plik ISO >
- -network = < jest używany do określenia sieci, której będziemy używać dla wirtualnej maszyny, w tym przykładzie jestem bridge interface>
- -os-type = < typ systemu operacyjnego jak linux i window>
- -os-variant= <KVM utrzymuje warianty OS jak 'fedora18′, 'rhel6′ i 'winxp’ , ta opcja jest opcjonalna i jeśli nie jesteś pewien wariantu OS możesz wspomnieć o nim jako generic>
Po zakończeniu instalacji możemy uzyskać dostęp do konsoli maszyny wirtualnej z 'virt-manager’ jak pokazano poniżej.
To wszystko, podstawowa instalacja i konfiguracja hypervisora KVM została zakończona.