Найти в Дзене

Определение фрагментации файла: два способа

Существует два различных определения фрагментации файла в файловой системе. 1. Файл считается фрагментированным, если для чтения всего файла требуется перемещение головки после чтения первого блока данных. Это определение в основном касается производительности чтения на вращающихся дисках. Перемещение головки медленное, поэтому этого следует избегать. Если файл разреженный, т.е. содержит большие участки, заполненные нулями, то файловая система не будет хранить нули. Вместо этого будут сохранены только ненулевые начало и конец файла. С точки зрения производительности это нормально. Драйвер файловой системы прочитает первую часть данных, затем сгенерирует необходимое количество нулей и продолжит чтение последней части данных, не совершая перемещения головки. Если файл содержит метаданные (например, таблицу страниц ReFS), встроенные в содержимое, это также нормально с точки зрения производительности. Драйвер ReFS прочитает данные файла, и в какой-то момент таблица страниц будет необходима

Существует два различных определения фрагментации файла в файловой системе.

1. Файл считается фрагментированным, если для чтения всего файла требуется перемещение головки после чтения первого блока данных.

Это определение в основном касается производительности чтения на вращающихся дисках. Перемещение головки медленное, поэтому этого следует избегать.

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

Если файл содержит метаданные (например, таблицу страниц ReFS), встроенные в содержимое, это также нормально с точки зрения производительности. Драйвер ReFS прочитает данные файла, и в какой-то момент таблица страниц будет необходима. Удобно, что таблица страниц занимает следующий кластер после данных файла, и драйвер прочитает таблицу страниц, проанализирует её и продолжит чтение данных файла.

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

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

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

Также, если метаданные встроены между содержимым файла, как это часто бывает с ReFS, восстановленный файл будет содержать таблицы страниц ReFS, что делает файл бесполезным.