Совместное использование файловых блоков между двумя файлами - PullRequest
1 голос
/ 19 июня 2019

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

Однако я хотел бы, чтобы эти данные имели CoW (копирование при записи)поведение на уровне блоков / экстентов, поэтому на диск фактически записываются только измененные блоки / экстенты данных, что сводит к минимуму использование диска.Я также пытаюсь минимизировать количество операций ввода-вывода, которые я делаю этим.

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

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

Не знаю, возможно ли это в NTFS в данный момент, и мои поиски не дали ничего полезного, возможно, я использую неправильную терминологию.

1 Ответ

1 голос
/ 19 июня 2019

Возможно, вы ищете API дедупликации данных .Это не может быть сделано на уровне NTFS, по крайней мере, без драйвера фильтра.Кроме того, вы можете использовать API удаленного дифференциального сжатия , чтобы сделать это вручную.Мой инструмент FileSnap делает именно это.

...