SMR – Merevlemez zsindelyekkel

zsindely
Hogy mi köze van a modern merevlemezeknek a zsindelyekhez? Hogyan tette lehetővé az SMR technológia a mai modern, akár 16 TB-os hagyományos adattárókat? És mindennek hogyan lehet köze az SSD-khez? Most megtudhatod.

SMR – alapok

Az SMR, vagyis a Shingled Magnetic Recording (zsindelyes mágneses rögzítés) technológia a modern, nagy kapacitású merevlemezek sajátja, amely a CMR („hagyományos” mágneses rögzítés) technológia bizonyos szintű továbbfejlesztése. Ugyanakkor, mint azt a későbbiekben látni fogjuk, az SMR nem képes leváltani a CMR-t. Mind a két technológiának megvannak a maguk korlátai, így sokkal inkább egymás kiegészítéseként érdemes gondolkodni rájuk. Később lesz még erről szó.

A merevlemezeken az adatok rögzítése úgynevezett sávokban történik. Ezekben a sávokban vannak az adataink. Hagyományos rögzítés (CMR) esetén van egy, az adatsávokat elválasztó vékony hátárterület, ami megakadályozza az adatsávok közti áthallást, hibás rögzítést és így az adatsérülést. Ugyanakkor ez a határterület fizikai helyet vesz el, amit nem nehéz belátni, hogy elég szignifikáns.

Mi lenne, ha kevesebb határterületre lenne szükségünk, azaz növelhetnénk az adatsávok számát? Erre gondolhattak az SMR feltalálói is. SMR esetén az adatsávok némi átfedésben vannak egymással, valahogy úgy, ahogy a tetőn a cserepek. Innen a zsindelyes elnevezés. Fizikailag úgy történik az írás, hogy az adatokat folyamatosan írjuk az adatsávba, majd ha megtelik, elkezdjük az alatta lévőbe is írni, amely részben átfedi az előzőt. A folyamat ismétlésével adott felületen több adat rögzítése válik lehetővé.

CMR és SMR összehasonlítása

Az SMR-t használó merevlemezekben az írást végző fej nagyobb, mint ami egy sáv írásához kellene. A hagyományos írófejhez képest erősebb mágneses teret gerjeszt, amivel magas koercivitással rendelkező réteget is képes mágnesezni. Amint egy adatsáv kiírásra került, a következő sáv írásakor részben felülíródik a már kiírt sáv tartalma (átlapolás), ezért az vékonyabb lesz. Ezt a vékonyabb sávot kell pontosan beolvasnia az olvasófejnek.

Az egymást átfedő sávok egy csoportját zónáknak nevezzük. A zónák kapacitása a hatékonyabb adatszervezés és a részleges adatfrissítés lehetőségének megtartása miatt rögzítve van. A zónák között van határterület, így biztosítva, hogy az adott zóna írásakor nem kerül egy másik is módosításra.

SMR adatsávok

Mi az a koercivitás?

A fizikusok most egy kicsit forduljanak el.

A koercivitás annak a mértékegysége, hogy mekkora külső mágneses térerősségig áll ellen az adott ferromágneses anyag anélkül, hogy módosulna a mágneses tulajdonsága. Minél nagyobb ez az érték, annál nehezebb a mágneses tulajdonság változtatása.

Az ilyen tulajdonságú réteg használata a merevlemezekben az adatbiztonság miatt kívánatos, hiszen mágneses elvű adatrögzítés történik, vagyis nem szeretnénk, ha a már kiírt adat módosulna. Mivel az SMR technológia a sávokat átfedi, különösen kritikus, hogy az adatok olvashatóak maradjanak az átfedés után is, azaz, hogy az átfedés folyamata közben ne változzon az épp átfedett sáv azon része amit meg akarunk tartani.

Az SMR alapvető következményei

Az átfedéses írás miatt a tányérra az adatokat szekvenciálisan, azaz egymás után kell kiírni. Az SMR implementációtól (van több is, erről bővebben később) függetlenül kötelező az adatok szekvenciális írása. Ennek egyenes következménye, hogy amennyiben akár csak egy adatszektor is változik az adott zónában, úgy a teljes zónát újra kell írni. A közvetlen adatszektor módosítása tiltott, mert lehetséges, hogy a módosítandó adatszektor átfedésben van egy másikkal.

Bár két teljesen eltérő technológiáról van szó, ez a korlátozás összecsenghet az SSD-kel, ahol ugye egy adott cellát kell teljesen újraírni, ha benne akár egy bit is változik (kivéve SLC-nél, de olyan nem nagyon kapható). Így megválaszoltam a harmadik kérdést is.

Ugyanakkor az adatok olvasásával nincs ilyen probléma, a hagyományos technológiával megegyező a véletlenszerű olvasás teljesítménye. Éppen ezért az SMR technológia kiváló olyan munkafolyamatokhoz, amik folyamatos adatrögzítést és gyors olvasást kívánnak. Például olyan archiválás, ahol fontos az adatok gyors elérése, vagy videók felvétele.

SMR üzemmódok

A fentebb említett megszorítás a zónákra vonatkozóan magát a rendszerszintű adatkezelést is erősen befolyásolja. Háromféle fő SMR megvalósítást/üzemmódot különböztetünk meg, melyeknek megvan a saját előnyük és hátrányuk, így érdemes mindet megismerni, hogy az adott igényeknek megfelelően tudjuk kiválasztani a legjobbat. Röviden összefoglalva a különbségeket, előnyöket és hátrányokat:

Merevlemez által kezelt SMR: Látszólag a hagyományos merevlemezeknél megszokottan viselkedik minden, nincs szükség extra támogatásra se az operációs rendszer, se a többi program oldaláról. A véletlenszerű és szekvenciális írást is kezeli, ugyanakkor nehezen megjósolható az eszköz valós terhelés alatti teljesítménye.

Rendszer által kezelt SMR: A szoftver módosításra van szükség, hogy csak és kizárólag szekvenciális írást küldjön a lemeznek. Előnye, hogy az írás teljesítménye és az adatok valós kiírása is az operációs rendszer kezében van.

Rendszer által jól ismert SMR: A merevlemez által kezelt SMR kényelmét és rugalmasságát ötvözi a rendszer által kezelt SMR teljesítményével. Ennél az implementációnál lehetőség van mind a szekvenciális írásra, mind pedig korlátozott mennyiségben véletlenszerűre is, ugyanakkor ez a legbonyolultabb megoldás. A rendszer által jól ismert SMR esetén, ha a kényelemből és a teljesítményből is ki akarjuk hozni a maximumot, akkor a legtöbb olyan dolgot, amit a rendszer által kezelt SMR-nél meg kell tennie a rendszernek, azokat itt is meg kell tennie.

Persze az implementációtól, a lemez tányérjának formátumától és a merevlemez teljesítmény karakterisztikájától függően az eredmények elérőek lehetnek.

Merevlemez által kezelt SMR üzemmód

A fő érv a merevlemez által kezelt SMR mellett, hogy gyakorlatilag bármilyen meglévő rendszerbe azonnal beilleszthető, semmilyen további konfigurálásra vagy módosításra nincs szükség. Látszólag, pont ugyanúgy viselkedik ilyenkor az eszköz, mintha hagyományos merevlemez lenne.

Ahhoz azonban, hogy ez a viselkedés megvalósulhasson, az eszköznek a véletlenszerű írást át kell alakítania szekvenciális írásra, amihez szükség van egy átmeneti adattárolóra és az adat helyének az átirányítására is. Mindezt maga az eszköz csinálja, rendszer oldalról teljesen transzparensen, semmilyen módosításra nincs szükség.

Ez az átmeneti adattároló olyan területet biztosít az eszköznek, ahova ideiglenesen, a lehető legnagyobb sebességgel ki tudja írni a kért adatokat, mindezt attól függetlenül, hogy az operációs rendszer valójában melyik blokk címét adta meg az adat helyének. Az átmeneti adattárolóban lévő adatok a lemez üresjárati idejében kerülnek a végleges helyükre.

Tehát a merevlemez által kezelt SMR esetén fejlettebb gyorsítótárazási algoritmusra van szükség és némi helyre ahhoz, hogy kezelni lehessen a véletlenszerű írás műveleteket.

Mivel maga a merevlemez folyamatosan dolgozik a gyorsítótárazó algoritmus javításán, és a szektor átirányítás is folyamatosan változik, bizonyos típusú terhelések esetén nem lehet pontosan megmondani, hogy adott esetben mekkora teljesítményre számíthatunk. Ilyen kiszámíthatatlan terhelés például a nagy számú és méretű véletlenszerű írást igénylő feladatok.

Mivel igen széles skálán mozog az elérhető teljesítmény, ezért nagy céges kiszolgálói környezetben se nem praktikus, se nem elfogadott a merevlemez által kezelt SMR használata. Sokkal inkább olyan környezetben használandó, ahol a lemez az üresjárati idejében meg tudja csinálni az olyan háttérben futó karbantartási munkákat, mint az adatok mozgatása.

Tipikusan olyan környezetekbe illeszkedik jól az SMR mint személyi számítógépek háttértárolója vagy személyes felhasználásra szánt külső adatmentő lemez. Céges környezetben az akár párhuzamosan is futó adatmentési feladatok által generált magas véletlenszerű írás miatt nem alkalmas adatmentési célokra, hiszen sok íráskor a teljesítmény gyorsan csökken.

Rendszer által kezelt SMR üzemmód

A rendszer által kezelt SMR feltörekvőben van ahhoz, hogy a javasolt SMR zóna kezelési megoldás legyen. Ebben az esetben maga a rendszer végzi az SMR zónák kezelését, az írások szekvenciális csoportokba rendezését, ellentétben a merevlemez által kezelttel, ahol ugye mindez magának a lemeznek a dolga. A fő különbség pedig az, hogy a rendszer által kezelt SMR nem engedi meg a zónán belüli véletlenszerű írásokat.

A rendszer által kezelt SMR esetén a rendszernek az összes írást egy összefüggő szekvenciális írássá kell alakítania az adott zónában, követve a írás mutatót. Amikor adat kerül az adott zónába, akkor az írás mutatót növelni kell, hogy mindig azt a pontot jelezze a zónában, amitől el lehet kezdeni az írást. Minden olyan soron kívüli írási műveletet, amely nem az írás mutatótól kezdődne, a lemez írási hibával megtagad. A hiba megoldása a rendszer feladata. Emiatt a követelmény miatt képes a rendszer által kezelt SMR jól tervezhető, folyamatos teljesítményt nyújtani.

A rendszer által kezelt SMR esetén az adatblokkok zónákba vannak szervezve, számuk pedig egytől akár néhány ezerig is terjedhet. Kétféle zónatípus van: Csak szekvenciálisan írható zóna és hagyományos zóna. A hagyományos zóna megléte csak opcionális. A hagyományos zóna, amely a merevlemez elérhető kapacitásának jellemzően egy nagyon kis részét foglalja el, a véletlenszerű írás műveletet is elfogadja. Jellemzően metaadatok tárolására van használva. A lemez nagy részét a csak szekvenciálisan írható zóna foglalja el, ahol az eszköz kikényszeríti a zónán belüli adatok szekvenciális írását.

Nem szabad elfelejteni, hogy a véletlenszerű olvasás támogatott a rendszer által kezelt SMR üzemmódban is és az ilyenkor a hagyományos lemezekhez hasonlítható teljesítményt tud nyújtani.

A merevlemez által kezelt SMR üzemmóddal ellentétben, a rendszer által kezelt SMR nem visszafele kompatibilis azokkal a rendszerekkel, amik nem támogatják ezt. Ugyanakkor ez az üzemmód lehetőséget ad a tároló rendszerszintű kezelésére.

Rendszer által jól ismert SMR üzemmód

A rendszer által jól ismert SMR üzemmód a rendszer által kezelt SMR és a merevlemez által kezelt SMR üzemmódok keveréke. A rendszer által kezelt SMR-rel ellentétben ez az üzemmód megtartja a kompatibilitást az SMR üzemmódokat nem ismerő rendszerekkel is.

Ebben az üzemmódban nincs szükség szoftver és fájlrendszer változásra, hogy az adott zóna írása szekvenciális legyen. Ugyanakkor, hacsak nincs a rendszer szekvenciális írásra optimalizálva, akkor a teljesítmény megjósolhatatlan lesz, pontosan úgy, ahogy azt a merevlemez által kezelt SMR-nél is láttuk. Ennél fogva, ha az adott alkalmazásnak folyamatos és optimális teljesítményre van szüksége, akkor a rendszernek muszáj az SMR kezelésének minden feladatát magára vennie, ideértve az adatfolyamok kiírását és az SMR zónák kezelését is. Ez pontosan megegyezik azzal, amit a rendszert által kezelt SMR-nél láttunk. Olyan terhelésnél, ahol egyszerre több műveletet vagy több adatfolyamot kell szekvenciálisan kiírni, a rendszer aktív közreműködése nélkül a teljesítmény hamar megjósolhatatlan lesz, ha az SMR zóna kezelésének terhét a merevlemezre hárítjuk.

A rendszer által jól ismert SMR üzemmód is kétféle zóna típust különböztet meg: A szekvenciális írást preferáló zónát és a hagyományos zónát, aminek a jelenléte itt is opcionális. A rendszer által kezelt SMR üzemmódnál jelen lévő, csak szekvenciálisan írható zóna nem engedi a véletlenszerű írást. Ez itt le lett cserélve szekvenciális írást preferáló zónára, ennélfogva lehetséges szekvenciálistól eltérő írás. Amennyiben az adott zóna olyan írást kap, mely ütközik az írás mutatóval, az adott zóna nem-szekvenciális zónává alakul át. A rendszer által jól ismert SMR üzemmódú lemezek információt szolgáltatnak ahhoz, hogy a soron kívüli vagy a nem szekvenciális írási műveletek esetleges hibáját korrigálni lehessen. Ahhoz, hogy a soron kívüli írásokat végre lehessen hajtani, és a háttérben működő belső töredezettségmentesítő is futni tudjon, az eszköznek karban kell tartania egy táblázatot, amely tartalmazza az adat fizikai és logikai helyének összerendelését. Ezt a táblázatot folyamatosan frissíteni és védeni kell az áramszünetektől is. A soron kívüli adatok az adatgyorsítótárnak használt zónákba kerülnek. Innen helyezi át a merevlemez ezeket a végleges helyükre.

A rendszer által jól ismert SMR üzemmód elsődlegesen szekvenciális írás és olvasás esetén ideális, ahol nem túl gyakori az adatok felülírása, és a késleltetés minimalizálása sem elsődleges szempont.

Szabványok

A rendszer által kezelt SMR és a rendszer által jól ismert SMR üzemmódok számára új parancsok bevezetésére is szükség van. Ezeket a szabványokon alapuló parancsokat a SCSI eszközök esetén az INCITS T10 tanács, míg az ATA eszközökhöz az INCITS T13 tanács dolgozta ki. Nincs szükség a merevlemez által kezelt SMR üzemmód használatához új parancsra, hiszen ez visszafele kompatibilis és teljesen transzparens az SMR-t nem ismerő rendszerek felé.