Poceni ni nujno zanič
Kupujete strežnik, katerega ključna naloga bo hraniti podatke, to pa pomeni, da bo moral vsebovati kar največ diskovja, seveda zvezanega v polje RAID. Kupiti "resen" strežnik z diski SAS, nekoliko privarčevati s hitrimi diski SATA ali se zadovoljiti kar z običajnimi diski SATA za namizne računalnike in programskim poljem RAID? Dilema, ki je žrla tudi nas. Zato smo jo raziskali.
Uredništvo Monitorja tu in tam igra tudi tehnično službo našega matičnega založnika in to se je tokrat pokazalo v želji po strežniku z veliiiiiiiikimi diski, ki naj bi rabil za shranjevanje fotografskega arhiva tednika Mladina. Odkar njihovi fotografi delajo z digitalnimi fotoaparati, je fotografij nekaj desetkrat več kakor včasih ...
Ker vendarle ne sodimo med velika podjetja z "resno" infrastrukturo, smo najprej zavrgli zamisel o "resnem" diskovnem sistemu SAN. Preveliko in predvsem predrago.
Naslednja zamisel je bil kateri izmed sistemov NAS, ki jih v strežniški sobi imamo že kar nekaj. Vendar je tudi ta odpadla, kajti v resnici smo potrebovali strežnik Windows, saj bo na njem delovala posebna programska oprema za indeksiranje in katalogiziranje fotografij.
Obris rešitve je bil torej jasen - strežnik z operacijskim sistemom Windows server in "vgrajenimi" diski. Seveda pa je to res le obris rešitve, kajti možnih končnih rešitev je kar veliko, razlikujejo pa se po največji količini diskovja, ki ga lahko na ta način sestavimo, po hitrosti tega diskovja in, seveda, po ceni.
Kakšen strežnik?
Najprej seveda naletimo na osnovno odločitev - nakup "pravega" strežnika ene od "resnih" strežniških blagovnih znamk ali nakup sestavljenega PCja, ki bo igral vlogo strežnika? Resne analize tu nismo naredili, ker je nismo potrebovali. Naša programska oprema je namreč procesorsko in pomnilniško zelo nezahtevna, tako da razne strežniške rešitve s procesorji Xeon, specializiranimi matičnimi ploščami, pomnilniki s pariteto in podobnim odpadejo. Zaradi cene, seveda. Ključna je namreč le hitrost diskovja in velikost ohišja, v katero bomo namestili čim več diskov. Res, "pravi" strežnik bi nam postregel tudi z ohišjem, ki bi omogočalo zamenjavo okvarjenih diskov med delom, vendar nam to ni bilo ključno. Strežnik za fotografije si pač lahko privošči, da je ob okvari diska 10 minut nedosegljiv ...
Odločili smo se torej za "PC", sicer s procesorjem Intel Core 2 Duo Quad, ker so ti danes že tako poceni, da nima smisla varčevati, in običajnima 2 GB pomnilnika (strežnik zdaj tako ali tako nikoli ne "kuri" več kot 700 MB). Ohišje je bilo bolj ali manj običajno, vendar hkrati tako prostorno, da smo vanj lahko namestili pet diskov. Operacijski sistem? Windows Server, zadnja različica, 2008. 32- ali 64-bitni? 32, vsekakor. Če v sistemu ni več kakor 4 GB pomnilnika, se ni smiselno omejevati s 64-bitnim sistemom, pri katerem prej ali slej naletimo na kak gonilnik, ki noče delovati, oz. ga ni ...
Kakšen RAID?
Naslednja odločitev je bila včasih lahka, danes pa morda niti ni več - kateri tip RAID polja bi radi uporabili? Potrebujemo varnost, bolj kot hitrost, torej RAID 0 (striping) odpade. RAID 1 ali zrcaljenje - sliši se obetavno, vendar na ta način vendarle izgubimo pol prostora, ki nam ga ponudijo vgrajeni diski. In ker je velikost ohišja omejena, je taka 50 % izguba vendarle nekoliko preveč. Enako velja za različice RAID 01 in 10. Novejši RAID 6, ki je odporen proti hkratni odpovedi dveh diskov, je že boljši, vendar zahteva najmanj štiri diske, pri tem pa je polje na koncu veliko kot seštevek N-2 diskov (če je N število diskov v sistemu). Predvsem pa RAID 6 ni tako zelo standarden in ga ne podpirajo vsi sistemi/krmilniki RAID. Logična izbira je torej kar klasični RAID 5. In če bo v ohišju vendarle ostalo še kaj prostora, se lahko odločimo še za t. i. "hot spare", disk, ki bo avtomatsko vskočil v polje, če bo kateri iz polja odpovedal. S tem se precej približamo varnosti sistema RAID 6.
Kakšen krmilnik?
Podporo programskim poljem RAID so imeli že Windows NT. Na sliki RAID 1 oz. zrcaljenje na našem prastarem, že upokojenem strežniku.
In tu seveda nastopi ključno vprašanje - kakšen naj bo ta RAID 5, kakšne diske naj ima in kako naj bodo povezani? Rešitev je več, med seboj pa se (bistveno) razlikujejo tako po velikosti končnega polja, hitrosti delovanja tega polja kot tudi po ceni, seveda.
"Cenovno občutljivim" bo najprej padlo na misel, da imajo danes že prav vse matične plošče vsaj štiri vtičnice za priklop diskov SATA, to pa popolnoma zadostuje za sestavo v polje RAID 5. Ker smo operacijski sistem že določili in ker vemo, da Windows Server že tam od različice NT omogoča izdelavo programskih polj RAID 5, je najcenejša rešitev kot na dlani - kar največ poceni in velikih (danes tudi 1 TB!) diskov SATA, z Windows Server povezanimi v RAID 5. Rešitev je poceni, preverjeno deluje, vendar je zelo verjetno tudi zelo počasna. Vsaj v časih Windows NT 4 in 200 MHz procesorjev, ki so bili programskim poljem RAID komaj kos, je bila, preverjeno, počasna. Je tako tudi danes?
Druga, nekoliko bolj "strojna", a prav nič dražja rešitev se prav tako ponuja sama od sebe. Velika večina matičnih plošč je narejena na podlagi Intelovih osnovnih vezij, ki imajo tudi podporo RAID, tudi RAID 5. Intel Matrix, kot se imenuje sistem, obljublja strojno podporo za tisto, kar v zgornjem primeru zagotavlja osrednji procesor oz. Windows Server. Seveda nas je zanimalo, ali je ta strojna podpora hitrejša od programske in ali je za resno delo (beri: strežniško delo) dovolj stabilna.
Teorija pravi, da se za nekoliko več denarja zagotovo dobi več, zato smo v zgornja primera vpletli tudi specializirane diske SATA, ki se namesto s 7200 vrtijo z 10.000 obrati na minuto. Diski so menda hitrejši, torej bo tudi končni sistem hitrejši, mar ne? Vendar za koliko? Se to v resnici splača?
Še nekoliko več denarja bo šlo iz žepa, če se odločimo za še nekoliko "bolj profesionalno" rešitev - nakup specializiranega RAID krmilnika SATA. Razširitvena kartica na vodilu PCI Express s svojim procesorjem, svojim predpomnilnikom, celo s svojim akumulatorčkom, ki vzdrži vsebino na disk nezapisanih podatkov, če strežnik nepričakovano odpove (npr. zmanjka elektrike, mi pa nimamo UPS). Taka kartica ni poceni, vendar za resno strežniško rešitev tudi ni draga. Je pa menda veliko bolj zanesljiva od "igračk", ki smo jih omenjali zgoraj, vsaj tako pravijo. In seveda lahko tudi tu varčujemo s poceni diski s 7200 obrati ali pa se odločimo za tiste z 10.000 obrati.
In rešitev, ki bi morala biti po vseh merilih "naj naj", tako po zanesljivosti kot po zmogljivostih in seveda tudi po ceni? Uporaba specializiranega krmilnika RAID za diske SAS (Serial Attached SCSI). "Specializiranost" samega krmilnika sicer največkrat ni prav nič bolj napredna od prej omenjenega krmilnika za diske SATA, nanaša se bolj na to, da so sami diski SAS danes tisti, ki se vrtijo s kar 15.000 obrati na minuto. Teoretično bi torej tak sistem moral biti bistveno hitrejši od tistega z diski SATA, še posebej od onega s hitrostjo vrtenja 7200 obratov na minuto.
Kaj če odpove krmilnik?
Polja RAID se vse prevečkrat omenjajo kot nekakšno ključno zagotovilo za varnost podatkov. Vendar je resnica kar daleč od tega - ključno zagotovilo je namreč le varnostna kopija ali pa kar celotna "kopija" strežnika oz. delovanje v gruči. Z diski smo v RAID 5 (ali, še bolje, 6) sicer res zelo na varnem, še vedno pa lahko "odleti" krmilnik, ne nazadnje pa tudi kaj resnejšega, npr. procesor ali matična plošča. Pri slednjih si še lahko pomagamo z novo namestitvijo sistema (čeprav je to pri resnejših sistemih na meji mogočega), ob odpovedi krmilnika pa pomaga samo - nov krmilnik istega izdelovalca, če je le mogoče, kar isti model. Z nekaj sreče bo zapisane podatke prebavil tudi novejši model istega izdelovalca, krmilnik drugega izdelovalca pa bo pri tem skoraj zagotovo pogorel.
Velikost polja
Vse lepo in prav, scenarije smo nanizali glede na hitrost delovanja in ceno, vendar je že takoj na začetku ključen še en podatek, ki pa ima ravno nasproten predznak - velikost diskov. Zelo hitri in zelo dragi diski SAS so namreč zelo majhni (trenutno največ 300 GB, kmalu 450 GB), vsaj v primerjavi s počasnimi diski SATA s 7200 obrati (1 TB, kmalu 1,5 TB). Enako velja tudi za diske SATA z 10.000 obrati - so sicer cenejši od diskov SAS, vendar nanje še vedno lahko shranimo največ 300 GB. Če torej privzamemo, da imamo v strežniku prostora za štiri diske, lahko sestavimo polje RAID 5 naslednjih zmogljivosti:
Potrebujete res veliko polje? Zadovoljiti se boste morali z manjšo hitrostjo delovanja ...
Kako smo preizkušali?
IOmeter, program, s katerim smo preizkušali.
Za merjenje diskovne zmogljivosti strežnika nikakor ni dovolj le običajno "štopanje" hitrosti kopiranja dolge datoteke z diska in nanj, kot je bolj ali manj dovolj za merjenje hitrosti diska v namiznem sistemu. Strežniki so namreč zelo večuporabniške naprave, po njih hkrati brska množica uporabnikov in programov, in to največkrat ne zaporedno (branje dolge datoteke), temveč naključno, z veliko kratkimi branji in pisanji. Še posebej to velja za strežnike, v katerih tečejo zbirke podatkov.
Za merjenje hitrosti delovanja smo zato uporabili program IOmeter, ki ga je pred časom razvil Intel in ga prepustil v upravljanje odprtokodni skupnosti. Zadnja različica sicer sodi v leto 2006, vendar je program tako izpopolnjen, da mu je pravzaprav težko še kaj dodati. Deluje na podlagi nastavitvenih datotek, ki si jih lahko naredimo sami, oz. uporabimo tiste, ki jih je naredil in preizkusil nekdo drug.
Nastavitveno datoteko, s katero smo preizkušali mi, dobite tukaj:
V njej smo zapisali, da nas zanima:
- hitrost zaporednega branja,
- hitrost zaporednega pisanja,
- hitrost naključnega branja,
- hitrost naključnega pisanja,
- hitrost "realnega" dela z zbirko podatkov.
Po nekaterih podatkih je za realno zbirko podatkov značilno 33 % bralnih in 67 % pisalnih ciklov, povprečna velikost podatka pa je 2 KB.
Mimogrede, tako sestavljena nastavitvena datoteka ni primerna za preizkušanje na običajnih PCjih z običajnim diskom SATA. Lahko se zgodi, da vam bo za nekaj (deset) minut popolnoma blokirala računalnik ...
Rezultati
Rezultate si lahko ogledate v grafikonih, pa kljub temu nekaj besed razlage.
Za osnovno platformo smo vzeli kar Dellov strežnik nižjega cenovnega razreda, model Poweredge T300. Vgrajen je bil procesor Xeon x3323 (štirijedrni, 2,5 GHz) in 2 GB pomnilnika (667 MHz). Strežnik ima tudi diskovno ohišje (enclosure), ki omogoča t. i. "hot swap", se pravi menjavo diskov med delom, vendar nas ta funkcionalnost tokrat ni zanimala.
Krmilnik SAS
Dellov krmilnik PERC je nadzorljiv prek brskalnika.
Za preizkus SAS smo uporabili kar v strežnik že vgrajeni Dellov SAS RAID krmilnik PERC 6i. Nanj so bili v RAID 5 zvezani trije SAS diski Seagate Cheetah 15K.5, veliki 300 GB. Mimogrede, na isti krmilnik lahko sicer priklopimo tudi diske SATA.
Krmilnik PERC je nadzorljiv prek Dellove spletne konzole, "v živo" pa mu lahko nastavljamo kar nekaj parametrov, s katerimi prehajamo med bolj ali manj varnimi in bolj ali manj hitrimi načini delovanja. Predpomnilnik lahko vklopimo samo za branje (t. i. read ahead - branje nekaj sektorjev vnaprej, za vsak primer) ali pa tudi za pisanje, ročno lahko tudi izklopimo regeneriranje polja v ozadju, če morda ravno tisti trenutek potrebujemo polno zmogljivost sistema. Izkaže se, da predpomnilnik za pisanje drastično pripomore le k hitrosti zaporednega zapisovanja (namesto 14 smo izmerili kar 176 MB/s), v realnem svetu pa je razlika bistveno manjša (3,1 namesto 2,9 MB/s). Enako je z bralnim predpomnilnikom, ki se nekoliko pozna le pri zaporednem branju, a to je logično.
Delo med regeneriranjem polja RAID 5 (po zamenjavi "okvarjenega" diska) je le nekoliko moteno, saj smo namesto 3,1 MB/s namerili še vedno zelo dobrih 3 MB/s.
Cena krmilnika je 260 evrov, cena posameznega diska SAS 15K pa 405 evrov.
Krmilnik SAS
Cena za 1 TB v RAID 5: krmilnik 260 EUR + diski 4 x 405 EUR = 1880 EUR.
Največja velikost polja s štirimi diski: 3 x 300 GB = 900 GB.
Za: Izredna hitrost delovanja. Diski SAS imajo deklarirano zelo dobro zanesljivost.
Proti: Dragi in razmeroma majhni diski.
Krmilnik SATA
Krmilno programje na 3Ware krmilnik je enako, tako za modele SATA, kot SAS.
Za specializiran RAID krmilnik SATA smo izbrali 3Ware 9650SE (3Ware ima sicer v ponudbi tudi krmilnike SAS). Cena modela za največ štiri diske je 360 evrov. Krmilniku lahko dokupimo tudi akumulatorski modul, s katerim zavarujemo podatke, ki ob odpovedi sistema morda ne bi bili zapisani na disk. Nadzorljiv je prek spletnega programa, tako kot Dellovemu PERCu pa lahko tudi 3Wareu v živo spreminjamo parametre delovanja. Tudi tukaj med regeneracijo okvarjenega diska nismo opazili bistvenih odstopanj v hitrosti delovanja in tudi tukaj se je predpomnilnik pri pisanju pokazal le z minimalnim vplivom na realno delo z zbirko podatkov.
Krmilnik smo preizkusili dvakrat, z diski SATA s 7200 obrati (WD Caviar SE 16 WD3200AAKS, 68 EUR)) in z 10.000 obrati na minuto (WD Velociraptor WD3000GLFS, 268 EUR). Za nepoznavalce je bilo zelo zanimivo videti, da so najcenejši diski SATA 7200 pri zaporednem branju najhitrejša rešitev, bistveno hitrejša celo od 15K diskov SAS (172 proti 115 MB/s). Vendar je razlaga logična - poceni, "počasi vrteči se" diski imajo zelo gosto zapisane podatke, zato se jih bere zelo hitro. Hitro vrteči se diski premorejo manjšo gostoto zapisa, saj jih sicer zaradi velike hitrosti bralno/pisalno glave "ne bi mogle ujeti". Imajo pa zato bistveno hitrejši mehanizem za premik glav in tako hitrejši dostopni čas. Pri diskih Velociraptor (SATA 10.000) je hitrejši dostop možen tudi zato, ker gre v resnici za diske formata 2,5 palca in ne običajnih 3,5 palca. In ker je hiter dostop do "kratkih" podatkov pri zbirkah podatkov ključen, ne čudi, da se je rešitev SATA izkazala za bistveno počasnejšo od rešitve SAS. Izmerili smo namreč le 1,3 MB/s (diski z 10.000 obrati) oz. celo samo 0,84 MB/s (7200 obratov), se pravi kar trikrat počasneje od rešitve SAS ...
Krmilnik SATA z diski 7200
Cena za 1 TB v RAID 5: krmilnik 360 EUR + diski 4 x 68 EUR = 632 EUR.
Največja velikost polja s štirimi diski: 3 x 1 TB = 3 TB.
Za: Zelo poceni, možna zelo velika polja. Hitro branje daljših datotek.
Proti: Počasno delovanje zbirk podatkov.
Krmilnik SATA z diski 10.000 obratov
Cena za 1 TB v RAID 5: krmilnik 360 EUR + diski 4 x 268 EUR = 1432 EUR.
Največja velikost polja s štirimi diski: 3 x 3 GB = 900 GB.
Za: Precej hitrejše delovanje kot z diski s 7200 obrati.
Proti: Precej počasnejše delovanje kot diski SAS.
Programski RAID
Če smo na tesnem z denarjem, si lahko RAID omislimo tudi popolnoma programsko - z Windows Serverjem.
Prav, diski SATA so počasni. Ali to pomeni, da specializiranega krmilnika RAID sploh ni smiselno kupovati, saj tako počasnim diskom tako ali tako ni pomoči? Izkaže se, da ni tako. Ko smo omenjene diske SATA zvezali mimo krmilnika in celotno breme polja RAID 5 prepustili kar Windows Serverju oz. procesorju Xeon, se je izkazalo, da je delo z njimi še bistveno počasnejše. Z "resnim" krmilnikom lahko namreč delo kar za 2,4 x (diski s 7200 obrati) oz. 2,7 x (10.000 obratov) pohitrimo! Brez krmilnika smo namreč pri meritvah hitrosti delovanja zbirke podatkov dosegli borih 0,48 oz. 0,35 MB/s! Zanimivo pa je, da se tudi tukaj regeneracija okvarjenega diska pri meritvah ni skoraj nič poznala.
Programski RAID
Cena za 1 TB v RAID 5: 272 oz. 1072 EUR (7200 ali 10K diski).
Največja velikost polja s štirimi diski: 900 GB ali 3 TB (7200 ali 10K diski).
Za: Zelo poceni, še posebej v kombinaciji z diski s 7200 obrati.
Proti: Zelo počasno delovanje.
Intelov Matrix
Kaj pa vmesna rešitev? Med "resnim" strojnim krmilnikom in popolnoma programsko rešitvijo? Intelov Matrix, ki je vgrajen v skoraj vsako novejše Intelovo osnovno vezje na osnovni plošči, se ponuja kot naročen. Deluje podobno kot "pravi" strojni krmilniki RAID, le da zanj ne potrebujemo nobenega dodatnega nakupa. Diske priklopimo kar na matično ploščo, RAID polja pa upravljamo prek BIOSa krmilnika ali pa okenskega programa, ki ga snamemo iz spleta.
Izkaže se, da je to rešitev, ki jo za resno delo vendarle težko priporočimo. Za začetek smo imeli ob namestitvi hude težave, saj je treba najprej v BIOSu izbrati, da so priključki SATA na matični plošči odslej vrste RAID. In ko to naredimo, se Windows Server 2008 seveda ne zbudi več in ga je treba namestiti znova. Nato smo ugotovili, da nadzorni okenski program Matrix ne deluje na privzetih Microsoftovih gonilnikih, temveč zahteva Intelove. Teh pa nam naknadno, kljub drugačnim zatrdilom v datoteki readme.txt, nikakor ni uspelo namestiti. Šele, ko smo gonilnike namestili ob namestitvi operacijskega sistema (z znanim "F6"), je vse delovalo, kot bi moralo.
A kaj kmalu smo ugotovili, da tako narejeno strojno polje RAID enostavno ni stabilno. Ob obremenitvi so začeli "odletavati" diski, oz. se je polje začelo rušiti. Zamenjali smo diske, pa ni pomagalo. Celoten sistem smo postavili na drugem računalniku (z drugo matično ploščo), toda simptomi niso izginili.
Skratka, Matrix je morda dovolj dober za zrcaljenje diska na domačem računalniku, nikakor pa ne (še) za strežniško polje RAID.
Intel Matrix
Cena za 1 TB v RAID 5: 272 oz. 1072 EUR (7200 ali 10K diski).
Največja velikost polja s štirimi diski: 900 GB ali 3 TB (7200 ali 10K diski).
Za: Zelo poceni.
Proti: Težave pri nameščanju, nezanesljivost.
Kako torej ...
Za začetek se izkaže, in se je tudi na tokratnem preizkusu, da v strežniških okoljih veliko bolje zvozijo diskovni sistemi, ki imajo hiter čas dostopa do posameznega podatka, kakor tisti, ki se lahko pohvalijo le s hitrim prenosom podatkov. Diski SAS 15K so torej veliko boljši od SATA 10K in še posebej od SATA 7200. Prav tako se izkaže, da tudi programska polja RAID, ki jih poganjajo današnji štirijedrni Xeoni, ne sežejo do kolen danes že cenovno razmeroma dostopnim strojnim krmilnikom.
Po drugi strani se izkaže, da je najboljša srednja rešitev ceneno diskovje SATA s 7200 obrati in specializiran krmilnik RAID. Zmogljivosti so, kar zadeva zbirke podatkov, znosne; če potrebujemo le datotečni strežnik, da bo nekaj uporabnikov občasno pisalo in bralo daljše datoteke (beri, fotografije), pa pravzaprav zelo dobre. Predvsem pa lahko danes s takimi diski zelo poceni sestavimo nekajterabajtna polja RAID; tega s hitrejšimi, dražjimi in manjšimi diski SAS in SATA 10K ne moremo.