Realizzare un semplice RAID1 su linux

Vediamo come fare

 

Esempio Gestione Raid 1 con mdadm

Questa breve guida illustra la gestione di un Raid di tipo 1su un server linux con Suse 9.3.

Lo scenario fa riferimento ad un sistema Suse linux 9.3, con due dischi SATA impostati come sda e sdb e una configurazione delle partizioni in / e swap, dove md0 è lo swap e md1 è /. Dall’analisi dei log è risultato il disco sdb guasto e con il comando:

analizziamo il raidtab:

cat /etc/raidtab

output video del file raidtab:

# autogenerated /etc/raidtab by YaST2

raiddev /dev/md0

   raid-level       1

   nr-raid-disks    2

   nr-spare-disks   0

   persistent-superblock 1

   chunk-size        4

   device   /dev/sda1

   raid-disk 0

   device   /dev/sdb1

   raid-disk 1

raiddev /dev/md1

   raid-level       1

   nr-raid-disks    2

   nr-spare-disks   0

   persistent-superblock 1

   chunk-size        4

   device   /dev/sda2

   raid-disk 0

   device   /dev/sdb2

   raid-disk 1

controlliamo I punti di montaggio del file system:

 cat /etc/fstab

output video dil file fstab

/dev/md1 /              reiserfs   acl,user_xattr         1 1

/dev/md0 swap       swap       pri=42                     0 0

devpts     /dev/pts  devpts     mode=0620,gid=5  0 0

proc        /proc       proc        defaults                  0 0

usbfs       /proc/bus/usb         usbfs       noauto     0 0

sysfs       /sys                        sysfs       noauto     0 0

controlliamo lo stato del raid:

cat /proc/mdstat

output video dello stato:

Personalities : [raid1]

md1 : active raid1 sda2[0]

      77087808 blocks [2/2] [U_]

md0 : active raid1 sda1[0]

      1060160 blocks [2/2] [U_]

unused devices: <none>

You have new mail in /var/mail/root

Sostituzione disco guasto

Il comando "mdadm" permette la completa amministrazione degli array. Ecco cosa fare:

mdadm /dev/md0 --fail /dev/sdb1 --remove /dev/sdb1

mdadm: set /dev/sdb1 faulty in /dev/md0

mdadm: hot removed /dev/sdb1

mdadm /dev/md1 --fail /dev/sdb2 --remove /dev/sdb2

mdadm: hot removed /dev/sdb2

verifichiamo il file di stato:

cat /proc/mdstat

Personalities : [raid1]

md1 : active raid1 sda2[0]

      77087808 blocks [2/1] [U_]

md0 : active raid1 sda1[0]

      1060160 blocks [2/1] [U_]

unused devices: <none>

ora spegniamo il pc, sostituiamo il disco guasto, con un disco identico al disco funzionante o leggermente più grande riavviamo.

Riavviato il sistema, ripartizioniamo l'hard disk:

sfdisk -d /dev/sda | sfdisk /dev/sdb

ricreiamo il RAID:

mdadm /dev/md0 --add /dev/sdb1

mdadm /dev/md1 --add /dev/sdb2

controlliamo la ricostruzione del RAID con un "cat /proc/mdstat" :

Personalities : [raid1]

md1 : active raid1 sdb2[2] sda2[0]

      77087808 blocks [2/1] [U_]

      [>....................]  recovery =  3.4% (2656192/77087808) finish=26.6min speed=46626K/sec

md0 : active raid1 sdb1[1] sda1[0]

      1060160 blocks [2/2] [UU]

unused devices: <none>

ricordiamoci inoltre di istallare grub nel MBR del nuovo sdd:

grub> root (hd1,0)

grub> setup (hd1)

Abbiamo completato, controlliamo che la ricostruzione sia completa:

cat /proc/mdstat

output video dello stato:

Personalities : [raid1]

md1 : active raid1 sdb2[1]  sda2[0]

      77087808 blocks [2/2] [UU]

md0 : active raid1 sdb1[1]  sda1[0]

      1060160 blocks [2/2] [UU]

unused devices: <none>

il comando mdadm si può configurare /etc/mdadm.conf in modo da rendere più "coerente" la gestione.

Aiuto man mdadm