Система управления распределенными виртуальными кластерами тема диссертации и автореферата по ВАК РФ 05.13.15, кандидат наук Чубахиро Амисси

  • Чубахиро Амисси
  • кандидат науккандидат наук
  • 2019, ФГАОУ ВО «Санкт-Петербургский государственный электротехнический университет «ЛЭТИ» им. В.И. Ульянова (Ленина)»
  • Специальность ВАК РФ05.13.15
  • Количество страниц 114
Чубахиро Амисси. Система управления распределенными виртуальными кластерами: дис. кандидат наук: 05.13.15 - Вычислительные машины и системы. ФГАОУ ВО «Санкт-Петербургский государственный электротехнический университет «ЛЭТИ» им. В.И. Ульянова (Ленина)». 2019. 114 с.

Оглавление диссертации кандидат наук Чубахиро Амисси

ВВЕДЕНИЕ

ГЛАВА 1. ОБЗОР СУЩЕСТВУЮЩИХ РЕШЕНИЙ

1.1 Понятия виртуализации

1.2 Виртуализация на уровне ОС

1.3 Контейнеры Linux

1.4 Запуск задач на вычислительных кластерах

1.5 Контейнеры для вычислительных кластеров

1.6 Виртуальные вычислительные сети

1.7 Анализ динамической миграции

1.8 Система управления ресурсами

Выводы по главе

ГЛАВА 2. ОРГАНИЗАЦИЯ ВЫЧИСЛЕНИЙ НА КЛАСТЕРЕ

2.1 Создание виртуальных кластеров

2.2 Выбор аппаратных и программных средств

2.3 Выбор средств для случая виртуализации на уровне ОС

2.4 Выбор узлов

2.5 Алгоритм кластеризации

2.6 Описание методики

Выводы по главе

ГЛАВА 3. АРХИТЕКТУРА ВИРТУАЛЬНОЙ ВЫЧИСЛИТЕЛЬНОЙ СЕТИ

3.1 Общие сведения

3.2 Виртуальные сети для контейнеров

3.3 Интерфейс veth

3.4 Интерфейс macvlan

3.5 Виртуальные сети для ВМ

3.6 Интерфейс vxlan

3.7 Тестирование виртуальных интерфейсов для контейнеров

3.8 Архитектура виртуальной сети

Выводы по главе

ГЛАВА 4. МИГРАЦИЯ ВЫЧИСЛИТЕЛЬНЫХ ЗАДАЧ

4.1 Миграция виртуальных машин

4.2 Миграция контейнеров

4.3 Миграция процессов

4.4 Средства для выполнения С/К процессов

4.5 Поддержка С/К системами управления ресурсами

4.6 Средства для выполнения миграции процессов

4.7 Поддержка миграции системами управления ресурсами

4.8 Методика миграции задач

Выводы по главе

ЗАКЛЮЧЕНИЕ

СПИСОК СОКРАЩЕНИЙ И УСЛОВНЫХ ОБОЗНАЧЕНИЙ

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

ВВЕДЕНИЕ

Актуальность темы и степень разработанности проблемы

Актуальность темы обусловлена тем фактом, что эффективная система управления кластером — ключ к решению многих проблем, возникающих в сфере распределенных вычислений. Широкое распространение вычислительных кластеров привело к активной разработке систем управления ресурсами, однако, многие вопросы, в частности вопросы миграции задач, до сих пор не решены. В данной работе рассматривается вариант организации виртуального кластера, созданного с помощью виртуализации на уровне операционной системы (ОС). Виртуализация на уровне ОС — перспективная технология, предлагающая выгодное соотношение «производительность/изолированность». В рамках решений данного типа обеспечивается высокая производительность, сравнимая с производительностью работы обыкновенной ОС, за счет низких накладных расходов. Однако за счет меньшей изолированности отдельных сущностей (обычно называемых контейнерами - аналог гостевой ОС в случае аппаратной виртуализации) такая система обладает потенциально более низкой безопасностью. К примеру, в случае Linux работа контейнеров обеспечивается изменениями в ядре ОС, позволяющими создавать отдельные пространства имен — «namespaces». Все контейнеры разделяют общее ядро ОС. И в общем случае, возможность использования других «гостевых ОС», как правило, ограничена. Но часто требуется лишь запуск различных сервисов в отдельных контейнерах. Указанные изменения в ядре позволяют гибко конфигурировать настройки контейнеров (к примеру, они все могут разделять единое сетевое пространство имен, а могут работать в отдельных сетевых пространствах имен с разными виртуальными сетевыми адаптерами). Высокая производительность при необходимом уровне безопасности и гибкость конфигурирования в пределах данной ОС — основные причины использования данного типа виртуализации.

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

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

Виртуальные вычислительные сети — широко распространенный тип сетей. Отдельные компоненты могут использоваться для решения самых разных задач. В качестве примера можно привести виртуальный сетевой мост Linux, который способен объединить как физические узлы в сети (при их подключении через физические сетевые интерфейсы узла), так и виртуальные машины. Поиск эффективной, производительной архитектуры виртуальной сети — важная задача, ведь от ее решения зависит производительность виртуальных кластеров.

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

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

Объект исследования

Вычислительные кластеры.

Предмет исследования

Система управления виртуальными вычислительными кластерами, использующими виртуализацию на уровне ОС.

Рекомендованный список диссертаций по специальности «Вычислительные машины и системы», 05.13.15 шифр ВАК

Введение диссертации (часть автореферата) на тему «Система управления распределенными виртуальными кластерами»

Цель работы

Создание системы управления виртуальными кластерами, построенными на основе разнородных контейнеров.

Задачи исследования

1. Разработка методики управления распределенными разнородными виртуальными кластерами, использующими виртуализацию на уровне ОС;

2. Разработка методики запуска задач с возможностью динамической миграции;

3. Разработка архитектуры виртуальной вычислительной сети;

4. Реализация программных компонентов для развертывания архитектуры;

5. Тестирование архитектуры на различных классах задач.

Методы исследования

Методы математической статистики, теория графов, теория вероятности, технологии проектирования программного обеспечения.

Научная новизна

1. Предложена методика управления распределенными разнородными виртуальными кластерами, использующими виртуализацию на уровне ОС;

2. Предложена методика обеспечения надежной и отказоустойчивой работы и балансировки нагрузки виртуальных вычислительных кластеров за счет динамической миграции задач в рамках виртуального кластера;

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

Практическая значимость

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

Таким образом, перечисленные ниже пункты являются практически значимыми.

1. Методика управления распределенными разнородными виртуальными кластерами, использующими виртуализацию на уровне ОС.

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

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

Положения, выносимые на защиту

1. Методика управления распределенными разнородными виртуальными кластерами, использующими виртуализацию на уровне ОС.

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

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

Соответствие паспорту специальности

Работа соответствует пунктам 2, 4, 6 паспорта специальности 05.13.15.

Внедрение результатов

Работа выполнялась в рамках учебного вычислительного кластера кафедры компьютерного моделирования и многопроцессорных систем факультета ПМ-ПУ СПбГУ

Апробация работы

Основные научные результаты работы были представлены на 5 научных конференциях:

1. The 15th International Conference on Computational Science and Its Applications (ICCSA 2015). Канада, 2015 г.

2. 10th International Conference on Computer Science and Information Technologies (CSIT 2015). Армения, 2015 г.

3. Научно-техническая конференция профессорско-преподавательского состава СПбГЭТУ "ЛЭТИ", 2016 г.

4. The 7th International Conference «Distributed Computing and Grid-technologies in Science and Education» (GRID 2016). Россия, 2016 г.

5. The 8th International Conference «Distributed Computing and Grid-technologies in Science and Education» (GRID 2018). Россия, 2018 г.

Публикации

Основные результаты работы были опубликованы в 7 статьях, из них 6 по теме диссертации, среди которых 3 публикации в ведущих рецензируемых изданиях, рекомендованных в действующем перечне ВАК. Также 3 публикации индексированы в Scopus. Доклады были представлены на 5 международных, всероссийских и межвузовских научно-практических конференциях.

Структура и объем диссертации

Диссертация состоит из введения, 4 глав, заключения, списка используемой литературы. Работа содержит 114 страниц основного текста, 3 таблицы, 14 рисунков. Список использованной литературы включает в себя 100 наименований.

ГЛАВА 1. ОБЗОР СУЩЕСТВУЮЩИХ РЕШЕНИЙ

1.1 Понятия виртуализации

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

В компьютерных науках виртуализация заключается в создании виртуальной версии ресурса, такой как операционная система, сервер, устройство хранения. Она позволяет нескольким операционным системам или нескольким приложениям одновременно работать на одном физическом ПК. Она также позволяет использовать всю емкость физической машины, распределяя ее между разными пользователями. Также под технологиями виртуализации понимаются процессы преобразования аппаратного обеспечения в программное. Таким образом, с несколькими виртуальными машинами можно работать с общими аппаратными ресурсами. Общие подходы к виртуализации заключаются в проведении установки программного слоя либо непосредственно в операционные системы, либо в аппаратные компоненты компьютера. Установка программных слоев предполагает возможность по созданию виртуальных машин, распределению аппаратных ресурсов [1 - 6].

Виртуализация не новая технология. Она появилась в 1960-х с IBM, которая создал первую систему виртуализации серверов. В то время только несколько компаний уже имеют большие компьютеры, также называемые мейнфреймами (mainframes). Эти мэйнфреймы являются типами централизованных компьютеров, которые имеют очень высокую мощность, что позволяет им управлять сеансами разных пользователей разных терминалов, которые подключены к ним. Это означает, что это центральный компьютер, который выполняет все процедуры. Но проблема оптимизации аппаратных ресурсов уже возникает в то время.

В 1967 году IBM представил первую систему на компьютере 360/67 для решения этой проблемы. Эта новая система, которая считается первой системой виртуализации, называлась CP/CMS. Его работа основана на интерактивном программном обеспечении для интерпретации команд (CMS) и генераторе виртуальных машин.

Архитектура x86 появилась в 1980-х годах, и ее популярность привела к появлению персональных компьютеров в нескольких компаниях. Вычислительная работа уже больше не выполняется одним центральным компьютером, как раньше. Мейнфреймы сменяются персональными компьютерами. Технология виртуализации используется все реже и реже. Потом появляется много приложений «клиент - сервер» что приводит к появлению распределенных вычислений [7 - 11].

В тоже время, анализ показывает, что в начале 2000-х годов технология виртуализации получила второе рождение с введением концепции полной виртуализации VMware-компании. Использование виртуализации становится широко распространенным. Появляются такие инструменты, как QEMU, KVM [12, 13], Xen [14], Virtual Box [15]. Все эти инструменты позволили развить виртуализацию на архитектурах x86. В настоящее время виртуализация очень известна. Мы слышим о виртуализации везде, особенно с появлением облачных вычислений.

Как правила, существуют различные формы виртуализации:

• виртуализация приложений;

• виртуализация ОС;

• виртуализация компьютерной сети;

• виртуализация серверов;

• виртуализация систем хранения;

• виртуализация сервисов;

• виртуализация персональных компьютеров (ПК).

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

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

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

Технологии полной виртуализации, использующие виртуальные машины и гипервизоры, выступающие в качестве посредника между гостевыми операционными системами и реальным оборудованием. Также производится перехват некоторых инструкций защищенного режима и их обработка внутри гипервизоров, поскольку доступность аппаратуры не может быть обеспечена посредством обращения из операционных систем, доступ к ней осуществляется посредством гипервизора [16 - 18].

Паравиртуализационные системы. Системы, требующие проведения модификации гостевых операционных систем. В данном случае обеспечиваются высокие показатели производительности, близкие к производительности невиртуализированных систем [19, 20].

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

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

публичное облако. Это обеспечивает целый ряд преимуществ применение виртуализации, что приводит к:

• сокращению затрат на закупку и обслуживание физических серверов;

• оптимизации использования вычислительных мощностей;

• повышению энергоэффективности.

При этом виртуализация на уровне ОС - одна из наиболее распространенных на сегодняшний день.

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

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

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

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

Существуют различные решения, которые используют этот тип гипервизора:

• Citrix XenServer[22];

• VMware ESX.

Гипервизор типа 2 работает в основном над операционной системой хоста. После этого все гостевые операционные системы виртуальных машин размещаются выше уровня. Примеры: VMware, Parallels [23], QEMU.

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

В заключение, анализ показывает, что лучше всего использовать виртуализацию на уровне ОС, потому что она наиболее производительна и удобна для большинства задач на сервере Linux. В этом случае создание и перезагрузка сервера будут максимально быстрыми, что упростит задачу переноса контейнеров Linux с одного сервера на другой.

1.2 Виртуализация на уровне ОС

Виртуализация на уровне ОС — это метод виртуализации, в рамках которого создаются контейнеры - изолированные экземпляры пространства пользователя.

Технология виртуализации на уровне ОС существует давно, еще до появления Docker. Действительно, она появился впервые в 1979 году с разработкой chroot [24] в системе UNIX. Эта технология снова появляется в начале 2000-х, когда FreeBSD вводит команду jails [25] в свою операционную систему. Это позволяет разделить систему FreeBSD на несколько подсистем или "jails". В 2004 году появились контейнеры Solaris, которые сочетают в себе контроль системных ресурсов (cgroup) и разделение сред с использованием зон Solaris. В 2008 году в cgroups и Linux namespaces были введены в ядре Linux, что привело к созданию проекта LXC. Затем контейнерная технология становится очень популярной с выпуском Docker в 2013 году.

Этот тип виртуализации позволяет запускать безопасные и изолированные контейнеры на одном физическом узле благодаря ядру хостовой ОС. Уровень изоляции, как правило, может отличаться для различных контейнеров — как правило, поддерживается изоляция различных ресурсов. Конкретный набор ресурсов, который будет изолирован, может быть выбран отдельно для каждого контейнера. Программы в разных контейнерах не могут влиять друг на друга, поскольку ядро базовой операционной системы обеспечивает полную изоляцию. Виртуализации в целом и, в частности, виртуализации на уровне операционной системы в последнее время уделяется все большее внимание. К примеру, в [26-30] рассмотрены вопросы производительности и безопасности виртуальных машин и контейнеров. На рисунке 1.1. представлена виртуализация на уровне ОС.

1 2 m

р р р

е е е

н н н

й й й

е е е

т т т

н н н

о о о

оК оК оК

Операционная система

Оборудование Рисунок 1.1. Виртуализация на уровне ОС

Обычно, ядро операционной системы используется различными контейнерами, которые были созданы. Например, в ОС Linux для изоляции ресурсов используются отдельные пространства имен (namespaces). Изоляция контейнера, по сути, определяется набором отдельных пространств имен, используемых контейнером. Такая изоляция может требоваться по причинам безопасности или по другим причинам.

Примеры решений, использующих виртуализацию на уровне ОС:

• LXC [31, 32];

• Parallels Virtuozzo Containers [33];

• OpenVZ [34, 35];

• Solaris Containers [36].

К числу достоинств виртуализации на уровне ОС можно отнести:

• низкие накладные расходы для требуемого уровня безопасности и гибкость конфигурирования;

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

• снижение стоимости электроэнергии, поскольку этот тип виртуализации использует меньше машин. Меньшее количество устройств означает более низкое энергопотребление;

• возможность организациям повышать эффективность использования серверного оборудования. Также организациям не требуется много людей для обслуживания серверов.

К недостаткам данного типа виртуализации можно отнести:

• привязку к конкретной ОС (контейнеры, как правило, используют общее ядро ОС, поэтому ОС для контейнера, как правило, определена хостовой ОС; во всех случаях виртуальных машин, использующих аппаратную виртуализацию, в виртуальной машине могут быть запущены различные операционные системы);

• как правила, меньше безопасности, чем при использовании виртуальных машин в клатере — например, в случае аппаратной виртуализации.

1.3 Контейнеры Linux

В рамках ОС Linux поддерживается виртуализация на уровне ОС в виде контейнеров, использующих отдельное пространство имен (namespaces). Также ядро Linux обеспечивает механизм cgroups, которое ограничивает и изолирует некоторые ресурсы (процессор, память, сеть и т.д.) для процессов. В Linux поддерживаются следующие пространства имен:

• пространство имен для процессов (PID namespace);

• пространство имен для межпроцессного взаимодействия (IPC namespace);

• пространство имен для пользователей и групп (user namespace);

• пространство имен UTS (UTS namespace);

• сетевое пространство имен (network namespace);

• пространство имен для иерархии каталогов (mount namespace)

PID («Process Identifier») namespace изолирует пространство идентификаторов процессов (PID — Process ID). При этом в рамках такого пространства (в рамках контейнера) можно создавать процессы с PID, уникальными в рамках данного пространства. Можно использовать PID чтобы изолировать иерархию процессов в контейнеры. И так, процессы любого контейнера будут недоступны для процессов другого контейнера. Пользователь, в одном контейнере не сможет увидеть процессы, которые работают в другом контейнере.

IPC («Inter-Process Communication») namespace изолирует определенные ресурсы IPC, а именно объекты System V IPC и POSIX message queues. Таким образом, два контейнера могут создавать сегменты общей памяти и семафоры с одинаковыми именами, но не могут взаимодействовать с другими сегментами памяти или общей памятью контейнеров.

User namespace изолирует определенные идентификаторы и атрибуты, связанные с обеспечением безопасности с точки зрения работы отдельных пользователей и групп.

UTS («UNIX Time-sharing System») namespace обычно изолирует два системных параметра: имя узла и NIS domain name, может изолировать ресурсы, которые связаны с именем узла. Это означает, что у каждого контейнера будет создано уникальное имя домена NIS и собственное имя хоста, что очень полезно для сценариев конфигурации и инициализации на основе этих имен.

Network namespace изолирует сетевые ресурсы, связанные с обеспечением сетевого взаимодействия и позволяет разным контейнерам работать с различными иерархиями каталогов.

Mount namespace изолирует набор mount points (точек монтирования), что позволяет процессам в разных mount-пространствах иметь различное

представление об иерархии каталогов.

Для контейнера могут быть использованы различные наборы namespaces для изоляции ресурсов. К примеру, может использоваться только network namespace или network namespace и mount namespace или другой вариант.

Выбор отдельных пространств имен может, к примеру, осуществляться в момент создания процесса с помощью системного вызова clone (описание системного вызова clone может быть найдено, например, в [37]), а именно необходимо будет указать один или несколько следующих флагов:

• CLONE_NEWIPC для нового IPC namespace;

• CLONE_NEWNET для нового network namespace;

• CLONE_NEWNS для нового mount namespace;

• CLONE_NEWPID для нового PID namespace;

• CLONE_NEWUSER для нового user namespace;

• CLONE_NEWUTS для нового UTS namespace.

Отдельное сетевое пространство имен в системе Linux позволяет изолировать следующие ресурсы: ресурсы которые связаны со стеками протоколов, настройка отдельных стеков сетевых протоколов, сетевые интерфейсы. Следует отметить, что сетевые интерфейсы могут быть физическими и виртуальными — в обоих случаях, как часть Linux, сетевой интерфейс будет представлен экземпляром структуры «net_device». И каждое представление будет специально связано с конкретным сетевым пространством имен. Созданное сетевое устройство в определённый момент может принадлежать только одному пространству имен и не более. Таким образом, пространства сетевых имен определяют сетевые устройства, к которым будет предоставлен доступ контейнер.

Также возможно «отсоединение» отдельных частей контекста исполнения процесса с помощью системного вызова unshare (описание системного вызова unshare может быть найдено, например, в [38]), в том числе возможно создание отдельных пространств имен, описанных ранее.

Контейнеры даже позволяют запускать различные дистрибутивы ОС Linux (в отдельных контейнерах), правда ядро ОС при этом будет общим.

Описание контейнеров Linux и отдельных аспектов контейнеров Linux может быть найдено, например, в [39, 40].

Контейнеры Linux — мощная и гибкая подсистема, которая позволяет обеспечивать требуемый уровень изолированности при минимальных накладных расходах. Именно поэтому в рамках данной работы рассматривается именно вариант использования контейнеров Linux.

1.4 Запуск задач на вычислительных кластерах

Для управления ресурсами кластера и запуска вычислительных задач, как правило, используется система управления ресурсами.

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

Очень часто для управления кластером используется реализация PBS (Portable Batch System).

Примерами систем управления ресурсами являются следующие решения:

• TORQUE [41]

• PBS Professional [42];

• Slurm [43];

• HTCondor [44];

• UGE [45].

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

• прием задач от пользователей;

• изменение задач (например, отдельных параметров задач);

• удаление задач;

• завершение выполнения задач (к примеру, могут потребоваться

определенные действия на узлах, выделенных для задачи, после завершения

задачи);

• планирование задач;

• запуск задач на вычислительных узлах;

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

• изменение статуса узлов (например, вывод узла из кластера);

• решение вопросов аутентификации и авторизации пользователей;

• подготовка нужного окружения для задачи;

• другие задачи.

Рассмотрение отдельных задач такой системы приведено в главе 4.

1.5 Контейнеры для вычислительных кластеров

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

В качестве примера можно рассмотреть решения Docker [46-53], Singularity [54] и Solaris Containers [55].

Docker предлагает различные решения для автоматизации развертывания приложений в контейнерах. Она стала очень популярной с момента ее появления в 2013 году. Другими словами, Docker позволяет пользователям упаковывать нужные приложения со всеми зависимостями в контейнере. Такой контейнер может быть запущен на другом компьютере под управлением Linux.

Разработка системы Docker была проведена с помощью языка программирования Go. Система была выпущена в 2013 году. В начале можно было работать с Docker только в системе Linux, однако в настоящий время есть уже Docker версии для Windows и MacOS. Несмотря на то, что данное решение является относительно новым, оно уже широко применяется многими специалистами.

Docker Hub - это одной из важных составляющих экосистемы Docker. В Docker Hub можно найти большое количество ПО от официальных разработчиков, так как Docker Hub представляет собой открытый репозиторий образов контейнеров.

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

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

Solaris Containers (Solaris Zones), разработанная Sun Microsystems с 2005 года, является тоже технологией виртуализации на ОС.

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

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

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

Для каждой зоны Solaris может быть назначен пул ресурсов, для гарантированного минимума ресурсов (описание различных состояний зон может быть найдено, например, в [56]). Зона характеризуется одним из следующих состояний:

• Configured: подтверждение завершения процесса настройки

• Incomplete: работа в состоянии перехода между install и uninstall в зоне

• Installed: информации данные об успешной установке пакетов в зоне

Похожие диссертационные работы по специальности «Вычислительные машины и системы», 05.13.15 шифр ВАК

Список литературы диссертационного исследования кандидат наук Чубахиро Амисси, 2019 год

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Portnoy M. Virtualization essentials [Текст] / M. Portnoy // Vol. 19. - John Wiley & Sons, 2012. - 286p.

2. Захаров В.Н. Виртуализация как информационная технология[Текст]/ В.Н. Захаров // Системы и средства информатики, 2006. - с.279-298.

3. Golden B. Virtualization for dummies [Текст] / B. Golden // John Wiley & Sons, 2011. - 3rd edition- 75p.

4. Kulkarni O., Bagul S., Gawali D., Swamy P. Virtualization Technology: A Leading Edge [Текст]/ O. Kulkarni, S. Bagul, D. Gawali, P. Swamy// International Journal of Computer Application 2(2), 2012. - ISSN: 2250-1797. -p.272 - 287.

5. Dittner R., Rule D. The Best Damn Server Virtualization Book Period: Including Vmware, Xen, and Microsoft Virtual Server [Текст] / R. Dittner, D. Rule // Syngress, 2007. - 960p.

6. Савельев А.О. Решения Microsoft для виртуализации ИТ-инфраструктуры предприятий [Текст] / А.О. Савельев // М.: Национальный Открытый Университет "ИНТУИТ", 2016. - 285 с.

7. Meier S., Virun B., Blumert J., Jones M.T. IBM Systems Virtualization: Servers, Storage, and Software [Текст] / S. Meier, B. Virun, J. Blumert, M.T. Jones// IBM Redbook, May. 2008. - 96p.

8. Ruest N., Ruest D. Virtualization, A Beginner's Guide [Текст]/ N. Ruest, D. Ruest // McGraw-Hill, Inc., 2009. - 464p.

9. Лэнгоун Д., Лейбовичи А., Слинкин А. Виртуализация настольных компьютеров с помощью VMware View 5[Текст] / Д. Лэнгоун, А. Лейбовичи и А. Слинкин // ДМК. Пресс, 2013. - 282с.

10. Wolf C., Halter E.M. Virtualization: from the desktop to the enterprise [Текст] / C. Wolf, E.M. Halter //Apress, 2006. - 558p.

11. Marshall D., Reynolds W. A., and McCrory D. Advanced Server Virtualization: VMware and Microsoft platforms in the Virtual Data Center [Текст] / D. Marshall, W. A. Reynolds and D. McCrory // Auerbach Publications, 2006. -760p.

12. Официальный сайт проекта KVM [Электронный ресурс] // https: //www.linux-kvm.org/page/Main_Page

13.Chirammal H.D., Mukhedkar P., Vettathu A. Mastering KVM Virtualization [Текст] / H.D. Chirammal, P. Mukhedkar, A. Vettathu// Packt Publishing Ltd, 2016. - 368p.

14. Официальный сайт проекта Xen [Электронный ресурс] // https: //xenproj ect. org/

15. Официальный сайт проекта VirtualBox [Электронный ресурс] // https://www.virtualbox.org/wiki/Downloads

16. Романова А.О. Виртуализация в высокопроизводительных вычислительных системах [Текст] / А.О. Романова//Наука и образование: научное издание МГТУ им. НЭ Баумана, 2011(03). - с.1-29.

17. Михеев М. Администрирование VMware vSphere 5[Текст] / М. Михеев// М.: ДМК Пресс, 2012. - 504с.

18. Velte A., Velte T. Microsoft virtualization with Hyper-V [Текст] / A. Velte, T. Velte // McGraw-Hill, Inc., 2009. - 430p.

19.Youseff L., Wolski R., Gorda B., Krintz C. Paravirtualization for HPC systems [Текст] / L. Youseff, R. Wolski, B. Gorda, C. Krintz // International Symposium on Parallel and Distributed Processing and Applications, Springer, Berlin, Heidelberg, 2006. - p. 474-486.

20.Bazargan F., Yeun C.Y, Zemerly M.J. State-of-the-art of virtualization, its security threats and deployment models [Текст]/ F. Bazargan, C.Y Yeun, M.J. Zemerly// International Journal for Information Security Research, 2013. - vol.3 (3). - p. 335-343.

21. Силаков Д. Виртуализация на платформе x86 [Текст]/ Д. Силаков// Системный администратор, изд.: Положевец и партнёры, Москва 2013(10). -с.80-84.

22. Официальный сайт проекта Citrix [Электронный ресурс] // https: //www.citrix.com/

23. Официальный сайт проекта Parallels [Электронный ресурс] // https: //www.parallels. com/

24. Описание UNIX команд chroot [Электронный ресурс] // http://man7.org/linux/man-pages/man1/chroot1.html

25.Описание FreeBSD команд jails [Электронный ресурс] //

https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/jails.html

26.Felter W. et al. An Updated Performance Comparison of Virtual Machines and Linux Containers [Текст] / W. Felter, A. Ferreira, R. Rajamony, J. Rubio // Performance Analysis of Systems and Software (ISPASS), 2015 IEEE International Symposium On. - IEEE, 2015. - p. 171-172.

27. Gupta, Diwaker, et al. Enforcing performance isolation across virtual machines in Xen. [Текст] / D. Gupta, L. Cherkasova, R. Gardner, A. Vahdat // In CM/IFIP/USENIX International Conference on Distributed Systems Platforms and Open Distributed Processing. Springer, Berlin, Heidelberg, 2006. - p. 342362.

28.Xavier M. G. et al. Performance Evaluation of Container-Based Virtualization for High Performance Computing Environments [Текст] / M. G. Xavier, M. V. Neves, F. D. Rossi, T. C. Ferreto, T. Lange, C. A. F. De Rose // Parallel, Distributed and Network-Based Processing (PDP), 2013 21st Euromicro International Conference on. - IEEE, 2013. - p. 233-240.

29. Shea, Ryan, and Jiangchuan Liu. Performance of virtual machines under networked denial of service attacks: Experiments and analysis [Текст] / R. Shea, J. Liu // IEEE systems journal 7.2 (2013). - p. 335-345.

30.Xavier, Miguel Gomes, Marcelo Veiga Neves, and Cesar Augusto Fonticielha De Rose. A performance comparison of container-based virtualization systems for

mapreduce clusters. [Текст] / M. G Xavier, M. V Neves, C. A. F. De Rose // Parallel, Distributed and Network-Based Processing (PDP), 2014 22nd Euromicro International Conference on. IEEE, 2014. - p. 299-306.

31. Официальный сайт проекта LXC [Электронный ресурс] // https: //linuxcontainers .org/ru/

32.Ivanov, K. Containerization with LXC [Текст] / K. Ivanov. - Birmingham: Packt Publishing Ltd, 2017. - 321p.

33.Официальный сайт проекта Parallels Virtuozzo Containers [Электронный ресурс] // https://virtuozzo.com/

34. Официальный сайт проекта OpenVZ [Электронный ресурс] // https://openvz.org/

35.Furman, M. OpenVZ essentials [Текст] / M. Furman. - Birmingham: Packt Publishing Ltd, 2014. - 110p.

36.System Administration Guide: Oracle Solaris Containers-Resource Management and Oracle Solaris Zones [Электронный ресурс] // https://docs.oracle.com/cd/E19044-01/sol.containers/817-1592/index.html

37. Описание системного вызова «clone» [Электронный ресурс] // http: //man7. org/linux/man-pages/man2/clone.2. html

38. Описание системного вызова «unshare» [Электронный ресурс] // http: //man7. org/linux/man-pages/man2/unshare.2. html

39.What's a Linux container? [Электронный ресурс] // https://www.redhat.com/en/topics/containers/whats-a-linux-container

40.Matt Helsley. LXC: Linux container tools [Электронный ресурс] // https://www.ibm.com/developerworks/linux/library/l-lxc-containers/

41. Официальный сайт проекта TORQUE [Электронный ресурс] // http://www.adaptivecomputing.com/products/open-source/torque/

42.Официальный сайт проекта PBS Professional [Электронный ресурс] // https://pbsworks.com/

43. Официальный сайт проекта Slurm [Электронный ресурс] // https: //slurm.schedmd.com/

44. Официальный сайт проекта HTCondor [Электронный ресурс] // https://research.cs.wisc.edu/htcondor/

45. Официальный сайт проекта UGE [Электронный ресурс] // http://www.univa.com/products/

46. Официальный сайт проекта Docker [Электронный ресурс] // https: //www.docker. com/

47.Моуэт, Э. Использование Docker [Текст]/ Э. Моуэт. - Москва: ДМК-пресс, 2017г. - 354с.

48.Nickoloff, J. Docker in Action [Текст]/ J. Nickoloff. - Greenwich, USA: Manning Publications Co., 2016. - 304p.

49.Mouat, A. Using Docker: Developing and Deploying Software with Containers [Текст]/ A. Mouat. - O'Reilly Media, Inc., 2015. - 323p.

50.Matthias, K. and Kane, S. P. Docker: Up & Running: Shipping Reliable Containers in Production [Текст]/ K. Matthias, and S. P. Kane. - O'Reilly Media, Inc., 2015. - 201p.

51. Turnbull, J. The Docker Book: Containerization is the new virtualization [Текст]/ J. Turnbull. - James Turnbull, 2014. - 383p.

52.Miell, I. and Sayers, A. H. Docker in Practise [Текст]/ I. Miell and A. H. Sayers. - Manning Publications Co. Greenwich, CT, USA, 2016. - 372p.

53.Khare, N. Docker Cookbook [Текст]/ N. Khare. - Packt Publishing Ltd, 2015. -219p.

54. Официальный сайт проекта Singularity [Электронный ресурс] // http://singularity.lbl.gov/

55. Официальный сайт проекта Oracle Solaris Containers [Электронный ресурс] //https://www.oracle.com/technetwork/server-storage/solaris/containers-169727.html

56. Описание различных состояний зон [Электронный ресурс] // http: //www.datadisk.co .uk/html_docs/sun/solaris_zones_cs. html

57. Официальный сайт проекта CRIU [Электронный ресурс] // https://criu.org/

58.Pickartz S., Eiling N., Lankes S., Razik L. & Monti A. Migrating Linux Containers using CRIU [Текст]/ S. Pickartz, N. Eiling, S. Lankes, L. Razik and A. Monti// International Conference on High Performance Computing, Frankfurt, 2016. - pp 674 - 684.

59.Блог компании Jelastic. Живая миграция контейнеров: взгляд изнутри [Электронный ресурс] // https://www.pvsm.ru/avtomatizatsiya/203056 (дата обращения: 25.12.2018).

60.Шпаковский Г.И. Реализация параллельных вычислений: кластеры, грид, многоядерные процессоры, квантовые компьютеры [Текст]/ Г.И. Шпаковский // Минск: БГУ, 2010. - 154с.

61.Крюков В.А. Разработка параллельных программ для вычислительных кластеров и сетей [Текст]/ В.А. Крюков Информационные технологии и вычислительные системы (1-2), 2003. - 42-61с.

62. Vrenios A. Linux cluster architecture [Текст]/ A. Vrenios //Sams Indianapolis, IN, USA, 2002. - 247p.

63.Шпаковский Г.И. Реализация параллельных вычислений: Кластеры, Грид, многоядерные процессоры, квантовые компьютеры [Текст]/ Г.И. Шпаковский // Минск: БГУ, 2010. — 155 с.

64. Официальный сайт проекта Openvms [Электронный ресурс] // http: //www.openvms .org/

65. Описание процессора DEC Alpha [Электронный ресурс]// https: //ru.bmstu.wiki/DEC_Alpha

66. Официальный сайт проекта Beowulf [Электронный ресурс]// https: //beowulf. org/overview/faq.html

67. Описание кластера Beowulf [Электронный ресурс]// https: //parallel .ru/computers/reviews/beowulf. html

68.Аветисян А.И., Грушин Д. А., Рыжов А.Г. Система управления кластерами [Текст] / А.И. Аветисян, Д. А. Грушин, А.Г. Рыжов// Proceedings of the Institute for System Programming, vol. 3 (in Russian), 2002. - С.39 - 62.

69. Wright D. Cheap cycles from the desktop to the dedicated cluster: combining opportunistic and dedicated scheduling with Condor [Текст]/ D. Wright // Conference on Linux clusters: the HPC revolution, 2001. - 16p.

70. Описание системы Cleo [Электронный ресурс]// https://sourceforge.net/p/cleo-bs/wiki/markdown_syntax/

71. Официальный сайт проекта MOSIX [Электронный ресурс]// http: //www. mosix.cs.huji.ac.il/index.html

72. Официальный сайт проекта Moab Cloud [Электронный ресурс]// http://www.adaptivecomputing.com/moab-nodus-cloud-bursting/

73. Описание системы LSF [Электронный ресурс]// https://www.ibm.com/support/knowledgecenter/en/SSETD4_9. 1.3/lsf_foundation s/lsf_introduction_to.html

74. Zhang T., Ramakrishnan R., Livny M. BIRCH: an efficient data clustering method for very large databases [Текст] / T. Zhang, R. Ramakrishnan, M. Livny // ACM Sigmod Record. - ACM, 1996. - Vol. 25. - №. 2. - p. 103-114.

75. Sheikholeslami G., Chatterjee S., Zhang A. WaveCluster: a wavelet-based clustering approach for spatial data in very large databases [Текст] / G. Sheikholeslami, S. Chatterjee, A. Zhang // The VLDB Journal - The International Journal on Very Large Data Bases. - 2000. - Vol. 8. - №. 3-4. - p. 289-304.

76. Abbas O. A. Comparisons Between Data Clustering Algorithms [Текст] / O. A. Abbas //Int. Arab J. Inf. Technol. 5.3 - 2008). - p. 320-325.

77. Van der Merwe D. W., Engelbrecht A. P. Data clustering using particle swarm optimization [Текст] / D. W. Van der Merwe, A. P. Engelbrecht //Evolutionary Computation, 2003. CEC'03. The 2003 Congress on. Vol. 1. IEEE, 2003. - p 215220.

78. Xu R., Donald W. Survey of clustering algorithms [Текст] / R. Xu, W. Donald // IEEE Transactions on neural networks 16.3 - 2005. - p 645-678.

79.Berkhin P. A survey of clustering data mining techniques [Текст] / P. Berkhin // Grouping multidimensional data. - Springer, Berlin, Heidelberg. - 2006. - p. 2571.

80. Описание интерфейса veth [Электронный ресурс] // http: //man7. org/linux/man-pages/man4/veth.4. html

81. Описание интерфейса macvlan [Электронный ресурс] // https://hicu.be/bridge -vs-macvlan/

82. Официальный сайт проекта QEMU [Электронный ресурс] // https: //www.qemu.org/

83. Описание интерфейсов TUN/TAP [Электронный ресурс] // https://www.kernel .org/doc/Documentation/networking/tuntap.txt

84. Описание интерфейса vxlan [Электронный ресурс] // https: //www.kernel .org/doc/Documentation/networking/vxlan.txt

85. Официальный сайт ОС Ubuntu [Электронный ресурс] // https: //www.ubuntu.com

86. Официальный сайт ОС Fedora [Электронный ресурс] // https://getfedora.org

87. Параметры стека TCP/IP в ОС Linux [Электронный ресурс] // https://www.kernel .org/doc/Documentation/networking/ip-sysctl.txt

88. Официальный сайт проекта OpenFOAM [Электронный ресурс] // https://www.openfoam.com/

89.Hess B. et al. GROMACS 4: Algorithms for Highly Efficient, Load - Balanced and Scalable Molecular Simulation [Текст] / B. Hess, C. Kutzner, D. van der Spoel, E. Lindahl // Journal of chemical theory and computation 4.3, 2008. - p. 435-447.

90. Тест HPL (LINPACK) [Электронный ресурс] // http: //www. netlib.org/benchmark/hpl/

91.GitHub - программа Iperf [Электронный ресурс] // https: //github .com/esnet/iperf/

92. Официальный сайт VMWare — платформа vSphere [Электронный ресурс] / https: //www.vmware.com/ru/products/vsphere.html

93.M. Tim Jones. Linux virtualization and PCI passthrough [Электронный ресурс] / https://www.ibm.com/developerworks/library/l-pci-passthrough/index.html

94.Scott Radvan, Dayle Parker, Christopher Curran, Jan Mark Holzer. Red Hat Enterprise Linux 5 Virtualization Guide [Электронный ресурс] / https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/5/html/virtualization/

95. Официальный сайт проекта BLCR [Электронный ресурс] // http://crd.lbl.gov/departments/computer-science/CLaSS/research/BLCR/

96.Чубахиро, А. Методика управления распределенными разнородными виртуальными кластерами, использующими виртуализацию на уровне ОС [Текст] / А. Чубахиро // Журнал «Наука и Бизнес: пути развития». - № 1, 2019(январь). - С. 65-69. - ISSN 2221-5182.

97. Чубахиро, А. Виртуальные вычислительные сети для случая аппаратной виртуализации [Текст] / А. Чубахиро, М. Каманде // Журнал «Современная наука: актуальные проблемы теории и практики. Серия «Естественные и технические науки»». — № 6, 2018(Июнь). - С. 158-163. - ISSN:2223-2966.

98. Каманде, М. Виртуальные вычислительные сети для контейнеров [Текст] / М. Каманде, А. Чубахиро, // Журнал «Современная наука: актуальные проблемы теории и практики. Серия «Естественные и технические науки»». — № 6, 2018 (Июнь). - С. 63-68. - ISSN:2223-2966.

99.Bogdanov A. Profiling scheduler for efficient resource utilisation [Текст] / A. Bogdanov, V. Gaiduchok, N. Ahmed, A. Cubahiro, I. Gankevich // Proceedings of the 15th International Conference on Computational Science and Its Applications(ICCSA2015), Banff, Canada, 22-25 June 2015. — Springer Verlag. — 2015. — p.299-310, volume 9158. — ISBN: 978-331921409-2.

100. Korkhov V. Experience in Building Virtual Private Supercomputer [Текст] / V. Korkhov, I. Gankevich, A. Degtyarev, A. Bogdanov, V. Gaiduchok, N. Ahmed, A. Cubahiro // Proceedings of International Conference on Computer Science and Information Technologies (CSIT), 2015. — p. 220-223. — ISBN 978-5-8080-0797-0.

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