`

СПЕЦІАЛЬНІ
ПАРТНЕРИ
ПРОЕКТУ

Чи використовує ваша компанія ChatGPT в роботі?

BEST CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Три вкуса RAID

+66
голосов

В мире RAID неспокойно. С ростом мощности центральных процессоров, появлением новых типов носителей и ОС с расширенными возможностями, обустройство ввода-вывода данных перестало быть задачей выбора подходящего контроллера или системы хранения. Многообразие приложений и инструментов размывает устоявшиеся подходы к организации хранения и движения данных, стимулируя нишевые программные решения. Конкурируют не контроллеры, а реализации RAID, среди которых нет «универсальных», «хороших» или «плохих». Есть уместные и неуместные.

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

Сегодня «RAID-вопрос» перестал быть областью интереса одних только производителей аппаратных контроллеров и систем хранения данных. Налицо передел сфер влияния. Внутриотраслевая конкуренция между игроками перетекает в конкуренцию подходов. С одной стороны, пользователей, данных и моделей работы с ними становится все больше — на всех контроллерами не угодишь. С другой, в организации хранения данных много смежников, получающих доход с решений: разработчиков ОС и средств виртуализации, программных надстроек, контроллеров ввода-вывода, контроллеров дисков. Дележ доходов и оттеснение одних другими зависит от бизнес-модели хранения. К примеру, если она позволяет обойтись без аппаратных RAID-контроллеров — то в серверах (будь то Google или ex.ua) их и не будет. А если SSD эффективнее парируют пиковые нагрузки — то многошпиндельные монстры на HDD уступят место гибридным или all-flash-системам, построенным уже по совсем другим принципам.

Смена приоритетов разъедает прежние представления. Если сегодня и осталось многобожие в мире RAID — то разве что по типу реализации:

  1. Программный (software).

  2. Полу-программный (host-, firmware, fake-, псевдо-).

  3. Аппаратный (hardware) RAID.

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

Может показаться, что это — худшая из возможных опций построения RAID. На деле, все давно не так. Действительно, программные реализации RAID используют вычислительные ресурсы центральных процессоров и оперативной памяти сервера. Драматизировать эту зависимость не стоит — производительность современных многоядерных процессоров достаточно высока, чтобы операции ввода-вывода съедали заметную часть их ресурсов. Более того, в процессоры встраивают аппаратные модули для выполнения типичных для RAID вычислительных операций. Вся же логика управления реализована в ОС.

Для реализации программного RAID достаточно хост-адаптера (HBA), единственная задача которого — предоставить ОС интерфейс доступа к дискам. В простейшем случае эту функцию выполняют бортовые порты SATA материнской платы. В производительных серверах используются многопортовые SAS HBA или SAS HBA в сочетании с экспандерами на бэкплейнах.

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

Разумеется, программный RAID вносит дополнительные риски — использование оперативной памяти сервера чревато потерей данных в случае сбоя по питанию. Это лишний повод обеспечить серверу надежное энергоснабжение. В критичных приложениях высокий уровень доступности данных могут обеспечить кластеры на разделяемых хранилищах с дисками SAS HDD/SSD.

Что интересно, обострение внимания к программным реализациям RAID пришло не «снизу» (со стороны малобюджетных решений), а «сверху» (со стороны приложений, требовательных к ресурсам).

В погоне за IOPS’ами уже не ограничения вращающихся носителей (HDD) становятся сдерживающим фактором, а процессоры и логика аппаратных RAID-контроллеров. Их предельная производительность составляет несколько сотен тысяч IOPS — что перекрывается возможностями каких-то 6-8 серверных SSD. Адаптируя инфраструктуру под высокую нагрузку с произвольным доступом к данным (random), в борьбе за низкие задержки отклика пользователи готовы рассматривать альтернативы вчерашним стандартам.

Еще один стимулятор программных RAID — потоковые видеоприложения (и речь даже не о 4К). Работа с накопителями большой емкости вносит дополнительные риски — ведь реконструкция массива на дисках 3-4TB может идти сутками. Бизнес-пользователи интересуются быстрыми реализациями класса RAID 6 или RAID-DP с защитой от выхода из строя двух дисков и посматривают в сторону тройной страховки (как в ZFS RAID-Z3 или RAIDIX RAID 7). Пример программного RAID — технология Storage Spaces в составе Windows Server 2012 и Windows 8. Объектом управления становятся не диски, а Spaces —виртуальные хранилища на основе групп физических носителей, объединенных в пулы. Пулы носителей могут включать различные комбинации HDD и SSD. Разделение управления носителями и хранилищами позволяет создавать масштабируемые и гибкие решения. ОС становится менеджером логических томов c широкими возможностями: восстановления данных при отказе дисков за счет избыточности, дедупликации данных, расширения массивов методом тонкой подготовки (thin provisioning), интеграции с общими томами в составе кластера.

В Windows Server 2012 R2 в Storage Spaces добавлена поддержка Automatic Tiering, Write-Back Cache, Dual Parity. Анализ движения данных, многоуровневое хранение на наборах SSD/HDD, кэширование записи, двойной контроль четности — все это интеллектуальные алгоритмы, прежде свойственные дорогим проприетарным разработкам. Очевидно, Microsoft посягает на рынок выделенных RAID-контроллеров и дорогих СХД, реализуя их логику в составе массовых ОС.

Современный программный RAID:

  • становится частью операционных систем и систем виртуализации, с расширенными возможностями обслуживания интенсивного ввода/вывода;

  • интересен достижением максимальной отдачи систем хранения;

  • требует достаточно высокой квалификации при сопровождении.

Полу-программный RAID

Использует вычислительные ресурсы хоста, но при этом управляется из BIOS материнской платы или контроллера. Встречается под разными именами, не всегда деликатными: хост-RAID, firmware RAID, fake RAID, псевдо-RAID. От того, реализован он в чипсете материнской платы или в формате выделенного контроллера на шине PCIe, его половинчатая суть не меняется: он уже не является частью ОС, как программный RAID, но еще не автономен по ресурсам и управлению как аппаратный RAID.

Как работает большинство полу-программных RAID, понятно на примере хост-RAID в составе чипсетов материнских плат. Для выполнения операций ввода-вывода данных в массивах RAID уровней 0 или 1 используются аппаратные вычислительные возможности самого чипсета и прошивки BIOS. Центральный процессор участия в этом практически не принимает. Более ресурсоемкие операции: создание RAID, его восстановление, расчет контрольных сумм RAID уровней 5 или 6 выполняются полностью на программном уровне, за счет ресурсов CPU. Таким образом, полу-программные RAID обеспечивают высокую производительность и низкую загрузку CPU для уровней RAID 0, 1 и, по сути, ничем (кроме худшей переносимости), не отличаются от полностью программных RAID для уровней 5, 6. Поскольку вычисления выполняются ниже уровня ОС (прошивками контроллера и драйвером ОС), переносимость полу-программного RAID ограничена пределами точно такого же аппаратного и программного окружения. Привязка к типу контроллера (а не ОС), зависимость от сторонних вычислительных мощностей, ограниченные сервисные возможности, зависимость от драйверов, отсутствие защиты кэша (в оперативной памяти сервера) от сбоев по питанию — вот причины невысокой репутации хост-RAID. Он берет ценой.

Опасаться следует не хост-RAID’ов в составе чипсетов материнских плат — эти отрабатывают свою стоимость. Куда проблемнее внешние контроллеры, которые по незнанию можно принять за аппаратные. Уполу-программных RAID нет ни собственного набора логики, ни динамической памяти для вычислений четности. Есть микросхемы с прошивками, перенаправляющие запросы центральному процессору. Пользователю гарантирована низкая производительность массивов с большим объемом пересчета контрольных сумм и интенсивной записью. Высоки шансы программно-аппаратной несовместимости. Уж лучше бортовой RAID c уровнем попроще.

Понятно, почему SSD вызвали рост популярности программных реализаций RAID — из-за отставания возможностей аппаратных контроллеров от потребностей приложений с высокой нагрузкой произвольного доступа. Как ни странно, SSD реабилитировали и хост-RAID тоже — но уже в младших серверах. Приложения делопроизводства критичны к задержкам даже при небольшой нагрузке ввода/вывода. Хост-RAID, встроенный в чипсет материнской платы, выдает пристойную производительность в RAID 1 (это касается и ширины полосы пропускания и малых задержек при обращениях процессора). Проблемы «выбора подходящего аппаратного RAID-контроллера» в начальном сегменте больше нет. Критичные к задержкам данные размещаются на зеркале из SSD, все остальные — на зеркале из HDD. Комбинация хост-RAID, двух SSD и двух SATA HDD — более чем состоятельное решение для сервера начального уровня.

Итак, хост-RAID:

  • Достаточен в начальных конфигурациях с RAID 1.

  • Производителен в связке с SSD.

  • Прост в реализации.

  • Дешев или даже условно бесплатен — что в начальном сегменте компенсирует все неудобства переноса и восстановления данных.

Аппаратный RAID

Самая дорогостоящая из реализаций RAID, аппаратный контроллер — это специализированный компьютер в миниатюре, со своим BIOS, мощным (зачастую многоядерным) процессором, динамической памятью с коррекцией ошибок, вспомогательной логикой, интерфейсом управления, иногда с выделенным NIC, защитой от аварий по питанию. Под управлением фирменных прошивок, драйверов и утилит аппаратные контроллеры выполняют и оптимизируют все операции с дисками: чтение и запись с конвейеризацией запросов и пересчетом контрольных сумм, интеллектуальный анализ данных с кэшированием горячих блоков, отработку отказов дисков с переключением на горячий резерв, перестроение и реконструкцию RAID-массива с поврежденными данными. Современные аппаратные RAID-контроллеры поддерживают многоуровневое кэширование с промежуточным SSD-кэшем чтения и записи перед массивом HDD, управляют сторонними блочными устройствами в составе единой многослойной структуры хранения.

Аппаратный RAID пробрасывает массив операционной системе как логическое устройство, от ОС особой поддержки RAID-карте не требуется. Там, где аппаратный (hardware) RAID обходится своими силами, программный (software) RAID как часть ОС использует системные ресурсы. Как обсуждалось выше, отрыва по производительности аппаратному RAID автономия не дает. Искать преимущества надо в сервисных функциях. Документ LSI Enterprise Hardware RAID and Software RAID (pdf) дает исчерпывающее сравнение аппаратного RAID с программным по четырем группам показателей: Защита данных — Управляемость — Масштабируемость — Ускорение ввода/вывода.

Защита данных в аппаратном RAID — функция прошивок, управляющих выделенной картой независимо от остальных системных ресурсов. Программный RAID подвержен риску развала, ухода в синий экран или на перезагрузку вместе с ОС, частью которого он становится. В аппаратных RAID применяется горячее резервирование дисков — не только для массива в целом, но и назначаемое определенному тому. Повышает доступность данных и защита кэш-памяти аппаратного контроллера флэш-модулями на конденсаторах (пришли на смену аккумуляторным батареям).

Современные аппаратные RAID-контроллеры снабжены развитыми программными средствами установки, настройки и управления устройствами хранения: производительностью, емкостью, опциями защиты данных и реконструкции массивов (Storage Management). Администратор может на лету расширять массив, менять уровни RAID и схемы защиты. SSD и HDD можно объединять в кэшируемые пулы или в многоуровневые наборы (tiering). Переносимость RAID-массива с машины на машину возможна для контроллеров с одинаковой организацией RAID-cтека — если есть преемственность поколений контроллеров одного производителя.

Масштабируемость систем хранения под управлением аппаратных контроллеров куда выше — ими поддерживаются SAS-экспандеры, а допустимое количество физических дисков, дисковых групп, виртуальных устройств и горячих резервов в разы превышает возможности программного RAID.

SSD дали хороший толчок эволюции аппаратных RAID — ведь это они, не HDD, оказываются сегодня сдерживающим фактором производительности. Во времена HDD-массивов производители аппаратных контроллеров оптимизировали RAID-стек, алгоритмы кэширования (упреждающего чтения и обратной записи) в динамической памяти, траектории облета головками магнитной поверхности. Теперь в тренде переход на SSD, погоня за процессорной мощностью (в IOPS), минимизация задержек на уровне логики (c раздачей как можно большего числа линий SAS c одного чипа), SSD-кэширование чтения/записи и тонкий «температурный» анализ движения данных — с целью перемещения горячих блоков данных на быстрые носители в едином пуле хранения.

Cегодня аппаратный RAID предпочтителен в серверной инфраструктуре дата-центров с высокими требованиями к:

  • защищенности и управляемости;

  • расширяемости хранилищ;

  • производительности, в том числе смешанных массивов SSD/HDD.

Чего ждать?

На все перечисленные преимущества аппаратных RAID можно привести примеры ОС, где уже сегодня можно делать то же самое, и даже больше. За разработчиками аппаратных контроллеров — годы работы с дисками и отлаженные технологии контроля за ошибками. Вероятно, вопрос предпочтений будет решаться со стороны ходовых приложений и их требований к системам хранения, включая совместимость с ОС. Многое зависит от квалификации и готовности пользователей променять комфорт (дорогих и консервативных), проприетарных решений на прямые выгоды открытых (но требующих погружения в настройки). Нишевые программные реализации имеют шанс выбиться в массовые. Те могут расползтись по нишам. «Поэзия, должно быть, состоит в отсутствии отчетливой границы».

Перед основными игроками на поле аппаратных RAID, включая производителей промышленных СХД, cтоят серьезные вызовы — как не отдать на откуп разработчикам ПО управление растущими объемами хранения. Судя по дрейфу мирового спроса от SAS RAID в сторону SAS HBA, им есть чего опасаться.

Ready, set, buy! Посібник для початківців - як придбати Copilot для Microsoft 365

+66
голосов

Напечатать Отправить другу

Читайте также

 

Ukraine

 

  •  Home  •  Ринок  •  IТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Мережі  •  Безпека  •  Наука  •  IoT