Возможно ли, чтобы размер логического блока файловой системы был меньше размера физического сектора?

Допустим, у нас есть блочное устройство (например, жесткий диск) с размером сектора 4096 байт, и эмуляция 512 байт недоступна (жесткий диск распознает только блоки размером 4096 байт).

Можно ли отформатировать устройство с файловой системой, которая имеет логический блок 512 байт? Как fs будет использовать дисковые блоки? Я имею в виду, что он просто будет использовать 512 байт из 4096 байт, а остальное будет потрачено впустую (однозначное отображение между секторами диска и блоками fs)? Я предполагаю, что если файловая система знает об этой проблеме, он может сам выполнить какую-то эмуляцию 512 байт (чтение сектора диска, изменение части 512 байт в ОЗУ, а затем запись сектора обратно на диск), хотя при этом будут некоторые издержки или избыточность работать на каждую запись. Я не совсем уверен, имеет ли это смысл! Поправь меня пожалуйста.

5 ответов

Такая конфигурация возможна, но она не очень распространена. Все основные файловые системы (NTFS, FAT32, ext4, btrfs ... и т. Д.) Используют блоки по 4 КБ, которые соответствуют наиболее часто используемой конфигурации размера страницы памяти (4096 байт). Диски до этого десятилетия использовали 512 физических секторов, но все современные жесткие диски (и даже твердотельные накопители) используют физические сектора 4 КБ (из-за проблем с воздушной плотностью), а потому, что существует большой унаследованный программный стек, который имеет предположение 512 байт на блочных устройствах (Windows Vista Windows XP, Linux Kernel до 2.6 и многие другие пользовательские утилиты и встроенные приложения) производители жестких дисков реализуют так называемую эмуляцию 512 байт, которая предоставляет программному обеспечению размер операционной системы 512 байт, но использует базовый размер сектора 4096 байт.

XFS может быть настроен на использование блоков по 512 байт, но если вы хотите (я говорю сам с собой!!?) Использовать эту конфигурацию на дисках 4096 b, вы должны убедиться, что ваши разделы хорошо выровнены, в противном случае вы будете страдать от производительности ухудшение: если вы записываете блок 512 b, диск сначала извлекает весь сектор 4096 b во внутреннюю DRAM, модифицирует часть из 512 b, а затем записывает его обратно на диск (хотя некоторые методы кэширования могут уменьшить влияние этой проблемы),

Итак, окончательный ответ: да, это возможно, но это может привести к снижению производительности, и обычно это не обычная конфигурация, наблюдаемая в IRL.

Это просто неправда.

Если у вас есть размер блока: настроенный 512 байт, собственный 4096 байт.

Это не трата места, а наоборот. Если бы мы не использовали только 512 из 4096, это было бы пустой тратой. Экономия места за счет «незначительного снижения производительности».

У меня это есть на RAID 1 ZFS, как и у друга. Он переформатировал его так, чтобы размер блока 4096 соответствовал Native. Он не заметил никакого ВАУ, стало намного быстрее, но он потерял около 90 ГБ места, потому что теперь файлы меньшего размера занимают все 4096, тогда как раньше небольшой файл занимал только 512.

В пуле Raid 1 и локальном соединении 1 ГБ я максимально использую гигабитную скорость передачи и не замечаю какого-либо ухудшения производительности (хотя оно и есть).

В итоге удар по пространству гораздо заметнее, чем любой удар по скорости.

я держу свой

размер блока: настроенный 512 байт, собственный 4096 байт

Короткий ответ: Да, это возможно.

Более развернутый ответ: Это сложно! На большинстве классических магнитных дисков: это возможно, но редко и снижает производительность.

На магнитных дисках, использующих шм, и на флэшках - совершенно нормально. Потому что там «Размер блока» — это гораздо более сложная вещь! Размер логического блока не всегда соответствует минимальному размеру блока записи (страницы), а размер блока удаления (блока) в большинстве случаев также намного больше!

С точки зрения файловой системы Windows я бы сказал, что нет.

Кластер/размер блока определяется как количество секторов на кластер в загрузочной записи тома. Минимальное значение AFAIK равно 1 (или нулю в exFAT, но это означает 1 сектор/кластер).

Можно утверждать, что сам диск может иметь размер сектора 512 КБ, хотя внутри он работает с секторами размером 4096 байт.

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

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

Как утверждали другие, в этом было бы очень мало смысла, поскольку физический сектор — это наименьшая адресуемая единица, поэтому для чтения эмулируемого / поддельного 512-байтового сектора с диска с физическим сектором 4096 в любом случае будет прочитан весь сектор 4096.

Старый вопрос, но ОП, похоже, неправильно использовал этот термин.logical blockдля обозначения блока файловой системы (так называемого кластера), что заставляет людей, пытающихся ответить, думать о реальном «логическом блоке» при написании своих ответов.

Хуже всего то, что то, что ОП называет «физическим сектором», по сути, является фактическим «логическим блоком»:

Допустим, у нас есть блочное устройство (например, жесткий диск) с размером сектора 4096 байт, и эмуляция размером 512 байт недоступна (жесткий диск понимает только блоки размером 4096 байт).

Я не думаю, что блок файловой системы может быть меньшим, чем логический блок, по крайней мере, если разработчик драйвера файловой системы хочет сохранить его в здравом уме. Это будет означать, что каждый логический блок будет либо использоваться несколькими блоками файловой системы (и смещения байтов необходимо будет либо записывать, либо вычислять все время), либо фактически будет использоваться только часть каждого логического блока (с конечной емкостью "заброшенный").

Я признаю, что я не особо копал глубоко, но, по моему мнению, никто из здравомыслящих людей не станет проектировать или реализовывать что-то подобное. (Не похоже, что нам нужно удовлетворять какие-то исторические потребности, как в случае с AF 512e.)

Другие вопросы по тегам