Гипервизоры

Гипервизоры, image #1

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

Разумеется, установка любой системы на "голое" железо - это самый обычный способ, который везде применяется. Его плюс в том, что система полностью использует аппаратные ресурсы устройства. Минус в том, что для бизнес-задач и в госсекторе покупать каждое устройство на каждую систему - это накладно финансово, да и управлять и администрировать тяжело. Но системы на реальном железе - это основа, без этого никак. Все системы, чем мы пользуемся, установлены на реальном железе.

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

Для развертывания виртуальных машин используют гипервизоры (hypervisor) - так сказать, оболочки и инструменты для запуска и настройки виртуальных машин. Они бывают двух типов: «bare»-metal и hosted.

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

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

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

Второй тип hosted подразумевает собой установку гипервизора в виде программы на существующую систему. То есть гипервизор идет, как обычная программа для Windows, Linux или Mac OS. Его разворачивать легче, именно его тип я рассматривал когда-то в предыдущих статьях. Но для работы его не используют, так как явно медленнее, потому что гостевая система делит аппаратные ресурсы с хостовой (основной) системой, от того даже основная система начнет подвисать.

Это Vmware Workstation - программа для эмуляции виртуальных машин, работает из под Windows, является гипервизором второго типа.
Это Vmware Workstation - программа для эмуляции виртуальных машин, работает из под Windows, является гипервизором второго типа.

Если с профессиональной точки зрения рассмотреть, то гипервизоры первого типа - это Vmware ESXi, Proxmox (хотя про него говорят, что он второго типа, потому что основан на Debian и для его работы разворачивается система Debian без графической оболочки,где и крутится Proxmox, но по принципу работы он относится к первому типу), XenCitrix, Hyper-V(ее и вовсе считают гибридной версией) и OpenStack. Они все устанавливаются на реальное устройство, то есть идут не как программы, а как специальные системы для эмуляции операционных систем и прочих сервисов. Если их развернуть на мощном сервере или ПК, то по скорости работы будут почти схожи с реальными системами.

Гипервизоры второго типа - это программы виртуальных машин для эмуляции систем. Конкретно, это Vmware Workstation, VirtualBox, DosBox и прочие.

Если с игровой точки зрения рассмотреть, то гипервизоры первого типа - это операционные системы Lakka, RetroPie и подобные, которые служат системой, чтобы запускать старые игры, эмулируя тогдашние Sega Mega Drive, NES, MS-DOS, PlayStation 1 и т.д. То есть нам не нужна Windows, Linux или Mac OS, чтобы запускать старые игры. Уже как бы есть системы-эмуляторы.

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

А гипервизоры второго типа - это известные нам игровые эмуляторы типа Gens+, Kega Fusion, RetroArch, VirtualNES, тот же DosBox и прочие. Их запускаем из под Windows, Linux или Mac OS.

Это Kega Fusion - эмулятор Sega, запущен под Windows XP. Конечно, старенькие игры будут работать хорошо, но небольшие проседания все же будут из-за эмуляции системы внутри реальной системы
Это Kega Fusion - эмулятор Sega, запущен под Windows XP. Конечно, старенькие игры будут работать хорошо, но небольшие проседания все же будут из-за эмуляции системы внутри реальной системы

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

Для примера: мы хотим играть в игры от Sega, Nintendo и PS1. Когда не было эмуляторов, мы покупали сами игровые приставки и картриджи/диски к ним. Сейчас можно просто установить либо программу-эмулятор RetroArch, скачать к нему из интернета все, что нужно, и запускать из под Windows все эти игры. Или же, если завалялось старый комп или ноутбук, или если есть мини-ПК с отличными характеристиками, то установить туда Lakka, скачать туда и играть во все, что пожелаешь.

Если руки растут с нужного места, этот мини-ПК можно превратить в игровую приставку All-in-One. И играть через него в игры от Sega, Nintendo, PS1, даже PS2. Разумеется, установив необходимые эмуляторы или же системы для эмуляции. Иначе откуда столько жалких копий Sega и Nintendo, которые внешне им подобны, но изнутри это не оригиналы?
Если руки растут с нужного места, этот мини-ПК можно превратить в игровую приставку All-in-One. И играть через него в игры от Sega, Nintendo, PS1, даже PS2. Разумеется, установив необходимые эмуляторы или же системы для эмуляции. Иначе откуда столько жалких копий Sega и Nintendo, которые внешне им подобны, но изнутри это не оригиналы?

В домашних условиях, если включить фантазию, можно развернуть домашний виртуальный сервер. Рекомендуется Proxmox, если есть сисадминские навыки, внутри него можете держать все, что хотите, и быстро переключаться через другой комп между Windows XP и Windows 11, допустим. Вдобавок, он бесплатен.

Приведу пример. Есть два устройства: один старенький комп, другой макбук помощнее. На стареньком накатил Proxmox в качестве системы. Через другой комп по веб-интерфейсу установил гостевые системы Windows XP, Ubuntu, Fedora, даже MS-DOS оригинальный. И через него можно переключаться между системами без перезагрузок. Например, программировать через Ubuntu, пользоваться обычной Windows, играть в игры в MS-DOS - это все в гостевых системах через браузер. Ну, и спокойно работать на своем Маке. Учитывая, что вышеназванные системы жрут лишь ресурсы того старенького компа, а не макбука, чью память жрет только браузер, то эти системы будут работать через браузер, словно они установлены на самом макбуке, правда, с некоторой потерей производительности. Сам пример, конечно, не очень, так как у гипервизора первого типа немного иное назначение. Обычно для разворачивания облака хранилища данных.

Если нет сисадминских навыков, тогда просто устанавливаете условные Vmware Workstation, VirtualBox, если хотите параллельно управлять другой системой (на хосте - Windows 10, а в качестве гостевой - Linux). Но учтите: гипервизор второго типа обычно применяется в целях тестирования. Ну или если из под Linux, который обычно жрет ресурсов мало, нужно запускать Windows для своих дел.

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

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

Почему не рассматриваю другие варианты гипервизоров первого типа? Vmware ESXi - это уже платный продукт, бесплатно можно его опробовать, но его используют крупные компании. Вдобавок, он ушел из России, в ближайшие десять-двадцать лет он нам ни к чему, как и многие зарубежные продукты. Hyper-V - он есть в Windows Server, он попроще, но он чисто для Windows и туда можно накатить в качестве гостевых разве что Windows. OpenStack бесплатен, но неизвестен особо. XenCitrix - у него немного другой принцип работы и назначение. Proxmox же доступен и бесплатен, а также конкурирует с Vmware ESXi по функционалу в плане профессионального решения. Есть еще и российские аналоги, но они пока что недоделанные.

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

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

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

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

Например, сисадмины обычно устанавливают в качестве реальной системы Linux для программирования и администрирования, через виртуалку работают в среде Windows для обычных задач и хотелок, а с умением пробрасывать видеокарту (так умеют только гипервизоры первого типа, ибо напрямую с аппаратной частью контактируют) могут сделать Windows для игр, хотя она идет, как виртуалка.

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

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

37 views·1 share