Gumeni hipervizor. Koristimo logičke grupe za virtualizaciju QEMU-KVM u Linuxu. Što je KVM virtualizacija Značajke virtualizacije za Linux kernel

💖 Sviđa li vam se? Podijelite vezu sa svojim prijateljima

Danas je teško zamisliti svijet bez računalnih uređaja. Prije 20-ak godina gotovo svi kućanski aparati bili su elektromehanički i nije bilo govora o korištenju računalnih sklopova posvuda. Prva računala zauzimala su značajne količine prostora i mogla su učiniti relativno malo. Računalni sustavi su prošli dug put posljednjih godina. Iako se računala nisu temeljito promijenila, računalna snaga se brzo povećala. Imati računalo u jednostavnoj obitelji više nije nešto posebno.

U ovom trenutku često veliki broj računalne opreme u prostorijama može uzrokovati značajne neugodnosti. Zbog toga su se počeli pojavljivati ​​centralizirani sustavi. Ali centralizirani sustavi često ne mogu riješiti probleme koje rješava mreža računala. Iz tog razloga predložen je koncept virtualizacije, kada jedno središnje računalo djeluje kao mreža računala.

U svojoj srži, svi operacijski sustavi su, općenito, neka vrsta virtualnog okruženja koje se pruža razvijaču softvera kao sredstvo za implementaciju konačnih zadataka. Odavno je prošlo vrijeme kada su programi pisani posebno za računalni hardver pomoću hardverskih kodova i upita. Danas je svaka aplikacija prije svega aplikacija napisana na nekom API-ju, kojim upravlja OS. Zadatak OS-a je omogućiti tim API-jima izravan pristup hardverskim resursima.

Zapravo postoji nekoliko vrsta virtualizacije:

  • Virtualizacija softvera;
  • Virtualizacija hardvera;
  • Virtualizacija na razini operativnog sustava.

Virtualizacija se pak događa puna I djelomičan.

Virtualizacija softvera– vrsta virtualizacije koja koristi različite OS biblioteke, prevodeći pozive virtualnog stroja u OS pozive. (DOSBox, Virtualbox, VirtualPC)

Virtualizacija hardvera- vrsta koja pruža specijalizirane upute za hardver, posebno upute za procesor. Omogućuje vam izvršavanje upita zaobilazeći gostujući OS i izvršavanje izravno na hardveru. (KVM virtualizacija, XEN virtualizacija, Parallels, VMware, Virtualbox)

Virtualizacija na razini operativnog sustava– virtualizacija samo dijela platforme, bez kompletne virtualizacije hardvera. Podrazumijeva rad nekoliko instanci OS okruženja. (Docker, LXC)

Ovaj članak će razmotriti hardverska virtualizacija, a posebno KVM virtualizacija.

Shema 1. – Interakcija komponenti virtualnog stroja s hardverom

Značajke virtualizacije za Linux kernel

Za izvršavanje izravnih hardverskih zahtjeva, OS mora imati biblioteku koja bi te hardverske zahtjeve slala izravno. Dugo vremena na platformama temeljenim na Linuxu jednostavno nije postojao ugrađeni virtualizacijski sustav (ugrađeni hipervizor). Svaki proizvođač softvera za virtualizaciju koji je podržavao tehnologiju virtualizacije hardvera bio je prisiljen stvoriti vlastite module za Linux kernel (vboxdrv u Virtualboxu, vmware-service u VMWareu, itd.) Naravno, to nije moglo trajati vječno, a Qumranet, Inc. zatim otkupio Radhat stvorio Open Virtualization Alliance, za koji se smatralo da rješava problem nedostatka osnovnog hipervizora za Linux kernel. Tako je nastala hipervizor KVM ili Virtualni stroj temeljen na jezgri.

Provedba

KVM hipervizor je modul Linux kernela koji se može učitavati i koji je dizajniran za virtualizaciju na Linux x86 platformi. Sam modul sadrži samu virtualizacijsku komponentu (kvm.ko) i modul za učitavanje specifičan za procesor kvm-amd.ko ili kvm-intel.ko.

Preduvjet za korištenje KVM-a je podrška za virtualizacijske upute - Intel VT ili AMD, te Linux kernel verzija 2.6.20 i novija. Tu je i KVM priključak za Free-BSD. QEMU se tradicionalno koristi za pozivanje KVM-a, ali postoje i pokušaji dodavanja KVM podrške u Virtualbox.

Sam KVM ne izvodi emulaciju. Umjesto toga, program koji se izvodi u korisničkom prostoru koristi /dev/kvm sučelje za konfiguriranje adresnog prostora gosta virtualnog stroja i preko njega emulira I/O uređaje i video adapter.

KVM omogućuje virtualnim strojevima korištenje neizmijenjenih slika diskova QEMU, VMware i drugih koji sadrže operativne sustave. Svaki virtualni stroj ima svoj virtualni hardver: mrežne kartice, disk, video karticu i druge uređaje.

Korištenje

Postoji mnogo implementacija za korištenje ovog hipervizora. Neki su cijele specijalizirane knjižnice, drugi imaju oblik jednostavnih grafičkih aplikacija.

Radi jasnoće, razmatramo KVM virtualizaciju temeljenu na biblioteci virt-menadžer.

Ova biblioteka vam omogućuje da pojednostavite poziv različitih hipervizora, pružajući prikladno sučelje za automatizaciju procesa virtualizacije. Osim toga, knjižnica ima mogućnost rada s mrežnom infrastrukturom, što je ponekad važno pri izgradnji klijent-poslužiteljskih radnih stanica.

Shema 2. – Interakcija libvirt komponenti

QEMU omogućuje vam stvaranje okvira za pozivanje hipervizora na klijentskom sustavu. Ovaj program je konfiguriran s argumentima poziva naredbenog retka i prilično je lagan i jednostavan.

Tu je i nekoliko grafičkih ljuski, kao što su Gnome-Kutije.

Zaključak

Virtualizacija je sastavni dio modernih korporativnih sustava, omogućuje vam uštedu ogromnih financijskih i energetskih resursa. Razvoj virtualizacijskih tehnologija prioritet je za mnoge organizacije. Razvijaju se tehnologije kao što su VGAPassthrough (tehnologija za "prosljeđivanje" video kartice glavnog uređaja u virtualni stroj) i PCIPassthrough ("prosljeđivanje" PCI uređaja).

Prije nego što započnemo naš pregled, vrijedno je razumjeti što je hipervizor i koje funkcije obavlja. Vrlo je praktičan za korištenje pri obavljanju velikog broja različitih zadataka. To je zbog činjenice da oni omogućuju smještaj nekoliko operativnih sustava na jednom fizičkom poslužitelju, od kojih je svaki opremljen vlastitim softverom za rješavanje različitih zadataka. Za laku interakciju s takvim virtualnim strojevima koriste se hipervizori. Oni su softver koji vam omogućuje upravljanje virtualnim strojevima: instalirajte ih, uključite i isključite. Jedan od najpopularnijih hipervizora danas je KVM.

KVM hipervizor

Omogućuje implementaciju virtualizacije na poslužiteljima s operativnim sustavom Linux. Definitivna prednost je što je ovaj hipervizor dio Linux kernela, tako da se stalno poboljšava i ažurira. Može se koristiti samo u slučaju hardverske virtualizacije - pomoću Intel ili Amd procesora. KVM procesorski modul daje mu mogućnost izravnog pristupa kernelu. To vam omogućuje izravno upravljanje datotekama virtualnog stroja i slikama diskova. Svaki VM ima svoj namjenski prostor.

Xen hipervizor

Prvi put razvijen od strane studenata Cambridgea, ovaj je projekt brzo postao komercijalan zbog obećanja. Višeplatformska i široka funkcionalnost Xena čini njegove mogućnosti prilično širokim za korištenje u uredima velikih tvrtki i korporacija. Njegov kernel ima paravirtualizacijski način rada, to jest, može se konfigurirati za istovremenu interakciju s hipervizorom.

Kod ovog hipervizora nije preopterećen nepotrebnim funkcijama. Opremljen je mogućnošću upravljanja RAM-om, frekvencijom procesora, radom s izravnim pristupom memoriji i mjeračem vremena. Sve ostale funkcije obavljaju VM-ovi koji su trenutno povezani na posao. Navedene prednosti čine rad s Xenom jednostavnim i praktičnim čak i za osobu čije znanje u ovom području nije jako duboko.

Studija

Kako biste usporedili dva hipervizora, morate ih testirati. Za to su uzeta dva poslužitelja s apsolutno identičnim hardverom i softverom, s izuzetkom, naravno, predmetnih hipervizora. Sve postavke za kreirane virtualne strojeve postavljene su na zadane u skladu s osnovnim postavkama obaju hipervizora. Svakoj opciji dodijeljena je ista količina memorije.

Pojasnimo da mišljenje da je distribucija OS-a koju smo odabrali - Fedora 20 iz Red Hata - prikladnija za KVM nije sasvim točna. Ne uzimamo u obzir borbu VM-ova za procesorske resurse tijekom istovremenog rada, jer s različitim stupnjevima konkurencije, hipervizori mogu pokazati različite performanse. Stoga uvjete natjecanja smatramo poštenima za obje strane.

rezultate

Testiranje se temeljilo na mjerenju rezultata testa za VM-ove smještene samo na hardveru, isključujući softver. Odstupanje u performansama dva poslužitelja bez virtualizacije bilo je manje od pola posto.

Prvi kandidat, KVM, pokazao je performanse u prosjeku jedan i pol posto niže od performansi hardvera. U 7-ZIP testu ovaj se hipervizor pokazao gotovo 3 posto sporijim, a u PostMark testu više od 4 posto bržim od hardvera. Rezultati Xena bili su lošiji; niti u jednom testu nije nadmašio svog konkurenta, u tri testa zaostajao je za hardverom 2,5 posto, au ostalima je bio još lošiji. Najjače odstupanje pokazalo se, kao i kod KVM-a, u PostMark testu, ali Xen nije hardverski prestigao poput konkurenta, već je zaostao gotovo 15 posto. Rezultati ponovljenih testova odstupali su od prethodnih ne više od 2 posto. Detaljnije rezultate testa možete vidjeti u tablici:

Poanta

KVM se uvijek pokazao sporijim od hardvera za oko 2 posto, ali ne više. Xen je u većini testova bio lošiji od hardvera za 2,5-7 posto. Dobri KVM rezultati u testu PostMark možda neće biti potpuno točni zbog nedovoljnog broja provedenih testova. Kako biste donijeli ispravnu odluku o odabiru testa hipervizora, proučite prirodu opterećenja svoje stranice. Ako je potrebno, izvršite više testova kako biste dobili točnije rezultate.

U ovom uvodnom članku ukratko ću predstaviti sve softverske alate koji se koriste u procesu razvoja usluge. O njima će se detaljnije govoriti u sljedećim člancima.

Zašto? Meni je ovaj operativni sustav blizak i razumljiv, tako da nije bilo muka, muka i nabacivanja pri odabiru distribucije. Nema nekih posebnih prednosti u odnosu na Red Hat Enterprise Linux, no odluka je donesena za rad s poznatim sustavom.

Ako planirate samostalno implementirati infrastrukturu koristeći slične tehnologije, savjetovao bih vam da uzmete RHEL: zahvaljujući dobroj dokumentaciji i dobro napisanim aplikacijskim programima, bit će, ako ne red veličine, onda sigurno dvostruko jednostavniji, a zahvaljujući razvijenom sustavu certificiranja, lako možete pronaći niz stručnjaka koji su upoznati s ovim OS-om na odgovarajućoj razini.

Mi smo, opet, odlučili koristiti Debian Squeeze sa skupom paketa od Sid/Eksperimentalno i neki paketi backportirani i kompilirani s našim zakrpama.
Postoje planovi za objavljivanje repozitorija s paketima.

Prilikom odabira virtualizacijske tehnologije razmatrane su dvije opcije - Xen i KVM.

Također, uzeta je u obzir činjenica da je postojao veliki broj programera, hostera i komercijalnih rješenja baziranih na Xen-u – što je zanimljivije bilo implementirati rješenje bazirano na KVM-u.

Glavni razlog zašto smo se odlučili za korištenje KVM-a je potreba za pokretanjem virtualnih strojeva s FreeBSD-om i, u budućnosti, MS Windows-om.

Za upravljanje virtualnim strojevima pokazalo se izuzetno prikladnim koristiti proizvode koji koriste njegov API: virsh, virt-menadžer, virt-install itd.

Ovo je sustav koji pohranjuje postavke virtualnih strojeva, upravlja njima, vodi statistiku o njima, brine da se sučelje virtualnog računala podigne pri pokretanju, povezuje uređaje sa strojem - općenito, radi puno korisnog posla i malo više od toga.

Naravno, rješenje nije savršeno. Nedostaci uključuju:

  • Apsolutno sulude poruke o greškama.
  • Nemogućnost promjene dijela konfiguracije virtualnog stroja u hodu, iako QMP (QEMU Monitor Protocol) to dopušta.
  • Ponekad, iz nekog nepoznatog razloga, nemoguće je spojiti se na libvirtd - prestaje reagirati na vanjske događaje.

Glavni problem u implementaciji usluge na samom početku bilo je ograničenje resursa za virtualna računala. U Xenu je ovaj problem riješen uz pomoć internog planera koji raspodjeljuje resurse između virtualnih strojeva – a ono što je najbolje jest da je implementirana i mogućnost ograničavanja diskovnih operacija.

Ništa slično nije bilo u KVM-u sve do pojave mehanizma raspodjele resursa jezgre. Kao i obično u Linuxu, pristup ovim funkcijama implementiran je putem posebnog sustava datoteka cgrupa, u kojem se, koristeći normalne sistemske pozive write(), može dodati proces u grupu, dodijeliti mu papagajsku težinu, odrediti jezgru na kojoj će se izvoditi, odrediti propusnost diska koju proces može koristiti ili, opet , dodijelite mu težinu.

Prednost je u tome što je sve ovo implementirano unutar kernela i može se koristiti ne samo za poslužitelj, već i za radnu površinu (koja je korištena u poznatom “The ~200 Line Linux Kernel Patch That Does Wonders”). I po mom mišljenju, ovo je jedna od najznačajnijih promjena u grani 2.6, ne računajući moj omiljeni #12309, a ne arhiviranje drugog datotečnog sustava. Pa, možda, osim POHMELFS (ali čisto zbog imena).

Moj stav prema ovoj korisnoj knjižnici vrlo je dvosmislen.

S jedne strane to izgleda otprilike ovako:

A ovu stvar je također vraški teško sastaviti iz izvora, a još manje u paket: ponekad mi se čini da je Linux From Scratch malo lakše izgraditi od nule.

S druge strane, to je vrlo moćna stvar koja vam omogućuje stvaranje slika za virtualne strojeve, njihovu modifikaciju, komprimiranje, instaliranje gruba, izmjenu particijske tablice, upravljanje konfiguracijskim datotekama, prijenos hardverskih strojeva u virtualno okruženje, prijenos virtualnih strojeva s jedne slike na drugu, prebaciti virtualne strojeve sa slike na hardver i, da budem iskren, tu me mašta malo pušta. O, da: također možete pokrenuti demon unutar Linux virtualnog stroja i pristupiti podacima virtualnog stroja uživo, i sve to učiniti u shellu, pythonu, perlu, javi, ocamlu. Ovo je kratak i nipošto iscrpan popis onoga što možete učiniti s .

Zanimljivo je da se većina koda generira u trenutku asemblera, kao i dokumentacija za projekt. Ocaml i perl su široko korišteni. Sam kod je napisan u C-u, koji se zatim omotava u OCaml, a ponovljeni dijelovi koda se sami generiraju. Rad sa slikama provodi se pokretanjem posebne servisne slike (supermin uređaj), kojoj se naredbe šalju kroz kanal u nju. Ova slika za spašavanje sadrži određeni skup uslužnih programa, kao što su parted, mkfs i drugi korisni za administratore sustava.

Nedavno sam ga čak počeo koristiti kod kuće, kada sam izvadio potrebne podatke iz nandroid slike. Ali ovo zahtijeva kernel koji podržava yaffs.

ostalo

Ispod su još neki zanimljivi linkovi na opis korištenog softvera - pročitajte i proučite sami ako vas zanima. Na primjer,

Recimo da ste mlad, ali još uvijek siromašan student, što znači da od svih mogućih platformi imate samo PC na Windowsima i PS4. Jednog lijepog dana odlučiš se urazumiti i postati programer, ali mudri ljudi na internetu su ti rekli da bez Linuxa ne možeš postati normalan inženjer. Ne možete instalirati Fedoru kao svoj glavni i jedini sustav, jer je Windows još uvijek potreban za igre i VKontakte, a strah ili nedostatak iskustva sprječava vas da instalirate Linux kao drugi sustav na vašem tvrdom disku.

Ili ste, recimo, već odrasli, sada ste šef servera u velikoj tvrtki i jednog lijepog dana primijetite da većina servera nije ni do pola opterećena. Ne možete postaviti više aplikacija i podataka na poslužitelje iz sigurnosnih razloga, a troškovi podrške i održavanja rastuće farme poslužitelja brzo rastu.

Ili, recimo, već imate bradu i naočale, tehnički ste direktor i niste sretni što programerima treba dva mjeseca da dobiju novi poslužitelj za implementaciju nove aplikacije. Kako u takvim uvjetima brzo naprijed?

Ili ste možda arhitekt koji je dizajnirao novi složeni sustav za obradu poslovne analitike. Vaš sustav uključuje stvari kao što su ElasticSearch, Kafka, Spark i mnogo više, a svaka komponenta mora živjeti zasebno, biti inteligentno konfigurirana i komunicirati s drugim komponentama. Kao dobar inženjer, shvaćate da nije dovoljno samo instalirati cijeli ovaj zoološki vrt izravno na vaš sustav. Morate pokušati implementirati okruženje što je moguće bliže budućem proizvodnom okruženju, a po mogućnosti tako da vaš razvoj tada besprijekorno radi na proizvodnim poslužiteljima.

I što učiniti u svim tim teškim situacijama? Ispravno: koristite virtualizaciju.

Virtualizacija vam omogućuje instaliranje mnogih operativnih sustava koji su potpuno izolirani jedan od drugog i rade jedan pored drugog na istom hardveru.

Malo povijesti. Prve virtualizacijske tehnologije pojavile su se već u 60-ima, no prava potreba za njima javila se tek 90-ih godina, kako je broj poslužitelja sve više rastao. Tada se pojavio problem učinkovitog recikliranja cjelokupnog hardvera, kao i optimizacije procesa ažuriranja, implementacije aplikacija, osiguranja sigurnosti i vraćanja sustava u slučaju katastrofe.

Ostavimo iza kulisa dugu i bolnu povijest razvoja raznih tehnologija i metoda virtualizacije - za znatiželjnog čitatelja, na kraju članka bit će dodatni materijali na ovu temu. Važno je do čega je sve na kraju došlo: tri glavna pristupa virtualizaciji.

Pristupi virtualizaciji

Bez obzira na pristup i tehnologiju, kod korištenja virtualizacije uvijek postoji host stroj i na njemu instaliran hipervizor koji kontrolira gostujuće strojeve.

Ovisno o korištenoj tehnologiji, hipervizor može biti zasebni softver instaliran izravno na hardveru ili dio operativnog sustava.

Pažljivi čitatelj koji voli poštapalice počet će mrmljati u par odlomaka da se njegovi omiljeni Docker kontejneri također smatraju virtualizacijom. Drugi put ćemo o kontejnerskim tehnologijama, ali da, u pravu si, pažljivi čitatelju, kontejneri su također neka vrsta virtualizacije, samo na razini resursa istog operativnog sustava.

Postoje tri načina za interakciju virtualnih strojeva s hardverom:

Dinamičko emitiranje

U ovom slučaju, virtualni strojevi nemaju pojma da su virtualni. Hipervizor u hodu presreće sve naredbe s virtualnog stroja i obrađuje ih, zamjenjujući ih sigurnima, a zatim ih vraća natrag na virtualni stroj. Ovaj pristup očito pati od nekih problema s performansama, ali vam omogućuje virtualizaciju bilo kojeg OS-a, budući da gostujući OS ne mora biti modificiran. Dinamičko prevođenje koristi se u proizvodima VMWare, vodećem u komercijalnom softveru za virtualizaciju.

Paravirtualizacija

U slučaju paravirtualizacije, izvorni kod gostujućeg OS-a je posebno modificiran tako da se sve instrukcije izvršavaju što učinkovitije i sigurnije. Pritom je virtualna žena uvijek svjesna da je virtualna žena. Jedna od prednosti je poboljšana izvedba. Loša strana je što na ovaj način ne možete virtualizirati npr. MacOS ili Windows, ili bilo koji drugi OS kojem nemate pristup izvornom kodu. Paravirtualizacija u ovom ili onom obliku koristi se, na primjer, u Xen i KVM.

Virtualizacija hardvera

Programeri procesora na vrijeme su shvatili da arhitektura x86 nije prikladna za virtualizaciju, budući da je inicijalno dizajnirana za jedan po jedan OS. Stoga, nakon što se pojavio dinamički prijevod iz VMWarea i paravirtualizacija iz Xena, Intel i AMD počeli su izdavati procesore s hardverskom podrškom za virtualizaciju.

U početku to nije dalo puno povećanja performansi, budući da je glavni fokus prvih izdanja bio poboljšanje arhitekture procesora. Međutim, sada, više od 10 godina nakon pojave Intel VT-x i AMD-V, virtualizacija hardvera nije ni na koji način inferiorna, čak je na neki način i superiorna u odnosu na druga rješenja.

Hardverska virtualizacija koristi i zahtijeva KVM (Kernel-based Virtual Machine), koji ćemo koristiti u budućnosti.

Virtualni stroj temeljen na jezgri

KVM je virtualizacijsko rješenje ugrađeno izravno u Linux kernel koje je jednako funkcionalno kao i druga rješenja i superiorno u upotrebljivosti. Štoviše, KVM je tehnologija otvorenog koda, koja, unatoč tome, napreduje punom brzinom (i u smislu pisanja koda i u smislu marketinga), a Red Hat ju implementira u svoje proizvode.

Ovo je, inače, jedan od mnogih razloga zašto inzistiramo na distribuciji Red Hata.

Tvorci KVM-a u početku su se usredotočili na podršku virtualizaciji hardvera i nisu izmišljali mnoge stvari. Hipervizor je u biti mali operativni sustav koji mora moći raditi s memorijom, umrežavanjem itd. Linux je već vrlo dobar u svemu tome, tako da je korištenje Linux kernela kao hipervizora logično i lijepo tehničko rješenje. Svaki KVM virtualni stroj samo je zaseban Linux proces, sigurnost je osigurana pomoću SELinux/sVirt, resursima se upravlja pomoću CGroups.

Više ćemo govoriti o SELinuxu i CGroups u drugom članku, nemojte se uznemiriti ako ne znate ove riječi.

KVM ne radi samo kao dio Linux kernela: od verzije kernela 2.6.20, KVM je osnovna komponenta Linuxa. Drugim riječima, ako imate Linux, onda već imate KVM. Zgodno, zar ne?

Vrijedi reći da na polju javnih cloud platformi Xen dominira malo više nego u potpunosti. Na primjer, AWS EC2 i Rackspace koriste Xen. To je zbog činjenice da se Xen pojavio ranije od svih ostalih i prvi je postigao dovoljnu razinu performansi. Ali ima dobrih vijesti: u studenom 2017., koji će postupno zamijeniti Xen kao najvećeg pružatelja usluga oblaka.

Iako KVM koristi hardversku virtualizaciju, za neke upravljačke programe I/O uređaja KVM može koristiti paravirtualizaciju, koja omogućuje bolje performanse za određene slučajeve upotrebe.

libvirt

Skoro smo stigli do praktičnog dijela članka, preostaje samo razmotriti još jedan alat otvorenog koda: libvirt.

libvirt je skup alata koji pruža jedan API za mnoge različite virtualizacijske tehnologije. Koristeći libvirt, u načelu, nije važno što je "backend": Xen, KVM, VirtualBox ili bilo što drugo. Štoviše, možete koristiti libvirt unutar Ruby (i također Python, C++ i mnogo više) programa. Također se možete daljinski povezati s virtualnim strojevima putem sigurnih kanala.

Usput, libvirt razvija Red Hat. Jeste li već instalirali Fedora Workstation kao svoj glavni sustav?

Kreirajmo virtualni stroj

libvirt je samo API, ali na korisniku je kako će s njim komunicirati. Postoji puno opcija. Koristit ćemo nekoliko standardnih uslužnih programa. Podsjećamo vas: inzistiramo na korištenju Red Hat distribucija (CentOS, Fedora, RHEL) i naredbe u nastavku testirane su na jednom od ovih sustava. Mogu postojati male razlike za druge distribucije Linuxa.

Najprije provjerimo je li hardverska virtualizacija podržana. Zapravo, radit će i bez njegove podrške, samo puno sporije.

egrep --color = auto "vmx|svm|0xc0f" /proc/cpuinfo # ako se ništa ne prikazuje, nema podrške :(

Budući da je KVM modul Linux kernela, morate provjeriti je li već učitan, a ako nije, onda ga učitati.

lsmod | grep kvm # kvm, kvm_intel, kvm_amd. Ako se ništa ne prikaže, morate učitati potrebne module # Ako modul nije učitan modprobe kvm modprobe kvm_intel # ili modprobe kvm_amd

Moguće je da je virtualizacija hardvera onemogućena u BIOS-u. Stoga, ako moduli kvm_intel/kvm_amd nisu učitani, provjerite postavke BIOS-a.

Sada instalirajmo potrebne pakete. Najlakši način da to učinite je da instalirate grupu paketa odjednom:

yum popis grupa "Virtualni*"

Popis grupa ovisi o korištenom OS-u. Moja grupa je pozvana Virtualizacija. Za upravljanje virtualnim strojevima iz naredbenog retka koristite uslužni program virsh. Provjerite imate li barem jedno virtualno računalo pomoću naredbe virsh list. Najvjerojatnije ne.

Ako vam se ne sviđa naredbeni redak, tu je i virt-manager - vrlo zgodan GUI za virtualne strojeve.

virsh može kreirati virtualne strojeve samo iz XML datoteka, čiji se format može proučiti u dokumentaciji libvirt. Srećom, tu su i virt-manager i virt-install naredba. Možete sami shvatiti GUI, ali ovdje je primjer korištenja virt-install:

sudo virt-install --name mkdev-vm-0 \ --location ~/Downloads/CentOS-7-x86_64-Minimal-1511.iso \ --memory = 1024 --vcpus = 1 \ --disk size = 8

Umjesto navođenja veličine diska, možete ga unaprijed izraditi putem virt-managera ili virsh-a i XML datoteke. Koristio sam gornju sliku iz Centos 7 minimal, koju je lako pronaći na web stranici Centos.

Sada ostaje jedno važno pitanje: kako se povezati sa stvorenim strojem? Najlakši način da to učinite je putem virt-managera - samo dvaput kliknite na kreirani stroj i otvorit će se prozor sa SPICE vezom. Tamo vas čeka ekran za instalaciju OS-a.

Usput, KVM može ugniježditi virtualizaciju: virtualne strojeve unutar virtualnog stroja. Moramo ići dublje!

Nakon što ručno instalirate OS, odmah ćete se zapitati kako se ovaj proces može automatizirati. Da bismo to učinili, potreban nam je uslužni program pod nazivom Kickstart, dizajniran za automatsko konfiguriranje OS-a po prvi put. Ovo je jednostavna tekstualna datoteka u kojoj možete odrediti konfiguraciju OS-a, sve do raznih skripti koje se izvršavaju nakon instalacije.

Ali gdje mogu nabaviti takvu datoteku? Zašto ga ne napisati ispočetka? Naravno da ne: budući da smo već instalirali Centos 7 unutar našeg virtualnog stroja, samo se trebamo spojiti na njega i pronaći datoteku /root/anaconda-ks.cfg - ovo je Kickstart konfiguracija kako bismo stvorili kopiju već stvoren OS. Samo ga trebate kopirati i urediti sadržaj.

Ali samo kopiranje datoteke je dosadno, pa ćemo tome dodati još nešto. Činjenica je da se prema zadanim postavkama nećemo moći povezati s konzolom stvorenog virtualnog računala iz naredbenog retka glavnog računala. Da biste to učinili, trebate urediti konfiguraciju GRUB pokretačkog programa. Stoga ćemo na samom kraju Kickstart datoteke dodati sljedeći odjeljak:

%post --log = /root/grubby.log /sbin/grubby --update-kernel = SVE --args = "console=ttyS0" %end

%post , kao što možete pretpostaviti, bit će izvršen nakon instaliranja OS-a. Naredba grubby ažurirat će GRUB konfiguraciju kako bi dodala mogućnost povezivanja s konzolom.

Usput, također možete odrediti mogućnost povezivanja putem konzole odmah tijekom stvaranja virtualnog stroja. Da biste to učinili, trebate proslijediti još jedan argument naredbi virt-install: --extra-args="console=ttyS0" . Nakon toga možete instalirati sam OS u interaktivnom tekstualnom načinu rada s terminala vašeg glavnog računala, povezujući se s virtualnim strojem putem virsh konzole odmah nakon njegove izrade. Ovo je posebno zgodno kada stvarate virtualne strojeve na udaljenom hardverskom poslužitelju.

Sada možete primijeniti stvorenu konfiguraciju! virt-install omogućuje prosljeđivanje dodatnih argumenata prilikom stvaranja virtualnog stroja, uključujući stazu do Kickstart datoteke.

sudo virt-install --name mkdev-vm-1 \ --location ~/Downloads/CentOS-7-x86_64-Minimal-1511.iso \ --initrd-inject /path/to/ks.cfg \ --extra- args ks = datoteka:/ks.cfg \ --memory = 1024 --vcpus = 1 --disk size = 8

Nakon što se stvori drugi virtualni stroj (potpuno automatski), možete se spojiti na njega iz naredbenog retka pomoću virsh console vm_id naredbe. vm_id Možete saznati s popisa svih virtualnih strojeva pomoću naredbe virsh list.

Jedna od prednosti korištenja KVM/libvirta je nevjerojatna dokumentacija, uključujući onu koju je izradio Red Hat. Dragi čitatelj pozvan je da ga prouči s dužnom radoznalošću.

Naravno, kreiranje ovakvih virtualnih strojeva ručno u konzoli, a zatim njihovo postavljanje samo pomoću Kickstarta nije najprikladniji postupak. U budućim člancima pogledat ćemo mnoge cool alate koji konfiguraciju sustava čine lakšom i potpuno automatiziranom.

Što je sljedeće?

Nemoguće je sve što vrijedi znati o virtualizaciji staviti u jedan članak. Pogledali smo nekoliko mogućnosti korištenja virtualizacije i njezinih prednosti, malo dublje ušli u detalje njezina rada i upoznali se s najboljim, po našem mišljenju, rješenjem za te zadatke (KVM), pa čak i izradili i konfigurirali virtualni stroj.

Važno je razumjeti da su virtualni strojevi građevni blokovi modernih arhitektura oblaka. Omogućuju aplikacijama automatski rast do neograničenih veličina, na najbrži mogući način i uz maksimalno iskorištenje svih resursa.

Koliko god AWS bio moćan i bogat uslugama, njegov temelj su virtualni strojevi na vrhu Xena. Svaki put kad stvorite novu kapljicu na DigitalOceanu, stvarate virtualni stroj. Gotovo sve stranice koje koristite nalaze se na virtualnim računalima. Jednostavnost i fleksibilnost virtualnih strojeva omogućuje ne samo izgradnju proizvodnih sustava, već i deset puta olakšava lokalni razvoj i testiranje, posebno kada sustav uključuje mnogo komponenti.

Naučili smo kako stvoriti jedan jedini stroj - nije loše za testiranje jedne aplikacije. Ali što ako trebamo nekoliko virtualnih strojeva odjednom? Kako će međusobno komunicirati? Kako će se naći? Da bismo to učinili, morat ćemo razumjeti kako mreže općenito funkcioniraju, kako funkcioniraju u kontekstu virtualizacije i koje su komponente uključene u ovaj rad i koje je potrebno konfigurirati - u sljedećem članku u nizu.

KVM- jedna od novih tehnologija virtualizacije, koja omogućuje instaliranje nekoliko virtualnih namjenskih poslužitelja na fizički namjenski poslužitelj. Glavna prednost ovog virtualizacijskog sustava je izrada VPS-a s različitim tipovima operativnih sustava, odnosno na isti poslužitelj možete jednostavno instalirati i Linux VPS i Windows VPS. Osim toga, svaki pojedinačni VPS poslužitelj na KVM platformi ima svoje neovisne resurse: vlastiti prostor na disku, vlastiti RAM, mrežno sučelje i tako dalje.

Prednosti KVM virtualizacije:

  • Mogućnost instaliranja različitih operativnih sustava: centos, debian, ubuntu, mint, freebsd, windows 7, windows 8, windows 10, windows xp i tako dalje.
  • Zajamčeni resursi na serveru, odnosno ako ste naručili VPS server sa određenim resursima, onda budite sigurni, nitko vam resurse neće uzeti. S ovom virtualizacijom ne možete koristiti resurse susjednog VPS-a. Postoji nešto poput pretjerane prodaje, to je kada hosting tvrtka prodaje više resursa nego što ih zapravo ima na poslužitelju. To se ne može dogoditi u KVM-u; svi su resursi jasno zabilježeni u konfiguracijskim datotekama i svi su odjednom usmjereni na virtualni namjenski poslužitelj.
  • Moguće je instalirati cijeli vaš operativni sustav na VPS poslužitelj, na primjer, vi ste OS developer i imate vlastiti napisani operativni sustav, možete ga instalirati na jedan od VPS na poslužitelju s KVM-om, za to ćete potrebno je prenijeti datoteku s iso slikom OS-a na poslužitelj s posebnom mapom.
  • Pogodan rad s VNC, što omogućuje daljinsko upravljanje vašim vps poslužiteljem kao da radite na osobnom računalu; koristeći VNC možete konfigurirati bios, ponovno pokrenuti vps i gledati ga. Ako ste instalirali Windows poslužitelj na VPS i želite otići na njega i raditi u grafičkom načinu rada, tada to možete učiniti na dva načina: putem VNC-a ili izravno doći do VPS-a putem unaprijed konfigurirane udaljene radne površine.

Jedan od nedostataka KVM virtualizacije je što ju je teže koristiti i konfigurirati nego npr. openVZ virtualizacija. Pa koja je opcija? Ako planirate koristiti VPS poslužitelj s Linux operativnim sustavima, preporučujemo da odaberete openVZ. Ako planirate koristiti Windows na svom virtualnom namjenskom poslužitelju, onda je bolje koristiti KVM virtualizaciju.

Omogućite JavaScript za prikaz komentara koje omogućuje Disqus.
Najnoviji postovi
  • Korištenje najnovijih putničkih i teretnih dizala omogućuje nam pružanje optimalnih okolnosti...

  • Kako bismo osigurali da se vaša web stranica uvijek otvara koristeći bezopasni https:// protokol, mi...

  • U novim verzijama preglednika Chrome prestalo je raditi pomicanje stranice pomoću kotačića...

  • Internetska trgovina u Ukrajini svake godine postaje sve veća...

  • HTP je IT smjer u Bjelorusiji koji je nastao...

  • U Ukrajini, odnosno u Dnjepropetrovsku, 1....

  • Sada je teško zamisliti svijet bez IT-a, jer...

  • Predstavljamo vam novu uslugu na web stranici abcname.com.ua. Osim,…

  • Danas ćemo vam reći o značajkama odabira VPS poslužitelja. Prvi…

  • Danas žurimo da sve obradujemo novom prilikom našeg jedinstvenog, i...

  • 1) Provjera naziva domene Provjeravamo je li string točna domena...

  • IP adresu možete provjeriti na ovoj stranici: http://abcname.com.ua/index.php?c=192 IP adresa (doslovno, dakle...

  • Tvrtka ABCname predstavlja vašoj pozornosti program SYNONYMIZER. Link na synonymizer: https://abcname.net/news-new/sinonimizator-ru.html…

  • Brojač posjeta koji je razvio ABCname možete preuzeti na ovoj poveznici: http://abcname.com.ua/stat/…

  • U najnovijem ažuriranju operativnog sustava iOS 9.0.2 programeri su zatvorili vrlo...

  • Najnovije vijesti o Skypeu: za korisnike ovog programa na Windowsima...

  • Google nas je ponovno razveselio svojim izumom, nedavno u gradu...

  • Nedavno je postalo poznato da Samsung pokreće novo plaćanje…

  • Nova ThinkPad prijenosna računala Lenovo dolaze s predinstaliranim...

  • Pebble je nedavno razvio novu seriju pametnih satova…



reci prijateljima