\documentclass{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{geometry}
\geometry{top=15mm, bottom=15mm, left=1cm, right=1cm}
\usepackage[french]{babel}
\usepackage{pslatex}
\usepackage[colorlinks=true,urlcolor=black]{hyperref}
\usepackage{graphicx}
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\footrulewidth}{0.4pt}
\fancyfoot[L]{Uubu.fr}
\fancyfoot[R]{mer. mai 25 16:48:42 CEST 2016}
\lfoot{\Large \textit{Uubu.fr}}
\hypersetup{pdfinfo={
Title={pvmove},
Author={Sylvain Girod},
Creator={Bash script from uubu.fr's format version 1},
Producer={Bash script and PDFLaTeX},
Subject={Déplacer des extents physiques},
CreationDate={D:20160525164842},
ModDate={D:20160525164842},
Keywords={storages;raid;lvm}
}}
\begin{document}
 
\begin{center}
{\Huge pvmove }
\end{center}
\vspace{1cm}
 
\begin{flushleft}
 
{\large Déplacer des extents physiques}
 
\vspace{10mm}
 
\hspace{1mm}  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.
\vspace{5mm} \\
 
 
\hspace{1mm}  pvmove fonctionne comme suit:
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{1mm} 1.]{Un volume logique temporaire pvmove est créé pour stocké les détails de tous les mouvements de données requis.}
\item[\hspace{1mm} 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.}
\item[\hspace{1mm} 3.]{Les métadonnées du volume group sont mis à jours sur disque}
\item[\hspace{1mm} 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.}
\item[\hspace{1mm} 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}
\item[\hspace{1mm} 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.}
\end{description}
 
\hspace{1mm}  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.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge OPTIONS }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} --abort]{Annule tous les déplacement en cours. Si --atomic, tous les volumes logique restent dans le PV source.}
\item[\hspace{1mm} --alloc AllocationPolicy]{Sélectionne la stratégie d'allocation (anywhere|contiguous|cling|inherit|normal)}
\item[\hspace{1mm} --atomic]{Rend l'opération atomique. Cela s'assure que tous les volumes logiques affectés sont déplacés dans la destination ensemble.}
\item[\hspace{1mm} -b|--background]{Lance le service en tâche de fond}
\item[\hspace{1mm} --commandprofile ProfileName]{Sélectionne le profile de configuration de commande à utiliser}
\item[\hspace{1mm} -d|--debug]{Définis le niveau de débug, de 1 à 6 fois pour augmenter les détails}
\item[\hspace{1mm} -i|--interval Seconds]{interval d'affichage de la progression}
\item[\hspace{1mm} --noudevsync]{Désactive la synchronisation udev. Le processus n'attend pas de notification udev.}
\item[\hspace{1mm} -v|--verbose]{Mode verbeux}
\item[\hspace{1mm} -n|--name]{Déplace seulement les extents appartenant au volume logique spécifié}
\end{description}
 
\vspace{1cm}{\huge Exemples }
 
\
 
\hspace{1mm} Déplacer tous les extents physique utilisés par un LV dans /dev/sdb1 vers des extents physique ailleurs dans le volume group: \\
\hspace{1mm} \textbf{pvmove /dev/sdb1} \\
\hspace{1mm} Additionnellement, un périphérique de destination peut être spécifié: \\
\hspace{1mm} \textbf{pvmove /dev/sdb1 /dev/sdc1} \\
\hspace{1mm} Effectuer l'action seulement sur les extents appartiennent à un volume logique lvol1: \\
\hspace{1mm} \textbf{pvmove -n lvol1 /dev/sdb1 /dev/sdc1} \\
\hspace{1mm} 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: \\
\hspace{1mm} \textbf{pvmove /dev/sdb1:1000-1999} \\
\hspace{1mm} ou \\
\hspace{1mm} \textbf{pvmove /dev/sdb1:1000-1999 /dev/sdc1:0-999} \\
\hspace{1mm} Si la source et la destination sont sur le même disque, la stratégie d'alloctation anywhere peut être nécessaire: \\
\hspace{1mm} \textbf{pvmove --alloc anywhere /dev/sdb1:1000-1999 /dev/sdb1:0-999} \\
\hspace{1mm} La partie d'un volume logique spécifique présent dans une plage d'extents physique peut également être déplacé: \\
\hspace{1mm} \textbf{pvmove -n lvol1 /dev/sdb1:1000-1999 /dev/sdc1} \\
\end{flushleft}
\end{document}
