Articles

Garbage Collection & TRIM: SSD Dirty Little Secret

SSD Garbage collection and TRIM
a morajlás online és bizonyos IT körökben igaznak bizonyultak: SSD sebesség lelassulhat az idő múlásával. Szerencsére vannak olyan dolgok, amelyek megakadályozhatják ezt, és segítenek fenntartani az SSD-k gyors jellegét.

mi az SSD szemétgyűjtés

csakúgy, mint a szemét kivétele szükséges feladat az otthoni karbantartáshoz, a szemétgyűjtés is egyfajta SSD karbantartás. Ez kissé téves elnevezés, mivel a szemétgyűjtésnek semmi köze nincs a már nem szükséges fájlok eltávolításához. Ez inkább olyan, mintha megszabadulna az üres dobozoktól, amelyeket már eldobott. Alapjában véve az SSD szemétgyűjtés egy automatizált folyamat, amelynek célja a teljesítmény javítása.

mindannyian tudjuk, hogy az SSD-k kezdetben nagyon gyorsak, de rájövünk, hogy idővel lassabbak lesznek, különösen, amikor a meghajtó megtelik. Pontosan ez az, amit az SSD szemétgyűjtés célja megakadályozni. Megfelelő karbantartással az SSD sebessége megőrizhető.

A nagy SSD lassulás

annak megértése érdekében, hogy az SSD-k miért lassulnak az idő múlásával, fontos tudni, hogyan működnek a fájlrendszerek. Minden fájlrendszernek megvan a maga módja a dolgok elvégzésére, de általában véve, amikor töröl egy fájlt, az a fájl nem igazán ment el. Az operációs rendszer általában nem törli azokat a tárolóblokkokat, amelyeket korábban a fájl lakott. Ehelyett az operációs rendszer egyszerűen megjelöli a blokkokat elérhetőnek, és tárolja ezeket az információkat egy könyvtárfájlban. Ez az oka annak, hogy az olyan helyreállítási szoftverek, mint a Hard Disk Warrior, képesek helyreállítani a törölt fájlokat. A fájl továbbra is létezik a lemezen lévő blokkokban, de a könyvtárfájl üresként sorolja fel őket, így láthatatlanok a számítógép számára.

HDD-k esetén a fájl törlésének ez a módja nem volt probléma. Az operációs rendszer egyszerűen megjelöli a blokkokat rendelkezésre állóként, a merevlemez pedig új adatokat írhat a régi adatok tetejére. Az SSD-k erre nem képesek. Az SSD-k esetében a tárolóblokkokat törölni kell, mielőtt felülírnák őket. A korábban használt blokkok törlésének ez a követelménye okozza az SSD-k lassulását az idő múlásával.

az SSD szemét kivétele

ennek a nemkívánatos helyzetnek a megakadályozása érdekében a modern SSD-k komplex rutinokat futtatnak, amelyeket szemétgyűjtésnek neveznek annak érdekében, hogy mindig a lehető legnagyobb tartalékot tartsák az érintetlen üres blokkokból, amelyek készen állnak az írásra. A szemétgyűjtés magában foglalja, hogy a vezérlő az írott oldalak leltárán keresztül keressen olyan oldalakat, amelyeket “elavultnak”jelöltek meg—vagyis azokat írták, majd az általuk tartalmazott adatokat az operációs rendszernek módosítania kellett; mivel az oldal állapotának megváltoztatása lehetetlen anélkül, hogy először törölné, a változtatásokat mindig új oldalakra írják, a régi oldalakat pedig elavultnak. A szemétgyűjtés olyan blokkokat keres, amelyek jó és elavult oldalak keverékét tartalmazzák, majd az összes jó oldalt Új blokkokba másolja, és csak a régi blokk elavult oldalait hagyja hátra. Ezután törli a régi blokkot, és használatra készre jelöli.

van még egy részlet, amelyet meg kell jegyezni az SSD szemétgyűjtéséről. Az SSD-k képesek olvasni és írni az oldal szintjén—ami általában 8KB a modern meghajtók számára -, de van egy sajátos hibájuk, hogy nem tudnak törölni az oldal szintjén. Az SSD-k csak teljes blokkokat törölhetnek, amelyek általában több száz oldalból állnak. Ennek az az oka, hogy egy oldal tartalmának törléséhez nem jelentéktelen mennyiségű feszültséggel kell az oldalt zappolni, és az összes modern SSD NAND stílusú elrendezése megfizethetetlenül megnehezíti a feszültség elkülönítését csak azokra az oldalakra, amelyeket törölni kell.

és itt jön képbe a “szemétgyűjtés” helytelen elnevezés, mert valójában jó oldalak vannak “összegyűjtve”, a szemetet hátrahagyva. Ennek a folyamatnak az a célja, hogy megpróbálja optimalizálni a teljesítményt azáltal, hogy a blokkok vagy teljesen üresek (majd törlik a blokkot), vagy teljesen megteltek.

mi a helyzet a TRIM?

egy merevlemezen általában rögzített korreláció van a fájlrendszer klaszterei és a lemez szektorai között. De egy SSD-n, ahol nincs rögzített korreláció, és ahol a használatban lévő oldalakat nyomon kell követni és szemétgyűjtéssel kell felvenni, ez nagy dolog lehet. A törölt fájlokat tartalmazó oldalak érvényes oldalaknak tűnnek, és folyamatosan összegyűjtik őket a valóban jó oldalakkal együtt.

Ez a helyzet TRIM vezették orvosolni. A TRIM (amely megfelelően nagybetűs, de nem rövidítés) egy ATA parancs, amelyet az operációs rendszer elküldhet, amikor töröl egy fájlt. A TRIM parancs biztosítja ezt a hidat a fájlszintről a blokkszintre, így az operációs rendszer képes megmondani az SSD-nek, hogy törli a fájlokat, és megjelöli a fájlok oldalait.

A TRIM használatával az SSD már nem kényszerül a törölt fájlokhoz tartozó oldalak mentésére. A TRIM nem alternatívája a szemétgyűjtésnek-a szemétgyűjtéssel működik, hogy jobban megjelölje az oldalakat elavultnak. A szemétgyűjtéshez pedig nincs szükség TRIM-re—de a TRIM hatékonyabbá teszi az SSD szemétgyűjtését.

ennek ellenére, ha Mac-et használ, az Apple nem támogatja a TRIM-et harmadik féltől származó SSD-ken. Lehetséges volt megkerülni ezt a korlátozást az OS X korábbi verzióiban, de a Yosemite —ben nem teheti meg biztonsági lyuk megnyitása nélkül-ne tegye ezt, mert bár a TRIM különbséget tesz az írási erősítés csökkentésében és az SSD élettartamának és teljesítményének meghosszabbításában, nem éri meg a pajta méretű biztonsági lyukakat, amelyeket meg kell nyitnia annak érdekében, hogy megkapja.

tehát mindig használja a TRIM – et, ha tudja. Ez sokkal jobbá teszi az SSD szemétgyűjtését. De ha olyan helyzetben találja magát, ahol a berendezés nem áll rendelkezésre, ne essen pánikba—jó, ha van, de ez nem követelmény.

2 rész