
Odstraňovanie problémov so spustením operačného systému na serveroch bez KVM nie je jednoduchá úloha. Vytvárame si KVM-over-IP prostredníctvom obnovovacieho obrazu a virtuálneho stroja.
V prípade problémov s operačným systémom , administrátor načíta obnovovací obraz a vykoná potrebné úpravy. Tento spôsob funguje veľmi dobre, ak je príčina zlyhania známa a obnovovací obraz a nainštalovaný operačný systém na serveri patrí do tej istej rodiny. Ak príčina zlyhania ešte nie je známa, je potrebné sledovať priebeh načítania operačného systému.
Vzdialený KVM
Prístup k konzole servera je možné získať pomocou zabudovaných prostriedkov, ako sú IPMI alebo Intel® vPro™, alebo pomocou externých zariadení nazývaných IP-KVM. Existujú situácie, keď nie sú všetky uvedené technológie dostupné. Avšak, to nie je koniec. Ak je server možné vzdialene reštartovať do obnovovacieho obrazu založeného na operačnom systéme Linux, je možné rýchlo zorganizovať KVM-over-IP.
Obnovovací obraz predstavuje kompletný operačný systém, ktorý je umiestnený v pamäti RAM. Takto môžeme spustiť akýkoľvek softvér, vrátane virtuálnych strojov (VM). To znamená, že môžeme spustiť VM, v ktorej bude pracovať operačný systém servera. Prístup ku konzole VM môže byť organizovaný napríklad cez VNC.
Na spustenie operačného systému servera vo vnútri VM je potrebné určiť disky servera ako disky VM. V operačných systémoch rodiny Linux sa fyzické disky predstavujú ako blokové zariadenia typu /dev/sdX, s ktorými je možné pracovať ako s bežnými súbormi.
Niektoré hypervízory, ako QEMU a VirtualBox, umožňujú uchovávať dáta VM v „surových“ formátoch, teda len dáta úložiska bez metadát hypervízora. Takto je možné spustiť VM s použitím fyzických diskov servera.
Tento spôsob si vyžaduje zdroje na spustenie obnovovacieho obrazu a VM vo vnútri neho. Avšak, ak máte štyri a viac gigabajtov RAM, to nebude problém.
Príprava prostredia
Ako virtuálny stroj je možné použiť ľahký a jednoduchý program , ktorý nie je zvyčajne súčasťou obnovovacieho obrazu, preto by mal byť nainštalovaný oddelene. Obnovovací obraz, ktorý ponúkame klientom, je založený na , v ktorom sa používa balíkový manažér pacman.
Najprv je potrebné zabezpečiť, aby obraz obnovy používal najnovšie verzie softvéru. Kontrolu a aktualizáciu všetkých komponentov operačného systému môžeme vykonať nasledujúcou príkazom:
pacman -Suy
Po aktualizácii je potrebné nainštalovať QEMU. Príkaz na inštaláciu cez pacman bude vyzerať takto:
pacman -S qemu
Skontrolujeme, či sa qemu nainštalovalo správne:
root@sel-rescue ~ # qemu-system-x86_64 --verzia
QEMU emulátor verzia 4.0.0
Autorské práva (c) 2003-2019 Fabrice Bellard a vývojári projektu QEMU
Ak je všetko v poriadku, obraz obnovy je pripravený na použitie.
Spustenie virtuálneho stroja
Najprv musíme určiť množstvo zdrojov pridelených VM a zistiť cesty k fyzickým diskov. V našom prípade pridelíme virtuálnemu stroju dva procesorové jadrá a dva gigabajty RAM, a disky sa nachádzajú na ceste /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 podrobnejšie o tom, čo znamenajú jednotlivé parametre:
- -m 2048M — pridelenie 2 GB RAM na VM;
- -net nic -net user — pridanie jednoduchého pripojenia k sieti cez hypervízor s použitím NAT (Network Address Translation);
- -enable-kvm — aktivácia plnej virtualizácie KVM (Kernel Virtual Machine);
- -cpu host — hovoríme virtuálnemu procesoru, aby získal všetky funkcie procesora servera;
- -M pc — typ zariadenia PC;
- -smp 2 — virtuálny procesor by mal byť dvojjadrový;
- -vga std — vyberáme štandardnú grafickú kartu, ktorá nepodporuje vysoké rozlíšenia obrazovky;
- -drive file=/dev/sda,format=raw,index=0,media=disk
- file=/dev/sdX — cesta k blokovému zariadeniu predstavujúcemu disk servera;
- format=raw — označujeme, že v uvedenom súbore sú všetky údaje v "surovom" formáte, teda ako na disku;
- index=0 — číslo disku, malo by sa zvyšovať o jednotku pre každý nasledujúci disk;
- media=disk — virtuálny stroj by mal rozpoznať toto úložisko ako disk;
- -vnc :0, password — spúšťame VNC server predvolene na 0.0.0.0:5900, ako autentifikáciu používame heslo;
- -monitor stdio — komunikácia administrátora s qemu sa bude uskutočňovať cez štandardné vstupno-výstupné prúdy.
Ak je všetko v poriadku, QEMU monitor sa spustí:
QEMU 4.0.0 monitor - zadajte 'help' pre ďalšie informácie
(qemu)
Uvedli sme, že autentifikácia prebieha cez heslo, ale nezadali sme samotné heslo. Môžeme to urobiť zaslaním príkazu change vnc password v QEMU monitore. Dôležitá poznámka: heslo nemôže byť dlhšie ako osem znakov.
(qemu) zmeňte VNC heslo
Heslo: ******
Po tomto sa môžeme pripojiť akýmkoľvek VNC klientom, napríklad Remmina, podľa IP adresy nášho servera s uvedeným heslom.


Teraz nielen vidíme možné chyby počas zavádzania, ale môžeme s nimi aj bojovať.
Po dokončení práce je potrebné vypnúť virtuálny stroj. Môžete to urobiť buď priamo v operačnom systéme, poslaním signálu na vypnutie, alebo zadaním príkazu system_powerdown v QEMU monitore. To bude ekvivalentné jednému stlačeniu tlačidla na vypnutie: operačný systém vo virtuálnom stroji sa hladko ukončí.
Inštalácia operačného systému
Virtuálny stroj má plný prístup k diskom servera, a preto ho možno využiť na manuálnu inštaláciu operačného systému. Jediné obmedzenie spočíva v množstve operačnej pamäte: nie vždy je možné uložiť ISO obraz do operačnej pamäte. Pridelíme do operačnej pamäte štyri gigabajty na uchovanie obrazu v /mnt:
mount -t tmpfs -o size=4G tmpfs /mnt
Takisto načítame inštalač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
Teraz môžeme spustiť 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
Zástavka -boot d nastavuje spustenie z CD mechaniky. Pripojíme sa pomocou VNC klienta a vidíme zavádzač FreeBSD.

Keďže na prístup k internetu sa používalo získavanie adresy cez DHCP, bude možno po nastavení potrebné bootovať do práve nainštalovaného systému a opraviť sieťové nastavenia. V niektorých prípadoch môže byť potrebná inštalácia ovládačov sieťového adaptéra, pretože sieťová karta nainštalovaná na serveri a emulovaná vo VM sa líši.
Záver
Tento spôsob organizácie vzdialeného prístupu k konzole servera spotrebuje časť zdrojov servera, avšak nekladie žiadne osobitné požiadavky na hardvérovú výbavu servera, a preto môže byť realizovaný za prakticky akýchkoľvek podmienok. Použitie takéhoto riešenia výrazne uľahčuje diagnostiku softvérových závad a obnovenie funkčnosti vzdialeného servera.
Zdroj: habr.com
