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

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

Кафедра комп'ютерної інженерії

Спеціальність "Системне програмування"

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

Науковий керівник: к.т.н., доцент Самощенко О.В.

Автореферат за темою випускної роботи


Вступ

Сьогоднi в комп'ютерній підтримці системи освіти спостерігаються проблеми з актуальністю і ефективністю програмного забезпечення. Програмні продукти, використовувані для забезпечення адміністративної діяльності університетів, продукти, якими оснащуються лабораторії - усі вони багато в чому застаріли і мають несправності. Усе це призводить до того, що автоматизація не працює належним чином, віднімаючи час у обслуговуючого персоналу і знижуючи ефективність навчання. Ці чинники вже неодноразово ставали об'єктом досліджень в магістерських роботах[1][2], проте, в моїй роботі пропонується не концепції конкретних продуктів, замінюючих існуючі, а пропонується нова платформа, яка зробить розробку, впровадження і модернізацію будь-якого ПЗ легшою в довгостроковій перспективі.

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

Тема є актуальною для ДонНТУ - використовувана АСУ "Деканат" не справляється з навантаженням і вимагає постійного ручного втручання обслуговуючого персоналу. Багато серверів ДонНТУ також застаріли і мають труднощі з оновленням, в лабораторіях часто використовуються сторонні утиліти, що мають недоліки, проте вони не можуть бути виправлені, оскільки ДонНТУ не має початкових текстів цих програм, при цьому варіант власної розробки є занадто важким для одного окремого Внз. Ці проблеми існують не лише в ДонНТУ[3], і можливість поєднання багатьох внз під єдиною системою розробки і розгортування є актуальною темою для дослідження, тим більше такі практики застосовуються і зараз, але в інших областях спiльної розробки[4]

Цілі і завдання, плановані результати

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

Огляд рішення, впровадженого в ДонНТУ

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

Внутрішня архітектура

Двопроцесорна система розділена на декілька віртуальних машин. 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- сервера.

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

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

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

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

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

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

Управління сервером

Спрощена і розширена версія управління сервером в даний момент знаходиться у стадії розробки у рамках магістерської роботи. Вона маніпулюватиме стандартними інструментами управління сервером через графічний інтерфейс. Нижче представлений опис стандартних інструментів управління і архітектури.

Загальний огляд архітектури

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

Розташування файлів :

Linux має велику гнучкість і його можна легко копіювати. На цьому і побудована концепція модульності - створивши один раз образ, наповнивши його вмістом, його можна копіювати, вносити мінімальні зміни і отримувати копію існуючої віртуальної машини.

Висновки і результати початкового впровадження

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

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

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


Джерела інформації

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