УДК 004.623
Ю. Н. Зацаринная, Н. А. Староверова
ВИРТУАЛИЗАЦИЯ И ВИРТУАЛЬНЫЕ МАШИНЫ В ПОДГОТОВКЕ СОВРЕМЕННЫХ 1Т СПЕЦИАЛИСТОВ
Ключевые слова: виртуализация, виртуальные машины.
Виртуализация — современная развивающаяся технология, которая позволяет нам разделить программное обеспечение и нижележащую аппаратную часть. Одно из интересных и популярных направлений в данной технологии - это виртуальные машины, которые являются изолированным программным контейнером, способным выполнять собственную операционную систему и приложения, как реальный физический компьютер. Виртуальная машина в принципе работает так же, как физический компьютер, и содержит собственные центральный процессор, оперативное запоминающее устройство, жесткий диск и сетевую интерфейсную карту, но только они программные (виртуальные) [1]. Данное направление позволяет расширить возможности обучения и организации исследовательской работы в подготовке современных специалистов.
Keywords: virtualization, virtual machines
The article discusses the concept of virtualization, as well as the main products of this technology. Conducted a comparison of virtual machines. And also shows how this trend allows you to enhance your learning and the organization of research in the training of modern specialists.
При подготовке специалистов любой специальности, часто возникает проблема ресурсов, которые можно использовать на практических занятиях. Если же мы готовим 1Т специалистов, очень важно, чтобы они имели возможность познакомиться с различными архитектурами компьютеров, с разнообразным программным обеспечением, с настройкой сетей, с разработкой программного обеспечения для различных платформ и т. д. Далеко не всё мы можем обеспечить на уровне реальных машин, кроме того мы понимаем, что та же самая настройка системы и последующая её проверка на устойчивость и безопасность могут привести к дальнейшей её непригодности для учебного процесса других групп. В решении этого вопроса нам и может помочь вируализация. То есть использование виртуальных машин и серверов, которые заменят «реальное железо» и позволят студентам получить все необходимые навыки не нанося ущерб кафедральному оборудованию [2,3].
Виртуализация в настоящее время продолжает оставаться развивающейся технологией. В общем представлении, виртуализация отделяет программное обеспечение от аппаратной инфраструктуры и практически разрывает связь между определенным набором программ и конкретным компьютером [4].
Благодаря виртуализации у нас появилась возможность на одном компьютере выполнять работу нескольких «машин», благодаря распределению его ресурсов по нескольким средам. Используя виртуальный сервер можно разместить несколько операционных систем и несколько приложений в едином местоположении, в т. ч. удаленно. В этом случае, у нас пропадают физические и географические ограничения. Кроме энергосбережения и сокращения материальных расходов, благодаря более эффективному использованию аппаратных ресурсов, виртуальная
инфраструктура повышает уровень доступности ресурсов, увеличивает эффективность системы управления сервером, повышает безопасность и совершенствует систему восстановления в критических ситуациях.
В настоящее время вы не найдёте какой-то единой классификации виртуальных систем, в различных источниках можно встретить разные подходы к классификации. Два основных направления, которые можно выделить — это аппаратная и программная вируализации [4,5].
Аппаратная виртуализация (аппаратная поддержка виртуализации) - единое название разработок AMD и Intel направленных на улучшение производительности процессора для задач виртуализации. В режиме поддержки виртуализации запускается специальное
программное обеспечение, являющееся
«легковесной» прослойкой между гостевыми операционными системами и оборудованием -монитор виртуальных машин или по-другому гипервизор.
Понятие "монитор виртуальных машин" (МВМ) появилось в конце 60-х годов как программный уровень абстракции, разделявший аппаратную платформу на несколько виртуальных машин. Каждая из этих виртуальных машин (ВМ) была настолько похожа на базовую физическую машину, что существующее программное обеспечение могло выполняться на ней в неизменном виде. Это было время, когда вычислительные задачи на дорогих мэйнфреймах (типа IBM/360), и поэтому пользователи не могли не оценить способность МВМ распределять дефицитные тогда ресурсы среди нескольких приложений [4,5].
Итак, монитор виртуальных машин отделяя программное обеспечение от оборудования, формирует промежуточный уровень между программным обеспечением, которое выполняется
виртуальными машинами, и аппаратными средствами. Этот уровень позволяет монитору виртуальных машин полностью контролировать использование аппаратных ресурсов гостевыми операционными системами, которые могут выполняться на виртуальных машинах. Интерфейс МВМ частично или полностью повторяет интерфейс виртуализуемой системы, и поэтому, программное обеспечение не может определить наличие гипервизора. В настоящее время монитор виртуальных машин вновь в центре внимания. Многие корпорации, в числе которых Intel, AMD, Sun Microsystems и IBM создают стратегии виртуализации, а в научных лабораториях и университетах для решения проблем мобильности, обеспечения безопасности и управляемости развиваются подходы, основанные на виртуальных машинах. Поэтому виртуализация становится направлением, которому необходимо уделять особое внимание в процессе обучения современных специалистов и вводить учебные дисциплины и лабораторные практикумы, которые познакомят наших будущих специалистов с продуктами данного направления.
Несмотря на некоторый предшествующий период забвения, в 90-е годы исследователи из Стэндфордского университета стали рассматривать возможность применения ВМ для преодоления ограничений оборудования и операционных систем. Эта проблема возникла у компьютеров с массовой параллельной обработкой (Massively Parallel Processing, MPP), которые плохо поддавались программированию и поэтому не могли выполнять имеющиеся операционные системы. И вот тогда исследователи обнаружили, что используя виртуальные машины можно сделать эту неудобную архитектуру похожей на существующие платформы, и в дальнейшем использовать преимущества готовых операционных систем. В дальнейшем из этого проекта вышли люди и идеи, которые стали золотым фондом компании VMware, первого поставщика МВМ для компьютеров массового применения [5].
В качестве примера можно привести технологии Intel VT-X, VT-D и AMDV, используя их, монитор виртуальных машин способен передавать управление физическими устройствами непосредственно виртуальной машине.
Второе направление — это программная виртуализация именно она является тем, что обычно подразумевают, когда говорят о виртуализации, и при этом представляют типичную виртуальную машину [6]. Но даже данный вид виртуализации мы можем разделить на следующие уровни: серверная виртуализация; паравиртуализация; виртуализация уровня операционной системы; виртуализация ресурсов; виртуализация прикладных приложений.
Рассмотрим понятие виртуальной машины, это программная или аппаратная среда, исполняющая некоторый код (например, байт-код, шитый код, p-код или машинный код реального процессора), или спецификация такой системы (например: «виртуальная машина языка
программирования Си») [6,7].
Для сравнения приведем несколько других определенней, а именно: Виртуальная машина - это полностью изолированный программный контейнер, способный выполнять собственную операционную систему и приложения, как физический компьютер. Виртуальная машина работает абсолютно так же, как физический компьютер, и содержит собственные виртуальные (т.е. программные) ЦП, ОЗУ, жесткий диск и сетевую интерфейсную карту (NIC) [1].
Или по другому, виртуальная машина - это программа, которую вы запускаете из своей операционной системы. Программа эмулирует реальную машину. На виртуальные машины, как и на реальные, можно ставить операционные системы. У неё есть BIOS, отведенное место на вашем жестком диске, сетевые адаптеры для соединения с реальной машиной, сетевыми ресурсами или другими виртуальными машинами.
Чем же важны для нас виртуальные машины? Во-первых, повышение изоляции, то есть ограничение одной или группы тесно связанных служб собственной виртуальной машиной, кроме того снижение вероятности сбоев от взаимного влияния программ. Во-вторых, безопасность, например, можно распределить задачи администрирования и ограничить права каждого администратора только самыми необходимыми, так же снижается вероятность потенциально вредных последствий взлома какой-либо из служб. В-третьих, распределение ресурсов — каждая машина получает столько ресурсов, сколько ей необходимо, но не более того (приоритезация задач, выделение памяти по требованию, гибкое распределение сетевого трафика между машинами, распределение дисковых ресурсов).
В настоящее время можно встретить достаточно много разработок виртуальных машин. Рассмотрим несколько примеров и оценим их возможности применения в процессе обучения. Программный пакет виртуализации для компании Microsoft, разработанный, прежде всего, для операционной системы Windows, Virtual PC, а также до некоторого времени программа эмуляции для Mac OS. Данная программа была создана в 1997 году компанией Connectix первоначально для операционной системы Mac OS на платформе PowerPC Macintosh. А через 5 лет в 2001 году была выпущена версия 4.0 для Windows. Connectix поставляла Virtual PC с различными гостевыми операционными системами, в том числе Linux и OS/2. В начале 2003 года права на Virtual PC и Virtual Server были выкуплены Microsoft. А летом 2006 года Microsoft выпустила бесплатную версию данного продукта под Windows. В августе 2006 года компания объявила, что версия для Mac OS не будет перенесена на новые Macintosh с процессорами Intel и, таким образом, развитие этой ветки продукта было прекращено. Мы можем применять Virtual PC до версии windows 7, но есть одно ограничение — это то, что данная машина поддерживает в качестве гостевых только иные версии windows и мы не
можем с помощью познакомиться с другими операционными системами. В настоящее время Virtual PC не совместима с Windows S, и в версии x64 заменена на Hyper-V.
Microsoft Hyper-V (кодовое имя Viridian), это система аппаратной виртуализации для x64-систем на основе гипервизора. Бета-версия Hyper-V была включена в x64-версии Windows Server 200S, а финальная версия (автоматически, через Windows Update) была выпущена 2б июня 200S. Ранее была известна как виртуализация Windows Server (Windows Server Virtualization).
Hyper-V существует в двух вариантах. Первый вариант — это отдельный продукт Microsoft Hyper-V Server. Существует три версии: Hyper-V Server 2012 R2 (текущая версия Hyper-V), Hyper-V Server 2012, Hyper-V Server 200S R2 и Hyper-V Server 200S. Первая версия была выпущена в октябре 200S года. Является базовым вариантом Windows Server 200S, то есть включает в себя полную функциональность Hyper-V, прочие роли Windows 200S Server отключены, также лимитированы службы Windows. Бесплатная б4-битная Core-версия Hyper-V ограничена интерфейсом командной строки, где конфигурация текущей ОС, физического аппаратного и программного оборудования выполняется при помощи команд оболочки. Новое меню интерфейса управления позволяет выполнить простую первичную конфигурацию, а некоторые свободно распространяемые скрипты расширяют данную концепцию[7]. Администрирование и
конфигурирование виртуального сервера (или гостевых ОС) осуществляется при помощи программного обеспечения, установленного на персональный компьютер под управлением Windows Vista, Windows 7 или Windows 200S Server с установленным дополнением для администрирования Hyper-V. И второй вариант как роль Windows Server 2012 R2, Windows Server 2012, Windows Server 200S R2, Windows Server 200S и x64 битная версия Windows S Pro. В случае Hyper-V мы уже не имеем проблем с подключением иных операционных систем, причём как на серверных машинах, так и на машинах-клиентах [6,7, S].
Наверное, самая популярная и признанная программа среди пользователей - это Virtual Box. Она позволяет создавать несколько виртуальных машин, реализовывать между ними сеть, и работает с USB портами. Virtual Box эмулирует вполне реальные комплектующие. Виртуальная видео карта поддерживает запуск 3D игр требующих Direct-X. В общем программу Virtual Box можно назвать вполне оптимальным решением, она бесплатна, переведена на русский язык и имеет версии как для Windows, так и для Linux. Хотя и считается иногда, что она в большей степени подходит просто для любителей, для тех, кто не планирует осуществлять какие-то серьёзные проекты, а просто хочет познакомиться с новым программным обеспечением или операционными системами.
Для профессиональных нужд обычно рекомендуется программа VMware Workstation. Она
больше предназначена для корпоративных пользователей. Но она не бесплатная. Если задачи достаточно сложные и с вполне конкретными требованиями то данная виртуальная машина работает быстрее всех, а так же поддерживает функция аппаратной виртуализации, такие как: Intel VT-x и AMD-V, а они очень сильно ускорят работу гостевой операционной системы. Эта программа для создания виртуальных машин является очень мощным и функциональным продуктом. У ней очень много настроек и различных функций, вплоть до удалённого доступа к рабочему столу на виртуальной машине. Эта машина была бы идеальна для учебного процесса, но главная сложность, которая может возникнуть — это необходимость приобретения лицензии.
Ещё один интересный продукт - это Parallels Desktop 4, программа больше знакома пользователям Mac OS, но существуют версии данной программы и для операционных систем Windows и Linux. Данная программа та же как и VMware Workstation больше предназначена для корпоративной среды, и является платной. Её достоинства — это отличная скорость, простота, продуманность и интуитивная понятность, но по сравнению с Virtual Box имеет небольшой выбор аппаратной части и не поддерживает 3D графику.
Ещё одна разработка, приложение QEMU -программа для эмулирования практически любой платформы, является приложением с открытым кодом. Полностью эмулирует персональный компьютер, помимо эмуляции процессора, QEMU даёт возможность эмулировать все необходимые подсистемы, например адаптеры и видеоплаты, а кроме того и более продвинутые вещи вроде симметричных многопроцессорных систем и другие процессорные архитектуры. По умолчанию содержится в репозитариях *nix подобных операционных систем [7].
Ещё один продукт программной виртуализации, распространяющийся с открытым исходным кодом, Xen - это монитор виртуальных машин с поддержкой паравиртуализации для процессоров х86 архитектуры. Данный гипервизор может организовать совместное безопасное исполнение несколькоих виртуальных машин на одной физической системе с производительностью близкой к реальной. В Xen кроме очень высокой производительности, близкой к производительности при непосредственном исполнении на железе, так же имеется поддержка до 32 виртуальных процессоров на одну гостевую машину, причем с возможность «горячего» добавления процессоров, так же поддержка различных платформ, поддержка аппаратной виртуализации для запуска не изменённых операционных систем и отличная поддержка оборудования. Это всё делает Xen программным продуктом корпоративного уровня [8].
Эмулятор для PC, создающий DOS-окружение, иногда необходимое для запуска старых программ и игр под MS-DOS, носит название DOSBox. Его можно использовать для запуска и
другого программного обеспечения для DOS, но такая возможность работает с ограничениями. Эмулятор имеет открытый исходный код и доступен для таких систем, как Linux, FreeBSD, Windows, OS X, iOS, OS/2, BeOS, KolibriOS, Symbian OS, QNX, Android.
Ещё одна свободная программа для эмуляции аппаратного обеспечения IBM PC - Bochs. Она включает в себя эмуляцию процессоров архитектуры x86, устройств ввода-вывода и возможность использовать различные BIOS и видеоадаптеры. Может эмулировать 386, 486, Pentium, Pentium Pro, AMD64 и другие x86-совместимые процессоры, поддерживает MMX, SSE, SSE2 и т.д. [6,7].
Очень радует достаточно большое количество продуктов с открытым кодом, это расширяет возможности подготовки специалистов, так как позволяет изучать и сравнивать достаточно много различных инструментов. Подготовка IT специалистов — это одно из важных направлений использования продуктов виртуализации., данные разработки позволяют студентам самостоятельно заниматься установкой программных продуктов, настройкой виртуальных сетей и серверов, выполнять задания на определение уязвимостей системы и многие другие. Таким образом возможности практических работ расширяются и появляется возможность не только передать студентам теоретические знания по многим вопросам, но и дать им практические навыки применения — этих знаний. Причем эти практические занятия могут быть наполнены исследовательскими заданиями, которые в других условиях вы бы не дали просто из опасения, что в дальнейшем придётся восстанавливать всю систему.
На основании данного обзора и теоретического исследования разрабатываются курсы «Компьютерные технологии моделирования и исследования процессов и систем» и «Компьютерные технологии моделирования и
исследования процессов и систем» для магистров направления 230100 «Информатика и информационные технологии» по программе обучения «Проектирование виртуального информационного пространства процессов и систем».
Литература
1. Шевчук Е.В., Трапезников Е.В. К вопросу о применении виртуальной машины на платформе VMWARE WORCSTATION в учебном процессе. (электронный ресурс) http://www.rusnauka.com/ 13_EISN_2012/Informatica/2_10 9205.doc.htm.
2. Заседова А.А., Гатина Г.Р. Вестник Казанского технологического университета. Т.17, №4 стр. 320 — 325. (2014)
3. Староверова Н.А. Вестник Казанского технологического университета. 2013., №9. С. 270-273 (2013)
4. INTUIT.ru: Курс: Современные операционные системы. (электронный ресурс )http://intuit.ru
5. Романова А.О. Виртуализация в высокопроизводительных вычислительных системах. Наука и образование. Эл. Научно-технические издания. http: //technomag.edu. Ru/ doc/168323.html
6. Мендель Розенблюм, Тэл Гарфинкель Мониторы виртуальных машин: современность и тенденции. -открытые системы. №05-06, 2005
7. Платонова С.М. уч. пособие по дисциплине «Администрирование вычислительных сетей» - Спб: НИУ ИТМО 2013 — 127с.
8. Windows Virtual PC. [электронный ресурс]/ режим доступа:http://www.microsoft.com/ru-u/Download/details.aspx?id=3702,свободный -загл.с экрана.
9. Эмуляция систем с помощью QEMU [электронный ресурс] режим доступа -http://www.ibm.com/developerworks/ru/library/l-qemu/index.html, свободный
10. Виртуализация vSphere, Hyper-V, XenServer и Red Hat [электронный ресурс] -http://www.vmgu.ru/search/XenServer, свободный
© Ю. Н. Зацаринная - канд. техн. наук, доц. каф. ЭС КГЭУ, zac_jul@mail.ru; Н. А. Староверова - канд. техн. наук, доц. каф. автоматизированных систем сбора и обработки информации КНИТУ, nata-staroverova@yandex.ru.
© J. N. Zacarina, candidate of technical Sciences,associate Professor of the Department of ES,Kazan State Energy University, zac_jul@mail.ru; N. A. Staroverova, candidate of technical Sciences, associate Professor, Department of automated systems of gathering and processing information, KNRTU, nata-staroverova@yandex.ru.