2011 сравнение производительности xen kvm virtualbox

Обновлено: 04.07.2024

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

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

Описание и характеристика понятия "гипервизора"

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

Гипервизор позволяет копиям быть независимыми друг от друга, чтобы каждая свободно пользовалась отведенными ей ресурсами. Но вместе с тем при необходимости программа предоставляет возможность системам машин взаимодействовать друг с другом. К примеру, они могут быть связаны общим доступом к документам.

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

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

Разновидности гипервизоров

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

Гипервизоры второго вида называют размещенными. Они функционируют с ОС, стоящей на сервере . А операционки для новых пользователей накладываются поверх гипервизора. Примеры программ: первый тип - KVM, второй вид - настольные гипервизоры VMware Workstation, Oracle VirtualBox.

Лучшие гипервизоры

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

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

Сравнение технологий виртуализации OpenVZ, KVM и Xen Сравнение технологий виртуализации OpenVZ, KVM и Xen

Обзор Виртуализации и Контейнеризации

Виртуализация – это технология, которая позволяет вам создавать несколько виртуальных машин (ВМ) на одном аппаратном обеспечении. В свою очередь каждая виртуальная машина представляет собой физический компьютер, на который вы можете установить операционную систему. Работу виртуальных машин контролирует гипервизор, который предоставляет им хостовые системные ресурсы: процессорные, оперативной памяти и устройств хранения.

Все ВМ изолированы друг от друга, то есть программное обеспечение одной ВМ не имеет доступ к ресурсам другой ВМ. Многие провайдеры VPS устанавливают гипервизор на физический сервер и предоставляют пользователям виртуальную машину в качестве виртуального частного сервера (VPS).

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

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

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

Xen и KVM являются технологиями виртуализации, а OpenVZ – это технология контейнеризации на базе Linux.

OpenVZ

OpenVZ (Open Virtuozzo) – это платформа контейнеризации, базирующаяся на ядре Linux. Она позволяет на одной хост-системе запускать несколько ОС, также базирующихся на Linux. Контейнеры работают как независимая система Linux с правами доступа уровня root, изоляцией на уровне файлов, пользователей или групп, процессов и сетей.

Провайдеры серверов предоставляют контейнерам OpenVZ некоторое количество оперативной памяти, процессорных ядер и места на жестком диске и продают их в качестве виртуальных серверов Linux. Какая-то часть ресурсов ЦП и памяти выделена контейнеру, а какая-то часть ресурсов “разрывается”, то есть если контейнеру требуется больше ресурсов помимо того, что ему было выделено, он может временно заимствовать их из неиспользуемых ресурсов других контейнеров.

Так как при контейнеризации ядро является общим для всех контейнеров, изменить настройки ядра, обновить его или использовать дополнительные модули ядра невозможно. К моменту написание этой статьи большинство провайдеров используют OpenVZ 6 на базе Linux 2.6. Таким образом, вы не сможете улучшить функционирование системы и возможности ядра за счет обновлений. У вас так и останется старый дистрибутив Linux. И вы не сможете установить Docker или использовать утилиты ipset и nftables.

OpenVZ 7 – это самая последняя версия проекта с обновленным ядром. Однако очень немногие провайдеры предоставляют ее из-за сложности установки и нехватки вспомогательных инструментов. В заключение, с точки зрения провайдера систему OpenVZ легко конфигурировать и запускать, в отличие от KVM и Xen. И так как это система на контейнеризации, она затрачивает намного меньше энергии, вследствие чего провайдеры могут предоставлять большее количество VPS с одного физического сервера.

Xen – это платформа виртуализации с открытым исходным кодом, которая первоначально начиналась как исследовательский проект в Кембриджском университете. В настоящее время в разработке проекта участвует Linux Foundation.

С помощью различных инструментов провайдер предоставляет виртуальным машинам Xen фиксированный объем оперативной памяти, процессорных ядер, места на жестком диске и IP-адресов и предлагает их в качестве VPS.

В целом гипервизоры делятся на два типа: 1 и 2. Гипервизор типа 1 работает непосредственно на хост-оборудовании, в то время как гипервизор типа 2 зависит от базовой операционной системы. Xen относится к гипервизору первого типа.

Так как Xen – технология виртуализации, созданные на ее основе ВМ могут работать на любой ОС, включая Linux, Windows и BSD. А поскольку каждая ВМ работает на своей операционной системе, вы можете обновить ядро, изменить его настройки или использовать дополнительные модули ядра.

Установка виртуализации несет за собой большой расход энергии на эмуляцию определенных аппаратных функций, а также на запуск операционной системы. Чтобы уменьшить расходы, Xen использует технику "паравиртуализация". В этом случае гипервизор использует альтернативные способы выполнения одних и тех же аппаратных операций более эффективным способом. Если гостевая ОС знает, как использовать эти альтернативные интерфейсы, она делает “гиперзвонок”, чтобы поговорить с гипервизором. Этот режим работы называется Xen Paravirtualization (Xen-PV).

Когда гостевая ОС поддерживает паравиртуализацию, используется другой режим виртуализации – Xen Hardware Virtual Machine (Xen-HVM). В этом случае Xen использует программу QEMU, чтобы обеспечить эмуляцию аппаратного обеспечения. Чтобы использовать Xen-HVM, аппаратная виртуализация должна быть обеспечена хост-системой.

KVM (Kernel Virtual Machine) – это модуль ядра Linux, который предоставляет платформу для сторонних инструментов (таких как QEMU) для обеспечения виртуализации. Поскольку это модуль ядра, KVM повторно использует многие функции ядра Linux для своих целей.

С точки зрения конечного пользователя Xen похож на KVM, поскольку он позволяет запускать любую ОС и работать с низкоуровневыми настройками ядра. Провайдеры серверов используют сторонние инструменты для создания виртуальных машин с фиксированным объемом оперативной памяти, ядрами ЦП, пространством жесткого диска и IP-адресами и предлагают их в качестве виртуальных машин. Иногда провайдеры VPS, использующие KVM, предоставляют пользователю возможность загрузить свой ISO-файл для установки на VPS.

KVM работает только на оборудовании, поддерживающем аппаратную виртуализацию. Подобно Xen, KVM также обеспечивает паравиртуализацию для устройств ввода-вывода через API «virtio».

Что же выбрать?

Выбор платформы зависит исключительно от ваших предпочтений. Если вы не хотите тратить много денег на Linux сервер и вас не беспокоит старая версия ядра и невозможность пользоваться такими программами, как Docker , то выбирайте OpenVZ. Если вам нужна еще другая ОС, например, Windows или вы хотите использовать обновленное ядро Linux, выбирайте KVM или Xen.

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

Есть провайдеры, которые рекламируют свои KVM и Xen как «специализированные ресурсы», но, к сожалению, это тоже не всегда правда. И KVM, и Xen предлагают функцию «раздувания памяти» («memory ballooning»), при которой ваша оперативная память может быть востребована другим VPS. В каждом VPS установлен драйвер (Balloon Driver), который помогает в этом процессе. Когда гипервизор забирает память у вашего VPS, создается впечатление, что драйвер не дает пользоваться вашей памятью. Однако VPS никогда не сможет получить больше памяти, чем ему было изначально выделено.

Таким образом, перегрузка возможна в случае со всеми тремя платформами. Однако провайдеры KVM/Xen перегружают их намного меньше, чем OpenVZ, из-за технических ограничений системы, основанной на гипервизоре.

Мы в Cloud4Y считаем лидирующим решением для виртуализации продукты VmWare. Тем не менее, мы интересуемся и другими решениями, в том числе, Xen и KVM. И вот что мы заметили: существует не так уж много информации, позволяющей сравнить эти гипервизоры: последние дельные исследования, которые мы нашли в сети, относятся к 2012 году и, конечно, уже не могут считаться актуальными. Сегодня мы представим вашему вниманию тоже не самое новое, но, на наш взгляд, достаточно полезное исследование, посвященное производительности гипервизоров KVM и Xen.


image


Гипервизор KVM

Да простят нас гуру виртуализации, но для начала мы напомним читателям, что такое гипервизор и для чего он нужен. Для выполнения разных по смыслу задач (разработки программного обеспечения, хостинга ) проще всего использовать виртуальные машины: они позволят иметь несколько разных ОС с соответствующей программной средой. Для простоты работы с виртуальными машинами применяются гипервизоры — программные средства, позволяющие быстро развертывать, останавливать и запускать ВМ. KVM является одним из наиболее широко распространенных гипервизоров.

KVM — это ПО, позволяющее организовывать виртуализацию на основе ПК под управлением ОС Linux и похожих. С недавнего времени KVM считается составляющей и развивается параллельно ему. Этот гипервизор может использоваться только в системах, где виртуализация поддерживается аппаратно — с помощью процессоров Intel и AMD.


В процессе работы KVM осуществляет доступ к ядру напрямую посредством модуля ( или ). К тому же, в состав комплекса включено основное ядро — kvm.ko и элементы UI, включая широко распространенный QEMU. KVM дает возможность напрямую работать с файлами ВМ и дисковыми образами. Каждая виртуальная машина обеспечивается своим изолированным пространством.

Гипервизор Xen

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

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

Суть исследования

  • Kernel: 3.14.8
  • Для KVM: 1.6.2
  • Для Xen: xen 4.3.2

Пояснения

из вас может начать возмущаться — мол, владелец Fedora 20, Red Hat, тратит значительное количество усилий на поддержку именно KVM. Уточним: Red Hat не делали значительных продвижений по части Xen долгие годы.


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

Исследование проводилось на процессорах Intel, поэтому его результаты могут отличаться для AMD и ARM.

Результаты

Тесты для виртуальных машин, установленных непосредственно на «железо», то есть, без операционной системы (далее — «железо»), послужили основой для тестирования виртуальных машин. Отклонение в производительности между двумя серверами без виртуализации составило 0.51% или менее.


Производительность KVM упала в пределах 1,5% по сравнению с «железом» практически во всех тестах. Только два теста показали иной результат: один из них — тест , где KVM показал себя на 2,79% медленнее, чем «железо». Странно, что KVM был на 4,11% быстрее в тесте PostMark (который симулировал сильно загруженный почтовый сервер). Производительность Xen сильнее отличалась от производительности «железа», чем в ситуации с KVM. В трех тестах Xen отличался на 2,5% от скорости «железа», в остальных тестах он оказался еще медленнее.

В тесте PostMark Xen был медленнее на 14.41%, чем «железо». При перезапуске результаты теста отличались от первоначальных на 2%. Лучший тест для KVM, MAFFT, оказался вторым в списке худших для Xen.

Вот краткий итог тестирования:

Best Value Bare Metal KVM Xen
Timed MAFFT Alignment lower 7.78 7.795 8.42
Smallpt lower 160 162 167.5
POV-Ray lower 230.02 232.44 235.89
PostMark higher 3667 3824 3205
OpenSSL higher 397.68 393.95 388.25
John the Ripper (MD5) higher 49548 48899.5 46653.5
John the Ripper (DES) higher 7374833.5 7271833.5 6911167
John the Ripper (Blowfish) higher 3026 2991.5 2856
CLOMP higher 3.3 3.285 3.125
C-Ray lower 35.35 35.66 36.13
7-Zip higher 12467.5 12129.5 11879

Если вы хотите увидеть результаты полностью, пройдите по ссылке.

Вместо заключения

В нашем тестировании KVM был почти всегда на 2% медленнее, чем «железо». Xen оказался на 2,5% медленнее в трех тестах из десяти, а в остальных и того хуже: на 5–7%. Хотя KVM показал себя с лучшей стороны в тесте PostMark, следует отметить, что мы провели всего один I/O тест, и для получения более достоверной картины стоит провести еще несколько.


Для выбора правильного гипервизора необходимо правильно оценить характер своих нагрузок. Если ваши нагрузки предполагают меньший объем для процессора и больший для I/O, то можно провести больше I/O тестов. Если же вы работаете, в основном, с аудио и видео, попробуйте тесты x264 или mp3.

[UPD] Как справедливо заметил mister_fog, в 2007 Citrix выкупила не исходный код Xen, а компанию XenSource, которая была основана разработчиками Xen и занималась коммерческим развитием этого открытого проекта. Пруф.

Мы в Cloud4Y считаем лидирующим решением для виртуализации продукты VmWare. Тем не менее, мы интересуемся и другими решениями, в том числе, Xen и KVM. И вот что мы заметили: существует не так уж много информации, позволяющей сравнить эти гипервизоры: последние дельные исследования, которые мы нашли в сети, относятся к 2012 году и, конечно, уже не могут считаться актуальными. Сегодня мы представим вашему вниманию тоже не самое новое, но, на наш взгляд, достаточно полезное исследование, посвященное производительности гипервизоров KVM и Xen.


image


Гипервизор KVM

Да простят нас гуру виртуализации, но для начала мы напомним читателям, что такое гипервизор и для чего он нужен. Для выполнения разных по смыслу задач (разработки программного обеспечения, хостинга ) проще всего использовать виртуальные машины: они позволят иметь несколько разных ОС с соответствующей программной средой. Для простоты работы с виртуальными машинами применяются гипервизоры — программные средства, позволяющие быстро развертывать, останавливать и запускать ВМ. KVM является одним из наиболее широко распространенных гипервизоров.

KVM — это ПО, позволяющее организовывать виртуализацию на основе ПК под управлением ОС Linux и похожих. С недавнего времени KVM считается составляющей и развивается параллельно ему. Этот гипервизор может использоваться только в системах, где виртуализация поддерживается аппаратно — с помощью процессоров Intel и AMD.


В процессе работы KVM осуществляет доступ к ядру напрямую посредством модуля ( или ). К тому же, в состав комплекса включено основное ядро — kvm.ko и элементы UI, включая широко распространенный QEMU. KVM дает возможность напрямую работать с файлами ВМ и дисковыми образами. Каждая виртуальная машина обеспечивается своим изолированным пространством.

Гипервизор Xen

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

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

Суть исследования

  • Kernel: 3.14.8
  • Для KVM: 1.6.2
  • Для Xen: xen 4.3.2

Пояснения

из вас может начать возмущаться — мол, владелец Fedora 20, Red Hat, тратит значительное количество усилий на поддержку именно KVM. Уточним: Red Hat не делали значительных продвижений по части Xen долгие годы.


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

Исследование проводилось на процессорах Intel, поэтому его результаты могут отличаться для AMD и ARM.

Результаты

Тесты для виртуальных машин, установленных непосредственно на «железо», то есть, без операционной системы (далее — «железо»), послужили основой для тестирования виртуальных машин. Отклонение в производительности между двумя серверами без виртуализации составило 0.51% или менее.


Производительность KVM упала в пределах 1,5% по сравнению с «железом» практически во всех тестах. Только два теста показали иной результат: один из них — тест , где KVM показал себя на 2,79% медленнее, чем «железо». Странно, что KVM был на 4,11% быстрее в тесте PostMark (который симулировал сильно загруженный почтовый сервер). Производительность Xen сильнее отличалась от производительности «железа», чем в ситуации с KVM. В трех тестах Xen отличался на 2,5% от скорости «железа», в остальных тестах он оказался еще медленнее.

В тесте PostMark Xen был медленнее на 14.41%, чем «железо». При перезапуске результаты теста отличались от первоначальных на 2%. Лучший тест для KVM, MAFFT, оказался вторым в списке худших для Xen.

Вот краткий итог тестирования:

Best Value Bare Metal KVM Xen
Timed MAFFT Alignment lower 7.78 7.795 8.42
Smallpt lower 160 162 167.5
POV-Ray lower 230.02 232.44 235.89
PostMark higher 3667 3824 3205
OpenSSL higher 397.68 393.95 388.25
John the Ripper (MD5) higher 49548 48899.5 46653.5
John the Ripper (DES) higher 7374833.5 7271833.5 6911167
John the Ripper (Blowfish) higher 3026 2991.5 2856
CLOMP higher 3.3 3.285 3.125
C-Ray lower 35.35 35.66 36.13
7-Zip higher 12467.5 12129.5 11879

Если вы хотите увидеть результаты полностью, пройдите по ссылке.

Вместо заключения

В нашем тестировании KVM был почти всегда на 2% медленнее, чем «железо». Xen оказался на 2,5% медленнее в трех тестах из десяти, а в остальных и того хуже: на 5–7%. Хотя KVM показал себя с лучшей стороны в тесте PostMark, следует отметить, что мы провели всего один I/O тест, и для получения более достоверной картины стоит провести еще несколько.


Для выбора правильного гипервизора необходимо правильно оценить характер своих нагрузок. Если ваши нагрузки предполагают меньший объем для процессора и больший для I/O, то можно провести больше I/O тестов. Если же вы работаете, в основном, с аудио и видео, попробуйте тесты x264 или mp3.

[UPD] Как справедливо заметил mister_fog, в 2007 Citrix выкупила не исходный код Xen, а компанию XenSource, которая была основана разработчиками Xen и занималась коммерческим развитием этого открытого проекта. Пруф.

Читайте также: