IP-KVM праз QEMU

IP-KVM праз QEMU

Ухіленне няспраўнасцяў пры загрузцы аперацыйнай сістэмы на серверах без KVM - няпросты занятак. Ствараем сабе KVM-over-IP праз выяву аднаўлення і віртуальную машыну.

У выпадку ўзнікнення праблем з аперацыйнай сістэмай на выдаленым серверы, адміністратар загружае выяву аднаўлення і праводзіць неабходныя працы. Такі спосаб выдатна працуе, калі чыннік збою вядомая, а выява ўзнаўлення і ўсталяваная на серверы аперацыйная сістэма з аднаго сямейства. Калі чыннік збою яшчэ не вядомая, неабходна паназіраць за ходам загрузкі аперацыйнай сістэмы.

Выдалены KVM

Атрымаць доступ да кансолі сервера можна з дапамогай убудаваных сродкаў, такіх як IPMI ці Intel® vPro™, або з дапамогай вонкавых прылад, названых IP-KVM. Існуюць сітуацыі, у якіх усе з пералічаных тэхналогій недаступныя. Аднак гэта не канец. Калі сервер можна выдалена перазагрузіць у выяву ўзнаўлення на базе аперацыйнай сістэмы сямейства Linux, то можна хутка арганізаваць KVM-over-IP.

Выява ўзнаўлення ўяўляе сабой паўнавартасную аперацыйную сістэму, якая размяшчаецца ў аператыўнай памяці. Такім чынам, мы можам запускаць любое праграмнае забеспячэнне, у тым ліку і віртуальныя машыны (ВМ). Гэта значыць можна запусціць ВМ, усярэдзіне якой будзе працаваць аперацыйная сістэма сервера. Доступ да кансолі ВМ можа быць арганізаваны, напрыклад, праз VNC.

Для запуску аперацыйнай сістэмы сервера ўсярэдзіне ВМ неабходна паказаць дыскі сервера ў якасці дыскаў ВМ. У аперацыйных сістэмах сямейства Linux фізічныя дыскі ўяўляюцца блокавымі прыладамі выгляду / DEV / SDx, з якімі можна працаваць як са звычайнымі файламі.

Некаторыя гіпервізары, такія як QEMU і VirtualBox дазваляюць захоўваць дадзеныя ВМ у "волкім" выглядзе, гэта значыць толькі дадзеныя сховішчы без метададзеных гіпервізара. Такім чынам, ВМ можна запусціць з выкарыстаннем фізічных кружэлак сервера.

Падобны спосаб патрабуе рэсурсаў на запуск выявы аднаўлення і ВМ усярэдзіне яго. Аднак, пры наяўнасці чатырох і больш гігабайт аператыўнай памяці гэта не стане праблемай.

Падрыхтоўка асяроддзя

У якасці віртуальнай машыны можна выкарыстоўваць легкаважную і простую праграму QEMU, якая часцей за ўсё не з'яўляецца часткай выявы аднаўлення, таму павінна быць усталявана асобна. Выява аднаўлення, які мы прапануем кліентам, заснаваны на Arch Linux, у якім выкарыстоўваецца пакетны менеджэр Клічко.

Перш неабходна пераканацца, што выява аднаўлення выкарыстоўвае апошнія версіі праграмнага забеспячэння. Выканаць праверку і абнавіць усе кампаненты АС можна наступнай камандай:

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

Калі ўсё так, то выява ўзнаўлення готаў да працы.

Запуск віртуальнай машыны

Перш неабходна вызначыцца з колькасцю рэсурсаў, што выдзяляюцца ВМ, і высветліць шляхі да фізічных дыскаў. У нашым выпадку мы вылучым два ядры і два гігабайта аператыўнай памяці віртуальнай машыне, а дыскі знаходзяцца па шляху / Dev / ПДР и / DEV / SDB. Запусцім ВМ:

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 ГБ аператыўнай памяці на ВМ;
  • -net nic -net user - дадаем простае падлучэнне да сеткі праз гіпервізар з выкарыстаннем NAT (Network Address Translation);
  • -enable-kvm - уключаем поўную віртуалізацыю KVM (Kernel Virtual Machine);
  • -cpu host - які гаворыцца віртуальнаму працэсару атрымаць увесь функцыянал працэсара сервера;
  • -M pc - тып абсталявання PC;
  • -smp 2 - Віртуальны працэсар павінен быць двух'ядравым;
  • -vga std - выбіраемы стандартную відэакарту, якая не падтрымлівае вялікія дазволы экрана;
  • -drive file=/dev/sda,format=raw,index=0,media=disk
    • file=/dev/sdX - шлях да блокавай прылады, які прадстаўляе дыск сервера;
    • format=raw - адзначаем, што ў паказаным файле ўсе дадзеныя ляжаць у "волкім" выглядзе, гэта значыць як на дыску;
    • індэкс=0 - нумар дыска, павінен павялічвацца для кожнага наступнага дыска на адзінку;
    • media=disk - Віртуальная машына павінна распазнаць гэта сховішча як дыск;
  • -vnc :0, password - запускаем VNC-сервер па змаўчанні на 0.0.0.0:5900, у якасці аўтарызацыі выкарыстаем пароль;
  • -monitor 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-манітор. Гэта будзе эквівалентна аднаразоваму націску кнопкі выключэння: аперацыйная сістэма ўсярэдзіне віртуальнай машыны плыўна завершыцца.

Ўстаноўка аперацыйнай сістэмы

Віртуальная машына мае поўны доступ да дыскаў сервера і таму можа быць скарыстана для ўсталёўкі аперацыйнай сістэмы ўручную. Адзінае абмежаванне заключаецца ў колькасці аператыўнай памяці: не заўсёды ISO-выява можна размясціць у аператыўнай памяці. Вылучым у аператыўнай памяці чатыры гігабайта для захоўвання выявы ў / мнт:

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

Цяпер можна запускаць ВМ:

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

сцяг -boot d устанаўлівае загрузку з CD-прывада. Падлучаемся VNC-кліентам і бачны загрузнік FreeBSD.

IP-KVM праз QEMU

Так як для доступу ў інтэрнэт выкарыстоўвалася атрыманне адраса па DHCP, магчыма, пасля наладкі будзе неабходна загрузіцца ў толькі што ўсталяваную сістэму і выправіць сеткавыя наладкі. У некаторых выпадках можа запатрабавацца ўсталёўка драйвераў сеткавага адаптара, бо сеткавая карта, усталяваная ў серверы і якая эмулюецца ў ВМ адрозніваюцца.

Заключэнне

Дадзены спосаб арганізацыі выдаленага доступу да кансолі сервера спажывае частку рэсурсаў сервера, аднак, не прад'яўляе ніякіх асаблівых патрабаванняў да апаратнага складніку сервера, а таму можа быць выкананы ў практычна любых умовах. Выкарыстанне такога рашэння дазваляе значна аблегчыць дыягностыку праграмных няспраўнасцяў і аднаўленне працаздольнасці выдаленага сервера.

Крыніца: habr.com

Дадаць каментар