LINUX.ORG.RU

Как правильно выровнять фс с учётом erase block size?

 , , ,


0

3

https://wiki.gentoo.org/wiki/SSD#Configuring_for_erase_block_size
stride= и stripe-width= имеет значение только для RAID, или не только?
Как правильно задать stride= и stripe-width=?

Both options should be set as erase block size / block size.
Crucial M500 240GB; stride and stripe-width are 2048
SanDisk z400s; stride an stripe-width are 4096

Нужно точно знать erase block size (flashbench), или можно просто задать большое значение (4096)? Или всё же лучше точное значение?

P.S.: Бывает такое, что разделы нужно выравнивать по 4Mb, или всегда 1Mb?

★★★★★

stride= и stripe-width= имеет значение только для RAID

Да.

Бывает такое, что разделы нужно выравнивать по 4Mb, или всегда 1Mb?

Не слышал о таком. Делай как gdisk/fdisk предлагают по умолчанию. Все они, включая lvm2, mdadm и cryptsetup, смотрят на размеры блоков в sysfs (ну, должны). 1 МиБ в любом случае подойдёт.

anonymous
()

Для некоторых arm платформ требуется начинать с 20MB. По причине замаорочек с загрузчиком.

Например, для Rockchip это 16MB. Притом, нашёл упоминание только в сугубо китайском источнике, что «Boot Flow 1» (для которого всё и делалось) работает только на нескольких платформах (3-я колонка):

SoC | Distro | Boot RKIMG | Boot SPL/TPL | Trust(SPL) | AVB
RV1108  Y N Y N N
RK3036  Y N N N N
RK3126C Y Y N N N
RK3128  Y Y N N N
RK3229  Y N Y Y Y
RK3288  Y N Y N N
RK3308  - - - - -
RK3326/
  PX30  Y Y N N Y
RK3328  Y N Y Y N
RK3368/
  PX5   Y N Y Y N
RK3399  Y N Y Y N

И там есть какие-то завязки на то, что гипервизор типа Xen будет работать только при инициализации RK bootloader-ом с trust.img. Печалька.

Если не хочешь промахнуться с прицелом на будущее, нарезай с 32MB.

anonymous
()

Размер стираемого блока редко сообщается производителями SSD и не подлежит программной диагностике. Но для всех SSD подходит выравнивание по границе 1МБ (по умолчанию делается в Windows), так как оно кратно любому возможному размеру стираемого блока. Такое же выравнивание можно задавать и вручную .

Partisan ★★★★
()

SSD не показывает компу физическое расположение секторов так что это всё на него никак не повлияет. Если упрощённо, то вот ты купил чистый ссд, записал на него рандомные 10 секторов - и физически это будет выглядеть одинаково независимо от того, где именно по мнению компа эти сектора расположены. Разница будет только в том, что ссд запомнит в своей таблице публичные их индексы чтоб правильно сообщать компу потом.

firkax ★★★★★
()
Ответ на: комментарий от firkax

Если совсем упрощённо, то на SSD нет никаких секторов. Есть ячейки памяти. Некоторое количество ячеек образуют страницу (размер страницы зависит от модели SSD). Некоторое количество страниц образуют стираемый блок. Это всё, что есть в SSD. Никаких секторов.

Partisan ★★★★
()
Ответ на: комментарий от firkax

Выравнивание никак на работу ссд не влияет.

Неправда. Вы абсолютно точно хотите быть выровнены по SSD page size (usually 4K). Erase block size действительно не так важен, и, кстати, вовсе не обязан быть делителем 1MB (как и степенью двойки в принципе) - если верить поддержке Samsung’а у моего (например) erase block 6MB (по молодости заморочился и таки их замучал).

bugfixer ★★★★★
()
Ответ на: комментарий от firkax

Я называют страницы страницами,потому что они страницы (page),а не сектора (sector). Это не я их так назвал, а общепринятое название , которое вы увидели бы,в статьях об организации памяти в SSD, если бы вы их читали. В общем, я кратко объяснил, что есть, автору темы. А вразумлять самоуверенных невежд мне лень.

Partisan ★★★★
()
Ответ на: комментарий от firkax

4К это размер сектора

Я, кстати, в чём то согласен с вашим оппонентом: лучше всё таки использовать общепринятую терминологию. Sector size это нечто из мира HDD, в мире SSD оперируют pages and erase blocks.

bugfixer ★★★★★
()
Ответ на: комментарий от bugfixer

Сектор это то как оно называется в софте, который не хочет выяснять на каком физическом принципе работает накопитель, ему надо только знать размер блока, который можно эффективно отправить на запись. В частности smartctl так пишет (и кстати он пишет 512 physical на мои ссд - может врёт).

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от firkax

Сектор это то как оно называется в софте

А дальше начинается «logical» vs «psysical» итд.

и кстати он пишет 512 physical на мои ссд - может врёт

И вот здесь мы подходим к самому интересному… С более-менее очевидными выводами «доверяй, но проверяй» и «понимай что делаешь» :)

bugfixer ★★★★★
()
Последнее исправление: bugfixer (всего исправлений: 1)
Ответ на: комментарий от bugfixer

А дальше начинается «logical» vs «psysical» итд.

Оно и на HDD такое, с тех пор как 4К сектора эмулируются как 512.

Ссд, если у него 4096, тоже эмулирует его как 8х512 для совместимости.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от firkax

Ссд, если у него 4096, тоже эмулирует его как 8х512 для совместимости.

Безусловно, а как ещё то? Просто стоимость ошибки с выравниванием довольно высока (учитывая цены на SSD), как в терминах IOPS, так и endurance.

bugfixer ★★★★★
()

P.S.: Бывает такое, что разделы нужно выравнивать по 4Mb, или всегда 1Mb?

Выравнивать разделы для увеличения скорости необходимо по 1M, 2M, 4M в зависимости от конкретного диска.

Выбирать блок FS и саму FS надо в зависимости от диска и данных. Для portage с кучей мелких файлов надо брать диск и FS с блоком 512. Для больших файлов видео лучше и боки больше, по 4096.

anonymous
()
Ответ на: комментарий от anonymous

Выравнивать разделы для увеличения скорости необходимо по 1M, 2M, 4M в зависимости от конкретного диска.

т.е. всё-таки на всякий случай лучше выравнивать по 4Mb. это и хотелось узнать.

Выбирать блок FS и саму FS надо в зависимости от диска и данных. Для portage с кучей мелких файлов надо брать диск и FS с блоком 512. Для больших файлов видео лучше и боки больше, по 4096.

ext4 под корень с блоком кагого размера лучше?

teod0r ★★★★★
() автор топика
Ответ на: комментарий от teod0r

т.е. всё-таки на всякий случай лучше выравнивать по 4Mb

Непонятно, откуда это взято, но Windows выравнивает по 1 МиБ, а все потребительские диски всегда ориентируются на это ОС. Так что заморачиваться не стоит.

ext4 под корень с блоком кагого размера лучше?

По умолчанию. Как и для всего остального. «Оптимизации» с меньшим размером ничего особо не дадут, зато могут снизить производительность на SSD, у которых физические размеры ячеек и так больше 4k.

Вообще, без веских причин не надо менять умолчания mkfs, по крайней мере, для extfs, XFS и Btrfs.

anonymous
()
Ответ на: комментарий от Partisan

и не подлежит программной диагностике.

а как же https://github.com/bradfa/flashbench ? если б оно не подлежало диагностике, то это означало бы что оно не оказывает влияния на производительность.

Но для всех SSD подходит выравнивание по границе 1МБ (по умолчанию делается в Windows), так как оно кратно любому возможному размеру стираемого блока.

но вроде как бывают и по 6 (Как правильно выровнять фс с учётом erase block size? (комментарий)) и по 8Mb (Как правильно выровнять фс с учётом erase block size? (комментарий)) стираемые юлоки.

teod0r ★★★★★
() автор топика
Ответ на: комментарий от Partisan

Но для всех SSD подходит выравнивание по границе 1МБ (по умолчанию делается в Windows), так как оно кратно любому возможному размеру стираемого блока.

А в интернетах пишут: «The size of an erase block is highly implementation specific, but can be thought of as somewhere between 1MiB and 8MiB».

И даже: «NAND flash erase blocks passed 1MB a long time ago. For mainstream TLC NAND, 16 to 24 MB is currently typical, and QLC NAND has gone as high as 48 and 96 MB.»

Я в принципе тоже думаю, что не нужно это брать в расчёт для чего-либо.

vbr ★★★★
()
Последнее исправление: vbr (всего исправлений: 4)
Ответ на: комментарий от anonymous

По умолчанию. Как и для всего остального.

Единственное что стОит подкрутить - объём зарезервированный под root: дефолтные для extX 5% в нынешних реалиях - total waste. Но это можно и пост-фактум сделать.

bugfixer ★★★★★
()