Cs. Kádár Péter - XXI. századi Diszkónika, 446. Merevedj! - Cilinderek és más öltözékek

A merevlemez meghajtó tányérjai önmagukban még szemérmesek, adatok nem írhatók rájuk és nem is olvashatók.

Gyakran csupán valami bugyiféle van rajtuk, amit mélyformázásnak neveznek, ami nélkül a meghajtó nem volna használható, s amit a gyártók kötelezően elvégeznek. Nick Hornbynak a Pop, csajok satöbbi című regényében olvasható az az elmélet, miszerint a kapcsolat hosszával egyenesen arányban nő a bugyi mérete is. A merevlemezek mélyformázására ez korlátozottan érvényes, de mivel a logikai rendszer alapszerkezetét ekkor alakítják ki, nyilván minél nagyobb kapacitású a merevlemez, annál többet kell mélyformázáskor masszírozni rajta.

cmo02

A mélyformázás vagy alacsony szintű formázás (Low Level Format) lényegében abból áll, hogy létrehozzák a sávokat és a szektorokat. Felírják a lemezre az azonosítókat, és mindegyik szektor fejlécébe beírják a sáv sorszámát, a fejléc sorszámát és a szektor sorszámát. Egy-egy szektor nemcsak a felhasználó számára fontos adatmezőt tartalmazza, hanem egy csomó egyéb bejegyzést is. Ilyenek a különböző bitcsoportok az átkapcsolási feladatokhoz vagy a szektor abszolút címe; aztán a bevezető és lezáró bitcsoportok. Ilyenek továbbá a különböző, ún. ECC bájtok, azaz hibajavításhoz szükséges bájtok, amelyek nem a tárolt adattartalom, hanem a szektor címzésének hibajavításához szükségesek; stb. A modern HDD-kben a felhasználói mélyformázás le van tiltva, mert egyrészt nincs rá semmi szükség, másrészt tönkre teheti az adattárolót. A mélyformázás fölötti adatszerkezetet azonban létre kell hozni, mondhatnánk, hogy a meghajtót fel kell öltöztetni.

cmo03

A merevlemez meghajtó egyes tányérjain tehát már a mélyformázás során koncentrikus köröket alakítanak ki; ezek a sávok. A mai típusoknál egy felületen legalább 35 000 sáv kialakítása lehetséges, de nem ritka a több százezres mennyiségű sáv sem. A sávok geometriai szélessége a nanométer tartományban van.

cmo04

A tányérok egymás alatt elhelyezkedő sávjai a cilinderek. Az adatok rögzítése és olvasása nagyobb sebességgel történhet, ha az adatállomány egy cilinderen van, mert ilyenkor az összes író-olvasó fej ugyanabban az állásban van, ugrálás nélkül képes az állomány összes részét írni vagy olvasni.

cmo05

A sávokat körcikkekre, szektorokra osztják. A külső sávcsoportoknál a sávonkénti szektorszám 2 500, míg a belső sávcsoportoknál 1 500 körüli, hiszen a külső, nagyobb területen több ugyanolyan adatméretű egység fér el. Lehetne változó adatméretű szektorokat is csinálni, de nem ebben állapodtak meg, hanem az úgynevezett zónabites rögzítésben (ZBR). A lemezen lévő adatstruktúrák kezelésével kapcsolatos többletterhelés csökkentése érdekében a filérendszer alapértelmezés szerint nem különálló lemezszektorokat foglal le, hanem összefüggő szektorcsoportokat, blokkokat. A blokk a legkisebb rögzíthető adatmennyiség. Klaszternak vagy fürtnek is hívják, és 0,5-64 kB a mérete. Az 512 bájtos szektorokat használó lemezen az 512 bájtos blokk egy szektort, míg a 4 kilobájtos blokk nyolc szektort tartalmaz. Hozzáteszem, hogy ha egészen precíz szeretnék lenni, a blokk és a fürt nem teljesen azonos, de nem szeretnék egészen precíz lenni. A kisebb blokkok előnye, hogy kevesebb lesz a kihasználatlan üres hely, viszont a nagyobb blokkokhoz gyorsabban fér hozzá a rendszer.

Egy blokk írása vagy olvasása az alábbi főbb tényezőtől függ:
• a fejmozgási vagy keresési időtől, ami az az idő, mely alatt az író-olvasó fej eléri a kívánt blokkot tartalmazó sávot, vagyis amíg a tányérok sugara mentén rohangál. A mai leggyorsabb csúcskategóriás szervermeghajtók keresési ideje körülbelül 4 ms, a legelterjedtebb asztali meghajtóké 9 ms körüliek;
• az elfordulási időtől vagy forgási késleltetéstől, ami az az idő, ami alatt a kiválasztott blokkot tartalmazó szektor a fej alá kerül. Ez legrosszabb esetben egy teljes körbefordulási idő, ami átlagosan 2-7 ms;
• az adatátviteli sebességtől, ami az az idő, ami a blokk írásához vagy olvasásához szükséges, vagyis amíg a fej egy blokk felett tartózkodik; gyakorlatilag 0,1-0,2 ms. ezredmásodperc. Pl. ha egy blokk mérete 512 bájt, akkor a sebesség nagyjából 2 MB/s. A merevlemez átviteli sebességének növelésének érdekében beépítenek egy gyorsítótárat, külföldiül cache-t. A merevlemez elektronikája a gyorsítótárba gyűjtögeti a kiírandó adatokat, majd ha elegendő összegyűlt, egyszerre írja a lemezre. Olvasáskor a lemezről többet beolvas, mint amennyire szükség van az adott pillanatban, arra a statisztikai tényre építve, hogy „úgyis kérni fogjuk az utána lévő adatokat”. Nem kevésbé fontos szerepe még, hogy a csatolófelületnek szakaszosan, de állandó sebességgel küldje és fogadja az adatokat. A gyorsítótár lehetőségeinek kihasználása érdekében a nagyobb adatsűrűségű tárolókhoz nagyobb méretű szokott lenni. Régebben 2, 4, 8 MB-os, manapság a nagyobb kapacitású HDD-k mellé 16, 32, 64, 128 vagy 256 MB-os gyorsítótárat szoktak rakni.
• A parancsfeldolgozási idő az az idő, amely alatt a meghajtó elektronika létrehozza a szükséges kommunikációt a HDD különböző komponensei között, hogy képes legyen olvasni vagy írni az adatokat. Ez μs hosszúságú, sokkal kevesebb, mint a többi idő.

Kicsit jobban részletezi ezt az alábbi videó.

Az adatok címzéséhez, eléréséhez meg kell adni a tányér sorszámát (ebben az is benne van, hogy a tányér melyik oldalán van az adat), a sáv sorszámát és a szektor sorszámát. A felhasználók nem akarnak ezzel pöcsölni, ezért a programozók ezt az adatszolgáltatást és az ebből fakadó parancsokat az operációs rendszerekre bízták. Az információt a számítógép processzora az operációs rendszerből a BIOS-nak nevezett, a gép alaplapján levő memóriában tárolt aprócska szoftverbe küldi, amely felismeri, diagnosztizálja és kezeli a gép legfontosabb alkatrészeit. A régi BIOS nem látott 2,2 GB-nál nagyobb, némi trükközéssel 4 TB-nál nagyobb tárhelyet, az UEFI nevűnek nincs ilyen gondja. Megemlítem, hogy a Windows 11 csak olyan gépre megy föl, amiben UEFI van.

cmo06

A szoftver továbbküldi az információt az adatátvitelt vezérlő integrált áramkörbe. A vezérlést többvezetékes csatlakozón keresztül továbbítják a merevlemezre. Amint az adatok a meghajtó áramköri lapjára érkeznek, azokat lefordítják és olyan formátumba tömörítik, amelyet a HDD magán a lemezen tárolhat. A meghajtó áramköre ennek megfelelően vezérli a HDD fejeinek mozgatását. Nagyon nem mindegy, hogy az operációs rendszer milyen parancsokat küld, ugyanis a cél az, hogy a fejek minél kevesebbet rángatózzanak.

Régen a töredezettségmentesítés (külföldiül defragmentálás) volt az egyik varázslat, amivel a HDD-t fürgékenyebbé tudtad tenni.

cmo07

Amikor merevlemez meghajtó még új, minden nagyon szép és jó. Sorban kerülnek fel rá a programok, azok filéi. Azonban egy idő után törölhetsz programokat és más adatokat. Ilyenkor a filé helye felszabadul, és a merevlemez elektronikája egy speciális táblázatban, a partíciós táblázatban rögzíti, hogy jé, fölszabadult egy terület. Amikor legközelebb újabb filék kerülnek a lemezre, akkor az elektronika elsőként ezeket az üres helyeket tölti fel adatokkal, ha pedig egy program összes filéje nem fér el az üres helyen, akkor egy részüket erre a helyre, a többieket meg más üres helyekre pakolgatja. Ilyenkor beszélünk töredezett meghajtóról, hiszen az egyes programok, adatok filéit össze vissza, az éppen felszabadult szabad helyekre másolja fel a rendszer. Ez elvileg lassítja a számítógépet, főként, ha az operációs rendszer is HDD-n van, és megbolondulsz, ameddig végre elindul, bebootol a cucc. Hiszen a merevlemezbe épített író-olvasó fejnek állandóan pozícionálnia kell magát, és össze kell szedegetnie a különböző helyekről az adatokat. Kézenfekvőnek látszik, hogy ezt a jelenséget meg kell szüntetni, mert akkor gyorsabb lesz a gép. A szétaprózott állományok összefűzését töredezettség mentesítésnek hívjuk, és jobbnál jobb ingyenes programokat lehet letölteni a netről.

cmo08

Csakhogy ezekre semmi szükség sincs. Egyrészt azért nem, mert a programfiléket – ideértve különösen az operációs rendszert – a 21. században nem HDD-n, hanem SSD-n tároljuk, s az SSD, pendrájv, memóriakártya töredezettségmentesítése káros, rövidíti ezek élettartamát. Másrészt azért nem, mert a rosszemlékű Vista óta a Microsoft operációs rendszerekben van beépített optimalizáló, amely nemcsak automatikus töredezettmentesítést, hanem egyéb jó dolgokat is művelhet, például törli a fölösleges ideiglenes (.temp) filéket.

cmo09

Egyébként régebben, még a Windows 98-as időkben is azt tapasztaltam, hogy a töredezettségmentesítés után sem lett gyorsabb a gép; s ha már nem bírtam cérnával a csigaságot, legtöbbször az újraformázás és újratelepítés segített csak.

Ha már a partíciós tábla is szóba került – és még mi minden fog –, a partíció a merevlemez önálló, a filérendszer tárolására alkalmas logikai egysége. Ahhoz, hogy egy HDD-t használni tudjunk, legalább egy formázott, tehát filérendszert tartalmazó partíciónak kell lenni. A felosztott lemezterületek helyét és méretét a partíciós tábla rögzíti. Az IBM PC-ken alapuló gépekben a rendszerbetöltés, bootolás folyamatának részeként a BIOS betölti a merevlemez fő rendszertöltő állományát (Master Boot Record, MBR), illetve napjainkban inkább a GPT-t (GUID Partition Table) s innen folytatódik az operációs rendszer betöltése. Az MBR-ben legfeljebb négy partíció adatainak tárolására van hely, ezért a merevlemez legfeljebb négy ún. elsődleges partíciót tartalmazhat. Hogy több partíciót is létre lehessen hozni, a Microsoft kitalálta a kiterjesztett partíciót.

cmo10

A GPT sokkal több, akár ezer partíciót is engedélyez, de a Windows „csak” 128-at. Az MBR a partíció és a boot adatokat egy helyen tárolja. Ha ezek az adatok sérülnek vagy felülíródnak, akkor gáz van. Ezzel szemben a GPT ezeket a kritikus adatokat több helyen is tárolja, ebből a szempontból tehát sokkal redundánsabb, megbízhatóbb, mint a klasszikus MBR. Ha egy adat megsérül, akkor a GPT megpróbálja visszaállítani azt a lemez egy másik helyéről. Ezzel szemben az MBR még csak észre sem veszi a sérült adatokat. Csak a felhasználó látja a hibát, amikor a gép nem bootol vagy egy partíció köddé válik.

Mivel ma már a merevlemezeket nem programok tárolására használjuk, nem nagyon van értelme több partíciónak, legfeljebb csak azért, hogy ha az egyik partíció feldobja a talpát, a többi még használható maradjon.

A merevlemezen a filérendszert is ki kell alakítani, ami szintén a magas szintű, felhasználói formázás része, noha arra is számos példa van, hogy a filérendszert is a gyártó alakítja ki, legfeljebb te megváltoztatod. A filérendszer a filék és az azokhoz kapcsolódó kiegészítő, metainformációk rögzítésének szabályait és formáit leíró rendszer. A legegyszerűbb filérendszerek kizárólag különálló adatállományok, filék kialakítását teszik lehetővé, míg összetettebb változataikkal ezeket könyvtárakba, mappákba lehet szervezni, és néhány kiegészítő attribútummal tárolni. Az attribútumok az egyes fájlok, könyvtárak tulajdonságait, felhasználhatóságát, hatóköreit leíró jelölések. Pl. a Windows NTFS filérendszerben az alábbi attribútumok lehetségesek:

cmo11

A Windows NTFS az otthoni operációs rendszerekben az XP-vel kezdte a pályafutását, és annyira bevált, hogy a Microsoft lényegesen nem is módosította, pedig volt szó arról, hogy a Windows 7-ben egy még jobb filérendszer lesz. Én két tulajdonságát tartom kellemesnek: az egyik az önjavító képessége, aminek következtében kevesebb a rendszerösszeomlás, a másik, hogy a gyorsabb keresés érdekében indexeli a filéket, noha ez nem mindig sikerül neki. Van néhány olyan szolgáltatása, pl. az, hogy ha többen használják ugyanazt a gépet, mindenféle jogosultságokat lehet beállítani, de az otthoni felhasználás alapelve az, hogy egy ember – egy gép, hiszen attól személyi a személyi számítógép. Ahol ez nem így van, jókora családi veszekedés forrása lehet, hogy már megint ki piszkálta el a gépet.

A helyi filérendszer nyomon követi, hogy melyik tárolóterület melyik filéhez tartozik, és melyek nincsenek használatban. Amikor egy filérendszer létrehoz egy filét, helyet foglal le az adatok számára. Filé törlésekor a filérendszer rögzíti, hogy a filé helye szabad; használható egy másik filéhez.

Rengeteg filérendszer létezett vagy létezik, s ezek nem feltétlenül olvassák a más filérendszer állományait. Csak felsorolásként néhány példa, mert egy összesítés több mint 100 filérendszert tart nyilván: FAT (FAT12 , FAT16 , FAT32), exFAT, ReFS, HFS, HFS+, HPFS, APFS, UFS, ext2, ext3, ext4, XFS, btrfs, Files-11, VMFS, ZFS, Veritas.

Ha már mindenre elő van készítve a HDD, az új adatokat valahogy föl is kell írni a tányérokra. Írásnál a fej alatt éppen lévő mágneses részecske irányát a fej tekercsében folyó áram határozza meg. Az adattárolás elve szerint a logikai 1 fluxusváltozást okoz, a logikai 0 esetében nincs fluxusváltozás. Olvasásnál a tekercsbe indukált áram minden 1-nél irányt változtat.

cmo12

A HDD-k legújabb generációja, a HAMR (Heat-Assisted Magnetic Recording, hővel támogatott mágneses adatrögzítés), kicsit másképp működik. A HAMR merevlemezek üvegtányéraira viszik fel a mágneses adatrögzítő réteget, ami többnyire vas-platina ötvözetből, FePt-ből készül. Adatrögzítéskor az adathordozó filmréteg adott területét a gondosan beállított teljesítményű lézerrel felmelegítik a Curie hőmérsékletig, ahol megváltoznak az anyag mágneses tulajdonságai, azaz csökken a mágneses koercivitása, lényegében szűzzé válik (lásd a sorozat 326. részét), majd elvégzik az írást.

cmo13

A Seagate gyártmányú HAMR merevlemez meghajtók 2024 januárban jelentek meg a boltokban.

Ám nincs megállás. A Seagate a továbbfejlesztette a HAMR-t. Az új HDD lényegében egy kétrétegű szemcsés médiának tekinthető. Ezzel a módszerrel immár lehetőség van a többszintű mágneses adatrögzítés bevetésére egyetlen HDD korongon belül. A technológia annyira új, hogy nem bíbelődtem az ábrán átírni az angol szavakat magyarra.

cmo14

Az új HDD két FePt nanoszemcsés rétegből áll, köztük egy ruténium (ez a periódusos rendszer 44-es számú eleme) elválasztó-réteg foglal helyet. A két FePt réteg tulajdonsága eltér az íráshoz szükséges hőmérséklet és a mágneses térjellemzők szempontjából. A mágneses tér és a lézer teljesítményének módosításával a két FePt alapú adathordozó réteget egyszerre, egymástól függetlenül lehet adatokkal megtölteni, ugyanis két olyan adathordozó filmréteget raknak a hordozóra, amelyeknek egymástól eltérő Curie pontja, és mágneses koercivitásuk is eltérőek egymástól. Ez az adott területen tárolható adatsűrűséget duplájára emelheti, így az adattároló kapacitás is duplázódhat.

A bináris adatokat mindenféle merevlemezen kódolt formában tárolják a mágneses felületen, annak érdekében, hogy egy adott felületen minél több adat férjen el, illetve, hogy az írás-olvasás folyamata ne járjon adatvesztéssel. Napjainkban szinte kizárólag az RLL (Run Lenght Limited) kódolást használják, amelynek lényege, hogy két 1 között meghatározott számú 0-nak kell lennie. Például az RLL 2.7 kód esetében két 1-es között minimum 2, maximum 7 darab 0 állhat.

 cmo15