Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format
PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:systeme:btrfs-sauvegarde [14/04/2015 21:26] milou [La Sauvegarde de subvolumes BTRFS] |
doc:systeme:btrfs-sauvegarde [18/06/2015 18:29] milou [Sauvegarde incrémentale] |
||
---|---|---|---|
Ligne 25: | Ligne 25: | ||
L’intérêt d'avoir la racine de son OS dans un subvolume est que l'on peut en faire des snapshots et booter dans ces snapshots en utilisant la methode ci dessus. | L’intérêt d'avoir la racine de son OS dans un subvolume est que l'on peut en faire des snapshots et booter dans ces snapshots en utilisant la methode ci dessus. | ||
Par exemple : | Par exemple : | ||
- | <code root>cp 40_custom 41_debian2 | + | <code root>cp 40_custom 41_debian2</code> |
- | chmod +x 41_debian2</code> | + | <code root>chmod +x 41_debian2</code> |
Changer les subvolumes dans le menuentry pour correspondre au snapshot. | Changer les subvolumes dans le menuentry pour correspondre au snapshot. | ||
<code root>update-grub</code> | <code root>update-grub</code> | ||
Ligne 47: | Ligne 47: | ||
Snapper est un programme qui gère les snapshots et qui a été développé par OpenSuse ((http://snapper.io/manpages/snapper.html)). | Snapper est un programme qui gère les snapshots et qui a été développé par OpenSuse ((http://snapper.io/manpages/snapper.html)). | ||
- | <code root> apt-get install snapper | + | <code root> apt-get install snapper</code> |
- | man snapper</code> | + | <code user>man snapper</code> |
Pour des snapshots automatiques de la racine : | Pour des snapshots automatiques de la racine : | ||
Ligne 126: | Ligne 126: | ||
On renomme les snapshots pour l'étape suivante et on réalise un snapshot de home@a-envoyer qui ne soit pas en lecture seule : | On renomme les snapshots pour l'étape suivante et on réalise un snapshot de home@a-envoyer qui ne soit pas en lecture seule : | ||
- | <code root>mv /mnt/sda/home@a-envoyer /mnt/sda/home@envoye | + | <code root>mv /mnt/sda/home@a-envoyer /mnt/sda/home@envoye</code> |
- | mv /mnt /sdb/home@a-envoyer /mnt/sdb/home@envoye | + | <code root>mv /mnt /sdb/home@a-envoyer /mnt/sdb/home@envoye</code> |
- | btrfs subvolume snapshot /mnt/sdb/home@envoye /mnt/sdb/home</code> | + | <code root>btrfs subvolume snapshot /mnt/sdb/home@envoye /mnt/sdb/home</code> |
On a ainsi deux subvolumes home qui sont identiques sur sda et sdb. | On a ainsi deux subvolumes home qui sont identiques sur sda et sdb. | ||
Ligne 156: | Ligne 156: | ||
Il ne reste plus qu'a faire le ménage pour se préparer à répéter cette itération : | Il ne reste plus qu'a faire le ménage pour se préparer à répéter cette itération : | ||
- | <code root>btrfs subvolume delete /mnt/sda/home@envoye | + | <code root>btrfs subvolume delete /mnt/sda/home@envoye</code> |
- | mv /mnt/sda/home@a-envoyer /mnt/sda/home@envoye | + | <code root>mv /mnt/sda/home@a-envoyer /mnt/sda/home@envoye</code> |
- | btrfs subvolume delete /mnt/sdb/home@envoye | + | <code root>btrfs subvolume delete /mnt/sdb/home@envoye</code> |
- | mv /mnt/sdb/home@a-envoyer /mnt/sdb/home@envoye | + | <code root>mv /mnt/sdb/home@a-envoyer /mnt/sdb/home@envoye</code> |
- | btrfs subvolume delete /mnt/sdb/home | + | <code root>btrfs subvolume delete /mnt/sdb/home</code> |
- | btrfs subvolume snapshot /mnt/sdb/home@a-envoyer /mnt/sdb/home</code> | + | <code root>btrfs subvolume snapshot /mnt/sdb/home@a-envoyer /mnt/sdb/home</code> |
Ce qui nous donne : | Ce qui nous donne : | ||
Ligne 187: | Ligne 187: | ||
Il n'y a pas, à ma connaissance, de système de checksum accessible à l'utilisateur intégré à btrfs. | Il n'y a pas, à ma connaissance, de système de checksum accessible à l'utilisateur intégré à btrfs. | ||
J'utilise donc un script qui compare les md5sums des ls chez le client et le serveur. | J'utilise donc un script qui compare les md5sums des ls chez le client et le serveur. | ||
- | Sur le client : <code root>export LANG=C | + | Sur le client : <code root>export LANG=C</code> |
- | cd /mnt/sda/home@envoye | + | <code root>cd /mnt/sda/home@envoye</code> |
- | ls -lnARs > /tmp/md5 | + | <code root>ls -lnARs > /tmp/md5</code> |
- | md5sum /tmp/md5</code> | + | <code root>md5sum /tmp/md5</code> |
- | Sur le Serveur: <code root>ssh root@stockage.local "LANG=C cd /mnt/sdb/home@envoye && ls -lnARs" > /tmp/md5 | + | Sur le Serveur: <code root>ssh root@stockage.local "LANG=C cd /mnt/sdb/home@envoye && ls -lnARs" > /tmp/md5</code> |
- | md5sum /tmp/md5</code> | + | <code root>md5sum /tmp/md5</code> |
Si les deux md5sum ne sont pas identiques alors il faut refaire une mise à jour complète.</note> | Si les deux md5sum ne sont pas identiques alors il faut refaire une mise à jour complète.</note> |