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 SATA. 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 vos propres réglages.

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 la prise en charge de 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 prises en charge.

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 les gentoo-sources. La compilation du noyau et la mise en place de LVM2 sont couverts plus loin dans ce guide.

Partitions

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

  • /dev/sda1 -- /boot
  • /dev/sda2 -- (swap)
  • /dev/sda3 -- /
  • /dev/sda4 -- Will be used by LVM2
  • /dev/sdb1 -- Will be used by 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 (sda1) 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 (sda2) de mémoire virtuelle (swap).

Créez une partition (sda3) 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 les répertoires suivants : /opt /usr /home /var et /tmp sont conservés dans un groupe de volumes LVM2 (vg). 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.) Excluez aussi /usr et /var de LVM2 si vous ne voulez pas démarrer avec un disque virtuel de démarrage (initramfs).

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/sda1 et /dev/sda3, puis créez et activez la partition swap sur /dev/sda2, comme décrit dans le manuel d'installation.

Démarrage du service lvm.

Exemple de code 2.1 : démarrer le service lvm

# rc-config start lvm

Il est recommandé d'ajouter le service lvm au niveau de démarrage boot. De cette manière LVM2 sera activé à chaque démarrage.

Exemple de code 2.2 : ajouter lvm au niveau de démarrage boot

# rc-config add lvm boot

Avant de scanner et d'activer LVM, vous voudrez peut-être modifier /etc/lvm/lvm.conf pour exclure quelques périphériques. Par défaut, LVM2 scanne tous les périphériques , même le CDROM ce qui peut conduire à des messages d'erreur. Dans l'exemple qui suit, la ligne qui autorise le scan de tous les périphériques et remplacée par une ligne qui exclut tous les périphériques, à l'exception de nos deux disques SATA.

Exemple de code 2.3 : activer LVM

(Éviter de scanner tous les périphériques à l'exception de nos disques)
# nano -w /etc/lvm/lvm.conf
(Recherchez la ligne suivante)
    filter = [ "a/.*/" ]
(Remplacez-la par une ligne qui demande le scan de 
/dev/sda et /dev/sdb en rejetant le reste)
    filter = [ "a|/dev/sd[ab]|", "r/.*/" ]
(Sauvegardez le fichier et quittez nano)
# vgscan
  Reading all physical volumes.  This may take a while...
  No volume groups found
(Rendez disponibles les groupes de volumes précédemment définis)
# vgchange -a y

Preparez les partitions.

Exemple de code 2.4 : préparer les partitions

# pvcreate /dev/sda4 /dev/sdb1
  No physical volume label read from /dev/sda4
  Physical volume "/dev/sda4" successfully created
  No physical volume label read from /dev/sdb1
  Physical volume "/dev/sdb1" successfully created

Définissez 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/sda1, /dev/sda2 et /dev/sda3 sont les partitions dédiées respectivement à /boot, à la mémoire virtuelle et à la racine. Nous devons donc combiner /dev/sda4 et /dev/sdb1. 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.5 : créer et étendre un groupe de volumes

(Créez un groupe de volumes nommé vg.)
# vgcreate vg /dev/sda4
  (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/sdb1
  (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 : comme le souligne Terje Kvernes, il est plus facile d'agrandir une partition que de la rapetisser. Vous dévriez donc débuter avec de petites partitions, puis augmenter leur taille lorsque nécessaire.

Exemple de code 2.6 : 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.7 : 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/sdxx par /dev/vg/nom_du_volume_logique.

Exemple de code 2.8 : monter les volumes logiqes

(Assurez-vous que votre partition racine a été montée d'abord,
comme 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, assurez-vous d'activer le support pour LVM2 (tous les noyaux 2.4.x ne prennent pas en charge LVM2.) Sélectionnez le module LVM2 comme suit :

Exemple de code 2.9 : sélectionner le module LVM2 dans un noyau 2.4.x

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

Le module compilé est appelé dm-mod.ko

Exemple de code 2.10 : 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.

Si vous avez /usr ou /var sur une partition basée sur LVM, construisez/compilez aussi un disque virtuel de démarrage (initramfs). N'oubliez pas d'éditer la configuration de votre chargeur de démarrage pour démarrer avec un disque virtuel de démarrage et d'ajouter dolvm comme paramètre de démarrage.

Exemple de code 2.11 : contruire/compiler un disque virtuel de démarrage (initramfs)

# emerge genkernel
# genkernel --lvm --install initramfs
# nano -w /boot/grub/grub.conf
(...)
title Gentoo Linux
root (hd0,0)
kernel /kernel-3.2.2-gentoo-r5 root=/dev/sda1 dolvm
initrd /initramfs-genkernel-x86_64-3.2.2-gentoo-r5

Maintenant, installez le paquet logiciel lvm2.

Important : assurez-vous que le lien /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 source nécessaire situé dans /usr/src/linux/include/linux.

Exemple de code 2.12 : 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-là, vous éditerez le vrai fichier dans votre nouvelle installation de Gentoo.

Pour l'édition du fichier /etc/fstab, suivez les directives du Manuel et ajoutez les volumes logiques LVM2 dont vous avez besoin. Voici les quelques lignes nécessaires pour notre exemple :

Exemple de code 2.13 : extrait de /etc/fstab

/dev/sda1     /boot   ext3    noauto,noatime 1 2
/dev/sda2     none    swap    sw             0 0
/dev/sda3     /       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 décrite dans le Manuel, n'oubliez pas de démonter aussi tous vos volumes logiques LVM2 et, pour faire les choses proprement, exécutez la commande suivante avant de redémarrer :

Exemple de code 2.14 : 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 le noeud des 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 pourraient nécessiter le réactiver plutôt les volumes :

Exemple de code 3.2 : réactiver les volumes

(Désactivons les volumes pour commencer.)
# vgchange -a n
(Exportons tous les volumes.)
# vgexport -a
(Importons tous les volumes.)
# vgimport -a
(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 20 janvier 2013

La version originale de cette traduction n'est plus maintenue

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

José Fournier
Traducteur

Donate to support our development efforts.

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