
Odstranění problémů při načítání operačního systému na serverech bez KVM je náročný úkol. Vytváříme si KVM-over-IP pomocí obnovovacího obrazu a virtuálního stroje.
V případě problémů s operačním systémem , správce nahrává obnovovací obraz a provádí potřebné práce. Tento způsob funguje skvěle, když je znám příčina selhání a obnovovací obraz i nainstalovaný operační systém na serveru patří do jedné rodiny. Pokud příčina selhání ještě není známa, je třeba sledovat průběh spouštění operačního systému.
Vzdálený KVM
Přístup ke konzoli serveru lze získat pomocí integrovaných prostředků, jako je IPMI nebo Intel® vPro™, nebo pomocí externích zařízení, nazývaných IP-KVM. Existují situace, kdy žádná z uvedených technologií není dostupná. To však není konec. Pokud lze server vzdáleně restartovat do obnovovacího obrazu na základě operačního systému rodiny Linux, lze rychle zřídit KVM-over-IP.
Obnovovací obraz představuje plnohodnotný operační systém, který je umístěn v operační paměti. Takto můžeme spouštět jakýkoli software, včetně virtuálních strojů (VM). To znamená, že můžeme spustit VM, ve které bude pracovat operační systém serveru. Přístup ke konzoli VM může být zajištěn například prostřednictvím VNC.
Pro spuštění operačního systému serveru uvnitř VM je nutné zadat disky serveru jako disky VM. V operačních systémech rodiny Linux jsou fyzické disky prezentovány jako bloková zařízení typu /dev/sdX, se kterými lze pracovat jako s obyčejnými soubory.
Některé hypervisory, jako QEMU a VirtualBox, umožňují ukládat data VM v „syrové“ podobě, tedy pouze data úložiště bez metadat hypervisoru. Tímto způsobem lze spustit VM s použitím fyzických disků serveru.
Tento způsob vyžaduje prostředky na spuštění obnovovacího obrazu a VM uvnitř něj. Avšak pokud je k dispozici čtyři a více gigabajtů operační paměti, nebude to problém.
Příprava prostředí
Jako virtuální stroj lze použít lehký a jednoduchý program , který obvykle není součástí obnovovacího obrazu, a proto by měl být nainstalován samostatně. Obnovovací obraz, který nabízíme klientům, je založen na , v němž se používá balíčkový manažer pacman.
Nejprve se ujistěte, že obnovovací obraz používá nejnovější verze softwaru. Kontrolu a aktualizaci všech komponent operačního systému lze provést následujícím příkazem:
pacman -Suy
Po aktualizaci je nutné nainstalovat QEMU. Příkaz na instalaci přes pacman bude vypadat takto:
pacman -S qemu
Zkontrolujeme, že qemu byla nainstalována správně:
root@sel-rescue ~ # qemu-system-x86_64 --verze
Verze emulátoru QEMU 4.0.0
Autorská práva (c) 2003-2019 Fabrice Bellard a vývojáři projektu QEMU
Pokud je vše v pořádku, pak je obnovovací obraz připraven k použití.
Spuštění virtuálního stroje
Nejprve je nutné určit množství zdrojů přidělených VM a zjistit cesty k fyzickým diskům. V našem případě přidělíme dvě jádra a dva gigabajty operační paměti virtuálnímu stroji a disky se nachází na cestě /dev/sda a /dev/sdb. Spustíme VM:
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
Trochu podrobněji o tom, co znamená každý z parametrů:
- -m 2048M — přidělujeme 2 GB operační paměti na VM;
- -net nic -net user — přidáváme jednoduché připojení k síti prostřednictvím hypervizoru s použitím NAT (Překlad síťových adres);
- -enable-kvm — zapínáme kompletní virtualizaci KVM (Kernel Virtual Machine);
- -cpu host — říkáme virtuálnímu procesoru, aby získal veškerou funkčnost procesoru serveru;
- -M pc — typ zařízení PC;
- -smp 2 — virtuální procesor musí být dvoujádrový;
- -vga std — vybíráme standardní grafickou kartu, která nepodporuje vysoká rozlišení obrazovky;
- -drive file=/dev/sda,format=raw,index=0,media=disk
- file=\/dev\/sdX — cesta k blokovému zařízení, které představuje disk serveru;
- format=raw — označujeme, že v uvedeném souboru jsou všechna data uložena v „syrovém“ formátu, tj. jako na disku;
- index=0 — číslo disku, musí se zvyšovat o jednotku pro každý následující disk;
- media=disk — virtuální stroj by měl rozpoznat toto úložiště jako disk;
- -vnc :0, password — spouštíme VNC server ve výchozím nastavení na 0.0.0.0:5900, jako autorizaci používáme heslo;
- -monitor stdio — komunikace administrátora s qemu bude probíhat prostřednictvím standardních vstupních a výstupních proudů.
Pokud je vše v pořádku, spustí se QEMU monitor:
QEMU 4.0.0 monitor - zadejte 'help' pro více informací
(qemu)
Uvedli jsme, že autorizace probíhá pomocí hesla, ale neuváděli jsme samo heslo. To lze provést zasláním příkazu change vnc password do QEMU monitoru. Důležité upozornění: heslo nemůže být delší než osm znaků.
(qemu) změnit vnc heslo
Heslo: ******
Poté se můžeme připojit jakýmkoli VNC klientem, například Remmina, na IP adresu našeho serveru se zadaným heslem.


Nyní nejen vidíme možné chyby během načítání, ale také s nimi můžeme bojovat.
Po dokončení prací je nutné vypnout virtuální stroj. To lze udělat buď uvnitř OS zasláním signálu k vypnutí, nebo vydáním příkazu system_powerdown v monitoru QEMU. To bude ekvivalentní jednorázovému stisknutí tlačítka pro vypnutí: operační systém uvnitř virtuálního stroje se plynule vypne.
Instalace operačního systému
Virtuální stroj má plný přístup k diskům serveru, a proto může být použit pro ruční instalaci operačního systému. Jediným omezením je množství operační paměti: ne vždy lze ISO obraz umístit do operační paměti. Vymezíme čtyři gigabajty v operační paměti pro uložení obrazu v /mnt:
mount -t tmpfs -o size=4G tmpfs /mnt
Také stáhneme instalační obraz operačního systému 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
Nyní můžeme spustit VM:
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
Přepínač -boot d nastavuje bootování z CD-ROM. Připojujeme se přes VNC klienta a vidíme bootloader FreeBSD.

Jelikož pro přístup na internet bylo použito získání adresy pomocí DHCP, může být po nastavování nutné spustit právě nainstalovaný systém a opravit síťová nastavení. V některých případech může být zapotřebí instalace ovladačů síťového adaptéru, protože síťová karta nainstalovaná na serveru a emulovaná ve VM se liší.
Závěr
Tento způsob organizace vzdáleného přístupu k konzoli serveru spotřebovává část zdrojů serveru, nicméně, neklade žádné zvláštní požadavky na hardwarové komponenty serveru, a tudíž může být proveden v prakticky jakýchkoli podmínkách. Použití takového řešení výrazně zjednodušuje diagnostiku softwarových chyb a obnovení funkčnosti vzdáleného serveru.
Zdroj: habr.com
