
Я просмотрел Википедию и другие сайты, и вот какую информацию я получил.
Сектор:Наименьшая адресуемая единица (в основном 512 байт)
Кластер: Наименьшая единица распределения (равна 1 или более секторам, а количество кластеров зависит от файловой системы).
Скажем, в примере ниже: сектор = 512 байт и кластер = 8 секторов = 4096 байт. Теперь мне трудно понять, когда я пытаюсь создать файл, что делает файловая система? Считает ли она 4096 байт наименьшей единицей записи/чтения или 512 байт?
Если ответ 4096 байт: Если производитель дисковых накопителей указал 512 байт как наименьшую адресуемую единицу, почему файловая система считает кластер наименьшей единицей? Я имею в виду, какие преимущества это дает?
решение1
Преимущество файловых систем, рассматривающих кластер/единицу распределения/блок как наименьшую единицу, заключается в том, что адресация всего дискапо секторампотребовалось бы большее количество бит для индексации всего этого. Это большее количество бит сделало бы это медленнее, потому что есть большее количество адресов и вещей, которые нужно отслеживать. Гораздо эффективнее адресовать (и индексировать!) местоположения, используя, скажем, 48 бит (2^48 = 2.8e14), а не 64 или более бит (2^64 = 1.8e16) для каждого отдельного доступа к устройству.
Но да, размер кластера или размер единицы распределения (Windows) или размер блока (Linux) настраивается в зависимости от определенной файловой системы, и это наименьший возможный размер.обычнобыть доступным ОС для хранения данных файла. «Определение файловой системы» означает форматирование диска (или спецификаций этого формата), поэтому подразумевает стирание всех данных на диске. Таким образом, на диске с размером кластера 4 КБ файл размером 1 байт действительно займет целый кластер размером 4 КБ, как в вашем примере. Да, ОС может записывать в какой-то определенный сектор внутри этого кластера, но файл все равно будет использовать те же сектора этого кластера (размер файла всегда будет кратен размеру кластера, независимо от того, какие данные в нем находятся). Чтобы изменить размер этого кластера, необходимо переформатировать диск, и именно поэтому все данные должны быть стерты.
Кстати, меньшие размеры кластеров более эффективно хранят небольшие файлы. Однако, как следствие, диск будет работать медленнее из-за увеличенного количества кластеров. Когда ваш ПК просто сидит и долго работает на диске, это происходит потому, что он пытается прочитать или записать так много маленьких блоков, и их огромное количество все замедляет.
Пример: 100 000 файлов по 768 байт, хранящихся на диске с кластерами по 1 КБ:
768 КБ байт фактических данных файла
Использовано 1,024 МБ дискового пространства, поскольку каждый файл использует 1024 байта диска.
Эффективность использования пространства = 0,768/1,024 = 75% (неплохо...)
И точно так же, более крупные кластеры лучше подходят для дисков с меньшим количеством больших файлов, таких как фильмы, изображения и аудио. Поскольку кластеров меньше, диск, как правило, работает быстрее. Но будьте осторожны, помещая на него много маленьких файлов:
Пример: 100 000 файлов по 768 байт, хранящихся на диске с кластерами по 64 КБ:
768 КБ байт фактических данных файла
Использовано 6,55 ГБ дискового пространства, поскольку каждый файл использует 65535 байт дискового пространства.
Эффективность использования пространства = 0,768/6553,5 = 0,00017% !!!
Диски со смешанным содержимым, например, операционной системой, обычно имеют средние или небольшие размеры кластера/блока, поскольку большинство файлов имеют средние или небольшие размеры. Конечный результат — компромисс между использованием пространства и скоростью.
Сами диски предпочитают блоки размером от 32 КБ до 256 КБ, поскольку это позволяет им передавать больше всего данных в секунду.
Все это касается традиционных механических магнитных жестких дисков с вращающимися пластинами. SSD или твердотельные накопители быстро заменяют традиционные жесткие диски и могут похвастаться гораздо более высокой скоростью чтения/записи/поиска. Так важен ли размер кластера на SSD сегодня? Ну, я бы сказал, что для среднего пользователя он менее важен, но только потому, что SSD (и современные компьютеры) уже намного быстрее. Кто заметит замедление SSD на 10%, когда он уже в 5 раз быстрее магнитного жесткого диска?
Что может больше влиять на размер кластера на SSD, так это пропускная способность. Вы можете обнаружить (форматируя и тестируя), что определенный размер кластера работаетдалеколучше других для этого SSD. Например, некоторые SSD оптимизированы для передачи 8 КБ или 4 КБ. Это связано с тем, насколько большой блок данных электроника внутри готова передать за один запрос. Сопоставьте то, что ОС пытается использовать (размер кластера), с оптимальным размером для этого SSD = самая высокая скорость передачи.
Однако размер кластера по-прежнему важен из-за «накладных расходов» файлов на SSD-дисках.
Я нашел отличный инструмент для тестирования SSD-накопителей.AS-SSDдля Windows иэтина Linux.
решение2
Размер сектора определяется производителем.
Теперь мы можем видеть два вида размера сектора. 512б или 4Кб.
До 2010 года размер сектора жесткого диска: 512 байт
После 2010 года производитель начал выпускать HDD 4K под защитой бренда.
Сейчас, в 2018 году, многие пользователи, более 70%, используют размер сектора 512b.
В редких случаях некоторые производители жестких дисков предоставляют собственный инструмент для изменения размера сектора.
Кластер (для FAT) — это то же самое, что и система BLOCK (для Linux).
Он содержит один или несколько секторов
Файловая система работает только с кластером (или блоком).
Логический сектор, называемый собственным сектором, предоставляемым производителем.
Пользователь может изменить только физический сектор (=размер кластера или блока) с помощью инструмента форматирования или разбиения.
Логический сектор/Физический сектор = 512/4096 = сектор производителя/сектор пользователя = невозможно изменить/изменить