Sostituire un disco in un Array funzionante senza degradarlo

From RVM Wiki
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