Программный комплекс автоматической установки связи с системой распределенных вычислений::Журнал СА 3.2018
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Событие  

В банке рассола ждет сисадмина с полей фрактал-кукумбер

Читайте впечатления о слете ДСА 2024, рассказанные волонтером и участником слета

 Читать далее...

Организация бесперебойной работы  

Бесперебойная работа ИТ-инфраструктуры в режиме 24/7 Как обеспечить ее в нынешних условиях?

Год назад ИТ-компания «Крок» провела исследование «Ключевые тренды сервисного рынка 2023». Результаты

 Читать далее...

Книжная полка  

Читайте и познавайте мир технологий!

Издательство «БХВ» продолжает радовать выпуском интересных и полезных, к тому же прекрасно

 Читать далее...

СУБД PostgreSQL  

СУБД Postgres Pro

Сертификация по новым требованиям ФСТЭК и роль администратора без доступа к данным

 Читать далее...

Критическая инфраструктура  

КИИ для оператора связи. Готовы ли компании к повышению уровня кибербезопасности?

Похоже, что провайдеры и операторы связи начали забывать о требованиях законодательства

 Читать далее...

Архитектура ПО  

Архитектурные метрики. Качество архитектуры и способность системы к эволюционированию

Обычно соответствие программного продукта требованиям мы проверяем через скоуп вполне себе понятных

 Читать далее...

Как хорошо вы это знаете  

Что вам известно о разработках компании ARinteg?

Компания ARinteg (ООО «АРинтег») – системный интегратор на российском рынке ИБ –

 Читать далее...

Графические редакторы  

Рисование абстрактных гор в стиле Paper Cut

Векторный графический редактор Inkscape – яркий представитель той прослойки open source, с

 Читать далее...

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

 Читать далее...

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

 Читать далее...

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

 Читать далее...

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

 Читать далее...

Книжная полка  

От создания сайтов до разработки и реализации API

В издательстве «БХВ» недавно вышли книги, которые будут интересны системным администраторам, создателям

 Читать далее...

Разбор полетов  

Ошибок опыт трудный

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

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 6141
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 6853
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 4135
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 2976
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3781
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3789
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6282
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3134
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3433
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7246
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 10616
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12335
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 13966
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9098
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7052
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5361
Комментарии: 3
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4593
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3400
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3127
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3378
Комментарии: 0
Рецензия на книгу «MongoDB в действии»

 Читать далее...

02.12.2013г.
Просмотров: 2999
Комментарии: 0
Не думай о минутах свысока

 Читать далее...

Друзья сайта  

 Программный комплекс автоматической установки связи с системой распределенных вычислений

Архив номеров / 2018 / Выпуск №3 (184) / Программный комплекс автоматической установки связи с системой распределенных вычислений

Рубрика: Карьера/Образование /  Пятая пара

Павел Поваляев ПАВЕЛ ПОВАЛЯЕВ, бакалавр, Московский авиационный институт (национально исследовательский университет), pavel.povalyev@gmail.com

Программный комплекс
автоматической установки связи с системой распределенных вычислений

Программный комплекс автоматической установки связи с системой распределенных вычисленийВ данной статье представлена разработка программного комплекса для облегчения установки и настройки распределенной платформы Berkeley Open Infrastructure for Network Computing (BOINC)

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

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

В данной статье рассмотрим следующие задачи:

  • Как автоматизировать установку системы.
  • Как настроить подключение к серверу.
  • Как запустить виртуальный BOINC-сервер.
  • Как создать проект на сервере.
  • Как настроить BOINC-клиент для работы с нашим проектом.

Была поставлена цель создать систему, автоматизирующую процесс установки и настройки приложений клиент-серверного приложения Berkeley Open Infrastructure for Network Computing (BOINC) для разработки проектов системы распределенных вычислений BOINC. Далее нужно запустить BOINC-клиенты на компьютерах для работы над созданным проектом.

Нужно иметь понимание о кластерах. Кластер – это многопроцессорный набор, многоядерный компьютер, на котором выполняются задачи пользователя, связанные высокоскоростной сетью и объединенные специальным программным обеспечением. Для расчетных операций используются кластерные (распределенные) вычисления. Именно открытая программная платформа Berkeley Open Infrastructure for Network Computing организует распределенные вычисления.

Платформа BOINC-клиент-сервер состоит из программы-клиента и составного сервера BOINC, это дает возможность использовать несколько компьютеров в качестве сервера.

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

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

BOINC-сервер – центральный сервер, к которому делают запросы клиентские машины. Рассмотрим алгоритм автоматической сборки и установки сервера BOINC (см. рис. 1).

Рисунок 1. Алгоритм сборки и установки сервера

Рисунок 1. Алгоритм сборки и установки сервера

Для установки сервера потребуется:

  • Определить установленный на компьютере дистрибутив (Ubuntu или Debian).
  • В зависимости от установленной операционной системы добавить репозитории, совместимые с нашим дистрибутивом.

Выполняем с правами администратора следующие команды:

  • подключаемся и добавляем репозиторий, в котором хранится пакет PHP 5, необходимый для запуска веб-сервера (который входит в состав BOINC):
# sudo add-apt-repository ppa:ondrej/php -y
  • обновляем данные репозитория:
# sudo apt-get update

Скачиваем и устанавливаем всех необходимые для сборки BOINC-сервера пакеты и библиотеки:

# sudo apt-get install -y git apache2 python-pip m4 pkg-config autoconf automake perl libtool build-essential libssl-dev mysql-server libmysqlclient-dev libmysqld-dev curl libcurl4-openssl-dev software-properties-common python-software-properties php5.6 php5.6-mysql libapache2-mod-php5.6 php5.6-mbstring php5.6-simplexml

Клонируем репозиторий с исходным кодом BOINC-сервера:

# git clone https://github.com/BOINC/BOINC.git BOINC-server

Переходим в папку со скаченными файлами:

# cd BOINC-server

Конфигурируем и готовимся к сборке сервера:

#./_autosetup 1>../server-autosetup.log 2>../server-autosetup-error.log
#./configure --disable-manager --disable-client 1>../server-config.log 2>../server-config-error.log
  • Параметр 1>./*.log – перенаправление стандартного потока в указанный файл.
  • Параметр 2>./*.error.log – вывод сообщений об ошибках в указанный файл.
  • Скрипт configure – означает, что компиляция будет только серверной части и дополнительных библиотек – если установка идет успешно, об этом скажет последняя строчка, выведенная с помощью скрипта.
  • Параметры --disable-manager и --disable-client – указывают конфигуратору, что в процессе сборки нашего проекта не надо собирать manager и client.
--- Build Components: ( libraries server) ---

Обратите внимание на сообщения, выдаваемые в ходе работы скрипта configure, возможно, будут выведены предупреждения наподобие этого:

checking if CFLAG '-include fcgi_stdio.h' works... no
configure: WARNING: fcgi-stdio.h not found.
------------------------------------------------------------
Disabling FCGI. Will not build components that require FCGI
------------------------------------------------------------

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

Сборка сервера:

# make 1>../server-make.log 2>../server-make-error.log

Создание проекта:

# ./tools/make_project —db_passwd='123123' --db_user='root' --delete_prev_inst --drop_db_first --url_base="http://unixubuntu.my-BOINC-test-project.com" testappw

Параметрами --db_passwd и --db_user мы указываем логин и пароль для доступа к базе данных.

Скрипт выводит сообщения процесса сборки нового проекта. Прежде всего устанавливаются параметры, связанные с доступом к веб-странице проекта (здесь *server –IP*– это имя сервера в сети):

Creating project ' my_example_app ' (short name ' meapp '):
PROJECT_ROOT = /home/BOINCadm/projects/ meapp /
URL_BASE = http://*server -IP*/
HTML_USER_URL = http://* server -IP*/ meapp /
HTML_OPS_URL = http://* server -IP*/meapp_ops/
CGI_URL = ://*server -IP*/meapp_cgi/
KEY_DIR = /home/BOINCamd/projects/meapp/keys/
DB_NAME = meapp

Затем создаются необходимые каталоги.

Setting up server: creating directories

Происходит генерация криптографических ключей.

Keys don't exist in /home/BOINCadm/projects/meapp/keys/; generate them? [Y/n]
Setting up server files: generating keys

Копирование необходимых файлов, создание таблиц базы данных и файлов настроек, установка независимых от приложения служб:

Setting up server files: copying files
Setting up database
Setting up server files: writing config files
Setting up server files: linking cgi programs
update_translations finished
Done installing default daemons

Настройка веб-страницы. Перед настройкой Apache нужно установить правильные права доступа на папку, где содержится сама страница.

# chmod –R 755 html/*

Настройки веб-сервера Apache для нового проекта содержатся в файле testappw.httpd.conf. Откроем файл, в котором мы видим, что данная конфигурация была сгенерирована для Apache 2.2, так как у нас установлена версия Apache 2.4, нам нужно заменить:

Order deny, allow
Deny from all

на:

Require all denied

И:

Order allow, deny
Allow from all

на:

Require all granted

Содержимое файлов настроек подключается либо напрямую, либо через основной файл настроек (все действия необходимо выполнить с правами root):

# root@BOINCserver:/home/BOINCadm/projects/meapp>
# cat meapp.httpd.conf >> /etc/apache2/httpd.conf

Необходимо перезапустить сервер Apache:

# root@BOINCserver:/home/BOINCadm/projects/meapp>
# /etc/init.d/apache2 restart

Установим пароль для доступа к административной части:

# sudo htpasswd -c html/ops/.htpasswd admin

Мы видим главную страницу тестового проекта Berkeley Open Infrastructure for Network Computing, с помощью нее мы связываемся с пользователями нашего проекта. Данная страница является шаблоном сайта проекта, который в дальнейшем необходимо модифицировать (или заменить) под нужды проекта. Для написания программы инсталлятор автоматической установки и развертывания BOINC-сервера использовался скриптовый язык программирования Bash.

Была поставлена цель создать систему, автоматизирующую процесс установки и настройки приложений клиент-серверного приложения BOINC

Для автоматической установки BOINC-сервера нужно ввести адрес сервера, название проекта, а также пароль от администратора веб-страницы:

read -p "url to server: http://" -e BOINC_URL
BOINC_URL="http://$BOINC_URL"
read -p "project_name: " -e BOINC_NAME
read -p "password for admin web-page: " -e ADMIN_PASSW
echo "url: $BOINC_URL"
echo "project_name: $BOINC_NAME"
  • "url to server: http://" -e BOINC_URL – ввод с клавиатуры адреса BOINC-сервера;
  • "project_name: " -e BOINC_NAME – ввод с клавиатуры названия проекта;
  • "password for admin web-page: " -e ADMIN_PASSW – введение пароля от администратора веб-сервера.

За определение установленного на компьютере дистрибутива отвечает специальная команда:

# dpkg -s lsb-release >/dev/null 2>/dev/null || sudo apt-get -y install lsb-release
# LINUX_DIST=$(lsb_release -a 2>/dev/null | grep "Distributor ID:")

Здесь:

  • lsb-release – проверка на установку программы lsb-release, которая отвечает за определение дистрибутива;
  • install lsb-release – установка программы, если не была найдена;
  • "Distributor ID:" – получение установленного дистрибутива.

Для успешной работы инсталлятора нужно настроить веб-сервер Apache.

# python -c "exec(\"f=open(''${BOINC_NAME}'.httpd.conf', 'r')\\nf2 = open('BOINC.httpd.conf', 'w') \\nfor line in f: f2.write(line .replace('Order deny,allow', '') .replace('Order allow,deny', '') .replace('Allow from all', 'Require all granted') .replace('Deny from all', 'Require all denied'))\")"
# sudo sh -c "cp BOINC.httpd.conf /etc/apache2/ BOINC.httpd.conf"
# sudo sh -c "echo 'Include BOINC.httpd.conf' >> /etc/apache2/apache2.conf"

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

Рассмотрим схему базы данных (см. рис. 2). На рисунке представлены следующие таблицы:

  • workunit – описание рабочих заданий для выполнения.
  • app_version – описание версий приложений.
  • app – хранится информация о приложениях, используемых в рамках проекта.
  • credited_job – хранение сведений о пользователе и об описании вычислений.
  • platform – указываются программно-аппаратные платформы, «известные» проекту.
  • user – сведения о пользователе и связанных с ними хостах.
  • result – результаты вычислений по конкретным рабочим заданиям.
  • host_app_version – описание версии приложения хостинга.
  • user_submit_app – отправка и отслеживание пользователем задания.

Рисунок 2. Схема базы данных

Рисунок 2. Схема базы данных

В ходе выполнения работы был проведен анализ компонентов и архитектуры системы Berkeley Open Infrastructure for Network Computing в целях автоматизации установки и запуска приложения, а также создания проекта для задач пользователя. Был предложен алгоритм для автоматической сборки и установки сервера. Для простого использования данного алгоритма была написана программа-инсталлятор на скриптовом языке программирования Bash и использована база данных MySQL.

  1. https://www.ibm.com/developerworks/ru/library/l-grid/index.html.
  2. https://ru.wikipedia.org/wiki/Кластер_(группа_компьютеров).

Ключевые слова: распределенные вычисления, вычислительные узлы, автоматизация, Berkeley Open Infrastructure for Network Computing (BOINC), дистрибутив, языки программирования Bash и Python, клиент-сервер, Apache, репозиторий, скрипт, клиент-приложение, конфигурирование, база данных, MySQL.


Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru