Виртуальная машина плюсы и минусы
Зачем мне виртуалки?
Думаю что каждый хоть раз слышал, что существуют виртуальные машины (далее по тексту «ВМ»).
Виртуальные машины, позволяют развернуть несколько систем на базе одного компьютера или сервера.
Я хочу поведать о том, как можно их использовать и зачем они нужны.
Если Вам не сложно, комментируйте, и смело задавайте вопросы.
Начну с того, что я с ними познакомился уже давненько. Не буду рекламировать конкретную продукцию, скажу лишь, что пользовался одной из самых распространенных систем работающих на винде 😉
Я пришел к использованию ВМ в связи с тем, что по долгу службы приходилось саппортить малограмотных пользователей все той же Винды, разбросанных по всему городу. Проблема была в том, что пользователи были на разных системах. Пару раз мне даже приходилось сталкиваться с 95 и НТ =). Но речь не об этом.
Все мы прекрасно понимаем, что помнить все невозможно, а когда тебе звонят и спрашивают например: «как мне настроить параметры сети на win ME» невольно пытаешься вспомнить что там и как, и начинаешь заваливать и без того напуганного пользователя вопросами.
К чему я все это, да к тому что я решил для себя проблему, создав виртуалки с практически всеми популярными ОСями, и вопросы отпали сами собой, просто открывалась необходимая виртуалка, и я вместе с пользователем совершал действия необходимые для решения его проблемы.
Второе знакомство, или точнее второе применение ВМ нашлось, когда в конторе появился мощный сервак от HP. Через некоторое время стало ясно: То, что уже было поставлено на сервер не использует и 1/5 его возможностей, а кроме того, что уже стояло на нем (Вин 2к3 с АД, Ексч на 40 компов, фтп, иса) в него засунуть было невозможно, ибо все остальное было на никсах, и при этом на ужасно убогом железе 90х годов, как и то, что было перенесено на серв изначально. Я решил, что можно попробовать исправить ситуацию и заставить серв работать на 100%.
Сначала, я поставил ВМ прямо из под Винды и развернул на ней 3 виртуалки (в качестве эксперимента) и перенес на них часть никсоводов (в основном БД, и всякие эксперименты). На следующий день ко мне пришли удивленные сотрудники, с вопросом, что же случилось, что теперь все так летает. Я был приятно удивляет тем что в среднем, даже в пиковые моменты нагрузка сервера не превышала 40%, в связи с чем, следующая ночь была посвящена полному перебросу на виртуалки. В итоге было создано 7 ВМ, которые загрузили сервер на 80-90% иногда до 98% в пике, и наконец сожрали всю память. Таким образом было решено сразу несколько проблем.
1. Производительность станций.
2. Экономия электроэнергии
3. Снижение шума в жилище админа — серверной.
4. Высвобождение пространства (в общей сложности по отделам разъехалось 10 компов =))
5. Удобство управления. (получилась эдакая консоль)
Минус же в том, что подобные системы, в случае критичности отказа, обязательно должны полностью дублироваться, так как если накрывается одна машина (собственно наш сервак), то падает все =), но у меня такого не случалось.
Ну и машина должна быть достаточно мощной (проц, память, диски), потому что все распределяется между виртуалками.
Вот небольшая иллюстрация, отображающая смысл виртуализации, только в моем случае, A,B и C это слабенькие машинки загруженные на 90-100% а ABC Мощный сервер.
Еще ВМ используется мной, для безопасности, чуть не забыл.
Дело в том, что ВМ можно полностью изолировать от Материнской ОС, то есть вы можете не боятся экспериментировать с вирусами, левым софтом, можно так же проверять на них свой код, так как виртуалку намного проще восстановить, чем свою основную машину, плюс она всегда может быть под рукой.
Админу, она может так же помочь дома: можно спокойно экспериментировать создавая виртуальные сети, эмулируя сервисы.
admion
Есть еще вариант использования ВМ для обучения, например ознакомление с nix системами, многих пугает что при установке они могут случайно отформатировать жесткий диск, а установить что-то новое на ВМ более безопасно для системы.
Также можно использовать для тестов новых систем (тотже самый win7)
Что такое виртуальная машина и как её создать
В этой статье мы расскажем, что называется виртуальной машиной и для чего предназначена эта программа, а также покажем, как устанавливать VirtualBox.
Виртуальные машины с каждым годом все больше набирают популярность. Такой рост объясняется двумя основными причинами:
Что такое виртуальная машина
Иногда требуется установить программу, созданную для ОС, которой нет на устройстве. Для этого можно воспользоваться технологией виртуализации. Виртуализация ― это возможность запуска нескольких операционных систем на одном физическом устройстве. То есть виртуальная машина позволяет создать на одном компьютере ещё один компьютер. Технология использует ресурсы устройства (память, процессор, устройство ввода и вывода), но при этом работает как отдельный компьютер.
Операционная система, на базе которой создаётся новая среда, называется хост-системой (host), а дополнительная операционная система — гостевой.
Виртуализация создается при помощи двух элементов: виртуальной машины и гипервизора.
Виртуальная машина (ВМ или VM) — программа, с помощью которой можно создать гостевую операционную систему на компьютере.
Гипервизор — программа, которая управляет физическими ресурсами вычислительной машины и распределяет эти ресурсы между несколькими различными операционными системами, позволяя запускать их одновременно. Благодаря гипервизору операционные системы не мешают друг другу.
Есть три вида гипервизоров:
Аппаратный. Такие гипервизоры используют Hyper-V, KVM, ESXi. Xen. Аппаратный гипервизор устанавливается прямо на «железо» и выполняет функции эмуляции физического аппаратного обеспечения. То есть такой гипервизор является минимальной операционной системой.
Хостовый гипервизор запускается на обычной ОС, как и другие приложения в системе. В этом случае гостевая ОС выполняется как процесс на хосте, а гипервизор разделяет гостевую ОС и ОС хоста. Примеры гипервизоров этого типа: VMware, VirtualBox и Parallels Desktop для macOS.
Гибридный. Смесь аппаратного и хостового гипервизора. Аппаратными средствами управляет первый тип гипервизора. Хостовый работает с остальными аппаратными компонентами. Такой вид управления имеет Hybrid, Type-1+.
Зачем нужна виртуальная машина и виртуализация
Для чего используют виртуализацию:
Преимущества и недостатки использования виртуальной машины
Сохранение текущего состояния машины. Если нужно выключить ПК или перейти к другой задаче, то машина сохранит все настройки. При следующей загрузке ВМ откроется в том состоянии, в котором находилась в момент выключения.
Создание снапшота при тестировании нестабильной программы. Если при тестировании софта произошла критическая ошибка, можно откатить ВМ до предыдущего состояния. По сравнению с основной системой, для виртуальной машины выделяется меньше места на дисковом пространстве, благодаря этому откат системы происходит быстрее.
Машину можно сохранять или дублировать как изолированную среду. Её можно будет запустить позднее или скопировать на другой ПК со всеми заданными конфигурациями.
Для переподключения на другую ОС не нужно перезагружать компьютер.
Для одновременного запуска на ВМ нескольких операционных систем, нужно иметь соответствующие аппаратные ресурсы.
ОС в виртуальных машинах работают медленнее. Несмотря на постоянное развитие ВМ, работа виртуальных ОС ниже традиционных.
Виртуальная платформа поддерживает не весь функционал устройства. Например, VMware поддерживает USB 3.0, контроллеры портов COM и LPT и приводы CD-ROM, но виртуализация видеоадаптеров и поддержка функций ускорения трехмерной графики пока малодоступны.
Популярные виртуальные машины
Самыми популярным виртуальным машинам являются:
VMware
VMware — одна из самых популярных виртуальных машин для крупных задач. VMware имеет 2 вида: Player (бесплатная версия) и Workstation (платная версия). Для macOS есть специальная версия VMware Fusion и VMware Fusion Pro.
VirtualBox
VirtualBox — простой и бесплатный инструмент для виртуализации от компании ORACLE. Можно установить самые популярные операционные системы (Windows, Linux-подобные ОС, FreeBSD, macOS). Также VirtualBox может работать с VM, которые были созданы в платной версии VMware Workstation.
Microsoft Hyper-V
Microsoft Hyper-V — VM для Windows 10. Не работает на других ОС.
Parallels Desktop
Несмотря на развитость всех программ для виртуализации, самым часто используемым инструментом является VirtualBox. Он нашел свое применение частными лицами и организациями. Далее мы рассмотрим, как создать VM и установить операционную систему в программе VirtualBox.
Как создать виртуальную машину VirtualBox
Скачайте и установите VirtualBox на компьютер.
Откройте панель управления Oracle и нажмите Создать:
3. Введите название виртуальной машины (имя может быть любое). Кликните Далее:
4. Укажите объём памяти для машины. Для этого сдвиньте ползунок вправо. Нажмите Далее:
5. Выберите пункт «Создать новый виртуальный жёсткий диск» и кликните Создать:
6. Укажите тип файла «VDI (VirtualBox Disk Image)» и нажмите Далее:
7. Выберите формат хранения «Динамический виртуальный жёсткий диск». Нажмите Далее:
8. Укажите объём жёсткого диска 20 ГБ. Кликните Создать:
Готово, вы создали ВМ на VirtualBox. Теперь переходите к установке операционной системы:
Как установить операционную систему в VirtualBox
Рассмотрим, как установить операционную систему на примере Ubuntu 20.04.
Скачайте дистрибутив Ubuntu на компьютер.
Откройте панель управления Oracle и нажмите Настроить:
3. Перейдите в раздел Система. На вкладке «Материнская плата» поставьте галочку напротив пункта «Гибкий диск»:
4. На вкладке «Процессор» выберите 2 ядра:
5. Перейдите в раздел Дисплей. Поставьте галочку напротив пункта «Включить 3D-ускорение» и передвиньте ползунок вправо, чтобы выделить максимально возможный объём видеопамяти:
6. Перейдите в раздел Носители и выберите «Пусто». Затем нажмите на иконку Диск — Выбрать образ оптического диска. Загрузите дистрибутив Ubuntu, который вы скачали на первом шаге.
7. После загрузки кликните Ок:
8. На главной странице нажмите Запустить:
9. Подождите, пока загрузится машина:
10. В приветственном окне выберите язык:
11. Нажмите установить Ubuntu:
12. Выберите раскладку клавиатуры «Russian». Нажмите Продолжить:
13. Выберите пункты «Обычная установка» и «Загрузить обновления во время установки Ubuntu». Затем кликните Продолжить:
14. Выберите тип установки «Стереть диск и установить Ubuntu» и нажмите Установить:
Затем кликните Продолжить:
15. Назначьте нужный регион и нажмите Продолжить:
16. Зарегистрируйтесь. Задайте имя и пароль, остальные поля будут заполнены автоматически. Нажмите Продолжить:
17. Дождитесь окончания установки и кликните Перезагрузить:
18. Дождитесь перезагрузки и нажмите Enter:
19. Выберите учётную запись, которую вы создали на шаге 15:
20. Введите пароль, который вы задали при создании учётной записи:
21. Примите предлагаемые настройки или нажмите Далее в правом верхнем углу экрана:
Готово, вы установили ОС Ubuntu 20.04 и можете приступать к работе:
Теперь вы знаете, что делает виртуальная машина и какими ресурсами виртуальной машины можно управлять с помощью программы VirtualBox.
Плюсы и минусы Oracle VM VirtualBox 4
В области виртуализации для платформы x86 сложилась довольно странная ситуация. Популярные серверные решения, основанные на гипервизорах как первого (VMware ESX, Microsoft Hyper-V, Citrix XenServer), так и второго (VMware Server, Microsoft Virtual Server) типов, давно стали бесплатными в базовых комплектациях, хотя именно они представляют наибольшую коммерческую ценность. При этом ряд известных продуктов уровня рабочих станций (VMware Workstation, Parallels Desktop), т. е. ориентированных по сути не на деловую среду, а на конечных пользователей, все еще стоит вполне ощутимых денег. Впрочем, в последнем случае все же имеются исключения — Windows Virtual PC и виновник сегодняшнего обзора Oracle VM VirtualBox. И если первый из этих продуктов наибольший интерес представляет в контексте использования бесплатного Windows XP Mode и в последнее время, судя по всему, развивается Microsoft по остаточному принципу, то второй — технологически довольно интересен и пытается поспевать за лидерами. Но прежде чем познакомиться с ним поближе, все же необходимо разобраться с позиционированием всего данного класса продуктов.
Общая характеристика
Системы виртуализации для рабочих станций предполагают в основном персональное применение, обычно прямо на рабочем ПК. Типичные примеры — виртуальные машины (ВМ) для тестовых целей, для исполнения устаревшего несовместимого или специфического (к примеру, для другой ОС) приложения, для разработки и отладки ПО. В подобных случаях решения, основанные на гипервизорах первого типа, не только избыточны, но и совершенно неудобны в силу своей архитектуры. VMware Server или Microsoft Virtual Server, работающие внутри ОС хоста, на первый взгляд кажутся более подходящими. Однако они не только сложны в освоении, но и имеют ряд проблем в области usability гостевых ОС. Таково следствие серверной ориентации, недвусмысленно обозначенной даже в их названиях, — ведь серверы, скажем, не предполагают подключения широкого спектра периферии, соответственно, исключение ее поддержки не только упрощает создание и сопровождение ПО, но и делает его более надежным. Этот факт, кстати, иногда сильно усложняет применение серверных систем виртуализации и по самому прямому назначению — к примеру, при использовании приложений, защищаемых USB-ключами, приходится прибегать к различным ухищрениям вроде USB-over-Network.
Впрочем, Oracle VM VirtualBox и в данном контексте стоит особняком, так как сочетает в себе особенности решений и для серверов, и для рабочих станций. К первым можно отнести технологии «баллонного» динамического перераспределения и дедупликации оперативной памяти ВМ на 64-битных хостах, поддержку iSCSI, некую разновидность «живой» миграции (телепортации, в терминологии Oracle VM VirtualBox), режим работы без GUI («безголовый») и эффективный метод удаленного доступа к ВМ через общий RDP-сервер (VRDP, VirtualBox Remote Display Protocol). Ко вторым — качественную поддержку USB-оборудования, в том числе USB 2.0, а также 2D- и 3D-ускорение в виртуальных машинах за счет ресурсов графического адаптера хоста.
Актуальная на текущий момент версия Oracle VM VirtualBox 4.x — первый крупный релиз, выпущенный под эгидой Oracle с момента приобретения ею Sun Microsystems. Нельзя сказать, что в нем произошли какие-то кардинальные изменения, касающиеся базовой функциональности, хотя среди прочего был расширен список доступного виртуального оборудования, улучшены управление вычислительными ресурсами и поддержка формата OVF и операций с виртуальными жесткими дисками. Главное же в этом релизе — переработка графического интерфейса и изменение внутренней архитектуры программы с тем, чтобы вынести «закрытые» блоки функциональности в подключаемые модули, так называемые Extension Packs, вместо того чтобы создавать ради них отдельные редакции, как это было прежде. Соответственно, упомянутые выше поддержка USB 2.0 и VRDP реализованы Oracle именно в таком модуле, распространяемом по специальной лицензии VirtualBox Personal Use and Evaluation License. Вполне возможно, что какие-то дополнения предложат и сторонние разработчики.
Также обращает на себя внимание, что с момента выпуска версии Oracle VM VirtualBox 4.0 уже появились два официальных обновления — 4.0.2 и 4.0.4. С одной стороны, это вроде бы является признаком небезразличия Oracle к данному проекту, но с другой, свидетельствует и об определенной «сырости» ПО. Действительно, Oracle VM VirtualBox отличается некоторой нестабильностью и многочисленными нюансами, часть из которых, впрочем, честно отмечена в документации. В значительной степени это является следствием сложности ПО, тем более что разработчики стараются максимально учесть возможные ситуации и обеспечить самую широкую поддержку операционных систем (как хоста, так и гостевых). Так, Oracle VM VirtualBox может обеспечивать виртуализацию в чисто программном режиме или задействовав аппаратную поддержку в современных процессорах (для решения некоторых задач она необходима), применяет дизассемблирование кода гостевых ОС и ряд других изощренных технических приемов, комбинируя их по мере надобности. Поэтому надо иметь в виду, что применению Oracle VM VirtualBox с более-менее серьезными целями должен, безусловно, предшествовать этап тщательного тестирования.
Тем не менее разработчики Oracle VM VirtualBox постарались максимально оградить своих пользователей от возможных проблем и необходимости разбираться с техническими подробностями. В большинстве случаев достаточно соглашаться с предложенными по умолчанию настройками, регулируя лишь самые необходимые и очевидные из них, скажем, объем оперативной памяти. При этом программа в определенной степени будет контролировать корректность выбранных параметров и при необходимости вносить поправки или выдавать соответствующие предупреждения. Не случайно также все наиболее тонкие настройки и действия могут быть выполнены исключительно из командной строки, что, конечно, требует от пользователя определенного понимания происходящего.
Использование
Развертывание Oracle VM VirtualBox в Windows (на примере Windows 7) проходит достаточно быстро и просто, пользователь может несколько скорректировать состав установки, в чем, впрочем, совершенно нет необходимости — на самом деле, все предлагаемые компоненты могут действительно пригодиться в процессе эксплуатации, за исключением разве что поддержки Python (необходимой для управления ПО посредством скриптов). При этом инсталлируются несколько системных драйверов, о чем операционная система выдаст соответствующие предупреждения. Перезагрузки не потребуется. Сразу же имеет смысл установить стандартный Extension Pack — даже если вам не нужны средства удаленного управления (по умолчанию они остаются отключенными), расширенная поддержка USB наверняка не будет лишней. Процедура развертывания Oracle VM VirtualBox в других операционных системах может иметь свои особенности и требовать дополнительных действий, к примеру, проверку наличия необходимых пакетов в случае Linux.
Следующий этап — создание собственно виртуальных машин. Здесь удобно то, что пользователь может выбрать один из предопределенных шаблонов гостевых ОС, — соответственно программа автоматически настроит большинство параметров, прежде всего, подберет максимально совместимое виртуальное оборудование. Однако каждый из параметров можно регулировать и вручную, но при этом полезно сверяться с документацией. Скажем, в моем случае добавление второго виртуального процессора в целом, скорее, ухудшало производительность, причем и ВМ, и хоста — достаточно ожидаемый результат, с учетом использования древнего Pentium D.
Также в большинстве случаев имеет смысл согласиться и с выбором по умолчанию виртуального дискового контроллера. Для современных гостевых ОС обычно предлагается IDE для привода оптических дисков и SATA в режиме AHCI для жестких дисков. По утверждению самих разработчиков, использование SCSI или SAS выигрыша в производительности не дает, так что эти варианты пригодятся разве что в каких-то специальных ситуациях. Аналогично вполне разумным выбором представляется динамически расширяемый виртуальный диск, указание фиксированного размера обычно дает незначительный выигрыш в производительности, но сразу отнимает дисковое пространство хоста. Естественно, необходимо предоставить достаточно пространства для роста файлов-образов и контролировать их фрагментацию. Oracle VM VirtualBox также допускает использование iSCSI-таргетов или локальных физических жестких дисков/разделов. Выгоды от последнего варианта не вполне очевидны, так как его выбор исключает механизмы кэширования ОС хоста, влияние чего на общую производительность трудно предсказуемо.
Более серьезно на данном этапе стоит задуматься разве что о настройке сетевого интерфейса. В частности, интересным вариантом представляется выбор паравиртуализационного сетевого адаптера virtio-net из проекта KVM (драйверы имеются и для Windows), который не имитирует реальное оборудование, а представляет собой достаточно простой интерфейс непосредственно к управляющему гипервизору. Традиционно паравиртуализационный подход сулит рост быстродействия, так что и в данном случае можно ожидать повышения скорости сетевого взаимодействия. Кроме того, нужно обратить внимание на метод организации виртуальной сети. Предлагаемый по умолчанию NAT не позволит использовать ВМ в локальной сети и имеет ряд других ограничений, избавиться от которых поможет Сетевой мост. При отсутствии необходимости выхода ВМ во внешнюю сеть можно также выбрать Внутреннюю сеть (коммуникации будут возможны только между ВМ) или Виртуальную сеть в рамках хоста.
После настройки параметров ВМ достаточно запустить установку гостевой ОС, к примеру, подключив привод физического компьютера или ISO-образ с дистрибутивом. По сути процедура ничем не отличается от установки на физический компьютер и занимает, в общем, соизмеримое время.
Графика
Практически единственной особенностью настройки гостевых ОС является установка так называемых Дополнений гостевой ОС, рекомендуемая в любых сколько-нибудь серьезных применениях. Это обеспечит «сквозное» использование указание мыши на хосте и в ВМ, синхронизацию времени, поддержку разделяемых папок (синтаксис доступа: \VBOXSVR) и буфера обмена, а также ряд других полезных возможностей, среди которых стоит особо выделить улучшенную поддержку графики. Благодаря специальным драйверам Oracle VM VirtualBox реализует в гостевых машинах 2D- (только для Windows) и 3D-ускорение. В последнем случае речь идет об OpenGL для Windows, Linux, Solaris и DirectX 8/9 (экспериментальная функция) для Windows, начиная с версии 2000. Причем 3D-драйверы для Windows корректно устанавливаются только в Safe Mode и по специальному указанию пользователя. К сожалению, о поддержке Aero говорить не приходится, ввиду несоответствия нынешнего драйвера нужным спецификациям. По этой же причине, видимо, зависает процедура вычисления индекса производительности Windows 7. Тем не менее, большинство не слишком требовательных приложений благополучно запускаются и работают, хотя подобрать тест производительности оказалось не так-то просто, поскольку многие их них проверяют наличие известных им драйверов. Понятно, что обеспечить в ВМ производительность, аналогичную физической машине, практически невозможно, впрочем, и в равные условия их поставить непросто. Получить общее представление в части OpenGL поможет следующая таблица, данные по DirectX приводить нет смысла, так в среднем в ВМ результаты получаются на порядок ниже, чем на физической машине, что по сути исключает возможность разумного применения.
Табл. Результаты тестов производительности FurMark (1024×768)
Radeon HD 2400 XT (баллы/AVG FPS) | Radeon HD 4890 (баллы/AVG FPS) | |
ВМ | 320/5 | 1950/33 |
ФМ | 365/6 | 4280/72 |
Как видно, производительность виртуальной графики масштабируется не линейно, хотя мощная модель видеоадаптера хоста способна обеспечить приемлемый уровень производительности, которого хватит, скажем, для несложных игр или тестирования ПО.
Реализация удаленного доступа в Oracle VM VirtualBox заслуживает особого внимания. Он обеспечивается RDP-сервером на уровне самого гипервизора, т. е. поддержка RDP внутри гостевых ОС (любого типа!) вообще не нужна. Достаточно лишь для каждой управляемой ВМ включить VRDP и указать отдельный порт в настройках дисплея. При использовании же «безголового» управляющего интерфейса VBoxHeadless поддержка VRDP активируется автоматически, а все необходимые дополнительные действия можно выполнять из командной строки с помощью VBoxManage. При этом в VRDP обеспечивается несколько способов аутентификации, шифрование, удаленное подключение USB-устройств, многопользовательский доступ, а при использовании RDP-клиента из Windows 7 даже перенаправление видео. Причем последняя функция также реализована на уровне VRDP-сервера, т. е. не требует поддержки от гостевых ОС и основана на автоматическом выявлении часто обновляющейся прямоугольной области рабочего стола (впрочем, эффективность такого подхода еще нужно оценить). Поскольку VirtualBox RDP обратно совместим с Microsoft RDP, для удаленной работы могут использоваться обычные RDP-клиенты, однако надо иметь в виду, что стандартная графическая программа в Windows не позволяет указывать номер порта сервера, но это возможно сделать из командной строки, примерно таким образом:
mstsc /v:1.2.3.4:5678
Заключение
Итак, Oracle VM VirtualBox, безусловно, имеет свои слабые и сильные стороны. Однако уникальное положение этого ПО на современном рынке средств виртуализации делает его оправданным выбором во многих случаях. Тем более, что проект продолжает развиваться, Oracle явно не собирается его сворачивать, а открытый подход традиционно привлекает заинтересованных сторонних разработчиков. В качестве полезного примера деятельности последних можно привести phpVirtualBox — еще один способ удаленного доступа к Oracle VM VirtualBox, на этот раз через веб-сервер.