Виртуальная машина, что это такое, простыми словами

Обновлено 26.11.2020

Виртуальная машина, что это такое

Всем привет, ранее мы с вами рассмотрели, что такое виртуализаиция, и для чего она используется. Как вы уже знаете, за счет виртуализации, на хосте vmware esxi и Hyper-V запускаются виртуальные машины. Сегодня мы разберем, что из себя представляют эти виртуальные машины, какие они бывают.

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

Виды гипервизоров

Основными игроками на данном рынке, являются конечно, компания VMware с продуктом vmware esxi и MS с Hyper-V, proxmox или openstack. Раньше был XenServer, но он сдался и перестал вести конкуренцию с данными компаниями. Это виртуализация первого уровня, имеется в виду, что сами гипервизоры ставятся на голое железо, а уже поверх них виртуальные машины. Существуют еще и гипервизоры второго уровня, ее еще называют вложенная виртуализация, те которые ставятся в операционной системе в виде программы и дальше позволяют уже внутри ОС, создавать виртуальные машины, это называется еще паравиртуализация. Примерами может быть VMware Workstation или Virtual Box. На сайте виртуализации посвящено более 300 статей, советую ознакомится.

Подробнее про вложенную виртуализацию - https://docs.microsoft.com/ru-ru/virtualization/hyper-v-on-windows/user-guide/nested-virtualization

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

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

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

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

Если обратиться к Википедии, то (Virtual Machine или VM) - это система в задачи которой входит эмулирование аппаратного обеспечения или различных платформ. Сама виртуальная платформа умеет эмулировать, как отдельные аппаратные части, так и целые компьютеры или другое оборудование, например сетевые роутеры Juniper или Cisco, которые уже давно выпускают аналоги своих физических железок в виде виртуальных эплаинсов (Виртуальных машин), которые могут работать на физических серверах с гипервизорами и не привязываться к оборудованию, благодаря миграции.

https://ru.wikipedia.org/wiki/Виртуальная_машина

Где применяются виртуальные машины?

Область применения виртуальных машин огромна, я постараюсь вам ниже перечислить основные направления:

  • Равномерное распределение ресурсов мощных серверов - Это нормальная практика, что при покупке мощного физического сервера, вы хотите использовать его по полной программе. Если вы просто поставите на него операционную систему и развернете сервис, то с большой вероятностью, сервер будет сильно недозагружен. Выходом из такой ситуации и консолидация ресурсов, это установка гипервизора, в рамках которого вы будите создавать виртуальные машины, у каждой будет своя задача, и вы сможете максимально задействовать все доступные возможности железа. Так например у меня в компании огромный штат серверов Power Edge R740, на борту которого 1,5 тб ОЗУ и два мощных серверных процессора Intel по 18 ядер, вот их виртуальные машины смогут с лихвой использовать и принести гораздо больше пользы. Плюсом такого решения является, то что виртуальные машины независимы друг от друга, и их можно обслуживать не затрагивая соседей.
  • Тестирование новых операционных систем - Данное решение подойдет, для изучения новых операционных систем, так и для тестирования каких-то функций, ролей, настроек. Очень мощным плюсом в таком подходе, то что вы все делаете в рамках изолированных виртуальных машин, сломав которые вы не нанесете вреда своей инфраструктуре. Еще есть огромный бонус, это снапшоты, которые позволяю вам быстро откатываться на любое состояние виртуальной машины, удобно при тестах.
  • Запуск старого и несовместимого программного обеспечения - Простой пример, у вас есть старое ПО, которое уже давно не обновляется и не поддерживается, например со стороны Windows 10, или принтер, который не имеет драйверов для той же десятки и вы не хотите покупать новое, когда работает старое. Выходом из ситуации является установка виртуальной машины с нужной версией ОС, где вы легко будите использовать нужное, устарелое ПО или оборудование, которое легко пробрасывается внутрь виртуальной машины. Кроме того, запускать устаревшее программное обеспечение таким способом намного безопаснее, поскольку оно изолировано внутри виртуальной машины.
  • Разработка программного обеспечения для других платформ - Еще одно важное применение виртуальных машин - это упрощение рабочего процесса для тестирования приложений и веб-сайтов на нескольких платформах. Например, предположим, что вы разрабатываете игру, которая работает как на настольных, так и на мобильных платформах. Вы можете использовать эмуляцию для тестирования различных версий прямо на вашем компьютере. Вместо того, чтобы перемещать файлы установщика туда и обратно на телефон и другие тестовые компьютеры, вы можете просто имитировать их. Виртуализация также позволяет компилировать исполняемые файлы других типов. Даже если вы используете кросс-платформенный Фреймворк, вы можете скомпилировать только файлы APP на Mac и файлы EXE на Windows. Вместо двойной загрузки для каждой сборки виртуализация упрощает процесс. Иногда нет замены запуску приложений на реальном оборудовании, поскольку эмуляция не идеальна. Но для многих целей эмуляция - это удобный способ получить доступ к другим ОС без особых проблем.
  • Безопасное обращение с потенциально вредоносным ПО - Как мы видели, одним из основных преимуществ виртуальной машины является ее изоляция от вашей основной системы. Это означает, что вы можете пойти на риск, которого обычно избегаете. Вы легко можете проверять в рамках виртуальной машины антивирус и вирусы, вредоносное ПО, методы лечения компьютера. При этом не затрагивая вашу основную систему.

Форматы файлов виртуальных машин

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

Виртуальная машина (VM) в Vmware esxi

У виртуальных машин vmware esxi, основной формат файлов это vmdk, в данном файле хранится по сути сам жесткий диск подключаемый к виртуальной машине. На скриншоте ниже представлены файлы реальной виртуалки, про остальные форматы советую прочитать в Описание форматов ESXI.

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

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

Виртуальная машина (VM) в MS Hyper-V

Виртуальная машина microsoft, не может к счастью, а может быть и наоборот, таким большим набором файлов. Безусловно, удобно иметь один отдельный файл с жестким диском и один с настройками BIOS и железа. У Hyper-V есть старый формат и новый. Старый это vhd, был до 2010 года в версии Hyper-V 2.0. С выходом Windows Server 2012 R2, и Hyper-V 3.0 формат файла поменяли на vhdx. В файлике xml хранятся настройки виртуальной машины.

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

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

Виртуальная машина (VM) в xenserver

Xenserver имеет формат  XVA у виртуальной машины. На скришоте приведен пример.

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

Виртуальная машина (VM) в VMware Workstation

VMware Workstation, так же как и Vmware esxi хранит фалы в тех же форматах vmdk. Заметьте структура строения виртуальной машины такая же. Очень удобно, но чтобы ее завести на гипервизоре ESXI, необходимо произвести конвертирование vm.

VMware Workstation

Виртуальная машина (VM) в VirtualBox

У VirtualBox естественно свой формат виртуальной машины, а именно vdi. Его так же можно переконвертировать во что вам нужно.

VirtualBox

Виртуальная машина (VM) в Proxmox

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

Proxmox использует формат qcow2

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

Что такое KVM - это виртуальная машина на основе ядра (KVM) - это технология виртуализации с открытым исходным кодом,  встроенная в Linux. В частности, KVM позволяет превратить Linux в гипервизор, который позволяет хост-машине запускать несколько изолированных виртуальных сред, называемых гостевыми или виртуальными машинами (ВМ).

Если у вас Linux 2.6.20 или новее, у вас есть KVM. KVM был впервые анонсирован в 2006 году, а годом позже был объединен с основной версией ядра Linux. Поскольку KVM является частью существующего кода Linux, он немедленно извлекает выгоду из каждой новой функции, исправления и усовершенствования Linux без дополнительной разработки.

Как работает KVM?

KVM превращает Linux в гипервизор типа 1 (без операционной системы). Всем гипервизорам необходимы некоторые компоненты уровня операционной системы, такие как диспетчер памяти, планировщик процессов, стек ввода/вывода, драйверы устройств, диспетчер безопасности, сетевой стек и многое другое - для запуска виртуальных машин. KVM имеет все эти компоненты, потому что это часть ядра Linux. Каждая виртуальная машина реализована как обычный процесс Linux, запланированный стандартным планировщиком Linux, с выделенным виртуальным оборудованием, таким как сетевая карта, графический адаптер, процессор (ы), память и диски.

Виртуальные машины в публичных облаках

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

  • AWS - Это публичное облако компании Amazon, там по мимо создания виртуальных машин, можно еще делать кучу всего, например передать туда делегирование вашей DNS зоны. Гипервизор там называется EC2 – гипервизор Nitro.
  • MS Azure - Это публичное облако компании Microsoft, там все так же под капотом будут виртуальные машины на Hyper-V.
  • Google Cloud - Публичное облако гугл, так же позволяет арендовать сотни различных конфигураций виртуальных машин
  • Яндекс Облако - отечественный аналог, так же решил попробовать свои силы на этом поприще
  • Куча мелких сервисов по типу Даталайн, МТС, Softline, Специалист, Билайн и многие другие, они делают виртуальные машины на базе купленного VMware Cloud Platform.

Резюме

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

Автор - Сёмин Иван

One Response to Виртуальная машина, что это такое, простыми словами

  1. Жорик:

    Здравствуйте! Спасибо, что вы объяснили данный материал простым языком, я честно не знал, что концептуально виртуальная машина — это просто набор файлов, раньше думал, что это некая фантастика)))

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

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