Программы для создания виртуальных машин

Содержание

Лучшие виртуальные машины для Windows: ставьте, если очень хочется посмотреть на другие ОС

Рассмотрим детальнее, что такое виртуальные машины для Windows и для чего они нужны. Узнайте все о лучших симуляторах ОС и о том, как начать их использование.

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

Зачем нужны виртуальные машины для ПК?

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

На одном компьютере можно запустить одновременно несколько виртуальных машин. Их количество зависит от доступной оперативной памяти и места на детском диске, так как виртуальная ОС потребляет точно такой же ресурс памяти, как и обычная инсталлированная на компьютере копия.

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

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

Читайте обзор ““.

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

Причины установки ВМ:

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

VirtualBox

Посмотреть все 12 фото

VirtualBox – это виртуальная машина для Windows 7,8,10. Среда виртуализации распространяется на бесплатной основе и может быть установлена как для работы с операционными системами, так и для развертывания сетевой инфраструктуры и хостинга сайтов.

Главное окно VirtualBox:

Главная особенность данной виртуальной машины – это кроссплатформенность. Она отлично работает на всех версиях Виндоус. Также, с сайта разработчика можно скачать инсталляторы для Mac OS, Linux, Debian. В самой среде виртуализации можно устанавливать любые десктопные ОС.

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

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

Преимущества и недостатки

Преимущества VirtualBox:

  • Бесплатное распространение. 90% аналогичного ПО является платным, в то время как VirtualBox можно получить совершенно бесплатно. Функции и возможности программы не ограничиваются разработчиком;
  • Возможность создания скриншотов – снимков экрана виртуальной системы. Итоговое изображение будет отображать только окно дополнительной ОС. Создание скринов с помощью основной ОС ухудшает разрешение и захватывает еще и ваш обычный рабочий стол;
  • Создание точной копии существующей виртуальной машины;
  • Возможность перетаскивания папок, ярлыков и других объектов внутри симулятора;
  • Единая файловая система – из виртуальной машины можно получить доступ к директориям, которые хранятся на ПК, и наоборот;
  • Одновременная работа с несколькими машинами.

Также, отличительной особенностью новой VirtualBox 4 является удобная система управления виртуализацией и интуитивно-понятная рабочая область программы. Также, в новой сборке доступна возможность выполнения захвата видео с экрана дополнительной ОС.

VirtualBox поддерживает работу с подключенными к компьютеру USB-носителями.

Недостатки программы:

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

Для установки программы VirtualBox загрузите инсталлятор с официального сайта разработчика – компании Oracle. Процесс установки стандартный и не требует дополнительных настроек:

  • Запустите файл EXE;
  • Выберите Жесткий диск, на котором будет находиться корневая папка с программой;
  • Дождитесь завершения инсталляции. В случае необходимости, пользователь может посмотреть статистику использования жёсткого диска в процессе установки.

В поле «Custom Setup» есть возможность отключить поддержку USB, сетевых служб. Это позволяет уменьшить итоговый размер приложения.

Видеоинструкция, как установить две ОС с помощью VirtualBox

Обзор функционала и первая настройка программы

Поле установки программы можно приступать к созданию первой виртуальной машины. Кликните на кнопку «Создать» в левом верхнем углу окна. Откроется вкладка настройки ВМ:

В окне мастера настройки выберите тип виртуальной ОС (Windows, Linux, Debian, MacOS) и ее версию. Задайте имя для создаваемого симулятора и кликните на кнопку «Далее».

Затем, программа предоставит вам возможность самостоятельно указать размер оперативной памяти, который будет выделен под дополнительную ОС. Для пользователей-новичков советуем задавать значение, которое указано в поле «Рекомендуемый размер основной памяти».

Размер оперативной памяти для ВМ следует определят в зависимости от технических характеристик вашего ПК. Если на вашем компьютере доступно 4 ГБ оперативной памяти, для нормальной работы симулятора будет достаточно 512 МБ-1 ГБ.

Посмотреть все 12 фото

Далее программа попросит выбрать в файловой системе образ ОС (который соответствует указанному ранее семейству и версии). После завершения настройки появится окно с кратким перечислением всех параметров. Нажмите на «Финиш».

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

Для автоматического обновления драйверов откройте вкладку «устройства» на панели инструментов виртуальной машины. Затем нажмите на нужный тип носителя и в новом окне следуйте инструкции для получения нового ПО.

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

VMware

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

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

Среди преимуществ VMWare можно выделить:

  • Удобную панель инструментов;
  • Синхронизацию со средствами разработки от Майкрософт, в частности платформы .NET и программной среды Visual Studio;
  • Система безопасности. Встроенные инструменты VMWare обеспечивают высокий уровень защиты ваших файлов в дополнительной ОС. Симулятор может выявлять попытки вредоносной активности устранять их;
  • Работа служб шифрования для созданных виртуальных машин.

Недостатки приложения:

  • Платное распространение. Пользователь может скачать бесплатную пробную версию утилиты, но для получения полной версии приложения со всеми доступными функциями потребуется оплатить годовую или ежемесячную подписку;
  • Не подойдет для новичков. Если вы раньше не использовали симуляторы операционных систем, рекомендуем начать работу с более простых вариантов. К примеру, VirtualBox и стандартного для Виндоус Hyper V. VMWare подойдет продвинутым пользователям, которые предпочитают выполнять настройки системы вручную.

Скачать виртуальную машину для Windows можно с официального сайта разработчика VMWare.com.

В процессе установки программы рекомендуется выключить Защитник Windows или другой работающий антивирус. Это необходимо только для правильной инсталляции всех файлов и алгоритмов шифрования, которые применяет программа для виртуальных машин. Никакого вреда для вашей основной ОС нанесено не будет, так как продукт скачан с официального источника.

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

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

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

Далее следуйте инструкции, чтобы установить виртуальную машину:

  • В появившемся окне укажите имя ОС, имя пользователя и пароль доступа к учётной записи;
  • Укажите, на каком диске вашего компьютера будет храниться виртуальная машина;
  • Выделите нужно количество оперативной памяти для работы ВМ;
  • Настройте оборудование (автоматически или вручную).

После завершения настройки виртуальной машины дождитесь установки образа ОС и начинайте работу:

Microsoft Virtual PC

Microsoft Virtual PC – это еще один популярны эмулятор виртуальных машин. Программа хорошо совместима со всеми версиями OS Windows. Если в качестве основной ОС вы используете продукт от Майкрософт, для эмуляции советуем выбрать именно Microsoft Virtual PC.

Преимущества эмулятора:

  • Отличная совместимость со всеми версиями ОС Виндоус. В большинстве случаев, пользователю не нужно устанавливать никаких дополнительных драйверов для виртуальной ОС. Все они синхронизируются с основной системой;
  • Общий доступ к файловой системе. Получайте доступ к файлам, которые хранятся на жёстком диске ПК через окно ВМ;
  • Поддержка ОС Windows с разрядностью 64 бит в режимах работы «Гостевой хост» и «Гостевая среда»;
  • Поддержка аппаратной виртуализации.

Недостатки:

  • Есть платные функции. Программа распространяется на бесплатной основе, но за поддержку настройки группы виртуальных ОС придется купить подписку;
  • Отсутствует поддержка Линукс-подобных систем.

Для установки виртуальной ОС сначала загрузите ее образ в память компьютера, а затем откройте приложение Microsoft Virtual PC. Кликните на кнопку «Создать виртуальную машину» и в новом окне настройте следующие параметры:

  • Задайте имя новой ОС;
  • Выделите место для её жесткого диска и размер оперативной памяти;
  • Вберите, какие устройства будет поддерживать ВМ (сетевое окружение, флеш-накопители и так далее).
Итог

Чтобы иметь под рукой сразу несколько операционных систем с отдельным рабочим пространством и приложениями, не нужно покупать второй (третий, четвертый и т. д.) компьютер. Потому что всё это уместится в вашем единственном ПК. Как? Благодаря виртуальным машинам (ВМ) — особым программам, которые создают (эмулируют) внутри основной операционной системы воображаемые (виртуальные) компьютеры.

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

На одном физическом компьютере одновременно может работать несколько виртуальных. Сколько именно — зависит от аппаратных ресурсов: чем шустрее процессор, объемнее оперативка, просторнее накопитель, тем больше. Обычный домашний ПК средней производительности на базе Windows 10 справляется с одновременной работой трех-пяти легковесных ОС (например, Windows XP, Android и Lubuntu + основная система). Или двух-трех относительно тяжеловесных (например, основная Windows 10 + виртуальные Windows 7 и Mac OS X). Как вы уже поняли, приложения-эмуляторы виртуальных компьютеров позволяют устанавливать и запускать на них самые разные ОС.

Для чего используются виртуальные машины

Виртуальные машины общего назначения (в отличие от специализированных — таких, как, например, VM Java), используют:

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

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

Сегодня мы не будем касаться промышленного применения ВМ, а рассмотрим только то, что может быть полезно домашним пользователям ОС Windows.

Oracle Virtualbox

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

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

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

Рассмотрим процесс создания новой виртуальной машины и начало установки в нее Windows 10.

  • Кликнем в верхней панели кнопку «Создать».

  • В первом окошке мастера создания ВМ укажем имя ОС (оно будет отображаться в списке гостевых систем), ее тип (Windows, Linux и т. д.) и версию. В нашем примере это Windows 10 32 bit (можно поставить и 64 bit, но ей потребуется больше ресурсов). Для перехода к следующему шагу нажмем Next.

  • Дальше укажем размер оперативной памяти ВМ. По умолчанию Windows 10 x86 отводится 1 Гб, но вы можете увеличить этот объем, сдвигая ползунок вправо. Если на вашем ПК не очень много оперативки, не отдавайте ВМ больше 2-3 Гб, иначе основная система будет тормозить из-за нехватки памяти.

  • Следом создаем виртуальный жесткий диск. Если вы ставите систему первый раз, выбирайте вариант «Создать новый».

  • Тип виртуального диска оставим по умолчанию.

  • Формат хранения данных — это область на физическом накопителе вашего компьютера, который отводится ВМ. Она может иметь постоянный или динамически расширяемый объем в тех пределах, которые вы определите дальше. Для экономии места выберем динамический формат.

  • Следом укажем имя тома (виртуального диска С) и его размер. По умолчанию — 32 Гб.
  • После нажатия в последнем окошке кнопки «Создать» в списке появится новая виртуальная машина. Справа в рамке показаны ее параметры.
  • Для перехода к установке Windows кликнем в верхней панели кнопку «Запустить».

  • В окне, которое откроется после этого, появится окошко «Выберите загрузочный диск». Нажмите на иконку папки и укажите путь к дистрибутиву системы. Это может быть образ в формате .iso или физический носитель (DVD, флешка). Выбрав дистрибутив, нажмите «Продолжить».

  • Дальнейший ход инсталляции ОС в виртуальную машину не отличается от установки ее на физический компьютер.

Некоторые настройки ВМ и гостевой системы

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

Для доступа ко всему набору функций гостевой ОС нужно установить специальные дополнения. Зайдите в меню «Устройства», щелкните «Подключить образ диска дополнений гостевой ОС» и следуйте дальнейшим инструкциям.

Чтобы подключить к гостевой системе папку для обмена файлами с основной, кликните в меню «Устройства» пункт «Общие папки». Нажмите на значок «папка+» в открывшемся окне и через поле «путь к папке» укажите ее в проводнике (в нем показаны каталоги основной системы).

Если хотите, чтобы настройка работала постоянно, отметьте «Авто-подключение» и «Создать постоянную папку». Общая папка будет доступна из проводника виртуальной машины как сетевая.

Чтобы сохранить текущее состояние гостевой ОС, откройте меню «Машина» и выберите «Сделать снимок состояния».

Чтобы изменить порядок опроса загрузочных устройств (например, для загрузки виртуальной машины с DVD), завершите работу гостевой ОС, откройте ее настройки (в главном окне Virtualbox) и зайдите на первую вкладку раздела «Система». В списке «Порядок загрузки» отметьте нужный носитель и, нажимая кнопки со стрелками, передвиньте его наверх.

VMware Workstation Pro

VMware Workstation pro — не менее функциональный продукт, чем Vrtualbox, но рассчитанный на профессиональное применение и интеграцию с другими сервисами производителя. Не бесплатный и довольно дорогостоящий, однако тоже очень популярный у домашних пользователей Windows.

Бесплатная версия VMware для личного использования тоже существует. Это VMware Workstation Player, но малая функциональность, сильно уступающая даже некоммерческому Vrtualbox, отвернула от него любовь наших сограждан.

Полноценный VMware Workstation Pro, с которым мы будем знакомиться сегодня, как и конкурент, поддерживает массу операционных систем, включая мобильные и Mac OS X (кстати, он совместим с большим количеством редакций OS X, нежели Virtualbox), и эмулирует все основные устройства компьютера. Еще он эмулирует интерфейс BIOS, в отличие от Vrtualbox.

Рассмотрим, как проходит процесс создания виртуальной машины и запуск установки Windows 10 на платформе VMware Workstation Pro.

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

  • Чтобы создать новую виртуальную машину, нажмем одноименную кнопку на вкладке «Главная».
  • В первом окошке мастера создания ВМ укажем тип конфигурации. Если вам нужен компьютер со стандартными параметрами (которых достаточно в 90% случаев), отметим «Обычный».
  • Следом укажем тип ОС, которую будем устанавливать на эту виртуальную машину. Программа дает возможность запустить установку сразу после создания ВМ, причем без лишних действий с вашей стороны. Если вы согласны на это, укажите путь к файлу образа или носителя с дистрибутивом системы, если нет, отметьте «Я установлю систему позже».
  • Чтобы не вводить ключ продукта, имя пользователя и пароль во время установки Windows, введите это данные в следующее окно. Первый пункт можно пропустить.
  • Дайте новой виртуальной машине имя и укажите будущее расположение папки с операционной системой.
  • Определите размер виртуального диска. По умолчанию VMware отдает Windows 10 целых 60 Гб, но мы можем увеличить или уменьшить этот объем. Следом вам предстоит указать способ сохранения виртуального диска — в одном или нескольких файлах.
  • Ниже показаны параметры только что созданного виртуального компьютера. Если вас что-то не устраивает, например, размер оперативной памяти, нажмите «Настройку оборудования».
  • Измените нужные характеристики, вернитесь в предыдущее окно и кликните «Готово».
  • После этого, наконец, запустится установка операционной системы. Ваше участие понадобится ближе к ее окончанию — для настройки сетевого обнаружения и проверки обновлений.
  • После загрузки рабочего стола программа автоматически установит в новую систему VMware Tools — то же, что и дополнения гостевой ОС в Virtualbox. После этого виртуальная машина готова к работе.

Список всех установленных гостевых операционных систем находится на вкладке «Мой компьютер».

Некоторые опции виртуальной машины VMware

До установки VMware Tools окно гостевой системы, как и в Virtualbox, захватывает курсор мыши. Для возврата его в основную ОС нажмите Ctrl+Alt.

Чтобы попасть в интерфейс BIOS виртуальной машины, выделите ее в списке, откройте меню запуска (кнопка «play» на верхней панели) и кликните «При включении (машины) войти в режим BIOS».

Microsoft Hyper-V

Диспетчер виртуальных машин Hyper-V — это встроенный компонент операционных систем всех редакций Windows 7-10, за исключением начальной и домашних. Если разобраться, он не хуже и не сложнее, чем два рассмотренных выше, просто некоторые пользователи ничего не знают о его существовании и только поэтому предпочитают сторонний софт.

Чтобы активировать диспетчер Hyper-V, зайдите в раздел приложений панели управления Windows, щелкните «Включение и выключение компонентов Виндовс» и в открывшемся окошке отметьте «Hyper-V».

Перезагрузите компьютер, откройте поиск и с его помощью запустите диспетчер Hyper-V.

  • Для создания новой ВМ в панели диспетчера «Действия» нажмите «Создать» — «Виртуальная машина».
  • Дайте новой виртуальной машине имя.
  • Определите ее поколение — 1 (старое, к которому относится Windows XP и все 32-битные системы) или 2 (новое — 64-битные Windows 7, 8.1 или 10).
  • Выделите виртуальной машине оперативную память. Флажок «Динамическая» позволит основной ОС использовать часть памяти, которая не задействована гостевой ОС, для своих нужд. Этой полезной возможности, кстати, нет ни в Virtualbox, ни в VMware.
  • Настройки сети отложим на потом. Оставим по умолчанию «Нет подключения».
  • Далее определим размер, расположение виртуального диска и назначаем ему имя.
  • Последний шаг — параметры установки гостевой ОС. Укажем месторасположение носителя с дистрибутивом или файла образа iso. Либо отложим установку Виндовс на другое время. После нажатия кнопки «Готово» виртуальная машина будет создана, а вслед за этим запустится инсталляция операционной системы. Ее ход тоже ничем не отличается от установки ОС на реальный компьютер.

Список всех виртуальных машин Hyper-V отображается в средней части окна диспетчера. Чтобы запустить любую из них, кликните 2 раза по ее имени. В окошке, которое откроется после этого, нажмите кнопку «Пуск».

Чтобы виртуальные машины Hyper-v могли подключаться к Интернету, запустите через панель «Действия» диспетчер виртуальных коммутаторов. Выберите в показанном ниже списке тип сети «Внешняя» и нажмите «Создать виртуальный коммутатор». Сети «Внутренняя» и «Частная» предназначены для соединения виртуальных компьютеров между собой, и большинству пользователей не нужны.

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

Кстати, Hyper-v поддерживает не только операционные системы семейства Windows, но и некоторых конкурентов, в частности, Linux и FreeBSD. Полный список всех совместимых с ним платформ, а также условия их использования в среде Windows, приведены на сайте MSDN.microsoft.

Некоторые опции виртуальных машин Hyper-V

Чтобы сделать снимок состояния запущенной гостевой ОС, Откройте верхнее меню ее окна «Действие» и щелкните «Контрольная точка». Либо нажмите комбинацию Ctrl+N.

Доступ к настройкам отдельной виртуальной машины открывается из ее контекстного меню в списке главного окна диспетчера и скрывается за кнопкой «Параметры».

Прочие возможности программы тоже весьма незамысловаты и осваиваются без особого труда.

Виртуальное «железо», или компьютер понарошку

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

⇡Virtual Keyboard 3.2 – виртуальная клавиатура на все случаи жизни

  • Разработчик: Andrej Koch
  • Распространение: shareware
  • Русский интерфейс: есть

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

Хотя главное предназначение программы – решение проблем при наборе текста, утилиту можно использовать также как дополнительное средство безопасного ввода данных. Виртуальная клавиатура затрудняет работу клавиатурных шпионов. Virtual Keyboard пригодится и для решения проблем, связанных с неправильной раскладкой текстовых символов на клавиатуре. Чаще всего они возникают в путешествиях и дальних поездках и причиняют массу неудобств.

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

При установке приложения, можно выбрать шаблоны раскладок клавиатуры для самых разных языков – от арабского и белорусского до вьетнамского и китайского. Virtual Keyboard имеет более семидесяти раскладок и поддерживает около пятидесяти языков.

Набор текста можно выполнять как непосредственно в окне Virtual Keyboard, так и в активном окне любого открытого приложения. В последнем случае виртуальная клавиатура будет постоянно располагаться поверх всех окон. Такую клавиатуру удобно использовать и при наборе писем, сообщений в чатах и т.д.

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

На официальном сайте проекта есть специальная версия программы, написанная на Java – J Virtual Keyboard. Ее можно использовать на любой платформе.

⇡ZMouse 1.0 – выполнение функций мыши с клавиатуры

  • Разработчик: RavenLabs
  • Распространение: бесплатно
  • Русский интерфейс: нет

ZMouse – это небольшая, но очень полезная программа, предназначенная для управления курсором с клавиатуры. В режиме «hotkeys» программа позволяет назначить любую клавишу для выполнения определенного действия мыши. Так, например, при нажатии клавиши «8» курсор может двигаться вверх, при двойном нажатии «9» — выполнять двойной клик и так далее.

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

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

Справедливости ради заметим, что по маневренности эмулятор уступает настоящей мыши. В частности, перемещение курсора можно выполнять только в определенных направлениях: вверх-вниз, вправо-влево — очень не хватает движения по диагонали.

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

⇡MaxiVista 4.0.12 – подключение второго монитора через локальную сеть

  • Разработчик: Bartels Media GmbH
  • Распространение: shareware
  • Русский интерфейс: нет

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

MaxiVista состоит из двух частей: одна устанавливается на главный компьютер (PrimaryPC), другая – на удаленный (установочный файл с приставкой SecondaryPC).

При относительно небольшом размере дистрибутива (несколько мегабайт), установка драйвера для работы MaxiVista может происходить достаточно долго, причем по окончании установки потребуется перезагрузка. Возможно, при использовании этой программы необходимо будет внести некоторые дополнительные правила в используемый брандмауэр. В нашем случае, после установки и запуска приложения утилита «посетовала» на наличие установленного антивирусного пакета Kaspersky Internet Security, который, к слову, в дальнейшем никак не влиял на работу MaxiVista.

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

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

⇡Magic Camera 7.1 – виртуальная web-камера

  • Разработчик: ShiningMorning Software
  • Распространение: shareware
  • Русский интерфейс: есть

Существует множество приложений, которые позволяют работать с web-камерами. Функции видеочата можно найти в интернет-пейджерах для обмена мгновенными сообщениями, утилитах для удаленного администрирования и т.д. Даже если у вас нет web-камеры, вы можете использовать эти возможности, передавая собеседнику изображение, благодаря драйверу виртуальной камеры Magic Camera. Эта программа дает возможность транслировать через видеочат любой видеофайл или показывать слайд-шоу из фотографий. Кроме этого, с помощью Magic Camera можно показывать собеседнику, что в данный момент происходит на вашем рабочем столе.

По умолчанию подключенная к компьютеру web-камера работает таким образом, что транслируемый видеопоток перехватывается первым приложением и становится недоступным для других программ. В Magic Camera реализована поддержка наиболее популярных приложений, которые задействуют web-камеру: Skype, ooVoo, MSN Live Messenger, Yahoo Messenger и пр. Выбрав соответствующие профили можно настроить виртуальную камеру таким образом, что при запуске определенного приложения она будет использоваться по умолчанию (вместо реальной камеры). Благодаря тому, что Magic Camera позволяет создавать неограниченное число виртуальных камер, можно одновременно использовать функцию видеочата в нескольких приложениях.

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

⇡Virtual CD 10.1.0.10 – виртуальные приводы и диски

  • Разработчик: H+H Software
  • Распространение: shareware
  • Русский интерфейс: нет

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

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

При помощи Virtual CD можно имитировать не только чтение с CD/DVD/BD-приводов, но и функцию записи. Программа позволяет установить в системе виртуальный модуль для записи дисков, который воспринимается сторонними приложениями как реальное устройство. Используя такую виртуальную «писалку», пользователь получает возможность имитировать процесс записи любого содержимого, в том числе и DVD.

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

⇡VirtualBox 4.0 – виртуальный компьютер

  • Разработчик: Oracle
  • Распространение: бесплатно
  • Русский интерфейс: есть

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

А еще обладатель виртуального компьютера может удовлетворить свое любопытство – например, заглянуть в «яблочный мир» операционной системы Mac OS X и выяснить для себя, стоит ли покупать MacBook или iMac.

Программа VirtualBox позволяет эмулировать огромное число различных систем: многие версии Windows, разные дистрибутивы Linux, Solaris, Mac OS X Server, FreeBSD, OpenBSD, DOS и другие. VirtualBox – это не просто эмулятор отдельного устройства, это комплексное решение, позволяющее создавать и использовать условную конфигурацию компьютера. Пользователь «придумывает» и указывает в настройках виртуальной машины параметры ее комплектующих – число и объем жестких дисков, объем оперативной памяти, поддержку нескольких процессоров и так далее. VirtualBox оптимизирует конфигурацию ПК в зависимости от операционной системы, которая будет запущена на виртуальном компьютере.

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

⇡Заключение

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

Виртуальная машина

Виртуальная машина (VM, от англ. virtual machine) — программная и/или аппаратная система, эмулирующая аппаратное обеспечение некоторой платформы (target — целевая, или гостевая платформа) и исполняющая программы для target-платформы на host-платформе (host — хост-платформа, платформа-хозяин) или виртуализирующая некоторую платформу и создающая на ней среды, изолирующие друг от друга программы и даже операционные системы (см.: песочница); также спецификация некоторой вычислительной среды (например: «виртуальная машина языка программирования Си»).

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

Теория

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

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

Идея виртуальной машины лежит в основе целого ряда операционных систем, в частности, IBM VM/CMS (и её советского клона СВМ) и DEC VAX/VMS.

Применение

Виртуальные машины могут использоваться для:

  • защиты информации и ограничения возможностей программ (см.: песочница);
  • исследования производительности ПО или новой компьютерной архитектуры;
  • эмуляции различных архитектур (например, эмулятор игровой приставки);
  • оптимизации использования ресурсов мейнфреймов и прочих мощных компьютеров (см., например: IBM eServer);
  • запуска вредоносного кода с целью перехвата управления инфицированной системой: вирус PMBS, обнаруженный в 1993 году, а также руткит SubVirt, созданный в 2006 году в Microsoft Research, создавали виртуальную систему, которой ограничивался пользователь и все защитные программы (антивирусы и прочие).
  • моделирования информационных систем с клиент-серверной архитектурой на одной ЭВМ (эмуляция компьютерной сети с помощью нескольких виртуальных машин).
  • упрощения управления кластерами — виртуальные машины могут просто мигрировать с одной физической машины на другую во время работы.
  • тестирования и отладки системного программного обеспечения;
  • проверки программ на содержание вредоносного ПО.

Известные виртуальные машины

Некоторые известные виртуальные машины:

Среды языков программирования

  • ActionScript Virtual Machine
  • Clipper
  • Common Language Runtime
  • SETL
  • Harbour
  • Java Virtual Machine
  • Dalvik Virtual Machine
  • UCSD p-System
  • Форт
  • Erlang ERTS BEAM
Операционные системы и гипервизоры

  • Система виртуальных машин
  • ICore Virtual Accounts
  • Kernel-based Virtual Machine
  • Hyper-V
  • OpenVZ
  • Parallels Virtuozzo Containers
  • User-mode Linux
  • Virtual Iron
  • VM/CMS
  • VMware ESX
  • VMware Fusion
  • Xen
Автономные эмуляторы компьютеров

  • bochs
  • DOSBox
  • Virtual PC
  • Parallels Workstation
  • QEMU
  • VirtualBox
  • VMware Player
  • VMware Workstation

> См. также

  • Сравнение виртуальных машин
  • Low Level Virtual Machine

Примечания

  1. Толковый словарь по вычислительным системам = Dictionary of Computing / Под ред. В. Иллингуорта и др.: Пер. с англ. А. К. Белоцкого и др.; Под ред. Е. К. Масловского. — М.: Машиностроение, 1990. — 560 с. — 70 000 (доп,) экз. — ISBN 5-217-00617-X (СССР), ISBN 0-19-853913-4 (Великобритания).
  2. F-Secure Weblog : Monthly Archives — March of 2006

Литература

  • Гультяев А. Виртуальные машины — несколько компьютеров в одном. — СПб.: Питер, 2006. — 224 с. — ISBN 5-469-01338-3.
  • Юрий Меркулов. Виртуальная среда // CHIP : журнал. — 2010. — № 01 (130). — С. 106—109. — ISSN 1609-4212.
  • Дмитрий Михирев. Второе лицо // ComputerBild : журнал. — 2011. — № 06 (129). — С. 52—57.
  • Юрий Пятковский. Выбери себе виртуальный ПК // CHIP : журнал. — 2011. — № 05 (146). — С. 78—81. — ISSN 1609-4212.

Ссылки

  • Александр Самойленко. Виртуальные машины дома и в бизнесе. iXBT.com (16 мая 2007). Дата обращения 1 сентября 2009.
  • Виртуализация. Статьи о виртуализации VMware VI, ESX, Hyper-v, Citrix и Parallels. ???. Дата обращения 1 сентября 2009.
  • Виртуализация. VMware VI / vSphere, Xen, Microsoft Hyper-V. — Блог о виртуализации. Дата обращения 1 сентября 2009. Архивировано 25 августа 2011 года.
  • Записки виртуального админа — Новости, обзоры и заметки о виртуальных машинах и платформах виртуализации. — Блог о виртуализации. Дата обращения 1 сентября 2009. Архивировано 25 августа 2011 года.
  • Russian Windows Virtualization Discussion, microsoft (рус.)
Программное обеспечение для эмуляции и виртуализации (сравнение)
Уровень приложений
Уровень ОС
(Контейнеры)
Аппаратный уровень

Универсальные Микроядро Монолитные
Специализированные Android DOS Прочие
Виртуализация сетей

Автоматизация Для Самых Маленьких. Часть 1.1. Основы виртуализации

Предыдущая статья рассматривала архитектуру виртуализированной сети, underlay-overlay, путь пакета между VM и прочее.
Роман Горге вдохновился ею и решил написать обзорный выпуск о виртуализации вообще.
В данной статье мы затронем (или попытаемся затронуть) вопросы: а как собственно происходит виртуализация сетевых функций, как реализован backend основных продуктов, обеспечивающих запуск и управление VM, а также как работает виртуальный свитчинг (OVS и Linux bridge).
Тема виртуализации широка и глубока, объяснить все детали работы гипервизора невозможно (да и не нужно). Мы ограничимся минимальным набором знаний необходимым для понимания работы любого виртуализированного решения, не обязательно Telco.

  • Введение и краткая история виртуализации
  • Типы виртуальных ресурсов — compute, storage, network
  • Виртуальная коммутация
  • Инструменты виртуализации — libvirt, virsh и прочее
  • Заключение

Введение и краткая история виртуализации

История современных технологий виртуализации берет свое начало в 1999 году, когда молодая компания VMware выпустила продукт под названием VMware Workstation. Это был продукт обеспечивающий виртуализацию desktop/client приложений. Виртуализация серверной части пришла несколько позднее в виде продукта ESX Server, который в дальнейшем эволюционировал в ESXi (i означает integrated) — это тот самый продукт, который используется повсеместно как в IT так и в Telco как гипервизор серверных приложений.
На стороне Opensource два основных проекта принесли виртуализацию в Linux:

  • KVM (Kernel-based Virtual Machine) — модуль ядра Linux, который позволяет kernel работать как гипервизор (создает необходимую инфраструктуру для запуска и управления VM). Был добавлен в версии ядра 2.6.20 в 2007 году.
  • QEMU (Quick Emulator) — непосредственно эмулирует железо для виртуальной машины (CPU, Disk, RAM, что угодно включая USB порт) и используется совместно с KVM для достижения почти «native» производительности.

На самом деле на сегодняшний момент вся функциональность KVM доступна в QEMU, но это не принципиально, так как бо́льшая часть пользователей виртуализации на Linux не использует напрямую KVM/QEMU, а обращается к ним как минимум через один уровень абстракции, но об этом позже.
Сегодня VMware ESXi и Linux QEMU/KVM это два основных гипервизора, которые доминируют на рынке. Они же являются представителями двух разных типов гипервизоров:

  • Type 1 — гипервизор запускается непосредственно на железе (bare-metal). Таковым является VMware ESXi, Linux KVM, Hyper-V
  • Type 2 — гипервизор запускается внутри Host OS (операционной системы). Таковым является VMware Workstation или Oracle VirtualBox.

Обсуждение что лучше, а что хуже выходит за рамки данной статьи.
Производители железа также должны были сделать свою часть работы, дабы обеспечить приемлемую производительность.
Пожалуй, наиболее важной и самой широко используемой является технология Intel VT (Virtualization Technology) — набор расширений, разработанных Intel для своих x86 процессоров, которые используются для эффективной работы гипервизора (а в некоторых случаях необходимы, так, например, KVM не заработает без включенного VT-x и без него гипервизор вынужден заниматься чисто софтверной эмуляцией, без аппаратного ускорения).
Наиболее известны два из этих расширений — VT-x и VT-d. Первое важно для улучшения производительности CPU при виртуализации, так как обеспечивает аппаратную поддержку некоторых ее функций (с VT-x 99.9% Guest OS кода выполняется прямо на физическом процессоре, делая выходы для эмуляции только в самых необходимых случаях), второе для подключения физических устройств напрямую в виртуальную машину (для проброса виртуальных функций (VF) SRIOV, например, VT-d должен быть включен).
Следующей важной концепцией является отличие полной виртуализации (full virtualization) от пара-виртуализации (para-virtualization).
Полная виртуализация — это хорошо, это позволяет запускать какую угодно операционную систему на каком угодно процессоре, однако, это крайне неэффективно и абсолютно не подходит для высоконагруженных систем.
Пара-виртуализация, если коротко, это когда Guest OS понимает что она запущена в виртуальной среде и кооперируется с гипервизором для достижения большей эффективности. То есть появляется guest-hypervisor интерфейс.
Подавляющее большинство используемых операционных систем сегодня имеют поддержку пара-виртуализации — в Linux kernel это появилось начиная с ядра версии 2.6.20.
Для работы виртуальной машины нужны не только виртуальный процессор (vCPU) и виртуальная память (RAM), требуется также эмуляция PCI-устройств. То, есть по сути, требуется набор драйверов для управления виртуальными сетевыми интерфейсами, дисками и тд.
В гипервизоре Linux KVM данная задача была решена посредством внедрения virtio — фреймворка для разработки и использования виртуализированных устройств ввода/вывода.
Virtio представляет из себя дополнительный уровень абстракции, который позволяет эмулировать различные I/O устройства в пара-виртуализированном гипервизоре, предоставляя в сторону виртуальной машины единый и стандартизированный интерфейс. Это позволяет переиспользовать код virtio-драйвера для различных по своей сути устройств. Virtio состоит из:

  • Front-end driver — то что находится в виртуальной машине
  • Back-end driver — то что находится в гипервизоре
  • Transport driver — то что связывает backend и frontend

Эта модульность позволяет изменять технологии, применяемые в гипервизоре, не затрагивая драйверы в виртуальной машине (этот момент очень важен для технологий сетевой акселерации и Cloud-решений в целом, но об этом позже).
То есть существует связь guest-hypervisor, когда Guest OS «знает» о том, что запущена в виртуальной среде.
Если вы хоть раз писали вопрос в RFP или отвечали на вопрос в RFP «Поддерживается ли в вашем продукте virtio?» Это как раз было о поддержке front-end virtio драйвера.

Типы виртуальных ресурсов — compute, storage, network

Из чего же состоит виртуальная машина?
Выделяют три основных вида виртуальных ресурсов:

  • compute — процессор и оперативная память
  • storage — системный диск виртуальной машины и блочные хранилища
  • network — сетевые карты и устройства ввода/вывода

>Compute

CPU

Теоретически QEMU способен эмулировать любой тип процессора и соотвествующие ему флаги и функциональность, на практике используют либо host-model и точечно выключают флаги перед передачей в Guest OS либо берут named-model и точечно включают\выключают флаги.
По умолчанию QEMU будет эмулировать процессор, который будет распознан Guest OS как QEMU Virtual CPU. Это не самый оптимальный тип процессора, особенно если приложение, работающее в виртуальной машине, использует CPU-флаги для своей работы. .
QEMU/KVM также позволяет контролировать топологию процессора, количество тредов, размер кэша, привязывать vCPU к физическому ядру и много чего еще.
Нужно ли это для виртуальной машины или нет, зависит от типа приложения, работающего в Guest OS. Например, известный факт, что для приложений, выполняющих обработку пакетов с высоким PPS, важно делать CPU pinning, то есть не позволять передавать физический процессор другим виртуальным машинам.

Memory

Далее на очереди оперативная память — RAM. С точки зрения Host OS запущенная с помощью QEMU/KVM виртуальная машина ничем не отличается от любого другого процесса, работающего в user-space операционной системы. Соотвественно и процесс выделения памяти виртуальной машине выполняется теми же вызовами в kernel Host OS, как если бы вы запустили, например, Chrome браузер.
Перед тем как продолжить повествование об оперативной памяти в виртуальных машинах, необходимо сделать отступление и объяснить термин NUMA — Non-Uniform Memory Access.
Архитектура современных физических серверов предполагает наличие двух или более процессоров (CPU) и ассоциированной с ней оперативной памятью (RAM). Такая связка процессор + память называется узел или нода (node). Связь между различными NUMA nodes осуществляется посредством специальной шины — QPI (QuickPath Interconnect)
Выделяют локальную NUMA node — когда процесс, запущенный в операционной системе, использует процессор и оперативную память, находящуюся в одной NUMA node, и удаленную NUMA node — когда процесс, запущенный в операционной системе, использует процессор и оперативную память, находящиеся в разных NUMA nodes, то есть для взаимодействия процессора и памяти требуется передача данных через QPI шину.
С точки зрения виртуальной машины память ей уже выделена на момент ее запуска, однако в реальности это не так, и kernel Host OS выделяет процессу QEMU/KVM новые участки памяти по мере того как приложение в Guest OS запрашивает дополнительную память (хотя тут тоже может быть исключение, если прямо указать QEMU/KVM выделить всю память виртуальной машине непосредственно при запуске).
Память выделяется не байт за байтом, а определенным размером — page. Размер page конфигурируем и теоретически может быть любым, но на практике используется размер 4kB (по умолчанию), 2MB и 1GB. Два последних размера называются HugePages и часто используются для выделения памяти для memory intensive виртуальных машин. Причина использования HugePages в процессе поиска соответствия между виртуальным адресом page и физической памятью в Translation Lookaside Buffer (TLB), который в свою очередь ограничен и хранит информацию только о последних использованных pages. Если информации о нужной page в TLB нет, происходит процесс, называемый TLB miss, и требуется задействовать процессор Host OS для поиска ячейки физической памяти, соответствующей нужной page.
Данный процесс неэффективен и медлителен, поэтому и используется меньшее количество pages бо́льшего размера.
QEMU/KVM также позволяет эмулировать различные NUMA-топологии для Guest OS, брать память для виртуальной машины только из определенной NUMA node Host OS и так далее. Наиболее распространенная практика — брать память для виртуальной машины из NUMA node локальной по отношению к процессорам, выделенным для виртуальной машины. Причина — желание избежать лишней нагрузки на QPI шину, соединяющую CPU sockets физического сервера (само собой, это логично если в вашем сервере 2 и более sockets).

Storage

Как известно, оперативная память потому и называется оперативной, что ее содержимое исчезает при отключении питания или перезагрузке операционной системы. Чтобы хранить информацию, требуется постоянное запоминающее устройство (ПЗУ) или persistent storage.
Существует два основных вида persistent storage:

  • Block storage (блоковое хранилище) — блок дискового пространства, который может быть использован для установки файловой системы и создания партиций. Если грубо, то можно воспринимать это как обычный диск.
  • Object storage (объектное хранилище) — информация может быть сохранена только в виде объекта (файла), доступного по HTTP/HTTPS. Типичными примерами объектного хранилища являются AWS S3 или Dropbox.

Виртуальная машина нуждается в persistent storage, однако, как это сделать, если виртуальная машина «живет» в оперативной памяти Host OS? Если вкратце, то любое обращение Guest OS к контроллеру виртуального диска перехватывается QEMU/KVM и трансформируется в запись на физический диск Host OS. Этот метод неэффективен, и поэтому здесь так же как и для сетевых устройств используется virtio-драйвер вместо полной эмуляции IDE или iSCSI-устройства. Подробнее об этом можно почитать . Таким образом виртуальная машина обращается к своему виртуальному диску через virtio-драйвер, а далее QEMU/KVM делает так, чтобы переданная информация записалась на физический диск. Важно понимать, что в Host OS дисковый backend может быть реализован в виде CEPH, NFS или iSCSI-полки.
Наиболее простым способом эмулировать persistent storage является использование файла в какой-либо директории Host OS как дискового пространства виртуальной машины. QEMU/KVM поддерживает множество различных форматов такого рода файлов — raw, vdi, vmdk и прочие. Однако наибольшее распространение получил формат qcow2 (QEMU copy-on-write version 2). В общем случае, qcow2 представляет собой определенным образом структурированный файл без какой-либо операционной системы. Большое количество виртуальных машин распространяется именно в виде qcow2-образов (images) и являются копией системного диска виртуальной машины, упакованной в qcow2-формат. Это имеет ряд преимуществ — qcow2-кодирование занимает гораздо меньше места, чем raw копия диска байт в байт, QEMU/KVM умеет изменять размер qcow2-файла (resizing), а значит имеется возможность изменить размер системного диска виртуальной машины, также поддерживается AES шифрование qcow2 (это имеет смысл, так как образ виртуальной машины может содержать интеллектуальную собственность).
Далее, когда происходит запуск виртуальной машины, QEMU/KVM использует qcow2-файл как системный диск (процесс загрузки виртуальной машины я опускаю здесь, хотя это тоже является интересной задачей), а виртуальная машина имеет возможность считать/записать данные в qcow2-файл через virtio-драйвер. Таким образом и работает процесс снятия образов виртуальных машин, поскольку в любой момент времени qcow2-файл содержит полную копию системного диска виртуальной машины, и образ может быть использован для резервного копирования, переноса на другой хост и прочее.
В общем случае этот qcow2-файл будет определяться в Guest OS как /dev/vda-устройство, и Guest OS произведет разбиение дискового пространства на партиции и установку файловой системы. Аналогично, следующие qcow2-файлы, подключенные QEMU/KVM как /dev/vdX устройства, могут быть использованы как block storage в виртуальной машине для хранения информации (именно так и работает компонент Openstack Cinder).

Network

Последним в нашем списке виртуальных ресурсов идут сетевые карты и устройства ввода/вывода. Виртуальная машина, как и физический хост, нуждается в PCI/PCIe-шине для подключения устройств ввода/вывода. QEMU/KVM способен эмулировать разные типы чипсетов — q35 или i440fx (первый поддерживает — PCIe, второй — legacy PCI ), а также различные PCI-топологии, например, создавать отдельные PCI-шины (PCI expander bus) для NUMA nodes Guest OS.
После создания PCI/PCIe шины необходимо подключить к ней устройство ввода/вывода. В общем случае это может быть что угодно — от сетевой карты до физического GPU. И, конечно же, сетевая карта, как полностью виртуализированная (полностью виртуализированный интерфейс e1000, например), так и пара-виртуализированная (virtio, например) или физическая NIC. Последняя опция используется для data-plane виртуальных машин, где требуется получить line-rate скорости передачи пакетов — маршрутизаторов, файрволов и тд.
Здесь существует два основных подхода — PCI passthrough и SR-IOV. Основное отличие между ними — для PCI-PT используется драйвер только внутри Guest OS, а для SRIOV используется драйвер Host OS (для создания VF — Virtual Functions) и драйвер Guest OS для управления SR-IOV VF. Более подробно об PCI-PT и SRIOV отлично написал Juniper.
Для уточнения стоит отметить что, PCI passthrough и SR-IOV это дополняющие друг друга технологии. SR-IOV это нарезка физической функции на виртуальные функции. Это выполняется на уровне Host OS. При этом Host OS видит виртуальные функции как еще одно PCI/PCIe устройство. Что он дальше с ними делает — не важно.
А PCI-PT это механизм проброса любого Host OS PCI устройства в Guest OS, в том числе виртуальной функции, созданной SR-IOV устройством
Таким образом мы рассмотрели основные виды виртуальных ресурсов и следующим шагом необходимо понять как виртуальная машина общается с внешним миром через сеть.

Виртуальная коммутация

Если есть виртуальная машина, а в ней есть виртуальный интерфейс, то, очевидно, возникает задача передачи пакета из одной VM в другую. В Linux-based гипервизорах (KVM, например) эта задача может решаться с помощью Linux bridge, однако, большое распространение получил проект Open vSwitch (OVS).
Есть несколько основных функциональностей, которые позволили OVS широко распространиться и стать de-facto основным методом коммутации пакетов, который используется во многих платформах облачных вычислений(например, Openstack) и виртуализированных решениях.

  • Передача сетевого состояния — при миграции VM между гипервизорами возникает задача передачи ACL, QoSs, L2/L3 forwarding-таблиц и прочего. И OVS умеет это.
  • Реализация механизма передачи пакетов (datapath) как в kernel, так и в user-space
  • CUPS (Control/User-plane separation) архитектура — позволяет перенести функциональность обработки пакетов на специализированный chipset (Broadcom и Marvell chipset, например, могут такое), управляя им через control-plane OVS.
  • Поддержка методов удаленного управления трафиком — протокол OpenFlow (привет, SDN).

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

  • Datapath — тут обрабатываются пакеты. Аналогия — switch-fabric железного коммутатора. Datapath включает в себя приём пакетов, обработку заголовков, поиск соответствий по таблице flow, который в Datapath уже запрограммирован. Если OVS работает в kernel, то выполнен в виде модуля ядра. Если OVS работает в user-space, то это процесс в user-space Linux.
  • vswitchd и ovsdb — демоны в user-space, то что реализует непосредственно сам функциональность коммутатора, хранит конфигурацию, устанавливает flow в datapath и программирует его.
  • Набор инструментов для настройки и траблшутинга OVS — ovs-vsctl, ovs-dpctl, ovs-ofctl, ovs-appctl. Все то, что нужно, чтобы прописать в ovsdb конфигурацию портов, прописать какой flow куда должен коммутироваться, собрать статистику и прочее. Добрые люди написали статью по этому поводу.

Каким же образом сетевое устройство виртуальной машины оказывается в OVS?
Для решения данной задачи нам необходимо каким-то образом связать между собой виртуальный интерфейс, находящийся в user-space операционной системы с datapath OVS, находящимся в kernel.
В операционной системе Linux передача пакетов между kernel и user-space-процессами осуществляется посредством двух специальных интерфейсов. Оба интерфейса использует запись/чтение пакета в/из специальный файл для передачи пакетов из user-space-процесса в kernel и обратно — file descriptor (FD) (это одна из причин низкой производительности виртуальной коммутации, если datapath OVS находится в kernel — каждый пакет требуется записать/прочесть через FD)

  • TUN (tunnel) — устройство, работающее в L3 режиме и позволяющее записывать/считывать только IP пакеты в/из FD.
  • TAP (network tap) — то же самое, что и tun интерфейс + умеет производить операции с Ethernet-фреймами, т.е. работать в режиме L2.

Именно поэтому при запущенной виртуальной машине в Host OS можно увидеть созданные TAP-интерфейсы командой ip link или ifconfig — это «ответная» часть virtio, которая «видна» в kernel Host OS. Также стоит обратить внимание, что TAP-интерфейс имеет тот же MAC-адрес что и virtio-интерфейс в виртуальной машине.
TAP-интерфейс может быть добавлен в OVS с помощью команд ovs-vsctl — тогда любой пакет, скоммутированный OVS в TAP-интерфейс, будет передан в виртуальную машину через file descriptor.
Реальный порядок действий при создании виртуальной машины может быть разным, т.е. сначала можно создать OVS bridge, потом указать виртуальной машине создать интерфейс, соединенный с этим OVS, а можно и наоборот.
Теперь, если нам необходимо получить возможность передачи пакетов между двумя и более виртуальными машинами, которые запущены на одном гипервизоре, нам потребуется лишь создать OVS bridge и добавить в него TAP-интерфейсы с помощью команд ovs-vsctl. Какие именно команды для этого нужны легко гуглится.
На гипервизоре может быть несколько OVS bridges, например, так работает Openstack Neutron, или же виртуальные машины могут находиться в разных namespace для реализации multi-tenancy.

А если виртуальные машины находятся в разных OVS bridges?
Для решения данной задачи существует другой инструмент — veth pair. Veth pair может быть представлен как пара сетевых интерфейсов, соединенных кабелем — все то, что «влетает» в один интерфейс, «вылетает» из другого. Veth pair используется для соединения между собой нескольких OVS bridges или Linux bridges. Другой важный момент что части veth pair могут находиться в разных namespace Linux OS, то есть veth pair может быть также использован для связи namespace между собой на сетевом уровне.

Инструменты виртуализации — libvirt, virsh и прочее

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

  • libvirt
  • virsh CLI
  • virt-install

Конечно, существует множество других утилит и CLI-команд, которые позволяют управлять гипервизором, например, можно напрямую пользоваться командами qemu_system_x86_64 или графическим интерфейсом virt manager, но это скорее исключение. К тому же существующие сегодня Cloud-платформы, Openstack, например, используют как раз libvirt.

libvirt

libvirt — это масштабный open-source проект, который занимается разработкой набора инструментов и драйверов для управления гипервизорами. Он поддерживает не только QEMU/KVM, но и ESXi, LXC и много чего еще.
Основная причина его популярности — структурированный и понятный интерфейс взаимодействия через набор XML-файлов плюс возможность автоматизации через API. Стоит оговориться что libvirt не описывает все возможные функции гипервизора, он лишь предоставляет удобный интерфейс использования полезных, с точки зрения участников проекта, функции гипервизора.
И да, libvirt это де-факто стандарт в мире виртуализации сегодня. Только взгляните на список приложений, которые используют libvirt.
Хорошая новость про libvirt — все нужные пакеты уже предустановлены во всех наиболее часто используемых Host OS — Ubuntu, CentOS и RHEL, поэтому, скорее всего, собирать руками нужные пакеты и компилировать libvirt вам не придется. В худшем случае придется воспользоваться соответствующим пакетным инсталлятором (apt, yum и им подобные).
При первоначальной установке и запуске libvirt по умолчанию создает Linux bridge virbr0 и его минимальную конфигурацию.
Именно поэтому при установке Ubuntu Server, например, вы увидите в выводе команды ifconfig Linux bridge virbr0 — это результат запуска демона libvirtd
Этот Linux bridge не будет подключен ни к одному физическому интерфейсу, однако, может быть использован для связи виртуальных машин внутри одного гипервизора. Libvirt безусловно может быть использован вместе с OVS, однако, для этого пользователь должен самостоятельно создать OVS bridges с помощью соответствующих OVS-команд.
Любой виртуальный ресурс, необходимый для создания виртуальной машины (compute, network, storage) представлен в виде объекта в libvirt. За процесс описания и создания этих объектов отвечает набор различных XML-файлов.
Детально описывать процесс создания виртуальных сетей и виртуальных хранилищ не имеет особого смысла, так как эта прикладная задача хорошо описана в документации libvirt:

  • Networking
  • Storage

Сама виртуальная машина со всеми подключенными PCI-устройствами в терминологии libvirt называется domain. Это тоже объект внутри libvirt, который описывается отдельным XML-файлом.
Этот XML-файл и является, строго говоря, виртуальной машиной со всеми виртуальными ресурсами — оперативная память, процессор, сетевые устройства, диски и прочее. Часто данный XML-файл называют libvirt XML или dump XML.
Вряд ли найдется человек, который понимает все параметры libvirt XML, однако, это и не требуется, когда есть документация.
В общем случае, libvirt XML для Ubuntu Desktop Guest OS будет довольно прост — 40-50 строчек. Поскольку вся оптимизация производительности описывается также в libvirt XML (NUMA-топология, CPU-топологии, CPU pinning и прочее), для сетевых функций libvirt XML может быть очень сложен и содержать несколько сот строк. Любой производитель сетевых устройств, который поставляет свое ПО в виде виртуальных машин, имеет рекомендованные примеры libvirt XML.

virsh CLI

Утилита virsh — «родная» командная строка для управления libvirt. Основное ее предназначение — это управление объектами libvirt, описанными в виде XML-файлов. Типичными примерами являются операции start, stop, define, destroy и так далее. То есть жизненный цикл объектов — life-cycle management.
Описание всех команд и флагов virsh также доступно в документации libvirt.

virt-install

Еще одна утилита, которая используется для взаимодействия с libvirt. Одно из основных преимуществ — можно не разбираться с XML-форматом, а обойтись лишь флагами, доступными в virsh-install. Второй важный момент — море примеров и информации в Сети.
Таким образом какой бы утилитой вы ни пользовались, управлять гипервизором в конечном счете будет именно libvirt, поэтому важно понимать архитектуру и принципы его работы.

В данной статье мы рассмотрели минимальный набор теоретических знаний, который необходим для работы с виртуальными машинами. Я намеренно не приводил практических примеров и выводов команд, поскольку таких примеров можно найти сколько угодно в Сети, и я не ставил перед собой задачу написать «step-by-step guide». Если вас заинтересовала какая-то конкретная тема или технология, оставляйте свои комментарии и пишите вопросы.

Полезные ссылки

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *