Виртуальные машины и их назначение

Что такое виртуализация

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

Представьте, что у вас есть компьютер на Windows, но вы хотите попробовать немного поработать в Linux — познакомиться с этой операционной системой и решить, стоит ли на неё переходить. Очевидный способ — скачать систему на флешку, загрузиться с неё и установить полноценный Linux на компьютер.

Но у такого подхода есть минус, покажем на примере:

  1. Вы установили Linux второй системой, чтобы, если что, — можно было перезагрузиться назад в Windows.
  2. Загрузились в Linux.
  3. Увидели, что всё остановилось на командной строке, а что вводить дальше — непонятно.
  4. Перезагрузились в Windows, нашли решение в интернете, записали команды на листочек.
  5. Перезагрузились обратно в Linux, ввели команды, появился рабочий стол и графический интерфейс, но интернета нет.
  6. Перезагрузились в Windows, и всё по новой.

Получается, что системы на компьютере две, но толком поработать не получается ни в одной — по крайней мере, первое время.

Есть другой способ — использовать виртуальную систему и поставить Linux туда. Работает это, например, так:

  1. Запускаете Windows.
  2. Устанавливаете специальную программу, которая создаст внутри вашей системы виртуальный компьютер.
  3. Устанавливаете туда Linux, и он там работает как будто на отдельном компьютере.
  4. А для Windows такая виртуальная система будет выглядеть как одна большая программа, которую в любой момент можно свернуть, закрыть или переключиться с неё на другую программу.

Это не единственный способ виртуализации, но он самый популярный среди обычных пользователей. Удобство в том, что таких виртуальных компьютеров можно создать много и запускать одновременно (если хватает ресурсов) или по очереди. Например, внутри Windows можно создать одну виртуальную машину для тестовой установки Ubuntu, а в другой поставить Debian и софт для тестирования серверных приложений.

Виртуальные машины и их назначение

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

Виртуальными машинами являются специальные компьютерные программы, которые запускаются непосредственно из операционной системы. Данные программы являются своего рода эмуляторами для компьютера. Они имеют:

  • Жесткий диск (а именно специально отведенное место на жестком диске компьютера);
  • BIOS;
  • CD-ROM (либо компьютера пользователя, либо подключенный ISO-образец);
  • Сетевые адаптеры (для обеспечения подключения с компьютером, сетевыми ресурсами и другими виртуальными машинами).

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

Пользователь сможет без каких-либо проблем производить файлообмен между гостевой и основной операционными системами. Осуществляется данное действие путем простого перетаскивания файлов из файлового менеджера клиента в окно гостевой системы (или обратно). При помощи виртуальной машины очень удобно проводить тестирование автоматической установки. Для этого загрузочный ISO-образ подключается вместо CD-ROM-а (это делается в настройках виртуальной машины), после чего начинается установка системы (также, как и на обычном компьютере).

В офисной или корпоративной сети виртуальные машины используются, к примеру, для воздвижения виртуального сервера. Такой сервер будет использоваться исключительно одной организацией для определенных целей (к примеру, для обмена файлами между сотрудниками, хранения ценной информации). В данном случае лучше всего воспользоваться двумя виртуальными машинами, чтобы обеспечить максимальную безопасность серверу.

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

Как устроена виртуальная машина?

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

introduction-to-virtualization-002.jpg

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

В принципе потеря файла конфигурации не является критическим, имея в наличии один только файл виртуального HDD можно запустить виртуальную машину создав ее конфигурацию заново. Точно также, как имея только один жесткий диск, можно подключить его к другому ПК аналогичной конфигурации и получить полностью работоспособную машину.

Кроме того в папке в виртуальной машиной могут содержаться и другие файлы, но они не являются критически важными, хотя их потеря может быть также нежелательна (например снимки состояния, позволяющие откатить состояние виртуального ПК назад).

Аппаратная виртуализация

Для её работы требуется поддержка со стороны процессора. Наибольшее распространение получили технологии Intel-VT и AMD-V, в настоящее время большинство процессоров для домашних компьютеров поддерживают одну из них. Аппаратная виртуализация не получила бы такого широкого распространения, если бы не преимущества, которые обеспечивает данный подход. Эти преимущества описаны ниже.

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

Второе преимущество: так как конфигурация виртуальной машины полностью эмулируется гипервизором, установщик операционной системы не нужно модифицировать. Выбираем нужные устройства в настройках, подключаем любой стандартный установочный образ нужной операционной системы и запускаем виртуальную машину. Более того, если у вас ещё сохранился процессор с 32-битной архитектурой, с помощью аппаратной виртуализации можно настроить виртуальную машину с 64-битным процессором и установить соответствующую ОС. Независимость от платформы хоста открывает поистине бесконечные возможности для экспериментов.

операционные системы. Виртуальные машины и их операционные системы

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

Виртуальная операционная система − это операционная система, установленная на виртуальную машину. Вы можете установить на виртуальную машину любую систему, которую можете установить на свой компьютер и которую поддерживает ПО, используемое для виртуализации. Предлагаемые нами VirtualBox и VMware поддерживают все известные десктопные операционные системы: Windows, Linux, macOS, FreeBSD.

Системы виртуальных машин позволяют запускать в одной информационной среде несколько различных операционных систем (ОС) одновременно. Более того, в зависимости от технологий виртуализации можно оперативно переходить от работы в одной системе к работе в другой без необходимости перезапуска компьютера. Работа гостевой (виртуальной) операционной системы максимально приближена к работе реальной ОС и в некоторых случаях ничем от нее не отличается.

  • возможность установки на один компьютер нескольких ОС без необходимости конфигурирования (разбиения на разделы и форматирования) физических жестких дисков;
  • работа с нескольких операционных систем одновременно с возможностью быстрого переключения между ними;
  • возможность изоляции реального оборудования от нежелательного влияния программного обеспечения(ПО), работающего в виртуальной машине;
  • моделирование сложных вычислительных систем (связанных сетевых операционных систем) на одном компьютере.
  • значительно возросшую производительность компьютеров;
  • наличие многочисленных версий операционных систем и их требования к аппаратным компонентам компьютера;
  • расширение общего круга задач решаемых с помощью вычислительной техники.

Большинство виртуальных машин позволяют скрыть от установленной на ней операционной системы некоторые параметры физических устройств компьютера, чем обеспечивается независимость OC от установленного оборудованья.

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

1. Технологии виртуальных машин и принципы виртуализации

В настоящее время существует множество виртуальных машин и систем виртуализации, таких как WMware, MicrosoftVirual PC, Xen(зен), Hyper-V Server 2008, Bochs, QEMU, OpenVZ, UML, Virtual BOX. Все они имеют определенные преимущества и недостатки, различаются областью применения и технологиями виртуализации

1.1 Обзор технологии виртуальных машин

  • эмуляция API гостевой операционной системы;
  • полная виртуализация;
  • паравиртуализация.

Обычно приложения работают в изолированном адресном пространстве и взаимодействуют с оборудованием при помощи API, предоставляемым операционной системой. Если две операционные системы совместимы посвоим АРI (например, Windows 98 и Windows 2000), то приложения, разработанные для одной из них, будут работать и на другой. Если две ОС несовместимы посвоим API (например, Windows 2000 и Linux), то существует способ перехватить обращения приложений к АРI и сымитировать поведение одной операционной системы средствами другой операционной системы. При таком подходе можно поставить одну ОС и работать одновременно как с ее приложениями, так и с приложениями другой ОС. Поскольку весь код приложения исполняется без эмуляции и лишь вызовы API эмулируются, потеря в производительности незначительная. Но из-за того, что многие приложения используют недокументированные функции API или обращаются к операционной системе в обход API, даже очень хорошие эмуляторы API имеют проблемы совместимости и позволяют запустить не более 70% от общего числа приложений. Кроме того, поддерживать эмуляцию API бурно развивающейся операционной системы (например, такой как Windows) очень нелегко, и большинство эмуляторов АРI так и остаются эмуляторами какой-то конкретной версии операционной системы. Самый большой минус способа эмуляции API – это его строгая ориентация на конкретную ОС. Для того, чтобы запустить в нем приложения другой операционной системы, необходимо все переписывать с нуля.

  • проект WINE , позволяющий запускать приложения DOS, Win16 и Win32 под операционными системами Unix/Linux;
  • проект с открытым кодом UserModeLinux (UМL), позволяющий запускать несколько копий операционной системы Linux на одном компьютере (встроен в ядро Linux версий 2.6);
  • технология, используемая во FreeBSD для запуска приложений Linux.

1.1.2 Полная виртуализация

Проекты, выполненные по технологии полной виртуализации работают как интерпретаторы. Они последовательно выбирают код гостевой операционной системы и эмулируют поведение каждой отдельно взятой инструкции. Поскольку при этом полностью эмулируется поведение как процессора, так и всех внешних устройств виртуального Intel х86 компьютера, то существует возможность запускать эмулятор на компьютерах с совершенно другой архитектурой, например, на рабочих станциях Mаc или на RISC’овых серверах Sun. Самый серьезный недостаток этого подхода заключается в катастрофической потере производительности гостевой операционной системы. Скорость работы гостевых приложений может упасть очень значительно, что означает практическую невозможность нормальной работы с гостевой ОС внутри эмулятора. Тем не менее, существуют некоторые технологии, такие как динамическая трансляция, позволяющие увеличить скорость полной эмуляции. Полные эмуляторы чаще всего используются в качестве низкоуровневых отладчиков для исследования и трассировки операционных систем.

  • проект с открытым кодом Bochs, позволяющий запускать различные операционные системы Intel х86 под Linux, Windows, BeOS и Мас OS;
  • продукт Virtual PC фирмы Microsoft позволяющий запускать различные x86-ОС на PC и Mac;
  • проект Qemu(кьюму) – самый быстрый эмулятор различных архитектур на PC. При использовании модуля Accelerator(аскеларатор) практически сравнивается по производительности с виртуальными машинами.

1.1.3 Паравиртуализация

Паравиртуализация – еще один способ, который имеет некоторые сходства с полной виртуализацией. Этот метод использует гипервизор для разделения доступа к основным аппаратным средствам, но объединяет код, касающийся виртуализации, в непосредственно операционную систему. Этот подход устраняет потребность в любой перекомпиляции или перехватывании, потому что сами операционные системы кооперируются в процессе виртуализации.

Паравиртуализация требует, чтобы гостевая ОС была изменена для гипервизора, и это является недостатком метода. Но зато паравиртуализация предлагает производительность почти как у реальной не виртуализированной системы. Как и при полной виртуализации, одновременно могут поддерживаться многочисленные различные операционные системы.

  • продукт Xen – «паравиртуальный» монитор виртуальных машин (VMM), или гипервизор. Xen способен поддерживать одновременную работу большого числа виртуальных машин на одной физической, при этом не тратя значительных вычислительных ресурсов;
  • продукт MicrosoftHyper-V представляет – решение для виртуализации серверов в корпоративных средах.

1.2 Принцип работы виртуальных машин

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

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

  • регистры процессора (включая регистры служебного назначения);
  • порты ввода-вывода (использующиеся для обмена информацией с периферией);
  • оперативная память.

Общая системная архитектура виртуальной машины построена на взаимодействии трех основных компонентов: приложение виртуальной машины; драйвер виртуальных машин; монитор виртуальной машины.

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

  • поток виртуализации для передачи управления монитору и обмена информационными сообщениями с ним;
  • графический поток для отображения видеобуфера гостевой ОС;
  • поток GUI для работы пользовательского интерфейса и передачи событий от мыши и клавиатуры гостевой операционной системе.
  • создание, удаление и конфигурирование виртуальных машин;
  • включение, выключение и управление работой виртуальных машин;
  • обеспечение интерфейса пользователя с гостевой операционной системой ввод с клавиатуры (мыши) и отображение экрана гостевой операционной системы;
  • выделение памяти для виртуальной машины и загрузка (инициализация) монитора виртуальной машины;
  • взаимодействие с физическими ресурсами компьютера через функции хостовой операционной системы (работа с жесткими и гибкими дисками, видеокартой, последовательными и параллельными портами и т.д.).

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

Виртуальные сети

«Сеть как услуга» (NaaS) набирает популярность и имеет тенденции к развитию благодаря дальнейшему внедрению виртуализации сетевых функций (NFV). Сетевая виртуализация даст возможность мобильным операторам расширить спектр услуг и поднять пропускную способность. Возможно, в ближайшие годы многие организации будут самостоятельно применять NFV в гибридных сетях.

Это происходит благодаря тому, что капитальные затраты на инфраструктуру переходят в операционные расходы. Иными словами, вместо приобретения нового оборудования, найма персонала для его обслуживания и тому подобных затрат, остаётся только оплата работы поставщиков услуг.
Кроме того, благодаря совершенствованию систем и архитектурных решений, скачку производительности локальных сетей и сетей WAN (в том числе беспроводных), большая часть элементов IT-системы может быть виртуализирована.

Что даёт виртуализация:

  • делает IT-процессы более гибкими, эффективными, удобными и производительными благодаря обширному набору функций.
  • Является лучшей альтернативой физическим серверам, которая даёт ощутимые экономические преимущества.
  • Способствует активной разработке программного обеспечения под виртуализированные среды.
  • Внимание с «железа» переключилось на работу с данными из любого места в любое время.

Виртуализация становится основной стратегией развития IT-сферы. Мало какая другая инновация оказала столь большое влияние, как появление облачной инфраструктуры. И это влияние будет только расти.

Оцените статью
Fobosworld.ru
Добавить комментарий

Adblock
detector