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