• # Externaliser "sous" le FS

    Posté par . En réponse au journal Mon Backup de backup. Évalué à 10.

    J'utilise BackupPC depuis des années, qui a le même problème concernant l'externalisation: la quantité de hardlinks rend la copie "au dessus" du FS quasi impossible (que ce soit rsync, ou cp, ou dump2fs). Deux axes pour externaliser

    • Exporter uniquement le dernier jeux de sauvegarde (ça ne semble pas être ce que tu cherches, mais c'est très souvent plus que suffisant)
    • Faire une copie "sous" le FS

    Pour le deuxième axe, là encore, plusieurs possibilités:

    • Un bon vieux dd de temps en temps. Problème: pas de copie incrémentielle, il faut tout transférer à chaque fois, ça peut être long. Aussi, le FS source doit être figé pendant la copie, donc snapshot LVM obligatoire selon la durée de la copie
    • Une synchro RAID logiciel (c'est ce que j'utilise assez régulièrement): sur ton NAS, il faut stacker 2 couches de RAID: un premier RAID6 comme l'actuel, et de ce RAID6, tu crées au dessus un RAID1 avec un seul membre. Au dessus de ce RAID1, tu y mets ce que tu veux (FS directement ou LVM + FS, ou dmcrypt + LVM + FS, bref....). Ensuite, de temps en temps, tu connectes ton disque externe, tu l'ajoutes au RAID1, il récupère toutes les données, quand la synchro est terminée, tu peux casser le RAID et mettre ce disque en lieux sûr. Il faut par contre impérativement avoir 2 disques externes au minimum, et toujours en avoir un hors site. J'ai un petit script qui permet d'automatiser l'ajout/retrait de disques externes à un RAID logiciel: https://wikit.firewall-services.com/doku.php/tuto/sauvegardes/externalisation_raid1 (c'est pour BackupPC, mais ça peut s'adapter facilement)
    • Une autre possibilité est d'utiliser drbd sous le FS (il faut par contre une autre machine, pas juste un disque externe). drbd est plutôt efficace quand la connexion se rétablie pour ne transférer que les zones modifiées depuis la dernière fois
    • enfin, comme déjà évoqué, les FS modernes type ZFS ou BTRFS avec leur fonctions respectives de send/receive devraient permettre aussi de faire ça (mais j'ai pas d'expérience avec ceux là)

    voilà mes 2ct sur ce sujet ;-)