RAID Redundant Array of Inexpensive Disks Che cos'è Perché si usa Come funziona I tipi (principali) di RAID
Che cos'è il RAID E' uno strato hardware/software che permette di migliorare l'affidabilità o la velocità o tutte e due le caratteristiche dei dischi rigidi Permette far funzionare un computer anche in caso di guasto di un disco senza perdita di dati
Perché si usa... Le normali tecniche di backup non sono sufficienti per il ripristino completo di sistemi funzionanti. il recupero necessita di un sistema di base funzionante che effettui il recupero dall'unità di backup In caso di guasto si potrebbe bloccare un servizio critico per la sicurezza e/o servizi economicamente critici Alle volte serve avere performance non ottenibili con componenti standard od economici
I livelli (principali) di RAID Livello 0 Livello 1 Livello 5 Livello 6, 10, Z, ecc Obsoleti o poco usati: RAID 2/3/4, JBOD
Dati distribuiti su più dischi in “stripe” Velocità di lettura e di scrittura elevate: V * N Nessuno spazio sprecato Alta probabilità di guasto: P1+P2 RAID 0
RAID 1 Dati copiati su più dischi Velocità di lettura identica al singolo disco Ma dimezzato il tempo di latenza Velocità di scrittura identica al singolo disco Dimensione dei dati disponibile dimezzata Bassa capacità di calcolo richiesta al controller (RAID HW) o all'Host (RAID SW)
RAID 5 Usabile con n° dischi =< 3 Alta velocità di lettura/scrittura* circa Vr/Vw=Vr/Vw*(N-1) Poco spazio “perso”: St=(N-1)*Smin CPU intensive per l'Host o il controller
RAID 6, 10, Z RAID 6: RAID 5+1 = due dischi di ridondanza RAID 10: RAID “nested” Minimo 4 dischi RAID Z = RAID 5 + ZFS ovvero RAID 5 + copy on write + atomic commits per ovviare al RAID 5 “write hole”
RAID 2, 3, 4, JBOD RAID 2: granularità a singoli bit, unico sistema che “recupera” gli errori. Poco usato...necessita di numero dischi >=10! RAID 3: disco di parità separato con granularità a byte RAID 4: come il 3 ma a “stripe” JBOD: non proprio RAID ma un modo “stupido” di attaccare insieme i dischi
RAID + LVM LVM non gestisce alcun livello di ridondanza RAID non effettua alcuna gestione dei volumi RAID + LVM = massima flessibilità, performace e affidabilità.
Tipologie di RAID Hardware: controller “intelligenti” o hardware esterno Firmware/Fake/Host based: controller “stupidi” ma con firmware integrato e manutenzione da BIOS; Software: gestione controllata interamente dal SO => con Linux è MOLTO flessibile e potente!
RAID Hardware PRO: Espandibile con facilità Semplice da gestire, trasparente al SO Indipendente dalla CPU dell'host CONTRO: Costoso Non flessibile per la gestione degli spazi Incompatibile tra marche/modelli Utility proprietarie di amministrazione
RAID Firmware/Fake PRO: Economico Compatibile tra diversi SO (per es. in dual boot) Ricostruzione dati semplice e impostabile da bios CONTRO: Formato binario alle volte incompatibile tra schede di marca/modello diverse Gestione dei volumi poco flessibile
RAID Software PRO: Molto economico e funziona con OGNI controller Flessibile per la gestione degli spazi che possono essere suddivisi anche su tipologie di dischi / partizioni totalmente differenti fra loro Compatibile tra diverse piattaforme hardware. Per recuperare i dati basta una “live” CONTRO: Dipendente dalla CPU dell'host (contro?) Non fornisce alcune caratteristiche presenti nell'HW specializzato: hotswap, recover, cache backup, ecc. Difficile da gestire, soprattutto il boot
RAID software: boot Nessun boot manager è in grado di fare il boot da una partizione<>RAID1 Ogni boot manager deve essere replicato su ogni disco del set di avvio in modo opportuno Il kernel deve avere il supporto al RAID sin dalle prime fasi di avvio e deve sapere come è costituito l'array RAID
RAID software: mdadm Lo strumento di amministrazione è unico: mdadm con vari tipi di comandi: --create, --build, --assemble, --monitor, --help..., ecc. Controllo: cat /proc/mdstat, mdadm --detail /dev/md0 Creazione dispositivo: mknod /dev/md0 b 9 0 Creazione unità RAID: mdadm --create /dev/md0 --level=5 -- raid-devices=4 --spare-devices=0 /dev/sdLN Reset: mdadm --zero-superblock /dev/sdLN Oppure (meglio): cat /dev/zero > /dev/sdLN Salva config.: mdadm -Es | grep md0 >mdadm.conf
RAID fake: dmraid Lo strumento di amministrazione è unico per vari tipi di formati binari: dmraid Elenco formati binari supportati: dmraid -l Dispositivi in /dev/mapper/dxxx Controllo stato array: dmraid -ay
Conclusioni 1 Oggigiorno un server DEVE avere un qualche tipo di ridondanza per garantire un sufficiente livello di affidabilità Il RAID software è un sistema economico, sufficientemente completo e semplice Sistemi più complessi e costosi in genere si appoggiano a soluzioni HW/Proprietarie con livelli di affidabilità ancora maggiori In ogni caso il RAID è un MUST!
Conclusioni 2 La scelta tra varie tipologie di RAID dipende dalle applicazioni Quanti soldi ho? A cosa serve? Cosa sono disposto a sacrificare? Come per qualsiasi scelta in campo informatico, non esiste “la soluzione” ma sono molte le opzioni disponibili.
Riferimenti
Marco Ciampa Corso Admin LinuxTrent 2010 Alcuni diritti riservati Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia License Le immagini sui livelli RAID sono tratte da Wikipedia Licenza