Ранее я рассказывал о результатах проверки работы некоторых функций младшей модели OceanStor Dorado V6 от компании Huawei. Была протестирована работа мгновенного виртуального снимка HyperSnap, функций создания мгновенных снимков с высокой частотой HyperCDP и полных копий исходных данных с использованием расписания HyperClone, а также настройки приоритезации потоков ввода-вывода SmartQOS.


Более подробно об организации стенда, подключении оборудования и проведенных ранее испытаниях можно прочитать в предыдущей части.


Ну а теперь, как и обещал, перейдем к тестированию производительности и отказоустойчивости.


Проверка производительности


Т.к. перед нами младшая модель линейки, нет смысла требовать от нее миллионов IOPS, как показывают рекламные проспекты старших моделей. С другой стороны, это куда более массовая и доступная модель, порой конкурирующая по цене с гибридными и даже обычными «шпиндельными» системами хранения данных других производителей. Тем интереснее посмотреть, на что она способна.


Стоит отметить один крайне положительный момент —- для партнеров доступен не только классический конфигуратор, но и инструмент под названием eDesigner, который позволяет получить теоретические данные о вероятной производительности при том или ином профиле нагрузки СХД. В нашем случае всё должно выглядеть так.



Рисунок 1. Инструмент eDesigner для получения данных о вероятной производительности.



Рисунок 2. Инструмент eDesigner (продолжение).


Для проведения теста создано 16 виртуальных разделов LUN по 512 Гб, которые были подключены к двум виртуальным машинам (гостевым системам), по 8 LUN на каждую. Для нагрузки СХД на виртуальных машинах была запущена утилита-бенчмарк VDBench от Oracle с параметрами, указанными выше в eDesigner. А именно:


  • размер блока — 8 Кб;
  • Dedup & Compression Ratio — 2.0;
  • чтение — 70%;
  • запись — 30%;
  • случайное чтение.

Примечание. Я неспроста указал параметр Dedup & Compression. На тестируемой СХД была установлена лицензия Effective Capacity License, которая по умолчанию включает такие технологии, как SmartDedupe и SmartCompression. Таким образом, все поступающие на СХД данные проходят процедуру дедупликации и компрессии прямо на лету (inline) и только после этого записываются на носители. Понятное дело, это отнимает некоторые ресурсы СХД, и не упомянуть об этом в рамках теста производительности я не мог. Кстати, сама лицензия покупается на эффективный объем данных.


Результат тестирования даже превзошел расчетные цифры. Никаких политик SmartQOS мы не использовали, ведь поставленная цель — получить пиковые суммарные показатели IOPS.



Рисунок 3. Слева — загрузка процессоров на СХД, справа — окно работающей утилиты VDBench на хостах.



Рисунок 4. Показатели производительности в интерфейсе Dorado V6 3000.


Как видно из первого скриншота, данный тест смог загрузить процессор одного из контроллеров под 100%. Нагрузка не могла быть полностью распределена по контроллерам по двум причинам:


  1. Несмотря на то, что в настройках гипервизора оба доступных пути до СХД были назначены как «Active (I/O)», траффик неравномерно распределился на них;
  2. Установленный на тестовых виртуальных машинах драйвер UltraPath не всегда корректно работает с RDM, и производитель этого не скрывает, т.к. данная информация доступна на сайте поддержки. Вероятно, это и явилось основной причиной такой неравномерной загрузки CPU на СХД.

В любом случае, я бы не стал называть сложившуюся ситуацию проблемой, ведь итоговый численный показатель производительности превысил отметку в 130000 IOPS при расчетных 114060. А стенд для тестирования у заказчика, в свою очередь, собирался по принципу «я его слепила из того, что было». Таким образом, инструмент eDesigner не только не завысил оценку, но даже занизил ее. Это, в свою очередь, даёт зеленый свет на использование подобных помощников в расчетах без дополнительных коэффициентов на погрешность.


Здесь же не лишним будет отметить и технологии по отслеживанию износа SSD-накопителей — Global wear leveling design и Global anti-wear leveling design.


Global wear leveling design позволяет равномерно распределять нагрузку между носителями информации, изнашивая SSD-диски равномерно. При достижении 80% износа в игру вступает Global anti-wear leveling design. Нагрузка на диски меняется на неравномерную с градиентом в 2%, что помогает избежать массового одновременного выхода из строя множества дисков. Иными словами, СХД «добивает» худшие диски, предупреждая о необходимости их замены, и тем самым продлевает жизнь остальных носителей.


Отказоустойчивость контроллеров


Два контроллера и единый кэш позволяют реализовать отказоустойчивую работу СХД.


В качестве имитации сбоя для тестирования отказоустойчивости можно перезагрузить один из контроллеров. Для этого необходимо зайти на СХД по SSH и, перейдя в режим разработчика, ввести следующий набор команд:


change user_mode current_mode user_mode=developer


reboot controller controller=0B


Примечание. Все действия, выполняемые в developer-режиме, должны проходить под руководством R&D инженеров Huawei, о чем предупреждает и интерфейс СХД при вводе команды. В данном случае операция проводилась «на свой страх и риск».


Выполняя подобные операции, важно не ошибиться с контроллером и не перезагрузить тот, на который был выполнен вход на веб-интерфейс или SSH. Это может быть чувствительно на этапе проверки, если подключен только 1 management-интерфейс, как было у нас. В такой ситуации при ошибке выбора контроллера для перезагрузки произойдет обрыв соединения.


Законы «Мерфи» никто не отменял, и мы сами при тестировании сначала по ошибке перезагрузили именно тот контроллер, к которому выполнили подключение. Поэтому принято решение переделать тест, выбрав на сей раз верный контроллер для перезагрузки. На рис.5 видно, что мы практически подряд перезагружали сначала первый, а затем и второй контроллер.


Для эмуляции работы сервиса в очередной раз обратимся все к тому же VDBench с щадящими настройками для создания нагрузки. В данном случае мы говорим не о производительности, а об отказоустойчивости.



Рисунок 5. Слева — интерфейс командной строки Dorado V6 3000. Справа — работающая на протяжении всего теста утилита VDBench.


После перезагрузки контроллера показатели IOPS на секунду опустились до нуля, но буквально сразу вернулись к изначальным показателям, а сам эмулируемый «сервис» не пострадал. VDBench, как и любое другое приложение, при отсутствии ответа и определенном таймауте просто прекращает работу. На графиках производительности отчетливо видно, как вся нагрузка ушла на оставшийся контроллер. В то же время, как только другой контроллер заработал в штатном режиме и начал синхронизировать данные из кэша, началась балансировка нагрузки, которая для нашего хоста, эмулирующего работу сервиса, оказалась абсолютно прозрачной и никак не повлияла на работу.



Рисунок 6. Слева — интерфейс Dorado V6 3000, графики производительности контроллеров и момент перезагрузки (выделен красным). Справа — работающая на протяжении всего теста утилита VDBench.


Обновления без прерывания сервиса


В новой линейке Dorado V6 наконец-то появилась возможность обновления прошивки через веб-интерфейс без помощи фирменной утилиты SmartKit. Правда, пока речь идет только об установке патча в рамках текущей версии прошивки, но работы в этом направлении ведутся, и прогресс отчетливо виден. Мы попробовали обновить СХД, предварительно загрузив ее под 100%, по аналогии с тем, как делали в тесте проверки производительности. И ожидаемо получили отказ, так как при проверках, которые выполняются на начальных этапах процесса прошивки, загрузка CPU превышала допустимые значения.



Рисунок 7. Попытка установки патча через веб-интерфейс СХД при пиковой нагрузке.


Снизив же профиль нагрузки, мы успешно поставили патч. Как видим, несмотря на некоторый разброс в показателях IOPS, утилита VDBench продолжила свою работу и каких-либо прерываний в операциях ввода-вывода замечено не было.



Рисунок 8. Успешное обновление СХД через веб-интерфейс.


Итоги


Подводя итоги, хочется отметить, что тестирование позволило, в первую очередь, отбросить все ранее имевшиеся сомнения заказчика как с точки зрения производительности системы, так и с точки зрения функциональности и удобства использования. Лично я вижу большой прогресс в развитии веб-интерфейса СХД по сравнению с предыдущим поколением. Да, он все еще не идеален: например, те же глобальные обновления прошивки можно выполнить только с помощью специальной утилиты SmartKit. Однако удобство и интуитивность элементов управления — на очень высоком уровне.


Порадовал и тот факт, что инструменты Huawei для подбора СХД и оценки производительности не завышают показатели, что в конечном итоге позволяет подобранной системе не упасть в грязь лицом в условиях суровой реальности. И все-таки, на мой взгляд, младшая модель пусть и хороша собой, но вписана в новую линейку Dorado V6 с некоторыми допущениями. К примеру, поддержки NVMe и «умных» полок расширения с возможностью самостоятельного ребилда данных (Intelligent DAE with Kunpeng chips) здесь нет. По крайней мере — пока. Т.к. именно в момент написания данного материала выяснилось, что Huawei готовит еще одну версию Dorado 3000 V6, которая будет поддерживать и NVMe. Никаких подробностей на эту тему пока нет, поэтому остаётся лишь ждать новостей. Но стала ли тестируемая Dorado на SAS-дисках от всего этого хуже? Конечно, нет.


Примечание. На момент написания данного материала в конфигураторе Huawei отсутствовал вариант СХД Dorado 3000 V6 с контроллерами NVMe, однако в eDesigner при выборе последней версии программного обеспечения он появился.



Рисунок 9. eDesigner «намекает» на появление NVMe-версий Huawei Dorado 3000 V6.