Почему возникает фрагментированность файловой структуры

Обновлено: 07.07.2024

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

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

СОДЕРЖАНИЕ

Причины

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

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

Пример

Упрощенный пример того, как происходит фрагментация свободного пространства и файлов

Следующий пример представляет собой упрощение в остальном сложного предмета. Рассмотрим следующий сценарий: на новом диске было пять файлов с именами A, B, C, D и E, сохраненных непрерывно и последовательно в указанном порядке. Каждый файл занимает 10 блоков пространства. (Здесь размер блока не имеет значения.) Остаток дискового пространства составляет один свободный блок. Таким образом, дополнительные файлы могут быть созданы и сохранены после файла E.

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

Теперь новый файл с именем F, для которого требуется семь блоков пространства, может быть помещен в первые семь блоков недавно освобожденного пространства, в котором ранее находился файл B, и три следующих за ним блока останутся доступными. Если добавляется еще один новый файл с именем G, которому требуется всего три блока, он может занимать пространство после F и перед C.

Если впоследствии F необходимо расширить, поскольку пространство сразу после него занято, есть три варианта для файловой системы:

  1. Добавление нового блока где-то еще и указание, что F имеет второй экстент
  2. Перемещение файлов по пути расширения в другое место, чтобы F оставался смежным
  3. Перемещение файла F таким образом, чтобы он мог быть одним непрерывным файлом нового, большего размера

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

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

Необходимость

Фрагментация файловой системы может происходить на нескольких уровнях:

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

Фрагментация файлов

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

Фрагментация свободного пространства

Фрагментация свободного (нераспределенного) пространства происходит, когда в файловой системе есть несколько неиспользуемых областей, в которые можно записывать новые файлы или метаданные. Нежелательная фрагментация свободного пространства обычно вызывается удалением или усечением файлов, но файловые системы также могут намеренно вставлять фрагменты («пузыри») свободного пространства, чтобы облегчить расширение соседних файлов (см. Предотвращение фрагментации ниже).

Разброс файлов

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

Чтобы избежать связанной фрагментации файлов и улучшить локальность ссылок (в данном случае это называется смежностью файлов ), необходимо делать предположения или активные наблюдения относительно работы приложений. Очень часто делается предположение, что имеет смысл хранить файлы меньшего размера в одном каталоге вместе и размещать их в естественном порядке файловой системы. Хотя это часто разумное предположение, оно не всегда верно. Например, приложение может читать несколько разных файлов, возможно, в разных каталогах, в том же порядке, в котором они были записаны. Таким образом, файловая система, которая просто упорядочивает все записи последовательно, может работать быстрее для данного приложения.

Отрицательные последствия

Фрагментация файловой системы более проблематична для жестких дисков потребительского уровня из-за увеличивающегося несоответствия между скоростью последовательного доступа и задержкой вращения (и в меньшей степени временем поиска ), на которых обычно размещаются файловые системы. Таким образом, фрагментация является важной проблемой при исследовании и проектировании файловых систем. Сдерживание фрагментации зависит не только от формата файловой системы на диске, но и в значительной степени от его реализации. Фрагментация файловой системы оказывает меньшее влияние на производительность твердотельных накопителей , поскольку не требует механического времени поиска . Однако файловая система должна хранить дополнительные метаданные для каждой несмежной части файла. Каждая часть метаданных сама по себе занимает место и требует вычислительной мощности и времени процессора. Если достигается максимальный предел фрагментации, запросы на запись завершаются ошибкой.

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

Смягчение

Было разработано несколько методов борьбы с фрагментацией. Обычно их можно разделить на две категории: упреждающие и обратные . Из-за сложности прогнозирования шаблонов доступа эти методы чаще всего носят эвристический характер и могут снизить производительность при неожиданных рабочих нагрузках.

Предотвращение фрагментации

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

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

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

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

Относительно недавний метод - отложенное распределение в XFS , HFS + и ZFS ; тот же метод в reiser4 и ext4 также называется allocate-on-flush . При записи в файловую систему блоки файловой системы зарезервированы, но расположение конкретных файлов еще не установлено. Позже, когда файловая система вынуждена сбрасывать изменения в результате нехватки памяти или фиксации транзакции, распределитель будет гораздо лучше знать характеристики файлов. Большинство файловых систем с таким подходом пытаются сбрасывать файлы в одном каталоге непрерывно. Предполагая, что многократное чтение из одного каталога является обычным явлением, улучшается локальность ссылки. Reiser4 также упорядочивает компоновку файлов в соответствии с хэш-таблицей каталогов , так что при доступе к файлам в естественном порядке файловой системы (как диктуется readdir ) они всегда читаются последовательно.

Дефрагментация

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

HFS Plus Файловая система прозрачно дефрагментирует файлы, которые меньше , чем 20 МиБ в размере и разбиты на 8 или более фрагментов, когда файл открывается.

Устаревшая теперь Commodore Amiga Smart File System (SFS) дефрагментировала себя, пока файловая система использовалась. Процесс дефрагментации почти полностью не имеет состояния (за исключением местоположения, в котором он работает), поэтому его можно остановить и запустить мгновенно. Во время дефрагментации обеспечивается целостность как метаданных, так и обычных данных.

Дефрагментация — процесс обновления и оптимизации логической структуры раздела диска с целью обеспечить хранение файлов в непрерывной последовательности кластеров. Применяется в основном в отношении файловых систем FAT и NTFS. После дефрагментации ускоряется чтение и запись файлов, а следовательно и работа программ. Другое определение дефрагментации: перераспределение файлов на диске, при котором они располагаются в непрерывных областях.

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

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

зайди на википендия и почитай. Хороший справочних по всем направлениям. В поисковике набери слово Википендия"

попробуй открыть словарь или в поисковых системах набрать. Некомпактное помещение файлов на жёстком диске, из-за чего лазеру приходится долго перемещаться по поверхности диска, "собирая" части фала или программы воедино. Дефрагментация, соответственно - компактное размещение файла на жёстком диске. специальный лазер для чтение и записывание файлов на диске C, D, и CD

Дефрагментация — процесс обновления и оптимизации логической структуры раздела диска с целью обеспечить хранение файлов в непрерывной последовательности кластеров. Применяется в основном в отношении файловых систем FAT и NTFS. После дефрагментации ускоряется чтение и запись файлов, а следовательно и работа программ. Другое определение дефрагментации: перераспределение файлов на диске, при котором они располагаются в непрерывных областях.

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

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

(Не следует думать, что при использовании системы NTFS проблема фрагментации файлов исчезает! ) Чем выше степень фрагментации жесткого диска, тем ниже производительность при выполнении операций чтения или записи на диск.

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

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

Дефрагментация — процесс обновления и оптимизации логической структуры раздела диска с целью обеспечить хранение файлов в непрерывной последовательности кластеров. Применяется в основном в отношении файловых систем FAT и NTFS. После дефрагментации ускоряется чтение и запись файлов, а следовательно и работа программ. Другое определение дефрагментации: перераспределение файлов на диске, при котором они располагаются в непрерывных областях.

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

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

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

Возникает в результате фрагментации дискового пространства: так как на диске отсутствуют последовательные свободные блоки, то новые файлы невозможно записать целиком в одном месте, их приходится делить на фрагменты и записывать в разных частях диска, что замедляет чтение этих файлов и снижает общую производительность файловой системы. Более того: во многих файловых системах (например FAT32) начало файла записывается в начало кластера, следовательно, если сам файл или его часть по объёму меньше размера кластера, то оставшееся место в кластере остается неиспользованным. Поэтому, чем больше фрагментирован диск, тем неэффективнее использование его пространства.

Постараюсь не грузить тоннами определений и заумных слов, как в статье на Википедии, а просто и быстро объяснить и показать что такое дефрагментация (полезно будет тем, кто не знает что такое дерагментация).

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

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

Больше всего эта проблема характерна операционным система Windows, так как в них не предусмотрено никаких механизмов защиты от фрагментации.

Разбрасываются файлы как попало потому, что процесс проверки/поиска и записи на диск стартует именно с того самого места, где в данный момент находится головка жесткого диска (вы можете наблюдать её на картинке с HDD ниже — она закреплена на специальной подвижной консоли и весит над круглой пластиной, напоминает иглу).

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

Простой пример, который наглядно покажет что такое фрагментация:

Этот текст не фрагментирован и читается подряд без проблем
Этот тек фрагмен ст и его трудно сразу прочи тирован тать

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

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

Поэтому всем, кто ни разу не делал у себя дефрагментацию диска, я бы рекомендовал обязательно её провести =)

Практические советы

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

Примерно раз в 2 недели я бы советовал проводить лишь анализ диска.
Но в этом вопросе вам еще нужно учитывать какого объема ваш HDD и как часто вы на него записываете новые файлы, таким образом вы подберете примерный период, через который нужно производить анализ диска.
Дефрагментацию же нужно выполнять если фрагментация файлов на диске превышает 6%.

Что еще нужно учитывать помимо общего процента фрагментации?

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

Фрагментация диска и её влияние на целостность данных

Содержание:

Как и почему происходит фрагментация?

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

Если файл действительно большой, система автоматически может разбить его на целую массу отдельных сегментов. В результате этого, диску придется выполнять намного больше манипуляций по считыванию, перемещению и позиционированию головок. В итоге, диск способный обеспечивать скорость считывания в 100-150 MB/с, сможет выдавать 10-30 MB/с в зависимости от степени фрагментации данных.

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

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

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

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

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

Как уменьшить фрагментацию?

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

Помимо этого, для успешного проведения дефрагментации утилите необходимо свободное пространство. Опытные пользователи стараются всегда оставлять не менее 20% свободного пространства на диске для его корректной работы, а также для нормальной работы оптимизирующих утилит. Также подобный подход позволяет уменьшить сам процесс фрагментации при записи объемных данных.

Но эффективно ли это для SSD?

Твердотельные SSD накопители и фрагментация

Каждый владелец SSD знает, что твердотельные накопители не нуждаются в проведении дефрагментации. В статье «Как увеличить срок службы SSD диска» мы более детально рассмотрели данный вопрос.

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

Несмотря на это, мы настоятельно рекомендуем оставлять не менее 20% свободного места на накопителе, поскольку это позволит:

  • Нормально работать функции TRIM (безвозвратная очистка ненужных данных).
  • Выровнять износ устройства.
  • Быстрее выполнять другие задачи по самообслуживанию SSD.

Часто задаваемые вопросы

Это сильно зависит от емкости вашего жесткого диска и производительности вашего компьютера. В основном, большинство операций восстановления жесткого диска можно выполнить примерно за 3-12 часов для жесткого диска объемом 1 ТБ в обычных условиях.

Почему некоторые файлы, после восстановления, могут не открываться?

Если файл не открывается, это означает, что файл был поврежден или испорчен до восстановления.

Используйте функцию «Предварительного просмотра» для оценки качества восстанавливаемого файла.

Как я могу проверить, можно ли восстановить мои данные, перед покупкой?

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

Сохранить их можно после регистрации программы – повторное сканирование для этого не потребуется.

Читайте также: