Власенко Антон Павлович

Факультет компьютерных наук и технологий

Кафедра компьютерной инженерии

Специальность «Системное программирование»

«Модульная виртуализированная компьютерная система для учебного процесса»

Научный руководитель: к.т.н., доцент Самощенко А.В.

Реферат по теме магистерской работы


Введение

В настоящее время в компьютерной поддержке системы образования существуют проблемы, связанные с актуальностью и эффективностью программного обеспечения. Программные продукты, используемые для обеспечения административной деятельности университетов, продукты, которыми оснащаются лаборатории – все они во многом устарели и имеют неисправности. Все это приводит к тому, что автоматизация не работает должным образом, отнимая время у обслуживающего персонала и снижая эффективность обучения. Эти факторы уже неоднократно становились объектом исследований в магистерских работах других студентов [1][2], в которых освещались концепции конкретных продуктов, заменяющих существующие. В отличие от тех проектов, в моей работе предлагается новая платформа, которая сделает разработку, внедрение и модернизацию любого ПО более легкой в долгосрочной перспективе.

Актуальность

Тема является актуальной для ДонНТУ – используемая АСУ «Деканат» не справляется с нагрузкой и требует постоянного ручного вмешательства обслуживающего персонала, что является проблемой, характерной не только для ДонНТУ[3]. Многие серверы ДонНТУ также устарели и имеют трудности с обновлением, в лабораториях часто используются сторонние утилиты, имеющие недостатки, однако они не могут быть исправлены, т.к. ДонНТУ не обладает исходными текстами этих программ, при этом вариант собственной разработки является слишком трудным для одного отдельного ВУЗа. Эти проблемы существуют не только в ДонНТУ[3], и возможность соединения многих вузов под единой системой разработки и развертывания является актуальной темой для исследования, тем более такие практики применяются и сейчас, но в других областях cовместной разработки[4].

Цели и задачи, планируемые результаты

Задачей исследования является создание концепции модульной виртуализированной системы, а также реализация базовой системы в ДонНТУ. Базовая система будет включать в себя ПО для управления виртуальными машинами (старт, остановка, создание и удаление), содержимым виртуальных машин.


Основные принципы

Концепция базируется на оптимизации. Оптимизация достигается в первую очередь в переходе учебных заведений на свободное программное обеспечение. Свободное программное обеспечение получило свое развитие в среде высших учебных заведений, и там же оно активно используется. Это очевидный факт зарубежом, в одном только калифорнийском Беркли были основаны сотни проектов, в том числе такие известные, как Berkeley Software Distribution (семейство операционных систем), базы данных Postgres и Berkeley DB, популярная графическая библиотека GTK+ и мощный графический редактор GIMP.

Украинские вузы не имеют программ и проектов популяризации свободного ПО. Украинские вузы не используют в достаточном объеме свободное ПО в своей ежедневной работе, а ведь для большинства приложений можно найти свободную альтернативу [8].

Современные решения

Двадцать первый век справедливо можно назвать веком облачных вычислений, а, следовательно, и веком виртуализации. Даже бюджетные смартфоны в 2012 году поставляются с 20ГБ облачного пространства для нужд пользователя. Начиная реорганизацию инфраструктуры компьютерной поддержки, необходимо использовать самые современные решения, а также делать ставку на решения, которые найдут свое применение только в будущем. На этом основана концепция модульной виртуализированной компьютерной системы - open source решения виртуализации позволят наращивать функциональность с помощью модулей, а технология только находит свое применение, и будет актуальной и в будущем.

Виртуализация на базе Xen позволит внедрять виртуальные машины-модули для каждой задачи с минимальными потерями в производительности.

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


Обзор решения, внедренного в ДонНТУ

В данный момент один из серверов ДонНТУ построен по принципу модульной виртуализированной системы.

Внутренняя архитектура

Двухпроцессорная система разделена на несколько виртуальных машин. Dom0 – то есть сама хост машина, не обслуживает никаких сервисов, кроме виртуальных машин, и служит лишь как тонкая оболочка между виртуальными машинами и внешним миром. Машине отводится оставшийся малый объем оперативной памяти (меньше 300MB), который занимается в основном ОС и внутренними демонами. Все входящие соединения на порт 80 данная машина перенаправляет на административную виртуальную машину с помощью правил iptables:

-A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.0.0.2:80

Также существует опциональное перенаправление других портов, например для прямого SSH доступа к виртуальным машинам:

-A PREROUTING -d ip -p tcp -m tcp --dport 22221 -j DNAT --to-destination 10.0.0.1:22

Административная виртуальная машина (codename Antares)

В первую очередь должно быть сказано, почему используется отдельная административная виртуальная машина, а не хост-машина dom0. Сделано это из соображений безопасности, т.к. перехват dom0 приведет к полному контролю над всеми виртуальными машинами системы и их содержимым (пароли и БД), а перехват административной машины даст возможность только перехватывать\блокировать HTTP соединения с другими виртуальными машинами и не откроет возможности открыто просмотреть содержимое файловой системы других виртуальных машин.

Административная виртуальная машина построена на той же основе, что и хост-машина и другие виртуальные машины – ОС Debian GNU/Linux stable. Главный исполнительный механизм данной машины – сервис Squid, работающий в режиме обратного прокси, который распределяет HTTP запросы в зависимости от домена и кэширует результаты, чтобы повысить производительность web-сервера.

Схема работы серверов изображена на рисунке 1.

Рисунок 1 - Схема работы серверов внутри Dom0.

Как видно из схемы, Squid получает абсолютно все запросы, которые поступают на 80 порт сервера, после чего сам решает, какая из виртуальных машин обработает эти запросы. Файл /etc/squid/squid.conf содержит правила работы сервиса, новые правила стоит добавлять по существующим примерам, обязательно указывая внутренний IP виртуальной-машины обработчика и домен, который должен быть обработан.

Базовое представление конфигурационного файла:

cache_peer 10.0.0.1 parent 80 0 no-query originserver name=Server1
cache_peer_domain Server1 cs.donntu.ru
...
acl cs_site dstdomain cs.donntu.ru
...
cache_peer_access Server1 allow cs_site
...
http_access allow cs_site

Машина веб-сервер (codename Capella)

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

Для предоставления полноценного выделенного сервера пользователи имеют возможность подключаться к серверу по SSH (занимая один из свободных портов хост-машины, например 22222, и перенаправляя на 22 порт виртуальной машины). Это дает возможность переносить свои файлы через протокол SSH – утилитой SCP (в Windows используется клиентская утилита WinSCP с графическим интерфейсом). Еще один способ передачи файлов на сервер – сервис WebDAV, который обслуживается Apache[6].

Управление сервером

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

Общий обзор архитектуры

Xen запускается на специально подготовленной хост-машине и оперирует конфигурационными файлами виртуальных машин[5]. Каждая виртуальная машина состоит из трех компонентов – конфигурационного файла, описывающего виртуальную машину (кол-во выделяемых ядер и RAM), файла, содержащего файловую систему машины (то есть /boot /etc /usr /var и так далее) и файла, который будет служить разделом подкачки для виртуальной машины. Это базовая схема, файловая система может быть представлена несколькими файлами, равно как и иметь несколько файлов подкачки (например на RAID массивах).

Расположение файлов:

/etc/xen/domains/<имя виртуальной машины>.conf – конфигурационный файл
/xen/domains/<имя виртуальной машины>/disk.img – файловая система
/xen/domains/<имя виртуальной машины>/swap.img – раздел подкачки

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

Подробная инструкция по клонированию образов

Для полного копирования виртуальной машины нужно сделать следующее (на примере веб-сервера):

  1. Зайти в хост-систему dom0 как root (или как sudouser):
    # su
    # whoami (должно возвращать root)
  2. Создать каталог:
    # mkdir /xen/domains/new_VM (вместо new_VM используйте имя новой виртуальной машины)
  3. Скопировать файлы:
    # cp /etc/xen/domains/original_VM.conf /etc/xen/domains/new_VM.conf
    # cp /xen/domains/original_VM/disk.img /xen/domains/new_VM/disk.img
    # cp /xen/domains/original_VM/swap.img /xen/domains/new_VM/swap.img
  4. Отредактировать новый конфигурационный файл: # nano /etc/xen/domains/new_VM.conf Изменить имя виртуальной машины и присвоить другой IP адрес, в разделе путей к разделам машины заменить имя оригинальной машины на новое (original_VM -> new_VM).
  5. Подсоединиться к административной виртуальной машине: # xm console Antares (вместо Antares – соответствующее имя административной виртуальной машины).
  6. Войти как root:
    Log in as: root
    Password: password
  7. Открыть файл конфигурации Squid:
    # nano /etc/squid/squid.conf
    И добавить в нем правила для IP новой виртуальной машины, по примеру существующих в файле:
    правила
  8. Выйти из системы административной виртуальной машины командой exit. Вернуться в dom0, нажав комбинацию клавиш CTRL + ].
  9. Запустить новую виртуальную машину:
    # xm create new_VM
  10. Войти в новую виртуальную машину:
    # xm console new_VM
  11. Войти в систему как root, вводя пароль суперпользователя original_VM:
    Log in as: root
    Password: password
  12. Отредактировать файл /etc/hostname, сменив original_VM на new_VM.
  13. Изменить пароль суперпользователя, ввести команду passwd:
    # passwd
    Введите новый пароль UNIX: -ввести новый пароль-
  14. Отредактировать конфигурационные файлы Apache.

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

Инструменты управления через командную строку

Список команд для управления Xen[7]:


Выводы и результаты начального внедрения

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

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

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


Источники информации

  1. Стародубов В.К. - КОМПЛЕКСНЫЙ РЕИНЖЕНИРИНГ ИНФОРМАЦИОННОЙ КОМПЬЮТЕРНОЙ СИСТЕМЫ ФАКУЛЬТЕТСКОГО УРОВНЯ; [электронный ресурс]
    Режим доступа: http://masters.donntu.ru/2009/fvti/starodubov/library/index.htm
  2. Ситников А.А., Ситников А.Г., Плутенко А.Д. - Использование технологий WWW в образовании, учебно-информационная сеть ВУЗа; [электронный ресурс]
    Режим доступа: http://www.nsu.ru/archive/conf/nit/97/c3/node8.html
  3. Петухов В.А. Лабутин-Рымшо Я.И. - Разработка системы координации образовательного процесса АСУ «СТУДЕНТЫ» [электронный ресурс] / Национальный исследовательский ядерный университет «МИФИ» - 2010г, стр. 1
    Режим доступа: http://www.mephi.ru/molod/molod_2009/docs.php?SECTION_ID=1299&ELEMENT_ID=8181
  4. Вузи-партнери - Приазовський державний технічний університет; [электронный ресурс]
    Режим доступа: http://www.pstu.edu/index.php?id=83&L=1
  5. Xen @ Debian Project [электронный ресурс]
    Режим доступа: http://wiki.debian.org/Xen
  6. Сипягин М. - Модуль mod_dav. Введение в WebDAV; [электронный ресурс]
    Режим доступа: http://citforum.ru/internet/webservers/webdav/
  7. Домашний сервер: виртуализация на основе Xen; [электронный ресурс]
    Режим доступа: http://habrahabr.ru/post/37824/
  8. Власенко А.П., Самощенко А.В. - КОМПЬЮТЕРНАЯ СИСТЕМА ПОДДЕРЖКИ УЧЕБНОГО ПРОЦЕССА НА БАЗЕ СВОБОДНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ / Донецкий национальный технический университет, Кафедра компьютерной инженерии - 2012г.

Примечание

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