LVM2-2.03.36

Introduction à LVM2

Le paquet LVM2 gère des partitions logiques. Il permet l'extension de systèmes de fichiers sur plusieurs disques physiques et plusieurs partitions de disque, il permet une navigation dynamique ou le bidouillage de partitions logiques.

[Note]

Note

Les versions de développement de BLFS peuvent ne pas arriver à contruire ou à exécuter certains paquets correctement si LFS ou des dépendances ont été mises à jour depuis la dernière version stable des livres.

Informations sur le paquet

  • Téléchargement (HTTP) : https://sourceware.org/ftp/lvm2/LVM2.2.03.36.tgz

  • Téléchargement (FTP) :

  • Somme de contrôle MD5 du téléchargement : 62a7c701fe07a5c30ff9fcb624cd3437

  • Taille du téléchargement : 2,8 Mo

  • Estimation de l'espace disque requis : 39 Mo (plus jusqu'à 300 Mo pour les fichiers temporaires dans le répertoire /tmp)

  • Estimation du temps de construction : 0.4 SBU (add 9 to 48 SBU for tests, depending on disk speed and options enabled in the kernel)

Dépendances de LVM2

Requises

libaio-0.3.113

Facultatives pour les tests

btrfs-progs-6.17, dosfstools-4.2, jfsutils-1.1.15, mdadm-4.4, parted-3.6, Valgrind-3.26.0, Which-2.23, xfsprogs-6.17.0, reiserfsprogs, thin-provisioning-tools et vdo

Configuration du noyau

Activez les options suivantes dans la configuration du noyau et recompilez le noyau :

[Note]

Note

Il y a d'autres options de mappage de périphérique dans le noyau après celles listées en dessous. Afin d'avoir des résultats raisonnables si les tests de régression sont lancés, tous doivent être activé soit en interne, soit en module. Les tests vont tous expirer si Magic SysRq key n'est pas activé.

En plus de la plupart des paquets facultatifs pour les tests, des options du noyau sont requises. Si les paquets facultatifs ou leurs options du noyau ne sont pas installées, les tests seront marqués soit comme échoués soit comme passés de manière incohérente.

Device Drivers --->
  [*] Block devices --->                                               [BLK_DEV]
    <*/M> RAM block device support                                 [BLK_DEV_RAM]
  [*] Multiple devices driver support (RAID and LVM) --->                   [MD]
    <*/M> Device mapper support                                     [BLK_DEV_DM]
    <*/M>   Crypt target support                                      [DM_CRYPT]
    <*/M>   Snapshot target                                        [DM_SNAPSHOT]
    <*/M>   Thin provisioning target                      [DM_THIN_PROVISIONING]
    <*/M>   Cache target (EXPERIMENTAL)                               [DM_CACHE]
    <*/M>   Mirror target                                            [DM_MIRROR]
    <*/M>   Zero target                                                [DM_ZERO]
    <*/M>   I/O delaying target                                       [DM_DELAY]

Kernel hacking --->
  Generic Kernel Debugging Instruments --->
    [*] Magic SysRq key                                            [MAGIC_SYSRQ]

Installation de LVM2

Installez LVM2 en exécutant les commandes suivantes :

PATH+=:/usr/sbin                \
./configure --prefix=/usr       \
            --enable-cmdlib     \
            --enable-pkgconfig  \
            --enable-udev_sync  &&
make

Les tests utilisent udev pour la synchronisation des volumes logiques, de sorte que les règles LVM de udev et que quelques utilitaires doivent être installés avant de lancer les tests. Si vous installez LVM2 pour la première fois, et que vous ne souhaitez pas installer le paquet complet avant de lancer les tests, vous pouvez installer l'ensemble minimal d'utilitaires en exécutant les commandes suivantes en tant que root :

make -C tools install_tools_dynamic &&
make -C udev  install               &&
make -C libdm install

Pour tester les résultats, lancez, en tant qu'utilisateur root :

LC_ALL=en_US.UTF-8 make check_local

Certains tests peuvent freezer. Dans ce cas, vous pouvez les sauter en ajoutant S=<testname> à la commande make. D'autres cibles sont disponibles et peuvent être énumérées avec make -C test help. Le temps de test est très dépendant de la vitesse des disques, et du nombre d'options activées dans le noyau.

Les tests n'implémentent pas la possibilité d'un échec attendu (« expected fail ») et certains échecs sont attendus en amont.

  • La plupart des tests échoueront si le noyau n'a pas tous les pilotes matériels listés plus haut.

  • La plupart des échecs ont lieu car certaines options du noyau sont manquantes. Par exemple, l'absence de la cible du mappeur de périphériques dm-delay explique certains échecs.

  • Certains tests peuvent échouer s'il n'y a pas assez de place disponible dans le partition qui contient le répertoire /tmp. Au moins un test échoue si 16 To ne sont pas disponibles.

  • Certains tests sont rapportés en avertissement (« warned ») si thin-provisioning-tools n'est pas installé. Un contournement consiste à ajouter les drapeaux suivants au script configure :

     --with-thin-check=    \
     --with-thin-dump=     \
     --with-thin-repair=   \
     --with-thin-restore=  \
     --with-cache-check=   \
     --with-cache-dump=    \
     --with-cache-repair=  \
     --with-cache-restore= \

Certains tests peuvent bloquer. Ils peuvent être supprimés si nécessaire, par exemple : rm test/shell/lvconvert-raid-reshape.sh. Les tests génèrent beaucoup de messages noyau, ce qui peut encombrer votre terminal. Vous pouvez les désactiver avec dmesg -D avant de lancer les tests (n'oubliez pas de lancer dmesg -E lorsque les tests sont finis).

[Note]

Note

Les tests créez des nœuds de périphériques dans le répertoire /tmp. Les tests échoueront si /tmp est monté avec l'option nodev.

Maintenant, en tant qu'utilisateur root :

make install
make install_systemd_units

Explication des commandes

PATH+=:/usr/sbin : le PATH doit contenir /usr/sbin pour la détection correcte des outils système par le script configure. Cette instruction assure que PATH est correctement initialisé si vous construisez avec un utilisateur non privilégié.

--enable-cmdlib : Ce paramètre construit la bibliothèque de commande partagée. Elle est nécessaire lors de la construction du démon d'événements.

--enable-pkgconfig : ce paramètre installe le support de pkg-config.

--enable-udev_sync : Ce paramètre active la synchronisation avec Udev.

--enable-dmeventd : cette option construit le démon d'événement Device Mapper.

make install_systemd_units : cela est nécessaire pour installer une unité et activer les volumes logiques au démarrage. Elle n'est pas installée par défaut.

Configuration de LVM2

Fichier de configuration

/etc/lvm/lvm.conf

Informations sur la configuration

La configuration par défaut référence toujours le répertoire obsolète /var/lock. Cela crée un interblocage au démarrage. Modifiez cela (en tant qu'utilisateur root) :

sed -e '/locking_dir =/{s/#//;s/var/run/}' \
    -i /etc/lvm/lvm.conf

Contenu

Programmes installés: blkdeactivate, dmeventd (optional), dmsetup, fsadm, lvm, lvmdump et lvm_import_vdo. Il y a également de nombreux liens symboliques vers lvm qui implémentent des fonctionnalités spécifiques
Bibliothèques installées: libdevmapper.so et liblvm2cmd.so ; facultatifs : libdevmapper-event.so, libdevmapper-event-lvm2.so, libdevmapper-event-lvm2mirror.so, libdevmapper-event-lvm2raid.so, libdevmapper-event-lvm2snapshot.so, libdevmapper-event-lvm2thin.so et libdevmapper-event-lvm2vdo.so
Répertoires installés: /etc/lvm et /usr/lib/device-mapper (facultatif)

Descriptions courtes

blkdeactivate

est un utilitaire pour désactiver les périphériques blocs

dmeventd

(facultatif) est le démon d'événement de Device Mapper

dmsetup

est un outil de gestion de bas niveau de volumes logiques

fsadm

est un outil pour redimensionner ou vérifier le système de fichiers d'un périphérique

lvm

fournit les outils en ligne de commande pour LVM2. Les commandes sont implémentées par des liens symboliques vers ce programme pour gérer les périphériques physiques (pv*), les groupes de volume (vg*), et les volumes logiques (lv*)

lvmdump

est un outil pour envoyer diverses informations concernant LVM2

vgimportclone

est utilisé pour importer un VG dupliqué (comme un dépôt matériel)

libdevmapper.so

contient les fonctions de l'API de Device Mapper