Разница между блоками и секторами

Что касается этой статьи, есть строка, которая гласит:

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

Что это значит? Что означает "операционная система может адресовать"? И последующая математика также не ясна. Как может 64 * 512 быть меньше 64 * 4?

Ответ 1

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

определение размера блока в ОС является случаем компромиссов. Каждый файл должен занимать хотя бы один блок, даже если файл равен 0 байтам, поэтому есть что-то для файлов метаданных файла. Если вы не можете гарантировать, что ваши файлы ВСЕГДА будут иметь некоторый размер размера блока (например, в 4k-блочной ОС, все файлы равны 4k), будет некоторая сумма потерь для файлов, которые точно не соответствуют внутри этого блока.

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

а с обратной стороны большие блоки означают меньше метаданных, но также означают больший отток при хранении небольших файлов. например 1-байтовый файл, хранящийся в блоке 4k, тратит 3,99k этого блока.

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

В статье, которую вы ссылаетесь, есть опечатка/логический недостаток, они означают 512 BYTES, а не 512k, поэтому 64 * 512 байт меньше 64 * 4k, или 64 * 4096 байт. Большинство жестких дисков поставляются с размером блоков 512 бит/блок.

Однако, как обсуждалось ранее, маленькие блоки означают больше метаданных. С размерами дисков теперь в диапазоне 3+ терабайт, с блоками 512 байт, вам нужно иметь хранилище метаданных для 3TB/512bytes = 6,44 миллиарда блоков. Это одна большая трата пространства. Итак, теперь они отправляют диски с блоками 4k, в 8 раз больше, поэтому вам нужно только хранилище метаданных для 805 миллионов блоков. Общее количество возможных файлов было сокращено в 8 раз, но уменьшенное количество метаданных означает, что вы действительно можете хранить большее количество полезных данных.

Кстати, 6,4 миллиарда блоков больше, чем то, что может быть решено непосредственно 32-битной системой. 2 ^ 32 имеет верхний предел ~ 4,2 миллиарда, поэтому более старые 32-битные машины не могли использовать весь привод 3TB. Следовательно, переход на большие размеры блоков. 32-битные коробки могут легко обрабатывать 805 миллионов блоков.