Scelte Pratiche di RAID per Array Basati su Dischi Meccanici
Una quantità davvero monumentale di informazioni abbonda in riferimento ai sistemi di storage RAID, esplorando argomenti come rischio, prestazioni, capacità, tendenze, approcci e altro. Sebbene il lavoro su questo argomento sia quasi sconcertante, le informazioni possono essere distillate in una manciata di approcci di storage comuni e pratici che copriranno quasi tutti i casi d'uso. Il mio obiettivo qui è fornire una guida pratica che consenta a un professionista non specializzato in storage di affrontare le decisioni sul RAID in modo pratico e, soprattutto, sicuro.
Ai fini di questa guida assumeremo progetti di storage di non più di venticinque dischi tradizionali (dischi a piatti rotanti, propriamente noti come dischi Winchester). Questi dischi potrebbero essere comunemente SFF (2,5″) o LFF (3,5″), SATA o SAS, consumer o enterprise. Non affronteremo i dischi a stato solido, poiché questi hanno caratteristiche molto diverse e richiedono una guida a sé stante. I sistemi di storage più grandi di circa venticinque dischi non dovrebbero basarsi sulla guida standard, ma approfondire le esigenze specifiche di storage per garantire una pianificazione adeguata.
La guida qui presentata è scritta per sistemi standard nel 2015. Negli ultimi due decenni gli approcci comuni allo storage RAID sono cambiati drasticamente e, sebbene non si preveda che i fattori chiave che influenzano queste decisioni cambieranno in futuro al punto da alterare queste raccomandazioni, è ben possibile che ciò avvenga. Una buona progettazione RAID del 1998 è oggi una pessima progettazione RAID. Il ritmo di cambiamento nel settore è diminuito significativamente da quel momento e queste raccomandazioni sono destinate probabilmente a reggere per moltissimo tempo, molto verosimilmente fino a quando lo storage basato su dischi meccanici non sarà più disponibile o quantomeno diffuso, ma come tutte le cose le previsioni sono soggette a grandi cambiamenti.
In generale utilizziamo quello che viene definito un approccio “One Big Array” (un unico grande array). Si tratta di un singolo array RAID sul quale vengono create tutte le partizioni di sistema e di dati. La necessità o il desiderio di suddividere il nostro storage in più array fisici è oggi in gran parte superato e dovrebbe essere fatto solo in circostanze non generali. Solo in situazioni in cui vengono svolti uno studio attento delle esigenze di storage e un'analisi approfondita dovremmo prendere in considerazione la suddivisione degli array. La suddivisione degli array ha molte più probabilità di causare danni che benefici. Nel dubbio, evita gli array suddivisi. L'obiettivo di questa guida sono regole pratiche generali per consentire a qualsiasi professionista IT di costruire un sistema di storage sicuro e affidabile. Le regole pratiche non coprono e non possono coprire ogni scenario: esistono sempre delle eccezioni. Ma l'idea qui è coprire la stragrande maggioranza dei casi con approcci collaudati, progettati attorno ad apparecchiature, casi d'uso ed esigenze moderni, prestando attenzione a propendere per la sicurezza – quando una scelta è tutt'altro che ideale, è comunque sicura. Nessuna di queste scelte è affatto avventata; nel peggiore dei casi sono eccessivamente conservative.
Il primo scenario che dovremmo considerare è se i tuoi dati non hanno importanza. Questo può sembrare una cosa strana da considerare, ma è uno scenario molto importante. Ci sono molte occasioni in cui i dati salvati su disco sono considerati effimeri e non necessitano di protezione. Questo è comune per dati ricostruibili come lo spazio di lavoro per il rendering, gli spazi di calcolo intermedi o le cache – situazioni in cui spendere denaro per proteggere i dati è uno spreco e sarebbe accettabile semplicemente ricreare i dati persi anziché proteggerli. Potrebbe trattarsi di un caso in cui il tempo di inattività non è un problema e i dati sono statici o quasi e, anziché spendere per ridurre il tempo di inattività, ci preoccupiamo solo di proteggere i dati tramite meccanismi di backup, così che, se un array si guasta, ripristiniamo semplicemente l'array per intero. In questi casi la scelta ovvia è il RAID 0. È molto veloce, molto semplice e fornisce la capacità più conveniente in termini di costi. L'unico svantaggio del RAID 0 è che è fragile e non offre alcuna protezione contro la perdita di dati in caso di guasto di un disco o persino di un URE (che causerebbe una corruzione dei dati allo stesso modo in cui ne è soggetto un disco desktop).
Va notato che un'eccezione all'approccio “One Big Array” che sarebbe comune riguarda i sistemi che utilizzano il RAID 0 per i dati. Ci sarebbe un'ottima argomentazione a favore di un piccolo array di dischi dedicato al sistema operativo e ai dati delle applicazioni, che sarebbe scomodo da reinstallare in caso di perdita dell'array, da mantenere in RAID 1, con l'array dati in RAID 0 separato da esso. In questo modo il recupero potrebbe essere molto rapido, anziché dover ricostruire completamente l'intero sistema da zero invece di ricreare semplicemente i dati.
Supponendo di aver eliminato i casi in cui i dati non richiedono protezione, assumeremo per tutti i casi rimanenti che i dati siano piuttosto importanti e che vogliamo proteggerli a un certo costo. Assumeremo che proteggere i dati così come esistono sullo storage attivo sia importante, generalmente perché vogliamo evitare il tempo di inattività o perché vogliamo garantire l'integrità dei dati, dato che i dati su disco non sono statici e un guasto dell'array costituirebbe anche una perdita di dati. Con questa assunzione proseguiremo.
Se abbiamo un array di soli due dischi la risposta è molto semplice: scegliamo il RAID 1. Non c'è altra opzione a queste dimensioni, quindi non c'è alcuna decisione da prendere. In teoria dovremmo pianificare i nostri array in modo olistico e non dopo aver determinato il numero di dischi; il numero di dischi e il tipo di array scelto andrebbero stabiliti insieme, non i dischi acquistati e poi l'uso determinato sulla base di quel numero arbitrario, ma gli chassis a due dischi sono così comuni che vale la pena menzionarlo come caso.
Allo stesso modo, con un array di quattro dischi l'unica scelta reale da considerare è il RAID 10. Non c'è bisogno di ulteriori valutazioni. Seleziona semplicemente il RAID 10 e prosegui.
Un caso scomodo è un array di tre dischi. È molto, molto raro che si sia limitati a tre dischi, dato che l'unico chassis comune limitato a tre dischi era l'Apple Xserve, e questo è fuori dal mercato da tempo, quindi la necessità di affrontare decisioni riguardanti array a tre dischi dovrebbe essere estremamente improbabile. Nei casi in cui abbiamo tre dischi è spesso meglio cercare una consulenza, ma gli approcci più comuni sono aggiungere un quarto disco e quindi scegliere il RAID 10 oppure, se non è necessaria una capacità superiore a quella di un singolo disco, mettere tutti e tre i dischi in un unico RAID 1 a triplo mirror.
Per tutti gli altri casi, pertanto, abbiamo a che fare con un numero di dischi da cinque a venticinque. Poiché abbiamo eliminato le situazioni in cui si applicherebbero il RAID 0 e il RAID 1, ci ritroviamo con tutti gli scenari comuni che si riducono al RAID 6 e al RAID 10, e questi costituiscono la stragrande maggioranza dei casi. La scelta tra RAID 6 e RAID 10 diventa la sfida più grande che ci troveremo ad affrontare, poiché dobbiamo guardare unicamente alle nostre esigenze “soft” di affidabilità, prestazioni e capacità.
La scelta tra RAID 6 e RAID 10 non dovrebbe essere incredibilmente difficile. Il RAID 10 è ideale per situazioni in cui le priorità sono le prestazioni e la sicurezza. Il RAID 10 ha prestazioni di scrittura molto più veloci ed è sicuro indipendentemente dal tipo di disco utilizzato (dischi consumer a basso costo possono comunque essere estremamente sicuri, anche in array di grandi dimensioni). Il RAID 10 scala bene fino a dimensioni estremamente grandi, molto più grandi di quanto dovrebbe essere implementato seguendo regole pratiche! Il RAID 10 è la più sicura di tutte le scelte: è veloce e sicuro. Gli ovvi svantaggi sono che il RAID 10 ha una capacità di storage inferiore a parità di dischi ed è più costoso su base capacità. Va menzionato che il RAID 10 può utilizzare solo un numero pari di dischi: i dischi vengono aggiunti a coppie.
Il RAID 6 è generalmente sicuro e veloce, ma mai sicuro o veloce quanto il RAID 10. Il RAID 6 soffre in modo specifico delle prestazioni in scrittura, quindi è molto poco adatto a carichi di lavoro come i database e a carichi fortemente misti come quelli dei grandi sistemi di virtualizzazione. Il RAID 6 è conveniente in termini di costi e pone una forte attenzione sulla capacità disponibile rispetto al RAID 10. Quando i budget sono ridotti o le esigenze di capacità prevalgono sulle prestazioni, il RAID 6 è una scelta ideale. Raramente la differenza di sicurezza tra RAID 10 e RAID 6 è motivo di preoccupazione, tranne nei sistemi molto grandi con dischi di classe consumer. Il RAID 6 è soggetto a un rischio aggiuntivo con i dischi di classe consumer da cui il RAID 10 non è interessato, il che potrebbe giustificare una certa preoccupazione riguardo all'affidabilità nei sistemi RAID 6 più grandi, come quelli sopra i circa 40TB quando vengono utilizzati dischi consumer.
Nello spazio delle piccole imprese in particolare, la maggior parte dei sistemi utilizzerà il RAID 10 semplicemente perché gli array raramente devono essere più grandi di quattro dischi. Quando gli array sono più grandi, il RAID 6 è la scelta più comune a causa di budget alquanto ridotti e di una scarsa preoccupazione generale per le prestazioni. Sia il RAID 6 che il RAID 10 sono soluzioni sicure ed efficaci per quasi tutti gli scenari di utilizzo, con il RAID 10 che predomina quando le prestazioni o l'affidabilità estrema sono fondamentali e il RAID 6 che predomina quando il costo e la capacità sono fondamentali. E, naturalmente, quando le esigenze di storage sono altamente particolari o molto grandi, come più grandi di venticinque dischi in un array, ricordati di avvalerti di un consulente di storage, poiché lo scenario può facilmente diventare molto complesso. Lo storage è uno degli ambiti in cui conviene essere particolarmente diligenti, dato che così tante cose dipendono da esso, gli errori sono così facili da commettere e la flessibilità di modificarlo a posteriori è così scarsa.
