Практически ежедневно администраторы корпоративных ИТ-департаментов сталкиваются с ошибками и особенностями прикладных программ, способными спровоцировать сбои в работе критически важных узлов. Даже такое тривиальное действие, как установка обновлений, порой может вывести из строя операционную систему и ПО. Иногда инфраструктуру предприятия необходимо обогатить сервисами, которые работают под управлением определенной ОС, и случается, что это вовсе не та ОС, что установлена на корпоративных серверах.
На первый взгляд все эти проблемы, можно решить, внедрив в инфраструктуру выделенные серверы или ПК для каждой из задач. Но такой «классический» подход порождает новые проблемы. Ведь выделенный сервер влечет за собой высокие эксплуатационные расходы. Кроме того, зачастую его вычислительные мощности используются крайне неэффективно.
Поэтому становится актуальным другой подход — использование серверной виртуализации. Именно она позволяет повысить эффективность эксплуатации мощностей, сократить затраты на обслуживание, обеспечить бесперебойную работу сервисного ПО и исключить влияние одних приложений на стабильную работу других.
Что это такое?
В самом общем виде, виртуализация — это процесс изоляции аппаратных и программных ресурсов друг от друга, что позволяет снизить зависимости между ними и организует выполнение приложения или группы приложений в изолированной среде. При этом одни приложения не оказывают влияния на стабильность работы других приложений за пределами данной среды и получают доступ к ресурсам системы так, будто они работают с ними напрямую, а на одном сервере могут одновременно выполняться несколько групп приложений в отдельных средах.
«Изолирующим слоем» служит особая программа — гипервизор (hypervisor), которая предоставляет операционной системе возможность «общаться» с виртуальным представлением физического аппаратного обеспечения. Монитор виртуальных машин (Virtual Machine, VM) осуществляет разделение ресурсов системы: оперативной памяти, процессора и устройств ввода/вывода между виртуальными машинами. На виртуальных машинах устанавливаются гостевые операционные системы, для которых создается иллюзия работы на физическом сервере. На самом деле виртуальная машина вместе с операционной системой, различными приложениями и соответствующими данными, хранится в одном файле. При этом виртуализация обеспечивает высокую степень изоляции и надежности, как если бы каждая виртуальная машина работала на выделенном оборудовании.
Виртуализация в развитии
В течение нескольких последних лет идеология виртуализации претерпела серьезные изменения. Изначально большинство производителей позиционировали эту технологию исключительно как средство консолидации инфраструктуры. То есть несколько серверов заменялись одним мощным с установленными на нем виртуальными машинами. Консолидация позволяет прежде всего снизить операционные расходы, уменьшить количество потребляемой энергии и затраты, связанные с поддержкой, управлением и администрированием систем.
Немного позднее получили развитие функции виртуализации для центров обработки данных. Заинтересованность рынка в технологиях применительно к ЦОД одной из первых удовлетворила компания VMware, предложившая в 2005 году функцию VMotion. Она предназначена для «горячего» переноса работающих виртуальных машин с одного физического сервера на другой без остановки работы конечных пользователей. С появлением VMotion виртуализация обрела дополнительное качество — повышенную отказоустойчивость. Ведь с ней вы перестаете зависеть от одного или нескольких физических серверов, программная нагрузка может виртуально мигрировать с одной системы на другую. Немногим позднее похожие на VMotion функции появились и под Linux, в Xen Server.
Естественно, при таком подходе возникли и сложности. Например, нелегко организовать очевидную консоль управления для администратора сети, неясно, насколько динамично можно переводить виртуальные машины с одного сервера на другой без участия человека, если сервер перестанет работать. Кроме того, миграцию виртуальных машин без остановки обработки запросов пользователя можно проводить, только если на платформах использовались процессоры одного поколения. Последнюю проблему снимает технология Intel VT FlexMigration, реализованная в процессорах серии Xeon 7400 и последующих поколениях. FlexMigration позволяет переносить приложения без остановки процессов между серверами на базе микроархитектур Core, Nehalem и последующих поколений процессоров Intel.
В ближайшие годы руководители ИТ-отделов задумались над созданием динамической отказоустойчивой среды предприятия. Сегодня делает первые шаги концепция виртуального ЦОД в облаке. Так, VMware уже выпустил ОС VMware vSphere 4, которая позиционируется как первая операционная система для таких систем, Microsoft активно работает над своей «облачной» ОС Azure.
Помимо консолидации серверов и повышения отказоустойчивости, важное место среди распространенных моделей применения виртуализации занимает тестирование ПО. Если компания прежде, чем внедрить у себя какие-либо изменения протестирует их в специальной демо-зоне, она может убедиться в целесообразности их приобретения. .
Серверная виртуализация предоставляет надежный механизм для балансировки нагрузки серверного парка. Этот эффект достигается путем перераспределения нагрузки между несколькими физических серверов в автоматическом режиме, что повышает производительность системы в целом, эффективность ее использования, а также минимизирует риски в случае падения отдельного сервера.
Новые рубежи: виртуализация тяжелых задач
Виртуализация не является панацеей от всех проблем. Но с развитием ряда технологий и появлением аппаратной поддержки виртуализации, расширился и спектр «виртуализируемых» задач. Таких, например, как обработка баз данных. Безусловно, это требует осторожности: необходимо понимать, какой максимальный уровень масштабирования необходим. Если наращивать производительность путем увеличения количества серверов, то виртуализация — удобное решение, поскольку она будет эффективно распределять нагрузку в кластере. Но в случае вертикального масштабирования производительности, такую задачу лучше не виртуализировать, а переложить на физический 4-процессорный или 8-процессорный сервер.
В чем сила?
Первая выгода от развертывания виртуальных сред вполне очевидна: для решения одних и тех же задач, необходимо меньшее количество физических серверов. Кроме того, современные серверы, основанные на новых платформах с аппаратной поддержкой виртуализации, потребляют гораздо меньше энергии. Например, в новый процессор Intel серии Xeon 5500 встроен микроконтроллер Power Control Unit, который отслеживает температуру и энергопотребление ядер, и может их автоматически отключать, если они не используются.
При использовании виртуализированных сред, значительно сокращаются статьи расходов на лицензирование программного обеспечения, а возможность динамического масштабирования системы позволяет обеспечивать поддержку критических бизнес-процессов на самом высоком уровне.
Согласно расчетам Intel, особенно эффективной виртуализация окажется в случае обновления серверных сред на базе одно- и двухпроцессорных серверов на одноядерных процессорах, чей жизненный цикл подходит к концу (4-5 лет). Сотню таких серверов можно заменить десятком четырехъядерных решений последнего поколения.
Вопросы безопасности
Приведем простой пример. На одном веб-сервере запущены общедоступный портал и портал внутренний, с конфиденциальной информацией. Если злоумышленнику удастся преодолеть барьер безопасности портала общего доступа, то он получит также доступ к конфиденциальной информации. Это основная причина, по которой на предприятиях зачастую действует правило «один сервер — один сервис». Такой подход повышает надежность и защищенность внутрикорпоративных данных. Виртуализация же позволяет исполнять ОС в полностью изолированных средах на одной аппаратной платформе. Если злоумышленники захватят управление одной виртуальной средой, они не смогут захватить управление всем физическим кластером, всем сервером и всей системой, которая на нем исполняется.
Кстати, виртуализировать можно не только ОС, но и маршрутизаторы, и коммутаторы. Тогда, в случае атаки сервиса его очень просто отключить от реальной сети и запустить на другой виртуальной машине.