Petr Rehor wrote:
g_delete_data posila filesystem kdyz maze blok

Popora ve filesystemech je nulova.

Toho jsem se obaval.

Jinymi slovy, fakticka podpora TRIM je nulova.

To, pravda, neznamena, ze SSD na FreeBSD pouzit nelze. Znamena to jen tolik, ze neni k dispozici reseni, ktere castecne omezuje "defragmentacni zpomaleni".

Naznacim "vo co go" (zbytek uz si urcite vyGooglite). Stranka na SSD disku je typicky daleko vetsi nez 512B sektor na beznem disku. Typicka velikost stranky na SSD je 4kB. 512B sektor viditelny zvenku je emulovany. A co hur, stranky jsou seskupeny do bloku (128 stranek na blok, napriklad) a mazat lze pouze cely blok. A nez do stranky znovu zapisete, musi se smazat.

To znamena, ze kdyz chcete na disk zapsat 512B, tak zarizeni musi interne precist cely ten 512kB blok (pokud vi, ktere stranky jsou "pouzite" tak staci precist jen ty), pak v nem zmenit tech 512B a cely blok (ledaze vi, ktere stranky jsou pouzite) zase zapsat. No a cteni za zapis nejakou dobu trva.

Pokud obsah disku neni fragmentovany, tak pri cteni 512kB dat budete mit stesti a tech 1024 sektoru po 512B bude za sebou v jednom maximalne dvou blocich SSD disku. Kdyz budete mit smulu, bude kazdy ten sektor v jinem. To ale muze znamenat, ze kvuli zapisu 512kB dat bude treba interne precit a nasledne zapsat 1024 bloku o velikosti 512kB. A to bude trvat jinou dobu, nez kdyz se zapisovalo (cist nebylo vubec treba) blok jeden.

Znalost "ktere stranky jsou pouzite" setri cas - blok se sice stale musi smazat cely, ale cist a zapisovat staci jen pouzite stranky. Ze je stranka pouzita se dozvim tak, ze jsou do ni zapsana data. Ze uz neni rekne prave TRIM.

Ve skutecnosti je to jeste slozitejsi, protoze drazsi a inteligentnejsi SSD disky maji vnitrni logiku, s jejiz pomoci neustale meni vnitrni topologii ktera vubec neni stejna jako "navenek se jevici" (takze nez bude SSD disk cist a mazat cely blok kvuli zapisu jednoho sektoru, to radeji vezme blok zatim zcela nepouzity a sektor zapisi do nej a vnitrne si upravi tabulku mapovani kde ktery sektor lezi, takze pri pozadavku na cteni ho budou cist ze spravneho mista). I na optimalizaci tohoto typu ale potrebuje vedet, ktere sektory nesou uzitecna data a ktere jiz ne.

Takze - TRIM neni vec, jejiz nepodpora cini SSD disky nepouzitelne. Jen se driv a silneji projevi to, co by se nakonec (zejmena pri zaplnenejsim disku) projevi v kazdem pripade ...

Je ovsem treba rict, ze ve vetsine pripadu bude i v degradovanem stavu SSD pro random-read/write operace rychlejsi nez klasicky disk ...

                                                Dan

--
FreeBSD mailing list ([email protected])
http://www.freebsd.cz/listserv/listinfo/users-l

Odpovedet emailem