
Ugniježđena virtualizacija postala je jedna od onih "skrivenih" funkcija koje, jednom otkrivene, otvaraju svijet mogućnosti za postavljanje laboratorija, testiranje verzija, simuliranje produkcijskih okruženja ili čak pružanje obuke bez trošenja bogatstva na hardver. Umjesto da imate gomilu fizičkih servera, možete pokretati cijele hipervizore unutar virtualnih mašina i, zauzvrat, kreirati više virtualnih mašina unutar njih. Da, zvuči vrlo meta, ali je nevjerovatno korisno.
U najnovijim generacijama VMware i Microsoft Hyper-V hipervizora, kao i u drugim proizvodima za virtualizaciju, ugniježđena virtualizacija više nije rijedak eksperiment , već lako dostupna opcija (iako često nije službeno podržana u produkciji). Istražimo šta je tačno, njene zahtjeve, kako je konfigurirati, posebno u VMware i Hyper-V, njene implikacije na performanse i umrežavanje i, što je najvažnije, njene stvarne slučajeve upotrebe za administratore, programere i timove za obuku.
Šta je tačno ugniježđena virtualizacija?
Kada govorimo o ugniježđenoj virtualizaciji, mislimo na pokretanje hipervizora unutar virtuelne mašine koja već radi na drugom hipervizoru . Prvi hipervizor, instaliran na fizičkom serveru, obično se naziva host hipervizor. S druge strane, onaj koji radi unutar virtuelne mašine poznat je kao gostujući hipervizor ili virtuelni hipervizor.
U ovom scenariju, virtuelna mašina koja hostira gostujući hipervizor djeluje kao "vanjski gost" (u VMware terminologiji), a virtuelne mašine koje se pokreću unutar tog gostujućeg hipervizora smatraju se "internim gostima" ili ugniježđenim VM-ovima. Iz perspektive gostujućeg hipervizora, virtuelni hardver koji predstavlja VM ponaša se kao da je pravi fizički hardver, sa vlastitim CPU-om, memorijom, pohranom i mrežom.
Moguće je postići više od dva nivoa ugniježđivanja , pod uslovom da fizički hardver to može podnijeti. Međutim, svaki dodatni nivo uvodi više opterećenja. Dakle, u praksi je uobičajeno koristiti jedan ili najviše dva nivoa ugniježđivanja kako bi se izbjeglo frustrirajuće iskustvo.
Da bi sve ovo efikasno funkcioniralo, oslanja se na hardverski potpomognutu virtualizaciju (Intel VT-x, Extended Page Tables/EPT, AMD-V, itd.). To su proširenja procesora posebno dizajnirana da pruže izvornu podršku za hipervizore. Ove funkcije omogućavaju hipervizoru da upravlja prebacivanjem konteksta između virtuelnih mašina i upravljanjem memorijom mnogo brže nego sa starijim tehnikama poput binarnog prevođenja ili čiste paravirtualizacije.
Vrste hipervizora i osnovni zahtjevi
Ugniježđena virtualizacija može raditi i sa hipervizorima tipa 1 (goli metal, instaliran direktno na hardveru) i sa hipervizorima tipa 2 (instaliranim preko konvencionalnog operativnog sistema). U VMware ekosistemu, ESXi je hipervizor tipa 1. VMware Workstation, VMware Player i VMware Fusion se smatraju hipervizorima tipa 2.
Da bi se omogućila ugniježđena virtualizacija, host hipervizor mora biti u mogućnosti da "ponovno izloži" proširenja hardverske virtualizacije (virtualizirani HV) virtuelnoj mašini koja hostira gostujući hipervizor. To znači da konfiguracija VM-a mora uključivati opciju za izlaganje VT-x/AMD-V.
- U slučaju VMware-aHardverski potpomognuta virtualizacija i virtualizirani HV podržani su u hipervizorima tipa 2 od VMware Workstation 8, VMware Player 4 i VMware Fusion 4.
- U Hyper-V-uPriča je slična. Procesori moraju imati VT-x i EPT (ili AMD ekvivalente), a Hyper-V je odgovoran za izlaganje ovih mogućnosti virtuelnim mašinama kako bi se Hyper-V ili neki drugi kompatibilni mehanizam mogao ponovo omogućiti unutar njih.
Kompatibilnost i podrška u VMwareu
Iako ugniježđena virtualizacija tehnički funkcioniše u glavnim VMwareovim linijama proizvoda (ESXi, Workstation, Player, Fusion), proizvođač je prilično jasan u pogledu podrške. Ne smatra se zvanično podržanim produkcijskim scenarijem. Drugim riječima, ako postavite produkcijsko okruženje zasnovano na ugniježđenim VM-ovima i naiđete na probleme, VMware može odbiti pružiti podršku.
Postoji jedan vrlo specifičan izuzetak: upotreba vSAN Witness Appliance-a u VMware vSphere-u . Ovaj uređaj je zasnovan na ugniježđenom ESXi hostu i odobren je i podržan od strane VMware-a, jer čini dio same vSAN arhitekture za određena implementacije.
S druge strane, VMware podržava omogućavanje Hyper-V-a unutar Windows virtuelnih mašina za sigurnost zasnovanu na virtuelizaciji (VBS) počevši od vSphere 6.7. VBS je funkcija Windowsa 10 i Windows Servera 2016 i novijih koja koristi virtuelizaciju za stvaranje izolovanih okruženja za hostovanje osjetljivih sigurnosnih funkcija.
Licenciranje ugniježđenih okruženja u VMwareu
Važno je ne upasti u zamku razmišljanja da je sve "besplatno " samo zato što je u virtuelnim mašinama. Ako implementirate ESXi i druge vSphere komponente (poput vCentera) na virtuelnim mašinama unutar ugniježđenog okruženja, morate licencirati te komponente baš kao da su instalirane na fizičkim serverima, bez obzira na to da li je host hipervizor VMware ili neki drugi dobavljač.
Ono što možete učiniti, ako testirate ili postavljate laboratoriju, jeste da iskoristite besplatna izdanja ili evaluacijske verzije ESXi, vCenter i drugih vSphere proizvoda, uvijek poštujući njihove uslove korištenja. Na nivou konfiguracije CPU-a, kako biste izbjegli glavobolje s licenciranjem po socketu ili po jezgri, ima smisla dodijeliti više jezgara po virtuelnom CPU- u umjesto mnogo jednojezgrenih CPU-a, koristeći parametar `cpuid.coresPerSocket` virtuelne mašine .
Slučajevi upotrebe ugniježđene virtualizacije u stvarnom svijetu
Velika prednost ugniježđene virtualizacije je što vam omogućava postavljanje više virtuelnih hipervizora sa njihovim vlastitim VM-ovima unutar jednog fizičkog hosta , smanjujući troškove hardvera i postižući ogromnu fleksibilnost. Ova mogućnost se koristi u brojnim praktičnim, svakodnevnim scenarijima.
U oblasti obuke, to je fantastičan resurs za postavljanje laboratorija. Možete instalirati ESXi unutar virtuelnih mašina da biste podučavali vSphere bez potrebe za stalkom fizičkih servera. Sa dovoljno moćnom mašinom, možete kreirati virtuelni mini-centar podataka sa nekoliko virtuelnih ESXi hostova, virtuelnim dijeljenim skladištem i ugniježđenim vCenter serverom za vježbanje visoke dostupnosti (HA), DRS-a, Storage DRS-a, vMotion-a i još mnogo toga.
Osim što studentima ili tehničarima omogućava istraživanje bez straha, ugniježđena virtualizacija znatno pojednostavljuje oporavak od grešaka u laboratorijama . Ako neko naruši konfiguraciju virtuelnog ESXi hosta ili internih VM-ova, dovoljno je jednostavno vraćanje ESXi VM-a iz sigurnosne kopije na nivou hipervizora. Specijalizovani vSphere alati za pravljenje sigurnosnih kopija omogućavaju vam da zaštitite i eksterne VM-ove hosta i interne ugniježđene VM-ove.
U razvoju softvera, timovi koji grade alate za vSphere ili skripte za njegove API-je mogu testirati svoje aplikacije direktno na virtuelnim ESXi serverima sa ugniježđenim VM-ovima , bez dodirivanja produkcijske infrastrukture.
Jedan posljednji, vrlo zanimljiv slučaj je slučaj pružatelja upravljanih usluga i javnih oblaka . Neki koriste ugniježđenu virtualizaciju za hostiranje različitih klijentskih hipervizora unutar svoje infrastrukture, nudeći neku vrstu "oblaka unutar oblaka" kako bi olakšali migracije ili održali kompatibilnost s postojećim alatima.
Performanse ugniježđenih virtuelnih mašina
Što se tiče performansi, važno je shvatiti da će ugniježđena VM uvijek raditi lošije od "normalne" VM . To je zato što je na fizičkom hostu svaka VM povezana s jednim ili više procesa koji troše RAM i CPU. Kada ta VM sadrži ESXi ili Hyper-V host koji, zauzvrat, pokreće više VM-ova, dodajemo još jedan sloj upravljanja procesima i kontekstom pored fizičkih resursa.
Što je više virtuelnih mašina i što je više nivoa ugniježđivanja, više vremena se troši na prebacivanje konteksta CPU-a i raspoređivanje resursa , što rezultira većom latencijom i nižim efektivnim performansama. Obim degradacije će uveliko zavisiti od snage hardvera, vrste opterećenja (CPU, disk, mreža) i koliko je dobro okruženje optimizovano, ali nije neuobičajeno vidjeti značajne razlike u poređenju sa virtuelnom mašinom iste veličine koja radi direktno na fizičkom hostu.
Stoga je opšta preporuka da se ugniježđena virtualizacija rezerviše za laboratorije, obuku, testiranje i okruženja gdje performanse nisu kritične . VMware je, zapravo, ne podržava za produkciju osim u specifičnom slučaju vSAN Witness Appliance-a, dok je Microsoft podržava u nekim produkcijskim scenarijima za Hyper-V (uvijek uz preporuku da se temeljito testira ponašanje aplikacije).
VMware alati i upravljanje ugniježđenim ESXi-jem
Kada instalirate ESXi unutar virtuelne mašine, potrebni su vam i VMware Tools na toj "virtuelnoj" ESXi mašini . VMware Tools je paket drajvera i uslužnih programa koji poboljšava performanse i integraciju virtuelne mašine sa hipervizorom (sinhronizacija vremena, elegantno gašenje, informacije o mreži itd.).
U starijim verzijama (ESXi 5.x), VMware alati specifični za ugniježđene ESXi distribuirani su kao VIB paket za ručnu instalaciju. Od VMware vSphere 6.0 nadalje, ovi alati su integrirani u ESXi, tako da ih nije potrebno zasebno instalirati kada se pokreću kao VM.
Zahvaljujući VMware alatima, hipervizor hosta može prikazati detaljne informacije o ugniježđenom ESXi hostu (IP adresa, naziv hosta, status), izvršiti gašenje ili ponovno pokretanje putem komandne linije iz vSphere klijenta ili putem API-ja, te izvršavati skripte kada se stanje napajanja virtualnog hosta promijeni. Status servisa Tools na ugniježđenom ESXi hostu možete provjeriti sljedećom naredbom:
/etc/init.d/vmtoolsd status
Konfiguracija mreže u ugniježđenim ESXi okruženjima
Mreža je jedno od područja gdje ugniježđena virtualizacija može uzrokovati najviše glavobolja ako niste upoznati s načinom rada Layer 2 mreža i virtualnih prekidača . Tipičan problem: ugniježđene virtualne mašine se pokreću, ali nemaju vezu izvan virtualnog ESXi hosta.
Na fizičkom ESXi hostu, standardni ili distribuirani virtuelni prekidač ne uči MAC adrese analizirajući promet kao što to radi fizički prekidač . Umjesto toga, oslanja se na informacije iz virtuelnih mašina kojima upravlja hipervizor. Stoga, ako jedna od virtuelnih mašina sadrži ESXi host s nekoliko ugniježđenih virtuelnih mašina, svaka sa svojom MAC adresom, vSwitch fizičkog ESXi hosta ih ne prepoznaje kao vlastite interfejse. Ako određene sigurnosne politike nisu ispravno konfigurirane, na kraju će odbaciti pakete.
Da bi ugniježđene virtuelne mašine komunicirale sa vanjskim svijetom, obično je potrebno omogućiti promiskuitetni režim, promjene MAC adresa i falsifikovane prenose na fizičkom vSwitch-u , barem na portu ili grupi portova na koje je ugniježđena ESXi virtuelna mašina povezana. Podrazumevano, ove opcije su obično postavljene na "Odbij" iz sigurnosnih razloga.
Promiskuitetni način rada omogućava interfejsu povezanom na tu grupu portova da prima sav promet koji prolazi kroz virtualni prekidač, bez obzira na MAC adresu odredišta. Ovo je ključno da bi virtualni ESXi host "vidio" promet namijenjen MAC adresama ugniježđenih virtualnih mašina iza njega. Nedostatak je taj što, budući da se vSwitch ponaša gotovo kao čvorište, performanse mreže mogu biti pogođene u okruženjima s velikim prometom.
Parametar za promjenu MAC adrese štiti od napada lažiranja podataka. Normalno, efektivna MAC adresa virtuelne mašine mora se podudarati s onom konfiguriranom u konfiguracijskoj datoteci virtuelne mašine. Onemogućavanje ove opcije prema zadanim postavkama poboljšava sigurnost od trovanja ARP-om. Međutim, da bi ESXi virtuelna mašina prikazivala različite MAC adrese za svoje interne virtuelne mašine, ova politika mora biti ublažena u odgovarajućoj grupi portova.
Kako implementirati ugniježđeni ESXi i internu VM
Tipičan slučaj upotrebe uključuje implementaciju nedavnog ESXi hosta kao VM-a na nešto starijem fizičkom ESXi hostu. Zatim, unutar tog virtuelnog ESXi hosta, kreirate jednu ili više testnih virtuelnih mašina, na primjer, sa Windows operativnim sistemom. Opšti tok rada bi izgledao ovako:
- Prenesite ISO datoteku za instalaciju ESXi-ja do skladišta podataka fizičkog hosta, koristeći vSphere klijent.
- Kreirajte novu virtuelnu mašinu (VM) na fizičkom ESXi hostu. Odabirom porodice operativnih sistema „Ostalo“ i verzije „VMware ESXi XX ili novija“, te dodjeljivanjem odgovarajućih resursa.
- Odaberite opciju za izlaganje hardverski potpomognute virtualizacije gostujućem operativnom sistemuOvo se radi u odjeljku CPU. Ako se ostavi onemogućeno, tokom instalacije ESXi-ja će se pojaviti upozorenje koje će ukazivati da virtualizacija hardvera nije funkcija CPU-a ili nije omogućena u BIOS-u. 64-bitne virtuelne mašine neće moći da se pokrenu unutar tog ugniježđenog ESXi hosta.
- Nakon završetka čarobnjaka, pokrenite ESXi VM i instalirajte hipervizor baš kao što biste to učinili na fizičkom serveru.Konfigurisanje IP adrese za upravljanje, imena hosta i ostalih početnih parametara.
- Pregledajte mrežnu konfiguraciju fizičkog ESXi hostaUređivanje vSwitch-a na koji je povezana ugniježđena ESXi VM i omogućavanje promiskuitetnog načina rada, prebacivanja MAC adresa i lažnih prijenosa u sigurnosnoj politici.
- Dostavite ISO datoteku gostujućeg operativnog sistema koji će biti instaliran na ugniježđenoj virtuelnoj mašini. (Windows, Linux, itd.).
Konačno, u Host Client-u virtuelnog ESXi-ja, kreira se nova VM, odabire se odgovarajuća porodica operativnih sistema i verzija, njeni diskovi se smještaju u ugniježđeno skladište podataka, a CD/DVD pogon se konfiguriše za pokretanje sa ISO datoteke koju smo montirali.
Kloniranje ugniježđenih ESXi hostova
Nakon što imate pravilno konfiguriran ugniježđeni ESXi host, sa svojom mrežom i spremištem podataka, često je primamljivo klonirati ga kako biste brzo implementirali više virtualnih hostova . Ovo vam omogućava da postavite cijele vSphere klastere jednostavnim dupliciranjem virtualnih mašina umjesto izvođenja instalacija od nule.
Prije kloniranja, moraju se poduzeti određene mjere opreza kako bi se osiguralo da klonovi ne dijele kritične identifikatore . Na primjer, preporučuje se omogućiti VMkernelu da koristi hardversku MAC adresu kao identifikator pomoću ESXCLI-ja s naredbom poput:
esxcli system settings advanced set -o /Net/FollowHardwareMac -i 1
Osim toga, preporučljivo je urediti datoteku /etc/vmware/esx.conf ESXi porijekla i uklonite liniju koja sadrži UUID sistema (obično pod ključem /system/uuidDakle, kada se svaki klon prvi put pokrene, generira jedinstveni identifikator. Nakon gašenja originalnog ESXi hosta, klonovi se mogu kreirati. A kada se pokrenu, prilagodite IP adrese za upravljanje, nazive hostova i sve ostale mrežne parametre za svaki od njih kako biste izbjegli konflikte.
Ugniježđena virtualizacija u Hyper-V-u i podržani scenariji
U Microsoftovom svijetu, ugniježđena virtualizacija se prvenstveno odnosi na pokretanje Hyper-V-a unutar Hyper-V VM-a . Cilj je vrlo sličan onome kod VMware-a. Ideja je imati laboratorijska i testna okruženja gdje se kompletan hipervizor i njegove VM-ove mogu postaviti bez potrebe za dodatnim hardverom.
Moderni procesori godinama uključuju VT-xy EPT (u Intelu) ili AMD-V i njihove ugniježđene ekvivalente straničenja. Stoga, mnogi modeli prije Xeon v3 tehnički ispunjavaju zahtjeve CPU-a. U stvari, službena Microsoftova dokumentacija navodi da je posjedovanje VT-xy EPT-a dovoljno za korištenje ugniježđene virtualizacije u Hyper-V.
Što se tiče slučajeva upotrebe, Microsoft detaljno opisuje nekoliko scenarija u kojima je podržana ugniježđena Hyper-V virtualizacija, kako u Azureu tako i lokalno, sve dok servisi i aplikacije koje se izvršavaju na njemu također to podržavaju.
Podržano je i pokretanje izoliranih Hyper-V kontejnera unutar Hyper-V virtuelnih mašina . U ovom režimu, svaki kontejner se pokreće u mikro-virtualnoj mašini, uvodeći dodatni (ugniježđeni) hipervizorski sloj i stoga opterećenje prilikom pokretanja kontejnera, pohrane, mreže i korištenja CPU-a. Uprkos tome, Microsoft smatra da je ovo podržan scenario za ugniježđeni sloj virtualizacije. Ovo otvara vrata visoko izoliranim arhitekturama kontejnera na virtuelnim mašinama.
Još jedan zanimljiv slučaj je Windows podsistem za Linux (WSL2) koji se izvršava unutar Hyper-V virtuelne mašine, koja se pak izvršava na drugom Hyper-V-u. WSL2 koristi tehnologiju virtuelizacije "ispod haube", tako da kada se aktivira unutar virtuelne mašine, koristi ugniježđenu virtuelizaciju. Ovaj scenario je također podržan. Prvenstveno je namijenjen programerima koji rade sa Linuxom unutar složenih virtuelizovanih okruženja.
Ugniježđena virtualizacija i dinamička memorija u Hyper-V-u
Jedna važna stvar koju treba napomenuti kod Hyper-V-a je da kada Hyper-V radi unutar VM-a , ta VM se mora isključiti kako bi se prilagodila njena dodijeljena memorija. Čak i ako je dinamička memorija omogućena u VM-u, dok je Hyper-V uloga aktivna unutar nje, količina efektivne RAM memorije ne fluktuira.
Ako pokušate promijeniti memoriju virtuelne mašine bez omogućene dinamičke memorije dok Hyper-V radi unutar nje, podešavanje također neće imati efekta. Ovo ograničenje se primjenjuje samo dok je pokrenut gostujući hipervizor. Ovo je nešto što treba imati na umu prilikom planiranja ugniježđenih laboratorija koje će često mijenjati veličinu.
U svakom slučaju, omogućavanje ugniježđene virtualizacije samo po sebi ne mijenja magično ponašanje dinamičke memorije ili promjene veličine tokom rada . Stoga je preporučljivo dimenzionirati virtuelne mašine koje će hostirati ugniježđeni Hyper-V s određenom marginom kako biste izbjegli njihovo stalno isključivanje samo radi prilagođavanja resursa.
Uzimajući u obzir sve navedeno, ugniježđena virtualizacija se etablira kao ključni alat za učenje, testiranje, migraciju i primjenu modernih tehnologija virtualizacije. Omogućava reprodukciju složenih okruženja na smanjenom broju fizičkih servera i nudi fleksibilnost koja, kada se efikasno koristi, više nego kompenzira sva opterećenja i ograničenja podrške koja može podrazumijevati.



