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
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
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.
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.
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