Átfogó elemzés az SSD-k természetéről

A TRIM-ről bővebben

Vajon a TRIM használata is csökkenti az SSD élettartamát?

Ezen töprengtünk egy darabig. Ha a TRIM csak egy szimpla utasítást takar, akkor valóban ez a helyzet. Tegyük fel, hogy egy blokkon belül egyesével töröljük a lapok tartalmát. Egy TRIM nélküli SSD ugye nem tesz semmit, a törölt lapok szimplán megjelölődnek újraírhatóként, majd amikor ide akar később írni az SSD, akkor a teljes blokkon lefut az olvasás-módosítás-írás "kombináció", de a lényeg, hogy az egyes lapok törlésénél nem használódik a NAND.

Ellenben ha bekapcsoljuk a TRIM-et, akkor a blokkon belül minden laptörlés után komplett blokk olvasás-módosítás-írásra van szükség, ergo elméletben a 128 lapból álló blokk akár 128 db blokkot képes egy írási ciklussal öregbíteni, ha be van kapcsolva a TRIM, ha csak egyenként töröljük a lapokat belőle. Ezt szándékosan nyilván senki nem akarja, de nem tudhatjuk, hogy az operációs rendszer, illetve az SSD-vezérlője mit művel a háttérben.

Tegyük fel, hogy van 128 darab 4 kB-os fájlunk, és ezek pont ráférnek egy blokkra. Kitörlünk egy 4 kB-os fájlt. TRIM nélkül a 4 kB-os terület (lap) felülírhatóvá vált, vagyis a vezérlő megjelölte felülírható területként. Ennek köszönhetően lesz később lassabb az SSD, amikor arra a területre írni szeretnénk, mert a szimpla lapírás helyett először ki kell törölni a felülírható lapot. A TRIM használata mellett viszont kiolvasódik a komplett blokk, mind a 128 db fájl, a cache-en belül módosul a blokk (kitörlődik belőle a 4 KB-os fájl), aztán újraíródik a blokk, vagy méginkább egy másik (wear leveling), már ha van rá lehetőség.

Ezek alapján a TRIM csökkenti az SSD élettartamát, azonban egyes források szerint a TRIM-et nem egy szimpla parancsként kell értelmeznünk, hanem több funkció gyűjtőneve, melyek a sebesség maximális szinten tartásán felül az érvényes és érvénytelen adatok kategorizálását is elvégzik, és így nem csökkentik az élettartamot. Hogy pontosan mi az igazság, azt nem sikerült kiderítenünk...

Mi a helyzet akkor, ha az SSD nem támogatja a TRIM-et?

A piacon kaphatóak TRIM-et nem támogató SSD-k is. Ezek vagy az első generációs, 2008-ban és azelőtt megjelent típusok, vagy a nemrég bemutatott Toshiba-vezérlő köré épülnek (a vezérlőkről később), amelyek a TRIM helyett/mellett (egyelőre nem tudjuk biztosan) egy belső optimalizációt tartalmazó algoritmust használnak, és a TRIM-től függetlenül képesek a maximumon tartani az SSD írási sebességét.


Intel SSD Toolbox

Az a helyzet, hogy a TRIM-et az SSD-n kívül az operációs rendszernek, sőt még az alaplapi drivernek is támogatnia kell. A TRIM parancsot ugyanis az operációs rendszer küldi el a SATA-meghajtóprogram felé, majd az továbbítja az SSD felé. Jelenleg csak a Windows 7 és a Windows 2008 R2, illetve a Linux 2.6.33-as kernele támogatja. A Windows Vista és Windows XP tulajoknak, illetve a korábban kiadott kernelre épülő Linuxot használóknak más megoldást kell találniuk. Erre hivatottak a különböző "garbage collector" (GC), azaz szemétgyűjtőként ismert programok, mint amilyen az Intel-féle SSD Toolbox vagy az Indilinx-vezérlős SSD-khez írt wiper, illetve a Linuxos wiper.sh, az erre épülő DiskTRIM és a hdparm. A GC-programok általában az SSD felülírhatóként megjelölt területeit írják teli FF-fel (255-ös érték), így létrehoznak egy akkora fájlt amekkora az SSD-n található szabad terület, majd letörlik azt, így gyakorlatilag megtisztítják az SSD "felületét". Ez a megoldás lassú és körülményes, mert a programot manuálisan kell futtatni, de még mindig jobb, mint a semmi.


Indilinx Wiper Tool

Egy TRIM-et támogató SSD egy TRIM-et támogató operációs rendszer alatt a gyorsformázással is "megtisztítható", persze ez értelemszerűen letöröl minden más adatot is, tehát nem lesz népszerű a használata.

A cikk még nem ért véget, kérlek, lapozz!

Azóta történt

Előzmények

Hirdetés