La question peut être imprécise, je vais donc essayer de l'expliquer plus en détail.
Pour un certain nombre de raisons, j'ai beaucoup de copies du même fichier sur mon système de fichiers Linux. Beaucoup d'entre eux sont assez grands.
Dites que j'ai /path/to/some.file
et des copies de ce fichier /other/path/file.name
et /yet/another/path/third.copy
. Je me demande s'il existe un système de fichiers qui ferait littéralement en sorte que deux de ces fichiers servent de référence à l'original. Naturellement, si l'utilisateur modifie l'un d'entre eux, alors et seulement alors ils deviennent des fichiers indépendants.
PS. Je sais que cela peut être (partiellement) accompli en utilisant des liens. Mais je veux que cette fonctionnalité que j'ai essayé d'expliquer ci-dessus soit gérée de manière transparente par le système de fichiers.
la source
Réponses:
Cette fonctionnalité est appelée déduplication . Aucun des systèmes de fichiers Linux populaires (ext *) ne le prend en charge, mais apparemment, ZFS le prend en charge partiellement . Il existe également un tableau des systèmes de fichiers répertoriant, entre autres, la déduplication, mais il ne semble pas y avoir de choix populaires - c'est une fonctionnalité prévue pour Btrfs, cependant.
Je suppose que vérifier périodiquement votre système de fichiers et créer des liens durs appropriés est le meilleur que vous puissiez faire pour le moment, bien que cela n'implique pas une copie sur écriture.
la source
Le mot-clé principal que vous souhaitez rechercher est "copier sur écriture". BTRFS a une opération de clonage qui fait exactement ce que vous voulez, et
cp --reflink
fera ce que vous recherchez, à condition que votre système ait un noyau et coreutils 7.5 suffisamment modernes. Source Wiki De plus, bedup est un outil qui fusionnera les doublons sur un volume entier. CoW est également la fonction de conduite sous la technologie d'instantané de btrfs, IIRC.la source
cp --reflink
mais notez que je souhaite que le FS détecte les clones et utilise des références à la place, de manière transparente. Je suis également loin de l'bedup
outil.cp --reflink
/ clone) ou un outil distinct pour terminer le travail plus tard (bedup).Il existe un système de fichiers en ligne S3QL conçu pour les sauvegardes avec une grande capacité de déduplication.
la source
Zfs, btrfs, ext3cow, bcachefs (afaik, mais il est possible qu'il ne soit pas encore implémenté). Microsoft en avait un en développement mais ils se sont arrêtés pour des raisons inconnues.
la source