29.46
Рейтинг
RAIDIX
Представьте: в очередной раз ваш любимый вендор дисков рассказал, почему NVMe-
накопители лучше, чем SAS и SATA. В вашем любимом издании написали, что вышла
новая версия спецификации и появилось 5 новых стартапов, которые делают разные
прикольные вещи. А вы, наконец, получили долгожданный бюджет на обновление и
задумались: а что всё-таки стоит приобрести и какие подводные камни меня ждут?
SATA: 82 IOps/$
Получается, всего 1 NVMe может заменить 4 SATA SSD (уровни задержек мы пока
оставим в стороне).
+12 17K 45
https://habr.com/ru/company/raidix/blog/578894/ 1/21
29.10.2021, 19:34 NVMe-накопители: чем они хороши и как на них переходить. Часть первая / Хабр
Points scored
Звучит очень неплохо. Но значит ли это, что теперь вы сможете за тот же бюджет получить
от storage-hungry приложения в 4 раза большую отдачу?
Скорее всего, нет. Для того, чтобы внедрить новые технологии с максимальной отдачей,
нужно немного постараться:
https://habr.com/ru/company/raidix/blog/578894/ 2/21
29.10.2021, 19:34 NVMe-накопители: чем они хороши и как на них переходить. Часть первая / Хабр
HPE J2000
GIGABYTE SF260-NF0/1
https://habr.com/ru/company/raidix/blog/578894/ 3/21
29.10.2021, 19:34 NVMe-накопители: чем они хороши и как на них переходить. Часть первая / Хабр
Также стоит обратить внимание на то, какой стек системного ПО поддерживает ваше
приложение: чем свежее ядра Linux, тем больше будет выхлоп. Идеально — чтобы ваше
приложение поддерживало новые фреймворки, такие как io_uring или SPDK.
Надеюсь, что вы произвели предварительную работу и уже точно знаете, что проблема с
производительностью где-то на стороне СХД. А если нет, то начните с изучения таких
инструментов как systat, ebpf (использование для трассировки) и работы со счетчиками в
Windows. Погуглите результаты тестов вашего приложения на быстрых хранилищах —
если повезет, то вы сможете скорректировать свои ожидания.
Системные настройки
Для того чтобы вы могли оценить влияние изменений мы проводили тесты на следующей
системе:
Платформа: HGST
https://habr.com/ru/company/raidix/blog/578894/ 4/21
29.10.2021, 19:34 NVMe-накопители: чем они хороши и как на них переходить. Часть первая / Хабр
Ядро: 5.8
Тесты накопителей
[global]
direct=1
bs=4k
ioengine=libaio
numjobs=72
group_reporting
time_based
runtime=25m
direct=1
rw=randread
time_based
random_generator=tausworthe64
ramp_time=10s
nice=-5
https://habr.com/ru/company/raidix/blog/578894/ 5/21
29.10.2021, 19:34 NVMe-накопители: чем они хороши и как на них переходить. Часть первая / Хабр
buffered=0
randrepeat=1
nice=-5
buffered=0
randrepeat=1
norandommap
[nvme0]
filename=/dev/nvme0n1
[nvme1]
filename=/dev/nvme1n1
[nvme2]
filename=/dev/nvme2n1
[nvme3]
filename=/dev/nvme3n1
[nvme4]
filename=/dev/nvme4n1
[nvme5]
filename=/dev/nvme5n1
[nvme6]
filename=/dev/nvme6n1
[nvme7]
filename=/dev/nvme7n1
https://habr.com/ru/company/raidix/blog/578894/ 6/21
29.10.2021, 19:34 NVMe-накопители: чем они хороши и как на них переходить. Часть первая / Хабр
Тесты RAID
[global]
direct=1
bs=4k
ioengine=libaio
numjobs=72
group_reporting
time_based
runtime=25m
direct=1
rw=randread
time_based
random_generator=tausworthe64
ramp_time=10s
nice=-5
buffered=0
randrepeat=1
nice=-5
buffered=0
randrepeat=1
norandommap
[nvme0]
https://habr.com/ru/company/raidix/blog/578894/ 7/21
29.10.2021, 19:34 NVMe-накопители: чем они хороши и как на них переходить. Часть первая / Хабр
filename=/dev/era_dimec
Менеджер томов
Начиная с версии device mapper 4.2 в Linux появилась поддержка работы с множеством
очередей. Эта опция позволяет очень серьезно увеличить производительность. По нашему
опыту ограничение одного тома составляет около 2 000 000 IOps без использования этой
опции и 50 000 000 IOps с использованием.
cat /sys/module/dm_mod/parameters/use_blk_mq
cat /sys/block/dm-X/dm/use_blk_mq
Multipath
https://habr.com/ru/company/raidix/blog/578894/ 8/21
29.10.2021, 19:34 NVMe-накопители: чем они хороши и как на них переходить. Часть первая / Хабр
Сейчас в ядрах Linux поддерживается два режима обработки IO: Bio Request и Multi-
Queue. Режим bio проще и рекомендуется при работе с NVMe. Хотя, конечно, сравнение
работы различных multipath — вопрос отдельной статьи. Правильный параметр
конфигурационного файла выглядит следующим образом:
Драйверы NVMe
и заребилдите initramfs .
https://habr.com/ru/company/raidix/blog/578894/ 9/21
29.10.2021, 19:34 NVMe-накопители: чем они хороши и как на них переходить. Часть первая / Хабр
тысяч IOPS, а на низкоинтенисвных нагрузках задержка снизилась на 25%. Так это эту
рекомендацию оставляем на ваше усмотрение.
Сеть
Тонкая настройка сети — дело непростое, и опять же требует отдельной статьи поэтому
мы оставим только пару простых рекомендаций: использовать Jumbo Frames и в случае
использования сети от Mellanox не стесняться использовать утилиту mlnx_tune.
RAID
16 1703389,964 634188,1794
32 1707676,114 1307190,139
https://habr.com/ru/company/raidix/blog/578894/ 10/21
29.10.2021, 19:34 NVMe-накопители: чем они хороши и как на них переходить. Часть первая / Хабр
При этом нагрузка на CPU была около 96%. RAID создавался с параметрами по
умолчанию, размер chunk=64k . Журнал не включали.
SPDK
Здесь действует простое правило: нужно иметь одно дополнительное ядро дополнительно
к нуждам приложения на один NVMe-накопитель.
https://habr.com/ru/company/raidix/blog/578894/ 11/21
29.10.2021, 19:34 NVMe-накопители: чем они хороши и как на них переходить. Часть первая / Хабр
Такой подход позволит как реализовать возможности накопителя, так и иметь достаточные
ресурсы для работы вашего приложения.
PCIe
рис. 4
рис. 5
Если вам нужна производительность, то, конечно, стоит обратить внимание на то, как
организован ваш сервер и EBOF.
https://habr.com/ru/company/raidix/blog/578894/ 12/21
29.10.2021, 19:34 NVMe-накопители: чем они хороши и как на них переходить. Часть первая / Хабр
При использовании EBOF нам нужно рассмотреть как архитектуру EBOF, так и сетевую
инфраструктуру от контроллеров в EBOF до подключения адаптеров в серверах. Тут также
нигде не должно возникать переподписок.
Особое внимание нужно уделить расположению накопителей на Numa nodes. Если ваше
приложение способно это учитывать, то для достижения лучшего результата стоит
правильно размещать массивы и тома на накопителях, которые «живут» на одной ноде.
Тестирование
Делать это нужно, идя от меньшего к большему. Есть три ключевых принципа в
проведении тестов:
Важным моментом является то, что накопители на основе NAND Flash должны быть
должным образом подготовлены для удовлетворения критериям 2 и 3.
1. Отсутствие сдвига между потоками: все потоки читают один и тот же набор данных.
После того, как вы получите результаты на всех дисках и устраните узкие места, можно
протестировать RAID и менеджер томов. Тут вам стоит полагаться на те же советы, что и
при тестах диска, но при расчете ожидаемой производительности не забывать про RAID
Penalty. Очень часто RAID тормозит, если в системе есть какие-то медленные диски,
которые мы не исключили на предыдущем этапе. Используйте утилиту iostat.
Также при тестировании решений следует увеличивать нагрузку для того чтобы понять, как
система ведет себя при масштабировании. Особенно важно это проверять для
дизагрегированных сред. Также можно увеличивать как глубину очереди, так и количество
потоков, и контролировать не только среднии уровни задержек, но и задержки по
персентилям.
https://habr.com/ru/company/raidix/blog/578894/ 14/21
29.10.2021, 19:34 NVMe-накопители: чем они хороши и как на них переходить. Часть первая / Хабр
Так как NVMe-накопители любят многопоточную запись, нам нужно было решить пару
вопросов:
Проблема RAID-массивов с parity в том, что примерно в один момент времени в один
страйп может прийти несколько запросов на изменение данных. А может еще происходить
ребилд или инициализация массива! С одной стороны, нам нужно обрабатывать все
запросы максимально эффективно, используя все вычислительные ядра, а с другой — не
допускать искажения данных в стрипах с контрольными суммами. Блокировки тут — очень
плохой вариант, ведь мы можем иметь сотни тысяч и даже миллионы запросов на запись в
секунду. Именно поэтому мы придумали подход на основе lockless c динамическим
маппингом потоков и страйпов.
https://habr.com/ru/company/raidix/blog/578894/ 15/21
29.10.2021, 19:34 NVMe-накопители: чем они хороши и как на них переходить. Часть первая / Хабр
Так как движок RAIDIX ERA используется как внутри имеющихся СХД, так и совместно с
решениями типа Openflex, мы разработали механизм Active-Active кластера, который со
временем расширится до множества узлов.
https://habr.com/ru/company/raidix/blog/578894/ 16/21
29.10.2021, 19:34 NVMe-накопители: чем они хороши и как на них переходить. Часть первая / Хабр
Редакторский дайджест
Присылаем лучшие статьи раз в месяц
Электропочта
RAIDIX
Компания
17 1
Карма Рейтинг
@raidixteam
Пользователь
Комментарии 16
ПОХОЖИЕ ПУБЛИКАЦИИ
12 июля в 19:51
+3 4.8K 23 7 +7
+2 8.9K 18 19 +19
https://habr.com/ru/company/raidix/blog/578894/ 17/21
29.10.2021, 19:34 NVMe-накопители: чем они хороши и как на них переходить. Часть первая / Хабр
вчера в 21:49
сегодня в 13:50
сегодня в 00:01
сегодня в 09:18
+31 3K 34 23 +23
вчера в 20:02
ИНФОРМАЦИЯ
Местоположение Россия
Сайт raidix.ru
ССЫЛКИ
https://habr.com/ru/company/raidix/blog/578894/ 18/21
29.10.2021, 19:34 NVMe-накопители: чем они хороши и как на них переходить. Часть первая / Хабр
Нравится Страница
RAIDIX 4 сентября
RT @DataconomyMedia: Large video surveillance projects go well beyond network video recorders and storage on
video surveillance servers.
R…
RAIDIX 19 августа
We have released a short video about RAIDIX ERA, in which we explain how the software works and what value it
bring…
RAIDIX 2 августа
New RAIDIX ERA 3.3 Release Brings More Opportunities For Managing NVMe Drives:
Читать @RaidixSoftware
БЛОГ НА ХАБРЕ
сегодня в 19:23
24 сентября в 15:35
13 августа в 16:53
4 августа в 17:27
12 июля в 19:51
Песочница Конфиденциальность
Настройка языка
О сайте
Техническая поддержка
https://habr.com/ru/company/raidix/blog/578894/ 20/21
29.10.2021, 19:34 NVMe-накопители: чем они хороши и как на них переходить. Часть первая / Хабр
Техническая поддержка
© 2006–2021 «Habr»
https://habr.com/ru/company/raidix/blog/578894/ 21/21