Виртуальные серверы, работающие на физическом оборудовании

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

В качестве примера можно привести монитор виртуальных машин Xen или сервер ESX из VMWare. В этих архитектурах существует ОС нижнего уровня, на базе которой работает гостевые операционной системы. ОС нижнего уровня (гипервизор) представляет собой «мозг» системы виртуализации. Она обеспечивает совместное использование ресурсов гостевыми операционными системами, а также их простое создание, уничтожение и миграцию на другие хосты.

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

На рисунке изображен сервер, на котором работает сразу несколько гостевых операционных систем. Подобная абстракция обладает рядом преимуществ:

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

Портируемостъ и отказоустойчивость. Если физический хост достигает своего известного (или неизвестного) предела или на нем происходит аппаратный сбой, гостевая ОС (и связанная с ней нагрузка) безопасно перемещается на другой хост.

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

Снижение непроизводительных затрат на управление. Виртуализация позволяет консолидировать несколько отдельных серверов со свободными ресурсами в меньшее количество серверов с более высокой степенью использования ресурсов. Консолидация приводит к сокращению энергопотребления и уменьшению необходимого дискового пространства. Другим преимуществом уменьшения количества серверов является сокращение мест потенциальных сбоев (диски, процессоры, источники питания и т. д.) Конечно, у консолидации есть и оборотная сторона — растет риск возникновения единых точек отказа (SPOF, Single Point of Failure), так как от одного физического оборудования начинают зависеть сразу несколько служб. Пакеты виртуализации решают эту потенциальную проблему обеспечивая простое перемещение виртуальных машин с сервера на сервер для аварийного восстановления и перераспределения рабочих нагрузок.

Виртуализация фактически позволяет выполнять больший объем работы на меньшем количестве оборудования. С другой стороны, повышение эффективности усложняет сбор метрических данных. Трудно определить, какой ресурс находится в виртуальном или физическом использовании, так как с вводом промежуточного уровня абстракции появляется дополнительный уровень сбора метрических данных.

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