Порівняння систем віртуалізації KVM та XEN

Опис Xen та KVM

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

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

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

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

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

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

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

Версії ПЗ:

На дискових розділах основного та віртуальних серверів використовувалася файлова система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.

Результати:

За точку відліку ми взяли результати тестів на серверах без віртуалізації. Розбіжність у результатах тестів між серверами (без віртуалізації) становила 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 показав один із найгірших результатів.

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