IP-KVM per QEMU

IP-KVM per QEMU

Solvi problemojn pri lanĉado de operaciumo en serviloj sen KVM ne estas facila tasko. Ni kreas KVM-over-IP por ni mem per reakira bildo kaj virtuala maŝino.

En kazo de problemoj kun la operaciumo sur fora servilo, la administranto elŝutas la reakiran bildon kaj faras la necesan laboron. Ĉi tiu metodo bonege funkcias kiam la kaŭzo de la fiasko estas konata, kaj la reakira bildo kaj la operaciumo instalita sur la servilo estas de la sama familio. Se la kaŭzo de la malsukceso ankoraŭ ne estas konata, vi devas kontroli la progreson de ŝarĝo de la operaciumo.

Fora KVM

Vi povas aliri la servilan konzolon per enkonstruitaj iloj kiel IPMI aŭ Intel® vPro™, aŭ per eksteraj aparatoj nomataj IP-KVM. Estas situacioj en kiuj ĉiuj listigitaj teknologioj ne estas disponeblaj. Tamen ĉi tio ne estas la fino. Se la servilo povas esti malproksime rekomencigita en reakiran bildon bazitan sur Linukso operaciumo, tiam KVM-over-IP povas esti rapide organizita.

La reakira bildo estas plentaŭga operaciumo, kiu situas en RAM. Tiel, ni povas ruli ajnan programaron, inkluzive de virtualaj maŝinoj (VM). Tio estas, vi povas lanĉi VM en kiu la servila operaciumo funkcios. Aliro al la VM-konzolo povas esti organizita, ekzemple, per VNC.

Por ruli la servilan operaciumon ene de VM, vi devas specifi la servildiskojn kiel VM-diskojn. En operaciumoj de la familio Linukso, fizikaj diskoj estas reprezentitaj per blokaj aparatoj de la formo / dev / sdX, kun kiu oni povas labori kiel regulajn dosierojn.

Iuj hiperviziiloj, kiel QEMU kaj VirtualBox, permesas vin stoki VM-datumojn en "kruda" formo, tio estas, nur stokajn datumojn sen hiperviziaj metadatenoj. Tiel, la VM povas esti lanĉita uzante la fizikajn diskojn de la servilo.

Ĉi tiu metodo postulas rimedojn por lanĉi la reakiran bildon kaj la VM en ĝi. Tamen, se vi havas kvar aŭ pli da gigabajtoj da RAM, ĉi tio ne estos problemo.

Preparante la Medion

Vi povas uzi malpezan kaj simplan programon kiel virtuala maŝino QEMU, kiu plej ofte ne estas parto de la reakira bildo kaj tial devas esti instalita aparte. La reakira bildo, kiun ni proponas al klientoj, baziĝas sur Arch Linukso, kiu uzas pakaĵadministrilon Pacmano.

La unua afero, kiun vi devas fari, estas certigi, ke la reakira bildo uzas la plej novan programaron. Vi povas kontroli kaj ĝisdatigi ĉiujn OS-komponentojn per la sekva komando:

pacman -Suy

Post la ĝisdatigo, vi devas instali QEMU. La instala komando per pacman aspektos jene:

pacman -S qemu

Ni kontrolu, ke qemu estas ĝuste instalita:

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

Se ĉio estas tiel, tiam la reakira bildo estas preta por iri.

Ekfunkciigo de virtuala maŝino

Unue, vi devas decidi pri la kvanto de rimedoj asignitaj al la VM kaj ekscii la vojojn al la fizikaj diskoj. En nia kazo, ni asignos du kernojn kaj du gigabajtojn da RAM al la virtuala maŝino, kaj la diskoj situas laŭvoje. / dev / sda и / dev / sdb. Ni komencu la 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

Iom pli da detaloj pri tio, kion signifas ĉiu el la parametroj:

  • -m 2048M — asignu 2 GB da RAM al la VM;
  • -net nic -net uzanto — aldoni simplan konekton al la reto per hiperviziero uzante NAT (Network Address Translation);
  • -enable-kvm — ebligi plenan virtualigon de KVM (Kernel Virtual Machine);
  • -cpu-gastiganto — ni diras al la virtuala procesoro akiri ĉiujn funkciojn de la servila procesoro;
  • -M komputilo - speco de komputila ekipaĵo;
  • -smp 2 — la virtuala procesoro devas esti dukerna;
  • -vga std — elektu norman vidkarton, kiu ne subtenas grandajn ekranajn rezoluciojn;
  • -drive dosiero=/dev/sda, formato=kruda, indekso=0, amaskomunikilaro=disko
    • dosiero=/dev/sdX — vojo al la bloka aparato reprezentanta la servilan diskon;
    • formato=kruda — ni rimarkas, ke en la specifita dosiero ĉiuj datumoj estas en "kruda" formo, tio estas, kiel sur disko;
    • indekso = 0 — disknumero, devas pliiĝi je unu por ĉiu posta disko;
    • media=disko — la virtuala maŝino devas rekoni ĉi tiun stokadon kiel diskon;
  • -vnc :0, pasvorto — lanĉu la VNC-servilon defaŭlte ĉe 0.0.0.0:5900, uzu pasvorton kiel rajtigon;
  • -monitor stdio — komunikado inter la administranto kaj qemu okazos per normaj enigo/eligfluoj.

Se ĉio estas en ordo, la QEMU-ekrano komenciĝos:

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

Ni indikis, ke rajtigo okazas per pasvorto, sed ne indikis la pasvorton mem. Ĉi tio povas esti farita sendante la komandon de ŝanĝo vnc pasvorta al la monitoro QEMU. Grava noto: La pasvorto ne povas esti pli ol ok signoj.

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

Post ĉi tio, ni povas konektiĝi kun iu ajn VNC-kliento, ekzemple, Remmina, uzante la IP-adreson de nia servilo kun la pasvorto, kiun ni specifis.

IP-KVM per QEMU

IP-KVM per QEMU

Nun ni ne nur vidas eblajn erarojn ĉe la ŝarĝa etapo, sed ni ankaŭ povas trakti ilin.

Kiam vi finos, vi devas malŝalti la virtualan maŝinon. Ĉi tio povas esti farita aŭ ene de la OS sendante signalon al ĉesigo, aŭ donante la komandon system_powerdown en QEMU-ekrano. Ĉi tio ekvivalentos al premi la butonon de malŝalto unufoje: la operaciumo ene de la virtuala maŝino malŝaltos glate.

Instalado de operaciumo

La virtuala maŝino havas plenan aliron al la servilaj diskoj kaj tial povas esti uzata por permane instali la operaciumon. La nura limigo estas la kvanto de RAM: la ISO-bildo ne ĉiam povas esti metita en RAM. Ni asignu kvar gigabajtojn da RAM por konservi la bildon / mnt:

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

Ni ankaŭ elŝutos la instalbildon de la operaciumo 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

Nun vi povas komenci la 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

Flago -boto d instalas lanĉadon de KD-disko. Ni konektas kun VNC-kliento kaj vidas la FreeBSD-ŝargilon.

IP-KVM per QEMU

Ĉar akiri adreson per DHCP estis uzata por aliri la Interreton, post agordo eble estos necese ekŝargi en la nove instalitan sistemon kaj korekti la retajn agordojn. En iuj kazoj, eble necesas instali retajn adaptilojn, ĉar la retkarto instalita en la servilo kaj tiu emulita en la VM estas malsamaj.

konkludo

Ĉi tiu metodo por organizi malproksiman aliron al la servila konzolo konsumas iujn el la servilaj rimedoj, tamen ĝi ne trudas specialajn postulojn al la servila aparataro, kaj tial povas esti efektivigita en preskaŭ ĉiuj kondiĉoj. Uzante ĉi tiun solvon multe pli facilas diagnozi programajn misfunkciadojn kaj restarigi la funkciojn de fora servilo.

fonto: www.habr.com

Aldoni komenton