Gentoo Logo

Installation de LVM2 sur Gentoo Linux

Table des matières :

1.  Introduction

Ce guide est basé sur un exemple utilisant deux disques durs IDE. Cela signifie que vous devrez très probablement changer le disque, les noms et les tailles des partitions afin de refléter vos propres besoins et ressources matérielles.

Attention : Ce document n'a pas l'ambition d'être un tutoriel pour LVM2 ; il s'agit d'un supplément à la procédure d'installation de Gentoo Linux décrite dans la première partie du Manuel Gentoo. Veuillez lire le Manuel d'installation de Gentoo avant de débuter le processus d'installation.

Note : Si vous cherchez un HOWTO complet pour LVM, pointez votre navigateur vers http://tldp.org/HOWTO/LVM-HOWTO.

Pré-requis

Si vous faites une nouvelle installation de Gentoo, vous aurez besoin d'un CD amorçable avec support pour LVM2 tel que le CD d'installation de Gentoo. Vous trouverez le CD pour l'architecture x86 sur nos miroirs dans le répertoire /releases/x86/current/installcd. D'autres architectures sont peut-être aussi supportées.

Si vous installez LVM2 sur un système déjà configuré et disposant d'espace disque libre, vous devrez activer le module LVM2 (dm-mod). Ce dernier est disponible dans gentoo-sources. La compilation du noyau et la mise en place de LVM2 sont couverts plus loin dans ce guide.

Veuillez noter que tous les noyaux 2.4.x disponibles dans Portage ne supportent pas LVM2.

Partitions

Dans cet exemple, notre système hypothétique comprend deux disques durs IDE qui seront partitionnés comme suit :

  • /dev/hda1 -- /boot
  • /dev/hda2 -- Partition de mémoire virtuelle
  • /dev/hda3 -- /
  • /dev/hda4 -- Partition qui sera utilisée par LVM2
  • /dev/hdb1 -- Partition qui sera utilisée par LVM2

Important : Portez une attention particulière aux noms des partitions car il est facile de confondre les a et les b, ainsi que les numéros des partitions. Un seul faux mouvement pourrait balayer la mauvaise partition. Vous êtes prévenu !

Maintenant, il est temps de se lancer...

2.  Installation

Suivez les directives du Manuel en tenant compte des différences suivantes au chapitre 4 (Préparer les disques).

Employez fdisk tel que décrit dans le Manuel, mais utilisez l'exemple ci-dessus pour établir votre plan de partitionnement. Ce n'est toutefois qu'un exemple ; adaptez-le à vos besoins.

Créez une petite partition physique (hda1) pour /boot. Dans cet exemple, /boot ne sera pas géré par LVM2. Cette partition contiendra votre chargeur de démarrage (« bootloader ») et votre (ou vos) noyau(x). Une partition de 64 Mo devrait être suffisante pour quelques générations de noyaux.

Créez une partition (hda2) de mémoire virtuelle (swap).

Créez une partition (hda3) pour / (la racine). Si vous voulez essayer d'utiliser une partition racine gérée par LVM (ce que nous ne recommandons pas), consultez la section ressources à la fin de ce guide. Vous y trouverez un lien vers un mini-HOWTO expliquant comment y parvenir. La taille de la partition racine peut être relativement petite si elle ne doit pas contenir les répertoires suivants : /opt /usr /home /var et /tmp. Dans ce cas, 1 Go devrait suffire.

Note : Il n'est pas recommandé de mettre les répertoires suivants dans une partition LVM2 : /etc , /lib , /mnt , /proc , /sbin , /dev et /root. Si vous suivez ce conseil, vous serez toujours capable de vous connecter à votre système si quelque chose devait très mal tourner. (Bien que mutilé, il serait à peu près utilisable pour l'utilisateur root.)

En supposant que la partition de mémoire virtuelle, la partition racine et la partition /boot n'occupent pas tout l'espace disque, créez une quatrième partition sur ce disque. Utilisez le type 8e (Linux LVM). Si vous avez d'autres disques durs, créez une partition de type 8e sur chacun.

Note : Considérant la taille énorme des disques actuels, vous souhaiterez peut-être séparer vos disques en petites partitions plutôt que de créer une seule grosse partition qui serait ajoutée en un bloc à LVM2. Après tout, LVM2 vous permet justement d'augmenter facilement la taille des volumes. Cela vous laissera de l'espace non utilisé dont vous aurez peut-être besoin à l'extérieur du groupe LVM2. En résumé, n'utilisez pas votre espace disque avant de savoir que vous en avez besoin. À titre d'exemple, un de nos contributeurs possédant un disque dur de 160 Go l'a scindé en 8 partitions de 20 Go chacune.

Créez les systèmes de fichiers sur /dev/hda1 et /dev/hda3, puis créez et activez la partition swap sur /dev/hda2, comme décrit dans le manuel d'installation.

Chargez le module LVM2 dm-mod :

Exemple de code 2.1 : Charger le module LVM2

# modprobe dm-mod

Avant de scanner et d'activer LVM, vous pouvez éventuellement éditer /etc/lvm/lvm.conf pour exclure certains périphériques. Par défaut, LVM va scanner tous les périphériques, même vos lecteurs de CDROM, ce qui peut générer des messages d'erreur. Dans l'exemple suivant, la ligne qui entraîne le scan de tous les périphériques est remplacée par une autre qui bloque tous les périphériques sauf nos deux disques IDE.

Exemple de code 2.2 : Activer LVM

(Evitez de scanner d'autres périphériques que vos disques)
# nano -w /etc/lvm/lvm.conf
(Recherchez la ligne suivante)
filter = [ "a/.*/" ]
(Remplacez là avec la ligne suivante pour scanner
/dev/hda et /dev/hdb et rejeter tout le reste)
filter = [ "a|/dev/hd[ab]|", "r/.*/" ]
(Sauvegardez le fichier et quittez nano)
# vgchange -a y

Préparez vos partitions :

Exemple de code 2.3 : Préparer les partitions

# pvcreate /dev/hda4 /dev/hdb1
  No physical volume label read from /dev/hda4
  Physical volume "/dev/hda4" successfully created
  No physical volume label read from /dev/hdb1
  Physical volume "/dev/hdb1" successfully created

Configurez un groupe de volumes. Un groupe de volumes est le résultat de la fusion de plusieurs unités physiques en un seul disque logique.

Dans notre exemple, /dev/hda1, /dev/hda2 et /dev/hda3 sont les partitions dédiées respectivement à /boot, à la mémoire virtuelle et à la racine. Nous devons donc combiner /dev/hda4 et /dev/hdb1. Cela peut être fait en une seule commande mais, à titre d'exemple, nous créerons d'abord le groupe de volumes avant de l'étendre.

Exemple de code 2.4 : Créer et étendre un groupe de volumes

(Créez un groupe de volumes nommé vg.)
# vgcreate vg /dev/hda4
  (Ignorez l'avertissement qui suit.)
  /etc/lvm/backup: fsync failed: Invalid argument
  Volume group "vg" successfully created
(Étendez le nouveau groupe de volumes.)
# vgextend vg /dev/hdb1
  (Ignorez à nouveau l'avertissement qui suit
  et faites de même par la suite.)
  /etc/lvm/backup: fsync failed: Invalid argument
  Volume group "vg" successfully extended

Créez les volumes logiques. Ces volumes logiques sont l'équivalent des partitions que vous créeriez avec fdisk dans un environnement non LVM2. Dans notre exemple, les partitions suivantes sont créées :

Répertoire Taille
/usr 10 Go
/home 5 Go
/opt 5 Go
/var 10 Go
/tmp 2 Go

Puisque nous utiliserons LVM2, il n'est pas nécessaire de se creuser la tête trop longtemps pour choisir les tailles des partitions puisqu'il sera toujours possible de les étendre selon les besoins.

Note : Tel que souligné par Terje Kvernes, il est plus facile d'agrandir une partition que de la rapetisser. Vous voudrez donc probablement débuter avec de petites partitions, puis augmenter leur taille lorsque nécessaire.

Exemple de code 2.5 : Créer et étendre les volumes logiques

# lvcreate -L10G -nusr  vg
  Logical volume "usr" created
  (Les messages semblables ne sont ensuite plus retranscrits.)
# lvcreate -L5G  -nhome vg
# lvcreate -L5G  -nopt  vg
# lvcreate -L10G -nvar  vg
# lvcreate -L2G  -ntmp  vg
(À titre d'exemple, ajoutons 5 Go à un volume logique.)
# lvextend -L+5G /dev/vg/home

Créez les systèmes de fichiers sur les volumes logiques, en procédant comme vous le feriez pour une partition standard. Nous utilisons ici ext3 sur les volumes logiques, mais vous pouvez utiliser le système de fichiers de votre choix.

Exemple de code 2.6 : Créer les systèmes de fichiers

# mke2fs -j /dev/vg/usr
# mke2fs -j /dev/vg/home
# mke2fs -j /dev/vg/opt
# mke2fs -j /dev/vg/var
# mke2fs -j /dev/vg/tmp

Montez vos partitions tel que décrit dans le Manuel et montez vos volumes logiques LVM comme s'ils étaient des partitions. Remplacez le classique /dev/hdxx par /dev/vg/nom_du_volume_logique.

Exemple de code 2.7 : Monter les volumes logiqes

(Assurez-vous que votre partition racine a été montée d'abord,
tel que décrit dans le Manuel.)
# mkdir /mnt/gentoo/usr
# mount /dev/vg/usr /mnt/gentoo/usr
# mkdir /mnt/gentoo/home
# mount /dev/vg/home /mnt/gentoo/home
# mkdir /mnt/gentoo/opt
# mount /dev/vg/opt /mnt/gentoo/opt
# mkdir /mnt/gentoo/var
# mount /dev/vg/var /mnt/gentoo/var
# mkdir /mnt/gentoo/tmp
# mount /dev/vg/tmp /mnt/gentoo/tmp

Note : Le reste des instructions d'installation du Manuel ne change pas significativement. Par conséquent, nous ne reprendrons pas chaque étape, mais soulignerons plutôt les différences.

Lorsque vous configurez votre noyau, soyez certain d'activer le support pour LVM2 (tous les noyaux 2.4.x ne supportent pas LVM2.) Sélectionnez le module LVM2 comme suit :

Exemple de code 2.8 : Sélectionner le module LVM2 dans un noyau 2.4.x

Multi-device support (RAID and LVM)  --->
  [*] Multiple devices driver support (RAID and LVM)
  < >  RAID support
(Notez que LVM est désélectionné à dessein ; c'était pour LVM1.)
  < >  Logical volume manager (LVM) support
  <M>  Device-mapper support
  < >   Mirror (RAID-1) support

Exemple de code 2.9 : Sélectionner le module LVM2 dans un noyau 2.6.x

Device Drivers  --->
 Multi-device support (RAID and LVM)  --->
   [*] Multiple devices driver support (RAID and LVM)
   < >   RAID support
   <M>   Device mapper support

Le module compilé se nomme dm-mod.ko.

Après avoir compilé votre noyau et installé ses modules, ajoutez la ligne suivante à votre /etc/modules.autoload.d/kernel-{KV} où {KV} représente la version de votre noyau (2.4 ou 2.6), afin que le module LVM2 soit chargé lors de l'amorçage de votre système :

Exemple de code 2.10 : Ajouter l'information sur les modules LVM2 dans/etc/modules.autoload.d/kernel-2.6

# nano -w /etc/modules.autoload.d/kernel-2.6
(Ajoutez la ligne suivante.)
dm-mod

Maintenant, installez le paquet logiciel lvm2.

Important : Assurez-vous que /usr/src/linux pointe vers les sources du noyau que vous utilisez car l'ebuild lvm2 dépend de l'ebuild device-mapper qui, lui, vérifiera la présence d'un fichier nécessaire situé dans /usr/src/linux/include/linux.

Exemple de code 2.11 : Installer le paquet lvm2

# emerge lvm2

Éditez le fichier /etc/lvm/lvm.conf comme décrit plus haut. Le fichier que vous avez précédemment édité fait partie de l'environnement d'installation et disparaîtra après le prochain reboot. Cette fois-ci, vous éditez le vrai fichier dans votre nouvelle installation de Gentoo.

Pour l'édition du fichier /etc/fstab, suivez les directives du Manuel et ajoutez vos volumes logiques LVM2 tel que désiré. Voici les quelques lignes nécessaires pour notre exemple :

Exemple de code 2.12 : Extrait de /etc/fstab

/dev/hda1     /boot   ext3    noauto,noatime 1 2
/dev/hda2     none    swap    sw             0 0
/dev/hda3     /       ext3    noatime        0 1
# Volumes logiques
/dev/vg/usr   /usr    ext3    noatime        0 2
/dev/vg/home  /home   ext3    noatime        0 2
/dev/vg/opt   /opt    ext3    noatime        0 2
/dev/vg/var   /var    ext3    noatime        0 2
/dev/vg/tmp   /tmp    ext3    noatime        0 2

Lorsque vous aurez atteint la fin de l'installation telle que décrite dans le Manuel, n'oubliez pas de démonter tous vos volumes logiques LVM2 et, pour faire les choses proprement, exécutez la commande suivante avant de redémarrer :

Exemple de code 2.13 : Fermer LVM2

# vgchange -a n

Redémarrez votre machine. Toutes les partitions devraient être visibles et montées.

3.  Reprendre après un redémarrage

Si vous avez interrompu l'installation Gentoo à un certain point et vous voulez la reprendre, vous devez créer d'abord créer les périphériques de volumes :

Exemple de code 3.1 : Réactiver les volumes

# vgscan --mknodes

Les CD d'installation avec des outils moins récents doivent s'utiliser différemmment :

Exemple de code 3.2 : Réactiver les volumes

(Désactivons les volumes pour commencer.)
# vgchange -a n
(Exportons tous les volumes.)
# vgexport -a vg
(Importons tous les volumes.)
# vgimport -a vg
(Réactivons tous les volumes.)
# vgchange -a y

4.  Ressources

5.  Remerciements

Merci à Thilo Bangert et Terje Kvernes pour leur aide et leurs commentaires à propos de ce document.



Imprimer

Dernière mise à jour le 3 novembre 2007

Résumé : Ce guide décrit comment configurer votre système Gentoo pour utiliser le gestionnaire de volumes logiques, version 2 (en anglais « Logical Volume Manager » ou LVM2).

Avi Schwartz
Auteur

Rajiv Manglani
Contributeur

Xavier Neys
Correcteur

Olivier Fisette
Traducteur

Donate to support our development efforts.

Support OSL

Support OSL

Gentoo Centric Hosting: vr.org

VR Hosted

Tek Alchemy

Tek Alchemy

SevenL.net

SevenL.net

Global Netoptex Inc.

Global Netoptex Inc.

Bytemark

Bytemark

Linux World Expo

Linux World Expo

Copyright 2001-2008 Gentoo Foundation, Inc. Questions, Comments? Contact us.