Configuration
 

Préparation des volumes physiques

Dans cet exemple, nous allons créer un groupe de volumes avec quatre disques SCSI de 36 Go. Pour cela, il faut d'abord faire de chacun de ces disques un PV (Physical Volume), grâce aux commandes :

$> pvcreate /dev/sda
$> pvcreate /dev/sdb
$> pvcreate /dev/sdc
$> pvcreate /dev/sdd


Ces commandes ajoutent un descripteur de groupe de volume (VGDA : Volume Group Descritor Area) au début de chaque disque.


Création du groupe de volumes

Nos disques étant maintenant vu par LVM comme des PV, il faut les grouper pour former un VG (Volume Group), avec la commande :

$> vgcreate bases /dev/sda /dev/sdb /dev/sdc /dev/sdd

Où « bases » est le nom du groupe de volume que l'on veut créer.
Le VG « bases » étant maintenant créé, la commande vgdisplay permet de vérifier ses caractéristiques et son utilisation :

$> vgdisplay

--- Volume Group ---
VG Name bases
VG Access read/write
VG Status available/resizable
VG # 1
MAX LV 256
Cur LV 0
Open LV 0
MAX LV Size 255.99 GB
Max PV 256
Cur PV 3
Act PV 3
VG Size 144 GB
PE Size 32 MB
Total PE 4500
Alloc PE / Size 0/0
Free PE / Size 4500/ 144 GB
VG UUID 3rW3GE-izvs-1RjH-ecTo-1UBc-1szS-gX0wSj


Création de volumes logiques sans striping

Une base de donnée peut augmenter rapidement en taille. Un gros avantage de LVM par rapport à un Système de fichiers standard, est qu'il procure la possibilité d'augmenter à volonté et de manière très simple la taille des « partitions » (VL). Pour cela on crée des volumes logiques sans striping . Les commandes suivantes permettent de créer 2 Volumes Logiques de 70 Go à partir du Groupe de Volumes composé des 4 disques de 36 Go :

$> lvcreate -L70G -n base1 bases
lvcreate -- doing automatic backup of "bases"
lvcreate -- logical volume "/dev/bases/base1" successfully created

$> lvcreate -L70G -n base2 bases
lvcreate -- doing automatic backup of "bases"
lvcreate -- logical volume "/dev/bases/base2" successfully created

o-> L'option '-L' spécifie la taille du volume logique à créer. Il faut bien sur disposer de suffisamment d'espace libre sur le VG.
o-> L'option '-n' spécifie le nom qui sera attribué au volume logique.
o-> Le dernier paramètre (bases) est le nom du groupe de volumes à partir duquel on veut créer le volume logique.

On peut ainsi ajouter des disques, et augmenter la taille des volumes logiques utilisés pour le stockage des données. Dans le cas d'une base de donnée, on veut pouvoir apporter ces modifications sans avoir à arrêter le Système, ni démonter les partitions. L'utilisation de ReiserFS comme Système de fichier offre cette possibilité.

$> mkreiserfs /dev/bases/base1
$> mkreiserfs /dev/bases/base2



Création de volumes logiques avec striping

Voici la commande à exécuter pour la Création des volumes logiques avec striping sur 4 disques. Cette commande doit être ecécutée pour chacun des volumes à créer. Dans cet exemple, on crée un volume logique de 19 Go réparti en striping sur les 4 disques.

$> lvcreate -i4 -I4 -L19G -n base1 bases
lvcreate -- rounding 19922944 KB to stripe boundary size 19922944 KB / 608 PE
lvcreate -- doing automatic backup of "bases"
lvcreate -- logical volume "/dev/bases/base1" successfully created

o-> L'option '-i' spécifie le nombre de disques à utiliser pour le striping.
o-> L'option '-I' spécifie la granularité des stripes (la taille des morceaux de données à écrire). Cette option est importante pour l'amélioration des performances du système (voir Performances )
o-> L'option '-L' spécifie la taille du volume logique à créer. Il faut bien sur disposer de suffisamment d'espace libre sur le VG.
o-> L'option '-n' spécifie le nom qui sera attribué au volume logique.
o-> Le dernier paramètre (bases) est le nom du groupe de volumes à partir duquel on veut créer le volume logique.


Création d'un Snapshot

La création d'un snapshot s'effectue de la meme manière que n'importe quel autre volume logique, à la différence près que lors de la création d'un Snapshot avec lvcreate, on spécifie l'option "-s", avec le nom du volume source à la place du groupe de volume :

lvcreate -L 700M -s -n backup /dev/bases/base1