[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