Y'a aucun risque ...

Posted on dim. 14 juin 2009 in Linux

L'objectif de ce post est de montrer comment diminuer la taille de d'une partition ext3 située sur un volume logique LVM lui-même sur un mirroir RAID 1 et ce, sans perdre de données. Car le tout le monde le sait, c'est dur de perdre sa collec de Steven Segeal.

L'idée de base est d'enlever un des deux volumes du RAID afin de pouvoir récupérer les données en cas de désastre (mais ça arrivera pas? hein ? )

Etape 1 : on retire un volume du raid

Etat de base (cat /proc/mdstat) :

cat /proc/mdstat

Personalities : [raid1]
md1 : active raid1 sda2[0] sdb2[1]
732330944 blocks [2/2] [UU]
unused devices:

On marque le deuxième disque comme étant malade (pour pouvoir le retirer) :

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

On retire le deuxième disque

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

Un petit coup de /proc/mdstat pour voir à quoi ça ressemble :

cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sda2[0]
      732330944 blocks [2/1] [U_]
unused devices:

Le disque est bien retiré, on peut faire toutes les âneries que l'on veux sur l'autre Etat de base :

df -h | grep data
/dev/mapper/vg0-data  676G  279G  363G  44% /media/data

On cherche a retailler la partition /media/data et

donc de sauver 40Go pour y installer des VM (KVM)

On demonte la partition (of course) :

umount /media/data

Petit fsck (a faire, sinon resize2fs va le demander) :

e2fsck -f -y /dev/mapper/vg0-data

On resize vraiment (c'est là que ca fait mal en général) Ici on retire plus gros pour être certain, quitte à ré agrandir la partition sur la fin. Cette tactique est tirée de la doc Ubuntu du le sujet.

note : 626G = 676G-50G (j'ai pris large)

resize2fs -p /dev/mapper/vg0-data 626G
resize2fs 1.41.3 (12-Oct-2008)
Resizing the filesystem on /dev/mapper/vg0-data to 164102144 (4k) blocks.
Début de la passe 2 (max = 5899242)
Relocalisation de blocs       XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Début de la passe 3 (max = 5494)
Examen de la table d'i-noeuds XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Début de la passe 4 (max = 16406)
Mise à jour des références d'i-noeudsXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Le système de fichiers /dev/mapper/vg0-data a maintenant une taille de 164102144 blocs.

On resize le volume logique (lui on le resizze à la vrai taille) :

lvresize -L -40G /dev/mapper/vg0-data
  WARNING: Reducing active logical volume to 646,64 GB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce data? [y/n]: y
  Reducing logical volume data to 646,64 GB
  Logical volume data successfully resized

On maximize la partition ext3 :

resize2fs /dev/mapper/vg0-data
resize2fs 1.41.3 (12-Oct-2008)
Resizing the filesystem on /dev/mapper/vg0-data to 169511936 (4k) blocks.
Le système de fichiers /dev/mapper/vg0-data a maintenant une taille de 169511936 blocs.

Le grand soir :

mount /dev/mapper/vg0-data /media/data

Ouf tout le monde est là !!!

Restoration du mirroir RAID-1 :

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

A nous les machines virtuelles.