.


[*]
[*]
[*]

[*]
index


Merevlemezek (hard disks)

Ez a fejezet a merevlemezekkel kapcsolatos szakkifejezések használatába vezet be. természetesen ha már ismered a szakkifejezéseket és a fogalmakat, átugorhatod ezt az alfejezetet.

Nézzük meg a 4.1. ábrát. Ezen egy merevlemez fontos részeinek vázlatos rajzát láthatjuk. A merevlemez egy vagy több kör alakú korongból (platter) áll.4.1 Ezen korongok egyik, vagy mindkettő felülete (surface) egy mágneses tulajdonságokkal rendelkező anyaggal van bevonva, mely az adatokat rögzíti. Mindegyik felszínhez tartozik egy író-olvasó fej (read-write head), amely megvizsgálja vagy módosítja a rögzített adatokat. A korongok közös tengelyen forognak; tipikusan 3600 fordulat/perc sebességgel, de a nagysebességű merevlemezek ennél gyorsabban. A fejek a korongok sugarának irányában mozognak; és ez, valamint a forgás kombinációja megengedi, hogy a fejek a felszín tetszőleges pontját elérjék.

A processzor (CPU) és a lemez a lemez kontrolleren (disk controller) kereszül kommunikálnak egymással. Ez mentesíti a számítógép többi részét attől, hogy tudniuk kelljen, hogyan kell a merevlemezzel kommunikálni, hisz a kontrollerek segítségével az eltérő lemezek egy egységes felületen keresztül érhetők el a számítógép többi része irányából. Ezért a számítógépnek csak azt kell mondania, hogy ''Hé, lemez! Adsza amit akarok!'', ahelyett, hogy egy hosszú és összetett elektromos jelsorozatot adna le, ami a fejet a megfelelő pozícióba viszi, és megvárná, hogy a lemez a megfelelő pozícióba fordul, stb. (Valójában a kontroller interfésze még így is elég összetett, de sokkal kevésbé, mint a közvetlen vezérlés lenne.) A kontrollernek lehetnek még további feladatai is, pl. cache-selés, automatikus hibás szektor mozgatás.

A fenti hardverismeretek általban elégségesek a legtöbb ember számára. Egy csomó más dolog is van még, mint pl. a motor, amely a korongokat forgatja és mozgatja a fejeket, az elektronika, amely a mechanikus részeket vezérli, de ezek általában nem tartoznak a legfontosabb dolgok közé a merevlemez működésének alapszíntű megértését illetően.

A felületek általában koncentrikus gyűrűkre, az úgynevezett sávokra (track) vannak osztva, ezek pedig szektorokra (sector) oszlanak. A felosztás a merevlemezen való helymegadás és a lemezterület fájloknak történő lefoglalásában játszik szerepet. A merevlemez egy helyének meghatározásához mondhatjuk pl. hogy ''3. felület, 5. sáv, 7. szektor''. Általában a szektorok száma minden sávon azonos, de néhány merevlemez több szektort helyez a külső sávokra, mert ott azonos méretű szektorból több fér el. Általában egy szektor 512 bájtnyi adatot tartalmaz. A lemez nem képes ennél kevesebb adatot kezelni.


  
4.1. ábra: Egy merevlemez vázlatos ábrája.
\includegraphics[width=8cm]{disks/hd-schematic.ps}

Mindegyik felület azonos módon oszlik sávokra és szektorokra. Ez azt jelenti, hogy amikor az egyik felülethez tartozó fej egy sávon van, a többi felület fejei is az annak megfelelő sávon találhatók. Ezért az így összetartozó sávokat együttesen cilindernek (cylinder) nevezzük. Időbe telik, amíg a fejek egyik cilindertől a másikig elérnek, ezért célszerű az összetartozó adatokat (mondjuk egy fájl blokkjait) lehetőleg egy cilinderen elhelyezni, hogy ne kelljen ezen adotok olvasása közben a fejet mozgatni. Ez javítja a teljesítményt. Azonban nyilván nem mindig lehet így elhelyezni a fájlokat. Azokat a fájlokat, melyeknek különböző részei több cilinderen helyezkednek el, töredezettnek (fragmented) nevezzük.

A felületek (illetve fejek), a cilinderek és a szektorok száma nagyon változatos; ezen számok megadása jelenti a lemez geometriájának definiálását. A geometria általában egy speciális, elemről táplált memóriaelemben van tárolva, amit CMOS RAM-nak nevezünk. Innét veszi az operációs rendszer a meghajtóprogram inicializálásához szükséges információkat a boot-oláskor.

Szerencsétlen módon a BIOS-nak4.2 tervezési korlátai vannak, ami lehetetlenné teszi 1024-nél nagyobb számú sáv megadását a CMOS RAM-ban, ez az érték pedig általában kicsi a nagy merevlemezekhez. Ezt kikerülendő, a merevlemezvezérlő hazudik a geometriával kapcsolatban és címlefordítást végez olyan alakra, amit a számítógép el tud fogadni. Például egy merevlemeznek lehet 8 feje, 2048 sávja és 35 szektora sávonként4.3. A kontroller azt hazudhatja a számítógépnek, hogy 16 feje, 1024 sávja és 35 szektora van sávonként. Így nem haladja meg az 1024-es sávhatárt, de le kell fordítania a számítógép által megadott adatokat: felezi a fejszámot és duplázza a sávszámot. A számítások ennél bonyolultabbak is lehetnek a gyakorlatban, mert, a számok nem mindig jönnek ki olyan kerek értékre, mint a példában, de ezek a részletek nem fontosak az alapelvek szempontjából.

Ez a fordítás eltorzítja az operációs rendszer látását a lemez szervezésével kapcsolatban, így használhatatlanná teszi a ''minden adat egy cilinderen'' sebességjavító trükköt.

A fordítás csak az IDE lemezek problémája. Az SCSI lemezek soros szektorszámozást használnak, azaz a konroller egyetlen sorszámot fordít ''fej, cilinder, szektor'' hármasra, és a CPU is teljesen máshogyan kommunikál a kontrollerrel, így nem lép fel ez a probléma. Azt azért megjegyezzük, hogy a számítógépnek egyátalán nem is kell tudnia az SCSI lemezek valódi geometriájáról.

Mivel a Linux gyakran semmit sem ismer a lemez valódi geometriájából, a fájlrendszerei nem is próbálják a fájlokat egy cilinderen belül tartani. Ehelyett egymást követő sorszámú szektorokat próbálnak adni a fájlok részeinek, ami majdnem mindig hasonló teljesítményt ad. Ezt a kérdést tovább bonyolítja a kontoller beépített cache memóriája és az automatikus előreolvasás esetleges megléte.

Mindegyik merevlemezt különálló eszközfájl jeleníti meg. Általában 2 vagy 4 IDE merevlemez lehet egy rendszerben. Ezek rendre a /dev/hda , /dev/hdb , /dev/hdc , és /dev/hdd , eszközfájlokon keresztül érhetők el. Az SCSI merevlemezek eszközfájljai: /dev/sda , /dev/sdb , stb. Hasonló elnevezési szokások léteznek a többi merevlemez típusra is. A részletek [Anv]-ben vanak leírva. Megjegyzendő, hogy a merevlemezek eszközfájljai az egész lemezhez engedélyezik a hozzáférést, nem törődve a partíciókkal (lásd lentebb), ezért könnyű a patíciókat és az adatokat összezavarni, ha nem vagy óvatos. A lemezek eszközfájljait általában csak a ''master boot record'' elérésére használják (lásd lentebb).

[*]
Linux rendszeradminisztrátorok kézikönyve (első javított változat; SAG-HU 0.6b1)