Acasă / Instrucțiuni / Gestionarea kvm qemu prin web. Documentație în limba rusă pe Ubuntu. Soluțiile colectează formulare web pentru „KVM - Ce management bazat pe web ar trebui să folosesc?”

Gestionarea kvm qemu prin web. Documentație în limba rusă pe Ubuntu. Soluțiile colectează formulare web pentru „KVM - Ce management bazat pe web ar trebui să folosesc?”

Cu comutatoarele KVM obișnuite, cred că multe au întâlnit. Abrevierea „KVM” înseamnă „Keyboard Video Mouse”. Un dispozitiv KVM permite, având un singur set de tastatură + monitor + mouse (K.M.M.), să controleze mai multe computere ( blocuri de sistem). Cu alte cuvinte, luăm N blocuri de sistem, le conectăm ieșirile de la K.M.M. la dispozitivul KVM și deja la dispozitivul însuși conectăm un monitor real, tastatură și mouse. Comutând între computere folosind KVM, putem vedea ce se întâmplă pe ecranul computerului selectat, precum și să-l controlăm ca și cum am fi conectați direct la el.

Acest lucru este convenabil dacă avem nevoie de mai multe mașini pentru lucru, dar accesul la ele în același timp nu este necesar. În plus, spațiul este economisit mult - monitoarele, chiar și cele cu cristale lichide, ocupă o cantitate destul de mare de spațiu pe masă. Da, și nu costă mult. Și într-o grămadă de tastaturi și șoareci de pe masă, puteți deveni rapid confuz...

Cititorii avansați vor obiecta - de ce astfel de dificultăți dacă computerele sunt cel mai probabil conectate la unul retea localași puteți utiliza sistemul de operare încorporat (sau programele externe). acces de la distanță, cum ar fi Terminal Services sau Radmin sub Windows, VNC, ssh sub sisteme de operare *nix-like. Totul este corect, dar ce ar trebui să facem dacă, de exemplu, trebuie să intri în BIOS-ul computerului sau sistemul de operare a încetat să se încarce pentru că am instalat un driver sau un program greșit? Sau avem mai multe sisteme de operare instalate pe computer și a trebuit să-l alegem pe cel greșit care pornește implicit? În general, toate aceste programe sunt cu adevărat bune, dar până la anumite limite - atâta timp cât sistemul de operare al computerului este operațional și avem nevoie de acces la computer doar după ce acest sistem de operare pornește.

De exemplu, să ne uităm la câteva comutatoare KVM tipice folosind exemplul dispozitivelor fabricate de companie.

Specificațiile dispozitivului

CN-6000 acceptă separarea puterilor între utilizatori și vă permite să creați până la 64 de conturi administrative sau de utilizator, dintre care până la 16 conturi pot funcționa simultan cu dispozitivul. Dispozitivul are o interfață WEB încorporată pentru administrare, iar dimensiunile reduse îi permit să fie așezat pe o masă sau montat (folosind un suport special inclus în kit) pe un suport lateral al unui rack (montabil în rack 0U). CN-6000 acceptă upgrade de firmware prin conexiune Ethernet (interfață web sau utilitar nativ). Rezoluția video maximă acceptată de dispozitiv este de 1600x1200 pixeli.

Tabel rezumat al specificațiilor:

Cerințe hardware (client la distanță)Pentium III 1Ghz
Interfețeconsola localaTastatură1 × Mini-DIN-6 F (violet)
Video1 × HDB-15 F (albastru)
Mouse1 × HDB-15 F (verde)
Sistem (KVM)1 × SPHD-15F (galben)
Port LAN1 x RJ-45(F)
Alimentare pe net (rezervat)1 × DB9(M)
Interfață de alimentare1
Butoane/întrerupătoareResetare KVM1 × semi-ascuns, față
Indicatorialimente1 × portocaliu
conexiune utilizator de la distanță1 x verde
LAN 10/100 Mbps1 × verde/portocaliu
Protocoale acceptate10baseT Ethernet și 100baseTX Fast Ethernet. TCP/IP
Permisiuni videoPână la 1600×1200 60Hz
Cadrumetal
Dimensiuni (lungime × latime × inaltime)200×80×25mm

Să trecem la teste.

Pe CD-ul care vine cu kitul, puteți găsi patru utilitare:

  • CN6000 Client este un program client Windows care poate fi utilizat pentru a se conecta la un computer la distanță
  • un program client similar scris în Java (în format jar)
  • CN6000 Admin Tool - manager de configurare a dispozitivului (sub Windows)
  • server de jurnal - un program care poate fi configurat pentru a primi și stoca fișiere jurnal de la CN-6000

În plus, în comutatorul KVM este încorporat un server WEB, astfel încât dispozitivul poate fi accesat printr-un browser WEB. Dar vom reveni la interfața web puțin mai târziu, mai întâi vom lua în considerare utilitățile individuale.

Configurarea CN-6000 prin Admin Tool.

Programul este conceput pentru a configura dispozitivul, a seta parole de acces, securitate etc.

Când a fost lansat, nu a fost lipsit de curiozitate:

Prima dată când rulați toate utilitățile de pe discul inclus, vi se cere să introduceți un număr de serie. În documentație (chiar ultima versiune, care se află pe site-ul producătorului) se spune că numărul de serie este tipărit pe partea de jos a carcasei CN-6000. Și un fel de număr de serie este într-adevăr tipărit acolo, doar că este mult mai scurt decât necesită programele. În general, după ce am suferit puțin, introducerea numărului de serie s-a găsit într-un fel și în altul, adăugându-i zerouri sau spații și neatingând nimic mai mult decât fereastra „Număr de serie invalid”, deja am vrut să termin de testat dispozitivul în acea zi. Scotând CD-ul din CD-ROM (am introdus în primul rând în unitatea CD - a trebuit să instalez software-ul), am găsit un autocolant ciudat pe disc - acesta s-a dovedit a fi râvnitul număr de serie.

Desigur, teoretic, o persoană poate fi atentă la ceea ce este scris sau lipit pe CD atunci când îl introduce în unitate. Dar câți acordă imediat atenție acestui lucru? :) Și, cineva se întreabă, de ce a fost necesar să scrieți informații în mod deliberat false în documentație? Repet - site-ul conține mai multe o noua versiune Documentația și acolo această „greșeală” nu este corectată. Observ că aceasta nu este ultima inexactitate care se strecoară prin documentație, așa că uneori trebuie să acționați conform zicalului „nu vă credeți ochilor”.

Utilitarul de administrare CN-6000 este util prin faptul că vă permite să găsiți un dispozitiv în rețea, chiar dacă adresa IP a acestuia nu aparține subrețelei în care ne aflăm, doar atât cât noi (calculatorul de pe care încercăm să accesăm CN-6000) erau pe același segment LAN ca și comutatorul KVM.

După introducerea numelui de utilizator și a parolei, ajungem la meniul de configurare a dispozitivului:

ATEN a adoptat o abordare bună a problemei securității dispozitivelor. Când intrați pentru prima dată în configurația dispozitivului, suntem avertizați că ar fi bine să schimbați autentificarea și parola standard...

In sectiune reţea Adresarea IP a dispozitivului este configurată, porturile pentru accesul de la distanță la computerele controlate de CN-6000 sunt setate. Și, de asemenea, aici puteți specifica adresa MAC a mașinii pe care se află programul „Log Server”, care stochează fișierele jurnal (evenimente) trimise de la comutatorul KVM (dacă nu este setată, jurnalele vor fi stocate pe KVM în sine și le puteți vedea din interfața web). Această mașină (pentru Log-server) poate fi orice computer pe care este instalat Windows și programul în discuție rulează. Singura problemă este că computerul trebuie să fie în același segment de rețea (în linii mari, conectat la același switch) ca și KVM CN-6000 în sine, deci utilitatea acestei „funcții” este discutabilă.

Marcat Securitate sunt configurate filtre (dupa adrese MAC si/sau IP) pentru accesul la ecranul de la distanta al calculatoarelor administrate, precum si un filtru pentru administrarea propriului CN-6000.

În fila următoare, sunt setate numele de utilizator și parolele, precum și drepturile acestora. În mod remarcabil, puteți restricționa autentificarea pentru configurarea CN-6000 și utilizarea clientului JAVA. Lungimea minimă a parolei pe care o acceptă utilitarul de configurare este de opt caractere. Păcat, desigur, că parola nu este verificată pentru „simplitate”, dar chiar și verificarea lungimii parolei indică faptul că ATEN acordă atenție securității.

Ultima filă vă permite să actualizați firmware-ul dispozitivului, să permiteți posibilitatea conexiunii simultane la un computer la distanță pentru mai multe persoane (deși mouse-ul și tastatura sunt în continuare aceleași, din punctul de vedere al computerului controlat, deci unul controlează , restul arată... sau interferează unul cu celălalt trăgând mouse-ul la laturi diferite). Reacția la un proces de autentificare incorect este configurată imediat, precum și includerea diferitelor moduri „ascunse” ale CN-6000 (niciun răspuns la ping și interdicția de a se afișa atunci când căutare automată dispozitive din rețeaua locală prin utilitarul client sau utilitarul de administrare).

În aceeași filă există un alt articol - Resetați la Ieșire. Aș presupune că aceasta este o resetare la setările implicite, dar în acest caz aceasta implică repornirea dispozitivului la ieșirea din utilitarul de configurare. În caz contrar (dacă nu este repornit), noile setări, deși vor fi reținute, nu vor fi aplicate (până la repornire).

În acest moment, luarea în considerare a utilitarului de configurare poate fi considerată completă (un alt aspect va fi discutat în secțiunea despre clientul Java).

Să mergem la interfața web.

Configurare prin interfață WEB

Pentru a intra în interfața web a dispozitivului, este suficient să tastați adresa IP care este setată pe CN-6000 în orice browser.

Este de remarcat faptul că browserul redirecționează imediat clientul către o conexiune prin HTTPS://, adică. toate lucrările ulterioare au loc printr-o conexiune SSL securizată.

După introducerea login-ului și a parolei, pictogramele din stânga și din partea de sus a interfeței web devin active (puteți face clic pe ele).

Pictogramele de sus deschid secțiuni legate de configurarea CN-6000. În cea mai mare parte, toate opțiunile de acolo repetă opțiunile interfeței utilitarului Windows. Admin Tool, dar există unele diferențe. De exemplu, în această fereastră (configurarea adreselor de rețea), putem seta doar adresa IP a dispozitivului, dar nu putem specifica masca de subrețea și gateway-ul. În plus, setarea adresei IP funcționează cumva strâmb - nu am reușit să schimb adresa IP a dispozitivului din interfața web (folosind utilitarul Admin Tools, s-a schimbat fără probleme).

Iată ce puteți vedea în utilitarul Admin Tool când încercați să schimbați adresa prin interfața web de la 10.0.0.9 la 192.168.0.1. Din anumite motive, masca de subrețea s-a schimbat de la standardul 255.255.255.0 la 10.0.0.9, iar dispozitivul (după o repornire) răspunde la 192.168.0.1 timp de 5 secunde, apoi începe să răspundă la 10.0.0.9 (uită complet despre 1892.16.16). .0.1). Acesta poate fi un bug în versiunea actuală de firmware (1.5.141), dar această versiune, la momentul testării, era cea mai recentă care putea fi găsită pe site-ul companiei.

Nu au mai fost găsite erori legate de interfața web în timpul testării.

Capitol Securitate repetă aceeași secțiune în Instrumentul de administrare.

O situație similară cu secția Manager de utilizatori

... si sectiunea personalizare.

Pictogramă Buturuga, situat în partea stângă a interfeței web, vă permite să vizualizați evenimentele care au avut loc în timpul funcționării dispozitivului. În acest caz, captura de ecran reflectă jurnalele care au apărut în momentul în care dispozitivul a fost testat de Nessus.

După cum sa menționat mai sus, jurnalele pot fi aruncate pe un server de jurnal extern (dar cu anumite restricții privind locația acestuia).

Astăzi, multe sarcini care au fost în mod tradițional atribuite mai multor servere fizice sunt transferate în medii virtuale. Tehnologiile de virtualizare sunt, de asemenea, solicitate de dezvoltatorii de software, deoarece permit testarea cuprinzătoare a aplicațiilor în diferite sisteme de operare. În același timp, simplificând multe probleme, sistemele de virtualizare în sine trebuie gestionate și nu se poate face fără soluții speciale.

Vagabond

Mașina virtuală VirtualBox este foarte populară în rândul administratorilor și dezvoltatorilor, permițându-vă să creați rapid mediile necesare folosind o interfață grafică sau o interfață de linie de comandă. Dacă numărul de VM-uri nu depășește trei, nu există dificultăți în implementare și management, dar proiectele moderne au tendința de a dobândi configurații, iar drept urmare, se obține o infrastructură foarte complexă, care devine greu de manevrat. Aceasta este problema pe care managerul de mediu virtual Vagrant este proiectat să o rezolve, permițându-vă să creați copii ale mașinilor virtuale cu o configurație predefinită și să realocați dinamic resursele VM (provizionare) după cum este necesar. În distribuția de bază, Vagrant funcționează cu VirtualBox, dar sistemul de plugin vă permite să conectați un alt sistem de virtualizare. Astăzi, codul de plugin pentru AWS și Rackspace Cloud este deschis și un plugin este disponibil pentru abonament comercial pentru a sprijini VMware Fusion/Workstation.

Vagrant nu creează o mașină virtuală de la zero. Pentru comoditate, proiectul oferă mai multe imagini de bază (cutii), care sunt importate și utilizate ulterior pentru implementarea rapidă a sistemului, deja pe baza de cutii, un sistem de operare invitat este asamblat cu configurația dorită.

Chef și Puppet sunt preinstalate în cutii pentru a simplifica implementarea aplicației. În plus, setările dorite pot fi specificate folosind shell. Mediile includ un set complet pentru rularea și dezvoltarea aplicațiilor în Ruby. SSH este folosit pentru a accesa VM, este posibil să faceți schimb de fișiere printr-un director partajat.

Scris de Vagrant folosind Ruby, poate fi instalat pe orice platformă pentru care există componente VirtualBox și Ruby. Pachetele pentru Windows, Linux (deb și rpm) și OS X sunt disponibile pe pagina de descărcare.

Procesul de instalare și utilizare a Ubuntu este simplu. Descărcați pachetele VirtualBox și Vagrant și instalați:

$ sudo dpkg -i virtualbox-4.2.10_amd64.deb $ sudo dpkg -i vagrant_1.2.2_x86_64.deb

La momentul scrierii acestui articol, cu cea mai recentă versiune actualizată a VirtualBox 4.2.14, au existat probleme la pornirea Vagrant, așa că deocamdată este mai bine să folosiți 4.2.12 sau să testați 4.2.15. Alternativ, puteți face:

$ cd ~/.vagrant.d/boxes/BoxName/virtualbox $ openssl sha1 *.vmdk *.ovf > box.mf

Iată o modalitate alternativă de a instala Vagrant - folosind Ruby:

$ sudo apt-get install ruby1.8 ruby1.8-dev rubygems1.8 $ sudo gem install vagrant

Toate setările proiectului sunt făcute într-un Vagrantfile special. Pentru a nu crea un șablon manual, acesta poate fi generat după cum urmează:

$ proiect mkdir $ proiect cd $ vagrant init

Acum puteți căuta în fișierul de configurare creat și completați: Setări VM (config.vm. ), opțiuni de conexiune SSH (config.ssh.), parametrii lui Vagrant însuși (config.vagrant). Toate sunt bine documentate, semnificația unora este clară și fără explicații.

De fapt, la pornire sunt folosite mai multe astfel de fișiere, fiecare ulterior îl înlocuiește pe cel anterior: încorporat în Vagrant (nu poate fi schimbat), furnizat cu casete (ambalate folosind comutatorul „--vagrantfile”), situat în ~/.vagrant .d și fișierul de proiect . Această abordare vă permite să utilizați setările implicite, suprascriind doar ceea ce este necesar într-un anumit proiect.


Toate instalările se fac folosind comanda vagrant, lista cheilor disponibile poate fi vizualizată folosind „-h”. După instalare, nu avem o singură imagine, rularea vagrant box list va afișa o listă goală. Caseta finită poate fi amplasată într-un sistem de fișiere local sau pe un server la distanță, numele său este setat ca parametru, care va fi folosit în proiecte. De exemplu, folosim Box Ubuntu 12.04 LTS oficial oferit de dezvoltatorii Vagrant.

$ vagrant box adauga precise64 http://files.vagrantup.com/precise64.box

Acum poate fi accesat din Vagrantfile:

config.vm.box = "precise64"

Deși este mai ușor să-l specificați imediat când inițializați proiectul:

$ vagabond init precis64

Cea mai ușoară modalitate, care nu necesită învățarea Chef și Puppet, este să utilizați comenzi shell standard pentru a configura VM, care pot fi scrise direct în Vagrantfile sau, și mai bine, combinate într-un script care este conectat astfel:

Vagrant.configure("2") face |config| config.vm.provision:shell, :inline => "script.sh" final

Acum toate comenzile specificate în script.sh vor fi executate la pornirea VM-ului. Când proiectul este pornit, este creat un fișier ovf, setările acestuia pot fi vizualizate folosind GUI VirtualBox sau comanda VBoxManage:

$ VBoxManage import /home/user/.vagrant.d/boxes/precise64/virtualbox/box.ovf Sistem virtual 0: 0: Tip de sistem de operare sugerat: „Ubuntu_64” (schimbat cu „--vsys 0 --ostype "; utilizați „list ostypes” pentru a lista toate valorile posibile) 1: Numele VM sugerat „precise64” (schimbați cu „--vsys 0 --vmname ") 2: Număr de procesoare: 2 (schimbați cu "--vsys 0 --cpus ") 3: memorie pentru invitați: 384 MB (schimbați cu „--vsys 0 --memory ")

Ele nu îndeplinesc întotdeauna condițiile specificate, dar folosind setările furnizorului, puteți modifica cu ușurință setările unei anumite VM (consultați sfaturile „schimbați cu...”):

Config.vm.provider:virtualbox face |vb| vb.customize ["modifyvm", :id, "--memory", "1024"] end

Lansați și conectați-vă la sistem prin SSH:

$ vagabond sus $ vagabond ssh

Pentru a opri VM, utilizați opțiunea oprire sau distrugere (a doua va șterge toate fișierele, data viitoare toate operațiunile vor fi efectuate de la început), dacă trebuie să-l trimiteți în hibernare - vagrant suspend , return - vagrant resume . Pentru un exemplu de lucru cu Chef, puteți folosi o rețetă gata făcută cu care să configurați APT și Apache2:

Config.vm.provision:chef_solo face |chef| chef.recipe_url = "http://files.vagrantup.com/getting_started/cookbooks.tar.gz" chef.add_recipe("vagrant_main") end

Pentru a accesa VM „din exterior”, va trebui să configurați redirecționarea portului. În mod implicit, se realizează redirecționarea 22 -> 2222, permițându-vă să vă conectați prin SSH. Adăugați la Vagrantfile:

Vagrant::Config.run do |config| config.vm.forward_port 80, 1111 end

Serverul web poate fi acum accesat navigând la http://127.0.0.1:1111/. Pentru a nu configura mediul de fiecare dată, este mai bine să construiți un pachet gata făcut pe baza acestuia.

$ pachet vagrant --vagrantfile Vagrantfile --output project.box

Acum fișierul project.box poate fi distribuit altor administratori, dezvoltatori sau utilizatori obișnuiți care îl vor include folosind comanda vagrant box add project.box.

Convert

Sistemele de virtualizare Xen/KVM lansate sub licențe gratuite nu au o interfață ușor de utilizat, care este adesea interpretată în favoarea lor. Cu toate acestea, acest neajuns este ușor de remediat. ConVirt vă permite să implementați mașini virtuale pe mai multe servere Xen și KVM cu un singur clic, folosind o interfață ușor de utilizat. Sunt disponibile toate operațiunile necesare cu mașinile virtuale: porniți, opriți, creați instantanee, controlați și redistribuiți resursele, conectați-vă la o VM prin VNC, automatizați sarcinile de administrare. Tehnologia Ajax face interfața interactivă și similară cu o aplicație desktop. De exemplu, un VM poate fi pur și simplu tras de la un server la altul. Interfața nu este localizată, dar comenzile sunt intuitive.


Gruparea de servere vă permite să configurați și să controlați mașinile virtuale și resursele la nivel de pool de servere, mai degrabă decât server separat. Agenții nu sunt instalați pe sisteme virtuale, este necesar doar pachetul convirt-tool de pe serverul fizic. Acest lucru simplifică administrarea și implementarea.

Odată adăugat un nou server, ConVirt își va colecta automat datele de configurare și performanță, oferind informații rezumative la mai multe niveluri - de la o singură mașină virtuală, un server fizic, până la întregul pool. Datele colectate sunt folosite pentru a găzdui automat sisteme noi pentru oaspeți. Aceste informații sunt afișate și sub formă de grafice vizuale.

Pentru a crea mașini virtuale, se folosesc șabloane - descrieri ale setărilor mașinii virtuale, care conțin date despre resursele alocate, calea către fișierele OS și setari aditionale. După instalare, sunt disponibile mai multe șabloane gata făcute, dar dacă este necesar, este ușor să le creați singur.

Toate tehnologiile sunt acceptate: echilibrarea încărcăturii, migrarea la cald, discuri virtuale cu o capacitate în creștere, permițându-vă să utilizați resursele după cum este necesar și multe alte caracteristici implementate în Xen și KVM. Nu trebuie să opriți VM pentru a realoca resurse.

A implementat capacitatea de a gestiona un mediu virtual pentru mai mulți administratori cu capacitatea de a audita și controla acțiunile acestora.

ConVirt este dezvoltat de compania Convirture, folosind conceptul open core (open basis), când doar un set de bază de funcții este distribuit gratuit împreună cu textele sursă, restul este disponibil în versiunea comercială. Versiunea open source nu are suport pentru High Availability, integrare VLAN, redundanță și recuperare, management al liniei de comandă, notificări și suport oficial.

În timpul dezvoltării, s-au folosit framework-ul TurboGears2, bibliotecile ExtJs și FLOT, MySQL a fost folosit pentru stocarea informațiilor, dnsmasq a fost folosit ca server DHCP și DNS. Pachetul necesar poate fi găsit în depozitele distribuțiilor Linux populare.

Karesansui

Sunt implementate toate posibilitățile de gestionare a mediilor virtuale: instalarea sistemului de operare, crearea subsistemului de disc și configurarea mediului virtual. plăci de rețea, gestionarea cotelor, replicare, înghețarea VM, crearea de instantanee, vizualizarea statisticilor detaliate și a datelor de jurnal, monitorizarea încărcării. De la o singură consolă, puteți gestiona mai multe servere fizice și mașinile virtuale găzduite pe acestea. Este posibilă lucrul cu mai mulți utilizatori cu separarea drepturilor. Drept urmare, dezvoltatorii au reușit să implementeze un mediu virtual în browser care vă permite să gestionați pe deplin sistemele.

Scris de Karesansui în Python, SQLite este folosit ca DBMS pentru un sistem cu un singur nod. Dacă intenționați să gestionați instalațiile Karesansui găzduite pe mai multe servere fizice, ar trebui să utilizați MySQL sau PostgreSQL.

Puteți implementa Karesansui pe orice Linux. Dezvoltatorii înșiși preferă CentOS (pentru care site-ul are instrucțiuni detaliate), deși Karesansui se descurcă bine pe Debian și Ubuntu. Înainte de instalare, trebuie să îndepliniți toate dependențele indicate în documentație. Apoi, scriptul de instalare este lansat și baza de date este inițializată. Dacă este utilizată o configurație cu mai multe servere, atunci trebuie doar să specificați o bază de date externă.

Lucrările ulterioare compensează pe deplin inconvenientul instalării. Toate setările sunt împărțite în șapte file, al căror scop este clar din nume: Guest, Settings, Job, Network, Storage, Report and Log. În funcție de rolul utilizatorului, nu toate îi vor fi disponibile.

Puteți crea un nou VM dintr-un fișier ISO local sau specificând o resursă HTTP/FTP cu imagini de instalare. De asemenea, va trebui să setați alte atribute: numele sistemului care va fi afișat în listă, numele rețelei (nume gazdă), tehnologia de virtualizare (Xen sau KVM), dimensiunea RAM și hard disk(Mărimea memoriei și dimensiunea discului) - și alegeți o imagine care se va potrivi cu sistemul de operare virtual, ușurând selectarea vizuală rapidă a acesteia în consolă.

WebVirtMgr

Capacitățile soluțiilor descrise sunt adesea redundante, iar instalarea lor nu este întotdeauna clară pentru un administrator cu puțină experiență. Dar există și o cale de ieșire aici. Serviciul de gestionare centralizată a mașinii virtuale WebVirtMgr a fost creat ca un simplu înlocuitor pentru virt-manager, care va oferi o muncă confortabilă cu o VM folosind un browser cu un plugin Java instalat. Gestionarea setărilor KVM este acceptată: crearea, instalarea, configurarea, lansarea VM-ului, instantanee și copierea de rezervă a mașinilor virtuale. Oferă gestionarea pool-ului de rețea și a pool-ului de stocare, lucrul cu ISO, clonarea imaginilor, vizualizarea utilizării CPU și RAM. Mașina virtuală este accesată prin VNC. Toate tranzacțiile sunt înregistrate în jurnal. Cu o singură instalare a WebVirtMgr, puteți gestiona mai multe servere KVM. RPC libvirt (TCP/16509) sau SSH este folosit pentru a se conecta la ele.


Interfața este scrisă în Python/Django. Veți avea nevoie de un server Linux pentru a instala. Distribuit în pachete sursă și RPM pentru CentOS, RHEL, Fedora și Oracle Linux 6. Procesul de implementare în sine este simplu și bine descris în documentația proiectului (în rusă), trebuie doar să configurați libvirt și să instalați webvirtmgr. Întregul proces durează cinci minute. După conectarea la Dashboard, selectați Add Connection și specificați parametrii nodului, apoi putem configura VM-ul.

Scriptarea creării unui VM

Cel mai simplu script pentru crearea și rularea unei mașini virtuale folosind VirtualBox:

#!/bin/bash vmname="debian01" VBoxManage createvm --name $(vmname) --ostype "Debian" --register VBoxManage modifyvm $(vmname) --memory 512 --acpi pe --boot1 dvd VBoxManage createhd - -filename "$(vmname).vdi" --size 10000 --variant Fixed VBoxManage storagectl $(vmname) --name "IDE Controller" --add ide --controller PIIX4 VBoxManage storageattach $(vmname) --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium "$(vmname).vdi" VBoxManage storageattach $(vmname) --storagectl "IDE Controller" --port 0 --device 1 --type dvddrive --medium /iso/debian-7.1.0-i386-netinst.iso VBoxManage modifyvm $(vmname) --nic1 bridged --bridgeadapter1 eth0 --cableconnected1 pe VBoxManage modifyvm $(vmname) --vrde pe ecran VBoxHeadless --startvm $(vmname)

Proxmox VE

Soluțiile anterioare sunt bune pentru acele situații în care există deja ceva infrastructură. Dar dacă trebuie doar să-l implementezi, ar trebui să te gândești la platforme specializate care să îți permită să obții rapid rezultatul dorit. Un exemplu aici este Proxmox Virtual Environment, care este o distribuție Linux (bazată pe Debian 7.0 Wheezy) care vă permite să construiți rapid o infrastructură de server virtual folosind OpenVZ și KVM și este practic la egalitate cu produse precum VMware vSphere, MS Hyper-V și Citrix XenServer.


De fapt, sistemul ar trebui să fie instalat doar (câțiva pași simpli), totul funcționează deja din cutie. Apoi, folosind interfața web, puteți crea o VM. În acest scop, cel mai simplu mod este să folosiți șabloane și containere OpenVZ, care sunt încărcate din resurse externe direct din interfață cu un singur clic (dacă este manual, apoi copiați în directorul /var/lib/vz/template). Dar șabloanele pot fi create și prin clonarea sistemelor deja create în modul de conectare. Această opțiune economisește spațiu pe disc, deoarece toate mediile legate utilizează o singură copie partajată a datelor șablonului de referință fără a duplica informații. Interfața este localizată și ușor de înțeles, nu întâmpinați niciun inconvenient special când lucrați cu ea.

Există suport pentru clustere, instrumente pentru Rezervă copie medii virtuale, este posibilă migrarea VM între noduri fără a opri munca. Controlul accesului la obiectele existente (VM, stocare, noduri) este implementat pe baza de roluri, sunt acceptate diverse mecanisme de autentificare (AD, LDAP, Linux PAM, Proxmox VE încorporat). Interfața web oferă posibilitatea de a accesa VM folosind console VNC și SSH, puteți vizualiza starea joburilor, jurnalele, datele de monitorizare și multe altele. Adevărat, unele operațiuni specifice sistemelor HA vor trebui în continuare efectuate în mod vechi în consolă, cum ar fi crearea unei conexiuni iSCSI autorizate, configurarea unui cluster, crearea căilor multiple și alte operațiuni.

Cerințele de sistem sunt scăzute: CPU x64 (de preferință cu Intel VT/AMD-V), 1+ GB RAM. Proiectul oferă o imagine ISO gata făcută și un depozit pentru Debian.

Concluzie

Toate soluțiile descrise sunt bune în felul lor și fac o treabă excelentă cu sarcinile. Trebuie doar să alegeți cel mai potrivit pentru o anumită situație.

Pe Ubuntu, este recomandat să utilizați hypervisorul KVM (managerul mașinii virtuale) și biblioteca libvirt ca instrument de gestionare. Libvirt include un set de API-uri software și aplicații personalizate de gestionare a mașinilor virtuale (VM) virt-manager (interfață grafică, GUI) sau virsh ( Linie de comanda, CLI). Ca manageri alternativi, puteți utiliza convirt (GUI) sau convirt2 (interfață WEB).

În prezent, numai hypervisorul KVM este acceptat oficial în Ubuntu. Acest hypervisor face parte din codul kernelului sistem de operare linux. Spre deosebire de Xen, KVM nu acceptă paravirtualizarea, ceea ce înseamnă că, pentru a o utiliza, procesorul tău trebuie să accepte tehnologii VT. Puteți verifica dacă procesorul dvs. acceptă această tehnologie rulând comanda în terminal:

Dacă rezultatul este un mesaj:

INFORMAȚII: /dev/kvm există Accelerația KVM poate fi utilizată

deci KVM va funcționa fără probleme.

Dacă rezultatul este un mesaj:

CPU nu acceptă extensii KVM. Accelerarea KVM NU poate fi utilizată

atunci puteți folosi în continuare mașina virtuală, dar va fi mult mai lent.

    Instalați ca sisteme invitate pe 64 de biți

    Alocați oaspeților mai mult de 2 GB de memorie RAM

Instalare

sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils

Aceasta este o instalare pe un server fără X, adică nu include o interfață grafică. Îl poți instala cu comanda

sudo apt-get install virt-manager

După aceea, elementul „Virtual Machine Manager” va apărea în meniu și, cu un grad ridicat de probabilitate, totul va funcționa. Dacă mai apar probleme, va trebui să citiți instrucțiunile din wiki-ul în limba engleză.

Creați un sistem pentru oaspeți

Procedura de creare a unui sistem invitat folosind interfața grafică este destul de simplă.

Dar modul text poate fi descris.

qcow2

Când creați un sistem utilizând interfața grafică, vi se solicită fie să selectați un fișier imagine existent sau să blocați dispozitivul ca hard disk, fie să creați un fișier nou cu date brute (RAW). Cu toate acestea, acesta este departe de singurul format de fișier disponibil. Dintre toate tipurile de discuri enumerate în man qemu-img, qcow2 este cel mai flexibil și mai actualizat. Acceptă instantanee, criptare și compresie. Acesta trebuie creat înainte de a crea un nou sistem invitat.

Qemu-img create -o prealocation=metadata -f qcow2 qcow2.img 20G

Potrivit aceluiași om qemu-img , prealocarea metadatelor (-o preallocation=metadata) face discul puțin mai mare inițial, dar oferă performanțe mai bune atunci când imaginea trebuie să crească. De fapt, în acest caz, această opțiune evită o eroare neplăcută. Imaginea creată ocupă inițial mai puțin de un megaoctet de spațiu și crește la dimensiunea specificată, după cum este necesar. Sistemul oaspete ar trebui să vadă imediat această dimensiune finală specificată, totuși, în timpul fazei de instalare, poate vedea dimensiunea reală a fișierului. Desigur, va refuza să fie instalat pe un hard disk de 200 kb. Bug-ul nu este specific Ubuntu, apare și în RHEL, cel puțin.

Pe lângă tipul de imagine, puteți alege ulterior cum să o conectați - IDE, SCSI sau Virtio Disk. Performanța subsistemului de disc va depinde de această alegere. Nu există un răspuns corect fără ambiguitate, trebuie să alegeți în funcție de sarcina care va fi atribuită sistemului oaspeților. Dacă sistemul invitat este creat „pentru a vedea”, atunci orice metodă va funcționa. În general, I/O este de obicei blocajul unei mașini virtuale, prin urmare, atunci când se creează un sistem foarte încărcat, această problemă ar trebui luată cât mai responsabil posibil.

Kimchi este o interfață web bazată pe HTML5 pentru KVM. Oferă o interfață ușoară și flexibilă pentru a crea și gestiona o mașină virtuală invitată. Kimchi este instalat și rulează ca un daemon pe gazda KVM. Gestionează invitații KVM cu ajutorul libvirt. Interfața Kimchi acceptă toate cele mai recente versiuni ale browserelor cu versiunea -1, acceptă și browserele mobile.

Kimchi poate fi instalat pe cea mai recentă versiune a RHEL, Fedora, openSUSE și Ubuntu. În acest ghid, am folosit Ubuntu 14.10 ca gazdă KVM.

Înainte de a configura kimchi, trebuie să instalați următoarele pachete dependente.

$ sudo apt-get install gcc make autoconf automake gettext git python-cherrypy3 python-cheetah python-libvirt libvirt-bin python-imaging python-pam python-m2crypto python-jsonschema qemu-kvm libtool python-putiltpython-ippoport python-ldap python-lxml nfs-common open-iscsi lvm2 xsltproc python-parted nginx firewalld python-guestfs libguestfs-tools python-requests websockify novnc spice-html5 wget

Sistemul vă va cere următoarele detalii în timpul instalării pachetelor.

1. OK la configurarea Postfix.

2. Selectați Site Internet pe tipul general de configurație de e-mail.

3. Introduceți FQDN-ul dvs. și apoi selectați OK.

Odată instalat, descărcați cea mai recentă versiune de kimchi de pe github.

$ wget https://github.com/kimchi-project/kimchi/archive/master.zip

Dezarhivați fișierul descărcat.

$ unzip master.zip $ cd kimchi-master/

Construiți kimchi folosind următoarea comandă.

$ ./autogen.sh --system

$ make $ sudo make install # Opțional dacă rulează din arborele sursă

$ sudo kimchid --host=0.0.0.0

Accesați kimchi folosind browserul web, https://localhost:8001. Vi se va cere să vă autentificați, să utilizați acreditările de sistem pe care le utilizați în mod normal pentru autentificarea la sistem.


După ce te-ai autentificat, vei primi o pagină ca mai jos. Aceasta arată lista de mașini virtuale invitate care rulează pe gazda curentă, aveți butoane pentru a efectua oprirea, repornirea și conectarea la consolă făcând clic pe acțiune.


Pentru a crea o nouă mașină pentru oaspeți, faceți clic pe semnul + din colțul din dreapta. Dacă utilizați această opțiune pentru a crea o mașină, aceasta se va face prin șabloane.


Puteți gestiona șabloanele vizitând meniul de șabloane. Pentru a crea un șablon nou, faceți clic pe semnul + din colțul din dreapta. Puteți crea un șablon folosind imagini ISO, puteți plasa imagini ISO pe /var/lib/kimchi/isos sau puteți utiliza unul la distanță.


Puteți gestiona pool-ul de stocare accesând meniul de stocare, acolo puteți adăuga un nou spațiu de stocare făcând clic pe semnul +. Acceptă adăugarea de stocare pe canale de fibră NFS, iSCSI și SCSI.


Rețeaua poate fi gestionată accesând meniul de rețea, puteți crea o nouă rețea cu rețea izolată, NAT și prin punte.


KVM sau Kernel Virtual Module este un modul de virtualizare pentru nucleul Linux care vă permite să vă transformați computerul într-un hypervisor pentru a gestiona mașinile virtuale. Acest modul funcționează la nivel de kernel și acceptă tehnologii de accelerare hardware, cum ar fi Intel VT și AMD SVM.

De la sine software KVM în spațiul utilizatorului nu virtualizează nimic. În schimb, folosește fișierul /dev/kvm pentru a configura spații de adrese virtuale pentru mașina oaspete din kernel. Fiecare aparat oaspete va avea propria sa placa video, retea si placa de sunet, HDDși alte echipamente.

De asemenea, sistemul guest nu va avea acces la componentele sistemului de operare real. Mașina virtuală rulează într-un spațiu complet izolat. Puteți utiliza kvm atât pe un sistem GUI, cât și pe servere. În acest articol, vă vom ghida prin instalarea kvm Ubuntu 16.04.

Înainte de a trece la instalarea KVM în sine, trebuie să verificați dacă procesorul acceptă accelerarea virtualizării hardware de la Intel-VT sau AMD-V. Pentru a face acest lucru, executați următoarea comandă:

egrep -c "(vmx|svm)" /proc/cpuinfo

Dacă rezultatul este 0, atunci procesorul dvs. nu acceptă virtualizarea hardware, dacă este 1 sau mai mult, atunci puteți utiliza KVM pe mașina dvs.

Acum putem trece la instalarea KVM, un set de programe poate fi obținut direct din depozitele oficiale:

sudo apt install qemu-kvm libvirt-bin bridge-utils virt-manager cpu-checker

Am instalat nu numai utilitarul kvm, ci și biblioteca libvirt, precum și managerul de mașini virtuale. După finalizarea instalării, trebuie să adăugați utilizatorul la grupul libvirtd, deoarece numai root și utilizatorii acestui grup pot folosi mașinile virtuale KVM:

sudo gpasswd -a USER libvirtd

După executarea acestei comenzi, deconectați-vă și conectați-vă din nou. Apoi, să verificăm dacă totul a fost instalat corect. Pentru a face acest lucru, utilizați comanda kvm-ok:

INFORMAȚII: /dev/kvm există
Se poate folosi accelerația KVM

Dacă totul a fost făcut corect, atunci veți vedea același mesaj.

Utilizarea KVM pe Ubuntu 16.04

Ați finalizat sarcina de a instala kvm pe Ubuntu, dar nu puteți utiliza încă acest mediu de virtualizare, dar încă trebuie configurat. În continuare, ne vom uita la modul în care se realizează configurarea kvm a Ubuntu. Mai întâi trebuie să configurați rețeaua. Trebuie să creăm o punte cu care mașina virtuală se va conecta la rețeaua computerului.

Configurarea podului în NetworkManager

Acest lucru se poate face în mai multe moduri, de exemplu, puteți utiliza programul de configurare a rețelei NetworkManager.

Faceți clic pe pictograma NetworkManager din panou, apoi selectați schimba conexiunile, apoi faceți clic pe butonul Adăuga:

Apoi selectați tipul de conexiune Podși apăsați Crea:

În fereastra care se deschide, faceți clic pe butonul Adăuga, pentru a conecta puntea noastră la conexiunea la internet:

Selectați din listă ethernetși apăsați Crea:

În fereastra următoare, selectați în câmp dispozitiv, interfata retea, cu care ar trebui conectat podul nostru:

Acum veți vedea puntea dvs. în lista de conexiuni de rețea. Rămâne să reporniți rețeaua pentru a aplica complet modificările, pentru a face acest lucru, rulați:

Setarea manuală a podului

Mai întâi trebuie să instalați setul de utilitare bridge-utils dacă nu ați făcut deja:

sudo apt install bridge-utils

Apoi, folosind programul brctl, putem crea puntea de care avem nevoie. Pentru a face acest lucru, utilizați următoarele comenzi:

sudo brctl addbr bridge0
$ sudo ip addr show
$ sudo addif bridge0 eth0

Prima comandă adaugă dispozitivul br0 bridge, cu a doua trebuie să determinați care interfață de rețea este conexiunea principală la rețeaua externă, în cazul meu este eth0. Și cu ultima comandă, legăm bridge br0 la eth0.

Acum trebuie să adăugați câteva linii la setările de rețea, astfel încât totul să se ridice automat după ce sistemul pornește. Pentru a face acest lucru, deschideți fișierul /etc/network/interfaces și adăugați următoarele linii acolo:

sudo gedit /etc/network/interfaces

loopback
auto lo bridge0
iface lo inet loopback
iface bridge0 inet dhcp
bridge_ports eth0

Când setările sunt adăugate, reporniți rețeaua:

sudo systemctl reporniți rețeaua

Acum, instalarea și configurarea KVM sunt finalizate și puteți crea prima mașină virtuală. După aceea, puteți vizualiza podurile disponibile cu comanda:

Crearea de mașini virtuale KVM

Configurarea Ubuntu KVM este completă și acum putem trece la utilizarea acesteia. Mai întâi, să ne uităm la lista de mașini virtuale deja existente:

virsh -c qemu:///listă de sistem

E gol. Puteți crea o mașină virtuală prin terminal sau în interfața grafică. Pentru a construi din terminal, utilizați comanda virt-install. Mai întâi, să mergem la folderul libvirt:

cd /var/lib/libvirt/boot/

Pentru a instala CentOS, comanda va arăta astfel:

sudo virt-install \
--virt-type=kvm \
--name centos7\
--ram 2048\
--vcpus=2 \
--os-variant=rhel7 \
--hvm\
--cdrom=/var/lib/libvirt/boot/CentOS-7-x86_64-DVD-1511.iso \
--network=bridge=br0,model=virtio \
--graphics vnc\
--disk path=/var/lib/libvirt/images/centos7.qcow2,size=40,bus=virtio,format=qcow2

Să aruncăm o privire mai atentă la ceea ce înseamnă parametrii acestei comenzi:

  • tip virt- tip de virtualizare, în cazul nostru kvm;
  • Nume- Nume mașină nouă;
  • Berbec- cantitatea de memorie în megaocteți;
  • vcpus- numărul de nuclee de procesor;
  • varianta os- tip de sistem de operare;
  • CD ROM- imaginea de instalare a sistemului;
  • punte-rețea - pod de rețea, pe care l-am înființat mai devreme;
  • grafică- cum se obține acces la interfața grafică;
  • calea discului- adresa noului hard disk pentru această mașină virtuală;

După finalizarea instalării mașinii virtuale, puteți afla setările de conectare prin VNC folosind comanda:

sudo virsh vncdisplay centos7

Acum puteți introduce datele primite în clientul VNC și vă puteți conecta la mașina virtuală chiar și de la distanță. Pentru Debian, comanda va fi ușor diferită, dar totul arată similar:

Accesați folderul pentru imagini:

cd /var/lib/libvirt/boot/

Puteți descărca imaginea de instalare de pe Internet dacă este necesar:

sudo wget https://mirrors.kernel.org/debian-cd/current/amd64/iso-dvd/debian-8.5.0-amd64-DVD-1.iso

Apoi, să creăm o mașină virtuală:

sudo virt-install \
--virt-type=kvm \
--name=debina8 \
--ram=2048 \
--vcpus=2 \
--os-variant=debian8 \
--hvm\
--cdrom=/var/lib/libvirt/boot/debian-8.5.0-amd64-DVD-1.iso \
--network=bridge=bridge0,model=virtio \
--graphics vnc\
--disk path=/var/lib/libvirt/images/debian8.qcow2,size=40,bus=virtio,format=qcow2

Acum să vedem din nou lista de mașini disponibile:

virsh -c qemu:///listă de sistem

Pentru a porni mașina virtuală, puteți utiliza comanda:

sudo virsh start nume de gazdă

A opri:

sudo virsh shutdown nume de gazdă

Pentru a trece în modul repaus:

sudo virsh suspend numele gazdă

Pentru a reporni:

sudo virsh repornire nume de gazdă

sudo virsh resetează numele gazdei

Pentru a elimina complet o mașină virtuală:

sudo virsh distruge numele gazdă

Crearea de mașini virtuale în GUI\

Dacă aveți acces la o interfață grafică, atunci nu este nevoie să utilizați un terminal, puteți utiliza interfața grafică completă a managerului de mașină virtuală Virtual Manager. Programul poate fi lansat din meniul principal:

Pentru a crea o mașină nouă, faceți clic pe pictograma cu pictograma monitorului. În continuare, va trebui să selectați o imagine ISO a sistemului dvs. De asemenea, puteți utiliza o unitate CD/DVD reală:

Pe ecranul următor, selectați cantitatea de memorie care va fi disponibilă pentru mașina virtuală, precum și numărul de nuclee de procesor:

Pe acest ecran, trebuie să selectați dimensiunea hard disk-ului care va fi disponibilă pe mașina dvs.:

La ultimul pas al expertului, trebuie să verificați corectitudinea setărilor mașinii, precum și să introduceți numele acesteia. De asemenea, trebuie să specificați puntea de rețea prin care mașina se va conecta la rețea:

După aceea, mașina va fi gata de utilizare și va apărea în listă. Îl puteți lansa folosind triunghiul verde din bara de instrumente manager.

concluzii

În acest articol, am analizat cum se realizează instalarea Ubuntu 16.04 KVM, cum să pregătim pe deplin acest mediu pentru lucru, precum și cum să creați mașini virtuale și să le folosiți. Dacă aveți întrebări, întrebați în comentarii!

La sfârșit, o prelegere de la Yandex despre ce este virtualizarea în Linux: