Sauvegarde LVM · 8 min read · Nov 05, 2025

Sauvegarder (et restaurer) des partitions LVM avec des instantanés LVM

Sauvegarder (et restaurer) des partitions LVM avec des instantanés LVM

Version 1.1
Auteur : Falko Timme

Ce tutoriel montre comment vous pouvez créer des sauvegardes de partitions LVM avec une fonctionnalité LVM appelée instantanés LVM. Un instantané LVM est une copie exacte d’une partition LVM qui contient toutes les données du volume LVM au moment où l’instantané a été créé. Le grand avantage des instantanés LVM est qu’ils peuvent être utilisés pour réduire considérablement le temps pendant lequel vos services/bases de données sont hors ligne lors des sauvegardes, car un instantané est généralement créé en fractions de seconde. Après la création de l’instantané, vous pouvez sauvegarder l’instantané pendant que vos services et bases de données fonctionnent normalement.

Je montrerai également comment restaurer une partition LVM à partir d’une sauvegarde dans un chapitre supplémentaire à la fin de ce tutoriel.

Ce document est fourni sans garantie d’aucune sorte ! Je ne donne aucune garantie que cela fonctionnera pour vous !

1 Remarque préliminaire

J’ai testé cela sur un serveur Debian Etch avec l’adresse IP 192.168.0.100 et le nom d’hôte server1.example.com. Il a deux disques durs :

  • /dev/sda (10 Go) qui contient une petite partition /boot (non-LVM), une partition / (LVM, un peu moins de 10 Go) et une partition swap (LVM)
  • /dev/sdb (60 Go), inutilisé pour le moment ; sera utilisé pour créer une partition /backups de 30 Go (LVM) et pour les instantanés de la partition / (10 Go - c’est suffisant car la partition / est un peu moins de 10 Go).

J’ai créé une image VMware Debian Etch que vous pouvez télécharger et exécuter dans VMware Server ou VMware Player (voir https://www.howtoforge.com/import_vmware_images pour apprendre comment faire cela). Elle a les mêmes spécifications que mon système de test ci-dessus. Le mot de passe root est howtoforge. En utilisant cette image VMware, vous pouvez effectuer exactement les mêmes étapes que moi dans ce tutoriel pour vous habituer à utiliser des instantanés LVM.

Pour restaurer la partition / à partir de votre sauvegarde (couverte dans le dernier chapitre de ce tutoriel), vous avez besoin d’un Live-CD Linux qui prend en charge LVM, comme Knoppix ou le CD Netinstall Debian Etch que vous pouvez utiliser comme CD de secours si vous spécifiez rescue à l’invite de démarrage. J’utiliserai le CD Netinstall Debian Etch dans cet exemple (la liste des miroirs est disponible ici : http://www.debian.org/CD/http-ftp/ - j’ai téléchargé celui-ci : http://ftp.de.debian.org/debian-cd/4.0_r0/i386/iso-cd/debian-40r0-i386-netinst.iso).

Pour créer une sauvegarde de la partition /, je procéderai comme suit : je créerai un instantané de la partition /, puis je créerai une sauvegarde de l’instantané (au lieu de la partition / réelle !) sur la partition /backups (bien sûr, vous pouvez stocker cette sauvegarde où vous le souhaitez - au lieu de créer une partition LVM /backups supplémentaire, vous pourriez également utiliser un disque USB externe). La sauvegarde peut être effectuée à l’aide de votre solution de sauvegarde préférée, par exemple avec tar ou dd. Ensuite, je détruirai l’instantané car il n’est plus nécessaire et utiliserait des ressources système.

Vous n’avez pas nécessairement besoin d’un second HDD pour les instantanés - vous pouvez utiliser le premier à condition d’avoir suffisamment d’espace libre (non partitionné) restant dessus pour créer des instantanés (vous devriez utiliser le même espace pour les instantanés que vous utilisez pour la partition que vous souhaitez sauvegarder). Et comme mentionné précédemment, vous pouvez utiliser un disque USB pour sauvegarder les instantanés.

Pour en savoir plus sur LVM, vous devriez lire ce tutoriel : https://www.howtoforge.com/linux_lvm

2 Créer la partition LVM /backups

(Si vous souhaitez stocker vos sauvegardes ailleurs, par exemple sur un disque USB externe, vous n’avez pas besoin de faire cela.)

Notre situation actuelle est la suivante :

pvdisplay

server1:~# pvdisplay
— Volume physique —
PV Name /dev/sda5
VG Name server1
PV Size 9.76 Go / non utilisable 0
Allocatable oui (mais plein)
PE Size (KByte) 4096
Total PE 2498
Free PE 0
Allocated PE 2498
PV UUID vQIUga-221O-GIKj-81Ct-2ITT-bKPw-kKElpM

vgdisplay

server1:~# vgdisplay
— Groupe de volumes —
VG Name server1
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access lecture/écriture
VG Status redimensionnable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size 9.76 Go
PE Size 4.00 Mo
Total PE 2498
Alloc PE / Size 2498 / 9.76 Go
Free PE / Size 0 / 0
VG UUID jkWyez-c0nT-LCaE-Bzvi-Q4oD-eD3Q-BKIOFC

lvdisplay

server1:~# lvdisplay
— Volume logique —
LV Name /dev/server1/root
VG Name server1
LV UUID UK1rjH-LS3l-f7aO-240S-EwGw-0Uws-5ldhlW
LV Write Access lecture/écriture
LV Status disponible

LV Size 9.30 Go
Current LE 2382
Segments 1
Allocation hériter
Read ahead sectors 0
Block device 254:0

— Volume logique —
LV Name /dev/server1/swap_1
VG Name server1
LV UUID 2PASi6-fQV4-I8sJ-J0yq-Y9lH-SJ32-F9jHaj
LV Write Access lecture/écriture
LV Status disponible

LV Size 464.00 Mo
Current LE 116
Segments 1
Allocation hériter
Read ahead sectors 0
Block device 254:1

fdisk -l

server1:~# fdisk -l

Disque /dev/sda : 10.7 Go, 10737418240 octets
255 têtes, 63 secteurs/piste, 1305 cylindres
Unités = cylindres de 16065 * 512 = 8225280 octets

Dispositif Démarrer Début Fin Blocs Id Système
/dev/sda1 * 1 31 248976 83 Linux
/dev/sda2 32 1305 10233405 5 Étendu
/dev/sda5 32 1305 10233373+ 8e Linux LVM

Disque /dev/sdb : 64.4 Go, 64424509440 octets
255 têtes, 63 secteurs/piste, 7832 cylindres
Unités = cylindres de 16065 * 512 = 8225280 octets

Le disque /dev/sdb ne contient pas de table de partitions valide

Disque /dev/dm-0 : 9990 Mo, 9990832128 octets
255 têtes, 63 secteurs/piste, 1214 cylindres
Unités = cylindres de 16065 * 512 = 8225280 octets

Le disque /dev/dm-0 ne contient pas de table de partitions valide

Disque /dev/dm-1 : 486 Mo, 486539264 octets
255 têtes, 63 secteurs/piste, 59 cylindres
Unités = cylindres de 16065 * 512 = 8225280 octets

Le disque /dev/dm-1 ne contient pas de table de partitions valide

Donc /dev/sda contient les volumes logiques /dev/server1/root (partition /) et /dev/server1/swap_1 (partition swap) plus une petite partition /boot (non-LVM).

(Entre parenthèses, /dev/server1/root est le même que /dev/mapper/server1-root sur Debian Etch. Le premier est un lien symbolique vers le second ; j’utiliserai les deux notations dans ce tutoriel. Il en va de même pour /dev/server1/swap_1 et /dev/mapper/server1-swap_1.)

Je vais maintenant créer la partition /dev/sdb1 et l’ajouter au groupe de volumes server1, puis je vais créer le volume /dev/server1/backups (qui sera de 30 Go au lieu des 60 Go complets de /dev/sdb afin que nous ayons suffisamment d’espace pour les instantanés) que je vais monter sur /backups :

fdisk /dev/sdb

server1:~# fdisk /dev/sdb
Le dispositif ne contient ni une table de partitions DOS valide, ni un label de disque Sun, SGI ou OSF
Création d’un nouveau label de disque DOS. Les modifications resteront en mémoire uniquement,
jusqu’à ce que vous décidiez de les écrire. Après cela, bien sûr,
le contenu précédent ne pourra pas être récupéré.

Le nombre de cylindres pour ce disque est réglé sur 7832.
Il n’y a rien de mal à cela, mais c’est plus grand que 1024,
et cela pourrait, dans certaines configurations, causer des problèmes avec :

  1. des logiciels qui s’exécutent au démarrage (par exemple, anciennes versions de LILO)
  2. des logiciels de démarrage et de partitionnement d’autres OS
    (par exemple, DOS FDISK, OS/2 FDISK)
    Avertissement : le drapeau invalide 0x0000 de la table de partitions 4 sera corrigé par w(rite)

Commande (m pour l’aide) : <– n
Action de commande
e étendue
p partition primaire (1-4)
<– p
Numéro de partition (1-4) : <– 1
Premier cylindre (1-7832, valeur par défaut 1) : <– [ENTRER]
Utilisation de la valeur par défaut 1
Dernier cylindre ou +taille ou +tailleM ou +tailleK (1-7832, valeur par défaut 7832) : <– [ENTRER]
Utilisation de la valeur par défaut 7832

Commande (m pour l’aide) : <– t
Partition sélectionnée 1
Code hexadécimal (tapez L pour lister les codes) : <– 8e
Type de système de partition 1 changé en 8e (Linux LVM)

Commande (m pour l’aide) : <– w
La table de partitions a été modifiée !

Appel de ioctl() pour relire la table de partitions.
Synchronisation des disques.

pvcreate /dev/sdb1
vgextend server1 /dev/sdb1
lvcreate –name backups –size 30G server1
mkfs.ext3 /dev/mapper/server1-backups
mkdir /backups

Maintenant, montons notre volume /dev/server1/backups sur /backups :

mount /dev/mapper/server1-backups /backups

Pour que ce volume soit monté automatiquement chaque fois que vous démarrez le système, vous devez éditer /etc/fstab et y ajouter une ligne comme celle-ci :

vi /etc/fstab

| [...] /dev/mapper/server1-backups /backups ext3 defaults,errors=remount-ro 0 1 |

Maintenant, notre nouvelle situation ressemble à ceci :

pvdisplay

server1:~# pvdisplay
— Volume physique —
PV Name /dev/sda5
VG Name server1
PV Size 9.76 Go / non utilisable 0
Allocatable oui (mais plein)
PE Size (KByte) 4096
Total PE 2498
Free PE 0
Allocated PE 2498
PV UUID vQIUga-221O-GIKj-81Ct-2ITT-bKPw-kKElpM

— Volume physique —
PV Name /dev/sdb1
VG Name server1
PV Size 59.99 Go / non utilisable 0
Allocatable oui
PE Size (KByte) 4096
Total PE 15358
Free PE 7678
Allocated PE 7680
PV UUID cvl1H5-cxRe-iyNg-m2mM-tjxM-AvER-rjqycO

vgdisplay

server1:~# vgdisplay
— Groupe de volumes —
VG Name server1
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 5
VG Access lecture/écriture
VG Status redimensionnable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 2
Act PV 2
VG Size 69.75 Go
PE Size 4.00 Mo
Total PE 17856
Alloc PE / Size 10178 / 39.76 Go
Free PE / Size 7678 / 29.99 Go
VG UUID jkWyez-c0nT-LCaE-Bzvi-Q4oD-eD3Q-BKIOFC

lvdisplay

server1:~# lvdisplay
— Volume logique —
LV Name /dev/server1/root
VG Name server1
LV UUID UK1rjH-LS3l-f7aO-240S-EwGw-0Uws-5ldhlW
LV Write Access lecture/écriture
LV Status disponible

LV Size 9.30 Go
Current LE 2382
Segments 1
Allocation hériter
Read ahead sectors 0
Block device 254:0

— Volume logique —
LV Name /dev/server1/swap_1
VG Name server1
LV UUID 2PASi6-fQV4-I8sJ-J0yq-Y9lH-SJ32-F9jHaj
LV Write Access lecture/écriture
LV Status disponible

LV Size 464.00 Mo
Current LE 116
Segments 1
Allocation hériter
Read ahead sectors 0
Block device 254:1

— Volume logique —
LV Name /dev/server1/backups
VG Name server1
LV UUID sXq2Xe-y2CE-Ycko-rCoE-M5kl-E1vH-KQRoP6
LV Write Access lecture/écriture
LV Status disponible

LV Size 30.00 Go
Current LE 7680
Segments 1
Allocation hériter
Read ahead sectors 0
Block device 254:2

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.