Существует ли файловая система, похожая на git?

Существует ли файловая система, похожая на git?

Git хранит контент уникально в своем репозитории на основе вычисленного хеша любого файла. Если в моем каталоге есть две копии одного и того же файла где-то внутри, git фактически сохранит его только один раз.

Мне интересно, была ли эта же концепция реализована на уровне операционной системы в виде некой файловой системы?

Если бы файловая система действовала таким образом по умолчанию, это бы здорово помоглодлл адпроблемы. По сути, это будет автоматически символическая ссылка от вашего имени. Любое приложение может быть упаковано (как jar) в каталог со всеми его зависимостями и без дополнительных затрат на хранение.

Энтузиасты Ruby делятся библиотеками, публикуя их как rubygems. Тем не менее, эта попытка поделиться gems привела к кошмарам развертывания, которые привели кПоставщик всегоконцепция копирования всех зависимостей в локальные папки, чтобы избежать подобных кошмаров.

решение1

То, что вы ищете, называется «дедупликация». Хотя это обычно реализуется поставщиками специализированных продуктов для хранения данных,файловая система ZFSтакже реализует это.Большинство операционных систем на базе Unixможно использовать ZFS, и поэтому я бы рекомендовал это место как первое, куда следует обратиться.

решение2

Network Appliance, Inc. обладает такими возможностями хранения уже много лет, на самом деле, у них были жалобы, поданные в Sun Microsystems на их файловую систему ZFS, и они делают то, о чем упоминает Аарон Миллер в своем принятом ответе. Если это и имело значение, то жалобы были урегулированы Oracle примерно через 3 года.

Я использую это как корпоративное решение с 2000 года, и оно хорошо работает. Стоимость хранения после первой «копии» возникает примерно тогда, когда в файле происходят изменения. В противном случае, при большом количестве «копий» происходит лишь небольшое увеличение пространства имен.

Я не думаю, что это отвечает на вопрос об «уровне операционной системы», а скорее на «уровне файловой системы».

решение3

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

При этом я не думаю, что этого достаточно, чтобы сделать его "похожим на git", поскольку если бы он был "похожим на git", то он также имел бы криптографическую контрольную сумму состояния моей структуры каталогов в определенные моменты времени, чтобы я мог быть уверен, что никто не взломал мой компьютер или не изменил мои системные каталоги. На самом деле, я использую git repos для отслеживания определенных критических системных каталогов на моих Mac, таких как файлы конфигурации Apache, LaunchDaemons, LaunchAgents и некоторые другие, — таким образом, когда я устанавливаю программное обеспечение или запускаю свой сервер некоторое время, я могу увидеть, не испортилось ли что-нибудь.

APFS также имеет отличную поддержку выгрузки данных из файловой системы в облако, если они не используются в течение некоторого времени, но при этом они по-прежнему выглядят так, как будто находятся там, и будут загружены обратно из облака по требованию.

Вы всегда можете собрать Хакинтош и повозиться с ним. BSD — это весело.

Связанный контент