Ho deciso che alcune informazioni di base potrebbero essere utili per rendere chiara questa risposta, ma come potete vedere sono andato un po’ OCD quindi potreste voler saltare fino alla fine e poi tornare indietro se necessario. Anche se ne so un po’, non sono un esperto di S.S.D. quindi se qualcuno vede un errore EDIT :).
Informazioni di base:
Che cos'è un S.S.D.?:
Un S.S.D. o solid state drive è un dispositivo di memorizzazione senza parti mobili. Il termine S.S.D. è spesso inteso per riferirsi specificamente alle unità a stato solido basate su nand-flash destinate ad agire come alternativa al disco rigido, ma in realtà sono solo una forma di S.S.D., e nemmeno la più popolare. Il tipo più popolare di S.S.D. è il supporto rimovibile basato su nand-flash come le chiavette USB (unità flash) e le schede di memoria, anche se raramente si fa riferimento ad esse come S.S.D.. Gli S.S.D. possono anche essere basati su ram, ma la maggior parte delle ram-drive sono generate dal software al contrario dell'hardware fisico.
Perché esistono gli S.S.D. Nand-flash destinati a fungere da alternativa al disco rigido?:
Per far funzionare un sistema operativo e il suo software è necessario un supporto di memorizzazione veloce. È qui che entra in gioco la ram, ma storicamente la ram era costosa e le CPU non potevano indirizzarne grandi quantità. Quando si esegue un sistema operativo o un programma, le porzioni di dati attualmente richieste vengono copiate nella ram, perché il dispositivo di memorizzazione non è abbastanza veloce. Si crea un collo di bottiglia, perché bisogna aspettare che i dati vengano copiati dal dispositivo di memorizzazione lento alla ram. Mentre non tutti gli S.S.D. nand-flash ricevono prestazioni migliori rispetto al più tradizionale disco rigido, quelli che lo fanno aiutano a ridurre il collo di bottiglia dando tempi di accesso più veloci, velocità di lettura e di scrittura.
Che cos'è Nand-flash?:
La memoria flash è un mezzo di memorizzazione che utilizza l'elettricità piuttosto che il magnetismo per memorizzare i dati. Nand-flash è una memoria flash che utilizza un gateway NAND. A differenza di A nor-flash che è ad accesso casuale, nand-flash è ad accesso sequenziale.
Come memorizzano i dati le S.S.D. Nand-flash?:
La memoria Nand-flash è composta da blocchi, questi blocchi sono divisi in celle, le celle contengono pagine. A differenza di un disco rigido che utilizza il magnetismo per memorizzare i dati, i supporti flash utilizzano l'elettricità, per questo motivo i dati non possono essere sovrascritti; i dati devono essere cancellati per poter riutilizzare lo spazio. Il dispositivo non può cancellare pagine individuali; la cancellazione deve avvenire a livello di blocco. Poiché i dati non possono essere scritti in un blocco che è già usato (anche se non tutte le pagine in esso lo sono) l'intero blocco deve essere prima cancellato, e poi il blocco ora vuoto può avere dati scritti nelle sue pagine. Il problema è che si perderebbero tutti i dati già presenti in quelle pagine, compresi quelli che non si vogliono scartare! Per prevenire questo i dati esistenti da conservare devono essere copiati da qualche altra parte prima di eseguire la cancellazione del blocco. Questa procedura di copia non viene eseguita dal sistema operativo del computer, ma viene eseguita a livello di dispositivo da una funzione nota come garbage collection.
Sui dischi rigidi viene usata una piastra magnetica per memorizzare i dati. Molto simile ai dischi in vinile, il piatto ha delle tracce, e queste tracce sono divise in sezioni chiamate settori. Un settore può contenere una certa quantità di dati (tipicamente 512 byte ma alcuni più recenti sono 4KB). Quando si applica un filesystem i settori sono raggruppati in cluster (basati su una dimensione specificata da voi, chiamata dimensione di allocazione o dimensione del cluster), e poi i file sono scritti attraverso i cluster. È anche possibile dividere un settore per fare cluster più piccoli della dimensione del settore. Lo spazio inutilizzato in un cluster dopo che un file è stato scritto attraverso un cluster (o diversi) non è utilizzabile, il prossimo file inizia in un nuovo cluster. Per evitare un sacco di spazio inutilizzabile la gente di solito usa cluster di dimensioni più piccole, ma questo può diminuire le prestazioni quando si scrivono file di grandi dimensioni. Le S.S.D. Nand-flash non hanno una piastra magnetica, usano l'elettricità che passa attraverso i blocchi di memoria. Un blocco è fatto di celle che contengono pagine. Le pagine hanno una capacità X (di solito 4 KB), e quindi il numero di pagine determinerà la capacità di un blocco (di solito 512 KB). Sugli SSD una pagina equivale al settore su un disco rigido, perché entrambi rappresentano la più piccola divisione di memoria.
Che cos'è il Wear Leveling:
I blocchi di memoria Nand-flash possono essere scritti e cancellati un numero limitato di volte (il loro ciclo di vita). Per evitare che il drive soffra di una riduzione della capacità (blocchi morti) ha senso consumare i blocchi nel modo più uniforme possibile. Il ciclo di vita limitato è anche la ragione principale per cui molte persone suggeriscono di non avere un file di pagina o una partizione di swap nel sistema operativo se si utilizza un S.S.D. basato su Nand-flash (anche se le velocità di trasferimento dati dal dispositivo alla ram sono anche un fattore importante in questo suggerimento).
Che cos'è l'over provisioning?:
L'over provisioning definisce la differenza tra quanto spazio libero c'è, rispetto a quanto sembra esserci. I dispositivi di archiviazione basati su Nand-flash sostengono di essere più piccolo di quello che sono, in modo che ci siano sicuramente dei blocchi vuoti da usare per lo smaltimento dei rifiuti. C'è un secondo tipo di over provisioning chiamato over provisioning dinamico che si riferisce semplicemente allo spazio libero conosciuto all'interno dello spazio libero mostrato. Ci sono due tipi di over provisioning dinamico: a livello di sistema operativo e a livello di controller dell'unità. A livello di sistema operativo Trim può essere usato per liberare blocchi che possono essere scritti immediatamente. A livello di controller può essere utilizzato spazio su disco non allocato (non partizionato, nessun filesystem). Avere più blocchi liberi aiuta a mantenere il disco al massimo delle prestazioni, perché può scrivere immediatamente. Aumenta anche la probabilità di avere blocchi posizionati in modo sequenziale, il che riduce i tempi di accesso perché le S.S.D. Nand-flash utilizzano l'accesso sequenziale per leggere e scrivere i dati.
Che cos'è l'amplificazione di scrittura?:
Poiché i supporti Nand-flash richiedono che un blocco venga cancellato prima di poter essere scritto, qualsiasi dato all'interno del blocco che non viene cancellato deve essere copiato in un nuovo blocco tramite smaltimento dei rifiuti. Queste scritture aggiuntive sono chiamate amplificazione di scrittura.
Che cos'è il Trim.?:
I sistemi operativi sono costruiti con hard disk tradizionali in mente. Ricorda che un disco rigido tradizionale può sovrascrivere direttamente i dati. Quando si cancella un file il sistema operativo lo segna come cancellato (va bene sovrascrivere), ma i dati sono ancora lì fino a quando non avviene un'operazione di scrittura. Sui S.S.D. basati su Nand-flash questo è un problema, perché i dati devono prima essere cancellati. La cancellazione avviene a livello di blocco, quindi ci possono essere dati aggiuntivi che non vengono cancellati. Lo smaltimento della spazzatura copia tutti i dati che non sono stati cancellati in blocchi vuoti, e poi i blocchi in questione possono essere cancellati. Tutto questo richiede tempo, e causa scritture non necessarie (amplificazione di scrittura)! Per aggirare questo problema è stata creata una caratteristica chiamata Trim. Trim dà al sistema operativo il potere di dire all’S.S.D. di cancellare blocchi con pagine contenenti dati che il sistema operativo ha marcato come cancellati durante i periodi di tempo in cui non si sta richiedendo un'operazione di scrittura lì. La garbage collection fa il suo lavoro, e come risultato i blocchi vengono liberati in modo che le scritture possano possibilmente avvenire su blocchi che non hanno bisogno di essere cancellati prima, il che rende il processo più veloce, e aiuta a ridurre al minimo l'amplificazione della scrittura. Questo non è fatto su base file; Trim usa l'indirizzamento logico dei blocchi. L'L.B.A. specifica quali settori (pagine) cancellare, e la cancellazione avviene a livello di blocco.
La risposta alla tua domanda “Svantaggi del partizionamento di un SSD?
Ram Based S.S.D.s:
Non c'è assolutamente nessuno svantaggio perché sono ad accesso casuale!
Nand-flash Based S.S.D.s:
Gli unici svantaggi che mi vengono in mente sono:
Il livellamento dell'usura non avrà tanto spazio libero con cui giocare, perché le operazioni di scrittura saranno distribuite su uno spazio più piccolo, quindi si "potrebbe”, ma non necessariamente si consumerà quella parte dell'unità più velocemente di quanto si farebbe se l'intera unità fosse una singola partizione, a meno che non si esegua un'usura equivalente sulle partizioni aggiuntive (es: un dual boot).
Come i dischi rigidi le S.S.D. nand-flash sono ad accesso sequenziale quindi qualsiasi dato che scrivete/leggete dalle partizioni aggiuntive sarà più lontano di quanto “potrebbe” essere se fosse stato scritto in una singola partizione, perché le persone di solito lasciano spazio libero nelle loro partizioni. Questo aumenterà i tempi di accesso per i dati memorizzati nelle partizioni aggiuntive.
Meno spazio totale aumenta la probabilità di scrivere file frammentati, e mentre l'impatto sulle prestazioni è piccolo, tenete a mente che è generalmente considerato una cattiva idea deframmentare un S.S.D. nand-flash, perché consumerà l'unità. Naturalmente, a seconda del filesystem che si sta utilizzando, alcuni risultano in quantità estremamente basse di frammentazione, perché sono progettati per scrivere i file nel loro insieme, quando possibile, piuttosto che scaricarli dappertutto per creare velocità di scrittura più elevate.
Direi che va bene avere più partizioni, ma il livellamento dell'usura potrebbe essere una preoccupazione se avete alcune partizioni che ricevono molta attività di scrittura e altre che ne ricevono poca. Se non partizionate lo spazio che non pensate di usare, e invece lo lasciate per l'over provisioning dinamico, potreste ricevere un aumento delle prestazioni perché sarà più facile liberare i blocchi e scrivere dati sequenziali. Tuttavia non c'è alcuna garauntee che lo spazio di over provisioning sarà necessario, il che ci riporta al punto #1 sul wear leveling.
Alcune altre persone in questo thread hanno portato la discussione su come il partizionamento influenzerà i contributi di Trim all'over provisioning dinamico. Per quanto ne so, TRIM è usato per indicare i settori (pagine) che hanno dati segnalati per la cancellazione, e quindi lo smaltimento dei rifiuti può cancellare liberamente quei blocchi. Questo spazio libero agisce come over provisioning dinamico solo all'interno di QUELLA partizione, perché quei settori sono parte di cluster che viene usato dal filesystem di quella partizione; le altre partizioni hanno i loro filesystem. Tuttavia potrei sbagliarmi completamente su questo, poiché l'intera idea dell'over provisioning è un po’ poco chiara per me, dato che i dati saranno scritti in posti che non hanno nemmeno un filesystem o che non appaiono nella capacità delle unità. Questo mi fa chiedere se forse lo spazio di over provisioning è usato su base temporanea prima di un'operazione finale di scrittura optomizzata su blocchi all'interno di un filesystem? Naturalmente i contributi di Trim all'over provisioning dinamico all'interno del filesystem non sarebbero temporanei poiché potrebbero essere scritti direttamente poiché sono già nello spazio utilizzabile. Questa è la mia teoria, almeno. Forse la mia comprensione dei filesystem è sbagliata? Non sono stato in grado di trovare alcuna risorsa che vada in dettaglio su questo.