Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • në shtëpi
  • Hekuri
  • Serveri i makinës virtuale në ubuntu. Mos kini frikë nga virtualizimi duke përdorur KVM

Serveri i makinës virtuale në ubuntu. Mos kini frikë nga virtualizimi duke përdorur KVM

Në Ubuntu, rekomandohet përdorimi i hipervizorit (menaxheri makina virtuale) KVM dhe biblioteka libvirt si mjete për menaxhimin e saj. Libvirt përfshin një sërë API softuerësh dhe aplikacione me porosi menaxhimi makina virtuale(VM) virt-menaxher ( GUI, GUI) ose virsh ( linja e komandës,CLI). Si menaxherë alternativë, ju mund të përdorni convirt (GUI) ose convirt2 (ndërfaqe WEB).

Aktualisht, vetëm hipervizori KVM mbështetet zyrtarisht në Ubuntu. Ky hipervizor është pjesë e kodit të kernelit operativ Sistemet Linux. Ndryshe nga Xen, KVM nuk mbështet paravirtualizimin, që do të thotë për ta përdorur atë, CPU-ja juaj duhet të mbështesë teknologjitë VT. Mund të kontrolloni nëse procesori juaj e mbështet këtë teknologji duke ekzekutuar komandën në terminal:

Nëse si rezultat merrni mesazhin e mëposhtëm:

INFO: /dev/kvm ekziston Mund të përdoret përshpejtimi KVM

Kjo do të thotë që KVM do të funksionojë pa probleme.

Nëse keni marrë mesazhin e mëposhtëm në dalje:

CPU-ja juaj nuk mbështet shtesat KVM Përshpejtimi i KVM-së NUK mund të përdoret

atëherë mund të përdorni akoma makinën virtuale, por do të jetë shumë më e ngadaltë.

    Instaloni sisteme 64-bit si mysafirë

    Alokoni më shumë se 2 GB RAM për sistemet e ftuar

Instalimi

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

Ky është një instalim në një server pa X, d.m.th. nuk përfshin një ndërfaqe grafike. Mund ta instaloni me komandën

Sudo apt-get install virt-manager

Pas kësaj, artikulli "Menaxheri i makinës virtuale" do të shfaqet në menu dhe, me një shkallë të lartë probabiliteti, gjithçka do të funksionojë. Nëse ende lind ndonjë problem, do t'ju duhet të lexoni udhëzimet në wiki anglisht.

Krijimi i një sistemi të ftuar

Procedura për krijimin e një sistemi të ftuar duke përdorur GUI është mjaft e thjeshtë.

Dhe këtu modaliteti i tekstit mund të përshkruhet.

qcow2

Kur krijoni një sistem duke përdorur ndërfaqen grafike si një hard disk, ju kërkohet ose të zgjidhni një skedar imazhi ekzistues ose të bllokoni pajisjen, ose të krijoni skedar i ri me të dhëna të papërpunuara (RAW). Megjithatë, kjo është larg nga e vetmja format në dispozicion dosjet. Nga të gjitha llojet e disqeve të listuara në man qemu-img, më fleksibil dhe modern është qcow2. Ai mbështet fotografitë, enkriptimin dhe kompresimin. Duhet të krijohet përpara se të krijohet një mysafir i ri.

Qemu-img krijoj -o preallocation=metadata -f qcow2 qcow2.img 20G

Sipas të njëjtit njeri qemu-img, paracaktimi i meta të dhënave (-o preallocation=metadata) e bën diskun fillimisht pak më të madh, por siguron performancë më të mirë në ato momente kur imazhi duhet të rritet. Në fakt, në në këtë rast Ky opsion ju lejon të shmangni një gabim të pakëndshëm. Imazhi i krijuar fillimisht zë më pak se një megabajt hapësirë ​​dhe rritet në madhësinë e specifikuar sipas nevojës. Sistemi i mysafirëve duhet ta shohë menjëherë këtë finale madhësia e specifikuar, megjithatë, gjatë fazës së instalimit ajo mund të shohë masa aktuale dosje. Natyrisht, do të refuzojë të instalohet në një hard disk 200 KB. Defekti nuk është specifik për Ubuntu; ai shfaqet të paktën në RHEL.

Përveç llojit të imazhit, më pas mund të zgjidhni metodën e lidhjes së tij - IDE, SCSI ose Virtio Disk. Performanca do të varet nga kjo zgjedhje nënsistemi i diskut. Nuk ka asnjë përgjigje të saktë të caktuar; ju duhet të zgjidhni bazuar në detyrën që do t'i caktohet sistemit të mysafirëve. Nëse sistemi i mysafirëveështë krijuar "për të parë", atëherë çdo metodë do të bëjë. Në përgjithësi, zakonisht është I/O që është ngushtica makinë virtuale, kështu që kur krijoni një sistem shumë të ngarkuar, kjo çështje duhet të merret sa më me përgjegjësi.

Po shkruaj këtë shënim për të demonstruar instalim hap pas hapi dhe vendosja e një makinerie virtuale të bazuar në KVM në Linux. Më parë kam shkruar për virtualizimin, ku kam përdorur të mrekullueshmen .

Tani jam përballur me një problem me qira. server i mirë me volum të madh kujtesë e gjallë dhe vëllimore hard drive. Por unë nuk dua të ekzekutoj projekte direkt në makinën pritës, kështu që do t'i ndaj në serverë të vegjël virtualë të veçantë që përdorin kontejnerë Linux ose Docker (do të flas për to në një artikull tjetër).

Të gjitha hostet moderne të cloud punojnë në të njëjtin parim, d.m.th. hoster në gjëndër e mirë ngre një tufë serverësh virtualë, të cilët i quanim VPS/VDS, dhe ua shpërndan përdoruesve, ose automatizon këtë proces (përshëndetje, DigitalOcean).

KVM (makina virtuale e bazuar në kernel) është softuer për Linux që përdor harduerin e procesorëve të përputhshëm me x86 për të punuar me teknologjinë e virtualizimit të Intel VT/AMD SVM.

Instalimi i KVM

Unë do të kryej të gjitha makinacionet e krijimit të një makine virtuale në Ubuntu 16.04.1 LTS OS. Për të kontrolluar nëse proceset tuaja mbështesin virtualizimin e harduerit bazuar në Intel VT/AMD SVM, ekzekutoni:

Grep -E "(vmx|svm)" /proc/cpuinfo

Nëse terminali nuk është bosh, atëherë gjithçka është në rregull dhe KVM mund të instalohet. Ubuntu zyrtarisht mbështet vetëm hipervizorin KVM (përfshirë me Kernelet Linux) dhe këshillon përdorimin e bibliotekës libvirt si një mjet për menaxhimin e saj, gjë që do të bëjmë më pas.

Ju gjithashtu mund të kontrolloni mbështetjen e virtualizimit të harduerit në Ubuntu duke përdorur komandën:

Nëse ka sukses, do të shihni diçka si kjo:

INFO: /dev/kvm ekziston Mund të përdoret përshpejtimi KVM

Instaloni paketat për të punuar me KVM:

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

Nëse keni akses në guaskë grafike sistemi, mund të instaloni menaxherin libvirt GUI:

Sudo apt-get install virt-manager

Përdorimi i virt-manager është mjaft i thjeshtë (jo më i vështirë se VirtualBox), kështu që në këtë artikull do të flasim për opsionin e konsolës për instalimin dhe konfigurimin e një serveri virtual.

Instalimi dhe konfigurimi i një serveri virtual

Në versionin e konsolës së instalimit, konfigurimit dhe menaxhimit të sistemit, një mjet i domosdoshëm është mjeti virsh (një shtesë në bibliotekën libvirt). Ajo ka nje numer i madh i opsionet dhe parametrat, pershkrim i detajuar mund të merret si kjo:

Njeri virsh

ose telefononi standardin "ndihmë":

Virsh ndihmë

I përmbahem gjithmonë duke ndjekur rregullat kur punoni me serverë virtualë:

  1. I ruaj imazhet e sistemit operativ iso në drejtorinë /var/lib/libvirt/boot
  2. I ruaj imazhet e makinës virtuale në drejtorinë /var/lib/libvirt/images
  3. Unë i caktoj në mënyrë eksplicite çdo makinerie të re virtuale adresën e vet statike IP nëpërmjet Server DHCP hipervizor.

Le të fillojmë instalimin e makinës së parë virtuale (server 64-bit Ubuntu 16.04 LTS):

Cd /var/lib/libvirt/boot sudo wget http://releases.ubuntu.com/16.04/ubuntu-16.04.1-desktop-amd64.iso

Pasi të keni shkarkuar imazhin, filloni instalimin:

Sudo virt-install \ --virt-type=kvm \ --emri ubuntu1604\ --ram 1024 \ --vcpus=1 \ --os-variant=ubuntu16.04 \ --hvm \ --cdrom=/var/ lib/libvirt/boot/ubuntu-16.04.1-server-amd64.iso \ --network network=default,model=virtio \ --graphics vnc \ --disk path=/var/lib/libvirt/images/ubuntu1604. img,size=20,bus=virtio

Përkthimi i të gjithë këtyre parametrave në " gjuha njerëzore“, rezulton se po krijojmë një makinë virtuale me Ubuntu 16.04 OS, 1024 MB RAM, 1 procesor, një kartë rrjeti standard (makina virtuale do të hyjë në internet si për shkak të NAT), 20 GB HDD.

Vlen t'i kushtohet vëmendje parametrit --os-variant, i tregon hipervizorit se cilit OS duhet t'i përshtaten cilësimet.
Listë opsionet e disponueshme Sistemi operativ mund të merret duke ekzekutuar komandën:

Osinfo-query os

Nëse një mjet i tillë nuk është në sistemin tuaj, atëherë instaloni:

Sudo apt-get install libosinfo-bin

Pas fillimit të instalimit, mesazhi i mëposhtëm do të shfaqet në tastierë:

Instalimi i domenit është ende në proces. Mund të rilidheni me tastierën për të përfunduar procesin e instalimit.

Kjo është një situatë normale, ne do të vazhdojmë instalimin nëpërmjet VNC.
Le të shohim se cili port është ngritur në makinën tonë virtuale (në terminalin tjetër, për shembull):

Virsh dumpxml ubuntu1604... ...

Porti 5900, më adresa lokale 127.0.0.1. Për t'u lidhur me VNC, duhet të përdorni Port Forwarding nëpërmjet ssh. Përpara se ta bëni këtë, sigurohuni që përcjellja tcp është e aktivizuar në daemon ssh. Për ta bërë këtë, shkoni te cilësimet sshd:

Cat /etc/ssh/sshd_config | grep AllowTcpForwarding

Nëse asgjë nuk u gjet ose shihni:

AllowTcpForwarding nr

Pastaj ne redaktojmë konfigurimin në

AllowTcpForwarding po

dhe ristartoni sshd.

Konfigurimi i përcjelljes së portit

Ne ekzekutojmë komandën në makinën lokale:

Ssh -fN -l login -L 127.0.0.1:5900:localhost:5900 server_ip

Këtu kemi konfiguruar ssh përcjellja e portit Me port lokal 5900 në portin e serverit 5900. Tani mund të lidheni me VNC duke përdorur çdo klient VNC. Unë preferoj UltraVNC për shkak të thjeshtësisë dhe komoditetit të tij.

Pas lidhjes së suksesshme, ekrani do të shfaqet dritare standarde përshëndetje për fillimin e instalimit të Ubuntu:

Pas përfundimit të instalimit dhe rindezjes së zakonshme, do të shfaqet dritarja e hyrjes. Pas hyrjes, ne përcaktojmë adresën IP të makinës virtuale të krijuar rishtazi në mënyrë që më vonë ta bëjmë atë statike:

Ifconfig

Kujtojmë dhe shkojmë te makina pritës. Ne nxjerrim adresën mac të kartës së "rrjetit" të makinës virtuale:

Virsh dumpxml ubuntu1604 | grep "adresa mac"

Le të kujtojmë adresën tonë mac:

Redaktimi cilësimet e rrjetit hipervizor:

Sudo virsh net-edit default

Ne kërkojmë për DHCP dhe shtojmë këtë:

Duhet të duket diçka si kjo:

Në mënyrë që cilësimet të hyjnë në fuqi, duhet të rinisni serverin DHCP të hipervizorit:

Sudo virsh net-destroy default sudo virsh net-start rinisja e paracaktuar e shërbimit sudo libvirt-bin

Pas kësaj, ne rindisim makinën virtuale, tani ajo do të ketë gjithmonë adresën IP të caktuar për të - 192.168.122.131.

Ka mënyra të tjera për të vendosur një IP statike për një makinë virtuale, për shembull, duke redaktuar drejtpërdrejt cilësimet e rrjetit brenda sistemit të mysafirëve, por këtu është gjithçka që dëshiron zemra juaj. Sapo tregova opsionin që preferoj të përdor.

Për t'u lidhur me terminalin e makinës virtuale, ekzekutoni:

Ssh 192.168.122.131

Makina është gati për betejë.

Virsh: lista e komandave

Për të parë vrapimin host virtual(të gjitha ato të disponueshme mund të merren duke shtuar --të gjitha):

Lista sudo virsh

Mund të rindizni hostin:

Sudo virsh rinis $VM_NAME

Ndaloni një makinë virtuale:

Sudo virsh ndalesa $VM_NAME

Ekzekutoni ndalimin:

Sudo virsh shkatërron $VM_NAME

Sudo virsh fillon $VM_NAME

Çaktivizo:

Mbyllja e Sudo virsh $VM_NAME

Shto në autorun:

Sudo virsh nis automatikisht $VM_NAME

Shumë shpesh është e nevojshme të klononi një sistem për ta përdorur atë në të ardhmen si kornizë për sisteme të tjera operative virtuale; për këtë përdoret mjeti virt-clone.

Virt-klon --ndihmë

Ai klonon një makinë virtuale ekzistuese dhe ndryshon të dhënat e ndjeshme ndaj hostit, për shembull, adresën mac. Fjalëkalimet, skedarët dhe informacionet e tjera specifike të përdoruesit në klon mbeten të njëjta. Nëse adresa IP në makinën virtuale të klonuar është regjistruar manualisht, atëherë problemet me hyrjen SSH në klon mund të lindin për shkak të një konflikti (2 host me të njëjtën IP).

Përveç instalimit të një makinerie virtuale përmes VNC, është gjithashtu e mundur të përdoret X11Forwarding përmes programit virt-manager. Në Windows, për shembull, mund të përdorni Xming dhe PuTTY për këtë.

KVM ose Kernel Virtual Module është një modul virtualizimi për kernelin Linux që ju lejon ta ktheni kompjuterin tuaj në një hipervizor për menaxhimin e makinave virtuale. Ky modul funksionon në nivelin e kernelit dhe mbështet teknologjitë e përshpejtimit të harduerit si Intel VT dhe AMD SVM.

Vetvetiu software KVM në hapësirën e përdoruesit nuk virtualizon asgjë. Në vend të kësaj, ai përdor skedarin /dev/kvm për të konfiguruar hapësirat e adresave virtuale për mysafirin në kernel. Secili makinë mysafir do të ketë kartën e vet video, rrjetin dhe kartë zëri, HDD dhe pajisje të tjera.

Gjithashtu, sistemi i mysafirëve nuk do të ketë akses në komponentët e reales sistemi operativ. Makina virtuale funksionon në një hapësirë ​​krejtësisht të izoluar. Ju mund të përdorni kvm si në një sistem GUI ashtu edhe në serverë. Në këtë artikull do të shikojmë se si të instaloni kvm Ubuntu 16.04

Përpara se të vazhdoni me vetë instalimin e KVM, duhet të kontrolloni nëse procesori juaj mbështet përshpejtimi i harduerit virtualizimi nga Intel-VT ose AMD-V. Për ta bërë këtë, ekzekutoni komandën e mëposhtme:

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

Nëse rezultati kthen 0, atëherë procesori juaj nuk mbështet virtualizimin e harduerit, nëse 1 ose më shumë, atëherë mund të përdorni KVM në kompjuterin tuaj.

Tani mund të vazhdojmë me instalimin e KVM, një grup programesh mund të merren direkt nga depot zyrtare:

sudo apt instalo qemu-kvm libvirt-bin urë-përdor virt-manager cpu-checker

Ne instaluam jo vetëm programin kvm, por edhe bibliotekën libvirt, si dhe menaxherin e makinës virtuale. Pasi të përfundojë instalimi, duhet të shtoni përdoruesin tuaj në grupin libvirtd, sepse vetëm përdoruesit root dhe në këtë grup mund të përdorin makina virtuale KVM:

sudo gpasswd -a libvirtd USER

Pasi të ekzekutoni këtë komandë, dilni dhe identifikohuni përsëri. Tjetra, le të kontrollojmë nëse gjithçka është instaluar saktë. Për ta bërë këtë, përdorni komandën kvm-ok:

INFO: /dev/kvm ekziston
Mund të përdoret përshpejtimi KVM

Nëse gjithçka është bërë si duhet, do të shihni të njëjtin mesazh.

Përdorimi i KVM në Ubuntu 16.04

Ju keni përfunduar detyrën e instalimit të kvm në Ubuntu, por nuk mund ta përdorni ende këtë mjedis virtualizimi, por ende duhet të konfigurohet. Më pas, do të shikojmë se si është konfiguruar kvm Ubuntu. Së pari ju duhet të konfiguroni rrjetin tuaj. Duhet të krijojmë një urë me të cilën makina virtuale do të lidhet me rrjetin e kompjuterit.

Vendosja e një ure në NetworkManager

Kjo mund të bëhet në disa mënyra, për shembull, mund të përdorni programin e konfigurimit të rrjetit NetworkManager.

Klikoni ikonën NetworkManager në panel, më pas zgjidhni ndërroni lidhjet, pastaj klikoni butonin Shtoni:

Pastaj zgjidhni llojin e lidhjes Urë dhe shtypni Krijo:

Në dritaren që hapet, klikoni butonin Shtoni, për të lidhur urën tonë me lidhjen e internetit:

Nga lista, zgjidhni Ethernet dhe shtypni Krijo:

Në dritaren tjetër, zgjidhni në fushë pajisje, ndërfaqja e rrjetit, me të cilën duhet të lidhet ura jonë:

Tani në listë lidhjet e rrjetit do të shihni urën tuaj. E tëra që mbetet është të rindizni rrjetin për të zbatuar plotësisht ndryshimet, për ta bërë këtë, ekzekutoni:

Konfigurimi manual i urës

Së pari ju duhet të instaloni grupin e shërbimeve utilale të urës nëse nuk e keni bërë tashmë këtë:

sudo apt install bridge-utils

Më pas, duke përdorur programin brctl, mund të krijojmë urën që na nevojitet. Për ta bërë këtë, përdorni komandat e mëposhtme:

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

Komanda e parë shton pajisjen urë br0, me të dytën ju duhet të përcaktoni se cila ndërfaqe rrjeti është lidhja kryesore me rrjeti i jashtëm, në rastin tim është eth0. Dhe me komandën e fundit lidhim urën br0 me eth0.

Tani duhet të shtoni disa rreshta në cilësimet e rrjetit në mënyrë që gjithçka të fillojë automatikisht pasi të fillojë sistemi. Për ta bërë këtë, hapni skedarin /etc/network/interfaces dhe shtoni linjat e mëposhtme atje:

sudo gedit /etc/network/interfaces

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

Kur të shtohen cilësimet, rindizni rrjetin:

sudo systemctl rinis rrjetin

Tani instalimi dhe konfigurimi i KVM ka përfunduar plotësisht dhe ju mund të krijoni makinën tuaj të parë virtuale. Pas kësaj, ju mund të shikoni urat e disponueshme duke përdorur komandën:

Krijimi i makinave virtuale KVM

Cilësimet KVM Ubuntu përfunduar dhe tani ne mund të kalojmë në përdorimin e tij. Së pari, le të shohim listën e makinave virtuale ekzistuese:

lista virsh -c qemu:///system

Është e shprazur. Ju mund të krijoni një makinë virtuale përmes terminalit ose në ndërfaqen grafike. Për të krijuar nëpërmjet terminalit, përdorni komandën virt-install. Së pari le të shkojmë te dosja libvirt:

cd /var/lib/libvirt/boot/

Për Instalimet CentOS komanda do të duket kështu:

sudo virt-install\
--virt-type=kvm \
--emri centos7\
--ram 2048\
--vcpus=2 \
--os-variant=rhel7 \
--hvm\
--cdrom=/var/lib/libvirt/boot/CentOS-7-x86_64-DVD-1511.iso \
--rrjet=urë=br0,model=virtio \
--grafika vnc\
--rruga e diskut=/var/lib/libvirt/images/centos7.qcow2,size=40,bus=virtio,format=qcow2

Le të hedhim një vështrim më të afërt se çfarë nënkuptojnë parametrat e kësaj komande:

  • tip-virt- lloji i virtualizimit, në rastin tonë kvm;
  • emri- Emri makinë e re;
  • dash- sasia e memories në megabajt;
  • vcpus- numri i bërthamave të procesorit;
  • os-variant- lloji i sistemit operativ;
  • CD ROM - imazhi i instalimit sistemet;
  • rrjet-urë- ura e rrjetit që kemi konfiguruar më herët;
  • grafike- një mënyrë për të fituar akses në ndërfaqen grafike;
  • diskpath- adresë e re e vështirë disk për këtë makinë virtuale;

Pasi të përfundojë instalimi i makinës virtuale, mund të zbuloni parametrat e lidhjes VNC duke përdorur komandën:

sudo virsh vncekran centos7

Tani mund të futni të dhënat e marra në klientin tuaj VNC dhe të lidheni me makinën virtuale edhe nga distanca. Për Debian komanda do të jetë paksa e ndryshme, por gjithçka duket e ngjashme:

Shkoni te dosja për imazhet:

cd /var/lib/libvirt/boot/

Nëse është e nevojshme, mund të shkarkoni imazhin e instalimit nga Interneti:

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

Pastaj le të krijojmë një makinë virtuale:

sudo virt-install\
--virt-type=kvm \
--emri=debina8 \
--ram=2048\
--vcpus=2 \
--os-variant=debian8 \
--hvm\
--cdrom=/var/lib/libvirt/boot/debian-8.5.0-amd64-DVD-1.iso \
--rrjet=urë=urë0,model=virtio \
--grafika vnc\
--rruga e diskut=/var/lib/libvirt/images/debian8.qcow2,size=40,bus=virtio,format=qcow2

Tani le të shohim përsëri listën e makinave të disponueshme:

lista virsh -c qemu:///system

Për të nisur makinën virtuale, mund të përdorni komandën:

sudo virsh emri i makinerisë startuese

Të ndalosh:

sudo virsh emri i makinerisë së mbylljes

Për të kaluar në modalitetin e gjumit:

sudo virsh suspend emri i makinës

Për të rindezur:

Emri i makinës së rindezjes sudo virsh

sudo virsh rivendos emrin e makinës

Për heqje e plotë Makine virtuale:

sudo virsh shkatërroj emrin e makinës

Krijimi i makinave virtuale në GUI\

Nëse keni akses në një GUI, atëherë nuk ka nevojë të përdorni një terminal, mund të përdorni GUI-në e plotë të menaxherit virtual Makinat virtuale Menaxheri. Programi mund të niset nga menyja kryesore:

Për të krijuar një makinë të re, klikoni në ikonën me ikonën e monitorit. Më pas do t'ju duhet të zgjidhni Imazhi ISO sistemin tuaj. Ju gjithashtu mund të përdorni një disk të vërtetë CD/DVD:

Në ekranin tjetër, zgjidhni sasinë e memories që do të jetë e disponueshme për makinën virtuale, si dhe numrin e bërthamave të procesorit:

Në këtë ekran ju duhet të zgjidhni një madhësi hard drive, i cili do të jetë i disponueshëm në kompjuterin tuaj:

Aktiv hapi i fundit Si magjistar, do të duhet të kontrolloni nëse cilësimet e makinës janë të sakta dhe gjithashtu të shkruani emrin e saj. Ju gjithashtu duhet të specifikoni urën e rrjetit përmes së cilës makina do të lidhet me rrjetin:

Pas kësaj, makina do të jetë gati për përdorim dhe do të shfaqet në listë. Mund ta nisni duke përdorur trekëndëshin e gjelbër në shiritin e veglave të menaxherit.

konkluzionet

Në këtë artikull, ne shikuam se si të instaloni KVM Ubuntu 16.04, shikuam se si ta përgatisni plotësisht këtë mjedis për punë, si dhe si të krijoni makina virtuale dhe t'i përdorni ato. Nëse keni ndonjë pyetje, pyesni në komente!

Për të përfunduar, një leksion nga Yandex se çfarë është virtualizimi në Linux:

Personalisht, është më e lehtë për mua të mendoj për KVM (Makina virtuale e bazuar në kernel) si një nivel abstraksioni mbi teknologjitë e virtualizimit të harduerit Intel VT-x dhe AMD-V. Ne marrim një makinë me një procesor që mbështet një nga këto teknologji dhe bast për këtë Makinë Linux, në Linux instalojmë KVM, si rezultat kemi mundësinë të krijojmë makina virtuale. Kjo është përafërsisht se si funksionon hostimi në cloud, për shembull, Shërbimet Ueb të Amazon. Së bashku me KVM, Xen përdoret gjithashtu ndonjëherë, por një diskutim i kësaj teknologjie është përtej qëllimit të këtij postimi. Ndryshe nga teknologjitë e virtualizimit të kontejnerëve, për shembull, Docker, KVM ju lejon të ekzekutoni çdo OS si një sistem mysafir, por gjithashtu ka O Shpenzime më të larta për virtualizim.

Shënim: Hapat e përshkruar më poshtë janë testuar nga unë Ubuntu Linux 14.04, por në teori ato do të jenë në shumë aspekte po aq të vërteta sa për të tjerët Versionet e Ubuntu, dhe të tjerët Shpërndarjet Linux. Gjithçka duhet të funksionojë si në desktop ashtu edhe në server, të aksesuar përmes SSH.

Instalimi i KVM

Ne kontrollojmë nëse Intel VT-x ose AMD-V mbështetet nga procesori ynë:

grep -E "(vmx|svm)" /proc/cpuinfo

Nëse diçka nxehet, do të thotë se mbështetet dhe mund të vazhdoni.

Instalimi i KVM:

sudo apt-get përditësim
sudo apt-get instalo qemu-kvm libvirt-bin virtinst bridge-utils

Çfarë ruhet zakonisht ku:

  • /var/lib/libvirt/boot/ - imazhe ISO për instalimin e sistemeve të ftuar;
  • /var/lib/libvirt/images/ - imazhe hard disqet sisteme të ftuar;
  • /var/log/libvirt/ - këtu duhet të kërkoni të gjithë regjistrat;
  • /etc/libvirt/ - direktori me skedarë konfigurimi;

Tani që KVM është instaluar, le të krijojmë makinën tonë të parë virtuale.

Krijimi i makinës së parë virtuale

Zgjodha FreeBSD si sistemin e ftuar. Shkarkoni imazhin ISO të sistemit:

cd /var/lib/libvirt/boot/
sudo wget http:// ftp.freebsd.org/ path/ to/ some-freebsd-disk.iso

Makinat virtuale menaxhohen në shumicën e rasteve duke përdorur programin virsh:

sudo virsh --ndihmë

Para se të nisim makinën virtuale, do të na duhet të mbledhim disa informacione shtesë.

Ne shikojmë listën e rrjeteve të disponueshme:

sudo virsh net-listë

Shikoni informacionin rreth rrjet specifik(emërtuar si parazgjedhje):

sudo virsh net-info parazgjedhje

Le të shohim listën e optimizimeve të disponueshme për sistemet operative të ftuar:

Lista sudo virt-install --os-variant

Pra, tani krijojmë një makinë virtuale me 1 CPU, 1 GB RAM dhe 32 GB hapësirë ​​në disk, të lidhur me rrjetin e paracaktuar:

sudo virt-install\
--virt-type =kvm\
--emri freebsd10\
--ram 1024\
--vcpus=1\
--os-variant =freebsd8 \
--hvm\
--cdrom =/ var/ lib/ libvirt/ boot/ FreeBSD-10.2 -RELEASE-amd64-disc1.iso \
--rrjeti i rrjetit =default,model =virtio \
--grafika vnc\
--shtegu i diskut =/ var/ lib/ libvirt/ images/ freebsd10.img,size =32 ,bus =virtio

Ti mund te shohesh:

PARALAJMËRIM Nuk mund të lidhet me tastierën grafike: virt-viewer jo
instaluar. Ju lutemi instaloni paketën "virt-viewer".

Instalimi i domenit është ende në proces. Mund të lidheni sërish me tastierën
për të përfunduar procesin e instalimit.

Kjo është normale, kështu duhet të jetë.

Pastaj shikoni vetitë e makinës virtuale në formatin XML:

sudo virsh dumpxml freebsd10

Këtu janë më informacion të plotë. Kjo përfshin, për shembull, një adresë MAC, e cila do të na duhet më vonë. Tani për tani po gjejmë informacione për VNC. Në rastin tim:

Duke përdorur klientin tuaj të preferuar (Unë personalisht përdor Rammina), ne regjistrohemi përmes VNC, duke përdorur transferimin e portit SSH nëse është e nevojshme. Ne futemi direkt në instaluesin e FreeBSD. Atëherë gjithçka është si zakonisht - Next, Next, Next, marrim sistemin e instaluar.

Komandat Bazë

Le të shohim tani komandat bazë për të punuar me KVM.

Marrja e një liste të të gjitha makinave virtuale:

listë sudo virsh -- të gjitha

Marrja e informacionit për një makinë virtuale specifike:

sudo virsh dominfo freebsd10

Nisni makinën virtuale:

sudo virsh start freebsd10

Ndaloni makinën virtuale:

mbyllja sudo virsh freebsd10

Mezi gozhdoni makinën virtuale (pavarësisht emrit, kjo Jo fshirje):

sudo virsh shkatërron freebsd10

Rinisni makinën virtuale:

sudo virsh rindizni freebsd10

Klononi makinën virtuale:

sudo virt-klon -o freebsd10 -n freebsd10-klon \
--file /var/lib/libvirt/images/freebsd10-clone.img

Aktivizo/çaktivizo autorun:

sudo virsh autostart freebsd10
sudo virsh autostart --çaktivizoni freebsd10

Ekzekutimi i virsh në modalitetin e dialogut (të gjitha komandat në modalitetin e dialogut - siç përshkruhet më lart):

sudo virsh

Redaktimi i vetive të makinës virtuale në XML, duke përfshirë këtu mund të ndryshoni kufirin në sasinë e memories, etj.:

sudo virsh redakto freebsd10

E rëndësishme! Komentet nga XML e redaktuar janë hequr për fat të keq.

Kur makina virtuale ndalet, disku mund të ndryshohet gjithashtu:

sudo qemu-img ndryshimi i madhësisë /var/ lib/ libvirt/ images/ freebsd10.img -2G
sudo qemu-img info /var/lib/libvirt/images/freebsd10.img

E rëndësishme! OS juaj i ftuar ndoshta nuk do të pëlqejë që disku të bëhet papritmas më i madh ose më i vogël. NË skenari më i mirë, do të niset në modalitetin e urgjencës me një propozim për rindarjen e diskut. Ju ndoshta nuk duhet të dëshironi ta bëni këtë. Mund të jetë shumë më e lehtë për të krijuar një makinë të re virtuale dhe për të migruar të gjitha të dhënat në të.

Rezervimi dhe rivendosja janë mjaft të thjeshta. Mjafton të ruani diku daljen dumpxml, si dhe imazhin e diskut, dhe më pas t'i rivendosni ato. Në YouTube arriti të gjente videon Me një demonstrim të këtij procesi, gjithçka nuk është vërtet e vështirë.

Cilësimet e rrjetit

Një pyetje interesante - si të përcaktoni se çfarë adrese IP mori makina virtuale pas ngarkimit? KVM e bën këtë në një mënyrë të zgjuar. Përfundova duke shkruar këtë skenar në Python:

#!/usr/bin/env python3

# skript virt-ip.py
# (c) 2016 Aleksander Alekseev
# http://site/

sistem importi
importi re
import OS
nënprocesi i importit
nga xml .etree import ElementTree

def eprint(str) :
print (str, skedar = sys.stderr)

nëse len (sys.argv)< 2 :
eprint("Përdorimi: " + sys .argv [ 0 ] + " " )
eprint("Shembull: " + sys .argv [ 0 ] + " freebsd10" )
sys.exit (1)

nëse os .geteuid() != 0:
eprint ("GABIM: duhet të jesh root" )
eprint("Hint: ekzekutoni `sudo " + sys .argv [ 0 ] + " ...`" );
sys.exit (1)

nëse nënprocesi .thirrni ( "which arping 2>&1 >/dev/null", guaska = E vërtetë ) != 0 :
eprint ("GABIM: gërvishtje nuk u gjet" )
eprint ( "Udhëzim: ekzekutoni "sudo apt-get install arping"")
sys.exit (1)

Domain = sys.argv[1]

nëse jo re .match ("^*$" , domen) :
eprint ( "GABIM: karaktere të pavlefshme në emrin e domenit")
sys.exit (1)

Domout = nënproces .check_output ("virsh dumpxml " +domain+" || e vërtetë" ,
guaskë = e vërtetë)
domout = domout.decode("utf-8").strip()

if domout == "" :
# mesazh gabimi është printuar tashmë nga dumpxml
sys.exit (1)

Doc = ElementTree.fromstring(domout)

# 1. listoni të gjitha ndërfaqet e rrjetit
# 2. ekzekutoni "arping" në çdo ndërfaqe paralelisht
Përgjigjet #3.grep
cmd = "(ifconfig | prerë -d " " -f 1 | grep -E "." | " + \
"xargs -P0 -I IFACE arping -i IFACE -c 1 () 2>&1 | " + \
"grep "bytes from") || e vërtetë"

për fëmijë në doc.iter():
nëse fëmija.tag == "mac" :
macaddr = fëmijë.attrib["adresa"]
macout = nënproces .check_output (cmd .format (macaddr) ,
guaskë = e vërtetë)
print(macout.decode("utf-8"))

Skripti funksionon si me rrjetin e paracaktuar ashtu edhe me rrjetin e urë, konfigurimin e të cilit do ta shqyrtojmë më vonë. Sidoqoftë, në praktikë, është shumë më i përshtatshëm për të konfiguruar KVM në mënyrë që të caktojë gjithmonë të njëjtat adresa IP për sistemet e ftuar. Për ta bërë këtë, modifikoni cilësimet e rrjetit:

sudo virsh net-edit default

... diçka si kjo:

>



>

Pas kryerjes së këtyre ndryshimeve


>

... dhe zëvendësojeni me diçka të tillë:




>

Rinisim sistemin e mysafirëve dhe kontrollojmë që ai të ketë marrë një IP nëpërmjet DHCP nga ruteri. Nëse dëshironi që sistemi i mysafirëve të ketë adresa IP statike, kjo është konfiguruar si zakonisht brenda vetë sistemit të ftuar.

programi virt-manager

Ju gjithashtu mund të jeni të interesuar në programin virt-manager:

sudo apt-get install virt-manager
sudo usermod -a -G libvirtd USERNAME

Kështu duket dritarja kryesore e saj:

Siç mund ta shihni, virt-manager nuk është vetëm një GUI për makinat virtuale që funksionojnë në nivel lokal. Me ndihmën e tij, ju mund të menaxhoni makinat virtuale që funksionojnë në host të tjerë, si dhe të shikoni grafika të bukura në kohë reale. Unë personalisht e shoh veçanërisht të përshtatshme në virt-manager që nuk keni nevojë të kërkoni nëpër konfigurime për të gjetur se cila port VNC po funksionon në një sistem specifik të ftuar. Thjesht gjeni makinën virtuale në listë, klikoni dy herë dhe merrni akses në monitor.

Me ndihmën e virt-manager është gjithashtu shumë i përshtatshëm për të bërë gjëra që përndryshe do të kërkonin redaktim intensiv të mundshëm të skedarëve XML dhe, në disa raste, ekzekutim komandat shtesë. Për shembull, riemërimi i makinave virtuale, Cilësimet e CPU-së afinitet dhe gjëra të ngjashme. Meqe ra fjala, Përdorimi i CPU-së afiniteti redukton ndjeshëm efektin e fqinjëve të zhurmshëm dhe ndikimin e makinave virtuale në sistemin pritës. Përdoreni gjithmonë nëse është e mundur.

Nëse vendosni të përdorni KVM si një zëvendësim për VirtualBox, mbani në mend se ata nuk do të jenë në gjendje të ndajnë virtualizimin e harduerit mes tyre. Që KVM të funksionojë në desktopin tuaj, jo vetëm që do t'ju duhet të ndaloni të gjitha makinat virtuale në VirtualBox dhe Vagrant, por edhe të rindizni sistemin. Unë personalisht e shoh KVM shumë më të përshtatshëm se VirtualBox, të paktën sepse nuk kërkon që ju të ekzekutoni një komandë konfigurimi sudo /sbin/rcvboxdrv pas çdo përditësimi të kernelit, ai funksionon në mënyrë adekuate me Unity dhe në përgjithësi ju lejon të fshehni të gjitha dritaret.

Artikujt më të mirë mbi këtë temë