Поставщик предлагает 8 NVMe в RAID 10 под базу 1С - смета втрое выше альтернативы на SATA-SSD в пятом уровне, а сисадмин не уверен, что это нужно. Вопрос «нужен ли NVMe RAID 10 под базы данных» решается профилем нагрузки и тем, какие IOPS реально нужны под транзакции.
Ниже разберём, что NVMe RAID 10 даёт базе данных, чем отличается от пятого и шестого уровней, в каких сценариях оправдан и из чего складывается цена.
Что даёт NVMe RAID 10 для баз данных
Разница в IOPS между NVMe, SATA-SSD и HDD - десятки раз. Enterprise-NVMe даёт 500K–1M+ IOPS на чтение и 200K–500K на запись, SATA-SSD - 60–80K, HDD 7200 rpm - 100–200. Задержка: 50–200 мкс, 200–500 мкс и 5–15 мс соответственно. Для БД с короткими транзакциями каждая микросекунда складывается в секунды на отчёте.
RAID 10 для БД выбирают за зеркалирование (защита от отказа диска) и страйп (распределение нагрузки). Под случайную запись, которая преобладает у OLTP, это быстрейший уровень из массивов. Минус - полезная ёмкость 50% (8 дисков по 1,92 ТБ дают 7,68 ТБ). Пятый и шестой уровни экономят место, но платят просадкой по записи. На архивных системах, аналитических БД с длинными чтениями и файловых серверах этот массив избыточен, там хватает HDD или SATA-SSD.
RAID 10 vs RAID 5 vs RAID 6: что выбрать под БД
RAID 10: производительность и зеркало
В сравнении RAID 10 vs RAID 5 первый - комбинация зеркалирования (RAID 1) и страйпа (RAID 0): диски бьются на пары-зеркала, поверх пар идёт страйпинг. Минимум 4 диска. Чтение растёт линейно с числом пар: на восьми NVMe ускорение в 4–8 раз. Запись ускоряется в 2–4 раза, на флеш-носителях это сотни тысяч IOPS, хватает большинству транзакционных нагрузок.
Массив выживает отказ одного диска в каждой паре. Rebuild на флеш-дисках идёт часы и почти без просадки производительности - данные просто копируются с парного диска. На пятом и шестом уровне rebuild на NVMe тоже занимает часы, но природа другая: контроллеру нужно перечитать данные со всех оставшихся дисков и пересчитать чётность, поэтому массив работает в деградированном режиме с многократной нагрузкой и высоким риском второго отказа в этот период. Для RAID 10 это редко проблема, для 5/6 - основной аргумент против на больших дисках 3,84 ТБ+. Минус один - 50% полезной ёмкости и самый дорогой уровень по соотношению цена/объём, но для нагруженной БД ёмкость вторична относительно производительности.
RAID 5/6: ловушки на NVMe и для БД
RAID 5 хранит данные на N дисках плюс один диск чётности, полезная ёмкость (N-1)/N. Шестой уровень использует два диска чётности - (N-2)/N. На 8 дисках пятый даёт 87,5%, заметно больше десятого. Главная проблема - write penalty: на каждую запись пятый уровень выполняет 4 операции (чтение блока, чтение чётности, расчёт новой, запись), шестой - 6 операций. Для случайной записи мелкими блоками это просадка в 4–6 раз.
На флеш-дисках write penalty менее заметен - носители быстрые, и проседание скорости проявляется иначе, чем у HDD. У SSD при росте занятого объёма повышается write amplification: контроллер вынужден чаще выполнять garbage collection и переносить блоки внутри NAND, чтобы освободить место под новую запись. Для RAID 5/6 это усугубляется тем, что write penalty в 4–6 операций умножается на расходы внутри самого SSD, и реальная скорость записи на массиве проседает ощутимо. На активно заполненном массиве с интенсивной записью эффект виден отчётливо даже на enterprise-NVMe. На больших флеш-дисках (3,84 ТБ+) rebuild RAID 5/6 идёт часы, всё это время массив работает в деградированном режиме с многократной нагрузкой и риском второго отказа. Пятый и шестой уровни под БД уместны в архивных сценариях и аналитических хранилищах с последовательным чтением, не для транзакционных нагрузок.
Когда NVMe RAID 10 оправдан
NVMe для БД оправдан там, где IOPS критичны и задержка отражается на пользователях. Несколько типовых сценариев.
- Транзакционные базы с многими короткими операциями - бухгалтерские системы, торговые платформы, биллинг, e-commerce. IOPS критичны, задержка влияет на пользователей.
- Высоконагруженная 1С. PostgreSQL для 1С под 100+ пользователей с активной работой - журналы транзакций, временные таблицы, индексы. Связка NVMe и десятого уровня - стандарт коммерческого продакшена.
- MS SQL Server с tempdb и логами на быстром массиве. Tempdb живёт на самых быстрых дисках, под неё NVMe RAID 10 или хотя бы зеркало - рабочая схема.
- Большие БД с активным набором (working set). Когда «горячая» часть данных не помещается в RAM, такая связка даёт стабильную производительность даже при выходе за пределы кэша.
- ERP и CRM-системы среднего и крупного бизнеса. Множество одновременных пользователей, постоянное обновление записей, индексные операции - типичная транзакционная нагрузка с прицелом на флеш-массив.
- Когда не нужен. Архивная БД с редкими запросами раз в месяц, аналитическое хранилище с батчевыми запросами и последовательной выборкой, тестовые контуры, файловые серверы.
Стоимость NVMe RAID 10: из чего складывается
Диски, контроллер, корпус, обслуживание
Стоимость NVMe RAID 10 раскладывается на несколько компонентов.
Сами диски. Enterprise-класс с DWPD от 1 или TBW от 1,75 PB на 1,92 ТБ. Mixed-Use (DWPD 3+) - самый дорогой класс для активной записи, Read-Intensive для БД с перевесом чтения. Потребительские диски не подходят, выгорают за месяцы.
Аппаратный RAID-контроллер. Модели типа Broadcom 9560-16i или Microchip SmartRAID 3258p работают с PCIe Gen4, поддерживают до 16 NVMe в tri-mode, стоят сопоставимо с парой дисков и дают аппаратный массив с кэшем под суперконденсатором.
Шасси и материнская плата. Нужна поддержка U.2/U.3 слотов и запас PCIe-линий до CPU. Платформы с 8 NVMe-слотами дороже SAS-аналогов на 15–25%. CPU. Массив нагружает PCIe-шину и контроллер памяти, лучше Xeon Scalable Gen 3+ или AMD EPYC с запасом по линиям и ядрам. RAM. Под высоконагруженную БД минимум 128 ГБ, для крупной транзакционной - 256–512 ГБ. Флеш-массив не отменяет потребности в большом ОС-кэше. Обслуживание на горизонте 5 лет - резерв 1–2 запасных дисков на полке (15–20% от парка), мониторинг износа, плановая замена при достижении 80% TBW, это около 20–30% дополнительных расходов сверх первичной закупки.
Когда конфигурация требует 8 NVMe в RAID 10, корпоративный контроллер и CPU с запасом PCIe-линий, удобнее отталкиваться от типовых сборок - серверы баз данных уже сбалансированы по числу дисковых слотов, поддержке аппаратного RAID и резервированию питания. Итог: NVMe RAID 10 на 8 дисках с контроллером, шасси и тюнингом обычно в 2–3 раза дороже эквивалента на SATA-SSD в пятом уровне. Плата за IOPS, а не за ёмкость.
Софтверный vs аппаратный RAID для NVMe
Аппаратный контроллер прозрачен для ОС: виден один виртуальный диск, кэш с защитой от потери питания. На рынке сегодня два основных производителя: Broadcom (бывший LSI/Avago) с серией MegaRAID 9560 и Microchip Technology (бывший Microsemi/Adaptec) с серией SmartRAID 3200. Это разные компании с разной микроархитектурой контроллеров и собственным управляющим софтом - storcli у Broadcom, arcconf у Microchip. Под Windows Server и baremetal без виртуализации подходят оба, выбор обычно опирается на привычки команды и совместимость с серверной платформой.
Софтверный RAID на mdadm (Linux) даёт производительность близкую к аппаратному, иногда выше: современные CPU справляются с расчётом чётности и параллельным IO. Полный контроль через ОС, гибкая настройка. На Windows Server неприменим.
ZFS - не классический RAID, а файловая система с пулами (RAIDZ1/2/3, mirror, stripe). Сильна функционально: снапшоты, чексуммы, дедупликация. Под высоконагруженную PostgreSQL - рабочий вариант с тонкой настройкой ARC и записей, ZIL на отдельном флеш-диске обязателен для синхронных записей.
Выбор: Windows Server и MS SQL - аппаратный контроллер. Linux и PostgreSQL - mdadm (проще) или ZFS (функциональнее). Виртуализация (Proxmox, vSphere) - встроенный софтверный массив гипервизора. Аппаратный массив с write-back кэшем требует батарейного модуля или суперконденсатора, иначе риск потери данных, без write-back производительность записи заметно падает.
Эксплуатация и риски
- TBW и износ. Каждый enterprise-NVMe имеет ресурс TBW. Под транзакционной БД диск проходит ресурс за 2–4 года, под индексы за 3–5 лет. Замена идёт по графику, не по факту отказа.
- Замена при отказе одного диска. На десятом уровне rebuild идёт часы. На пятом и шестом - заметно дольше, с риском второго отказа в это время.
- Мониторинг SMART. Регулярная проверка ресурса, температуры, числа ошибок через nvme-cli (Linux) или встроенный мониторинг контроллера.
- Питание. 8 дисков в нагрузке тянут 50–80 Вт на массив, RAID-контроллер класса Broadcom 9560 или Microchip SmartRAID добавляет 18–30 Вт под пиковой загрузкой в зависимости от модели и числа активных линий PCIe. ИБП с запасом по мощности.
- Резерв запчастей. Минимум 1 запасной диск той же модели на полке. Сроки поставки в условиях параллельного импорта 2–6 недель, ждать неприемлемо для боевого массива.
Альтернативы NVMe RAID 10
- All-Flash СХД корпоративного класса (NetApp, Dell EMC, российские аналоги). Управляемая отдельная подсистема, подключение к нескольким хостам по FC или iSCSI. Дороже одиночного сервера, но масштабируемее.
- Распределённое хранение (Ceph). Подходит для облачных архитектур с десятками узлов; для одиночного сервера БД избыточно.
- Пятый или шестой уровни на флеш-носителях для архивных и аналитических БД, где скорость случайной записи не приоритет, а важна ёмкость.
- Облачные блочные тома с гарантированным IOPS для малых и средних БД, особенно если инфраструктура и так в облаке.
Заключение
NVMe RAID 10 под БД - это про скорость случайной записи и предсказуемую задержку, не про ёмкость. Оправдан для активной OLTP-нагрузки, не оправдан для архивов и аналитики. Стоимость в 2–3 раза выше эквивалента на SATA-SSD в пятом уровне - плата за производительность. Если бизнесу не нужны микросекундные задержки и сотни тысяч IOPS, разница уходит в смету, а не в скорость работы пользователей. Когда профиль нагрузки и архитектура понятны, дальше это вопрос подбора железа: дисковые системы для серверной инфраструктуры выбираются под суммарную нагрузку, требуемые IOPS и горизонт планирования.