Словарь терминов
Виртуализация серверовО популярности виртуализационных решений сегодня можно судить хотя бы по такому факту: в 2006 году в мире работало более миллиона виртуализированных серверов Виртуализация серверов В современных сложных Благодаря виртуализации можно динамически включать и отключать виртуальные серверы (также называемые виртуальными машинами), каждый из которых, образно говоря, «обманывает» операционную систему (и работающие в ее среде приложения), заставляя воспринимать виртуальную машину как реальное оборудование. Несколько виртуальных машин позволяют полностью задействовать вычислительный потенциал физического сервера и быстро реагировать на меняющиеся потребности в ресурсах в центре обработки данных. Концепция виртуализации не нова. Еще в 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 впервые добавили технологии, поддерживающие виртуализацию. К сожалению, обе корпорации создавали свои технологии Виртуализация на уровне процессора не происходит автоматически. Необходимо создать специальное программное обеспечение, которое ее бы поддерживало. Однако, учитывая насколько значительны преимущества, которые дают такие технологии, программное обеспечение виртуализации для их поддержки неизбежно будет создано. |