Эксплуатация технически сложного оборудования, типа систем хранения данных, подразумевает наличие у администратора определенных навыков. Однако высокие технологии шагают в массы. И, соответственно, растет число пользователей, впервые столкнувшиеся с ними. Уверены, что статьи в стиле How To являются отличным способом пополнить багаж знаний как для новичков, так и узнать нюансы и особенности для опытных пользователей.
В данной статье мы рассмотрим порядок подключения СХД Qsan к гипервизору VMware ESXi, а также по возможности дадим практические советы по тюнингу настроек для достижения максимальной эффективности использования оборудования.
В рамках данной статьи мы рассмотрим процессы подключения СХД Qsan с использованием блочных протоколов доступа iSCSI и Fibre Channel. Условно в процессе подключения можно выделить несколько основных этапов:
В статье приведены скриншоты настройки гипервизоров ESXi 6.7 под управлением vSphere. В случае Standalone ESXi пункты меню могут называться чуть иначе и ряд настроек отсутствовать.
Совокупность оборудования и линий связи между СХД и серверами образуют так называемую SAN сеть. Отказоустойчивое подключение участников SAN сети подразумевает постоянное наличие хотя бы одного пути между инициатором (хост) и таргетом (СХД). Т.к. СХД сейчас практически поголовно имеют минимум два контроллера, каждый сервер должен иметь связь с каждым из них. В простейшем варианте серверы подключаются к СХД напрямую. Такой режим работы называют Direct Attach. СХД Qsan поддерживают такой режим работы. В этом случае каждый сервер должен иметь двухпортовую HBA для соединения с каждым контроллером СХД. Т.е. между сервером и СХД будет 2 пути. При наличии максимального количества опциональных портов в таком режиме к СХД можно подключить до 10 серверов через iSCSI или до 8 серверов через Fibre Channel.
В большинстве случаев серверы соединяются с СХД через коммутаторы. Для большей надежности их должно быть два (в общем случае их, конечно же, может быть больше, но это они все равно делятся на две группы фабрики). Этим выполняется защита от выхода из строя самого коммутатора, линка и порта контроллера СХД/HBA. В этом случае каждый сервер и каждый контроллер СХД подключается к каждому коммутатору. Т.е. между каждым сервером и СХД будет 4 пути (в случае двух коммутаторов).
Важные замечания по поводу параметров SAN сети:
Для Qsan параметр MTU меняется на каждом порту каждого контроллера в меню iSCSI Ports
Для ESXi параметр MTU меняется у vSwitch: хост Configure Virtual Switches Edit для конкретного коммутатора
Для vKernel параметр MTU меняется хост Configure Virtual Switches Edit Settings для конкретного порта
Для получения инструкций по изменению MTU у физических коммутаторов рекомендуем обратиться к документации конкретного производителя.
Необходимые настройки на СХД можно разделить на два этапа:
Настраивать интерфейсы требуется в основном в случае использования протокола iSCSI: необходимо задать IP адреса портов на вкладке iSCSI Ports. IP адреса портов должны быть из разных подсетей, чтобы однозначно маршрутизировался трафик на стороне хоста.
В случае использования интерфейса Fibre Channel ничего настраивать, как правило, не нужно.
Далее необходимо создать пространство хранения. Сначала создается пул группа физических накопителей, работающих совместно. Пулов в пределах СХД может быть несколько. Накопители внутри пула объединяются в соответствии с выбранным при его создании уровнем RAID, обеспечивая заданную надежность. Пулы создаются на вкладке Pools Create Pool, где запускается пошаговый мастер.
Помимо обычных пулов Qsan поддерживает создание AutoTiering пулов при условии активации соответствующей лицензии. С принципом работы таких пулов можно ознакомиться в отдельной статье.
После создания пула(ов) необходимо создать тома (volume): Volumes Create volumes. Также запустится пошаговый мастер создания тома.
Необходимо задать требуемый размер тома, тип тома выбирается как RAID volume. На свойствах остановимся подробнее.
Заключительным этапом в настройке СХД является публикация томов для доступа к ним со стороны хостов через функционал LUN mapping Map LUN.
При использовании протокола iSCSI необходимо выполнить:
VMkernel Adapter (vmk#) | Physical Network Adapter (vmnic#) |
---|---|
iSCSI-1 (СХД Контроллер 1) | Active Adapters vmnic1 Unused Adapters vmnic3 |
iSCSI-2 (СХД Контроллер 2) | Active Adapters vmnic3 Unused Adapters vmnic1 |
Установки Failover меняются через изменение настроек Port Group
При использовании протокола Fibre Channel все гораздо проще: достаточно выполнить Rescan для обнаружения нового тома. В нашем примере это том с LUN ID = 1, доступный по 4 путям (по 2 на каждом порту HBA).
Следующим шагом будет создание Datastore на новом томе: Хост Actions Storage New Datastore.
По умолчанию VMware использует политику работы с многопутевыми устройствами как Most Recently User (MRU). Для большей эффективности и повышения производительности необходимо для каждого Datastore изменить политику на Round Robin, при которой все доступные пути до СХД будут использоваться равномерно. Политика меняется в меню Хост Storage Devices Наше Устройство Properties Edit Multi-Path. После применения политики Round Robin все пути будут использоваться для ввода/вывода (Active I/O).
В случае использования кластера из нескольких хостов ESXi действия, описанные выше, необходимо повторить на каждом из хостов кроме создания нового Datastore. Т.к. Datastore уже был создан ранее, он появится у остальных членов кластера после выполнения команды Rescan.
В рамках данной статьи конечно же были рассмотрены далеко не все операции, необходимые для каждодневного взаимодействия серверов ESXi и СХД Qsan. Более полная информация содержится в обязательных для ознакомления руководствах пользователей обоих вендоров.
Мы продолжаем цикл публикаций из серии How To для пользователей СХД Qsan. В данной статье пойдет речь о подключении СХД к серверам на базе Windows Server, в том числе при использовании функционала виртуализации Hyper-V.
В статье мы будем рассматривать подключения СХД Qsan с использованием блочных протоколов доступа iSCSI и Fibre Channel. Сам процесс подключения можно разделить на несколько основных этапов:
В статье приведены скриншоты настройки операционной системы Windows Server 2016/2019 с нелокализованным интерфейсом. Часть описания, не относящаяся напрямую к ОС, взята из нашего предыдущего обзора по настройке ESXi.
Совокупность оборудования и линий связи между СХД и серверами образуют так называемую SAN сеть. Отказоустойчивое подключение участников SAN сети подразумевает постоянное наличие хотя бы одного пути между инициатором (хост) и таргетом (СХД). Т.к. СХД сейчас практически поголовно имеют минимум два контроллера, каждый сервер должен иметь связь с каждым из них. В простейшем варианте серверы подключаются к СХД напрямую. Такой режим работы называют Direct Attach. СХД Qsan поддерживают такой режим работы. В этом случае каждый сервер должен иметь двухпортовую HBA для соединения с каждым контроллером СХД. Т.е. между сервером и СХД будет 2 пути. При наличии максимального количества опциональных портов в таком режиме к СХД можно подключить до 10 серверов через iSCSI или до 8 серверов через Fibre Channel.
В большинстве случаев серверы соединяются с СХД через коммутаторы. Для большей надежности их должно быть два (в общем случае их, конечно же, может быть больше, но это они все равно делятся на две группы фабрики). Этим выполняется защита от выхода из строя самого коммутатора, линка и порта контроллера СХД/HBA. В этом случае каждый сервер и каждый контроллер СХД подключается к каждому коммутатору. Т.е. между каждым сервером и СХД будет 4 пути (в случае двух коммутаторов).
- Фабрики между собой не соединяются для изоляции в случае возникновения ошибок в сети;
- Если протокол iSCSI делит использование коммутаторов с другими сервисами, то весь трафик iSCSI должен быть помещен в изолированный VLAN;
- Для протокола Fibre Channel необходимо настроить в коммутаторах зонирование по принципу один инициатор один или несколько таргетов для исключения влияния серверов друг на друга;
- Для iSCSI соединений со скоростью 10G и выше рекомендуется включить поддержку кадров большого размера (MTU=9000) с целью увеличения производительности. Важно помнить, что необходимо изменить MTU у всех участников сети: порты контроллера СХД, физические коммутаторы, физические и виртуальные порты сетевых карт серверов.
Для Qsan параметр MTU меняется на каждом порту каждого контроллера в меню iSCSI Ports
В Windows Server параметр MTU меняется в настройках драйвера
адаптера:
Control Panel\Network and Internet\Network Connections Свойства
конкретного адаптера Configure Advanced Jumbo Packet (у некоторых
адаптеров этот пункт может называться что-то типа Large
Packets)
Для получения инструкций по изменению MTU у физических коммутаторов рекомендуем обратиться к документации конкретного производителя.
Необходимые настройки на СХД можно разделить на два этапа:
Настраивать интерфейсы требуется в основном в случае использования протокола iSCSI: необходимо задать IP адреса портов на вкладке iSCSI Ports. IP адреса портов должны быть из разных подсетей, чтобы однозначно маршрутизировался трафик на стороне хоста.
В случае использования интерфейса Fibre Channel ничего настраивать, как правило, не нужно.
Далее необходимо создать пространство хранения. Сначала создается пул группа физических накопителей, работающих совместно. Пулов в пределах СХД может быть несколько. Накопители внутри пула объединяются в соответствии с выбранным при его создании уровнем RAID, обеспечивая заданную надежность. Пулы создаются на вкладке Pools Create Pool, где запускается пошаговый мастер.
Помимо обычных пулов Qsan поддерживает создание AutoTiering пулов при условии активации соответствующей лицензии. С принципом работы таких пулов можно ознакомиться в отдельной статье.
После создания пула(ов) необходимо создать тома (volume): Volumes Create volumes. Также запустится пошаговый мастер создания тома.
Необходимо задать требуемый размер тома, тип тома выбирается как RAID volume. Рассмотрим их более подробно.
Заключительным этапом в настройке СХД является публикация томов для доступа к ним со стороны хостов через функционал LUN mapping Map LUN.
Первоначально необходимо один раз установить на сервере компонент Multipath IO, который обеспечивает работу многопутевого ввода/вывода. Данное действие производится через стандартный диалог Add Roles and Features
При использовании протокола iSCSI необходимо выполнить:
При использовании протокола Fibre Channel все гораздо проще: достаточно выполнить Rescan для обнаружения нового тома. В нашем примере это том с LUN ID = 1, доступный по 4 путям. Как и в случае с iSCSI следует убедиться, что для диска установлена политика Round Robin, при которой все доступные пути до СХД будут использоваться равномерно.
Важное замечание касательно конфигурирования MPIO. По умолчанию Windows видит дисковые устройства по отдельности, т.е. каждый путь к устройству это отдельный диск.
Чтобы ОС склеила все одинаковые диски в единое устройство, необходимо в стандартной оснастке MPIO добавить новое устройство как многопутевое. Для iSCSI устройств устанавливается отдельное разрешение. По окончании настройки потребуется перезагрузить сервер. Данную настройку необходимо произвести однократно для каждой СХД. После чего все вновь презентованные диски будут опознаваться ОС как многопутевые.
В случае использования кластера из нескольких хостов Windows Server, действия, описанные выше, необходимо повторить на каждом из хостов. После чего диски, появившиеся в системе, можно добавлять в дисковые ресурсы кластера.
В рамках этой статьи были рассмотрены преимущественно базовые операции, необходимые для подключения серверов Windows Server к СХД Qsan. Для получения более полной информации настоятельно рекомендуется ознакомиться с руководствами пользователей, предоставляемыми обоими вендорами.
Окружающий мир определенно не такой, каким он был десяток лет назад. В то время никто бы не поверил, что за нами будет пристально следить 24 часа в сутки огромное количество видеокамер. Если раньше видеонаблюдение было развернуто лишь в наиболее уязвимых, с точки зрения безопасности, местах, то сейчас редко можно встретить даже мелкий магазинчик без собственных видеокамер. В крупных мегаполисах применяется масштабное наблюдение за улицами, дворами домов и прочими общественными местами. Можно по-разному относиться к постоянному наблюдению за людьми и объектами (кто-то видит в этом безопасность, а кто-то признаки тотального контроля), но решать технические вопросы в данной сфере все равно необходимо.
Типичная система видеонаблюдения представляет собой сегодня набор камер, программное обеспечение, осуществляющее запись, обработку и воспроизведение с них, а также пространство хранения для всего этого богатства. Разнообразие камер сейчас способно удовлетворить любой вкус и кошелек. Софта для работы с ними несколько меньше видов, но тоже достаточное количество. В данной же статье мы хотим затронуть вопросы в отношении пространства хранения, в том числе и практические аспекты в его планировании.
От использования DVR (такие маленькие коробочки, совмещающие в себе софт видеонаблюдения и один или несколько HDD для хранения результатов) сейчас уже почти отказались из-за проблем с масштабированием по производительности, количеству камер и емкости. Поэтому в качестве хранилища выступает либо набор дисков, расположенных внутри сервера, либо внешняя СХД с файловым или блочным доступом.
Собственно, от хранилища, каким бы оно не было, требуются весьма простые на первый взгляд параметры:
Объем определяется из количества камер и их типа (считай, разрешения и применяемым ими кодеком), а также глубиной хранения. Любые вменяемые производители камер, а уж тем более вендоры ПО по работе с ними, имеют в открытом доступе калькуляторы для расчета необходимой емкости в зависимости от ваших потребностей. Но в любом случае даже скромный десяток камер с временем хранения в две недели затребует нескольких ТБ дискового пространства. С ростом количества камер и глубины архива потребность в хранилище легко может идти на сотни ТБ и даже ПБ.
С производительностью несколько сложнее. Более 95% времени на хранилище осуществляется запись данных в последовательном режиме (т.е. в максимально комфортном для накопителей). Вместе с тем, периодически происходит поиск по индексной базе и воспроизведение материала. Конечно же на показатель производительности напрямую влияет количество и тип камер. Но современный софт давно научился кэшировать входящие потоки на стороне сервера прежде всего с целью индексации событий и объектов, попавших в объективы камер. Поэтому непосредственная запись на устройство хранения осуществляется крупными порциями по несколько ГБ. Отсюда и требования к хранилищу по части скорости записи относительно невелики: лишь бы успеть записать подготовленный материал за то время, пока набирается следующий. Однако итоговая производительность должна учитывать конкурентные запросы на поиск и воспроизведение, из-за чего массив должен содержать в себе достаточное количество HDD для этого.
О массиве было упомянуто неспроста. Ведь обеспечить первичную надежность (а вместе с тем и требуемую производительность) разумнее всего при помощи RAID. Дальнейшее увеличение надежности возможно уже только лишь за счет дублирования: контроллеров, путей, массива данных.
Внутренние диски сервера могут обеспечить все указанные выше требования лишь отчасти. Так емкость можно нарастить при помощи внешних полок расширения, если требуется обеспечить бОльшую глубину архива. Да и с производительностью дисковой подсистемы едва ли возникнут проблемы при той нагрузке, которую сможет обеспечить сам сервер (точнее ПО видеонаблюдения). А вот с надежностью могут возникнуть вопросы. Ведь будет единая точка отказа в виде самого сервера.
Нивелировать этот недостаток может внешняя система хранения. Если произойдет отказ сервера, потоки с камер можно перенаправить на другие серверы, которые, в свою очередь, могут без проблем получить доступ к пространству хранения временно выбывшего из строя собрата. Также возможно применение двухконтроллерных СХД для исключения самой СХД как точки отказа. Консолидация же множества серверов позволит сэкономить на дисках, не теряя при этом в производительности и той же надежности.
Если сравнивать между собой файловые и блочные протоколы доступа к СХД в контексте систем видеонаблюдения, то SAN системы будут иметь ряд преимуществ из-за более простой и потому более дешевой реализации системы хранения. Ведь чисто блочным СХД не требуются сверхмощное железо и продвинутые возможности встроенной ОС. Функционал типа дедупликации или тиринга будет бессилен перед сжатым видео, которое перезаписывается по кругу. Все это в конечном итоге положительно скажется на стоимости решения, разумеется, в пользу SAN.
Дальнейшие рассуждения справедливы в общем случае для СХД любого вендора. Но мы будем базироваться на продукции Qsan, рассматривая особенности реализации и применения их решений.
Если масштаб системы видеонаблюдения таков, что достаточно 1-2 серверов по обработке потоков, то абсолютно нерентабельно использовать в данной конфигурации внешние СХД (кроме случаев с требованиями к повышенной отказоустойчивости). Достаточно использовать внутренние RAID контроллеры и диски. При большем количестве серверов наличие СХД как раз, наоборот, позволит снизить стоимость решения за счет консолидации дисковых ресурсов.
При планировании построения дискового пространства в СХД стоит отказаться от желания сделать один большой массив на все случаи жизни из-за потенциальных проблем с производительностью и надежностью:
Интерфейс подключения СХД к серверам не играет большой роли с точки зрения производительности. Поэтому чаще всего используется максимально бюджетный вариант с iSCSI. Более того, в случае прямого подключения сервера к СХД вполне достаточно даже скорости 1GbE, благо дополнительные карты расширения с таким интерфейсом для СХД Qsan стоят дешевле портов 10GbE на коммутаторах. Но если подключение происходит все же с использованием коммутатора(ов), то 10GbE, конечно же, является предпочтительным.
В случае использования двухконтроллерных моделей СХД следует учитывать, что на стороне серверов должна быть поддержка MPIO. Акцент на этом моменте сделан не случайно: достаточно часто с целью удешевления на стороне видеосерверов используются клиентские версии ОС (Windows 7-10 и т.п.), которые не могут работать с MPIO.
Также не следует забывать, что блочный доступ подразумевает монопольное использование дискового ресурса конкретным сервером (кроме случаев кластеризации видеосерверов в виртуальных средах). Поэтому необходимо обязательно со стороны СХД настроить контроль доступа к публикуемым томам при помощи LUN Masking. В случае плановой или аварийной замены видеосервера будет достаточно изменить параметры LUN Masking для продолжения работы.
Если рассматривать выбор конкретной СХД для целей видеонаблюдения, то на эту роль вполне подойдут младшие модели (например, серию XCubeSAN XS12xx), поскольку предполагается работа с обычными HDD, latency которых просто несоизмеримы с производительностью контроллеров. При большом количестве дисков особенно выигрышно будут смотреться конфигурации с использованием полок высокой плотности сторонних производителей, благо Qsan официально поддерживает подобное. Переход на старшие линейки СХД оправдан лишь в тех случаях, когда суммарная потоковая запись на СХД предполагается выше, чем 3 ГБ/с, что характерно для очень больших инсталляций с несколькими десятками видеосерверов.
Номенклатура и возможности СХД Qsan позволяют использовать их в решениях по видеонаблюдению любого масштаба и любой сложности, а возможность установки в них совместимых накопителей делает итоговую стоимость оборудования максимально финансово привлекательной.
Всем привет. Мы продолжаем знакомить вас с системой хранения данных Аэродиск ВОСТОК, выполненной на базе российского процессора Эльбрус 8C.
В этой статье мы (как и обещали) детально разберем одну из популярнейших и интереснейших тем, связанной с Эльбрусами, а именно производительность. На тему производительности Эльбруса есть достаточно много спекуляций, причем абсолютно полярных. Пессимисты говорят, что производительность Эльбруса сейчас никакая, и чтобы догнать топовых производителей потребуются десятилетия (т.е. в условиях нынешней реальности никогда). С другой стороны, оптимисты говорят, что уже сейчас Эльбрус 8C показывает хорошие результаты, а в ближайшие пару лет с выходом новых версий процессоров (Эльбрус 16С и 32С) мы сможем догнать и перегнать ведущих мировых производителей процессоров.
Мы в Аэродиске люди практичные, поэтому пошли самым простым и понятным (для нас) путем: протестировать, зафиксировать результаты и только потом делать выводы. В итоге мы провели довольно большое количество тестов и обнаружили ряд особенностей работы Эльбруса 8С архитектуры e2k (в том числе, и приятных) и, конечно же, сравнили это с аналогичными СХД на процессорах Intel Xeon архитектуры amd64.
Кстати, более подробно о тестах, результатах и о будущем развитии СХД на Эльбрусах мы поговорим на нашем очередном вебинаре "ОколоИТ" 15.10.2020 в 15 00. Зарегистрироваться можно по ссылке ниже.
Мы создали два стенда. Оба стенда состоят из сервера с Linux-ом, подключенного через 16G FC-коммутаторы к двум котроллерам СХД, в которой установлено 12 SAS SSD 960 ГБ дисков (11,5 ТБ сырой емкости или 5,7 ТБ полезной емкости, если используем RAID-10).
Схематично стенд выглядит следующим образом.
Конфигурация оборудования следующая:
Для сравнения с аналогичной конфигурации на e2k использовалась похожая конфигурация СХД с похожим процессором по характеристикам на amd64:
Важное замечание: используемые в тесте процессоры Эльбрус 8С поддерживают оперативную память только DDR3, это конечно плохо, но не долго. Эльбрус 8СВ (в наличие его у нас пока нет, но скоро будет) поддерживает DDR4.
Для генерации нагрузки мы использовали популярную и проверенную временем программу Flexible IO (FIO).
Обе СХД сконфигурированы согласно нашим же рекомендациям по настройке, исходя из требований к высокой производительности на блочном доступе, поэтому используем дисковые пулы DDP (Dynamic Disk Pool). Чтобы не искажать результаты тестирования, на обеих СХД отключаем, компрессию, дедупликацию и RAM-кэш.
Созданы 8 D-LUN-ов в RAID-10 по 500 ГБ, каждый, суммарный полезный объём составляет 4 ТБ (т.е. примерно 70% от возможной полезной емкости данной конфигурации).
Выполняться будут основные и популярные сценарии использования СХД, в частности:
первые два теста эмулируют работу транзакционной СУБД. В этой группе тестов нам интересны IOPS-ы и задержка.
1) Случайное чтение маленькими блоками 4k
a. Размер блока = 4k
b. Чтение/запись = 100%/0%
c. Количество работ = 8
d. Глубина очереди = 32
e. Характер нагрузки = Full Random
2) Случайная запись маленькими блоками 4k
a. Размер блока = 4k
b. Чтение/запись = 0%/100%
c. Количество работ = 8
d. Глубина очереди = 32
e. Характер нагрузки = Full Random
вторые два теста эмулируют работу аналитической части СУБД. В этой группе тестов нам также интересны IOPS-ы и задержка.
3) Последовательное чтение маленькими блоками 4k
a. Размер блока = 4k
b. Чтение/запись = 100%/0%
c. Количество работ = 8
d. Глубина очереди = 32
e. Характер нагрузки = Sequential
4) Последовательная запись маленькими блоками 4k
a. Размер блока = 4k
b. Чтение/запись = 0%/100%
c. Количество работ = 8
d. Глубина очереди = 32
e. Характер нагрузки = Sequential
третья группа тестов эмулирует работу потокового чтения (пример онлайн трансляции, восстановление резервных копий) и потоковой записи (пример видеонаблюдение, запись резервных копий). В этой группе тестов нам уже интересны не IOPS-ы, а MB/s и также задержка.
5) Последовательное чтение большими блоками 128k
a. Размер блока = 128k
b. Чтение/запись = 0%/100%
c. Количество работ = 8
d. Глубина очереди = 32
e. Характер нагрузки = Sequential
6) Последовательная запись большими блоками 128k
a. Размер блока = 128k
b. Чтение/запись = 0%/100%
c. Количество работ = 8
d. Глубина очереди = 32
e. Характер нагрузки = Sequential
Каждый тест будет длиться один час без учета времени прогрева массива в 7 минут.
Результаты тестов сведены в две таблицы.
Эльбрус 8С (СХД Аэродиск Восток 2-Э12)
Intel Xeon E5-2603 v4 (СХД Аэродиск Engine N2)
Результаты получились крайне интересные. В обоих случаях мы хорошо утилизировали процессорные мощности СХД (70-90% утилизации), и при таком раскладе явно бросаются в глаза плюсы и минусы обоих процессоров.
В обеих таблицах зеленым цветом выделены тесты, где процессоры чувствуют себя уверенно и показывают хорошие результаты, ну а оранжевым цветом выделены ситуации, которые процессоры не любят.
Если говорить о случайной нагрузке небольшими блоками, то:
В последовательной нагрузке небольшими блоками картина другая:
А вот в последовательной нагрузке большими блоками картина прямо противоположная:
Есть ещё одна интересная особенность Эльбруса, на которую внимательный читатель может обратить внимание, посмотрев на таблицу. Если взглянуть на разницу показателей чтения и записи у Intel, то во всех тестах чтение опережает запись в среднем примерно на 50%+. Это норма, к которой все (в том числе и мы) привыкли. Если посмотреть на Эльбрус, то показатели записи значительно ближе к показателям чтения, чтение опережает запись, как правило, на 10 30%, не более.
О чем это говорит? О том, что Эльбрус очень любит запись, а это, в свою очередь, говорит о том, что этот процессор будет очень полезен в задачах, где запись явно преобладает над чтением (кто сказал закон Яровой?), что также является несомненным преимуществом архитектуры e2k, и это преимущество нужно развивать.
Сравнительные тесты процессоров среднего уровня Эльбрус и Intel для задач хранения данных показали примерно равные и одинаково достойные результаты, при этом каждый процессор показал свои интересные особенности.
Intel сильно превзошел Эльбрус в случайном чтении небольшими блоками, а также в последовательном чтении и записи небольшими блоками.
При случайной записи небольшими блоками оба процессора показывают равные результаты.
По показателям задержки Эльбрус выглядит значительно лучше Intel-а в потоковой нагрузке, т.е. в последовательном чтении и записи большими блоками.
Кроме того, Эльбрус в отличии от Intel, одинаково хорошо
справляется как с нагрузками чтения, так и с нагрузками записи, в
то время как у Intel чтение всегда значительно лучше записи.
Исходя из полученных результатов можно сделать вывод о применимости
систем хранения данных Аэродиск Восток на процессоре Эльбрус 8С в
следующих задачах:
Коллективу МЦСТ есть ещё над чем работать, но результат их работы виден уже сейчас, что, конечно, не может не радовать.
Данные тесты проводились на ядре Linux для e2k версии 4.19, на текущий момент в бета-тестах (в МЦСТ, в Базальт СПО, а также у нас, в Аэродиске) находится ядро Linux 5.4-e2k, в котором, кроме всего прочего, серьезно переработан планировщик и много оптимизаций под скоростные твердотельные накопители. Также специально для ядер ветки 5.х.х АО МЦСТ выпускает новый компилятор LCC версии 1.25. По предварительным результатам, на том же процессоре Эльбрус 8С, собранное новым компилятором новое же ядро, окружение ядра, системные утилиты и библиотеки и, собственно, ПО Аэродиск ВОСТОК позволит получить ещё более значительный прирост производительности. И это без замены оборудования на том же процессоре и с теми же частотами.
Мы ожидаем выхода версии Аэродиск ВОСТОК на базе ядра 5.4 ближе к концу года, и как только работа над новой версией будет завершена, мы обновим результаты тестирования и также опубликуем их здесь.
Если теперь вернуться к началу статьи и ответить на вопрос, кто же прав: пессимисты, которые говорят, что Эльбрус никакой и никогда не догонит ведущих производителей процессоров, или все-таки оптимисты, которые говорят, что уже почти догнали и скоро перегоним? Если исходить не из стереотипов и религиозных предубеждений, а из реальных тестов, то, однозначно, правы оптимисты.
Эльбрус уже сейчас показывает хорошие результаты, если сравнивать его с процессорами amd64 среднего уровня. До верхних в линейке моделей серверных процессоров Intel или AMD 8-ке Эльбруса, конечно, далеко, но она туда и не целилась, для этого будут выпущены процессоры 16С и 32С. Вот тогда и поговорим.
Мы понимаем, что после этой статьи вопросов про Эльбрус станет ещё больше, поэтому мы решили организовать ещё один онлайн-вебинар ОколоИТ, чтобы в прямом эфире на эти вопросы дать ответы.
В этот раз у нас в гостях будет заместитель генерального директора компании МЦСТ, Константин Трушкин. Записаться на вебинар можно по ссылке ниже.
Всем спасибо, как обычно ждем конструктивной критики и интересных вопросов.
Какая версия прошивки самая правильная и рабочая? Если СХД гарантирует отказоустойчивость на 99,9999%, то значит ли, что и работать она будет бесперебойно даже без обновления ПО? Или наоборот для получения максимальной отказоустойчивости нужно всегда ставить самую последнюю прошивку? Постараемся ответить на эти вопросы, опираясь на наш опыт.
Все мы понимаем, что в каждой версии программного обеспечения, будь то операционная система или драйвер для какого-то устройства, зачастую содержатся недоработки/баги и прочие особенности, которые могут, как не "проявиться" до конца службы оборудования, так и вскрыться только при определенных условиях. Количество и значимость таких нюансов зависит от сложности (функциональности) ПО и от качества тестирования при его разработке.
Зачастую пользователи остаются на прошивке с завода (знаменитое "работает, значит не лезь") или всегда ставят самую последнюю версию (в их понимании последняя значит самая рабочая). Мы же используем другой подход смотрим релиз ноты для всего используемого в облаке mClouds оборудования и внимательно выбираем подходящую прошивку для каждой единицы оборудования.
К такому выводу мы пришли, что называется, с опытом. На своем примере эксплуатации расскажем, почему обещанные 99,9999 % надежности СХД ничего не значат, если вы не будете своевременно следить за обновлением и описанием ПО. Наш кейс подойдет для пользователей СХД любого вендора, так как подобная ситуация может произойти с железом любого производителя.
В конце прошлого года, к нашей инфраструктуре добавилась интересная система хранения данных: младшая модель из линейки IBM FlashSystem 5000, которая на момент приобретения именовалась Storwize V5010e. Сейчас она продается под названием FlashSystem 5010, но фактически это та же аппаратная база с тем же самым Spectrum Virtualize внутри.
Наличие единой системы управления - это, кстати, и есть основное отличие IBM FlashSystem. У моделей младшей серииона практически не отличается от моделей более производительных. Выбор определённой модели лишь даёт соответствующую аппаратную базу, характеристики которой дают возможность использовать тот или иной функционал или обеспечить более высокий уровень масштабируемости. ПО при этом идентифицирует аппаратную часть и предоставляет необходимый и достаточный функционал для этой платформы.
IBM FlashSystem 5010Кратко про нашу модель 5010. Это двухконтроллерная блочная система хранения данных начального уровня. Она умеет размещать в себе диски NLSAS, SAS, SSD. Размещение NVMe в ней недоступно,так как эта модель СХД позиционируется для решения задач, которым не требуется производительность NVMe дисков.
СХД приобреталась для размещения архивной информации или данных, к которым не происходит частого обращения. Поэтому нам было достаточно стандартного набора её функционала: тиринг (Easy Tier), Thin Provision. Производительность на NLSAS дисках на уровне 1000-2000 IOPS нас тоже вполне устраивала.
Теперь собственно про само обновление ПО. На момент приобретения система имела уже немного устаревшую версию ПО Spectrum Virtualize, а именно, 8.2.1.3.
Мы изучили описание прошивок изапланировали обновление до 8.2.1.9. Если бы мы были чуть расторопнее, то этой статьи бы не было на более свежей прошивке баг бы не произошел. Однако, по определённым причинам обновление этой системы было отложено.
В результате небольшая задержка обновления привела к крайне неприятной картине, как в описании по ссылке: https://www.ibm.com/support/pages/node/6172341.
Да, в прошивке той версии как раз был актуален так называемый APAR (Authorized Program Analysis Report) HU02104. Проявляется он следующим образом. Под нагрузкой при определённых обстоятельствах начинает переполняться кэш, далее система уходит в защитный режим, в котором отключает ввод-вывод для пула (Pool). В нашем случае выглядело как отключение 3-х дисков для RAID-группы в режиме RAID 6. Отключение происходит на 6 минут. Далее, доступ к Томам в Пуле восстанавливается.
Если кто не знаком со структурой и именованием логических сущностей в контексте IBM Spectrum Virtualize, я сейчас кратко расскажу.
Структура логических элементов СХДДиски собираются в группы, которые называются MDisk (Managed Disk). MDisk может представлять собой классический RAID (0,1,10,5,6) или виртуализованный DRAID (Distributed RAID). Использование DRAID позволяет увеличить производительность массива, т.к. будут использоваться все диски группы, и уменьшить время ребилда, благодаря тому, что нужно будет восстанавливать только определённые блоки, а не все данные с вышедшего из строя диска.
Распределение блоков данных по дискам при использовании Distributed RAID (DRAID) в режиме RAID-5.А эта схема показывает логику работы ребилда DRAID в случае выхода из строя одного диска:
Логика работы ребилда DRAID при выходе из строя одного дискаДалее, один или несколько MDisk образуют так называемый Pool. В пределах одного пула не рекомендуется использовать MDisk с разным уровнем RAID/DRAID на дисках одного типа. Не будем в это сильно углубляться, т.к. мы планируем рассказать это в рамках одной из следующих статей. Ну и, собственно, Pool делится на Тома (Volumes), которые презентуются по тому или иному протоколу блочного доступа в сторону хостов.
Так вот, у нас, в результате возникновения ситуации, описанной в APAR HU02104, из-за логического отказа трёх дисков, перестал быть работоспособным MDisk, который, в свою очередь, повлёк отказ в работе Pool и соответствующих Томов.
Так как эти системы довольно умные, их можно подключить к облачной системе мониторинга IBM Storage Insights, которая автоматически, при возникновении неисправности, отправляет запрос на обслуживание в службу поддержки IBM. Создаётся заявка и специалисты IBM в удалённом режиме проводят диагностику и связываются с пользователем системы.
Благодаря этому вопрос решился довольно оперативно и от службы поддержки была получена оперативная рекомендация по обновлению нашей системы на уже ранее выбранную нами прошивку 8.2.1.9, в которой на тот момент этот момент был уже исправлен. Это подтверждает соответствующий Release Note.
Как говорится: "хорошо то, что хорошо заканчивается". Баг в прошивке не обернулся серьезными проблемами работа серверов была восстановлена в кратчайшие сроки и без потери данных. У некоторых клиентов пришлось перезапускать виртуальные машины, но в целом мы были готовы к более негативным последствиям, так как ежедневно делаем резервные копии всех элементов инфраструктуры и клиентских машин.
Мы получили подтверждение, что даже надежные системы с 99,9999% обещанной доступности требуют внимания и своевременного обслуживания. Исходя из ситуации мы сделали для себя ряд выводов и делимся нашими рекомендациями:
Нужно обязательно следить за выходом обновлений, изучать Release
Notes на предмет исправления потенциально критичных моментов и
своевременно выполнять запланированные обновления.
Это организационный и даже довольно очевидный момент, на котором,
казалось бы, не стоит заострять внимание. Однако, на этом ровном
месте можно довольно легко споткнуться. Собственно, именно этот
момент и добавил описанные выше неприятности. Относитесь к
составлению регламента обновления очень внимательно и не менее
внимательно следите за его соблюдением. Этот пункт больше относится
к понятию дисциплина.
Всегда лучше держать систему с актуальной версией ПО. Причём, актуальная не та, которая имеет большее числовое обозначение, а именно с более поздней датой выхода.
Например, IBM для своих систем хранения данных держит в актуальном состоянии как минимум два релиза ПО. На момент написания этой статьи это 8.2 и 8.3. Обновления для 8.2 выходят раньше. Следом с небольшой задержкой обычно выходит аналогичное обновление для 8.3.
Релиз 8.3 имеет ряд функциональных преимуществ, например, возможность расширения MDisk (в режиме DRAID) добавлением одного или более новых дисков (такая возможность появилась начиная с версии 8.3.1). Это довольно базовый функционал, но в 8.2 такой возможности, к сожалению, нет.
Если обновиться по каким-либо причинам нет возможности, то для версий ПО Spectrum Virtualize, предшествующих версиям 8.2.1.9 и 8.3.1.0 (где описанный выше баг актуален), для снижения риска его появления техническая поддержка IBM рекомендует ограничить производительность системы на уровне пула, как это показано на рисунке ниже (снимок сделан в русифицированном варианте GUI). Значение 10000 IOPS показано для примера и подбирается согласно характеристикам вашей системы.
Необходимо правильно рассчитывать нагрузку на системы хранения и не допускать перегрузки. Для этого можно воспользоваться либо сайзером IBM (если есть к нему доступ), либо помощью партнеров, либо сторонними ресурсами. Обязательно при этом понимать профиль нагрузки на систему хранения, т.к. производительность в МБ/с и IOPS сильно разнится в зависимости как минимум от следующих параметров:
тип операции: чтение или запись,
размер блока операции,
процентное соотношение операций чтения и записи в общем потоке ввода-вывода.
Также, на скорость выполнения операций влияет как считываются блоки данных: последовательно или в случайном порядке. При выполнении нескольких операций доступа к данным на стороне приложения есть понятие зависимых операций. Это тоже желательно учитывать. Всё это может помочь увидеть совокупность данных со счётчиков производительности ОС, системы хранения, серверов/гипервизоров, а также понимание особенностей работы приложений, СУБД и прочих "потребителей" дисковых ресурсов.
И напоследок, обязательно иметь резервные копии в актуальном и рабочем состоянии. Расписание резервного копирования нужно настраивать исходя из приемлемых для бизнеса значений RPO и периодически обязательно проверять целостность резервных копий (довольно много производителей ПО для резервного копирования реализовали в своих продуктах автоматизированную проверку) для обеспечения приемлемого значения RTO.
Благодарим, что дочитали до конца.
Готовы ответить на ваши вопросы и замечания в комментариях. Также
приглашаем
подписаться на наш телеграмм-канал, в котором мы проводим
регулярные акции (скидки на IaaS и розыгрыши промокодов до 100% на
VPS), пишем интересные новости и анонсируем новые статьи в блоге
Хабра.
conn = pywbem.WBEMConnection(server_uri, (self.login, self.password), namespace, no_verification=True)
> lsusergrp
id name role remote
0 SecurityAdmin SecurityAdmin no
1 Administrator Administrator no
2 CopyOperator CopyOperator no
3 Service Service no
4 Monitor Monitor no
5 RestrictedAdmin RestrictedAdmin no
> chuser -usergrp 5 zabbix
> startstats -interval 1
> lssystem | grep statistics
statistics_status on
statistics_frequency 1
classnames = conn.EnumerateClassNames(namespace='root/ibm', DeepInheritance=True)for classname in classnames: print (classname)
instances = conn.EnumerateInstances(classname, namespace=nd_parameters['name_space'])for instance in instances: for prop_name, prop_value in instance.items(): print(' %s: %r' % (prop_name, prop_value))
request = 'SELECT Name FROM IBMTSSVC_StorageVolumeStatistics'objects_perfs_cim = wbem_connection.ExecQuery('DMTF:CQL', request)
Хотелось бы поделиться с вами практическим опытом тестирования и использования системы хранения данных HPE Nimble, в нашем случае впечатлениями будем делиться относительно модели All-Flash HPE Nimble AF40. Насколько эта статья будет актуальна и интересна решать только вам, но мы в свое время столкнулись с проблемой поиска реальных историй (не путайте с историями успеха), в которых по большей степени автор делился бы своими мыслями, опытом и впечатлениями, т.е. чистыми эмоциями от сердца, а не сухими фактами или вездесущим маркетингом. Поэтому решили потратить немного своего времени и попробовать написать что-то подобное, поэтому не судите строго, т.к. это первая проба пера. Итак, поехали.
Чтобы немного ввести вас в курс дела для начала дадим скупую информацию о нашем подопытном. Данную модель HPE позиционирует среди своего же семейства All-Flash массивов Nimble, как оптимальный выбор по соотношению цена/производительность. С точки зрения производительности система достаточно сильно отличается от младшей модели AF20 (превышает почти в 5 раз!), но при этом не столь сильно уступает более старшим моделям AF60 и AF80. Самой старшей модели наш экземпляр уступает по паспорту в среднем в 3 раза, по некоторым показателям и то меньше, а модели Nimble AF60 не более, чем в 2 раза. Массивы всей линейки HPE Nimble имеют весь необходимый функционал, согласно своему статусу массивам среднего ценового сегмента. Тут тебе и компрессия с дедупликацией, причем последняя с переменным блоком, и аппаратные снимки с согласованием на уровне приложения, и синхронная репликация, с возможностью реализации концепции Metro Storage Cluster, и поддержка технологии VVOL, QoS, возможность собирать Storage Pool из нескольких массивов некое подобие федерации, и еще парочка козырей в рукаве в виде искусственного интеллекта и продвинутой аналитики.
По паспорту система позволяет получить до 130К IOPS на блоках 4К в смешанной нагрузке 50/50 на случайных операциях ввода-вывода, 150K IOPS на все тех же блоках 4К при 100% случайном чтении и 150К IOPS при 100% случайной записи все это без учета дедупликации. С ее же учетом итоговые показатели будут зависеть от ее общего коэффициента. К примеру, при общем коэффициенте дедупликации 10:1 немного просядут операции случайной записи до 130К на блоках 4К. При этом количество IOPS на операциях чтения возрастет до 170К, а в смешенном режиме 50/50 заявлено 96К IOPS. По нынешним меркам более чем скромно для All-Flash массива. Тем более, что массив является представителем Mid-Range сегмента, и от них ожидаешь действительно приличных цифр, так как сегмент представляет из себя подобие гоночного трека, где каждая доля секунды на счету и производители выставляют лучшее, лишь бы поразить искушенную публику и завоевать их сердца (а заодно и кошельки). Поражать тут с точки зрения цифр нечем, тем более что сейчас даже массивы Entry-Level (начального уровня) могут похвастаться и показателями 300+К IOPS, чему, к слову, могли бы и позавидовать приличное количество Hi-End систем хранения данных 8-10 летней давности. Да, прогресс не стоит на месте все так и есть. Другой вопрос, что критерии выбора у всех разные и не всем нужен самый быстрый автомобиль. Я так точно больше являюсь адептом комфорта. Да, динамика, несомненно, вещь важная и необходимая (в определенной степени) для формирования того самого комфорта: когда машина едет и позволяет без напряга, когда надо прибавить, совершить динамичный маневр и вообще приятно, когда под капотом мощный движок, который, возможно, никогда не будет использоваться в полную силу, но кого это волнует... Сразу вспоминаются спорт-кары, которые весело и задорно урчат в городе от светофора до светофора, знатно взбалтывая тушки своих удалых владельцев очень динамичный разгон и не менее динамичное торможение. На вкус и цвет фломастеры разные: кому-то нравится, кому-то нет. Я так всеми руками за практичность, т.е. можно есть суп вилкой, но зачем, когда есть ложка. Или зачем есть борщ черпаком из 10 литровой кастрюли, если есть тарелка и все та же ложка. Ну в общем, я думаю, вы меня поняли.
Вернемся к нашему подопытному. С цифрами определились, в голове
зафиксировали. Тем самым, для нас не было по этому поводу никакого
откровения. У вас теперь, надеюсь, тоже. Когда определились с
ожидаемой производительностью массива, остался только один вопрос:
насколько эти цифры будут честными, т.к. производители часто
иногда завышают эти показатели и регулярно порой бывает
невозможно тяжело добиться тех же показателей при
тестировании аппарата (ставьте лайк, если тоже становились жертвой
маркетинга и обладателем годового запаса лапши).
К слову, в нашей практике компания HPE не была замечена в каких-либо махинациях с цифрами, в неполноте или недостоверности ТТХ по продуктам. Чего не скажешь о документации по работе с оборудованием, уж простите наболело. Поэтому мы, конечно же, отнеслись к заявленным цифрам с доверием и сразу же решили их проверить (доверяй, но проверяй к этой простой жизненной мудрости мы пришли, проводя теплые летние деньки за очередной мисочкой лапши).
Плавно переходя к тестированию, естественно, нельзя не упомянуть состав нашего тестового стенда: здесь, как говорится, best practice не заглядывал. Если серьезно, то оборудование уже весьма подуставшее, процессоры на подключенных хостах не каноничные (те самые красные), гипервизоры End of General Support. Что действительно радует, так это наличие SAN-сети на коммутаторах SN6000 (8-гигабитный Qloqic SANbox 5800 привет из 2010-го года). В общем, не 4 Гбит, и уже хорошо. Но те самые 16 Гбит FC на HPE Nimble AF40 раскрыть, к сожалению, не удастся. Да и конфигурация самого массива, тоже, скажем так, не best practice, т.к. официально рекомендуется использовать минимум 4 порта ввод-вывода на каждом контроллере, а в нашем случае мы имеем только 2 порта 16 Гбит FC в режиме 8 Гбит.
сервер DL385 Gen7, AMD Opteron 6180 SE, VMware ESXi 6.0.0Из трех серверов DL385 Gen7 собран кластер виртуализации на VMware ESXi 6.0.0. Управление через VMware vCenter в формате appliance на Linux. На каждом хосте по два процессора AMD Opteron 6180 SE и 192 ГБ оперативной памяти DDR3 PC3-10600 ECC RDIMM (1300 МГц). Для подключения к SAN-сети используется две однопортовые FC HBA 8 Гбит (HPE 81Q) на каждом из хостов. Сам же HPE Nimble AF40 укомплектован 24 твердотельными накопителями объемом 480 ГБ, двумя контроллерами и по одной двухпортовой 16 Гбит FC HBA в каждом из них.
Относительно выбора программного обеспечения для нагрузочного тестирования изначально выбрали классику жанра vdbench, но потом все-таки остановились на HCIbench в виду большей простоты и наглядности, а также ориентированности на виртуальную среду VMware.
Пока это все было хождение вокруг да около и относительно самой системы хранения HPE Nimble AF40 не было сказано ничего, кроме заявленных ТТХ. Поэтому пора, так сказать, исправлять ситуацию, тем более что после затянувшегося аперитива, мы как раз подошли к этому весьма вкусному моменту. Делиться своими впечатлениями и результатами будем последовательно: начиная с настройки самой системы и далее переходя к тестам и кое-чему весьма интересному. Но обо всем по порядку.
С вашего позволения тут я не стану сильно задерживаться, хотя есть любители посмаковать сей момент в полном объеме. Что тут сказать, упаковка внушает доверие, все очень добротно: плотная картонная коробка, притянутая болтами к деревянному паллету, внутри массив защищен плотным полиэтиленовым пакетом и черной разновидностью пенопласта (упругий и не крошится). Все на своих местах коробочки и пакетики с аксессуарами. В общем на упаковке точно не сэкономили. Сам массив представляет собой полку на 4U, очень увесист и габаритен, глубина полки этого мастодонта целых 89 см, а вес более 50 кг. Хотя, чему удивляться сама коробка огромна по меркам среднестатистического массива и как бы намекает на сидящего в ней монстра. Шутки шутками, а вес имеет значение, особенно при монтаже. Так и здесь металла много, пластика минимум, очень монолитно и добротно. Можно при желании хоть раз 10 монтировать и демонтировать ничего не погнется, не сломается, не треснет и не отлетит. На самом деле, это давно стало проблемой для современного оборудования, которое изобилует пластиком; детальки так и норовят треснуть или сломаться даже после монтажа.
Первоначальная настройка массива до безобразия проста и интуитивно понятна. А дополнительную веру в собственные силы поможет обрестиWelcome Center для Nimble. Производитель предлагает в помощь онлайн-портал с пошаговыми текстовыми и видео-инструкциями, что будет не только полезно и удобно, но и наглядно. Одним только Nimble там дело не ограничилось, доступны материалы и по другой системе хранения HPE Primera.
Для начала нужно выбрать интересующую модель, после чего выводится список дальнейших рекомендаций, в том числе прединсталляционный чек-лист, указывающий на основные подготовительные моменты, на которые стоит обратить пристальное внимание, чтобы в конечном итоге к полуночи карета не превратилась в тыкву.
Ну и, конечно же, захватывающие видео сопровождения, а в качестве бонуса еще и ссылка на Installation Guide:
Суммарно подготовка массива к работе занимает 15-30 минут. За качество исполнения, упаковку, внешний вид и простоту первоначальной настройки 5 из 5. Вес и габариты, конечно, дают о себе знать, но можно и потерпеть.
И здесь наc ждал первый приятный сюрприз и важное преимущество HPE Nimble простая и понятная интеграция с VMware с использованием технологией VVOL. Это особенно эффектно в связи с тем, что мы до этого не использовали технологию VVOL, но идеологически пытались ее воссоздать вручную использованием выделенных VMware VMFS Datastores под каждый виртуальный диск каждой виртуальной машины. Такой ручной подход был призван упростить использование аппаратных снимков, обезопасить от возможных проблем с очередями на уровне LUN (когда есть один жирный VMware VMFS Datastore и все виртуальные машины живут на нем, как в большой коммунальной квартире с общей кухней, на которой периодически могут устраивать поножовщину).
При наличии в системе хранения данных механизмов QoS это еще и позволяло настраивать для каждого отдельного взятого диска виртуальной машины свои ограничения по производительности или наоборот гарантировать заданный минимум. Аппаратные снимки делались только на тех виртуальных томах системы хранения, которые принадлежали данной виртуальной машине, а не целиком всему общему VMware VMFS Datastore. Та же ситуация и с их восстановлением. Плюс, исключалась проблема с нехваткой места на общем VMware VMFS Datastore и остановкой всех виртуальных машин из-за ошибки записи, если вдруг администратор проглядел. То есть, по большей части, все в угоду управляемости, контролю и исключению взаимовлияния.
Но, несмотря на такое весомое количество плюсов, минусов было также предостаточно, особенно в части трудозатрат. Речь идет про ручное создание всех необходимых виртуальных томов на уровне массива, презентация их кластеру, создание каждого из дисков виртуальной машины на своем выделенном VMware VMFS Datastore, и так далее. Стоит отметить, что такой вариант явно подошел бы не всем, так как существуют ограничения по их количеству для ESXi 6.0.0 это значение равно 256. Но в нашем случае в лимит мы укладывались, а с неудобствами и трудозатратами мирились в угоду управляемости.
Технология VVOL вообще позволила уйти еще дальше. Помимо указанных плюсов и отсутствия явных минусов, она позволила перенести и полностью автоматизировать операции по созданию виртуальных томов на системе хранения данных для виртуальных машин на VMware vCenter. То есть, настроив интеграцию единожды, теперь вообще нет какой-либо необходимости заходить в интерфейс управления HPE Nimble AF40 или создавать новые презентации для новых томов. Даже не обязательно готовить тома заранее на системе хранения в случае использования специфических настроек (толстый или тонкий тип диска, включена ли компрессия и дедупликация, размер блока дедупликации). Теперь это все делается с помощью vCenter и VM Storage Policies.
Для этого удовольствия всего лишь необходимо выполнить пять основных шагов (не считая стандартных требований по подключению системы хранения к серверам через SAN фабрики, например, зонирование).
Шаг 1. Выполнить интеграцию с vCenter
Шаг 2. Создать на HPE Nimble структурный каталог Folder с указанием типа управления VVOLs:
Шаг 3. Ознакомиться с Performance Policies на HPE Nimble для создания VM Storage Policies (можно так же создавать свои Performance Policies на HPE Nimble с указанием преднастроек это, по сути, профиль создания виртуального тома):
Шаг 4. Создать необходимый набор VM Storage Policies в vCenter на основе Performance Policies:
Шаг 5. Подключить Folder к кластеру в vCenter:
Для искушенных также есть возможность посмотреть разного рода информацию по VVOL через плагин HPE Nimble в vCenter, а также настроить график создания консистентных снапшотов на уровне VM Storage Policies:
А теперь самое время проверить заявленные ТТХ массива. Самый простой паттерн нагрузки 100-процентное случайное чтение блоками 4К (без использования дедупликации). Используем встроенный в HCIbench нагрузочный инструмент со следующими настройками:
Общее количество виртуальных машин 12, каждая с 8 дисками объемом 10 ГБ, разогрев 6 минут, время теста 1 час, суммарное количество потоков 384. Важный момент перед тестом на диски записываются абсолютно случайные данные таким образом, что полностью отсутствуют блоки с 0, поэтому компрессия на данных дисках показывает коэффициент 1:1. Это важно, т.к. при наличии нулевых блоков операции чтения могут значительно ускоряться при включенной компрессии.
По результатам получаем следующее. Аналитика со стороны интерфейса управления HPE Nimble AF40:
Результаты со стороны HCIbench (для самых внимательных: время отчета указано с учетом временной зоны GMT -07:00, что составляет разницу в 10 часов по сравнению с GMT +03:00):
Задержки на чтение высоковаты хотелось бы уложиться в 2 мс, поэтому пробуем второй заход: настройки те же, но снижаем количество виртуальных машин до 6, тем самым снижая количество потоков до 192:
Уже значительно лучше.
Конечно, было интересно, как отработает QoS, поэтому выставили ограничение для тестируемых VVOL в 20К IOPS и еще раз запустили первый тест на 384 потока, но в целях экономии времени продолжительностью всего 10 минут.
Используя SSH-подключение к хостам ESXi и встроенную утилиту esxtop, видим, что с каждого хоста генерируется нагрузка в 125-128 потоков и при этом получаем очень высокие показатели задержки от FC HBA сервера до системы хранения. И тут ничего удивительного: система хранения отрабатывает политику QoS, понижая максимальное количество операций ввода-вывода в секунду до 20 000, что приводит к скапливанию очередей и задержкам в вводе-выводе.
Собственно, тут иначе никак. Функционал крайне полезный и поможет защитить продуктивную среду или критически важные сервисы от паразитной нагрузки со стороны тестовых лабораторий или других менее важных сервисов, которые не чувствительны к задержкам.
А как дела обстоят с записью? Прогоняем тест 100% случайная запись, размер блока 4К, остальные параметры те же. Опять же для начала 384 потока.
По традиции прогоняем тест второй раз, но уже с 6 виртуальными машинами, а, следовательно, в 192 потока.
Тут тоже удалось уложиться в 2 мс. Результат весьма близок к аналогичным замерам по 100% случайному чтению. Это говорит о том, что соотношение показателей IOPS, заявленных вендором, являются релевантными. Напомню, по 150К IOPS для 100% случайного чтения блоками 4К и для 100% случайной записи блоками 4К. Хотя обычно на практике запись всегда проседает относительно чтения, вероятно, это чудесная магия запатентованной архитектуры HPE Nimble CASL с многоуровневым кэшированием как записи, так и чтения.
Есть еще, конечно, сложносоставной тест через vdbench для виртуальной среды, который максимально приближен к реальным нагрузкам, но на его повторный прогон, к сожалению, не хватило времени, а прошлых результатов не сохранилось (может быть в следующий раз, если тема зайдет).
Вывод: достаточно неплохие результаты с учетом устаревшего оборудования, отсутствием 16 гигабитного FC, что, по нашему мнению, как раз-таки и помешало выйти на заявленные цифры.
Когда с синтетикой покончено, самое время переходить к
расширенной аналитике и искусственному интеллекту SkyNet HPE
Infosight, который призван убить всех человеков упростить
процессы мониторинга, управления и поддержки системы хранения на
всем промежутке ее жизненного цикла.
ИИ HPE Infosight здесь выступает в качестве бесплатного десерта, который тебе приносят в дорогом ресторане после сочного стейка. Вроде не заказывал, но принесли за счет заведения. Вроде бы и не хотелось, но раз принесли то грех не попробовать. А попробовать стоило, я вам скажу.
Попадая на главную страницу HPE Infosight (уже после предварительной регистрации, авторизации и привязки массива), видим несколько разных меню, в которых есть что посмотреть.
В том числе разнообразные дашборды. Например, Operational, который позволяет оценить общее состояние массива, или Recommendations, которые дают возможность подробно ознакомиться с рекомендациями на рисунке выше в правой части скриншота. Рекомендации, кстати, формируются на основании аналитики, которая производится искусственным интеллектом c использованием машинного обучения и телеметрии всей инсталляционной базы HPE Nimble по всему миру (в лабораториях HPE Nimble это Cross Stack Recommendations).
Ниже приведен пример рекомендаций по одной из проблем Physical CPU Saturation с указанием масштаба бедствия. Также доступны рекомендации и по оставшимся двум проблемам Elevated Latency, Virtual CPU Overprovisioning, и иногда щедрость тоже губит:
Также здесь присутствуют и отчеты для руководителей (Executive), которые показывают, есть ли открытые кейсы, по которым ведется работа, экономические показатели массива (сколько удалось сэкономить места благодаря технологиям компрессии и дедупликации), а также рекомендации в случае необходимости апгрейда массива. Wellness позволяет получить список по проблемам, если таковые имеются, а Capacity показывает разного рода тренды по динамике заполнения массива.
И, наконец, одно из самых полезных и интересных это лаборатории HPE Infosight, где можно примерить на себя халат лаборанта и провести пару экспериментов или исследований.
Тут и вышеупомянутая Cross Stack Recommendations, и Resource Planner, который позволит сэмулировать добавление на массив какой-либо нагрузки и изучить, как она повлияет в целом на производительность массива. При этом есть тонкая настройка выбранной нагрузки.
Раньше, кстати, для этого всего требовались отдельные продукты, например, HP Virtualization Performance Viewer, которые, естественно, стоили денег, и их необходимо было разворачивать и поддерживать.
Если вам кажется, что есть проблемы в производительности системы хранения данных, можно запустить AI Performance Recommendations и получить анализ за выбранный период. Соответственно, если будут проблемы будут и рекомендации, как их устранить.
Одним словом, здесь есть где разгуляться, а самое главное получить с минимальными усилиями отчеты и конкретную информацию (не надо ничего собирать, строить графики, вести Excel-таблицы и прочее), которую можно предоставить руководству, объяснив, что это ИИ на основе машинного обучения произвел анализ и интерпретацию входных данных.
Опытный заводчик виртуальных машин может подумать: вот еще бы тут была корреляция метрик производительности по виртуальной инфраструктуре с метриками системы хранения, а то как-то неудобно что-то искать в VMware vCenter, что-то в интерфейсе управления HPE Nimble в разделе Monitoring, а затем прикидывать одно к другому излюбленным эмпирическим методом. И, да, это тут тоже есть. В разделах Infrastructure -> Virtualization в зависимости от того, что вы используете (на текущий момент поддержка только для VMware и Hyper-V) можно получить информацию о своих дата-центрах, кластерах, хостах, дата-сторах и виртуальных машинах (их загрузка, производительность, метрики).
В разрезе виртуальных машин можно увидеть статистику по потребляемым ресурсам как со стороны вычислительной инфраструктуры, так и со стороны системы хранения данных, что также окажется крайне полезным.
Ну и напоследок это все решили заполировать самыми полезными ресурсами по HPE Nimble. Тут и документация, и прошивки, и дополнительное программное обеспечение, разного рода матрицы совместимости (куда же без них) и ссылка на портал поддержки, где можно вести работу по кейсам.
Резюме: с ИИ HPE Infosight все понятно, вещь полезная, удобная и нужная это бесспорно. В 86% случаев система будет предотвращать или предлагать рабочее решение ваших проблем автоматически. Но вот в остальных случаях что? А если возникла жизненная необходимость пообщаться с живым человеком, а в ответ только бездушный голос машины или робота, который готов всячески тебе помочь, но в своей извращенной манере. Сразу вспоминается ситуация с дозвоном в банк или оператору связи, когда нужно еще очень сильно постараться, чтобы попасть на живого человека. Но тут, к счастью, обошлось. Есть выделенный телефон поддержки HPE Nimble, по которому отвечают люди и даже больше инженеры (чувствуете разницу?) но сейчас будет вообще хорошо инженеры поддержки 3 уровня, в том числе и русскоязычные.
Как ни странно, в наше время это большая редкость! При обращении в поддержку по какому-либо оборудованию, чаще всего приходится сталкиваться с поддержкой, которая меняет запчасти, иногда даже и не одну, иногда бывает даже замена вкруг. Понятно, что это все в угоду простоты замены, модульность систем к этому предрасполагает, но проблематика часто возникает не на уровне железа и замена запчастей не помогает ее решить. А время уходит, томное ожидание новых запчастей сменяется грустью о бесполезно потраченном на очередной заход сбора логов и общение с поддержкой времени. В очередной раз поменялся инженер по кейсу, которому необходимо объяснять все с самого начала или, ознакомившись с историей кейса, он все равно продолжает задавать все те же вопросы. А в это время и в твоей голове вьется, как назойливая муха, все тот же извечный вопрос доколе?
В общем согласитесь, всегда приятно, когда кто-то ломает
шаблоны. А еще приятнее, когда из этого действительно выходит толк.
Так вот опишу нашу небольшую историю общения с L3 поддержкой HPE
Nimble. Все началось с проблемы с одним из контроллеров во время
тестирования их переключения (HA Failover). После переключения
нагрузки, контроллер ушел за сигаретами в перезагрузку и
после этого не вернулся. Странная, конечно, ситуация, но даже сброс
по питанию не помог. Естественно, открылся кейс с помощью ИИ HPE
Infosight и был автоматически передан инженерам L3 технической
поддержки HPE Nimble, так как тут сбой контроллера на лицо и
человекам виднее что там куда требовалась расширенная
диагностика. Далее следовали в большинстве своем стандартные
процедуры общения с поддержкой, исключая, разве что, прохождение
кругов ада для того, чтобы попасть наконец к толковому инженеру
(нашим кейсом, к слову, от начала и до конца занимался один и тот
же инженер Павел Тимургалеев). Мы уже были морально готовы к замене
контроллера, согласитесь, достаточно ожидаемый исход. Но все
получилось немного интереснее.
Проблема оказалась в том, что контроллер был подключен по консольному кабелю к серверу, на котором был установлен СКУД (сервер использовался нами для доступа к консоли массива). Серверов стоечных у нас было всего два, поэтому раскидали один контроллер к одному, второй к другому, остальные же серверы были в форм-факторе блейд-сервер. СКУД каким-то образом держал на себе консольный порт контроллера HPE Nimble и не давал ему загрузиться. С заменой по итогу обошлось, проблема была решена. Каким образом поддержка дошла до причины проблемы тоже остается загадкой. Но сам факт, что проблему удалось решить в кратчайшие сроки и максимально эффективно, т.е. без 2-3 итерацией замены контроллера, после которых стало бы понятно, что дело не в контроллере, действительно внушает уважение. Павлу и команде поддержки HPE Nimble однозначно хотелось бы выразить благодарность за проявленный профессионализм (надеюсь, им икнулось).
Странно, наверное, такое слышать, но, к сожалению, больше не приходилось общаться с технической поддержкой HPE Nimble, т.к. за год эксплуатации массива не возникло абсолютно никаких поломок или проблем. Приятно, когда общение с поддержкой превращается в маленький праздник.
На этой позитивной ноте я бы хотел уже откланяться, но вы же непременно скажете: а где же минусы, минусы-то где? Не бывает такого, чтобы без минусов. Да, соглашусь, без минусов, конечно же не обошлось. Один из основных минусов это избыточная мощность. Честно говоря, под наши нагрузки хватило бы и гибридной модели в соотношении 20% SSD/80% MDL 7,2K, например, тех же HPE Nimble HF20 или HPE Nimble HF40, но был бюджет, а поэтому почему бы и нет. Но теперь приходится придумывать самим себе работу и вводить новые сервисы, т.к. видя, как система простаивает, сердце кровью обливается и хочется непременно ее нагрузить. Поэтому каждый раз, когда залезаешь в ИИ HPE Infosight, то получаешь мощного пинка от системы, она заставляет постоянно что-то оптимизировать, что-то настраивать, заставляет работать, одним словом, смотреть только вперед и не оглядываться назад, ведь за спиной надежный соратник. А может быть VDI? А почему бы и нет, черт возьми! Поэтому сейчас начали разворачивать и тестировать VMware Horizon с использованием концепции Just-in-Time (linked clones уже не торт). А тем временем аппетиты растут и уже где-то там на горизонте маячат новые сервера с NVIDIA Tesla T4 или серии RTX6000. Было бы неплохо.
UPD: в рамках статьи упустил много чего интересного, а именно, первичную проблематику тестирования All-Flash массивов на гипервизорах VMware ESXi, с которой бились достаточно длительное время и грешили на HPE Nimble (мы и не говорили, что мы святые). Из коробки нагрузочное тестирование адекватно работать не будут: тут и проблемы с очередями на FC HBA (базовые значения драйвера) DQLEN и No of outstanding IOs with competing worlds, а также ограничения со стороны виртуальных контроллеров виртуальных машин. Этого материала вполне хватит на отдельную статью.
Всем привет. Этой статьей мы начинаем знакомить вас с новой версией российской гиперконвергентной системы AERODISK vAIR v2, в частности, со встроенным гипервизором АИСТ, который сейчас получил возможность работать автономно от vAIR, используя внешние СХД.
Изначально мы хотели рассказать о функциональности новой версии vAIR в одной статье, но материала получилось очень много, и мы встали перед выбором: либо сократить материал, либо разбить его на три части. Мы выбрали второй вариант и разбили материал следующим образом:
Соответственно, в первой части мы расскажем о функциях управления vAIR v2 и более подробно о подсистеме виртуализации. Но сначала хотелось бы сказать пару слов об архитектурных изменениях в версии vAIR v2.
С момента выхода первой версии в 2019 году архитектура vAIR претерпела ряд изменений. Связано это в первую очередь с борьбой за стабильность, ресурсоемкость и производительность. Однако обо всем по порядку.
Описывать полностью архитектуру с нуля мы рамках этой статьи не будем. Коснёмся лишь тех отличий, которые существуют в настоящий момент между первой и второй версией. Для более глубокого знакомства с изначальной архитектурой vAIR v1 рекомендуем ознакомиться с нашими предыдущими статьями на эту тему:
На уровне большой картинки на данный момент архитектура vAIR v2 выглядит следующим образом:
Ну а теперь переходим к деталям.
Незаметное внешнему глазу, но при этом важное и трудоемкое событие произошло в распределенной базе конфигураций (ConfigDB), которая отвечает за одновременное хранение конфигураций всех компонентов решения на всех нодах кластера. Мы полностью её переработали и, соответственно, оптимизировали. В итоге ConfigDB стала значительно стабильнее и минимизировала пожирание бесценных аппаратных ресурсов. Если говорить о цифрах, то за счёт переработки полезную производительность решения удалось увеличить примерно на 30%, что, очевидно, хорошо.
Стандартный блок данных, которым оперирует ARDFS, изменился с 4МБ до 64 МБ. Сделано это было также с целью увеличения производительности ввода-вывода.
Ещё одним маленьким, но приятным бонусом, который получился в результате оптимизации ARDFS и ConfigDB, стало снижение минимальных системных требований по количеству нод в кластере. Первая версия vAIR требовала не менее четырех нод, во второй-же версии начинать можно с трёх нод. Мелочь, но тоже приятно.
Теперь перейдем к главному архитектурному изменению, с которого
и начнем рассказ про подсистему виртуализации. Гипервизор АИСТ,
который раньше умел работать только внутри vAIR, научился
летать работать автономно и, соответственно, может
поставляться отдельным продуктом по отдельной лицензии.
Для справки: и АИСТ, и vAIR как два отдельных продукта прошли всю необходимую экспертизу регуляторов и, соответственно, добавлены во всех необходимые гос. реестры Минцифры и Роспатента, чтобы по-честному считаться российским ПО.
Чтобы не было путаницы, поясним. По факту АИСТ и vAIR не являются разными продуктами. Гипервизор АИСТ это составная и обязательная часть гиперконвергентной системы vAIR, при этом АИСТ может использоваться в качестве самостоятельного решения, а также АИСТ может всегда быть обновлен до полноценного vAIR-а.
Данное архитектурное изменение не только позволяет импортозаместить зарубежную виртуализацию на российских предприятиях, но и открывает ряд крайне полезных сценариев использования vAIR. Разберем их:
Тут все просто. АИСТ используется как составная часть vAIR и работает с хранилищем ARDFS. Это то, что было в первой версии, и остается сейчас.
Виртуальные машины, сеть и хранилище работают в рамках одной отказоустойчивой аппаратной платформы (3 ноды+).
Классическая серверная виртуализация. На локальные диски физических серверов устанавливается АИСТ, к АИСТу пригоняются сторонние СХД по файловым или блочным протоколам, и на базе этих СХД хранятся виртуальные машины.
При этом в этой схеме всегда остается возможность добавить локальных дисков во все физические серверы, объединить их быстрым (от 10 Гбит/сек) интерконнектом и обновить лицензию АИСТа до vAIR, получив в итоге гибридный сценарий (см. ниже).
Самый интересный сценарий. Мы одновременно с гиперконвергентом используем в качестве хранилища виртуальных машин сторонние СХД (например ENGINE или ВОСТОК :-)). Полезным является то, что к любой виртуалке, которая хранится на ARDFS, мы можем легко прицепить дополнительные виртуальные диски с СХД. И наоборот, к любой виртуалке, которая лежит на СХД, мы можем прицепить виртуальные диски с ARDFS. Это открывает очень много возможностей, начиная с задач постепенной и бесшовной миграции инфраструктуры между разными хранилищами, заканчивая полезным использованием старых СХД и серверов хранения, которые и выкинуть жалко, и подарить некому.
В итоге, когда мы пишем vAIR, мы имеем ввиду большой продукт в целом гиперконвергентную систему, которая включает в себя гипервизор АИСТ и файловую систему ARDFS. А если мы пишем АИСТ, то имеем в виду только компонент, который отвечает за серверную виртуализацию и виртуальную сеть. Чтобы внести ещё больше ясности, приводим ниже таблицу с разбивкой функционала по компонентам.
Управление системой осуществляется при помощи web-консоли на русском языке (поддерживаются любые браузеры) или командной строки. Важной и полезной плюшкой является то, что за счёт распределённого хранения конфигураций для осуществления управления всем кластером можно подключиться к любой ноде по IP или DNS-имени. Специальных серверов управления разворачивать не нужно. При этом это не запрещено.
Предусмотрен сценарий развертывания управляющей виртуальной машины (УВМ), которая через RestfulAPI может осуществлять полноценное управление всем кластером.
Кстати RestfulAPI, как понятно выше, есть, он описан и работает (по нему будет отдельная статья). Его спокойно можно использовать для автоматизации операций и интеграции со смежными системами. К примеру, уже сейчас есть интеграция (и, кстати, есть внедрение в продуктив) с российским VDI-решением Термидеск, как раз реализованная на базе нашего API. Плюс ещё несколько продуктов вендоров-партнеров на подходе.
Для управления виртуальными машинами изнутри гостевой ОС используется на выбор два протокола: VNC (по умолчанию) или Spice. На уровне отдельных ВМ администратор может задавать разные варианты подключений.
Сам интерфейс разбит на несколько логических частей.
1) Основная область управления, в которой выполняются почти все операции
2) Основное меню, которое выдвигается наведением курсора
3) Панель действий, на которой отображаются доступные для выбранного объекта действия.
4) Панель задач, которая показывает, какие задачи выполняются или были выполнены над выбранным объектом, вызывается выбором объекта и последующим кликом по кнопке задачи.
5) Ну и, наконец, информационная панель, которая показывает количество актуальных ошибок (красные) и выполняемых в данный момент действий (синие).
В целом после оптимизации распределенной БД интерфейс стал работать очень плавно и шустро, кроме того мы делали интерфейс сразу адаптивным и без привязки действий к правому клику мышки, и поэтому с ним спокойно можно работать даже с мобильного телефона.
Лирическое отступление: когда я эту функцию показал моему старому товарищу, который является тру-админом (то есть он админил системы в те славные времена, когда систем ещё не существовало) он воскликнул:
Вы нормальные там??!!! Нельзя админить серьезные системы через мобилу!!!
Хочу отметить, что во втором своём высказывании он, безусловно прав, лазить по серьезным кластерам через мобилку опасно, можно ткнуть не туда и всё как обычно упадёт, но всегда есть НО
Я напомнил ему ситуацию, в которую он попал несколько лет назад, когда потратил примерно 40 минут времени и 10 тонн мата на то, чтобы перезагрузить пару зависших виртуалок на известном гипервизоре, используя свой смартфон. Ноутбука у него с собой не было, а его заказчик с паром из ушей требовал устранить проблему здесь и сейчас.
Вспомнив об этом случае, мой товарищ тру-админ перестал сомневаться в нашей нормальности :-).
Пока непонятно насколько функция мобильного доступа будет востребована в итоге, но на всякий пожарный наличие этой функции на наш взгляд оправданно, а применять её или нет решат сами заказчики.
Не секрет, что в основе АИСТа лежит старый добрый KVM с libvirt-овой обвязкой. При этом наша реализация очень сильно доработана. Про годный веб-интерфейс, который управляет не только виртуализацией, но и сетью с хранилищем и который доступен, как с любой ноды, так и с управляющей ВМ, мы писали выше. Но это далеко не все доработки. Вот ещё несколько крайне достойных функций, которых в штатном KVM-е нет.
Отказоустойчивость виртуальных машин (HAVM) реализована классическим и понятным образом. Она может быть активна или неактивна для каждой виртуалки, а включается на этапе создания ВМ или в процессе её редактирования.
Если параметр HAVM активен, то в случае отказа ноды кластера, ВМ автоматически перезапуститься на другой ноде.
Для отдельных ВМ или для групп ВМ предусмотрены приоритеты обслуживания (QOS) из libvirt-а, где в свою очередь предусмотрены шаблоны популярных конфигураций.
Для защиты данных на уровне ВМ, а также для большей гибкости администрирования предусмотрены мгновенные снимки и клоны (которые можно превратить в шаблоны ВМ соответственно). Важной доработкой и одновременно крайне большой радостью является то, что снэпшоты делаются на горячую (при работающей ВМ) и полностью поддерживают консистентность файловых систем гостевых ОС (Linux, Solaris, Windows, BSD) и ряда поддерживаемых СУБД (пока только PostgreSQL и MySQL). При этом с помощью RestfulAPI никто не мешает реализовать консистентные снимки для других систем внутри гостевой ОС самостоятельно.
Для внешнего хранения из коробки поддерживается NFS, то есть хранить виртуалки можно на распределенном хранилище ARDFS (доступно в vAIR) или на внешней СХД по протоколу NFS. Опционально предусмотрена поддержка блочных внешних СХД по протоколам iSCSI и FC.
Миграция, причем неважно откуда и куда, всегда стоит особняком во всей ИТ-жизни. За время полутора лет эксплуатации нашими заказчиками первой версии vAIR они (и мы автоматически) регулярно сталкивались с проблемами миграции виртуальных машин со сторонних гипервизоров в АИСТ. Штатный конвертер KVM штука хорошая, но крайне капризная. Поэтому в vAIR v2 (и в АИСТе соответственно) мы предусмотрели человеческий конвертер ВМ из VMware/Hyper-V прямо в интерфейсе vAIR/АИСТ.
Для конвертации администратор выбирает шару NFS (пока только NFS), где лежат файлы виртуальных машин VMware или Hyper-V. Далее vAIR сам сканирует шару на наличие нужных ему файлов и формирует доступный список для миграции. Далее выбираем целевой пул ARDFS (или внешнюю СХД), то есть куда будем конвертировать, выбираем нужные файлы ВМ (можно несколько, они будут конвертироваться по очереди) запускаем и идём пить пиво.
Когда пиво выпито, новые, уже сконвертированные, виртуалки ждут нас уже внутри vAIR-а в выключенном состоянии.
Функции мониторинга реализованы как локально, так и удаленно. Администратор может работать со счетчиками утилизации ресурсов CPU, RAM, сетевых интерфейсов и подсистемой ввода-вывода (IOPS, MB/s, latency), как на уровне отдельных нод, так и на уровне кластера в целом.
Всё то же самое доступно и для удаленной системы мониторинга на базе Grafana.
Для логирования и алертинга предусмотрен журнал событий (ноды, порты, физические диски (SMARTCTL), сенсоры, температура и т.п.) с разбивкой по категориям и возможностью оповещения по электронной почте. Опционально поддерживается SNMP.
Кроме описанных выше возможностей гипервизор АИСТ позволяет выполнять функционал, который мы считаем must have, поэтому сильно его разрисовывать не будем, а просто перечислим:
Детально ознакомиться с особенностями функционала можно в технической документации, которая есть у нас на сайте:
https://aerodisk.ru/upload/Datasheet_AIST_final_11042021.pdf
В процессе разработки vAIR и АИСТ собственных решений в области виртуализации многие наши доверенные партнеры (которые допущены к раннему доступу), глядя на это, утверждали, что это плохая идея, потому что ВМварь и Нутаникс не догнать, они слишком крутые и великие, у них тысячи программистов по всей планете, бороды длиннее и свитера в два раза толще.
На подобные утверждения мы всегда задавали вопрос.
А эти компании сразу появились на свет с тысячей бородатых разрабов в толстых свитерах?
ИЛИ другой вариант
А вы когда родились вам сразу было 35 лет, у вас была машина, семья, дача, работа и образование? Это в комплекте вам врачи в роддоме выдавали?
В продолжении этой мысли позволим себе процитировать нашу же старую статью:
притча на эту тему.
Однажды странник попал в город, где шло грандиозное строительство. Мужчины ворочали большие камни под палящим солнцем. Что ты делаешь? спросил наш герой у одного из рабочих, который медленно тащил булыжник. Ты что, не видишь камни таскаю! зло ответил тот. Тут странник заметил другого рабочего, который волок телегу с большими камнями, и спросил: Что ты делаешь? Я зарабатываю на еду для своей семьи, получил он ответ. Странник подошел к третьему рабочему, который занимался тем же, но работал энергичнее и быстрее. Что делаешь ты? Я строю храм, улыбнулся тот.
О чем эта притча? О том, что если веришь в большую идею, видишь большую цель, то для тебя нет ничего невозможного, все достижимо. И каждый шаг, который приближает тебя к большой цели, удваивает твои силы. Существует устоявшийся миф о том, что разработка любого серьезного продукта, по силам только транснациональной корпорации, у которой обязательно сотни или тысячи программистов по всему миру.
В жизни это совсем не так. Практически всегда (за редким исключением), новый серьезный продукт создается небольшим коллективом до 10 человек (а обычно 2-3). При этом на этапе создания закладывается 80% всего функционала продукта. Далее продукт силами этого маленького коллектива выходит на рынок (или как-то еще громко заявляет о себе), и там его уже подхватывают инвесторы (фонды, холдинги или крупные производители).
Таким образом мы в свое время большую цель увидели и в большую идею поверили и время показало, что мы не ошиблись.
На этом мы завершаем первую часть цикла статей про vAIR v2. В следующей статье подробно расскажем о функционале файловой системы ARDFS.
Также в ближайшее время мы планируем организовать очередной вебинар ОколоИТ, где в прямом эфире поговорим про vAIR и все что его окружает. Тем вебинара есть несколько, от выбора темы зависит, кого мы позовём на вебинар. Поэтому мы хотим право выбора темы отдать в руки ИТ-сообщества и по этой причине запускаем голосование по темам следующего ОколоИТ.
Голосование доступно тут, на Хабре, а также в нашем телеграм-чате https://t.me/aerodisk
Всем спасибо за внимание, как обычно ждем конструктивной критики и интересных вопросов.
Тестирование СХД Аэродиск Восток на базе процессоров Эльбрус 8С на новом ядре 5.4 показало крайне позитивный результат: 1,4 миллиона IOPS! Пока оптимисты верили и надеялись, а пессимисты снисходительно улыбались, программисты работали писали код. В итоге новая версия ядра Линукс v5.4 для архитектуры Эльбрус позволила в разы улучшить производительность подсистемы ввода-вывода и полностью реализовать процессора Эльбрус 8С/СВ для систем хранения данных.
По этому прекрасному поводу мы в Аэродиске, предварительно обновив боевую версию встроенного Альт-Линукса в СХД ВОСТОК до ядра 5.4, повторно выполнили нагрузочное тестирование СХД, которое мы публиковали полгода назад. С прошлым отчетом можно ознакомиться по данной ссылке.
Новые тесты проводились на долгожданном ядре Линукс для e2k версии 5.4, которое появилось начале 2021 года, за что хотим сказать огромное спасибо коллективам разработчиков МЦСТ, Базальт СПО, а также Михаилу Шигорину лично.
В ядре 5.4 изменений много, но нас интересуют только основные изменения с точки зрения СХД, а их можно разделить на следующие группы:
Общие обновления:
Обновления от Аэродиска:
Тестирование мы выполняли на том же железе, что и в прошлый раз. Стенд состоит из сервера с Линуксом, подключенного через FC-коммутатор к двум контроллерам СХД Восток, в которой установлено 12 SAS SSD дисков.
Конфигурация оборудования следующая:
Ниже схема стенда.
Также как и в прошлый раз для нагрузочных тестов мы использовали популярную и проверенную временем программу Flexible IO (FIO).
СХД сконфигурирована исходя из наших рекомендаций к высокой производительности на блочном доступе или просто настройки для ALL-Flash систем. Поэтому используем не менее двух дисковых пулов DDP (Dynamic Disk Pool). Чтобы не бить в одну точку и максимально реализовать вычислительный потенциал платформы создаем несколько LUN-ов в RAID-10 (8 шт. по 500 ГБ каждый).
Все LUN-ы презентуем двум контроллерам (пополам, по 4 каждому), чтобы максимально утилизировать все ресурсы СХД.
В ходе тестирование будут выполняться следующие популярные сценарии использования СХД, в частности:
Последовательная нагрузка маленькими блоками 4k
Случайная нагрузка маленькими блоками 4k
Последовательная нагрузка большими блоками 128k
Каждый тест будет длиться полчаса, по результатам теста данные автоматически выгружаются в лог, который уже преобразовывается в графики.
Во всех тестах мы, чтобы не искажать результаты тестирования, намеренно отключаем RAM-кэш СХД, который используется для ускорения ввода-вывода, компрессии и дедупликации. Забежим вперед и отдельно скажем про утилизацию оперативной памяти СХД в целом (чтобы к этому вопросу больше не возвращаться). Во всех тестах RAM утилизируется практически одинаково, т.е. слабо, т.к RAM-кэш, дедуп и компрессия отключены. Вся утилизация RAM это внутренние системные операции СХД. Если бы мы включили RAM-кэш, то результаты были бы заметно лучше, но тогда тест был бы не совсем честным. При этом график утилизации оперативки мы для порядка все-равно приводим в отчете ниже.
Кроме того, исходя из опыта публикации прошлой статьи про производительность Эльбруса и по многочисленным просьбам трудящихся, мы также выкладываем подробные конфиги FIO.
[global]
blocksize=4k
size=80%
direct=1
buffered=0
ioengine=libaio
iodepth=128
group_reporting
rw=read
numjobs=16
runtime=2400
time_based=1
per_job_logs=0
log_avg_msec=30000
write_bw_log=./logs/read-iodepth-128-numjobs-16
write_iops_log=./logs/read-iodepth-128-numjobs-16
write_lat_log=./logs/read-iodepth-128-numjobs-16
[job-1]
filename=/dev/sdj
[job-2]
filename=/dev/sdc
[job-3]
filename=/dev/sdd
[job-4]
filename=/dev/sde
[job-5]
filename=/dev/sdf
[job-6]
filename=/dev/sdg
[job-7]
filename=/dev/sdh
[job-8]
filename=/dev/sdi
[global]
blocksize=4k
size=80%
direct=1
buffered=0
ioengine=libaio
iodepth=128
group_reporting
rw=write
numjobs=16
runtime=2400
time_based=1
[job-1]
filename=/dev/sdj
[job-2]
filename=/dev/sdc
[job-3]
filename=/dev/sdd
[job-4]
filename=/dev/sde
[job-5]
filename=/dev/sdf
[job-6]
filename=/dev/sdg
[job-7]
filename=/dev/sdh
[job-8]
filename=/dev/sdi
[global]
blocksize=4k
size=80%
direct=1
buffered=0
ioengine=libaio
iodepth=64
group_reporting
rw=randread
numjobs=2
runtime=2400
time_based=1
per_job_logs=0
log_avg_msec=30000
write_bw_log=./logs/4k-rand-read.results
write_iops_log=./logs/4k-rand-read.results
write_lat_log=./logs/4k-rand-read.results
[job-1]
filename=/dev/sdc
[job-2]
filename=/dev/sdd
[job-3]
filename=/dev/sde
[job-4]
filename=/dev/sdf
[job-5]
filename=/dev/sdg
[job-6]
filename=/dev/sdh
[job-7]
filename=/dev/sdi
[job-8]
filename=/dev/sdj
[global]
blocksize=4k
size=80%
direct=1
buffered=0
ioengine=libaio
iodepth=16
group_reporting
rw=randwrite
numjobs=2
runtime=2400
time_based=1
per_job_logs=0
log_avg_msec=30000
write_bw_log=./logs/4k-rand-write.results
write_iops_log=./logs/4k-rand-write.results
write_lat_log=./logs/4k-rand-write.results
[job-1]
filename=/dev/sdc
[job-2]
filename=/dev/sdd
[job-3]
filename=/dev/sde
[job-4]
filename=/dev/sdf
[job-5]
filename=/dev/sdg
[job-6]
filename=/dev/sdh
[job-7]
filename=/dev/sdi
[job-8]
filename=/dev/sdj
[global]
blocksize=128k
size=80%
direct=1
buffered=0
ioengine=libaio
iodepth=128
group_reporting
rw=read
numjobs=16
runtime=2400
time_based=1
per_job_logs=0
log_avg_msec=30000
write_bw_log=./logs/128k-seq-read.results
write_iops_log=./logs/128k-seq-read.results
write_lat_log=./logs/128k-seq-read.results
[job-1]
filename=/dev/sdj
[job-2]
filename=/dev/sdc
[job-3]
filename=/dev/sdd
[job-4]
filename=/dev/sde
[job-5]
filename=/dev/sdf
[job-6]
filename=/dev/sdg
[job-7]
filename=/dev/sdh
[job-8]
filename=/dev/sdi
[global]
blocksize=128k
size=80%
direct=1
buffered=0
ioengine=libaio
iodepth=16
group_reporting
rw=write
numjobs=2
runtime=2400
time_based=1
per_job_logs=0
log_avg_msec=30000
write_bw_log=./logs/128k-seq-write.results
write_iops_log=./logs/128k-seq-write.results
write_lat_log=./logs/128k-seq-write.results
[job-1]
filename=/dev/sdj
[job-2]
filename=/dev/sdc
[job-3]
filename=/dev/sdd
[job-4]
filename=/dev/sde
[job-5]
filename=/dev/sdf
[job-6]
filename=/dev/sdg
[job-7]
filename=/dev/sdh
[job-8]
100%_read_4k_sequential
График загрузки CPU СХД и RAM СХД
Ввод-вывод СХД, IOPS и latency
100%_write_4k_sequential
График загрузки CPU СХД и RAM СХД
Ввод-вывод СХД, IOPS и latency
Результат:
Результаты теста с использованием последовательного характера нагрузки небольшими блоками 4k нас впечатлили, получилось !1,4 миллиона! IOPS на чтение и 700k на запись. Если сравнивать это с предыдущим нашим тестом на ядре 4,19 (371k и 233k IOPS), то это скачек в четыре раза при том, что железо мы не меняли.
Также отмечаем довольно небольшую утилизацию CPU, она примерно
на 20% ниже предыдущего теста (69/71% против 76/92%).
Задержки при этом остались на том же уровне, что и полгода назад,
это не значит, что с этим мы думаем мириться, это значит, что над
этим мы ещё будем работать. В конце статьи, будет итоговая таблица
сравнения с тестом полугодовой давности на ядре 4,19.
100%_read_4k_random
График загрузки CPU СХД и RAM СХД
Ввод-вывод СХД, IOPS и latency
100%_write_4k_random
График загрузки CPU СХД и RAM СХД
Ввод-вывод СХД, IOPS и latency
Результат:
Показатели случайной нагрузки маленькими блоками, характерной для транзакционных СУБД остались практически без изменений по сравнению с прошлым тестом. СХД Восток на Эльбрусе вполне нормально справляется с подобными задачами, выдавая 118k IOPS на чтение и 84k IOPS на запись при довольно высокой утилизации CPU.
Отмечаем, что для Эльбруса в отличии от других процессоров работа в режиме постоянной загрузки близкой к 100% является штатной ситуацией (он для этого создавался). Мы это проверяли, оставляя СХД Восток с нагруженным процессором под 95% на несколько дней и результат был следующий: 1) процессор был холодный; 2)процессор и система в целом работали в нормальном режиме. Поэтому к высокому уровню утилизации процессоров Эльбрус следует относиться спокойно.
Также с прошлого ядра сохранилась приятная особенность. Если посмотреть на задержки при случайной нагрузке маленькими блоками, то внимание привлекает то, что задержки на запись ниже, чем на чтение (3 мс против 8 мс), когда мы все привыкли, что должно быть наоборот. Эльбрус с точки зрения случайного характера нагрузки по-прежнему любит запись больше чем чтение, что несомненно является отличным преимуществом, которое грех не использовать.
100%_read_128k_sequential
График загрузки CPU СХД и RAM СХД
Ввод-вывод СХД, IOPS и latency
100%_write_128k_sequential
График загрузки CPU СХД и RAM СХД
Ввод-вывод СХД, IOPS и latency
Результат:
Ещё полгода назад СХД Восток на базе процессоров Эльбрус показала отличный результат в тесте последовательной нагрузки большими блоками, что актуально для видеонаблюдения или трансляций. Особой фишкой Эльбруса были ультранизкие задержки при работе с большими блоками (0,4-0,5 мс против 5 6 мс у аналогичного процессора архитектуры x-86).
При чтении данных большими блоками данное преимущество удалось не только закрепить, но и развить. Максимальную скорость на новом ядре удалось поднять в два раза (5,7 ГБ/с на ядре 5.4 против 2,6 ГБ/с на ядре 4.19) при задержках 0,3 мс! Также нагрузка на процессор при данном тесте тоже выглядит лучше (52% на 5,4 против 75% на 4,19).
А вот с записью не так все радужно. К сожалению, в новой версии ядра получить ультранизкие задержки на запись уже не удается, во всяком случае пока. Они находятся на уровне 11 мс (а было 0,5 мс), что в целом не плохо, т.к. примерно такой же уровень задержек при таком тесте мы видим на процессорах других архитектур. Так или иначе это наше домашнее задание, над которым мы будем работать. При этом позитивный момент все-таки есть. Как и в других тестах утилизация процессора значительны снижена (74% против 95%).
Улучшение в 5.4 зеленые, ухудшения 5.4 оранжевые
Для сравнения, результаты тестирования АЭРОДИСК ВОСТОК на базе процессоров Эльбрус 8С, ядро 4.19
Улучшение в 5.4 зеленые, ухудшения в 5.4 оранжевые
Прогресс виден не вооруженным глазом! Новая версия ядра 5.4 для архитектуры Эльбрус позволила выжать практические максимумы из совсем не нового процессора Эльбрус 8С (2016 г. выпуска). На данный момент даже у самых ярых пессимистов уже не повернется язык назвать процессор Эльбрус медленным, все таки полтора миллиона IOPS это много.
В очередной раз мы убедились в отличной работе СХД на Эльбрусе среде, где преобладает последовательная нагрузка, а это аналитические СУБД, онлайн-трансляции, видеонаблюдение, обработка больших данных и т.п.
Кроме того, Эльбрус отлично себя показывает в случайной нагрузке на запись, показывая минимальные задержки, что актуально для классических транзакционных СУБД.
Безусловно есть ещё над чем работать (те же задержки при записи больших потоков), но за прошедшие полгода коллектив МЦСТ проделал титаническую работу, и она дала видимый результат, что не может не радовать.
В конце этого 21-ого года мы ожидаем новый процессор Эльбрус 16С, который, кроме того что будет намного быстрее, ещё будет поддерживать аппаратную виртуализацию, а это значит что у нас в России наконец-то появится полностью отечественные не только СХД, но и системы виртуализации, и гиперконвергентные системы (кто сказал АИСТ и vAIR?))).
Кстати о птичках! В течение этой недели мы определимся с датами
следующего технического вебинара ОколоИТ про нашу систему
виртуализации АИСТ и гиперконвергентную систему vAIR, ссылка на
регистрацию появится в этой статье (следите за обновлением), а
также в нашем телеграмм-чате.
Ну и само собой, не можем не напомнить о бесплатных курсах по
системам Аэродиск, на которые можно записаться
тут.
На этой позитивной ноте завершаем очередную статью про Эльбрус. Традиционно ждем каверзных вопросов, конструктивных споров и предложений.
Хочется пролить свет на интересную линейку систем хранения данных HPE Nimble Storage Adaptive Flash и попытаться раскрыть вопрос почему маркетологи решили его назвать Adaptive Flash, а не более традиционно - Hybrid Flash. Судя по поиску, существует не так много обзоров и статей, посвященных Nimble, поэтому надеюсь, что этот материал будет полезен интересующимся данной темой.
В мое распоряжение попал массив с флагманскими контроллерами - HF60. Это СХД 5-го поколения (Nimble Gen5), но уже по состоянию на 04.05.2021 компания HPE анонсировала (пока только AllFlash) 6-е поколение (Nimble Gen6), которое будет называться Allerta 6000. Adaptive Flash 6-го поколения - анонс ожидается летом 2021. Так что пока наш подопытный последнего (актуального) поколения.
Давайте начнем издалека. Компания Nimble Storage берет свое начало в 2008 году и уже в 2014 наделала много шуму, объявив о революционном достижении (на тот момент) доступность систем хранения данных превысила 99,999%. В 2016 году этот показатель уже составлял 99,999928%. Традиционно, столь успешные стартапы поглощаются более крупными компаниями. Так и случилось с Nimble - в 2017 году компания влилась в ряды Hewlett Packard Enterprise. За счет чего им удалось получить такие цифры доступности (причем это не лабораторные, а реальные данные)? Если совсем коротко: архитектура и надстройка в виде аналитической платформы InfoSight. Давайте остановимся на каждом пункте чуть подробнее.
Если Вам лень читать, можете посмотреть видео (на англ.):
СХД Nimble в своей основе использует архитектуру CASL (Cache Accelerated Sequential Layout). В основу архитектуры заложено:
Active/Standby контроллеры. Большинство других систем с двумя контроллерами Active/Active демонстрируют производительность с нулевым запасом мощности, поэтому, если один из контроллеров недоступен - вы уведёте половину скорости...
Функционал редупликации/компрессии/шифрования в режиме онлайн (на лету). Подробнее как это работает ниже в описании операций чтения и записи.
RAID Tripple Parity+ с фиксированным стартовым набором дисков 21шт HDD + 6шт SSD. Массив выдерживает выход из строя 3 любых дисков из одной RAID группы. Но лучшее качество Triple+ RAID не в том, что он защищает от потери любых 3 дисков. Крутая часть это +. Это позволяет системе не иметь проблем с целостностью данных, даже если на каждом отдельном диске в системе возникают ошибки параллельного чтения секторов и три диска были потеряны. Это уровень устойчивости к коррелированным по времени ошибкам, который ни один другой массив в мире даже близко не может предложить.
Защита данных через каскадные многоступенчатые контрольные суммы.
Память с защитой по питанию NVRAM.
SSD кэш на чтение (в случае с Adaptive Flash). Важно отметить, что RAID для SSD не используется, т. к. задача кэша дать максимальную скорость. Насчет надежности можно не беспокоиться, поскольку данные в кэш копируются с защищенных RAID-ом TripleParity+ HDD (об этом ниже).
Запись от разных приложений разными блоками;
NimbleOS принимает запись на NVDIMM активного контроллера;
NimbleOS зеркалирует NVDIMM активного контроллера в NVDIMM Standby контроллера;
NimbleOS подтверждает запись хосту;
Блоки копируются в DRAM, где и происходит магия архитектуры CASL, а именно:
a. Дедупликация с переменным блоком;
b. Сжатие с переменным блоком;
c. Блоки собираются в страйпы размером 10 Мбайт;
d. Страйпы последовательно пишутся на HDD;
Достойные кэша блоки или блоки из Pinned томов копируются на SSD кэш + блоки индексируются (индекс пишется на SSD и HDD в фоне). Есть 3 настройки кеширования которые можно выставить на каждый том:
Default данные кэшируются в автоматическом режиме по выбору NimbleOS;
Pinned настройка, которая по умолчанию копирует все данные тома на SSD диски и мы получаем All Flash на чтение;
OFF - выключенное кеширование, т. е. SSD диски не задействованы вообще. Полезно для томов, где нет необходимости ускорять чтение;
Во-первых: количество операций Random write в бэкенде системы минимизировано. По сути, большинство операций происходит в оперативной памяти кэша контроллеров, компрессия выполняется после дедупликации, таким образом число операций ввода-вывода на дисках SSD/HDD сведено к минимуму.
Во-вторых: последовательная запись помогает избежать задержек на механических дисках. Иными словами, благодаря такой архитектуре используется максимум выгоды от обычных HDD дисков.
Процесс чтения в массивах Adaptive FlashЗапрашиваем блок в NVDIMM. Если данные там отдаем хосту;
Если блока нет, читаем из DRAM;
Если блока нет, читаем с SSD:
a. Если блок есть, проверяем контрольную сумму, разжимаем;
b. Регидрируем и отдаем хосту;
Если блока нет, читаем с HDD, блок ищем через индекс;
a. Если блок есть, проверяем контрольную сумму, разжимаем;
b. Регидрируем и отдаем хосту;
Если блок достоин кэша, копируем на SSD;
Во-первых: скорость ограничена не производительностью дисков, а скоростью памяти NVDIMM (которая существенно быстрее SSD дисков) т. е. контроллерами.
Во-вторых: согласно живой статистике, массив больше 95% попадает в кэш. Иными словами, имея в запасе всего 1020% SSD дисков, массив будет обеспечивать скорость All Flash больше 95% времени. Важно отметить, что это не означает что оставшиеся 5% времени данные будут читаться медленно с механических дисков. Дисков в стартовом наборе - 21 шт., при чтении их скорость суммируется. Будет иметь место то, что при чтении с HDD дисков задержка будет немного больше чем 1мс. Но не забываем, что этого легко избежать настройкой кэширования индивидуально для каждого тома.
Данные защищены от выхода из строя 3-х любых накопителей;
Данные дедуплицируются и сжимаются в памяти до записи на диски без существенного падения производительности;
Данные пишутся быстро: благодаря алгоритму архитектуры CASL;
Данные читаются быстро: кэшируются на SSD диски для ускорения чтения и здесь нет никакого тирринга данных как в традиционных гибридах;
Данные можно дополнительно защищать шифрованием;
Гибкие настройки. Можно вкл/выкл индивидуально для каждого тома: дедуп; компрессия; шифрование; кеширование; ограничение по IOPS или пропускной способности (или того и другого) и прочее;
Гибкие возможности масштабирования емкости/производительности:
возможность масштабировать емкость (добавлять дисковые полки);
емкость и производительность (добавлять еще один массив в кластер, до 4 шт);
производительность (заменить контроллеры на более производительные).
Тезисы:
HPE InfoSight это передовая в отрасли платформа облачной аналитики InfoSight. Передовая - поскольку начала работать гораздо раньше, чем у других вендоров. А здесь важна наработка системы по времени. Чем дольше она работает, тем больше данных собирает, тем больше проблем может предотвратить. Об этом ниже.
Доступность СХД HPE Nimble 99,9999%, достигается благодаря применению InfoSight.
Миссия HPE InfoSight: сохранять маниакальный фокус на предоставлении заказчику такой поддержки, чтобы все завидовали!
Данная технология позволяет СХД непрерывно в автоматическом режиме собирать большое количество данных как о собственном состоянии, так и об окружающей виртуальной инфраструктуре (подключенные сети, серверы, платформы виртуализации), это важно, поскольку более половины сервисных инцидентов, как правило, не связаны с СХД. Затем эти показатели отправляются в облачную систему, где с помощью сложных аналитических алгоритмов выявляются текущие проблемы и делаются прогнозы о будущем состоянии инфраструктуры. На основе данных выводов предоставляются автоматические исправления и рекомендации для администратора СХД.
Например, при обнаружении у одного из заказчиков проблемы в совместимости микропрограммы контроллеров СХД с приложениями гипервизора, система автоматически заблокирует возможность установки данной версии прошивки на СХД у других заказчиков, а тем у кого уже установлена схожая конфигурация - будет предложен апдейт системы. Такой подход помогает предотвращать сбои до их возникновения, причем во многих случаях без вмешательства человека.
По данным HPE, при использовании InfoSight 86% проблем разрешаются без участия ИТ-службы. Сюда входят инциденты как с самой СХД, так и с окружающей инфраструктурой.
InfoSight позволяет значительно сократить время на поиск проблемных узлов инфраструктуры в случае деградации производительности. Система в удобном графическом виде показывает текущее время отклика и статистику задержек за определенный период по проблемной ВМ не только относительно самой СХД, но и сети передачи данных SAN, а также приложений гипервизора. Отклонение каких-либо показателей в кратчайшие сроки позволит определить узкое место инфраструктуры. Не нужно переключаться между несколькими системами мониторинга, все показатели доступны в едином портале, так как InfoSight интегрируется с VMware VCenter. В процессе диагностики собирается только служебная информация, собственные данные заказчика не затрагиваются. Информация передается по защищенному SSL каналу.
Некоторые примеры передаваемых данных:
Серийный номер массива.
Базовая информация о работоспособности (health check).
Системные журналы событий.
Параметры настроек системы.
Статистика работы системы.
Тестовая конфигурация:
СХД Nimble HPE Nimble Storage Adaptive Flash HF60 / 21x2TB HDD / 5.76TB (6x960GB) SSD Cache / 4x16GB FC на каждый контроллер;
Хост 1: Сервер HPE DL160 Gen10 / 1x Xeon 4210R / 6x16GB DDR4-R / 2xSN1100Q 16Gb 2p FC / 2x500W;
Хост 2: Сервер HPE DL325 Gen10 / 1x EPYC 7551P / 8x16GB DDR4-R / 2xSN1100Q 16Gb 2p FC / 2x500W;
Подключение серверов напрямую к СХД, т. к. под рукой не было коммутаторов Fibre Channel. Поэтому в серверах по 2шт двухпортовых карточки, чтоб загрузить все 4 порта на каждом контроллере СХД;
VMware vSphere 7;
Тестирование с помощью HCIbench 2.5.3;
Для начала нам было интересно сравнить наш Adaptive Flash HF60 с протестированным All Flash AF40:
Нагружаем наш массив аналогичными параметрами и в конце сводим результаты.
Первый тест: 384 потока/100%, получаем результаты:
Второй тест: 192 потока/100% чтение, получаем результаты:
Третий тест: 192 потока/100% запись, получаем результаты:
Сравниваем результаты Adaptive Flash HF60 vs All Flash AF40:
Получаем то, что СХД с медленными 7,2k дисками дает большую производительность и меньшое время отклика чем All Flash массив. Как так? Все дело в контроллерах и архитектуре. В нашем случает стоят более производительные контроллеры и за счет магии архитектуры CASL гибриды Adaptive Flash показывают производительности сопоставимую с All Flash (контролеры используются одинаковые HF20=AF20, HF40=AF40, HF60=AF60, разница HF и AF только в конфигурации дисках). Причем скорость и задержки HF60 выигрывает при записи, где в Adaptive Flash никак не задействованы SSD.
За то время что у нас был массив мы смогли сравнить еще с одной конфигурацией All Flash XS5226D СХД QSAN. К нам попал такой результат тестирования:
Единственное, что мы не смогли повторить 464 потока при 32-х виртуалках. Поэтому сделали 448 и 480.
448/480 одновременных потоков серьезная нагрузка. Можно отметить, что здесь массив вполне играет наравне с дешевым All Flash. У QSAN очень много непонятных пиков и провалов по задержке. Поэтому Nimble существенно выигрывает по 95-му перцентилю.
При 100% записи производительность проседает некритично ~ 20%. При 100% чтении почти ничего не меняется, что вполне логично. Гораздо интереснее 70/30. При наличии нулевых блоков операции чтения ускоряются при включенной компрессии.
Чтобы не путать их с традиционными гибридными массивами в основе которых в основном лежит тирринг данных. Тирринг в свое время был хорошей технологией, но сейчас он требует внимания администратора, правильную настройку и многое другое, что отнимает время. А здесь просто нужно выбрать емкость, проставить политики для томов и погнали. Остальное массив сделает сам: подскажет, где что не так, где шумные виртуалки, где в сети большие задержки, откроет и закроет сервисный кейс и многое другое из того, что экономит время.
Могу еще добавить, что наши инженеры скептически относились к данному массиву до тестирования. После первых предварительных результатов (~94k IOPS и задержки 5мс) на 100% чтение Возник спор, т. к. 94k полученных и 300k теоретических сильно отличались. Инженеры стояли на том, что невозможно получить больше на дисках 7200. После проверки конфигурации оказалось, что для тестовых машин было выключено кеширования и чтение не ускорялось вообще. После правильной настройки все взлетело. И как только они не пытались убить скорость массива не получалось (в рамках разумного естественно). В итоге лишь в условиях личного опыта у них поменялось мнение. К чему это? К тому что очень полезно брать железяку на тест, когда ее предлагают (да еще и бесплатно).
Продолжаем рассказывать об эксплуатации Ceph. Сегодня поговорим о процессе восстановления данных и флагах, которые позволяют его контролировать: norebalance, nobackfill и norecover.
Статья подготовлена на основе лекции Александра Руденко, ведущего инженера в группе разработки Облака КРОК. Лекция доступна в рамках курса по Ceph в Слёрме.
Для полного понимания рекомендуем сначала прочесть статью о флагах для управления состояниями OSD.
Если вы работали с СХД, то сталкивались с процессами rebuild и rebalance, где rebuild это восстановление утерянных копий данных, а rebalance перемещение существующих копий данных с места на место по тем или иным причинам.
Обычно эти процессы имеют разные приоритеты. rebuild отдают большую полосу пропускания, его меньше лимитируют, потому что важно быстро восстановить утерянные данные. rebalance зажимают, так как в процессе перемещения недостатка в данных нет.
В Ceph процессы rebuild и rebalance обозначены не так чётко: одна placement group может быть сразу в 6 статусах. Но с точки зрения восстановления и перемещения данных имеют значение два состояния объектов: degraded и misplaced.
Если объект в состоянии degraded, это означает, что какая-то placement group не имеет копий. Например, есть пул с тройной репликацией: у placement group три копии, одна из них в состоянии primary, другие синхронно получают от неё репликацию. Если какая-то из этих копий будет утеряна, объекты окажутся в состоянии degraded. Восстановление degraded объектов это процесс rebuild с точки зрения общепринятых условностей.
Напомню, что placement group в Ceph представлена несколькими placement groups на разных OSD. Состояние misplaced означает, что объекты перемещаются с места на место. Количество копий их placement group правильное, они все синхронны, но где-то создана новая placement group, которая должна заменить одну из существующих копий и ждёт окончания бэкфиллинга. Когда он закончится, старую копию placement group Ceph удалит. Это процесс rebalance в общем понимании.
Глядя на строки degraded и misplaced, вы понимаете, сколько у вас данных деградирует и нуждается в процессе rebuild, и сколько данных нуждается в перемещении с целью rebalance.
Останавливать процессы восстановления и перемещения данных позволяют следующие флаги:
nobackfill и norecover делают одно и то же. В коде они отключают процесс recover немного по-разному, но результат один: полная остановка recovery io.
Посмотрим на примере.
Устанавливаем какой-то из флагов:
ceph osd set norecover
Теперь остановим одну из OSD и отправим её в out, чтобы запустился процесс recovery.
systemctl stop ceph-osd@0
ceph osd out 0
Проверяем результат и видим recovery, но это на этапе пиринга placement group. Он относится к recovery io, но по факту ничего не восстанавливает.
Прошло некоторое время и этот процесс закончился.
У нас есть объекты в состоянии degraded и множество статусов placement group, но они заморожены, потому что recovery остановлен.
Надо заметить, что флаг norecover работает не совсем так, как noout (о нём было в предыдущей статье).
Когда мы ставим noout, мы всё ещё можем вручную отправить OSD в out. Здесь не так: мы ставим norecover, тем самым останавливаем идущий прямо сейчас процесс recovery и блокируем любой возможный в будущем recovery.
Флаг norecover блокирует любой вид перемещения данных, будь то с целью восстановления объектов, будь то с целью перемещения неправильно лежащих объектов, которые сейчас в состоянии misplaced.
Теперь снимем флаг:
ceph osd unset norecover
Как результат: пошёл полноценный процесс recovery io.
Если установить флаг nobackfill, то recovery io так же прекратится. Эти флаги работают одинаково.
Флаг norebalance отличается. Он позволяет процессу recovery io идти только в случае, если placement group находится в состоянии degraded.
Устанавливаем флаг norebalance:
Флаг установили, но процесс recovery всё равно идёт, потому что есть placement group и объекты в состоянии degraded.
Покажу ещё кое-что.
Вдобавок к установленному флагу norebalance снова установим флаг norecover (флаги можно ставить вместе, они друг другу не противоречат):
После этого выведем в out одну из OSD (под номером 1).
ceph osd out 1
Напомню, к этому моменту одна OSD уже отправлена в out и при этом выключена. Её данные недоступны, это degraded состояние для placement group и объектов.
При этом OSD 1 мы просто отправили в out. Она сейчас отдаёт с себя placement group другим OSD. Появился второй статус misplaced.
Теперь уберём флаг norecover и оставим только norebalance.
Таким образом мы заблокировали процессы переноса объектов в статусе misplaced, но разрешили процессы восстановления placement group в статусе degraded.
Это тот случай, когда нужно отдать максимальный приоритет именно восстановлению degraded объектов.
Общее замечание: не нужно ставить эти флаги просто для перезагрузки сервера. Если хотите перезапустить сервер, используйте флаг noout.
Авария. Бывают ситуации, когда по какой-то причине отключается целая стойка или отдельный сервер. Как и положено, Ceph обнаруживает потерю копий placement group и начинает восстанавливать их на других хостах. Если объём потерянных данных по-настоящему большой (а он может исчисляться сотнями терабайт), то процесс восстановления окажется губительным для всего кластера. В таком случае разумно установить флаг norecover, чтобы на некоторое время остановить recovery io.
Важно понимать, что речь идёт о ситуации, когда потеряна одна копия или домен данных. При этом все placement group находятся в состоянии active, то есть принимают запись и чтение.
Установив флаг norecover, администратор выясняет масштабы аварии. Если у стойки отошло питание или серверу требуется перезагрузка, то в течение короткого времени потерянные данные можно будет поднять, не гоняя их лишний раз по кластеру. Если проблемы серьёзнее и сервер действительно отказал, то флаг norecover нужно снять и позволить Ceph восстановить потерянные копии.
При этом флаг norebalance можно оставить, чтобы дать максимальный приоритет процессам восстановления данных. Особенно это актуально, если в момент потери хоста rebalance уже шёл (например, после добавления нескольких новых хостов).
Высокая нагрузка. Само recovery io может быть очень высокое, и из-за этого возникают проблемы: появляются slow ops, падает производительность. Тогда можно временно приостановить всё recovery io с помощью флага norecover, либо остановить перемещение объектов misplaced флагом norebalance. Опять же, до выяснения причин.
Флаг pause по сути останавливает клиентское io. Никто из клиентов не сможет ни читать, ни писать из пулов Ceph.
ceph osd set pause
Обратите внимание, что Ceph не важно, это восстановление degraded объектов или перемещение misplaced объектов, всё io, которое занимается этим, называется recovery. Когда говорят остановить recovery io, имеют в виду остановить всё вместе.
После установки флага pause останавливается всё, кроме recovery io. Даже MDS не может закоммитить свои данные в пулы или считать данные.
Но восстановление продолжает идти.
Если у вас есть публичный пользовательский сервис, то устанавливать этот флаг нельзя. Его установка сродни катастрофе для бизнеса.
Но есть среды (например, на предприятиях), где можно сказать пользователям, что сервис не будет доступен для обслуживания 3-5-10 часов.
Это может быть полезно при тяжелой DDoS-атаке. Когда какое-нибудь io разрушает кластер, а вы не можете легитимно его отфильтровать или остановить. Чтобы разобраться в проблеме, можно остановить вообще всё с помощью флага pause.
Ещё один вариант использования pause: у вас пострадала значительная часть кластера, и вы хотели бы восстановить её как можно скорее, отдав максимальный приоритет recovery io и заблокировав пользователей, чтобы они не занимали полосу и не замедляли процесс.
В заключение скажу: все описанные флаги можно использовать только при внимательном контроле за кластером. Нельзя оставлять их и уходить спать. Они нужны для блокирования естественных процессов, протекающих в Ceph, а сами по себе эти процессы правильные. Система способна сама себя восстанавливать и балансировать. Поэтому блокировать естественные состояния Ceph можно только находясь у компьютера и контролируя процесс.