« Retour au blog de devteam

Aide mémoire Linux 2.6 : LVM avec Snapshot

Tout d'abord crééer une partition de type linux pour accueillir le physical volume LVM.
(donc généralement on a /dev/sda1 => /boot, /dev/sda2 => /swap, /dev/sda3 => / et on aura donc /dev/sda4 pour la partition LVM).

LVM doit etre compilé en tant que module dans le kernel.
fichier .config :
CONFIG_MD=y
CONFIG_BLK_DEV_DM=m
CONFIG_DM_SNAPSHOT=m
si vous voulez faire des snapshot des volumes LVM.

Une fois compilé et installé il faut charger le module dm-mod :
modprobe dm-mod

pour charger le module à chaque démarrage de la machine :
echo dm-mod >> /etc/modules.autoload.d/kernel-2.6

Il faut aussi avoir à dispo les outils lvm2 pour manipuler les volumes et la partition lvm.
Sous Gentoo : emerge sys-fs/lvm2

Voila, tout est pret :)
On considère qu'une partition /dev/sda4 a deja bien été créée pour acceuillir le physical volume LVM.

Création du physical volume :
pvcreate /dev/sda4

Création d'un volume group "sql" dans le physical volume /dev/sda4 :
vgcreate sql /dev/sda4

Création des logicals volumes. Dans notre cas chacun feront 75Go, il y en a 1 pour la prod, et l'autre pour stocker les backups. Ils sont dans un même dans le même volume group "sql".
lvcreate -L75G -n mysql sql
lvcreate -L75G -n mysql_backup sql

Formatage des volumes :
(dans notre cas on va stocker des tables mysql en myisam, ext3 est plus recommandé)
mkfs.ext3 /dev/sql/mysql
mkfs.ext3 /dev/sql/mysql_backup

Voila, il ne reste plus qu'à ajouter dans le /etc/fstab les 2 nouveaux volumes :
fichier /etc/fstab :
/dev/sql/mysql /mnt/db1 ext3 noatime 0 0
/dev/sql/mysql_backup /mnt/db1_backup ext3 noauto,noatime 0 0

mkdir /mnt/db1
mount /mnt/db1
mkdir /mnt/db1_backup
mount /mnt/db1_backup



==== SNAPSHOTS ====
Création d'un volume snapshot de /dev/sql/mysql (pour faire un backup à un instant précis) :
Il faut avoir charger le module dm_snapshot
modprobe dm_snapshot

Idem pour que le module soit chargé automatiquement au démarrage
echo dm_snapshot >> /etc/modules.autoload.d/kernel-2.6

Commande pour créer le snapshot :
/sbin/lvcreate -L1G -s -n mysql_snap /dev/sql/mysql

La taille (ici 1 Go) dépend des modifs qui vont avoir lieu sur /dev/sql/mysql pdt la durée ou le snapshot doit exister. Si la taille est dépassé, le volume snapshot sera arreté automatiquement.
(donc il est par exemple pas recommandé de faire une grosse manipulation sur le volume /dev/sql/mysql pdt que le snapshot existe sinon il disparaitra vite, avant que vous ayez eu le temps de faire le backup...)
Le snapshot peut etre monté directement si la partition d'origine est en ext3 ou reiserfs. (il y a quelques manips en plus à faire pour xfs)

Destruction du snapshot après utilisation :
/sbin/lvremove -f /dev/sql/mysql_snap

PS : pour faire du backup mysql avec des tables myisam, il faut penser avant de faire le snapshot à locker toutes les tables, flush toutes les tables, puis faire le snapshot. Une fois le snapshot créé les tables peuvent etre unlock.

=== AUTRE ===
Avoir des infos sur les logicals volumes :
/sbin/lvdisplay

exemple :
[root@sqlblog2] [~] [Linux] [21:32:22] P0
# /sbin/lvdisplay
--- Logical volume ---
LV Name /dev/sql/mysql
VG Name sql
LV UUID tKAg0y-ukyV-pN0i-Ucvv-cpDR-ABuz-a5wvvA
LV Write Access read/write
LV Status available
# open 1
LV Size 75.00 GB
Current LE 19200
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 254:0

--- Logical volume ---
LV Name /dev/sql/mysql_backup
VG Name sql
LV UUID 0u0z0W-H4pS-49Ai-GWBI-XXwG-uJbR-2dqX5b
LV Write Access read/write
LV Status available
# open 0
LV Size 75.00 GB
Current LE 19200
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 254:1


Infos sur les volumes groups :
/sbin/vgdisplay

exemple :
[root@sqlblog2] [~] [Linux] [21:32:28] P0
# /sbin/vgdisplay
--- Volume group ---
VG Name sql
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 117
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 1
Max PV 0
Cur PV 1
Act PV 1
VG Size 151.25 GB
PE Size 4.00 MB
Total PE 38719
Alloc PE / Size 38400 / 150.00 GB
Free PE / Size 319 / 1.25 GB
VG UUID iVIEam-rJ3S-mO7Z-aqHU-6NTz-wSMC-f72Law
# Posté le lundi 11 juillet 2005 15:35

« Article précédent : #1 La raclette bien sûr !!!

Article suivant : Aide mémoire Linux 2.6 : RAID1 Soft (à... »