ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ И ОБРАЗОВАНИЕ X
УДК 004; 621.398; 681.5; 681.324:681.3.001.57 doi:10.15217/issnl684-8853.2017.2.96
ОРГАНИЗАЦИЯ УДАЛЕННОЙ РАБОТЫ СТУДЕНТОВ СО СВОИМИ ВИРТУАЛЬНЫМИ МАШИНАМИ
А. В. Гордеева, доктор техн. наук, профессор
аСанкт-Петербургский государственный университет аэрокосмического приборостроения, Санкт-Петербург, РФ
Введение: для изучения целого ряда дисциплин по информатике и вычислительной технике, в которых студенты должны иметь права администратора на свой компьютер, целесообразно использовать технологии виртуализации. Цель: создание системы обеспечения студентов удаленным доступом к своему множеству виртуальных машин и вычислительных сетей. Результаты: на основе десктопной программы Oracle VirtualBox, которая используется в качестве серверной и работает на кластере, собранном для этих целей, создана система удаленного доступа, которая обладает такими качествами, как простота, доступность, устойчивость к нагрузкам, масштабируемость, гибкость, надежность и безопасность. Она может быть сопряжена с системой дистанционного обучения Moodle, на базе которой на кафедре вычислительных систем и сетей Санкт-Петербургского государственного университета аэрокосмического приборостроения разрабатываются учебные курсы по дисциплинам, в которых предполагается работа с программой Oracle VM VirtualBox. Практическая значимость: система позволяет организовать работу с виртуальными машинами с любого устройства, имеющего веб-браузер и обеспечивающего пользователя графическим интерфейсом.
Ключевые слова — виртуальные машины, удаленный доступ, VirtualBox, кластер.
Введение
Для обучения студентов по направлению «Информатика и вычислительная техника» возникла задача организовать на базе открытых технологий и облачных сервисов удаленную работу студентов со своими виртуальными машинами. При этом необходимо было обеспечить студентам права администратора на свои виртуальные компьютеры и сети, но изолировать вычислительные сети и машины одного студента от аналогичных объектов другого студента. Решение должно быть масштабируемым и открытым.
В статье [1] было достаточно подробно рассмотрено, для чего и как следует применять технологии виртуализации в учебном процессе. И была описана концепция создания системы, которая в настоящее время уже разработана и используется при изучении студентами открытых операционных систем GNU/Linux и администрирования вычислительных сетей на базе этих систем. Однако там была описана система с технологией виртуализации на уровне операционных систем, что не всегда приемлемо. Жизнь вносит свои коррективы, и, помимо вышеупомянутых, студенты изучают и другие операционные системы. Среди возможных средств работы с виртуальными машинами упоминалась такая популярная программа, как Oracle VM VirtualBox. Она прежде всего используется на рабочих станциях, тогда как основными серверными средствами, используемыми при построении облачных средств виртуализации, являются VMware vSphere, Citrix Xen и некоторые другие [2]. Если необходимо работать с относительно не-
большим количеством виртуальных машин, то часто используют такой популярный продукт, как Microsoft Hyper-V. Однако для учебного заведения, особенно для технического вуза, в котором готовят специалистов по информатике и вычислительной технике, желательно использовать иные продукты, в первую очередь открытые. Далеко не все придерживаются таких взглядов, и имеется немало публикаций, в которых речь идет о применении технологий виртуализации и виртуальных машин при подготовке IT-специалистов, но акцент на открытые продукты и технологии не ставится [3, 4]. Главное обстоятельство, на которое хочется обратить внимание, — это то, что названные здесь и в упомянутых публикациях средства хоть и обладают великолепными возможностями, но представляют собой своеобразный «черный ящик». Поскольку это проприетарные продукты, то внутреннее устройство этих средств виртуализации, предназначенных для создания больших облачных систем, закрыто. Есть только инструкции по их использованию. К тому же большинство из них достаточно дорогие, и хотя они обладают богатыми возможностями, но их использование рассчитано на соответствующие мощные и высоконадежные аппаратные ресурсы. Вложенные средства предполагают свою окупаемость, т. е. их использование должно приносить какой-то доход. О доходе в учебном процессе говорить не приходится, можно говорить в основном о затратах и эффекте использования в учебных целях. Очевидно, что желательно затраты уменьшать, а качество обучения при этом все равно должно увеличиваться.
Программа Oracle VirtualBox
У программы VirtualBox, которую в настоящее время курирует и помогает развивать компания Oracle [5, 6], есть много достоинств. Главные — это удобный интуитивно понятный интерфейс, рассчитанный на неподготовленного пользователя; большой набор виртуализируемых устройств, очень полезный в учебном процессе; простой и удобный экспорт и импорт образов виртуальных машин; простой и удобный механизм создания «снимков» (snapshot) состояния виртуальной машины, что существенно помогает при проведении экспериментов; кроссплатформен-ность. Oracle VM VirtualBox работает на большом количестве 32- и 64-битных операционных систем. Эту программу студенты часто устанавливают на свои персональные компьютеры и ноутбуки. В случае, когда студенты сталкиваются с какими-нибудь проблемами, которые они сами не могут разрешить, они имеют возможность импортировать свои машины на переносные устройства внешней памяти (обычно в этой роли выступают либо USB-диски, либо USB флеш-накопители) и принести их в университет, где уже могут их решить вместе с преподавателем. Наиболее актуально это при выполнении студентами курсовых работ, в рамках которых они должны создать свою вычислительную сеть корпоративного уровня из виртуальных машин и должным образом ее настроить.
Далеко не все знают, что программа Oracle VM VirtualBox имеет большие возможности при использовании интерфейса командной строки, что позволяет ее использовать в серверном варианте. Для связи с такими машинами разрабатывается коннектор HyperBox, однако в настоящее время это всего лишь бета-версия, и использовать ее пока невозможно. Кроме этого имеется PHP-вариант phpVirtualBox, который позволяет подключаться к удаленным виртуальным машинам через веб-интерфейс. Однако phpVirtualBox годится лишь для случая удаленного доступа к своим виртуальным машинам только одного пользователя, поскольку разграничения в доступе к файлам и процессам виртуальных машин в этом варианте нет; очевидно, что для использования в учебном заведении этот способ доступа к удаленным виртуальным машинам не годится, так как параллельно работающих студентов может быть много.
Важным обстоятельством, послужившим выбору программы Oracle VM VirtualBox в качестве основы для построения системы, стал профессиональный интерес: попытаться организовать ее работу не на обычном сервере, а на кластере. Дело в том, что эта программа не предполагает такого использования, а кластерные вычисления имеют много преимуществ. Поэтому была создана и опро-
бована относительно несложная реализация, которая позволяет получить очень важные качества: простоту, доступность, устойчивость к нагрузкам, масштабируемость, гибкость, надежность и безопасность. Настоящая статья кратко описывает это решение.
Интерфейс к виртуальным машинам
Для доступа к своим удаленным виртуальным машинам пользователя нужно обеспечить соответствующим интерфейсом. Этот интерфейс должен быть простым для понимания, привычным с точки зрения обычного десктопного использования программы Oracle VirtualBox, обеспечивать ему возможность увидеть результат вносимых изменений в реальном времени, показывать состояние виртуальных машин, создавать, удалять машины, осуществлять настройки виртуальной сетевой инфраструктуры, предоставлять доступ только к своим виртуальным машинам.
На сайте Oracle имеется уже упомянутое выше решение, называемое phpVirtualBox. Эта программа обладает практически всеми основными возможностями, такими как создание виртуальных машин, работа с так называемыми снапшо-тами (от англ. snapshot — снимок), удаление виртуальных машин, создание виртуальных сетей и их конфигурирование. Однако phpVirtualBox имеет некоторые ограничения:
1) не позволяет назначать права на виртуальные машины (предоставление доступа разработчиками по списку только к своим машинам);
2) не позволяет управлять несколькими физическими серверами из одной панели управления;
3) не отображает статистику по нагрузке сервера;
4) создается сторонними разработчиками, не имеющими отношения к Oracle VirtualBox, из-за чего вызывает опасения по прекращению ее развития.
Поэтому была поставлена задача сделать собственное решение. Для реализации интерфейса был выбран язык PHP, который является популярным универсальным языком сценариев и ориентирован на использование в веб-разработке. Связь с системным окружением (backend) реализована с помощью скриптов на bash — скрип-товом языке командного процессора системы, выступающей в роли сервера. Помимо термина backend существует еще термин (и понятие) frontend — т. е. та часть клиентского приложения, через которую пользователь взаимодействует с серверной частью программы.
Для системы GNU/Linux, на которой должны запускаться виртуальные машины, наиболее распространенным решением передать окно программы, запущенной на другом компьютере, является
возможность подключения к удаленному рабочему столу посредством системы управления удаленными подключениями VNC. Другое решение является модификацией протокола RDP — протокол VRDP (VirtualBox Remote Display Protocol). Это собственная разработка компании Oracle и ею поддерживаемая, что очень важно. Чтобы запустить машину посредством данного протокола, необходимо дополнительно установить соответствующее расширение. В поставляемом с VirtualBox пакете существует предустановленный генератор интерфейса — VirtualBox Remote Desktop Extension (VRDE), и им можно воспользоваться.
Не все знают, но сама программа VirtualBox имеет достаточно мощный интерфейс командной строки. И с помощью специальной утилиты vboxmanage в консоли можно задать параметры для VRDE, главным образом определяя, на каком ip и по какому порту будет работать данный интерфейс. Соответственно, на одном порте может быть запущен только один интерфейс, поэтому при создании виртуальных машин данный параметр можно изменять, просто инкрементируя номер порта, избегая таким образом возможности попыток запустить виртуальные машины на одном и том же порту, что могло бы привести к коллизиям.
Кроме работы интерфейса необходимо реализовать сетевую структуру. Для распределения запросов и достижения максимальной скорости загрузки страниц используется связка веб-серверов Nginx и Apache. Рассмотрим их подробнее. Nginx — это http-сервер и обратный прокси-сервер, почтовый прокси-сервер, а также TCP/UDP прокси-сервер общего назначения. Обслуживает множество высоко-нагруженных сайтов. Основным преимуществом данного веб-сервера является работа со статическим контентом, использование различных решений кэширования, отказоустойчивость, сжатие и поддержка SSL. Он отлично подходит для кластерного использования и задействован нами в связке для отдачи статического контента; для отдачи динамического контента использован веб-сервер Apache, основными преимуществами которого являются надежность и гибкость конфигурации, причем он тоже имеет открытый исходный код. Практически все параметры могут быть изменены через конфигурационные файлы. Для работы со статическим контентом данный веб-сервер не подходит потому, что ему необходимо создавать отдельный процесс для загрузки статики, что существенно влияет на скорость загрузки страниц.
Реализация кластерной технологии для VirtualBox
Работа программы VirtualBox в кластерной системе компанией Oracle не реализована и готовых решений от других компаний и разработчи-
ков нет, поэтому существует возможность организовать данную систему самостоятельно. Главным аргументом за использование кластерных технологий при построении рассматриваемой системы для удаленной работы с виртуальными машинами и сетями из таких виртуальных машин является не столько надежность, сколько производительность, желание предоставить пользователям приемлемое время реакции на действия со своими виртуальными машинами. Если собрать в кластер несколько серверов с Oracle VirtualBox, то для пользователей, которые создают и запускают по одной виртуальной машине, желательно равномерно загружать узлы такого кластера. И здесь разумным может быть простейшее решение: использовать алгоритм Round Robin для выбора узла кластера при появлении очередного запроса со стороны множества пользователей на создание виртуальной машины. В дальнейшем пользователь должен будет подключаться либо к тому узлу, где работает его виртуальная машина, либо, возможно, даже к другому узлу, если его машина сейчас остановлена. Для этого виртуальные машины после остановки должны храниться на общем сетевом устройстве (Storage Area Network). Кстати, размещение снимков виртуальных машин не на локальных устройствах внешней памяти узла, а на сетевых устройствах позволяет существенно повысить отказоустойчивость системы.
Если же пользователь создает несколько виртуальных машин и связывает их посредством виртуальных сетей, то более разумным будет разместить вторую и последующие машины на том же узле кластера, где была запущена первая машина этого пользователя. Это объясняется упрощением организации обмена данными по виртуальным сетям и существенно большими скоростями таких обменов (они будут осуществляться внутри одного компьютера, т. е. через оперативную память). Алгоритм Round Robin в этом варианте не подходит, так как в итоге приводит к неравномерной загрузке узлов кластера. Целесообразно для назначения узла оценивать его свободные ресурсы, причем закрепление выделенного узла за пользователем должно быть только до тех пор, пока на этом узле работает хотя бы одна из его виртуальных машин. Если пользователь завершил работу со своими машинами и все они перешли в выключенное состояние, то в случае размещения файлов этих машин на общем сетевом ресурсе следующий сеанс работы с машинами может быть организован и на другом узле.
Схема построенного кластера приведена на рисунке.
На этой схеме узлы кластера имеют IP-адреса из внутренних сетей 10.22.7.0/24 и 10.0.0.0/24. По первой сети кластер связан с сервером, на ко-
те
Local
10.0.0.4 10.22.7.4
NetGear 3200 Cluster
Схема созданной кластерной системы для удаленной работы с виртуальными машинами
тором установлена система дистанционного обучения Moodle и который, помимо всего прочего, выступает в роли прокси-сервера. На этом сервере расположено несколько учебных курсов, в рамках которых студенты могут выполнять лабораторные работы с виртуальными машинами. Этот сервер имеет выход в Интернет через вторую сетевую карту. И именно с него уходят запросы студентов на создание и запуск виртуальных машин, которые работают уже на узлах кластера. Доступ к кластеру возможен и из локальной сети (с компьютеров дисплейного класса). Узлы кластера с именами Server 1, Server 2, Server 3, сетевое хранилище NetGear Ready NAS 3200, источники бесперебойного питания и коммутаторы Switch 2 и Switch 3 расположены в серверном шкафу. Коммутатор Switch 3 работает в кластерной сети 10.0.0.0/24. Коммутаторы Switch 2 и Switch 3 работают на скорости 1 Гбит/с, а коммутатор Switch 1 имеет только два порта, которые работают на такой скорости; к этим портам подключен сервер с системой Moodle и коммутатор Switch 2. Клиентские компьютеры дисплейного класса подключены к сети 10.22.7.0/24 на скорости 100 Мбит/с. На всех компьютерах дисплейного класса установлена операционная система GNU/Linux, и на этих системах имеется програм-
ма Oracle VirtualBox и браузер Mozilla Firefox, с помощью которого можно выйти на веб-сервер с учебными курсами, которые функционируют в Moodle.
Адрес 10.22.7.4/24 присвоен сетевому хранилищу NetGear 3200, на котором создан RAID-6X массив из семи жестких дисков и установлен протокол iSCSI. Это хранилище имеет связи с узлами кластера по вспомогательной сети 10.0.0.0/24. Одновременно оно подключено к сети 10.22.7.0/24, но уже как NAS; на нем хранятся доступные по сети файлы, прежде всего — общие.
Заключение
Описанная система уже апробирована на занятиях по дисциплинам «Корпоративные сети со службой каталога» и «Администрирование информационных систем». Она доказала свою работоспособность, и в настоящее время на ней проводятся дальнейшие исследования в целях разработки более эффективного алгоритма распределения нагрузки на узлы кластера. Анализ загрузки и скорости работы с машинами показывает, что имеет смысл все виртуальные машины студента (пользователя) размещать на одном и том же узле, а перемещать их на другой узел кластера разумно только при условии, что один из узлов кластера совсем не загружен, в то время как на других работает большое количество виртуальных машин.
Литература
1. Балберин В. В., Гордеев А. В. Концепция организации технологий виртуализации для использования в учебном процессе // Информационно-управляющие системы. 2013. № 1. С. 80-84.
2. Виртуализация// Википедия. https://ru.wikipedia. org/wiki/% D0% 92% D0%B8% D1%80% D1% 82% D1 % 83% D0%B0% D0%BB% D0%B8% D0%B7%D0%B 0%D1%86%D0%B8%D1%8F#.D0.92.D0.B8.D0.B4. D1.8B_.D0.B2.D0.B8.D1.80.D1.82.D1.83.D0.B0. D0.BB.D0.B8.D0.B7.D0.B0.D1.86.D0.B8.D0.B8 (дата обращения: 05.07.2016).
3. Зацаринная Ю. Н., Староверова Н. А. Виртуализация и виртуальные машины в подготовке современных IT-специалистов // Вестник технологического университета. 2015. Т. 18. № 9. С. 247-250.
4. Козлов А. Виртуализация компьютера. http:// antonkozlov.ru/kompyuternye-programmy/ virtualnaya-mashina-i-virtualizaciya.html (дата обращения: 03.02.2017).
5. Oracle VM VirtualBox. http://www.oracle.com/tech-network/ru/servers-storage/virtualbox/overview/ index.html (дата обращения: 01.02.2017).
6. Oracle VirtualBox. https://www.virtualbox.org/ wiki/Documentation (дата обращения: 03.02.2017).
UDC 004; 621.398; 681.5;681.324:681.3.001.57 doi:10.15217/issn1684-8853.2017.2.96
Organization of Remote Work of Students with their Virtual Machines
Gordeyev A. V.a, Dr. Sc., Tech., Professor, [email protected]
aSaint-Petersburg State University of Aerospace Instrumentation, 67, B. Morskaia St., 190000, Saint-Petersburg, Russian Federation
Introduction: When studying a range of computer science disciplines, students often must have administrative privileges on their computers, and it is often advisable to use virtualization technology. Purpose: Students should be provided by remote access to multiple virtual machines and networks. Results: On the base of desktop Oracle VirtualBox software used as a server and operated on a cluster specially created for this purpose, a remote access system has been created which is characterized by simplicity, availability, resistance to stress, scalability, flexibility, reliability and security. It can be interfaced with Moodle distance learning system which is the base for developing curriculums assuming the usage of Oracle VM VirtualBox. Such curriculums are being developed in the department of computer systems and networks of the State University of Aerospace Instrumentation. Practical relevance: The system allows you to work with virtual machines from any device which has a web browser and provides the user with a graphical interface. Keywords — Virtual Machines, Remote Access, VirtualBox, Cluster.
References
1. Balberin V. V., Gordeev A. V. Organization Concepts of Virtualization Technologies for the Academic Process. Informatsionno-upravliaiushchie sistemy [Information and Control Systems], 2013, no. 1, pp. 80-84 (In Russian).
2. Virtualization. Available at: http://en.wikipedia.org/wiki/ Virtualization (accessed 5 July 2016).
3. Zatsarinnaia Y. N., Staroverova N. A. Virtualization and Virtual Machines in the Training of Today's IT Professionals. Vestnik tekhnologicheskogo universiteta, 2015, vol. 18, no. 9, pp. 247-250 (In Russian).
4. Kozlov A. Virtualizatsiia komp'iutera [Computer Virtualization]. Available at: http://antonkozlov.ru/kompyuternye-programmy/virtualnaya-mashina-i-virtualizaciya.html (accessed 3 February 2017).
5. Oracle VM VirtualBox. Available at: http://www.oracle. com/technetwork/ru/ servers-storage/virtualbox/overview/ index.html (accessed 1 February 2017).
6. Oracle VirtualBox. Available at: https://www.virtualbox. org/wiki/Documentation (accessed 3 February 2017).