Појам виртуелизације и основни термини

Појам виртуелизација у савременој комуникацији стално осваја нове просторе и све је више у употреби, будући да се информационе технологије све више прожимају са свакодневним животом. У информатичком свету, виртуелизација као концепт заузима посебно место. Најчешће нисмо свесни да се у свакодневном коришћењу рачунара сусрећемо са неким видом виртуелизације. Ово је тренд у развоју информационих технологија који са собом доноси очигледне предности, пре свега кроз уштеду ресурса али и у другим значајним аспектима.

Неке од основних предности које се остварују применом виртуелизације огледају се у смањење трошкова за хардвер, уштеди простора за смештај пратеће ИТ опреме, смањену потрошња електричне енергије и осталих ресурса. Виртуелизацијом се вишеструко повећава степен искоришћења ИТ ресурса и олакшава администрација, а сам концепт технологије пружа високу безбедност и отпорност на отказе.

Шта је VirtualBox и шта све можете њиме прочитајте овде.

У неку руку виртуелизација доприноси и очувању животне средине па се као таква сврстава у зелене технологије. У оквиру овог текста покушаћемо да опишемо основне појмове и термине који су везани за феномен виртуелизације у информационим технологијама.

ШТА ЈЕ ВИРТЕУЛИЗАЦИЈА?

Почнимо са грубом дефиницијом виртуелизације преузетом са Википедије:

Виртуелизација је симулација софтвера или хардвера на коме други софтвер ради.

Дефиниција представља срж виртуелизације. Да ли сте знали да дељење вашег хард диска на партиције представља један вид виртуелизације? Оперативни систем посматра партицију као засебан хард диск, што је у суштини и поента виртуелизације. Виртуелизација, међутим представља много више од самог партиционисања диска.

Употребом ове технологије у домену виртуелизације серверских и клијентских оперативних система, једноставно речено, постижемо да више оперативних система ради у паралели на истој машини. Овим приступом значајно је олакшана администрација, јер се све своди на администрацију једне машине.

Више нема потребе управљати се старим моделом „један сервер – једна апликација“. Могуће је имати више сервера са различитим оперативним системима, тако да се сви покрећу на истој хардверској платформи. Уштеде и предности оваквог setup-а су очигледне. Сваки сервер се може посматрати као посебни ентитет, тј. као посебна машина. Отказ једног таквог ентитета нема утицаја на рад главне (хост) машине, платформе за виртуелизацију, нити на рад осталих ентитета са којима дели ресурсе.

Све ово даје један велики плус виртуелизацији у сегменту поузданости. Довољно је уложити средства у поуздану хардверску конфигурацију и осигурати редундансу и безбедност података на њој. Решења за виртуелизацију по правилу омогућују релативно лако додавање нових сервера и премештање података са једне на на другу хост машину, што је додатни плус ове технологије у домену скалабилности.

У литератури се могу наћи многобројне класификације виртуелизације.
Генерално, постоји неколико основних типова:

  • Хардверска виртуелизација
  • Виртуелизација дексtopа
  • Софтверска виртуелизација
  • Меморијска виртуелизација
  • Виртуелизација података
  • Мрежна виртуелизација
  • Виртуелизација сториџа

ХАРДВЕРСКА ВИРТУЕЛИЗАЦИЈА

Хардверска виртуелизација је најраспрострањенији и најпопуларнији вид виртуелизације. Она представља виртуелизацију рачунара или оперативних система. Постоји неколико битних термина који се везују за хардверску виртуелизацију. Концепт технологије се заснива на коришћењу виртуелних машина (енг. virtual machine).

Софтвер који контролише виртуелизацију се често назива хипервизор (енг: hypervisor) или virtual machine monitor. Процес креирања и управљања виртуелним машинама назива се и серверска виртуелизација према најзаступљенијем виду употребе у професионалним ИТ окружењима.

Већ смо навели да се коришћењем ове технологије на једном рачунару може паралелно покретати више оперативних система. Физичка машина на којој се примењује виртуелизација назива се хост машина (енг. host – домаћин). Оперативни систем који је инсталиран на хост машини и на коме се извршава софтвер за виртуелизацију назива се хост оперативни систем (скр. host OS).

На хост оперативном систему се креира симулирано компјутерско окружење, односно виртуелна машина. Оперативни систем који се извршава на виртуелној машини назива се guest оперативни систем (енг. guest – гост). Guest оперативни системи користе виртуалне физичке ресурсе које обезбеђује хипервизор.

Шема виртуелизације на x86 архитектури и позиција виртуелизационог лејера

Хипервизор је слој или спона између физичких ресурса хост машине и виртуелне guest машине. Апликације које се извршавају на guest оперативном систему нису лимитиране хост оперативним системом. Guest оперативни систем се извршава на исти начин као што би се извршавао на физичкој машини, а овај систем посматра виртуалне ресурсе као физичке ресурсе.

Постоји неколико ограничења у смислу приступа системским ресурсима и периферним уређајима на шта се може утицати конфигурисањима у оквиру виртуелне машине.

Хипервизор може да се подели у две категорије:
Тип 1 (енг. Type I) и Тип 2 (енг. Type II).
Тип 1 се инсталира директно на хардвер тј. слично као код инсталације оперативног система. Ово резултира бољим перформансама у односу на Тип 2. Пример за ову категорију су VMware ESXi, Мајкрософт Hyper-V и Citrix XenServer.
Тип 2 се инсталира на постојећи оперативни систем. Примери оваквих хипервизора су: VMware Workstation и Oracle VirtualBox.

Тип 1 лево, Тип 2 десно
Тип 1 лево, Тип 2 десно

Постоји више техника за овај вид виртуелизације. Неке од најбитнијих су:

  • Потпуна виртуелизација (енг. Full virtualization)
  • Хардверски подржана виртуелизација (енг. Hardware-assisted virtualization)
  • Пара-виртуелизација (енг. Para-Virtualization)
  • Виртуелизација на нивоу оперативног система (енг. Operating system-level virtualization)

Потпуна виртуелизација

Ова техника у потпуности виртуелизује физички сервер. Обезбеђује виртелизацију хардвера довољну за нормалан рад немодификованог гост оперативног система. Под термином „немодификовани“ мисли се да оперативни систем није модификован са циљем прилагођавања на виртуелну машину, већ се користи у свом оригиналном издању.

Гост оперативни систем, тј. виртуелни OS је у потпуности изолован од физичког слоја хоста слојем хипервизора.

Предност оваквог изолованог приступа је што се повећавају степен сигурности, флексибилност и скалабилност целог система. Уз помоћ оваквог приступа могуће је на једном физичком серверу по потреби искомбиновати више виртуелних оперативних система.

Резултат је један глобални систем који додаје вредности или елиминише недостатке постојећих система појединачно. Може се срести код: VMware Workstation, VMware Server, VirtualBox, Parallels Workstation, Oracle VM, Hyper-V, KVM и других.

Хардверски подржана виртуелизација

Произвођачи хардвера су рано увидели предности виртуелизације, па су почели да модификују своје производе, како би се постигао већи учинак и функционалност у коришћењу виртуелизације. Примери таквих произвођача су AMD, Интел и Oracle. Најчешће су то побољшања процесора и меморије за подршку виртуелизације.

Тренутно постоји доста виртуелних решења која могу да искористе предности оваквог хардвера. Нека од најпознатијих су: VMware Workstation, VMware Fusion, VirtualBox, Hyper-V, Linux KVM, Oracle VM, Server for SPARC и други.

Пара-виртуелизација

За разлику од потпуне витуелизације, овде се покрећу модификоване верзије оперативног система и углавном нема симулације хардвера. Гост оперативни систем мора бити прилагођен за рад са виртуелним системом. Код ове методологије гост оперативни систем је свестан виртуелизације.

Предност ове технике је побољшане перформансе, и могућност рада много више гост оперативних система. Долази до изражаја тамо где су битне перформансе без обзира на цену оперативног система. Подршка за ову технику виртуелизације се може наћи код: VMware, Oracle, Citrix Xеn, WindRiver итд.

Виртуелизација на нивоу оперативног система

Приступ код овог типа виртуелизације је да се на једној хост машини извршавају само исти гост оперативни системи, при чему је гост OS је исти као и хост OS. Другим речима, као што и само име каже, виртуелизација се ради на нивоу оперативног система.

Оваква виртуелизација доноси најбоље перформансе у поређењу са претходним решењима. Карактерише је изолованост и сигурност инстанци оперативних система, а додатни плус долази кроз чињеницу да се сва администрација и конфигурација може радити на хост оперативном систему. Користи се од стране: Linux-VServer, FreeBSD Jails, OpenVZ, Solaris Containers и Virtuozzo.

ВИРТУЕЛИЗАЦИЈА ДЕСКТОПА

Овај појам се односи на виртуелизацију десктоп окружења крајњег корисника. Постоји више имплементација виртуелизовања десктопа у зависности од приступа и начина виртуелизације сегмената десктоп окружења (апликације, сам десктоп, кориснички профил…), локације на којој се виртуелизација врши, као и трајности промена произведених током једне сесије.

Код Remote Desktop виртуелизације, корисници приступају удаљеном серверу на коме се налазе виртуелне машине са десктоп окружењима за сваког корисника. Медијум за приступ је RDP протокол (Remote Desktop Protocol) при чему корисници нису везани за одређено локално окружење (физички рачунар) већ са било које локације (рачунара) у мрежи, помоћу RDP сесије могу приступати свом виртуелизованом окружењу (десктопу).

Овакав setup се назива и VDI (енг. Virtual Desktop Infrastructure), а технологија је применљива, пре свега у у пословним и корпоративниме окружењима. Администрација је знатно олакшана, јер администратори приступају централизованом серверу и контролишу сва десктоп окружења. Централизован приступ доноси већу дозу контроле и сигурности. Уколико корисник направи велики проблем у оквиру свог виртуелизованог окружења (поремећај оперативног система), процедура опоравка виртуелне машине из претходно креираног снепшота (енг. snapshot) је тривијално лака. (snapshot је снимак тренутног стања виртуелне машине и стања оперативног система на њој).

Како се скоро све процесирање врши на серверу, са клијентске стране су довољни јефтиније рачунари за приступ. На тржишту се могу наћи и ограничене хардверске конфигурације које се своде искључиво на компоненте потребне да подрже RDP сесије ка удаљеним сервериима на којима се хостују виртуал десктоп окружења и одговарајуће виртуелне машине.

Клијенти у оваквом окружењу могу да приступају свом десктоп са било ког места у свету, што је велика предност у корпоративним окружењима. Недостатак би био то што овај тип виртуелизације захтева веома моћну централну машину (или машине, тзв. кластере сервера) и обучено особље за имплементацију и одржавање, али се на дугорочном плану у већим пословниим окружењима виртуелизација десктоп окружења може вишеструко исплатити.

ВИРТУЕЛИЗАЦИЈА АПЛИКАЦИЈА

Виртуелизација апликација се односи на емулирање окружења неопходног за покретање апликација (runtime environment). Срж технологије представља софтверски слој (layer) који се налази између апликација и оперативног система. Он представља интерфејс који апликацијама уместо оперативног система презентује ресурсе које су им потребни (registry, локације на фајл систему) и омогућује да се извршавају чак и апликације које су међусобно некомпатибилне у смислу да захтевају различите оперативне системе.

Систем за виртуелизацију тзв. емулатор, опслужује апликације и управља нижим слојевима оперативног система, на начин да апликације немају „свест“ о томе да не раде директно са оперативним системом већ са емулираним окружењем.

Овај приступ је вишеструко користан. Будући да апликације зависе од оперативног система и већег броја компоненти на њему, често долази до неусклађености и проблема у раду. Виртуелизација у овом случају представља заштитни интерфејс, решава проблем некомпатибилности, багова и неусклађености верзија апликација са оперативним системом на којем се покрећу, као и framework окружењем које их опслужује.

Као типичан пример емулатора за виртуелизацију апликација поменућемо програм Wine на Linux оперативним системима. Захваљујући њему могуће је радити са Windows апликацијама у Linux окружењу. Предност овог типа виртуелизације је и у чињеници да може заштитити систем и остале апликације, у неким случајевима и меморију од баговите апликације. Апликације су изоловане од оперативног система што генерално подиже степен безбедности.

МЕМОРИЈСКА ВИРТУЕЛИЗАЦИЈА

Најједноставнији пример меморијске виртуелизације познат нам је кроз праксу свакодневног коришћења персоналних рачунара. Већини корисника су познати термини виртуелна меморија или swap фајл. Виртуелизација меморије у овом случају се односи на део радне меморије која се од стране оперативног система резервише на хард диску као додатак/продужетак RAM меморије. Систем посматра ову меморију као додатни RAM и када се ресурси физичке RAM меморије искористе процеси се не прекидају, већ се прелази на коришћење виртуелне меморија. Ово има за последицу пад перформанси, јер се упис и читање одвијају са знатно споријег хард диска.

Права меморијска виртуелизација иде корак даље, ресурси RAM меморије неког система се могу партиционисати, виртуелизовати и заједно са RAM ресурсима других система укључити у заједнички „pool“. Ресурси меморијског pool-а се затим могу дистрибуирати грануларније, према потреби појединих ентитета и на тај начин се може остварити ефикасније коришћење укупних ресурса.

Принцип виртуелизације је веома популаран код серверске виртуелизације, јер је ефикасна дистрибуција дељених ресурса изузетно важна. Када на једној физичкој машини – виртуелном хосту имамо више виртуалних guest машина које користе заједничке ресурсе, од велике је важности могућност креирања мреже дистрибуираног поола меморијких ресурса. Ресурси се затим усмеравају према реалним потребама, а бенефит је у избегавању уских грла и застоја, пре свега у раду апликација које су најосетљивије на недовољне меморијске ресурсе. Додатна предност је и могућност снимања стања меморије и транспортовања до удаљеног хоста на мрежи.

МРЕЖНА ВИРТУЕЛИЗАЦИЈА

Термин виртуелна мрежа најчешће означава комбиновање реалних мрежних ресурса или њихових делова (хардверских и софтверских мрежних ресурса) у циљу стварања виртуелних ентитета, односно виртуалне мреже. При томе, носилац виртуелизације је софтверска платформа са централном административном функцијом над виртуелизованим мрежним ресурсима.

Применом виртуелизације могуће је на једној физичкој мрежи направити више виртуелних мрежа или комбиновати ресурсе више физичких у једну виртуелну мрежу. Корисници виртуелне мреже не морају бити свесни постојања осталих виртелних мрежа нити уређаја на тим мрежама.

Узмимо као пример факултет са три виртуалне мреже од којих једна намењена администрацији, друга професорима и трећа студентима. У позадини виртуалних мрежа је једна физичка мрежа са рутерима, свичевима и осталим мрежним уређајима. Корисници ових виртуелних мрежа могу али и не морају да деле мрежне уређаје.

ВИРТУЕЛИЗАЦИЈА ПОДАТАКА

Термин виртуелизација података, односи се на систем који кориснику пружа јединствени презентациони интерфејс за приступ разнородним подацима који се налазе на већем броју логички и/или физички структурираних извора. Корисник нема увид у механизме и локације ка којима и са којих се подаци дистрибуирају, јер интерфејс који је ка њему усмерен абстрахује комплетну структуру за складиштење и допремање података.

Виртуализација података

Извори података могу бити различите базе података, ERP системи, веб сајтови, апликације, репозиторијум фајлова итд. Искуство корисника је као да су сви подаци смештени на једној тзв. логичкој локацији.

Као пример би смо могли да наведемо Фејсбук. Постављање слика на профил, унос личних података, поруке и постављање постова из угла корисника обављају се на истом месту кроз јединствени интерфејс. Оно што није транспарентно је систем за дистрибуирање свих података, локација на којој се чувају слике, фајл репоситоријуми у позадини, база података са високом безбедношћу за чување личних података , друга база података погодна за чување текста у којој се смештају поруке, итд.

Сви ови системи су оптимизовани да дају најбоље перформансе за одређени тип података, а у комбинацији дају много боље перформансе, него кад би се користио јединствени систем.

ВИРТУЕЛИЗАЦИЈА СТОРИЏА

Ово је један од веома коришћених типова виртуелизације у пракси. Овде спадају сви системи који омогућују да се засебни уређаји за складиштење података комбинују у једну логичку јединицу. Оперативни систем посматра јединствену локацију за складиштење података, иако постоји више физичких локација уређаја које могу бити удаљене.

Storage virtualisation

Изнад физичког слоја за складиштење података, налази се абстрактни слој. Систем за виртуелизацију има за циљ да податке са абстрактног нивоа преслика на физичку локацију, тако да кориснику омогући коришћење логичког простора без знања о реалним физичким уређајима у позадини.

Једна од предности овог система односи се на миграцију података. Подаци лако могу бити премештени, архивирани или реплицирани на другу локацију без ометања корисника у раду.

ЗАКЉУЧАК

Виртуелизација је широко распрострањен концепт у свету информационих технологија. Без обзира о ком се типу виртуелизације ради, заједнички именилац је побољшање скалабилности и коришћења ресурса. Најчешће је присутан и бенефит за ИТ професионалце у виду лакше и централизоване администрације. Посебну вредност виртуелизација има у пословним окружењима.

Циљ овог текста је да пружи основу информацију о суштини најбитнијих видова виртуелизације и увид у бенефите које виртуелизација доноси. Дубље разматрање ове тематике и технологије која се налази у позадини захтевало би пуно више простора и времена. Комплексност виртуелизације доноси и неке недостатке и изазове које је тек потребно решавати, што није покривено овим текстом.

Технологија, или боље речено, концепт виртуелизације, који се рапидно развија последњих година, донео је са собом велике промене у организацији информатичких окружења. Можемо сматрати извесним да ће се виртуелизација и даље развијати и као концепт ширити на нове сегменте информационих технологија.

Текст је преузет са угашеног блога ИТ модул и оригинални аутор овог текста је Саша Костадиновић. Компјутераш ИТ блог ће наставити да објављује текстове са тог блога како ризница знања са те локације не би отишла у заборав.