Sostituire un disco in un Array funzionante senza degradarlo

From RVM Wiki
Revision as of 09:15, 11 June 2014 by Gabriele.vivinetto (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Se si vuole sostituire un disco in un array (magari con uno più grande o perchè in pre failure), sarebbe meglio non degradare l'array, e poi aggiungere di nuovo un disco.

È possibile aggiungere il nuovo disco, fare un resync, e poi togliere quello da rimuovere. In questo modo l'array non sarà mai a rischio.

VERIFICARE: in caso di raid 5 NON è possibile, perchè aggiungendo un device, l'array cresce ?

Esempio:

  • array RAID-1 md0 composta da due dischi sda1+sdb1
  • vogliamo togliere sdb1 e sostituirlo con un nuovo disco già collegato sdc1
  • Verificare lo stato dell'array
cat /proc/mdstat
md0 : active raid1 sda1[0] sdb1[1]
      479247296 blocks [2/2] [UU]     
  • Aggiungere come spare il nuovo device
sudo mdadm --add /dev/mdo /dev/sdc1
  • Verificare che l'array abbia ora un dispositivo spare:
cat /proc/mdstat
md0 : active raid1 sdc1[2](S) sda1[0] sdb1[1]
      479247296 blocks [2/2] [UU]
  • Fare crescere il numero di componenti dell'array a 3
sudo mdadm --grow /dev/md0 --raid-devices=3
  • Verificare che si avvii il resync e che si completi. L'array NON deve aumentare di dimensioni.
watch cat /proc/mdstat
md0 : active raid1 sdc1[2] sda1[0] sdb1[1]
      479247296 blocks [2/2] [UU_]
      [>....................]  recovery =  0.0% (15104/479247296) finish=21998.6min speed=362K/sec
  • Una volta completato il resync, rimuovere il vecchi device:
sudo mdadm --fail /dev/md0 /dev/sdb1
sudo mdadm --remove /dev/md0 /dev/sdb1
  • Riportare il numero di device a 2
sudo mdadm --grow /dev/md0 --raid-devices=2
  • Verificare che l'array sia integro:
cat /proc/mdstat
md0 : active raid1 sda1[1] sdc1[0]
      479247296 blocks [2/2] [UU]

Riferimenti