Sophie

Sophie

distrib > Mandriva > 9.1 > i586 > by-pkgid > f1098342ec4a2b28475e34123ce17201 > files > 1152

howto-html-it-9.1-0.5mdk.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
 <TITLE>Software-RAID HOWTO: Considerazioni su RAID</TITLE>
 <LINK HREF="Software-RAID-0.4x-HOWTO-3.html" REL=next>
 <LINK HREF="Software-RAID-0.4x-HOWTO-1.html" REL=previous>
 <LINK HREF="Software-RAID-0.4x-HOWTO.html#toc2" REL=contents>
</HEAD>
<BODY>
<A HREF="Software-RAID-0.4x-HOWTO-3.html">Avanti</A>
<A HREF="Software-RAID-0.4x-HOWTO-1.html">Indietro</A>
<A HREF="Software-RAID-0.4x-HOWTO.html#toc2">Indice</A>
<HR>
<H2><A NAME="s2">2. Considerazioni su RAID</A></H2>

<P>
<OL>
<LI><B>D</B>:
Cosa &egrave; RAID? Perch&eacute; mai dovrei usarlo?
<BLOCKQUOTE>
<B>R</B>:
RAID &egrave; una maniera per combinare diversi disk drive in una
singola unit&agrave;, in modo da aumentare le prestazioni e/o
l'affidabilit&agrave;. Vi sono diversi tipi e implementazioni di RAID,
ognuna con i suoi vantaggi e svantaggi. Per esempio, mettendo una
copia degli stessi dati su due dischi (cosa chiamata <B>disk
mirroring</B>, o RAID livello 1), le prestazioni in lettura
possono essere migliorate leggendo alternativamente da ogni
disco nel sistema di mirror. In media ogni disco &egrave; meno occupato
poich&eacute; effettua solo 1/2 (nel caso di 2 dischi) o 1/3 (nel caso
di tre dischi e cos&igrave; via) delle letture richieste. In pi&ugrave; un
sistema di mirror pu&ograve; aumentare l'affidabilit&agrave;: se un disco si
rompe, gli altri dischi contengono una copia dei dati. Differenti
maniere di combinare pi&ugrave; dischi in uno, dette <B>livelli
RAID</B>, possono fornire una superiore capacit&agrave; di
immagazzinamento dei dati del semplice mirroring, o possono
alterare i tempi di attesa (tempi di accesso), o il throughput
(transfer rate), nella lettura o scrittura, offrendo comunque la
ridondanza che risulta utile in caso di malfunzionamenti.  
<P><B>Anche se RAID pu&ograve; proteggere da eventuali malfunzionamenti
del disco, non protegge da errori dell'operatore e dell'
amministratore (errori umani), o da errori dovuti a bug di
programmazione (forse dovuti anche ad errori nello stesso software
RAID). La rete abbonda di storie tragiche di amministratori di
sistema che hanno installato RAID e hanno perso tutti i loro dati.
RAID non sostituisce un backup frequente e regolarmente
programmato. </B>
<P>             
RAID pu&ograve; essere implementato via hardware, attraverso speciali
controller di dischi, o via software, come un modulo del kernel
che si interpone tra i driver di basso livello dei dischi e il
file system. L'hardware RAID consiste comunque di un "controller
di dischi", una periferica alla quale si possono collegare i
disk drive. Usualmente si presenta come una scheda che si pu&ograve;
connettere su uno slot ISA/EISA/PCI/S-Bus/MicroChannel. Tuttavia
qualche controller RAID &egrave; fatto per connettersi a met&agrave; del
cavo che collega il normale controller ai dischi. Quelli piccoli
possono entrare nell'alloggiamento di un drive; quelli grandi
possono essere installati in un loro cabinet con i loro
alloggiamenti per dischi e una loro alimentazione.
Il pi&ugrave; recente hardware RAID usato con le ultime e pi&ugrave;
veloci CPU fornir&agrave; probabilmente la migliore performance,
ad un prezzo comunque abbastanza alto. Questo perch&eacute; molti
controller RAID contengono un DSP e della memoria cache che
permette di togliere una fetta considerevole di carico alla
CPU, e permettono un alto transfer rate grazie alla ampia
memoria cache del controller. Il vecchio hardware RAID pu&ograve;
agire come "freno" del sistema se usato con le nuove CPU:
i vecchi DSP e memorie cache fanno da collo di bottiglia
e la performance globale &egrave; spesso superata da quella del
semplice RAID software e dai nuovi, normalissimi, controller.
Il RAID implementato via hardware  pu&ograve; essere vantaggioso
rispetto a quello via software se pu&ograve; far uso della
sincronizzazione dei dischi e pu&ograve; sapere la posizione della
testina del disco rispetto al blocco del disco desiderato.
&Egrave; vero per&ograve; che  molti dischi moderni (a basso costo) non
offrono questi livelli di informazione e controllo sulla loro
attivit&agrave; e quindi molto hardware RAID non ne trae vantaggio.
L'hardware RAID di diverse marche, versioni e modelli &egrave;
normalmente incompatibile. Se un controller RAID si rompe,
deve essere rimpiazzato da un altro controller dello stesso
tipo. Al momento della stesura di questo documento (giugno 1998)
un'ampia gamma di controller hardware funzioner&agrave; sotto Linux;
in ogni caso nessuno di questi viene venduto con delle utilit&agrave;
di configurazione e gestione che funzionino sotto Linux.
<P>Software-RAID &egrave; formato da un set di moduli del kernel,
combinato con delle utilit&agrave; di gestione che implementano
RAID solamente tramite software e non richiedono hardware
speciale. Il sottosistema RAID di Linux &egrave; implementato 
come strato del kernel che si pone tra i driver a basso livello
dei dischi (per dischi IDE, SCSI e Paraport) e l'interfaccia
del dispositivo a blocchi. Il file system, sia esso ext2fs,
DOS-FAT o altro, rimane sopra l'interfaccia del dispositivo
a blocchi. Software-RAID, grazie alla sua natura software,
risulta essere pi&ugrave; flessibile di una soluzione hardware.
Il lato negativo &egrave; che richiede un maggiore utilizzo della
CPU per poter girare bene rispetto ad una uguale implementazione
hardware. Naturalmente sul costo non pu&ograve; essere battuto.
Software-Raid ha una ulteriore importante caratteristica
distintiva: opera su partizioni, perci&ograve; la partizione RAID &egrave;
formata da un certo numero di partizioni di dischi. Questo
contrasta con le soluzioni adottate da gran parte dell' hardware
RAID, che uniscono assieme interi dischi per formarne una serie. 
Fatto sta che utilizzando l'hardware si ha una sottosistema RAID
trasparente rispetto al sistema operativo, cosa che tende a
semplificare la gestione. Con il software, ci sono molte pi&ugrave;
opzioni di configurazione e scelte, che tendono a complicare 
la faccenda.
<P>
<P><B>Al momento della stesura di questo testo (giugno 1998)
la gestione del RAID sotto Linux non &egrave; affatto banale, ed &egrave;
una buona prova anche per degli esperti amministratori di sistema.
La teoria delle operazioni &egrave; complessa. I tool di sistema
richiedono  modifiche agli script di avvio. 
Riprendere il controllo della situazione dopo un malfunzionamento
del disco &egrave; un'operazione complessa che agevola l'errore
umano. RAID non &egrave; per i novizi, ed ogni beneficio che pu&ograve;
apportare all'affidabilit&agrave; e alle prestazioni pu&ograve; essere
facilmente controbilanciato da una maggiore complessit&agrave;. In
realt&agrave; i moderni dischi sono incredibilmente affidabili e le
moderne CPU e i controller sono veramente potenti. Si possono
ottenere pi&ugrave; facilmente i livelli di prestazione e l'affidabilit&agrave;
desiderate acquistando hardware di alta qualit&agrave; e/o pi&ugrave; veloce</B>
</BLOCKQUOTE>

</LI>
<LI><B>D</B>:
Cosa sono i livelli RAID? Perch&eacute; cos&igrave; tanti? Cosa li distingue?
<BLOCKQUOTE>
<B>R</B>:
Differenti livelli RAID hanno prestazioni, ridondanza,
capacit&agrave; di immagazzinamento, affidabilit&agrave; e costi
differenti. Molti, ma non tutti, i livelli RAID offrono
ridondanza per cautelarsi contro i malfunzionamenti
dei dischi. Di quelli che implementano la ridondanza
RAID-1 e RAID-5 sono i pi&ugrave; popolari.  RAID-1 offre
migliori prestazioni mentre RAID-5 un uso pi&ugrave; efficiente
dello spazio disco a disposizione. Comunque cercare la
migliore prestazione &egrave; una cosa completamente differente
poich&eacute; la performance dipende fortemente da un'ampia
gamma di fattori, dal tipo di applicazione alle dimensioni
delle strisce, dei blocchi e dei file. Gli aspetti pi&ugrave;
difficoltosi della ricerca della migliore performance
sono rimandati ad una sezione di questo HOWTO che vedremo
dopo. 
<P>Quanto segue descrive i differenti livelli RAID nel
contesto dell'implementazione su Linux del Software RAID.
<P>
<UL>
<LI><B>RAID-linear</B>
&egrave; una semplice concatenazione di partizioni che creano
una pi&ugrave; ampia partizione virtuale. &Egrave; utile se si ha un
certo numero di piccoli dischi e si vuole creare una unica,
grande partizione. Questa concatenazione non offre
ridondanza ed in effetti diminuisce l'affidabilit&agrave; globale;
la partizione cos&igrave; creata smetter&agrave; di funzionare non
appena un solo disco si rovina.
<P>
</LI>
<LI><B>RAID-1</B> &egrave; chiamato anche "mirroring".
Due (o pi&ugrave;) partizioni, tutte della stessa grandezza,
contengono ciascuna una copia degli stessi dati
che risultano disposti nella stessa maniera sulle
due partizioni (in inglese "disk-block by disk-block". ndt).
Il mirroring offre una forte protezione contro i 
malfunzionamenti dei dischi: se un disco si rompe
se ne ha un altro con gli stessi dati. Il mirroring
pu&ograve; anche migliorare le prestazioni in sistemi
"I/O laden" (con grossi carichi di input-output. ndt)
poich&eacute; le richieste di lettura possono essere divise
su pi&ugrave; dischi. Sfortunatamente il mirroring &egrave; il meno
efficiente in materia di capacit&agrave; di immagazzinamento:
due partizioni in mirroring posso immagazzinare gli stessi
dati di una.
<P>
<P>
</LI>
<LI><B>"Striping"</B> &egrave; l'idea che sta dietro a tutti gli
altri livelli RAID. Una striscia (in inglese "stripe"
da cui il nome di "striping". ndt) &egrave; una sequenza continua
di blocchi del disco. Una striscia pu&ograve; essere cos&igrave;
corta da contenere un solo blocco disco o pu&ograve; contenerne
centinaia. I driver RAID dividono le partizioni in strisce;
i vari livelli RAID differiscono nella maniera di
organizzare le strisce e nei dati che vi memorizzano.
Il rapporto tra le dimensioni delle strisce, la grandezza
pi&ugrave; ricorrente dei file nel file system e la loro
disposizione nel disco &egrave; quello che determina le
prestazioni globali di un sottosistema RAID.
<P>
<P>
</LI>
<LI><B>RAID-0</B> &egrave; molto simile a RAID-linear, tranne per
il fatto che le partizioni che lo compongono vengono
divise in strisce e quindi suddivise. Come nel caso
del RAID-linear il risultato &egrave; una singola partizione
virtuale. Ancora come RAID-linear, RAID-0 non offre
ridondanza diminuendo quindi l'affidabilit&agrave; globale:
il malfunzionamento di un solo disco mette fuori uso
tutto. Spesso si crede che RAID-0 abbia prestazioni
migliori rispetto a RAID-linear. Questo pu&ograve; essere o non
essere vero, dipendendo dalle caratteristiche del
file system, dalla grandezza pi&ugrave; frequente dei file
comparata con la dimensione delle strisce e dal tipo
di carico a cui &egrave; sottoposto. Il file system <CODE>ext2fs</CODE>
dispone i file in una partizione in modo da diminuire 
la frammentazione. Cos&igrave;, per semplicit&agrave;, ogni dato
accesso pu&ograve; essere indirizzato ad uno o pi&ugrave; dischi e
quindi la suddivisione delle strisce su pi&ugrave; dischi non
offre un vantaggio apparente. Comunque sia vi sono delle
differenze nelle prestazioni, dipendenti dai dati, dal
carico di lavoro e dalla dimensione delle strisce.
<P>                                
</LI>
<LI><B>RAID-4</B> suddivide in strisce come RAID-0,
ma richiede una partizione aggiuntiva per memorizzare le
informazioni sulla parit&agrave;. La parit&agrave; &egrave; usata per 
offrire ridondanza sui dati: se un disco si rovina i dati
sui dischi rimanenti possono essere usati per ricostruire
quelli che erano sul disco rotto. Dati N dischi di dati e
un disco di parit&agrave;, la striscia di parit&agrave; &egrave; computata
prendendo una striscia da ognuno dei dischi di dati 
ed effettuando un XOR tra di esse. Quindi la capacit&agrave;
di memorizzazione di una serie di (N+1) dischi RAID-4 &egrave;
N, molto meglio del mirroring di (N+1) dischi e buona come
un setup RAID-0, per N grande. Da notare che per N=1 vi &egrave;
un disco di dati e un disco di parit&agrave; e RAID-4 somiglia
molto al mirroring, nel quale ognuno dei due dischi &egrave; la
copia dell'altro. RAID-4 <B>NON</B> offre le prestazioni
in lettura/scrittura del mirroring ed anzi la sua
performance in scrittura &egrave; considerevolmente peggiore.
In breve questo accade a causa del fatto che l'aggiornamento
della parit&agrave; richiede la lettura della vecchia parit&agrave; 
prima che la nuova parit&agrave; venga calcolata e scritta.      
In ambienti con un grosso carico di scrittura il disco   
di parit&agrave; pu&ograve; diventare un collo di bottiglia poich&eacute;      
ogni processo di scrittura deve accedere al disco di      
parit&agrave;.
<P>
<P>
</LI>
<LI><B>RAID-5</B> evita il collo di bottiglia in scrittura
di RAID-4 memorizzando la striscia di parit&agrave; su ognuno
dei dischi. Ovviamente la prestazione in scrittura non
&egrave; ancora buona come quella del mirroring, visto che la
striscia di parit&agrave; deve anche qui essere letta e deve
esservi effettuato lo XOR prima che sia scritta. Anche
la prestazione in lettura non &egrave; buona come quella del
mirroring poich&eacute;, dopo tutto, vi &egrave; una sola copia dei
dati e non due o pi&ugrave;. Il vantaggio principale di RAID-5
sul mirroring &egrave; che offre ridondanza e protezione nel
caso di malfunzionamento di un solo disco, e allo stesso
tempo ha una capacit&agrave; di memorizzazione molto pi&ugrave; alta
quando &egrave; usato con tre o pi&ugrave; drive.
<P>
<P>
</LI>
<LI><B>RAID-2 e RAID-3</B> sono usati raramente, e sono
stati in qualche maniera resi obsoleti dalla moderna
tecnologia dei dischi. RAID-2 &egrave; simile a RAID-4, ma
memorizza informazioni ECC al posto della parit&agrave;.
Poich&eacute; tutti i dischi moderni incorporano sotto sotto
un controllo ECC, il vantaggio &egrave; minimo. RAID-2 pu&ograve;
dare una maggiore coerenza ai dati se viene a mancare
la corrente mentre &egrave; in corso un'operazione di
scrittura; per&ograve; un gruppo di continuit&agrave; e uno
shutdown pulito danno gli stessi vantaggi.
RAID-3 &egrave; simile a RAID-4 tranne per il fatto che usa
la minore grandezza possibile per le strisce. 
Il risultato &egrave; che ogni operazione di lettura interessa
tutti i dischi, facendo diventare difficile/impossibile
soddisfare richieste di I/O contemporanee. Per evitare
il ritardo dovuto alla latenza rotazionale RAID-3
richiede che la rotazione di tutti i dischi possa essere
sincronizzata. Molto hardware moderno non dispone della
capacit&agrave; di sincronizzazione o, se ne dispone, mancano
i connettori necessari, i cavi e la documentazione di
chi lo ha prodotto. N&eacute; RAID-2 n&eacute; RAID-3 sono livelli
RAID supportati dai driver di Software RAID per Linux.
<P>
<P>
</LI>
<LI><B>Altri livelli RAID</B> sono stati definiti da
vari ricercatori e produttori. Molti di questi non
sono altro che la sovrapposizione di un tipo di raid
su un altro. Qualcuno richiede dell'hardware speciale
e altri sono protetti da brevetto. Non vi &egrave; una
nomenclatura universalmente accettata per questi 
altri livelli. A volte i vantaggi di questi altri
sistemi sono piccoli o almeno non appaiono finch&eacute;
il sistema non &egrave; sottoposto ad un alto livello di
stress. Eccettuata la sovrapposizione di RAID-1 su
RAID-0/linear, il Software RAID per Linux non
consente nessuna di queste altre variazioni. 
<P>
</LI>
</UL>
</BLOCKQUOTE>
</LI>
</OL>
<HR>
<A HREF="Software-RAID-0.4x-HOWTO-3.html">Avanti</A>
<A HREF="Software-RAID-0.4x-HOWTO-1.html">Indietro</A>
<A HREF="Software-RAID-0.4x-HOWTO.html#toc2">Indice</A>
</BODY>
</HTML>