Database transazionali
RAID-5 è relativamente lento da scrivere poiché il controller deve caricare abbastanza dati per ricalcolare la parità su una scrittura. Le operazioni di scrittura comporteranno almeno quattro operazioni su disco:
Lettura nel blocco di parità
Lettura nel vecchio blocco (supponendo che non sia già nella cache) per XOR il valore con il blocco di parità.
Scrittura del nuovo blocco di parità (vecchio blocco di parità XOR vecchio blocco di dati XOR nuovo blocco di dati)
Scrittura del nuovo blocco dati.
Se il sistema non utilizza la memorizzazione nella cache del write-back, significa che tutte queste opration si trovano sul percorso critico per il completamento dell'I / O. Spesso, questo è il caso delle scritture di database, infatti Microsoft (ad esempio) ha un programma di certificazione per apparecchiature SAN da utilizzare con il server SQL che richiede ai fornitori di garantire questo comportamento. A volte le apparecchiature RAID-5 precedenti non utilizzavano questa ottimizzazione e dovevano ricalcolare la parità da tutta la striscia.
RAID-10 ha un mirror per ogni singola unità e non è necessario leggere dati aggiuntivi per calcolare la parità. Ciò significa che le scritture richiedono molto meno I / O fisici.
RAID-50 si trova da qualche parte nel mezzo, con il volume suddiviso in più volumi RAID-5, che a loro volta sono a strisce. Su un RAID-50 composto da gruppi con striping in uno schema 3 + 1, una scrittura genera al massimo tre richieste I / O su disco aggiuntive. Se ti senti così incline puoi visualizzare RAID-5 e RAID-10 come casi speciali di RAID-50. RAID-50 viene utilizzato principalmente per fornire grandi volumi su molti dischi fisici
Esistono anche altri schemi di parità come RAID-6 (uno schema di parità con due dischi ridondanti per set), i dischi moderni sono abbastanza grandi da consentire al rebulding di un array di impiegare un tempo piuttosto lungo - abbastanza a lungo da rischiare un errore del secondo disco durante la ricostruzione è abbastanza significativa. RAID-6 mitiga questo rischio disponendo di un secondo disco di parità, che richiede tre errori del disco per causare la perdita di dati. Un trucco simile agli schemi RAID-50 può essere utilizzato per creare array RAID-60.
Infine, una singola coppia di mirroring (nota come RAID-1) può fornire ridondanza e prestazioni abbastanza buone per alcune attività. In particolare, probabilmente troverai che RAID-1 ti offre un throughput sufficiente per un bel po 'di traffico di log del database. Maggiori informazioni su questo sotto.
Se si dispone di un carico di lavoro pesante in scrittura, probabilmente si otterrà un miglioramento delle prestazioni da un volume RAID-10. Questa può essere una vittoria in quanto probabilmente puoi ottenere il throughput richiesto da un numero inferiore di dischi fisici, supponendo che i dischi abbiano abbastanza spazio). Alcuni elementi come i registri o le aree temporali su un server di database dovrebbero trovarsi su volumi RAID-1 o RAID-10, poiché ricevono molto traffico di scrittura.
logs
I volumi di registro sono caratterizzati da un modello di accesso ai dati prevalentemente sequenziale e sono essenzialmente un buffer ad anello costituito da comandi lungo le righe di "scrivere questi dati in questo blocco". Vengono scritti come produttori dal motore DBMS principale ed elaborati come conumer dalla funzione di lettura log. Una singola coppia con mirroring gestirà in realtà un bel po 'di traffico di log.
Sistemi e file server pesanti
Su un sistema pesante come un data warehouse, potresti voler utilizzare uno o più volumi RAID-5. Su un file server, gli accessi al disco saranno effettuati in gran parte su un intero file, quindi le scritture probabilmente scriveranno la maggior parte dei blocchi che compongono comunque il blocco di parità. In questo caso il peggioramento delle prestazioni per RAID-5 sarà più leggero.
In passato il risparmio sui costi sul disco potrebbe essere stato significativo, ma ora è meno probabile che sia un problema.
Cache di riscrittura e RAID-5
Su una SAN o su un controller RAID interno con una cache alimentata a batteria, è possibile abilitare la memorizzazione nella cache "write-back". Questa cache scrive e restituisce il controllo all'applicazione. L'I / O viene segnalato dal controller come completato. Tuttavia, non necessariamente scrive immediatamente i dati sul disco. Questa funzione consente di ottimizzare sostanzialmente le operazioni di lettura / scrittura della parità RAID-5 e può attenuare la penalità delle prestazioni di scrittura per i volumi RAID-5x.
Tuttavia, ciò comporta ancora un piccolo rischio di problemi di integrità dei dati. Al sistema host è stato detto che questa scrittura è stata completata quando in realtà non è così. È possibile che un guasto hardware crei incoerenze tra i volumi (diciamo) e i volumi di dati su un server di database. Per questo motivo, la memorizzazione nella cache del write-back non è consigliata per i sistemi transazionali, sebbene possa essere una vittoria delle prestazioni per qualcosa come un processo ETL.
Sommario
Al giorno d'oggi lo spazio su disco è così economico che i sistemi transazionali dovrebbero probabilmente utilizzare RAID-1 o RAID-10 per i volumi di registro e RAID-10 per i volumi di dati. È probabile che la dimensione del disco fisico sia molto più grande del database e RAID-10 consentirà una maggiore velocità di scrittura per lo stesso numero di dischi, riducendo potenzialmente il numero di volumi del disco necessari per supportare il sistema.
Su qualcosa come un data warehouse è ancora possibile masticare spazio con tabelle dei fatti di grandi dimensioni e fortemente indicizzate in modo da ottenere una piccola vincita con volumi di dati RAID-5 o RAID-50. Tuttavia, i registri e tempdb devono comunque essere collocati su un volume RAID-10 poiché probabilmente avranno molto lavoro durante l'elaborazione ETL. Tuttavia, è probabile che il risparmio sui costi del disco sia piuttosto ridotto.