Может ли файл занять свободную часть кластера занятого частично другим файлом

Обновлено: 07.07.2024

В этой статье рассмотрено, как проверить распределение дискового пространства файловой системы NTFS, чтобы обнаружить файлы и папки с оскорбленными файлами или найти повреждения громкости на компьютерах Microsoft Windows Server 2003.

Применяется к: Windows Server 2003
Исходный номер КБ: 814594

Сводка

Распределение дискового пространства тома NTFS может показаться неправильным по любой из следующих причин:

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

Слишком большой размер кластера

Только файлы и папки, которые включают внутренние метафили NTFS, такие как таблица master File (MFT), индексы папок и другие, могут потреблять пространство диска. Эти файлы и папки потребляют все выделения пространства файлов с помощью нескольких кластеров. Кластер — это коллекция соотественных секторов. Размер кластера определяется размером раздела при форматировании тома.

Дополнительные сведения о кластерах см. в сведениях о размере кластеров по умолчанию для NTFS, FAT и exFAT.

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

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

В командной подсказке введите команду: chkdsk d: .

Где d: это буква диска, которую необходимо проверить.

Просмотр результатов. Например:

4096543 общего дискового пространства KB. <--- общая отформатированная емкость диска.
2906360 КБ в файлах 19901 г. <--- пространства, используемом данными файлов пользователя.
6344 КБ в 1301 индексах. <--- пространства, используемой индексами NTFS.
0 КБ в плохих секторах. <--- space проиграла плохим секторам.
49379 КБ, используемая системой. <--- содержит метафили MFT и других NTFS.
22544 KB занят файлом журнала. <--- NTFS Log file - (Можно корректировать с помощью chkdsk /L:size)
1134460 доступно на диске. <--- свободное пространство диска

4096 bytes в каждом блоке распределения. <--- размер кластера. (4K)
1024135 единицы общего распределения на диске. <--- общие кластеры на диске.
283615 единицы распределения, доступные на диске. <--- доступные бесплатные кластеры.

Умножьте каждое значение, которое отчеты о выходе в килобайтах (KB) будут умножаться на 1024, чтобы определить точные значения byte. Например: 2906360 x 1024 = 2 976 112 640 бит. Эти сведения можно использовать для определения использования дискового пространства и размера кластера по умолчанию.

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

Щелкните любой файл или папку, а затем выберите Выберите все в меню Редактирование.

При выборе всех выбранных файлов и папок щелкните правой кнопкой мыши любой файл или папку, щелкните Свойства, а затем нажмите вкладку General.

Общая вкладка отображает общее количество файлов и папок в целом томе и содержит две статистики размера файлов: РАЗМЕР и РАЗМЕР НА ДИСКЕ.

Если вы не используете сжатие NTFS для файлов или папок, содержащихся в томе, разница между РАЗМЕРом и РАЗМЕРОМ НА ДИСКе может представлять некоторое впустую пространство, так как размер кластера больше необходимого. Может потребоваться использовать меньший размер кластера, чтобы значение SIZE ON DISK было максимально приближено к значению SIZE. Большая разница между размером НА ДИСКе и значением SIZE указывает на то, что размер кластера по умолчанию слишком велик для среднего размера файла, хранимого в томе.

Изменить размер кластера можно только переформатированием тома. Для этого необходимо заказать объем, а затем форматизировать его с помощью команды формата и переключателя, чтобы указать /a соответствующее распределение. Например: format D: /a:2048 (В этом примере используется размер кластера 2-KB).

Кроме того, можно включить сжатие NTFS для восстановления пространства, потерянного из-за неправильного размера кластера. Однако это может привести к снижению производительности.

Атрибуты файлов или разрешения NTFS

И Windows, и команда списка каталогов отображают общую статистику файлов и папок только для тех файлов и папок, к которые у вас есть dir /a /s разрешения на доступ. По умолчанию файлы, скрытые файлы и защищенные файлы операционной системы, исключаются. Это поведение может Windows explorer или команду dir для отображения неточных итогов файлов и папок и статистики размеров.

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

Чтобы определить папки и файлы, к которые нельзя получить доступ, выполните следующие действия:

В командной подсказке создайте текстовый файл из вывода dir /a /s команды.

Например: В командной подсказке введите следующую команду: dir d: /a /s >c:\d-dir.txt .

Запустите мастер резервного копирования или восстановления.

Щелкните Параметры в меню Tools, щелкните вкладку Резервное копирование журнала, щелкните Подробный и нажмите кнопку ОК.

В утилите резервного копирования щелкните вкладку Резервное копирование, а затем выберите поле для всего затронутого тома (например: D:), а затем нажмите кнопку Начните резервное копирование.

После завершения резервного копирования откройте отчет о резервном копировании и сравните папку для папки с выходом журнала NTBackup с d-dir.txt, сохраненным на шаге 1.

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

После обнаружения файлов, к которые вы не имеете доступа, можно добавить или изменить разрешения с помощью вкладки Security во время просмотра свойств файла или папки в Windows Explorer. По умолчанию вы не можете получить доступ к папке сведения о томе системы. Чтобы включить папку в команду, необходимо добавить правильные dir /a /s разрешения.

D:\folder_name\ не доступен

Доступ запрещен

Если у вас есть такие папки, обратитесь в службы поддержки продуктов Майкрософт для получения дополнительной помощи.

Имена недействительных файлов

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

Файл или папка для переименования ошибок

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

Файл или папка для удаления ошибок

Не удается удалить файл. Не удается прочитать из источника файла или диска.

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

Расширение NTFS Master File Table (MFT)

Когда создается и форматизируется том NTFS, создаются метафилы NTFS. Один из этих метафилов называется Master File Table (MFT). Он небольшой при его создания (около 16 КБ), но он растет по мере создания файлов и папок на томе. Когда файл создается, он вошел в MFT в качестве сегмента записей файлов (FRS). FrS всегда составляет 1024 bytes (1 KB). По мере того, как файлы добавляются в том, MFT растет. Однако при удалении файлов связанные frSs помечены как бесплатные для повторного использования, но общее распределение frSs и связанных MFT остается. Поэтому после удаления большого количества файлов пространство, используемого MFT, не возвращается.

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

Фрагментация master File Table (MFT)
Общий размер MFT = 26 203 КБ
Количество записей MFT = 21 444
Процент использования MFT = 81%
Общие фрагменты MFT = 4

Однако для получения дополнительных сведений о том, сколько пространства (накладных расходов) использует весь NTFS, выполните команду chkdsk.exe, а затем выполните просмотр вывода для следующей строки:

В настоящее время только сторонние defragmenters консолидировать неиспользование записей FRS MFT и восстановить неиспользование MFT выделенное пространство.

Альтернативные потоки данных

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

  • Windows Explorer и команда dir не сообщают данные в альтернативных потоках данных в рамках статистики размера файла или объема. Вместо этого они показывают только общие bytes для основного потока данных.
  • Выход из chkdsk точно сообщает пространство, используемого пользовательскими файлами данных, включая альтернативные потоки данных.
  • Квоты дисков точно отслеживают и сообщают о всех распределениях потока данных, которые являются частью файлов данных пользователя.
  • NTBackup записи количество bytes резервного копирования в отчете резервного копирования журнала. Однако он не показывает, какие файлы содержат альтернативные потоки данных. Он также не показывает точные размеры файлов, которые включают данные в альтернативных потоках.

Коррупция файловой системы NTFS

Другие функции NTFS, которые могут вызвать путаницу в распределении файлов

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

Твердая ссылка — это запись каталога для файла независимо от того, где данные файла находятся в этом томе. Каждый файл имеет по крайней мере одну твердую ссылку. В томах NTFS каждый файл может иметь несколько жестких ссылок, поэтому один файл может отображаться во многих папках (или даже в одной папке с разными именами). Так как все ссылки относятся к одному файлу, программы могут открывать любые ссылки и изменять файл. Файл удаляется из файловой системы только после удаления всех ссылок на него. После создания жесткой ссылки программы могут использовать ее, как и любое другое имя файла.

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

Точки крепления тома и стыки каталогов позволяют пустой папке на томе NTFS указать на корневой или подмостки другого тома. Windows Обозреватель и команда dir/s следуют точке репара, подсчитывают все файлы и папки в томе назначения, а затем включают их в статистику тома хостов. Это может ввести в заблуждение, что на томе хостов используется больше места, чем на самом деле.

В сводке вы можете использовать выход chkdsk, NTBackup GUI или журналы резервного копирования, а также просмотр квот дисков, чтобы определить, как пространство диска используется в томе. Однако Windows Explorer и команда dir имеют некоторые ограничения и недостатки при их назначении.

При форматировании дисков вы наверняка замечали пункт «Размер единицы распределения» или «размер кластера». Этот параметр всегда задан по умолчанию, но вместе с тем есть возможность его изменить. Стоит ли это делать и за что вообще отвечает размер кластера? Давайте разбираться.

Что означает размер кластера?

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

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

Размер документа 1 кб, но поскольку размер кластера 32 кб, то и на диске файл занимает 32 кб Размер документа 1 кб, но поскольку размер кластера 32 кб, то и на диске файл занимает 32 кб

Какой размер кластера стоит использовать?

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

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

Стоит ли использовать больший размер кластера?

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

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

Заключение

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

Наш подписчик FSS провел собственное тестирование влияния размера кластера на скорость чтения. Оригинальный комментарий:

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

  • Простота – необходимо хранить только начальный адрес;
  • Отсутствие потерь дискового пространства; система хранит списки свободной памяти.

Недостаток - отсутствие произвольного доступа: для доступа к данным файла в общем случае необходимо выполнить просмотр части списка блоков файла.

При ссылочном размещении адрес по файлу представляется в виде (Q, R),где Q – номер блока, к которому выполняется доступ , в связанном списке блоков, представляющем файл ; R - cмещение в блоке.

Ссылочное размещение файлов изображено на рис. 20.3.

Ссылочное размещение файлов.

К файловым системам, использующим ссылочное размещение , относится файловая система File-allocation table (FAT),используемая в MS-DOS и OS/2 и до сих пор используемая в Windows ( рис. 20.4).

Файловая система File Allocation Table (FAT).


увеличить изображение
Рис. 20.4. Файловая система File Allocation Table (FAT).

В системе FAT элемент директории содержит имя файла и адрес его начального блока (кластера) на диске. Каждый блок ссылается на следующий, кроме последнего. Система FAT разработана создателем корпорации Microsoft Биллом Гейтсом в 1976 г. Теперь читателю должно быть понятно, почему операция удаления файла в Windows не "фатальна": она означает лишь удаление элемента директории со ссылкой на начальный кластер файла. Несмотря на это, список кластеров, представляющий файл , можно обнаружить и восстановить ссылку из директории на его начало, хотя и под другим именем. В MS DOS данную функцию выполняла системная утилита unerase ( отменить удаление ).

Индексируемое размещение

При индексируемом размещении, в отличие от предыдущих, все указатели на блоки файла собраны вместе в индексный блок (i-node, superblock).Используется индексная таблица , ссылающаяся на блоки данных файла. Подобная система используется в системах UNIX , Linux, Solaris.

Пример индексируемого размещения приведен на рис. 20.5.

Индексируемое размещение файлов.

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

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

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

При отображении логического адреса в физический, если ограничить максимальный размер файла 256 K словами, а размер блока - 512 слов, то для индексной таблицы требуется только один блок. Логический адрес будет иметь вид (Q, R),где Q - смещение в индексной таблице, R - смещение в блоке.

При отображении логического адреса в физический для файла неограниченной длины (при размере блока – 512 слов) может использоваться ссылочная схема – в список связываются блоки индексной таблицы. В данном случае логический адрес будет иметь вид (Q1, R1) , где Q1 = номер блока индексной таблицы ; R1 = (Q2, R2) , где Q2 - смещение в блоке индексной таблицы, R2 смещение в блоке файла.

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

Комбинированная индексная схема размещения файлов в UNIX.


увеличить изображение
Рис. 20.6. Комбинированная индексная схема размещения файлов в UNIX.

Управление свободной внешней памятью

Для управления свободной памятью на диске система использует битовый вектор длины n ,где n – общее число блоков на диске, каждый бит которого описывает состояние соответствующего блока: bit[i] = 0 , если block[i] свободен, 1 – если блок занят. При таком представлении информации о свободных и занятых блоках, номер первого занятого блока вычисляется по простой формуле:

номер первого занятого блока = число битов в слове * число нулевых слов + номер первой 1.

Битовые шкалы, используемые для управления блоками, требуют дополнительной памяти. Например, при размере блока в 2 12 байтов и размере диска в 2 30 байтов (1 GB) длина битового вектора будет равна n = 2 30 /2 12 = 2 18 битов (или 32 KB).

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

Для предотвращения ситуаций рассогласованности информации о свободной дисковой памяти, операционной системе необходимо защищать указатель на список свободной памяти , либо битовую шкалу (в зависимости от способа представления информации о свободной памяти). Битовый вектор должен храниться на диске. Однако его копии в памяти и на диске могут различаться. Нельзя допустить, чтобы block[i] имел такую ситуацию, когда bit[i] = 1 в памяти и bit[i] = 0 на диске. Решение этой проблемы в том, чтоты согласовывать значения битов на диске и в памяти по следующему алгоритму:

  • Установить bit[i] = 1 на диске;
  • Разместить block[i];
  • Установить bit[i] = 1 в памяти.

Представление информации о свободной дисковой памяти в виде списка блоков иллюстрируется на рис. 20.7.

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