1. FAQ LVM 2

1.1. J'ai LVM 1 installé et fonctionnel sur mon système. 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 représentation sur le disque des groupes de volumes et volumes logiques sont-ils différents dans LVM 2 par rapport à LVM 1 ?
1.5. LVM 2 est-il compatible avec les VG et LV créés 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 système avec LVM 2, mais les utilitaires échouent constamment en indiquant qu'il ne reste plus de mémoire 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 système. Comment faire pour passer à LVM 2 ?

Voici les instructions pour démarrer rapidement :)

  1. Commencez par enlever tous les instantanés du système. Ils ne sont pas gérés par LVM 2 et empêcheront l'activation de leur volume d'origine au démarrage de LVM 2.

  2. Assurez-vous de posséder un moyen de démarrage du système autre que par la partition de démarrage standard. Vous devez avoir les utilitaires de LVM 1, les outils systèmes standards (mount) et un noyau compatible LVM 1 au cas où il serait nécessaire de revenir en arrière pour faire des corrections.

  3. Récupérez les sources des utilitaires de LVM 2 et le mappeur de périphériques. Compilez-les. Il faut installer la bibliothèque du mappeur de périphériques 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'accès aux utilitaires de LVM 1 au cas où. Si vous avez accès à des paquets de LVM 2 et du mappeur de périphériques, vous pouvez les installer à la place mais il faut noter qu'il vont probablement écraser les utilitaires de LVM 1.

  4. Récupérez un noyau compatible avec le mappeur de périphériques, compilé en interne ou avec un module.

  5. Recherchez les commandes d'activation de LVM dans les scripts de démarrage de la machine. Assurez-vous que le module du mappeur de périphériques est chargé à cet endroit (si vous utilisez le mappeur de périphériques 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 périphériques et redémarrez. 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 première de ce problème est de ne pas avoir lancé le script devmap_mknod.sh après le redémarrage avec un noyau utilisant le mappeur de périphériques. Ce script génère le nœud de contrôle pour le mappeur de périphériques.

Si vous n'avez pas le script devmap_mknod.sh, ne désespérez pas, il est assez simple de créer le fichier /dev/mapper/control par vous même :

  1. Assurez-vous d'avoir chargé le module du mappeur de périphériques 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 déjà, vérifiez que c'est un répertoire 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 fonctionnalités majeures de LVM1 seront compatibles avec les outils de LVM2 (il est toujours nécessaire de supprimer les instantanés avant la mise à jour de LVM 1 vers LVM 2.)

Si vous utilisez la version du mappeur de périphériques du noyau 2.6 de kernel.org, les commandes et types de LV suivants ne sont pas compatibles :

  • pvmove

  • snapshots

Vous pourrez trouver un début de compatibilité avec ces fonctionnalités dans les correctifs instables du mappeur de périphériques maintenus par Joe Thornber.

1.4.

Les formats de représentation sur le disque des groupes de volumes et volumes logiques sont-ils différents dans LVM 2 par rapport à LVM 1 ?

Oui. LVM 2 utilise le format de méta-données lvm 2. Ce format est beaucoup plus flexible que celui de LVM 1. Il supprime ou réduit la plupart des limitations de LVM 1.

1.5.

LVM 2 est-il compatible avec les VG et LV créés avec LVM 1 ?

Oui. LVM 2 est capable d'activer et de fonctionner avec les VG et LV créés avec LVM 1 à l'exception des instantanés qui doivent être supprimés avant la mise à jour. Les instantanés qui restent après la mise à jour devront être supprimés 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 méta-données lvm 2. Attention, il n'est pas toujours possible de revenir ensuite aux méta-données lvm 1.

1.7.

J'ai mis à jour mon système avec LVM 2, mais les utilitaires échouent constamment en indiquant qu'il ne reste plus de mémoire 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 supposées le faire. (L'utilisateur qui a signalé l'anomalie utilisait une Mandrake 9.2, mais d'autres distributions peuvent être impactées.) Les dernières versions des utilitaires de LVM 2 positionnent les UUID automatiquement s'ils manquent, il vous suffit donc de récupérer une version plus récente que la vôtre et le problème devrait être résolu. 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 créer un noyau compatible avec le mappeur de périphériques 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, classés par distributions :

Scripts mkinitrd compatible LVM 2

Fedora

Le programme mkinitrd de la dernière Fedora Core 2 gère LVM 2, mais repose sur un binaire lvm lié statiquement dans la dernière archive LVM 2.

Les utilisateurs de Redhat 9 devraient pouvoir l'utiliser.

Debian

Il existe une version non officielle ici.

Générique

Il en existe une version dans la distribution source de LVM 2 dans le répertoire scripts/lvm2_createinitrd/. Voir la documentation dans ce répertoire pour plus de détails.

1.9.

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

Très bien : LVM identifie les PV par leur UUID et non par le nom du périphérique.

Chaque disque (PV) possède un UUID, qui est un identifiant unique dans le système. Il est utilisé par « vgscan » pour le reconnaître lorsqu'un nouveau disque est ajouté et change la numérotation du disque. Pour cela, la plupart des distributions lancent vgscan dans les scripts de démarrage pour détecter les ajouts de matériel. 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 renumérotation 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.

[Note]Note

Des problèmes de fonctionnement ou l'enlèvement d'un disque en cours d'utilisation par LVM cause des problèmes 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 décimales, donc il correspond à quelque chose comme 1,866 Go. C'est juste une présentation à l'écran du chiffre pour donner une idée générale 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 plutôt que les octets.

Dans le cas de vgs, il est nécessaire 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 même façon que pour le cas de vgdisplay.

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:27