Virtuelizacija, prošlost i sadašnjost
Modam da priznam da sam davno bio vrlo skeptičan kada je virtuelizacija u pitanju. Sećam se kada je ceo bum oko konsolidacije resursa u data centrima počela da “buja” u inostranstvu pojavom aplikacija poput vmware-a, xen-a i ostalih tu negde oko 1999-te ili 2000-te. Da budem iskren daleko od toga da neke od vidova primitivne virtuelizacije do tada nisam koristio, pa praktično da nije bilo servera koji još davnih 90-tih godina nisam bio chroot-ovao (linux) ili jail-ovao (fbsd), o Ensim-u da i ne govorim. Ali naravno to (izolacija dela fajl sistema) ne može ni približno da se poredi sa današnjim alatima za virtuelizaciju ne samo operativnog sistema već celokupnog hardware-a. Ako se dobro sećam mislim da je IBM još davnih 60-tih godina radio na projektu M44/44X koji je u konceptu bio okrenut ka nekoj vrsti primitivne virtuelizacije podržane od strane hardware-a, u neku ruku deljenjem memorije itd. Tako da sama virtuelizacija je prisutna već zaista dugo u IT-u, samo nije bila toliko rasprostranjena i korišćena (ne računam mainframe to je ipak liga za sebe). Tih godina bilo mi je itekako interesantno da se igram sa vmware-om u cilju testiranja raznih aplikacija ili samih operativnih sistema bez bojazni da ću nešto da spržim ili onesposobim, jer za mene su vmware, vbox, xen i ostali alati tog tipa bili i ostali idealni alati za testground. Danas smo svedoci da se virtuelizacija primenjuje svuda, a među poslednjima ulazi i veliki Cisco sa svojom vizijom blade servera i virtuelizacijom celokupnog data centra.
AIX virtuelizacija
IBM je sa derivatom AIX-a u vidu tkz. VIOS (virtual i/o server) i debelom pordrškom hardware-a zaista kreirao solidnu platformu za virtuelizaciju. Kreiranjem particija (LPAR,DLPAR…) na IBM pSeriji dobijate različite mogućnosti virtuelizacije hardware-a koji posedujete. Ako se odlučite da maksimalno iskoristite hardware koji vam je na raspolaganju, trebali bi da se odlučite za kreiranje VIOS redudantnog okruženja (podrazumeva kreiranje 2 VIOS servera) kojima dodeljujete kompletan fizički hardware koji taj server poseduje. Naravno da bi ste ovo mogli da koristite morate da imate licencu za PowerVM od strane IBM-a i da imate dovoljno hardware-a u samoj mašini. Kada gledate IBM Power hardware nemojte uopšte praviti poređenje sa PC hardware-om, tipa ima manje GHz ili pa BUS na mom kućnom (nabudženom) kompu radi brže itd. To jednostavno ne može da se poredi jer su u pitanju potpuno različite arhitekture. Elem, da se vratim na temu virtuelizacije. Kada ste VIOS serverima dodelili sav hardware iz vaše mašine (podela kojem VIOS serveru ide koji hardware je izuzetno važna), počinje prava igranka. Kreiranje novih DLPAR-ova sada ide preko VIOS servera koji im dodeljuju virtuelne uređaje. Znači novi DLPAR će dobiti virt. procesor, virt. memoriju, virt. eth, virt. diskove itd. Prava zajebancija je u tome da novokreirani DLPAR dobije tkz. multipath koristeći oba VIOS servera za svoje I/O uređaje. Ovime dobijate potpunu redudantnost jedne instance koja sada može da dobija resurse preko dve putanje. Za potrebe IBM skupa pod temom “Preporučeni hardware za SAP” gde sam držao prezentaciju pod nazivom: “IBM Customer story – DELTA M Transition to enterprise” napravio sam sledeću ilustraciju koja, čini mi se lepo ilustruje ovo o čemu sam govorio u tekstu iznad:

Kao što se vidi na ilustraciji, prostor se uzima sa nekog SAN-a preko FC-a, zazim se preko fizičkog hardware-a koji kontrolišu VIOS-i (tačnije Hypervisor, ali o tome neki drugi put), virtuelizovani hardware (u ovom slučaju diskovi) prosleđuju DLAPR-ovima koji imaju po 2 SCSI kontrolera koji vide neki prostor preko 2 putanje, što zovemo multipathing (MPIO).
Kako to izgleda u AIX-u multipath (2):
# lspath
Enabled hdisk1 vscsi0
Enabled hdisk1 vscsi1
Enabled hdisk0 vscsi0
Enabled hdisk0 vscsi1
# lsattr -El hdisk0
PCM PCM/friend/vscsi Path Control Module False
algorithm fail_over Algorithm True
hcheck_cmd test_unit_rdy Health Check Command True
hcheck_interval 60 Health Check Interval True
hcheck_mode nonactive Health Check Mode True
max_transfer 0x40000 Maximum TRANSFER Size True
pvid 00c4a37f07f270fd0000000000000000 Physical volume identifier False
queue_depth 3 Queue DEPTH True
reserve_policy no_reserve Reserve Policy True
Na VIOS-a multipath (4):
DEV#: 1 DEVICE NAME: hdisk1 TYPE: 2107900
SERIAL: XXXXXXXXXXXX
==========================================================================
Path# Adapter/Path Name State Mode Select Errors
0 fscsi0/path0 OPEN NORMAL 3990063 0
1 fscsi0/path1 OPEN NORMAL 3946001 0
2 fscsi1/path2 OPEN NORMAL 3949402 0
3 fscsi1/path3 OPEN NORMAL 3942870 0
Algoritam multipath-a može biti failover ili round_robin za diskove. U režimu failover-a sav I/O se šalje preko jedne predefinisane putanje. Ovaj algoritam čuva informaciju o definisanim putanjama prema redosledu koji je opisan u ODM-u. Ako se putanja kojom se salje I/O prekine ili prebaci u status disabled, automatski sledeća definisana putanja postaje aktivna. Ove opcije se kofnigurišu preko path_priority opcije. U režimu round_robin algoritam distribuira I/O preko svih definisanih i enable-ovanih putanja. Prioritet putanje se određuje takođe preko path_priority opcije. Ukoliko neka putanja pređe u režim failed ili disabled taj path se više ne koristi za slanje I/O-a već se prelazi na prvu sledeću definisanu putanju. U tom slučaju se preračunava procenat I/O-a koji će biti distribuiran preko ostatka putanja koje su dostupne. Praćenje rada failover-a u toku recimo prekida jedne putanje može se videti na sledeći način:

Na slici iznad prikazao sam kako izgleda testiranje pada jedne putanje, čiji prekid sam izazvao jednostavnim otkačinjanjem fiber optičkog kabla sa FC kartice. U trenutku prekida aktivno je bilo upisivanje podataka na traženi disk (klikni na link za sliku).
Prednosti virtualizacije
Ako je virtuelizacija podržana od strane hardware-a, onda su prednosti mnogobrojne. Za početak drastično smanjenje downtime-a, lakoća prilikom modifikacije samog DLPAR-a u vidu dodavanja ili oduzimanja (heh, ovo bi voleo da vidim da mi moji DBA traže) resursa (procesora, memorije ili diskova). Kada ovakvom (da ne kažem idealnom) produkcionom okruženju pridodate i AIX-ov LVM, onda stvari postaju prava pesma. Naravno kad sve prethodno dobro iskonfigurišete, istestirate i proverite. Pored toga kreiranje virtuelnog okruženja omogućuje konsolidaciju resursa kojim raspolažete, dobijate idealno sandbox test okruženje (meni nekako lepše zvuči testground), tu je i mogućnost pokretanja starih tkz. legacy aplikacija na starijim operativnim sistemima zarad potreba tranzicije na nova okruženja, virtuelizacija vam omogućava i lakšu migraciju kako resursa tako i celokupnih radnih (ili testnih) okruženja itd.
… i mane
A mane? Pa jedna od mana je što planiranje, konfiguracija i dokumentovanje svega što radite na ovakvom sistemu zahteva prilično vremena. Poznavanje rada ovakvog sistema zahteva brojne obuke, mnogo sati za konzolom i prethodno iskustvo u radu sa unix operativnim sistemima. Naravno uvek može da se uradi i na “oruk” fazon, ali rezultati onda budu, pa veoma problematični.
Eto, toliko o AIX virtuelizaciji diskova, u narednom periodu objaviću još nekih tekstova na ovu temu. Znam da nas u Srbiji ima jako malo, ali to nije razlog da ne napišem ovakav tekst na našem jeziku.