                         Guide pratique de LVM

Version franaise du LVM HOWTO

  A. J. Lewis

   <alewis CHEZ redhat POINT com>

   Adaptation franaise: Emmanuel Araman

   Relecture de la version franaise: Camille Huot, Alain Portal

   Prparation de la publication de la v.f.: Jean-Philippe Gurard

   Version : 0.14.fr.1.0

   Copyright  2002-2003 Sistina Software, Inc

   Copyright  2004 Red Hat, Inc

   Copyright  2004 Emmanuel Araman, Camille Huot, Alain Portal,
   Jean-Philippe Gurard

   Vous est autoris  copier, distribuer et modifier ce document
   selon les termes de la Licence de documentation libre GNU (GFDL),
   version 1.2 ou ultrieure, telle que publie par la Free Software
   Foundation ; sans section inaltrable, ni texte de premire de
   couverture, ni texte de quatrime de couverture. La section  GNU
   Free Documentation License  contient une copie de cette licence.

   Permission is granted to copy, distribute and/or modify this
   document under the terms of the GNU Free Documentation License,
   Version 1.2 published by the Free Software Foundation; with no
   Invariant Sections, no Front-Cover Texts and no Back-Cover Texts.
   A copy of the license is included in the section entitled "GNU
   Free Documentation License".

   Ce document est distribu dans l'espoir qu'il sera utile mais SANS
   AUCUNE GARANTIE, explicite ou implicite. Mme si tous les efforts
   ont t faits pour assurer l'exactitude des informations fournies
   ici, les auteurs, diteurs, responsables des mises  jours et
   contributeurs n'assument AUCUNE RESPONSABILIT pour les erreurs ou
   les dommages, directs ou indirects, qui pourraient rsulter de
   l'utilisation des informations ci-incluses.

   This document is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY, either expressed or implied. While every
   effort has been taken to ensure the accuracy of the information
   documented herein, the
   author(s)/editor(s)/maintainer(s)/contributor(s) assumes NO
   RESPONSIBILITY for any errors, or for any damages, direct or
   consequential, as a result of the use of the information
   documented herein.

   11 octobre 2004

   +----------------------------------------------------------------+
   | Historique des versions                                        |
   |----------------------------------------------------------------|
   | Version 0.14.fr.1.0       | 2004-10-11      | EA, CH, AP, JPG  |
   |----------------------------------------------------------------|
   | Premire traduction franaise                                  |
   |----------------------------------------------------------------|
   | Version 0.14              | 2004-10-06      | AJL              |
   |----------------------------------------------------------------|
   | Ajout d'une rfrence au script lvm2_createinitrd dans les     |
   | sources ; petite mise  jour de l'exemple de lvcreate ; ajout  |
   | de  vgchange -ay  dans la recette  Dplacer un groupe de    |
   | volumes vers un autre systme  (Added reference to            |
   | lvm2_createinitrd in source tree; Adjusted lvcreate example    |
   | slightly; Added 'vgchange -ay' in 'Moving a volume group to    |
   | another system' recipe).                                       |
   |----------------------------------------------------------------|
   | Version 0.13              | 2004-08-16      | AJL              |
   |----------------------------------------------------------------|
   | Clarification de la description sur les liens ; correction du  |
   | nombre majeur du priphrique de contrle de dm ; suppression  |
   | de /boot de vg dans l'exemple de petite configuration LVM ;    |
   | ajout de commentaires sur /boot et / dans LVM ; suppression    |
   | d'un lien mort (Clarify symlink farm description; Fix dm       |
   | control device major number; Remove /boot from vg in small lvm |
   | setup example; Add notes about /boot and / on LVM; Remove      |
   | outdated link).                                                |
   |----------------------------------------------------------------|
   | Version 0.12              | 2004-06-07      | AJL              |
   |----------------------------------------------------------------|
   | Mise  jour de la FAQ sur LVM 2 (Updated LVM 2 FAQ entries)    |
   |----------------------------------------------------------------|
   | Version 0.11              | 2004-05-03      | AJL              |
   |----------------------------------------------------------------|
   | Mise  jour de la FAQ sur LVM 2 (Updated LVM 2 FAQ entries)    |
   |----------------------------------------------------------------|
   | Version 0.10              | 2004-04-22      | AJL              |
   |----------------------------------------------------------------|
   | Retrait de -print0 de la commande find suite aux retours       |
   | indiquant que cela ne fonctionne pas (removed -print0 from     |
   | find command after receiving reports that it doesn't work).    |
   |----------------------------------------------------------------|
   | Version 0.9               | 2004-04-16      | AJL              |
   |----------------------------------------------------------------|
   | Ajout de -print0  la commande find avant la redirection vers  |
   | cpio (Added -print0 to find command before pipingit to cpio) ; |
   | changement de la ligne de commande vgimport pour LVM 2         |
   | (Changed vgimport command line for LVM 2) ; ajout de ext3 au   |
   | paragraphe de redimensionnement de ext2 (Added ext3 to the     |
   | ext2 resize section) ; mise  jour de la FAQ (Updated FAQ)     |
   | mise  jour des liens (Updated Links section).                 |
   |----------------------------------------------------------------|
   | Version 0.8               | 2004-02-25      | AJL              |
   |----------------------------------------------------------------|
   | Mise  jour de l'emplacement du CVS et des liens FTP (Updated  |
   | CVS locations and FTP links) ; ajout d'un paragraphe sur       |
   | l'extension d'un systme de fichiers JFS (Added section on     |
   | extending a JFS filesystem) ; corrections typographiques --    |
   | utilisation d'aspell sur le document (Fixed typos - Ran aspell |
   | against document).                                             |
   |----------------------------------------------------------------|
   | Version 0.7               | 2004-02-16      | AJL              |
   |----------------------------------------------------------------|
   | Mise  jour pour inclure les informations sur LVM 2 et le      |
   | mappeur de priphriques (Updated to include LVM 2 and device  |
   | mapper information)  mise  jour des adresses lectroniques    |
   | (Updated email addresses) ; mise  jour des droits             |
   | d'utilisation (Updated copyright) ; ajout de la FAQ (Added FAQ |
   | section) ; ajout de la licence (Added document license) ; mise |
   |  jour vers DocBook 4.2 (Updated to docbook 4.2).              |
   |----------------------------------------------------------------|
   | Version 0.6               | 2003-12-09      | AJL              |
   |----------------------------------------------------------------|
   | Mise  jour pour LVM 1.0.8 (Updated for LVM 1.0.8) ;           |
   | rparation d'un lien cass (fixed broken link) ; clarification |
   | de la partie sur le script d'initialisation RedHat (Clarified  |
   | redhat init script section).                                   |
   |----------------------------------------------------------------|
   | Version 0.5               | 2003-02-10      | AJL              |
   |----------------------------------------------------------------|
   | Mise  jour des informations du script initscript de RedHat    |
   | pour les versions 7.0 et suprieures (Updated Redhat           |
   | initscript information for 7.0 and above) ; ajout des          |
   | informations pour supprimer une table de partitions d'un       |
   | disque lorsque pvcreate choue (Added information on removing  |
   | a partition table from a disk if pvcreate fails) ; la taille   |
   | par dfaut de PE est dsormais de 32 Mo (Default PE size is    |
   | 32MB now) ; mise  jour de la mthode d'instantans avec XFS   |
   | (Updated method for snapshotting under XFS).                   |
   |----------------------------------------------------------------|
   | Version 0.4               | 2002-12-16      | AJL              |
   |----------------------------------------------------------------|
   | Mise  jour pour LVM 1.0.6 (Updated for LVM 1.0.6).            |
   |----------------------------------------------------------------|
   | Version 0.3               | 2002-09-16      | AJL              |
   |----------------------------------------------------------------|
   | Suppression de l'exemple de pvmove du chapitre  Oprations de |
   | commandes  -- nous pointons dsormais vers la recette plus    |
   | dtaille sur pvmove qui contient diffrents avertissements    |
   | (removed example pvmove from Command Operations section - we   |
   | now just point to the more detailed recipe on pvmove that      |
   | contains various warnings and such).                           |
   |----------------------------------------------------------------|
   | Version 0.2               | 2002-09-11      | AJL              |
   |----------------------------------------------------------------|
   | Mise  jour pour LVM 1.0.5 et conversion vers DocBook XML      |
   | 4.1.2. (Updated for LVM 1.0.5 and converted to DocBook XML     |
   | 4.1.2).                                                        |
   |----------------------------------------------------------------|
   | Version 0.1               | 2002-04-28      | gf               |
   |----------------------------------------------------------------|
   | Conversion initiale du source du format Latex de Sistina vers  |
   | le format LinuxDoc du tLDP (Initial conversion from Sistina's  |
   | LaTeX source and import to tLDP in LinuxDoc format).           |
   +----------------------------------------------------------------+

   Rsum

   Ce document explique comment compiler, installer et configurer le
   gestionnaire de volumes logiques (LVM) de Linux. Il inclut aussi
   une description synthtique de LVM. Cette version de guide
   pratique couvre LVM 2 avec le mappeur de priphriques et LVM
   1.0.8.

   -------------------------------------------------------------------

   Table des matires

   Introduction

                1. Dernire version de ce document

                2. Limitations de responsabilit

                3. Auteurs

   1. Qu'est-ce que LVM ?

   2. Qu'est-ce que la gestion par volumes logiques ?

                1. Pourquoi en voudrais-je ?

                2. Bnfices de la gestion par volumes logiques sur
                un petit systme

                3. Avantages de la gestion par volumes logiques sur
                un gros systme

   3. Anatomie de LVM

                1. Groupe de volumes (Volume Group, VG)

                2. Volume physique (Physical Volume, PV)

                3. Volume logique (Logical Volume, LV)

                4. Extent physique (Physical Extent, PE)

                5. Extent logique (Logical Extent, LE)

                6. Mettre tout ensemble

                7. Types de correspondances (linaire/rpartie)

                8. Les instantans (snapshots)

   4. Questions frquemment poses

                1. FAQ LVM 2

                2. FAQ LVM 1

   5. Obtenir LVM

                1. Tlcharger le code source

                2. Tlcharger le code source de dveloppement par
                CVS

                3. Avant de commencer

                4. Configuration initiale

                5. Rcupration du code source

                6. Mise  jour du code

                7. Commencer un projet

                8. Bidouiller le code

                9. Conflits

   6. Construire les modules du noyau

                1. Construire le module noyau device-mapper

                2. Construire le module du noyau pour LVM 1

                             2.1. Fabriquer un correctif pour votre
                             noyau

                             2.2. Construire le module LVM pour Linux
                             2.2.17+

                             2.3. Compiler les modules LVM pour Linux
                             2.4

                             2.4. Vrifier le systme de fichiers
                             proc

   7. Scripts de dmarrage pour LVM 1

                1. Caldera

                2. Debian

                3. Mandrake

                4. Redhat

                5. Slackware

                6. SuSE

   8. Scripts de dmarrage pour LVM 2

   9. Compiler LVM  partir des sources

                1. Compiler la bibliothque et les utilitaires LVM

                2. Installer la bibliothque LVM et les utilitaires

                3. Supprimer la bibliothque LVM et les utilitaires

   10. Migrer d'une version prcdente de LVM vers LVM 1.0.8

                1. Migrer vers LVM 1.0.8 avec une partition racine
                non LVM

                2. Migrer vers LVM 1.0.8 avec une partition racine en
                LVM et initrd

   11. Tches courantes

                1. Initialiser des disques ou des partitions de
                disques

                2. Crer un groupe de volumes

                3. Activer un groupe de volumes

                4. Enlever un groupe de volumes

                5. Ajouter un volume physique  un groupe de volumes

                6. Supprimer un volume physique d'un groupe de
                volumes

                7. Crer un volume logique

                8. Supprimer un volume logique

                9. tendre un volume logique

                10. Rduire un volume logique

                11. Migrer des donnes hors d'un volume physique

   12. Partitionnement de disques

                1. Plusieurs partitions sur le mme disque

                2. tiquettes de disque Sun (Sun disk labels)

   13. Recettes

                1. Mettre en place LVM avec trois disques SCSI

                             1.1. Prparation des disques

                             1.2. Configuration du groupe de volumes

                             1.3. Cration du volume logique

                             1.4. Cration du systme de fichiers

                             1.5. Test du systme de fichiers

                2. Mise en place de LVM sur trois disques SCSI avec
                rpartition (striping)

                             2.1. Prparation des partitions de
                             disque

                             2.2. Configuration du groupe de volumes

                             2.3. Cration du volume logique

                             2.4. Cration du systme de fichiers

                             2.5. Test du systme de fichiers

                3. Ajouter un nouveau disque dans un systme avec
                plusieurs disques SCSI

                             3.1. Situation actuelle

                             3.2. Prparation du partitionnement du
                             disque

                             3.3. Ajout des nouvelles partitions au
                             groupe de volumes

                             3.4. Extension des systmes de fichiers

                             3.5. Remontage des volumes tendus

                4. Faire une sauvegarde avec un instantan (snapshot)

                             4.1. Crer le volume d'instantan

                             4.2. Monter le volume d'instantan

                             4.3. Faire la sauvegarde

                             4.4. Supprimer l'instantan

                5. Enlever un disque

                             5.1. Distribuer les anciens extents vers
                             des disques existants du groupe de
                             volumes

                             5.2. Distribuer les anciens extents sur
                             un nouveau disque de remplacement

                6. Dplacer un groupe de volumes vers un autre
                systme

                             6.1. Dmonter le systme de fichiers

                             6.2. Marquer le groupe de volumes comme
                             inactif

                             6.3. Exporter le groupe de volumes

                             6.4. Importer le groupe de volumes

                             6.5. Activer le groupe de volumes

                             6.6. Monter le systme de fichiers

                7. Diviser un groupe de volumes

                             7.1. Dterminer l'espace libre

                             7.2. Dplacer les donnes des disques 
                             rutiliser

                             7.3. Crer un nouveau groupe de volumes

                             7.4. Enlever le volume restant

                             7.5. Crer le nouveau volume logique

                             7.6. Crez un systme de fichiers sur le
                             volume

                             7.7. Montez le nouveau volume

                8. Convertir le systme de fichiers racine en LVM 1

                             8.1. Dmarrer en mode mono-utilisateur

                             8.2. Utiliser Parted

                             8.3. Redmarrer

                             8.4. Vrifier les options de
                             configuration du noyau

                             8.5. Ajuster le type de partition

                             8.6. Configurer LVM 1 pour la nouvelle
                             configuration

                             8.7. Crer le systme de fichiers

                             8.8. Mise  jour de /etc/fstab

                             8.9. Crez une image disque RAM
                             d'initialisation pour LVM 1

                             8.10. Mise  jour de /etc/lilo.conf

                             8.11. Lancez lilo pour crire le nouveau
                             secteur de boot

                             8.12. Redmarrer avec LVM

                             8.13. Ajoutez le reste du disque dans
                             LVM

   A. Oprations dangereuses

                1. Restaurer les UUID de VG avec uuid_fixer

                2. Partager des volumes LVM

   B. Signaler des erreurs ou des bogues

   C. Contacts et liens

                1. Listes de diffusion

                2. Liens

   D. GNU Free Documentation License

                1. PREAMBLE

                2. APPLICABILITY AND DEFINITIONS

                3. VERBATIM COPYING

                4. COPYING IN QUANTITY

                5. MODIFICATIONS

                6. COMBINING DOCUMENTS

                7. COLLECTIONS OF DOCUMENTS

                8. AGGREGATION WITH INDEPENDENT WORKS

                9. TRANSLATION

                10. TERMINATION

                11. FUTURE REVISIONS OF THIS LICENSE

                12. ADDENDUM: How to use this License for your
                documents

Introduction

   Table des matires

   1. Dernire version de ce document

   2. Limitations de responsabilit

   3. Auteurs

   Ce document essaie de rassembler tous les lments ncessaires
   pour obtenir LVM et le faire fonctionner. Il traite l'ensemble du
   processus pour l'obtenir, le compiler, l'installer et le mettre en
   uvre. Il fournit aussi des liens vers des configurations testes
   de LVM. Cette version de guide pratique couvre LVM 2 et LVM 1.0.8.

   Toutes les versions prcdentes de LVM sont considres comme
   obsoltes et sont gardes uniquement pour des raisons historiques.
   Ce document n'a pas pour objet d'essayer d'expliquer et dcrire le
   fonctionnement de ces versions.

1. Dernire version de ce document

   Vous trouverez la plus rcente version franaise de ce document 
   l'adresse :
   http://www.traduc.org/docs/howto/lecture/LVM-HOWTO.html
   [http://www.traduc.org/docs/howto/lecture/LVM-HOWTO.html].

   La dernire version originale de ce guide pratique est disponible
   sur le serveur CVS du Projet de documentation Linux avec les
   autres guides pratiques (howto). Vous pouvez l'obtenir en faisant
   un checkout de  LDP/howto/docbook/LVM-HOWTO.xml  sur le serveur
   CVS du LDP. Vous devriez toujours pouvoir obtenir une version
   lisible de ce guide pratique  l'adresse :
   http://www.tldp.org/HOWTO/LVM-HOWTO.html
   [http://www.tldp.org/HOWTO/LVM-HOWTO.html].

2. Limitations de responsabilit

   This document is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY, either expressed or implied. While every
   effort has been taken to ensure the accuracy of the information
   documented herein, the
   author(s)/editor(s)/maintainer(s)/contributor(s) assumes NO
   RESPONSIBILITY for any errors, or for any damages, direct or
   consequential, as a result of the use of the information
   documented herein.

   Ce document est distribu dans l'espoir qu'il sera utile mais SANS
   AUCUNE GARANTIE, explicite ou implicite. Mme si tous les efforts
   ont t faits pour assurer l'exactitude des informations
   documentes ici, les auteurs, diteurs, mainteneurs,
   contributeurs, traducteurs n'assument AUCUNE RESPONSABILIT pour
   les erreurs ou les dommages, directs ou indirects, qui pourraient
   rsulter de l'utilisation des informations documentes ici.

3. Auteurs

   Liste de tous ceux qui ont crit dans ce document.

     o AJ Lewis

     o Joe Thornber

     o Patrick Caulfield

     o Alasdair Kergon

     o Jochen Radmacher - Informations sur l'extension de JFS

   S'il vous plat, veuillez prvenir le mainteneur du guide pratique
   si vous pensez devoir tre dans la liste ci-dessus.

Chapitre 1. Qu'est-ce que LVM ?

   LVM est un gestionnaire de volumes logiques (Logical Volume
   Manager) pour le systme d'exploitation Linux. Il existe dsormais
   deux versions de LVM pour Linux :

     o LVM 2 - La dernire et meilleure version de LVM pour Linux.

       LVM 2 est presque entirement compatible avec les volumes
       crs avec LVM 1,  l'exception des instantans (il faut
       supprimer les volumes d'instantans avant de passer  LVM 2).

       LVM 2 utilise le mappeur de priphriques du noyau Linux. Le
       mappeur de priphriques est inclus dans les noyaux 2.6. Des
       mises  jour sont disponibles pour les noyaux 2.4 rcents.

     o LVM 1 - La version prsente dans les noyaux 2.4.

       LVM 1 est un produit mature et considr comme stable depuis
       plusieurs annes. Le pilote noyau pour LVM 1 est inclus dans
       les noyaux 2.4, mais cela ne veut pas dire que votre noyau
       2.4.x est  jour de la dernire version de LVM. Regardez dans
       le fichier [1]README pour obtenir les dernires informations
       sur les versions de noyaux possdant le code le plus rcent.

Chapitre 2. Qu'est-ce que la gestion par volumes logiques ?

   Table des matires

   1. Pourquoi en voudrais-je ?

   2. Bnfices de la gestion par volumes logiques sur un petit
   systme

   3. Avantages de la gestion par volumes logiques sur un gros
   systme

   La gestion par volumes logiques permet une gestion de plus haut
   niveau des problmes de stockage sur disque par rapport 
   l'approche traditionnelle avec des disques et des partitions. Cela
   apporte  l'administrateur systme une bien meilleure flexibilit
   pour allouer de l'espace aux applications et aux utilisateurs.

   Les volumes de stockage crs au moyen du gestionnaire de volumes
   logiques peuvent tre redimensionns et dplacs  la demande,
   bien que cela puisse ncessiter une mise  jour des utilitaires
   des systmes de fichiers.

   Le gestionnaire de volumes logiques autorise aussi la gestion de
   volumes logiques par groupes d'utilisateurs, ce qui permet 
   l'administrateur systme de grer des groupes de volumes en
   utilisant un nommage comprhensible avec, par exemple, des noms
   comme  developpement  et  ventes  plutt que les noms des
   disques physiques comme  sda  et  sdb .

1. Pourquoi en voudrais-je ?

   La gestion par volumes logiques est traditionnellement associe
   aux grosses installations contenant de nombreux disques mais elle
   est galement approprie pour les petites installations avec un ou
   deux disques.

2. Bnfices de la gestion par volumes logiques sur un petit systme

   Le partitionnement du disque dur est l'une des dcisions
   difficiles pour un nouvel utilisateur de Linux. La ncessit de
   devoir estimer prcisment l'espace disque pour les fichiers
   systmes et utilisateurs rend l'installation plus complexe que
   ncessaire et certains utilisateurs choisissent simplement de
   mettre toutes leurs donnes sur une seule grosse partition pour
   essayer de contourner ce problme.

   Une fois que l'utilisateur (ou le programme d'installation) a
   dtermin l'espace ncessaire pour /home, /usr et /, il arrive
   frquemment qu'une des partitions soit sature alors qu'il reste
   encore plein d'espace libre sur une autre partition.

   Avec la gestion par volumes logiques, le disque entier est allou
    un groupe de volumes et des volumes logiques sont crs pour
   contenir les systmes de fichiers /, /usr et /home. Si, par
   exemple, le volume logique /home est plus tard satur mais qu'il
   reste de l'espace libre dans /usr, alors il est possible de
   rduire /usr de quelques mgaoctets et de rallouer cet espace 
   /home.

   Une autre solution est d'allouer un espace minimal pour chaque
   volume logique et de laisser une partie de l'espace disque non
   allou. Ensuite, lorsque les partitions commencent  tre
   remplies, elles peuvent tre tendues suivant les besoins.

   Par exemple : Joe achte un PC avec 8,4 Go d'espace disque et
   installe Linux avec le partitionnement suivant :

 /boot    /dev/hda1     10 Mo
 swap     /dev/hda2    256 Mo
 /        /dev/hda3      2 Go
 /home    /dev/hda4      6 Go

   Il pense que cette rpartition optimisera l'espace disponible pour
   tous ses fichiers MP3.

   Quelque temps plus tard, Joe dcide qu'il veut installer la
   dernire suite bureautique et le dernier environnement graphique
   disponible, mais il ralise que la partition racine n'est pas
   assez grande. Par contre, puisqu'il a archiv tous ses MP3 grce 
   son nouveau graveur DVD, il lui reste plein d'espace libre dans
   /home.

   Les diffrentes possibilits qui s'offrent  lui ne sont pas
   satisfaisantes :

    1. Reformater le disque, modifier le partitionnement et tout
       rinstaller.

    2. Acheter un nouveau disque et trouver un nouveau
       partitionnement qui demandera le moins de dplacements de
       donnes.

    3. Utiliser un lien symbolique de / vers /home et installer le
       nouveau logiciel dans /home.

   Avec LVM, tout cela devient beaucoup plus facile :

   Jane achte un PC identique mais utilise LVM pour diviser son
   disque de manire similaire :

 /boot     /dev/hda1         10 Mo
 swap      /dev/vg00/swap   256 Mo
 /         /dev/vg00/root     2 Go
 /home     /dev/vg00/home     6 Go

   [2][Note] Note                           
             La partition de dmarrage /boot n'est pas incluse dans
             le LV car les chargeurs de dmarrage ne grent pas
             encore les volumes LVM. Il est possible que le dmarrage
             sur une partition LVM fonctionne, mais vous risquez de
             vous retrouvez avec un systme non amorable.

   [3][Avertissement] Seuls les utilisateurs avancs peuvent   
                      envisager de passer leur partition       
                      racine en LVM                            
                      Pour passer la partition racine en LVM, une
                      image initrd doit activer le LV racine au
                      dmarrage. Si le noyau est mis  jour sans
                      crer l'image initrd ncessaire, le noyau ne
                      pourra pas dmarrer. Les nouvelles       
                      distributions incluent LVM dans leurs scripts
                      mkinitrd ainsi que dans leurs images initrd,
                      donc cela va devenir de moins en moins   
                      problmatique.                           

   Lorsque Jane rencontre le mme problme, elle peut rduire la
   taille de /home d'un gigaoctet et rajouter cet espace dans la
   partition racine.

   Supposons que Joe et Jane remplissent aussi la partition /home et
   dcident d'ajouter un nouveau disque de 20 Go dans leur systme.

   Joe formate le disque entirement dans une seule partition
   (/dev/hdb1) et l'utilise comme /home en y dplaant les donnes de
   son /home existant. Il lui reste alors 6 Go inutiliss qu'il peut
   faire apparatre comme une extension de /home avec un lien
   symbolique, /home/joe/anciens-mp3 par exemple.

   Jane ajoute simplement le nouveau disque dans son groupe de
   volumes existant et tend son /home pour inclure le nouveau
   disque. Ou bien, elle pourrait dplacer les donnes de /home de
   l'ancien vers le nouveau disque et ensuite tendre le volume
   racine existant pour couvrir tout l'ancien disque.

3. Avantages de la gestion par volumes logiques sur un gros systme

   Les avantages de la gestion par volumes logiques sont plus
   vidents sur les gros systmes avec de nombreux disques.

   Grer une importante ferme de disques prend beaucoup de temps et
   peut s'avrer particulirement complexe si le systme comporte de
   nombreux disques de tailles diffrentes. Grer les problmes
   d'espace, gnralement conflictuels, entre les diffrents
   utilisateurs peut devenir un cauchemar.

   Les diffrents groupes de volumes et volumes logiques, qui peuvent
   tre agrandis autant que ncessaire, peuvent tre allous  des
   groupes d'utilisateurs. L'administrateur peut  garder en
   rserve  de l'espace jusqu' ce qu'il soit requis. Cet espace
   peut alors tre ajout au groupe de volumes qui en a le plus
   besoin.

   Quand de nouveaux disques sont ajouts au systme, il n'est plus
   ncessaire de dplacer les fichiers des utilisateurs pour
   optimiser le nouvel espace de stockage. Il suffit simplement
   d'ajouter le nouveau disque  un ou plusieurs groupes de volumes
   et d'tendre les volumes logiques suivant les besoins.

   Il est aussi facile de se sparer des anciens disques en dplaant
   les donnes sur des disques plus rcents. Ceci peut tre effectu
    chaud, sans coupure de service pour l'utilisateur.

Chapitre 3. Anatomie de LVM

   Table des matires

   1. Groupe de volumes (Volume Group, VG)

   2. Volume physique (Physical Volume, PV)

   3. Volume logique (Logical Volume, LV)

   4. Extent physique (Physical Extent, PE)

   5. Extent logique (Logical Extent, LE)

   6. Mettre tout ensemble

   7. Types de correspondances (linaire/rpartie)

   8. Les instantans (snapshots)

   Le schma suivant donne une vision gnrale des composants d'un
   systme  base de LVM.

 +-- Groupe de volumes (Volume Group) ------------+
 |                                                |
 |    +----------------------------------------+  |
 | PV | PE |  PE | PE | PE | PE | PE | PE | PE |  |
 |    +----------------------------------------+  |
 |      .          .         .         .          |
 |      .          .         .         .          |
 |    +----------------------------------------+  |
 | LV | LE |  LE | LE | LE | LE | LE | LE | LE |  |
 |    +----------------------------------------+  |
 |            .         .         .         .     |
 |            .         .         .         .     |
 |    +----------------------------------------+  |
 | PV | PE |  PE | PE | PE | PE | PE | PE | PE |  |
 |    +----------------------------------------+  |
 |                                                |
 +------------------------------------------------+

   Voici une autre faon de visualiser ceci (grce  la gentillesse
   d'Erik Bgfors de la liste de diffusion linux-lvm) :

     hda1   hdc1      (PV dans des partitions ou disques entiers)
        \   /
         \ /
        diskvg        (VG)
        /  |  \
       /   |   \
   usrlv rootlv varlv (LV)
     |      |     |
  ext2  reiserfs  xfs (Systmes de fichiers)

1. Groupe de volumes (Volume Group, VG)

   Le groupe de volumes est l'abstraction de plus haut niveau
   utilise dans LVM. C'est un ensemble de volumes logiques et
   physiques au sein d'une seule unit d'administration.

2. Volume physique (Physical Volume, PV)

   Un volume physique est typiquement un disque dur, bien que cela
   puisse aussi tre un priphrique qui  ressemble   un disque
   dur (par exemple, un priphrique de RAID logiciel).

3. Volume logique (Logical Volume, LV)

   C'est l'quivalent d'une partition de disque d'un systme sans
   LVM. Le LV est visible comme un priphrique de bloc standard. En
   tant que tel, le LV peut contenir un systme de fichiers. (Ex :
   /home.)

4. Extent physique (Physical Extent, PE)

   Chaque volume physique est divis en morceaux de donnes, appels
   extents physiques. Ces extents ont une taille identique  celle
   des extents logiques du groupe de volumes.

5. Extent logique (Logical Extent, LE)

   Chaque volume logique est divis en morceaux de donnes, appels
   extents logiques. La taille d'extents est la mme pour tous les
   volumes logiques du groupe de volumes.

6. Mettre tout ensemble

   Voici un exemple concret pour aider  la comprhension :

   Prenons un groupe de volumes nomm VG1, avec une taille d'extent
   physique de 4 Mo. Nous mettons dans ce groupe de volumes deux
   partitions de disques, /dev/hda1 et /dev/hdb1. Ces partitions vont
   devenir les volumes physiques PV1 et PV2 (l'administrateur peut
   mettre des noms plus parlants). Les PV sont diviss en morceaux de
   4 Mo, puisque c'est la taille des extents pour le groupe de
   volumes. Les disques sont de tailles diffrentes et nous avons
   donc 99 extents pour PV1 et 248 pour PV2. Nous pouvons maintenant
   crer un volume logique de taille entre 1 et 347 (248 + 99)
   extents. Quand le volume logique est cr, une relation est
   dfinie entre les extents logiques et physiques, c'est--dire que
   l'extent logique 1 peut correspondre  l'extent physique 51 de PV1
   et les donnes crites sur les quatre premiers mgaoctets du
   volume logique seront en fait crites sur le 51^me extent de PV1.

7. Types de correspondances (linaire/rpartie)

   L'administrateur peut utiliser diffrentes stratgies pour
   effectuer la relation entre les extents logiques et les extents
   physiques :

    1. La correspondance linaire permet d'attribuer une plage de PE
        un LV dans l'ordre. Par exemple, les LE 1  99
       correspondront  PV1 et les LE 100  347  PV2.

    2. La correspondance rpartie (striped) permet de distribuer des
       morceaux d'extents logiques sur plusieurs volumes physiques,
       par exemple :

 1er morceau de LE[1] -> PV1[1],

 2me morceau de LE[1] -> PV2[1],

 3me morceau de LE[1] -> PV3[1],

 4me morceau de LE[1] -> PV1[2],

       et ainsi de suite. Dans certaines situations, cette stratgie
       peut amliorer les performances du volume logique.

       [4][Avertissement] Dfaut de LVM 1               
                          Avec LVM 1, les LV crs par rpartition ne
                          peuvent pas tre tendus au-del des PV o
                          ils ont t crs initialement.

       Avec LVM 2, les LV rpartis peuvent tre tendus en
       concatnant un autre lot de priphriques  la fin du premier
       lot. Par consquent, vous pourrez vous retrouver avec un LV
       compos de deux lots de PE rpartis concatns avec un lot
       linaire compos de quatre lots de PE. Je vous ai dj perdu ?

8. Les instantans (snapshots)

   Une des merveilleuses fonctionnalits apportes par LVM est
   l'instantan. Elle permet  l'administrateur de crer un nouveau
   priphrique qui est une copie exacte d'un volume logique fig 
   un moment donn. Typiquement, cela peut tre utilis lors de
   traitements par lots sur le volume logique, pour une sauvegarde
   par exemple, lorsque l'on ne veut pas arrter une application qui
   est en train de modifier les donnes. Une fois que l'on a fini
   d'utiliser l'instantan, l'administrateur systme peut tout
   simplement supprimer le priphrique. Cette fonctionnalit demande
    ce que l'instantan soit effectue lorsque le volume logique se
   trouve dans un mode consistant. La suite du document en donne
   quelques exemples.

   [5][Avertissement] Mise  jour de LVM 1 vers LVM 2         
                      Assurez-vous de supprimer tous les instantans
                      avant la mise  jour de LVM 1 vers LVM 2. (Cf.
                      Section 1,  FAQ LVM 2 .)              

   De plus amples informations sur les instantans sont disponibles
   dans la Section 4,  Faire une sauvegarde avec un instantan
   (snapshot) .

Chapitre 4. Questions frquemment poses

   Table des matires

   1. FAQ LVM 2

   2. FAQ LVM 1

1. FAQ LVM 2

   1.1. J'ai LVM 1 install et fonctionnel sur mon systme. Comment
   faire pour passer  LVM 2 ?

   1.2. J'ai des erreurs concernant /dev/mapper/control quand
   j'essaie d'utiliser les utilitaires LVM 2. Que se passe-t-il ?

   1.3. Quelles sont les commandes et types de volumes logiques
   compatibles avec LVM 2 ?

   1.4. Les formats de reprsentation sur le disque des groupes de
   volumes et volumes logiques sont-ils diffrents dans LVM 2 par
   rapport  LVM 1 ?

   1.5. LVM 2 est-il compatible avec les VG et LV crs avec LVM 1 ?

   1.6. Puis-je passer mes VG et LV qui proviennent de LVM 1 au
   format natif de LVM 2 ?

   1.7. J'ai mis  jour mon systme avec LVM 2, mais les utilitaires
   chouent constamment en indiquant qu'il ne reste plus de mmoire
   libre. Que se passe-t-il ?

   1.8. Ma partition racine est sur un LV en LVM 1. Comment faire
   pour passer  LVM 2 ? Qu'est devenu lvmcreate_initrd ?

   1.9. Comment se comporte LVM par rapport  un renommage soudain
   des disques physiques ?

   1.10. J'essaie de remplir mon VG et vgdisplay/vgs indique que j'ai
   1,87 Go de libre mais quand je fais un lvcreate vg -L1.87G, il
   indique pas assez d'extents libres (insufficient free extents).
   Que se passe-t-il ?

1.1.  J'ai LVM 1 install et fonctionnel sur mon systme. Comment faire pour passer  LVM 2 ?                                          
      Voici les instructions pour dmarrer rapidement :)                                                                               
                                                                                                                                       
       1. Commencez par enlever tous les instantans du systme. Ils ne sont pas grs par LVM 2 et empcheront l'activation de leur   
          volume d'origine au dmarrage de LVM 2.                                                                                      
                                                                                                                                       
       2. Assurez-vous de possder un moyen de dmarrage du systme autre que par la partition de dmarrage standard. Vous devez avoir 
          les utilitaires de LVM 1, les outils systmes standards (mount) et un noyau compatible LVM 1 au cas o il serait ncessaire  
          de revenir en arrire pour faire des corrections.                                                                            
                                                                                                                                       
       3. Rcuprez les sources des utilitaires de LVM 2 et le mappeur de priphriques. Compilez-les. Il faut installer la            
          bibliothque du mappeur de priphriques avec  make install  avant de compiler les utilitaires de LVM 2. Copiez aussi le   
          script dm/scripts/devmap_mknod.sh dans /sbin. Je recommande d'installer seulement le binaire  lvm  pour l'instant pour     
          garder l'accs aux utilitaires de LVM 1 au cas o. Si vous avez accs  des paquets de LVM 2 et du mappeur de priphriques, 
          vous pouvez les installer  la place mais il faut noter qu'il vont probablement craser les utilitaires de LVM 1.            
                                                                                                                                       
       4. Rcuprez un noyau compatible avec le mappeur de priphriques, compil en interne ou avec un module.                        
                                                                                                                                       
       5. Recherchez les commandes d'activation de LVM dans les scripts de dmarrage de la machine. Assurez-vous que le module du      
          mappeur de priphriques est charg  cet endroit (si vous utilisez le mappeur de priphriques en tant que module) et       
          ajoutez ensuite la commande  /sbin/devmap_mknod.sh; lvm vgscan; lvm vgchange -ay .                                         
                                                                                                                                       
       6. Installez le noyau compatible avec le mappeur de priphriques et redmarrez. Si tout se passe bien, vous devriez tre en    
          train d'utiliser LVM 2.                                                                                                      
1.2.  J'ai des erreurs concernant /dev/mapper/control quand j'essaie d'utiliser les utilitaires LVM 2. Que se passe-t-il ?             
      La cause premire de ce problme est de ne pas avoir lanc le script devmap_mknod.sh aprs le redmarrage avec un noyau          
      utilisant le mappeur de priphriques. Ce script gnre le nud de contrle pour le mappeur de priphriques.                    
                                                                                                                                       
      Si vous n'avez pas le script devmap_mknod.sh, ne dsesprez pas, il est assez simple de crer le fichier /dev/mapper/control par 
      vous mme :                                                                                                                      
                                                                                                                                       
       1. Assurez-vous d'avoir charg le module du mappeur de priphriques s'il n'est pas directement dans le noyau.                  
                                                                                                                                       
       2. Tapez :                                                                                                                      
                                                                                                                                       
       # cat /proc/misc | grep device-mapper | awk '{print $1}'                                                                        
                                                                                                                                       
          et notez le chiffre affich. (S'il n'y a rien d'affich, reportez-vous  l'tape 1.)                                         
                                                                                                                                       
       3. Tapez :                                                                                                                      
                                                                                                                                       
       # mkdir /dev/mapper                                                                                                             
                                                                                                                                       
          Si vous obtenez une erreur comme quoi /dev/mapper existe dj, vrifiez que c'est un rpertoire et continuez.                
                                                                                                                                       
       4. Tapez :                                                                                                                      
                                                                                                                                       
       # mknod /dev/mapper/control c 10 $nombre                                                                                        
                                                                                                                                       
          $nombre est le chiffre affich  l'tape 2.                                                                                  
                                                                                                                                       
      Cela devrait tre bon maintenant.                                                                                                
1.3.  Quelles sont les commandes et types de volumes logiques compatibles avec LVM 2 ?                                                 
      Si vous utilisez le correctif de l'archive lvm2 pour les noyaux stables 2.4, toutes les fonctionnalits majeures de LVM1 seront  
      compatibles avec les outils de LVM2 (il est toujours ncessaire de supprimer les instantans avant la mise  jour de LVM 1 vers  
      LVM 2.)                                                                                                                          
                                                                                                                                       
      Si vous utilisez la version du mappeur de priphriques du noyau 2.6 de kernel.org, les commandes et types de LV suivants ne     
      sont pas compatibles :                                                                                                           
                                                                                                                                       
        o pvmove                                                                                                                       
                                                                                                                                       
        o snapshots                                                                                                                    
                                                                                                                                       
      Vous pourrez trouver un dbut de compatibilit avec ces fonctionnalits dans les correctifs instables du mappeur de              
      priphriques [http://people.sistina.com/~thornber/dm/] maintenus par Joe Thornber.                                              
1.4.  Les formats de reprsentation sur le disque des groupes de volumes et volumes logiques sont-ils diffrents dans LVM 2 par        
      rapport  LVM 1 ?                                                                                                                
      Oui. LVM 2 utilise le format de mta-donnes lvm 2. Ce format est beaucoup plus flexible que celui de LVM 1. Il supprime ou      
      rduit la plupart des limitations de LVM 1.                                                                                      
1.5.  LVM 2 est-il compatible avec les VG et LV crs avec LVM 1 ?                                                                     
      Oui. LVM 2 est capable d'activer et de fonctionner avec les VG et LV crs avec LVM 1  l'exception des instantans qui doivent  
      tre supprims avant la mise  jour. Les instantans qui restent aprs la mise  jour devront tre supprims afin que l'on       
      puisse activer leur volume d'origine avec LVM 2.                                                                                 
1.6.  Puis-je passer mes VG et LV qui proviennent de LVM 1 au format natif de LVM 2 ?                                                  
      Oui. vgconvert permet de convertir un VG et tous les LV qu'il contient au nouveau format de mta-donnes lvm 2. Attention, il    
      n'est pas toujours possible de revenir ensuite aux mta-donnes lvm 1.                                                           
1.7.  J'ai mis  jour mon systme avec LVM 2, mais les utilitaires chouent constamment en indiquant qu'il ne reste plus de mmoire    
      libre. Que se passe-t-il ?                                                                                                       
      Une des causes possibles de cela est le non positionnement par certaines versions de LVM 1 du champ UUID dans les structures de  
      PV et VG alors qu'elles taient supposes le faire. (L'utilisateur qui a signal l'anomalie utilisait une Mandrake 9.2, mais     
      d'autres distributions peuvent tre impactes.) Les dernires versions des utilitaires de LVM 2 positionnent les UUID            
      automatiquement s'ils manquent, il vous suffit donc de rcuprer une version plus rcente que la vtre et le problme devrait    
      tre rsolu. Dans le cas contraire, envoyez un message sur la liste de diffusion linux-lvm.                                      
1.8.  Ma partition racine est sur un LV en LVM 1. Comment faire pour passer  LVM 2 ? Qu'est devenu lvmcreate_initrd ?                 
      Passer  LVM 2 avec sa partition racine en LVM est un peu compliqu, mais pas impossible. Vous devez crer un noyau compatible   
      avec le mappeur de priphriques et installer les utilitaires LVM 2. (Vous devriez faire une sauvegarde des utilitaires de LVM 1 
      ou trouver un disque de secours avec les utilitaires LVM au cas o vous en auriez besoin avant la fin de la migration.) Ensuite, 
      vous devez trouver un script mkinitrd compatible avec votre distribution et de LVM 2.                                            
                                                                                                                                       
      Voici la liste des scripts mkinitrd que je connais et qui sont compatibles avec LVM 2, classs par distributions :               
                                                                                                                                       
      Scripts mkinitrd compatible LVM 2                                                                                                
                                                                                                                                       
      Fedora                                                                                                                           
                                                                                                                                       
         Le programme mkinitrd                                                                                                         
         [http://distro.ibiblio.org/pub/linux/distributions/fedora/linux/core/development/i386/Fedora/RPMS/mkinitrd-3.5.21-1.i386.rpm] 
         de la dernire Fedora Core 2 gre LVM 2, mais repose sur un binaire lvm li statiquement dans la dernire archive LVM 2.      
                                                                                                                                       
         Les utilisateurs de Redhat 9 devraient pouvoir l'utiliser.                                                                    
                                                                                                                                       
      Debian                                                                                                                           
                                                                                                                                       
         Il existe une version non officielle ici [http://www.poochiereds.net/svn/lvm2/].                                              
                                                                                                                                       
      Gnrique                                                                                                                        
                                                                                                                                       
         Il en existe une version dans la distribution source de LVM 2 dans le rpertoire scripts/lvm2_createinitrd/. Voir la          
         documentation dans ce rpertoire pour plus de dtails.                                                                        
1.9.  Comment se comporte LVM par rapport  un renommage soudain des disques physiques ?                                               
      Trs bien : LVM identifie les PV par leur UUID et non par le nom du priphrique.                                                
                                                                                                                                       
      Chaque disque (PV) possde un UUID, qui est un identifiant unique dans le systme. Il est utilis par  vgscan  pour le         
      reconnatre lorsqu'un nouveau disque est ajout et change la numrotation du disque. Pour cela, la plupart des distributions     
      lancent vgscan dans les scripts de dmarrage pour dtecter les ajouts de matriel. Si vous faites des ajouts  chaud, je pense   
      que vous devrez faire cela manuellement. D'un autre cot, si votre VG est activ et utilis, la renumrotation ne devrait pas    
      l'affecter du tout. L'identifiant est uniquement utilis lors de l'activation et le pire qu'il puisse arriver sans le vgscan est 
      que l'activation choue avec un message indiquant qu'il manque un PV.                                                            
                                                                                                                                       
      [6][Note] Note                                                                                                                   
                Des problmes de fonctionnement ou l'enlvement d'un disque en cours d'utilisation par LVM cause des problmes avec    
                l'utilisation en cours et les futures activations du VG concern.                                                      
1.10. J'essaie de remplir mon VG et vgdisplay/vgs indique que j'ai 1,87 Go de libre mais quand je fais un lvcreate vg -L1.87G, il      
      indique  pas assez d'extents libres  ( insufficient free extents ). Que se passe-t-il ?                                      
      Le chiffre 1,87 Go est arrondi  deux dcimales, donc il correspond  quelque chose comme 1,866 Go. C'est juste une prsentation 
       l'cran du chiffre pour donner une ide gnrale de la taille du VG. Si vous voulez donner une taille exacte, vous devez       
      utiliser les extents  la place de quelque multiple d'octets.                                                                    
                                                                                                                                       
      Dans le cas de vgdisplay, utilisez le chiffre donn par Free PE  la place.                                                      
                                                                                                                                       
      Free  PE / Size          478 / 1.87 GB                                                                                           
                               ^^^                                                                                                     
                                                                                                                                       
      Vous devriez donc lancer la commande suivante :                                                                                  
                                                                                                                                       
      # lvcreate vg -l478                                                                                                              
                                                                                                                                       
      Remarquez qu' la place d'un  L  majuscule, il faut utiliser un  l  minuscule pour dire  LVM d'utiliser les extents plutt  
      que les octets.                                                                                                                  
                                                                                                                                       
      Dans le cas de vgs, il est ncessaire de lui demander explicitement le nombre d'extents disponibles :                            
                                                                                                                                       
      # vgs -o +vg_free_count,vg_extent_count                                                                                          
                                                                                                                                       
      Cela demande  vgs de rajouter le nombre d'extents libres et leur nombre total  la fin de la liste produite par vgs. Utilisez   
      le nombre d'extents libres de la mme faon que pour le cas de vgdisplay.                                                        

2. FAQ LVM 1

   2.1. Quand y aura-t-il des infos ici ?

   2.1. Quand y aura-t-il des infos ici ?                           
        Quand les gens commenceront  envoyer des entres de FAQ ;) 

Chapitre 5. Obtenir LVM

   Table des matires

   1. Tlcharger le code source

   2. Tlcharger le code source de dveloppement par CVS

   3. Avant de commencer

   4. Configuration initiale

   5. Rcupration du code source

   6. Mise  jour du code

   7. Commencer un projet

   8. Bidouiller le code

   9. Conflits

   La premire chose  faire est de rcuprer une copie de LVM.

     o Tlcharger une archive de LVM par FTP.

     o Tlcharger le code source en dveloppement continu par CVS.

1. Tlcharger le code source

     o [7]Mappeur de priphriques

     o [8]LVM 2

       Assurez-vous de tlcharger aussi les sources du mappeur de
       priphriques.

     o [9]LVM 1

   [10][Note] Note                           
              Le correctif du noyau pour LVM 1 doit tre gnr avec
              les sources de LVM 1. Plus d'informations sur ceci
              peuvent tre trouves dans la Section 2,  Construire
              le module du noyau pour LVM 1 .

2. Tlcharger le code source de dveloppement par CVS

   Remarque : L'tat du code dans l'entrept CVS volue sauvagement.
   Il contient des erreurs, certaines peuvent faire planter LVM ou le
   noyau. Il peut aussi ne pas compiler du tout. Considrez-le comme
   du code de qualit alpha et que vous pourriez perdre des
   donnes... Vous tes prvenu.

3. Avant de commencer

   Pour suivre la progression des dveloppements de LVM, abonnez-vous
   aux listes de diffusion de LVM, linux-lvm et la liste de commit
   approprie. (Cf. Section 1,  Listes de diffusion .)

   Pour construire LVM  partir des sources CVS, plusieurs outils GNU
   sont ncessaires :

     o le client CVS version 1.9 ou suprieure ;

     o GCC 2.95.2 ;

     o GNU make 3.79 ;

     o autoconf version 2.13 ou suprieure.

4. Configuration initiale

   Pour vous rendre la vie plus facile lors des mises  jour futures
   de l'arbre CVS, crez le fichier $HOME/.cvsrc et mettez-y les
   lignes suivantes qui permettent de configurer le comportement par
   dfaut des commandes CVS les plus utilises. Faites-le avant de
   continuer plus loin.

 diff -u -b -B
 checkout -P
 update -d -P

   De mme, si vous utilisez une connexion  bas dbit (comme un
   modem RTC), vous voudrez probablement rajouter une ligne contenant
   cvs -z5 dans ce fichier. Cela active un niveau de compression qui
   sera utilis par toutes les commandes CVS.

5. Rcupration du code source

     o Bibliothque et utilitaires du mappeur de priphriques

       La bibliothque du mappeur de priphriques est ncessaire
       pour construire LVM 2.

       Vous devez vous authentifier lors de votre premier
       chargement :

 # cvs -d :pserver:cvs@sources.redhat.com:/cvs/dm login cvs

       Le mot de passe est  cvs . La commande ne renvoie rien en
       cas de succs et renvoie un message d'erreur en cas d'chec.
       Seule la premire connexion ncessite une authentification
       explicite. Toutes les commandes CVS suivantes lisent le mot de
       passe stock dans le fichier $HOME/.cvspass pour
       l'authentification.

       La commande de  checkout  suivante permet de rcuprer une
       copie du code :

 # cvs -d :pserver:cvs@sources.redhat.com:/cvs/dm checkout device-mapper

       Cela cre un nouveau rpertoire device-mapper dans le
       rpertoire courant. Il contient la version la plus  jour
       possible du code du mappeur de priphriques.

     o LVM 2

       Vous devez vous authentifier lors de votre premier
       chargement :

 # cvs -d :pserver:cvs@sources.redhat.com:/cvs/lvm2 login cvs

       Le mot de passe est  cvs . La commande ne renvoie rien en
       cas de succs et un message d'erreur en cas d'chec. Seule la
       premire connexion ncessite une authentification explicite.
       Toutes les commandes CVS suivantes lisent le mot de passe
       stock dans le fichier $HOME/.cvspass pour l'authentification.

       La commande de  checkout  suivante permet de rcuprer une
       copie du code :

 # cvs -d :pserver:cvs@sources.redhat.com:/cvs/lvm2 checkout LVM2

       Cela cre un nouveau rpertoire LVM2 dans le rpertoire
       courant. Il contient la version la plus  jour possible du
       code de LVM 2.

     o LVM 1

       Vous devez vous authentifier lors de votre premier
       chargement :

 # cvs -d :pserver:cvs@sources.redhat.com:/cvs/lvm login cvs

       Le mot de passe est  cvs . La commande ne renvoie rien en
       cas de succs et un message d'erreur en cas d'chec. Seule la
       premire connexion ncessite une authentification explicite.
       Toutes les commandes CVS suivantes lisent le mot de passe
       stock dans le fichier $HOME/.cvspass pour l'authentification.

       La commande de  checkout  suivante permet de rcuprer une
       copie du code :

 # cvs -d :pserver:cvs@sources.redhat.com:/cvs/lvm checkout LVM

       Cela cre un nouveau rpertoire LVM dans le rpertoire
       courant. Il contient la version la plus  jour possible du
       code de LVM 1.

   Les commandes CVS fonctionnent depuis n'importe o dans
   l'arborescence des sources et de faon rcursive. Par consquent,
   si vous faites une mise  jour  partir du sous rpertoire
    tools , cela fonctionnera mais uniquement pour le rpertoire
    tools  et ses sous-rpertoires. Les commandes qui suivent
   supposent que vous tes  la racine de l'arborescence des sources.

6. Mise  jour du code

   Les modifications du code sont assez frquentes dans le dpt CVS.
   Elles sont annonces automatiquement par un envoi dans la liste
   lvm-commit.

   Vous pouvez mettre  jour votre copie des sources pour
   correspondre au dpt matre avec la commande update. Il n'est pas
   ncessaire de rcuprer une nouvelle copie des sources. Il est
   beaucoup plus simple et rapide d'utiliser la commande update, car
   elle tlcharge uniquement les modifications des fichiers modifis
   depuis la dernire mise  jour. Elle permet aussi de fusionner
   automatiquement les modifications du dpt CVS avec les
   changements que vous auriez pu effectuer en local. Pour cela, il
   vous suffit juste d'aller dans le rpertoire  mettre  jour et de
   taper la commande suivante :

 # cvs update

   Si vous n'avez pas spcifi de balise lors du  checkout , cela
   mettra  jour vos sources par rapport  la dernire version de la
   branche principale des sources. Si vous aviez spcifi une balise
   de branche, cela mettra  jour suivant la dernire version de
   cette branche. Si vous aviez spcifi une balise de version, cela
   ne fera rien du tout.

7. Commencer un projet

   Discutez de l'ide sur la liste de dveloppement avant de
   commencer. Quelqu'un est peut-tre dj en train de travailler sur
   le mme sujet ou peut avoir des bonnes ides pour le mener  bien.

8. Bidouiller le code

   Ainsi, vous voulez corriger un bogue ? Dvelopper une
   fonctionnalit de la liste TODO ? Dvelopper une nouvelle
   fonctionnalit ? Bidouiller le code ne pourrait pas tre plus
   simple. Utilisez votre copie des sources. Pas besoin de copier les
   fichiers en .orig ou autres. CVS garde la copie des originaux.

   Quand votre code fonctionnera et aura t test du mieux possible
   avec le matriel dont vous disposez, faites un correctif par
   rapport  la version current des sources sur CVS.

 # cvs update
 # cvs diff > patchfile

   Envoyez le correctif  la liste linux-lvm ou dm-devel (Section 1,
    Listes de diffusion ) avec une description des modifications et
   ajouts que vous avez effectus.

9. Conflits

   Si quelqu'un a travaill sur les mmes fichiers que vous, il se
   peut qu'il y ait des modifications conflictuelles. Vous le saurez
   quand vous mettrez  jour vos sources.

 # cvs update
 RCS file: LVM/tools/pvcreate.c,v
 retrieving revision 1.5
 retrieving revision 1.6
 Merging differences between 1.5 and 1.6 into pvcreate.c
 rcsmerge: warning: conflicts during merge
 cvs server: conflicts found in tools/pvcreate.c
 C tools/pvcreate.c

   Pas de panique ! Le fichier original, tel qu'il tait avant la
   mise  jour, est conserv avec le nom .#pvcreate.c.1.5. Vous
   pouvez toujours le rcuprer si les choses se passent mal. Le
   fichier nomm pvcreate.c contient dsormais les deux versions, la
   vtre et la nouvelle, des lignes conflictuelles. Il vous reste
   simplement  ouvrir le fichier et rsoudre les conflits en
   effaant la mauvaise version des lignes.

 <<<<<<< pvcreate.c
    j++;
 =======
    j--;
 >>>>>>> 1.6

   N'oubliez pas de supprimer les lignes avec les symboles  < ,  =
    et  > .

Chapitre 6. Construire les modules du noyau

   Table des matires

   1. Construire le module noyau device-mapper

   2. Construire le module du noyau pour LVM 1

                2.1. Fabriquer un correctif pour votre noyau

                2.2. Construire le module LVM pour Linux 2.2.17+

                2.3. Compiler les modules LVM pour Linux 2.4

                2.4. Vrifier le systme de fichiers proc

1. Construire le module noyau device-mapper

    COMPLTER.

2. Construire le module du noyau pour LVM 1

   Pour utiliser LVM 1, il faut que vous compiliez le module LVM 1 du
   noyau (recommand) ou, si vous le prfrez, que vous
   reconstruisiez le noyau avec le code LVM 1 li statiquement
   dedans.

   Votre systme Linux est probablement bas sur une des
   distributions populaires de Linux (Redhat, Debian...) avec
   laquelle le module LVM 1 est peut-tre dj fourni. Vrifiez la
   version des utilitaires que vous avez sur votre systme en
   utilisant une des commandes de LVM avec l'option  -h . Utilisez
   la commande pvscan -h si vous ne connaissez aucune des commandes.
   Si le numro de version en tte du listing de l'aide est 1.0.8,
   utilisez votre configuration actuelle et sautez le reste de ce
   chapitre.

  2.1. Fabriquer un correctif pour votre noyau

   Afin de mettre  jour le noyau pour qu'il soit compatible avec
   LVM v1.0.8, vous devez effectuer les oprations suivantes :

    1. Dcompresser LVM 1.0.8 :

 # tar zxf lvm_1.0.8.tar.gz

    2. Allez dans le rpertoire racine de cette version :

 # cd LVM/1.0.8

    3. Lancez le script de configuration :

 # ./configure

       Il faut ajouter l'option --with-kernel_dir  configure si les
       sources du noyau ne sont pas dans /usr/src/linux. (Lancez
       ./configure --help pour visualiser toutes les options
       disponibles.)

    4. Allez dans le rpertoire PATCHES :

 # cd PATCHES

    5. Lancez  make  :

 # make

       Vous devriez maintenant avoir un correctif appel
       lvm-1.0.8-$KERNELVERSION.patch dans le rpertoire PATCHES.
       C'est le correctif du noyau pour LVM qui sera utilis dans la
       suite de ce guide pratique.

    6. Patchez le noyau :

 # cd /usr/src/linux ; patch -pX < /rpertoire/lvm-1.0.8-$KERNELVERSION.patch

  2.2. Construire le module LVM pour Linux 2.2.17+

   Un noyau de la srie 2.2 doit tre mis  jour avant de commencer
   la compilation. Allez voir ailleurs les instructions pour
   apprendre  appliquer des correctifs au noyau.

   Correctifs :

    1. Correctif rawio

       Le correctif raw_io de Stephen Tweedie est disponible 
       http://www.kernel.org/pub/linux/kernel/people/sct/raw-io
       [http://www.kernel.org/pub/linux/kernel/people/sct/raw-io]

    2. Correctif lvm

       Ce correctif doit tre construit  partir du sous-rpertoire
       PATCHES de la distribution de LVM 1. Vous trouverez plus
       d'informations dans la Section 2.1,  Fabriquer un correctif
       pour votre noyau .

   Une fois que les correctifs ont t correctement appliqus, il
   faut vous assurer que le module soit bien compil. Les pilotes
   LVM 1 se trouvent dans la section  devices  de la configuration
   du noyau. Vous devriez aussi compiler les informations de /proc
   pour LVM.

   Compilez les modules noyau comme d'habitude.

  2.3. Compiler les modules LVM pour Linux 2.4

   Le noyau 2.4 contient dj LVM, mais vous devriez vrifier la
   prsence de mises  jour sur le site web de LVM (c'est--dire que
   les noyaux 2.4.9 et infrieurs doivent utiliser le plus rcent
   correctif LVM 1). En configurant le noyau, cherchez LVM 1 dans
   Multi-device support (RAID and LVM). LVM 1 peut tre compil dans
   le noyau ou en tant que module. Compilez votre noyau et les
   modules et installez-les de la manire habituelle. Si vous dcidez
   de compiler LVM en tant que module, il s'appellera lvm-mod.o.

   Si vous voulez faire des instantans avec ReiserFS, faites
   attention  appliquer le correctif linux-2.4.x-VFS-lock (il y en a
   une copie dans le rpertoire LVM/1.0.8/PATCHES).

  2.4. Vrifier le systme de fichiers proc

   Si le noyau est compil avec le systme de fichiers /proc
   (probablement), vous pouvez vrifier la prsence de LVM par
   l'existence du rpertoire /proc/lvm. S'il n'existe pas, il se peut
   que vous ayez  charger le module par la commande :

 # modprobe lvm-mod

   Si /proc/lvm n'existe toujours pas, vrifiez soigneusement votre
   configuration noyau.

   Quand LVM est actif, il existe des entres dans /proc/lvm pour
   tous les volumes physiques, groupes de volumes et volumes
   logiques. De plus, le  fichier  appel /proc/lvm/global donne le
   statut de LVM et montre la version du noyau LVM en cours
   d'utilisation.

Chapitre 7. Scripts de dmarrage pour LVM 1

   Table des matires

   1. Caldera

   2. Debian

   3. Mandrake

   4. Redhat

   5. Slackware

   6. SuSE

   Les scripts de dmarrage ne sont pas fournis par la distribution
   de LVM, bien qu'ils soient simples  faire soi-mme.

   Le dmarrage de LVM demande juste ces deux commandes :

 # vgscan
 # vgchange -ay

   Et l'arrt une seule :

 # vgchange -an

   Suivez les instructions ci-dessous suivant la distribution de
   Linux que vous utilisez.

1. Caldera

   Il est ncessaire d'ouvrir le fichier /etc/rc.d/rc.boot. Insrez
   les lignes de commandes vgscan et vgchange juste avant les lignes
   qui disent  Mounting local filesystems .

   Vous pouvez aussi modifier le fichier /etc/rc.d/init.d/halt pour
   dsactiver les groupes de volume  l'arrt de la machine. Insrer
   la commande

 vgchange -an

   prs de la fin du fichier, juste aprs le dmontage des systmes
   de fichiers ou leur montage en lecture seule et avant le
   commentaire disant  Now halt or reboot .

2. Debian

   Si vous tlchargez le paquet Debian lvm-common (pour LVM 1) ou
   lvm2, un script d'initialisation devrait tre install pour vous.

   Si vous installez LVM  partir des sources, vous devez crer votre
   propre fichier d'initialisation :

     o Crez le script de dmarrage /etc/init.d/lvm contenant les
       lignes suivantes :

 #!/bin/sh

 case "$1" in
   start)
     /sbin/vgscan
     /sbin/vgchange -ay
     ;;
   stop)
     /sbin/vgchange -an
     ;;
   restart|force-reload)
     ;;
 esac

 exit 0

     o Ensuite, excutez les commandes :

 # chmod 0755 /etc/init.d/lvm
 # update-rc.d lvm start 26 S . stop 82 1 .

       Remarquez les points dans la dernire commande.

3. Mandrake

   Aucune modification des scripts d'initialisation ne devrait tre
   ncessaire pour les versions actuelles de Mandrake.

4. Redhat

   Pour la Redhat 7.0 et suprieure, vous ne devriez pas avoir besoin
   de modifier de script d'initialisation pour dmarrer LVM s'il est
   inclus dans le noyau. Si LVM est compil en tant que module, il
   peut tre ncessaire de modifier /etc/rc.d/rc.sysinit pour charger
   le module en y ajoutant la ligne  modprobe lvm-mod  avant la
   partie disant :

 # LVM initialization, take 2 (it could be on top of RAID)
 if [ -e /proc/lvm -a -x /sbin/vgchange -a -f /etc/lvmtab ]; then
    action $"Setting up Logical Volume Management:" /sbin/vgscan &&
    /sbin/vgchange -a y
 fi

   [11][Note] Note                            
              Cette portion de script est pour la RedHat 7.3. Les
              autres versions peuvent apparatre lgrement
              diffrentes.                    

   Pour les versions de RedHat antrieures  la 7.0, il est
   ncessaire de modifier le fichier /etc/rc.d/rc.sysinit. Regardez
   la ligne qui dit  Mount all other filesystems  et insrez les
   commandes vgscan et vgchange juste avant celle-ci. Assurez-vous
   que votre systme de fichiers racine est mont en lecture/criture
   avant d'utiliser les commandes LVM.

   Vous voudrez peut-tre aussi modifier le fichier
   /etc/rc.d/init.d/halt pour dsactiver les groupes de volumes 
   l'arrt de la machine. Insrez la commande :

 vgchange -an

   vers la fin du fichier, juste aprs le remontage des systmes de
   fichiers en lecture seule et avant le commentaire qui dit  Now
   halt or reboot .

5. Slackware

   La Slackware 8.1 ne demande aucune mise  jour des scripts de
   dmarrage pour faire fonctionner LVM.

   Pour les versions prcdentes de Slackware 8.1, vous devrez
   appliquer le correctif suivant  /etc/rc.d/rc.S.

 cd /etc/rc.d
 cp -a rc.S rc.S.old
 patch -p0 < rc.S.diff

   (Le cp sert  faire une sauvegarde au cas o).

 ----- snip snip file: rc.S.diff---------------
 --- rc.S.or        Tue Jul 17 18:11:20 2001
 +++ rc.S        Tue Jul 17 17:57:36 2001
 @@ -4,6 +4,7 @@
 #
 # Mostly written by:  Patrick J. Volkerding, <volkerdi@slackware.com>
 #
 +# Added LVM support <tgs@iafrica.com>

 PATH=/sbin:/usr/sbin:/bin:/usr/bin

 @@ -28,19 +29,21 @@
 READWRITE=yes
 fi

 +
 # Check the integrity of all filesystems
 if [ ! READWRITE = yes ]; then
 -  /sbin/fsck -A -a
 +  /sbin/fsck -a /
 +  # Check only the root fs first, but no others
 # If there was a failure, drop into single-user mode.
 if [ ? -gt 1 ] ; then
 echo
 echo
 -    echo "*******************************************************"
 -    echo "*** An error occurred during the file system check. ***"
 -    echo "*** You will now be given a chance to log into the  ***"
 -    echo "*** system in single-user mode to fix the problem.  ***"
 -    echo "*** Running 'e2fsck -v -y <partition>' might help.  ***"
 -    echo "*******************************************************"
 +    echo "************************************************************"
 +    echo "*** An error occurred during the root file system check. ***"
 +    echo "*** You will now be given a chance to log into the       ***"
 +    echo "*** system in single-user mode to fix the problem.       ***"
 +    echo "*** Running 'e2fsck -v -y <partition>' might help.       ***"
 +    echo "************************************************************"
 echo
 echo "Once you exit the single-user shell, the system will reboot."
 echo
 @@ -82,6 +85,44 @@
 echo -n "get into your machine and start looking for the problem. "
 read junk;
 fi
 +  # okay / fs is clean, and mounted as rw
 +  # This was an addition, limits vgscan to /proc thus
 +  # speeding up the scan immensely.
 +  /sbin/mount /proc
 +
 +  # Initialize Logical Volume Manager
 +  /sbin/vgscan
 +  /sbin/vgchange -ay
 +
 +  /sbin/fsck -A -a -R
 +  #Check all the other filesystem, including the LVM's, excluding /
 +
 +  # If there was a failure, drop into single-user mode.
 +  if [ ? -gt 1 ] ; then
 +    echo
 +    echo
 +    echo "*******************************************************"
 +    echo "*** An error occurred during the file system check. ***"
 +    echo "*** You will now be given a chance to log into the  ***"
 +    echo "*** system in single-user mode to fix the problem.  ***"
 +    echo "*** Running 'e2fsck -v -y <partition>' might help.  ***"
 +    echo "*** The root filesystem is ok and mounted readwrite ***"
 +    echo "*******************************************************"
 +    echo
 +    echo "Once you exit the single-user shell, the system will reboot."
 +    echo
 +
 +    PS1="(Repair filesystem) #"; export PS1
 +    sulogin
 +
 +    echo "Unmounting file systems."
 +    umount -a -r
 +    mount -n -o remount,ro /
 +    echo "Rebooting system."
 +    sleep 2
 +    reboot
 +  fi
 +
 else
 echo "Testing filesystem status: read-write filesystem"
 if cat /etc/fstab | grep ' / ' | grep umsdos 1> /dev/null 2> /dev/null ;
 then
 @@ -111,14 +152,16 @@
 echo -n "Press ENTER to continue. "
 read junk;
 fi
 +
 fi

 +
 # remove /etc/mtab* so that mount will create it with a root entry
 /bin/rm -f /etc/mtab* /etc/nologin /etc/shutdownpid

 # mount file systems in fstab (and create an entry for /)
 # but not NFS or SMB because TCP/IP is not yet configured
 -/sbin/mount -a -v -t nonfs,nosmbfs
 +/sbin/mount -a -v -t nonfs,nosmbfs,proc

 # Clean up temporary files on the /var volume:
 /bin/rm -f /var/run/utmp /var/run/*.pid /var/log/setup/tmp/*
 --snip snip snip end of file---------------

6. SuSE

   Aucun changement ne devrait tre ncessaire  partir de la 6.4
   puisque LVM y est inclus.

Chapitre 8. Scripts de dmarrage pour LVM 2

    COMPLTER.

Chapitre 9. Compiler LVM  partir des sources

   Table des matires

   1. Compiler la bibliothque et les utilitaires LVM

   2. Installer la bibliothque LVM et les utilitaires

   3. Supprimer la bibliothque LVM et les utilitaires

1. Compiler la bibliothque et les utilitaires LVM

   Allez dans le rpertoire de LVM et faites un ./configure suivi
   d'un make. Cela crera toutes les bibliothques et programmes.

   Si vous en avez besoin, vous pouvez modifier des options avec la
   commande de configuration. Faites un ./configure --help pour voir
   les options disponibles. La plupart du temps, ceci sera inutile.

   Il ne devrait pas y avoir d'erreur dans le processus de
   compilation. S'il y en a, reportez-vous au chapitre Signaler des
   erreurs et des bogues pour les signaler.

   Vous tes aussi les bienvenus si vous les corrigez et que vous
   nous envoyez les correctifs. Les correctifs sont habituellement 
   envoyer  la liste linux-lvm.

2. Installer la bibliothque LVM et les utilitaires

   Une fois que les sources compilent correctement, faites simplement
   un make install pour installer la bibliothque LVM et les
   utilitaires sur votre systme.

3. Supprimer la bibliothque LVM et les utilitaires

   Pour enlever la bibliothque et les utilitaires que vous venez
   d'installer, faites make remove. Vous devez avoir les sources
   originelles utilises pour l'installation de LVM pour que cela
   fonctionne.

Chapitre 10. Migrer d'une version prcdente de LVM vers LVM 1.0.8

   Table des matires

   1. Migrer vers LVM 1.0.8 avec une partition racine non LVM

   2. Migrer vers LVM 1.0.8 avec une partition racine en LVM et
   initrd

   Migrer d'une version prcdente de LVM vers LVM 1.0.8 devrait tre
   trs simple. Nous avons trouv une mthode pour lire les
   mta-donnes des PV version 1 (LVM 0.9.1 Beta7 et prcdents)
   aussi bien que les mta-donnes des PV version 2 (LVM 0.9.1 Beta8
   et LVM 1.0).

   Attention : Les nouveaux PV initialiss avec LVM 1.0.8 utilisent
   la structure de disque des PV version 1. Cela signifie que
   LVM 0.9.1 Beta8 et LVM 1.0 ne peuvent pas lire ou utiliser les PV
   crs avec la version 1.0.8.

1. Migrer vers LVM 1.0.8 avec une partition racine non LVM

   Les tapes de la migration sont trs simples, mais il est
   nanmoins recommand de faire une sauvegarde des donnes avant.
   Vous tes prvenus.

    1. Compiler le noyau LVM et les modules

       Suivez les tapes expliques dans les Chapitre 5, Obtenir LVM
       et Section 2,  Construire le module du noyau pour LVM 1 
       pour connatre les instructions pour obtenir et compiler les
       lments ncessaires de LVM pour le noyau Linux.

    2. Compiler les utilitaires LVM

       Suivez les tapes du Chapitre 9, Compiler LVM  partir des
       sources pour compiler et installer les utilitaires de LVM.

    3. Configurer les scripts de dmarrage

       Assurez-vous d'avoir une configuration correcte des scripts de
       dmarrage comme dans le Chapitre 7, Scripts de dmarrage pour
       LVM 1.

    4. Dmarrer avec le nouveau noyau

       Assurez-vous que le chargeur d'amorage est configur pour
       charger le nouveau noyau avec LVM et, si vous utilisez des
       modules, que la commande insmod lvm-mod soit dans le script de
       dmarrage ou que les lignes suivantes soient ajoutes dans
       /etc/modules.conf (anciennement appel /etc/conf.modules) pour
       permettre  modprobe de charger le module LVM (n'oubliez pas
       d'activer kmod) :

 alias block-major-58      lvm-mod
 alias char-major-109      lvm-mod

       Redmarrez la machine et apprciez.

2. Migrer vers LVM 1.0.8 avec une partition racine en LVM et initrd

   La procdure est relativement simple si elle est suivie avec
   attention. Il est recommand de faire une bonne sauvegarde avec
   une disquette de dmarrage de secours, juste au cas o.

   L'utilisation  normale  de LVM sur le systme de fichiers racine
   est d'avoir une seule partition non LVM appele /boot qui contient
   le noyau et une image disque RAM d'initialisation, ncessaire pour
   dmarrer le systme. Le systme que j'ai mis  jour tait comme
   suit :

 # df
 Sys. de fich.         Blocs-1k    Occup    Dispo. Cap% Mont sur
 /dev/rootvg/root        253871     93384    147380  39% /
 /dev/hda1                17534     12944      3685  78% /boot
 /dev/rootvg/home       4128448      4568   3914168   0% /home
 /dev/rootvg/usr        1032088    332716    646944  34% /usr
 /dev/rootvg/var         253871     31760    209004  13% /var

   /boot contient l'ancien noyau et l'image disque RAM
   d'initialisation ainsi que les fichiers d'amorage de Lilo et les
   lignes suivantes dans /etc/lilo.conf :

 # ls /boot
 System.map                 lost+found              vmlinux-2.2.16lvm
 map                        module-info             boot.0300
 boot.b                     os2_d.b                 chain.b
 initrd.gz
 # tail /etc/lilo.conf
 image=/boot/vmlinux-2.2.16lvm
         label=lvm08
         read-only
         root=/dev/rootvg/root
         initrd=/boot/initrd.gz
         append="ramdisk_size=8192"

    1. Compiler le noyau LVM et les modules

       Suivez les instructions dtailles dans les Chapitre 5,
       Obtenir LVM et Section 2,  Construire le module du noyau pour
       LVM 1  pour obtenir et compiler les composants noyau
       ncessaires pour LVM.

    2. Compiler les utilitaires LVM

       Suivez les instructions dtailles dans le Section 2, 
       Construire le module du noyau pour LVM 1  pour compiler et
       installer les utilitaires ncessaires pour LVM.

       Installer les nouveaux utilitaires. Une fois cela effectu,
       vous ne pourrez plus faire de manipulations sur LVM car les
       utilitaires ne sont pas compatibles avec le noyau dmarr
       actuellement.

    3. Renommer le fichier initrd.gz existant

       Cela permet qu'il ne soit pas cras par le nouveau fichier.

 # mv /boot/initrd.gz /boot/initrd08.gz

    4. Modifier /etc/lilo.conf

       Faites pointer l'entre de dmarrage existante vers le fichier
       renomm. Vous devrez redmarrer en utilisant cela si quelque
       chose se passe mal. L'entre modifie devrait ressembler 
       cela :

 image=/boot/vmlinux-2.2.16lvm
         label=lvm08
         read-only
         root=/dev/rootvg/root
         initrd=/boot/initrd08.gz
         append="ramdisk_size=8192"

    5. Lancer lvmcreate_initrd pour crer une nouvelle image disque
       RAM d'initialisation

 # lvmcreate_initrd 2.4.9

       N'oubliez pas de spcifier la nouvelle version du noyau afin
       qu'il prenne les bons modules.

    6. Ajouter une nouvelle entre dans /etc/lilo.conf

       Cette nouvelle entre sert  dmarrer avec le nouveau noyau et
       le nouvel initrd.

 image=/boot/vmlinux-2.4.9lvm
 label=lvm10
 read-only
 root=/dev/rootvg/root
 initrd=/boot/initrd.gz
 append="ramdisk_size=8192"

    7. Relancer lilo

       Cela installe le nouveau bloc d'amorage

 # /sbin/lilo

    8. Redmarrer la machine

       Lorsque vous avez l'cran de slection de Lilo, choisissez la
       nouvelle entre (lvm10 dans cet exemple) et le systme devrait
       dmarrer avec un Linux utilisant la nouvelle version de LVM.

       Si le nouveau noyau ne dmarre pas, alors dmarrez avec
       l'ancien et essayez de corriger le problme. Cela peut
       provenir du noyau qui n'aurait pas tous les pilotes de
       priphriques correctement compils ou bien qu'ils ne sont pas
       disponibles dans initrd. Souvenez-vous que tous les pilotes
       (except pour LVM) qui sont ncessaires pour accder au
       priphrique racine doivent tre compils en dur dans le noyau
       et non en tant que modules.

       Si vous avez besoin d'effectuer des manipulations avec LVM
       lorsque vous avez redmarr sur l'ancienne version, il vous
       faut juste recompiler les anciens utilitaires et les installer
       avec :

 # make install

       Si vous faites cela, n'oubliez pas de rinstaller la nouvelle
       version lorsque vous redmarrerez avec le nouveau LVM.

   Une fois satisfait de la nouvelle installation, pensez  modifier
   l'entre  default=  dans le fichier lilo.conf pour mettre par
   dfaut le nouveau noyau.

Chapitre 11. Tches courantes

   Table des matires

   1. Initialiser des disques ou des partitions de disques

   2. Crer un groupe de volumes

   3. Activer un groupe de volumes

   4. Enlever un groupe de volumes

   5. Ajouter un volume physique  un groupe de volumes

   6. Supprimer un volume physique d'un groupe de volumes

   7. Crer un volume logique

   8. Supprimer un volume logique

   9. tendre un volume logique

   10. Rduire un volume logique

   11. Migrer des donnes hors d'un volume physique

   Ce chapitre dtaille quelques oprations courantes sur un systme
   LVM. Cela ne remplace pas la lecture des pages de man.

1. Initialiser des disques ou des partitions de disques

   Avant de pouvoir utiliser un disque ou une partition comme volume
   physique, il faut l'initialiser :

   Pour un disque entier :

     o Lancez pvcreate sur le disque :

 # pvcreate /dev/hdb

       Cela cre un descripteur de groupe de volumes au dbut du
       disque.

     o Si vous obtenez une erreur indiquant que LVM ne peut pas
       initialiser un disque qui possde dj une table de partition,
       vrifiez tout d'abord que vous tes en train d'utiliser le bon
       disque. Si vous en tes vraiment sr, effectuez les commandes
       suivantes :

       [12][Avertissement] DANGEREUX                 
                           Les commandes suivantes vont dtruire la
                           table des partitions sur le disque o
                           elles sont lances. Soyez vraiment sr que
                           c'est le bon disque.      

 # dd if=/dev/zero of=/dev/nomdudisque bs=1k count=1
 # blockdev --rereadpt /dev/nomdudisque

   Pour les partitions :

     o Quand vous utilisez LVM 1 sur des PC avec des partitions DOS,
       mettez le type de la partition  0x8e avec fdisk ou un
       programme similaire. Ceci n'est pas ncessaire avec un systme
       PPC ou avec LVM 2.

     o Lancez pvcreate sur la partition :

 # pvcreate /dev/hdb1

       Cela cre un descripteur de groupe de volumes au dbut de la
       partition /dev/hdb1.

2. Crer un groupe de volumes

   Utilisez le programme vgcreate :

 # vgcreate mon_groupe_de_volumes /dev/hda1 /dev/hdb1

   Remarque : Si vous utilisez devfs, il est primordial d'utiliser le
   nom complet du priphrique devfs plutt que le lien symbolique
   dans /dev. Par consquent la commande prcdente devient :

 # vgcreate mon_groupe_de_volumes \\
     /dev/ide/host0/bus0/target0/lun0/part1 \\
     /dev/ide/host0/bus0/target1/lun0/part1

   LVM 2 n'a pas cette restriction.

   Vous pouvez aussi prciser la taille des extents avec l'option 
   -s  de cette commande si la valeur par dfaut de 32 Mo ne vous
   convient pas. De plus, vous pouvez mettre des limites sur le
   nombre de volumes physiques et logiques que le volume peut
   contenir.

3. Activer un groupe de volumes

   Aprs un redmarrage ou la commande vgchange -an, les VG et LV ne
   sont plus accessibles. Pour ractiver le groupe de volumes,
   excutez :

 # vgchange -a y mon_groupe_de_volumes

4. Enlever un groupe de volumes

   Assurez-vous qu'aucun volume logique n'est prsent dans le groupe
   de volumes, voir les sections suivantes pour savoir comment faire.

   Dsactivez le groupe de volumes :

 # vgchange -a n mon_groupe_de_volumes

   Maintenant, vous pouvez supprimer le groupe de volumes :

 # vgremove mon_groupe_de_volumes

5. Ajouter un volume physique  un groupe de volumes

   Utilisez  vgextend  pour ajouter un volume physique dj
   initialis  un groupe de volumes existant.

 # vgextend mon_groupe_de_volumes /dev/hdc1
                                  ^^^^^^^^^
                                  nouveau volume physique

6. Supprimer un volume physique d'un groupe de volumes

   La commande  pvdisplay  permet de s'assurer que le volume
   physique n'est utilis par aucun volume logique :

 # pvdisplay /dev/hda1
 --- Physical volume ---
 PV Name               /dev/hda1
 VG Name               myvg
 PV Size               1.95 GB / NOT usable 4 MB [LVM: 122 KB]
 PV#                   1
 PV Status             available
 Allocatable           yes (but full)
 Cur LV                1
 PE Size (KByte)       4096
 Total PE              499
 Free PE               0
 Allocated PE          499
 PV UUID               Sd44tK-9IRw-SrMC-MOkn-76iP-iftz-OVSen7

   Si le volume physique est encore utilis, il faut migrer les
   donnes vers un autre volume physique.

   Utilisez ensuite  vgreduce  pour enlever le volume physique :

 # vgreduce mon_groupe_de_volumes /dev/hda1

7. Crer un volume logique

   Pour crer un LV  testlv  linaire de 1 500 Mo et son
   priphrique spcial  /dev/testvg/testlv  :

 # lvcreate -L1500 -ntestlv testvg

   Pour crer un volume logique de 100 LE avec 2 blocs rpartis et
   une taille de bloc de 4 Ko :

 # lvcreate -i2 -I4 -l100 -nunautretestlv testvg

   Pour crer un LV qui utilise tout le VG, utilisez vgdisplay pour
   trouver la valeur de  Total PE , puis utilisez-la avec lvcreate.

 # vgdisplay testvg | grep "Total PE"
 Total PE              10230
 # lvcreate -l 10230 testvg -n monlv

   Cela crera un LV appel monlv qui remplira la totalit du VG
   testvg.

   Si vous dsirez allouer le volume logique sur un volume physique
   prcis, il faut spcifier le nom du ou des PV  la fin de la
   commande lvcreate.

 # lvcreate -L 1500 -ntestlv testvg /dev/sdg

8. Supprimer un volume logique

   Un volume logique doit tre dmont avant d'tre supprim :

 # umount /dev/monvg/homevol
 # lvremove /dev/monvg/homevol
 lvremove -- do you really want to remove "/dev/monvg/homevol"? [y/n]: y
 lvremove -- doing automatic backup of volume group "monvg"
 lvremove -- logical volume "/dev/monvg/homevol" successfully removed

9. tendre un volume logique

   Pour tendre un volume logique, il suffit de dire  lvextend de
   combien vous voulez augmenter la taille. Vous pouvez spcifier la
   quantit d'espace  ajouter ou bien la taille finale du volume
   logique :

 # lvextend -L12G /dev/monvg/homevol
 lvextend -- extending logical volume "/dev/monvg/homevol" to 12 GB
 lvextend -- doing automatic backup of volume group "monvg"
 lvextend -- logical volume "/dev/monvg/homevol" successfully extended

   tend /dev/monvg/homevol jusqu' 12 Go.

 # lvextend -L+1G /dev/monvg/homevol
 lvextend -- extending logical volume "/dev/monvg/homevol" to 13 GB
 lvextend -- doing automatic backup of volume group "monvg"
 lvextend -- logical volume "/dev/monvg/homevol" successfully extended

   ajoute 1 Go  /dev/monvg/homevol.

   Une fois le volume logique tendu, il est ncessaire d'augmenter
   la taille du systme de fichiers  la taille correspondante. La
   procdure  suivre dpend du type de systme de fichiers utilis.

   Par dfaut, la plupart des utilitaires de redimensionnement de
   systmes de fichiers vont augmenter leur taille suivant la taille
   du volume logique correspondant. Vous n'avez donc pas  vous
   occuper de spcifier la mme taille pour les deux commandes.

    1. ext2/ext3

        moins que vous n'ayez un noyau avec le correctif ext2online,
       il est ncessaire de dmonter le systme de fichiers avant le
       redimensionnement. (Il semble que le patch de
       redimensionnement  chaud soit dangereux, donc  utiliser 
       vos risques et prils.)

 # umount /dev/monvg/homevol
 # resize2fs /dev/monvg/homevol
 # mount /dev/monvg/homevol /home

       Si vous n'avez pas e2fsprogs 1.19 ou suprieur, la commande
       ext2resize est disponible sur ext2resize.sourceforge.net
       [http://ext2resize.sourceforge.net]. Utilisez-la ensuite :

 # umount /dev/monvg/homevol
 # resize2fs /dev/monvg/homevol
 # mount /dev/monvg/homevol /home

       Pour ext2, il y a une solution plus simple : LVM 1 fournit un
       utilitaire appel e2fsadm qui effectue le lvextend et le
       resize2fs pour vous (et peut aussi faire la rduction, voir le
       chapitre suivant).

       [13][Avertissement] Inconvnient de LVM 2            
                           Il n'y a pas actuellement d'quivalent 
                           e2fsadm pour LVM 2 et la version de
                           e2fsadm de LVM 1 ne fonctionne pas avec
                           LVM 2.                           

       La commande unique devient :

 # e2fsadm -L+1G /dev/monvg/homevol

       qui est quivalente  :

 # lvextend -L+1G /dev/monvg/homevol
 # resize2fs /dev/monvg/homevol

       [14][Note] Remarque                       
                  Il est toujours ncessaire de dmonter le systme
                  de fichiers avant d'utiliser e2fsadm.

    2. reiserfs

       Le systme de fichiers Reiserfs peut tre redimensionn mont
       ou dmont, comme vous le prfrez :

          o en fonctionnement :

 # resize_reiserfs -f /dev/monvg/homevol

          o hors fonctionnement :

 # umount /dev/monvg/homevol
 # resize_reiserfs /dev/monvg/homevol
 # mount -treiserfs /dev/monvg/homevol /home

    3. xfs

       Les systmes de fichiers XFS doivent tre monts pour tre
       redimensionns et le point de montage doit tre donn  la
       place du nom de priphrique.

 # xfs_growfs /home

    4. jfs

       Comme XFS, le systme de fichiers JFS doit tre mont pour
       tre redimensionn et le point de montage doit tre spcifi
       plutt que le nom du priphrique. Il vous faut au minimum la
       version 1.0.21 de jfs-utils pour cela.

 # mount -o remount,resize /home

       [15][Avertissement] Bogue connu du noyau            
                           Certaines versions du noyau ont des
                           problmes avec cette syntaxe (2.6.0 en
                           fait partie). Dans ce cas, vous devez
                           explicitement spcifier la nouvelle taille
                           du systme de fichiers en blocs. Attention
                           aux erreurs car vous devez connatre la
                           taille de blocs de votre systme de
                           fichiers et vous en servir pour calculer
                           la nouvelle taille.             
                                                           
                           Exemple : Si vous devez redimensionner un
                           systme de fichiers JFS  4 Go, crivez :
                                                           
                           # mount -o remount,resize=1048576 /home

10. Rduire un volume logique

   Les volumes logiques peuvent tre rduits de la mme faon qu'ils
   peuvent tre agrandis. Cependant, il est trs important de se
   souvenir qu'il faut rduire la taille du systme de fichiers ou de
   toute autre chose rsidant sur le volume avant de le rduire
   lui-mme. Autrement, vous risquez de perdre des donnes.

    1. ext2

       Si vous utilisez LVM 1 avec le systme de fichiers ext2, vous
       pouvez utiliser e2fsadm comme mentionn prcdemment pour
       effectuer les deux commandes de rduction du systme de
       fichiers et de rduction du volume :

 # umount /home
 # e2fsadm -L-1G /dev/monvg/homevol
 # mount /home

       [16][Avertissement] Inconvnient de LVM 2            
                           Actuellement, il n'y a pas d'quivalent 
                           e2fsadm pour LVM 2 et la version de
                           e2fsadm de LVM 1 ne fonctionne pas avec
                           LVM 2.                           

       Si vous prfrez faire cela manuellement, vous devez connatre
       la nouvelle taille du volume en blocs et utiliser les
       commandes suivantes :

 # umount /home
 # resize2fs /dev/monvg/homevol 524288
 # lvreduce -L-1G /dev/monvg/homevol
 # mount /home

    2. reiserfs

       Il semble que Reiserfs prfre tre dmont avant d'tre
       rduit :

 # umount /home
 # resize_reiserfs -s-1G /dev/monvg/homevol
 # lvreduce -L-1G /dev/monvg/homevol
 # mount -treiserfs /dev/monvg/homevol /home

    3. xfs

       Il n'y a pas moyen de rduire un systme de fichiers XFS.

    4. jfs

       Il n'y a pas moyen de rduire un systme de fichiers JFS.

11. Migrer des donnes hors d'un volume physique

   Pour mettre un disque hors service, il faut au pralable dplacer
   tous ses extents physiques sur d'autres disques du groupe de
   volumes. Il doit y avoir assez d'extents physiques libres sur les
   PV qui restent pour accueillir les extents provenant du disque 
   enlever. Pour plus de dtails, voir la Section 5,  Enlever un
   disque .

Chapitre 12. Partitionnement de disques

   Table des matires

   1. Plusieurs partitions sur le mme disque

   2. tiquettes de disque Sun (Sun disk labels)

1. Plusieurs partitions sur le mme disque

   Le LVM permet de crer des PV (volumes physiques) sur presque tous
   les priphriques par blocs. Par exemple, les commandes suivantes
   sont valides et vont trs bien fonctionner dans un environnement
   LVM :

 # pvcreate /dev/sda1
 # pvcreate /dev/sdf
 # pvcreate /dev/hda8
 # pvcreate /dev/hda6
 # pvcreate /dev/md1

   Dans un environnement de production  normal , il est recommand
   de n'avoir qu'un seul PV par disque rel pour les raisons
   suivantes :

     o Facilit d'administration.

       Il est plus simple de grer le matriel du systme si chaque
       disque rel n'apparat qu'en un seul endroit. C'est
       particulirement vrai en cas de problme sur le disque.

     o viter les problmes de performances avec la rpartition.

       LVM ne sait pas dire si deux PV sont sur le mme disque
       physique. Donc si vous crez des LV rpartis, les blocs
       peuvent trs bien tre sur diffrentes partitions du mme
       disque, ce qui entrane une diminution des performances,
       plutt qu'une augmentation.

   Cependant, il peut tre souhaitable de le faire pour certaines
   raisons :

     o La migration d'un systme existant vers LVM.

       Sur un systme avec peu de disques, il peut tre ncessaire de
       dplacer des donnes entre les partitions pour effectuer la
       conversion (cf. la Section 8,  Convertir le systme de
       fichiers racine en LVM 1 ).

     o Sparer un gros disque dans plusieurs groupes de volumes.

       Si vous avez un trs gros disque et que vous voulez plus d'un
       groupe de volumes pour des raisons d'administration, alors il
       est ncessaire de faire plusieurs partitions sur le disque.

   Si vous avez un disque avec plus d'une partition et que ces
   partitions sont dans le mme groupe de volumes, faites attention 
   bien spcifier les partitions qui doivent tre incluses dans le
   volume logique lorsque vous crez des volumes rpartis.

   Il est recommand d'utiliser une seule partition qui couvre
   l'ensemble du disque physique. Cela vite des accidents avec les
   nuds des priphriques du disque et vite les messages d'alerte
   du noyau au dmarrage  propos de types de partitions inconnus.

2. tiquettes de disque Sun (Sun disk labels)

   Il faut porter une attention particulire aux systmes SPARC car
   les disques contiennent des tiquettes de disque Sun.

   L'organisation normale des disques munis d'tiquettes de disque
   Sun est de faire commencer la premire partition  partir du bloc
   zro du disque. Cela implique que l'tiquette du disque se trouve
   en fait sur sa premire partition. Cela fonctionne parfaitement
   avec les systmes de fichiers ext2 (et c'est essentiel pour
   amorcer un systme avec avec SILO) mais ces partitions ne doivent
   pas tre utilises avec LVM car celui-ci commence  crire au tout
   dbut du priphrique et crase alors l'tiquette de disque.

   Si vous voulez utiliser un disque avec des tiquettes de disque
   Sun, assurez-vous de faire commencer votre partition  partir du
   cylindre 1 ou suprieur.

Chapitre 13. Recettes

   Table des matires

   1. Mettre en place LVM avec trois disques SCSI

                1.1. Prparation des disques

                1.2. Configuration du groupe de volumes

                1.3. Cration du volume logique

                1.4. Cration du systme de fichiers

                1.5. Test du systme de fichiers

   2. Mise en place de LVM sur trois disques SCSI avec rpartition
   (striping)

                2.1. Prparation des partitions de disque

                2.2. Configuration du groupe de volumes

                2.3. Cration du volume logique

                2.4. Cration du systme de fichiers

                2.5. Test du systme de fichiers

   3. Ajouter un nouveau disque dans un systme avec plusieurs
   disques SCSI

                3.1. Situation actuelle

                3.2. Prparation du partitionnement du disque

                3.3. Ajout des nouvelles partitions au groupe de
                volumes

                3.4. Extension des systmes de fichiers

                3.5. Remontage des volumes tendus

   4. Faire une sauvegarde avec un instantan (snapshot)

                4.1. Crer le volume d'instantan

                4.2. Monter le volume d'instantan

                4.3. Faire la sauvegarde

                4.4. Supprimer l'instantan

   5. Enlever un disque

                5.1. Distribuer les anciens extents vers des disques
                existants du groupe de volumes

                5.2. Distribuer les anciens extents sur un nouveau
                disque de remplacement

   6. Dplacer un groupe de volumes vers un autre systme

                6.1. Dmonter le systme de fichiers

                6.2. Marquer le groupe de volumes comme inactif

                6.3. Exporter le groupe de volumes

                6.4. Importer le groupe de volumes

                6.5. Activer le groupe de volumes

                6.6. Monter le systme de fichiers

   7. Diviser un groupe de volumes

                7.1. Dterminer l'espace libre

                7.2. Dplacer les donnes des disques  rutiliser

                7.3. Crer un nouveau groupe de volumes

                7.4. Enlever le volume restant

                7.5. Crer le nouveau volume logique

                7.6. Crez un systme de fichiers sur le volume

                7.7. Montez le nouveau volume

   8. Convertir le systme de fichiers racine en LVM 1

                8.1. Dmarrer en mode mono-utilisateur

                8.2. Utiliser Parted

                8.3. Redmarrer

                8.4. Vrifier les options de configuration du noyau

                8.5. Ajuster le type de partition

                8.6. Configurer LVM 1 pour la nouvelle configuration

                8.7. Crer le systme de fichiers

                8.8. Mise  jour de /etc/fstab

                8.9. Crez une image disque RAM d'initialisation pour
                LVM 1

                8.10. Mise  jour de /etc/lilo.conf

                8.11. Lancez lilo pour crire le nouveau secteur de
                boot

                8.12. Redmarrer avec LVM

                8.13. Ajoutez le reste du disque dans LVM

   Ce chapitre dtaille plusieurs  recettes  diffrentes pour
   mettre en place LVM. L'objectif est que le lecteur puisse adapter
   ces recettes pour son systme et ses propres besoins.

1. Mettre en place LVM avec trois disques SCSI

   Pour cette recette, on dispose de trois disques SCSI qui vont tre
   mis dans un volume logique utilisant LVM. Les disques sont
   /dev/sda, /dev/sdb et /dev/sdc.

  1.1. Prparation des disques

   Il faut prparer le disque avant de pouvoir l'utiliser dans un
   groupe de volumes :

   [17][Avertissement] Attention !                   
                       Les commandes suivantes vont dtruire toutes
                       les donnes prsentes sur /dev/sda, /dev/sdb
                       et /dev/sdc.                  

   Lancez pvcreate sur les disques :

 # pvcreate /dev/sda
 # pvcreate /dev/sdb
 # pvcreate /dev/sdc

   Cela cre une zone avec les descripteurs de groupes de volumes
   (volume group descriptor area, VGDA) au dbut des disques.

  1.2. Configuration du groupe de volumes

    1. Crez un groupe de volumes

 # vgcreate mon_groupe_de_volumes /dev/sda /dev/sdb /dev/sdc

    2. Utilisez vgdisplay pour vrifier le groupe de volume

 # vgdisplay
 --- Volume Group ---
 VG Name               mon_groupe_de_volumes
 VG Access             read/write
 VG Status             available/resizable
 VG #                  1
 MAX LV                256
 Cur LV                0
 Open LV               0
 MAX LV Size           255.99 GB
 Max PV                256
 Cur PV                3
 Act PV                3
 VG Size               1.45 GB
 PE Size               4 MB
 Total PE              372
 Alloc PE / Size       0 / 0
 Free  PE / Size       372/ 1.45 GB
 VG UUID               nP2PY5-5TOS-hLx0-FDu0-2a6N-f37x-0BME0Y

       Le plus important est de vrifier les trois premiers lments
       et que la taille indique par  VG Size  est bien la taille
       de vos trois disques runis.

  1.3. Cration du volume logique

   Si le groupe de volumes semble correct, il est alors temps de
   crer un volume logique dessus.

   Vous pouvez choisir la taille que vous voulez pour le volume
   logique (de la mme manire que vous le feriez dans un
   environnement non LVM). Pour cet exemple, nous allons juste crer
   un volume logique d'1 Go dans le groupe de volumes. Nous
   n'utiliserons pas la rpartition car il n'est pas actuellement
   possible de rajouter un disque une fois le volume logique cr.

 # lvcreate -L1G -nmon_volume_logique mon_groupe_de_volumes
 lvcreate -- doing automatic backup of "mon_groupe_de_volumes"
 lvcreate -- logical volume "/dev/mon_groupe_de_volumes/mon_volume_logique" successfully created

  1.4. Cration du systme de fichiers

   Crez un systme de fichiers ext2 dans le volume logique :

 # mke2fs /dev/mon_groupe_de_volumes/mon_volume_logique
 mke2fs 1.19, 13-Jul-2000 for EXT2 FS 0.5b, 95/08/09
 Filesystem label=
 OS type: Linux
 Block size=4096 (log=2)
 Fragment size=4096 (log=2)
 131072 inodes, 262144 blocks
 13107 blocks (5.00%) reserved for the super user
 First data block=0
 9 block groups
 32768 blocks per group, 32768 fragments per group
 16384 inodes per group
 Superblock backups stored on blocks:
 32768, 98304, 163840, 229376

 Writing inode tables: done
 Writing superblocks and filesystem accounting information: done

  1.5. Test du systme de fichiers

   Montez le volume logique et vrifiez que tout semble correct.

 # mount /dev/mon_groupe_de_volumes/mon_volume_logique /mnt
 # df

 Filesystem           1k-blocks      Used Available Use% Mounted on
 /dev/hda1              1311552    628824    616104  51% /
 /dev/mon_groupe_de_volumes/mon_volume_logique
                        1040132        20    987276   0% /mnt

   Si tout s'est pass correctement, vous avez dsormais un volume
   logique avec un systme de fichiers ext2 mont dans /mnt.

2. Mise en place de LVM sur trois disques SCSI avec rpartition
(striping)

   Pour cette recette, on dispose de trois disques SCSI qui vont tre
   mis dans un volume logique en utilisant LVM. Les disques sont
   /dev/sda, /dev/sdb et /dev/sdc.

   [18][Note] Remarque                         
              Il n'est pas actuellement possible d'ajouter un disque
              dans un volume logique rparti avec LVM 1. Utilisez
              LVM 2 avec le format de mta-donnes lvm 2 si vous
              voulez effectuer cela.           

  2.1. Prparation des partitions de disque

   Il faut prparer le disque avant de pouvoir l'utiliser dans un
   groupe de volumes :

   [19][Avertissement] Attention !                   
                       Les commandes suivantes vont dtruire toutes
                       les donnes prsentes sur /dev/sda, /dev/sdb
                       et /dev/sdc.                  

   Lancez pvcreate sur les disques :

 # pvcreate /dev/sda
 # pvcreate /dev/sdb
 # pvcreate /dev/sdc

   Cela cre une zone de descripteurs de groupes de volumes (volume
   group descriptor area, VGDA) au dbut des disques.

  2.2. Configuration du groupe de volumes

    1. Crez un groupe de volumes

 # vgcreate mon_groupe_de_volumes /dev/sda /dev/sdb /dev/sdc

    2. Utilisez vgdisplay pour vrifier le groupe de volume

 # vgdisplay
 --- Volume Group ---
 VG Name                      mon_groupe_de_volumes
 VG Access             read/write
 VG Status             available/resizable
 VG #                  1
 MAX LV                256
 Cur LV                0
 Open LV               0
 MAX LV Size           255.99 GB
 Max PV                256
 Cur PV                3
 Act PV                3
 VG Size               1.45 GB
 PE Size               4 MB
 Total PE              372
 Alloc PE / Size       0 / 0
 Free  PE / Size       372/ 1.45 GB
 VG UUID               nP2PY5-5TOS-hLx0-FDu0-2a6N-f37x-0BME0Y

       Le plus important est de vrifier les trois premiers lments
       et que la taille indique par  VG Size  est bien la taille
       de vos trois disques runis.

  2.3. Cration du volume logique

   Si le groupe de volumes semble correct, il est alors temps de
   crer un volume logique dessus.

   Vous pouvez choisir la taille que vous voulez pour le volume
   logique (de la mme manire que vous le feriez sur un
   environnement non LVM). Pour cet exemple, nous allons juste crer
   un volume logique d'1 Go sur le groupe de volumes. Le volume
   logique sera rparti en utilisant une taille de bloc de 4 Ko. Cela
   devrait amliorer ses performances.

 # lvcreate -i3 -I4 -L1G -nmon_volume_logique mon_groupe_de_volumes
 lvcreate -- rounding 1048576 KB to stripe boundary size 1056768 KB / 258 PE
 lvcreate -- doing automatic backup of "mon_groupe_de_volumes"
 lvcreate -- logical volume "/dev/mon_groupe_de_volumes/mon_volume_logique" successfully created

   [20][Note] Remarque                        
              Si vous crez le volume logique avec l'option  -i2 ,
              vous n'utiliserez que deux disques de votre groupe de
              volumes. Ceci est utile si vous voulez crer deux
              volumes logiques  partir du mme volume physique, mais
              ce point n'est pas abord dans cette recette.

  2.4. Cration du systme de fichiers

   Crez un systme de fichiers ext2 dans le volume logique :

 # mke2fs /dev/mon_groupe_de_volumes/mon_volume_logique
 mke2fs 1.19, 13-Jul-2000 for EXT2 FS 0.5b, 95/08/09
 Filesystem label=
 OS type: Linux
 Block size=4096 (log=2)
 Fragment size=4096 (log=2)
 132192 inodes, 264192 blocks
 13209 blocks (5.00%) reserved for the super user
 First data block=0
 9 block groups
 32768 blocks per group, 32768 fragments per group
 14688 inodes per group
 Superblock backups stored on blocks:
 32768, 98304, 163840, 229376

 Writing inode tables: done
 Writing superblocks and filesystem accounting information: done

  2.5. Test du systme de fichiers

   Montez le volume logique et vrifiez que tout semble correct.

 # mount /dev/mon_groupe_de_volumes/mon_volume_logique /mnt

 # df
 Filesystem           1k-blocks      Used Available Use% Mounted on
 /dev/hda1              1311552    628824    616104  51% /
 /dev/mon_groupe_de_volumes/mon_volume_logique
                        1040132        20    987276   0% /mnt

   Si tout s'est pass correctement, vous avez dsormais un volume
   logique avec un systme de fichiers ext2 mont dans /mnt.

3. Ajouter un nouveau disque dans un systme avec plusieurs disques SCSI

  3.1. Situation actuelle

   Un serveur de donnes possde six disques organiss de la faon
   suivante :

 # pvscan
 pvscan -- ACTIVE   PV "/dev/sda"  of VG "dev"   [1.95 GB / 0 free]
 pvscan -- ACTIVE   PV "/dev/sdb"  of VG "sales" [1.95 GB / 0 free]
 pvscan -- ACTIVE   PV "/dev/sdc"  of VG "ops"   [1.95 GB / 44 MB free]
 pvscan -- ACTIVE   PV "/dev/sdd"  of VG "dev"   [1.95 GB / 0 free]
 pvscan -- ACTIVE   PV "/dev/sde1" of VG "ops"   [996 MB / 52 MB free]
 pvscan -- ACTIVE   PV "/dev/sde2" of VG "sales" [996 MB / 944 MB free]
 pvscan -- ACTIVE   PV "/dev/sdf1" of VG "ops"   [996 MB / 0 free]
 pvscan -- ACTIVE   PV "/dev/sdf2" of VG "dev"   [996 MB / 72 MB free]
 pvscan -- total: 8 [11.72 GB] / in use: 8 [11.72 GB] / in no VG: 0 [0]

 # df
 Filesystem           1k-blocks      Used Available Use% Mounted on
 /dev/dev/cvs           1342492    516468    757828  41% /mnt/dev/cvs
 /dev/dev/users         2064208   2060036      4172 100% /mnt/dev/users
 /dev/dev/build         1548144   1023041    525103  66% /mnt/dev/build
 /dev/ops/databases     2890692   2302417    588275  79% /mnt/ops/databases
 /dev/sales/users       2064208    871214   1192994  42% /mnt/sales/users
 /dev/ops/batch         1032088    897122    134966  86% /mnt/ops/batch

   Comme vous pouvez le voir, les groupes  dev  et  ops  sont
   presque pleins. Un nouveau disque est achet et ajout au systme.
   Il devient /dev/sdg.

  3.2. Prparation du partitionnement du disque

   Le nouveau disque doit tre partag entre ops et dev. Il est donc
   partitionn en deux volumes physiques /dev/sdg1 et /dev/sdg2 :

 # fdisk /dev/sdg

 Device contains neither a valid DOS partition table, nor Sun or SGI
 disklabel Building a new DOS disklabel. Changes will remain in memory
 only, until you decide to write them. After that, of course, the
 previous content won't be recoverable.

 Command (m for help): n
 Command action
 e   extended
 p   primary partition (1-4)

 p
 Partition number (1-4): 1
 First cylinder (1-1000, default 1):
 Using default value 1
 Last cylinder or +size or +sizeM or +sizeK (1-1000, default 1000): 500

 Command (m for help): n
 Command action
 e   extended
 p   primary partition (1-4)

 p
 Partition number (1-4): 2
 First cylinder (501-1000, default 501):
 Using default value 501
 Last cylinder or +size or +sizeM or +sizeK (501-1000, default 1000):
 Using default value 1000

 Command (m for help): t
 Partition number (1-4): 1
 Hex code (type L to list codes): 8e
 Changed system type of partition 1 to 8e (Unknown)

 Command (m for help): t
 Partition number (1-4): 2
 Hex code (type L to list codes): 8e
 Changed system type of partition 2 to 8e (Unknown)

 Command (m for help): w
 The partition table has been altered!

 Calling ioctl() to re-read partition table.

 WARNING: If you have created or modified any DOS 6.x partitions,
 please see the fdisk manual page for additional information.

   Ensuite, les volumes physiques sont crs sur cette partition :

 # pvcreate /dev/sdg1
 pvcreate -- physical volume "/dev/sdg1" successfully created

 # pvcreate /dev/sdg2
 pvcreate -- physical volume "/dev/sdg2" successfully created

  3.3. Ajout des nouvelles partitions au groupe de volumes

   Les volumes sont ensuite ajouts aux groupes de volumes dev et
   ops :

 # vgextend ops /dev/sdg1
 vgextend -- INFO: maximum logical volume size is 255.99 Gigabyte
 vgextend -- doing automatic backup of volume group "ops"
 vgextend -- volume group "ops" successfully extended

 # vgextend dev /dev/sdg2
 vgextend -- INFO: maximum logical volume size is 255.99 Gigabyte
 vgextend -- doing automatic backup of volume group "dev"
 vgextend -- volume group "dev" successfully extended

 # pvscan
 pvscan -- reading all physical volumes (this may take a while...)
 pvscan -- ACTIVE   PV "/dev/sda"  of VG "dev"   [1.95 GB / 0 free]
 pvscan -- ACTIVE   PV "/dev/sdb"  of VG "sales" [1.95 GB / 0 free]
 pvscan -- ACTIVE   PV "/dev/sdc"  of VG "ops"   [1.95 GB / 44 MB free]
 pvscan -- ACTIVE   PV "/dev/sdd"  of VG "dev"   [1.95 GB / 0 free]
 pvscan -- ACTIVE   PV "/dev/sde1" of VG "ops"   [996 MB / 52 MB free]
 pvscan -- ACTIVE   PV "/dev/sde2" of VG "sales" [996 MB / 944 MB free]
 pvscan -- ACTIVE   PV "/dev/sdf1" of VG "ops"   [996 MB / 0 free]
 pvscan -- ACTIVE   PV "/dev/sdf2" of VG "dev"   [996 MB / 72 MB free]
 pvscan -- ACTIVE   PV "/dev/sdg1" of VG "ops"   [996 MB / 996 MB free]
 pvscan -- ACTIVE   PV "/dev/sdg2" of VG "dev"   [996 MB / 996 MB free]
 pvscan -- total: 10 [13.67 GB] / in use: 10 [13.67 GB] / in no VG: 0 [0]

  3.4. Extension des systmes de fichiers

   L'action suivante est d'tendre les systmes de fichiers pour que
   de l'espace disque supplmentaire soit disponible aux
   utilisateurs.

   Il existe des outils qui permettent le redimensionnement  chaud
   des systmes de fichiers ext2, mais nous utilisons ici la mthode
   la plus sre et dmontons les deux systmes de fichiers avant le
   redimensionnement :

 # umount /mnt/ops/batch
 # umount /mnt/dev/users

   Nous utilisons ensuite la commande e2fsadm pour redimensionner le
   volume logique et le systme de fichiers ext2 en une seule
   opration. Nous utilisons ext2resize  la place de resize2fs (qui
   est la commande par dfaut de e2fsadm). Pour cela, nous
   dfinissons la variable d'environnement E2FSADM_RESIZE_CMD pour
   dire  e2fsadm d'utiliser cette commande.

 # export E2FSADM_RESIZE_CMD=ext2resize
 # e2fsadm /dev/ops/batch -L+500M
 e2fsck 1.18, 11-Nov-1999 for EXT2 FS 0.5b, 95/08/09
 Pass 1: Checking inodes, blocks, and sizes
 Pass 2: Checking directory structure
 Pass 3: Checking directory connectivity
 Pass 4: Checking reference counts
 Pass 5: Checking group summary information
 /dev/ops/batch: 11/131072 files (0.0<!--  non-contiguous), 4127/262144 blocks
 lvextend -- extending logical volume "/dev/ops/batch" to 1.49 GB
 lvextend -- doing automatic backup of volume group "ops"
 lvextend -- logical volume "/dev/ops/batch" successfully extended

 ext2resize v1.1.15 - 2000/08/08 for EXT2FS 0.5b
 e2fsadm -- ext2fs in logical volume "/dev/ops/batch" successfully extended to 1.49 GB

 # e2fsadm /dev/dev/users -L+900M
 e2fsck 1.18, 11-Nov-1999 for EXT2 FS 0.5b, 95/08/09
 Pass 1: Checking inodes, blocks, and sizes
 Pass 2: Checking directory structure
 Pass 3: Checking directory connectivity
 Pass 4: Checking reference counts
 Pass 5: Checking group summary information
 /dev/dev/users: 12/262144 files (0.0% non-contiguous), 275245/524288 blocks
 lvextend -- extending logical volume "/dev/dev/users" to 2.88 GB
 lvextend -- doing automatic backup of volume group "dev"
 lvextend -- logical volume "/dev/dev/users" successfully extended

 ext2resize v1.1.15 - 2000/08/08 for EXT2FS 0.5b
 e2fsadm -- ext2fs in logical volume "/dev/dev/users" successfully extended to 2.88 GB

  3.5. Remontage des volumes tendus

   Nous pouvons dsormais remonter les systmes de fichiers et
   vrifier qu'il y a maintenant plus d'espace libre.

 # mount /dev/ops/batch
 # mount /dev/dev/users
 # df
 Filesystem           1k-blocks      Used Available Use% Mounted on
 /dev/dev/cvs           1342492    516468    757828  41% /mnt/dev/cvs
 /dev/dev/users         2969360   2060036    909324  69% /mnt/dev/users
 /dev/dev/build         1548144   1023041    525103  66% /mnt/dev/build
 /dev/ops/databases     2890692   2302417    588275  79% /mnt/ops/databases
 /dev/sales/users       2064208    871214   1192994  42% /mnt/sales/users
 /dev/ops/batch         1535856    897122    638734  58% /mnt/ops/batch

4. Faire une sauvegarde avec un instantan (snapshot)

    la suite de l'exemple prcdent, nous dsirons maintenant
   utiliser l'espace supplmentaire dans le groupe de volumes  ops 
   pour faire une sauvegarde de la base de donnes tous les soirs.
   Pour nous assurer de la cohrence des donnes sur la bande, nous
   utilisons la fonctionnalit d'instantan de LVM.

   Ce type de volume est une copie en lecture seule d'un autre volume
   et qui contient toutes les donnes qui taient dans ce volume au
   moment de sa cration. Cela signifie que nous pouvons faire une
   sauvegarde du volume sans se proccuper des modifications de
   donnes pendant la sauvegarde et par consquent il n'y a pas
   besoin de garder la base de donnes teinte pendant la sauvegarde.

  4.1. Crer le volume d'instantan

   Il reste un peu plus de 500 Mo d'espace libre dans le groupe de
   volume  ops . Nous allons l'utiliser entirement pour le volume
   logique d'instantan. Un volume logique d'instantan peut tre
   aussi grand ou petit que vous le souhaitez, mais il doit tre
   assez grand pour contenir toutes les modifications qui peuvent
   apparatre sur le volume originel pendant la dure de vie de
   l'instantan. Ici, permettre 500 Mo de modifications dans la base
   de donnes devrait tre trs large.

 # lvcreate -L592M -s -n dbbackup /dev/ops/databases
 lvcreate -- WARNING: the snapshot must be disabled if it gets full
 lvcreate -- INFO: using default snapshot chunk size of 64 KB for "/dev/ops/dbbackup"
 lvcreate -- doing automatic backup of "ops"
 lvcreate -- logical volume "/dev/ops/dbbackup" successfully created

[21][Note] Note                                                   
           Si l'instantan est effectu pour un systme de fichiers XFS, la commande xfs_freeze doit tre utilise
           pour figer le systme de fichiers avant la cration de l'instantan. (Si le systme de fichiers est
           mont.)                                                
                                                                  
           # xfs_freeze -f /mnt/point; lvcreate -L592M -s -n dbbackup /dev/ops/databases; xfs_freeze -u /mnt/point

   [22][Avertissement] Les instantans pleins sont           
                       automatiquement dsactivs            
                       Si le volume logique d'instantan devient
                       plein, il deviendra inutilisable. Il est donc
                       vital d'allouer suffisamment d'espace.

  4.2. Monter le volume d'instantan

   Nous pouvons dsormais crer un point de montage et monter le
   volume.

 # mkdir /mnt/ops/dbbackup
 # mount /dev/ops/dbbackup /mnt/ops/dbbackup

 mount: block device /dev/ops/dbbackup is write-protected, mounting read-only

   Si vous utilisez le systme de fichiers XFS, il faut ajouter
   l'option nouuid  la commande mount :

 # mount /dev/ops/dbbackup /mnt/ops/dbbackup -onouuid,ro

   [23][Note] Note                           
              Avant, on conseillait l'option norecovery pour pouvoir
              monter des instantans XFS. Dsormais, il est
              recommand de ne pas utiliser cette option mais,  la
              place, d'utiliser xfs_freeze pour figer le systme de
              fichiers avant la cration de l'instantan.

  4.3. Faire la sauvegarde

   Je suppose que vous avez des stratgies de sauvegarde un peu plus
   sophistiques que a !

 # tar -cf /dev/rmt0 /mnt/ops/dbbackup
 tar: Removing leading `/' from member names

  4.4. Supprimer l'instantan

   Une fois la sauvegarde effectue, vous pouvez dmonter le volume
   et le supprimer du systme. Vous devriez enlever les volumes
   d'instantans ds que vous avez fini de les utiliser car il font
   une copie de toutes les donnes crites sur le volume originel et
   cela peut impacter les performances.

 # umount /mnt/ops/dbbackup
 # lvremove /dev/ops/dbbackup

 lvremove -- do you really want to remove "/dev/ops/dbbackup"? [y/n]: y
 lvremove -- doing automatic backup of volume group "ops"
 lvremove -- logical volume "/dev/ops/dbbackup" successfully removed

5. Enlever un disque

   Admettons que vous ayez un vieux disque IDE sur /dev/hdb. Vous
   voulez le retirer mais de nombreux fichiers sont encore dessus.

   [24][Attention] Sauvegarder votre systme              
                   Vous devriez toujours effectuer une sauvegarde de
                   votre systme avant de faire une opration avec
                   pvremove.                              

  5.1. Distribuer les anciens extents vers des disques existants du
  groupe de volumes

   Si vous avez assez d'extents libres sur les autres disques du
   groupe de volumes, c'est trs simple. Il suffit d'excuter la
   commande :

 # pvmove /dev/hdb
 pvmove -- moving physical extents in active volume group "dev"
 pvmove -- WARNING: moving of active logical volumes may cause data loss!
 pvmove -- do you want to continue? [y/n] y

 pvmove -- 249 extents of physical volume "/dev/hdb" successfully moved

   Cela va dplacer les extents physiques allous sur /dev/hdb vers
   les autres disques du groupe de volumes.

   [25][Note] pvmove est lent                     
              Attention, pvmove est trs lent car il doit copier le
              contenu d'un disque vers un ou plusieurs autres, bloc
              par bloc. Si vous souhaitez plus d'informations sur
              l'avancement de l'opration, utilisez l'option -v avec
              pvmove.                             

    5.1.1. Enlever l'ancien disque

   Nous pouvons dsormais supprimer l'ancien disque du groupe de
   volumes.

 # vgreduce dev /dev/hdb
 vgreduce -- doing automatic backup of volume group "dev"
 vgreduce -- volume group "dev" successfully reduced by physical volume:
 vgreduce -- /dev/hdb

   Le disque peut dsormais tre enlev physiquement au prochain
   arrt de la machine ou bien tre rallou  d'autres utilisateurs.

  5.2. Distribuer les anciens extents sur un nouveau disque de
  remplacement

   Si vous n'avez pas assez d'extents physiques libres pour les
   anciens extents, il va falloir rajouter un disque dans le groupe
   de volumes et y dplacer les extents.

    5.2.1. Prparer le disque

   D'abord, il faut utiliser pvcreate sur le nouveau disque pour le
   rendre disponible dans LVM. Dans cette recette, nous montrons
   qu'il n'est pas ncessaire de partitionner un disque pour pouvoir
   l'utiliser.

 # pvcreate /dev/sdf
 pvcreate -- physical volume "/dev/sdf" successfully created

    5.2.2. Ajouter le disque au groupe de volumes

   Comme les dveloppeurs utilisent beaucoup d'espace disque, leur
   volume est un bon candidat pour l'ajout.

 # vgextend dev /dev/sdf
 vgextend -- INFO: maximum logical volume size is 255.99 Gigabyte
 vgextend -- doing automatic backup of volume group "dev"
 vgextend -- volume group "dev" successfully extended


    5.2.3. Dplacer les donnes

   Ensuite, nous dplaons les donnes de l'ancien disque vers le
   nouveau. Remarquez qu'il n'est pas ncessaire de dmonter le
   systme de fichiers avant de le faire. Cependant, il est
   *vivement* recommand de faire une sauvegarde complte avant de
   faire cette opration au cas o elle soit interrompue par une
   coupure lectrique ou tout autre problme. La commande pvmove peut
   prendre un temps considrable et rduire les performances des deux
   volumes. Il est donc conseill d'attendre qu'ils ne soient pas
   trop occups.

 # pvmove /dev/hdb /dev/sdf
 pvmove -- moving physical extents in active volume group "dev"
 pvmove -- WARNING: moving of active logical volumes may cause data loss!
 pvmove -- do you want to continue? [y/n] y
 pvmove -- 249 extents of physical volume "/dev/hdb" successfully moved

    5.2.4. Enlever l'ancien disque

   Nous pouvons dsormais supprimer l'ancien disque du groupe de
   volumes.

 # vgreduce dev /dev/hdb
 vgreduce -- doing automatic backup of volume group "dev"
 vgreduce -- volume group "dev" successfully reduced by physical volume:
 vgreduce -- /dev/hdb

   Le disque peut tre enlev physiquement au prochain arrt de la
   machine ou bien tre rallou  d'autres utilisateurs.

6. Dplacer un groupe de volumes vers un autre systme

   Il est trs simple de dplacer un groupe de volumes entier vers un
   autre systme. Par exemple, si on acquiert un nouveau serveur pour
   le dpartement. Pour cela, on utilise les commandes vgexport et
   vgimport.

   [26][Note] Note                            
              vgexport et vgimport ne sont pas ncessaires pour
              dplacer des disques. Ce sont des outils
              d'administration permettant d'empcher les accs aux
              volumes le temps de les dplacer.

  6.1. Dmonter le systme de fichiers

   Il faut nous assurer qu'aucun utilisateur n'accde aux fichiers
   sur le volume et ensuite il faut le dmonter :

 # unmount /mnt/design/users

  6.2. Marquer le groupe de volumes comme inactif

   Rendre le groupe de volumes inactif l'enlve du noyau et empche
   toute activit sur celui-ci.

 # vgchange -an design
 vgchange -- volume group "design" successfully deactivated

  6.3. Exporter le groupe de volumes

   Il est ensuite ncessaire d'exporter le groupe de volumes. Cela
   empche qu'on y accde sur  l'ancienne  machine et le prpare 
   tre retir.

 # vgexport design
 vgexport -- volume group "design" sucessfully exported

   Au prochain arrt de la machine, le disque peut tre enlev et
   plac sur sa nouvelle machine.

  6.4. Importer le groupe de volumes

   Une fois connect au nouveau systme, un pvscan initial montre
   qu'il est devenu /dev/sdb :

 # pvscan
 pvscan -- reading all physical volumes (this may take a while...)
 pvscan -- inactive PV "/dev/sdb1"  is in EXPORTED VG "design" [996 MB / 996 MB free]
 pvscan -- inactive PV "/dev/sdb2"  is in EXPORTED VG "design" [996 MB / 244 MB free]
 pvscan -- total: 2 [1.95 GB] / in use: 2 [1.95 GB] / in no VG: 0 [0]

   Nous pouvons dsormais importer le groupe de volumes (ce qui
   l'active au passage) et monter le systme de fichiers.

 # vgimport design /dev/sdb1 /dev/sdb2
 vgimport -- doing automatic backup of volume group "design"
 vgimport -- volume group "design" successfully imported and activated

  6.5. Activer le groupe de volumes

   Vous devez activer le groupe de volumes avant de pouvoir y
   accder.

 # vgchange -ay design

  6.6. Monter le systme de fichiers

 # mkdir -p /mnt/design/users
 # mount /dev/design/users /mnt/design/users

   Le systme de fichiers est dsormais prt  tre utilis.

7. Diviser un groupe de volumes

   Supposons que nous devons rajouter le nouveau groupe
   d'utilisateurs  design  au systme. Un moyen de le grer est
   d'ajouter un groupe de volumes au systme pour y mettre leurs
   donnes. Ici, nous n'avons pas de nouveau disque mais beaucoup
   d'espace libre sur les disques existants qui peut tre rallou.

  7.1. Dterminer l'espace libre

 # pvscan
 pvscan -- reading all physical volumes (this may take a while...)
 pvscan -- ACTIVE   PV "/dev/sda"  of VG "dev"   [1.95 GB / 0 free]
 pvscan -- ACTIVE   PV "/dev/sdb"  of VG "sales" [1.95 GB / 1.27 GB free]
 pvscan -- ACTIVE   PV "/dev/sdc"  of VG "ops"   [1.95 GB / 564 MB free]
 pvscan -- ACTIVE   PV "/dev/sdd"  of VG "dev"   [1.95 GB / 0 free]
 pvscan -- ACTIVE   PV "/dev/sde"  of VG "ops"   [1.95 GB / 1.9 GB free]
 pvscan -- ACTIVE   PV "/dev/sdf"  of VG "dev"   [1.95 GB / 1.33 GB free]
 pvscan -- ACTIVE   PV "/dev/sdg1" of VG "ops"   [996 MB / 432 MB free]
 pvscan -- ACTIVE   PV "/dev/sdg2" of VG "dev"   [996 MB / 632 MB free]
 pvscan -- total: 8 [13.67 GB] / in use: 8 [13.67 GB] / in no VG: 0 [0]

   Nous dcidons de rallouer /dev/sdg1 et /dev/sdg2   design . Il
   faut commencer par dplacer tous les extents physiques dans des
   espaces libres d'autres volumes (dans notre cas /dev/sdf pour le
   VG dev et /dev/sde pour ops).

  7.2. Dplacer les donnes des disques  rutiliser

   De l'espace est toujours utilis sur les volumes choisis, il faut
   donc dplacer les donnes autre part.

   Dplacez tous les extents physiques utiliss de /dev/sdg1 vers
   /dev/sde et de /dev/sdg2 vers /dev/sdf.

 # pvmove /dev/sdg1 /dev/sde
 pvmove -- moving physical extents in active volume group "ops"
 pvmove -- WARNING: moving of active logical volumes may cause data loss!
 pvmove -- do you want to continue? [y/n] y
 pvmove -- doing automatic backup of volume group "ops"
 pvmove -- 141 extents of physical volume "/dev/sdg1" successfully moved

 # pvmove /dev/sdg2 /dev/sdf
 pvmove -- moving physical extents in active volume group "dev"
 pvmove -- WARNING: moving of active logical volumes may cause data loss!
 pvmove -- do you want to continue? [y/n] y
 pvmove -- doing automatic backup of volume group "dev"
 pvmove -- 91 extents of physical volume "/dev/sdg2" successfully moved

  7.3. Crer un nouveau groupe de volumes

   Maintenant, sparez /dev/sdg2 de dev et ajoutez-le  un nouveau
   groupe appel  design . Il est possible de faire cela avec
   vgreduce et vgcreate, mais vgsplit combine les deux commandes.

 # vgsplit dev design /dev/sdg2
 vgsplit -- doing automatic backup of volume group "dev"
 vgsplit -- doing automatic backup of volume group "design"
 vgsplit -- volume group "dev" successfully split into "dev" and "design"

  7.4. Enlever le volume restant

   Ensuite, enlevez /dev/sdg1 de ops et ajoutez-le dans design.

 # vgreduce ops /dev/sdg1
 vgreduce -- doing automatic backup of volume group "ops"
 vgreduce -- volume group "ops" successfully reduced by physical volume:
 vgreduce -- /dev/sdg1

 # vgextend design /dev/sdg1
 vgextend -- INFO: maximum logical volume size is 255.99 Gigabyte
 vgextend -- doing automatic backup of volume group "design"
 vgextend -- volume group "design" successfully extended

  7.5. Crer le nouveau volume logique

   Maintenant, crez un volume logique. Au lieu d'allouer tout
   l'espace disponible, gardez un peu d'espace de rserve au cas o
   vous en auriez besoin ailleurs.

 # lvcreate -L750M -n users design
 lvcreate -- rounding up size to physical extent boundary "752 MB"
 lvcreate -- doing automatic backup of "design"
 lvcreate -- logical volume "/dev/design/users" successfully created

  7.6. Crez un systme de fichiers sur le volume

 # mke2fs /dev/design/users
 mke2fs 1.18, 11-Nov-1999 for EXT2 FS 0.5b, 95/08/09
 Filesystem label=
 OS type: Linux
 Block size=4096 (log=2)
 Fragment size=4096 (log=2)
 96384 inodes, 192512 blocks
 9625 blocks (5.00<!-- ) reserved for the super user
 First data block=0
 6 block groups
 32768 blocks per group, 32768 fragments per group
 16064 inodes per group
 Superblock backups stored on blocks:
 32768, 98304, 163840

 Writing inode tables: done
 Writing superblocks and filesystem accounting information: done

  7.7. Montez le nouveau volume

 # mkdir -p /mnt/design/users
 # mount /dev/design/users /mnt/design/users/

   C'est aussi une bonne d'ide d'ajouter une entre dans /etc/fstab
   pour ce systme de fichiers :

 /dev/design/user /mnt/design/users   ext2    defaults        1 2

8. Convertir le systme de fichiers racine en LVM 1

   [27][Attention] Sauvegardez votre systme                
                   Il est fortement recommand de faire une 
                   sauvegarde complte de votre systme avant
                   d'essayer de convertir votre racine en LVM 1.

   [28][Avertissement] Complications des mises  jour         
                       Avoir son systme de fichiers racine en LVM 1
                       peut compliquer significativement les  
                       procdures de mise  jour (suivant les 
                       distributions) donc la dcision ne doit pas
                       tre prise  la lgre. Plus prcisment, vous
                       devez vous assurer que le module LVM 1 (s'il
                       n'est pas compil directement dans le noyau)
                       ainsi que les utilitaires vgscan et vgchange
                       sont disponibles avant, pendant et aprs la
                       mise  jour.                           

   [29][Avertissement] Complications des rcuprations        
                       Avoir son systme racine sous LVM 1 peut
                       compliquer significativement la rcupration
                       de systmes de fichiers endommags. Si vous
                       perdez votre initrd, il sera trs difficile de
                       dmarrer le systme. Il faudra alors un disque
                       de rcupration contenant le noyau, le module
                       et les utilitaires LVM 1 et tous les outils
                       ncessaires pour rcuprer un systme de
                       fichiers endommag. Soyez sr de faire des
                       sauvegardes rgulires et de garder une
                       mthode de dmarrage alternative qui permet la
                       rcupration de LVM.                   

   Dans cet exemple, tout le systme tait install sur une seule
   partition racine except /boot. Le systme avait 2 Go de disque
   partitionns de la faon suivante :

 /dev/hda1  /boot
 /dev/hda2  swap
 /dev/hda3  /

   La partition / remplissait tout le disque hormis la partition
   /boot et le swap. Un des pr-requis important pour cette procdure
   est que moins de la moiti de la partition racine soit remplie
   (pour pouvoir en faire une copie dans le volume logique). Si ce
   n'est pas le cas, un second disque devra tre utilis. La
   procdure est alors similaire, sauf qu'il n'est pas ncessaire de
   rduire la partition racine existante et /dev/hda4 doit tre
   remplac, par exemple, par /dev/hdb1 dans notre cas.

   Le plus simple pour faire cela est d'utiliser GNU parted. Ce
   logiciel permet de rduire ou d'agrandir des partitions avec des
   systmes de fichiers. Il est possible d'utiliser resize2fs et
   fdisk, mais GNU parted est moins sensible aux erreurs. S'il n'est
   pas inclus dans votre distribution, vous pouvez le tlcharger 
   l'adresse : [30]ftp://ftp.gnu.org/pub/gnu/parted.

   Une fois que vous avez install parted et QUE VOUS AVEZ SAUVEGARD
   VOTRE SYSTME :

  8.1. Dmarrer en mode mono-utilisateur

   Dmarrez en mode mono-utilisateur (tapez linux S  l'invite de
   Lilo). Ceci est important car cela assure que le systme de
   fichiers racine sera mont en lecture seule et qu'aucun programme
   n'accdera au disque.

  8.2. Utiliser Parted

   Utilisez parted pour rduire la partition racine. Cela doit
   permettre d'avoir assez de place sur le disque pour une copie
   complte de celui-ci dans un volume logique. Dans cet exemple, la
   partition de 1,8 Go est rduite  1 Go. Cela montre les tailles et
   noms des partitions sur le disque.

 # parted /dev/hda
 (parted) p
 .
 .
 .

   Maintenant, retaillez la partition :

 (parted) resize 3 145 999

   Le premier nombre est le numro de la partition (hda3). Le second
   est le numro de dbut de partition de hda3 (en Mo depuis le dbut
   du disque), ne le changez pas. Le dernier numro (en Mo depuis le
   dbut du disque) indique la fin de la partition et devrait la
   rduire d' peu prs  la moiti de sa taille actuelle.

   Crez une nouvelle partition :

 (parted) mkpart primary ext2 1000 1999

   Cela cre une nouvelle partition pour contenir les donnes
   initiales de LVM 1. Elle devrait commencer juste  la suite de la
   partition rduite hda3 et terminer  la fin du disque.

   Quittez parted :

 (parted) q

  8.3. Redmarrer

   Redmarrez le systme.

  8.4. Vrifier les options de configuration du noyau

   Assurez-vous que le noyau qui tourne actuellement fonctionne avec
   LVM 1 et est configur avec les paramtres CONFIG_BLK_DEV_RAM et
   CONFIG_BLK_DEV_INITRD.

  8.5. Ajuster le type de partition

   Changez le type de la nouvelle partition de Linux  LVM (8e).
   Parted ne connat pas les partitions LVM 1, donc il faut le faire
   avec fdisk.

 # fdisk /dev/hda
 Command (m for help): t
 Partition number (1-4): 4
 Hex code (type L to list codes): 8e
 Changed system type of partition 4 to 8e (Unknown)
 Command (m for help): w

  8.6. Configurer LVM 1 pour la nouvelle configuration

     o Initialisez LVM 1 (vgscan) :

 # vgscan

     o Insrez la nouvelle partition dans un PV :

 # pvcreate /dev/hda4

     o Crez un nouveau groupe de volumes :

 # vgcreate vg /dev/hda4

     o Crez un volume logique pour contenir la nouvelle racine :

 # lvcreate -L250M -n root vg

  8.7. Crer le systme de fichiers

   Crez un systme de fichiers dans le volume logique et copiez-y
   les fichiers racines.

 # mke2fs /dev/vg/root
 # mount /dev/vg/root /mnt/
 # find / -xdev | cpio -pvmd /mnt

  8.8. Mise  jour de /etc/fstab

   Ouvrez /mnt/etc/fstab de la nouvelle racine pour monter / sur
   /dev/vg/root. Par exemple :

 /dev/hda3       /    ext2       defaults 1 1

   devient :

 /dev/vg/root    /    ext2       defaults 1 1

  8.9. Crez une image disque RAM d'initialisation pour LVM 1

 # lvmcreate_initrd

   Retenez le nom du fichier cr par lvmcreate_initrd. Il doit tre
   dans /boot.

  8.10. Mise  jour de /etc/lilo.conf

   Ajoutez une entre dans /etc/lilo.conf pour LVM 1. Cela devrait
   ressembler  ceci :

 image   = /boot/KERNEL_IMAGE_NAME
 label   = lvm
 root    = /dev/vg/root
 initrd  = /boot/INITRD_IMAGE_NAME
 ramdisk = 8192

   o KERNEL_IMAGE_NAME est le nom de votre noyau avec LVM 1 et
   INITRD_IMAGE_NAME est le nom de l'image initrd cre par
   lvmcreate_initrd. Il se peut que la valeur pour ramdisk doive tre
   augmente si vous avez une grosse configuration LVM 1, mais 8192
   devrait suffire pour la plupart des utilisateurs. La valeur par
   dfaut de ramdisk est 4096. Dans le doute, vrifiez dans la sortie
   de la commande lvmcreate_initrd la ligne qui dit :

 lvmcreate_initrd -- making loopback file (6189 kB)

   et crez un ramdisk de la taille entre parenthses.

   Vous devez recopier ce nouveau lilo.conf dans le nouveau systme
   de fichiers racine.

 # cp /etc/lilo.conf /mnt/etc/

  8.11. Lancez lilo pour crire le nouveau secteur de boot

 # lilo

  8.12. Redmarrer avec LVM

   Redmarrez et tapez  lvm   l'invite de Lilo. Le systme devrait
   dmarrer sous Linux en utilisant le nouveau volume logique.

   Si cela a fonctionn, vous devriez mettre lvm comme dmarrage par
   dfaut en ajoutant la ligne suivante dans la premire section de
   /etc/lilo.conf :

 default=lvm

   Si cela n'a pas fonctionn, redmarrez normalement et penchez-vous
   sur le problme. Cela peut provenir d'une erreur de syntaxe dans
   lilo.conf ou de LVM 1 qui n'est pas disponible dans l'image disque
   RAM ou le noyau. Examinez soigneusement le message affich au
   dmarrage.

  8.13. Ajoutez le reste du disque dans LVM

   Une fois que vous tes satisfait de la configuration, vous pouvez
   ajoutez le reste du disque dans LVM 1, y compris l'ancienne
   partition racine.

   D'abord, il faut mettre le type de partition  8e (LVM) :

 # fdisk /dev/hda
 Command (m for help): t
 Partition number (1-4): 3
 Hex code (type L to list codes): 8e
 Changed system type of partition 3 to 8e (Unknown)
 Command (m for help): w

   Convertissez-la en PV et ajoutez-la au groupe de volumes :

 # pvcreate /dev/hda3
 # vgextend vg /dev/hda3

Annexe A. Oprations dangereuses

   Table des matires

   1. Restaurer les UUID de VG avec uuid_fixer

   2. Partager des volumes LVM

   [31][Avertissement] Attention                    
                       Ne faites pas ceci si vous n'tes pas sr de
                       ce que vous faites. Vous y perdrez
                       probablement toutes vos donnes.

1. Restaurer les UUID de VG avec uuid_fixer

   Si vous avez mis  jour LVM d'une version prcdente aux premires
   versions 0.9 ou 0.9.1 et que vgscan indique vgscan -- no volume
   groups found, voici un moyen de corriger le problme :

     o Tlchargez le programme de rparation des UUID  partir du
       rpertoire des contributions chez Sistina.

       Il se trouve  :
       [32]ftp://ftp.sistina.com/pub/LVM/contrib/uuid_fixer-0.3-IOP10.tar.gz.

     o Extrayez uuid_fixer-0.3-IOP10.tar.gz :

 # tar zxf uuid_fixer-0.3-IOP10.tar.gz

     o Allez dans uuid_fixer :

 # cd uuid_fixer

       Il y a deux possibilits  ce niveau :

         1. Utiliser le binaire dj compil (pour une architecture
            i386 uniquement)

            Assurez-vous de lister tous les PV dans le VG que vous
            restaurez et suivez les indications :

 # ./uuid_fixer <LISTE DE TOUS LES PV DU VG QUI DOIVENT TRE RESTAURS>

         2. Construire le programme uuid_fixer  partir des sources

            Ouvrez le Makefile avec votre diteur favori et vrifiez
            que LVMDIR pointe sur vos sources de LVM.

            Ensuite, lancez make.

 # make

            Lancez maintenant uuid_fixer. Assurez-vous de lister tous
            les PV dans le VG que vous restaurez et suivez les
            indications :

 # ./uuid_fixer <LISTE DE TOUS LES PV DU VG QUI DOIVENT TRE RESTAURS>

     o Dsactivez les groupes de volumes (optionnel) :

 # vgchange -an

     o Lancez vgscan :

 # vgscan

     o Ractivez des groupes de volumes :

 # vgchange -ay

2. Partager des volumes LVM

   [33][Avertissement] LVM n'est pas conscient des clusters  
                       Faites trs attention en faisant cela car LVM
                       n'est pas conscient des clusters et il est
                       trs facile de perdre toutes ses donnes.

   Si vous avez un environnement avec du fiber-channel ou du SCSI
   partag o plusieurs machines peuvent avoir un accs physique  un
   lot de disques, vous pouvez utiliser LVM pour diviser ces disques
   en volumes logiques. Si vous voulez partager des donnes, vous
   devriez vraiment regarder GFS
   [http://www.redhat.com/software/rha/gfs] ou un autre systme de
   fichiers pour cluster.

   Le point cl  se souvenir lorsqu'on partage des volumes est que
   toute l'administration de LVM doit tre effectue sur l'un des
   nuds et que LVM doit tre arrt sur tous les autres nuds avant
   de faire une quelconque modification sur le nud d'administration.
   Une fois les changements effectus, il est ncessaire de lancer
   vgscan sur les autres nuds avant de rutiliser les groupes de
   volumes. Aussi,  moins que vous n'utilisiez un systme de
   fichiers ou une application prenant en compte les clusters (comme
   GFS), un seul nud  la fois peut monter un systme de fichiers.
   C'est  l'administrateur de grer cela ; LVM ne vous empchera pas
   de corrompre vos donnes.

   La squence de dmarrage de chaque nud est la mme que pour une
   configuration  un seul nud avec l'utilisation de :

 vgscan
 vgchange -ay

   dans les scripts de dmarrage.

   Si vous avez besoin d'apporter une quelconque modification aux
   mta-donnes de LVM (indpendamment que cela affecte ou pas les
   volumes monts sur d'autres nuds), il faut utiliser la procdure
   suivante. Dans les points suivants, le  nud d'administration 
   est un nud choisi arbitrairement dans le cluster.

 Nud d'administration        Autres nuds
 ---------------------        ------------------
                              Fermer tous les volumes logiques (umount)
                              vgchange -an
 <faire les modifications,
 par ex. lvextend>
                              vgscan
                              vgchange -ay

   [34][Note] Les VG doivent tre actifs sur le nud          
              d'administration                                
              Vous n'avez pas besoin et ne devez pas dfaire les VG
              du nud d'administration. Par consquent, cela doit
              tre le nud avec les pr-requis d'uptime les plus
              grands.                                         

   Je me rpte encore : Soyez trs prudent en faisant cela.

Annexe B. Signaler des erreurs ou des bogues

   ATTENTION, toute communication avec les listes de diffusion de LVM
   doit se faire exclusivement en anglais.

   Juste nous dire que LVM ne fonctionne pas ne nous donne pas assez
   d'informations pour vous aider. Nous devons connatre les
   diffrents composants de votre configuration. La premire chose 
   faire est de regarder les archives de la liste de diffusion
   linux-lvm [http://www.redhat.com/archives/linux-lvm/] pour
   vrifier si quelqu'un n'a pas dj signal le mme problme. Si
   vous ne trouvez pas de rapport de bogue pour un problme similaire
   au vtre, vous devriez essayer de rcuprer autant d'information
   que possible. La liste est organise avec trois catgories
   d'erreurs :

     o Pour les erreurs de compilation :

         1. Dtaillez la version spcifique de LVM que vous utilisez.
            Si elle provient d'un paquet, donnez le nom du fichier
            tar et des diffrents correctifs que vous auriez pu
            appliquer. Si elle provient du serveur CVS public, donner
            la date et l'heure o vous l'avez rcupre.

         2. Donnez le message d'erreur exact. Fournissez aussi les
            quelques lignes qui prcdent le message d'erreur et les
            quelques lignes suivantes. Elles donnent parfois des
            indices sur la raison du problme.

         3. Listez les tapes, dans l'ordre, qui ont amen 
            l'erreur. Indiquez si l'erreur est reproductible. Si vous
            repartez de l'tat initial, les mmes tapes
            permettent-elles de reproduire l'erreur ?

     o Pour les erreurs LVM :

         1. Incluez toutes les informations demandes dans le
            paragraphe compilation.

         2. Ajoutez une brve description de votre matriel : type de
            machine et de disques, interface des disques (SCSI, FC,
            NBD) et toute autre information matrielle que vous
            trouvez importante.

         3. Donnez les lignes de commandes de LVM qui ont amen
            l'erreur.

         4. Un fichier de trace produit par les commandes fautives.
            Pour cela, vrifiez la prsence des lignes suivantes dans
            /etc/lvm/lvm.conf :

 log {
         file="/tmp/lvm2.log"
         level=7
         activation=1
 }

     o Quand LVM panique :

         1. Incluez toutes les informations demandes dans les deux
            paragraphes prcdents.

         2. Fournissez les informations de debug de la machine. Le
            mieux est de rcuprer ces informations d'une console sur
            le port srie de la machine, tant donn qu'il est
            difficile de faire un copier/coller d'une machine en
            panique et qu'il est trs facile de faire une erreur en
            recopiant les informations  la main.

   Cela peut faire beaucoup d'informations. Si vous avez plusieurs
   fichiers, faites une archive tar et gzip en un seul fichier.
   Envoyez un lien vers l'archive sur la liste de diffusion
   approprie (voir la Section 1,  Listes de diffusion ) avec une
   brve description de l'erreur. Si vous n'avez pas de site web ou
   ftp pour mettre votre archive  disposition, vous pouvez essayer
   d'envoyer le fichier  la liste.

Annexe C. Contacts et liens

   Table des matires

   1. Listes de diffusion

   2. Liens

1. Listes de diffusion

   ATTENTION, toute communication avec les listes de diffusion de LVM
   doit se faire exclusivement en anglais.

   Avant de poster sur une de nos listes, veuillez lire tout le
   document et vrifier les archives pour voir si votre question n'a
   pas dj eu une rponse. S'il vous plat, ne postez que du format
   texte sur nos listes. Les messages enjolivs sont presque
   impossibles  lire s'ils ne sont pas lus sur un client de
   messagerie qui les comprend. L'tiquette standard des listes de
   diffusion s'applique. Les questions ou donnes de configuration
   incompltes rendent les rponses trs difficiles  faire.

   Listes de diffusion de LVM

   linux-lvm

           Cette liste est destine aux questions et commentaires des
           utilisateurs. Vous pouvez obtenir vos rponses d'autres
           utilisateurs qui ont eu les mmes problmes. Les
           discussions ouvertes sont encourages. Les rapports de
           bogues doivent tre envoys  cette liste.

           L'inscription se fait par une interface web
           [http://www.redhat.com/mailman/listinfo/linux-lvm].

           Les anciens messages sont consultables dans les archives
           [http://www.redhat.com/archives/linux-lvm/].

   dm-devel

           Cette liste n'est pas spcifique  LVM mais elle est
           mentionne ici du fait de l'utilisation du mappeur de
           priphriques par LVM 2.

           L'inscription se fait par l'interface web
           [http://www.redhat.com/mailman/listinfo/dm-devel].

           Les anciens messages sont consultables dans les archives
           [http://www.redhat.com/archives/dm-devel/].

   Listes LVM relatives au commit

   lvm2-commit

           Cette liste reoit des messages automatiquement quand
           quelqu'un fait un commit dans le CVS de LVM 2. Son but est
           de permettre de suivre l'volution de l'arborescence CVS.

           Les anciens messages sont consultables dans les archives
           [http://sources.redhat.com/ml/lvm2-cvs/].

   lvm-commit

           Cette liste reoit des messages automatiquement quand
           quelqu'un fait un commit dans le CVS de LVM. Son but est
           de permettre de suivre l'volution de l'arborescence CVS.

           Les anciens messages sont consultables dans les archives
           [http://sources.redhat.com/ml/lvm-cvs/].

   dm-commit

           Cette liste reoit des messages automatiquement quand
           quelqu'un fait un commit dans le CVS de dm. Son but est de
           permettre de suivre l'volution de l'arborescence CVS.

           Les anciens messages sont consultables dans les archives
           [http://sources.redhat.com/ml/dm-cvs/].

   Anciennes listes

   lvm-devel

           Cette liste n'est plus en activit, veuillez utiliser
           linux-lvm pour les discussions sur le dveloppement de
           LVM.

   lvm-bugs

           Cette liste n'est plus en activit. Les rapports
           d'anomalie doivent tre envoys  la liste linux-lvm.

2. Liens

   Liens sur LVM :

     o Page principale de Logical Volume Manager
       [http://sources.redhat.com/lvm2/].

     o Page principale de LVM 1 [http://sources.redhat.com/lvm/].

     o Page principale de Device-Mapper
       [http://sources.redhat.com/dm/].

     o Site [35]FTP de LVM 2.

     o Site [36]FTP de LVM 1.

     o Site [37]FTP de Device-Mapper.

Annexe D. GNU Free Documentation License

  Version 1.2, November 2002

   Table des matires

   1. PREAMBLE

   2. APPLICABILITY AND DEFINITIONS

   3. VERBATIM COPYING

   4. COPYING IN QUANTITY

   5. MODIFICATIONS

   6. COMBINING DOCUMENTS

   7. COLLECTIONS OF DOCUMENTS

   8. AGGREGATION WITH INDEPENDENT WORKS

   9. TRANSLATION

   10. TERMINATION

   11. FUTURE REVISIONS OF THIS LICENSE

   12. ADDENDUM: How to use this License for your documents

     Copyright (C) 2000,2001,2002 Free Software Foundation, Inc. 59
     Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is
     permitted to copy and distribute verbatim copies of this license
     document, but changing it is not allowed.

1. PREAMBLE

   The purpose of this License is to make a manual, textbook, or
   other functional and useful document "free" in the sense of
   freedom: to assure everyone the effective freedom to copy and
   redistribute it, with or without modifying it, either commercially
   or noncommercially. Secondarily, this License preserves for the
   author and publisher a way to get credit for their work, while not
   being considered responsible for modifications made by others.

   This License is a kind of "copyleft", which means that derivative
   works of the document must themselves be free in the same sense.
   It complements the GNU General Public License, which is a copyleft
   license designed for free software.

   We have designed this License in order to use it for manuals for
   free software, because free software needs free documentation: a
   free program should come with manuals providing the same freedoms
   that the software does. But this License is not limited to
   software manuals; it can be used for any textual work, regardless
   of subject matter or whether it is published as a printed book. We
   recommend this License principally for works whose purpose is
   instruction or reference.

2. APPLICABILITY AND DEFINITIONS

   This License applies to any manual or other work, in any medium,
   that contains a notice placed by the copyright holder saying it
   can be distributed under the terms of this License. Such a notice
   grants a world-wide, royalty-free license, unlimited in duration,
   to use that work under the conditions stated herein. The
   "Document", below, refers to any such manual or work. Any member
   of the public is a licensee, and is addressed as "you". You accept
   the license if you copy, modify or distribute the work in a way
   requiring permission under copyright law.

   A "Modified Version" of the Document means any work containing the
   Document or a portion of it, either copied verbatim, or with
   modifications and/or translated into another language.

   A "Secondary Section" is a named appendix or a front-matter
   section of the Document that deals exclusively with the
   relationship of the publishers or authors of the Document to the
   Document's overall subject (or to related matters) and contains
   nothing that could fall directly within that overall subject.
   (Thus, if the Document is in part a textbook of mathematics, a
   Secondary Section may not explain any mathematics.) The
   relationship could be a matter of historical connection with the
   subject or with related matters, or of legal, commercial,
   philosophical, ethical or political position regarding them.

   The "Invariant Sections" are certain Secondary Sections whose
   titles are designated, as being those of Invariant Sections, in
   the notice that says that the Document is released under this
   License. If a section does not fit the above definition of
   Secondary then it is not allowed to be designated as Invariant.
   The Document may contain zero Invariant Sections. If the Document
   does not identify any Invariant Sections then there are none.

   The "Cover Texts" are certain short passages of text that are
   listed, as Front-Cover Texts or Back-Cover Texts, in the notice
   that says that the Document is released under this License. A
   Front-Cover Text may be at most 5 words, and a Back-Cover Text may
   be at most 25 words.

   A "Transparent" copy of the Document means a machine-readable
   copy, represented in a format whose specification is available to
   the general public, that is suitable for revising the document
   straightforwardly with generic text editors or (for images
   composed of pixels) generic paint programs or (for drawings) some
   widely available drawing editor, and that is suitable for input to
   text formatters or for automatic translation to a variety of
   formats suitable for input to text formatters. A copy made in an
   otherwise Transparent file format whose markup, or absence of
   markup, has been arranged to thwart or discourage subsequent
   modification by readers is not Transparent. An image format is not
   Transparent if used for any substantial amount of text. A copy
   that is not "Transparent" is called "Opaque".

   Examples of suitable formats for Transparent copies include plain
   ASCII without markup, Texinfo input format, LaTeX input format,
   SGML or XML using a publicly available DTD, and
   standard-conforming simple HTML, PostScript or PDF designed for
   human modification. Examples of transparent image formats include
   PNG, XCF and JPG. Opaque formats include proprietary formats that
   can be read and edited only by proprietary word processors, SGML
   or XML for which the DTD and/or processing tools are not generally
   available, and the machine-generated HTML, PostScript or PDF
   produced by some word processors for output purposes only.

   The "Title Page" means, for a printed book, the title page itself,
   plus such following pages as are needed to hold, legibly, the
   material this License requires to appear in the title page. For
   works in formats which do not have any title page as such, "Title
   Page" means the text near the most prominent appearance of the
   work's title, preceding the beginning of the body of the text.

   A section "Entitled XYZ" means a named subunit of the Document
   whose title either is precisely XYZ or contains XYZ in parentheses
   following text that translates XYZ in another language. (Here XYZ
   stands for a specific section name mentioned below, such as
   "Acknowledgements", "Dedications", "Endorsements", or "History".)
   To "Preserve the Title" of such a section when you modify the
   Document means that it remains a section "Entitled XYZ" according
   to this definition.

   The Document may include Warranty Disclaimers next to the notice
   which states that this License applies to the Document. These
   Warranty Disclaimers are considered to be included by reference in
   this License, but only as regards disclaiming warranties: any
   other implication that these Warranty Disclaimers may have is void
   and has no effect on the meaning of this License.

3. VERBATIM COPYING

   You may copy and distribute the Document in any medium, either
   commercially or noncommercially, provided that this License, the
   copyright notices, and the license notice saying this License
   applies to the Document are reproduced in all copies, and that you
   add no other conditions whatsoever to those of this License. You
   may not use technical measures to obstruct or control the reading
   or further copying of the copies you make or distribute. However,
   you may accept compensation in exchange for copies. If you
   distribute a large enough number of copies you must also follow
   the conditions in section 3.

   You may also lend copies, under the same conditions stated above,
   and you may publicly display copies.

4. COPYING IN QUANTITY

   If you publish printed copies (or copies in media that commonly
   have printed covers) of the Document, numbering more than 100, and
   the Document's license notice requires Cover Texts, you must
   enclose the copies in covers that carry, clearly and legibly, all
   these Cover Texts: Front-Cover Texts on the front cover, and
   Back-Cover Texts on the back cover. Both covers must also clearly
   and legibly identify you as the publisher of these copies. The
   front cover must present the full title with all words of the
   title equally prominent and visible. You may add other material on
   the covers in addition. Copying with changes limited to the
   covers, as long as they preserve the title of the Document and
   satisfy these conditions, can be treated as verbatim copying in
   other respects.

   If the required texts for either cover are too voluminous to fit
   legibly, you should put the first ones listed (as many as fit
   reasonably) on the actual cover, and continue the rest onto
   adjacent pages.

   If you publish or distribute Opaque copies of the Document
   numbering more than 100, you must either include a
   machine-readable Transparent copy along with each Opaque copy, or
   state in or with each Opaque copy a computer-network location from
   which the general network-using public has access to download
   using public-standard network protocols a complete Transparent
   copy of the Document, free of added material. If you use the
   latter option, you must take reasonably prudent steps, when you
   begin distribution of Opaque copies in quantity, to ensure that
   this Transparent copy will remain thus accessible at the stated
   location until at least one year after the last time you
   distribute an Opaque copy (directly or through your agents or
   retailers) of that edition to the public.

   It is requested, but not required, that you contact the authors of
   the Document well before redistributing any large number of
   copies, to give them a chance to provide you with an updated
   version of the Document.

5. MODIFICATIONS

   You may copy and distribute a Modified Version of the Document
   under the conditions of sections 2 and 3 above, provided that you
   release the Modified Version under precisely this License, with
   the Modified Version filling the role of the Document, thus
   licensing distribution and modification of the Modified Version to
   whoever possesses a copy of it. In addition, you must do these
   things in the Modified Version:

    A. Use in the Title Page (and on the covers, if any) a title
       distinct from that of the Document, and from those of previous
       versions (which should, if there were any, be listed in the
       History section of the Document). You may use the same title
       as a previous version if the original publisher of that
       version gives permission.
    B. List on the Title Page, as authors, one or more persons or
       entities responsible for authorship of the modifications in
       the Modified Version, together with at least five of the
       principal authors of the Document (all of its principal
       authors, if it has fewer than five), unless they release you
       from this requirement.
    C. State on the Title page the name of the publisher of the
       Modified Version, as the publisher.
    D. Preserve all the copyright notices of the Document.
    E. Add an appropriate copyright notice for your modifications
       adjacent to the other copyright notices.
    F. Include, immediately after the copyright notices, a license
       notice giving the public permission to use the Modified
       Version under the terms of this License, in the form shown in
       the Addendum below.
    G. Preserve in that license notice the full lists of Invariant
       Sections and required Cover Texts given in the Document's
       license notice.
    H. Include an unaltered copy of this License.
    I. Preserve the section Entitled "History", Preserve its Title,
       and add to it an item stating at least the title, year, new
       authors, and publisher of the Modified Version as given on the
       Title Page. If there is no section Entitled "History" in the
       Document, create one stating the title, year, authors, and
       publisher of the Document as given on its Title Page, then add
       an item describing the Modified Version as stated in the
       previous sentence.
    J. Preserve the network location, if any, given in the Document
       for public access to a Transparent copy of the Document, and
       likewise the network locations given in the Document for
       previous versions it was based on. These may be placed in the
       "History" section. You may omit a network location for a work
       that was published at least four years before the Document
       itself, or if the original publisher of the version it refers
       to gives permission.
    K. For any section Entitled "Acknowledgements" or "Dedications",
       Preserve the Title of the section, and preserve in the section
       all the substance and tone of each of the contributor
       acknowledgements and/or dedications given therein.
    L. Preserve all the Invariant Sections of the Document, unaltered
       in their text and in their titles. Section numbers or the
       equivalent are not considered part of the section titles.
    M. Delete any section Entitled "Endorsements". Such a section may
       not be included in the Modified Version.
    N. Do not retitle any existing section to be Entitled
       "Endorsements" or to conflict in title with any Invariant
       Section.
    O. Preserve any Warranty Disclaimers.

   If the Modified Version includes new front-matter sections or
   appendices that qualify as Secondary Sections and contain no
   material copied from the Document, you may at your option
   designate some or all of these sections as invariant. To do this,
   add their titles to the list of Invariant Sections in the Modified
   Version's license notice. These titles must be distinct from any
   other section titles.

   You may add a section Entitled "Endorsements", provided it
   contains nothing but endorsements of your Modified Version by
   various parties--for example, statements of peer review or that
   the text has been approved by an organization as the authoritative
   definition of a standard.

   You may add a passage of up to five words as a Front-Cover Text,
   and a passage of up to 25 words as a Back-Cover Text, to the end
   of the list of Cover Texts in the Modified Version. Only one
   passage of Front-Cover Text and one of Back-Cover Text may be
   added by (or through arrangements made by) any one entity. If the
   Document already includes a cover text for the same cover,
   previously added by you or by arrangement made by the same entity
   you are acting on behalf of, you may not add another; but you may
   replace the old one, on explicit permission from the previous
   publisher that added the old one.

   The author(s) and publisher(s) of the Document do not by this
   License give permission to use their names for publicity for or to
   assert or imply endorsement of any Modified Version.

6. COMBINING DOCUMENTS

   You may combine the Document with other documents released under
   this License, under the terms defined in section 4 above for
   modified versions, provided that you include in the combination
   all of the Invariant Sections of all of the original documents,
   unmodified, and list them all as Invariant Sections of your
   combined work in its license notice, and that you preserve all
   their Warranty Disclaimers.

   The combined work need only contain one copy of this License, and
   multiple identical Invariant Sections may be replaced with a
   single copy. If there are multiple Invariant Sections with the
   same name but different contents, make the title of each such
   section unique by adding at the end of it, in parentheses, the
   name of the original author or publisher of that section if known,
   or else a unique number. Make the same adjustment to the section
   titles in the list of Invariant Sections in the license notice of
   the combined work.

   In the combination, you must combine any sections Entitled
   "History" in the various original documents, forming one section
   Entitled "History"; likewise combine any sections Entitled
   "Acknowledgements", and any sections Entitled "Dedications". You
   must delete all sections Entitled "Endorsements".

7. COLLECTIONS OF DOCUMENTS

   You may make a collection consisting of the Document and other
   documents released under this License, and replace the individual
   copies of this License in the various documents with a single copy
   that is included in the collection, provided that you follow the
   rules of this License for verbatim copying of each of the
   documents in all other respects.

   You may extract a single document from such a collection, and
   distribute it individually under this License, provided you insert
   a copy of this License into the extracted document, and follow
   this License in all other respects regarding verbatim copying of
   that document.

8. AGGREGATION WITH INDEPENDENT WORKS

   A compilation of the Document or its derivatives with other
   separate and independent documents or works, in or on a volume of
   a storage or distribution medium, is called an "aggregate" if the
   copyright resulting from the compilation is not used to limit the
   legal rights of the compilation's users beyond what the individual
   works permit. When the Document is included in an aggregate, this
   License does not apply to the other works in the aggregate which
   are not themselves derivative works of the Document.

   If the Cover Text requirement of section 3 is applicable to these
   copies of the Document, then if the Document is less than one half
   of the entire aggregate, the Document's Cover Texts may be placed
   on covers that bracket the Document within the aggregate, or the
   electronic equivalent of covers if the Document is in electronic
   form. Otherwise they must appear on printed covers that bracket
   the whole aggregate.

9. TRANSLATION

   Translation is considered a kind of modification, so you may
   distribute translations of the Document under the terms of section
   4. Replacing Invariant Sections with translations requires special
   permission from their copyright holders, but you may include
   translations of some or all Invariant Sections in addition to the
   original versions of these Invariant Sections. You may include a
   translation of this License, and all the license notices in the
   Document, and any Warranty Disclaimers, provided that you also
   include the original English version of this License and the
   original versions of those notices and disclaimers. In case of a
   disagreement between the translation and the original version of
   this License or a notice or disclaimer, the original version will
   prevail.

   If a section in the Document is Entitled "Acknowledgements",
   "Dedications", or "History", the requirement (section 4) to
   Preserve its Title (section 1) will typically require changing the
   actual title.

10. TERMINATION

   You may not copy, modify, sublicense, or distribute the Document
   except as expressly provided for under this License. Any other
   attempt to copy, modify, sublicense or distribute the Document is
   void, and will automatically terminate your rights under this
   License. However, parties who have received copies, or rights,
   from you under this License will not have their licenses
   terminated so long as such parties remain in full compliance.

11. FUTURE REVISIONS OF THIS LICENSE

   The Free Software Foundation may publish new, revised versions of
   the GNU Free Documentation License from time to time. Such new
   versions will be similar in spirit to the present version, but may
   differ in detail to address new problems or concerns. See
   http://www.gnu.org/copyleft/.

   Each version of the License is given a distinguishing version
   number. If the Document specifies that a particular numbered
   version of this License "or any later version" applies to it, you
   have the option of following the terms and conditions either of
   that specified version or of any later version that has been
   published (not as a draft) by the Free Software Foundation. If the
   Document does not specify a version number of this License, you
   may choose any version ever published (not as a draft) by the Free
   Software Foundation.

12. ADDENDUM: How to use this License for your documents

   To use this License in a document you have written, include a copy
   of the License in the document and put the following copyright and
   license notices just after the title page:

     Copyright (c) YEAR YOUR NAME. Permission is granted to copy,
     distribute and/or modify this document under the terms of the
     GNU Free Documentation License, Version 1.2 or any later version
     published by the Free Software Foundation; with no Invariant
     Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy
     of the license is included in the section entitled "GNU Free
     Documentation License".

   If you have Invariant Sections, Front-Cover Texts and Back-Cover
   Texts, replace the "with...Texts." line with this:

     with the Invariant Sections being LIST THEIR TITLES, with the
     Front-Cover Texts being LIST, and with the Back-Cover Texts
     being LIST.

   If you have Invariant Sections without Cover Texts, or some other
   combination of the three, merge those two alternatives to suit the
   situation.

   If your document contains nontrivial examples of program code, we
   recommend releasing these examples in parallel under your choice
   of free software license, such as the GNU General Public License,
   to permit their use in free software.

