< вернуться назад

RAID в эпоху NVMe: необходимость новых методов для повышения производительности

RAID в эпоху NVMe: необходимость новых методов для повышения производительности
#nvme #RAID #Аппаратный RAID #Программный RAID
10 минут
RAID в эпоху NVMe: необходимость новых методов для повышения производительности

RAID (массив из независимых дисков с избыточностью) — это технология, позволяющая объединять несколько дисковых накопителей в массивы или тома, распределяя (чередуя) данные по дискам. RAID может использоваться для повышения производительности за счет увеличения пропускной способности нескольких накопителей для доступа к набору данных. Он также может использоваться для повышения надежности и доступности данных путем добавления избыточности и/или зеркалирования одного набора дисков на другой. Это помогает предотвратить потерю данных или простои приложений в случае отказа диска.

Технология RAID существует уже несколько десятилетий и хорошо известна, когда применяется к традиционным конфигурациям со средними по емкости HDD. Однако индустрия хранения данных быстро развивается, и новые технологии хранения представляют множество вызовов для RAID.

Ключевые различия между программным и аппаратным RAID

По мере того как HDD становятся больше каждый год, надежность RAID с избыточностью снижается. Это происходит из-за увеличения времени, необходимого для восстановления данных в случае отказа диска. Современные диски объемом более 20 ТБ могут восстанавливаться в течение нескольких недель, и вероятность потери другого диска в группе в этот напряженный период увеличивается.

Другим нарушением статус-кво является NVMe. Эти накопители обеспечивают значительное увеличение пропускной способности, но требуют большого вычислительного ресурса для расчета информации об избыточности и восстановления в случае отказа диска. Это одна из причин, по которой RAID не является простым решением с NVMe.

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

Аппаратные контроллеры RAID

Несколько производителей предлагают аппаратные продукты, реализующие RAID. Реализация значительно различается в зависимости от поддерживаемых протоколов. Диски SATA имеют наименьшие требования к производительности, задержке и масштабированию, что облегчает интеграцию аппаратной логики RAID. Большинство современных вычислительных платформ поддерживают SATA RAID, встроенный в южный мост материнской платы, с управлением, встроенным в BIOS.

Аппаратный RAID наиболее тесно связан с SAS, так как исторически RAID использовался в дата-центрах, где SCSI был повсеместным (мы намеренно пропускаем сетевое хранилище, чтобы рассмотреть его в конце статьи). Для SAS аппаратный RAID обычно является самым естественным решением с некоторыми заметными исключениями. Есть несколько особенностей, делающих аппаратный RAID хорошим для SAS:

  • Диски SAS требуют адаптера шины (HBA). В отличие от SATA, подключение дисков SAS не интегрировано в чипсет. Даже те серверы, которые имеют встроенный SAS, полагаются на отдельный чип SAS. Поэтому, если вы все равно платите за подключение, имеет смысл переложить расчеты RAID туда же.
  • Внешние порты. Адаптеры SAS доступны в различных вариантах, но большинство моделей доступны либо с внутренними портами для подключения к задней панели сервера, либо с внешними портами для подключения к SAS JBOD, либо и тем, и другим. Это дает большую гибкость и увеличивает масштабируемость установки. Буквально сотни дисков SAS могут быть подключены к одному адаптеру и использоваться в составе томов RAID.
  • Кэш записи. Большинство дисков имеют часть оперативной памяти, выделенной для кэша записи. Использование ОЗУ для буферизации записи значительно увеличивает производительность диска за счет снижения надежности. В случае аварийного отключения питания содержимое кэша оперативной памяти теряется, что может привести к повреждению или потере данных. Из-за риска потери данных в большинстве сред кэширование записи отключено на дисках. Адаптеры аппаратного RAID могут добавить кэширование записи без риска для данных. Как и на HDD, часть оперативной памяти может быть выделена для кэширования записи для повышения производительности, а аккумуляторный блок (BBU) может быть добавлен к адаптеру для защиты кэшированных данных в случае аварийного отключения питания.
  • Совместимость. Аппаратный RAID в основном является Plug-and-Play. Вся конфигурация хранится на карте, и управление дисками доступно из BIOS адаптера, до загрузки в операционную систему хоста. Это означает, что хост видит тома RAID как физические диски, что снижает нагрузку на управление ОС и делает аппаратный RAID совместимым почти со всеми операционными системами.

Для NVMe в настоящее время доступность аппаратных RAID-опций ограничена. Из трех основных производителей аппаратного RAID только один разработал реализацию RAID для NVMe. Хотя у него есть некоторые полезные функции, знакомые по картам RAID SAS, он в значительной степени испытывает трудности с производительностью нескольких дисков NVMe и может стать узким местом. Проблемные точки в реализации аппаратного RAID для NVMe

  • Возможности ASIC IOPS. Даже новейшие RAID-чипы имеют ограничение на количество операций ввода-вывода в секунду, которые они могут обработать. С современными NVMe SSD Gen.4, которые превышают 1 млн IOPS на диск, даже 3-4 диска могут насытить адаптер RAID.
  • Узкое место пропускной способности PCIe. С адаптером RAID, находящимся на шине PCIe между дисками и процессором, производительность системы ограничивается пропускной способностью одного слота PCIe.
  • Задержка. Одним из ключевых факторов успеха NVMe является низкая задержка. Это объясняется тем, что диски подключаются напрямую к шине PCIe без каких-либо промежуточных устройств между SSD и процессором. Это помогает обеспечить минимально возможную задержку. Дополнительное оборудование между дисками и процессором добавляет задержку, что нивелирует одно из ключевых преимуществ NVMe.

Программный RAID

Другой способ добавления RAID к хосту — использование программного RAID или диспетчеров томов. Такие продукты могут улучшить гибкость распределения хранилища на сервере, добавляя функции надежности данных и производительности. Существует множество продуктов на выбор, большинство из которых специфичны для ОС. Это одна из слабых сторон программного RAID, поскольку миграция данных между разными операционными системами становится сложнее и требует дополнительных навыков от администратора хранилища.

Реализации программного RAID варьируются от более простых продуктов абстракции, таких как Linux kernel mdraid, до более крупных и богатых функциями диспетчеров томов, таких как Veritas, LVM или Storage Spaces, до компонентов файловой системы, таких как ZFS или btrfs. Но даже при этом уровне разнообразия есть некоторые ключевые общие черты.

  • Программный RAID использует ресурсы хоста – процессор и ОЗУ – для предоставления сервисов данных.
  • Специфичен для ОС — большинство пакетов программного RAID предназначены для ограниченного количества операционных систем.
  • Гибкий и богатый функциями. Программный RAID обычно абстрагируется от основного оборудования и может использовать несколько типов устройств хранения, иногда в одной группе RAID.

Главное преимущество программного RAID – гибкость. Если вы можете видеть свое исходное устройство хранения как блочное устройство (диск) в ОС, программный RAID может работать с ним. То же программное обеспечение можно использовать для работы с локальными устройствами по всем протоколам (SATA, SAS, NVMe, даже USB), сетевыми блочными СХД через FC, iSCSI или NVMeoF.

Потребление ресурсов хоста и производительность обычно являются проблемами программного RAID. С точки зрения производительности, большинство программных продуктов хорошо работают с HDD,но  начинают испытывать трудности с SSD и значительно снижают производительность с NVMe. Это главным образом связано с тем, что их кодовая база разрабатывалась для уровня производительности HDD и не предусматривает высокого уровня параллелизма, большого количества операций ввода-вывода и пропускной способности, которые предоставляет NVMe.

Когда дело доходит до потребления ресурсов хоста, большинство продуктов программного RAID могут обрабатывать уровень пропускной способности HDD и простую логику RAID, такую как RAID1 или RAID10, без значительного влияния на хост. При работе с сотнями тысяч или миллионами IOPS и десятками гигабайт в секунду пропускной способности, программный RAID начинает использовать значительное количество ресурсов хоста, возможно, лишая бизнес-приложения ресурсов. 

Аппаратный и программный RAID: преимущества и ограничения

Аппаратный RAID

Плюсы:

  • Кросс-ОС
  • Кэш записи с резервным питанием
  • Легко управлять и мигрировать между серверами
  • Обеспечивает физическое подключение
  • Не потребляет ресурсы хоста
  • Надежная производительность для HDD и большинства конфигураций SSD SATA/SAS

Минусы:

  • Требует физической покупки и свободного слота расширения(ий) на сервере
  • Добавленная задержка
  • Строгие матрицы совместимости для поддерживаемых дисков, серверов, JBOD, кабелей
  • Прошивка имеет ограниченное пространство, поэтому не ожидайте новых функций с обновлениями программного обеспечения
  • Простые наборы функций
  • Не работает с сетевыми устройствами
  • Узкое место для NVMe

Программный RAID

Плюсы:

  • Независимость от оборудования, возможность комбинировать диски разных размеров и интерфейсов
  • Многие бесплатные опции
  • Гибкий и богатый функциями
  • Работает с сетевым хранилищем
  • Легко добавлять новые функции в обновления программного обеспечения

Минусы:

  • Специфичен для ОС
  • Использует ресурсы хоста – процессор и ОЗУ
  • Низкая производительность с NVMe
  • Нет кэша записи или физических портов

Какой RAID лучше?

Как обычно, это зависит от случая использования. Для большинства инсталляций SATA подойдет встроенный контроллер RAID или диспетчер томов, поставляемый с ОС. Для SAS наиболее естественным выбором будет использование аппаратных адаптеров RAID. В случае крупных инсталляций с высокоемкими дисками следует рассмотреть возможность использования продвинутых коммерческих продуктов программного RAID и/или декластеризации. Для NVMe/NVMeoF под Linux есть высокопроизводительные программные коммерческий продукты. Для Windows и других операционных систем аппаратный RAID или программное зеркалирование, вероятно, являются лучшими вариантами на сегодняшний день.

Проблема RAID для NVMe заметна на рынке, и несколько компаний работают над различными подходами к ее решению. В компании «Баум» мы внимательно следим за этими технологиями и поддерживаем контакт с большинством производителей RAID-продуктов, чтобы у наших СХД «под капотом» были самые совершенные решения.

Одним из перспективных направлений развития RAID для NVMe становится перенос части вычислений непосредственно на накопители. Такой подход позволяет разгрузить CPU и память сервера и использовать вычислительные возможности самих SSD. Подробнее о прототипе RAID Offload от Kioxia и его архитектуре мы рассказывали в отдельном материале: «RAID Offload для NVMe без нагрузки на CPU: Kioxia показала вычисление паритета прямо на SSD»

Автор: Олег Ларин

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *
Author
Посетитель сайта

Добавить комментарий

Комментариев пока нет

Другие статьи, которые могут быть полезными

№ Вопрос Ответ 1. Какой приоритет при восстановлении пула: приоритет перестроения или приоритет доступа к данным? По умолчанию выбран приоритет доступа к данным. Этот параметр может быть настроен инженерами...
3090
3
№ Вопрос Ответ 1. Какова сервисная поддержка BAUMSTORAGE ? Гарантийная и сервисная поддержка производится инженерами BAUMSTORAGE и сервисными службами партнёров. Имеются три вида сервисной поддержки: гарантия на аппаратное обеспечение,...
3128
1
Глубина очереди – это количество одновременных запросов на чтение или запись, которые сервер посылает дисковой подсистеме. Если глубина очереди равна единице, то следующий запрос посылается только после получения подтверждения о...
3850
1