H´att´ert´ar Rendszerek M´er´esi Seg´edlet Informatikai technol´ogi´ak laborat´orium I. ¨ Ossze´all´ıtotta: T´oth D´aniel, Huszerl G´abor, Szatm´ari Zolt´an M´er´estechnika ´es Inform´aci´os Rendszerek Tansz´ek 2012. febru´ar 26.
1.
H´ att´ ert´ ar alapok
Ez a m´er´esi seg´edlet bemutatja a h´ att´ert´ ar kezel´es´ehez kapcsol´od´o k¨ ul¨onb¨ oz˝o technol´ ogi´ akat, kiemelve a hibat˝ ur´eshez kapcsol´ od´o k´erd´eseket.
1.1.
Gyakorlati elv´ ar´ asok
A h´ att´ert´ ar vagy m´ asodlagos t´ ar feladata a sz´am´ıt´og´epes rendszerekben a stabil adatt´arol´as megval´os´ıt´asa. Az operat´ıv mem´ ori´ aval, azaz els˝ odleges t´ arral szemben a legfontosabb a nem felejt˝ o (non-volatile) tulajdons´ aga, vagyis a rendszer kikapcsol´asa ut´an is hossz´ u ideig meg˝orzi a rajta t´ arolt adatokat. Fontos jellemz˝ oje tov´abb´a a mem´ori´ahoz k´epest alacsony fajlagos k¨ olts´ ege ´es a nagyobb kapacit´ asa. A h´ att´ert´ arakkal szemben t´ amasztott els˝ odleges funkcion´ alis k¨ ovetelm´ eny teh´at a nem felejt˝o adatt´arol´ as, ami r¨oviden annyit jelent, hogy a t´ arol´oba ´ırt adatot a k´es˝obbiekben pontosan vissza lehet olvasni. A gyakorlatban sz´amos ,,nemfunkcion´ alis” (m´ as sz´oval extrafunkcion´ alis, azaz az alapvet˝o funkcionalit´ason t´ uli) elv´ar´ast is t´ amasztunk a h´ att´ert´ arakkal szemben. P´eld´ aul: • Hozz´ af´ er´ esi id˝ o - mennyi id˝o telik el egy ´ır´ as vagy olvas´asi k´er´es kiad´asa ´es kiszolg´al´asa k¨oz¨ott. ´ • Atereszt˝ ok´ epess´ eg - adott id˝oegys´eg alatt olvashat´o illetve ´ırhat´ o adatmennyis´eg. • Fogyaszt´ as - az olvas´ as- ´es ´ır´ asm˝ uveletek illetve a t´etlen m˝ uk¨od´es energiaig´enye. • Egy´eb nemfunkcion´alis jellemz˝ ok - m˝ uk¨od´esi h˝ om´ers´eklettartom´any, zajszint, meghib´asod´ as gyakoris´ aga, titkos´ıt´ asi k´epess´egek stb. H´ att´ ert´ arak meghib´ asod´ asa szigor´ uan v´eve azt jelenti, hogy nem k´epesek kiszolg´alni olvas´as vagy ´ır´ asm˝ uveleteket, illetve az ´ırt adatokat nem k´epesek pontosan visszaolvasni. Sokszor meghib´asod´ asr´ol besz´el¨ unk akkor is, ha a t´ arol´oeszk¨oz nemfunkcion´alis param´eterei olyan m´ert´ekben leromlanak (pl. a m˝ uveletek nagyon lelassulnak), hogy az a rendszer¨ unk norm´alis m˝ uk¨od´es´et akad´alyozza. A gy´ art´ ok szok´ asosan megadj´ ak az eszk¨ oz¨ok v´arhat´o meghib´asod´ asi gyakoris´ ag´at illetve tervezett ´elettartam´at. Fontos megjegyezni, hogy megadott meghib´asod´ asi param´etereket mindig a tervezett ´elettartamon (design lifetime) bel¨ ul kell ´erteni. Teh´at ha a gy´ art´ o a meghib´ asod´ asok k¨ oz¨ otti ´ atlagos id˝ ore (MTBF, Mean Time Between Failures) 1.000.000 u ¨zem´or´at specifik´ al, akkor az nem jelenti azt, hogy egy eszk¨ oz v´arhat´oan 114 ´evig u ¨zemk´epes lesz. A helyes ´ertelmez´es szerint az 5 ´eves tervezett ´elettartam lej´ arta el˝ott v´arhat´oan 22 darabb´ol 1 fog meghib´asodni. A k¨onnyebb ´ertelmezhet˝ os´eg v´egett n´eh´any gy´ art´ o ´att´ert az MTBF-r˝ol az ´eves meghib´ asod´ asi gyakoris´ ag (annualized failure rate) megad´ as´ ara. A t´ arol´ oeszk¨oz¨ok k¨olts´ege ´ altal´ aban elt¨ orp¨ ul a rajtuk t´ arolt adat ´ert´ek´ehez k´epest, ez´ert k¨ ul¨on¨osen nagy probl´em´ at jelentenek az adatveszt´essel j´ar´o meghib´asod´ asok. Az adatveszt´esek kock´azat´at redund´ans t´ arak ki´ep´ıt´es´evel lehet m´ers´ekelni. 1
Nagyv´allalati k¨ornyezetben sz´ amottev˝o k¨olts´eget jelent a h´ att´ ert´ arak karbantart´ asa. Ez nemcsak a meghib´asodott illetve ´eletciklusuk v´eg´ere ´ert eszk¨ oz¨ok cser´ej´et jelenti. Az alkalmaz´asok n¨ ovekv˝o teljes´ıtm´eny ´es t´ arkapacit´ as ig´enyei miatt is gyakran sz¨ uks´eg van cser´ere, illetve b˝ ov´ıt´esre. A karbantart´as egyszer˝ us´ıt´es´ere jelentek meg a k¨ozpontos´ıtott t´ arrendszerek.
1.2.
Adatt´ arol´ o eszk¨ ozfajt´ ak ´ es tulajdons´ agaik
Merevlemez: Manaps´ ag a legelterjedtebben alkalmazott t´ arol´oeszk¨oz. Az adatokat m´agnesesen r¨ogz´ıti forg´ o lemezt´ any´erok fel¨ ulet´en. A lemez tartalm´at egy pozicion´alhat´o fejszerelv´eny olvassa ´es ´ırja. Alapvet˝oen mechanikus eszk¨ oz, ennek k¨ovetkezt´eben a v´eletlen hozz´ af´er´esi id˝ok k¨ozepesek, tipikusan 5-20 ms nagys´ agrend˝ uek, az ´atereszt˝ok´epess´eg is nagys´ agrendileg k¨ozepesen gyors, jellemz˝ oen 50-130 MB/s. A nagy sebess´eggel mozg´o alkatr´eszek valamint a nagy adats˝ ur˝ us´eg miatt a fej ´es a t´ any´er k¨oz¨otti rendk´ıv¨ ul kis l´egr´es igen s´er¨ ul´ekenny´e teszi. K¨ uls˝ o er˝ohat´ asok, nagy gyorsul´ as (¨ utk¨ oz´es), magas (> 50 ℃) vagy ´eppen alacsony (< 20 ℃) h˝ om´ers´eklet illetve a h˝ om´ers´eklet, l´egnyom´ as, p´ aratartalom gyors v´altoz´ asa mind adatveszt´essel j´ar´o u ¨zemzavart okozhat. A merevlemezek jellemz˝ o param´eterei: lemezek ´atm´er˝oje (jellemz˝o v´altozatok: 1.8”, 2.5”, 3.5”), lemezt´any´erok fordulatsz´ama (jellemz˝o ´ert´ekek: 4200/min, 5400/min, 7200/min, 10000/min, 15000/min), lemezek sz´ ama (tipikusan 1-5), lemezenk´enti kapacit´ as (manaps´ag 80GB/lemezt˝ol 500GB/lemezig terjed). A hozz´ af´er´esi id˝ok alapvet˝oen k´et ¨osszetev˝ob˝ol ´allnak ¨ossze: fejmozgat´ asi id˝o ´es lemez al´afordul´ asi id˝o. A fejmozgat´ asi id˝o f¨ ugg att´ ol, hogy a v´eletlen el´er´esek egym´ ast´ ol mekkora t´ avols´agra t¨ ort´ennek, az al´ afordul´ asi id˝ok azonban a 0 ´es az egy teljes lemezfordulat ideje k¨oz¨ott v´eletlenszer˝ uen oszlik el. A gyors fejmozgat´ as nagyobb zajjal ´es energiafogyaszt´assal j´ar, tov´abb´a nagyobb teherb´ır´ as´ u mechanik´ at ig´enyel. Az ´atlagos al´afordul´ asi id˝o csak a fordulatsz´am n¨ ovel´es´evel cs¨ okkenthet˝ o. A folyamatos szekvenci´alis ´ atereszt˝ok´epess´eg a lemezt´any´erok adats˝ ur˝ us´eg´et˝ol ´es fordulatsz´ am´ at´ol f¨ ugg. A lemezekre koncentrikus k¨or¨okben fel´ırt adats´avok ker¨ ulete f¨ ugg a k¨or sugar´ at´ol, ´ıgy az egyes adats´ avokon t´ arolhat´o adat mennyis´ege is v´altoz´ o. Mivel a lemez fordulatsz´ ama ´ alland´ o, ez´ert az ´ atereszt˝ok´epess´eg f¨ ugg att´ ol, hogy a fej ´eppen melyik adats´avot olvassa v´egig (kis ker¨ ulet˝ u adats´ avban egy fordulat alatt kevesebb adat halad el a fej alatt). Ennek az a k¨ovetkezm´enye, hogy a line´aris ´ atereszt˝ok´epess´eg egy jellegzetes cs¨okken˝o g¨ orb´et mutat (1. ´abra), amit figyelembe kell venni teljes´ıtm´enytervez´eskor. Optikai lemezek: Sz´amos szabv´anyos ´es nem szabv´anyos optikai adatt´arol´o form´atum l´etezik, m´ara m´ar szinte teljesen egyeduralkod´ ov´ a v´altak a szabv´anyos, 12 illetve 8 cm-es lemezeket haszn´al´o megold´asok. Kapacit´ as illetve az alkalmazott l´ezer hull´ amhossza szerint n´egy gener´aci´ oba sorolhat´oak: CD (700 MB), DVD (4.5 GB), HD-DVD (15 GB) ill. Blu-Ray (25 GB). Minden gener´ aci´ onak van el˝ oregy´artott (-ROM), egyszer ´ırhat´ o (-R), illetve u ´jra´ırhat´ o (-RW) alv´altozata. A merevlemezekn´el elmondottakhoz hasonl´ o mechanikai elven m˝ uk¨odnek, a teljes´ıtm´eny¨ uk is hasonl´oan ´ırhat´ o le, ´ am a tipikus sz´ am´ert´ekek l´enyegesen rosszabbak. A v´eletlen el´er´esi id˝o 100ms nagys´ agrend˝ u, a szekvenci´alis ´ atereszt˝ok´epess´eg itt is poz´ıci´of¨ ugg˝o, CD-k eset´en legfeljebb 1-3 MB/s, DVD-k eset´en 2-8 MB/s ´erhet˝ o el. Kis fajlagos k¨olts´eg´eb˝ol, de kedvez˝otlen teljes´ıtm´enyparam´etereib˝ol ad´od´oan optikai adatt´arol´ ast jellemz˝ oen adatok t¨ omeges terjeszt´es´ere illetve archiv´al´asra haszn´alnak. Szalagos adatt´ arol´ as: A merevlemezekhez hasonl´ oan a szalagos adatt´arol´as is m´agneses elven t¨ ort´enik. A szalag term´eszet´eb˝ol ad´od´oan a hozz´ af´er´es szekvenci´alis, v´eletlen hozz´ af´er´es csak a szalag hosszadalmas tekercsel´es´evel oldhat´ o meg. A kazett´ank´enti kapacit´ as (800GB LTO-4) ´es a szekvenci´alis ´ atereszt˝ok´epess´eg (120MB/s LTO-4) nagyj´ab´ol hasonl´ o a merevlemezek´ehez, a kazett´ak fajlagos k¨olts´ege azonban alacsonyabb, az optikai adatt´arol´ok´ehoz hasonl´ o. Tulajdons´ agai miatt szalagos adatt´arol´ ast manaps´ag kiz´ar´olag nagym´eret˝ u backup ´es archiv´al´asi feladatokra alkalmaznak. El´erhet˝ oek robotkaros szalagt´ arak (Autoloader, Tape Library), melyek nagy mennyis´eg˝ u kazetta t´ arol´ as´ at ´es a meghajt´ okba automatikus bet¨olt´es´et teszik lehet˝ov´e. A legnagyobb t´ arak ¨ osszkapacit´ asa el´erheti az 5 PetaByte-ot (IBM TS3500T). Szil´ ardtest adatt´ arol´ ok: (Solid State Drive, SSD) Az eddig ismertetett adatt´arol´o eszk¨ oz¨ok mind mozg´ o alkatr´eszeket tartalmaznak, ami egyr´eszt s´er¨ ul´ekenny´e teszi ˝oket, m´asr´eszt korl´atozza 2
80000 Seagate ST373453LC 72GB 15000rpm U320 SCSI 70000
Data rate [MB/s]
60000
50000
40000
30000
20000
10000
0 0
10000
20000
30000
40000
50000
60000
70000
Position [MB]
1. ´ abra. Merevlemez ´ atereszt˝ok´epess´ege olvas´asi hely f¨ uggv´eny´eben (z´on´as fel´ep´ıt´es) az el´erhet˝ o sebess´eget, k¨ ul¨on¨osen a v´eletlen el´er´est. Ahol a k¨ornyezeti hat´asok miatt k¨ ul¨onleges t˝ ur˝ok´epess´eg˝ u t´ arol´ oeszk¨oz¨ok kellenek (pl. ipari be´agyazott rendszerek, hordozhat´ o eszk¨ oz¨ok), vagy a merevlemezek v´eletlen el´er´esi idej´en´el l´enyegesen gyorsabb hozz´ af´er´esre van sz¨ uks´eg, ott mozg´oalkatr´esz n´elk¨ uli, szil´ ardtest adatt´arol´okat alkalmaznak. Ennek ma k´et elterjedt fajt´ aja van: a Flash mem´ oria ´es az akkumul´ atorral t´ apl´ alt RAM (Battery-Backed RAM). A flash term´eszet´en´el fogva nem felejt˝o, elviekben az adatot ´eveken ´at is k´epes meg˝orizni, ´es a k´eszenl´eti ´allapota sem ig´enyel energi´at. A flash alap´ u SSD-k hozz´ af´er´esi ideje (vez´erl˝o IC megval´os´ıt´as´at´ol f¨ ugg˝oen) nagyj´ab´ol 0.1 ms, a szekvenci´alis ´atereszt˝ok´epess´eg 50-300 MB/s, b´ ar p´ arhuzamos´ıt´assal enn´el l´enyegesen nagyobb sebess´egek (1500 MB/s Fusion-io ioDrive Duo 640) is el´erhet˝ok. Jellemz˝ o, hogy az ´ır´ as lassabb az olvas´ asn´ al. Tov´abbi fontos jellemz˝ o a flash mem´oriacell´ak korl´atozott sz´am´ uu ´jra´ır´ asi lehet˝ os´ege (104 -106 ), a meghib´asod´ asokat t¨ obbnyire a cell´ak elhaszn´al´od´asa okozza. A flash SSD-k ´ altal´ aban tartalmaznak terhel´eskiegyenl´ıt˝o (wear-levelling) allok´aci´ os algoritmust, ami a gyakran fel¨ ul´ırt blokkokat rendszeresen ´athelyezi, hogy megakad´alyozza a korai meghib´asod´ ast. A flash fajlagos k¨olts´ege nagyj´ab´ol t´ızszerese a merevlemezek´enek, ´am ez az ar´any folyamatosan cs¨ okken, ´ıgy v´arhat´ o, hogy a k¨ozelj¨ov˝ oben a merevlemezeket nagy t¨ omegben fogja kiv´ altani, k¨ ul¨on¨osen a notebookokban, ahol fontos a kis fogyaszt´as. Nagyv´allalati IT rendszerekben olyan helyeken alkalmazz´ ak, ahol nincs sz¨ uks´eg nagy helyi adatt´arol´asra (csak OS bet¨olt´eshez kell), vagy viszonylag kis adathalmazon merevlemezekn´el gyorsabb v´eletlen el´er´es kell, ahol f˝oleg az olvas´asm˝ uveletek a domin´ ansak. A RAM-alap´ u SSD-k folyamatos friss´ıt´est ig´enyelnek, ez´ert van sz¨ uks´eg be´ep´ıtett sz¨ unetmentes ´ t´ apell´at´asra. Altal´ aban egybe vannak ´ep´ıtve merevlemezzel is, hogy ´aramkimarad´as eset´en az akkumul´ator lemer¨ ul´ese el˝ ott m´eg stabil t´ arba tudja menteni a mem´oria tartalm´at. A k´eszenl´eti fogyaszt´asuk ´es fajlagos k¨olts´eg¨ uk is rendk´ıv¨ ul magas, ¨osszkapacit´ asuk viszonylag kicsi (1TB 4 egys´eg magas rack m´eretben, 4,5 GB/s ´atereszt˝ok´epess´eggel $375.000 ´aron!). Csak olyan esetekben alkalmazz´ ak ˝ oket, ahol kis adathalmazon rendk´ıv¨ ul gyors (< 5 µs) hozz´ af´er´esi id˝okre van sz¨ uks´eg, p´eld´ aul sok tranzakci´ ot kiszolg´al´ o adatb´azisok eset´eben. ´ Altal´ aban elmondhat´o, hogy a korszer˝ u t´ arol´oeszk¨oz¨ok rendelkeznek bels˝o hibadetekt´al´assal, bizonyos esetekben korl´atozott m´ert´ek˝ u hibajav´ıt´asi lehet˝os´eggel is. Meghib´asod´ as eset´en
3
a´ltal´ aban k´epesek jelezni a oper´ aci´ os rendszer fel´e, hogy a k´ert m˝ uveletet nem tudt´ ak v´egrehajtani. Ritka az olyan meghib´asod´ as, amikor egy eszk¨ oz hibajelz´es n´elk¨ ul hib´as adatot ad vissza.
2.
Hibat˝ ur˝ o megold´ asok, RAID
A RAID (Redundant Array of Independent Disks) olyan megold´asok ¨osszefoglal´o neve, melyek t¨ obb k¨ ul¨on´all´o eszk¨ ozt kapcsolnak ¨ ossze a t´ arkapacit´ as, teljes´ıtm´eny illetve hibat˝ ur´esi tulajdons´ agok jav´ıt´asa ´erdek´eben. Manaps´ ag a k¨ovetkez˝o RAID szinteket haszn´alj´ak: JBOD ( just a bunch of disks”): Egym´ as ut´an ¨osszef˝ uzi az egyes eszk¨ oz¨oket. Hibat˝ ur´est nem ” biztos´ıt, b´ armely eszk¨ oz kies´ese hib´ at okoz. RAID-0 (striping): Az egyes eszk¨ oz¨oket blokkokra bontja, a blokkokat sorban sz´etosztja az egyes eszk¨ oz¨ok k¨oz¨ott, ´ıgy alak´ıtva ki s´avokat (stripe). Teljes´ıtm´eny- ´es kapacit´ asn¨ ovel˝o c´elt szolg´ al, hibat˝ ur´est ez sem biztos´ıt. A JBOD-hoz hasonl´ oan a RAID-0 is n¨ oveli a meghib´asod´ as val´ osz´ın˝ us´eg´et, mert a t¨ omb b´ armely tagj´anak hib´aja potenci´ alisan az ¨osszes adatot haszn´alhatatlann´ a teheti.1 Szekvenci´alis olvas´as ´es ´ır´ as ´atereszt˝ok´epess´ege az eszk¨ oz¨ok sz´am´ aval szoroz´odik, ha nincs egy´eb sz˝ uk keresztmetszet a rendszerben. V´eletlen el´er´esek akkor p´ arhuzamos´ıthat´ oak, ha az egyes m˝ uveletek ´altal ´erintett adat nem nagyobb a blokkm´eretn´el. RAID-1 (mirroring): T¨ ukr¨ozi az adatokat, azaz minden adatot minden eszk¨ ozre ki´ır. Els˝osorban hibat˝ ur´est biztos´ıt. A mai implement´ aci´ ok csak az ´ır´ asm˝ uveleteket t¨ obbsz¨or¨ozik, olvas´ast norm´ alis esetben csak egy eszk¨ oz v´egez el, felt´etelezve, hogy ha az eszk¨ oz meghib´asodik, akkor a hib´ at jelzi a t¨ omb vez´erl˝oje fel´e, ´ıgy nem kell kompar´ alni. Ennek k¨ovetkezm´enye, hogy random olvas´ as m˝ uveleteket vagy t¨ obb egyidej˝ u szekvenci´alis olvas´ast lehet p´ arhuzamosan is v´egezni. A teljes´ıtm´eny blokkm´erett˝ ol f¨ uggetlen. Leggyakrabban 2 diszkb˝ol ´ep´ıtenek RAID-1 t¨ omb¨ ot. (Az´ert nem kell 3 diszk ´es t¨ obbs´egi szavaz´as a hibat˝ ur´ashez, mert a diszkek jellemz˝ o hibam´ odja nem az, hogy rosszul olvasnak vissza egy adatot, hanem hogynem tudj´ak visszaolvasni azt. Ha k´et diszkb˝ol az egyik m´eg el tud olvasni egy adott adatot, az val´osz´ın˝ uleg j´ol olvassa.) RAID-5 (striping with parity): Blokkokra bont´ as ´es hibajav´ıt´as parit´assal. Hasonl´o a RAID0 eset´en ismertetett s´avkialak´ıt´ ashoz. Minden s´avban az egyik blokk parit´ ast tartalmaz, ami a s´av t¨ obbi blokkja alapj´ an k´epz˝ odik. Egy eszk¨ oz kies´ese eset´en az adatok helyre´all´ıthat´oak a megmaradt adatblokkok ´es a parit´ as seg´ıts´eg´evel. Egyn´el t¨ obb eszk¨ oz kies´ese m´ar adatveszt´est okoz. Szekvenci´alis olvas´ as ´es ´ır´ as ´ atereszt˝ok´epess´ege az (eszk¨ ozsz´ am-1)-szeres´ere sk´ al´az´odik. A random olvas´ asm˝ uveletek a RAID-0-hoz hasonl´ oan alakulnak, blokkm´erett˝ ol er˝osen f¨ uggenek. A random ´ır´ asm˝ uveletekn´el fontos, hogy minden blokknyi ´ır´ as ¨osszesen 2 blokk, egy adat ´es a parit´ as tartalm´anak friss´ıt´es´et ig´enyli. Mivel a parit´ ast minden ´ır´ asn´ al friss´ıteni kell, ez´ert fontos, hogy a parit´ asblokk s´avonk´ent m´as ´es m´as eszk¨ ozre ker¨ ul. Leggyakrabban a RAID-5 t¨ omb¨ ok 3 vagy 4 diszkb˝ol ´ep¨ ulnek fel, enn´el t¨ obbet ritk´ an raknak egy t¨ ombbe. RAID-6 (striping with dual parity): Blokkokra bont´ as ´es k´etszeres parit´ as. A RAID-5-t˝ ol annyiban t´er el, hogy k´etf´ele parit´ as van s´avonk´ent, ez´altal a t¨ omb b´ armely k´et eszk¨ oz kies´es´et t´ ul´eli adatveszt´es n´elk¨ ul. Ez viszonylag u ´j RAID szint, csak a leg´ ujabb eszk¨ oz¨ok t´ amogatj´ak. A haszn´alata elterjed˝ oben van, aminek a f˝o oka az, hogy a mai kapacit´ asok mellett rendk´ıv¨ ul hossz´ u ideig tart egy RAID-5 t¨ ombben meghib´asod´ as ut´an helyre´all´ıtani az adatokat, ez id˝o alatt a t¨ ombnek m´eg nincs redundanci´ aja. Kombin´ alt RAID szintek: Legjellemz˝ obb a RAID-10 (RAID0+1 vagy RAID1+0), RAID50 (RAID5+0) RAID-512 (RAID5+1), RAID-60 (RAID6+0). Ezek t¨ omb¨ okb˝ ol k´epzett t¨ omb¨ ok, amiket k¨ ul¨on¨osen nagysz´am´ u (4-n´el t¨ obb, jellemz˝ oen 12) diszk eset´en alkalmaznak. Az els˝o sz´am az els˝odleges, fizikai eszk¨ oz¨okb˝ ol ´ep¨ ul˝o t¨ omb¨ ok jelleg´et adja meg, a m´asodik sz´am a t¨ omb¨ okb˝ ol 1 Gondoljuk arra, hogy ha egy f´ ajlrendszer t¨ obb eszk¨ ozre van sz´ etosztva, akkor b´ armelyik lemez kies´ ese eset´ en a f´ ajlrendszernek fontos metaadatai v´ alhatnak el´ erhetetlenn´ e, amik sz¨ uks´ egesek lehetnek a megmarad´ o eszk¨ oz¨ on t´ arolt f´ ajlokhoz val´ o hozz´ af´ er´ eshez is. Legrosszabb esetben a f´ ajlrendszert fel sem lehet csatolni, ha az alatta l´ ev˝ o blokkos eszk¨ oz c´ımtartom´ any´ anak jelent˝ os r´ esze hi´ anyzik. A gyakorlatban ilyen s´ er¨ ul´ esek ut´ an a f´ ajlrendszerekr˝ ol n´ eha m´ eg helyre´ all´ıthat´ o az adatok egy r´ esze, ´ am ez hosszadalmas, jelent˝ os emberi k¨ ozrem˝ uk¨ od´ est ig´ enyl˝ o, bizonytalan kimenetel˝ u proced´ ura, ez´ ert tervez´ esn´ el nem ´ ep´ıthet¨ unk r´ a. 2 N´ eh´ any gy´ art´ o ezt RAID-53-nak nevezi
4
k´epzett m´asodlagos t¨ omb t´ıpus´at. H´ al´ozati t´ arol´oeszk¨oz¨okn´el (SAN, illetve NAS hardverek, l´asd k´es˝obb) gyakori a 2 egys´eg magas rack h´ azban 12 diszk, ami RAID-10, RAID-50 vagy RAID-60 t¨ ombbe konfigur´ alhat´ o. RAID Szint
JBOD
RAID-0
RAID-1 RAID-5
RAID-6
lemezek sz´ ama
hibat˝ ur´ es
kapacit´ as
szekv. ´ atereszt. (legjobb esetben)
eszk¨ oz¨ ok egym´ as ut´ an kapcsol´ asa blokkokra bont´ as, eszk¨ oz¨ ok k¨ oz¨ ott sz´ etoszt´ as t¨ ukr¨ oz´ es
2..N
nincs
N szeres
1 szeres
v´ eletlen hozz´ af´ er´ es p´ arhuzamos´ıt´ as (legjobb esetben) ´ır´ as olvas´ as 1 szeres 1 szeres
2..N
nincs
N szeres
N szeres
N szeres
N szeres
2..N
1 szeres
1 szeres
1 szeres
N szeres
blokkokra bont´ as, sz´ etoszt´ as, egyszeres parit´ as blokkokra bont´ as, sz´ etoszt´ as, k´ etszeres parit´ as
3..N
N − 1 meghib´ asod´ asig 1 meghib´ asod´ asig
N − 1 szeres
N − 1 szeres
N/2 szeres
N − 1 szeres
2 meghib´ asod´ asig
N − 2 szeres
N − 2 szeres
N/3 szoros
N − 1 szeres
4..N
Redundanci´ aval rendelkez˝o RAID t¨ ombben meghib´asod´ as eset´en a k¨ovetkez˝o esem´enysor zajlik le: 1. Az egyik eszk¨ oz hib´ at jelez, vagy nem v´alaszol k´er´esre egy meghat´arozott ideig (timeout). 2. A RAID vez´erl˝o a k´erd´eses eszk¨ ozt hib´asnak jel¨oli, ´es lev´alasztja a t¨ ombr˝ol. 3. A t¨ omb ´ıgy degrad´ al´ odott ´ allapotba ker¨ ul. (T´ıpus´at´ol ´es az eszk¨ oz¨ok sz´am´ at´ol f¨ ugg˝oen lehets´eges, hogy teljes redundanciaveszt´es l´ep fel, vagyis a t¨ omb m´ar nem k´epes tov´abbi meghib´ asod´ ast elviselni.) Degrad´al´ odott ´allapotban is k´epes kiszolg´alni ´ır´ as ´es olvas´as k´er´eseket, ´am a teljes´ıtm´eny cs¨ okkenhet. 4. Egy karbantart´o a t¨ ombh¨ oz u ´j diszket rendel hozz´ a, vagy fizikailag cser´eli a hib´asat. 5. Megkezd˝ odik a kiesett diszk tartalm´anak rekonstru´ al´asa az u ´j eszk¨ ozre. Ez egy hossz´ u folyamat, a teljes diszket tele kell ´ırni, mik¨ ozben a t¨ ombh¨ oz ´erkezett k´er´eseket is ki kell szolg´ alni. (Ez a nagy mennyis´eg˝ u olvas´ as ´es ´ır´ as miatt egy fokozott meghib´asod´ asi val´osz´ın˝ us´eg˝ u id˝oszak, ami k¨ozben r´aad´ asul a t¨ omb hibat˝ ur´esi funkci´oja sem m˝ uk¨odik.) 6. A rekonstrukci´ o v´egezt´evel a t¨ omb u ´jra hib´atlan ´allapotba ker¨ ul. A redundanciavesztett ´ allapotban a t¨ omb s´er¨ ul´ekeny, ez´ert minimaliz´alni kell a redundancia n´elk¨ uli u ¨zemid˝ot. Ezt az id˝ot nemcsak a rekonstrukci´o id˝otartama hat´arozza meg, hanem az az id˝o is, ami a meghib´asod´ ast´ ol az u ´j eszk¨ oz hozz´ aad´as´aig eltelik. Mivel a RAID feladata, hogy az oper´aci´ os rendszer sz´ am´ ara elfedje a meghib´asod´ ast, ez´ert a RAID rendszer akt´ıv fel¨ ugyelete n´elk¨ ul nem lehet ´eszrevenni a degrad´ al´ odott ´allapotot, ami hamis biztons´ag´erzetet okozhat. Tov´abbi neh´ezs´eg lehet a g´ephez fizikai hozz´ af´er´es biztos´ıt´asa, esetleg hossz´ u id˝obe ker¨ ulhet a g´ephez eljutni. Lehet˝os´eg van a g´epbe hideg- vagy melegtartal´ek eszk¨ ozt be´ep´ıteni, ami vagy kikapcsolt vagy bekapcsolt k´eszenl´eti ´ allapotban v´arakozik, hogy ´atvegye a hely´et egy s´er¨ ult eszk¨ oznek a t¨ ombben. ´Igy a kijav´ıt´ as fel¨ ugyelet n´elk¨ ul is automatikusan megkezd˝odik, a hib´as eszk¨ oz cser´eje k´es˝obb is elv´egezhet˝o.
5
3.
Dinamikus t´ arkioszt´ as
A h´ att´ert´ arak lehets´eges kapacit´ as´ at az alkalmazott eszk¨ oz¨ok hat´arozz´ ak meg. Az alkalmaz´asok t´ arig´enye ett˝ ol elt´er˝ o, ami nagyon rossz kihaszn´ alts´agot eredm´enyez. Particion´al´assal r´eszekre lehet bontani az eszk¨ oz¨oket az alkalmaz´asok ig´enyeinek megfelel˝oen. A hagyom´ anyos, PC-ken alkalmazott particion´al´ asi s´ema rendk´ıv¨ ul r´egi, a mai k¨ovetelm´enyeknek gyakran nem felel meg. A f˝o probl´ema a part´ıci´ok statikuss´aga, azaz nem lehet ´atm´eretezni ˝oket, hogy a feloszt´as k¨ovesse az alkalmaz´asok v´altoz´ o ig´enyeit. 3
3.1.
Logikai k¨ otetkezel´ es
Korszer˝ ubb, dinamikus particion´al´ ast biztos´ıtanak a logikai k¨ otetkezel˝ o (LVM, Logical Volume Manager ) rendszerek. M˝ uk¨ od´esi elve hasonl´ o az oper´aci´ os rendszerekn´el megismert virtu´alis mem´oriakezel´eshez. Az LVM alapfogalmai: • Fizikai k¨ otet (PV, physical volume) • K¨ otetcsoport (VG, volume group) • Logikai k¨ otet (LV, logical volume) A fizikai k¨oteteket allok´aci´ os egys´egekre (allocation unit, extent, ritk´ an: partition) bontja. Az allok´aci´ os egys´egek tetsz˝ oleges kett˝ o hatv´any m´eret˝ uek lehetnek, leggyakrabban 1 ´es 64 MB k¨oz¨otti m´erettartom´anyban. Minden fizikai k¨otet r´esze egy k¨otetcsoportnak, ami egy nagy k¨oz¨os er˝oforr´as gy˝ ujt˝onek (resource pool) tekinthet˝ o. A k¨otetcsoportb´ol lehet allok´alni logikai k¨oteteket, ami eg´esz sz´ am´ u allok´aci´ os egys´egb˝ol ´allhat. Fontos megjegyezni, hogy a logikai k¨otet a k¨otetcsoportban tal´ alhat´ o b´ armely fizikai k¨otet b´ armely allok´aci´ os egys´eg´et b´ armilyen sorrendben megkaphatja, nem felt´etlen ¨ osszef¨ ugg˝ o sorozatot (2. ´abra). A hozz´ arendel´est a logikai k¨otetkezel˝o metaadatai t´ arolj´ ak, melyek a fizikai k¨otetek fejl´ec´eben kapnak helyet. A logikai k¨otetek teh´at egy virtu´alis line´aris (0-t´ol a k¨otet kapacit´ as´aig terjed˝o, megszak´ıt´as n´elk¨ uli) c´ımtartom´anyb´ol ´allnak, ami tetsz˝ olegesen lehet lek´epezve a t´enyleges fizikai eszk¨ oz¨ok c´ımeire, ak´ ar egyn´el t¨ obb k¨ ul¨onb¨ oz˝o fizikai eszk¨ ozre is sz´etsz´orva. A k¨otetcsoportok b´ armikor b˝ ov´ıthet˝oek u ´ j fizikai eszk¨ oz hozz´ arendel´es´evel, a logikai k¨otetek pedig b˝ ov´ıthet˝oek u ´j allok´aci´ os egys´egek hozz´ arendel´es´evel, ak´ ar m˝ uk¨ od´es k¨ozben is.
3.2.
A logikai k¨ otetkezel´ es teljes´ıtm´ enyre gyakorolt hat´ asa
Az allok´aci´ os egys´egek nem ¨ osszef¨ ugg˝ o hozz´ arendel´ese eset´en az egys´egek hat´ar´an ´atny´ ul´o szekvenci´alis hozz´ af´er´esekn´el fejpozicion´ al´ ast kell v´egezni. Ez´ert a k¨otetkezel˝o t¨ orekszik arra, hogy a logikai k¨oteteket ¨ osszef¨ ugg˝ oen ossza ki. Ez nyilv´an akkor lehetetlen, ha megl´ev˝ o logikai k¨otetet pr´ob´alunk b˝ ov´ıteni, ´es a v´ege ut´an k¨ovetkez˝o egys´eget m´ar m´as logikai k¨otet elfoglalta. A fejpozicion´al´asok hat´ asa cs¨ okkenthet˝ o alkalmasan nagy allok´aci´ os egys´eg m´eret megv´ alaszt´as´aval. A mai merevlemezek 100MB/s szekvenci´alis a´tereszt˝ok´epess´ege mellett egy 64MB-os egys´eg 640 ms alatt v´egigolvashat´ o. Legrosszabb esetben 640 ms-onk´ent kell egy, ´atlagosan 20 ms-os fejpozicion´al´as, ami ¨osszesen kb. 6% teljes´ıtm´enyveszt´est jelent, ami alig kimutathat´ o. V´eletlen hozz´ af´er´esekn´el a hat´as jelent˝ osebb lehet, ha egy kis ugr´ as a virtu´alis c´ımtartom´anyban val´oj´ aban nagy ugr´ as a fizikai eszk¨ oz¨on. K¨ ul¨on¨osen az okozhat probl´em´ at, hogy egyes f´ajlrendszerek optimaliz´ alnak a v´eletlen hozz´ af´er´esek ugr´ ashossz´ anak r¨ovid´ıt´es´ere, felt´etelezve, hogy a c´ımtartom´anyban kis elt´er´es eset´en gyorsabb a pozicion´ al´ as, mint nagy elt´er´esn´el. Mindezek ellen´ere a gyakorlatban az LVM nem okoz ´eszrevehet˝ o lassul´ ast, t¨ obbnyire mert nagy a blokkm´eret, ´es ritk´ an kell b˝ ov´ıteni part´ıci´ot, ´ıgy kicsi a fragment´ al´ od´as is. 3 Ugyan l´ eteznek eszk¨ oz¨ ok az ´ atm´ eretez´ esre, ezek azonban mindig teljes part´ıci´ ok adatmozgat´ as´ aval j´ arnak, ami hossz´ u folyamat, ´ es a rendszer norm´ alis m˝ uk¨ od´ ese k¨ ozben nem v´ egezhet˝ o el.
6
2. ´ abra. P´elda fizikai k¨otetek allok´aci´ os egys´egeinek hozz´arendel´es logikai k¨otethez
3.3.
A logikai k¨ otetkezel´ es egy´ eb szolg´ altat´ asai
A dinamikus allok´aci´ on t´ ul a legt¨obb LVM megval´os´ıt´as egy´eb szolg´ altat´ asokkal is kiakn´azza az indirekt allok´aci´ o adta lehet˝ os´egeket: • Atomi pillanatk´ep k´esz´ıt´es a teljes logikai k¨otetr˝ ol (snapshot), majd a v´altoz´ asok transzparens k¨ovet´ese. Ennek egy alkalmaz´asa lehet p´eld´ aul teljes rendszer gyors vissza´ all´ıt´asa egy elmentett ´ allapotra, illetve m˝ uk¨ od´es k¨ozben konzisztens ment´es (backup) k´esz´ıt´es a teljes k¨otetr˝ ol. • Logikai k¨otetek m˝ uk¨ od´es k¨ozbeni mozgat´asa eszk¨ oz¨ok k¨oz¨ott. • Redundancia az allok´aci´ os egys´egek t¨ ukr¨oz´es´evel. Ez a RAID-1-hez hasonl´ oan t¨ obb p´eld´ anyban, k¨ ul¨onb¨ oz˝o fizikai k¨otetekre ´ırja ki a logikai k¨otet ¨osszes allok´aci´ os egys´eg´et. • Teljes´ıtm´enyn¨ ovel´es allok´aci´ os egys´egek s´avos sz´etoszt´as´aval. A RAID-0-n´al megismert elvet k¨oveti. A t¨ ukr¨oz´es ´es s´avos sz´etoszt´as olyan esetekben b´ır nagy jelent˝ oss´eggel, ha egy´ebk´ent nincs RAID lehet˝ os´eg a rendszerben. A pillanatk´ep k´esz´ıt´ese ´es fenntart´asa a copy-on-write m˝ uk¨od´esi elvet k¨oveti. A pillanatk´ep sz´am´ ara egy k¨ ul¨on logikai k¨otetet kell l´etrehozni tetsz˝oleges m´erettel (legfeljebb az eredeti k¨otet m´erete ´all´ıthat´ o be). Az u ´j logikai k¨otet eleinte u ¨res, ´am minden4 az eredeti k¨oteten v´egzett ´ır´ as m˝ uvelet el˝ ott a m´odos´ıtani k´ıv´ ant allok´aci´ os egys´egr˝ ol k´esz¨ ul egy m´asolat a pillanatk´ep k¨otetre. Az eredeti k¨otet tartalm´anak m´odosul´ as´ aval teh´at egyre t¨ obb adat ker¨ ul a pillanatk´epre. Amennyiben a pillanatk´ep sz´ am´ ara kijel¨ olt m´eret kisebb az eredeti k¨otet´en´el, a pillanatk´ep k¨otet betelhet a 4 Pontosabban csak az olyan allok´ aci´ os egys´ egekr˝ ol, amelyekr˝ ol kor´ abban m´ eg nem k´ esz¨ ult m´ asolat a pillanatk´ ep k¨ otetre.
7
m´odos´ıt´asok hat´ as´ ara. Emiatt a pillanatk´ep m´eret´et az alapj´an kell megv´ alasztani, hogy v´arhat´oan mennyi ideig lesz sz¨ uks´eg r´a, illetve hogy ez id˝o alatt mekkora m´odos´ıt´asok v´arhat´oak. Egy backup elk´esz´ıt´es´enek viszonylag r¨ovid idej´ere az eredeti k¨otet m´eret´enek ak´ ar 5-10%-a is elegend˝o lehet. Megjegyzend˝o, hogy a pillanatk´ep k´esz´ıt´esn´el minden m´odos´ıt´as – ´erintsen az b´ armilyen kis adategys´eget – egy nagyobb blokk teljes tartalm´anak m´asol´ast v´altja ki. Nem lenne hat´ekony, ha ez mindig egy teljes, n´eh´any MB m´eret˝ u allok´aci´ os egys´eg lenne. Sz´amos implement´ aci´ o ez´ert haszn´al az alap allok´aci´ os egys´egen bel¨ ul egy kisebb m´eret˝ u blokkfajt´ at is, kifejezetten a pillanatk´epek t´ arol´as´ara. Ennek a Linux LVM implement´ aci´ oj´ aban snapshot chunksize az elnevez´ese.
4.
K¨ ozpontos´ıtott t´ arrendszerek
Sok szervert tartalmaz´ o nagyv´allalati rendszerekben jelent˝os adminisztrat´ıv ´es karbantart´asi terhet jelent, ha minden g´epben lok´alis t´ arhely van. Ez k¨olts´eg szempontb´ol sem optim´ alis, mert igen gyakori, hogy egy szervernek csak kis t´ arhelyre van sz¨ uks´ege, ´ am fontos a hibat˝ ur´es vagy a nagy teljes´ıtm´eny. Az eszk¨ oz¨ok ´ara nem ´all egyenes ar´anyban a kapacit´ assal, ez´ert sok kis t´ arhely l´enyegesen dr´ag´abb egy nagy t´ arhelyn´el. B˝ov´ıt´esi szempontb´ol is neh´ezs´egek mer¨ ulnek fel, mert a g´epekbe szerelt kis lok´alis t´ areszk¨ oz¨ok gyakran csak cser´evel b˝ ov´ıthet˝ ok, ami le´ all´assal ´es hosszadalmas adatmozgat´ assal j´arhat. Hibat˝ ur˝o vagy terhel´eseloszt´o f¨ urt¨ ok (cluster) eset´en sz¨ uks´eg van k¨oz¨osen haszn´alt t´ arhelyre, ami szint´en nem oldhat´ o meg csak lok´alis t´ arakkal.
4.1.
T´ arh´ al´ ozatok
A fenti probl´em´ akra k´ın´alnak megold´ast a k¨ozpontos´ıtott, h´ al´ozati t´ armegold´asok. K´et fajt´ aj´ at k¨ ul¨onb¨ oztetj¨ uk meg: a h´ al´ ozati f´ ajlrendszereket ´es a h´ al´ozati blokkos eszk¨ oz¨oket. Ezek megoldhat´ oak szoftveresen, de kaphat´oak dedik´ alt hardverek is, melyek h´ al´ozati t´ arhelyet biztos´ıtanak. A f´ ajlrendszer megoszt´ ast k´ın´al´o eszk¨ oz¨ok neve Network Attached Storage (NAS), a blokkos eszk¨ oz¨oket ny´ ujt´o megold´asok neve Storage Area Network (SAN). K¨ozponti h´ al´ozati t´ arakkal lehet˝ os´eg ny´ılik egy nagy k¨oz¨os pool-b´ol dinamikusan, az aktu´alis ig´enyeknek megfelel˝oen hozz´ arendelni t´ arhelyet az egyes szerverekhez. A nagy k¨ozponti t´ ar hibat˝ ur´es´et k¨onny˝ u megoldani, tov´abb´a optim´ alis fajlagos k¨olts´eg˝ u eszk¨ oz¨okb˝ ol ´allhat. A k¨ozponti t´ ar karbantart´asa l´enyegesen kevesebb emberi er˝ oforr´ ast ig´enyel a sok elosztott t´ ar fel¨ ugyelet´ehez k´epest. Most els˝osorban a SAN megold´asokkal foglalkozunk. Sz´amos k¨ ul¨onb¨ oz˝o SAN protokoll van, melyeket elt´er˝ o helyen alkalmaznak: • FibreChannel: Optikai ¨ osszek¨ ottet´es, t´ıpust´ol f¨ ugg˝oen 1-20 GBit/s sebess´eggel. Legegyszer˝ ubb esetben pont-pont ¨ osszek¨ ottet´es, bonyolultabb topol´ogi´ ak eset´en speci´ alis kapcsol´ oelemeket (switch) ig´enyel. SCSI utas´ıt´ask´eszletet haszn´al, b´ ar lehets´eges ATM vagy IP h´ al´ ozatot is ki´ep´ıteni vele. Rendk´ıv¨ ul dr´aga. • iSCSI: TCP kapcsolatot ´ep´ıt ki a kliens (kezdem´enyez˝ o, initiator ) ´es a szerver (c´elpont, target ) k¨oz¨ott, ´es efelett a SCSI protokoll parancsait ´es u ¨zenetform´atum´at haszn´alja. Viszonylag olcs´ o (l´etezik teljesen szoftveres megval´os´ıt´as is), szabv´anyos ´es sz´eles k¨orben t´ amogatott. ´ Altal´ aban dedik´ alt gigabit ethernet h´ al´ozatot ´ep´ıtenek ki iSCSI sz´am´ ara. • HyperSCSI: K¨ ozvetlen¨ ul ethernet keretekbe ´agyazza be a SCSI parancsokat ´es u ¨ zeneteket. Teljes´ıtm´eny szempontb´ol ez jobb lehet az iSCSI-n´al, viszont neh´ezkes konfigur´alni. Kev´ess´e t´ amogatott protokoll. (Ethernethez k¨ot¨ott, teh´at csak LAN-on bel¨ ul haszn´alhat´o, gyors, de hi´anyzik bel˝ ole a TCP megb´ızhat´os´aga.) • ATA over Ethernet: a HyperSCSI-hoz hasonl´ o, de ez ATA parancsk´eszletet haszn´al a SCSI helyett. Nagyv´allalati k¨ornyezetben nem haszn´alj´ak, kis olcs´o asztali SAN dobozok alkalmazz´ ak ezt a protokollt.
8
H´ al´ozati f´ ajlrendszerek ´ altal´ anos k´epess´ege, hogy t¨ obben csatlakozhatnak hozz´ ajuk egy id˝oben, ´es meg tudj´ak oldani az elosztott hozz´ af´er´esek k¨oz¨ott a megfelel˝o k¨olcs¨on¨os kiz´ar´asokat. Hasonl´o megold´as SAN-ok eset´eben is lehets´eges, azonban olyan f´ajlrendszer kell, amely az alacsonyszint˝ u strukt´ ur´ain k´epes kezelni, hogy egyszerre t¨ obben m´odos´ıtj´ak a tartalm´at. Ilyen f´ajlrendszerek pl. a VMWare Virtual Machine File System v3 (VMFS3), Oracle Cluster File System (OCFS) vagy a RedHat Global File System (GFS).
5.
Blokkos eszk¨ oz¨ ok kezel´ ese Linux alatt
A UNIX-alap´ u rendszerek hagyom´ anyos filoz´ofi´aj´ at k¨ovetve Linux alatt is f´ajlok form´aj´ aban f´erhet¨ unk hozz´ a a hardver eszk¨ oz¨okh¨ oz. Itt megjegyzend˝o, hogy a f´ajlokra u ´ gy kell tekinteni, mint hierarchikus n´evt´erbe szervezett egyedi azonos´ıt´o n´evvel ell´atott objektumokra, amik egy j´ol meghat´arozott interf´eszt implement´ alnak. A f´ajl API legfontosabb met´odusai a read() ´es a write(). Egyszer˝ u, u ´n. regul´ aris f´ ajlok egy v´altoz´ o hossz´ us´ag´ u byte t¨ omb¨ ot implement´ alnak, amiben pozicion´ alni is lehet a seek() met´odussal. Speci´ alis eszk¨ oz f´ajl eset´en azonban a read() ´es write() met´odusokat egy-egy kernel meghajt´ o (driver ) implement´ alja teljesen egyedi m´odon, ez azt jelenti, hogy a hagyom´ anyos jelent´es´et˝ol ak´ ar teljesen elt´er˝o dolgot is csin´alhat. N´eh´any speci´ alis eszk¨ oz: • /dev/null - u ¨res write m˝ uvelet, a read mindig f´ajl v´ege jelz´est (EOF ) ad vissza, ez gyakorlatilag egy mindent eldob´o nyel˝ o • /dev/zero - u ¨res write, a read minden h´ıv´ asa 0-´ert´ek˝ u byte-okat ad vissza, gyakorlatilag egy v´egtelen 0 forr´as. • /dev/full - a write m˝ uvelet mindig tele jelz´est ad, a read a /dev/zero-hoz hasonl´ o • /dev/random ´es /dev/urandom - u ¨res write, a read v´eletlen adatfolyamot ´all´ıt el˝o. A t¨ omegt´ arol´ o eszk¨ oz¨ok is ilyen f´ ajlokon kereszt¨ ul ´erhet˝oek el, b´ ar ezek viselked´ese hasonl´ıt a regul´ aris f´ ajlok´ehoz annyiban, hogy ezek is egy perzisztens adatt´arol´o t¨ ombk´ent jelen´ıtik meg az eszk¨ ozt, de a m´eret ez esetben fix. • /dev/sda, sdb, sdc stb. – SCSI API-val el´erhet˝o merevlemezek. A legut´obbi kernelkiad´ asokban m´ar nem csak a val´odi SCSI merevlemezek, hanem a SATA, PATA merevlemezek, illetve USB-storage (k¨ uls˝ o merevlemez, pendrive) eszk¨ oz¨ok meghajt´ oprogramjai is ezek alatt a nevek alatt jelennek meg. A neveket inicializ´ al´asi sorrendben kapj´ak, teh´at v´altozhat, hogy melyik eszk¨ oz melyik n´ev alatt jelenik meg. • /dev/sr0, sr1 stb. – SCSI, u ´jabban SATA ´es PATA CD/DVD ´ır´ ok. Inicializ´al´asi sorrendben sz´amoz´ odnak. • /dev/hda, hdb, hdc stb. – R´egebbi kernelekn´el az IDE (f˝ oleg PATA) merevlemez ´es CD/DVD meghajt´ ok eszk¨ oznevei. Busz poz´ıci´o szerint k¨ot¨ott nev¨ uk van: a primary master a hda, primary slave a hdb, secondary master a hdc stb. • /dev/loop0, loop1 stb. – k¨ ul¨onleges eszk¨ oz¨ok, nincs val´odi hardver alattuk, regul´ aris f´ajlokat lehet hardver eszk¨ ozk´ent kezelni vel¨ uk. Ezzel lehet p´eld´ aul .iso CD image f´ajlokat felcsatolni an´elk¨ ul, hogy CD lemezre kellene ki´ırni ˝oket. A merevlemezek particion´alhat´ oak ´es ´altal´ aban particion´altak is, ezeket a kernel az eszk¨ oz inicializ´ al´ asakor der´ıti fel az u ´n. superblock (az eszk¨ oz els˝o blokkja, ami gyakran metainform´aci´ okat tartalmaz) beolvas´ as´ aval. A part´ıci´ok sz´am´ara k¨ ul¨on sz´amozott eszk¨ oz¨ok j¨onnek l´etre, pl. /dev/sda1, sda2 stb. A part´ıci´ok sz´amoz´asa k¨oveti a part´ıci´os t´ abla kioszt´ as´at, teh´at el˝ofordulhat, hogy nem folytonos a sz´amoz´as. A part´ıci´o f´ajl az eredeti eszk¨ ozf´ajlon bel¨ ul egy korl´atozott c´ımtartom´ anyt fed le. A part´ıci´o tartalma a part´ıci´o f´ajlban ´es a teljes eszk¨ ozt reprezent´ al´o f´ajlban egyidej˝ uleg l´athat´o. 9
A t¨ omegt´ arol´ o eszk¨ oz¨ok szinte mindig blokkos szervez´es˝ uek, ami azt jelenti, hogy val´oj´ aban nem byte-ok, hanem blokkok t¨ ombjek´ent ´ep¨ ulnek fel. A blokk a legkisebb elemi ´ır´ as vagy olvas´as m˝ uvelet adatm´erete. A poz´ıci´ok c´ımz´ese is blokk egys´egekben t¨ ort´enik. A kernel ´atsz´amolja a c´ımz´est, ´es puffereli a f´ ajlokon v´egzett m˝ uveleteket, ez´ert azoknak nem kell felt´etlen¨ ul a blokkm´eretet k¨ovetni, byte pontoss´ ag´ u c´ımz´est haszn´alhatnak. Fontos azonban megjegyezni, hogy az eszk¨ oz blokkm´eret´enek eg´esz sz´am´ u t¨ obbsz¨or¨os´evel v´egzett adatm˝ uveletek l´enyegesen gyorsabbak, ´es kevesebb processzorterhel´essel j´arnak. A merevlemezek blokkm´erete szinte mindig 512 byte 5 , ez a CD-k ´es DVD-k eset´en 2048 byte. A flash eszk¨ oz¨ok k¨ ul¨onlegesek, mert k´etf´ele blokkm´eretet is haszn´alnak, olvas´as ´es u ¨res ter¨ uletre ´ır´ as egy kicsi, ´altal´ aban 4096 byte-os blokkm´erettel (´ un. lap, page) t¨ ort´enik, ´am a m´ar meg´ırt ter¨ uletek fel¨ ul´ır´ as el˝otti t¨ orl´ese l´enyegesen nagyobb egys´egekben, nem ritk´ an 128 kB-os vagy 256 kB-os blokkokban t¨ ort´enik. Emiatt a be´ep´ıtett blokk transzl´ aci´ os algoritmus n´elk¨ uli flash eszk¨ oz¨ok (Linux alatt Memory Technology Devices, MTD ) kezel´ese k¨ ul¨on speci´ alis interf´eszt ig´enyel. A transzl´ aci´os algoritmus feladata t¨ obbek k¨oz¨ott a szem´etszed´es (garbage collection), vagyis a haszn´alt, ´erv´enytelennek jel¨olt adatok ´altal foglalt hely visszanyer´ese. Ennek m˝ uk¨od´ese gyakran a t¨ or¨olni k´ıv´ ant blokkban tal´ alhat´o m´eg ´erv´enyes adatok u ´j helyre mozgat´as´ aval j´ar, ezek a j´arul´ekos ´ır´ asm˝ uveletek az SSD eszk¨ oz¨okn´el sz´amottev˝o teljes´ıtm´enycs¨okken´est okoznak. Ez sajnos egy sz¨ uks´egszer˝ u k¨ovetkezm´enye a k´etf´ele blokkm´eret haszn´alat´anak. Nagym´eret˝ u blokkos eszk¨ oz¨ok¨ on adatmanipul´ aci´ ot a dd programmal v´egezhet¨ unk el. Ez l´enyeg´eben egy egyszer˝ u m´asol´ oprogram, aminek megadhatjuk, hogy milyen blokkm´eretet haszn´aljon, illetve a bemeneten mett˝ol meddig olvasson, a kimenetre pedig milyen poz´ıci´ot´ol kezd˝od˝oen ´ırjon. Param´eterez´ese: dd if=bemen˝ o f´ ajl of=kimen˝ o f´ ajl bs=blokkm´eret count=m´ asoland´ o blokkok sz´ ama skip=bemenet kezd˝ opoz´ıci´ oja seek=kimenet kezd˝ opoz´ıci´ oja Minden param´eter opcion´alis, a bemenet alap´ertelmezetten a standard input, a kimenet a standard output, a blokkm´eret 1, a bemeneti illetve kimeneti pozicion´al´as egyar´ant 0. A felsoroltakon k´ıv¨ ul term´eszetesen van m´eg sz´ amos, kev´esb´e gyakran haszn´alt param´etere. P´eld´ aul 1 MB-os u ¨res f´ ajl l´etrehoz´asa 1 kB-os blokkok haszn´alat´aval: dd if=/dev/zero of=./zerofile bs=1024 count=1024
6.
F´ ajlrendszerek l´ etrehoz´ asa, ´ atm´ eretez´ ese
Ahhoz, hogy a blokkos eszk¨ oz¨ok¨ on vagy part´ıci´okon regul´ aris f´ajlokat tudjunk t´ arolni, sz¨ uks´eg¨ unk van valamilyen f´ ajlrendszerre. A f´ ajlrendszereket nemcsak part´ıci´ora, hanem particion´alatlan teljes eszk¨ oz¨okre is lehet rakni, b´ ar ´ altal´ aban a szok´ asos megold´as egy part´ıci´o l´etrehoz´asa m´eg akkor is, ha a teljes eszk¨ ozt haszn´alni akarjuk. A f´ajlrendszer is rendelkezik egy m´erettel, ami alap´ertelmez´esben a part´ıci´o teljes m´erete, de lehet kisebb is ann´al. Ez akkor fordul el˝o, ha a part´ıci´ot ´atm´eretezz¨ uk. M´eret cs¨okkent´esn´el el˝osz¨ or a f´ ajlrendszert kell zsugor´ıtani, majd ut´ana lehet a t´ arol´o eszk¨ oz m´eret´et hozz´ aigaz´ıtani, n¨ ovel´esn´el el˝ obb az eszk¨ ozt kell megn¨ovelni, ´es ut´ana lehet a f´ajlrendszert hozz´ an¨oveszteni, hogy kit¨oltse a rendelkez´esre ´ all´o helyet. Linux alatt sz´ amos f´ ajlrendszerfajt´ at lehet haszn´alni, a jelen p´eld´ aban a legelterjedtebben haszn´alt ext3fs f´ ajlrendszer ker¨ ul ismertet´esre.
6.1.
Ext3 l´ etrehoz´ asa
A f´ajlrendszer l´etrehoz´as´ ara (k¨ ozkedvelt nev´en formatt´ al´ as) az mkfs.ext3 seg´edprogrammal t¨ ort´enik, alap´ertelmezett esetben: mkfs.ext3 f´ ajln´ev A f´ajl lehet eszk¨ oz, de ak´ ar egy el˝ ore lefoglalt regul´ aris f´ajl is, amin bel¨ ul kialak´ıt´asra ker¨ ulnek a f´ajlrendszer alacsony szint˝ u adatstrukt´ ur´ai. 5 Egyes
SCSI merevlemezek eset´ en ez ´ atkonfigur´ alhat´ o az 512 byte (2 hatv´ any)-szoros´ ara
10
6.2.
Felcsatol´ as
A f´ajlrendszer felcsatolhat´o a mount paranccsal. F´ajlrendszert alap´ertelmezetten csak a root felhaszn´al´o csatolhat fel, egyszer˝ u felhaszn´al´o csak abban az esetben, ha azt a /etc/fstab konfigur´ aci´ os f´ ajlban enged´elyezt¨ uk. mount [-o [loop],[ro]] f´ ajln´ev csatol´ asi pont A csatol´asi pont egy k¨onyvt´ arn´ev a m´ar felcsatolt k¨onyvt´arhierarchi´aban. Ez a k¨onyvt´ar lesz a most felcsatolt f´ ajlrendszer gy¨ ok´ereleme. Gyakori opci´o a loop, amit akkor kell haszn´alni, ha regul´ aris f´ ajl tartalm´at akarjuk felcsatolni. A mount parancs ilyenkor automatikusan haszn´alatba veszi a k¨ovetkez˝o szabad /dev/loop eszk¨ ozt. M´ asik gyakori opci´o a ro, ami azt jel¨oli, hogy csak olvashat´o u ¨zemm´odban csatolja fel. Egy m´ar felcsatolt f´ ajlrendszer lecsatolhat´o a k¨ovetkez˝o paranccsal: umount eszk¨ ozn´ev vagy csatol´ asi pont Ha valamilyen folyamat ´eppen nyitott f´ajlt tart az adott eszk¨ oz¨on (pl. a shellben ´eppen a felcsatolt eszk¨ oz¨on l´ev˝ o k¨onyvt´ arban vagyunk), akkor hiba¨ uzenetet kapunk, a lecsatol´as nem fog siker¨ ulni. K¨ ul¨on¨osen figyelj¨ unk arra, hogy felcsatol´askor ne fedj¨ uk el a /dev illetve a /proc k¨onyvt´arakat, mert ezzel megakad´alyozzuk, hogy a fel- ´es lecsatol´as folyamat´ahoz sz¨ uks´eges speci´ alis f´ ajlokhoz hozz´ af´erjen a rendszer, ´ıgy a k´es˝obbiekben m´ar nem tudunk lecsatolni semmit. Ilyenkor t¨ obbnyire csak u ´jraind´ıt´ assal lehet helyre´all´ıtani a rendszer norm´alis m˝ uk¨od´es´et.
6.3.
´ Atm´ eretez´ es
Az ext3 f´ ajlrendszer lehet˝ ov´e teszi, hogy felcsatolt ´allapotban is megn¨ovelhess¨ uk a m´eret´et (online grow ), azonban m´eret cs¨ okkent´est csak lecsatolt ´allapotban lehet v´egezni. Az ´atm´eretez´es a k¨ovetkez˝ok´eppen zajlik: resize2fs eszk¨ oz u ´j m´eret A m´eret megadhat´ o f´ ajlrendszer blokkokban (l´etrehoz´askor param´eterrel megadhat´ o), 512 byteos (s v´egz˝ od´es) egys´egekben, 1 kB-os egys´egekben (K v´egz˝ od´es) vagy 1 MB-os egys´egekben (M v´egz˝ od´es). Minden f´ ajlrendszerhez saj´ at seg´edprogramk´eszlet tartozik, ´es elt´er˝o ´atm´eretez´esi k´epess´egekkel b´ırnak.
7.
Szoftveres RAID Linux alatt, md
RAID t¨ omb¨ oket ´ altal´ aban csak azonos m´eret˝ u ´es t´ıpus´ u merevlemezekb˝ol ´ep´ıtenek. A Linux szoftver RAID megval´ os´ıt´ asa, az md (multiple devices) nem k¨ot ki semmit, l´etrehozhat´oak teljesen vegyes t¨ omb¨ ok is, nemcsak merevlemezekb˝ol, hanem tetsz˝ oleges blokkos eszk¨ oz¨okb˝ ol. Teljes´ıtm´eny szempontb´ol azonban el˝ ony¨osebb t¨ orekedni arra, hogy azonos fajta eszk¨ oz¨oket haszn´aljunk.
7.1.
Particion´ al´ asi megfontol´ asok
A fel´ep´ıtett ´es akt´ıv RAID t¨ omb¨ ok a /dev/md0 /dev/md1 stb. f´ajlok alatt ´erhet˝oek el, amik szint´en l´etrehoz´asi sorrendben sz´ amoz´ odnak. A r´egebbi kernel verzi´ ok nem t´ amogattak part´ıci´okezel´est md t¨ omb¨ ok¨ on bel¨ ul, ez´ert a gyakorlat az volt, hogy nem a teljes merevlemez eszk¨ oz¨okb˝ ol ´ep´ıtettek RAID t¨ omb¨ ot, hanem egyform´ an particion´alt´ ak azokat, ´es a megfelel˝o part´ıci´o csoportokb´ol ´ep´ıtettek fel RAID-ezett part´ıci´okat. Az u ´jabb verzi´ okban lehet˝ os´eg van particion´alt RAID t¨ omb¨ok kezel´es´ere is, ezek jellemz˝ oen a /dev/md0p0, md0p1 stb. elnevez´esi s´em´ at k¨ovet˝o eszk¨ oz¨ok alatt ´erhet˝oek el. Ennek ellen´ere a kor´ abbi gyakorlat megmaradt, ugyanis lehet˝ov´e teszi, hogy a merevlemez k¨ ul¨onb¨ oz˝o part´ıci´oit k¨ ul¨onb¨ oz˝o RAID szint˝ u t¨ omb¨ okbe szervezz¨ uk. Ez k¨ ul¨on¨osen a boot part´ıci´ok eset´en fontos, mert a bootloaderek nem tudnak RAID t¨ omb¨ oket kezelni, ´ıgy a boot part´ıci´okat csak RAID-1 t¨ ombbe szabad szervezni, aminek minden tagja a t¨ ombt˝ol f¨ uggetlen¨ ul, k¨ ul¨on-k¨ ul¨on is m˝ uk¨od˝ok´epes.
11
A RAID t¨ omb¨ ok particion´al´ as´ ara egy m´asik gyakran alkalmazott megold´as a kor´abban m´ar r´eszletes ismertetett logikai k¨otetkezel´es, ami a hagyom´ anyos particion´al´asi s´em´ at egy l´enyegesen dinamikusabb megold´assal v´altja fel.
7.2.
M˝ uveletek RAID t¨ omb¨ okkel
A RAID t¨ omb¨ oket kezel˝o seg´edprogram az mdadm. • T¨omb l´etrehoz´as ´ altal´ anos szintaktik´ aja: mdadm --create eszk¨ oz --level=raid szint sz´ ama --raid-devices=tagok sz´ ama eszk¨ oz¨ ok felsorol´ asa space-szel elv´ alasztva P´elda: mdadm --create /dev/md0 --level=raid1 --raid-devices=2 /dev/sdb /dev/sdc • A l´etrehoz´as folyamata megfigyelhet˝o a k¨ovetkez˝ok´eppen: cat /proc/mdstat • A l´etrehozott t¨ omb¨ ok tagjainak metaadatait megn´ezhetj¨ uk ´ıgy: mdadm --examine t¨ omb valamely tagja • A teljes l´etrehozott t¨ omb adatait pedig ´ıgy jelen´ıthetj¨ uk meg: mdadm --query t¨ omb mdadm --detail t¨ omb • T¨omb teljes le´ all´ıt´ asa (az md eszk¨ oz megsz˝ unik): mdadm --stop t¨ omb • M´ ar l´etrehozott t¨ omb elind´ıt´ asa: mdadm --assemble t¨ omb • Tartal´ek (hot spare) eszk¨ oz hozz´ aad´asa: mdadm --add t¨ omb eszk¨ oz • Eszk¨ oz hib´ asnak jel¨ ol´ese (soft hibainjekt´al´as6 ): mdadm --fail t¨ omb eszk¨ oz • Hib´ as vagy tartal´ek eszk¨ oz kiv´etele a t¨ ombb˝ ol: mdadm --remove t¨ omb eszk¨ oz Ahhoz, hogy az egyszer l´etrehozott t¨ omb¨ ok le´all´ıt´as ut´an u ´jraind´ıthat´oak legyenek, illetve az oper´aci´ os rendszer u ´jraind´ıt´ asa ut´an automatikusan fel´ep¨ uljenek, egy konfigur´aci´ os f´ajlba (/etc/mdadm.conf) kell bele´ırni a t¨ omb adatait, mindenekel˝ott az egyedi azonos´ıt´oj´ at (UUID). Egy bejegyz´es ´ıgy n´ez ki: ARRAY /dev/md0 level=raid1 num-devices=2 UUID=5e7e8a70:503417e0:25c6f0a3:1617215c A k¨ovetkez˝o utas´ıt´ as automatikusan el˝oa´ll´ıtja a bejegyz´eseket az ´eppen akt´ıv RAID t¨ omb¨ okr˝ol, ezeket csak hozz´ a kell f˝ uzni a /etc/mdadm.conf v´eg´ehez: mdadm --detail --scan A m´ar nem l´etez˝o t¨ omb¨ okh¨ oz tartoz´o bejegyz´eseket k´ezzel el kell t´ avol´ıtani, vagy ki kell kommentezni. A konfigur´ aci´ os f´ ajlban defini´alt ¨ osszes t¨ omb automatikus elind´ıt´asa: mdadm --assemble --scan 6 Nem
felt´ etlen¨ ul teszi t´ enylegesen el´ erhetetlenn´ e az eszk¨ oz tartalm´ at, csak hib´ asnak jel¨ oli, hogy az md rendszer kezdje el a helyre´ all´ıt´ ast. Ez azt jelenti, hogy pl. egy RAID-0 t¨ ombb˝ ol egy eszk¨ oz hib´ asnak jel¨ ol´ ese hat´ astalan lesz.
12
A konfigur´ aci´ os f´ ajlban megadhat´ o riaszt´as is, ami a RAID t¨omb¨ ok ´allapotv´altoz´ asair´ol ´ertes´ıt´est k¨ uld. Ez t¨ ort´enhet e-mailben: MAILADDR e-mail c´ım Vagy tetsz˝ oleges program megh´ıv´ as´aval: PROGRAM a megh´ıvand´ o program teljes el´er´esi u ´tvonala A program lehet ak´ ar shell script is, ´ıgy tetsz˝ oleges monitoroz´o rendszerhez k¨onnyen illeszthet˝oek az md riaszt´ asai. Fontos, hogy v´egrehajt´ asi jogosults´ag legyen a f´ajlon. A program h´ arom param´etert kap, amiben szerepel az esem´eny jellege, az ´erintett t¨ omb illetve az ´erintett eszk¨ oz neve.
8.
Logikai k¨ otetkezel´ es Linux alatt, LVM2
A logikai k¨otetek kezel´es´ere az lvm parancs szolg´ al. Az lvm tov´abbi alparancsokat tartalmaz az egyes m˝ uveletek elv´egz´es´ere, ezeket az lvm help-pel k´erdezhetj¨ uk le. Minden alparancs tov´abbi param´eterez´est ig´enyel, ezekr˝ol seg´ıts´eget a k¨ovetkez˝ok´eppen kaphatunk: lvm alparancs --help. Az al´abbiakban csak n´eh´any alapvet˝o alparancs ker¨ ul ismertet´esre, az LVM2 ezekn´el l´enyegesen t¨ obb szolg´ altat´ ast ´es param´eterez´esi lehet˝os´eget ny´ ujt. List´az´asok: • pvs - fizikai k¨otetek list´ az´asa • vgs - k¨otetcsoportok list´ az´asa • lvs - logikai k¨otetek list´ az´asa R´eszletes inform´aci´ o lek´erdez´ese: • pvdisplay - fizikai k¨otet lek´erdez´ese • vgdisplay - k¨otetcsoport lek´erdez´ese • lvdisplay - logikai k¨otet lek´erdez´ese. lvdisplay -m param´eterrel megjelen´ıti a logikai k¨otet allok´aci´ os egys´egeinek lek´epez´es´et fizikai k¨otetekre L´etrehoz´as: • pvcreate eszk¨ oz - fizikai k¨otet l´etrehoz´asa • vgcreate k¨ otetcsoport neve fizikai k¨ otet eszk¨ oz¨ ok - k¨otetcsoport l´etrehoz´asa. Opcion´alisan megadhat´ o az allok´aci´ os egys´eg (extent) m´erete a --physicalextentsize m´eret param´eterrel. • lvcreate k¨ otetcsoport neve - logikai k¨otet l´etrehoz´asa. Meg kell adni a k´ıv´ ant m´eretet: --size m´eret. Opcion´alisan megadhat´ o a logikai k¨otet neve: --name n´ev, en´elk¨ ul egy alap´ertelmezett nevet kap. Pillanatk´ep (snapshot) l´etrehoz´asakor a -s kapcsol´ot is haszn´alni kell, m´ıg a t¨ obbi param´eter az el˝ oz˝oekhez nagyon hasonl´ o m´odon alkalmazhat´o. T¨orl´es: • pvremove eszk¨ oz - fizikai k¨otet fejl´ec elt´ avol´ıt´asa az eszk¨ ozr˝ ol • vgremove k¨ otetcsoport - k¨otetcsoport t¨ orl´ese • lvremove k¨ otetcsoport /logikai k¨ otetn´ev - logikai k¨otet t¨ orl´ese ´ eretez´esek, elemek hozz´ Atm´ aad´ asa, elv´etele: • pvresize --setphysicalvolumesize m´eret eszk¨ oz - fizikai k¨otet ´atm´eretez´ese 13
• vgextend k¨ otetcsoport fizikai k¨ otetek - u ´j fizikai k¨otet hozz´ aad´as a k¨otetcsoporthoz • vgreduce k¨ otetcsoport fizikai k¨ otetek - Fizikai k¨otet elt´ avol´ıt´asa a k¨otetcsoportb´ol • lvresize --size m´eret k¨ otetcsoport /logikai k¨ otetn´ev - logikai k¨otet ´atm´eretez´ese • lvextend, lvreduce - az lvresize speci´ alis esetei (n¨oveszt´es, zsugor´ıt´as) Logikai k¨otetek allok´aci´ os egys´egeinek elt´ avol´ıt´asa egy fizikai k¨otetr˝ ol (pl. a fizikai k¨otet teljes felszabad´ıt´ asa c´elj´ ab´ol): pvmove -n logikai k¨ otet neve forr´ as fizikai k¨ otet neve c´el fizikai k¨ otet neve A c´el fizikai k¨otet neve elhagyhat´o, ez esetben automatikusan keres helyet a forr´as fizikai k¨otetr˝ ol leker¨ ul˝o allok´aci´ os egys´egeknek. A -n logikai k¨ otet neve is elhagyhat´o, ez esetben minden logikai k¨otetet megpr´ ob´al elk¨olt¨ oztetni a megadott forr´as fizikai k¨otetr˝ ol. Term´eszetesen a m˝ uvelet csak akkor hajthat´ o v´egre, ha a k¨otetcsoporton bel¨ ul m´as fizikai k¨oteteken van el´eg szabad hely. A legegyszer˝ ubb LVM fel´ep´ıt´esi m˝ uveletsor a k¨ovetkez˝o: 1. Fizikai k¨otetek l´etrehoz´asa 2. K¨otetcsoport l´etrehoz´asa a fizikai k¨otetb˝ol 3. Logikai k¨otetek l´etrehoz´asa a k¨otetcsoportban A logikai k¨otetek eszk¨ ozf´ajlok form´aj´ aban a /dev/mapper k¨onyvt´ar alatt tal´ alhat´oak meg k¨ otetcsoportn´ev -logikaik¨ otetn´ev form´aban, valamint egyszer˝ ubb haszn´alat miatt a /dev/k¨ otetcsoportn´ev /logikaik¨ otetn´ev form´aban is. Ugyan´ ugy haszn´alhat´oak, mint b´ armely m´as fizikai blokkos eszk¨ oz vagy part´ıci´o. Ellent´etben a hagyom´ anyos particion´al´asi szok´ assal, ahol a part´ıci´ok ´altal´ aban a rendelkez´esre ´all´o helyet teljes eg´esz´eben kit¨oltik, ´es a szabad hely a f´ajlrendszerben jelenik meg, logikai k¨otetkezel´esn´el szok´ asos a k¨otetcsoportban mindig valamennyi allok´alatlan helyet kihagyni, sz¨ uks´eg ¨ eset´en a logikai k¨otetek m´eret´et n¨ ovelni. Ugyelni kell azonban arra, hogy a f´ajlrendszerek hajlamosak t¨ oredez´esre (jelent˝ os teljes´ıtm´enycs¨okken´essel j´arhat), ha nagy tel´ıtetts´eg mellett pr´ob´alunk m˝ uveleteket v´egezni rajta. A logikai k¨otetek ´es a rajtuk l´ev˝ o f´ajlrendszerek m´eret´et m´eg azel˝ott aj´anlatos megn¨ovelni, hogy 90% feletti tel´ıtetts´eget ´ern´enek el.
9.
iSCSI c´ elpont konfigur´ al´ asa Linux alatt
Linux alatt a legelterjedtebb iSCSI c´elpont (target, szerver) implement´ aci´ o az iSCSI Enterprise Target (iet ). Ennek feladata, hogy helyi blokkos eszk¨ oz¨okh¨ oz ny´ ujtson hozz´ af´er´est h´ al´ozaton kereszt¨ ul csatlakoz´o kliensek (initiatorok, kezdem´enyez˝ok) sz´am´ ara. H´ arom f˝o komponensb˝ol ´all: • Kernel m´od´ u szerver - alacsony szint˝ u blokkos IO m˝ uveletek gyors´ıt´as´ara • Felhaszn´al´ oi m´od´ u szerver - a h´ al´ozati kapcsolatok kezel´ese, iSCSI protokoll implement´ aci´ o • Felhaszn´al´ oi adminisztr´aci´ os seg´edprogram (ietadm) - ennek seg´ıts´eg´evel konfigur´alhat´o, ak´ ar m˝ uk¨ od´es k¨ozben is Legegyszer˝ ubb esetben a /etc/ietd.conf alatti konfigur´aci´ os ´allom´anyban adjuk meg az iet a´ltal kiaj´ anlott iSCSI c´elpontokat, az iscsi-target ind´ıt´o scriptje ez alapj´an konfigur´alja fel a szervert. Itt csak az alapszintaxis ker¨ ul ismertet´esre, ami a c´elpont kiaj´anl´ as´ahoz elegend˝o, a t¨ obbi – els˝osorban teljes´ıtm´eny ´es hozz´ af´er´esi jogosults´agokat szab´alyoz´o – param´eterr˝ ol az iet dokument´ aci´ oja r´eszletes ismertet´est tartalmaz. Minden c´elpontnak rendelkeznie kell egy kvalifik´alt n´evvel, aminek a szintaxisa hasonl´ıt a domain nevek´ehez. P´eld´ aul: iqn.2009-03.local.ftslab.host:sandboxvolume 1. Az els˝o tag k¨otelez˝oen iqn az iSCSI qualified name r¨ovid´ıt´ese. 14
2. Ezt egy d´ atum k¨oveti, ami regisztr´aci´ os id˝opontot jel¨ol. K¨ ulvil´aggal nem ´erintkez˝o z´ art h´ al´ ozatban ez tetsz˝ oleges lehet. 3. A g´ep domain neve, a DNS-n´el megszokotthoz k´epest ford´ıtott sorrendben, az ´altal´ anost´ol a konkr´et fel´e haladva. Megjegyzend˝o, hogy nem felt´etlen¨ ul kell ennek ¨osszhangban lennie a g´ep t´enyleges DNS-ben megadott domain nev´evel, de az egyszer˝ us´ıti az azonos´ıt´ast. 4. Kett˝ ospont ut´an a g´epen bel¨ uli c´elpont azonos´ıt´oja. Egy g´epen bel¨ ul tetsz˝ olegesen sok c´elpont is lehet defini´alva. A c´elpontot is lehet hierarchikus, pontokkal elv´alasztott kvalifik´alt n´evvel ell´atni. Fontos m´eg megjegyezni, hogy egy c´elponton bel¨ ul tov´abbi logikai egys´egek (LUN - Logical Unit Number ) defini´alhat´ ok. Minden c´elpontnak legal´ abb egy logikai egys´eget kell tartalmaznia. Egy logikai egys´eghez a k¨ovetkez˝oket kell megadni: • A logikai egys´eg sorsz´ama (LUN) • A kiaj´ anlott blokkos eszk¨ oz vagy f´ajl el´er´esi u ´tvonala. Az itt megadott f´ajl tartalm´at fogj´ak a c´elponthoz csatlakoz´o kliensek olvasni, ´ırni. • A hozz´ af´er´es m´od. • Opcion´alis SCSI sorozatsz´ am (serial number ). L´enyeg´eben egy tetsz˝ oleges string lehet. C´elszer˝ u minden c´elpontnak egy egyedi sorozatsz´ amot megadni.7 A hozz´ af´er´esi m´odok lehetnek: • fileio – az iet az egyszer˝ u f´ ajl API-t haszn´alja. Regul´aris f´ajlok eset´en mindenk´eppen ezt kell haszn´alni, blokkos eszk¨ oz¨okn´el is haszn´alhat´o. Szerveroldali cache-el´est biztos´ıt, a szekvenci´alis ´ atvitel gyors, viszont a v´eletlen el´er´esek n´emileg lassabbak. • blockio – alacsony szint˝ u blokkos hozz´ af´er´est haszn´al. Csak blokkos eszk¨ oz¨okn´el alkalmazhat´o. Megker¨ uli a kernel cache alrendszer´et, ennek eredm´enyek´eppen az elsz´ort (teh´ at rosszul cache-elhet˝ o) v´eletlen el´er´esek felgyorsulnak. • nullio – nem t´ arol el semmit, olvas´asn´ al v´eletlen adatokat ad vissza. Tesztel´esi c´elokat szolg´ al. Egy c´elpont defin´ıci´oja teh´ at ´ıgy n´ezhet ki: Target iqn.2010-02.local.ftslab.host:sandboxvolume Lun 0 Path=/dev/mapper/StoreVG-SandboxVol,Type=fileio,ScsiSN=SERIAL-00007 ¨ Ugyelni kell arra, hogy a LUN defin´ıci´oj´ aba ne helyezz¨ unk el u ¨ res (whitespace) karaktereket a vessz˝ok k¨oz´e, tov´abb´a ne t¨ orj¨ uk meg a sort sehol. Sajnos az iet nem ad hiba¨ uzenetet hib´as szintaktik´ aj´ u f´ ajl eset´en, figyelmen k´ıv¨ ul hagyja a hib´as sorokat.
10.
iSCSI kliens konfigur´ al´ asa Linux alatt
A h´ al´ozati t´ arhelyet ig´enybevev˝ o eszk¨ oz¨on bel¨ ul az iSCSI kliens (kezdem´enyez˝o, initiator) feladata csatlakozni a c´elpontokhoz ´es az ´ altala rendelkez´esre bocs´atott t´ arhely haszn´alat´at biztos´ıtani. A Linux alatt eredetileg egym´ ast´ ol f¨ uggetlen¨ ul fejlesztett k¨ ul¨onb¨ oz˝o iSCSI kliens implement´ aci´ okat n´eh´any ´eve egyes´ıtett´ek egy k¨oz¨os projektbe, melynek neve open-iscsi. Az open-iscsi is t¨ obb komponensb˝ ol ´all: 7 Egyes iSCSI kliensek, pl. a VMware ESX Server u ´gy ´ ertelmezi a sorozatsz´ amot, hogy ha t¨ obb azonos sorozatsz´ am´ u LUN-t l´ at, akkor felt´ etelezi, hogy ezek mind val´ oj´ aban egyazon t´ arhelyet jel¨ olik, csak t¨ obb k¨ ul¨ onb¨ oz˝ o u ´tvonalon ´ erhet˝ oek el (multipath hibat˝ ur´ es). Ha nincs megadva sorozatsz´ am, vagy t¨ obb LUN azonos sorozatsz´ ammal rendelkezik, az helytelen m˝ uk¨ od´ est eredm´ enyezhet.
15
• kernel m´od´ u iSCSI driver – ez felel˝os a blokkos eszk¨ oz¨ok´ert ´es az iSCSI protokoll adatforgalmat megval´ os´ıt´ o r´esz´e´ert • felhaszn´al´ oi m´od´ u daemon (iscsid) – az iSCSI kapcsolatok karbantart´as´a´ert, felder´ıt´es´e´ert felel˝ os szerver folyamat • felhaszn´al´ oi m´od´ u konfigur´ aci´ os seg´edprogram (iscsiadm) – ennek seg´ıts´eg´evel konfigur´ alhat´ o Az iscsid folyamatnak futnia kell, miel˝ ott az iscsiadm-ot haszn´aln´ ank, ugyanis val´oj´ aban az iscsid v´egez minden m˝ uveletet, az iscsiadm csak egy parancssoros fel¨ uletet biztos´ıt ehhez. Egy iSCSI k¨otet felcsatol´asa k´et l´ep´esb˝ ol ´all: 1. Az iSCSI szerveren defini´alt c´elpontok felder´ıt´ese 2. Bel´ep´es egy kiv´ alasztott logikai egys´egre (LUN), melynek sor´an l´etrej¨on a lok´alis g´epen egy u ´j blokkos eszk¨ oz A bel´ep´es ´es felder´ıt´es a k¨ovetkez˝ok´eppen v´egezhet˝o el. (a portsz´ amot meg kell adni, alap´ertelmezetten az iscsi-target portja 3260): iscsiadm --mode discovery --type sendtargets --portal IP c´ım:portsz´ am A felder´ıtett c´elpontok list´ aj´ at megtekinthetj¨ uk: iscsiadm --mode node Bel´ep´es egy c´elpontra: iscsiadm --mode node --targetname c´elpont kvalifik´ alt neve --portal IP :port --login Kil´ep´es a c´elpontr´ ol: iscsiadm --mode node --targetname c´elpont kvalifik´ alt neve --portal IP :port --logout A c´elpont r´eszletes adatainak megjelen´ıt´ese: iscsiadm --mode node --targetname c´elpont kvalifik´ alt neve --portal IP :port Fontos megjegyezni, hogy a felder´ıt´es egy lok´alisan t´ arolt list´at hoz l´etre a c´elpontokr´ ol, teh´at akkor is sz¨ uks´eg van egyszer a felder´ıt´es l´ep´esre, ha en´elk¨ ul is tudjuk a c´elpont nev´et. A bel´ep´es ut´an a dmesg paranccsal tekinthet˝ o meg a kernel log tartalma, aminek a v´eg´en l´athat´o, hogy u ´jonnan megjelent egy blokkos eszk¨ oz, ami a soron k¨ovetkez˝o SCSI diszk nevet (/dev/sda, sdb stb.) kapta meg.
11.
iSCSI kliens konfigur´ al´ asa Windows alatt
K¨ ul¨onf´ele Windows oper´ aci´ os rendszerek is felk´esz´ıthet˝oek iSCSI kliens szerepre. Ehhez egy k¨ ul¨on meghajt´ oprogramot kell telep´ıteni a Microsoft oldal´ ar´ol 8 . Telep´ıt´es ut´an a iSCSI kliens konfigur´aci´ os fel¨ ulete el´erhet˝ov´e v´alik a start men¨ ube telep¨ ult alkalmaz´as ikon vagy a vez´erl˝opult megfelel˝o elem´enek ind´ıt´as´aval. Egy iSCSI c´elpontra csatlakozni ´es a t´ arhelyet haszn´alatba venni a k¨ovetkez˝o l´ep´esekkel lehet: • Control panel alatt iSCSI initiator megnyit´asa. • A General f¨ ul¨on ´ all´ıthat´ o az kliens neve, nem sz¨ uks´eges megv´ altoztatni. • A Discovery f¨ ul¨on a Target Portals sorolja fel a c´elpontokkal rendelkez˝o g´epeket. Ide kell felvenni az iSCSI c´elpont IP c´ım´et az Add gombbal. • A felv´etel ut´an a Targets f¨ ul¨on megjelennek az im´ent felvett g´epen defini´alt c´elpontok, egyel˝ ore inakt´ıv ´ allapotban. 8 A seg´ edlet ´ır´ asakor ezen a c´ımen volt let¨ olthet˝ o: http://www.microsoft.com:80/downloads/details.aspx?familyid=12cb3c1a15d6-4585-b385-befd1319f825&displaylang=en
16
• A Log On... gomb seg´ıts´eg´evel l´ephet¨ unk be a c´elpontra. Az Automatically Restore this Connection when the System Starts jel¨ol˝on´egyzettel ´all´ıthat´o be, hogy erre a c´elpontra minden rendszerind´ıt´ askor automatikusan be akarunk-e l´epni. Ha kiv´ alasztottuk, akkor az el˝ oz˝o ablak Persistent Targets f¨ ule alatti list´ aba beker¨ ul. A bel´ep´es v´egezt´evel a c´elpont connected ” ´ allapotba ker¨ ul. ” • V´egezet¨ ul ki kell jel¨ oln¨ unk a kapcsol´odott c´elpontot helyi k¨otetnek, hogy a Windows meghajt´ ok´ent kezelni tudja, ezt a Bound Volumes/Devices f¨ ul alatt tehetj¨ uk meg. Ez legegyszer˝ ubben a Bind All gombbal v´egezhet˝o el. Az iSCSI c´elpontot ez´altal meghajt´ ok´ent kezelhetj¨ uk, ´am ahhoz, hogy meghajt´ o bet˝ ujelet kapjon, illetve f´ ajlokat t´ arolhassunk rajta, particion´alni kell. Windows alatt erre a MMC (Microsoft Management Console) egyik be´ep¨ ul˝o modulja szolg´ al. A particion´al´as l´ep´esei: • Az mmc elind´ıt´ asa (Run... men¨ ub˝ ol) • File men¨ u alatt Add/Remove Plugins... • Add... majd a list´ ab´ol a Disk Management kiv´ alaszt´asa • A kiv´ alaszt´as elfogad´ asa Ok-val. Jobb oldalt a Disk Management (Local) pontra navig´alva a lemezkezel˝o eszk¨ oz kezel˝ ofel¨ ulet´ehez ´erkez¨ unk. Az u ´j ”lemez” v´arhat´oan m´eg inicializ´ alatlan ´allapotban lesz, teh´at a part´ıci´os t´ abl´ ak adatszerkezete m´eg nincs kialak´ıtva az els˝o blokkj´aban. Az inicializ´ al´ast a jobb gombbal felbukkan´o men¨ ub˝ ol v´alaszthatjuk ki. Ezut´ an l´etrehozhatunk rajta u ´ j part´ıci´ot az u ¨res ter¨ uleten v´egzet jobb kattint´ assal felbukkan´o men¨ ub˝ ol ind´ıtva. Az u ´ j part´ıci´o var´azsl´oban bet˝ ujelet rendelhet¨ unk hozz´ a, ´es egyben a f´ajlrendszert is l´etrehozhatjuk rajta. Fontos a Quick Format jel¨ ol˝ on´egyzet szerepe, ha nincs bejel¨ olve, akkor a f´ajlrendszer l´etrehoz´asa el˝ott az eszk¨ oz teljes tartom´ any´anak ´ır´ as ´es olvas´ as ellen˝ orz´ese megt¨ort´enik az adathordoz´o hib´ainak felder´ıt´ese ´erdek´eben. Ez igen hossz´ u folyamat, iSCSI virtu´alis meghajt´o eset´en eltekinthet¨ unk t˝ ole. A folyamat v´egezt´evel a kijel¨ olt bet˝ ujellel ell´atott meghajt´ o ´eppen u ´gy haszn´alhat´o f´ajlok t´ arol´as´ara, mint egy fizikai merevlemez.
12.
NFS megoszt´ as konfigur´ al´ asa Linux alatt
Az NFS NAS technol´ ogia haszn´alat´aval u ´gy dolgozhatunk egy t´ avoli g´ep f´ajlaival, mintha a saj´at g´ep¨ unk¨ on lenn´enek, p´eld´ aul a h´ al´ ozat b´ armely g´ep´er˝ol lehet˝os´eg¨ unk van ugyanazon k¨onyvt´arat haszn´alni. Linux rendszerek eset´eben legt¨obbsz¨or m´ar a kernelben megtal´alhat´oak a sz¨ uks´eges modulok ahhoz, hogy k¨onyvt´ arakat NFS seg´ıts´eg´evel megosszunk a h´ al´ozaton. Az alapvet˝oen RPC h´ıv´ asokra ´ep¨ ul˝o technol´ ogia konfigur´ al´asa rendk´ıv¨ ul egyszer˝ u, de a biztons´agi k´erd´esekre oda kell figyeln¨ unk. A megoszt´ as alapja egy k¨onyvt´ ar a helyi h´ al´ozaton, amit k¨ ul¨onb¨ oz˝o param´eterekkel tudunk kiaj´anlani egy el˝ ore defini´alt hoszt vagy alh´ al´ozat sz´am´ ara. Ez a megold´as ezen az IP c´ım alap´ u authentik´aci´ on k´ıv¨ ul azonban semmilyen m´as lehet˝os´eget nem biztos´ıt sz´amunkra, ´ıgy a megoszt´ as sor´an mindig k¨or¨ ultekint˝ oen kell elj´ arjunk. A kiaj´ anlott f´ ajlok hozz´ af´er´esi jogosults´agai a kiszolg´al´o g´epen defini´alt tulajdonosi be´ all´ıt´asokat ´es jogosults´agokat megtartj´ ak u ´gy, hogy alap´ertelmezetten a kiszolg´al´on ´erv´enyes felhaszn´al´ok az UID ´ert´ekeiknek megfelel˝o kliens oldali felhaszn´al´okra lesznek lek´epezve. Tegy¨ uk fel, hogy a kiszolg´al´ o szerveren a meres felhaszn´al´o 1005-¨ os UID-del rendelkezik ´es az ˝o tulajdon´aban l´ev˝ o f´ajlokat aj´ anlunk ki. Ekkor a kliensen felcsatolt megoszt´ ashoz az ottani 1005-¨ os UID-del rendelkez˝o felhaszn´al´ o fog pontosan olyan jogokkal hozz´ af´erni, mint a gazdag´epen l´ev˝ o meres felhaszn´al´o. Ennek megfelel˝oen a kliens root felhaszn´al´oja term´eszetes jog´an´al fogva hozz´ af´er minden kiaj´anlott f´ ajlhoz a szok´ asos m´odon. Ezt a felhaszn´al´ok lek´epez´es´et defini´al´o be´ all´ıt´asokkal
17
term´eszetesen fel¨ ul tudjuk ´ırni, de ekkor rendelkezn¨ unk kell az ¨ossze kliens g´epen ´erv´enyes felhaszn´al´oi adatb´azissal. A kiaj´ anlott k¨onyvt´ arakat ´es kapcsol´od´o be´ all´ıt´asokat a /etc/exports f´ajlban defini´aljuk a k¨ovetkez˝o m´odon: /home/meres/private 10.224.1.2(ro, root squash) /home/meres/public 10.224.1.0/255.255.255.0(rw, root squash) A f´ajl szerkezete egyszer˝ u. Az els˝o helyre ker¨ ul a k¨onyvt´ar neve, majd az enged´elyezett kliens(ek) IP c´ıme vagy alh´ al´ ozati c´ıme, z´ ar´ojelbe a jogosults´agok. A rw ´es ro az ´ır´ asi ´es olvas´asi jogokat defini´alja az ´ altal´ anosan megszokott szab´alyok szerint, m´ıg a root squash biztos´ıtja, hogy a kiszolg´al´ o rendszergazd´aja nev´eben ne tudjunk tev´ekenykedni, m´eg akkor sem, ha a kliens g´epen rendelkez¨ unk rendszergazdai jogokkal. A squash azt jelenti, hogy a rendszergazda csak a nobody felhaszn´al´ o jogait birtokolja. A f´ajl m´odos´ıt´ asa ut´an a kiaj´ anl´ asokat friss´ıteni kell az exportfs -a utas´ıt´assal.
13.
NFS megoszt´ as csatol´ asa Linux alatt
Az NFS kiszolg´al´ o el´er´ese kliens oldalon nem ig´enyel t¨ obb be´ all´ıt´ast, mint egy egyszer˝ u helyi f´ajlrendszer el´er´ese. A f´ ajlrendszer felcsatol´asa a mount paranccsal t¨ ort´enik mik¨ ozben defini´aljuk, hogy ez egy NFS megoszt´ as. mount -t nfs 10.224.1.1:/home/meres/private /mnt L´ athat´o, hogy a csatoland´o ”eszk¨oz” helyett most a kiaj´anlott k¨onyvt´ar pontos el´er´es´et, azaz a kiszolg´al´ o szerver c´ım´et ´es a pontos el´er´esi utat kellett megadni, m´ıg a t¨ obbi mount param´eter m´ar kor´abbr´ ol ismert volt.
18