RAIDIX: тернистый путь к светлому счастью? Разбор на винтики
Добрый день, уважаемые читатели! Я являюсь архитектором по инфраструктурным решениям. В этой статье расскажу про свой личный опыт работы программной СХД RAIDIX 5.1 — 5.2. Все изложенное — мой личный опыт, пройденный от сборки, тестирования, до внедрения.
О чем будет статья
В статье я расскажу то, с чем вы можете столкнуться при использовании данного продукта: для кого-то это может быть полезным при выборе, т.к. в маркетинговых материалах вы этого точно не прочтете, а тем более не услышите на презентациях.
Конечно, у меня будут проходить параллели с именитыми игроками рынка СХД (ну не смогу я без этого), т.к. мой путь работы с СХД начинался еще в те далекие времена, когда господствовал IBM со своей серией DS и EMC со своей серией Clariion. Через мои руки прошло несметное число СХД, и я ярый поклонник классических СХД, как бы косо на меня не смотрели поклонники HCI и выделенных серверов со встроенными дисками. Но я остаюсь при своем мнении, что СХД — это эталон удобства, масштабируемости и отказоустойчивости.
Ремарка: я буду говорить только про двух контроллерный вариант, т.к. конфигурация с одним контроллером — не для боевой нагрузки, тут же нет никакой отказоустойчивости и принципа СХД. С таким успехом можно взять просто сервер с RAID контроллером SAS HBA + JBOD. Вот и не тратим лишние деньги, ну это мое личное фиии…
Преамбула
Свое повествование начну с того, как я начал дружить с этой системой и периодически её ненавидеть, плевался и проклинал тот день, когда я сел за баранку этого пылесоса, а потом смирялся и успокаивался, что вроде даже и работает.
Самое первое, что вы слышите на презентациях: «у вас нет привязки к железу и вы соберете её на всем, что есть под руками». На самом деле, это миф — и у производителя есть целый большой список совместимости железа, с которым эта СХД взлетит и будет летать. Но летать может практически все (но не долго, как и фанера над Парижем).
Начнем по порядку. Мы все привыкли, что в базе, если это low- или middle-хранилка, то у неё на борту сразу должно идти в головном устройстве 2 контроллера, 24 диска 2.5 или 12 дисков 3.5, в HI-END зачастую отдельно блок контроллеров, и дальше уже к ним идут полки — я говорю сейчас про всем привычные и самые распространенные варианты middle, а-ля DELL-EMC Unity, Fujitsu DX, Huawei Dorado, Netapp FAS.
И вот тут мы приходим к тому, что надо найти такую железку, в которой будет в одном устройстве сразу два сервера и встроенный бэкплейн с дисками, которые будут доступны обоим серверам. Или же берем два сервера, скручиваем их вместе изолентой, и обязательно сервера в 2U и JBOD с двумя SAS контроллерами, и это уже все будет занимать 6U, а не сервера 1U (дальше расскажу почему так, а не иначе). В итоге мы получаем такой большой бутерброд, который отъедает кучу места у нас в шкафу.
Поиск подходящей платформы
Так вот, на мировом рынке такие сервера делают два производителя: AIC и Gigabayte. У нас сегодня можно купить, к сожалению, только AIC — и то не все модели, а если хотите конкретную модель, ждите 6–9 месяцев под заказ. Также сразу отмечу, что в листе совместимости этих моделей может не быть, и никто гарантировать работоспособность не будет –, но по опыту все заводилось, тестов на котиках делал много.
Сборка Франкинштейна
Мы нашли на выбор подходящие железки от AIC из раздела «Серверы высокой доступности». И тут мы видим две подходящие для нас модели в исполнении 2U — классика жанра, с двумя серверами, радуемся, прыгаем, хлопаем в ладоши, закупаем нужные модели, идем в лабораторию, открываем инструкцию ПО с требованиями и скрупулёзно собираем нашего «Франкенштейна».
Ставим 2CPU, 64 Гб RAM:, а далее, для того, чтобы работало 2 контроллера, надо поставить сетевую карту с двумя портами 25G или Infiband для синхронизации внутреннего кэша (там тоже есть ограничение по производителям и моделям). Ставим внешнюю SAS HBA карту, тоже долго ищем из листа совместимости.
И вот тут самое веселое: в каждом сервере всего = 2 PCI-E слота, а мы поставили только интерфейсы для бэкенда, но для фронтенда нам нужна FC HBA или ISCSI HBA.
• В случае с ISCSI мы можем выкрутиться со встроенной картой на 10G, (да, кто-то может
сказать «для продакта надо 25G, фу, мы живем в 21 веке, и какие вообще 10G, но кому-то за
глаза хватит»).
• В случае же с FC HBA, то мы приплыли. Ну, думаю, ладно, буду тестировать без внешней
полки, только на внутренней корзине. Выкидываем мы SAS HBA, достаем любимый Qlogic 2692
и сразу вспоминаем Гомера Симпсона когда пытаемся карточку поставить, но ничего не
получается. Первое — она длинная, мешает кулер от CPU, второе — «ну я же все равно хочу её
поставить и все это дело запустить». Матерясь на весь китайский род с их конструкторами, снимаю кулер и CPU, пересыпаю память на основную шину и снова пытаюсь поставить HBA — и тут я просто гневаюсь. Мне кажется, мои возмущения слышали в радиусе километра и звенели стекла, т.к. планка HBA не встает в отверстие на задней крышке.
Тут я послал всех китайцев лесом. Претензий к RAIDIX нет, кроме того, что надо столько PCI-портов, а вот к конструкторам AIC у меня появилась ненависть. Но я не остановился: есть еще платформа на 4U и 24 слота для дисков, которые универсальные — и для дисков 2.5, и для 3.5. Опять мы получаем большого нерационального монстра в 4U, и это только головное устройство.
Оживление Франкинштейна
С моделью на 4U сборка подопытного прошла успешно. Все встало как надо, и я даже подключил дополнительно внешнюю полку на 24 диска. Конечно, то еще занятие было подобрать DAC-кабели 25G с нужной прошивкой для карт Mellanox: «а почему не оригинальные?», спросите вы. Да потому что в России их днем с огнем не сыщешь, а кто мне поставил нужные DAC-кабели с нужной прошивкой не буду писать, чтобы не было претензий.
Такая же прелесть была и SAS-кабелями для подключения внешней полки, поэтому если кто-то мне говорит «да для неё можно купить комплектующие в любом сетевом магазине» я его пошлю именно туда… И как же я с тоской вспоминал те времена, когда открывал уже собранные на заводе хранилки от EMC, Netapp, Fujitsu, Huawei и HP, которые собраны без сучка и зазубрины, в которых каждый кабель подключается как по маслу, где в комплекте даже был набор инструментов и перчатки.
Еще проблема из серии «да я для самосбора пойду все куплю в соседнем сетевом магазине любой диск», купив нужные мне диски HD SAS 2.5 на 1.8 ТБ, в размере 9 штук, за месяц до сборки, понял свой промах в количестве для требуемых тестов, а тут засада увы и ах, их нигде нет, сняты с производства –, а это, извините, не прошло и 5 лет, приплыли.
Он жив, он жив
По итогу мой Франкенштейн собран, на его филейной части — пучки проводов, потому что связь между нодами у нас идет по двум сетевым картам, по двум, Карл! Кто купит и не захочет продлять гарантию от поставщика, ух как будет любить обслуживать такое чудо: между портами нельзя промахнуться и, как уже говорил, имеется засада с дисками и прочие проблемы с запчастями.
Установка самого ПО RAIDIX проходит на ура, главное под руками держать инструкцию, чтобы в нужный момент выбрать нужный параметр. Далее все тестировал на виртуализации вражеского производителя Vmware, подключался по DAS через FC 16G. Конфигурация СХД была такая, 28 ядер на контроллер, 64ГБ RAM на контроллер, 9 SSD SAS 3.84 и 15 HD SAS 1.8ТБ.
Ну и переходим к сладенькому: DC на RAIDIX собрал, без особых проблем. Кому интересно, прочитайте инструкцию от производителя — там довольно все понятно, но вообще не интуитивно.
Лицензии у меня были на весь функционал и даже на ERA, так что дали мне поиграться с котиками в полной мере.
Конфигурирование
Первое что мы делаем, конечно же собираем RAID-группы: у меня их всего две.
• Первая — RAID 5 на SSD: выбрать пятерку, потому что надо было делать сравнение для
заказчика с его текущей старой хранилкой IBM, которой уже было 10 лет, плюс у него уже
стояли SSD.
• Вторая — RAID-группа 7.3: там заказчику не сильно нужно было получение
информации. Также была 5 SSD MLC для SSD cache.
Начал с SSD — и тут сразу мы, как в сказке, стоим на распутье у камня: создать RAID 5 или 5i. Учитывая, что 5i будет инициализироваться много часов, а работать во время инициализации с данной группой вообще нельзя до конца инициализации, я вспоминаю первого мамонта, с которым я начал работать в далеком начале своей карьеры. Это IBM DS 4700 — даже у него можно было работать с RAID-группой во время инициализации, а про современный EMC, Fujitsu, Huawei и даже Sugon, собранный дядей Лао в подвале Шанхая, я молчу — тут тоже все работает.
Ладно, делаю обычную пятерку — с ней можно работать до конца инициализации. Вишенка на торте в том, что надо посмотреть в гайде, какой размер кэша необходимо выделить для данного рейда в зависимости от выбранного количества дисков. Ну и все логично вроде бы: у них чем больше дисков, тем больше надо кэша, кэш будет резервироваться от всей имеющейся RAM в узле, и вдобавок мы строго привязываем RAID-группу к конкретному узлу.
Чек-лист «на запомнить»:
• в голове мы всегда должны держать, сколько всего памяти мы выделили, чтобы в
случае факапа одного и узлов нам хватило памяти на втором;
• также надо не забыть про размер страйпа, и после опять идем в гайд;
• после создания обязательно надо проверять, что отсинкался КЭШ (рис. 1). И если не
отсинкался, значит в случае факапа на ноде, где привязана RAID-группа, группа не
переедет на соседнюю.
Далее пошел делать диск, и вижу, что мне не доступен размер блока в 512 б по умолчанию — так как когда я делал RAID, размер был 4Кб. Ну зачем вы это сделали? Это ведь приводит к боли и страданию.
Пока все собрал, подготовил машинку с IOMETR для проведения замеров и понял, насколько сходится маркетинг с реальностью.
Тестирование производительности и проверка маркетинга
Запустил первый тест на RAID 5 SSD и вижу неутешительную картину в попугаях.
Тут вспоминаю слова маркетологов: «самое большое количество золота вы получите, если купите опцию ERA, которая дает максимум производительности на SSD»… Хорошо, RAIDIX выдал набор всех лицензий. Далее иду снова по шагам:
1. Снова разбираю мою RAID-группу на SSD.
2. Собираю уже с опцией ERA RAID 5.
3. Все смежные параметры выставляю согласно официальной инструкции.
4. Монтирую диск.
5. Опять запускаю аналогичный тест.
В этот раз получаю результат в 3+ раза выше, чем без опции ERA, но все равно мало: 21573 попугая на 8 SSD-дисках
Здесь решил проверить, что будет, если сделать без опции ERA обычный RAID 5i Generic, 5i — тот, инициализированный, и поставить сопутствующие настройки аналогично ERA. На меньшем количестве воркеров я получил уже 49379 попугаев.
И тут я понял, что данная система требует знаний связанных тонкой настройкой параметров — про которые мы уже давно забыли, т.к. нас разбаловали полной автоматизацией мастодонты рынка СХД EMC, NETAPP, IBM, Huawei.
Прибегнув частично к методу научного тыка, получил следующие набор параметров (скрин ниже), с которым снял на RAID 5i SSD 240000 попугаев. На RAID5 SSD ERA результат получился больше 280000 попугаев. Как по мне, разница не очень ощутима, но для кого-то это может быть критично.
Несколько ложек дегтя в бочке с медом
Таковые я нашел во время тестирования.
1. Отсутствие автоматического Fail-Back ноды после восстановления
История такая: если в двухконтроллерном исполнении по какой-либо причине выключится нода, RAID-группы спокойно уедут на вторую рабочую ноду и будут там продолжать жить, даже после восстановления ноды. А нода, которая уже восстановлена, будет не синхронизирована и не задействована, пока руками не зайти и не запустить ее.
По факту, мы остаемся жить только с одной рабочей нодой, что для меня довольно не привычно, т.к. у всех современных производителей это автоматизировано, и с сиcтемой RAIDIX можно очень неудачно попасть в просак.
Данный ручной Fail-Back задокументирован как фича, а не баг.
2. Отсутствие отображения UID LUN в системе RAIDIX
Вернее, какой-то ID в ней присутствует, но когда презентуешь диск в виртуализацию VMWare, или даже просто физическому серверу с Linux, то UID диска не соответствует внутреннему ID в системе RAIDIX. А это не очень хорошо: бывают задачи, когда необходимо сделать несколько одинаковых дисков и презентовать их на сервер, и тут ты смотришь на эти диски как на близнецов, у которых никаких отличий для сопоставления.
Немного выводов
Что меня очень порадовало — сломать RAIDIX крайне сложно, он надежный как танк. Я выключал его много раз на лету, после загрузки все работало, выдергивал на лету диски, ребилд запускался, а система продолжала работать. Отключал на лету дисковые полки, и она восстанавливалась после обратного подключения полок. Отключал один из двух путей к дисковой полке, и она все равно работала.
Конечно, после EMC, Netapp, Fujitsu и BM СХД RAIDIX действительно кажется неудобной и топорной — она возвращает нас в начало 2000х, когда необходимо было самостоятельно высчитывать нагрузку на диски, очереди и множество параметров, про которые многие и вовсе уже забыли. В ней нет привычного для всех нас функционала RAID Migraition, при наличии виртуализации в принципе этот функционал не нужен, но вот при выделенных серверах может создаться проблема.
Но основную свою функцию она выполняет: хранение данных на ней возможно. Оно довольно надежно, но главное следовать инструкциям и не забывать переключать Fail-Back. Я очень надеюсь, что пройдет еще 3–4 года и разработчики и архитекторы из RAIDIX догонят функционал EMC и NetApp. И самое главное, что RAIDIX создали свой собственный интересный продукт и его развивают. Данный продукт в текущих реалиях Российского рынка отличный выбор в качестве Системы Хранения Данных.