IP-KVM чрез QEMU

IP-KVM чрез QEMU

Отстраняването на проблеми при зареждане на операционната система на сървъри без KVM не е лесна задача. Ние създаваме KVM-over-IP за себе си чрез изображение за възстановяване и виртуална машина.

При проблеми с операционната система на отдалечен сървър, администраторът изтегля изображението за възстановяване и извършва необходимата работа. Този метод работи чудесно, когато причината за повредата е известна и изображението за възстановяване и операционната система, инсталирана на сървъра, са от едно и също семейство. Ако причината за повредата все още не е известна, трябва да наблюдавате напредъка на зареждането на операционната система.

Дистанционен KVM

Можете да получите достъп до сървърната конзола с помощта на вградени инструменти като IPMI или Intel® vPro™ или чрез външни устройства, наречени IP-KVM. Има ситуации, при които всички изброени технологии не са налични. Това обаче не е краят. Ако сървърът може да бъде дистанционно рестартиран в образ за възстановяване, базиран на операционна система Linux, тогава KVM-over-IP може бързо да се организира.

Изображението за възстановяване е пълноценна операционна система, която се намира в RAM. По този начин можем да стартираме всякакъв софтуер, включително виртуални машини (VM). Тоест можете да стартирате виртуална машина, в която ще работи сървърната операционна система. Достъпът до VM конзолата може да бъде организиран, например, чрез VNC.

За да стартирате сървърната операционна система във VM, трябва да посочите сървърните дискове като VM дискове. В операционните системи от фамилията Linux физическите дискове са представени от блокови устройства от формата / Сътрудничество / SDX, с които може да се работи като с обикновени файлове.

Някои хипервайзори, като QEMU и VirtualBox, ви позволяват да съхранявате VM данни в „сурова“ форма, тоест само данни за съхранение без метаданни на хипервайзор. По този начин виртуалната машина може да бъде стартирана с помощта на физическите дискове на сървъра.

Този метод изисква ресурси за стартиране на изображението за възстановяване и виртуалната машина в него. Ако обаче имате четири или повече гигабайта RAM, това няма да е проблем.

Подготовка на околната среда

Можете да използвате лека и проста програма като виртуална машина QEMU, който най-често не е част от изображението за възстановяване и следователно трябва да се инсталира отделно. Изображението за възстановяване, което предлагаме на клиентите, се базира на Arch Linux, който използва мениджър на пакети Pacman.

Първото нещо, което трябва да направите, е да се уверите, че изображението за възстановяване използва най-новия софтуер. Можете да проверите и актуализирате всички компоненти на ОС със следната команда:

pacman -Suy

След актуализацията трябва да инсталирате QEMU. Командата за инсталиране чрез pacman ще изглежда така:

pacman -S qemu

Нека проверим дали qemu е инсталиран правилно:

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

Ако всичко е така, тогава изображението за възстановяване е готово за работа.

Стартиране на виртуална машина

Първо, трябва да вземете решение за количеството ресурси, разпределени за VM, и да разберете пътищата до физическите дискове. В нашия случай ще разпределим две ядра и два гигабайта RAM на виртуалната машина, а дисковете са разположени по пътя / Dev / SDA и / Сътрудничество / SDB. Да стартираме 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

Малко повече подробности за това какво означава всеки от параметрите:

  • -m 2048M — разпределете 2 GB RAM за VM;
  • -net nic -net потребител — добавяне на проста връзка към мрежата през хипервайзор с помощта на NAT (превод на мрежови адреси);
  • -enable-kvm — разрешаване на пълна виртуализация на KVM (Kernel Virtual Machine);
  • -cpu хост — казваме на виртуалния процесор да получи цялата функционалност на сървърния процесор;
  • -M компютър — тип компютърно оборудване;
  • -smp 2 — виртуалният процесор трябва да е двуядрен;
  • -vga std — изберете стандартна видеокарта, която не поддържа големи разделителни способности на екрана;
  • -drive file=/dev/sda,format=raw,index=0,media=disk
    • файл=/dev/sdX — път до блоковото устройство, представляващо сървърния диск;
    • формат=суров — отбелязваме, че в посочения файл всички данни са в „сурова“ форма, т.е. като на диск;
    • индекс = 0 — номер на диска, трябва да се увеличава с единица за всеки следващ диск;
    • медия=диск — виртуалната машина трябва да разпознае това хранилище като диск;
  • -vnc:0, парола — стартирайте VNC сървъра по подразбиране на 0.0.0.0:5900, използвайте парола като оторизация;
  • -монитор stdio — комуникацията между администратора и qemu ще се осъществява чрез стандартни входно/изходни потоци.

Ако всичко е наред, мониторът QEMU ще стартира:

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

Посочихме, че упълномощаването става с помощта на парола, но не посочихме самата парола. Това може да стане чрез изпращане на командата change vnc password към QEMU монитора. Важна забележка: Паролата не може да бъде повече от осем знака.

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

След това можем да се свържем с всеки VNC клиент, например Remmina, използвайки IP адреса на нашия сървър с паролата, която посочихме.

IP-KVM чрез QEMU

IP-KVM чрез QEMU

Сега не само виждаме възможни грешки на етапа на зареждане, но и можем да се справим с тях.

Когато приключите, трябва да изключите виртуалната машина. Това може да стане или вътре в операционната система чрез изпращане на сигнал за изключване или чрез подаване на командата system_powerdown в монитора QEMU. Това ще бъде еквивалентно на еднократно натискане на бутона за изключване: операционната система във виртуалната машина ще се изключи плавно.

Инсталиране на операционна система

Виртуалната машина има пълен достъп до дисковете на сървъра и следователно може да се използва за ръчно инсталиране на операционната система. Единственото ограничение е количеството RAM: ISO изображението не винаги може да бъде поставено в RAM. Нека отделим четири гигабайта RAM, за да съхраним изображението / mnt:

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

Ще изтеглим и инсталационния образ на операционната система 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

Сега можете да стартирате 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

флаг -обувка d инсталира зареждане от CD устройство. Свързваме се с VNC клиент и виждаме буутлоудъра на FreeBSD.

IP-KVM чрез QEMU

Тъй като получаването на адрес чрез DHCP се използва за достъп до интернет, след конфигуриране може да се наложи да стартирате новоинсталираната система и да коригирате мрежовите настройки. В някои случаи може да е необходимо да инсталирате драйвери за мрежов адаптер, тъй като мрежовата карта, инсталирана в сървъра, и тази, емулирана във VM, са различни.

Заключение

Този метод за организиране на отдалечен достъп до сървърната конзола изразходва част от ресурсите на сървъра, но не налага никакви специални изисквания към хардуера на сървъра и следователно може да се прилага при почти всякакви условия. Използването на това решение прави много по-лесно диагностицирането на софтуерни грешки и възстановяването на функционалността на отдалечен сървър.

Източник: www.habr.com

Добавяне на нов коментар