Aggreghiamo le notizie italiane sull’Open Source
Author: M0rF3uS
21 Lug
Con oggi parte un maxi how-to diviso in più articoli, che ha come intento quello di spiegare bene cosa è il raid (software/hardware), e come utilizzarlo su Ubuntu…
Inizio col dire che prendo spunto da un articolo di bergs molto semplificato (tra l’altro stamani noto che ha cancellato il mio commento lasciato ieri sera, non capisco [...]
Author: M0rF3uS
21 Lug
Con oggi parte un maxi how-to diviso in più articoli, che ha come intento quello di spiegare bene cosa è il raid (software/hardware), e come utilizzarlo su Ubuntu…
Inizio col dire che prendo spunto da un articolo di bergs molto semplificato (tra l’altro stamani noto che ha cancellato il mio commento lasciato ieri sera, non capisco perchè
bah va beh…), il quale lamenta il fatto che tra guide italiane ed inglesi non ce ne sia una definitiva per ubuntu, cosi ho deciso di crearla io
In questi articoli parleremo di RAID sia software che hardware, di volumi gestiti con LVM o no (solo nel caso di RAID software), mentre, e poi capirete perchè, l’how-to spiegherà solo come installare il RAID software.
Come chi segue da tempo le mie maxi guide oramai saprà, iniziamo con un pò di teoria, prof. mode ON
Iniziamo dicendo che un raid è un array di dischi, dall’acronimo stesso Redundant Array of Independent Disks (”insieme ridondante di dischi indipendenti” ndr.), ed è un sistema che usa tali dischi per garantire la ridondanza dei dati, oppure la divisione del dato per un aumento delle prestazioni.
E’ un sistema, ad oggi, utilizzato praticamente ovunque in ambientazione server, ma anche in ambiente home oramai chiunque ha un computer con almeno due dischi (i portatili un pò meno ma ci sono), e quindi potrebbe essere utile sfruttare il raid a seconda dello scopo che vogliamo raggiungere.
Nel suo utilizzo più semplice il raid permette di combinare più dischi, facendo vedere al sistema un solo disco “virtuale”, e generalmente vengono utilizzati dischi con le stesse capacità/caratteristiche.
Il sistema raid si compone di diversi livelli divisi per categoria:
Livelli raid standard:
Livelli raid ridondanza:
Livelli raid annidati:
Raid proprietari
Curiosità: Il sistema raid è stato inventato da IBM nel 1978, mentre dieci anni più tardi i livelli dall’1 al 5 sono stati ufficialmente definiti da David A. Patterson.
Una delle prima implementazioni del raid è stato il cosiddetto Data Striping, ossia quel metodo che ha lo scopo di aumentare le prestazioni, dividendo il dato in tante parti quante sono i dischi dell’array, riducendo i tempi di latenza per la lettura/scrittura, per ogni disco, più nel dettaglio:
La grandezza della partizione viene chiamata unità di striping, e queste vengono distribuite sui dischi con un algoritmo di round robin (un disco alla volta), quando la dimensione di un dato è più grande dell’unità di striping, questo viene scritto su più dischi, non ci avete capito niente vero? Vediamolo meglio…
Poniamo di avere un unità di striping di 1 Bit, ed un arrai di 8 dischi. Se dobbiamo scrivere un dato di un bit questo verrà scritto solo sul primo disco, un dato di due bit verrà scritto per metà sul primo e per metà sul secondo, uno di 3 bit verrà diviso in 3 parti e scritto su tre dischi, e cosi via fino al dato di 8 bit che verrà scritto su tutti i dischi. Qualora il dato è più grande di 8 bit il giro ricomincia…
Il raid può essere implementato sia con hardware dedicato (raid hardware), che con software adatto su hardware comune (raid software).
Tramite il raid software è il sistema operativo (nei sistemi linux è il kernel a dire la verità), a gestire l’array di dischi attraverso un normale controlle IDE/SATA/SCSI montato sulla macchina. Generalmente questo tipo è leggermente più lento di un raid hardware (ovviamente), ma è molto meno costoso in quanto non costringe all’acquisto di componenti dedicati.
Il raid hardware invece, fa uso di un controller dedicato che può essere una scheda di espansione PCI, oppure un controller integrato nella scheda madre. Questo gestisce i dischi per conto del sistema operativo, ed effettua controlli di parità, necessari per alcuni livelli di raid.
Questa implementazione, oltre ad essere meno onerosa e più facile da gestire lato sistema operativo, permette anche (generalmente), l’hot swapping, ossia la sostituzione “a caldo” dei dischi, cioè mentre il sistema operativo….è operativo
Tutti e due i sistemi invece permettono l’utilizzo di un meccanismo chiamato hot spare, vale a dire l’utilizzo di dischi “di scorta”, che vengono attivati immediatamente nel caso uno o più dischi vadano in failure.
Il sistema RAID0, chiamato anche striping, divide il dato equamente tra due o più dischi, senza nessun controllo di parità. Questo sistema, evidentemente, fornisce un alto rapporto in termini di prestazioni, ma basso in termini di affidabilità, questa infatti è uguale all’affidabilità media dei dischi diviso per il numero di dischi presenti.
Ne consegue che a conti fatti, l’affidabilità media di un sistema a due dischi, è uguale alla metà dell’affidabilità di un disco solo, questo perchè il filesystem è diviso per entrambi i dischi, e quindi quando un disco va in failure il filesystem non può più gestire i dati, è anche vero che spesso questi possono essere recuperati con appositi tool, ma questi quasi sicuramente risulteranno essere corrotti.
Questo sistema è molto utile quando la ridondanza dei dati non è un fattore rilevante, oppure quando il numero di dischi è limitato dal sistema operativo (Windows ad esempio limita le lettere dei dischi a 24…indovinate un pò perchè), ed è quindi necessario condividere i dati con un numero maggiore.
Il sistema Raid 1 prevede la scrittura dei dati in maniera speculare su tutti i dischi dell’array (mirroring).
Sistema molto utilizzato in quanto al giorno d’oggi la garanzia della ridondanza dei dati la fa da padrone.
Di contro bisogna fare attenzione a che dischi vengono utilizzati, in quanto se i dischi non sono uguali in termini di capacità, non verrà utilizzata la capienza massima di tutti e due, ma al massimo quella del più piccolo; se avremo quindi un disco da 100 ed uno da 80 gigabyte, i 20 GB di differenza dal più grosso andranno persi.
Contrariamente al Raid 0, l’affidabilità media del sistema aumenta di un fattore x, rispetto ad un sistema classico ad un disco, dove x sta per il numero di dischi; avremo quindi che un sistema a due dischi avrà affidabilità doppia, con 3 dischi tripla e cosi via…questo proprio grazie alla ridondanza dei dati.
Punto a favore di questa implementazione è anche la versatilità, in quanto è possibile aumentare le prestazioni in fase di lettura, dato che il raid può leggere dal secondo disco se il primo è occupato (ma non ci può scrivere).
Per oggi direi che è abbastanza, con la prssima guida vedremo altre implementazioni del raid più complesse, ma che in definitiva si basano tutte su una specie di combinazione di queste due implementazioni.
Ho deciso di aprire una nuova categoria, chiamata bash…
in questa categoria da oggi in poi verranno pubblicati articoli che hanno come obiettivo quello di far conoscere di più linux a chi magari si avvicina in questo mondo.
Sebbene oramai linux possiede interfaccia grafica, ed in particolare con ubuntu, l’usabilità ha raggiunto livello ottimi; chi è oramai [...]