FAT32 или NTFS, сжатие в NTFS, как выбрать размер кластера и опыты с MFT (16.09.2011). Печать
2011 - Сентябрь
16.09.2011 08:26
Save & Share

Стало кончаться свободное место на диске с документами. Смотрю в разных дефрагментаторах: зона MFT занимает около 8-9% жесткого диска. Недолго думая, решил я избавиться от файловой системы NTFS, чтобы избавиться от MFT, чтобы освободить эти 8%. Не смейтесь, читайте что из этого вышло. Laughing 

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

Далее настало время практики. Копирую с одного жесткого диска на другой информацию при равных условиях: HDD Seagate 500GB, раздел приблизительно 100GB, NTFS, размер кластера 4KB. Замеряю скорость передачи в мегабайтах: максимальная (по большим файлам) 112MB/s, средняя (по средним) 70MB/s, медленная (по мелким и очень мелким файлам) 8-30MB/с.

Далее форматирую исходный диск заново в NTFS и смотрю, сколько зона MFT сразу сожрала. Точное число не помню, пусть будет мегабайт 90. Я помню, что зона MFT увеличивается по мере записи новых файлов, и размышляю так: если в исходном состоянии было свободно 14,3GB - то при форматировании произошло удаление лишних записей, и размер свободного места должен увеличиться. Переношу данные на исходный диск с резервного - опять получаю 14,3GB. Упс. Tongue out Оказывается, стирание записей в зоне MFT достаточно жесткое, и стирая файлы - никаких архивных записей в MFT не остается.

Далее форматирую исходный диск заново в NTFS, но уже с использованием сжатия. Сжатие диска - функция системы NTFS полезная, но только в частных случаях; плюс работает при кластере не более 4KB, и восстановление данных с такого диска будет затруднительное. Итак, на моем диске было разношерстное содержимое: видео, фото, музыка, текст, программы, ... Так вот, для разношерстного содержимого сжатие лучше не использовать, а только в том случае, если на вашем разделе только сжимаемые данные: текст, документы, рисунки BMP и т.д. Конечный итог: при использовании сжатия копирование с резервного диска на исходный уменьшилось: по большим файлам в 2,5 раза, по средним в 6 раз, по мелким в 10-37,5 раз. Мало того, свободное место УМЕНЬШИЛОСЬ и составило 11,8GB. Получился "эффект WinRAR'а": когда файл сжимается и весит не 100% даже, а 101-110%. Интересно, убрали ли создатели архиватора данный дефект...

Далее проверяю опцию "разрешить индексирование диска для быстрого поиска". Выяснилось, что она не потребляет дискового пространства.

Идем вперед. Хочу отформатировать исходный диск в FAT32. Упс. Tongue out Я совсем забыл, что диски более 32 гигабайт Windows отформатировать не дает. Ах ты диктатор Билли! Качаю программу guiformat.exe и форматирую диск в FAT32. Про то, что максимальный размер файла в FAT32 равен 4GB - я помню, это не было проблемой.

Переношу данные на исходный диск с резервного. Замеряю скорость. Уменьшение скорости составило где-то 1,1 раза. По свободному месту получаю... Свободно не 14,3GB, а 14,4GB. Упс. Tongue out Офигевание и потеря ориентации. Потеря сознания от увиденного.

Далее муторное разбирательство с возникшими "почему". Выяснились факты, которые меня расстроили и одновременно обрадовали.

О надежности и скорости NTFS и FAT32 идут споры с момента создания NTFS. Видел тему на форуме, которую 6 лет мусолили. Я же пишу только то, что видел, и ни с кем спорить не намерен:
- скорость копирования с FAT32 на FAT32 быстрее, чем с NTFS на NTFS, наиболее видно на мелких и очень мелких файлах. При взаимодействии FAT32 с NTFS скорость копирования несколько падает. При работе только с одним разделом FAT32 скорость выше чем у аналогичного NTFS;
- FAT32: ее область находится в одном месте раздела, поэтому если будет повреждена - потеряете весь раздел. NTFS: зона MFT занимает 8-12% от диска, ее данные дублируются и расположены физически в разных частях диска. Восстановление данных с FAT32 и NTFS простое, но в случае использования сжатия начинаются самые разные неприятности.

О размере кластера: оказывается, это палка о двух концах. Верное утверждение, что чем меньше размер кластера - тем меньше потери на них. Пример: устанавливаю размер кластера 4KB. Тогда физически файл весом 1 байт и 4096 (4095?) байт займут ровно 1 кластер. 4097 займут уже 2 кластера, и получится что файл весит 4097, а занимает реально 8192 байта. Пример 2: устанавливаю размер кластера 128KB. Тогда физически файл весом 1 байт займет сразу 128KB. И так по каждому файлу мы теряем какое-то пространство.
Казалось бы, чем меньше размер кластера тем лучше. Но вот он, второй конец палки: чем больше размер кластера, тем быстрее скорость работы с данным разделом диска (а т.к. диск наиболее медленный элемент в ПК - это может быть значимо). Связано это с тем, что HDD использует технологию упреждающего чтения. Не знаю, есть ли это в SSD; подозреваю, что сохранится алгоритм.
Выводы. Если вам важна скорость и плевать на потери - при создании раздела форматируйте его специальными программами c большим размером кластера. Если вам важны потери и плевать на скорость - форматируйте раздел с кластером 512 байт. Если разношерстное содержимое - стоит придерживаться стандартного размера в 4KB или большого размера кластера в случае частого использования диска. Если архивный раздел с программами, фильмами или музыкой - есть смысл в большом кластере; если много мелких файлов, - в малом. Если системный раздел - не стоит делать размер кластера меньше 4KB.

А теперь самый сок: об MFT. Нашел один-единственный абзац об описании MFT и прибалдел:

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

 

По-русски: то, что я видел в дефрагментаторах - это не сама MFT, и определение "зона MFT" тоже, в принципе, неверно. Это РЕЗЕРВ для зоны MFT. Неперемещаемый, но изменяемый в процессе как MFT растет. Сама таблица MFT весит даже не те 90 мегабайт, что я видел, а ещё меньше. Если произойдет ситуация, что свободное место в разделе кончается - зона MFT начнет уменьшаться, пока не достигнет доступного минимума.

Получается, что я гонялся за призраками: удалив MFT, я освободил не более 90MB. И конечно же, нужно больше спать, чтобы не допускать подобных глюков.

Таблица сравнения FAT32 с NTFS:

Ограничения / возможностиNTFSFAT16 и FAT32
Размеры диска2^64 байт (16 эксабайт или 18 446 744 073 709 551 616 байт).Приблизительно равняется 8 терабайт.
Размер томаПри использовании файловой таблицы Master File Table рекомендуется создавать тома, размеры которых не превышают 2 ТБ, а применение GUID Partition Table позволяет создавать разделы диска размером до 9.4 ЗБ (9.4 × 1021 байт). Выбор файловой таблицы предоставляется при форматировании диска, начиная с версии Windows NT 6.0.Запись в таблице FAT на томе с файловой системой FAT32 имеет размер 4 байта, поэтому средство ScanDisk не может работать с таблицей FAT на диске FAT32, описывающей более 4 177 920 кластеров (включая два резервных). С учетом самих таблиц FAT и при максимальном размее кластера 32 КБ размер тома может быть до 127,53 ГБ. В Windows 2000 нельзя отформатировать том размером более 32 ГБ с файловой системой FAT32. Драйвер FastFAT для Windows 2000 способен подключать и поддерживать тома размером больше 32 ГБ с файловой системой FAT32 (с определенными ограничениями), но такой том нельзя создать с помощью команды «Format». Такое поведение является особенностью данного продукта. При необходимости создать том размером более 32 ГБ, используйте файловую систему NTFS.
Форматирование дискетWindows не позволяет форматировать дискеты в NTFS (ntfsflp от Марка Руссиновича позволяет). 
Поддержка типов ссылокNTFS поддерживает жёсткие (Hardlinks) и символьные ссылки, Junctions, Volume Mount Point.FAT не поддерживает ссылки.
Максимальный размер файлаТеоретически — 264 байт минус 1 килобайт.
Практически — 244 байт минус 64 килобайта.
FAT16 поддерживает файлы размером не более 2 ГБ.
FAT32 поддерживает файлы размером не более 4 ГБ.
Средства безопасности.Атрибуты файлов, авторизация с использованием DACL, шифрование с использованием EFS.Атрибуты файлов.
АудитС использованием SACL.Не поддерживается.
Поддержка сжатия.На уровне файловой системы для файлов, каталогов и дисков.На уровне диска (в FAT16). В FAT32 не поддерживается.
Максимальное количество файлов4 294 967 295 (232 — 1).В FAT32 не более 268 435 444 (228−12)
Обновлено ( 29.10.2016 15:26 )