Apparence
Uubu.fr

Les systèmes Linux, l’open source, les réseaux, l’interopérabilité, etc.
« Il vaut mieux viser la perfection et la manquer que viser l’imperfection et l’atteindre. » (Bertrand Arthur William RUSSEL)
25 mai 2016

storages raid lvm           Gestion de périphériques


pvmove

pvmove

Déplacer des extents physiques

   pvmove permet de déplacer des extents physiques alloués dans un PV vers un ou plusieurs auters VG. On peut optionnellement spécifier un volume logique auquel cas seul les extents utilisés par ce LV seront déplacés. Si aucun PV de destination n'est spécifié, les règles d'allocation normales pour le volume group sont utilisés.

   pvmove fonctionne comme suit:

1. Un volume logique temporaire pvmove est créé pour stocké les détails de tous les mouvements de données requis.
2. Tout volume logique dans le volume group est recherché pour les données contigues qui doivent bouger en accord avec les arguments de la ligne de commande. Pour chaque portion de données trouvé, un nouveau segment est ajouté à la fin du LV pvmove. Ce segment prend la forme d'un mirroir temporaire pour copier la donnée depuis l'emplacement original vers le nouvel emplacement. Le LV d'origine est mis à jours pour utiliser le nouveau segment temporaire dans le LV pvmove au lieu d'accéder à la données directement.
3. Les métadonnées du volume group sont mis à jours sur disque
4. Le premier segment du volume logique pvmove est activé et démarré pour mirrorer la première partie des données. Seulement un segment est mirroré à la fois.
5. Un service vérifie la progression. Quand il détecte que le premier mirroir temporaire est in-sync, il casse ce mirroir pour que seul le nouvel emplacement soit utilisé et écrit un checkpoint dans les métadonnées du volume group sur disque. Puis il active le mirroir pour le segment suivant
6. Quand il n'y a plus de segment à mirrorer, le volume logique temporaire est supprimé et les métaddonées du volume group est mis à jours pour que les volumes logique reflètent les nouveaux emplacement.

   Si l'option --atomic est utilisé, une approche légèrement différente est utilisée pour le déplacement. Un volume pvmove temporaire est également créé pour stocker les détails de tous les données en mouvement. Ce LV temporaire contient tous les segments de divers LV qui doivent être déplacés. Cependant cette fois, un volume logique identique est alloué qui contient le même nombre de segments et un mirroire est créé pour copier le contenu du premier LV temporaire vers le second. Quand une copie complète est accomplie, les volume logiques temporaire sont supprimés, laissant derrière les segments sur le volume physique de destinatio. Si une annulation est émis durant le déplacement, tous les volumes logique à déplacer resteront dans le volume physique source.

OPTIONS

--abort Annule tous les déplacement en cours. Si --atomic, tous les volumes logique restent dans le PV source.
--alloc AllocationPolicy Sélectionne la stratégie d'allocation (anywhere|contiguous|cling|inherit|normal)
--atomic Rend l'opération atomique. Cela s'assure que tous les volumes logiques affectés sont déplacés dans la destination ensemble.
-b|--background Lance le service en tâche de fond
--commandprofile ProfileName Sélectionne le profile de configuration de commande à utiliser
-d|--debug Définis le niveau de débug, de 1 à 6 fois pour augmenter les détails
-i|--interval Seconds interval d'affichage de la progression
--noudevsync Désactive la synchronisation udev. Le processus n'attend pas de notification udev.
-v|--verbose Mode verbeux
-n|--name Déplace seulement les extents appartenant au volume logique spécifié

Exemples

Déplacer tous les extents physique utilisés par un LV dans /dev/sdb1 vers des extents physique ailleurs dans le volume group:
pvmove /dev/sdb1
Additionnellement, un périphérique de destination peut être spécifié:
pvmove /dev/sdb1 /dev/sdc1
Effectuer l'action seulement sur les extents appartiennent à un volume logique lvol1:
pvmove -n lvol1 /dev/sdb1 /dev/sdc1
Au lieu de déplacer le contenu de tous le périphérique, il est possible de spécifier une plage d'extents physiques, par exemple 1000 à 1999:
pvmove /dev/sdb1:1000-1999
ou
pvmove /dev/sdb1:1000-1999 /dev/sdc1:0-999
Si la source et la destination sont sur le même disque, la stratégie d'alloctation anywhere peut être nécessaire:
pvmove --alloc anywhere /dev/sdb1:1000-1999 /dev/sdb1:0-999
La partie d'un volume logique spécifique présent dans une plage d'extents physique peut également être déplacé:
pvmove -n lvol1 /dev/sdb1:1000-1999 /dev/sdc1