Эпоха Больших Данных уже наступила — объемы данных, генерируемых в науке, бизнесе, индустрии и управлении ИТ, растут экспоненциально. Только один экспериментальный синхротрон Advanced Photon Source (APS) в Аргоннской лаборатории, используемый в числе прочего для томографической съемки объектов на субмикронных разрешениях, может ежедневно генерировать 150 Тбайт информации. Для того чтобы вычисления выполнялись достаточно быстро, приложения обработки Больших Данных должны функционировать на выделенных высокопроизводительных компьютерах, которые масштабируются лишь в определенных пределах и доступны лишь небольшому количеству пользователей. Облачные же сервисы могли бы за относительно низкую цену и с практически неограниченными возможностями масштабирования предоставлять любому пользователю доступ к требуемым ему вычислительным ресурсам. Однако для успешного развертывания таких приложений, в инфраструктуры облачных вычислений нужно интегрировать сложные системы переноса Больших Данных и управления ими, что сопряжено с немалыми сложностями.
Ограничения облаков
Перенос данных в облако и из облака, а также между разными облаками обычно приходится выполнять с помощью печально известных своей медлительностью системных утилит вроде Secure Copy (scp) и протокола HTTP — в некоторых случаях даже отправка накопителей курьерскими службами была бы быстрее. Более того, пропускная способность существующих сервисов переноса данных — измеряемая десятками мегабайт в секунду — на порядок ниже, чем обычно требуется высоконагруженным приложениям. Кроме того, ключевую роль в переносе облачных данных сегодня обычно выполняют платформы управления данными, которые в большинстве своем основаны на популярных системах наподобие Apache HBase, Google BigTable и Memcached, не предназначенных для операций с огромными объемами данных.
Нынешние парадигмы облаков попросту не удовлетворяют требованиям приложений обработки Больших Данных. Это связано с ограничениями аппаратной инфраструктуры: нехваткой пропускной способности сети, большой задержкой доступа к данным и неоптимальностью механизмов пересылки данных. Перенос приложений обработки данных в облако нередко требует объединения разнообразных СУБД и учета особенностей аппаратных систем, все эти вопросы обсуждаются в [1], а здесь рассмотрим инфраструктуру переноса данных.
Что мешает обработке данных в облаке
При развертывании в облаке высоконагруженных приложений возникают определенные сложности.
Распределенные источники данных. При вычислениях с использованием больших объемов данных необходимо уметь быстро переносить их в облако из разнообразных источников: распределенных датчиков, экспериментальных установок вроде APS, телескопов и т. п. Датчики совершенствуются, а количество источников данных во всем мире постоянно увеличивается, поэтому в облако приходится переносить все большие и большие объемы данных, при этом растет сетевая задержка, что неизбежно вызывает появление узких мест в каналах связи. К тому же перемены состояния динамически конфигурируемых сетей и несоответствие между скоростями переноса данных и вычислений затрудняют поддержку стабильных скоростей передачи.
Многооблачные среды. В некоторых случаях может понадобиться перенос больших пластов данных между несколькими облаками — например, если одного облака недостаточно для решения задачи или если проект требует нескольких облачных ресурсов. При межоблачных перемещениях данных возникают проблемы, решение которых зависит от ответов на два вопроса: сколько облаков понадобится для обработки данных с учетом затрат на перенос информации между ними и какой объем ресурсов (количество виртуальных машин, емкость хранения, пропускная способность сети и т. п.) нужен будет каждому облаку, чтобы обеспечить оптимальную скорость перемещения данных.
Качество обслуживания. Важнейшее значение для масштабируемости и быстродействия приложений имеют характеристики сетей ЦОД — оптимизация качества обслуживания требует активного обмена информацией между вычислительными узлами, однако большинство нынешних облачных ЦОД не способны обеспечить высокие скорости переноса данных, сопоставимые с показателями коммуникационных сетей высокопроизводительных компьютеров [2].
Для получения гарантированного быстродействия при выполнении приложений обработки Больших Данных следует учесть два дополнительных требования: о скорости переноса данных такими приложениями нужно заботиться отдельно, независимо от других работающих в то же время программ; процесс выделения ресурсов для приложений обработки данных должен быть автономным и адаптивным, это позволит обеспечить заданное качество обслуживания независимо от конкретного состояния динамической сети. Эти проблемы уже решаются, и прогноз относительно возможности выполнения в облаках приложений обработки Больших Данных весьма оптимистичен.
Возможные решения
Реализовать высокоскоростную доставку данных из распределенных источников и перенос больших срезов информации между облаками можно путем минимизации непроизводительных затрат при передаче и оптимизации оркестровки множественных потоков данных. Оптимизацию внутриоблачного переноса данных можно осуществить, например, с помощью развивающихся сейчас методов управления ресурсами с соблюдением гарантий качества обслуживания. Такие методы обеспечивают мелкодисперсный контроль над резервированием ресурсов.
Минимизация непроизводительных затрат. Предел возможностей сетевых каналов сейчас составляет 100 Гбит/c, и сегодня предложены следующие подходы к минимизации непроизводительных затрат при передаче данных:
- устранение лишних копий данных с помощью дистанционного доступа к памяти [3];
- снижение на уровне приложений и центрального процессора задержек доступа благодаря использованию сведений о местонахождении данных: обработка приложений и протоколов выполняется на одном и том же ядре или на ядрах с общей кэш-памятью;
- сокращение задержек при передаче управляющих сообщений — например, путем использования конвейеризации GridFTP при передаче множества мелких файлов;
- создание стабильно быстрой инфраструктуры переноса данных за счет разграничения передачи данных и вычислений с применением выделенных передающих узлов и «демилитаризованной зоны» уровня кампуса или лаборатории.
Стоит отметить, что эти подходы еще не применяются с облачными платформами, а для некоторых из них не подходят. Например, чтобы использовать выделенные узлы передачи и демилитаризованную зону в облаке, понадобится диспетчер, который динамически выделяет ресурсы передающих узлов в нужном объеме и резервирует пространство хранения согласно поступающим от приложений запросам на передачу данных.
Оркестровка множественных потоков данных. Многопоточная передача данных в целях повышения пропускной способности уже применяется, в частности, в протоколе Multipath TCP, хотя оптимизация распараллеливания — это не его основная роль. Параллелизм также можно обеспечить на уровне дискового хранения — при многоядерной обработке данных, на уровне сетевых маршрутов и на уровне приложений с использованием нескольких узлов. Одна группа исследователей предложила способ оптимизации параллельного перемещения данных с учетом параметров всех участвующих в этом процессе уровней и путем рассмотрения задачи согласования сопротивлений. Кроме того, был предложен основанный на графах способ моделирования систем передачи данных с оптимизацией по скорости (см. рисунок). Тем не менее для точного моделирования меняющихся со временем компонентов необходимы новые подходы — для получения гарантированной скорости передачи данных в условиях динамически меняющегося состояния глобальных сетей и непредсказуемых колебаний производительности облачных ресурсов нужны модели, позволяющие непрерывно контролировать и прогнозировать эти изменения.
Моделирование оптимизированной системы передачи данных с использованием графов — задача оптимизации формулируется математически на основе аналитических моделей |
Управление ресурсами с соблюдением QoS. Перенос данных внутри облака можно попытаться оптимизировать, хотя управлять облачными ресурсами с соблюдением гарантий качества обслуживания (Quality of Service) довольно трудно, поскольку быстродействие приложений в облаках непредсказуемо, а механизмов мелкодисперсного резервирования ресурсов сейчас нет. Тем не менее новые технологии, в том числе виртуализация сетей и программно-конфигурируемые сети, позволили организовать строгое регулирование трафика и управление маршрутизацией и тем самым добиться оптимального расходования пропускной способности в сетях ЦОД. Можно с уверенностью говорить о том, что для облаков будут реализованы развитые механизмы эксплуатационного управления, когда все ресурсы распределяются более прогнозируемо, чем это возможно сейчас. При этом сложные алгоритмы, отвечающие за планирование резервирования ресурсов, будут обеспечивать выполнение гарантий качества обслуживания.
***
Учитывая растущую заинтересованность в использовании приложений для обработки огромных объемов данных, можно утверждать, что у облачных реализаций большое будущее. Однако для воплощения перспектив в жизнь необходимо усовершенствовать методы управления данными во внутри- и межоблачных сетях, а также осуществить внедрение новых сетевых технологий и технологий хранения. При переходе к новым архитектурам неизбежно возникают определенные сложности. Так, операторов облачных сервисов может остановить относительно высокая стоимость внедрения новых сетевых инфраструктур и сред хранения, например сетей топологии «стрекоза» (dragonfly). Тем не менее рост спроса на облачную обработку Больших Данных и потенциальные преимущества облачных сервисов для провайдеров, в том числе снижение расхода электроэнергии благодаря оптимизации перемещения данных, ускорит переход на новые инфраструктуры.
Литература
- G. Chen et al. Federation in Cloud Data Management: Challenges and Opportunities. IEEE Trans. Knowledge and Data Eng. — 2014. — Vol. 26, № 7. — P. 1670–1678.
- A. Marathe et al. A Comparative Study of High-Performance Computing on the Cloud. Proc. 22nd Int’l Symp. High-Performance Parallel and Distributed Computing (HPDC 13). — 2013. — P. 239–250.
- B. Tierney et al. Efficient Data Transfer Protocols for Big Data. Proc. 8th IEEE Int’l Conf. E-Science (E-Science 12). — 2012. — P. 1–9.
Юнь Сун Жун (esjung@mcs.anl.gov) — научный сотрудник, Раджкумар Кеттимутху (kettimut@mcs.anl.gov) — руководитель проекта, отделение математики и компьютерных наук, Аргоннская национальная лаборатория.