Installation de LVM2 sur Gentoo Linux
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 |
# nano -w /etc/lvm/lvm.conf
filter = [ "a/.*/" ]
filter = [ "a|/dev/sd[ab]|", "r/.*/" ]
# vgscan
Reading all physical volumes. This may take a while...
No volume groups found
# 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 |
# vgcreate vg /dev/sda4
/etc/lvm/backup: fsync failed: Invalid argument
Volume group "vg" successfully created
# vgextend vg /dev/sdb1
/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
# lvcreate -L5G -nhome vg
# lvcreate -L5G -nopt vg
# lvcreate -L10G -nvar vg
# lvcreate -L2G -ntmp vg
# 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 |
# 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 |
# vgchange -a n
# vgexport -a
# vgimport -a
# vgchange -a y
|
4.
Ressources
5.
Remerciements
Merci à Thilo Bangert et Terje Kvernes pour leur aide et leurs
commentaires à propos de ce document.
Ce document est protégé par la licence Creative
Commons : Paternité - Partage des Conditions Initiales à
l'Identique 2.5.
|