LVM (Logical Volume Manager)

1) Introduction

le Logical Volume Manager (LVM) gére de façon très souple les espaces de stockage (en découpant, concaténant,...). Ce système présente de nombreux avantages :  disparition des problèmes liés aux espaces non contigus, répartition des LVs sur plusieurs disques, augmentation dynamique de tailles des LVs, mise en miroir de LVs, déplacement des LVs, etc. Le LVM intervient sur ces éléments :
  • Groupes de Volumes (VGs)
  • Volumes physiques (PVs)
  • Volumes logiques (LVs)
  • Partitions logiques (LPs)
  • Partitions physiques (PPs)
 
  • Groupe de Volume (VG)
Il représente la plus grande unité d'affectation, un VG comprend au moins un volume physique. L'addition de la taille de tous les PVs ajoutés au VG correspond à la taille du VG. Par exemple un VG constitué de 5 disques de 50 Gb représentera 250Gb. C'est à l'intérieur des VGs que sont crées les LVs et les systèmes de fichiers (FS).
  • Volume physique (PV)
Il représente typiquement un disque (interne ou externe - sur baie par ex). Lorsqu'un PV est ajouté à un système, un fichier hdiskn est crée sous /dev. Un PV ne peut appartenir qu'à un seul VG.
  • Volume logique (LV)
Il réprésente une sous-division du VG, il peut être réparti sur un ou plusieurs PVs. Un LV ne peut contenir que l'un des éléments suivants : FS journalisé (jfs) ou FS journalisé évolué (jfs2), un espace de swap (ou pagination), un espace de journalisation (jfslog) ou rien (pour être utilisé en mode raw, par ex, un raw device pour sybase ou un LV de boot (/dev/hd5).
  • Partition logique (LP)
Elle est constituée de 1 à 3 PPs, les partitions 2 et 3 (si elles existent) correspondent à la fonctionnalité de mise en miroir des disques.
  • Partition physique (PP)
Elle représente à la division d'un PV, c'est l'unité de base de l'affectation de l'espace disque. La taille du PP est décidé à la création du VG et est la même pour tout le VG. (entre 1 et 256 Mo par puissance de 2, 4 ou 8).  

2) Les Systèmes de fichiers

Le plus souvent, un LV contiendra un FS (système de fichiers ou Filesystem). Un FS n'est rien de plus qu'une structure qui contient des répertoires et des fichiers. Sur Aix, il existe 4 types de FS : jfs : système de fichiers journalisé sur disque (ou journaled file system) jfs2 : système de fichiers journalisé évolué (ou enhanced journaled file system) cdrfs : système de fichiers sur CD-ROM nfs : système de fichiers réseau (ou network file system) Un FS est accessible par son point de montage. Après installation du système, nous retrouvons, par défaut, les systèmes de fichiers suivant :
 LV  FS monté dans
 /dev/hd1  /home
 /dev/hd2  /usr
 /dev/hd3  /tmp
 /dev/hd4  /
 /dev/hd9var  /var
 

3) Commandes du Logical Volume Manager (LVM)

Affiche tous les disques du système lspv
Affiche tous les groupes de volumes lsvg
Affiche tous les volumes logiques lsvg -l `lsvg`
Affiche tous les systèmes de fichiers (type donné) lsfs (lsfs -b type)
Affiche les volumes logiques dans un groupe de volumes lsvg -l nom_vg
Affiche les disques dans un groupe de volumes lsvg -p nom_vg
Affiche à quel groupe de volumes appartient un disque lsvg -n hdiskn
Affiche les caractéristiques des disques et des paramètres lspv hdiskn
Affiche les paramètres d'un groupe de volumes lsvg nom_vg
Affiche les caractéristiques d'un volume logique lslv nom_lv
Affiche la taille d'un système de fichier non monté (en blocs) lsfs nom_fs
Affiche s'il existe de l'espace inutilisé sur un volume logique qui contient déjà un système de fichiers (comparer la taille de lv et taille de fs) lsfs -q fs
Affiche l'utilisation du disque par région lspv -p hdiskn
Affiche les emplacements des partitions physiques libres sur un disque par région lspv hdiskn
Affiche les emplacements des partitions physiques libres sur un groupe de volume, par disque et par région lsvg -p nom_vg
Affiche à quels volumes logiques utilisent un disque donné par région lspv -l hdiskn
Affiche les disques sur lesquels un volume logique est stocké en incluant la répartition des régions lslv -l nom_lv
Affiche un tableau montrant la correspondance des partitions physiques-logiques d'un volume logique lslv -m nom_lv
Affiche un tableau montrant l'utilisation d'une partition physique d'un disque pour un volume logique lspv -M hdiskn
Affiche des informations sur un VG pour un PV précis lqueryvg -Atp nom_pv
Change les caractéristiques d'un LV chlv
Renomme un LV chlv -n new old
Change les caractéristiques d'un PV dans un VG chpv
Change les caractéristiques d'un VG chvg
Effectue une copie de LV cplv
Augmente la taille d'un LV extendlv
Ajoute des PVs dans un VG extendvg
Export un VG exportvg
Importe un VG importvg
Déplace des LVs dans un même VG migratepv
Crée un LV mklv
Crée des copies (mirroring) mklvcopy
Crée un VG mkvg
Supprime des PVs d'un VG reducevg
Réorganise l'affectation des PPs reorgvg
Supprime un LV rmlv
Supprime des copies (mirroring) rmlvcopy
Synchronise des copies syncvg
Désactive un VG varyoffvg
Active un VG varyonvg
 

4) Autres commandes utiles lors de l'utilisation du LVM

 
Affiche la taille du disque n bootinfo –s hdiskn
Effectue un diagnostic matériel de la machine diag
Détecte le nouveau matériel cfgmgr –v (-v pour verbose)
Liste les erreurs matérielles permanentes errpt –a H PERM |pg
Affiche l'arborescence des périphériques lscfg
Affiche tous les disques durs du système lspv
Affiche les détails du périphérique lscfg -vl nomperipherique
Affiche plus de détails du périphérique lscfg -vp –l nomperipherique
Supprime le périphérique rmdev -dl nomperipherique
Supprime le périphérique quelque soit son état (même si actif) rmdev -dl nomperipherique -R
Affiche des informations sur les FS df -k
Récapitule l'utilisation des disques du (+ paramètres)
Affiche les processus accrochés à un FS fuser FSname (Remplacé PAR LSOF ≥Aix 5.x)
Affiche la liste des FS exportés exportfs
Affiche la liste des FS montés mount
Monte tous les FS mount -a
Monte un FS précis mount nom_lv ou pointdemontage
Monte un FS NFS mount hostname:/FS /pointdemontage
 

5) Exemples d'utilisation du LVM

Si un disque (interne) est ajouté au système, redémarrer le serveur. En général, AIX détectera les nouveaux périphériques au démarrage et créera automatiquement les fichiers spéciaux qui leur correspondent. Les disques définis ont des noms de fichier spécifiques comme /dev/hdisk1. Si un reboot n'est pas possible, la commande cfgmgr peut être utilisée pour détecter l’ajout de périphériques ; elle ne prend pas d’argument. La commande lsdev affichera la liste des disques du système : # lsdev –C –c disk –H Le nouveau disque doit ensuite être défini comme faisant partie d’un VG. La commande mkvg sert à créer un nouveau groupe de volumes : # mkvg –y “toto“ hdisk5 hdisk6 Cet exemple crée un groupe de volume appelé toto qui comporte les disques hdisk5 et hdisk6. L’option –s de mkvg spécifie la taille en Mo de la partition physique : 1, 2, 4 (valeur par défaut) ou 8. Après sa création, un groupe de volume doit être activé avec la commande varyonvg : # varyonvg toto Par la suite, le groupe de volumes sera activé automatiquement au démarrage. Les groupes de volumes sont désactivés par le biais de la commande varyoffvg ; tous leurs FS doivent être auparavant démontés (commande umount) Un nouveau disque peut être ajouté à un groupe de volume existant avec la commande extendvg. Ci-dessous, le disque hdisk9 est ajouté au groupe de volumes appelé titi : # extendvg titi hdisk9 reducevg : retire un disque d’un groupe de volumes (le fait de retirer tous les disques supprime le VG). importvg : ajoute un groupe de volumes existant au système (elle est utilisée pour déplacer les disques entre les systèmes et pour activer des groupes de volumes existants suite au remplacement du disque racine). exportvg : retire un groupe de volume de la base de données des périphériques mais ne l’altère pas (utilisée pour déplacer les disques sur un autre système). Les volumes logiques sont crées par la commande mklv qui possède la syntaxe suivante : mklv –y “nom-vl“ VG1 n [disques] où nom-vl est le nom du volume logique, VG1 est le nom du groupe de volumes et n est le nombre de partitions logiques. Par exemple, la commande : # mklv –y “lvtutu“ toto 64 crée un volume logique, appelé lvtutu dans le groupe de volumes toto comportant 64 partitions logiques (de 256 Mo). Les fichiers spéciaux /dev/lvtutu et /dev/rlvtutu seront automatiquement crées par mklv.