Системы хранения данных RAIDIX: российские инновации на мировой арене
г
С. В. Лазарева,
к. т. н., руководитель исследовательской лаборатории
А. В. Маров,
аспирант СПбГУ, разработчик исследовательской лаборатории
ООО «Рэйдикс»
Компания «Рэйдикс» — ведущий российский разработчик и производитель решений для систем хранения данных. Системы RAIDIX используются потребителями в более, чем тридцати странах мира, включая Россию, США, Германию, Китай, Индию, Южную Корею, Японию и другие. Используя собственную, запатентованную в России и США, технологию помехоустойчивого кодирования и обширную научную базу, компания предлагает отечественную программную платформу как для управления отдельными серверами СХД, так и для построения больших масштабируемых высокопроизводительных кластеров из множества узлов хранения.
Решения RAIDIX отличают надежность и гарантированная производительность даже при сбоях оборудования. Выигрышное соотношение цена/производительность делает СХД RAЮIX конкурентным решением на российском и мировом рынках. Программное обеспечение RAIDIX включено в реестр Минкомсвязи как рекомендованное для закупки российскими компаниями и госструктурами. В 2016 г. компания «Рэйдикс» получила инвестиции от венчурного фонда «Ростелекома».
Секрет успеха «Рэйдикс» — ориентация на требования мирового рынка, уникальная технология, профессиональная команда исследователей и разработчиков и стратегическое технологическое партнерство с лидерами отрасли.
Ключевые слова: RAIDIX, Рэйдикс, системы хранения данных, СХД, хранение данных.
Нехватка ресурсов для хранения данных — распространенная проблема в современном мире. Мы наблюдаем лавинообразный, количественный и качественный, рост объемов информации. С одной стороны, возникают новые форматы данных в таких областях, как видео и суперкомпьютерные вычисления. С другой стороны, совершенствуются накопители данных: растут в объеме жесткие диски, приобретают популярность твердотельные накопители с сокращенным временем доступа и оптимизированными скоростными характеристиками. Растут требования к надежности и производительности систем хранения данных. В этих условиях необходимы принципиально новые решения, которые позволят организовать запись и хранение данных эффективно, надежно и недорого.
«Рэйдикс» — одна из первых компаний в России, сумевших создать такое решение.
История компании началась в 2008 г. с разработки алгоритмов помехоустойчивого кодирования и их применения в СХД. В 2009 г. появилась первая версия
решения, которая была взята на вооружение несколькими клиентами из зарубежной медиаиндустрии.
2011 — год официального учреждения «Рэйдикс». Компания стала резидентом фонда «Сколково» и получила грант на выпуск коммерческой версии и развитие продукта на мировых рынках. В 2012 г. продукт был представлен широкой публике под названием RAIDIX. Череда внедрений пошла по стране. Десятки компаний из Москвы, Новосибирска, Хабаровска, Челябинска и других городов России получили возможность упростить и удешевить работу с информацией, используя надежный и легкий в настройке продукт для хранения и обработки данных. Заказчики по достоинству оценили ключевое преимущество RAIDIX — высокую скорость работы. Уникальный многопоточный алгоритм расчета RAID позволил достичь максимально возможной производительности при работе с оборудованием.
Команда «Рэйдикс» разработала собственные математические алгоритмы расчета контрольных сумм
со
о
Г\1
Lf>
<
CQ О
для дисковых массивов RAID 6. Разработчики оптимизировали параллельные вычисления при расчете алгоритмов RAID, благодаря чему скорость записи и доступа к данным увеличилась, а нагрузка на процессор осталась невысокой.
Решение позволило повысить надежность и скорость записи/считывания RAID без увеличения стоимости системы. Данный подход распространил область применения этого типа массивов на сегменты рынка, где до этого применялись дорогостоящие комплексные решения.
В 2013 г. «Рэйдикс» заручилась поддержкой Фонда содействия инновациям, выиграв грант по программе «Экспорт». В том же году компания вышла на международный уровень, заявив о себе в США и странах Европы (Германия, Франция, Бельгия, Венгрия и др.). Среди вертикалей рынка, в которых нашла применение новая технология, — медиа, суперкомпьютерные вычисления, видеонаблюдение и медицина. СХД на базе RAIDIX активно используются при работе с большими объемами данных, когда необходимы высокая надежность и максимально возможные ресурсы для записи, хранения и обработки информации.
На дальнейшем этапе развития продукт приобрел новые конкурентные преимущества:
• Коррекция скрытых ошибок. Встроенный запатентованный модуль выявления и коррекции скрытых ошибок на дисках SATA и NL-SAS предотвращает потерю данных и обеспечивает их восстановление.
• Гарантированная производительность. Реализация RAID6 и RAID7.3 гарантирует стабильную производительность при выходе из строя до трех дисков массива, позволяя избежать потери данных при пиковой нагрузке.
• Частичная реконструкция. Механизм частичной реконструкции данных на диске в десятки раз уменьшает время простоя систем хранения в случае сбоя, таким образом отказ системы проходит незаметно для пользователя.
• Запатентованный эргономичный интерфейс. Единая информационная панель содержит полную информацию о состоянии системы хранения и RAID-массивов. Многие задачи выполняются при помощи «мастеров», что облегчает и значительно ускоряет работу с СХД.
Обновленный RAIDIX полностью удовлетворял требованиям индустрии систем хранения данных. Продолжилось освоение иностранных рынков: версия RAIDIX 4 была установлена в 22 странах мира, в чис-
0 ле которых — Финляндия, Германия, Китай, Канада, Бразилия, Индия и Австралия.
«Рэйдикс» сегодня
ю
01
z 2016 г. стал переломным в истории компании.
¡E Получив инвестиции от венчурного фонда «Росте-
J лекома», компания «Рэйдикс» продолжила работу в трех направлениях:
О • развитие программного обеспечения;
^ • захват новых рынков;
S • развитие компетенции поставщика комплексных
решений в области СХД и выход на корпоративный сегмент.
Если до 2016 г. RAIDIX представлял собой классическую модульную систему хранения данных (Standalone Storage Appliance), то на новом этапе происходит расширение продуктовой линейки до программно-определяемой горизонтально-масштабируемой СХД (Scale-Out NAS and Shared Storage).
На сегодняшний день в компании работает более 60 человек, география установок систем под управлением RAIDIX включает в себя более 30 стран мира, а общее количество установок превышает 1000. Зарубежные офисы компании работают в Швейцарии и в Южной Корее. Компания «Рэйдикс» имеет развитую партнерскую сеть на всех континентах. В России компания действует как поставщик готовых решений, активно внедряя комплексные программно-аппаратные продукты для конечных клиентов.
«Рэйдикс» разрабатывает несколько продуктов для различных отраслей:
• RAIDIX Media — решение по хранению данных для компаний, работающих в медиаиндустрии. RAIDIX значительно облегчает задачи видеосъемки и монтажа, цветокоррекции и транскодинга.
• RAIDIX Video Surveillance — решение для систем видеонаблюдения — гарантирует высокую надежность хранения данных и отличную производительность при одновременной работе с потоками чтения/записи и большим количеством камер.
• RAIDIX Interstellar — совместная разработка «Рэйдикс» и компании Intel — используется в высокопроизводительных компьютерных системах. Interstellar увеличивает мощность суперкомпьютеров и повышает точность прогнозирования.
• Линейка решений для корпоративного сегмента выходит на рынок под общим названием RAIDIX AERO и представляет собой системы хранения данных для предприятий среднего и крупного бизнеса. AERO дает руководителям компаний возможность как оптимизировать имеющуюся инфраструктуру СХД, так и получить новое, оптимальное по соотношению цены и производительности, решение для хранения данных.
Кадры решают все
В случае «Рэйдикс» это утверждение полностью справедливо. Компания оказалась первопроходцем в сфере разработки решений для СХД, где не было готовых стандартов и методологий. Алгоритмы работы с данными разрабатывали с нуля и параллельно тестировали на растущем рынке систем хранения данных. Компания с самого начала вела продуманную кадровую политику, отбирая лучших разработчиков, в том числе и в сотрудничестве с ведущими техническими вузами — СПбГУ, СПбГПУ, ЛЭТИ.
В «Рэйдикс» работает собственная исследовательская лаборатория, которая разрабатывает математические алгоритмы и инженерные решения, лежащие в основе продуктов под маркой RAIDIX. «Рэйдикс» продолжает развивать партнерские отношения с высшими учебными заведениями. Совместные на-
учные исследования с вузами и внедрение практики стажировок для молодых разработчиков позволяют компании привлекать в свои ряды перспективных специалистов. Студенты имеют возможность писать практические дипломы, ориентируясь на программный продукт, непосредственно участвовать в разработке, привносить свои идеи в работу. Для каждого стажера разрабатывается индивидуальный план прохождения практики и действует программа наставничества. Компания поддерживает дальнейшее трудоустройство и ориентирована на продолжительные рабочие взаимоотношения — многие ведущие разработчики начинали свою карьеру в «Рэйдикс» с позиции стажера.
Собственная исследовательская лаборатория, сильная команда разработчиков, высококвалифицированные сотрудники службы поддержки и внедрения продукта, специалисты отдела продаж, которые умеют найти общий язык с любым клиентом, и проактивный маркетинг — таков рецепт успеха от компании «Рэйдикс».
«Рэйдикс» — партнерство с лидерами
Компания «Рэйдикс» активно выстраивает партнерские отношения как с мировыми технологическими лидерами, так и с компаниями-интеграторами, решающими вопросы для конкретного заказчика. Стратегическое партнерство с компаниями Panasonic, Intel, Mellanox, Avago и др. позволяет «Рэйдикс» участвовать в формировании общемировых трендов во всем, что касается надежного хранения данных, а также выходить на новые рынки, пользуясь поддержкой признанных лидеров отрасли. Так, роль проводников на западный медиа-рынок для «Рэйдикс» сегодня играют компании Echostreams, ATTO, AIC, Scale Logic и др. В рамках взаимовыгодного сотрудничества «Рэйдикс» активно развивает партнерские программы и предоставляет компаниям-интеграторам наиболее выгодные условия.
Инновации «Рэйдикс»
Технология QoSmic
Основной задачей большинства современных систем хранения данных является одновременное предоставление ресурсов хранения нескольким клиентским станциям (инициаторам).
Следует разделять задачи, требующие ресурсов хранения, на критичные и некритичные для бизнеса компании. Невозможность выполнения критичных для бизнеса задач в связи с тем, что все необходимые ресурсы были захвачены приложениями, выполняющими некритичные задачи, может привести к серьезным финансовым потерям.
Достаточно часто предоставление уровня обслуживания по запросам различных инициаторов формируется вручную системным администратором. Администратор может предоставить приоритет одному или нескольким инициаторам, тогда запросам от них будет предоставлена гарантированная пропускная способность. Однако такой способ управления в системах хранения данных не может обеспечить уровень обслуживания с оптимальной производительностью и надежностью.
В RAIDIX есть своя уникальная технология автоматического представления приоритета QoSmic, основанная на идентификации работающих приложений в СХД «на лету». С помощью алгоритма QoSmic распознаются критически важные бизнес-приложения, и именно им выставляется наивысший приоритет. Приоритет автоматически снимается, когда критически важное приложение перестает работать. Данный алгоритм может быть включен или выключен по желанию клиента. Система хранения данных с встроенной технологией QoSmic представлена на рис. 1.
Опишем подробнее данную технологию. Алгоритм идентификации приложений состоит из двух модулей: обучение и распознавание.
Обучение проходит в оффлайн-режиме. На основе I/O-запросов от запущенного приложения определяются сигнатуры запросов на чтение и запись по определенному алгоритму [1], далее из данных сигнатур формируется профиль приложения. Профили приложений поступают в алгоритм классификации Random Forest [2]. На выходе Random Forest выдает модель (см. рис. 1), которая используется в модуле распознавания приложений в качестве предсказателя.
Механизм распознавания работает в реальном режиме. На основе I/O-запросов от инициатора, которые поступают в модуль распознавания приложений, строятся I/O-сигнатуры, являющиеся входными данными для алгоритма распознавания. Далее с помощью алгоритма Random Forest и модели, полученной в режиме обучения, идентифицируются приложения,
Обучение
1 Сбор I/O запросов от
конкретного приложения 1 Создание I/O сигнатур 1 Создание профиля
приложения 1 Алгоритм. Учитель 1 Предсказатель
Распознавание онлайн и
автоматическое выставление приоритета
1 Парсинг входящего трафика
• Создание I/O сигнатур 1 Алгоритм.
Распознаватель > Алгоритм. Автоматическое выставление приоритета
СО
О CN
N Ю
J <
СО
о
Рис. 1. Система хранения данных со встроенной технологией QoSmic
Рис. 2. Схема алгоритма QoSmic
Таблица 1
Точность идентификации
Ошибки первого рода, % Ошибки второго рода, %
Apple Final Cut Pro/X 0,1 0,5
Adobe Premiere Pro 0,15 0,8
Autodesk Smoke 0,12 0,7
Antivirus Kaspersky Small Business Security 0,01 0,01
MSSQL база данных 0,005 0,01
Неважные приложения 0,1 -
Идентификация приложений на блочном уровне в системах хранения данных является уникальной функцией на рынке СХД. Метод обладает высокой точностью и скоростью, что позволяет использовать его для автоматического выставления приоритета критически важным приложениям и гарантировать данным приложениям нужную пропускную способность вне зависимости от нагрузки со стороны остальных работающих приложений. Данный алгоритм способен отличать характерные паттерны и внутри приложения, например, обработку видео 4К от видео 2К.
со
о
CN
N ю
J <
со О
работающие на инициаторе, или выдается ответ «не удалось определить». Такой ответ выдается в случае, если на инициаторе работает неизвестное приложение или времени для идентификации недостаточно, или интенсивность I/O-запросов низкая, что не позволяет сформировать «надежные» I/O-сигнатуры. Далее имена приложений поступают в модуль QoS, который и выставляет приоритеты тем или иным инициаторам. Схематично реализация технологии QoSmic представлена на рис. 2.
Алгоритм точно идентифицирует приложения. Вероятность ошибок первого рода (когда важное приложение посчитали неважным) или второго рода (когда одно критически важное приложение было принято за другое) пренебрежимо мала и представлена в табл. 1. Высокий уровень точности, достигнутый благодаря выбранным параметрам в I/O-сигнатуре, позволяет формировать достаточно точный статистический профиль приложений и, следовательно, с высокой точностью обнаруживать работающее критически важное приложение и отличать его от низкоприоритетного.
Алгоритм распознавания не требователен к ресурсам и не влияет на производительность системы. При максимальной по интенсивности нагрузке на систему хранения данных с маломощным процессором и недорогими HDD потребительского класса производительность системы практически не меняется, то есть конечный пользователь не ощущает никаких задержек в работе системы как при включенном, так и при выключенном режиме QoSmic (см. рис. 3).
Рис. 3. Диаграмма размаха распределения производительности СХД
RAID N+M в RAIDIX
RAIDIX позволяет создавать дисковые массивы с различными уровнями надежности. Среди них есть как стандартные массивы для систем хранения RAID-0, RAID-5, RAID-6, так и RAID с более высоким уровнем надежности — RAID N+M. Название RAID N+M отражает тот факт, что для N дисков с данными мы можем обеспечить M дисков с контрольными суммами. О том, как такой подход повышает надежность, а также о некоторых особенностях реализации кодирования в таком RAID будет рассказано далее.
В СХД различают 2 типа потери данных. Первый связан с выходом из строя диска или его части, который обнаруживается системами технического контроля. В первом случае место утраты данных известно, и принято говорить об отказе или выходе из строя диска. Во втором случае данные искажаются в процессе записи, хранения или чтения таким образом, что системы аппаратного контроля не обнаруживают сбоя дисков. При частичной потере место утраты данных неизвестно, так же как неизвестен и сам факт утраты. Соответственно, необходимо обнаружить проблему, найти место искажения и восстановить данные на основе избыточной информации. В случае, когда диск не выходит из строя, а данные на нем искажены, говорят о скрытом повреждении данных — SDC (Silent Data Corruption). Так, недавнее исследование, проводимое на 1,5 млн HDD в базе данных NetApp на протяжении 2,5 лет, обнаружило скрытые повреждения на 8,5% дисков SATA.
Различные уровни RAID могут подвергаться каким-либо из этих повреждений. Чем больше повреждений способен пережить RAID, тем надежнее система. Например, если в дисковом массиве рассчитывается m контрольных сумм и при этом произошло p отказов дисков и l случаев SDC, то, при выполнении условия p+2l<m, все отказы и скрытые повреждение могут быть обнаружены и исправлены. Выбирая различное количество контрольных сумм, можно добиться желаемого уровня надежности в зависимости от размера хранилища. В основе данного уровня RAID лежат коды Рида-Соломона. В целях выполнения кодирования данные, записываемые в СХД, рассматриваются как последовательности кодовых слов. Чтобы определить операции сложения, умножения, деления кодовых слов используется арифметика полей Галуа. Каждое кодовое слово рассматривается как полином из этого поля. Сложение двух кодовых слов — это сложение полиномов по модулю 2 (логическая операция XOR), а умножение заключается в том, чтобы перемножить
соответствующие полиномы и взять остаток от деления на образующий поле неприводимый многочлен. Например, если мы рассматриваем кодовые слова как элементы поля С¥ (28), образованного многочленом /=х8+х4+х3+х2+1=(100011101), тогда для двух кодо-
вых слов
a1 = (10001001) = х7+хЗ+1,
a2 = (11110000) = x7+x6+x5+x4
будет выполняться
a1+a1=(01111001) = x6+x5+x4+x3+1,
a1Xa1=a1Xa1 (mod f) = (10010010) = x7+x4+x.
Данный способ реализации операций позволяет не только складывать и умножать, но и делить байты так, чтобы результат имел тот же размер, что и операнды.
Определив действия с кодовыми словами, можно переходить к реализации кодов Рида-Соломона. В их классической реализации при необходимости исправления скрытых повреждений для расчета контрольных сумм строятся полиномы над полем Галуа. Это такие полиномы, коэффициенты которых и являются нашими кодовыми словами. Далее с этими полиномами выполняются определенные действия: умножение, поиск остатков от деления и другие. В результате получается многочлен, коэффициенты которого являются контрольными суммами.
Этот не самый быстрый подход к расчетам был оптимизирован в исследовательской лаборатории «Рэйдикс», чтобы повысить скорость кодирования и декодирования. Основная идея — в переходе от действий с полиномами над конечным полем к матричному кодированию. Иначе говоря, в «Рэйдикс» вычислили такие матрицы (матрицы кодирования и декодирования), умножение на которые дает тот же результат, что и действия с полиномами над полем. Расчет таких матриц достаточно простой, а умножение на них может быть распараллелено.
Например, для n кодовых слов D{), D1, ..., Dn_1 расчет m контрольных сумм CQ, Cp ..., выполняется следующим образом:
Здесь а — примитивный элемент поля, Ы=п+ш. Для последовательности
значения определяются так:
Для фиксированных значений N и M эта матрица может быть рассчитана заранее и использоваться при каждом кодировании. В случае возникновения отказов аналогичным образом строится матрица декодирования. Умножая ее на неотказавшие блоки, можно найти утраченные значения.
Сложнее происходит поиск скрытых повреждений. Чтобы определить, имело ли место искажение данных, блоки D0, Dp ..., D p C0, Cp ..., Cm_i умножаются на матрицу Вандермонда. Если среди полученных в результате умножения значений есть ненулевые, значит, произошли скрытые повреждения. Чтобы найти и исправить их, полученные значения передаются на вход алгоритма Берлекампа-Месси, который позволяет найти места всех SDC.
Лаборатория «Рэйдикс» создала такую реализацию алгоритмов помехоустойчивого кодирования, где не только использованы алгоритмические оптимизации, но и все действия в полях Галуа реализованы с помощью векторных регистров процессора SSE или AVX. Векторизация вычислений существенно повышает скорость кодирования и декодирования. RAIDIX также использует векторные инструкции и в алгоритме Берлекампа-Месси, чтобы эффективно находить места скрытых повреждений.
Таким образом, используя матричное кодирование и SSE/AVX-векторизацию основных операций в расчетах, RAIDIX достигает высокой скорости кодирования и декодирования даже в случае возникновения большого количества отказов и скрытых повреждений. Способность дискового массива переживать такие сложные случаи повреждения обеспечивает высокую степень надежности хранения данных в системе.
О перспективах
Интерес к рынку СХД сегодня стремительно растет. В эту отрасль направляются крупные инвестиции, поддерживается высокий уровень конкуренции. «Рэй-дикс» конкурирует с такими гигантами как Huawei, IBM, NetApp, Hitachi и пр. Компания активно разви-
Подписание меморандума с компанией Panasonic в Сколково (фото предоставлено фондом «Сколково»)
со
о см
см ю
J
<
CQ О
вает глобальную партнерскую сеть, в основе бизнес-стратегии «Рэйдикс» — активный рост на российском и международном рынках систем хранения данных.
«Рэйдикс» не планирует останавливаться на существующих технологических достижениях и направляет усилия на усовершенствование продуктов и выпуск новых решений. В планах разработки — оптимизированная поддержка распределенных (в том числе и географически) систем хранения, гибридная модель хранения жестких и твердотельных дисков (HDD+SSD) и all-flash СХД, специальный функционал для нужд корпоративного сегмента. Выпуск надежной суперпроизводительной СХД для предприятий намечен на 2017 г.
Список использованных источников
1. S. Lazareva. Analysis and classification of multimedia I/O-requests to storage system//In Proceedings of the 10th Central and Eastern European Software Engineering Conference in Russia. 2014.
2. D. Siroky. Navigating Random Forests and related advances in algorithmic modeling//Statistics Surveys. Vol. 3. 2009. P. 147-163.
3. I. Guyon, A. Elisseeff. An introduction to variable and feature selection//J. Machine Learn. Res. V. 3. 2003. P. 1157-1182.
Storage RAIDIX: Russian innovation on the world stage S. V. Lazareva, PhD, head of the research laboratory. A. V. Marov, postgraduate student, developer of the research laboratory. (RAIDIX)
RAIDIX is a leading global solution provider for data storage systems. RAIDIX systems operate in Canada, Germany, India, Japan, Russia, South Korea and other countries. Building on the patented RAID erasure coding technology and solid scientific background, the company delivers a management platform for both standalone data storage servers and scalable high performance clusters.
RAIDIX solutions are committed to reliability and guaranteed performance in the event of hardware failures. RAIDIX is a competitive solution that offers significant cost savings to the global customer base. On the home Russian market, the product is listed on the Registry of the Ministry of Communications, and recommended for purchase by commercial and governmental organizations. In 2016, RAIDIX raised investment from Rostelecom venture fund.
RAIDIX recipe for success encompasses compliance with the international standards, unique technology, professional R&D team and strategic partnerships with the industry leaders.
Keywords: raidix, raid, data storage system, data storage.