Введение
RAID массивы всё чаще становятся такой же неотъемлемой частью персонального компьютера, как и сервера. Причин тому предостаточно: за последние несколько лет жёсткие диски сильно продвинулись в технологическом плане: они сменили несколько интерфейсов от ATA/33 до SATA 300, вырос объём кэш-памяти, а технология перпендикулярной записи кардинально снизила стоимость одного гигабайта объёма HDD. Неизменным осталось одно — надёжность жёстких дисков. И хотя сегодня производители дают гарантию на жёсткие диски для настольных ПК до 5 лет, а заявленное время наработки на отказ составляет до 136 лет (1.2 млн. часов), никто не гарантирует, что винчестер не выйдет из строя в любой момент. Исследования показывают, что жесткие диски очень часто выходят из строя в течение первых трёх месяцев службы — наиболее подло, когда пользователь так уверен в новеньком быстром жёстком диске.
Наглядно о надёжности современных винчестеров говорит исследование, проведённое компанией Google. Ниже мы приводим график вероятности выхода из строя винчестера в зависимости от его срока службы и загрузки. Полностью ознакомиться с исследованиями Google и набраться пессимизма можно, скачав отчёт на английском языке в формате .pdf.
Вероятность выхода из строя жесткого диска в зависимости от его возраста
Вероятность выхода из строя жесткого диска в зависимости от его загрузки
Наиболее простой способ повысить надёжность данных — использовать зеркалированный массив RAID 1. В этом случае два винчестера работают как один, дублируя содержимое друг друга. При установе двух дисков в RAID 1, вы теряете объём в два раза (получаете объём одного HDD), но при поломке любого из них, система продолжит работать и у вас будет время для резервного копирования и замены жёстких дисков. Надо сказать, что технология RAID 1 стара как мир, но всё большее распространение в домашних компьютерах получает только сейчас. И вот причины:
-
Современные винчестеры стоят достаточно дёшево, чтобы можно было ставить 2 жёстких диска вместо одного в обычный домашний компьютер
-
Большинству пользователей достаточно объёма и одного винчестера стоимостью 80$
-
Современные винчестеры достаточно быстры, чтобы можно было отдать поступиться скоростью в угоду надёжности
-
Современные жёсткие диски всё ещё не надёжны
Конечно, своевременный бэкап позволяет избежать лишних трат на создание RAID массивов, но делать резервные копии больших винчестеров можно, разве что, на такие же большие винчестеры. Плюс, при выходе из строя основного диска вы потратите время на восстановление данных из архива. Применение RAID 1 нисколько не освобождает пользователя от создания резервных копий, т.к. массив всё ещё остаётся не защищённым против действий пользователя и программных сбоев (вирусы, хакерские атаки и т.д.), но в случае поломки одного из защищённых винчестеров, компьютер продолжит работать на втором HDD.
Но до сих пор не все материнские платы поддерживают RAID. Если у вас такая материнская плата, если на плате уже не хватает портов для подключения ещё пары дисков, или хочется использовать контроллер, чтобы можно было легко делать апгрейд материнской платы, вы встанете перед выбором выбором модели RAID-контроллера.
RAID 1 — оптимальный выбор для дома
Условно, RAID-контроллеры можно разделить на два типа: полностью аппаратные и хост-контроллеры, полупрограммные. Первые отличаются наличием собственного процессора, частотой до 800 МГц (а в будущем и выше), на который ложится вся нагрузка по обслуживанию массива. Мощь этого процессора востребована в массивах RAID 5, RAID 50, RAID 6 и RAID 60. Это не наш случай. RAID-контроллеры для домашнего использования, как правило, имеют 2 или 4 порта. Это позволяет строить на них массивы уровня 0, 1, 10 и 5, последние два — на 4-портовых контроллерах. Рассмотрим, почему мы откажемся от всех типов, кроме одного.
-
RAID 0 — подключает винчестеры в последовательную цепь. При поломке любого из них, вы теряете данные на массиве. С каждым добавленным в массив жёстким диском, надёжность решения снижается. Массив RAID 0 в два раза менее надёжен, чем 1 винчестер.
-
RAID 10 — подключает четыре винчестера: два последовательно и два параллельно. Считается надёжным, как и RAID 1, но требует установки 4 дисков. В итоге вы получаете объём, равный сумме двух HDD. Но так ли он надёжен? Если параллельно работают две последовательных цепочки из двух винчестеров, насколько он надёжен? RAID 10 позволяет выйти из строя двум дискам. При его структуре A1B1+A2B2, он выдерживает следующие комбинации поломок: A1, B1, A2, B2, A1B1, A1B2, A2B1, A2B2. Но остаются две смертельные комбинации: A1A2 и B1B2, а так же любая поломка 3-х дисков. Вероятность выхода из строя одновременно двух дисков A1A2 или B1B2 в два раза выше, чем если бы массив состоял из двух дисков. Поэтому паранойя торжествует, и мы отказываемся от RAID 10.
-
RAID 5 — требует большой вычислительной мощности, наличия минимум трёх дисков, и при этом он выдерживает выход из строя только одного диска. Давая преимущество в объёме, он имеет свойство «рассыпаться», особенно на полупрограммных контроллерах. Это слишком сложная технология, чтобы доверять её контроллеру за 50$. Возможно, существуют тысячи примеров удачной реализации надёжных RAID 5 на дешёвых контроллерах, но паранойе достаточно такого же количества сообщений на форумах с криками «спасите, рассыпался RAID 5».
Выходит, что самый простой и самый надёжный из недорогих массивов — RAID 1. Для его реализации не нужно столько ресурсов, как для RAID 5. Его можно реализовать на двух дисках. Он не требует перестройки структуры диска, поэтому в случае чего, винчестер можно вытащить из массива и подключить напрямую к материнской плате, пусть даже в другой компьютер. Все RAID контроллеры поддерживают RAID 1, и стоят такие решения порой в несколько раз дешевле одного винчестера.
Но создавая RAID 1, мы должны быть готовы к тому, что скорость массива снизится по сравнению с одним диском, загрузка CPU повысится, а объём массива будет равен объёму одного из двух винчестеров.
Если просмотреть прайс-листы компьютерных магазинов в поисках RAID-контроллеров, то вы обнаружите, что с трудом можно найти старые-добрые решения HighPoint, Adaptec и даже Promise. Новый мир принёс перемены, и теперь перед нами такие брэнды, как Orient, Tekram и STLab.
Мы тестируем следующие модели RAID контроллеров:
-
Orient S-822R (SiI3112), PCI, 2x SATA
-
Tekram TR-824 (SiI 3114), PCI, 4xSATA
-
Orient V-802R (VIA VT6421A), PCI, 2xSATA, 1xPATA
-
Orient S3132 RAID (SiI3132), PCI Express 1x, 2+2 SATA
-
STLab A-341 (SiI3132), PCI Express 1x, 2x SATA + 2x E-SATA
Четыре контроллера на чипах Silicon Image, один — на чипе VIA, три — с интерфейсом PCI, два — с более новым PCI Express 1x. И как раз у нас будет шанс проверить, насколько новая шина PCI Express 1x даёт преимущества по сравнению с PCI 2.3.
-
Все контроллеры имеют собственный BIOS и позволяют загружаться с RAID массива
-
Все контроллеры поставляются в комплекте с кабелями Serial ATA
-
Все контроллеры поставляются в комплекте с переходниками питания PCPlug-SATA
-
Все контроллеры поддерживают режим JBOD, позволяющий использовать винчестеры по одному, без организации RAID массива
-
Ни один контроллер не имеет низкопрофильной планки для установки в низкопрофильные корпуса.
Тестовая конфигурация:
-
Intel Pentium D 820 (2.8 GHz)
-
2×512 Mb DDR2 PC5300
-
Asus P5LD2
-
GeForce 7300Gs
-
Windows XP SP2 на Maxtor DiamondMax 9 80Gb
-
2xSamsung HD161HJ 160 Gb
Для каждого устройства мы будем приводить результаты тестов, а потом подведём итоговое сравнение. Вот, что показал один винчестер Samsung HD161HJ в тестах CrystalMark 2.1, HDTach 2.61, SiSoft Sandra XII и PCMark05. Кликните на диаграмму для увеличения.
Интересующиеся могут ознакомиться с результатами одного диска, а мы перейдём к рассмотрению первого RAID контроллера, Orient S-822R.
Накопители в СХД
СХД может работать с разными носителями данных: магнитная лента, оптические диски, жесткие диски (HDD) и твердотельные накопители (SSD/NVMe). Мы рассмотрим только два последних типа, так как именно они распространены в качестве универсальных носителей в большинстве систем.
Надо понимать, что накопители в СХД задают аппаратный предел производительности: система не может работать быстрее, чем сумма производительности ее накопителей. Медленнее — может.
Накопители имеют много важных параметров и характеристик, которые следует учитывать при построении СХД, но базовыми атрибутами, пожалуй, можно назвать тип интерфейса и форм-фактор.
Интерфейсы современных HDD и SSD
Интерфейс представляет собой протокол взаимодействия накопителя и вычислительных ресурсов системы. Интерфейс является важным фактором, влияющим на параметры накопителя: от него зависит пропускная способность, время задержки, расширяемость, возможность горячей замены и, конечно же, стоимость.
Интерфейсы SATA и SAS изначально появились на HDD-дисках, но затем стали стандартом и для SSD. Однако SATA и SAS не могут раскрыть весь потенциал производительности SSD, поэтому для подключения твердотельных накопителей все чаще используется интерфейс PCIe и протокол NVMe. Также стоит отметить NL-SAS диски, которые по сути являются гибридом SAS-интерфейса и SATA накопителя.
Таблица 1. Общее сравнение характеристик HDD и SSD накопителей
Класс | HDD | SSD | ||||
Интерфейс | SATA | SAS | SATA | SAS | PCIe | |
Накопитель | SATA | NL-SAS | SAS | SATA | SAS | NVMe |
Надежность | Низкая | Средняя | Высокая | Средняя | Высокая | Высокая |
Производительность | Низкая | Низкая | Средняя | Высокая | Высокая | Очень высокая |
Стоимость | Низкая | Низкая | Средняя | Средняя | Высокая | Очень высокая |
Форм-фактор
Все HDD имеют схожую конструкцию подвижных элементов, поэтому их внешний корпус — это прямоугольный кейс типа SFF (Small Form Factor, 2.5″) или LFF (Large Form Factor, 3.5″). Каждый из этих типов корпуса может иметь различные разъемы интерфейса.
Рисунок 2. Western Digital Ultrastar SN640 в форм-факторе SFF 2.5″ (слева) и Seagate Exos X12 в форм-факторе LFF 3.5″ (справа).
Flash-накопители не имеют движущихся деталей и поэтому реализованы в более разнообразных формах. Дополнительным импульсом для разнообразия форм-факторов SSD стало развитие PCIe-интерфейса, который добавил варианты прямого размещения накопителей на серверной платформе.
Таблица 2. Форм-факторы HDD и SSD накопителей
Форм-фактор | HDD | SSD |
3.5″ (LFF) | SATA, NL-SAS, SAS | — |
2.5″ (SFF) | SATA, NL-SAS, SAS | SATA, SAS, NVMe |
M.2* | — | SATA, NVMe |
Add-In Card (AIC) | — | NVMe |
EDSFF | — | NVMe |
*используются в качестве системных дисков
Рисунок 3. Intel Optane SSD в форм-факторе Add-In-Card HHHL (Half-Height Half-Length).
Форм-фактор является достаточно динамичным параметром, который постоянно меняется и совершенствуется в зависимости как от изменения интерфейсов, так и от изменения подходов к построению СХД. Более подробно про актуальные форм-факторы можно прочитать на сайте SNIA.
JBOD
В современных СХД накопители могут размещаться как в основном корпусе СХД, так и в дисковых корзинах — JBOD (Just a Bunch Of Drives). Физически такие корзины представляют собой корпус для монтажа в стойку, заполненный накопителями. Для NVMe накопителей сейчас активно используются JBOF (Just a Bunch Of Flash), специализированные дисковые корзины для флеш-накопителей. Например, OpenFlex Data24 от компании Western Digital.
Рисунок 4. Дисковая корзина WD Ultrastar Data102.
Контроллер СХД
Контроллер системы (storage controller, он же управляющий узел или node) является главным управляющим компонентом СХД. Он представляет уровень обработки данных, который отвечает за создание дисковых массивов, расчет контрольных сумм, управление доступом и выполнение других служебных операций.
Контроллер СХД — это функциональный блок, поэтому физически он может быть представлен совершенно разным набором оборудования.
RAID-контроллер
В теории, понятие RAID-контроллера и контроллера СХД часто представляются как тождественные. Это связано с тем, что они оба выполняют свою основную функцию — создают и управляют дисковым массивом. На практике же под RAID-контроллером часто подразумевают адаптер, который вставляется в сервер и создает массив из подключенных накопителей. В таком случае RAID-контроллер создает подсистему хранения данных для конкретного локального клиента (инициатора), но не является СХД в ее устоявшемся значении.
Рисунок 8. RAID-контроллер от Microchip.
Контроллер СХД как специализированный компьютер
Если мы говорим о системе хранения данных как о самостоятельной единице инфраструктуры с подключаемыми по сети клиентами, то в этом случае контроллер СХД — это специализированный компьютер с управляющим ПО. Он оснащен материнской платой, центральным процессором и модулями оперативной памяти. Физически такой контроллер может размещаться как в специализированном корпусе, так и в обычном корпусе для монтажа в стойку.
В некоторых решениях управляющее ПО может брать на себя функцию создания RAID-массива из накопителей, что освобождает от необходимости использовать аппаратный RAID-контроллер. Такой механизм часто применяется в программно-определяемых СХД (software-defined storage), у которых контроллер системы может быть реализован на базе стандартных серверных платформ.
Рисунок 9. Supermicro 2029P-E1CR24H — пример стандартной серверной платформы для программно-определяемых СХД.
Двухконтроллерный режим
Системы хранения данных могут быть одноконтроллерные, двухконтроллерные и многоконтроллерные. Последние два варианта используются для повышения производительности, а также повышенной отказоустойчивости: при аппаратном сбое активного контроллера, второй узел «подхватывает» его работу без остановки всей системы.
Рисунок 10. Схема двухконтроллерной СХД на базе RAIDIX.
В двух- и многоконтроллерных конфигурациях узлы соединены каналами связи. Эти каналы могут отличаться в зависимости от архитектуры и функциональных особенностей системы. Например, в классической двухконтроллерной системе на базе RAIDIX это:
- Интерконнект между узлами (Heartbeat) — Ethernet-соединение между узлами для проверки работоспособности контроллеров.
- Синхронизация кэша (Cache sync) — соединение для синхронизации кэша на основе протоколов IB-SRP, iSCSI или SAS.
Стоит отметить, что наличие двух контроллеров не означает использование двух отдельных физических корпусов. Нередко дублирующие материнские платы контроллеров размещаются в разных отсеках внутри одной платформы (рисунок 11).
Рисунок 11. Два контроллера внутри одного серверного корпуса.
Вычислительные ресурсы
С увеличением количества выполняемых функций и используемых накопителей, системе требуется больше вычислительных ресурсов. Например в одноконтроллерной СХД RAIDIX на 60 накопителей для оптимальной производительности требуется 2 восьмиядерных процессора с частотой не ниже 2.1 ГГц и 48 ГБ оперативной памяти, а для системы на 600 дисков требуется 2 восьмиядерных процессора с частотой уже от 3.5 ГГц и более 256 ГБ оперативной памяти.
В качестве процессоров для СХД сейчас в основном используются x86 чипы Intel Xeon и, чуть реже, AMD EPYC. Существуют решения собранные на других процессорах (например, на отечественном Эльбрусе), но они менее популярны на рынке.
Таблица 3. Базовые характеристики серверных процессоров Intel и AMD
Intel Xeon Scalable | AMD EPYC | |||||
Bronze | Silver | Gold | Platinum | 1-Socket | 2-Socket | |
Кол-во сокетов | 1-2 | 1-2 | 2-4 | 2-8 | 1 | 2 |
Кол-во ядер | 6-8 | 4-12 | 4-22 | 4-28 | 16-32 | 16-32 |
Базовая частота | 1.7 ГГц | 1.8-2.6 ГГц | 1.9-3.5 ГГц | 2.0-3.6 ГГц | 2.0-2.4 ГГц | 2.0-2.4 ГГц |
Тип поддерживаемой памяти | DDR4-2133 | DDR4-2400 | DDR4-2666 | DDR4-2666 | DDR4-2666 | DDR4-2666 |
Кол-во линий PCIe | 48 | 128 |
На объем вычислительных ресурсов в значительной мере влияют установленные бизнес-требования к инфраструктуре хранения, характер и интенсивность нагрузок, а также существующее сетевое окружение.
Пользовательский интерфейс и особенности настройки
Для настройки Intel VROC материнская плата предлагает не слишком замысловатый и достаточно дружественный пользовательский интерфейс. IT-администраторам, возможно, будет удобнее воспользоваться консольным вводом команд mdadm, и большая часть работы по установке и настройке Intel VROC будет проделана автоматически. IT-профессионалы без труда смогут использовать Intel VROC без загрузки разных дополнительных фишек. На экране BIOS пользователь видит физически доступные диски и может создавать свои RAID-тома.
Далее можно задать имя тома (в данном примере – Volume0), выбрать уровень RAID и включить опцию «RAID spanned over VMD Contr» для обоих VMD-контроллеров Intel.
Когда RAID-массив создан, пользователю предлагается набор действий, например, стереть данный RAID-том или сделать его загрузочным.
Наконец, пользователь может переустановить систему в состояние без RAID или удалить/переместить RAID-данные с дисков.
Когда система настроена и запущена в среде CentOS 7.4, конфигурация RAID-томов готова к использованию. Для томов уровня RAID5/10 вы можете посмотреть статистику фонового процесса инициализации с помощью команды mdstat или, при желании, вручную изменить всю RAID-группу целиком. На уровне BIOS большая часть рутинной работы по настройке и запуску RAID производится автоматически, но сюда не относятся операции удаления/перемещения, которые пользователь осуществляет на дополнительном уровне настройки.
Заключение
Итак, в качестве примеров, иллюстрирующих производительность технологии Intel VROC на платформе EchoStreams 1U, мы рассмотрели результаты тестирования четырех различных RAID-конфигураций, каждая из которых работает с совокупными данными восьми одинаковых NVMe SSD (модель Intel P4510). Можно с легкостью назвать «победителем» конфигурацию RAID0, но этот результат вполне объясняется принципом работы этого и других уровней RAID. Давайте начнем с нижней части турнирной таблицы; как можно было заметить с самого начала, массив RAID5 сильно теряет в скорости записи в связи с резервированием одного диска и распределенным хранением кодов четности – и это четко отражается на результатах. При записи в массив RAID10 диски синхронно дублируют друг друга, поэтому потери в скорости, связанные с избыточностью, существенно меньше по сравнению с RAID5. Еще немного быстрее массив JBOD (Just a Bunch Of Disks), который просто объединяет несколько физических дисков в один логический. Массив RAID0 лидирует по скорости, поскольку ориентирован именно на максимизацию производительности и использует преимущество распределенного чтения/записи данных сразу несколькими дисками (striping), однако при этом теряет в надежности, жертвуя возможностью восстановления данных при отказе одного из дисков. Но все приведенные здесь данные тестирования, с учетом особенностей функционала соответствующих опций RAID, подтверждают тот факт, что технология Intel VROC работает хорошо и на платформе с соответствующим уровнем аппаратного обеспечения дает закономерные и стабильные результаты.
Мы не будем подробно разбирать каждый результат в отдельности (четыре RAID-конфигурации дают в общей сложности 64 результата), а вместо этого выделим наиболее яркие моменты. В 4-KБ тестах массив JBOD достиг скорости чтения почти 3 млн IOPS с задержкой, не выходящей за пределы 1 мс, а массив RAID0 вышел на отметку 1.9 млн IOPS с задержкой всего 1.35 мс. В тестах на 64-КБ последовательное чтение/запись мы получили очень приличные скорости – 22.7 и 7.8 ГБ/с соответственно. В тестах SQL мы получили скорости 2.5 млн IOPS, 2.1 млн IOPS (тест 90-10) и 1.75 млн IOPS (тест 80-20) при задержке, не превышающей 1.7 мс. В тестах Oracle были получены скорости 1.47 млн IOPS, 2.1 млн IOPS (тест 90-10) и 1.76 млн IOPS (тест 80-20) при задержке, не превышающей 2.18 мс. Тесты VDI позволили выявить следующие показатели: FC Boot – 1.4 млн IOPS, FC Initial Login – 430 тыс. IOPS, FC Monday Login – 436 тыс. IOPS, LC Boot – 821 тыс. IOPS, LC Initial Login – 277 тыс. IOPS и LC Monday Login – 279 тыс. IOPS.
В конечном счете, технология Intel VROC позволяет производителям готовых систем (например, EchoStreams) упростить организацию RAID-массивов из NVMe SSD. В результате EchoStreams может предложить отличные показатели пропускной способности и задержки без сопутствующего усложнения и удорожания системы. Более того, благодаря дополнительному функционалу Intel VMD заказчики EchoStreams получают системы, отличающиеся большим удобством эксплуатации и обслуживания – они поддерживают горячую замену NVMe SSD, систему светодиодной сигнализации, позволяющую быстро определить неисправный NVMe диск, и опцию предварительно сконфигурированных загрузочных RAID-массивов. Пользовательские сценарии здесь весьма разнообразны, но очевидно, что наибольшие возможности эта система предоставляет сетям CDN; в целом она дает преимущества всем, кто использует RAID-массивы на уровне предприятий, применяя самые быстрые современные накопители и широко распространенные сетевые интерфейсы.
Заключение
Оборудование современной СХД можно представить как цепочку уровней, по которым происходит передача и обработка данных между местом их хранения и клиентом. Такое представление процесса дает хорошее понимание того, что может стать «бутылочным горлышком» производительности, какой компонент оборудования несет избыточные характеристики и за счет чего можно сократить общую стоимость решения.
Использование этих знаний поможет сориентироваться при выборе оборудования для СХД, а также позволит упростить процесс подбора компонентов при обновлении и модернизации существующих систем.