среды виртуализации какие есть
Сравниваем лучшее программное обеспечение для виртуализации в 2020 году: Hyper-V, KVM, vSphere и XenServer
Перевод статьи подготовлен в преддверии старта курса «Администратор Linux. Виртуализация и кластеризация»
Виртуализация сыграла важную роль в формировании отрасли веб-хостинга и центров обработки данных в их нынешнем виде. Цель этой статьи — обсудить виртуализацию серверов и лучшее варианты программного обеспечения для этой технологии, наряду с перечислением их функционала в одном месте.
Что такое виртуализация серверов?
Создание виртуальной или изолированной формы IT-среды называется виртуализацией. Обычно серверы могут запускать только одно приложение или операционную систему в один момент времени, что приводит к неэффективному использованию ресурсов. Когда серверы виртуализированы, это означает, что на одном сервере могут работать несколько приложений и операционных систем одновременно. Это повышает как общую эффективность, так и экономическую целесообразность. Программное обеспечение для виртуализации серверов обычно называется гипервизором.
Лучшее программное обеспечение/инструменты и поставщики для виртуализации серверов — Hyper-V vs KVM vs vSphere vs XenServer
Citrix XenServer, Microsoft Hyper-V, Red Hat KVM и VMware vSphere являются крупнейшими игроками на рынке виртуализации серверов. Зачастую предприятия испытывают затруднения в принятии решения, какой гипервизор лучше всего подойдет их бизнесу.
Сравнение лучшего программного обеспечения для виртуализации серверов на основе функционала и требований к оборудованию облегчит IT-специалистам и конечным пользователям выбор наиболее подходящего для них гипервизора.
Примечание: Инструменты расположены в алфавитном порядке по их названиям.
1. Hyper-V
Запущенный в 2008 году Microsoft Hyper-V помогает в расширении или создании приватной облачной среды. Он способствует эффективному использованию оборудования, улучшает непрерывность бизнес-процессов, а также повышает эффективность разработки и тестирования.
Функционал Microsoft Hyper-V для Windows Server 2019:
Подробнее о виртуализации серверов с Microsoft вы можете прочитать в этом PDF.
2. KVM
KVM (Kernel-based Virtual Machine), входящая в состав Red Hat Virtualization Suite, представляет собой комплексное решение для инфраструктуры виртуализации. KVM превращает ядро Linux в гипервизор. Он был введен в основную ветку ядра Linux с версии ядра 2.6.20.
Функционал Red Hat KVM:
Для получения более подробной информации прочтите это руководство по функционалу KVM.
3. vSphere
vSphere, платформа серверной виртуализации от VMware, представляет собой набор продуктов, который включает в себя не только виртуализацию, но и уровни управления и интерфейсов.
Она предоставляет ряд ключевых компонентов, включая инфраструктурные сервисы (vCompute, vStorage и vNetwork), сервисы приложений, vCenter Server, vSphere Client и т. д.
Функционал VMware vSphere:
Для получения дополнительной информации о виртуализации серверов с помощью VMware прочтите этот PDF-файл.
4. XenServer
Основанный на Xen Project Hypervisor, XenServer является платформой виртуализации серверов с открытым исходным кодом для платформ без операционной системы. Он состоит из функций корпоративного уровня, которые помогают предприятиям легко справляться с рабочими нагрузками, комбинированными ОС и сетевыми конфигурациями.
XenServer обеспечивает улучшенную виртуализированную графику с NIVIDA и Intel и позволяет запускать несколько компьютерных операционных систем на одном оборудовании.
Функционал Citrix XenServer:
Сводка по vSphere, XenServer, Hyper-V и KVM
Помогите нам улучшить эту статью. Поделитесь своим мнением с нами в комментариях ниже!
Дисклеймер: последний раз эта статья была обновлена 11 января 2020 года информацией, доступной на веб-сайтах поставщиков и ресурсов в открытом доступе. Целью данной статьи является предоставление информации о гипервизорах разных поставщиков только в общих информационных целях. Поставщики могут время от времени менять характеристики своего продукта. Хотя мы прилагаем все усилия, чтобы информация была точной и актуальной, мы не можем гарантировать ее 100% точность или актуальность.
Анализ современных технологий виртуализации
В настоящее время все большую популярность набирают технологии виртуализации. И это не случайно – вычислительные мощности компьютеров растут. В результате развития технологий, появляются шести-, восьми-, шестнадцатиядерные процессоры (и это еще не предел). Растет пропускная способность интерфейсов компьютеров, а также емкость и отзывчивость систем хранения данных. В результате возникает такая ситуация, что имея такие мощности на одном физическом сервере, можно перенести в виртуальную среду все серверы, функционирующие в организации (на предприятии). Это возможно сделать с помощью современной технологии виртуализации.
Технологии виртуализации в настоящее время становятся одним из ключевых компонентов современной ИТ-инфраструктуры крупных предприятий (организаций). Сейчас уже сложно представить построение нового серверного узла компании без использования технологии виртуализации. Определяющими факторами такой популярности, несмотря на некоторые недостатки, можно назвать экономию денег и времени, а также высокий уровень безопасности и обеспечение непрерывности бизнес-процессов.
В данной статье приведен анализ современной технологии виртуализации, ее преимуществ и недостатков. Также рассмотрены современные системы виртуализации и подходы к созданию виртуальных сред.
Современную визуализацию можно понимать по-разному. Например, виртуализировать означает, что можно взять нечто одной формы и сделать так, чтобы оно казалось похожим на другую форму. Виртуализация компьютера означает, что можно заставить компьютер казаться сразу несколькими компьютерами одновременно или совершенно другим компьютером.
Виртуализацией также называется ситуация, когда несколько компьютеров представляются как один отдельный компьютер. Обычно это называют серверным кластером или grid computing.
Виртуализация тема не новая, фактически ей уже более четырех десятилетий. IBM признала важность виртуализации еще в 1960-х вместе с развитием компьютеров класса «мэйнфрэйм». Например, System/360™ Model 67 виртуализировала все интерфейсы оборудования через программу Virtual Machine Monitor (VMM). На заре вычислительной эры операционную систему называли супервизор (supervisor). Когда стало возможным запускать одну операционную систему на другой операционной системе, появился термин гипервизор (hypervisor) (был введен в 1970-х).
VMM запускается непосредственно на основном оборудовании, позволяющем создавать множество виртуальных машин (VM). При этом каждая виртуальная машина может обладать своей собственной операционной системой.
Другое использование виртуализации заключается в симуляции процессора. Это, так называемая, P-code (или pseudo-code) машина. P-code – это машинный язык, который выполняется на виртуальной машине, а не на реальном оборудовании. P-code стал известен в начале 1970-х. С помощью него происходило компилирование программы на Pascal в P-code и потом выполнение ее на P-code виртуальной машине.
Новый аспект виртуализации был назван командной виртуализацией или бинарной виртуализацией. В этом случае виртуальные команды переводятся (транслируются) на физические команды основного оборудования. Обычно это происходит динамически. Поскольку код исполняемый, переводится в сегмент кода. Если происходит разветвление, то новый сегмент кода забирается и переводится.
Когда производится виртуализация, существует несколько способов ее осуществления, с помощью которых достигаются одинаковые результаты через разные уровни абстракции. У каждого способа есть свои достоинства и недостатки, но главное что каждый из них находит свое место в зависимости от области применения.
Можно считать, что самая сложная виртуализация обеспечивается эмуляцией аппаратных средств. В этом методе VM аппаратных средств создается на хост-системе, чтобы эмулировать интересующее оборудование.
Другое интересное использование эмуляции – это эмуляция оборудования, которая заключается в совместном развитии встроенного программного обеспечения и аппаратных средств. В этом методе VM аппаратных средств создается на хост-системе, чтобы эмулировать интересующее оборудование.
Эмуляция оборудования использует VM, чтобы моделировать необходимые аппаратные средства.
Вместо того чтобы дожидаться, когда реальные аппаратные средства будут в наличии, разработчики встроенного программного обеспечения могут использовать виртуальное оборудование для разработки и тестирования программного обеспечения.
Главная проблема при эмуляции аппаратных средств состоит существенном замедлении выполнения программ в такой среде. Поскольку каждая команда должна моделироваться на основных аппаратных средствах, при этом замедление в 100 раз при эмуляции является обычным делом. Однако эмуляция аппаратных средств имеет существенные преимущества. Например, используя эмуляцию аппаратных средств, можно управлять неизмененной операционной системой, предназначенной для PowerPC® на системе с ARM процессором. также можно управлять многочисленными виртуальными машинами, каждая из которых будет моделировать другой процессор.
Полная (аппаратная) виртуализация, или «родная» виртуализация, является другим способом виртуализации. Эта модель использует менеджер виртуальных машин (гипервизор), который осуществляет связь между гостевой операционной системой и аппаратными средствами системы.
Полная виртуализация использует гипервизор, чтобы разделять основные аппаратные средства.
Взаимодействие между гостевой операционной системой (ОС) и оборудованием осуществляется посредством гипервизора. Внутри гипервизора должна быть установлена и настроена определенная защита, потому, что основные аппаратные средства не принадлежат ОС, а разделяются гипервизором. При построении крупных корпоративных систем, как правило, используется именно аппаратная виртуализация. При этом крупные вендоры такие как VMware, IBM и Microsoft разрабатывают свои платформы виртуализации на базе технологий аппаратной виртуализации Intel VT (VT-x), AMD-V.
Паравиртуализация — это другой популярный способ, который имеет некоторые сходства с полной виртуализацией. Этот метод использует гипервизор для разделения доступа к основным аппаратным средствам, но объединяет код, касающийся виртуализации, в непосредственно операционную систему. Этот подход устраняет потребность в любой перекомпиляции или перехватывании, потому что сами операционные системы кооперируются в процессе виртуализации.
Паравиртуализация разделяет процесс с гостевой операционной системой.
Паравиртуализация требует, чтобы гостевая ОС была изменена для гипервизора, и это является недостатком метода. Однако, паравиртуализация предлагает высокую производительность, почти как у реальной системы. При этом, как и при полной виртуализации, одновременно могут поддерживаться различные операционные системы. Но определенным недостатком паравиртуализации можно считать ограниченное количество поддерживаемых ОС. Поскольку есть необходимость вносить изменения в код ядра ОС, что не всегда представляется возможным в силу закрытости некоторых ОС.
Из известных гипервизоров паравиртуализацию наравне с аппаратной виртуализацией использует Xen и его ответвления (Citrix XenServer, XCP).
Виртуализация уровня операционной системы. Эта техника виртуализирует серверы непосредственно над операционной системой. Этот метод поддерживает единственную операционную систему и, в самом общем случае, просто изолирует независимые виртуальные серверы (контейнеры) друг от друга. Для разделения ресурсов одного сервера между контейнерами, данная виртуализация требует внесения изменений в ядро операционной системы (например, как в случае с OpenVZ), но при этом преимуществом является родная производительность, без «накладных расходов» на виртуализацию устройств.
Виртуализация уровня операционной системы изолирует виртуальные серверы.
Этот подход использован в Solaris Containers, FreeBSD jail и Virtuozzo/OpenVZ в ОС Linux и *BSD, а также в Linux Containers (LXC), про которые уже немало написано на Хабре.
Теперь постараемся ответить на вопрос: «Зачем нужна виртуализация?». В настоящее время существует множество причин использования виртуализации. Возможно, что самой важной причиной является, так называемая, серверная консолидация. Проще говоря, возможность виртуализировать множество систем на отдельном сервере. Это дает возможность предприятию (организации) сэкономить на мощности, месте, охлаждении и администрировании из-за наличия меньшего количества серверов. При этом немаловажным фактором является абстрагирование от оборудования. Например, сервера иногда выходят из строя. При этом есть возможность перераспределить нагрузку на оборудование. Отсутствие привязки, к какому либо «железу» существенно облегчает жизнь IT-отделу и снижает риск простоя предприятия.
Другая возможность использования виртуализации заключается в том, что бывает изначально трудно определить нагрузку на сервер. При этом процедура виртуализации поддерживает так называемую живую миграцию (live migration). Живая миграция позволяет ОС, которая перемещается на новый сервер, и ее приложениям сбалансировать нагрузку на доступном оборудовании.
Используя возможности современных ПК можно легко развернуть любой виртуальный сервер даже на домашнем компьютере, а затем легко перенести его на другое оборудование. Виртуализация также важна для разработчиков. Например, виртуализация позволяет управлять несколькими операционными системами, и если одна из них терпит крах из-за ошибки, то гипервизор и другие операционные системы продолжают работать. Это позволяет сделать отладку ядра подобной отладке пользовательских приложений.
В целом можно выделить следующие преимущества использования виртуализации:
1. Сокращение затрат на приобретение и поддержку оборудования. В современных условиях практически в каждой компании всегда найдется один или два сервера имеющие несколько ролей, например, почтовый сервер, файловый сервер, сервер базы данных и т.д. Безусловно, на одной физической машине можно поднимать по несколько программных комплексов (серверов), выполняющих различные задачи. Но очень часто бывают ситуации, когда установка нового ПО требует независимой серверной единицы. В таком случае как раз и придет на выручку виртуальная машина с требуемой ОС. Сюда же можно отнести случаи, когда в сети необходимо иметь несколько независимых друг от друга виртуальных серверов со своим набором служб и своими характеристиками, которые должны существовать как независимые узлы сети. Типичный пример – это услуги VPS-хостинга.
2. Сокращение серверного парка. Преимущество виртуализации состоит в том, что можно значительно сократить количество физических ЭВМ. В результате меньше времени и денег тратится на поиск, закупку и замену оборудования. Наряду с этим сокращаются площади, выделяемые под содержание серверной базы.
3. Сокращение штата IT-сотрудников. На обслуживание меньшего количества физических ЭВМ требуется меньше людей. С точки зрения руководства компании, сокращение штата — это сокращение серьезной статьи расходов предприятия.
4. Простота в обслуживании. Добавить жесткий диск или расширить существующий, увеличить количество оперативной памяти, все это занимает определенное время в случае с физическим сервером. Отключение, отсоединение из стойки, подключение нового оборудования, включение – в случае использования виртуализации все эти действия опускаются, и операция сводится к нескольким щелчкам мыши или командам администратора.
5. Клонирование и резервирование. Еще одним плюсом виртуализации является простота клонирования виртуальных машин. Например, компания открывает новый офис. При этом серверная инфраструктура центрального офиса стандартизирована и представляет собой несколько серверов с одинаковыми настройками. Развертывание такой инфраструктуры сводится к простому копированию образов на сервер нового офиса, конфигурировании сетевого оборудования и изменению настроек в прикладном ПО.
Вы еще не используете виртуализацию?
Сейчас уже сложно представить себе ИТ-отрасль без виртуализации, развитие информационных систем организаций тесно связано с применением технологий виртуализации. Причем данные технологии позволяют значительно сократить расходы, связанные с приобретением и обслуживанием серверных систем, сократить время на восстановление информации или развертывания аналогичных систем в новом оборудовании. Если вы до сих пор еще не используете преимущества виртуализации, то стоит об этом задуматься уже сейчас.
Наша компания широко использует преимущества контейнерной виртуализации практически во всех проектах. И если того требует ситуация, используем также полную виртуализацию. Мы рекомендуем всем предприятиям и организациям, имеющим в своем парке несколько серверов перейти к внедрению описанных в данной статье технологий.
Что такое виртуализация серверов
Какими бывают типы виртуализации
Все VPS/VDS-серверы работают на основе технологии виртуализации. С точки зрения реализации технологии, виртуализацию можно разделить на:
На виртуальной машине находится своя собственная операционная система, называемая гостевой. Операционная система, работающая на физическом сервере, называется хост-системой.
Гипервизор применяется и при программной, и при аппаратной виртуализации.
Программная виртуализация
Разделение ресурсов сервера осуществляется средствами операционной системы, и все виртуальные машины используют общее программное ядро.
Требование программной виртуализации: гостевая ОС должна быть одинакова с хост-системой.
Схема работы программной виртуализации
Аппаратная виртуализация
При аппаратной виртуализации на сервере-хосте устанавливается обычная операционная система и создаются полностью изолированные друг от друга виртуальные машины, каждая из которых имеет свою собственную полноценную ОС и использует в работе ее ядро.
При аппаратной виртуализации гостевая операционная система не обязательно должна совпадать с ОС-гипервизором.
Для ускорения работы аппаратной виртуализации используется паравиртуализация, принцип действия которой основан на том, что гостевая операционная система “знает”, что работает внутри виртуальной машины и может пользоваться некоторыми функциями, предоставляемыми гипервизором. Это ускоряет работу системы за счет того, что ей не приходится эмулировать работу всей виртуальной машины.
Полноценная поддержка паравиртуализации со стороны гостевых ОС есть в системах с открытым исходным кодом, таких, как Linux.
Схема работы паравиртуализации
Решения для виртуализации и их особенности
Рынок решений виртуализации предлагает различные варианты.
Они могут быть платными и бесплатными, различаться:
Рассмотрим популярные системы виртуализации, их преимущества и недостатки.
OpenVZ
Популярна у хостинг-провайдеров для дешевых тарифов виртуальных серверов.
VPS/VDS-серверы на OpenVZ нестабильны в работе из-за неравномерного распределения ресурсов между отдельными виртуальными машинами.
Провайдеры часто практикуют на этой платформе оверселлинг, то есть запускают на одном физическом сервере слишком большое количество виртуальных серверов, что приводит к недостатку ресурсов и медленной работе.
Virtuozzo
Система стоит дорого, но все недостатки, описанные выше для бесплатной версии OpenVZ, сохраняются.
Аппаратная система виртуализации обеспечивает полноценное выделение ресурсов для виртуальной машины, что гарантирует большую стабильность работы и затрудняет оверселлинг.
Для работы KVM требует на сервере центральный процессор с поддержкой виртуализации.
XEN обеспечивает стабильное и гарантированное выделение ресурсов для виртуальных машин, как и KVM. Их достоинства идентичны. Для ядра хост-системы Linux XEN поставляется в виде отдельного модуля, соответственно, требуется перекомпиляция ядра.
Hyper-V
Как коммерческая система требует оплату за лицензию на использование.
VMWare
Бесплатная версия VMWare рекомендуется для владельцев выделенных серверов, которые хотят самостоятельно создавать VPS/VDS на своем физическом сервере.
В бесплатной версии отсутствуют некоторые возможности, например, создание кластеров, миграции сетевых хранилищ и т.п. Для индивидуального использования это неплохое решение.
Лицензия на использование платной версии VMWare достаточно дорогая, поэтому, как правило, провайдеры хостинга не применяют ее для услуги “виртуальный сервер”.
Какую технологию виртуализации выбрать
Если вы выбираете VPS/VDS
Мы советуем выбирать провайдеров, которые применяют системы виртуализации KVM и XEN, обеспечивающих максимальную стабильность и бесперебойную работу виртуальных серверов.
Провайдеры строят свою инфраструктуру на основе какого-то одного из этих решений и выбора пользователю не предоставляют.
Что касается OpenVZ, то ее используют на самых дешевых тарифах VDS. Для задачи хостинга сайтов их можно заменить дорогим тарифом обычного виртуального хостинга, который будет работать более стабильно.
OpenVZ подходит только для тех пользователей, которым обязательно нужен свой отдельный виртуальный сервер за минимальную цену и не слишком важна гарантия доступности ресурсов.
Этот вариант категорически не подходит тем пользователям, которым необходим полноценный сервер и определенные компоненты ядра Linux, например, драйвер аудио или модули криптографии.
Большинство хостеров сейчас уже не предлагают решения на базе OpenVZ.
Чтобы выбрать провайдера с нужной технологией виртуализации для своего выделенного сервера, воспользуйтесь рейтингами хостеров, применяющих OpenVZ, KVM и XEN.
Если вы создаете VPS/VDS на выделенном сервере
Для выделенного сервера стоит использовать одну из технологий аппаратной виртуализации.
Выбор между KVM и XEN для платформы Linux будет зависеть от того, с какой из этих систем лучше знаком заказчик или системные администраторы его организации.
Также для выделенного сервера можно рассмотреть применение коммерческой системы VMWare, которая предлагает высокую надежность и поддержку со стороны производителя.
Для серверов, ориентированных на платформу Windows, самым логичным решением будет использование гипервизора Hyper-V.
Комментарий эксперта
Григорий Бабич, менеджер по развитию продукта в Timeweb
Мы в Timeweb прошли долгий путь к подходящей для нас системе виртуализации. В идеале хотели прийти к полной автономности клиентов VDS от соседей по их серверу. Забегая вперёд, скажу, что у нас это получилось. Но давайте по порядку:
1. OpenVz – использовали такую виртуализацию на ранних этапах и быстро пришли к выводу, что оверселлинг не про нас. Хотели сделать виртуальные машины клиентов автономными друг от друга, а такой формат виртуализации нас технически в этом ограничивал. Поэтому было решено переезжать на Xen.
2. XEN – классная система, с которой мы добились заветной автономности, а, значит, и стабильной производительности для наших клиентов. Мы как будто были на верном пути, но хотелось лучше, поэтому наши специалисты приступили к тестам доступных на тот момент систем.
3. KVM – система, установленная сейчас на всех серверах VDS (пока писали этот комментарий, переводились последние серверы). На первый взгляд, эта система не отличается от XEN, но результаты тестов показали повышение производительности.
Это, кстати, не единственный способ, которым мы пытаемся прокачать услугу VDS. За последние годы вместе с виртуализацией прокачали наши серверы высокоскоростными SSD-дисками, сделали линейку тарифов с упором на мощный процессор и начали размещать серверы в Европе.