ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ И ОБРАЗОВАНИЕ
УДК 681.324:681.3.001.57
КОНЦЕПЦИЯ ОРГАНИЗАЦИИ ТЕХНОЛОГИЙ ВИРТУАЛИЗАЦИИ ДЛЯ ИСПОЛЬЗОВАНИЯ В УЧЕБНОМ ПРОЦЕССЕ
A. В. Гордеев,
доктор техн. наук, профессор
B. В. Балберин,
канд. техн. наук, доцент Санкт-Петербургский государственный университет аэрокосмического приборостроения
Излагается подход к организации работы с множеством виртуальных машин, которые создаются и запускаются студентами для выполнения различных заданий при изучении ряда дисциплин, связанных с системным программным обеспечением и сетевыми технологиями. Обосновывается выбор программных средств, предоставляющих возможность запускать одновременно большое количество виртуальных машин при наличии относительно небольших ресурсов. Описывается одна из возможных конфигураций, созданная и используемая на кафедре вычислительных систем и сетей ГУАП.
Ключевые слова — виртуальные машины, облачные вычисления, системное программное обеспечение, обучение, удаленный доступ, создание и администрирование вычислительных сетей.
Введение
При подготовке специалистов по информатике и вычислительной технике для ряда дисциплин учебного плана необходимо предоставить студентам права администратора системы. Разумным решением является использование технологий виртуализации. При этом желательно предоставить возможность запуска как локально установленных, так и размещенных на сервере виртуальных машин. Последнее особо важно потому, что это продвигает нас по пути к освоению облачных технологий. Предлагаемая работа посвящена описанию подхода к созданию облака, в котором выполнялось бы большое количество разных виртуальных машин для множества обучаемых.
Обоснование необходимости использовать виртуальные машины и имеющиеся программные средства
При изучении многих дисциплин, входящих в подготовку бакалавров и магистров по направлению «Информатика и вычислительная техника», студентам достаточно предоставить компьютер с установленным программным обеспечением (ПО), которое необходимо для той или иной дисциплины. Это могут быть дисциплины, связанные с программированием, машинной графикой,
моделированием, численными расчетами, базами данных и др. Что касается прав пользователя, то это в большинстве случаев могут быть права обычного пользователя. Если же приложение для своей нормальной работы требует от пользователя больше прав (привилегий), то можно либо изменить настройки реестра, либо воспользоваться иным приложением. Однако есть целый ряд дисциплин, где студенту для выполнения определенных действий нужны совсем другие права — права администратора (суперпользователя). К таким дисциплинам можно отнести, например, «Операционные системы», «Сети ЭВМ и телекоммуникации», «Вычислительные системы», «Администрирование информационных систем», «Распределенные вычисления на сетях», «Корпоративные сети», «Сети ЭВМ со службой каталога» и некоторые другие. Это в основном дисциплины, в которых изучается системное ПО. Причем некоторые из этих дисциплин предполагают, что студент должен иметь возможность настраивать (конфигурировать) не один, а сразу несколько компьютеров. Предоставить такие ресурсы каждому при большом количестве студентов нереально. Поэтому вполне разумным представляется использовать для этих задач виртуальные машины, благо в настоящее время имеется достаточное количество программ, которые позволяют их создавать, редактировать и запускать [1].
Очевидно, что в процессе обучения ошибки — это норма, а не исключение. Виртуальные машины удобны не только тем, что в случае неверных действий студент легко может перезапустить свою машину или взять новую. Ведь виртуальная машина представляется всего лишь набором файлов. Они позволяют существенно снизить затраты на организацию учебного процесса, сделать его более эффективным. Процесс использования виртуальных машин начался в конце прошлого века, по этому пути пошли во многих учебных заведениях. Более того, в настоящее время наблюдается тенденция не просто использования виртуальных машин, а переноса их в так называемые облака, когда пользователю посредством современных сетевых технологий предоставляются необходимые вычислительные и информационные ресурсы, и он взаимодействует с нужными ему программами, которые могут выполняться далеко от него. Пользователя очень часто интересует, прежде всего, возможность выполнить нужные ему вычисления и быть спокойным за доступность и сохранность своих данных. Речь идет об организации и использовании виртуальных облачных вычислений [2]. Очевидно, что этот ресурс можно и нужно применять в том числе и в учебном процессе.
Виртуальные машины удобны тем, что преподаватель может подготовить различные варианты машин, содержащие в себе те или иные задания. Например, это могут быть виртуальные машины с ошибками в конфигурации, которые нужно найти и исправить. Или машины, на которые предустановлено необходимое (специфическое) ПО, с которым нужно проделать те или иные работы. И каждый студент может проделать необходимые действия без опасения испортить работу собственно компьютера или работу другого студента.
Особую значимость виртуальные машины приобретают при желании предоставить студентам необходимые ресурсы не локально, а удаленно — посредством современных интернет-технологий. Иногда желательно, чтобы студент имел возможность запускать виртуальные машины, не находясь непосредственно в компьютерном классе. При этом студентов может быть много, и они не должны мешать друг другу, их работа должна быть удобной, не требовать больших ресурсов, и этой работой нужно иметь возможность легко управлять. То есть речь идет о переносе виртуальных машин в облачную среду [3].
Даже в рамках одной дисциплины, связанной с И-технологиями, необходимо иметь возможность виртуализации очень широкого спектра задач. В настоящее время имеется несколько достаточно эффективных технологий виртуализации.
Они имеют разную эффективность или направленность. Причем есть проприетарные, а есть и открытые. Первые, порой хоть и обладают масштабируемостью и у них имеются большие возможности, не только дороги, но и закрыты, что уже само по себе плохо. В частности, их трудно изучать и практически невозможно развивать. А вторые — открытые — пока еще требуют немалого труда тех, кто пытается их использовать и развивать. Зато есть возможность организовать выполнение виртуальных машин на имеющихся достаточно скромных ресурсах, которые столь характерны для учебных заведений. Кроме того, мы считаем принципиально важным в учебном процессе ориентироваться именно на открытые технологии, поскольку тогда их могут изучать сами студенты, а иногда и вносить свой посильный вклад в их развитие.
К сожалению, из-за специфики учебного процесса одна отдельно взятая система виртуализации не может решить все задачи. Поэтому целесообразно использовать несколько технологий и даже комбинировать их [4]. Для решения самой простой из названных задач достаточно иметь не самый сильный компьютер, на котором можно будет запускать виртуальную машину. Одной из наиболее подходящих для этой цели является программа Oracle VM VirtualBox. Она работает на компьютерах с архитектурой ia32 и ее 64-битовых расширениях от AMD и Intel и прекрасно виртуализирует такие машины. За использование Oracle VM VirtualBox на рабочем месте говорят следующие обстоятельства:
1) удобный интерфейс, рассчитанный на неподготовленного пользователя;
2) большой набор виртуализируемых устройств, очень полезный в учебном процессе;
3) простой и удобный экспорт и импорт образов виртуальных машин;
4) простой и удобный механизм создания «снимков» (snapshot) состояния виртуальной машины, что очень помогает при проведении экспериментов;
5) кроссплатформенность. Oracle VM VirtualBox работает на большом количестве 32- и 64-битных операционных систем. Эту программу студенты часто устанавливают на свои персональные компьютеры и ноутбуки.
Однако при запуске нескольких виртуальных машин на одном компьютере (например, при изучении вычислительных сетей, кластеров, администрирования различных корпоративных сетей) можно столкнуться с нехваткой ресурсов, которыми обладает компьютер. Причем значительными ресурсами тогда должны быть обеспечены все рабочие места в компьютерном классе. Поэтому для работы сразу с несколькими вирту-
альными машинами можно либо запускать их на мощном сервере и использовать режим терминального сервера для работы с ними, либо часть виртуальных машин по-прежнему запускать на локальном компьютере, а остальную часть — на сервере, связывая вместе свои виртуальные машины посредством сетевых технологий (создавая виртуальные сети).
При потреблении ресурсов сервера для запуска виртуальных машин для удаленных пользователей использовать программу Oracle VM VirtualBox хоть и можно, но считать это удачным решением нельзя. Эта программа требует достаточно больших вычислительных ресурсов, и для разделения виртуальных сетей одного пользователя от виртуальных сетей другого пользователя нужны организационные решения, связанные с именованием этих сетей для их изоляции друг от друга. Для запуска каждой отдельной виртуальной машины на сервере нужно выделить для нее все необходимые ресурсы, и прежде всего — оперативную память, при том, что эти машины могут быть однотипными и желательно было бы организовать реентерабельную работу кода запускаемых операционных систем. Поэтому при выборе в качестве серверной операционной системы GNU/ Linux более приемлемым представляется использование технологии KVM или еще лучше LXC (Linux-container), поскольку современные процессоры поддерживают аппаратные средства виртуализации. LXC — это система виртуализации на уровне операционной системы, которая позволяет запускать одновременно несколько изолированных экземпляров операционной системы Linux, но при этом использовать один экземпляр ядра этой операционной системы, создавая собственное виртуальное окружение и стеки для каждой машины.
Для построения серверной части системы виртуализации нами были использованы именно эти технологии — KVM и LXC. Их выбор объясняется следующим. Поскольку в качестве хост-системы мы используем ОС Oracle Linux 6.х, то от технологии Xen приходится отказаться, так как ядро Oracle Linux 6.х оптимизировано для запуска KVM и LXC. Компания Oracle хоть и является одним из главных поставщиков проприетарных технологий, но, унаследовав информационные технологии от компании Sun Microsystem, она поддерживает открытые проекты. Поэтому мы считаем разумным использовать возможности, заложенные в упомянутую операционную систему, и соответствующие технологии по созданию облачных вычислений на базе этой платформы, которые поддерживает Oracle.
С одной стороны, технология LXC обеспечивает наименьшие затраты на создание виртуально-
го окружения. Данная технология позволяет использовать основное ядро операционной системы для запуска виртуального окружения. Кроме того, «контейнер» тоже выполняет ПО основной (host) системы. В целом ряде случаев привлекателен режим запуска отдельных программ и служб в так называемой «песочнице». Этот режим вообще не требует установки ПО внутри контейнера.
С другой стороны, при использовании Linux-контейнеров невозможно решить целый ряд задач по виртуализации вычислительных сетей и оборудования. От перечисленных недостатков свободна технология KVM, но она требует несколько больших ресурсов для создания виртуального окружения.
Программное обеспечение KVM состоит из загружаемого модуля ядра, предоставляющего базовый сервис виртуализации, процессорно-специфического загружаемого модуля и компонентов пользовательского режима (модифицированного QEMU). Правда, для создания виртуальных машин и внесения изменений в их конфигурации необходимы права суперпользователя, что нельзя делать по соображениям безопасности. Другими словами, студенты должны всего лишь работать со своими виртуальными машинами (на правах суперпользователя), а готовить эти машины для запуска и запускать их должен преподаватель или его ассистент.
Таким образом, изложенные технологии виртуализации при использовании их в учебном процессе позволяют нам получить следующие преимущества:
1) повышение интенсивности использования оборудования;
2) удешевление за счет сокращения покупаемой техники;
3) сокращение затрат на обслуживание;
4) сокращение затрат на восстановление;
5) простота администрирования;
6) сокращение времени на развертывание приложений;
7) возможность гибкого развертывания приложений;
8) устранение проблем совместимости приложений.
Вариант построения системы виртуализации для организации облака
В качестве пилотной площадки мы использовали две лаборатории кафедры вычислительных систем и сетей Санкт-Петербургского государственного университета аэрокосмического приборостроения (ГУАП) — сетевых технологий и открытых информационных технологий, которые соединены вместе посредством технологий
С Интернет)0=>
С Интернет)с=:>
Рабочая станция № І
Рабочая станция № 12
а Рабочая
Сервер № 2 с асс л станция № І
к ь Рабочая
т станция № І2
NAS/SAN Се
■ Рис. 1. Структура сети, выступившей основой для создания облака
VLAN. Схема этой площадки представлена на рис. І.
В роли серверной операционной системы (ОС) используется Oracle Linux 6.3. На базе данной ОС сконфигурирован типовой сервер, обеспечивающий работу следующих служб (протоколов): І) SSH;
2) DNS; 3) NFS; 4) TFTP; 5) BOOTP; 6) DHCP;
7) HTTP; 8) SMTP; 9) POP, IMAP.
Для запуска виртуальных машин на серверах были установлены и настроены:
1) оригинальное ядро Oracle, поддерживающее одновременно две системы виртуализации — KVM и LXC;
2) кроссплатформенная библиотека управления виртуализацией LIBVIRT;
3) ^стема эмуляции компьютера QEMU-KVM;
4) GUI для создания и управления виртуальными машинами VIRT-MANAGER;
5) Web-интерфейс для создания и управления виртуальными машинами CLOUDMIN.
Это ПО, предназначенное для запуска виртуальных машин, можно представить следующим образом (рис. 2).
Рабочие станции имеют следующее ПО (рис. 3):
1) ядро ОС Oracle Linux 6.3 с LXC;
2) кроссплатформенную библиотеку управления виртуализацией LIBVIRT;
3) клиента системы доступа к виртуальным машинам VIRT-VIEWER;
4) систему виртуализации VirtualBox;
5) SSH-клиента.
С целью сократить расходы на поддержание учебного класса большое значение приобретает технология подготовки и сопровождения компьютеров учебного класса. Рабочие станции в классе имеют несколько режимов загрузки:
1) обычная загрузка с локального носителя (HDD, DVD, USB);
2) сетевая загрузка (PXE);
3) сетевая загрузка (iSCSI).
При обычной загрузке на рабочих местах используется ОС Oracle Linux 6.х. На рабочих станциях локально установлена система виртуализации Oracle VM VirtualBox с возможностью использовать сетевые образы виртуальных машин следующими способами:
1) клонированием из репозитория;
2) удаленным запуском с помощью сетевой файловой системы NFS.
При этом на рабочих станциях настроено несколько клиентов удаленного доступа:
1) классический удаленный доступ к X-клиенту (позволяет запускать любое графическое приложение);
2) клиент VNC;
3) клиент SPICE (удаленный доступ к виртуальным машинам);
4) клиент RDP (удаленный доступ к виртуальным машинам MS Windows по протоколу RDP).
Для работы с сервером на рабочих станциях установлен и настроен клиент для удаленного доступа к виртуальным машинам VIRT-VIEWER, позволяющий создавать, изменять и использовать виртуальные машины на сервере с помощью
Oracle Linux 6.x
Oracle Linux 6.x
Образы виртуальных машин
DHCP
Образы виртуальных машин
LIBVIRT
KVM
LXC
DNS
LIBVIRT
LXC
VIRT-VIEWER
SQUID
VIRT-VIEWER
■ Рис. 2. Основное ПО на серверах виртуализации
■ Рис. 3. ПО виртуализации на клиентских станциях
№ 1, 2013
йй^ 83
GUI. Те же задачи можно выполнять с помощью Web-интерфейса CLOUDMIN или из командной строки с помощью SSH (VIRTSH).
При этом для изучения системного ПО используются следующие схемы (режимы работы):
1) виртуальный «тонкий клиент». Удаленная загрузка виртуальной ОС на бездисковую рабочую станцию;
2) терминальный доступ к виртуальной ОС;
3) создание и (или) запуск локальных виртуальных машин с помощью образов, хранящихся локально;
4) запуск локальных виртуальных машин с помощью образов, хранящихся на сетевом хранилище;
5) создание студентами своих виртуальных машин из дистрибутивов и запуск их на локальных машинах или на сервере.
Заключение
Ресурсоемкая технология запуска и поддержки большого количества виртуальных машин может быть решена переносом большой части из них на сервер или кластер. Правильный выбор
специального системного ПО для работы с виртуальными машинами может существенно снизить нагрузку на сервер. Целесообразно ориентироваться на открытые технологии, поскольку это дает больше гибкости и позволяет вовлечь студентов в их освоение и развитие.
Литература
1. Гордеев А. В. Виртуальные машины и сети // Ин-формационно-управляющие системы. 2006. № 2(2І). С. 2І-26.
2. Черняк М. Эпоха великого переселения ИТ // Открытые системы. 20І2. № 0І. http://www.osp.ru/ os/2012/01/13012622/ (дата обращения: 24.ІІ.20І2).
3. Облака: три источника и три составных части // Открытые системы. 20І0. № 0І. http://www.osp.ru/ os/20І0/0І/І3000672/ (дата обращения: 24.ІІ.20І2).
4. Николаев А., Тормасов А. Современная виртуализация // Открытые системы. 2007. № 02. http:// www.osp.ru/os/2007/02/4W8084/ (дата обращения: 24.ІІ.20І2).