Для чего нужна виртуальная машина – Разница между виртуализацией на уровне ОС (контейнерами) и аппаратной виртуализацией (виртуальными машинами) в InfoboxCloud

Содержание

как не накосячить / DataLine corporate blog / Habr

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


Источник: drive2.ru

Операционная система. Выбирайте современные дистрибутивы. Если берете Windows 2008 R2 и более старую или Linux до ядра 4.19.x, ждите проблем. Каких? Ну, например, вендор уже перестал поддерживать актуальное состояние Windows 2008 R2 аж в 2013 году (EOL). Это означает, что он больше не разрабатывает драйвера под вышедшее с тех пор железо, не модифицирует ОС под новое что угодно. С древними операционками вы точно не сможете использовать все возможности, которые предоставляет современный гипервизор. А уже в эти новогодние праздники остро встанет проблема с безопасностью, так как 14 января 2020 года заканчивается расширенная поддержка Windows Server 2008 R2 и перестанут выходить Security Update.

Cores per socket. Оставляйте 1 ядро на сокет, ставьте столько сокетов, сколько вам нужно виртуальных процессоров. Да, логично наоборот, но правильно так. Если у вас нет специализированных лицензионных требований. Например, вы платите за сокет, а больше сокетов означает больше лицензий. Не ставьте 2/2, чтобы получить 4. Сделайте 4/1. Такую машину гипервизор будет обслуживать оптимальным образом. Scheduler гипервизора будет меньше пенализировать такие ВМ.
Объясню на пальцах. Представьте, что проводник рассаживает пассажиров по вагону, вагон – как в Сапсане. В роли проводника scheduler, пассажиры – это ВМ. Пассажиров, которые едут в одиночку (однопроцессорные ВМ), ему распределить проще всего: их можно посадить на любое место. Семью из 4 человек (4-процессорные ВМ) уже сложнее. Им нужно найти 4 места в одном вагоне. А теперь представим, что все в семье хотят ехать только лицом друг другу, а таких групп мест – 4 вокруг стола – в вагоне только 2. С большой вероятностью такой семье придется пройти в следующий вагон (на следующий тик планирования). Это как раз та ситуация, как если бы вы выбрали 2 сокета по 2 ядра, чтобы получить 4. Скорее всего, придется подождать, чтобы нашлись подходящие места. Так же и с ВМ: ей придется ждать дольше, чем менее “прихотливым” ВМ с 1 сокетом и кучкой процессоров.

Хотя эта история актуальнее для старых версий ESXi. Начиная с 6.5 (но не ранее!) механизм vNUMA отвязан от количества виртуальных сокетов, и старая рекомендация “не плодить сокеты” не так категорична. Но все еще зависит от приложения внутри гостевой ОС.

Hot Add для CPU и Memory. Это опция добавления памяти CPU для работающей виртуальной машины. Казалось бы, прекрасная функция: не нужно гасить машину, чтобы докинуть ей ресурсов. Так вот, не все так просто, и не зря они по дефолту отключены. Лучше и не включать, если вы не знаете, что такое NUMA-топология. Допустим, под капотом облака у нас двухсокетный сервер. На каждом сокете 4 ядра. Работает это именно как 4+4, а не 8 ядер. Такая же тема с памятью: если на каждом сокете 128 ГБ, это не дает в сумме 256 ГБ. Каждый процессорный сокет имеет прямой доступ только к определенным слотам памяти. Каждый сокет вместе с причитающейся ему процессором и памятью – это физическая NUMA-нода.

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

Когда вы включаете добавления виртуальных процессоров и памяти на горячую, все это идет только в нулевую NUMA-ноду. Например, добавилось еще 4 процессора, и на NUMA-ноде 0 стало 6, а на NUMA-ноде 1 – 2 процессора. Машину немного перекосило, и работает она также косо. Это связано с тем, что при включении vCPU Hot-Plug перестает работать vNUMA, через которую vSphere старается оптимизировать топологию NUMA для ВМ. Поэтому, принимая решение о включении CPU Hot-Add, учитывайте физическую топологию NUMA для обеспечения производительности ВМ. Это очень критично, если по каким-либо причинам в ВМ имеется несколько виртуальных сокетов. В этом случае несоответствие физической топологии вызовет сильное падение производительности: CPU Scheduler сойдет с ума, пытаясь предоставить процессорное время такой ВМ, что вызовет рост CPU Ready и Co-Stop.


Все добавленные виртуальные процессоры (5-8) и память попали на NUMA-ноду 0.

Отдельная история в том, что будет происходить внутри ОС и приложения после таких “добавок”. Поэтому если уж решили пользоваться этой опцией, то проверьте, поддерживает ли ваша ОС такое. Non-NUMA-Aware приложения могут сильно просесть по производительности при расположении на нескольких NUMA-нодах.

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


Галочки не ставим.

Дисковый контроллер (Bus type). Для дисков выбирайте дисковый контроллер Paravirtual. Этот тип контроллера требует установки драйверов в ОС VMware Tools. Paravirtual – это специальное виртуальное устройство, которое создавалось для работы в виртуализации и не эмулирует работу какого-то другого аппаратного устройства. Любая эмуляция аппаратного устройства всегда работает медленнее.

Если вы не хотите использовать Paravirtual (но почему?), выбирайте LSI Logic SAS. Если ОС не поддерживает и его — LSI Logic Parallel. Никогда не используйте SATA и IDE. ВМ будет медленно работать, в итоге вы не получите производительности, за которой идут в облако.

При инсталляции ОС даже свежая версия Windows может не найти драйвер для Paravirtual адаптера. В этом случае примонтируйте к ВМ два ISO файла — ваш загрузочный образ Windows и диск с VMware tools. На последнем есть необходимый драйвер.

Сетевой адаптер. Правильный выбор – VMXNet3. VMXNet3, как и дисковый адаптер Paravirtual, это паравиртуальное устройство. Оно также требует драйверов, которые входят в VMware Tools.

Если вдруг VMXNet3 не подходит (проявляется какая-то несовместимость), то на крайний случай используйте E1000E. Но не ожидайте от адаптера E1000E производительности больше, чем 1 Гбит.

В общем, E1000E без прямых указаний вендоров не используйте. Казалось бы, оно новее, но сделано для обеспечения еще большей совместимости c legacy.


Вот не надо E1000E.

VMware Tools. Следите, чтобы они были установлены в ОС, запущены и актуальны. В VMware Tools входят драйвера устройств и разные другие компоненты, которые позволяют общаться ОС виртуальной машины с гипервизором, и наоборот. Через них происходит синхронизация времени ОС с хостом виртуализации (отключаемо), ходят heartbeat’ы, которые показывают гипервизору, что виртуалка жива, и прочее. Для работы ОС на виртуальной машине нужны как минимум драйверы сетевой карточки, дискового адаптера. Свежие версии всего вот этого входят в VMware Tools.

По умолчанию актуальные версии Windows и Linux имеют драйвера для работы с виртуальными устройствами VMware, но если у вас будут VMware Tools, то эти драйвера будут всегда свежими. Для Linux рекомендуется использовать open-vm-tools. Это не просто лучшая интеграция с ОС, но и обновление драйверов вместе с системой.

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

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

Кастомизация. При первом включении ВМ нужно кастомизировать, чтобы все настройки из облака (например выданный облаком IP-адрес) применились к ОС. После уберите эту галку от греха подальше, чтобы нечаянно не сбросить настройки ОС: SID, пароль администратора и т. п.

Конечно, все вышесказанное – упрощенная картина, слова “капитана О” и, вообще, “все же это знают”. Но, как показывает практика, более 70% ВМ в облаке содержат одну или сразу несколько описанных ошибок.

Как можно использовать прерываемые виртуальные машины Яндекс.Облака и экономить на решении масштабных задач

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



Мощности Яндекс.Облака, а точнее, инфраструктурного сервиса Yandex Compute Cloud, заметно больше тех, что задействуются пользователями. По умолчанию предполагается, что у пользователей должна быть возможность условно неограниченного масштабирования. Как минимум из этих соображений, без учета других аспектов, доступные ресурсы облачной платформы существенно превышают текущий спрос. Именно на этих свободных мощностях и создаются прерываемые виртуальные машины.

Основные ограничения


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

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

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

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

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

Сценарии использования


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

Пакетная обработка данных


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

При пакетной обработке данных речь идет об использовании десятков виртуальных машин. Применение прерываемых машин даёт очень заметную экономию. Сейчас один из главных потребителей производительных прерываемых виртуальных машин с 32 ядрами – давний клиент Яндекс.Облака, компания «Сейсмотек». «Сейсмотек» занимается обработкой сейсмических данных, которые необходимы для разведки газовых и нефтяных месторождений. Сейсморазведка предполагает работу с большими объемами информации. Данные обрабатываются пакетным методом. Компания одновременно использует до 60 с лишним прерываемых машин: суммарно до 2000 vCPU и 4000 ГБ RAM.

Проекты на Hadoop


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

Отказоустойчивость веб-сервисов


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

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

Проекты на Kubernetes


Kubernetes позволяет автоматизировать развёртывание, масштабирование и управление контейнеризированными приложениями на большом количестве узлов. Одна из основных сущностей, которую можно назвать строительным блоком Kubernetes, – под (pod). Под обеспечивает запуск одного или нескольких контейнеров на одном узле. Узел для каждого пода подбирается и назначается планировщиком Kubernetes. Если отдельный узел с запущенным подом выйдет из строя, планировщик автоматически перенесёт под на узел, работающий в штатном режиме. Такая схема поддержания работоспособности предполагает, что часть узлов можно размещать на прерываемых виртуальных машинах.

Тестирование в практике непрерывной интеграции


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

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

Использование совместно с другими сервисами Яндекс.Облака


Сервис Yandex Instance Groups позволяет в автоматическом режиме отслеживать состояние целой группы прерываемых виртуальных машин. Он может самостоятельно создавать виртуальные машины с заданными характеристиками, поддерживать нужное количество машин в группе и перезапускать прерываемые инстансы в случае их остановки. Неважно, произошла ли принудительная остановка или прошло 24 часа с момента запуска. Важно только одно: перезапуск произойдет, если есть доступные ресурсы. Yandex Instance Groups делает работу с прерываемыми виртуальными машинами удобнее, но не может гарантировать, что в конкретной зоне доступности обязательно будут свободные мощности.

Экономические показатели


Как мы упоминали, прерываемые виртуальные машины позволяют сокращать затраты на использование вычислительных ресурсов. Внутри Яндекса мы начали работать над реализацией подобной функции ещё несколько лет назад. Чтобы разделить вычислительные задачи на гарантированно исполняемые и прерываемые, потребовались немалые инвестиции. Но всё было не зря: в итоге мы повысили уровень полезной утилизации серверной инфраструктуры с 30-40% до 70-80%.

Теперь аналогичные возможности доступны всем пользователям Яндекс.Облака по нажатию одной кнопки. Простой пример: если вы переведёте половину используемых виртуальных машин со стопроцентной загрузкой ядра в формат прерываемых, то сможете сэкономить до 35-40% бюджета.

По сниженной стоимости доступны ресурсы CPU и RAM. Дисковое пространство и IP-адреса оплачиваются по обычным тарифам. Вот что показывает простой расчёт для платформы Cascade Lake.

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

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

Другие публикации про Облако на Хабре


Открытая платформа виртуализации VirtualBox

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

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

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

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

Обзор существующих настольных платформ виртуализации

Так сложилось, что в индустрии платформ виртуализации пользователи привыкли к традиционным продуктам, которые развиваются на протяжении нескольких лет и предоставляют необходимый уровень функциональности. Однако лидер в области производства ПО для виртуализации, компания VMware, ориентируется в основном на коммерческое использование своих платформ, и хотя ее мощная платформа виртуализации VMware Workstation 6 является по множеству параметров лучшей на данный момент, у нее есть один неоспоримый минус — она не бесплатна. Пользователи могут также загрузить с сайта бесплатный продукт VMware Player, предназначенный для «проигрывания» виртуальных машин, однако создавать их в нем нельзя. Продукт VMware Server направлен на использование в корпоративной среде для виртуализации серверов малых предприятий и тоже не подходит для домашних пользователей.

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

Компания Parallels также предлагает настольные платформы виртуализации Parallels Workstation для Windows и Linux хостов, а также Parallels Desktop для Mac OS X, которые тоже не являются бесплатными. К тому же, в связи с успешными продажами продукта Parallels Desktop, компания Parallels, кстати, принадлежащая российской компании SWsoft, несколько приостановила развитие продукта Parallels Workstation и довольно давно не выпускала его новых версий.

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

  • кроссплатформенность
  • поддержка большинства хостовых и гостевых операционных систем
  • возможность использования удобных средств управления виртуальными машинами

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

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

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

О платформе VirtualBox

VirtualBox

Платформа VirtualBox представляет собой настольную систему виртуализации для Windows, Linux и Mac OS хостов, поддерживающую операционные системы Windows, Linux, OS/2 Warp, OpenBSD и FreeBSD в качестве гостевых. После нескольких лет разработки, компанией InnoTek была выпущена ограниченная версия продукта с открытым исходным кодом под лицензией GNU General Public License (GPL) в январе 2007 года. Полная версия продукта с закрытым исходным кодом также доступна для бесплатного персонального использования. Если продукт будет использоваться в производственной среде необходимо приобретение лицензий, условия которых можно узнать у компании InnoTek. Кстати говоря, в данный момент компания InnoTek, помимо платформы VirtualBox, занимается разработкой новой платформы виртуализации на основе гипервизора, тесно связанной с операционной системой Windows, в сотрудничестве с компанией Microsoft. На данный момент VirtualBox включает в себя следующие возможности:

  • нативная x86-виртуализация, не требующая наличия поддержки аппаратных техник Intel VT или AMD-V (которая, однако, может быть включена в настройках)
  • дружественный пользовательский интерфейс (построенный с помощью Qt3)
  • поддержка Windows, Linux и Mac OS хостовых систем (версия для Mac OS в данный момент находится в стадии беты)
  • наличие Guest VM Additions для упрощения взаимодействия с хостовыми ОС и оптимизации их быстродействия
  • поддержка многопроцессорных и многоядерных систем (только в качестве гостевых, поддержка виртуального SMP для представления многопроцессорности в гостевых системах отсутствует)
  • стабильность (в сравнении с другими Open Source решениями)
  • поддержка виртуализации аудиоустройств
  • высокая производительность (по отзывам множества экспертов выше, чем у продуктов VMware)
  • поддержка различных видов сетевого взаимодействия (NAT, Host Networking via Bridged, Internal)
  • поддержка дерева сохраненных состояний виртуальной машины (snapshots), к которым может быть произведен откат из любого состояния гостевой системы
  • описание настроек виртуальной машины в XML-формате
  • поддержка Shared Folders для простого обмена файлами между хостовой и гостевой системами
Эмулируемое аппаратное окружение

Продукт VirtualBox эмулирует следующие компоненты аппаратного обеспечения в виртуальной машине:

  • жесткие диски эмулируются в специальном формате контейнеров VDI (Virtual Disk Images), который в данный момент не совместим с форматами виртуальных дисков других производителей
  • видеоадаптер эмулируется как стандартный VESA с 8 Мб видеопамяти, при этом установка Guest VM Additions (только для Windows и Linux хостов) позволяет увеличить производительность виртуального видеоадаптера и динамически менять размер окна виртуальной машины
  • аудиоконтроллер на базе Intel ICH AC’97
  • сетевой адаптер эмулируется как интерфейс AMD PCNet
  • в издании с закрытым исходным кодом эмулируются также контроллеры USB, при этом USB-устройства, вставленные в разъемы хоста, автоматически подхватываются в гостевой системе. Также если виртуальная машина действует как RDP (Remote Desktop Protocol) сервер, то в клиенте также будут видны USB-устройства

Платформа VirtualBox исполняет код гостевой системы нативно (прямой передачей инструкций процессору хоста). Этот подход работает хорошо для кода, исполняющегося в кольце третьей гостевой системы, для кода гостевой системы, исполняющегося в нулевом кольце, требующего привилегированных инструкций, необходим его перехват платформой виртуализации. Для этой цели VirtualBox использует оригинальный подход: код, исполняющийся в нулевом кольце гостевой системы, исполняется в первом кольце хостовой системы, которое не используется в архитектуре Intel.

Уникальные функции VirtualBox

Помимо стандартных функций, присущих большинству настольных систем виртуализации, платформа VirtualBox обладает также набором уникальных возможностей, присущих только ей:

  • Ярко выраженная модульность системы
    Платформа VirtualBox имеет модульную архитектуру с хорошо описанными компонентами и предоставляет удобные интерфейсы доступа к виртуальным машинам, которые позволяют контролировать гостевые системы как через GUI, так и через командную строку и удаленно. К тому же, компания InnoTek предоставляет отличный Software Development Kit, и поскольку код платформы открыт, не требуется дополнительных усилий, чтобы написать расширение к системе. В данный момент ведется большая работа по портированию продукта на различные хостовые платформы и разработчикам предоставляются все необходимые инструменты и интерфейсы для доработки VirtualBox.
  • Виртуальная машина может действовать как RDP-сервер
    В отличие от других платформ виртуализации, VirtualBox может действовать как RDP-сервер и управляться любым клиентом, поддерживающим протокол RDP. Также поддерживается функция USB over RDP. Стоит отметить, что компания VMware в вышедшей недавно платформе VMware Workstation 6 также предоставляет функцию Act as RDP Server, поэтому эту функцию VirtualBox на данный момент нельзя назвать такой уникальной.
  • iSCSI initiator
    Компонент iSCSI initiator является одной из закрытых частей платформы VirtualBox. Он позволяет использовать внешние устройства по протоколу iSCSI в качестве виртуальных дисков в гостевой системе без дополнительной поддержки со стороны гостевой ОС.
Поддерживаемые гостевые и хостовые системы

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

  • Операционные системы семейства Windows (2000/XP/2003/Vista)
  • Linux-платформы, включая:
    • Ubuntu 7.04 («Feisty Fawn»)
    • Ubuntu 6.10 («Edgy Eft»)
    • Ubuntu 6.06 LTS («Dapper Drake»)
    • Debian 3.1 («Sarge»)
    • Debian 4.0 («Etch»)
    • openSUSE 10.2
    • Mandriva Linux 2007.1
    • Red Hat Enterprise Linux 4
    • Univention Corporate Server 1.3-2
  • Mac OS X (в данный момент в стадии бета-тестирования)
  • OS/2 Warp (экспериментально)

Нужно отметить, что в данный момент портирование VirtualBox на платформу OS/2 еще не закончено, и на сайте разработчика присутствуют лишь общие инструкции по сборке системы. При использовании VirtualBox на этой платформе возникают многочисленные проблемы, которые предстоит решить разработчикам.

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

Гостевая ОССтатус в данный моментПримечание
Семейство ОС Windows
Windows VistaРаботает, Guest VM Additions доступныНеобходимо установить драйвер сетевой карты вручную (описано в пользовательской документации)
Windows 2000Работает, Guest VM Additions доступны 
Windows XPРаботает, Guest VM Additions доступны 
Windows Server 2003Работает, Guest VM Additions доступны 
Windows NTРаботает, Guest VM Additions доступныНекоторые проблемы на старых пакетах обновления, рекомендуется наличие пакета обновления версии не менее 6а
Windows 98Работает, но не доступны Guest VM Additions 
Семйство ОС Linux
Ubuntu 5.10/6.06 Desktop/7.04 herd 5Работает, Guest VM Additions доступны 
Ubuntu 6.06 Server/6.10Работает, Guest VM Additions доступныМогут быть проблемы с загрузкой ОС
Debian 3.1Работает, Guest VM Additions доступны 
SUSE 9/10.0/10.2Работает, Guest VM Additions доступны 
Mandrake 10.1Работает, Guest VM Additions доступны 
Fedora Core 1/4/5/6Работает, Guest VM Additions доступны 
Red Hat Enterprise Linux 3 and 4Работает, Guest VM Additions доступны 
Red Hat Linux 9Работает, Guest VM Additions доступны 
Red Hat Linux 7Не работает 
Linspire 4.5Работает, Guest VM Additions доступны 
Slackware 10.1Работает, Guest VM Additions доступны 
Conectiva 10Работает, Guest VM Additions доступны 
Xandros 3Не работает 
Семейство ОС BSD
FreeBSDРаботает частичноИзвестны проблемы с версией для FreeBSD 6.2
PC-BSD 1.3Не работает 
OpenBSDРаботает, но не доступны Guest VM Additions 
Другие ОС
DOSРаботаетОграниченно тестировалось
OS/2Работает частичноНеобходимо наличие поддержки Intel VT
Novell Netware 6.5Не работает 
BeOS 5Не работает 
SyllableНе работает 
VisopsysНе работает 
ReactOSНе работает 
Solaris 10Работает частичноНе на всех версиях работает стабильно, проблемы с сетью

Компания InnoTek заявляет также, что практически все операционные Linux-системы с версией ядер 2.4 и 2.6 должны работать в качестве гостевых. Для достижения лучшей производительности рекомендуется версия ядра 2.6.13.

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

Принцип работы VirtualBox

Графический интерфейс VirtualBox имеет два основных окна: главное и консоль виртуальной машины.

Главное окно управления VirtualBox

 

Консоль виртуальной машины

При старте виртуальной машины VirtualBox обычно запускается три процесса, которые можно наблюдать в диспетчере задач в Windows-системах или системном мониторе Linux:

  1. Графический интерфейс окна управления.
  2. Еще один похожий процесс, запущенный с параметром startvm, который означает, что GUI будет работать в качестве оболочки для виртуальной машины.
  3. Автоматически создаваемый сервисный процесс VBoxSVC, необходимый для того, чтобы отслеживать количество и статусы запущенных виртуальных машин (поскольку они могут быть запущены различными способами).

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

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

  • Стандартная клиент-серверная архитектура, позволяющая контролировать поведение виртуальных машин различными способами, используя COM/XPCOM API. Например, гостевая система может быть запущена через GUI, а остановлена с помощью утилиты командной строки VboxManage. Эта утилита может также выполнять некоторые функции, которые не доступны из графического интерфейса пользователя.
  • Архитектура frontend/backend, представляющая собой инкапсуляцию x86-виртуализации в библиотеках VBoxVMM.dll на Windows платформе и VBoxVMM.so на Linux (backend) и реализацию управления виртуальными машинами несколькими способами (frontend):
    • Пользовательский GUI на основе Qt
    • Утилита VboxManage
    • GUI, основанный на SDL, обладающий более широкими возможностями, чем GUI на Qt и направленный на использование виртуальных машин в производственной среде
    • Возможность управления виртуальными машинами с помощью встроенного RDP-сервера в виртуальной машине

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

Сетевое взаимодействие между виртуальными машинами в VirtualBox может быть трех типов:

  • NAT
    Виртуальная машина «прячется» за NAT-сервером хоста и может инициировать соединения во внешнюю по отношению к нему сеть, но из внешней сети инициировать соединение с такой виртуальной машиной нельзя.
  • Host Interface Networking
    В этом случае виртуальная машина разделяет ресурсы физического адаптера с хостовой операционной системой и доступна из внешней сети как независимый компьютер.
  • Internal Networking
    Тип сетевого взаимодействия для построения виртуальной сети в пределах хоста, когда не требуется выход из виртуальной машины во внешнюю сеть и доступ к ней извне.
Связь эмулятора виртуальных машин QEMU и VirtualBox

Компания InnoTek, на протяжении нескольких лет разрабатывавшая платформу VirtualBox, опиралась в своих разработках на один из старейших эмуляторов виртуальных машин QEMU. Проект VirtualBox связан с этой платформой в двух отношениях:

  • c одной стороны, при создании эмулируемых устройств компания InnoTek ориентировалась на представления виртуального оборудования в QEMU,
  • с другой стороны, InnoTek в сотрудничестве с создателями QEMU использовала механизм рекомпиляции в качестве обработчика исключительных ситуаций, когда монитор виртуальных машин (Virtual Machine Monitor) платформы VirtualBox не может корректно обработать исключительную ситуацию при выполнении кода гостевой системы в real mode.

По заявлениям разработчиков VirtualBox техники, заимствованные ими из QEMU, позволили им сэкономить значительное количество времени и повысить надежность платформы.

Возможности открытой разработки VirtualBox

Помимо полнофункциональных версий VirtualBox для свободного использования, компания InnoTek предлагает ограниченные версии платформы с открытым исходным кодом для различных хостовых систем. Исходный код VirtualBox хранится в системе управления версиями Subversion (svn) и может быть скачан с сайта компании InnoTek. Чтобы извлечь исходный код платформы из онлайнового сервера Subversion, в операционной системе Linux необходимо выполнить команду: svn co http://virtualbox.org/svn/vbox/trunk vbox

Также последнюю версию исходных кодов системы VirtualBox единым архивом можно скачать со страницы загрузок по адресу: http://www.virtualbox.org/wiki/Downloads.

Принцип организации исходного кода можно узнать из Wiki на сайте InnoTek по адресу: http://www.virtualbox.org/wiki/Source_code_organization.

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

И, конечно, каждый может принять участие в разработке открытой версии платформы, войдя в состав сообщества Open Source на сайте virtualbox.org.

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

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

Среди бесплатных платформ VirtualBox, определенно, одна из лучших на данный момент. При этом компания InnoTek ориентируется не только на конечных пользователей. Наличие таких функций, как RDP сервер и iSCSI initiator, говорит, что в будущем платформа может серьезно использоваться в производственной среде. Дружественный интерфейс пользователя вкупе с высокой производительностью VirtualBox сейчас имеют множество приверженцев во всем мире.

Между тем, у VirtualBox есть и некоторые проблемы: прежде всего, это проблемы со стабильностью на многих хостовых платформах и отсутствие совместимости формата виртуальных дисков с другими системами виртуализации. Также, на данный момент функциональность системы уступает коммерческим платформам (в частности, VMware Workstation 6), однако темпы развития VirtualBox говорят, что в скором времени ее функциональность значительно увеличится. Попробуйте использовать виртуальные машины VirtualBox, и, возможно, эта платформа займет достойное место среди необходимого программного обеспечения на вашем десктопе.

Что такое VirtualBox и как ей пользоваться

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

Что такое VirtualBox

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

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

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

Из этого вытекает и ответ на вопрос — отличается ли установка операционной системы на виртуальную машину от установки на реальный ПК? Ответ будет — нет! В некоторых случаях при работе с VirtualBox могут понадобиться особые настройки машины, но сам процесс установки ОС идентичен для обоих вариантов.

Для чего нужна VirtualBox

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

  • Знакомство с другими операционными системами. В независимости от того, какая операционная система установлена на вашем компьютере, в VirtualBox можно установить любую из поддерживаемых ею, а это: множество дистрибутивов Linux, FreeBSD, MacOS, любая из версий Windows, Android и другие. Не нужно бояться того, что такой установкой вы сломаете реальную систему, или удалите важные данные — виртуальная машина работает изолированно и вы можете экспериментировать с ней как пожелаете. Когда она вам больше будет не нужна, просто удалите, и она не оставит никаких следов за собой;
  • Еще один способ применения VirtualBox — необходимость запуска программы, не работающей в вашей основной ОС или ее версии. Например вы работаете, в Windows и вам понадобилось приложение, которое доступно только под Linux. Иногда единственным выходом будет установка Linux в VirtualBox и использование нужного ПО оттуда. Подробная же ситуация может быть, когда вам нужна программа, работающая лишь под старыми версиями Windows;
  • Тестирование различного ПО. Может случиться так, что вам понадобится воспользоваться какой либо программой, или вам в общем часто приходится тестировать различные приложения, при этом вы не особо желаете засорять свою рабочую машину. Снова же, на помощь придет VirtualBox. Кроме того, используя виртуальную машину, вы можете не бояться заразить свой компьютер вирусами, даже если подобное произойдет с запущенной в VirtualBox ОС.

Это самые распространенные способы применения виртуальной машины среди обычных пользователей, но также VirtualBox часто используют:

  • Разработчиками, для тестирования своего продукта на различных платформах;
  • Учащимися для практики в построении сети, и тому подобное.

Установка VirtualBox

Ничего сложного и необычного в установке VirtualBox на компьютер нет. Пользователи Windows могут скачать самую свежую версию программы со страницы загрузки официального сайта. После этого запускаете скачанный exe файл и следуете подсказками установщика.

Пользователи Linux в большинстве случаев, имеют возможность установить VirtualBox из репозиториев своих дистрибутивов. Например в Ubuntu или Debian это делается командой:

sudo apt-get install virtualbox

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

Создание Виртуальных машин в Virtualbox

Для создания виртуальной машины нужно запустить VirtualBox и нажать на верхней панели кнопку Создать:

Откроется окно создания виртуальный машины. На первой вкладке нужно задать имя операционной системы, ее тип и версию. Давайте для примера создадим виртуальную машину для установки Ubuntu.

В поле Имя указываем имя нашей виртуальной машины — Ubuntu. Так как по этому имени вы будете идентифицировать систему, лучше задавать более информативное имя. Так мы будем устанавливать 64 битую Ubuntu 16.10, то и адрес это в названии: Ubuntu 16.10 x64. Если вы пишите правильное название ОС в поле Имя, как правило Тип определяется сам, если этого не происходит, можно выбрать его вручную. Аналогично с версией. Нажимаем Next:

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

При определении объема оперативной памяти для виртуальной машины, можно опираться на свой опыт работы с устанавливаемой системой, если он есть, а также на общее количество ОЗУ на вашем компьютере. Но желательно не отдавать виртуальной машине больше, чем половину реального объема оперативной памяти вашего ПК.

В данном случае VirtualBox рекомендует нам 768 Мб, мы видим, что всего у нас на компьютере 3Гб, поэтому можно позволить себе и больше. Выделим 1Гб:

Нажимаем Next.

Теперь необходимо создать жесткий диск для нашей Ubuntu. Физически, жесткий диск VirtualBox — это особый файл, который будет храниться на одном из разделов или дисков (место можно будет указать) вашего ЖД.

VirtyualBox предлагает 3 варианта дальнейших действий:

  1. Не подключать виртуальный жесткий диск — в этом случае его нужно будет самостоятельно подключить уже после создания виртуальной машины;
  2. Создать новый виртуальный жесткий диск — тут, надеюсь, все ясно;
  3. Использовать существующий виртуальный жесткий диск — этот вариант подойдет тем, кто уже использует VirtualBox, и у кого есть ранее созданные виртуальные жесткие диски.

Так как мы впервые создаем виртуальную машину, нам подойдет второй вариант, который и отмечен по умолчанию — Cоздать новый виртуальный жесткий диск. Жмем Создать:

На новой вкладке определяемся с типом виртуального жесткого диска. Здесь также есть несколько вариантов на выбор, и отталкиваться нужно от того, планируете ли вы в будущем использовать этот диск с другими программами виртуализации, например VMware или Paraleles. В большинстве случаев, обычные пользователи подобное не планируют, поэтому можно оставить все как есть и использовать формат диска стандартный для VirtualBox — VDI. Жмем Next:

Выбираем формат хранения жесткого диска: динамический или фиксированный:

Динамический жесткий диск на физическом жестком диске вашего ПК всегда будет занимать ровно столько места, сколько будет «весить»установленная на него ОС со всеми программами и файлами. То есть, если во время создания виртуальной машины вы создали диск, объемом 100 Гб, но после установки ОС будет занято лишь 25 Гб то и файл жесткого диска будет занимать лишь 25 Гб. Если вы заберите его на 50 Гб, «весить» он будет аналогично. Думаю понятно — динамический жесткий диск будет увеличиваться до максимально заданного значения по мере экстрактами виртуальной машины.

Если выбрать тип диска — фиксированный, VirtualBox — сразу создаст файл такого объема, какой вы укажите, и меняться он не будет.

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

Завершающим шагом будет задание имени, расположения и объема виртуального жесткого диска.

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

Если вы желаете указать какое-то особое место хранения виртуального диска, нажмите на кнопку папки справа от поля ввода имени жесткого диска, и укажите новый путь. Я же оставлю как есть.

И, наконец указываем объем жесткого диска. VirtualBox здесь снова предлагает нам свой вариант, который будет зависеть от типа устанавливаемой ОС. Вы же отталкиваетесь от того, сколько свободного места у вас есть на реальном жестком диске, а также как активно и каким образом вы будете пользоваться виртуальной машиной. Я указываю 50 Гб. Затем нажимаем Создать:

Виртуальная машина готова:

И перед началом установки операционной системы осталось указать VirtualBox только образ iso файла нашей Ubuntu или установочный диск. Это можно сделать как через настройки виртуальной машины, для этого нужно в настройках перейти на вкладку Носители и в поле указать путь к iso файлу:

Так и во время старта виртуальной машины:

И ждем появления загрузчика установщика ОС:

Все, дальнейшая установка любой ОС на VirtualBox не отличается от установки ее на реальный ПК. Если это та же Ubuntu, у нас об этом есть как видео на канале, так и текстовая статья.

На этом с созданием виртуальных машин в VirtualBox разобрались. Переходим к дополнениям гостевой оси.

Дополнения гостевой оси

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

Установка дополнений гостевой ОС в Windows

Чтобы установить дополнения гостевой ОС для работающей в VirtualBox Windows, в запущенной ОС из меню виртуальной машины, что по умолчанию находится в нижней части экрана или на верхней панели, выберите пункт Устройства и из него выберите Подключить образ диска Дополнений гостевой ОС:

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

Установка дополнений гостевой ОС в Linux

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

В первом случае, после подключения Дополнений гостевой оси, система может предложить установить их автоматически. Для этого нужно будет просто ввести пароль администратора:

Затем начнется установка:

Если автоустановка не запустилась, то на примере Ubuntu нужно сделать в терминале следующее:

  • Переходим в каталог подключенного диска:
    cd /media/geek/VBOXADDITTIONS_5.1.18_114002

    Вместо geek пишите имя своего пользователя. Версия дополнений гостевой ОС может отличаться, поэтому лучше после ввода VBOXADDITIONS воспользоваться клавишей TAB — она автоматически добавит окончание.

  • Теперь нам нужно запустить скрипт VBoxLinuxAdditions.run, вводим:
    sudo sh ./VBoxLinuxAdditions.run
  • После установки также перезагружаем гостевую систему.

Итог

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

Предыдущая запись
Как изменить формат документа по умолчанию в LibreOffice

 

Метки Кроссплатформенное ПОНастройка ПОРабота на компьютере

Что такое виртуализация и как работает виртуальный сервер / VPS.house corporate blog / Habr

Важность и применение виртуализации простирается далеко за пределы виртуальных машин.

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

Определение виртуализации

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

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

Виртуальные машины (VM)

Эра VM берёт своё начало от небольшого числа мейнфреймов 1960-х годов, в первую очередь от IBM 360/67, которые впоследствии стали общепринятыми в мире мэйнфреймов в 1970-х годах. С появлением Intel 386 в 1985 году, VM заняли своё место в микропроцессорах, которые являются сердцем персональных компьютеров. Современная функция виртуальной машины, внедрённая в микропроцессоры с необходимой аппаратной поддержкой как с помощью гипервизоров, так и с помощью реализации на уровне ОС, имеет важное значение для производительности вычислений, что крайне важно для захвата машинных циклов, которые в противном случае были бы потеряны при современных высокопроизводительных 3+ ГГц.

Виртуальные машины также обеспечивают дополнительную безопасность, целостность и удобство, учитывая, что они не нуждаются в больших вычислительных затратах. Более того, дополнительно можно расширить возможности виртуальных машин, добавив функции эмуляторов для интерпретаторов, таких как виртуальная машина Java, и даже функции полных симуляторов. Запуск Windows под MacOS? Запросто. Код Commodore 64 на вашем современном ПК с ОС Windows? Без проблем.

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

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

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

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

Один реальный мегабайт оперативной памяти на IBM 360/67, например, может поддерживать полное 24-битное адресное пространство (16 МБ), включенное в архитектуру компьютера, а при правильной реализации каждая виртуальная машина может при этом иметь и свой собственный полный набор виртуальной памяти. В результате этих новшеств, аппаратные средства, разработанные для работы с одной программой или операционной системой, могут совместно использоваться несколькими пользователями даже если у них установлены разные операционные системы или требуемый объем памяти превышает реальную пропускную способность. Преимущества виртуальной памяти, как и виртуальных машин, многочисленны: разграничение пользователей и приложений, усовершенствованная безопасность и целостность данных, а также значительно улучшенный RoI. Звучит уже знакомо?

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

После виртуализации машин и памяти, а также их внедрения в недорогие микропроцессоры и ПК, следующим шагом стала виртуализация рабочего стола и, следовательно, доступность приложений, как однопользовательских, так и совместных. Опять же, мы должны вернуться к модели режима разделения времени, описанной выше, но в этом случае мы имитируем рабочий стол ПК на сервере и удаляем графику и другие элементы пользовательского интерфейса по сетевому соединению через соответствующее клиенту программное обеспечение и часто через недорогое и легко управляемое и защищенное устройство «тонкий клиент». Каждая ведущая операционная система сегодня поддерживает эту возможность в той или иной форме, с широким набором дополнительных аппаратных и программных продуктов, включая VDI, систему X Windows и очень популярный (и бесплатный) VNC.
Виртуальные хранилища

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

Повсеместное внедрение облачного хранилища (не только в качестве резервного копирования, но и как основного хранилища) станет более распространённым явлением, т.к. и проводные и беспроводные сети обеспечивают скорость передачи данных на уровне 1 Гбит/с и выше. Данная возможность уже реализована в Ethernet, 802.11ac Wi-Fi и одной из самых ожидаемых высокоскоростных сетей — 5G, которая на данный момент проходит тестирование во многих странах.

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

Даже в мире сетей все более и более применяется концепция виртуализации, технология «сеть как сервис» (NaaS) в настоящее время во многих случаях представляет собой перспективный и крайне востребованный вариант. Эта тенденция будет лишь популяризироваться ввиду дальнейшего внедрения виртуализации сетевых функций (NFV), которая по крайней мере точно станет объектом наибольшего интереса у операторов и провайдеров особенно в сфере мобильной связи. Примечательно, что сетевая виртуализация может предоставить реальную возможность для мобильных операторов расширить спектр своих услуг, увеличить пропускную способность и тем самым повысить ценность и привлекательность своих услуг для корпоративных клиентов. Вполне вероятно, что в течение следующих нескольких лет все большее число организаций будут применять NFV в своих собственных и даже в гибридных сетях (опять же, фактор привлекательности клиентов). В то же время VLAN (802.1Q) и виртуальные частные сети (VPN) со своей стороны вносят огромный вклад в подходы к использованию современной виртуализации.
Виртуализация снижает затраты

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

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

Сама виртуализация не является сменой парадигмы, хотя часто её описывают именно так.

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

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

Развитие виртуализации в данной области происходит благодаря существенной экономической инверсии операционной модели ИТ, которая берёт свои корни в начале коммерциализации информационных технологии.

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

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

Результатом этой эволюции является то, что мы наблюдаем сейчас. Поскольку компьютеры и вычислительная техника были основой ИТ, мы переключили внимание на обработку информации и возможность её предоставления в любое время и в любом месте. Эта «инфоцентричность» — сподвигла эволюцию мобильной и беспроводной эпохи, и как результат, конечный пользователь может в любой момент, независимо от места, получить эту информацию и иметь ее под рукой.

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

Оригинальная статья: What is virtualization?

Для чего нужны виртуальные машины?

Если вы хоть раз устанавливали какие-то программы, проводили над своим компьютером какие-то эксперименты, то прекрасно знаете о том, сколько времени уходит на восстановление его первозданного состояния. Нередко ради этого приходится полностью переустанавливать систему.

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

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

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

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

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

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

виртуальная машина vmware

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

Частенько пользователи ищут сравнение виртуальных машин, пытаясь выбрать среди них самую лучшую. Необходимо отметить, что в спорах нередко всплывает та самая VMware, обладающая рядом несомненных преимуществ. Разработчики программы постоянно вносят в свой продукт поддержку практически всех существующих ОС, включая те, которые только-только успели выйти. В частности, именно это приложение в свое время позволяло запустить Windows 8, тогда как в популярном Virtual Box система запускаться отказывалась напрочь.

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

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

Что такое виртуальная машина? | Белые окошки

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

Процессная предназначена для выполнения конкретных задач или имитации определенной программы.

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

ВМ исполняет внутри себя код установленной на нее операционной системы (гостевой ОС). Он может отличаться от языка, на котором написана основная (или хостовая) ОС компьютера. Простыми словами, внутри реальной машины эмулируется еще одна: Linux внутри Windows (или наоборот), Android внутри Mac и т.п. Так можно запускать на компьютере приложения, которые не предназначались для хостовой ОС.

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

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

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

VirtualBox

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

1. Изоляция от хостовой операционной системы

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

ВМ – это закрытая среда. Исполняемый в ней вредоносный код не проникнет в основную систему и не навредит ей.

2. Сохранение результатов работы

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

3. Быстрое восстановление

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

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

4. Конфигурацию ВМ можно сохранять под видом устройства

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

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

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

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