descr
 Описание Xen и KVM

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

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

XEN-LogoС установкой Xen дела обстоят немного сложнее. Вам потребуется установить специально модифицированное ядро ОС. Правда, следует отметить, что такие ядра также присутствуют в наиболее популярных Linux дистрибутивах (Fedora, CentOS, Debian и др) и, в отличии от KVM, Xen не требует поддержки аппаратной виртуализации /конечно если вы не собираетесь запускать ОС Windows, BSD на виртуальных машинах/. Саму систему виртуализации Xen можно представить как “двухэтажную систему”, т.е. ядро ОС запускает специальную привилегированную гостевую машину (Dom0), которая занимается управлением другими гостевыми машинами (DomU).

Так как технические возможности систем виртуализации KVM и Xen примерно одинаковы, для обычных пользователей наиболее интересным является сравнение производительности виртуальных машин, работающих под управлением KVM и Xen. Подобные сравнительные тесты уже выполнялись компанией Phoronix более года назад, а немного “погуглив” можно найти еще более поздние тесты за 2011 год, но время не стоит на месте и разработчики постоянно вносят изменения в разрабатываемые ими программные продукты, что сказывается на производительности виртуальных машин.


testТестовая платформа:

Для проведения тестов использовались два абсолютно одинаковых сервера компании SuperMicro, каждый из которых был оснащен процессором Intel Xeon E3-1200 (четыре ядра по 3,1ГГц), 24Гб памяти DDR3 и четырьмя жесткими дисками  WD RE-3 160GB (SATA), объединенными в дисковый массив RAID10. BIOS обоих серверов также был одной версии.

На основной и гостевых виртуальных машинах использовалась ОС Linux Fedora 20 с отключенным SElinux. Для большей чистоты тестов на основном и виртуальных серверах были остановлены все сервисы, кроме тех, которые необходимы для нормальной работы виртуальных машин.

Версии используемого ПО:

  • Ядро ОС: 3.14.8
  • KVM: qemu-kvm 1.6.2
  • Xen: xen 4.3.2

На дисковых разделах основного и виртуальных серверов использовалась файловая система XFS. Виртуальные машины создавались с помощью панели управления virt-manager с настройками, которые virt-manager использует для создания виртуальных серверов, работающих под управлением KVM и Xen по умолчанию. Также следует отметить, что виртуальные диски всех VPSов представляли собой RAW образы, а каждому VPSу выделялось по 8Гб памяти и 4 виртуальных ядра. Гостевые машины Xen работали в режиме “паравиртуализации”, который обеспечивает большую производительность в сравнении с аппаратной виртуализацией Xen HW.

Замечания:

Кто то заметит, что использовалась ОС Fedora, которая является тестовой платформой компании Red Hat (компании, которая прилагает значительные усилия в развитие системы виртуализации KVM). Таким образом, нельзя исключать того, что в программных продуктах от Red Hat поддержка KVM будет значительно лучшей, чем в других Linux дистрибутивах

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

Все тесты выполнялись на серверах с процессором Intel. Возможно, общая картина будет совсем иной, если эти тесты будут выполнены на серверах с процессором AMD.


results Результаты:

За точку отсчета мы взяли результаты тестов, выполненных на серверах без виртуализации. Расхождение в результатах тестов между серверами (без виртуализации) составило 0.51% и менее.

Результаты тестов полученные на виртуальных машинах KVM практически во всех тестах показали падение производительности на 1.5% в сравнении с серверами без виртуализации. Только в двух тестах разница была иной. Один из этих тестов – 7-Zip, в нем падение производительности составило 2.79%. Странно, но тест PostMark эмулирующий работу загруженного почтового сервера, показал прирост производительности на 4.11% в сравнении с сервером без виртуализации.

Падение производительности виртуальных машин Xen было более значительным чем KVM. Три теста показали падение производительности на 2.5%, а результаты остальных тестов были хуже чем у KVM в 2-4 раза. В тесте
PostMark падение производительности составило примерно 14.41%, а тест “Timed MAFFT Alignment”, с которым VPS под KVM справились лучше всего, в Xen показал один из худших результатов.

Сводная таблица результатов:

Тест   Лучшее  значение Без виртуализации KVM XEN
 7-Zip большее 12467.5 12129.5 11879
 CLOMP  большее  3.3 3.285  3.125
 John the Ripper (Blowfish)  большее  3026  2991.5  2856
 John the Ripper (DES)  большее  7374833.5  7271833.5 6911167
 John the Ripper (MD5)  большее  49548  48899.5  46653.5
 OpenSSL   большее  397.68  393.95  388.25
 PostMark  большее  3667  3824  3205
 C-Ray меньшее  35.35  35.66  36.13
POV-Ray  меньшее  230.02 232.44 235.89
Smallpt  меньшее  160  162  167.5
Timed MAFFT Alignment  меньшее  7.78  7.795  8.42

outputЗаключение:

Проведенные тесты показали, что среднее падение производительности виртуальных машин, работающих под KVM в сравнении с машиной без виртуализации составляет примерно 2%. В Xen эта цифра составила примерно 2.5% в трех из десяти тестов, но в остальных тестах это значение увеличилось до 5-7%. Не смотря на то, что тест PostMark, показал значительно лучший результат в KVM, это был единственный тест дисковой производительности и для большей объективности, необходимо провести больше различных тестов дисковой системы, чтобы понять, какая именно виртуальная среда справляется с дисковыми операциями лучше.

Наш личный выбор пал на KVM по таким причинам:

1. Простота в обслуживании.
2. Регулярное исправление найденных ошибок в коде KVM ядра Linux обеспечивает надежность и стабильность работы.
3. Высокая производительность.

Конечно, мы не утверждаем, что KVM это то, что подходит всем. Мы даже призываем вас провести аналогичные тесты самостоятельно используя “Phoronix Test Suite”, выполняя те тесты, которые соответствуют вашим задачам. Таким образом, если ваши задачи не
требовательны к процессору, но интенсивно используют дисковую систему, выполняйте тесты, которые тестируют именно дисковую систему. Это позволит вам определить, какая из систем виртуализации лучше подходит под ваши задачи.