Nikde se nemohu dočíst, jak je to s životností. Už jsem vyrozumněl, že SSD disky díky "chytrému" řadiči data ukládají tak, aby co nejvíce využily všechny buňky (a nedošlo k přepisování jedné oblasti).
Kolik ale v praxi tyto SSD disky vydrží? Myslím tím počet přepisů (a také nějaký odhad životnosti na roky).
Někde jsem četl článek, ve kterém autor, který se evidentně vyznal, tvrdil, že po dobu morální životnosti SSD (dejme tomu 5 let) vlastně není šance na to, aby došlo k jeho zničení, právě díky překládání adres bloků. Jde o to, že se těžko udělá takový zátěžový test, který by skutečně stále zapisoval do těch stejných buněk - řadič to nepovolí a zápisy rozloží. Takže jedna z možností je přepisovat celý SSD, ovšem to trvá poměrně dlouho a oněch garantovaných 100 tisíc - 1 milion přepisů se skoro ani nestihne :-)
Problem je, ze obvykle wear-levelling algoritmy nerozkladaji zapisy pres cely disk, ale jen pres jakesi relativne male clustery. Takze pokud budu zapisovat porad dokola par blizkych sektoru na flashce, tak se rovnomerne opotrebuji sektory z toho jednoho clusteru.
No soukrome jsem si tento test delal. Vzal jsem novou 128MB flashku (FAT) a proste jsem ji celou naplnil a zase smazal. A to delal rekurzivne a pocital. No dostal jsem se na pouhych 30000 zapisu. Pokud bych i vymaz bral jako zapis - ale predpokladam, ze se zapisuje opravdu pouze FAT tabulka (zkusenejsi me opravte). Tak je to pouhych 60000!
Podle mě jste ve skutečnosti udělal mnohokrát víc operací výmazu, vše na jednom místě - každá změna v souboru se dřív nebo později promítne 1) do FAT tabulky (prodloužení, zkrácení, realokace clusterů) 2) do místa, kde jsou uloženy základní info o souboru, tedy do "souboru" představujícího adresář.
Jak jste přesně dělal to naplnění a smazání? Přidávání dalších a dalších souborů, zvětšování jednoho souboru? FAT je (nejenom) pro tento typ pamětí prostě to nejhorší řešení :-), možná právě proto se stále používá.
Ještě se malinko doplním, že by skutečný počet zápisů šlo zjistit z logu jádra. To jsem pravda nedělal, ale když jsem třeba na disketu zapisoval více souborů, vždy bylo na konci každého souboru (který se zapisoval v ideálním případě sekvenčně, tj. byl slyšet jen krátký posun hlavy o jednu stopu), tak na konci zápisu každého souboru byl slyšitelný seek hlavy na začátek diskety, tj. na FATku s následným seekem zpátky na místo, kam se zapisoval další soubor nebo jeho část.
Přesný algoritmus, kdy se zapisuje do FAT asi bude záviset na systému - čím delší dobu se čeká, tím větší škoda v případě výpadku proudu a naopak - zápis každé změny znamená často seeky (disky, diskety) či ničení stáje stejných bloků nebo jejich skupin (jak už někdo poznamenal, tak se realokace provádí v menších clusterech, třeba na 1/64 disku).
Dulezita je preci otazka jestli ty soubory byly stejne a stale dokola . Potom podle me se zapis odehraval prave jenom ve FAT ta "datova" cast zustavala stejne tak to prece funguje uz od dosu .
To trošku nechápu. Pokud by byly soubory stejné, tak co by se vlastně změnilo? Přepis souboru beze změny jeho délky - ve FAT se nic nemění, vymazání souboru a jeho nové založení - mění se FAT + mnoho dalších údajů: v tomto případě by se pro každý zapisovaný soubor měnila FAT, takže jeden celý přepis USB by mohl dělat třeba 100x přepis FAT, potom se těm 30 000 zápisům již dá věřit.
btw, jestli je ten USB disk skutečně zničený, dalo by se pls poslat označení paměťového čipu? Třeba by google mohl něco najít, co je to za šmejd :-)
Zajímavá je hlavně tabulka, kterou najdete v sekci "How long have you got before the disk is trashed?"
Jedná se o článek zaměřený především na SSD, u USB disků s FAT je situace trošku horší (aneb pokud můžete - není zapotřebí USB disk používat na cizích počítačích, přeformátujte na lepší souborový systém :-)
Otázkou je který. NTFS, ext2/3/4, jfs, xfs, reiser je všechno +- stejný princip. A JFFS zase nebude oplývat u 32GB flashek rychlostí. A vyplatí se změnit FS, když si to řadič řídí sám?
Asi by to chtělo třeba vyzkoušet, jak se který souborový systém zachová v případě, že uživatel omylem odpojí USB disk při zápisu. Kolegyně takto přišla o data (na FAT) a to tak, že nezafungovala ani záložní FAT. Těžko říct, který systém by vyhrál, osobně jsem to nezkoušel.
"...A vyplatí se změnit FS, když si to řadič řídí sám?"
FS nema s radicem na flashce nic spolecneho. FS muzes pouzit takovy ktery potporuje tvuj OS, popripade OS na jinych pocitacich ke kterym budes flashku pripojovat. Takze jen pro Linux EXT, pro Linux a Win NTFS/FAT. Jak je na tom Mac s podporou FS nevim.
Ale může mít a to hodně. Stačí, jesli má řadiš implementovaný nějaký kruhovej algoritmus, tedy logické bloky nmapuje na fyzické tak, že je sám otáčí. Potom opakovaný zapis na blok 0 povede k reálnému zápisu na 1,2,3... V tomto případku je pak lhostejno, jaký FS se použije. Pokud je flash natolik pitomá, že slepě plní úkoly od hosta, pak si nezaslouží víc než to křemíkový nebe :)