M 145ORGANIZACIJA ZNANJA 2011, LETN. 16, ZV. 4 COBISS V VIRTUALNEM OKOLJU Sre~ko Ben~ec IZUM, Institut informacijskih znanosti Maribor INFORMACIJSKA INFRASTRUKTURA SISTEMA COBISS Javni servisi sistema COBISS tečejo na farmi strežnikov z različnimi operacijskimi sistemi in med seboj komunicirajo preko standardnih protokolov. Operacijske sisteme OpenVMS, Windows in Linux uporabljamo za tehnološko različne aplikacije. Ena izmed glavnih tehničnih značilnost sistema COBISS je zagotovljena interoperabilnost med različnimi razvojnimi tehnologijami, kar pa seveda zahteva mnogo sodelovanja med razvojniki programske opreme in sistemskimi skrbniki. Slika 1 prikazuje zgradbo sistema COBISS, relacije med različnimi sistemi in tok podatkov. COBISS2 deluje na operacijskem sistemu OpenVMS, kjer se nahajajo bibliografski podatki in javni servisi virtualne knjižnice Slovenije (spletni OPAC). Java kot računalniško okolje za COBISS3 teče na strežnikih Windows. Podatkovna zbirka Oracle je nameščena na strežnikih Linux in je prav tako namenjena za COBISS3. Vsi produkcijski podatki so na diskih diskovnega polja SAN in so varovani centralizirano. Slika 1: Zgradba sistema COBISS PROGRAMSKA OPREMA COBISS3 COBISS3 je bil razvit v okolju Java, zato je tudi prenosljiv na operacijske sisteme, ki Javo podpirajo. Pri nas je izbran operacijski sistem Windows server, prav tako pa je bil uspešno izveden projekt COBISS3 na strežniku Linux. Aplikacija COBISS3 je sestavljena iz strežnika in odjemalca, poslovna logika in dostop do podatkovnih zbirk sistema je vgrajena v strežniku, odjemalec je grafični vmesnik aplikacije z vgrajenimi kontrolami in podporo perifernim napravam uporabnika (tiskalniki, čitalci). Odjemalec COBISS3 je podprt z operacijskimi sistemi, ki podpirajo Javo (Windows, večina Linux distribucij, MacOS). COBISS3 je v bistvu sistem več aplikativnih strežnikov, kjer je en aplikativni strežnik praviloma namenjen eni knjižnici. Iz slike 2 je razvidno, da na enem strežniku Windows teče večje število aplikativnih strežnikov COBISS3. Število teh strežnikov je omejeno s sistemskimi viri fizičnega strežnika. Slika 2: Strežniki COBISS3 in viri strojne opreme Grafikon na desni strani slike 2 nam prikazuje porabo sistemskih virov fizičnega strežnika z nameščenimi aplikativnimi strežniki COBISS3. Vsak aplikativni strežnik potrebuje za zagon določeno količino pomnilnika in nekaj odstotkov procesorja. S prijavo uporabnikov na aplikativni strežnik se uporaba pomnilnika veča nesorazmerno s povečanjem rabe procesorja za posamezni aplikativni strežnik COBISS3. Iz tega sledi, da je količina zapolnjenega pomnilnika z večanjem števila aplikativnih strežnikov nesorazmerna s povečanjem doi:10.3359/oz1104145 146 ORGANIZACIJA ZNANJA 2011, LETN. 16, ZV. 4 porabe procesorske moči. V praksi porabimo ves razpoložljiv pomnilnik prej, preden dosežemo od 30 do 35 % povprečne porabe procesorske moči. Da bi lahko boljše izrabili sistemske vire strojne opreme, izrabljamo mehanizem za optimizacijo delovnega pomnilnika. Upravljanje sistemskih virov na fizičnem strežniku z operacijskim sistemom Windows ob taki konfiguraciji naših strežnikov ni mogoče, ker vsaka aplikacija porabi njej namenjen pomnilniški prostor, ki ga ni mogoče deliti med druge zaradi arhitekture operacijskega sistema. Oziroma vsake optimizacijske rešitve bi dodatno obremenjevale strežnik. Treba je bilo najti način optimiranja na nivoju fizičnega strežnika, izbrana je bila virtualizacija fizičnih strežnikov. VIRTUALIZACIJA STREŽNIKOV Virtualizacija omogoča boljšo izrabo sistemskih virov fizičnih strežnikov z uporabo naprednih tehnoloških rešitev. Ponudba sistemskih virov je odvisna od moči in števila fizičnih strežnikov. Sistem virtualizacije je primernejši, če je sestavljen iz več fizičnih strežnikov, povezanih v gručo. Naša odločitev leta 2006 se je navezovala na VMware ESX Server in proizvod VMware Virtual Center, ki je že takrat omogočal napredne tehnologije dinamičnega dodeljevanja virov (angl. dynamic resource scheduling), visoke razpoložljivosti (angl. high avalability) in skupne rabe enake vsebine pomnilnika (angl. memory page sharing). COBISS3 IN VIRTUALIZACIJA Aplikativni strežniki COBISS3 so zaradi prej opisanih lastnosti primerni za virtualizacijo. Glavna prednost je možnost dinamičnega dodeljevanja virov in porazdeljenosti strežnikov po virtualnih gostiteljih. V našem primeru so virtualni gostitelji (angl. host server) precej močni strežniki z veliko količino pomnilnika in večjedrnimi (angl. multicore) procesorji. Tako je možno poljubno prilagoditi količino pomnilnika in število procesorjev posameznemu virtualnemu strežniku z nameščenimi aplikativnimi strežniki COBISS3 (slika 3). Za upravljanje z viri in razpoložljivostjo pa skrbi sistem sam po pravilih, ki smo jih sami podali. Pravila pa izhajajo iz lastnosti aplikativnih strežnikov COBISS3, odvisno od velikosti knjižnice in števila uporabnikov, ki se na strežnik prijavljajo. Slika 3: Virtualizacija strežnikov COBISS3 Ena izmed vidnejših prednosti virtualizacije COBISS3 na produktih VMware je uporaba skupne rabe vsebine pomnilnika. Ker so virtualni strežniki kreirani iz ene predloge, so po konfiguraciji vsi enaki, prav tako so aplikativni strežniki COBISS3 programsko enaki in zasedajo pomnilnik z enakimi datotekami. Mehanizem skupne rabe pomnilnika izkorišča te lastnosti in zaseda fizični pomnilnik gostitelja samo enkrat za vse strežnike, ki tečejo na njem. Vse, kar pomeni večjo zasedenost pomnilnika, je odvisno samo od števila uporabnikov in njihovih potreb. Slika 4: Vsebina pomnilnika Slika 4 prikazuje zasedenost pomnilnika posameznih fizičnih strežnikov (zgornja vrsta) in zasedenost fizičnega pomnilnika v virtualnem okolju (spodnja vrsta). Vse te prednosti prinašajo racionalizacijo pri uporabi strojne opreme kot tudi lažjo administracijo in manipulacijo s strežniki. Na voljo imamo standardni virtualni strežnik za skalabilnost sistema COBISS3, virtualni strežnik nima posebnih gonilnikov, kar pomeni boljšo zanesljivost operacijskega sistema. Prenos virtualnih strežnikov in enostavna replikacija sta veliki prednosti pri ustvarjanju razvojnih, testnih in statističnih neprodukcijskih okolij COBISS3. Seveda virtualizacija prinaša tudi posebnosti in slabosti, ki jih je bilo treba vključiti pri načrtovanju virtualne Srečko Benčec: COBISS V VIRTUALNEM OKOLJU M T 147ORGANIZACIJA ZNANJA 2011, LETN. 16, ZV. 4 infrastrukture, vendar se večini težav lahko izognemo s pravilnim upravljanjem in sledenjem spremembam. ZAKLJU^EK Pri nas uporabljamo virtualizacijo strežnikov že od samega začetka prvih resnih komercialnih proizvodov. Z leti nam je to prineslo ogromno izkušenj in rešili smo mnoge težave. Prav zaradi robustnosti in zanesljivosti se je sistem na produktih VMware izkazal za nepogrešljivega pri nadaljnjem razvoju programske opreme COBISS3 in servisov, povezanih s sistemom COBISS. Danes večina produkcije COBISS3 teče v virtualnem okolju, prav tako tudi testno okolje in okolje za zagotavljanje kompatibilnosti s prejšnjimi razvojnimi stopnjami. Virtualizacija zagotavlja visoko razpoložljivost naših servisov, zanesljivost in enostavno upravljanje. Prilagajanje novim servisom in aplikacijam je enostavno in hitro, če je le na razpolago dovolj človeških virov. Srečko Benčec: COBISS V VIRTUALNEM OKOLJU