LINUX.ORG.RU
ФорумAdmin

TRIM для raid5

 , ,


1

3

Доброго времени суток! Есть софт-raid5 на SSD дисках. Заметил что скорость чтения деградировала до 30Мб в сек т.е. хуже чем обычный HDD :( посмотрел скорости по hdparm для каждого диска в рейде - полный пипец. Оказывается, xfs которую я выбрал для этого рейда не поддерживает TRIM, да косяк, справлюсь, но пока не могу. Все диски в рейде поддерживают trim - проверено.

Попробовал fstrim / отрабатывает, но не для рейда и его дисков. Т.е. скорость можно восстановить, но путем добаления диска в spare потом его применения и вывода другого диска из рейда. тогда диск восстанавливает свои скоростные характеристики. снова завожу его в рейд и ну и так далее.

Т.е. добавил новый диск в рейд и заменил им самый деградировавший. Скорость возросла, а деградировавший после вывода из рейда сразу показал нормальные скорости 500Мб/с, завожу его обратно и повторяю процедуру со следующим диском в рейде.

Вообщем треш какойто :(( Копал тырнет - но нифига не могу найти, как сделать TRIM для всех дисков в рейде??

В LVM есть описание, в рейде - нифига :((

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

Перемещено hobbit из general

Ответ на: комментарий от vtVitus

https://www.kernel.org/doc/html/latest/admin-guide/device->>mapper/dm-raid.html… vtVitus ★★★★★ (18.08.24 17:16:01 MSK)

я верю что Вы гуру но можно не ссылками плеваться? можете сказать по теме? как сделать трим для дисков в рейде5 ?

ssnakess
() автор топика

RAID5 и trim. По идее не должно работать, так как raid5 - это совпадение контрольных сумм для каждого блока, в том числе «как бы незанятых» блоков. Что должен вернуть диск для «освобожденного» блока - нули, случайный мусор? Как посчитать контрольную сумму для мусора?

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

RAID5 и trim. По идее не должно работать, так как raid5 - это совпадение контрольных сумм для каждого блока, в том числе «как бы незанятых» блоков. Что должен вернуть диск для «освобожденного» блока - нули, случайный мусор? Как посчитать контрольную сумму для мусора?

хорошо, перефразирую, как сделать TRIM, для дисков которые используются в Raid массиве?

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

Вам нужно пройти по ссылке, прочитать что там написано, осознать почему для raid456 выключен discard по умолчанию. И дальше там есть параметр для ядра, который его включает.

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

Если нет специальных хаков, то никак.

Если есть, какой-то стандарт для серверных дисков для RAID массивов, что они для «свободных» блоков возвращают нули, то есть надежда.

А так, для нормальных дисков трим не нужен.

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

Вам нужно пройти по ссылке, прочитать что там написано, осознать почему для raid456 выключен discard по умолчанию. И дальше там есть параметр для ядра, который его включает.

Отлично, я не сомневался в Ваших знаниях. А для «идиотов», написать и показать - что и где поменять - слабо?

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

А так, для нормальных дисков трим не нужен.

да, один из дисков рейда, так не деградировал, но вот остальные … коль они не в курсе, то им надо таки «сказать это». Вопрос, как? стандартные команды отрабатывают на обычных дисках, но в рейде - не хотят. Может выводить каждый из рейда и давать им эту команду, потом вводить обратно и делать ребилд, но это долго и не эффективно. Неужели в линухе (ни в жисть не поверю), нет возможности сделать trim для дисков в рейде?

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

Судя по требованиям ТС это больше подходит для Job

расшифруй, я но анедстанд энглиш Варваризмы

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

Меняй остальные диски на нормальные, которым трим не нужен.

Неужели в линухе (ни в жисть не поверю), нет возможности сделать trim для дисков в рейде?

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

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

Это просто. Вы хотите чтобы вам разжевали и в рот положили. Такое могут сделать, если человека за деньги нанять. А собственно человека можно нанять в Job. Советую запостить например в раздел Job, быстрее получится решить эту проблему.

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

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

где в инфе по ссылке содержится ответ на мой вопрос? читать всю инфу там…. спасибо, я уже сегодня что только не читал, полноценной инфы = 0 прочитать еще одну «простныку» с maybe…. тот еще ответ на вопрос. По факту на дворе 2024 год, ssd уже не экзотика, и даавно не экзотика. Trim, для файловых систем решен в ядре! но факт остается фактом - в данном случае trim не работает. Я попросил помощи, у знающих людей, что именно и где надо натроить в линухе, чтобы отрабатывал trim для дисков в raid и что я получил? - еще одну простынку с «описанием как должно быть» и ни одного реального ответа…… Вопрос, если не знаете как помочь, то зачем писать ответ?? просто потешить свое самолюбие? или нечем заняться??

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

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

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

Еще один совет, не касающися темы. Для дисков, которые деградируют без трима, можно оставить свободным (не использовать) около 15-20% объема.

к сожалению, выделено уже все, а скинуть данные с рейда, некуда, чтобы его переделать.

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

Что показывает lsblk -D

AME          DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
sda                  0      512B       2G         0
├─sda1               0      512B       2G         0
├─sda2               0      512B       2G         0
└─sda3               0      512B       2G         0
sdb                  0      512B       2G         0
└─sdb1               0      512B       2G         0
sdc                  0      512B       2G         0
└─sdc1               0      512B       2G         0
  └─md127            0      512K       2G         0
    └─md127p1        0      512K       2G         0
sdd                  0      512B       2G         0
└─sdd1               0      512B       2G         0
  └─md127            0      512K       2G         0
    └─md127p1        0      512K       2G         0
sde                  0      512B       2G         0
└─sde1               0      512B       2G         0
  └─md127            0      512K       2G         0
    └─md127p1        0      512K       2G         0
sdf                  0      512B       2G         0
└─sdf1               0      512B       2G         0
  └─md127            0      512K       2G         0
    └─md127p1        0      512K       2G         0

на сколько я понимаю его вывод, то показывает что все ОК, т.е. trim работает. но могу ошибаться в интерпритации его вывода

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

На блочном уровне всё точно ОК. Можешь поробовать fstrim -v /твоя/точка/монтирования

fstrim: /srv/raid: the discard operation is not supported

но в тоже время

    Number   Major   Minor   RaidDevice State
       7       8       33        0      active sync   /dev/sdc1
       6       8       65        1      active sync   /dev/sde1
       4       8       81        2      active sync   /dev/sdf1
       5       8       49        3      active sync   /dev/sdd1
ddd:~ # hdparm -I /dev/sdd | grep TRIM
	   *	Data Set Management TRIM supported (limit 8 blocks)
ddd:~ # hdparm -I /dev/sdf | grep TRIM
	   *	Data Set Management TRIM supported (limit 8 blocks)
ddd:~ # hdparm -I /dev/sde | grep TRIM
	   *	Data Set Management TRIM supported (limit 8 blocks)
ddd:~ # hdparm -I /dev/sdc | grep TRIM
	   *	Data Set Management TRIM supported (limit 8 blocks)

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

На блочном уровне всё точно ОК. Можешь поробовать fstrim -v /твоя/точка/монтирования

НО, для обычного подключения SSD - все ОК

strim -v /
/: 139.9 MiB (146690048 bytes) trimmed

т.е. для диска который просто стоит в системе, т.е. который я вывел из рейда - явно отработал trim

hdparm -t /dev/sdb

/dev/sdb:
 Timing buffered disk reads: 1198 MB in  3.00 seconds = 399.00 MB/sec

скорость сразу выросла со 120МB/c до 400Мб/с :(

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

На блочном уровне всё точно ОК. Можешь поробовать fstrim -v /твоя/точка/монтирования

т.е. после вывода из рейда и blkdiscard -f /dev/sdb скорость выросла в разы для диска.

в рейде, даже «свежие диски» сразу падают до 300Мб/с хотя перед вводом их в рейд, показывали 500 т.е. после синхронизации записалось куча данных, и скорость упала, подозреваю что при синхронизации были операции удаления, но чтобы так … на 200Мб/с. Ладно, могу представить что SSD деградируют после 0,5 года использования. Но Новый диск, перед тем как его воткнуть в рейд - показывал 500, после того как он синхронизировался, сразу 300 …. это не нормально. явно не отработал trim я уже молчу о диске котрый в рейде показывал скорость 20-30Мб в сек, после его вывода из рейда показал - 500!!!! т.е. сработал TRIM и его скорость восстановилась….

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

У тебя XFS - это md127p1? Какие опции монтирования и версия ядра?

на md127p1 XFS

uname -a
Linux ddd 5.3.18-150300.59.106-default #1 SMP Mon Dec 12 13:16:24 UTC 2022 (774239c) x86_64 x86_64 x86_64 GNU/Linux
/dev/md127p1 on /srv/raid type xfs (rw,relatime,attr2,inode64,logbufs=8,logbsize=32k,sunit=256,swidth=768,noquota)

в fstab стоит default - т.е. берет опции из раздела

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

Тебе надо почитать про raid5. При вводе диска (блочного устройства) в raid5-массив, диск полностью записывается данными. Весь диск занят, trim бесмысленен (без специальных хаков одновременно со стороны контроллера/модуля-ядра и со стороны диска).

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

Тебе надо почитать про raid5. При вводе диска (блочного устройства) в raid5-массив, диск полностью записывается данными. Весь диск занят, trim бесмысленен (без специальных хаков одновременно со стороны контроллера/модуля-ядра и со стороны диска).

Спасибо о анонимус-Гуру за бессмысленный ответ. Я так рад, что ты все-таки выучил как работает Raid и особенно его 5я версия :)) Уж и не знаю в каком «толмуде» ты прочитал что диск ПОЛНОСТЬЮ ЗАПИСЫВАЕТСЯ данными, наверное там же и написано, как они от туда и «вычитываются» и как хранятся :))) И спасибо что просвещаешь других, передавая свет своих скудных знаний в массы!!

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

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

Продолжай дальше деградировать raid-массив, чтобы триммит диски по отдельности, чтобы они сразу после длительной инициализации начали также тормозить.

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

Читаю за тебя первоисточник

https://www.kernel.org/doc/html/latest/admin-guide/device-mapper/dm-raid.html#discard-support

Since RAID 4/5/6 uses blocks from a number of devices to calculate parity blocks and (for performance reasons) relies on ‘discard_zeroes_data’ being reliable, it is important that the devices be consistent. Blocks may be discarded in the middle of a RAID 4/5/6 stripe and if subsequent read results are not consistent, the parity blocks may be calculated differently at any time; making the parity blocks useless for redundancy. It is important to understand how your hardware behaves with discards if you are going to enable discards with RAID 4/5/6.

Я это уже своими словами уже написал в предыдущих сообщениях.

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

что говорит диски не умеют «discard_zeroes_data»

И чо?

Это имно означает, что, если топик стартер всё таки прочитает ман и передаст ядру нужный параметр и команды трим для рейд массива заработают, то его данные превратятся в тыкву.

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

его данные превратятся в тыкву.

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

А другие разрабы ядра пишут, что в целом, никакой SSD не гарантирует нули, там могут быть у каждого свои условия, задержка и т.д. А если к этому ещё добавить возможные ошибки в прошивке, то, получается, такой TRIM лучше на MD-RAID 5 не включать.

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

Ну есть ssd, нормально работающие без TRIM, то есть у них скорость не падает, когда он весь забит данными. И в начале все ssd были такими, а потом дешман ssd стали расчитывать, что им постоянно будет TRIM, так прошивку проще писать.

Главная проблемма нонешнего TRIM у MD RAID, то, что косяки вылезут только в деградированом режиме работы, когда данные восстанавливают чезер XOR. Там получится, что если SSD на ранее тримнутый блок вернул не нули, то восстановленый блок будет мусором. Но как скоро проявится, что в отдельных файлах отдельные блоки содержат мусор вобще не ведомо.

То есть включил TRIM у MD RAID, всё работает, один SSD не возвращает нули после TRIM, но пока все SSD работают всё хорошо. Потом какой-то другой SSD вылетел, ты его заменил, всё синхнулось и выглядит ОК, а часть данный стали мусором.

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

mky ★★★★★
()