Dump
| Fiche express | |
|---|---|
| Domaine | Sauvegarde de systèmes de fichiers |
| Commande | dump
|
| Contexte | Unix/Linux, sauvegarde niveau système de fichiers (par opposition à niveau fichier) vers bande, disque ou fichier |
| Voir aussi | Restore (restauration), Tar (sauvegarde niveau fichier) |
dump effectue des sauvegardes complètes ou incrémentales d'un système de fichiers et les écrit sur une bande magnétique, un disque ou un fichier. Contrairement à tar, dump travaille directement au niveau du système de fichiers (inodes) plutôt qu'au niveau des fichiers, ce qui lui permet de gérer des sauvegardes incrémentales fiables par niveaux numérotés et un fichier d'archive décrivant le contenu et la position physique des données sauvegardées. La restauration se fait avec la commande complémentaire restore.
Syntaxe et exemple
dump -0 -A archfile -L label -f device filestosave
# exemple
dump -0 -A /opt/tape/serveur.arch -L "serveur" -f /dev/st0 /srv/
Paramètres principaux
-0à-9: niveau de sauvegarde (voir ci-dessous) ;-0sauvegarde tout le système de fichiers-A archfile: chemin du fichier d'archive, qui contient l'arborescence sauvegardée et la position physique de chaque fichier sur le support, ce qui permet de cibler une restauration sans dérouler toute la bande-L label: étiquette écrite sur le support (16 caractères maximum), toujours entre guillemets-f device: support de destination (lecteur de bande SCSI, fichier, disque…)- dernier argument : point de montage ou système de fichiers à sauvegarder
Niveaux de sauvegarde
Une sauvegarde se fait toujours à un niveau donné, de 0 à 9. Le niveau 0 sauvegarde l'intégralité du système de fichiers. Un niveau i ne sauvegarde que ce qui a changé depuis la dernière sauvegarde à un niveau strictement inférieur, ce qui permet de construire des chaînes de sauvegardes incrémentales à partir d'un niveau 0 initial.
Cloner un serveur physique
Sauvegarde locale de chaque système de fichiers dans un fichier, pratique pour cloner un serveur avant une opération risquée :
mkdir /root/dump
dump -0uf /root/dump/boot.dump /dev/sda1
dump -0uf /root/dump/root.dump /dev/rootvg/rootlv
# répéter pour chaque système de fichiers à sauvegarder
Restauration complète sur nouveau matériel
Procédure de reconstruction d'un serveur à partir des fichiers dump réalisés ci-dessus, typiquement après une panne matérielle.
Partitionnement et volumes
Démarrer sur un support de secours (mode emergency) puis recréer le partitionnement et les volumes LVM :
fdisk /dev/sda
pvcreate /dev/sda2
tune2fs -L /boot /dev/sda1
vgcreate rootvg /dev/sda2
lvcreate -L 10G -n rootlv rootvg
mkfs.ext4 /dev/rootvg/rootlv
mkswap /dev/rootvg/swaplv
Restauration des données
Monter chaque système de fichiers reconstruit et y restaurer le dump correspondant avec restore (répéter pour chaque point de montage, /boot compris) :
mkdir /mnt/sysimage
mount /dev/rootvg/rootlv /mnt/sysimage
cd /mnt/sysimage
restore -rf /root/dump/root.dump
mount /dev/sda1 /mnt/sysimage/boot
cd /mnt/sysimage/boot
restore -rf /root/dump/boot.dump
Reconfiguration réseau et identité
Avant de redémarrer sur le nouveau matériel, adapter l'adresse IP et l'adresse MAC dans la configuration réseau, et vérifier le nom d'hôte :
vi /mnt/sysimage/etc/sysconfig/network-scripts/ifcfg-eth0
vi /mnt/sysimage/etc/sysconfig/network
Chroot et réinstallation de GRUB
mount -o bind /dev /mnt/sysimage/dev
mount -o bind /proc /mnt/sysimage/proc
mount -o bind /sys /mnt/sysimage/sys
chroot /mnt/sysimage /bin/bash
grub-install /dev/sda
Si grub-install échoue, réinstaller GRUB manuellement en console GRUB :
grub
grub> device (hd0) /dev/sda
grub> root (hd0,0)
grub> setup (hd0)
Swap et nettoyage
Recréer le swap et purger les traces de restauration ainsi que les anciens logs avant le redémarrage :
swapoff /dev/rootvg/swaplv
mkswap /dev/rootvg/swaplv
swapon /dev/rootvg/swaplv
find / -name restoresymtable -exec rm {} \;
cd /var/log
rm -rf *.log *.gz */*.gz *.pru */*.pru */*.nmon
reboot
Après redémarrage, en cas de systèmes de fichiers multipath, revalider la découverte des chemins et régénérer l'image initrd si nécessaire :
scsi-scan
multipath -r
multipath -ll
dracut --force