Виртуализация

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

История развития виртуализации

Раньше любое приложение, БД требовали свой выделенный физический сервер (дедик), а это дорого, естественно.

После появления виртуальных машин (ВМ) стало возможным на одном дедике запускать несколько ОС. Облачные провайдеры - компании, специализирующиеся на построении дата-центров/ЦОД (Центр Обработки Данных) - теперь могли, кроме дедиков, предоставлять VDS (Virtual Dedicated Server).

Позже стали возникать ситуации, когда даже минимального VDS стало много для решения определенных задач. Например, для обычного веб-сайта нужен только веб-сервер (nginx, apache), а не полноценный linux. Так стали переходить с виртуализации ОС на виртуализацию приложений.
Просто берешь у исходной хост-ОС все нужные библиотеки, процессы и дублируешь их в изолированное пространство - контейнер. На основе этих технологий и начали появляться DevOps, GitOps, DevSecOps, NetOps и т.д.

Позже появились “бессерверные вычисления” - технология, которая позволяет платить только за использование какой-то функции на сервере, не оплачивая простой этой функции/сервера. Раньше, если нужно было на сервере только раз в месяц запускать какой-то процесс (например, backup), нужно было платить за весь месяц (за работу и простой).

Именно переход почти всех приложений на микросервисную архитектуру помог облачным провайдерам так пуллапнуться; и поэтому сейчас есть такие giants, как Microsoft Azure, Amazon AWS и т.д.


Типы аппаратной виртуализации

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

2-й тип аппаратной виртуализации используют такие гипервизоры как VirtualBox, VMWare Workstation, VMWare Fusion, QEMU и т.д. Такие программы работают поверх хост-ОС - без этой прослойки между собой и железом не могут работать. Но вообще гипервизорами обычно называют те, которые использует 1-й тип аппаратной виртуализации (которые используют на серверах). На 2-м типе не строят серьезные сервисы - там плотность ВМ небольшая, т.к. сама хост-ОС тоже кушает ресуры.
То есть 2-й тип используется для desktop/PC, а 1-й - на серверах виртуализации. Поэтому со 2-м типом всё понятно - подробнее буду говорить о 1-м типе.

Гипервизоры 1-го типа (автономные/аппаратные)

Этот тип виртуализации не требует исходного ОС (хост-ОС) для для работы.
Используются для серьезных нагрузок, большого кол-ва ВМ, работы 24/7 365 дней в году. Обычно основан на linux и не имеет GUI, чтобы экономить ресурсы сервера. Вообще, у всех гипервизоров есть интерфейсы для работы с ними: desktop app, web-UI, CLI, API.

Основные автономные гипервизоры: VMWare ESXi, Microsoft Hyper-V, Xen, VSphere, KVM и основанные на нем oVirt и Proxmox.
VMWare, кстати, виртуализации как CISCO в сетях.

Плюсы:

  • высокая плотность ВМ
  • возможность миграции ВМ между серверами

Минусы:

  • требуются высокая квалификация инженеров

Есть vfs - виртуальная файловая система. Этот интерфейс позволяет разработчикам не писать под каждую fs свою программу. vfs предоставляет единый интерфейс для работы с любыми fs.


Соус: Курс: Основы виртуализации. NetSkills. YouTube
Контейнеризация. Виртуализация на уровне ОС
О серверах

v12n