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

  Опросы
1001 и 1 книга  
12.02.2021г.
Просмотров: 8881
Комментарии: 2
Коротко о корпусе. Как выбрать системный блок под конкретные задачи

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

11.02.2021г.
Просмотров: 9220
Комментарии: 5
Василий Севостьянов: «Как безболезненно перейти с одного продукта на другой»

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

20.12.2019г.
Просмотров: 16376
Комментарии: 0
Dr.Web: всё под контролем

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

04.12.2019г.
Просмотров: 15430
Комментарии: 13
Особенности сертификаций по этичному хакингу

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

28.05.2019г.
Просмотров: 16468
Комментарии: 6
Анализ вредоносных программ

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

Друзья сайта  

Форум системных администраторов  

sysadmins.ru

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

Архив номеров / 2017 / Выпуск №10 (179) / Программный комплекс для автоматической связи с платформой BOINC

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

Без фото ПАВЕЛ ПОВАЛЯЕВ, Московский авиационный институт (национальный исследовательский университет), магистр

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

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

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

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

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

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

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

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

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

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

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

Разработка алгоритма автоматической сборки и установки сервера BOINC

Для установки сервера потребуется выполнить следующее.

Шаг 1. Определяем установленный на компьютере дистрибутив (Ubuntu или Debian).

Шаг 2. В зависимости от установленной операционной системы добавляются совместимые репозитории с нашим дистрибутивом.

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

Подключаемся и добавляем репозиторий, в котором хранится пакет PHP 5, необходимый для запуска веб-сервера (который входит в состав BOINC):

sudo add-apt-repository ppa:ondrej/php -y

Обновляем данные репозитория:

sudo apt-get update

Шаг 3. Cкачивание и установка всех необходимых для сборки 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

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

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

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

cd BOINC-server

Шаг 6. Конфигурирование и подготовка к сборке сервера:

./_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

------------------------------------------------------------

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

Шаг 7. Сборка сервера:

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

Шаг 8. Создание проекта:

./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

Шаг 9. Настройка веб-страницы. Перед настройкой 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

Мы видим главную страницу тестового проекта BOINC, с помощью нее мы связываемся с пользователями нашего проекта (см. рис. 2). Данная страница является шаблоном сайта проекта, который в дальнейшем необходимо модифицировать или заменить под нужды проекта.

Рисунок 2. Веб-страница

Рисунок 2. Веб-страница

Для написания программы инсталлятор автоматической установки и развертывания BOINC-сервера использовался скриптовый язык программирования Bash.

Для автоматической установки 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 и заменяет строчки.

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

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

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

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

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

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

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