IP-KVM sa pamamagitan ng QEMU

IP-KVM sa pamamagitan ng QEMU

Ang pag-troubleshoot ng mga problema sa boot ng operating system sa mga server na walang KVM ay hindi isang madaling gawain. Gumagawa kami ng KVM-over-IP para sa aming sarili sa pamamagitan ng isang recovery image at isang virtual machine.

Sa kaso ng mga problema sa operating system sa isang malayuang server, dina-download ng administrator ang imahe sa pagbawi at isinasagawa ang kinakailangang gawain. Ang pamamaraang ito ay mahusay na gumagana kapag ang sanhi ng pagkabigo ay kilala, at ang imahe ng pagbawi at ang operating system na naka-install sa server ay mula sa parehong pamilya. Kung ang sanhi ng pagkabigo ay hindi pa alam, kailangan mong subaybayan ang pag-unlad ng paglo-load ng operating system.

Malayong KVM

Maa-access mo ang server console gamit ang mga built-in na tool gaya ng IPMI o Intel® vPro™, o sa pamamagitan ng mga external na device na tinatawag na IP-KVM. May mga sitwasyon kung saan hindi available ang lahat ng nakalistang teknolohiya. Gayunpaman, hindi ito ang katapusan. Kung malayuang mai-reboot ang server sa isang imahe sa pagbawi batay sa isang operating system ng Linux, maaaring mabilis na maisaayos ang KVM-over-IP.

Ang imahe ng pagbawi ay isang ganap na operating system na matatagpuan sa RAM. Kaya, maaari kaming magpatakbo ng anumang software, kabilang ang mga virtual machine (VM). Iyon ay, maaari kang maglunsad ng isang VM kung saan tatakbo ang operating system ng server. Maaaring ayusin ang access sa VM console, halimbawa, sa pamamagitan ng VNC.

Upang patakbuhin ang operating system ng server sa loob ng isang VM, dapat mong tukuyin ang mga server disk bilang mga VM disk. Sa mga operating system ng pamilya ng Linux, ang mga pisikal na disk ay kinakatawan ng mga block device ng form / dev / sdX, na maaaring magamit tulad ng mga regular na file.

Ang ilang mga hypervisor, tulad ng QEMU at VirtualBox, ay nagbibigay-daan sa iyo na mag-imbak ng data ng VM sa isang "raw" na form, iyon ay, tanging imbakan ng data na walang hypervisor metadata. Kaya, ang VM ay maaaring ilunsad gamit ang mga pisikal na disk ng server.

Ang pamamaraang ito ay nangangailangan ng mga mapagkukunan upang ilunsad ang imahe sa pagbawi at ang VM sa loob nito. Gayunpaman, kung mayroon kang apat o higit pang gigabytes ng RAM, hindi ito magiging problema.

Paghahanda sa Kapaligiran

Maaari kang gumamit ng magaan at simpleng programa bilang isang virtual machine QEMU, na kadalasan ay hindi bahagi ng larawan sa pagbawi at dapat samakatuwid ay naka-install nang hiwalay. Nakabatay ang larawan sa pagbawi na inaalok namin sa mga kliyente Arch Linux, na gumagamit ng package manager pacman.

Ang unang bagay na kailangan mong gawin ay siguraduhin na ang recovery image ay gumagamit ng pinakabagong software. Maaari mong suriin at i-update ang lahat ng mga bahagi ng OS gamit ang sumusunod na command:

pacman -Suy

Pagkatapos ng pag-update, kailangan mong i-install ang QEMU. Ang utos ng pag-install sa pamamagitan ng pacman ay magiging ganito:

pacman -S qemu

Suriin natin kung ang qemu ay na-install nang tama:

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

Kung ang lahat ay gayon, kung gayon ang imahe sa pagbawi ay handa nang umalis.

Pagsisimula ng isang virtual machine

Una, kailangan mong magpasya sa dami ng mga mapagkukunang inilalaan sa VM at alamin ang mga landas patungo sa mga pisikal na disk. Sa aming kaso, maglalaan kami ng dalawang core at dalawang gigabytes ng RAM sa virtual machine, at ang mga disk ay matatagpuan sa daan. / Dev / sda и / dev / sdb. Simulan natin ang 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

Kaunting detalye tungkol sa kung ano ang ibig sabihin ng bawat isa sa mga parameter:

  • -m 2048M — maglaan ng 2 GB ng RAM sa VM;
  • -net nic -net user — pagdaragdag ng simpleng koneksyon sa network sa pamamagitan ng hypervisor gamit ang NAT (Network Address Translation);
  • -paganahin-kvm — paganahin ang buong KVM (Kernel Virtual Machine) virtualization;
  • -cpu host — sinasabi namin sa virtual na processor na makuha ang lahat ng functionality ng server processor;
  • -M PC — uri ng kagamitan sa PC;
  • -smp 2 — ang virtual na processor ay dapat na dual-core;
  • -vga std — pumili ng karaniwang video card na hindi sumusuporta sa malalaking resolution ng screen;
  • -drive file=/dev/sda,format=raw,index=0,media=disk
    • file=/dev/sdX — landas sa block device na kumakatawan sa server disk;
    • format=raw — tandaan namin na sa tinukoy na file ang lahat ng data ay nasa "raw" na anyo, iyon ay, tulad ng sa isang disk;
    • index = 0 — numero ng disk, dapat tumaas ng isa para sa bawat kasunod na disk;
    • media=disk — dapat kilalanin ng virtual machine ang storage na ito bilang isang disk;
  • -vnc:0, password — simulan ang VNC server bilang default sa 0.0.0.0:5900, gumamit ng password bilang awtorisasyon;
  • -monitor ang stdio — Ang komunikasyon sa pagitan ng administrator at qemu ay magaganap sa pamamagitan ng karaniwang input/output stream.

Kung maayos ang lahat, magsisimula ang monitor ng QEMU:

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

Isinaad namin na ang pahintulot ay nangyayari gamit ang isang password, ngunit hindi ipinahiwatig ang mismong password. Magagawa ito sa pamamagitan ng pagpapadala ng change vnc password command sa QEMU monitor. Mahalagang paalala: Ang password ay hindi maaaring higit sa walong character.

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

Pagkatapos nito, maaari kaming kumonekta sa anumang VNC client, halimbawa, Remmina, gamit ang IP address ng aming server gamit ang password na aming tinukoy.

IP-KVM sa pamamagitan ng QEMU

IP-KVM sa pamamagitan ng QEMU

Ngayon hindi lamang natin nakikita ang mga posibleng error sa yugto ng paglo-load, ngunit maaari rin nating harapin ang mga ito.

Kapag tapos ka na, dapat mong isara ang virtual machine. Magagawa ito alinman sa loob ng OS sa pamamagitan ng pagpapadala ng signal sa shutdown, o sa pamamagitan ng pagbibigay ng command system_powerdown sa QEMU monitor. Ito ay katumbas ng pagpindot sa shutdown button nang isang beses: ang operating system sa loob ng virtual machine ay magsasara nang maayos.

Pag-install ng operating system

Ang virtual machine ay may ganap na access sa mga server disk at samakatuwid ay maaaring gamitin upang manu-manong i-install ang operating system. Ang tanging limitasyon ay ang dami ng RAM: ang imaheng ISO ay hindi palaging mailalagay sa RAM. Maglaan tayo ng apat na gigabytes ng RAM upang maiimbak ang imahe / mnt:

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

Ida-download din namin ang imahe ng pag-install ng FreeBSD 12.0 operating system:

wget -P /mnt ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/ISO-IMAGES/12.0/FreeBSD-12.0-RELEASE-amd64-bootonly.iso

Ngayon ay maaari mong simulan ang 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

I-flag -boot d nag-i-install ng booting mula sa CD drive. Kumonekta kami sa isang VNC client at makita ang FreeBSD bootloader.

IP-KVM sa pamamagitan ng QEMU

Dahil ang pagkuha ng isang address sa pamamagitan ng DHCP ay ginamit upang ma-access ang Internet, pagkatapos ng pagsasaayos ay maaaring kailanganin na mag-boot sa bagong naka-install na system at itama ang mga setting ng network. Sa ilang mga kaso, maaaring kailanganin na mag-install ng mga driver ng network adapter, dahil magkaiba ang network card na naka-install sa server at ang ginagaya sa VM.

Konklusyon

Ang pamamaraang ito ng pag-aayos ng malayuang pag-access sa console ng server ay gumagamit ng ilan sa mga mapagkukunan ng server, gayunpaman, hindi ito nagpapataw ng anumang mga espesyal na kinakailangan sa hardware ng server, at samakatuwid ay maaaring ipatupad sa halos anumang mga kondisyon. Ang paggamit ng solusyon na ito ay nagpapadali sa pag-diagnose ng mga error sa software at pagpapanumbalik ng functionality ng isang malayuang server.

Pinagmulan: www.habr.com

Magdagdag ng komento