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

Говоря о машинном обучении (МО), многие имеют в виду целый ряд «забавных» сценариев, от которых очень мало практической пользы. Как правило, речь идет о генераторах текстов, которые на поверку оказываются бессмыслицей, об автоматизированных сценариях для кино, имитации стиля живописи старых мастеров и прочих сомнительных проектах. Информационный шум вокруг такой активности формирует ложное представление о машинном обучении и искусственном интеллекте, в то время как существуют вполне конкретные области их применения в науке, технике и в информационных технологиях.

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

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

УМНЫЕ УСТРОЙСТВА ХРАНЕНИЯ

Одной из перспективных областей для применения машинного обучения является хранение данных. Перечисляя потенциальные направления нового технологического прорыва в сфере СХД, эксперты называют технологии RAIN, SSD, NVMe, облачные инфраструктуры и программно определяемое хранение (SDS), но даже не упоминают машинное обучение в СХД. Вероятно, это связано с тем, что соответствующие методы еще мало изучены и не до конца освоены лидерами рынка.

Распространение флеш-накопителей и развитие программно определяемого хранения — важные факторы, но они отнюдь не новость. В отличие от названных технологий, умные устройства хранения во многом остаются концепцией будущего, той самой Next Big Thing, которую так ждут эксперты.

Что же будут делать умные устройства? Они призваны не только хранить информацию, но и выполнять интеллектуальные аналитические действия, обеспечивая работу микросервисов и эластичную масштабируемость. В идеале такие устройства должны обладать способностью менять свои роли в зависимости от контекста и при необходимости объединяться для выполнения совместной задачи.

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

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

Схема реализации функции QoS на основе алгоритма машинного обучения  Random Forest в модуле QoSmic
Схема реализации функции QoS на основе алгоритма машинного обучения
Random Forest в модуле QoSmic

 

СЦЕНАРИИ ПРИМЕНЕНИЯ

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

Не исключено, что при сохранении текущих темпов развития мобильных технологий и автоматизации через пять-семь лет средства управления инфраструктурой научатся понимать естественный язык. Уже сегодня доступны аналоги Microsoft IFTTT, которые адекватно реагируют на задание «Транслировать все мои сообщения из Twitter в Facebook». Если говорить о конкретных примерах, то на пути к умному центру обработки данных существенно продвинулась компания Nimble Storage с продуктом InfoSight.

Второй важный сценарий — изменение параметров хранения на лету с модификацией настроек СХД в целом и отдельных компонентов в частности. Многие вендоры с различным успехом разрабатывали своего рода «автопилот», который на основе анализа имеющихся данных и поведенческих характеристик мог бы автоматически изменять параметры системы хранения, например, выбирая оптимальные настройки для преобладающего типа нагрузки.

Полем для экспериментов по реализации такого алгоритма стали флеш-накопители. Ввиду специфики NAND Flash, при разработке решений для SSD в одном таком решении невозможно совместить большой объем, высокую надежность и максимальное число перезаписей, из-за чего приходится идти на определенные компромиссы. Настройки устройства и его поведение можно изменить путем задания параметров регистров (регистров может быть более 1000 в 3D NAND и до 100 в планарной памяти). Удачный пример машинного обучения для автоматической модификации параметров различных регистров — решения технологического стартапа NVMdurance.

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

КАК НЕ ЗАБЛУДИТЬСЯ В «СЛУЧАЙНОМ ЛЕСУ»

Для решения этой проблемы были реализованы проекты, в рамках которых распознавание приложений и их нагрузки осуществляется по характерным операциям ввода-вывода (IO). В сфере Data Mining есть несколько алгоритмов, пригодных для подобной задачи идентификации — например, Random Forest, или «случайный лес». Этот метод основан на построении большого числа (ансамбля) «деревьев» решений (их количество является параметром метода). По сравнению с другими аналогичными алгоритмами Random Forest имеет следующие преимущества:

  • высокая скорость обучения;
  • неитеративное обучение (алгоритм завершается за фиксированное число операций);
  • масштабируемость (способность обрабатывать большие объемы данных);
  • высокое качество получаемых моделей (сравнимое с нейронными сетями и ансамблями нейронных сетей);
  • малое количество настраиваемых параметров.

Random Forest — вероятностный алгоритм. Когда к системе хранения обращается неизвестное приложение, он оценивает вероятность совпадения данного приложения с ранее обнаруженными в системе. При этом у алгоритма есть и недостатки. Один из них — склонность к переобучению на зашумленных данных. Впрочем, эта проблема решается с помощью применения специализированных фильтров наподобие FCBF.

В качестве примера реализации функции QoS на основе Random Forest рассмотрим модуль QoSmic, разработанный компанией «Рэйдикс». Принцип его функционирования довольно прост. Все запросы к СХД проходят через модуль распознавания приложений (см. рисунок). Модуль работает в двух режимах:

  • Обучение: система хранения изучает характеристики нового приложения, которое планируется распознавать в целях обеспечения QoS или упреждающего чтения.
  • Распознавание: приложения идентифицируются в режиме реального времени, а информация о них используется модулями QoS и Prefetch.

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

Для идентификации приложения достаточно знать четыре характеристики: длину запроса, тип запроса (чтение или запись), смещение (адресное пространство), время поступления запроса. На основании этих параметров и строятся сигнатуры I/O.

Изначально при идентификации приложений акцент делался на поиске известных «паттернов» (последовательности длин запросов, идущих один за другим). Данный подход отлично зарекомендовал себя ранее в случае сравнительных тестов (benchmark), ПО для резервного копирования и антивирусов. Тестировались различные алгоритмы машинного обучения, сначала удавалось идентифицировать приложения с низкой вероятностью, но с добавлением в сигнатуру ввода-вывода специальных атрибутов точность идентификации удалось довести до 99,9%.

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

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

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

ОТ ОБУЧЕНИЯ К РАБОТЕ

Автоматическое определение работающего приложения на инициаторе позволяет применять технологию QoSmic в любой системе хранения, где есть модуль QoS, отвечающий за разные уровни качества обслуживания. Cам же способ обеспечения QoS может быть реализован по-разному. Например, в решениях компаний Fujitsu или Oracle уровень QoS определяется администратором вручную. Эти СХД создают профили на основе соотношения операций чтения-записи и типов нагрузки, при этом распознавания конкретных приложений не происходит.

Похожая идея применения машинного обучения изложена в патенте US8762583 компании EMC. Она предполагает использование нейронной сети, для того чтобы определить оптимальный способ обработки входящих запросов ввода-вывода. Данный подход может быть использован и в модуле QoS для балансировки нагрузки на систему.

Таким образом, методы машинного обучения могут с успехом применяться в СХД, не вызывая дополнительных задержек и потерь производительности. В результате узким местом в системе хранения оказывается не вычислительный модуль, а скорость чтения с самих дисков, то есть ограничения оборудования.

Завершая обзор примеров внедрения машинного обучения в системах хранения данных, отметим, что роль «науки о данных» и самих специалистов по анализу данных (data scientist) в администрировании ИТ-инфраструктуры может со временем существенно уменьшиться. Возможно, в будущем не останется администраторов как таковых, поскольку из-за дальнейшего развития алгоритмов машинного обучения и искусственного интеллекта вовлеченность человека в управление инфраструктурой будет сведена к минимуму.

Светлана Лазарева, руководитель исследовательской лаборатории, компания «Рэйдикс»