/etc/raidtab

In questo file Linux mantiene tutte le informazioni relative ai metadevice (md) con cui gestisce il raid software.
Il fiel è diviso in sezioni, una per ogni md device, identificate dalla parola raiddev. L'ordine con cui sono inserite le sezioni e le relative opzioni è importante. Nel file sono specificate informazioni quali:
- Nome del metadevice (raiddev device)
- Livello di raid: linear, 0, 1, 4, 5 (raid-level )
- Numero dei dischi che fanno parte del md (nr-raid-disks #). Il limite attuale è di 12 dischi.
- Il numero di dischi da lasciare spare ed utilizzare in caso di guasto dei dischi di raid (nr-spare-disks #).
- La quantità minima di dati che può essere usata per le operazioni di I/O (dimensione delle stripe) in Kbytes  (chunk-size #) Il valore può essere 2, 4, 8, 16, 32, 64 ... e di default può raggiungere un massimo di 4096. Valori tipici vanno da 4 a 128).
- I device da aggiungere al sistema raid. (device path). Questa opzione va sempre seguita da una che ne definisce l'utilizzo e l'ordine:
raid-disk 0|1|2|3... - Indica che il device definito nella riga precedente va inserito nella posizione indicata (a partire da 0, non è possibile avere due device nella stessa posizione) del raid array.
spare-disk 0|1|2|3... - Indica che il device definito nella riga precedente va inserito nella posizione indicata (a partire da 0, non è possibile avere due device nella stessa posizione) dell'array dei dischi spare (di riserva).
parity-disk 0|1|2|3 - Indica che il device definito nella riga precedente va dedicato alla parity check, dovrebbe avere come indice il numero più alto.
failed-disk 0|1|2|3 - Indica che il device definito nella riga precedente è guasto. Questo può servire anche pr inizializzare il raid su un sistema esistente. Inserire questa voce dopo le altre e quindi dopo aver definito l'array raid.

- La possibilità di inserire le informazioni relative al raid in un'area riservata di ogni device che ne fa parte. E' indispensabile se si vuole l'autodetection del raid da parte del kernel (persistent-superblock 0|1)
- L'algoritmo di parità da usare con Raid 5 (parity-algorithm left-symmetric|right-symmetric|left-asymmetric|right-asymmetric)

Vediamo un esempio di un improbabile (ma valido ed applicabile nelle parti che interessano) /etc/raidtab contenente vari tipi di device md con diversi livelli di Raid:

raiddev /dev/md0
Si definisce il primo device md, notare che il numero parte da 0
        raid-level      linear
Qui si usa la modalità linear, che in pratica accorpa in un unico device logico (md0) i due device fisici hda1 e hdb1, scrivendo sul primo fino a quando questo viene riempito e poi passando al secondo (in raid 0 i due device vengono usati in parallelo)
        nr-raid-disks   2
Due saranno i device che faranno parte di md0, vengono sotto definiti
        chunk-size      32
Tutte le operazione di accesso a md0 vengono fatte con sbostamenti di blocchi di dati di 32 Kb
        persistent-superblock 1
Questo device md0, se il kernel è configurato per supportare l'automounter e le singole partizioni impostate con type automatico (0xFD su fdisk) , potrà essere utilizzato automaticamente e riconosciuto al boot
        device          /dev/hda1
        raid-disk       0
Si definisce il primo device che fa parte di md0 e si indica il suo indice (a partire da 0)
        device          /dev/hdc2
        raid-disk       1
Si definisce il secondo device, hdb2, con indice 1. Notare che se si volesse aggiungere un terzo device al raid array si dovrebbero scrivere le due righe di definizione (device e indice del raid-disk) e di dovrebbe cambiare a 3 il valore del'opzione nr-raid-disk qualche riga sopra)

raiddev /dev/md1
Si definisce un secondo device md, le opzioni che seguono riguardano questo device, quelle precedenti sono riferite soltanto al device md0)
        raid-level      0
Su md1 si usa Raid 0 (i dati vengono scritti, senza ridondanza, in parallelo sui device che compongono il raid array. Le opzioni che seguono sono analoghe a quelle già viste, notare che:
- due device fisici non possono far parte di due diversi device virtuali md
- il chunk-size è riferito ad un dato md device e può cambiare su device diversi
- gli indici dei device fisici all'interno del device virtuale "ripartono" da zero e si riferiscono unicamente al loro md

        nr-raid-disks   2
        persistent-superblock 1
        chunk-size     4
        device          /dev/hdb1
        raid-disk       0
        device          /dev/hdc1
        raid-disk       1

raiddev /dev/md2
        raid-level      1
Terzo device in questo delirante /etc/fstab. Su questo viene fatto mirroring (raid 1) fra 2 dischi, lasciandone un terzo spare in caso di problemi di uno dei due. Ricordarsi sempre che per non degradare le prestazioni è meglio usare dischi su bus diversi, soprattutto se sono bus IDE (quindi uno sul primario e uno sul secondario)
        nr-raid-disks   2
        nr-spare-disks  1
Il numero di dischi spare, oltre ai due sopra inseiriti nel raid array. Vanno sotto definiti
        chunk-size     4
        persistent-superblock 1
        device          /dev/hda2
        raid-disk       0
        device          /dev/hdd1
        raid-disk       1
        device          /dev/hdb2
        spare-disk      0
Qui si definisce lo spare disk sopra anticipato. Notare che il suo indice riparte da 0 in quanto indipendente dal raid-array

raiddev /dev/md3
        raid-level      5
Il nostro quarto array è in Raid 5, utilizza ben 7 dischi (3 è il minimo) SCSI più uno spare. Notare che si tratta sempre di raid software, se il nostro controller SCSI supportasse raid hardware, andrebbe configurato direttamente, apparirebbe come device autonomo e non andrebbe tracce di configurazione in /etc/raidtab.
        nr-raid-disks   7
        nr-spare-disks  1
        persistent-superblock 1
        parity-algorithm        left-symmetric
Con Raid 5 va specificato l'algoritmo di parità. Left-symmetric è generalmente il più performante ed utilizzato.
        chunk-size      32
Il valore di 32 Kb è generalmente consigliato su Raid 5
        device          /dev/sda3
        raid-disk       0
        device          /dev/sdb1
        raid-disk       1
        device          /dev/sdc1
        raid-disk       2
        device          /dev/sdd1
        raid-disk       3
        device          /dev/sde1
        raid-disk       4
        device          /dev/sdf1
        raid-disk       5
        device          /dev/sdg1
        raid-disk       6
        device         /dev/sdh1
        spare-disk     0
Notare: Gli indici crescenti da 0 a 6 per i 7 raid disk e l'indice 0 per lo spare disk


A questo punto dovremmo averne abbastanza di metadevice raid, ma possiamo andare oltre, facendo l'esempio di una configurazione in raid 10 con 4 hard disk EIDE (soluzione invero abbastanza dissennata, visto che comunque prevede operazioni di I/O contemporanee su hard disk sullo stesso canale IDE).
Quanto segue, visto che i nomi dei device si ripetono, va preso come file autonomo dall'esempio di /etc/raidtab di cui sopra:

Primo device: Raid 1 (mirroring) fra due harddisk IDE su bus separati
raiddev /dev/md0
        raid-level      1
        nr-raid-disks   2
        nr-spare-disks  0
        chunk-size     4
        persistent-superblock 1
        device          /dev/hda1
        raid-disk       0
        device          /dev/hdc1
        raid-disk       1

Secondo device: Raid 1 (mirroring) fra altri due harddisk IDE su bus separati
raiddev /dev/md1
        raid-level      1
        nr-raid-disks   2
        nr-spare-disks  0
        chunk-size     4
        persistent-superblock 1
        device          /dev/hdb1
        raid-disk       0
        device          /dev/hdd1
        raid-disk       1

Terzo device: Un sistema Rad 10 si ottiene facendo striping (Raid 0) fra due md device in mirror mode (Raid 1)
raiddev /dev/md2
        raid-level      0
        nr-raid-disks   2
        nr-spare-disks  0
        chunk-size     4
        persistent-superblock 1
        device          /dev/md0
        raid-disk       0
        device          /dev/md1
        raid-disk       1

Privacy Policy