FreeBSD na SSD disku

Dan Lukes dan at obluda.cz
Sat Mar 6 14:40:35 CET 2010


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



More information about the Users-l mailing list