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

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

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

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

Зачем нужна виртуализация

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

Ещё одно преимущество виртуализации — управляемость. Виртуальные машины можно запускать за пару минут и так же легко удалять, если они не нужны. Кроме того, можно разворачивать ВМ из шаблонов — со всеми настройками и набором ПО, что очень удобно, когда нужно быстро масштабироваться. 

Как работает виртуализация

Виртуализация создаётся при помощи специальной программы — гипервизора. Гипервизор создаёт виртуальные машины и поддерживает их работу: распределяет между ВМ ресурсы физического сервера (оперативная память, дисковое пространство, CPU), изолирует их друг от друга, запускает и удаляет ВМ по команде пользователя.

По принципу действия гипервизоры могут быть аппаратными и программными. От этого параметра зависит тип виртуализации на гипервизоре.

Аппаратная виртуализация

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

Скорость — ВМ на аппаратной виртуализации работают быстрее, так как код исполняется на процессоре, без дополнительных слоёв.

Безопасность — хостовой ОС нет, а значит, нет ещё одной слабой точки, уязвимость в которой могла бы обрушить все ВМ. 

Популярные аппаратные гипервизоры для Windows — это VMware, для Unix-систем — KVM, на базе которой создано множество решений, таких как VMmanager, Virtuozzo. Другое название аппаратных гипервизоров — гипервизоры I типа.

Программная виртуализация

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

Примеры программных гипервизоров: VirtualBox (поддерживается и для Windows, и для Unix-подобных систем), VMware Workstation для Windows, Parallels Desktop для MacOS. Программные гипервизоры ещё называют гипервизорами II типа.

Контейнерная виртуализация

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

Docker есть в ispmanager. Я поселил в нём базы данных. Они живут на общем хосте, но в отдельных контейнерах, не конфликтуют друг с другом, хоть у них и разные вкусы.