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)
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).
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.
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).
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.
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.