среда, 24 априла, 2024
Сам свој мајстор

oVirt – Веб апликација за управљање платформом за виртуелизацију

Аутор: Иван Булатовић

IT администраторима је чињеница да никада на располагању немају довољно процесорског времена, RAM меморије и простора на диску, веома позната. Иако су цене сервера и компоненти сада разумније него што је то било деценију раније, економска криза и смањење буџета за IT одељења нас форсирају да расположиве ресурсе максимално искористимо. Пођимо од тога да нам је неопходан високо доступан сервис, без SPOF-а (енгл. Single Point Of Failure) са комплетно редудантним системом. На листи ће се наћи два сервера са редудантним напајањима, уређаји за масовно складиштење података, уређај за резервно напајање електричном енергијом, редудантна мрежна опрема и софтверско решење за високу доступност сервиса који се инсталира. Почетна улагања су огромна и прогресивно се смањују са бројем сервиса који су неопходни, али је и даље неопходно улагати у нове сервере чији капацитети врло вероватно неће бити потпуно искоришћени. Трошкови због увећане потрошње електричне енергије, одговарајућег хлађења просторије, одржавања самих система, њихове замене у неком наредном временском периоду и компликованог управљања, подразумевају се током експлоатације.

Са овим проблемима се IT индустрија ефективно изборила понудом и имплементацијом решења за виртуелизацију хардвера. Уместо додавања нових сервера сваки пут када је неопходно инсталирати неки од софтверских сервиса, могуће је постојеће хардверске капацитете спојити и такав удружени ресурс поделити између сервиса, тако да се он максимално искористи. Најпознатија решења за виртуелизацију нам долазе од компанија VMWare, Citrix, Microsoft и Red Hat. Иако VMWare држи лидерску позицију, све више компанија жели да се окрене решењима која су базирана на отвореном кôду, за шта је чист пример OpenStack, иза кога се налазе компаније као што су Red Hat, HP, IBM, Cisco, AT&T и многе друге.

Овом приликом представљамо вам oVirt, апликацију отвореног кôда за управљање виртуелизацијом. Као и код већине других апликација сличне намене, неопходан је један сервер за управљање једним или више нодова који сервисирају виртуелне машине. oVirt захтева двојезгарни сервер са минимално 4 [GB] RAM-а и 25 [GB] простора на диску. На слици је приказана архитектура на којој се заснива oVirt.

Централна компонента oVirt сервера је његов покретач тј. „ovirt-engine” који је базиран на Java програмском језику и који преко REST апликативног програмског интерфејса пружа могућност додавања алата за управљање виртуелним машинама. Сервис је мрежног карактера, што се постиже помоћу Jboss апликативног сервера, и може му се приступити преко било ког web прегледача. Подаци се складиште у Postgres бази података, чиме је олакшан приступ и креирање резервних копија. Инсталација је максимално поједностављена и припремљени пакети постоје за Fedora и CentOS Linux дистрибуције. Довољно је додати одговарајуће складиште програмских пакета, ажурирати систем, инсталирати ovirt-engine пакет и покренути инсталацију командом engine-setup, при чему је неопходно унети неколико података, попут подразумеваног сервиса за складиштење података, затим лозинку и порт за приступ апликацији и бази података итд.

Следећи корак је припрема нодова који ће сервисирати виртуелне машине. Нодови могу такође бити базирани на Fedora или CentOS дистрибуцијама, а потребно је само инсталирати vdsm пакет, помоћу којег се обавља XML-RPC комуникација на релацији нод – oVirt сервер. VDSM је libvirt оријентисан сервис који за хипервизор користи KVM (Kernel-based Virtual Machine). Сва даља подешавања обављате помоћу oVirt апликативног интерфејса путем web прегледача. Прво морате креирати свој Datacentеr. Datacentеr се састоји од три компоненте: складишта података, мреже и кластера.

Складиште података се састоји од само једног складишта за ISO слике, помоћу којих можете инсталирати неки од подржаних оперативних система, једног складишта за експорт виртуелних машина и једног или више складишта који ће садржати саме слике виртуелних машина. Овим складиштима можете приступити преко оптичке FC везе, iSCSI или NFS протокола, GlusterFS домена или локалног складишта (на тврдом диску самог нода).

Мрежу можете подесити из oVirt апликације или на самом oVirt серверу, при чему ће покретач сам препознати мрежна подешавања. Мрежа може бити премошћена на већ постојећу физичку мрежу, или можете креирати сопствени VLAN и подесити oVirt тако да обавља функцију DHCP сервера и аутоматски додељује IP адресе виртуелним машинама у VLAN-у. Подразумевани назив мреже је ovirtmgmt.

Кластери се могу састојати од једног или више сервера који имају улогу нодова. Истородне сервере је препоручљиво имплементирати у један кластер, и уколико правилно подесите управљање напајањем сервера помоћу „fence” агената, могуће је унутар истог кластера инсталирати високо доступне виртуелне машине са аутоматским „failover” механизмом. Уколико машина није високо доступна, увек вам преостаје функција живе миграције између нодова унутар истог кластера. Не постоји ограничење по броју кластера унутар једног Data центра.

Приликом креирања виртуелне машине на неким од нодова, дефинишете назив виртуелне машине, број процесорских језгара/подножја који су јој доступни, количину RAM меморије и колико од тог износа јој се физички гарантује, који тип оперативног система се инсталира (Windows, RedHat или Other Linux), приоритет уређаја приликом bootstrap процеса као и инсталациону ISO слику. Можете подесити и тип кеширања диска, да ли ће виртуелна машина бити високо доступна или желите да забраните било какав вид миграције те машине (pinning). Затим додајете виртуелне мрежне интерфејсе и дефинишете један или више виртуелних дискова. Могуће је додати већ припремљени LUN преко iSCSI или FC протокола, или га креирати на одабраном складишту података. Простор резервисан за дискове може бити преалоциран или танко алоциран (Thin Provisioned). Када је простор преалоциран, он је унапред припремљен и заузима онолико простора на складишту колико му је додељено, док код танке алокације простор се динамички алоцира. У првом случају предност је брзина рада, док је у другом могуће на складишту са 300 [GB] простора додати десет дискова од 100 [GB], а касније проширити складиште када се за то стекну услови.

Могућности oVirt апликације се не завршавају овде. Могуће је креирати живе снимке виртуелних машина (Live Snapshots) које вам омогућују да направите backup виртуелне машине без прекида у раду сервиса или искључивања машине. RAM меморију је могуће танко алоцирати помоћу KSM (Kernel SamePage Merging), чиме се предности оваквог алгоритма у случају дискова преносе и на радну меморију, али захтева доста процесорског времена, што може представљати проблем. За миграцију физичких и виртуелних машина које су креиране помоћу других хипервизора, можете користити virt-v2v који је део libguestfs пројекта и који подржава oVirt формат. Из web прегледача можете директно покренути и приступити виртуелној машини путем SPICE или VNC протокола.

Шлаг на торту представља чињеница да је Red Hat Enterprise Virtualization (RHEV), комерцијално подржана апликација за управљање виртуелним машинама, базирана на oVirt апликацији; изгледа и функционише потпуно исто. Ипак, у „enterprise” окружењима, треба се одлучити за RHEV због подршке и неколико „нагазних мина” које ћемо споменути у наставку чланка.

Оно што ће вас одушевити код oVirt-а, уколико се одлучите да га тестирате, невероватно је једноставан и интуитиван кориснички интерфејс. Будући да oVirt архитектура верно пресликава реално/виртуелно окружење, то у многоме помаже и IT администраторима приликом управљања истог. Једном када се инсталира и подеси да функционише, ради беспрекорно стабилно на enterprise нивоу.

Наравно, ту је и друга страна новчића. Инсталација уме да буде проблематична. Управљање грешкама је катастрофално и захтева од вас много утрошеног времена и копања по log датотекама које су све подразумевано на DEBUG нивоу. Чак и да одлучите да ниво пребаците на INFO, гомила излаза на INFO нивоу је загарантована једном поруком која се понавља на сваких неколико минута, а коју можете искључити, само ако имате налог на Red Hat корисничком порталу, тј. претплаћени сте на RHEV производ па можете приступити бази знања. Не постоји „garbage collection”, тј. свака грешка приликом уклањања виртуелних машина или спајања живих снимака система узрокује да објекат остане приказан у апликацији и може се уклонити само ручно, приступом postgresql бази, што никако није препоручљиво.

Ништа у току администрације oVirt апликације (не самих виртуелних машина) вам неће олакшати посао. Документација као да не постоји, више ћете научити са oVirt дописних листа и Red Hat bugzilla портала, па чак и YouTube је од веће помоћи него ли званична документација. Топло препоручујемо инсталацију oVirt-а под виртуелном машином (нпр. помоћу virt-manager апликације) и да пре сваког ажурирања урадите клонирање виртуелне машине, злу не требало. Желите да урадите конверзију Windows физичких машина? То нећете моћи без virtio-win пакета који не постоји за CentOS дистрибуцију, а ако покушате да искористите ону из Fedora складишта програмских пакета, разочараћете се другачијим путањама до управљачких програма, него што је то случај код RHEV решења. Једноставно, Red Hat је јасно ставио до знања свима нама да је oVirt тврд колачић за употребу у enterprise окружењу и да може да послужи искључиво као развојно окружење за RHEV или упознавање са RHEV апликацијом пре куповине исте, мада је могуће доћи до пробне верзије регистрацијом на Red Hat порталу. Ипак, не би било праведно изоставити да сте раније могли тестирати oVirt само на Fedora дистрибуцији, а да су сада доступни пакети и за CentOS који је много стабилнији и који се може узети у обзир за продукциони рад. Да ли је ово везано за померање фокуса на OpenStack, нико не може са сигурношћу да потврди, али у сваком случају овакав корак треба поздравити.

Виртуелизација која се базира на отвореном кôду има много предности. oVirt је једна од многобројних апликација која се ослања на libvirt и KVM, па је миграција олакшана на неко друго решење, у случају да сте принуђени на такав корак. Већина њих је бесплатна и без икаквих функционалних ограничења, осим у случају да вам је неопходна подршка, па новац можете уложити у унапређење постојеће IT инфраструктуре. Све проблеме у раду можете пријавити и на порталима за пријављивање грешака пројеката који се налазе „upstream”, будући да се све ове апликације покрећу на Linux дистрибуцијама а не на неком затвореном, власничком решењу, а API је одређеним делом заједнички.

oVirt је прави правцати дијамант, нуди потпуну функционалност коју нуде и остала „папрена” решења за виртуелизацију, када се једном конфигурише, невероватно је стабилан (док год „не чачкате backend”) и ако сте спремни да се изборите са нешто лошијом документацијом, може представљати изузетно битан сервис у вашем информационом систему; ако нисте – купите RHEV, нећете зажалити. Ако вас је овај чланак заинтересовао за oVirt, на YouTube-у можете пронаћи неколико одличних видео туторијала који ће вам показати шта све oVirt може.

Корисни линкови :

[1] http://www.ovirt.org/Home

[2] http://lists.ovirt.org/

[3] http://resources.ovirt.org/releases/

[4] http://www.youtube.com/watch?v=C4gayV6dYK4