TUTOS.EU

Transférer à chaud un Logical Volume sur un autre disque

Ou comment migrer des données sous Linux avec LVM

Pour le coup c'est une fonctionnalité de dingue.
Le but est de transférer à chaud un logical volume sur un autre disque dur.

L'article https://myvmworld.fr/deplacer-donnees-gerees-lvm-pvmove/ m'a beaucoup aidé.
En anglais on a aussi https://www.golinuxhub.com/2018/04/how-to-migrate-move-logical-volumes-and-volume-group-disk/

Il est conseillé de faire une sauvegarde avant de tenter l'opération. Si les disques ne sont pas gérés par lvm, l'opération n'est pas possible.

Vous pouvez avoir un état des lieux de vos disques et point de montage avec

lsblk -f
Lien vers le fichier : cliquez ici Copier le code

Vous pouvez également voir sur quels disques sont vos volumes logiques avec

lvs -o+devices
Lien vers le fichier : cliquez ici Copier le code

Pour réaliser l'opération, le disque source et le disque cible doivent faire parti du même volume group. Il faudra inclure le disque cible à votre volume group si ce n'est pas déjà le cas.

On utilise la commande pvcreate pour prendre en compte un disque physique avec lvm.
Ci dessous on part du principe que ce disque se nomme sdb.

pvcreate /dev/sdb
Lien vers le fichier : cliquez ici Copier le code

Ensuite on ajoute ce disque sdb au volume groupe avec vgextend

vgextend nomvolumegroup /dev/sdb
Lien vers le fichier : cliquez ici Copier le code

Enfin on utilise la commande pvmove pour transférer un Logical Volume sur un autre disque.

Dans l'aide de pvmove que l'on peut voir sur linux.die.net il est dit :

To perform the action only on extents belonging to the single Logical Volume lvol1 do this:

pvmove -n lvol1 /dev/sdb1 /dev/sdc1

 

 

La commande à adapter est

pvmove -b -n nomlogicalvolume /dev/disquesource /dev/disquecible
Lien vers le fichier : cliquez ici Copier le code

L'évolution du transfert se voit avec

watch lvs -a -o+devices
Lien vers le fichier : cliquez ici Copier le code

Notez que l'on peut sortir un logical volume de son volume group actuel vers un nouveau avec la commande vgsplit -n. Cependant l'opération ne peut pas être faite à chaud, il faut au préalable désactiver le volume groupe à migrer.

Ci dessous on veut sortir le logical volume lv-monlv01 du volume group monvg01 pour le mettre dans monvg02.

On le désactive en tapant

lvchange monvg01 -an monvg01/lv-monlv01
Lien vers le fichier : cliquez ici Copier le code

On passe lv-monlv01 de monvg01 à monvg02 avec

vgsplit -n lv-monlv01 monvg01 monvg02
Lien vers le fichier : cliquez ici Copier le code

On le réactive avec

lvchange monvg01 -an monvg02/lv-monlv01
Lien vers le fichier : cliquez ici Copier le code

2