18

Вопрос может быть неточным, поэтому я постараюсь объяснить его более подробно.

По ряду причин у меня есть много копий одного и того же файла в моей файловой системе Linux. Многие из них довольно большие.

Скажем, у меня есть /path/to/some.file и копии этого файла /other/path/file.name и /yet/another/path/third.copy . Интересно, существует ли файловая система, которая буквально заставила бы два из этих файлов действовать как ссылка на оригинал? Естественно, если пользователь изменяет один из них, тогда и только тогда они становятся независимыми файлами.

PS. Я знаю, что это может быть (частично) выполнено с помощью ссылок. Но я хочу, чтобы эта функция, которую я пытался объяснить выше, была прозрачно обработана файловой системой.

3 ответа3

17

Эта функция называется дедупликацией. Ни одна из популярных файловых систем Linux (ext *) не поддерживает его, но, очевидно, ZFS поддерживает его частично. Существует также таблица файловых систем, в которой перечислены, среди прочего, дедупликация, но, похоже, не существует каких-либо популярных вариантов - это запланированная функция для Btrfs.

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

10

Основное ключевое слово, которое вы хотите найти, - «копировать при записи». В BTRFS есть операция клонирования, которая делает именно то, что вы хотите, а cp --reflink сделает то, что вы ищете, если ваша система имеет достаточно современное ядро и coreutils 7.5. Wiki Source Кроме того, bedup - это инструмент, который объединяет дубликаты по всему объему. CoW также является движущей силой технологии создания снимков от btrfs, IIRC.

4

Существует онлайновая файловая система S3QL, предназначенная для резервного копирования с большой возможностью дедупликации.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .