Виртуализация — одна из базовых технологий в управлении серверной инфраструктурой. В статье объясним её суть, отличие программного подхода от аппаратного, а также приведём краткий обзор основных гипервизоров.
Что такое виртуализация и какие задачи она решает
Виртуализация — это технология, которая позволяет разделить ресурсы физического сервера и создать несколько изолированных сред — виртуальных машин (ВМ). Каждая из них получает определённую долю CPU, RAM и дискового пространства и работает независимо от другой.
Виртуализация избавляет от необходимости подбирать и собирать физическое железо под каждую отдельную задачу, а также вручную настраивать его. Конфигурируют ВМ по-разному, но их суммарный ресурс не может превышать мощность физического (родительского) хост-сервера.
Как используют виртуализацию? Примеры:
- Технология позволяет изолировать важные сервисы и быстро восстанавливать их после сбоев. Так, например, с её помощью разработчики могут создавать на разных ВМ копии веб-проектов — вместе со всеми настройками операционной системы. Это позволяет безопасно тестировать изменения. Если тестовая копия падает или в ней возникает критическая ошибка, рабочий сервер не страдает.
- Виртуализация позволяет запускать на одном физическом оборудовании разные ОС и пробовать различные конфигурации. Это экономит время, упрощает работу и открывает путь к более сложным сценариям взаимодействия между виртуальными машинами.
- Хостеры используют виртуализацию для удобного распределения ресурсов между клиентами. Например, арендовать целый физический сервер под небольшой сайт — нерационально: дорого для клиента и неэффективно для провайдера. Вместо этого один мощный сервер делят на несколько виртуальных машин с разными объёмами ресурсов и сдают их в аренду под разные задачи.
Виды виртуализации
С точки зрения реализации технологии виртуализация делится на два типа: программную (на уровне ОС) и аппаратную.
При программной виртуализации аппаратные ресурсы разделяет не гипервизор, а сама ОС, поэтому все ВМ имеют одно общее программное ядро. А значит, внутри них можно запускать только те операционные системы, которые совместимы с ядром хост-сервера.
Плюсы программной виртуализации:
- Быстрый запуск виртуальной машины — нет необходимости устанавливать ОС на каждую.
- Возможность менять конфигурацию ресурсов виртуальной машины практически «на лету».
- Доступен оверселлинг — предоставление одних и тех же ресурсов нескольким машинам, поскольку не все виртуальные машины одновременно используют свой максимум.
Минусы:
- Ограниченный выбор ОС: все виртуальные машины используют общее ядро хост-системы.
- Сложности с обновлениями: нельзя обновить или перенастроить ОС на одной ВМ. Если система устареет — риски безопасности распространятся сразу на все виртуальные машины.
- Слабая изоляция. Нагрузка соседних ВМ сильно влияет друг на друга. Кроме того, ОС физического сервера имеет прямой доступ к созданным виртуальным машинам.
Программная виртуализация хорошо подходит для небольших ненагруженных веб-проектов, тестирования и экономии средств. Главное — понимать её ограничения и использовать там, где изоляция не критична.
Аппаратная виртуализация — это подход, при котором ресурсы физического сервера изолированно разделяются между виртуальными машинами с помощью гипервизора — специального ПО. Отличие этого решения в том, что в каждой из них может работать своя полноценная операционная система со своим ядром.
Плюсы:
- Виртуальные машины работают на аппаратном уровне с эмуляцией сервера, очень близкого к физическому.
- Высокая степень изоляции — нет особого влияния соседних машин или физического сервера в целом.
- В каждой виртуальной машине может работать своя ОС с собственным ядром. Это даёт полный доступ к системе: можно использовать любые настройки и устанавливать любое совместимое ПО.
- Доступен оверселлинг (хотя возможности наращивать объёмы повторно используемых ресурсов ниже из-за аппаратных пределов сервера — выше предела можно задействовать только диск).
Минусы:
- Требуют более тщательной настройки создаваемых виртуальных машин под конкретное физическое оборудование.
- Относительно долгое развёртывание виртуальных машин — помимо создания VM требуется полноценная установка ОС.
- Из этого вытекает большая длительность других операций с виртуальными машинами (например, перезагрузка).
Лучше подходят для стандартного использования виртуального сервера как аналога физического: обеспечивают лучшую производительность за счёт работы без программных посредников.
Топ гипервизоров
Выбрали самые распространённые виды гипервизоров. Это довольно универсальные решения, однако при выборе всё-таки стоит обращать внимание на некоторые особенности.
Xen (XenServer, Citrix Hypervisor)
- Тип виртуализации: аппаратная / гибридная (поддерживает паравиртуализацию).
- Для чего используют: кроссплатформенные задачи, хостинг различных конфигураций.
- Цена: есть платные и бесплатные редакции.
- Главное: минимальный объём кода (большая часть модулей отдельно), открытый исходный код — широкие возможности для модификаций.
Oracle VM VirtualBox
- Тип виртуализации: программная и аппаратная.
- Для чего используют: тестирование разработчиками, настольное решение для VM.
- Цена: бесплатно.
- Главное: работает на Linux, macOS, FreeBSD и др. Позволяет запускать 64-битные гостевые ОС даже на 32-битной хост-системе.
- Минусы: неудобен для автоматизации создания VM и для хостинга.
Microsoft Hyper-V
- Тип виртуализации: аппаратная.
- Для чего используют: VM с Windows, работа с продуктами Microsoft.
- Цена: платно. Лицензирование зависит от количества физических ядер и редакции Windows Server.
- Главное: встроен в ОС Windows Server (2 VM в Standard, неограниченно в Datacenter). Hyper-V Server позволял виртуализацию без лицензии на ОС, но лицензирование Windows на VM обязательно.
VMware ESXi
- Тип виртуализации: аппаратная.
- Для чего используют: тестирование, локальная развёртка VM, хостинг определённых конфигураций.
- Цена: платно (лицензия на каждое физическое ядро), есть бесплатная версия с серьёзными ограничениями.
- Главное: в основе — ядро VMkernel (упрощённое Linux-ядро). Входит в продукт VMware vSphere.
QEMU / KVM
- Тип виртуализации: аппаратная.
- Для чего используют: быстрый переход к виртуализации на Linux-системах, хостинг различных конфигураций.
- Цена: бесплатно (open-source).
- Главное: поддерживает аппаратные расширения (Intel-VT, AMD-V). Работает с разными CPU и гостевыми ОС (Windows, Linux, BSD).
На новых и актуальных VDS-серверах FirstVDS используется только виртуализация KVM — как удобное и стабильное решение.
Что стоит запомнить про виртуализацию
Виртуализация — это технология, которая позволяет разделить ресурсы физического сервера и запустить на его базе несколько виртуальных машин.
Программная виртуализация делит ресурсы на уровне ОС. Такой подход даёт быстрый запуск и гибкость настройки, но ограничивает выбор операционных систем и снижает изоляцию между виртуальными машинами. Она подходит для тестов и небольших проектов.
Аппаратная виртуализация использует гипервизор. Она дольше разворачивается, но даёт стабильность и полный контроль. Именно поэтому её используют в крупных проектах и современные хостинговые провайдеры, для которых надёжность работы ВМ и безопасность клиентов стоят на первом месте.