martedì 10 marzo 2009

SSD un po' piu' in dettaglio.

Dopo la prima "infarinata" sugli SSD ecco qualche altro spunto di riflessione sulle problematiche relative all'uso degli SSD.

Uno degli articoli piu' interessanti che ho trovato in rete e' questo scritto da Theodore Ts'o "Should Filesystems Be Optimized for SSD’s?".

Theododore Ts'o ha un curriculum di tutto rispetto e il suo punto di vista e' sicuramente autorevole.

E' certamente possibile togliere un disco magnetico e rimpiazzarlo con un SSD senza preoccuparsi d'altro e puo' anche darsi che l'esperienza finale dell'utente sia comunque soddisfacente, ma questo nulla toglie al fatto che in realta' non si stia affatto usando l'SSD al massimo delle sue potenzialita' o che si stia compromettendo la sua durata massima.

Il fatto e' che per quello che ho capito al momento nessun sistema operativo e' davvero ottimizzato per sfruttare al meglio gli SSD e la cosa non solo non e' ancora in essere, forse non lo sara' per parecchio tempo perche' non essendoci un solo tipo di SSD sul mercato e' ancora lontano il momento in cui tutti gli attori in gioco decideranno che tipo di ottimizzazioni vadano aggiunte agli attuali sistemi.

E a questo si aggiunge un aspetto piu' "filosofico", di cui parla Ts'o nel suo articolo, che concerne i confini tra ottimizzazioni a carico del sistema operativo e quelle a carico del controller dell'SSD.

In un mondo ideale forse la soluzione migliore sarebbe che i sistemi operativi dialogassero con i sistemi di storage attraverso file system ad oggetti, delegando in toto al controller del device ogni tipo di strategia di utilizzo dello stesso.

Oggi si e' invece in una situazione ibrida che porta ad aggiungere ai controller degli SSD accrocchi piuttosto complessi e forse persino "pericolosi" per l'integrita' dei dati. Uno di questi accrocchi e' descritto da Ts'o: per gli SSD e' importante sapere se una certa cella contiene dati validi o dati che si possano sovrascrivere, ma i sistemi operativi per ora non comunicano la cosa in modo diretto al controller tramite ad esempio il comando SATA TRIM (che non e' ancora stato accettato universalmente). Col risultato che i controller SSD piu' evoluti cercano di "scoprire" in modo induttivo quali celle di memoria contengano dati sovrascrivibili, con spreco di risorse di calcolo da parte del controller oltre che con supporto per file system specifici. Inoltre questo significa che sostanzialmente il controller vada a interferire col file system in modo non "autorizzato" causando inconsistenze nel caso in cui il sistema operativo tenti un recupero di dati cancellati per errore.

Tutto questo significa che oggi come oggi e' da scartare l'ipotesi di comperare gli SSD? Direi proprio di no, ma prima di farlo bisogna informarsi bene su quello che si sta comperando, sul tipo di uso che se ne deve fare e via dicendo.

Ad esempio come si puo' ben vedere dal divertente video che ho postato ieri, gli SSD sembrano un'ottima soluzione per realizzare sistemi Raid 0 su desktop/server.

Il bello del Raid 0 con SSD e' che e' molto piu' sicuro del Raid 0 con dischi magnetici. Di fatto tra avere un SSD da 120 GB e due da 60 GB in Raid 0 l'unica differenza e' che la soluzione con 2 dischi in Raid 0 ha prestazioni doppie senza aumentare di una virgola la probabilita' di perdita di dati o di minor durata del disco.
Ecco quindi che gli SSD rispetto ai dischi magnetici diventano davvero interessanti per uso desktop.

A questo punto ci sarebbe da chiedersi come mai qualcuno non pensi di cablare 4 o piu' SSD in un unico device SATA con controller Raid 0 integrato. Anche mettendo 4 SSD MLC entry level si otterrebbero prestazioni da urlo.

Il problema e' che la connessione SATA e' limitata a 3 Gb/s, ovvero 375 MB/s, cosa che implica che si debba avere sistemi con Raid 0 su scheda madre o su scheda PCI (tipo questo anche se col limite di non poter essere usato come driver di boot) perche' gia' oggi con SSD MLC capaci di superare singolarmente la barriera dei 250 MB/s in lettura, metterne 4 in Raid 0 con controller Raid integrato andrebbe a impattare contro il collo di bottiglia dell'interfaccia SATA II (la SATA III da 6 GB/s e' stata annunciata ma ci vorra' ancora un po' prima di vederla sul mercato).

Oltre al fatto che c'e' chi sostiene che usare l'interfaccia SATA per gli SSD sia proprio un errore. Al momento e' cosa necessaria perche' altrimenti sarebbe impossibile (soprattutto sui portatili) rendere accessibile il loro uso (e su desktop se oltre al prezzo gia' alto dell'SSD in se' si dovesse pure aggiungere una scheda PCI dedicata la barriera di ingresso nel mondo SSD sarebbe alzata ulteriormente).

Insomma per sfruttare al meglio gli SSD ci vorrebbe un nuovo protocollo tra file system e controller SSD oltre che una nuova interfaccia verso il bus hardware.

Tutto questo lo vedremo (forse) in futuro, per ora sapendo che ci sono questi limiti ci si puo' comunque divertire con 2 o piu' dischi SSD e controller Raid 0 su scheda madre, ottenendo cosi' prestazioni che in lettura possono andare dai 200 MB/s in su' con spese tutto sommato affrontabili.
E infatti ho appena ordinato un paio di questi tanto per iniziare a giocare con gli SSD senza svenarmi, in attesa che i modelli con taglio maggiore e prestazioni al top subiscano ulteriori cali di prezzo ;-)

[Aggiornamento: ecco un altro prodotto che sfrutta la PCI per poter tirare fuori dagli SSD la massima velocita' in lettura e scrittura.]

Nessun commento:

Posta un commento