Чи існує файлова система, подібна до git?


25

Git зберігає вміст однозначно в репо на основі обчисленого хеша будь-якого файлу. Якщо в моєму каталозі є дві копії одного і того ж файлу, десь усередині нього, git тільки фактично збереже його.

Мені цікаво, чи ця концепція була реалізована на рівні операційної системи як якась файлова система?

Якщо файлова система працювала таким чином за умовчанням, це допомогло б dll hell питань. По суті, це буде автоматично символічне посилання від вашого імені. Будь-яке додаток може бути упаковано (як jar) в каталог з усіма його залежностями і без додаткових витрат на зберігання.

Любителі Ruby діляться бібліотеками, публікуючи їх як rubygems. Тим не менш, ці зусилля, щоб розділити дорогоцінні камені призвели до розгортання кошмарів, які призвели до Продавець Все Концепція копіювання всіх залежностей в локальні папки, щоб уникнути таких кошмарів.


2
Я не експерт, але перевірте ZFS .
ForeverWintr

Відповіді:


20

Те, що ви шукаєте, називається "дедуплікацією". Хоча це зазвичай реалізується постачальниками спеціалізованих продуктів зберігання, файлову систему ZFS реалізує його також. Більшість операційних систем, створених Unix можна скористатися ZFS, тому я рекомендую це як перше місце.


1
Я бачу, що "дедуплікація" може бути реалізована на рівні файлів, що я особливо цікавлю.
Mario

3

Network Appliance, Inc. мав такі можливості зберігання протягом багатьох років, адже вони подавали скарги до Sun Microsystems для їхньої файлової системи ZFS і робили те, про що згадує Аарон Міллер у своїй прийнятій відповіді. Для чого це варто, скарги були вирішені з Oracle приблизно через 3 роки.

Я використовував це як корпоративне рішення з 2000 року, і він добре працює. Вартість зберігання після першого "копіювання" відбувається одразу після зміни файлу. Інакше, при багатьох 'копіях' приходить лише невелике збільшення для простору імен.

Я не думаю, що це відповідає на питання про "рівень операційної системи", а скоріше на рівні "файлової системи".


0

Нова файлова система Apple (APFS, названа так тому, що вже існувала AFS, що було щось інше) робить цю магію "автоматичного жорсткого з'єднання" / "дедуплікація". macOS 10.13 підтримує його на самому початку (на більшості Mac), як і iOS 11.

Це, як кажуть, я не відчуваю, що цього достатньо, щоб зробити його "git like", оскільки, якщо це було "git like", то воно також матиме криптографічну контрольну суму стану моєї структури каталогів у задані моменти часу, так що Я міг би переконатися, що ніхто не зламав мій комп'ютер або змінив мої системні каталоги. Насправді, я використовую git repos для відстеження певних критичних системних каталогів на моєму комп'ютері, наприклад, файли налаштувань Apache, LaunchDaemons, LaunchAgents та деяких інших - таким чином, коли я встановлюю програмне забезпечення або запускаю свій сервер на деякий час, я бачу, чи ні отриманий загвинчений.

Крім того, APFS має відмінну підтримку для розвантаження речей з файлової системи в хмару, коли вони не використовувалися деякий час, але вони все ще виглядають так, як вони є, і будуть засипатися назад з хмари за запитом.

Ви завжди можете побудувати Hackintosh і зіпсувати його. BSD це весело.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.