[Tech] "striped LVM" VS "software RAID level 0"

Alessandro Zarrilli drsound@libero.it
Ven 27 Lug 2001 10:43:15 CEST


At 16.19 26/07/01, you wrote:
 >Perche` raddoppi le possibilita` di perderli. Io ti sconsiglio
 >entrambi, o meglio ti sconsiglio il raid 0, tanto piu` che per una
 >cosa del genere in genere il collo di bottiglia e` la rete non i
 >dischi.

Beh... dipende anche da quanto il server e' "stressato" dalle
richieste dei clients, ovvero quanti accessi in lettura/scrittura
sono richiesti contemporaneamente.

 >Per funzionare lo striping deve usare due dischi diversi su cui
 >distribuire i dati.  Se ne aggiungi un altro lo striping dove lo fa?

A dire la verita' lo striping funziona benissimo anche con piu' di 2
dischi. Vedi http://www.acnc.com/04_01_00.html. Esempio con 3 dischi:
(NB: Raid[X] = Disco[Y,Z] significa il blocco Raid X e' fisicamente
situato sul blocco Z del disco Y)

Raid[0] = Disco[0,0]
Raid[1] = Disco[1,0]
Raid[2] = Disco[2,0]
Raid[3] = Disco[0,1]
Raid[4] = Disco[1,1]
Raid[5] = Disco[2,1]
Raid[6] = Disco[0,2]
Raid[7] = Disco[1,2]
Raid[8] = Disco[2,2]
Raid[9] = Disco[0,3]
...

In generale la formula per sapere su quale blocco di quale disco si
trova il nostro blocco RAID e':
Raid[X] := Disco[(X MOD NumeroDischi),(X DIV NumeroDischi)]
Semmai il "difficile" e', nel caso si aggiunga Disco[3], trasformare
lo schema precedente in:

Raid[0] = Disco[0,0]
Raid[1] = Disco[1,0]
Raid[2] = Disco[2,0]
Raid[3] = Disco[3,0]
Raid[4] = Disco[0,1]
Raid[5] = Disco[1,1]
Raid[6] = Disco[2,1]
Raid[7] = Disco[3,1]
Raid[8] = Disco[0,2]
Raid[9] = Disco[1,2]
...

Oppure nel caso si tolga Disco[2]:

Raid[0] = Disco[0,0]
Raid[1] = Disco[1,0]
Raid[2] = Disco[0,1]
Raid[3] = Disco[1,1]
Raid[4] = Disco[0,2]
Raid[5] = Disco[1,2]
Raid[6] = Disco[0,3]
Raid[7] = Disco[1,3]
Raid[8] = Disco[0,4]
Raid[9] = Disco[1,4]
...

Nel primo caso (aggiunta di un disco) l'algoritmo di riallocazione
dovrebbe fare qualcosa come:

Disco[0,0] := Disco[0,0] (inutile)
Disco[1,0] := Disco[1,0] (inutile)
Disco[2,0] := Disco[2,0] (inutile)
Disco[3,0] := Disco[0,1]
Disco[0,1] := Disco[1,1]
Disco[1,1] := Disco[2,1]
Disco[2,1] := Disco[0,2]
Disco[3,1] := Disco[1,2]
Disco[0,2] := Disco[2,2]
Disco[1,2] := Disco[0,3]
...

Nel secondo caso (ovviamente dopo aver ridimensionato il file system
e prima della rimozione fisica del disco):

Disco[1,4] := Disco[0,3]
Disco[0,4] := Disco[2,2]
Disco[1,3] := Disco[1,2]
Disco[0,3] := Disco[0,2]
Disco[1,2] := Disco[2,1]
Disco[0,2] := Disco[1,1]
Disco[1,1] := Disco[0,1]
Disco[0,1] := Disco[2,0]
Disco[1,0] := Disco[1,0] (inutile)
Disco[0,0] := Disco[0,0] (inutile)
...

Comunque sia, in ogni caso la cosa dovrebbe funzionare, o sbaglio?
Tornando alla domanda della mia mail precedente: le utilities di
gestione del software RAID provvedono a fare qualcosa del genere
oppure no?





Maggiori informazioni sulla lista flug-tech