Sauvegarder / Cloner une partition btrfs

9

Est-il possible de sauvegarder une partition btrfs mot pour mot (y compris toutes les structures partagées qui économisent de l'espace en marquant les arbres d'instantanés comme COW) dans une autre? Par exemple, je voudrais sauvegarder ma partition racine qui a quelques sous-volumes btrfs (instantanés du / lui-même).

La seule façon dont je peux penser est d'utiliser un outil de copie de blocs comme ddmais c'est inefficace car ma partition n'est pleine qu'à 20% et j'ai l'intention de la sauvegarder régulièrement. J'ai déjà tout sauvegardé de manière incrémentielle rsync, donc ce n'est pas une solution de contournement pour un autre problème. J'ai simplement besoin d'un clone peu à peu de ma partition btrfs sans avoir à utiliser un outil tel que dd.

Je sais que ext3, par exemple, fournit un utilitaire de sauvegarde et de restauration. C'est le genre de chose que je recherche.

MISE À JOUR

Voici une mise à jour pour clarifier le fait que je veux pouvoir accéder aux fichiers sur le stockage de sauvegarde de la même manière que je le fais sur le disque en direct (c'est-à-dire que je ne veux pas stocker de fichiers de vidage sur le stockage de sauvegarde).

Mansour
la source

Réponses:

6

partclone est l'outil que vous recherchez.

  • il prend en charge de nombreux systèmes de fichiers linux, y compris BTRFS
  • il prend même en charge certains autres systèmes de fichiers (comme FAT ou exFAT)
  • contrairement à ddcela, il examine la carte d'allocation des systèmes de fichiers (par exemple: les tables FAT de FAT et exFAT, les cartes d'extension BTRFS, etc.) et clone uniquement les blocs utilisés.

Selon votre modèle d'utilisation:

  • utilisez le -b(long:) --dev-to-devsi le périphérique noir source et cible de sauvegarde sont visibles sur la même machine (essentiellement si les deux disques sont branchés sur le même ordinateur).
  • ou utilisez -cet -r(long: --cloneand --restore) pour d'abord cloner vers le propre format d'image du partclone sur la machine source, puis restaurer à partir de l'image sur la machine de sauvegarde
  • selon la page de manuel partclone , il est possible de diriger des images, il devrait donc être possible de copier des partitions sur le réseau sans enregistrer les fichiers réels, si vous manquez d'espace, mais que vous disposez d'un réseau extrêmement fiable.

Une manière complètement différente de traiter le problème serait à l' aide btrfs sendet le btrfs receivemécanisme.

  • Cela ne produira pas de copies de périphériques de bloc vers le bas dans le secteur
  • mais, en fournissant correctement des références aux deux extrémités, il est également capable de conserver les références entre les fichiers (parties de) liés aux références.

Le propre mécanisme de btrfs n'est donc pas une copie parfaite du secteur (contrairement à partclone) mais c'est une copie parfaite de l' étendue (bien meilleure que celle rsynv -aSHAXqui ne gère que les fichiers liés en dur ).

DrYak
la source
1

Canalisez la sortie de ddquelque chose comme bzip2ou de votre autre programme de compression préféré qui lira à partir de l'entrée standard. Je l'ai fait sur un disque de 500 Go qui avait une installation relativement petite et s'est retrouvé avec un fichier de 8 Go.

Cry Havok
la source
1
Vous devez d'abord remplir l'espace libre avec des zéros (par exemple cat /dev/zero > zeroes) pour vous débarrasser des données non liées qui sont toujours sur le disque. Mais cela pourrait ne plus fonctionner lorsque BTRFS obtiendra à l'avenir la déduplication des données au niveau des blocs.
Wim Coenen du
Veuillez consulter la mise à jour de ma question.
Mansour
1

Pas encore essayé, mais btrfs-imagesemble résoudre ce problème:

https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs-image

Mise à jour: ne l'utilisez pas comme sauvegarde. Merci pour le commentaire.

Je laisse ceci ouvert et ne le supprimera pas, afin que d'autres puissent en tirer des leçons.

Jonas Stein
la source
2
Attention, btrfs-image copie uniquement les données META, pas les données dans les fichiers eux-mêmes. (Il est utilisé pour envoyer une copie aux développeurs afin qu'ils puissent voir ce qui ne va pas. Ne pas copier les données).
DrYak
-2

juste fyi ext2 / 3/4 dump ne fait pas ce que vous voulez faire ... seuls les fs capables de le faire que je connais sont ntfs (en utilisant ntfs-3g) et zfs

bien que vous puissiez retirer cela en utilisant lvm et un provisionnement fin expérimental ...

Edit: revenons à cela quelques années plus tard en réalisant, vous pouvez le faire avec n'importe quel système de fichiers utilisant squashfs ...

Renard
la source
partclone a pu faire exactement cela pour de nombreuses partitions qui ne sont ni ntfs-3g ni zfs.
DrYak
Les images clairsemées montables @DrYak de NTFS sont définitivement prises en charge par ntfsclone ... linux.die.net/man/8/ntfsclone
Fox
-3

Je pense qu'il n'y a apparemment pas un tel outil (pour le moment, ATM).

poige
la source