L'exemple décrit comment utiliser un espace supplémentaire du groupe de volumes “ops” pour effectuer une sauvegarde de la base de données tous les soirs. Pour garantir la cohérence des données stockées sur la bande, nous utilisons un volume logique d'instantané LVM.
Un volume snapshot est un type spécial de volume qui présente toutes les données qu'il contenait au moment de la création de l'instantané. Cela signifie que l'on peut sauvegarder ce volume sans avoir à se soucier des données modifiées pendant la sauvegarde, et sans devoir pas mettre le volume de base de données hors ligne pendant la sauvegarde.
Dans LVM1, ce type de volume était en lecture seule, mais LVM2 crée des instantanés en lecture/écriture par défaut.
Vérifier l'espace libre dans le groupe de volumes “ops” afin d'allouer de l'espace au volume logique de l'instantané. Un volume d'instantané peut être aussi grand ou petit qu'onsouhaite, mais il doit être suffisamment grand pour que tous les changements susceptibles de se produire sur le volume d'origine soient conservés pendant toute la durée de vie de l'instantané.
# lvcreate -L592M -s -n dbbackup /dev/ops/databases lvcreate -- WARNING: the snapshot must be disabled if it gets full lvcreate -- INFO: using default snapshot chunk size of 64 KB for "/dev/ops/dbbackup" lvcreate -- doing automatic backup of "ops" lvcreate -- logical volume "/dev/ops/dbbackup" successfully created
Attention: Si le volume logique de l'image instantanée est plein, il sera supprimé (et deviendra inutilisable). Il est donc primordial d'allouer suffisamment d'espace. La quantité d'espace nécessaire dépend de l'utilisation de l'instantané. Il n'y a donc pas de recette définie à suivre pour cela. Si la taille de l'instantané est égale à la taille d'origine, elle ne débordera jamais.
On peut maintenant créer un point de montage et monter le volume
# mkdir /mnt/ops/dbbackup # mount /dev/ops/dbbackup /mnt/ops/dbbackup mount: block device /dev/ops/dbbackup is write-protected, mounting read-only
Pour les systèmes de fichiers XFS, ajouter l'option nouuid
à la commande mount:
# mount /dev/ops/dbbackup /mnt/ops/dbbackup -onouuid,ro
# tar -cf /dev/rmt0 /mnt/ops/dbbackup tar: Removing leading `/' from member names
Une fois la sauvegarde terminée, on peut démonter le volume et le supprimer du système. Il faut supprimer le volume des instantanés lorsqu'on a terminé, car ils prennent une copie de toutes les données écrites sur le volume d'origine, ce qui peut nuire aux performances.
# umount /mnt/ops/dbbackup # lvremove /dev/ops/dbbackup lvremove -- do you really want to remove "/dev/ops/dbbackup"? [y/n]: y lvremove -- doing automatic backup of volume group "ops" lvremove -- logical volume "/dev/ops/dbbackup" successfully removed