Table des matières

Présentation

Le Logical Volume Manager est un système de gestion avancée et très souple des volumes de stockage pour les distributions Linux. Il permet de s'affranchir des limites que l'on peut rencontrer avec le système de partitionnement classique. Généralement fourni avec l'OS, le package lvm peut être téléchargé ou installé si vos dépôts yum ou apt sont configurés.

Le LVM prend en compte les disques physiques (que ce soit un disque interne, en RAID matériel, logiciel, ou des disques en provenance d“un SAN), nommés Physical volumes (PV) par LVM.

Il regroupe un ou plusieurs PV en Volume Group (VG). Pour le système, le VG est vu comme une sorte de métadisque et sert de base pour les manipulations LVM.

Au sein de ce VG, il est possible de créer des découpages logiques, appelés Logical volumes (LV). Ces LV nous intéressent pour créer des systèmes de fichiers (filesystems ou FS).

Schéma explicatif

Commandes

Liste des commandes générales LVM :

Liste des commandes pour actions sur les PV :

Sur les VG :

Sur les LV :

Exemple

L'application concrète des manipulations LVM peut se retrouver dans la création d'un FS (Note : Veuillez vous référer avant cela à une explication sur le partitionnement et les systèmes de fichiers)

Sur un serveur tout beau tout neuf, je veux créer un FS réservé à Oracle.

Imaginons que j'ai un serveur toto sur lequel sont présentes 2 grappes de 2 disques en RAID 01. La première grappe est constituée de 2 disques de 172 Go et la seconde de 2 disques de 600 Go. Je décide de séparer le système (qui ira sur le premier RAID ou device /dev/sda*) et l'applicatif (second RAID soit /dev/sdb).

Pour voir les volumes disponibles sur mon serveur via l'OS, je peux faire :

root@toto:/root# more /proc/partitions
major minor  #blocks  name

   8     0  142737408 sda
   8     1     522081 sda1
   8     2  142207380 sda2
   8    16  585498624 sdb

La commande lvmdiskscan est aussi très utile. Elle scanne le système à la recherche de tous les disques / partitions éligibles.

Je dois faire entrer ma partition /dev/sdb dans le système LVM car celle-ci me servira à installer mes applications dont Oracle. Pour cela, je déclare le disque voulu en PV au niveau LVM d'après le nom de device:

pvcreate /dev/sdb

Pour voir les PV déclarés:

root@toto:/root# pvs
  PV         VG      Fmt  Attr PSize   PFree
  /dev/sda2  rootvg  lvm2 a-   135.59G 51.22G
  /dev/sdb   vg_appli lvm2 a-   558.37G 558.37G

(On voit que les vg on déjà été créés mais faites comme si de rien n'était au niveau VG et PFree :-X )

Ensuite je vais utiliser le PV /dev/sdb pour faire mon VG vg_appli.

vgcreate vg_appli /dev/sdb

Pour voir les VG du serveurs :

root@toto:/root# vgs
  VG      #PV #LV #SN Attr   VSize   VFree
  rootvg    1  13   0 wz--n- 135.59G 51.22G
  vg_appli   1  15   0 wz--n- 558.37G 558.37G

Voici donc les deux “métadisques” à partir desquels nous allons organiser l'arborescence du serveur. Ici, les deux VGs permettent une séparation nette entre rootvg qui contiendra tout ce qui est relatif au système, et vg_appli qui contiendra tout ce qui est relatif à d'éventuelles applications (serveur Web, serveur de base de données, etc.). Mais vous organisez vos données comme vous voulez … LOL

Nous allons maintenant organiser le VG vg_appli en volumes logiques (LV). Je souhaite créer un découpage logique dans mon VG qui sera réservé à Oracle et qui, selon les préconisations constructeur ou de votre entreprise ;-), devra faire 11Go.

lvcreate -n lv_oracle -L 11G vg_appli

Je viens de créer mon LV oracle, de 11 Go sur le VG vg_appli.

Pour voir la liste des LV de mon serveur :

root@toto:~# lvs|grep oracle
  lv_oracle        vg_appli  -wi-ao  11G

Le nom de device de mon LV est : /dev/vg_apps/lv_oracle.

root@toto:/dev/vg_apps# ls -lrt|grep oracle
lrwxrwxrwx  1 root root 29 Jan 11 14:22 lv_oracle -> /dev/mapper/vg_apps-lv_oracle

Pour que les données soient accessibles dans l'arborescence de mon serveur, je vais créer mon point de montage.

mkdir /apps/oracle
mkfs.ext4 -L /apps/oracle /dev/vg_appli/lv_oracle
mount -t ext4 /dev/vg_apps/lv_oracle /apps/oracle

Je viens de créer un FS en ext3 appelé /apps/oracle.

Pour voir si mon FS est bien monté (donc si les données sont accessibles) sur mon serveur :

root@toto:~# mount|grep oracle
/dev/vg_apps/lv_oracle on /apps/oracle type ext4 (rw)

Ajouter la ligne dans le fstab

/dev/vg_apps/lv_oracle /apps/oracle ext4 defaults 00