LVM2-2.03.22

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.

This package is known to build and work properly using an LFS 12.0 platform.

Informations sur le paquet

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

  • Téléchargement (FTP) : ftp://sourceware.org/pub/lvm2/LVM2.2.03.22.tgz

  • Somme de contrôle MD5 : a97cf533222a5760225dbd26c3982ca6

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

  • Estimation de l'espace disque requis : 38 Mo (plus 20 Mo pour les tests ; les fichiers temporaires peuvent atteindre environ 300 Mo dans le répertoire /tmp pendant les tests)

  • Estimation du temps de construction : 0,1 SBU (avec parallélisme = 4 ; plus 9 à 48 SBU pour les tests, en fonction de la vitesse de votre disque et de l'activation du périphérique de bloc pour la ram dans le noyau)

Dépendances de LVM2

Requises

libaio-0.3.113

Facultatives

mdadm-4.2, reiserfsprogs-3.6.27, Valgrind-3.21.0, Which-2.21, xfsprogs-6.4.0 (les cinq peuvent être utilisés, mais ne sont pas nécessaires, pour les tests) et 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é.

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.

Ces tests n'implémentent pas la possibilité « expected fail » (échec prévu), et un petit nombre d'échecs est prévu en amont. Plus d'échecs peuvent apparaître lorsque manquent certaines options du noyau. Par exemple, l'absence de la cible du device mapper dm-delay explique quelques erreurs. Certains tests peuvent échouer s'il n'y a pas assez de place disponible sur la partition qui contient le répertoire /tmp. Au moins un test échoue si 16 To ne sont pas disponibles. Certains tests sont indiqués « warned » si thin-provisioning-tools n'est pas installé. Vous pouvez le contourner en ajoutant les options suivantes à 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