Научная статья на тему 'Поддержка отказоустойчивых хранилищ данных в системе OpenTS'

Поддержка отказоустойчивых хранилищ данных в системе OpenTS Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
98
18
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ОБЛАЧНЫЕ ХРАНИЛИЩА ДАННЫХ / РАСПРЕДЕЛЕННЫЕ ВЫЧИСЛЕНИЯ / ДИНАМИЧЕСКОЕ РАСПАРАЛЛЕЛИВАНИЕ ПРОГРАММ / Т-СИСТЕМА С ОТКРЫТОЙ АРХИТЕКТУРОЙ / ОТКАЗОУСТОЙЧИВОСТЬ / CLOUD DATA STORAGE / DISTRIBUTED COMPUTING / DYNAMIC PROGRAM PARALLELING / T-SYSTEM WITH AN OPEN ARCHITECTURE / FAULT-TOLERANCE

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Кузнецов Антон Александрович, Роганов Владимир Александрович

В статье рассматривается технология поддержки внешних отказоустойчивых хранилищ для счетных данных в системе параллельного программирования OpenTS. Такие хранилища могут быть использованы для улучшения свойства отказоустойчивости счета параллельных Т++-приложений.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Кузнецов Антон Александрович, Роганов Владимир Александрович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Cloud data storage support in the OpenTS parallel programming system

The article describes a software technology for support of external fault-tolerant data storage in the OpenTS parallel programming system. This type of storage may be used to improve the fault-tolerance capabilities of T++ applications.

Текст научной работы на тему «Поддержка отказоустойчивых хранилищ данных в системе OpenTS»

УДК 519.687.4

А. А. Кузнецов, В. А. Роганов

Поддержка отказоустойчивых хранилищ данных в системе OpenTS

Аннотация. В статье рассматривается технология поддержки внешних отказоустойчивых хранилищ для счетных данных в системе параллельного программирования OpenTS. Такие хранилища могут быть использованы для улучшения свойства отказоустойчивости счета параллельных Т++-приложений.

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

1. Система параллельного программирования OpenTS

OpenTS — это система параллельного программирования [1], разработанная в ИПС РАН в 2000-2004 годах в рамках суперкомпьютер-ного проекта «СКИФ» Союзного государства России и Беларуси. После успешного завершения программы «СКИФ» разработка системы OpenTS [2-5] была продолжена в рамках программы «СКИФ-ГРИД» и различных академических проектов.

Система OpenTS (Open T-System) представляет собой современную и наиболее удачную реализацию концепции Т-системы — программной среды параллельного программирования с поддержкой динамического распараллеливания Т-приложений, которая сочетает в себе функциональную и императивную парадигмы программирования. OpenTS — это среда поддержки исполнения приложений, написанных на языке Т+—Н. Данный язык программирования является параллельным функциональным расширением СиН—Н и дополняет исходный язык всего семью новыми ключевыми словами. Среда поддержки исполнения Т+—Н-приложений (Т-приложений) берет на себя основную часть работы по организации параллельного счета (синхронизация, распределение нагрузки, транспортировка сообщений).

© А. А. Кузнецов, В. А. Роганов, 2011 © Программные системы: теория и приложения, 2011

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

В рамках программ Союзного государства «Триада» и «СКИФ-ГРИД» [6] разработана архитектура и проведена экспериментальная реализация распределенной отказоустойчивой системы «8куТ8» [7-9], которая позволяет объединить разнородные ресурсы компьютеров в сети Интернет для счета Т-приложений, решающих ресурсоемкие научно-прикладные задачи. ЭкуТЭ — управляющая надстройка над ОрепТЭ для глобальных гетерогенных распределенных сред, реализованная на простом командном языке ТСЬ. Включает в себя также пользовательский ^^Ь-интерфейс (на РНР) для практичного управления запуском множества Т-приложений.

2. Использование распределенных хранилищ данных

При работе Т+—Н-приложений в распределенной системе 8куТ8 очень остро встает вопрос об обеспечении отказоустойчивости. Механизм отказоустойчивости Т+—Н-приложений реализован на базе модели перевычислений с использованием т. н. порталов. Они нужны для фиксации переходов Т-подзадач из одного вычислительного подпространства в другое. В случае потери связи с узлом или выхода последнего из строя портал содержит в точности те Т-функции, которые нужно перевычислить. Если в каком-то вычислительном подпространстве отсутствует (вышел из строя) необходимый ресурс, то Т-функция планируется на исполнение в ближайшее подпространство, где данный ресурс есть в наличии. Возможно, и там не удастся выполнить подзадачу из-за сбоев — тогда последует новый перепо-втор. То есть, планировщик осуществляет назначение Т-функции на узлы в соответствии с ее и их атрибутами.

В ИПС РАН разработан новый метод обеспечения отказоустойчивости работы Т+—Н-приложений, дополняющий существующие методы. Среда времени исполнения «ОрепТЭ» параллельных Т+—Н-при-ложений доработана для поддержки счета этих приложений с использованием внешнего распределенного хранилища данных для Т-задач. При запуске параллельных приложений в этом режиме значительно повышается свойство отказоустойчивости счета, и возрастает вероятность беспрепятственного продолжения счета после аварийного сбоя какого-либо счетного узла.

При работе ТН—Н-приложения в отказоустойчивом режиме генерируется множество счетных гранул — Т-функций, которые перемещаются по сети между узлами для осуществления счета. При этом они с собой несут какие-либо данные, которые часто имеют большой объем и не всегда нужны в данный момент. Поэтому неэффективно держать их постоянно рядом с Т-функциями во время распределенного счета. Разработан более эффективный подход, в котором вместе с Т-функциями по сети переносятся не данные, а только их дескрипторы (ссылки на них). Данные же хранятся в отказоустойчивом хранилище и извлекаются по требованию. Проведен анализ отказоустойчивых распределенных хранилищ, выбрано подходящее решение и реализован механизм прозрачного для приложения сохранения и дереференсинга (извлечения при обращении) данных в/из суперпамяти ТН—Н-приложения. Таким образом, создан новый вид суперданных, которые устойчивы к сбоям и реальная доставка которых осуществляется только по требованию, что в условиях распределенных вычислений есть существенное преимущество.

Вся логика и весь сетевой протокол работы с распределенным отказоустойчивым хранилищем реализованы в ядре OpenTS, поэтому прикладному программисту для работы с этим хранилищем нужно лишь указать его номер директивой tct(cloud(N)) в коде ТН—Н программы, где N — это условный порядковый номер хранилища. Если число N отлично от 0, то вместо встроенного механизма работы с хранилищем (на основе MemcacheDB) может быть использован новый механизм, позволяющий программе работать с другим типом хранилища. В этом случае используется так называемый Dynamic Multi Cloud Interface (DMCI), которым можно управлять с помощью директивы tct(cloud(N)) и переменных окружения. Возможности этого интерфейса позволяют динамически подключать хранилища произвольной природы, логика и протокол работы с которыми реализованы в виде динамических библиотек.

2.1. Система хранения «MemcacheDB»

При поиске подходящих хранилищ данных была выбрана и протестирована работа системы MemcacheDB [10]. Система предоставляет возможность создания и использования распределенного перманентного (persistent) хранилища данных вида «ключ-значение».

Система может быть задействована в «облачном» режиме работы Т-приложений как надежное хранилище для Т-данных. В системе Mem-cacheDB в качестве базы данных используется Berkeley DB, которая обладает рядом преимуществ: высокая скорость работы, транзакци-онность и дублирование (replication) данных. Система MemcacheDB в качестве эксперимента была успешно запущена в режиме репликации на нескольких сетевых узлах под управлением ОС Linux.

В структуру исходного кода системы OpenTS добавлен новый программный модуль, в котором реализован сетевой интерфейс взаимодействия между Т-приложением и облачным хранилищем данных по сетевому протоколу «memcached». Это хранилище представляет собой базу данных MemcacheDB, запущенную на нескольких Linux-серверах с использованием модели репликации (при которой каждый узел содержит копию БД).

Т-приложение, функционирующее в облачном режиме, обменивается данными с этой БД по протоколу memcached. Для реализации взаимодействия приложений с БД по этому протоколу существует сторонняя библиотека libmemcached. Чтобы избавиться от зависимости от этой библиотеки, необходимые функции memcached_set/get() были реализованы с использованием кросс-платформенного sockets API. Их имплементация была добавлена в микроядро OpenTS. В результате, Т-приложения, в которых имеются «облачные» (tct(cloud) ) Т-данные, могут работать во всех ОС, поддерживающих классический Berkeley sockets API.

2.2. Облачные Т-данные

В облачном хранилище (БД) произвольной природы (собственной разработки или любом существующем) каждая активная Т-за-дача, работающая в отказоустойчивом режиме, формирует так называемую Тучу. Ключи значений в одной и той же Туче имеют префикс, равный идентификатору Т-задачи. В Тучу прозрачным образом «кристаллизуются» при замораживании (то есть финализации Т-значений) так называемые «облачные Т-величины». Последние формируются в Т-переменных, порожденных в контексте с атрибутом tct(cloud).

Облачные Т-переменные ведут себя точно так же, как и обычные. Но при замораживании облачной Т-величины (например, возврате таковой из Т-функции) ее уже более неизменное в соответствии

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

При операции 1^ор() и сборке мусора облачные Т-величины также ведут себя вполне обычно, но только при этом удаляются соответствующие их ключам данные из Тучи. Туча существует, пока не завершится Т-задача. Последняя периодически сохраняет контрольную точку (Т-величину со специальным служебным ключом) на случай аварийного завершения счета.

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

Среди основных программных правок, внесенных в микроядро системы ОрепТВ, можно выделить следующие:

• расширение понятия неготовых, готовых данных до неготовых, готовых, облачных;

• добавление параметризованного СН—Н класса ТВа1аС1ои^ ответственного за облачное хранение;

• реализация соответствующей логики работы с облачными Т-дан-ными (замерзание/оттаивание Т-данных из Тучи);

• реализация динамического интерфейса БМС1.

3. Заключение

В ИПС РАН разработан новый метод обеспечения отказоустойчивости работы ТН—Н-приложений, дополняющий существующие методы. Среда времени исполнения «ОрепТВ» параллельных ТН—Н-при-ложений доработана для поддержки счета этих приложений с использованием внешнего распределенного хранилища данных для Т-задач. Разработанные программные средства и результаты исследований могут быть использованы с целью:

• разработки отказоустойчивых параллельных приложений;

• разработки систем распределенных вычислений (Грид-систем) для территориально-распределенной вычислительной среды;

• повышения надежности длительного счета на постоянно изменяющемся вычислительном поле, состоящем как из кластеров, так и одиночных компьютеров, эпизодически предоставляющих свои свободные вычислительные мощности.

Благодарности

Работы, положенные в основу данной статьи, были выполнены в рамках проектов:

• проект «Разработка и реализация языков ТН—Ни соответствующих ему средств для эффективной поддержки высокопроизводительного параллельного счета» по Программе фундаментальных научных исследований ОНИТ РАН «Архитектура, системные решения, программное обеспечение, стандартизация и информационная безопасность информационно-вычислительных комплексов новых поколений» (2009-2011 гг.);

• суперкомпьютерная программа «СКИФ-ГРИД»: «Разработка и использование программно-аппаратных средств ГРИД-техноло-гий и перспективных высокопроизводительных (суперкомпью-терных) вычислительных систем семейства «СКИФ» (20072010 гг.);

• научно-техническая программа Союзного государства «Развитие и внедрение в государствах-участниках Союзного государства наукоемких компьютерных технологий на базе мультипроцессорных вычислительных систем» (шифр «ТРИАДА») (20052008 гг.).

Список литературы

[1] Официальный сайт системы программирования ОреиТ8 : Электронный сетевой ресурс, http://www.opents.net. |1

[2] АбрамовС. М., Адамович А. И., Инюхин А. В., Московский А. А., Роганов В. А., Шевчук Ю. В., Шевчук Е. В. Т-система с открытой архитектурой // Суперкомпьютерные системы и их применение 88Л’2004: Труды Международной научной конференции, 26—28 октября 2004 г., Минск, ОИПИ НАН Беларуси. — Минск, 2004, с.18—22 |1

[3] АбрамовС. М., Кузнецов А. А., Роганов В. А. Кроссплатформенная версия Т-системы с открытой архитектурой // Параллельные вычислительные технологии (ПаВТ’2007): Труды Международной научной конференции, 29 января —2 февраля 2007 г., Челябинск. — Челябинск : изд. ЮУрГУ, 2007 Т. 1, с.115-121 Т

[4] Кузнецов А. А., Роганов В. А. Поддержка топологии вычислительного пространства в системе OpenTS // Программные системы: теория и приложения, октябрь 2010 г. 1, № 3, http://psta.psiras.ru/read/psta2010_3_93-106. pdf, с. 93-106 Т

[5] Кузнецов А. А., Роганов В. А. Экспериментальная реализация отказоустойчивой версии системы OpenTS для платформы, Windows CCS // Су-перкомпьютерные системы и их применение (SSA’2008): Труды Второй Международной научной конференции, 27-29 октября 2008 г., Минск. — Минск : ОИПИ НАН Беларуси, 2008 ISBN 978-985-6744-46-7, с. 65-70 Т1

[6] Официальный сайт научно-технической программы Союзного государства «СКИФ-ГРИД» : Электронный сетевой ресурс, http://skif-grid.botik.ru. Т1

[7] Абрамов С. М., Есин Г. И., Загоровский И. М., Матвеев Г. А., Роганов В. А. Принципы организации отказоустойчивых параллельных вычислений для решения вычислительных задач и задач управления в Т-Системе с открытой архитектурой (OpenTS) // Программные системы: теория и приложения (PSTA-2006): Труды Международной научной конференции, 23-28 октября 2006 г., Переславль-Залесский, ИПС РАН. — Переславль-Залесский, 2006, с. 257-264 Т1

[8] Есин Г. И., Кузнецов А. А., Роганов В. А. Экспериментальная реализация отказоустойчивой системы распределенных вычислений «SkyTS» для параллельного счета ресурсоемких Т++ приложений в гетерогенной распределенной вычислительной среде // Программные системы: теория и приложения (PSTA-2009): Труды Международной научной конференции, май 2009 г., Переславль-Залесский, ИПС им. А.К. Айламазяна РАН / ред.Абра-мов С. М., Знаменский С. В. --Переславль-Залесский : изд. Университета города Переславля, 2009 Т. 1 ISBN 978-5-901795-16-3, с. 225-244 Т

[9] Абрамов С. М., Московский А. А., Роганов В. А., Велихов П. Е. Суперком-пьютерные и GRID-технологии. // Пути ученого. Е.П. Велихов / ред.В.П. Смирнов. М. : РНЦ Курчатовский институт, 2007 ISBN 978-5-9900996-1-6.— 314-324 с. Т1

[10] Официальный сайт системы MemcacheDB : Электронный сетевой ресурс, http://memcachedb.org. Т2.1

A. A. Kuznetsov, V. A. Roganov. Cloud data storage support in the OpenTS parallel programming system.

Abstract. The article describes a software technology for support of external fault-tolerant data storage in the OpenTS parallel programming system. This type of storage may be used to improve the fault-tolerance capabilities of T+—+ applications.

Key Words and Phrases: cloud data storage, distributed computing, dynamic program paralleling, T-system with an open architecture, fault-tolerance.

Образец ссылки на статью:

А. А. Кузнецов, В. А. Роганов. Поддержка отказоустойчивых хранилищ данных в системе OpenTS // Программные системы: теория и приложения : электрон. научн. журн. 2011. №3(7), с. 53-60. иИЬ: http://psta.psn.ras .ru/read/psta2011_3_53-60.pdf

i Надоели баннеры? Вы всегда можете отключить рекламу.