Как обычно для страниц Википедии, Block (data storage) информативен несмотря на слишком буйный о связывании всех ключевых слов.
В computing (в частности, передачи данных и data storage), блок представляет собой последовательность bytes или bits, имеющий номинальную длину (установленный размер блока ). Сообщается, что структурированные данные блокируются. Процесс помещения данных в блоки называется блокировкой. Блокировка используется для облегчения обработки потока данных компьютерной программой, получающей данные. Заблокированные данные обычно читаются целым блоком за раз. Блокировка практически универсальна при хранении данных до 9-дорожечного magnetic tape, к вращающимся средам, таким как floppy disks, hard disks, optical discs и NAND flash memory.
Большинство file systems основаны на block device, который представляет собой уровень abstraction для hardware, ответственного за хранение и извлечение указанных блоков данных, хотя размер блока в файловых системах может быть кратным размеру физического блока. В классических файловых системах один блок может содержать только часть одного file. Это приводит к неэффективности пространства из-за internal fragmentation, так как длины файлов часто не являются кратными размеру блока, и, таким образом, последний блок файлов останется частично пустым. Это создаст slack space, что составляет в среднем половину блока за файл. Некоторые новые файловые системы пытаются решить эту проблему с помощью методов, называемых block suballocation и tail merging.
Существует также разумный обзор классического Unix File System.
Традиционно геометрия жесткого диска (расположение блоков на самом диске) было CHS.
- Глава: магнитное устройство считывания/записи на каждой стороне (а) тарелочке; может входить и выходить, чтобы получить доступ к различным цилиндрам
- цилиндров: след, который проходит под головкой, как опорный диск вращается
- сектор: постоянное количество размера данных, хранящихся смежно на части цилиндра; наименьшая единица данных, привод может иметь дело с
CHS не используется много в эти дни, так как
- Жесткие диски больше не использовать постоянное число секторов на цилиндр. Больше данных сжимается на блюде, используя постоянную длину арктекса на сектор, а не постоянный угол поворота, поэтому на внешних цилиндрах больше секторов, чем на внутренних цилиндрах.
- По спецификации ATA, привод может иметь не более 2 баллонов в голове, 2 головы и 2 секторов на цилиндр; с секторами 512B, это ограничение в 128 ГБ. Через BIOS INT13 невозможно получить доступ к чему-либо, кроме 7,88 ГБ, через CHS в любом случае.
- Для обратной совместимости большие диски по-прежнему утверждают, что имеют геометрию CHS (иначе DOS не сможет загружаться), но для получения более высокой информации требуется использование адресации LBA.
- CHS даже не имеет смысла на RAID или невращающихся носителях.
, но по историческим причинам это повлияло на размеры блоков: поскольку размеры сектора были почти всегда 512B, размеры блоков файловой системы всегда были кратными 512B. (Существует movement afoot, чтобы представить диски с размерами сектора 1kB и 4kB, но совместимость выглядит довольно болезненной.)
Вообще говоря, меньшие размеры блоков файловой системы приводят к уменьшению потерь в пространстве при хранении большого количества небольших файлов (если только передовые методы, такие как tail слияние), в то время как большие размеры блоков уменьшают внешнюю фрагментацию и имеют меньшие накладные расходы на больших дисках. Размер блока файловой системы обычно равен 2, ограничен ниже по размеру сектора блочного устройства и часто ограничивается размером страницы ОС.
page size зависит от ОС и платформы (и, в случае с Linux, может отличаться и по конфигурации). Подобно размеру блока, меньшие размеры блоков уменьшают внутреннюю фрагментацию, но требуют дополнительных административных издержек. Размеры страниц 4kB на 32-разрядных платформах являются общими.
Теперь, чтобы описать косвенные блоки. В проекте UFS,
- inode описывает файл.
- В дизайне UFS количество указателей на блоки данных, которые может храниться inode, очень ограничено (менее 16). Определенное число, как представляется, изменяется в производных реализациях.
- Для небольших файлов указатели могут непосредственно указывать на блоки данных, которые составляют файл.
- Для больших файлов должны быть косвенные указатели, которые указывают на блок, который содержит больше указателей на блоки. Это могут быть прямые указатели на блоки данных, принадлежащие файлу, или если файл очень велик, они могут быть еще более косвенными указателями.
Таким образом, объем хранения, необходимый для файла, может быть больше, чем только блоки, содержащие его данные, когда косвенные указатели используются.
Не все файловые системы используют этот метод для отслеживания блоков данных, принадлежащих файлу. FAT просто использует единую таблицу размещения файлов, которая фактически представляет собой гигантскую серию связанных списков, а многие современные файловые системы используют extents.
Это выглядит многообещающим, мне нужно время, чтобы вникать в него. –