Что значит «выравнивать» разделы?

Ответы:

15

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

В течение долгого времени жесткие диски использовали блоки по 512 байт. Поскольку это продолжалось долгое время, теперь практически невозможно изменить размер блока. Слишком много программного обеспечения должно быть исправлено.

На SSD истинный размер блока может быть 128 КБ. На RAID-массиве это может быть 64 КБ. На диске расширенного формата это будет 4 КБ.

Для обратной совместимости накопитель продолжает работать с блоками по 512 байт. Но по соображениям производительности ваша система действительно должна знать истинный размер блока.

Одной из самых простых настроек производительности является выравнивание раздела диска в соответствии с истинным размером блока, чтобы когда ваша ОС записывала 4 КБ, 64 КБ или 128 КБ, она записывала полный блок.

Если раздел не выровнен, то результатом будет запись 512 байт в первый блок и 4–512 байт во второй блок, заставляя диск / SSD / RAID выполнять два цикла чтения-изменения-записи вместо одной записи.

Зан Рысь
источник
Есть ли у вас какие-либо предложения на unix.stackexchange.com/questions/248939/…
ART
@ AnkurTank: Нет, вопрос там, кажется, хорошо освещен.
Зан Рысь
Спасибо за ваше внимание, единственное, что осталось, это как подтвердить выравнивание разделов. Потому что для меня parted до сих пор жалуется, что разделы не выровнены. Более того, я попытался использовать другой инструмент, например, gdisk, но я не могу сделать кросс-компиляцию для gdisk. Поэтому я подумал, если у вас есть какие-либо предложения о том, как это проверить, это поможет.
ART
3

Разделы - это последовательности блоков , и по давним соглашениям один блок составляет 512 байт.

Таким образом, раздел может начинаться с любого кратного 512 байтов внутри диска, «видимого» как очень длинная строка байтов.

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

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

Пока несоответствие размера сектора не имеет минусов.

Но операционная система также использует блоки (обычно называемые кластерами ) для эффективности и выровняет их по разделу. Таким образом, кластер из 4 секторов будет состоять из секторов 5, 6, 7 и 8.

Когда ОС запрашивает кластер файловой системы № 2, микропрограммное обеспечение запрашивает логические секторы 5, 6, 7 и 8. Если они все находятся в одном и том же блоке диска , то диск должен выполнить ОДНО чтение.

Но если раздел начинается с «неправильного» сектора, то первый кластер в файловой системе, например, в конечном итоге упростится в секторах 2, 3, 4 и 5. И тогда они могут быть наполовину в первом блоке диска (1 -2-3-4), половина во втором (5-6-7-8).

Теперь вам нужно одно дополнительное чтение . Для соотношений ОС к диску 1: 1 это то же самое, что удвоение чтения. Если соотношение ОС к диску составляет 2: 1, кластер состоит из двух аппаратных дисковых блоков, вам потребуется 2 + 1 = 3 чтения, штраф 50%:

OS   |--- cluster  12 ---|--- cluster  13 ---|--- cluster  14...
     |                   |                   |
HDD  --|----|----|----|-a--|--b-|-c--|-d--|-e--|----|---        BAD
     |                   |                   |
HDD  |----|----|----|----|-a--|--b-|-c--|-d--|----|----|---     GOOD

Выше кластер состоит из 4 аппаратных блоков (соотношение 4: 1) по 2 сектора в каждом. Выравнивание по «четным» секторам означает, что для чтения кластера эти 8 чтений сектора преобразуются в 4 чтения блока. Выравнивание по нечетным секторам означает, что те же 8 секторных чтений требуют 4 + 1 = 5 блочных чтений, снижение производительности составляет 25% (вы добавляете одно чтение каждые четыре).

Если у вас неправильно выровненный диск с соотношением 4: 1, выровняйте его на 20% быстрее (вы сохраняете одно чтение каждые 5).

Чтобы сделать раздел «выровненным», нужно либо переместить / установить его смещение от начала диска до соответствующего кратного 512b-сектора, либо (в зависимости от инструмента) вы можете вставить небольшой раздел в начале диска, с таким размером, что следующий раздел начинается точно на границе раздела диска. Во втором случае, хотя теоретически вам нужно не более N-1 секторов, т. Е. Очень мало килобайт, на практике вам, вероятно, потребуется потратить несколько сотен килобайт, возможно, целых мегабайтов, чтобы выжать из ваших возможностей наибольшую производительность. мультигигабайтный жесткий диск.

(Возможно, вы сможете восстановить это пространство и многое другое, правильно выбрав размер кластера ОС ).

LSerni
источник
1
Чтение не так уж плохо, да, вы должны прочитать немного дополнительных данных, но чтение трех смежных блоков не стоит значительно больше времени, чем чтение двух. Настоящая проблема заключается в записи: для записи раздела, который меньше базового размера блока, необходимо прочитать данные, дождаться, пока диск наберет полную оборотную скорость, а затем переписать их.
Plugwash
1
Также нет необходимости создавать дополнительные разделы, нет правила, что все пространство на диске должно быть разделено.
Plugwash
2

Диски почти всегда делятся на логические сектора по 512 байт, возможны другие размеры, но они редко используются из-за проблем совместимости. На старых жестких дисках это были отдельные сектора, которые можно было записать по отдельности.

До середины 2000-х годов перегородки традиционно были выровнены по «цилиндрическим» границам. По историческим причинам «цилиндр» обычно составлял 63 сектора. Сектор 0 содержит загрузочный сектор и таблицу разделов. Более поздние сектора в цилиндре 0 иногда ограничены дополнительной информацией для загрузчика. Первый раздел обычно начинался в начале цилиндра 1.

Большинство файловых систем группируют сектора в более крупные блоки (иногда называемые «кластерами»). Обычно они размером 4 КБ.

В какой-то момент производители накопителей полагали, что было бы более эффективно, если бы они также использовали физические сектора 4K, но из соображений совместимости они сохранили размер логического сектора на уровне 512 байт. Если хост читает или записывает весь физический сектор одновременно, все происходит быстро. Если чтение части этого все еще довольно быстро, так как диск может просто отбрасывать ненужные данные. Однако, если хост записывает только часть физического сектора, накопитель должен прочитать физический сектор, объединить данные, считанные с данными с хоста, и затем переписать модифицированный сектор. Это означает ожидание поворота привода в положение дважды, а не один раз.

Это хорошо работает, если кластеры 4K файловой системы выровнены с физическими секторами диска 4K. К сожалению, традиционный способ разбиения дисков означает, что первый раздел в основном гарантированно не выровнен, а последующие разделы имеют только 1 из 8 шансов на выравнивание. Поэтому поставщикам накопителей расширенного формата пришлось спешить с инструментами, чтобы помочь людям перестроить свои разделы.

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

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

plugwash
источник
0

Не знаю, если это полезно, но я понимаю, что выравнивание разделов происходит, когда вы выравниваете данный раздел с базовыми модулями RAID.

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

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

Я могу быть далеко, и это не может иметь ничего общего с RAID;)

LuxuryMode
источник