IP-KVM poprzez QEMU

IP-KVM poprzez QEMU

Rozwiązywanie problemów z uruchamianiem systemu operacyjnego na serwerach bez KVM nie jest łatwym zadaniem. Tworzymy dla siebie KVM-over-IP za pomocą obrazu odzyskiwania i maszyny wirtualnej.

W przypadku problemów z systemem operacyjnym na zdalnym serwerze, administrator pobiera obraz odzyskiwania i wykonuje niezbędne prace. Metoda ta świetnie się sprawdza, gdy znana jest przyczyna awarii, a obraz odzyskiwania i system operacyjny zainstalowany na serwerze pochodzą z tej samej rodziny. Jeśli przyczyna awarii nie jest jeszcze znana, należy monitorować postęp ładowania systemu operacyjnego.

Zdalny KVM

Dostęp do konsoli serwera można uzyskać za pomocą wbudowanych narzędzi, takich jak IPMI lub Intel® vPro™, lub za pośrednictwem urządzeń zewnętrznych o nazwie IP-KVM. Zdarzają się sytuacje, w których wszystkie wymienione technologie nie są dostępne. Jednak to nie koniec. Jeśli serwer można zdalnie uruchomić ponownie i utworzyć obraz odzyskiwania oparty na systemie operacyjnym Linux, można szybko zorganizować KVM-over-IP.

Obraz odzyskiwania to pełnoprawny system operacyjny, który znajduje się w pamięci RAM. Dzięki temu możemy uruchomić dowolne oprogramowanie, w tym maszyny wirtualne (VM). Oznacza to, że możesz uruchomić maszynę wirtualną, na której będzie działał system operacyjny serwera. Dostęp do konsoli VM można zorganizować np. poprzez VNC.

Aby uruchomić system operacyjny serwera na maszynie wirtualnej, należy określić dyski serwera jako dyski maszyny wirtualnej. W systemach operacyjnych z rodziny Linux dyski fizyczne są reprezentowane przez urządzenia blokowe w postaci / dev / sdX, z którymi można pracować jak ze zwykłymi plikami.

Niektóre hypervisory, takie jak QEMU i VirtualBox, umożliwiają przechowywanie danych maszyny wirtualnej w „surowej” formie, to znaczy jedynie przechowywanie danych bez metadanych hypervisora. Dzięki temu maszynę wirtualną można uruchomić przy użyciu dysków fizycznych serwera.

Ta metoda wymaga zasobów, aby uruchomić obraz odzyskiwania i znajdującą się w nim maszynę wirtualną. Jeśli jednak masz cztery lub więcej gigabajtów pamięci RAM, nie będzie to stanowić problemu.

Przygotowanie środowiska

Możesz użyć lekkiego i prostego programu jako maszyny wirtualnej QEMU, który najczęściej nie jest częścią obrazu odzyskiwania i dlatego należy go zainstalować osobno. Na nim opiera się obraz odzyskiwania, który oferujemy klientom Arch Linux, który używa menedżera pakietów pacman.

Pierwszą rzeczą, którą musisz zrobić, to upewnić się, że obraz odzyskiwania korzysta z najnowszego oprogramowania. Możesz sprawdzić i zaktualizować wszystkie komponenty systemu operacyjnego za pomocą następującego polecenia:

pacman -Suy

Po aktualizacji musisz zainstalować QEMU. Polecenie instalacji za pośrednictwem pacmana będzie wyglądać następująco:

pacman -S qemu

Sprawdźmy, czy qemu jest poprawnie zainstalowane:

root@sel-rescue ~ # qemu-system-x86_64 --version
QEMU emulator version 4.0.0
Copyright (c) 2003-2019 Fabrice Bellard and the QEMU Project developers

Jeśli wszystko jest w porządku, obraz odzyskiwania jest gotowy.

Uruchamianie maszyny wirtualnej

Najpierw musisz zdecydować o ilości zasobów przydzielonych maszynie wirtualnej i znaleźć ścieżki do dysków fizycznych. W naszym przypadku przydzielimy maszynie wirtualnej dwa rdzenie i dwa gigabajty pamięci RAM, a dyski zostaną umieszczone po drodze / Dev / sda и / dev / sdb. Uruchommy maszynę wirtualną:

qemu-system-x86_64
-m 2048M
-net nic -net user
-enable-kvm
-cpu host,nx
-M pc
-smp 2
-vga std
-drive file=/dev/sda,format=raw,index=0,media=disk
-drive file=/dev/sdb,format=raw,index=1,media=disk
-vnc :0,password
-monitor stdio

Trochę więcej szczegółów na temat znaczenia każdego z parametrów:

  • -m 2048M — przydziel maszynie wirtualnej 2 GB pamięci RAM;
  • -net nic -net użytkownik — dodanie prostego połączenia z siecią poprzez hypervisor wykorzystujący NAT (Network Address Translation);
  • -włącz kvm — umożliwia pełną wirtualizację KVM (Kernel Virtual Machine);
  • -host procesora — mówimy procesorowi wirtualnemu, aby uzyskał całą funkcjonalność procesora serwerowego;
  • -M PC — rodzaj sprzętu komputerowego;
  • -smp2 — procesor wirtualny musi być dwurdzeniowy;
  • -vga std — wybierz standardową kartę graficzną, która nie obsługuje dużych rozdzielczości ekranu;
  • -drive plik=/dev/sda,format=raw,index=0,media=dysk
    • plik=/dev/sdX — ścieżka do urządzenia blokowego reprezentującego dysk serwera;
    • format=surowy — zauważamy, że w podanym pliku wszystkie dane są w formie „surowej”, czyli jak na dysku;
    • indeks=0 — numer dysku, należy zwiększyć o jeden dla każdego kolejnego dysku;
    • nośnik = dysk — maszyna wirtualna musi rozpoznać ten magazyn jako dysk;
  • -vnc:0, hasło — domyślnie uruchom serwer VNC o godzinie 0.0.0.0:5900, użyj hasła jako autoryzacji;
  • -monitoruj stdio — komunikacja pomiędzy administratorem a qemu będzie odbywać się poprzez standardowe strumienie wejścia/wyjścia.

Jeśli wszystko jest w porządku, monitor QEMU uruchomi się:

QEMU 4.0.0 monitor - type 'help' for more information
(qemu)

Wskazaliśmy, że autoryzacja odbywa się przy użyciu hasła, ale nie wskazaliśmy samego hasła. Można to zrobić, wysyłając polecenie zmiany hasła vnc do monitora QEMU. Ważna uwaga: Hasło nie może mieć więcej niż osiem znaków.

(qemu) change vnc password
Password: ******

Następnie możemy połączyć się z dowolnym klientem VNC, na przykład Remminą, używając adresu IP naszego serwera z podanym przez nas hasłem.

IP-KVM poprzez QEMU

IP-KVM poprzez QEMU

Teraz nie tylko widzimy możliwe błędy już na etapie ładowania, ale także potrafimy sobie z nimi poradzić.

Po zakończeniu należy wyłączyć maszynę wirtualną. Można to zrobić wewnątrz systemu operacyjnego, wysyłając sygnał do zamknięcia lub wydając polecenie wyłączenie_systemu w monitorze QEMU. Będzie to równoznaczne z jednokrotnym naciśnięciem przycisku zamykania: system operacyjny wewnątrz maszyny wirtualnej zostanie płynnie zamknięty.

Instalacja systemu operacyjnego

Maszyna wirtualna ma pełny dostęp do dysków serwera, dzięki czemu można ją wykorzystać do ręcznej instalacji systemu operacyjnego. Jedynym ograniczeniem jest ilość pamięci RAM: obraz ISO nie zawsze może zostać umieszczony w pamięci RAM. Przydzielmy cztery gigabajty pamięci RAM do przechowywania obrazu / mnt:

mount -t tmpfs -o size=4G tmpfs /mnt

Pobierzemy także obraz instalacyjny systemu operacyjnego FreeBSD 12.0:

wget -P /mnt ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/ISO-IMAGES/12.0/FreeBSD-12.0-RELEASE-amd64-bootonly.iso

Teraz możesz uruchomić maszynę wirtualną:

qemu-system-x86_64
-m 2048M
-net nic -net user
-enable-kvm
-cpu host,nx
-M pc
-smp 2
-vga std
-drive file=/dev/sda,format=raw,index=0,media=disk
-drive file=/dev/sdb,format=raw,index=1,media=disk
-vnc :0,password
-monitor stdio
-cdrom /mnt/FreeBSD-12.0-RELEASE-amd64-bootonly.iso
-boot d

Flaga -rozruch d instaluje bootowanie z napędu CD. Łączymy się z klientem VNC i widzimy program ładujący FreeBSD.

IP-KVM poprzez QEMU

Ponieważ do uzyskania dostępu do Internetu wykorzystano uzyskanie adresu poprzez DHCP, po konfiguracji może zaistnieć konieczność uruchomienia nowo zainstalowanego systemu i skorygowania ustawień sieciowych. W niektórych przypadkach może być konieczna instalacja sterowników karty sieciowej, ponieważ karta sieciowa zainstalowana na serwerze i ta emulowana w maszynie wirtualnej są różne.

wniosek

Ta metoda organizacji zdalnego dostępu do konsoli serwera pochłania część zasobów serwera, nie nakłada jednak żadnych specjalnych wymagań na sprzęt serwera, dlatego może być realizowana w niemal każdych warunkach. Zastosowanie tego rozwiązania znacznie ułatwia diagnozowanie usterek oprogramowania i przywracanie funkcjonalności zdalnego serwera.

Źródło: www.habr.com

Dodaj komentarz