(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
