\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]{lun. juin 6 10:22:52 CEST 2016}
\lfoot{\Large \textit{Uubu.fr}}
\hypersetup{pdfinfo={
Title={lvconvert},
Author={Sylvain Girod},
Creator={Bash script from uubu.fr's format version 1},
Producer={Bash script and PDFLaTeX},
Subject={Convertis un volume logique lineaire vers un mirroir ou snapshot},
CreationDate={D:20160606102252},
ModDate={D:20160606102252},
Keywords={storages;raid;lvm}
}}
\begin{document}
 
\begin{center}
{\Huge lvconvert }
\end{center}
\vspace{1cm}
 
\begin{flushleft}
 
{\large Convertis un volume logique lineaire vers un mirroir ou snapshot}
 
\vspace{10mm}
 
\hspace{1mm}  lvconvert est utilisé pour changer le type de segment ou les caractéristiques d'un volume logique. Par exemple, il peut ajouter ou supprimer les images redondantes d'un volume logique, changer le type de log d'un mirroir, ou désigner un volume logique comme dépôt de snapshot.
\vspace{5mm} \\
 
 
\hspace{1mm}  Si la conversion nécessite l'allocation d'extents physique, l'allocation sera restreinte à ces extents physique. Si la conversion libère des extents physiques et qu'un ou plusieurs PV sont spécifiés, les extents physiques sont d'abords libérés depuis ces PV.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge opérations }
 
\
 
\hspace{1mm}  Une seule de ces option est requise:
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{1mm} --cache, -H, --type cache]{Convertis un volume logique en LV cache avec l'utilisation d'un pool cache spécifié avec --cachepool.}
\item[\hspace{1mm} --corelog]{identique à --mirrolog core}
\item[\hspace{1mm} --merge]{Fusionne un snapshot dans son volume d'origine ou fusionne une image raid1 (qui a été splitée de son mirroir avec --trackchanges) dans son mirroir. Si les 2 volumes ne sont pas ouverts, la fusionne démarre immédiatement. Fusionner un snapshot dans un origine qui ne peut pas être fermé et diferré à la prochaine activation du volume. Durant la fusion, les lectures et écritures de l'origine apparaîssent comme s'ils étaient dirigés dans le snapshot à fusionner. Une fois terminé, le snapshot est supprimé. Plusieurs snapshots peuvent être spécifiés sur la ligne de commande ou un @tag peut être utilisé pour spécifier plusieurs snapshots.}
\item[\hspace{1mm} --mirrorlog \{disk|core|mirrored\}]{Spécifie le type de log à utiliser. Défaut: disk, qui est persistant est nécessite peut d'espace disque, généralement sur un disques séparé. Core peut être utile pour les mirroirs à durée de vie courte: il signifie que le mirroir est regénéré en copiant les données depuis le premier périphérique à chaque fois que le périphérique est actuvé. mirrored créé un log persistant qui est lui-même mirroré.}
\item[\hspace{1mm} --mirrors]{Spécifie le degré du mirroir à créer. Par exemple "-m 1" convertis le volume logique d'origine en un mirroir avec 2 parties; c'est à dire un volume linéaire avec une copie. Il y a 2 implémentations mirroir qui correspondent aux type de segment mirroir et raid1. le type par défaut est raid1.}
\item[\hspace{1mm} --repair]{Répare un mirroir après une erreur disque et tente de fixer les métadonnées de pool thin. Par défaut, le nombre de mirroir d'origine sera restauré si possible. -y permet de répondre automatiquement aux questions. -f permet de ne rien remplacer. --use-policies utilise la stratégie de remplacement spécifiée dans lvm.conf. La réparation des pools thin ne peut se faisre que sur les volume thin inactifs. Il n'y a pas de validation des métadonnées entre le kernel et lvm2, et nécessite un travail manuel ultérieur. Une fois réparé, les anciennes métadonnées sont disponibles dans le LV "<pool>\_meta<n>".}
\item[\hspace{1mm} --replace]{Supprime le PV spécifié et le remplace avec un disponible dans le VG ou depuis la liste fournie. Seulement disponible pour les types de segment raid.}
\item[\hspace{1mm} --snapshot]{Recréé un snapshot de volumes logique après avoir été séparés en utilisant --splitsnapshot.}
\item[\hspace{1mm} --split]{Sépare le volume logique spécifié.}
\item[\hspace{1mm} --splitcache]{Sépare le volume logique cache du pool de cache. Avant qu'il soit sortie du cache, le cache est vidé. Le volume est ainsi laissé inutilisé et peut être utilisé pour cacher un autre volume.}
\item[\hspace{1mm} --splitsnapshot]{Sépare le volume logique snapshot spécifié de son origine. Le volume splitté contient les chunks qui diffèrent de l'origine avec les métadonnées les décrivant. Ce volume peut être effacé et détruit avec lvremove. l'inverse de --snapshot}
\item[\hspace{1mm} --splitmirrors]{Spécifie le nombre d'images redondantes d'un mirroir à splitter pour former un nouveau volume logique. Un nom doit être fournis pour le nouveau LV avec --name, sauf si --trackchanges est spécifié}
\item[\hspace{1mm} -T, --thin, --type thin]{Converti le volume logique en volume logique thin du pool thin spécifié avec --thinpool. Le volume logique original est renomé en un nouveau volume logique lecture-seule. utiliser --originname pour spécifier un nom. Le volume ne peut plus être modifié tant qu'il est utilisé comme volume d'origine externe pour les zones non-provisionnées d'un volume logique thin.}
\item[\hspace{1mm} --type SegmentType]{Utilisé pour convertir un volume logique en un autre type de segment (cache, cache-pool, raid1, snapshot, thin, ou thin-pool). En convertissant un volume logique en LV cache, l'argument --cachepool est requis. En convertissant un volume logique en LV thin, --thinpool est requis.}
\item[\hspace{1mm} --uncache]{décache le volume logique cache spécifié. Avant que le volume devienne non-caché, le cache est vidé. à la différence avec --splitcache le volume pool cache est supprimé. Cette option est l'inverse de --cahe.}
\end{description}
 
\vspace{1cm}{\huge OPTIONS }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} -b, --background]{Lance en tâche de fond}
\item[\hspace{1mm} --cachepolicy Policy]{Définis la stratégie de cache. mq est le nom de la stratégie de base. smq est plus avancé.}
\item[\hspace{1mm} --cachepool CachePoolLogicalVolume\{Name|Path\}]{Cet argument est nécessaire en convertissant un volume logique en LV cache.}
\item[\hspace{1mm} --cachesettings Key=Value]{Définis les paramètres de cache.}
\item[\hspace{1mm} -c, --chunksize ChunkSize\texttt{[}b|B|s|S|k|K|m|M|g|G\texttt{]}]{Donne la taille de chunk pour les volumes logique snapshot, pool cache et pool thin. Pour les snapshots, la valeur doit être en puissance de 2 entre 4Kib et 512Kib. Défaut: 4. pour les cache, la valeur doit être entre 32KiB et 1GiB, défaut: 64. pour les pools thin, la valeur doit être entre 64KiB et 1GiB.}
\item[\hspace{1mm} --discards \{ignore|nopassdown|passdown\}]{Traitement des annulations par la couche thin dans le kernel et passé au volume physique.}
\item[\hspace{1mm} -i, --interval <seconds>]{Interval d'affichage de la progression en \%}
\item[\hspace{1mm} --name]{Le nom à appliquer à un volume logique qui a été splitté depuis un volume logique mirroir}
\item[\hspace{1mm} --noudevsync]{Désactive la synchronisation udev. Le processus n'attend pas de notification udev.}
\item[\hspace{1mm} --oniginname NewExternalOriginVolumeName]{Le nouveau nom pour le volume logique original, qui devient le volume origine externe pour un volume logique thin. Sans cette option, le nom par défaut est "lvol<n>" où <n> est le numéro LVM interne du volume logique. Ce volume sera lecture seule est ne peut plus être modifié tant qu'il est utilisé comme origine externe.}
\item[\hspace{1mm} --poolmetadata PoolMetadataLogicalVolume\{Name|Path\}]{Spécifie les métadonnées cache ou thin. La taille devrait être entre 2Mio et 16Gio. Le pool cache est spécifié avec l'option --cachepool. Le pool thin est spécifié avec l'option --thinpool. Si le pool spécifié existe déjà, les métadonnée du pool seront placées dans le volume logique. Les propriétés du poor sont préservées par défaut. Il peut être utile pour réparer les métadonnées de pool ou pour redimensionner offline.}
\item[\hspace{1mm} --poolmetadatasize PoolMetadataSize\texttt{[}b|B|s|S|k|K|m|M|g|G\texttt{]}]{Définis la taille des métadonnées du pool thin ou cache. La valeur par défaut est estimée avec (Pool\_LV\_size / Pool\_LV\_chunk\_size addentry articles autoadd autofind autoprod createalpha createbeta createdb createprod findentry fullpowa generator.php genhtml genman genmd gentex html insert man md pdf regen setfor setfor2 sql temp temp-new-pc tex threads ToDo 64bits).}
\item[\hspace{1mm} --poolmetadataspare \{y|n\}]{Contrôle la création et la maintenance de métadonnées de volume logique spare utilisé pour la récupération automatique de pool. Seul un tel volume est maintenu dans un volume group avec une taille des plus grosses métadonnées de volume du pool. Défaut: yes.}
\item[\hspace{1mm} -r, --readahead \{ReadAheadSectors|auto|none\}]{Définis le compteur de secteurs de readhead des métadonnées de volume logique du pool thin. Défaut: auto.}
\item[\hspace{1mm} -R, --regionsize MirrorLogRegionSize]{Un mirroir est divisé en régions de cette taille (en Mo), et le log mirroir utilise cette granularité pour tracer quelles région sont en synchro}
\item[\hspace{1mm} --stripes]{Indique le nombre de stripes. C'est égale au nombre de volumes physiques pour disperser le volume logique. Ne peut pas s'appliquer à un espace déjà alloué.}
\item[\hspace{1mm} -I, --stripesize]{Indique le nombre de Ko pour la granularité des stripes. La tailles doit être une puissance de 2 mais ne peut excéder la taille d'extent physique.}
\item[\hspace{1mm} --thinpool ThinPoolLogicalVolume\{Name|Path\}]{Spécifie ou convertis un volume logique en un volume de données de pool thin. Le contenu du volume convertis est perdu. Les métadonnées du volume logique du pool thin peuvent être spécifiés avec l'option --poolmetadata ou alloués avec --poolmetadatasize.}
\item[\hspace{1mm} --trackchanegs]{Avec --splitmirrors dans un raid1, suit les changements pour que l'image lecture seul détacchée peut être fusionnée efficacement de nouveau dans le mirroir. Seul les régions du périphérique détaché où les données ont changés seront resynchronisés.}
\item[\hspace{1mm} -Z, --zero \{y|n\}]{Contrôle les 0 des premiers 4Kio de données dans le snapshot. Si le volume est lecture seul, le snapshot ne sera pas mis à 0. Pour les volume thin il contrôle les 0 des blocks provisionnés. Noter que provisionner un grand nombre de chunks à 0 impacte les performances.}
\end{description}
 
\vspace{1cm}{\huge Exemples }
 
\
 
\hspace{1mm} Convertir le volume logique linéaire "vg00/lvol1" en volume logique mirroir: \\
\hspace{1mm} \textbf{lvconvert -m1 vg00/lvol1} \\
\hspace{1mm} Convertir le volume logique linéaire "vg00/lvol1" en volume logique RAID1: \\
\hspace{1mm} \textbf{lvconvert --type raid1 -m1 vg00/lvol1} \\
\hspace{1mm} Convertir un mirroir avec un log disque en un mirroir avec un log en mémoire: \\
\hspace{1mm} \textbf{lvconvert --mirrorlog core vg00/lvol1} \\
\hspace{1mm} Convertir un mirroir avec un log en mémoire en un mirroir avec un log disque: \\
\hspace{1mm} \textbf{lvconvert --mirrorlog disk vg00/lvol1} \\
\hspace{1mm} Convertir un volume logique mirroir en un volume logique linéaire: \\
\hspace{1mm} \textbf{lvconvert -m0 vg00/lvol1} \\
\hspace{1mm} Convertir un volume logique mirroir en un volume logique RAID1 avec le même nombre d'images: \\
\hspace{1mm} \textbf{lvconvert --type raid1 vg00/mirror\_lv} \\
\hspace{1mm} Convertir le volume logique "vg00/lvol2" en snapshot du volume original "vg00/lvol1": \\
\hspace{1mm} \textbf{lvconvert -s vg00/lvol1 vg00/lvol2} \\
\hspace{1mm} Convertir un volume logique linéaire "vg00/lvol1" en mirroir, en utilisant des extents physiques /dev/sda:0-15 et /dev/sdb:0-15 pour l'allocation des nouveaux extents: \\
\hspace{1mm} \textbf{lvconvert -m1 vg00/lvol1 /dev/sda:0-15 /dev/sdb:0-15} \\
\hspace{1mm} Convertir le volume logique mirroir "vg00/lvmirror1" en linéaire, libérant les extents physiques de /dev/sda: \\
\hspace{1mm} \textbf{lvconvert -m0 vg00/lvmirror1 /dev/sda} \\
\hspace{1mm} Fusionner "vg00/lvol1\_snap" dans son origine: \\
\hspace{1mm} \textbf{lvconvert --merge vg00/lvol1\_snap} \\
\hspace{1mm} Si "vg00/lvol1", "vg00/lvol2" et "vg00/lvol3" sont tous taggés avec "some\_tag" chaque volume logique snapshot sera fusionné en série. Si --background est utilisé il démarre la fusion des snapshots en parallèle: \\
\hspace{1mm} \textbf{lvconvert --merge @some\_tag} \\
\hspace{1mm} Extrait une image du mirroir, créant un nouveau volume logique "lv\_split". Le mirroir d'où l'image est extraite est réduite en accord. S'il y avait un mirroir 2-way (créé avec -m 1), le volume original résultant sera linéaire: \\
\hspace{1mm} \textbf{lvconvert --splitmirrors 1 --name lv\_split vg00/lvmirror1} \\
\hspace{1mm} Un volume logique créé avec --type raid1 peut utiliser --trackchanges en splittant une image. Détacher une image du lv mirroir lv\_raid1 comme périphérique lecture seul et suivre les changements: \\
\hspace{1mm} \textbf{lvconvert --splitmirrors 1 --trackchanges vg00/lv\_raid1} \\
\hspace{1mm} Fusionner une image qui a été détachée temporairement de son mirroir avec --trackchanges dans son mirroir d'origine: \\
\hspace{1mm} \textbf{lvconvert --merge vg00/lv\_raid1\_rimage\_1} \\
\hspace{1mm} Remplacer le volume physique /dev/sdb1 dans le volume logique RAID1 my\_raid1 avec le volume physique /dev/sdf1. \\
\hspace{1mm} \textbf{lvconvert --replace /dev/sdb1 vg00/my\_raid1 /dev/sdf1} \\
\hspace{1mm} Convertis le volume logique vg00/lvpool en un pool thin avec une taille de chunk de 128Kio et convertit vg00/lv1 en volume thin dans ce pool. le lv d'origine est utilisé comme origine externe d'origine, où toutes les écriture vers de tels volumes sont stockés dans le pool: \\
\hspace{1mm} \textbf{lvconvert --type thin --thinpool vg00/lvpool -c 128 lv1} \\
\hspace{1mm} Convertis le volume logique vg00/origin en volume thin dans le pool thin vg00/lvpool. Ce volume thin utilisera vg00/origin comme volume d'origine externe pour les zones non-provisionnées dans ce volume. L'origine externe utilise le nouveau nom vg00/external: \\
\hspace{1mm} \textbf{lvconvert -T --thinpool vg00/lvpool --originname external vg00/origin} \\
\hspace{1mm} Convertis un volume logique existant en LV pool cache utilisant les métadonnées de cache donnés: \\
\hspace{1mm} \textbf{lvconvert --type cache-pool --poolmetadata vg00/lvx\_meta vg00/lvx\_data} \\
\hspace{1mm} \textbf{lvrename vg00/lvx\_data vg00/lvx\_cachepool} \\
\hspace{1mm} Convertis un volume logique existant en un LV cache dans le pool donné et une taille de chunk de 128Kio: \\
\hspace{1mm} \textbf{lvconvert --cache --cachepool vg00/lvx\_cachepool -c 128 vg00/lvx} \\
\hspace{1mm} Détacher le pool cache d'un volume logique caché vg00/lvol1 existant et laisser le pool cache non-utilisé: \\
\hspace{1mm} \textbf{lvconvert --splitcache vg00/lvol1} \\
\hspace{1mm} Supprimer le pool cache d'un volume logique existant vg00/lvol1: \\
\hspace{1mm} \textbf{lvconvert --uncache vg00/lvol1} \\
\end{flushleft}
\end{document}
