[gl-como] Server e RAID (?)

Claudio Marforio marforio@gmail.com
Mer 8 Mar 2006 13:50:36 CET


Dato che sei stato molto chiaro e ho capito parecchie cose con questo riassunto, 
potresti fare lo stesso per il raid5? Ovvero come viene riconosciuto e quali 
sono i possibili scenari alla perdita di un disco?

Grazie mille, dovresti fare l'insegnante ;)

ciop ciop

Claudio

Pirla wrote:
> Il giorno mar, 07/03/2006 alle 10.43 +0100, Riccardo Penco ha scritto:
>> Pirla ha scritto:
> 
>> Premetto che non ho esperienze in merito.
>> Da quello che avevo capito pero', raid0 quando deve salvare un file ne 
>> scrive sempre una parte su ogni disco che compone il raid (il motivo per 
>> cui e' tanto veloce). Se si rompe un disco io perdo parte 
>> dell'informazione di qualsiasi file nel filesystem.
>> Per come avevo capito, invece, LVM inizia a scrivere sul primo disco, 
>> quando esaurisce lo spazio, passa al secondo e cosi' via. In questo modo 
>> tutte le informazioni (i byte) di quasi tutti i file sono contenuti in 
>> un singolo disco. Fanno ovviamente eccezione i file che sono a cavallo 
>> di due dischi. Quando si rompe un disco io dovrei perdere solo i file 
>> contenuti (completamente o in parte) nello stesso.
>> [Cosa] ho capito male?
> Diciamo che hai capito *molto* male un po' tutto.
> Cominciamo da un presupposto di fondo.
> Tu ragioni a livello di file, invece devi ragionare a livello di disco
> (e quindi di blocchi del disco).
> 
> Detto questo vediamo come funzionano i principi raid, opartendo
> dall'hardware e poi passando al software.
> 
> Un controller intelligente che ti permette di gestire i raid si comporta
> in questo modo.
>      1. Riconosce una serie di dispositivi di memorizzazione
>         (presupponiamo che siano geometricamente uguali anche se non è
>         importante), e ti permette (quando ancora il sistema operativo
>         non è partito) di gestirli e di aggregarli in raid. Prendiamo in
>         considerazione il raid 0 di 2 dischi (anche se nessuno
>         praticamente lo fa) e il raid 1 di 2 dischi.
>      2. A questo punto il configuratore decide di fare un raid 0. Lo
>         comunica al controller ed il controller scrive alcune
>         informazioni sui dischi. A questo punto presenta al PC/Server un
>         disco fisico formato dall'unione dei due dischi. Questo disco
>         logico avrà la dimensione data dalla somma dei due dischi
>         fisici. Avrà una geometria che il controller definisce. Avrà uno
>         stripe size ben definito (prendiamo per esempio 256 KB).
>      3. Il bios del PC/Server fa partire un sistema operativo dicendogli
>         di avere un disco che ha una certa geometria (mediata dal
>         controller che tradurrà poi le informazioni provenienti dal S.O.
>         verso i vari dischi fisici che compongono il disco logico).
>      4. A questo punto il sistema comincia ad accedere al disco logico.
>         Ogni richiesta di blocchi viene mediata dal controller che sa
>         che lo stripe size è di 256KB. Quando il sistema chiede di
>         leggere o scrivere un blocco allora il controller decide dove
>         sta il blocco e lo passa al sistema operativo. Naturalmente le
>         performance dipendono da molti fattori ma ignoriamo questo e
>         pensiamo al fatto che si ha un accesso pressocchè parallelo in
>         entrambi i dischi. Se un file ipotetico sta dentro un blocco che
>         è più piccolo dello stripe size, è molto probabile che sia
>         memorizzato su un unico disco, ma se è grande verrà spalmato su
>         più dischi. Questo comporta che la mancanza di uno dei due
>         dischi non ti permetterà di accedere più a nulla, proprio perché
>         le info sono sparpagliate e non c'è modo di ricostruirle senza
>         il disco che hai perso. Anzi, il controller proprio fallisce
>         l'inizializzazione del raid e non viene presentato nessun disco
>         logico al sistema.
>      5. Nel caso di raid 1 invece il controller non spalma le info sui
>         dischi ma le duplica, quindi ogni scrittura avviene in
>         contemporanea (non sempre è vero) su entrambe le meccaniche. In
>         caso di lettura, il dato viene letto dalla meccanica che ha la
>         testina più vicina al blocco di disco da leggere. Se perdi un
>         disco il tuo raid è ancora in grado di funzionare e il disco
>         logico viene presentato lo stesso come se nulla fosse. Il tutto
>         però in una situazione di precarietà perché non hai più la
>         protezione.
> 
> Il raid fatto a livello software funziona (e deve funzionare)
> esattamente nello stesso modo, altrimenti non sarebbe raid ma sarebbe
> altro. Solo che il tutto è fatto dopo che il sistema operativo è
> partito. Naturalmente le implementazioni software sono più lente, ma non
> è detto che siano meno sicure. Se sono fatte bene e il sistema è stabile
> non ci sono problemi.
> 
> Per ulteriori dettagli o per approfondire molto le nozioni ti consiglio
> di partire da wikipedia -> raid ed andare a vedere la storia del raid.
> Altre ricerche su internet sono possibili ma non le ho fatte :-)


Maggiori informazioni sulla lista gl-como