Quest’articolo nasce da dovute considerazioni elucubrate nel corso di ormai oltre 10 anni di sistemistica spinta su server Linux.
La scintilla che ha dato fuoco alle polveri è stata il sorgere di una seria problematica avvenuta nella sede di un nostro cliente che mi ha fatto trarre finalmente le giuste conclusioni su un argomento molto importante e molto discusso, ovvero il confronto tra RAID hardware e RAID software.
Il termine RAID sta per Redundant Array of Independent Disks.
L’idea di base dietro al RAID è quella di combinare più dischi in un array che superi le prestazioni di un disco unico, grande e costoso. Questo array di dischi viene visto dal sistema operativo come un unico dispositivo.
Non ci addentreremo in una spiegazione esaustiva sulle varie tipologie di RAID, evitando di addentrarci sui pregi e difetti di RAID0, RAID1, RAID5 e RAID10, ci accingeremo soltanto a menzionare una tipologia di RAID molto in voga in ambiti di aziende di piccole (ma anche grandi) dimensioni, ovvero il RAID 1.
RAID1 è una tipologia di RAID definita anche mirroring, dove il dato scritto in una unità disco, viene duplicato in modo speculare sull’altra unità disco identica all’altra.
Il vantaggio di questa tecnologia è quella di garantire una duplicazione dei dati tale da permettere nonostante la rottura di un disco l’operatività del server, nonchè la rimozione del disco difettoso, la sostituzione e il riallineamento del nuovo disco nell’array.
Esistono sostanzialmente 2 modi di mettere in funzione un array RAID su Linux : Hardware o Software.
RAID Hardware
Si intende un Array RAID Hardware, una coppia di unità disco, controllate da un CONTROLLER fisico.
Le soluzioni hardware gestiscono il sottosistema RAID indipendentemente dall’host e presentano all’host un singolo disco per array.
Un sistema RAID esterno sposta tutta “l’intelligenza” gestita dal RAID in un controller situato nel sottosistema del disco esterno. Tutto il sottosistema è collegato a un calcolatore tramite un normale controller RAID e compare come un singolo disco.
Essi normalmente garantiscono operazioni molto utili per la Business Continuity come l’hot-swap (rimozione a caldo di un disco), e una velocità di trasferimento dati molto elevata completamente a carico del controller.
Vengono normalmente consigliati per ogni tipo di RAID e sono a “furor di popolo” preferibili ad un RAID software.
Successivamente vedremo che questi vantaggi hanno un costo (oltre ai circa 300€ del prezzo di un buon controller come quelli della 3WARE ad esempio).
RAID Software
Il RAID Software implementa i vari livelli di RAID nel codice del kernel riguardante la gestione del disco (block device). Offre inoltre la soluzione in assoluto meno costosa: non sono richiesti costosi controller dedicati o chassis hot-swap, e il RAID software funziona sia con dischi IDE meno costosi sia con dischi SCSI, sia con dischi SATA e successivi.
Con le CPU dell’ultima generazione, le prestazioni di un RAID software possono eccellere quelle di un RAID hardware.
Per RAID software in ambiente Linux, si intende all’unanimità il driver MD del kernel Linux.
Essa è una soluzione RAID Software completamente indipendente dall’hardware, di eccelsa stabilità, con una gestione ad-hoc tramite semplici comandi shell presenti nel pacchetto mdtools.
Quale soluzione utilizzare ?
Qualora il vostro problema non sia prettamente di tipo economico in cui sareste per cause di forza maggiore a scegliere un RAID Software, vorremmo discutere l’altra opzione disponibile, ovvero quella di installare un controller RAID Hardware.
Vi serve davvero in fondo ? Cosa vi da in più di tangibile rispetto ad un RAID Software ?
Quante cose non vi sono mai state dette in merito sulla verità della battaglia Raid Hardware VS Raid Software ?
E’ giunto il momento di scoprirlo.
Alcuni fatti sorprendenti sul RAID Hardware e RAID Software.
1. Esiste il 100% di probabilità che il tuo volume RAID si guasterà.
Partire con questa mentalità (che aumenta col trascorrere del tempo trasformandosi da possibilità in certezza), vi metterà nella condizione di fare il giusto affidamento sulle tecnologie RAID per quello che sono, ma sopratutto quello che non sono.
Un RAID non è un backup, avere un sistema RAID non vi proteggerà da cancellazioni, modifiche, attacchi hacker o rotture disco. I backup vanno fatti esternamente a prescindere dal backup o meno e dell’eventuale eccesso di fiducia riposto in esso.
Come avete pianificato il disaster recovery ?
2. Il RAID software è quasi sempre una scelta migliore rispetto ad un RAID hardware.
Il RAID software ha fatto notevoli passi da gigante negli ultimi anni (a partire dal 2012), divenendo un prodotto qualitativamente eccelso.
Il RAID hardware ha invece ben 3 punti chiave a suo sfavore:
Primo: Il costo. Sicuramente non proibitivo ma comunque un buon deterrente alle piccole aziende.
Secondo : Il controller RAID. Se lui si rompe, il volume RAID smette di funzionare. Il controller è un punto di rottura singolo.
Terzo : se la scheda RAID si rompe, avrete bisogno di rimpiazzarla con un modello identico per ripristinare il volume RAID e i relativi dati.
In parole povere, il RAID software non costa nulla (se non la briga di configurarlo) e se il controller del disco sulla motherboard si guastasse (o anche l’intera scheda madre), basterebbe semplicemente rimuovere i dischi, spostarli su un’altra macchina per avere un sistema perfettamente funzionante.
E’ anche vero che un RAID hardware è più veloce di un RAID software, ma la differenza non è sostanziale, e la flessibilità e la stabilità del RAID software mette in secondo piano qualche megabyte di velocità in più del RAID hardware.
L’unica scelta sensata per un RAID hardware su Linux è quella di esigere indiscutibilmente il massimo delle prestazioni di I/O su disco. Con i nuovi dischi SSD che stanno entrando prepotentemente anche nel mercato Server, vien da chiedersi ancora una volta in più se davvero avete reale bisogno di tutta questa velocità, o se due dischi SSD in RAID1 software possano in qualche modo soddisfare anche l’utente più esigente.
In rete ci sono molte letture e benchmark sulla comparazione tra raid hardware e software, ma la maggior parte di essi non sono aggiornati ed effettivamente dal 2012 ormai possiamo disporre anche a livello software di caratteristiche fino a poco tempo fa riservate solo a soluzioni hardware.
- Hot swapping col RAID software. SATA 3G e SATA 6G rendono questo possibile. Se un disco si rompe, si può rimuovere a caldo senza downtime e interruzioni servizio.
- Il RAID software consuma una piccolissima fetta di potenza CPU. In test reali eseguiti su Debian, CentOS, RedHat, questa piccolissima fetta ammonta ad appena il 2% fino al 5% in situazioni di elevato traffico. Su sistemi moderni multicore, l’impatto sulle prestazioni è praticamente nullo.
- Il RAID software lavora perfettamente con i dischi SSD di ultima generazione e con il loro sistema di caching. I dati più letti vengono migrati su una cache superveloce.
- Il RAID software supporta appieno volumi di dimensioni variabili che possono essere estesi aggiungendo nuovi dischi. (Discorso valido sopratutto per ZFS, ma anche altri come LVM vanno bene lo stesso).
3. Alcune “schede RAID” non sono veri RAID hardware ma fake-raid.
Negli ultimi anni molti controller SATA (spesso inclusi direttamente nelle schede madri) hanno dichiarato di offrire RAID hardware. In realtà sono dei semplici controller disco a cui viene implementato un RAID software a livello BIOS.
Nessun processore dedicato al RAID, nessun vantaggio aggiunto a quello di un RAID software su Linux.
Come si riconoscono questi controller e queste schede madri ? Ovviamente dal prezzo.
Una scheda venduta a 50€ non potrà sicuramente un vero RAID hardware considerando che un prodotto buono (ma non eccelso) della 3WARE nonlo si trova al di sotto dei 300€.
Oltretutto queste schede solitamente offrono supporto e funzionalità solamente a sistemi operativi Microsoft Windows.
Uno sguardo alle realtà aziendali.
Per fare un paragone, un server di fascia alta corredata da un controller RAID harware anch’esso di fascia alta, è un po’ come una Ferrari. Va bene fare un grosso investimento iniziale per acquistarla, ma bisogna essere altrettanto lungimiranti di conoscere i costi di manutenzione e il costo di riparazione in caso di guasti e rotture.
Cosa succede se si guasta un server del genere ? Esiste in azienda un server per una sostituzione immediata ? E se si guasta un controller, ne avete subito uno pronto per un ripristino “immediato” della produttività aziendale ?
In molte piccole e medie realtà a volte capita persino di non avere a disposizioni nemmeno dischi di spare (di riserva) per sostituire un eventuale disco danneggiato, figuriamoci altro.
Se pensate pertanto di volere una vita facile, in cui la sicurezza dei dati è prioritaria al piccolo incremento di prestazioni che un controller RAID hardware può offrirvi, scegliete pure con serenità una soluzione di RAID software su Linux. Linux è decisamente maturo per dare il massimo ad un costo minimo, e vi metterà al riparo da eventuali rischi che non siete ancora disposti a correre e a sostenere economicamente.
Considerate inoltre la frequenza di rottura di un controller RAID hardware. La foto qui sotto è stata scattata durante la scrittura di questo post ed è la testimonianza di un server HP Proliant bello costoso che dopo la rottura del controller RAID ha iniziato a scrivere dati RANDOM sulle due unità disco rendendo entrambi i volumi praticamente inutilizzabili. Backup ripristinato su un server Linux con RAID1 software !