Table des Matières

Objectif

Ce tutoriel peut être utilisé comme la suite du tutoriel sur la  Mise en place d'un RAID-1 Logiciel ou tout simplement avec des disques physiques non monté en RAID.

L'exemple d'installation qui suivra se base sur un volume RAID de 1000.2 Go, dont l'installation a été décrite dans le tutoriel RAID (lien ci-dessus).
Le volume physique utilisé dans tout l'exemple sera /dev/md0 (qui correspond aux RAID1 de 1000.2 Go).

 

Quelques explications sur LVM

Fonctionnement

LVM (ou Logical Volume Management) permet de créer une sorte de "couche d'abstraction" entre vos disques durs, unités RAID ou encore unité SAN et la gestion de vos points de montage.
Cela permet de gérer de manière plus souple vos allocations d'espace disque pour chaque point de montage.

Le principe de fonctionnement LVM se base sur des PV ou Physical Volumes (volumes physiques) tels que des disques durs, des unités RAID, des espaces distants tels que des SAN, DAS.
Toutes ces unités (PV) sont regroupées dans un VG ou Volume Groups, (groupes de volumes) pour former un espace de stockage plus important.
Dans ce (ou ces) VG, on découpe ensuite des LV ou Logical Volumes (volumes logiques) qui seront formatés puis monté sur différents points de montage.

Cela permet par la suite une plus grande souplesse de gestion de ces LV, ayant la possibilité de les redimensionner (à chaud, même si déconseillé) d'en ajouter ou d'en supprimer, sans jamais à avoir à toucher aux unités physiques (PV).

Vocabulaire

PV: Physical Volumes

Toute unité de stockage, disque dur, unité RAID, SAN, DAS forment donc des volumes physiques.

VG: Volumes Groups

Les différents volumes physiques sont concaténés dans des groupes de volumes. C'est concrètement "l'espace utile" dans lequel vous pourrez créer des systèmes de fichier et les monter.
Il faut bien entendu au minimum un Volumes Group pour pouvoir utiliser lvm.
Généralement, on créé les VG en rassemblant les unité de stockage de même caractéristique, un SAN, deux disques durs de même caractéristique...

Si vous souhaitez associer plusieurs disques dans un VG, permettant d'agrandir la capacité de stockage, il est préférable de monter un système RAID-0, car ce dernier sera beaucoup plus performant que la simple utilisation de LVM.
De plus cela peut être risqué d'associer plusieurs disques dur dans un même VG, car si l'un venait à défaillir, vous pourriez perdre l'ensemble des données de ce VG. Il est donc préférable d'utiliser du RAID en premier lieu, puis de gérer ces espaces de stockage RAID grâce à LVM.

LV: Logical Volume

les LV, Logical Volumes, sont des fragments de ces VG que vous pouvez créer dynamiquement, redimensionner. Ce sont ces éléments qui serviront à héberger un système de fichier et que vous monterez.

 

Installation de LVM

L'installation est extrêmement simple, elle consiste uniquement à l'installation du paquet lvm2

# apt-get install lvm2

 

Mise en place de LVM

Aperçu de l'organisation du LVM de cet exemple

 

Création du PV (Physical Volume)

Dans cet exemple le Physical Volume utilisé sera la partition RAID de 1To (/dev/md0). Vous devez donc lancer la commande suivante :

# pvcreate /dev/md0
File descriptor 4 left open
  Physical volume "/dev/md0" successfully created

Si tout se passe bien, vous aurez cette dernière phrase "successfully created".

Création du VG (Volumes Group)

Le VG contiendra donc uniquement dans cet exemple le volume physique /dev/md0

Tapez la commande suivante pour créer un VG.

# vgcreate vg1 /dev/md0
File descriptor 4 left open
  Volume group "vg1" successfully created

vg1 correspond au nom du Volume Group et /dev/md0 le physical volume qui y sera inclu.

Selon le tutoriel disponible sur ubuntu-fr.org (cf. Sources), un point intéressant quant au nommage des VG et des LV est soulevé.
Il semblerait qu'avec des noms trop long, l'affichage lors de la commande df -h, par exemple, ne se fasse pas bien. L'auteur de ce tutoriel a donc préconisé une longueur maximale de 7 caractères pour l'ensemble VG/VL, soit 2 caractères pour le VG et 5 caractères pour le LV, soit 3 caractères pour le VG et 4 caractères pour le LV.
La syntaxe pour l'accès aux systèmes de fichiers des LV sera la suivante: /dev/vg1/foovg1 est le nom du VG et foo le nom du LV.

Afin d'obtenir des informations sur le VG précédemment créé (et de vérifier que tout est en ordre) vous pouvez taper la commande suivante :

# vgdisplay
File descriptor 4 left open
  --- Volume group ---
  VG Name               vg1
  System ID            
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               931,51 GB
  PE Size               4,00 MB
  Total PE              238466
  Alloc PE / Size       0 / 0  
  Free  PE / Size       238466 / 931,51 GB
  VG UUID               XjP6Mq-Snc1-1GZ5-G8Hh-awbJ-V1Nr-IpPAw3

 

Création des LV

Maintenant que le Volume Group est créé, on peut le découper en plusieurs LV (ou volumes logiques) pour affecter des systèmes de fichiers et points de montages à chacun.

Par exemple, dans cet exemple, l'objectif est de créer une partition de 45 Go /home, une partition de 20 Go /serveurs pour tout ce qui est services (mySQL, Apache, ...) et une partition de 600 Go /public pour un stockage public.
L'espace disque restant servira à agrandir ces différentes partitions au fil du temps.

Espace Serveurs

Lancez la commande suivante pour créer une partition de 20 Go pour les serveurs.

# lvcreate -n srv -L 20G vg1
File descriptor 4 left open
  Logical volume "srv" created

La commande lvcreate prend pas mal d'arguments, mais les deux principaux sont

  • -n pour le nom du LV (s'il n'est pas spécifié, il prendra le nom de lvol## est un nombre autoincrémenté géré par LVM)
  • -L (la majuscule est importante) pour la taille de ce LV
  • Le troisième argument est tout simplement le nom du VG dans lequel ce LV sera affecté.

Espace home

# lvcreate -n home -L 45G vg1
File descriptor 4 left open
  Logical volume "home" created

Espace Public

# lvcreate -n public -L 600G vg1
File descriptor 4 left open
  Logical volume "public" created

 

Une fois tous les LV créés, vous pouvez lancer la commande lvdisplay pour vous assurer que tout est en ordre

# lvdisplay
File descriptor 4 left open
  --- Logical volume ---
  LV Name                /dev/vg1/srv
  VG Name                vg1
  LV UUID                08SrI7-o4JU-avRr-k8HM-Y90Z-ctNq-a0vgmB
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                20,00 GB
  Current LE             5120
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:0
  
  --- Logical volume ---
  LV Name                /dev/vg1/home
  VG Name                vg1
  LV UUID                fgs6qj-2etI-iJwr-bAhH-TGXw-z6Nf-dwzhsg
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                45,00 GB
  Current LE             6400
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:1
  
  --- Logical volume ---
  LV Name                /dev/vg1/public
  VG Name                vg1
  LV UUID                kM8miD-HICf-cKh4-aVvD-z4GR-g3OH-tShVt6
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                600,00 GB
  Current LE             153600
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:4

 

Formatage et Montage des LV

Une fois tous vos LV créés, il suffit de les formater (dans cet exemple, tout se fera en ext3) puis de les monter (et bien sûr, de les ajouter au fstab, afin qu'ils soient automatiquement montés au démarrage de la machine)

Formatage

Le formatage est tout à fait classique, de la même manière que l'on formaterait un disque dur physique

# mkfs -t ext3 /dev/vg1/srv
# mkfs -t ext3 /dev/vg1/home
# mkfs -t ext3 /dev/vg1/public

Montage et inscription dans /etc/fstab

Pour les monter, rien de plus simple:

# mkdir /public /serveurs
# mount /dev/vg1/public /public
# mount /dev/vg1/src /serveurs

pour la home, c'est plus délicat, puisqu'elle est déjà utilisée. Il faut donc, monter temporairement le système de fichiers afin de copier les données

# mkdir /home_tmp
# mount /dev/vg1/home /home_tmp
# cp -r /home/* /home_tmp/
# umount /home_tmp

Puis inscrire tous les LV dans la table de montage /etc/fstab comme ceci:

# vim /etc/fstab

 

# Volumes Logiques LVM
# SRV (Partition Serveurs)
/dev/vg1/srv           /serveurs   ext3    relatime    0    2
# HOME (Partitions home)
/dev/vg1/home          /home       ext3    relatime    0    2
# PUBLIC (Partition Public)
/dev/vg1/public        /public     ext3    relatime    0    2

Voilà ! La mise en place est terminée.

 

 

Administration de LVM

Agrandissement d'un volume logique

Pour agrandir un volume logique, il est préférable de démonter en premier lieu la partition à redimensionner.

Dans cet exemple, la partition à agrandir sera /dev/vg1/srv. Elle a été créée avec 20 Go et sera agrandie à 35 Go.

Première étape, démontage de la partition:

# umount /serveurs

Une fois démontée, on agrandit le volume logique avec la commande lvresize

Attention:
Il est primordial que la nouvelle taille choisie soit supérieure à celle du système de fichier actuel. Dans cet exemple, il faut que la nouvelle taille du volume logique soit supérieur à 20 Go. Sinon vous détruiriez complètement le système de fichier contenu dans le volume logique ! (Donc toutes les données se trouvant dans /serveurs)

 

# lvresize -L 35G /dev/vg1/srv
File descriptor 4 left open
  Extending logical volume srv to 35,00 GB
  Logical volume srv successfully resized

Après l'agrandissement logique, il faut à présent agrandir le système de fichier contenu dans ce volume logique. Etant donné que le système de fichier est au format ext3, la commande à utiliser est resize2fs

Il peut arriver que le redimensionnement du système de fichier ne fonctionne pas. Dans ce cas, il faut lancer une vérification du système de fichier comme cela:
# e2fsck -f /dev/vg1/srv
e2fsck 1.41.4 (27-Jan-2009)
Passe 1 : vérification des i-noeuds, des blocs et des tailles
Passe 2 : vérification de la structure des répertoires
Passe 3 : vérification de la connectivité des répertoires
Passe 4 : vérification des compteurs de référence
Passe 5 : vérification de l'information du sommaire de groupe
/dev/vg1/srv : 11/1638400 fichiers (0.0% non contigus), 146882/6553600 blocs
Une fois terminée, vous pouvez redimensionner le système de fichier

Lancez la commande suivante (la nouvelle taille par défaut sera l'intégralité du volume physique, à savoir 35 Go)

# resize2fs /dev/vg1/srv
resize2fs 1.41.4 (27-Jan-2009)
Resizing the filesystem on /dev/vg1/srv to 9175040 (4k) blocks.
Le système de fichiers /dev/vg1/srv a maintenant une taille de 9175040 blocs.

Il ne reste plus qu'à remonter le système de fichier

# mount /serveurs

Et vérifier que la taille est correcte:

# df -h | grep srv
/dev/mapper/vg1-srv   35G  177M   33G   1% /serveurs

Rétrécissement d'un volume logique

 

Création d'un nouveau volume logique

 

Suppression d'un volume logique

Afin de supprimer un volume logique, il faut d'abord le démonter.

# umount /dev/vg1/srv

Puis une fois démonté, il suffit simplement de lancer la commande lvremove

# lvremove /dev/vg1/srv

Le volume logique est supprimé et la place qu'il occupait de nouveau disponible.

Est-il nécessaire de rappeler que si vous supprimez un volume logique, les données seront définitivement perdues. Pensez à faire une sauvegarde en cas de besoin !

© 2003 - 2019 kns7.org | Site réalisé et hébergé par KNet Solutions | Plan du site | Contact