4

Недавно я перешел на новое оборудование со всеми радостями и делами, чтобы узнать, как все изменилось и работает сейчас.

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

теперь интересно

поскольку это только произвольное число (особенно если рассматривать SSD с их низкоуровневыми контроллерами хранения), где мой раздел начинается или заканчивается,

почему это хороший выбор оставить эти пробелы на диске?

ура

2 ответа2

3

Это связано с выравниванием разделов. По сути, под капотом ваш жесткий диск разделен на сектора. Всякий раз, когда жесткий диск выполняет операцию, он воздействует на весь сектор сразу; то есть, когда он читает любые данные, хранящиеся в секторе, он должен читать весь сектор. Если данные разбиты на несколько секторов, они должны прочитать весь каждый из этих секторов. Файловая система, которая идет по разделу, также распределяет доступное пространство по блокам (размер которых обычно является настраиваемым параметром при создании файловой системы; для FS, которая будет состоять в основном из небольших файлов, вы будете использовать небольшой размер блока, для чего-то в первую очередь При большом размере вы будете использовать большой размер блока, цель которого состоит в том, чтобы минимизировать потерянное пространство - если файл меньше размера блока, остальная часть блока теряется, но чем меньше размер блока, тем больше таблицы, адресованные всем блоки должны быть).

Теперь, по сути, вам нужно, чтобы блоки вашей файловой системы и секторы диска были выровнены - один должен помещаться в другой без остатка, и, что самое важное, они должны начинаться в одном месте, чтобы не было частичного перекрытия. Допустим, у вас есть диск с размером сектора 4 КБ, а ваша файловая система состоит из блоков по 1 КБ. Если ваш раздел начинается с небольшого смещения от начала сектора - даже если это всего лишь несколько байтов - каждый четвертый блок в вашей файловой системе будет фактически разделен на два сектора, поэтому вы должны читать / записывать оба сектора на диске при каждом взаимодействии с этим блоком. Это накладные расходы на 25%, которые могут быстро привести к значительному снижению производительности. Если размер вашего блока распределения FS такой же, как размер сектора HD (4k не будет необоснованным для обоих), и у вас есть это смещение, каждая проблема чтения / записи будет иметь эту проблему, что будет иметь огромное влияние на производительность.

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

https://www.thomas-krenn.com/en/wiki/Partition_Alignment описывает проблему более подробно. Однако, как указывалось, потерянное пространство по сравнению с размером современного диска довольно тривиально.

1

почему это хороший выбор оставить эти пробелы на диске?

Это похоже на использование "охранных полос".
Иногда я вижу (намеренно?) невыделение последней или двух дорожек в конце раздела.
Теоретически они не должны быть необходимыми.

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

Для твердотельного накопителя необходимо выделить разделы, чтобы они занимали целое число стираемых блоков. Поскольку микросхемы флэш-памяти NAND имеют размер своих R/W-секторов и страниц и стирают блоки в степени 2, предполагается, что размер и выравнивание раздела SSD в единицах большой степени 2, таких как 1 мегабайт, должны охватывать целое число таких страниц / блоков.

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