
Недавно я перешел на новое оборудование, и мне пришлось столкнуться со всеми радостями и трудностями, связанными с изучением того, как все изменилось и работает сейчас.
когда я наткнулся назадача пере/разбиения с помощью gpartedэтоавтоматически выбирается установка пределов раздела на целые значения МБ, поэтому между перегородками иногда остаются небольшие зазоры.
теперь я задаюсь вопросом:
поскольку это всего лишь произвольное число (особенно если рассматривать SSD с их низкоуровневыми контроллерами хранения данных внутри), где начинается или заканчивается мой раздел,
почему кажется, что оставить эти пробелы на диске — это хороший выбор?
ваше здоровье
решение1
Это связано с выравниванием разделов. По сути, под капотом ваш жесткий диск разделен на сектора. Всякий раз, когда жесткий диск выполняет операцию, он действует на весь сектор сразу; то есть, когда он считывает любые данные, хранящиеся в секторе, он должен считывать весь сектор. Если данные разделены на несколько секторов, он должен считывать весь сектор целиком. Файловая система, которая размещается на разделе, также распределяет доступное пространство по блокам (размер которых обычно является настраиваемым параметром при создании файловой системы; для файловой системы, которая будет состоять в основном из небольших файлов, вы бы использовали небольшой размер блока, для чего-то в основном большого вы бы использовали большой размер блока, цель состоит в том, чтобы минимизировать неиспользуемое пространство — если файл меньше размера блока, остальная часть блока тратится впустую, но чем меньше размер вашего блока, тем больше должны быть таблицы, адресующие все блоки).
Теперь, по сути, вам нужно, чтобы ваши блоки файловой системы и сектора вашего диска были выровнены — один должен входить в другой без остатка, и, что особенно важно, они должны начинаться в одном и том же месте, чтобы не было дробного перекрытия. Допустим, у вас есть диск с размером сектора 4 КБ, а ваша файловая система состоит из блоков по 1 КБ. Если ваш раздел начинается с небольшого смещения от начала сектора — даже если это всего несколько байт — каждый четвертый блок в вашей файловой системе фактически будет разделен на два сектора, поэтому вам придется читать/писать оба сектора на диске при каждом взаимодействии с этим блоком. Это накладные расходы в 25%, которые могут быстро привести к значительному снижению производительности. Если размер вашего блока распределения FS совпадает с размером вашего сектора HD (4 КБ было бы вполне разумным для обоих) и у вас есть это смещение, каждая отдельная операция чтения/записи будет иметь эту проблему, что окажет огромное влияние на производительность.
Чтобы избежать этого, мы консервативно выравниваем начало разделов с границами мегабайта (поскольку мегабайт все еще должен быть хорошим кратным размеру блока/сектора даже через несколько лет с любыми массивными дисками, которые у нас будут к тому времени). Это может привести к появлению крошечных "пробелов" на диске, если размеры разделов также не будут точно совпадать и заканчиваться точно на границе мегабайта. В начале диска всегда остается пробел, поскольку первые несколько секторов на диске зарезервированы для других целей.
https://www.thomas-krenn.com/en/wiki/Partition_Alignmentописывает проблему более подробно. Однако, как было отмечено, потерянное пространство по сравнению с размером современного диска довольно незначительно.
решение2
почему кажется правильным оставлять эти пробелы на диске?
Кажется, это использование "охранных полос".
Иногда я видел (намеренное?) невыделение последнего трека или двух в конце раздела.
Теоретически они не должны быть необходимы.
Для жесткого диска разделы раньше выделялись так, чтобы начинаться с границы цилиндра. Такое выделение минимизировало бы количество поисков в разделе и, таким образом, улучшило бы общее время доступа.
Но в настоящее время с жесткими дисками, использующими запись битов зоны, программа разбиения на разделы на самом деле не знает фактической геометрии диска и где находятся физические цилиндры, поэтому любое «выравнивание цилиндров» по сути бессмысленно.
Для твердотельного накопителя разделы должны быть выделены для занятия целого числа стираемых блоков. Поскольку чипы флэш-памяти NAND определяют размер секторов чтения/записи и страниц, а также стираемых блоков в степенях 2, предполагается, что определение размера и выравнивание раздела SSD в единицах большой степени 2, например 1 мегабайт, охватывает целое число таких страниц/блоков.