2 votes

Système de fichiers avec copie sur les liens durs d'écriture

Cas d'étude :

Un système de sauvegarde automatique de tous les membres de la famille via OpenVPN.

De nombreux fichiers (en particulier les photos) sont communs aux membres d'une même famille.

Ainsi, avec un script, je remplace les fichiers identiques par des liens en dur.

Un problème se pose alors : si un utilisateur modifie son fichier, le fichier est modifié pour tous les utilisateurs. La suppression d'un fichier ne pose pas de problème, pas plus que son renommage. Seule la modification du contenu du fichier pose problème.

Je veux donc que lorsqu'un utilisateur modifie son fichier qui est un lien dur, le lien dur soit supprimé et qu'une copie du fichier original soit créée avec les modifications appliquées.

Est-ce possible avec n'importe quel système de fichiers ou n'importe quel hack ou fonctionnalité ?

3voto

James Mertz Points 390

Vous recherchez le reflink qui a été introduite en 2009. Elle ne fonctionne qu'avec certains systèmes de fichiers - actuellement Btrfs, XFS ( apparemment ? ) et OCFS2.

cp --reflink FILE NEWFILE

reflink=auto deviendra l'option par défaut dans la prochaine version de Coreutils.

Une alternative est la déduplication du système de fichiers, qui est prise en charge par Btrfs et ZFS, entre autres. Elle permet de fusionner des blocs identiques "sous" les fichiers. Dans ZFS, cela se produit de manière synchrone (dès que le fichier est écrit), tandis que dans Btrfs le travail est ensuite effectué par lots.

Enfin, certains outils de sauvegarde effectuent eux-mêmes la déduplication. Les formats d'archive utilisés par Restic et Borg sont adressés au contenu (comme Git), de sorte que les blocs identiques ne seront automatiquement stockés qu'une seule fois par dépôt, même s'ils se trouvent dans des fichiers distincts.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X