LINUX.ORG.RU

Неадекватная работа NVME SSD в mdadm RAID 1 + cryptsetup, Debian 11

 , , , ,


0

1

У меня был вопрос по поводу производительности NVME SSD на Debian 11 (последние обновления установлены).

Производительность NVME SSD на линуксе

Я включил тот самый NVME SSD в mdadm RAID 1 массив с жестким диском (диск в режиме write-mostly), рассчитывая получить скорость NVME SSD на чтение вместе с надежностью RAID-массива. На основном RAID-разделе была смонтирована корневая директория («/»), раздел зашифрован через LUKS cryptsetup. Есть еще незашифрованный /boot, тоже в RAID 1.

И тут начался ад. Система начала произвольно лагать во время работы и отжирать процессор. А самое ужасное, что загрузка системы начала лагать и останавливаться на неопределенное время каждый раз на разных этапах. Решилась проблема только отключением RAID-зеркала раздела «/» на NVME SSD, после чего вернулась стабильность работы (пусть и со скоростью жесткого диска).

Напомнило ситуацию, когда я сидел на старом ПК с Windows XP на аппаратном RAID 0 и система тоже адски лагала с DPC Latency, что было видно на DPC Latency Checker:

https://www.exedb.com/software/DPC Latency Checker

Тогда проблема решилась только отказом от аппаратного RAID 0.

Есть ли способы заставить NVME SSD нормально работать на линуксе? С чего начать диагностику?

Для «особо одаренных», не знающих зачем увязывать ssd и hdd в один raid1:

https://www.tansi.org/hybrid/

https://superuser.com/questions/293144/combining-ssd-and-hard-disk-in-softwar...

Обновление. Проблема пока что частично решилась отключением APST через опцию командной строки ядра

nvme_core.default_ps_max_latency_us=0

Похоже, проблема была в кривой реализации APST то ли ядра, то ли в самом железе.

Теперь система грузится и работает в основном без проблем. Но иногда бывает (уже 2 раза за 2 недели случалось), что NVME SSD «отваливается» во время работы и система не видит его как диск аж до перезагрузки. Хотя в lspci NVME SSD по-прежнему видно. Что это может быть?



Последнее исправление: metaprog (всего исправлений: 2)

Я включил тот самый NVME SSD в mdadm RAID 1 массив с жестким диском

Есть ли способы заставить NVME SSD нормально работать на линуксе?

Ох.

С чего начать диагностику?

perf, systemtap, printk, бгг.

anonymous
()

Думаю разработчики mdadm смотрят на тебя с удивлением переходящим в изумление, так как им никогда не приходило в голову что кто то может объединить в зеркало nvme ssd и механический жёсткий диск. Возможно, когда ты сумеешь это победить и настроить, они будут смотреть на тебя с восхищением. Главное не забудь им рассказать как ты добился синхронной работы столь разных устройств.

рассчитывая получить скорость NVME SSD на чтение вместе с надежностью RAID-массива

Это прекрасно. Надёжность тут видимо обеспечивает само название, RAID-массив.

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

с удивлением переходящим в изумление

Да ты на ник-то ТСа посмотри. На него все соседи по палате так уже давно смотрят.

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

Думаю разработчики mdadm смотрят на тебя с удивлением переходящим в изумление, так как им никогда не приходило в голову что кто то может объединить в зеркало nvme ssd и механический жёсткий диск

Насколько я знаю, даже ЛОР хостится на подобной конфигурации. Жесткий диск в режиме write-mostly, то есть все чтения происходят с ssd. У такого массива скорость чтения как у ssd, а записи - как у жесткого диска. Так как чтения происходят намного чаще чем записи - эффект ускорения чувствуется почти как если бы жесткого диска в массиве не было.

У меня отлично работал RAID 1 когда был SATA SSD, но я решил поставить вместо него NVME для большей скорости - и начались проблемы.

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

Да, часть ЛОРа хостится на SSD с подобной моей конфигурацией:

2x 240Gb OCZ Trion 1000 (RAID1 with HDD, «write mostly»).

Скорее всего, это чтоб быстрее искало и выдавало страницы, на которые большой спрос.

www.linux.org.ru/about

Так что

разработчики mdadm смотрят на тебя с удивлением переходящим в изумление

Относится и к ЛОРу.

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

Есть способ заставить нормально работать, нужно просто не ставить в raid массив с hdd.

mxfm ★★
()

С чего начать диагностику?

С похода к врачу.

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

Вообще это была ирония. Но если тебе так хочется использовать RAID1 (кривой во всех смыслах, ещё и блочный) вместо бэкапа:

https://en.wikipedia.org/wiki/Perf_(Linux)

https://en.wikipedia.org/wiki/SystemTap

https://www.kernel.org/doc/html/latest/core-api/printk-basics.html

Там все нужные ссылки есть.

Повторюсь: RAID1 это не бэкап, он нужен только для снижения даунтайма критических систем.

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

Да, прежде чем погружаться в профилирование ядра, стоит посмотреть на картинку в lstopo. Есть вероятность, что у тебя коммутируются линии SATA-контроллера и выделенные для SSD. Если это так, то можно будет с чистой совестью забить, либо поискать более приличное железо.

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

Этого недостаточно, чтобы наблюдались такие эффекты.

anonymous
()

Есть такой способ! Это обычные сата ссд принято объединять с хардом. Нвме нужно зеркалировать с tmpfs.

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

SATA SSD нормально работал с HDD, что не так с NVME?

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

Тут надо не в RAID, а в роли кеша SSD подключать. Во времена пользования FreeNAS видел там такую фичу, но на практике не щупал.

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

Несостыковки будут уже на уровне разной работы протоколов.

Не будут. MD RAID вообще нет дела до протоколов.

Тут надо не в RAID, а в роли кеша SSD подключать

Мало того, что ТС упорот, так вы ещё более отбитые советы ему даёте. Хотя про tmpfs выше было гораздо эпичнее.

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

Не будут. MD RAID вообще нет дела до протоколов.

Откуда же проседания скоростей?

так вы ещё более отбитые советы ему даёте.

Ну почему «отбитые», ведь для кого-то прямо в веб-морде такую функцию запилили. Значит оно работает.

Мало того, что ТС упорот

Как и все мы, в какой-то степени :)

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

Мало того, что ТС упорот, так вы ещё более отбитые советы ему даёте. Хотя про tmpfs выше было гораздо эпичнее.

А что не так? Вот прямо сейчас смотрю на raid подпёртый блочным кешем на nvme ssd. Ессно что если блочный кэш сам по себе не зеркало он должен быть в writethrough режиме.

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

Откуда же проседания скоростей?

Нужно мониторить нагрузку на I/O, возможно профилировать ядро. О возможной коммутации линий PCIE я выше писал, это тоже вероятно, но ТС принципиально отказывается назвать даже модель материнской платы, так что пускай сам гадает. Вообще он никакой информации не предоставил, кроме заявлений уровня «где-то болит».

Ну почему «отбитые», ведь для кого-то прямо в веб-морде такую функцию запилили. Значит оно работает.

Юзкейсы для такого кэша есть есть, но они далеко от десктопа и даже типичных домашних NAS.

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

А что не так?

Область применения.

Вот прямо сейчас смотрю на raid подпёртый блочным кешем на nvme ssd.

Ну не в десктопе же. Хочется верить.

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

А что мешает это иметь в десктопе? При наличии прямых рук и лишних дисков вполне вариант. Да, это не так здорово как «честный» аппаратный райд подпёртый батарейкой и с блочным кешем в зеркале, но всё равно рабочее решение, относительно надёжное и ускоряющее рандомное чтение (но не запись, да).

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

А что мешает это иметь в десктопе?

Да нафига вообще HDD в десктопе?

ускоряющее рандомное чтение

А что за задача?

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

Да нафига вообще HDD в десктопе?

Просто вот они есть предположим и их количество больше одного предположим. А ещё nvme более 1-2tb размером стоят негуманоидных денег. А так да, соглашусь, не нужно превращать десктоп в NAS и держать в нём механику. И для хранения мультимедии сетап с блочным кешем ничего не даст, да.

А что за задача?

Обсчёт макета троллейбуса из буханки хлеба и проволоки.

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

А так да, соглашусь, не нужно превращать десктоп в NAS и держать в нём механику. И для хранения мультимедии сетап с блочным кешем ничего не даст, да.

Приятно видеть здравомыслящего человека 👍

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

@metaprog, почему бы тебе не купить побольше оперативы и просто не хранить всё свое барахло в tmpfs? Это отличный способ заставить твои поделки работать быстро. А пропадут - ну не страшно, ведь ты все равно не делаешь ничего важного графическое программирование настолько быстрое, что ты за пять минут намышевозишь всё заново.

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

стоит посмотреть на картинку в lstopo

  HostBridge
    PCIBridge
      PCI 01:00.0 (3D)
    PCI 00:02.0 (VGA)
    PCIBridge
      PCI 03:00.0 (Network)
        Net "wlan0"
    PCIBridge
      PCI 04:00.1 (Ethernet)
        Net "eth0"
    PCIBridge
      PCI 05:00.0 (NVMExp)
        Block(Disk) "nvme0n1"
    PCI 00:1f.2 (SATA)
      Block(Removable Media Device) "sr0"
      Block(Disk) "sda"
metaprog
() автор топика
Ответ на: комментарий от mxfm

С write-mostly на жесткий диск получается скорость чтения ssd и скорость записи hdd. Как раз то что надо и с sata ssd все работало хорошо, а на nvme начался ад.

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

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

Больше 16 гб ноут не тянет. И нужна надежность hdd.

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

Какого черта ты вообще сюда влез, если понятия не имеешь как заставить nvme ssd нормально работать?

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

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

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

особо одаренных

Так обычно называют верующих в надёжность вращающейся ржавчины :)

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

Как достали эти умники. Наличие зеркала уменьшает вероятность потери всей инфы (да, при этом несколько снижая надёжность в целом, но что лучше — потерять всё, или, при отказе с вероятностью аж на 10% выше, не потерять ничего?) без пердолинга с бэкапом (который, сюрприз, тоже подвержен отказам).

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

У тебя неправильные бэкапы. Наверняка ещё и не 3-2-1.

anonymous
()

Обновление. Проблема пока что частично решилась отключением APST через опцию командной строки ядра

nvme_core.default_ps_max_latency_us=0

Похоже, проблема была в кривой реализации APST то ли ядра, то ли в самом железе.

Теперь система грузится и работает в основном без проблем. Но иногда бывает (уже 2 раза за 2 недели случалось), что NVME SSD «отваливается» во время работы и система не видит его как диск аж до перезагрузки. Хотя в lspci NVME SSD по-прежнему видно. Что это может быть?

metaprog
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.