1 minute read

Данная статья несет в себе базовую информацию о понятии Виртуализация. Это необходимо для понимания контейнеризация, о которой написано тут и [тут]https://zvlb.github.io/blog/containerization-namespaces/).

Virtual Machine monitor

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

nginx-upstream-response-time-request-time

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

На самом деле современные Virtual Machine Monitor’ы довольно умные и они могут распределять ресурсы одной виртуальной машины для работы другой, если они простаивают и если корректно задать инструкции для VMM, но для понимания базовых принципов виртуализации это избыточно.

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

Есть 2 типа полной виртуализации:

  • Аппаратная виртуализация, она же type 1
  • Программная виртуализация, она же type 2

Аппаратная виртуализация (Type 1)

Аппаратный тип виртуализации - Это когда роль VMM берут на себя гипервизоры.

Обычно, когда загружается операционная система, запускается загрузчик, однако вместо него можно запустить специальную программу, которая будет выполняться на уровне ядра - гипервизор. (Hyper-V, Xen, ESX/ESXi, vmware ESX, KVM…). Гипервизор это и есть Virtual Machine Monitor, о котором мы говорили ранее, он работает без операционной системы напрямую с аппаратным обеспечением компьютера. То есть Гипервизор напрямую выделяет ресурсы для виртуальных машин и управляет ими.

nginx-upstream-response-time-request-time

Программная виртуализация (Type 2)

Програмный тип виртуализации - Это когда на уже запущенном сервере, у которого работает какая-то операционная система, VMM работает как отдельная программа которая используя средства используемой Операционной Системы для создания Виртуальных машин. Самые популярные программного типа виртуализации это vmware workstation, virtualBox, Parallels.

nginx-upstream-response-time-request-time


На это все. Вы прекрасны :)