Опис Xen і KVM
Наразі гіпервізори KVM і Xen є найбільш популярними гіпервізорами з відкритим вихідним кодом для ОС Linux. Функціонал обох гіпервізорів приблизно однаковий, хоча кожен із них виконує покладені технічні завдання, використовуючи різні методи.
Підтримка KVM від самого початку включена в ядро ОС Linux і для запуску віртуальних машин потрібен тільки комп’ютер/сервер із процесором, що підтримує апаратну технологію віртуалізації (Intel-VT / AMD-V). Варто зазначити, що всі сучасні серверні процесори підтримують її. Також, необхідно завантажити модулі ядра KVM, а як повідомлялося раніше, вони вже присутні в ядрі ОС Linux. Після завантаження модулів саме ядро ОС стає гіпервізором, що керує віртуальними машинами.
З установкою Xen справи йдуть трохи складніше. Вам буде потрібно встановити спеціально модифіковане ядро ОС. Щоправда, слід зазначити, що такі ядра також присутні в найпопулярніших Linux дистрибутивах (Fedora, CentOS, Debian тощо) і, на відміну від KVM KVM, Xen./strong>, 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. Для більшої чистоти тестів на основному та віртуальних серверах було зупинено всі сервіси, окрім тих, що потрібні для нормальної роботи віртуальних машин.
.
Версії використовуваного ПЗ:
- Ядро ОС: 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.
.
Результати:
За точку відліку ми взяли результати тестів, виконаних на серверах без віртуалізації. Розбіжність у результатах тестів між серверами (без віртуалізації) склала 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 |
КЛОМП | більше | 3.3 | 3.285 | 3.125 |
Джон Потрошитель (Бловер) | більше | 3026 | 2991.5 | 2856 |
Джон Потрошитель (DES) | більше | 7374833.5 | 7271833.5 | 6911167 |
Джон Потрошитель (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 |
Тимчасте вирівнювання МАФФТ | менша | 7.78 | 7.795 | 8.42 |
Висновок:
Проведені тести показали, що середнє падіння продуктивності віртуальних машин, які працюють під KVM, як порівняти з машиною без віртуалізації, становить приблизно 2%. У Xen ця цифра склала приблизно 2.5% у трьох із десяти тестів, але в інших тестах це значення збільшилося до 5-7%. Не дивлячись на те, що тест PostMark, показав значно кращий результат у KVM, це був єдиний тест дискової продуктивності, і для більшої об’єктивності, необхідно провести більше різних тестів дискової системи, щоб зрозуміти, яке саме віртуальне середовище справляється з дисковими операціями краще.
.
Наш особистий вибір припав на KVM з таких причин:
1. Простота в обслуговуванні.
2. Регулярне виправлення знайдених помилок у коді KVM ядра Linux забезпечує надійність і стабільність роботи..
3. Висока продуктивність.
Звісно, ми не стверджуємо, що KVM це те, що підходить усім. Ми навіть закликаємо вас провести аналогічні тести самостійно використовуючи “Phoronix Test Suite”, виконуючи ті тести, які відповідають вашим завданням. Таким чином, якщо ваші завдання не
вимогливі до процесора, але інтенсивно використовують дискову систему, виконуйте тести, які тестують саме дискову систему. Це дасть змогу вам визначити, яка із систем віртуалізації найкраще підходить під ваші завдання.