Changer les disques d'une grappe RAID1 par deux plus gros

Author Nicolas Repentin on June 23, 2010 | Print | Bookmark
Voici un exemple :

Je cherche à remplacer deux disques de 10Go en raid1 par deux 15Go.

Sur les 10Go, j'ai :

/dev/sda1 : 4Go
/dev/sda2 : 700Mo
/dev/sda3 : presque 6Go
Même partitionnement sur /dev/sdb

Au final avec mdadm j'ai :

md2 : active raid1 sda3[1] sdb3[1]
      5894080 blocks [2/2] [_U]     
md1 : active raid1 sda2[1] sdb2[1]
      683968 blocks [2/2] [_U]     
md0 : active raid1 sda1[1] sda2[1]
      3905472 blocks [2/2] [_U]

md0 : /
md1 : swap
md2 : /home

J'ai donc avec df :

administrateur@ubuntu:~$ df
Sys. de fich.           1K-blocs       Occupé Disponible Capacité Monté sur
/dev/md0               3844088    781248   2867568  22% /
none                    248212       216    247996   1% /dev
none                    252760         0    252760   0% /dev/shm
none                    252760        40    252720   1% /var/run
none                    252760         0    252760   0% /var/lock
none                    252760         0    252760   0% /lib/init/rw
/dev/md2               5801496    142612   5364180   3% /home


je veux faire la même chose sur les disques de 15Go mais avec le md2 qui récupère la place supplémentaire. Bref, voilà la procedure :

Boot la machine.
Suppression du /dev/sdb des grappes :

root@ubuntu:/home/administrateur# mdadm /dev/md0 --remove /dev/sdb1
mdadm: hot removed /dev/sdb1
root@ubuntu:/home/administrateur# mdadm /dev/md1 --remove /dev/sdb2
mdadm: hot removed /dev/sdb2
root@ubuntu:/home/administrateur# mdadm /dev/md2 --remove /dev/sdb3
mdadm: hot removed /dev/sdb3

Arrêt de la machine. Changement du deuxième disque de 10Go par un 15Go. Boot de la machine.
Repartitionnement du disque de 15Go, avec un /dev/sdb3 qui est plus grand du coup de 5Go.
Reconstruction de la grappe avec /dev/sdb :

root@ubuntu:/home/administrateur# mdadm --manage /dev/md0 --add /dev/sdb1
mdadm: added /dev/sdb1
root@ubuntu:/home/administrateur# mdadm --manage /dev/md1 --add /dev/sdb2
mdadm: added /dev/sdb2
root@ubuntu:/home/administrateur# mdadm --manage /dev/md2 --add /dev/sdb3
mdadm: added /dev/sdb3

Installation de grub sur /dev/sdb :

root@ubuntu:/home/administrateur# grub-install /dev/sdb
Installation finished. No error reported.

Arrêt de la machine. Inversion des disques (le 15Go passe sda, le 10Go passe sdb). Boot de la machine. Suppression du sdb de la grappe :

root@ubuntu:/home/administrateur# mdadm /dev/md0 --remove /dev/sdb1
mdadm: hot removed /dev/sdb1
root@ubuntu:/home/administrateur# mdadm /dev/md1 --remove /dev/sdb2
mdadm: hot removed /dev/sdb2
root@ubuntu:/home/administrateur# mdadm /dev/md2 --remove /dev/sdb3
mdadm: hot removed /dev/sdb3

Arrêt de la machine. Disque de 10Go supprimé et remplacé par le deuxième 15Go. La machine n'a maintenant que deux disques de 15Go. Boot de la machine. Partitionnement du sdb (en copiant à partir du sda):

sfdisk -d /dev/sda > sda.save
sfdisk /dev/sdb < sda.save --force

Ajout du nouveau sdb dans la grappe :

root@ubuntu:/home/administrateur# mdadm --manage /dev/md0 --add /dev/sdb1
mdadm: added /dev/sdb1
root@ubuntu:/home/administrateur# mdadm --manage /dev/md1 --add /dev/sdb2
mdadm: added /dev/sdb2
root@ubuntu:/home/administrateur# mdadm --manage /dev/md2 --add /dev/sdb3
mdadm: added /dev/sdb3

Installation de grub sur le sdb :

root@ubuntu:/home/administrateur# grub-install /dev/sdb
Installation finished. No error reported.

Maintenant, les partitions /dev/sda3 et /dev/sdb3 sont plus grandes de 5Go. Par contre le /dev/md2 n'a pas pris en compte les changements :

md2 : active raid1 sda3[1] sdb3[1]
      5894080 blocks [2/2] [_U]     
md1 : active raid1 sda2[1] sdb2[1]
      683968 blocks [2/2] [_U]     
md0 : active raid1 sda1[1] sda2[1]
      3905472 blocks [2/2] [_U]

Je fais donc un :

mdadm --grow /dev/md2  --size=max

root@ubuntu:/home/administrateur# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md2 : active raid1 sdb3[0] sda3[1]
      11136960 blocks [2/2] [UU]
      [==========>..........]  resync = 54.8% (6113856/11136960) finish=0.7min speed=109888K/sec
md1 : active raid1 sdb2[0] sda2[1]
      683968 blocks [2/2] [UU]
md0 : active raid1 sdb1[0] sda1[1]
      3905472 blocks [2/2] [UU]

Le md2 a grossi smile Par contre pas le système de fichier :

root@ubuntu:/home/administrateur# df
Sys. de fich.           1K-blocs       Occupé Disponible Capacité Monté sur
/dev/md0               3844088    781404   2867412  22% /
none                    248212       216    247996   1% /dev
none                    252760         0    252760   0% /dev/shm
none                    252760        40    252720   1% /var/run
none                    252760         0    252760   0% /var/lock
none                    252760         0    252760   0% /lib/init/rw
/dev/md2               5801496    142612   5364180   3% /home


On augmente la taille du fs de /dev/md2 en se basant sur la taille de la grappe /dev/md2 :

root@ubuntu:/home/administrateur# resize2fs /dev/md2 -S /dev/md2
resize2fs 1.41.11 (14-Mar-2010)
Le système de fichiers de /dev/md2 est monté sur /home ; le changement de taille doit être effectué en ligne
old desc_blocks = 1, new_desc_blocks = 1
En train d'effectuer un changement de taille en ligne de /dev/md2 vers 2784240 (4k) blocs.
Le système de fichiers /dev/md2 a maintenant une taille de 2784240 blocs.

root@ubuntu:/home/administrateur# df
Sys. de fich.           1K-blocs       Occupé Disponible Capacité Monté sur
/dev/md0               3844088    781404   2867412  22% /
none                    248212       216    247996   1% /dev
none                    252760         0    252760   0% /dev/shm
none                    252760        40    252720   1% /var/run
none                    252760         0    252760   0% /var/lock
none                    252760         0    252760   0% /lib/init/rw
/dev/md2              10962120    145484  10260060   2% /home


TADAAAAAAAAAAA !!!!

Was this article helpful?

Yes No

Category: Tutoriel GNU/Linux

Last updated on June 23, 2010 with 55 views

0 User Comments

There are no comments yet...Kick things off by filling out the form below.

Leave a Comment