Ответ 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 миллионов блоков.