3

Терминология BLOCK смутила меня, так как я сейчас занимаюсь исследованиями дисковых технологий.


Мое бывшее понимание

Я понимаю, что BLOCK обычно означает пакет данных, рассматриваемый как единое целое, как описано на странице вики: Блок. То, что я считал логическим блоком, или блоком файловой системы, относится к минимальному блоку ввода-вывода, который рассматривается как единое целое и используется конкретной файловой системой, чтобы, как сущность любой пакетной операции, уменьшить накладные расходы, возникающие при чтении или записи сектор один раз. А физический блок - это точно синоним сектора диска. Эта статья от Oracle подтвердила мое понимание.

Более того, я верю, что слово CLUSTER - это просто блок файловой системы в стиле Microsoft, как предлагает этот поток в Reddit.


Что меня смутило

Страница вики: адресация логических блоков, с которой я недавно столкнулся, вызвала некоторую путаницу.

В качестве замены адресации CHS, кажется, что LBA должен выполнить ту же задачу, что и CHS: дать адреса секторам, как предложено в этой статье. Но я чувствую нежелание вики-страницы LBA использовать слово "сектор", а также его заголовок «Адресация логических блоков ».

Итак, является ли LBA просто модным словом, которое на самом деле касается адресации секторов диска?

Или LBA-совместимые диски действительно понимают концепцию файловой системы / логического блока и способны выполнять операции ввода-вывода на уровне блоков, таким образом скрывая существование "сектора" от операционной системы?


Также, пожалуйста, исправьте меня, если какое-либо условие моего вопроса неправильно понято. Благодарю.

2 ответа2

3

Я понимаю, что BLOCK обычно означает пакет данных, рассматриваемый как единое целое I/O

Использование термина "блок" широко распространено в вычислительной технике и не ограничивается вводом / выводом.

То, что я считал логическим блоком, или блоком файловой системы, относится к минимальному блоку ввода-вывода, который рассматривается как единое целое и используется конкретной файловой системой, чтобы, как сущность любой пакетной операции, уменьшить накладные расходы, возникающие при чтении или записи сектор один раз.

ИМО было бы небрежно делать широкие определения, которые охватывают все файловые системы. Помните, что размер блоков ввода-вывода для файловых данных может отличаться от метаданных файловой системы. EG записи в файл могут быть объединены в блоки размером 4 КБ (или больше), но журнал файловой системы, возможно, придется записывать чаще (с меньшим блоком), чтобы обеспечить сохранение данных.

"Пакетная операция" - это старый жаргон, и вы используете этот термин бессмысленным образом.

А физический блок - это точно синоним сектора диска.

Только в контексте дисководов.
Магнитная лента требует, чтобы ввод / вывод выполнялся в физических блоках, но нет понятия секторов с лентой.

Более того, я верю, что слово CLUSTER - это просто блок файловой системы в стиле Microsoft, как предлагает этот поток в Reddit.

"Кластер" - это единица выделения в файловых системах MS.
Вопрос о том, всегда ли выполняется ввод-вывод в одном и том же размере блока, сомнителен. Например, если размер кластера составляет 64 КБ, а весь файл - всего 128 байтов, собирается ли файловая система записывать 128 секторов или оптимизировать ввод-вывод только для одного сектора?

Итак, является ли LBA просто модным словом, которое на самом деле касается адресации секторов диска?

По существу, да (для устаревших 512-байтовых секторов).

Интегрированный контроллер современного дисковода выполняет преобразование LBA в физический сектор. Фактический цилиндр, головка и сектор, которые отображаются на конкретный LBA, известны только накопителю, так что дисководом может быть реализован любой тип записи и перемещения зонных битов для поврежденных секторов.

С жесткими дисками расширенного формата 512e, которые используют 4096-байтовые сектора и 512-байтовый размер передачи, термин LBA является действительно точным: адрес не физического сектора, а скорее логического блока, состоящего из одной восьмой сектора.

Или LBA-совместимые диски действительно понимают концепцию файловой системы / логического блока,

Я не уверен, что вы подразумеваете под "файловой системой / логическим блоком", но ответ, вероятно, нет.
Это просто устройство хранения без концепции организации необработанных данных, которые оно хранит.

См. Какие API-интерфейсы предоставляет жесткий диск SATA?

и способен сделать блок ввода-вывода на уровне блоков, таким образом скрыть существование "сектора" от операционной системы?

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

Дисковые контроллеры FWIW (даже старые, которые использовали адресацию CHS) могут выполнять операции чтения или записи в нескольких секторах, например, выполнять чтение из N последовательных секторов.

1

Вы не ошиблись с вашими предположениями, но вы должны принять во внимание контекст. В зависимости от контекста значение слова Блок меняется.

С LBA вы избавляетесь от громоздкой схемы адресации CHS. С CHS вы должны были сказать своему диску, что хотите, чтобы он использовал свою вторую головку, чтобы прочитать пятую дорожку и 20-й сектор на ней. С LBA вас не волнуют эти детали. Вы просто говорите, чтобы получить первый логический блок. Какую логику он использует для определения того, что представляет собой первый логический блок, зависит от накопителя, если это согласованная схема. Запрашивать первый логический блок дважды и получать разные данные было бы довольно бесполезно (скорее всего). Этот подход также предлагает некоторую независимость от используемой технологии привода. Например, возьмите SSD, у него нет головок, дорожек и секторов. С LBA вы все еще можете сказать это, чтобы получить первый логический блок. Этот механизм довольно низкого уровня, вы на самом деле не понимаете, что такое файловая система или что такое файл. Фактический размер этих блоков зависит от аппаратного обеспечения. 512 байт был довольно стандартным в качестве размера сектора в течение долгого времени, но в настоящее время (по разным причинам) 4 KiB не редкость.

В качестве интересного примечания обратите внимание на постоянную угловую скорость (CAV) и постоянную линейную скорость (CLV) и ее влияние на физические вращающиеся диски. Последнее относится не к жестким дискам, а к другим типам физических вращающихся дисков. Может быть интересно узнать о разных подходах. А также страницу CHS или, более конкретно, изображение CHS. Вы можете заметить, что на изображении физическое измерение сектора будет увеличиваться при переходе от внутреннего к внешнему треку. Как таковая плотность информации будет уменьшаться. Обратите внимание, что я написал бы, так как современные технологии начали выводить больше секторов на внешние дорожки. Хотя он основан на том же принципе (ZCAV). Конечно, при использовании еще более современных подходов, таких как флэш-накопители, проблемы на этом уровне будут другими (распределение износа и т.д.).

Кластер обычно представляет собой объединение логических блоков для формирования блока на уровне файловой системы. Таким образом, у вас может быть 512 байт логических блоков на вашем физическом оборудовании, но ваша файловая система работает с использованием блоков по 4 КиБ / кластер. Таким образом, для каждого блока, которым управляет ваша файловая система, вы собираетесь использовать 8 блоков на своем оборудовании.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .