Existe-t-il un système de fichiers de type git?

27

Git stocke le contenu uniquement dans son référentiel en fonction du hachage calculé de n'importe quel fichier. Si mon répertoire contient deux copies du même fichier quelque part à l'intérieur, git ne le stockera qu'une seule fois.

Je me demande si ce même concept a été implémenté au niveau du système d'exploitation comme une sorte de système de fichiers?

Si un système de fichiers agissait de cette façon par défaut, cela aiderait bien avec les problèmes d' enfer de DLL . Essentiellement, il créerait automatiquement un lien symbolique en votre nom. Toute application peut être empaquetée (comme un bocal) dans un répertoire avec toutes ses dépendances et sans coût de stockage supplémentaire.

Les amateurs de rubis partagent des bibliothèques en les publiant sous forme de rubygèmes. Pourtant, cet effort pour partager les gemmes a entraîné des cauchemars de déploiement qui conduisent au concept Vendor Everything de copier toutes les dépendances dans des dossiers locaux pour éviter de tels cauchemars.

Mario
la source
2
Je ne suis pas un expert, mais consultez ZFS .
ForeverWintr

Réponses:

21

Ce que vous recherchez est appelé "déduplication". Bien qu'il soit généralement implémenté par les fournisseurs de produits de stockage spécialisés, le système de fichiers ZFS l' implémente également. La plupart des systèmes d'exploitation dérivés d'Unix peuvent utiliser ZFS, et je le recommande donc en premier lieu.

Aaron Miller
la source
1
Je vois que la "déduplication" peut être implémentée au niveau du fichier, ce qui m'intéressait en particulier.
Mario
3

Network Appliance, Inc. a une capacité de stockage comme celle-ci depuis de nombreuses années, en fait, des plaintes ont été déposées auprès de Sun Microsystems pour leur système de fichiers ZFS, et fait ce qu'Aaron Miller mentionne dans sa réponse acceptée. Pour ce que ça vaut, les plaintes ont été réglées avec Oracle après environ 3 ans.

Je l'ai utilisé comme solution d'entreprise depuis 2000, et cela fonctionne bien. Le coût du stockage après la première «copie» survient une fois le fichier modifié. Sinon, avec de nombreuses «copies», il n'y a qu'une légère augmentation pour l'espace de noms.

Je ne pense pas que cela réponde à la question du "niveau du système d'exploitation" mais plutôt au "niveau du système de fichiers".

vgoff
la source
0

Le nouveau système de fichiers Apple (APFS, ainsi nommé parce qu'il y avait déjà un AFS qui était autre chose) fait cette magie de "liaison automatique" / "déduplication". macOS 10.13 le prend en charge de manière native (sur la plupart des Mac), tout comme iOS 11.

Cela étant dit, je ne pense pas que cela soit suffisant pour le rendre "git like", car s'il était "git like", il aurait également une somme de contrôle cryptographique de l'état de ma structure de répertoire à des moments donnés afin que Je pouvais être sûr que personne n'avait piraté mon ordinateur ou modifié mes répertoires système. En fait, j'utilise git repos pour suivre certains répertoires système critiques sur mes Mac, comme les fichiers de configuration Apache, LaunchDaemons, LaunchAgents et quelques autres - de cette façon, lorsque j'installe un logiciel ou que j'exécute mon serveur pendant un certain temps, je peux voir si quelque chose a obtenu foutu.

APFS a également une prise en charge astucieuse pour le déchargement des éléments du système de fichiers vers le cloud lorsqu'ils ne sont pas utilisés depuis un certain temps, mais ils semblent toujours être là, et repousseront du cloud à la demande.

Vous pouvez toujours construire un Hackintosh et vous en occuper. BSD est amusant.

CommaToast
la source