I piatti rotanti sono più lenti della RAM. Usiamo la memorizzazione nella cache di letture / scritture per "nascondere" questo fatto.
La cosa utile di scrivere IO è che non richiede che l'IO del disco avvenga immediatamente, a differenza di una lettura, in cui non è possibile restituire i dati all'utente fino a quando la lettura non viene completata sul disco.
In questo modo le scritture funzionano con un limite di tempo morbido - fintanto che la nostra velocità effettiva non supera quella del nostro disco, possiamo nascondere molte delle penalità di prestazione in una cache di scrittura.
E abbiamo bisogno di scrivere cache - i dischi rotanti sono relativamente lenti relativamente. Ma anche i moderni tipi di RAID comportano una penalità significativa per il funzionamento.
Un RAID 6, ad esempio, per completare un IO di scrittura deve:
- Leggi il blocco di aggiornamento
- leggi la parità1
- leggi la parità 2
- scrivi nuovo blocco
- scrivere la parità 1
- scrivi parità 2
Quindi ogni scrittura è in realtà 6 operazioni IO - e in particolare quando si hanno dischi lenti come grandi unità SATA, questo diventa estremamente costoso.
Ma c'è una bella soluzione facile: scrivere coalescing. Se riesci a creare una scrittura a "banda intera" in un buffer, non è necessario leggere la parità dal disco: puoi calcolarla in base a ciò che hai in memoria.
È molto desiderabile farlo, perché allora non hai più l'amplificazione in scrittura. In effetti, puoi finire con una penalità di scrittura inferiore a RAID 1 + 0.
Tener conto di:
Mandrini RAID 6, 8 + 2 - 10.
8 blocchi di dati consecutivi da scrivere: calcolare la parità nella cache e scrivere un blocco su ciascun disco. 10 scritture per 8, significa una penalità di scrittura di 1,25. 10 dischi di RAID 1 + 0 hanno ancora una penalità di scrittura di 2 (perché è necessario scrivere su ciascun submirror). Quindi, in questo scenario, puoi effettivamente fare in modo che RAID 6 funzioni meglio di RAID1 + 0. Nell'uso nel mondo reale, si ottiene un po 'più di un profilo IO misto.
Quindi la cache di scrittura fa un'enorme differenza per le prestazioni percepite dei set RAID - puoi scrivere a velocità RAM e avere una penalità di scrittura bassa - migliorando la tua produttività sostenuta se lo fai.
E se non lo fai, subirai le dolorose prestazioni lente di SATA, ma moltiplicalo per 6 e aggiungi qualche contesa. Il tuo SATA RAID-6 a 10 vie senza cache di scrittura sarebbe un po 'più veloce di una singola unità senza RAID ... ma non di molto.
Si corre un rischio, tuttavia - come si nota - la perdita di potenza significa perdita di dati. È possibile mitigare questo problema mediante cicli di svuotamento della cache, backup della batteria della cache o utilizzo di SSD o di altre cache non volatili.