Indice general al seriei: Rețele de calculatoare pentru IMM-uri: Introducere
Titlul acestei postări se referă la o serie de comenzi de consolă care încep cu „virt- « și care poate fi util în anumite circumstanțe. Vom oferi doar o scurtă descriere a fiecăruia și câteva exemple de utilizare. Repetăm că: Nu putem înlocui manualele care însoțesc fiecare comandă. Vă sugerăm cu tărie verificați acele pagini rulând omul virt-comandă.
- Obiectivul fundamental al acestui articol este de a continua să arate universul larg care este în prezent Virtualizarea în Linux folosind Qemu-KVM Hypervisor. Deși în titlu scriem numele distribuției «Debian«, principiile generale sunt aplicabile oricarei alte distributii prin comenzile specifice fiecaruia dintre ele. În special cele legate de căutarea, descrierea și instalarea pachetelor, printre altele..
Înainte de a continua cu citirea, recomandăm vizita articolul anterior: Qemu-KVM + Virt-Manager pe Debian - Rețea computerizată pentru IMM-uri.
Când se utilizează comenzile?
În multe ocazii, gestionăm de la distanță un server de suport pentru virtualizare cu Qemu-KVM instalat și, din anumite motive, nu avem interfața grafică a Manager de mașini virtuale - Virt Manager:
- Caz tipic, când accesăm serverul la distanță de la o stație Windows prin PuTTy, sau oricare alta dintre multele alternative care există pentru a se conecta prin SSH cu un server Debian GNU/Linux, iar acesta din urmă nu are niciun suport instalat pentru «X«, Sau suport grafic.
- Vrem pur și simplu să gestionăm mașinile virtuale pe serverul local sau la distanță folosind comenzile consolei.
Instalat cu libvirt-clients
În anterioară articol instalăm pachetul libvirt-cos, și ca parte a procesului a fost instalat libvirt-clienți. Dacă rulăm într-o consolă:
buzz @ sysadmin: ~ $ sudo dpkg -L libvirt-clients | grep / bin / usr / bin / usr / bin / virsh / usr / bin / virt-host-validate / usr / bin / virt-login-shell / usr / bin / virt-xml-validate / usr / bin / virt-pki-validate
- Virsh: programul virsh este principala interfață cu utilizatorul pentru gestionarea completă a domeniilor invitate – Număr de oaspeți. Este folosit pentru a lista, crea, întrerupe și închide domenii. Această comandă trebuie invocată cu permisiuni rădăcină. Are două moduri de a rula: în modul de comandă și în modul interactiv. Vom dedica un articol următor lui virsh.
- virt-host-validate: instrument care permite validarea configurației gazdei - Gazdă, astfel încât să poată suporta toți driverele Hypervisor - hypervisor. Pentru rezultate corecte, comanda trebuie să fie rulată cu permisiuni rădăcină.
- virt-login-shell: comanda de executare a coajă personalizat pentru un utilizator normal într-un container LXC, al cărui nume este același cu cel al utilizatorului care îl invocă. Dacă containerul nu rulează, comanda virt-login-shell va încerca să-l pornească. Această comandă nu poate fi invocată cu permisiunile utilizatorului rădăcină. Fișierul de configurare foarte explicit pentru acest program este /etc/libvirt/virt-login-shell.conf.
- virt-xml-validate: validați fișierele XML de la libvirt comparându-le cu o schemă - schemă valabil. Dacă executăm, vom obține o listă de nume valide ale schemelor om virt-xml-validate.
- virt-pki-validate: folosit pentru a valida dacă fișierele PKI ale libvirt sunt corect configurate, atât pe partea serverului securizat, cât și pe clientul care va folosi protocolul de criptare TLS pentru a accesa de la distanță serverul. Execuția acestuia va fi necesară dacă am activat administrarea de la distanță prin TLS și SSL. Capitolul 22.2 al documentului Ghid de implementare și administrare a virtualizării, este dedicat acestei soluții. Noi sugerăm că rețelele noastre de afaceri folosesc administrare la distanță prin SSH, cea mai simplă și mai sigură metodă pentru un Business LAN, căreia îi vom dedica un articol ulterior.
Instalat cu virtisnt
În articolul anterior, am instalat și pachetul virt-manager. Ca parte a acestui proces, pachetul a fost instalat a fierbe. Dacă vrem să știm ce comenzi conține cea din urmă, executăm:
byzz @ sysadmin: ~ $ sudo dpkg -L virtinst | grep / bin / usr / bin / usr / bin / virt-convert / usr / bin / virt-image / usr / bin / virt-xml / usr / bin / virt-install / usr / bin / virt-clone
- virt-convertit- comandă care convertește definițiile mașinilor virtuale în formate VMX y Ovf la formatul nativ libvirt XML. Formatul VMX este de obicei utilizat de VMware, în timp ce OVF «Deschideți formatul de virtualizare»Poate fi folosit de orice hypervisor susține-l.
- virt-imagine- Creează o mașină virtuală dintr-un fișier descriptor de imagine în format XML. Acest instrument special va fi eliminat din versiunile viitoare ale a fierbe, așa Nu sugerăm utilizarea sa.
- virt-xml: Permite editarea fișierelor XML native utilizate de libvirt, folosind opțiunile din linia de comandă.
- virt-install: instrument de linie de comandă care vă permite să creați noi mașini virtuale pe Hypervisor-uri precum KVM, Xen sau Containers Linux care utilizează biblioteca de gestionare a hypervisorului „Libvirt”. Acest instrument acceptă instalarea grafică dacă folosim, de exemplu, VNC Virtual Network Computing, sau CONDIMENT. De asemenea, acceptă pe deplin modul consolă sau text. Utilizând-o, putem crea o mașină virtuală cu unul sau mai multe hard disk-uri, una sau mai multe plăci de rețea, dispozitive de sunet, dispozitive fizice USB sau PCI etc. Mediile de instalare pot fi locale, la distanță, publicate folosind protocolul nativ UNIX NFS Network File System, HTTP, FTP. etc.
- virt-clonă- Instrument de linie de comandă pentru a clona mașinile virtuale existente folosind biblioteca de gestionare a hypervisorului „Libvirt”. Copiați practic imaginea unei mașini virtuale și creați un invitat nou - Oaspete cu configurație hardware identică. Elementele hardware care necesită unicitate, de exemplu adresa hardware a unei plăci de rețea, vor fi actualizate pentru a evita coliziunile sau zgomotul între vechiul și nou Oaspete.
virt-privitor
Acest instrument este instalat și când efectuați virt-manager. virt-privitor este un pachet separat.
- virt-privitor: ne permite să arătăm o consolă grafică, prin VNC sau SPICE, a unei anumite mașini virtuale, indiferent dacă este localizată local sau de la distanță. Ne putem referi la Oaspete pe care vrem să-l vedem folosind numele, ID-ul sau UUID-ul. Dacă mașina virtuală nu rulează, virt-viewer va aștepta să pornească.
Alte comenzi „virt-” care pot fi instalate din pachete separate
- virt-bunătăți- Colectare de instrumente legate de virtualizare. Include un plugin pentru «Munin« și un script pentru a converti mașinile virtuale create cu VMware Workstation sau VMware Server, în formatul folosit în Qemu-KVM.
- virt-top: Afișează statisticile domeniilor virtualizate. Un fel de top o Htop pentru mașini virtuale
Instalat cu qemu-utils
Deși numele acestor instrumente nu începe cu virtute, cu siguranță va trebui să folosim unele dintre ele la un moment dat, în special cea legată de imaginile de disc ale mașinilor virtuale.
Le putem invoca după instalarea fișierului Platforma de virtualizare Qemu-Kvm, așa cum este indicat în articolul precedent. Daca vrem sa stim ce comenzi ne-a lasat pachetul la dispozitie qemu-utils, trebuie doar să rulăm:
buzz @ sysadmin: ~ $ sudo dpkg -L qemu-utils | grep / bin / usr / bin / usr / bin / qemu-img / usr / bin / qemu-nbd / usr / bin / qemu-io
Dacă în loc să discrimineze prin / cos am fi făcut-o pentru / sbin, am obține un alt rezultat pe care îl lăsăm în seama dvs.
- qemu-img: ne permite să creăm, să convertim și/sau să modificăm imagini ale discurilor care nu funcționează sau care sunt In afara liniei.
Noi sugerăm rulați comanda om qemu-img. Vom sublinia doar că nu ar trebui să folosim NICIODATĂ această comandă pentru modifica orice imagine care este utilizată de orice mașină virtuală sau de orice alt proces, deoarece poate distruge imaginea. Nici nu trebuie să consultăm datele unei imagini aflate în proces de modificare, deoarece putem găsi inconsecvențe în starea acesteia..
Exemple de utilizare a unora dintre comenzi
virt-host-validate
buzz @ sysadmin: ~ $ virt-host-validate QEMU: Verificarea virtualizării hardware: PASS QEMU: Verificarea dispozitivului /dev/kvm: PASS QEMU: Verificarea dispozitivului /dev/vhost-net: WARN (Încărcați modulul „vhost_net” pentru a îmbunătăți performanța rețelei virtio) QEMU: Verificarea pentru device /dev/net/tun: PASS LXC: Verificare pentru Linux >= 2.6.26: PASS buzz @ sysadmin: ~ $ sudo virt-host-validate [sudo] parola pentru buzz: QEMU: Verificarea virtualizării hardware: PASS QEMU: Verificarea dispozitivului /dev/kvm: PASS QEMU: Verificarea dispozitivului /dev/vhost-net: PASS QEMU: Verificarea dispozitivului /dev/net/tun : PASS LXC: Verificare pentru Linux >= 2.6.26 : PASS
virt-xml-validate
buzz @ sysadmin: ~ $ sudo virt-xml-validate /etc/libvirt/qemu/dns.xml /etc/libvirt/qemu/dns.xml validează buzz@sysadmin:~$ sudo virt-xml-validate /etc/libvirt/qemu/networks/default.xml /etc/libvirt/qemu/networks/default.xml validează
qemu-img
buzz @ sysadmin: ~ $ qemu-img check /tera/vmware/omicron/omicron.vmdk Nu s-au găsit erori pe imagine. buzz @ sysadmin: ~ $ qemu-img info /tera/vmware/omicron/omicron.vmdk imagine: /tera/vmware/omicron/omicron.vmdk format fișier: vmdk dimensiune virtuală: 20G (21474836480 octeți) dimensiune disc: 3.6G dimensiune_cluster: 65536 Format informații specifice: cid: 1473577509 cid părinte: 4294967295 tip creație: monolithicSparse dimensiune fișier:0 virtuale:21474836480 extents:65536 vmware/omicron/omicron.vmdk dimensiune cluster: XNUMX format: buzz @ sysadmin: ~ $ qemu-img info /tera/vms/omicron.raw imagine: /tera/vms/omicron.raw format fișier: brut dimensiune virtuală: 20G (21474836480 octeți) dimensiune disc: 3.4G buzz @ sysadmin: ~ $ qemu-img info /tera/vms/miweb.qcow2 imagine: /tera/vms/miweb.qcow2 format fișier: qcow2 dimensiune virtuală: 10G (10737418240 octeți) dimensiune disc: 4.5G dimensiune_cluster: 65536 Format informații specifice: compat: 1.1 lazy refcounts: false buzz@sysadmin:~$ sudo qemu-img convert -p /tera/vms/omicron.raw -O qcow2 /tera/vms/omicron.qcow2 (27.56 / 100%) buzz @ sysadmin: ~ $ qemu-img info /tera/vms/omicron.qcow2 imagine: /tera/vms/omicron.qcow2 format fișier: qcow2 dimensiune virtuală: 20G (21474836480 octeți) dimensiune disc: 3.5G dimensiune_cluster: 65536 Format informații specifice: compat: 1.1 lazy refcounts: false
buzz@sysadmin:~$ sudo qemu-img create -f qcow2 /tera/vms/hyp2.qcow2 20G Formatare „/tera/vms/hyp2.qcow2”, fmt=qcow2 size=21474836480 encryption=off cluster_size=65536 lazy_refcounts=off buzz @ sysadmin: ~ $ sudo qemu-img info /tera/vms/hyp2.qcow2 imagine: /tera/vms/hyp2.qcow2 format fișier: qcow2 dimensiune virtuală: 20G (21474836480 octeți) dimensiune disc: 196K dimensiune_cluster: 65536 Format informații specifice: compat: 1.1 lazy refcounts: false
virt-xml
Mai întâi, creăm un nou album:
buzz@sysadmin:~$ sudo qemu-img create -f qcow2 /tera/vms/dns2.qcow2 10G
Apoi îl alăturăm domeniului „dns” existent:
buzz@sysadmin:~$ virt-xml --connect qemu:///system dns --add-device --disk /tera/vms/dns2.qcow2 --confirm --- XML original +++ XML modificat @@ -128,5 +128,10 @@ + + + + + Definiți „dns” cu XML modificat? (da / n): da Domeniul „dns” a fost definit cu succes.
La sfârșitul articolului oferim structura completă a fișierului /etc/libvirt/qemu/dns.xml nou modificat.
virt-convertit
Să convertim o mașină virtuală creată folosind VMware Workstation spre format libvirt, dar nu înainte de a specifica că formatul hard diskului convertit este qcow2și, de asemenea, că noua imagine a mașinii virtuale este creată în depozitul principal / tera / vms. De asemenea, dorim ca rezultatul comenzii să fie cât mai explicit posibil și de aceea folosim opțiunea -d.
buzz @ sysadmin: ~ $ sudo virt-convert -d /tera/vmware/miweb/ --disk-format qcow2 --destination /tera/vms
Ulterior, virt-viewerul se conectează automat la noul invitat convertit și putem vedea întregul său proces de pornire.
virt-clonă
Să clonăm mașina virtuală «dns„:
buzz @ sysadmin: ~ $ virt-clone --connect qemu: /// system -o dns --auto-clone Atribuirea „dns-clone.qcow2” | 10 GB 00:20 Maparea „dns2-clone.qcow2” | 10 GB 00:01 Clona „dns-clone” a fost creată cu succes.
Verificăm folosind comanda Virsh, care este o previzualizare a următorului articol:
buzz @ sysadmin: ~ $ sudo virsh list Numele Idului Stare ----------------------------------------------- ----- buzz @ sysadmin: ~ $ sudo virsh list --all Id Nume Stare ------------------------------------------------ ----- - dns oprit - dns-clone oprit - miweb oprit buzz @ sysadmin: ~ $ sudo virsh start dns-clone Domeniul dns-clonă a început
buzz @ sysadmin: ~ $ virt-viewer --connect qemu: /// system dns-clone
virt-install
Vrem să creăm o mașină virtuală numită «WordPress»Pentru a găzdui site-ul Intranet de afaceri. Nu va fi publicat pe internet. Că are aproximativ 1024 de megaocteți de RAM, un hard disk de 80 de gigabiți de creștere dinamică, care se bazează pe Debian Jessie și este conectat la rețea «lipsă“.
Pentru a ne ușura viața, mai întâi creăm imaginea de disc folosind qemu-img:
buzz@sysadmin:~$ sudo qemu-img create -f qcow2 /tera/vms/wordpress.qcow2 80G Formatare „/tera/vms/wordpress.qcow2”, fmt=qcow2 size=85899345920 encryption=off cluster_size=65536 lazy_refcounts=off
Apoi, creăm mașina și începem procesul de instalare:
buzz @ sysadmin: ~ $ sudo virt-install --connect qemu: /// system --virt-type = kvm \ --name wordpress --ram 1024 --vcpus = 1 \ --disk /tera/vms/wordpress.qcow2 \ --cdrom /home/buzz/isos/Linux/debian-8/debian-8.0.0-amd64-CD-1.iso \ --os-type linux --network network = implicit \ --descriere wordpress.desdelinux.ventilator
virt-top
buzz @ sysadmin: ~ $ virt-top --connect qemu: /// system virt-top 15:39:21 - x86_64 2 / 2CPU 1600MHz 3863MB 2 domenii, 2 active, 2 rulante, 0 dormitoare, 0 întrerupte, 0 inactive D: 0 O: 0 X: 0 CPU: 0.7% Mem: 768 MB 768 MB de clienți) ID S RDRQ WRRQ RXBY TXBY% CPU% MEM TIME NAME 22 R 0 0 104 0 0.3 6.0 0: 11.49 dns 21 R 0 0 104 0 0.3 13.0 0: 13.42 miweb
Structura fișierului dns.xml
La început poate părea puțin dificil de înțeles structura fișierului de definiție al unei mașini virtuale sau Oaspete, așa cum este înțeles de hypervisorul Qemu-KVM și bibliotecile aferente, cum ar fi libvirt. Fișierul este în formatul standard.xml. Este structurat prin blocuri de definiție, cuprinse în blocul principal «domeniu“.
....
În cadrul acelui bloc vom găsi definiții ale întregii mașini virtuale:
- numele echipei
- uuidul echipei
- cantitatea de RAM
- numărul de procesoare
- tipul de sistem de operare și arhitectura acestuia. dispozitiv de cizmă.
- caracteristici pe care le acceptă, cum ar fi ACPI „Interfața de control automat al puterii”, APM „Gestionarea automată a energiei” și PAE.
- Modelul (modelele) CPU și caracteristicile acestora
- setarea ceasului: dacă este UTC „United Time Cordinate” sau nu.
- răspuns la evenimente precum închiderea, repornirea sau blocarea sistemului
- dacă PM „Gestionarea energiei” are evenimentele „suspenda scrierea în memorie” și „suspenda scrierea pe hard disk” activate
- tipul de emulator al diferitelor dispozitive sau Dispozitive KVM
- pentru toate hard disk-urile: driver, tip de disc, cale fișier imagine, dispozitiv țintă, tip de magistrală, slot «slot» pci la care este conectat etc., in functie de disc virtual: IDE, SATA, SCSI, USB sau Virtio.
- dispozitive optice precum CDR
- numărul și tipul conectorilor USB
- slot PCI pentru disc IDE
- conector serial pentru comunicații
- conector paralel pentru imprimante
- plăci de rețea cu o adresă MAC unică, tip de placă de rețea, la ce slot PCI este conectat și la ce rețea virtuală se va conecta
- console de serie pty
- dispozitive de intrare precum pad «tabletă", Tastatură mouse"mouse", etc.
- placa video și memoria RAM, tipul, modelul, slotul, autobuzul etc.
- și încă un lung etcetera
Pe scurt, Ocean Sea de definiții și dispozitive care sunt necesare și susținute de hypervisor-ul Qemu-KVM și bibliotecile aferente, pentru a avea o mașină virtuală complet funcțională ca și cum ar fi o mașină reală.
buzz @ sysadmin: ~ $ sudo cat /etc/libvirt/qemu/dns.xml <!-- WARNING: THIS IS AN AUTO-GENERATED FILE. MODIFICĂRI LA EL ESTE PROBABIL DE A FI SUSCRISE ȘI PIERDUTE. Modificările la această configurație xml ar trebui făcute folosind: virsh edit dns sau altă aplicație folosind API-ul libvirt.
Livrări viitoare
- Comanda Virsh
- Administrarea de la distanță a hipervizoarelor și a mașinilor lor virtuale folosind SSH
Amintiți-vă că aceasta va fi o serie de articole de Rețele de calculatoare pentru IMM-uri. Vă așteptăm!
Mi-ați cerut feedback și iată ... 🙂
Serialul este foarte interesant, foarte complet. Învăț multe cu el, deși nu l-am încercat încă „în producție”.
În prezent termin un proiect care mă are foarte ocupat, dar cu siguranță voi folosi această serie ca referință. Mulțumesc pentru efortul enorm.
Mulțumesc Diego pentru feedback. Cel puțin știu că ceea ce am publicat îți este de folos. Și aveți dreptate în privința efortului mare pe care îl facem DesdeLinux pentru a vă oferi articole de calitate în limba spaniolă. Știm că aceste tipuri de postări nu sunt abundente și de aceea le scriem.
Articol cuprinzător și didactic, prieten fico, care include într-o postare comenzile virt-* folosite în KVM. Este foarte greu să găsești astfel de materiale în limba spaniolă. Cred că comanda virt-ce lipsea. In rest excelent
Mulțumesc pentru comentariu, prietene Zodiac. Este adevărat că comanda virt-ce lipsea. Am omis-o intenționat pentru că recomandarea de utilizare conform manualului său a lăsat în mine un gust prost. Până la urmă ceea ce am înțeles este că nu recomandă utilizarea lui
Foarte adevărat prieten Zodiac. După cum spune Diego în comentariul său, este un mare efort pe care îl facem DesdeLinux pentru a vă oferi articole de calitate în spaniolă. În afară de clasicele postări de tip copy and paste pe CD care abundă în satul WWW. Acest lucru ajută la formarea administratorilor de sistem. Cei care au urmat această serie vor fi realizat că intenționăm să acoperim cuprinzător, și într-o ordine logică, soluția pentru o rețea de afaceri mici sau mijlocii. Mulțumesc din nou tuturor pentru comentariile voastre.
Am tot făcut ceva cu smartphone-urile Android și nu am avut șansa să citesc un articol atât de bun, de data aceasta vreau doar să spun ceva. — Du-te ușor. Pentru un bun înțelegător...
Crespo88, articolul poate fi cam lung, dar nu sunt adepta tăierii unui subiect anume ca acesta în mai multe postări, dacă la asta vrei să spui. Complexitatea relativă a conținutului nu este vina mea, este problema virtualizării în sine. 😉
Nu mă refeream la asta, excelent articol ca întotdeauna. Adică abordezi subiecte foarte bune, adică cu o utilitate foarte utilă. „Mergi ușor” înseamnă că scapi. Hehehe, o imbratisare frate.
Mulțumesc frate pentru comentarii
Post foarte bun ... Didactic, complet și pur și simplu perfect.
Acum, pentru cei care preferă să folosească acest tip de virtualizare, este mai bine să folosească oVirt (http://www.ovirt.org/), proiect pe care este construit Red Hat Virtualization și, de asemenea, Open Source. Astfel este posibil să accesezi opțiuni foarte avansate într-un mod foarte ușor, care sunt destul de complexe în consolă :).
http://www.ovirt.org/download/
http://www.ovirt.org/documentation/introduction/about-ovirt/
Noroc :).
Mulțumesc foarte mult, Petercheco pentru comentariu. În articolul anterior „Virtualizarea în Debian: Introducere”, într-un paragraf dedicat Alianței Deschise de Virtualizare, menționez oVirt ca unul dintre software-urile promovate de OVA. Cred că oVirt este pentru implementări mari. Pe de altă parte, el cere o stație de lucru dedicată acestuia, cu 4 gig-uri de RAM ca cantitate recomandată de memorie. Prietenul și colegul meu Eduardo Noel „enoel.corebsd@gmail.com” a instalat mai multe servere de virtualizare bazate pe CentOS 7 și le administrează minunat cu oVirt.
articol excelent partenerul meu, un alt exemplu de calitate pe care o ai
Multumesc prietene Denis pentru comentariul tau si laudele nemeritate pentru mine. Facem ce putem.
Deși mai trebuie să testez comenzile virt în home-lab, nu pot să nu recunosc că articolul este pur și simplu grozav, foarte practic și extrem de util, deoarece este concentrat pe terminalul care este cu adevărat preferatul meu datorită profilului meu. administrator de sistem.
Tot ce ține de administrarea locală sau de la distanță a VM-urilor fără a utiliza interfața grafică „Virt-Manager” este grozav.
Încă o dată, prietene Fico, te mărești împărtășindu-ți cu abnegație cunoștințele despre lumea Linux.
Cuvinte efuzive de la Wong și a continuat să studieze seria Virt Qemu-KVM cu mai mult zel.
Prietenul Wong: Comentariile ca ale dumneavoastră mă forțează să continui să scriu despre SME Networks. Mulți s-ar putea întreba de ce pun accentul pe Qemu-KVM, iar răspunsul este în articolul meu https://blog.desdelinux.net/virtualizacion-debian-introduccion-redes-computadoras-las-pymes/#Open_Virtualization_Alliance_OVA. Mai puțin despre el oVirt, pe care îl consider potrivit pentru setari mai mari decât o Rețea de IMM-uri, am discutat despre celelalte programe promovate de OVA. Atat de simplu
De ce să caut în afara depozitelor de programe ale fiecărei distribuții la care mă adresez, dacă există ceea ce am nevoie pentru a virtualiza la nivel de întreprindere?
Mulțumesc sincer pentru comentarii, prietene Wong!