Je pense à une situation où j'aurais quelque chose qui crée une copie d'un répertoire, modifie quelques fichiers, puis effectue un traitement sur le résultat. Cela se fera assez souvent, peut-être quelques dizaines de fois par jour. (Le cas d'utilisation exact est de tester les soumissions de correctifs; duper le code, le corriger, construire / tester / rapport / etc.)
Ce que je recherche pourrait être fait en créant une nouvelle structure de répertoires et en la remplissant de liens durs à partir de l'origonal. Cependant, cela ne fonctionne que si tous les outils que vous utilisez suppriment et recréent des fichiers plutôt que de les modifier en place.
Existe-t-il un moyen de demander au système de fichiers de copier-écrire pour un fichier?
Remarque: je sais que de nombreux FS utilisent COW au niveau du bloc (toutes les mises à jour sont effectuées via des écritures dans de nouveaux blocs), mais ce n'est pas ce que je veux.
cp
etln
fait presque exactement la même chose. COW au niveau du bloc est une astuce pour minimiser l'intervalle pendant lequel les métadonnées FS sont incorrectes: en.wikipedia.org/wiki/ZFS#Copy-on-write_transactional_modelRéponses:
Si vous avez le choix de la plate-forme pour votre serveur de fichiers, je choisirais une version récente d'OpenSolaris et j'utiliserais la fonction de déduplication de ZFS. De cette façon, les copies de fichiers ne prendraient pas d'espace supplémentaire et même les segments communs entre les fichiers ne seraient pas répliqués.
Vous pouvez tout lire sur la déduplication ZFS dans cet article sur le blog de Jeff Bonwick .
la source
La plupart des solutions de virtualisation linux offrent des fichiers COW au niveau des fichiers parmi les systèmes d'exploitation virtualisés (copiés à partir du WP):
la source
Peut être SVN ou un autre outil de versioning (git, cvs)?
la source