Система BOINC. Занятие проводит: Храпов Николай Павлович Институт Системного Анализа РАН Практическое занятие Основы работы с ОС Linux Установка BOINC-сервера Практическое занятие Основы работы с ОС Linux Установка BOINC-сервера Что такое технологии виртуализации? Технология виртуализации позволяет в рамках одного персонального компьютера полностью смоделировать (виртуализовать) работу одного или нескольких других компьютеров. Виртуализация работы системы Windows 7 в рамках Mac OS X Lion Запуск ОС Linux в виртуальной среде 1. Пуск -> Программы -> Vmware Player. 2. Debian_6_Student. 3. Play. Пользователь root root – пользователь-администратор системы, на которого не распространяется каких-либо ограничений доступа . Пароль: rootpw. Имя пользователя root является единым для всех реализаций Linux. Для ОС Linux Debian по умолчанию невозможен вход через графический интерфейс. Пользователи (продолжение) student – стандартный пользователь системы. Пароль: studentpw. Допускается вход через интерфейс пользователя. графический Использование терминала При наличии Программы –> Стандартные -> Терминал GUI При отсутствии GUI ALT + CTRL + F1/F2 … F6 Возвращение в GUI: ALT + CTRL + F7 Путь в файлу / путь к корневому каталогу. /var/lib пример пути относительно корневого каталога. lib пример пути относительно текущего каталога. ~ домашний каталог пользователя. ~/Загрузки пример пути относительно домашнего каталога. .. каталог на уровень выше. Команды по работе с файловой системой ls – получить список файлов в каталоге. cd – перейти в каталог. mkdir – создать каталог. rm – удалить файл. pwd – путь к текущему каталогу. touch – создать пустой файл. ./ – запустить файл из текущего каталога на исполнение. Опции ls # список файлов в текущем каталоге; # включая скрытые файлы; # список файлов с выводом расширенной информации; ls /home # список файлов в каталоге /home. ls ls –a ls –l Доступ к файлу На чтение. На запись. На исполнение. Изменение прав доступа к файлу chmod +x <название файла> Сделать файл исполняемым. chmod –x <название файла> Убрать права на исполнение. Запуск команд от имени суперпользователя su Переход в терминал пользователя root. su – student Переход в терминал пользователя student. <пользователь>@<хост>:<каталог> $ Командная строка обычного пользователя. root@<хост>:<каталог> # Командная строка пользователя root. Текстовый редактор nano CTRL + o Сохранение файла. CTRL + x Выход из программы. Другие команды echo – написать аргумент. date – написать текущую дату и время. whoami – выводит имя текущего пользователя. mc – консольный файловый менеджер midnight commander. apt-get – менеджер приложений. ssh - вызов программы для удалённого терминального доступа. Задание №1 В домашнем каталоге создать директорию Programs. В директории Programs создать файл hworld. Внутри данного файла поместить следующий список команд: echo Hello World!!! I am whoami echo echo Now: date echo echo Path: pwd Сохранить файл и сделать его исполняемым. Запустить файл как из домашнего, так и из текущего каталогов. Задание №2 (BOINC-клиент) Перейти в консоль пользователя root. Обновить репозиторий: apt-get update Установить программы BOINC-клиент и BOINC-менеджер: apt-get install boinc-client boinc-manager Выйти из консоли суперпользователя: exit Задание №2 (продолжение) Запустить BOINC-клиент. Подключить его к проекту c master-url: http://b16.oit.cmc.msu.ru/demo Практическое занятие Основы работы с ОС Linux Установка BOINC-сервера Переход на удалённый сервер ssh root@b16.oit.cmc.msu.ru Далее в соответствии с инструкцией. BOINC (основные понятия) BOINC-клиент. Вычислительный узел. BOINC-менеджер. Приложение. BOINC-сервер. Версии приложения. Проект. Расчётный блок (Work Unit). Пользователь. Результат. Аккаунт-менеджер. Службы. Начисляемые баллы. Master URL. BOINC-клиент BOINC (просмотр событий) Архитектура грида из персональных компьютеров Принцип работы распределённого приложения Физические и логические имена файлов Основные термины integral-master Work Unit 1 Work Unit 2 Work Unit 3 Work Unit 4 integral-client integral-client integral-client integral-client input1.txt input2.txt input3.txt input4.txt Шаг 3. Создание проекта: Структура каталогов Разработка и запуск распределённых приложений BOINC-API wrapper DC-API gen-wrapper BOINC-API На стороне сервера: create_work sample_assimilator sample_trivial_validator На стороне клиента: integral_1.06_i686-pc-linux-gnu Integral_1.08_windows_intelx86 wrapper Шаг 3. Создание проекта: Web-интерфейс DC-API: клиентская часть DC_initClient() init_files() DC_finishClient(int) DC_resolveFileName(DC_FILE_IN, INPUT_LABEL); DC_resolveFileName(DC_FILE_OUT, OUTPUT_LABEL); DC-API: серверная часть DC_initMaster(config_file) DC_setMasterCb(process_result, NULL, NULL) DC_log(LOG_NOTICE, char*) DC_processMasterEvents(int time) DC_createWU("integral", NULL, 0, wu_tag) DC_addWUInput(wu, INPUT_LABEL, "wu-input.txt", DC_FILE_VOLATILE) DC_addWUOutput(wu, OUTPUT_LABEL) DC_submitWU(wu) char* DC_getWUTag(wu) char* DC_getResultOutput(result, OUTPUT_LABEL) DC_destroyWU(wu) ПРАКТИЧЕСКАЯ ЧАСТЬ Шаг 1. Установка и настройка BOINC-клиента Подключаемся к репозиторию: заходим с правами администратора(команда su); редактируем файл /etc/apt/sources.list, добавляя в самый конец строку deb http://www.desktopgrid.hu/debian/ lenny szdg обновляем данные репозитория: apt-get update импортируем недостающий ключ: apt-key advanced --keyserver wwwkeys.eu.pgp.net --recv-keys обновляем репозиторий с применением импортированных ключей: apt-get update Шаг 1. Установка и настройка BOINC-клиента: подключение к проекту Заходим через браузер на сайт http://boinc.berkeley.edu/ Загружаем BOINC-клиент, устанавливаем его. При первом запуске программа предложит подключиться к проекту, для этого нужно ввести master-url специального тестового проекта: boinc-test.isa.ru, и следовать дальнейшим инструкциям Шаг 2. Установка BOINC-сервера Подключаемся к репозиторию: заходим с правами администратора(команда su); редактируем файл /etc/apt/sources.list, добавляя в самый конец строку deb http://www.desktopgrid.hu/debian/ lenny szdg обновляем данные репозитория: apt-get update импортируем недостающий ключ: apt-key advanced --keyserver wwwkeys.eu.pgp.net —recv-keys <шифр отображенный на экране> обновляем репозиторий с применением импортированных ключей: apt-get update Шаг 2. Установка BOINC-сервера Устанавливаем boinc-server: apt-get install boinc-server в процессе установки необходимо будет установить пароль администратора баз данных mysql(например sqlpw): Для доступа пользователя root к использованию mysql необходимо создать файл /root/.my.cnf со следующим содержимым: [mysql] user = root password = sqlpw [mysqladmin] user = root password = sqlpw можно проверить доступ к базам данных, запустив mysql Шаг 3. Создание проекта Выбираем короткое и длинное название для проекта(например за длинное название можно взять свои имя и фамилию, за короткое — инициалы) Создаём проект, например: boinc_create_project --name=ivpr --long-name='Ivan Petrov' Добавляем пользователя в администраторы проекта: boinc_admin --NAME=ivpr --add boincadm необходимо назначить пароль для доступа к информации проекта через web-интерфейс. Шаг 4. Добавление приложения Проект расположен в папке /var/lib/boinc/<короткое название проекта>/project Регистрируем приложение в файле проекта project.xml, добавляя вместо обозначенного там приложения uppercase приложение integral: <app> <name>integral</name> <user_friendly_name>Integral_of_function</user_friendly_name> </app> Далее необходимо запустить команду xadd, которая прочитает содержимое данного xml-файла, и занесёт его значения в базу данных проекта Шаг 5. Обновление версий Устанавливаем исполняемый файл клиентской части приложения в нашей инфраструктуре. Для этого создаём каталог /var/lib/boinc/ivpr/project/apps/integral/integral_1.00_windows_x86_6 4.exe !!! - название каталога будет заканчиваться именно на .exe. Копируем в созданную папку исполняемый клиентский файл с таким же названием. Запускаем update_versions, котора прочитает структуру каталогов внутри apps, и внесёт необходимые изменения в базу данных. Шаг 6. Установка серверной части распределённого приложения В директории /var/lib/boinc/<короткое название проекта> создаем рабочий каталог приложения integral-master. В данном каталоге создаем файл integral-master.conf c примерно следующим содержимым: [Master] WorkingDirectory = /var/lib/boinc/ivpr/integral-master InstanceUUID = fc7286ea-d8ab-4304-be55-84c098d7db42 BoincConfigXML = /var/lib/boinc/ivpr/project/config.xml ProjectRootDir = /var/lib/boinc/ivpr/project Шаг 7. Запуск проекта Копируем файл серверной части приложения в каталог bin проекта. Запускаем его из папки bin: ./integral-master -c /var/lib/boinc/ivpr/integralmaster/integral- master.conf запускаем сервер, набрав в отдельной консоли с правами администратора проекта команду start. Структура учебного стенда Облачные вычисления История возникновения термина SaaS PaaS IaaS Software as Service (SaaS) Ниболее популярные реализации: Google Office Microsoft Office Live Dropbox Платформы для организации: Google App Engine Microsoft Azure