Словарь терминов

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

О популярности виртуализационных решений сегодня можно судить хотя бы по такому факту: в 2006 году в мире работало более миллиона виртуализированных серверов

Виртуализация серверов
Нейл Макаллистер
InfoWorld, США
(публикация OSP.ru)

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

Благодаря виртуализации можно динамически включать и отключать виртуальные серверы (также называемые виртуальными машинами), каждый из которых, образно говоря, «обманывает» операционную систему (и работающие в ее среде приложения), заставляя воспринимать виртуальную машину как реальное оборудование. Несколько виртуальных машин позволяют полностью задействовать вычислительный потенциал физического сервера и быстро реагировать на меняющиеся потребности в ресурсах в центре обработки данных.

Концепция виртуализации не нова. Еще в 70−е годы на мэйнфреймах одновременно могли работать несколько экземпляров операционной системы, причем каждый функционировал независимо от других. Однако лишь недавно инновации в области программного и аппаратного обеспечения позволили эффективно реализовать виртуализацию в серверах стандартной архитектуры.

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

Самый популярный способ виртуализации предполагает использование программного обеспечения, получившего название «гипервизор», суть которого заключается в создании уровня абстракции между виртуальными серверами и базовым аппаратным обеспечением. Примерами коммерческих решений, в которых реализован данный подход, могут служить программные продукты VMware и Microsoft Virtual PC, а KVM (Kernel Virtual Machine) — это свободно распространяемое решение для ОС Linux.

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

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

Полная виртуализация предполагает серьезное использование ресурсов процессора, обусловленное наличием гипервизора, управляющего различными виртуальными серверами и обеспечивающего независимость этих серверов друг от друга. Уменьшить эту нагрузку можно, например модифицировав каждую операционную систему таким образом, чтобы она «знала» о том, что она работает в виртуализованной среде, и могла взаимодействовать с гипервизором. Такой подход называют паравиртуализацией.

Примером свободно распространяемой реализации технологии паравиртуализации может служить Xen. Прежде чем операционная система сможет работать в качестве виртуального сервера в гипервизоре Xen, в нее необходимо внести определенные изменения на уровне ядра. Благодаря этому Xen прекрасно работает с BSD, Linux, Solaris и другими свободно распространяемыми операционными системами, но не подходит для виртуализации таких операционных систем, как Windows, которые менять нельзя.

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

Существует еще один способ виртуализации — встроенная поддержка виртуальных серверов на уровне операционной системы. Этот подход использован в Solaris Containers, а Virtuozzo/OpenVZ делает нечто похожее для ОС Linux.

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

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

В отличие от мэйнфреймов, аппаратное обеспечение ПК не было изначально рассчитано на виртуализацию — до недавнего времени вся нагрузка ложилась на программное обеспечение. Только в модели последнего поколения своих процессоров в архитектуре x86 корпорации AMD и Intel впервые добавили технологии, поддерживающие виртуализацию.

К сожалению, обе корпорации создавали свои технологии (AMD-V и Intel VT соответственно) независимо, в силу чего они несовместимы на уровне кода, хотя дают схожие преимущества. Поскольку благодаря поддержке аппаратной виртуализации всю ответственность за управление доступом виртуальных серверов к каналам ввода/вывода и аппаратным ресурсам берет на себя процессор, то гипервизор освобождается от выполнения самых ресурсоемких задач. Помимо увеличения производительности при таком подходе операционные системы без изменений могут работать в паравиртуализованных средах, в том числе и Windows.

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

21. SFTP
22. SSH
23. SSI

Показать страницу целиком без оглавления