• Главная
  • Карта сайта
Не найдено

KVM (Kernel-based Virtual Machine) - Національна бібліотека ім. Н. Е. Баумана

  1. оточення
  2. Історія
  3. Принцип роботи
  4. Функціональні можливості
  5. управління пам'яттю
  6. Зберігання даних
  7. динамічна міграція
  8. драйвери пристроїв
  9. Продуктивність і масштабованість
  10. Налаштування
  11. Створення віртуальної машини
  12. ліцензії

Матеріал з Національної бібліотеки ім. Н. Е. Баумана
Остання зміна цієї сторінки: 21:35 2 квітня 2016.

KVM (Kernel-based Virtual Machine) - програмне рішення, що забезпечує віртуалізацію в середовищі Linux на платформі x86, яка підтримує апаратну віртуалізацію на базі Intel VT (Virtualization Technology) або AMD SVM (Secure Virtual Machine).

Програмне забезпечення KVM складається з завантаження модуля ядра (званого kvm.ko), що надає базовий сервіс віртуалізації, процесорної-специфічного завантаження модуля kvm-amd.ko або kvm-intel.ko, і компонентів для користувача режиму (модифікованого QEMU). Всі компоненти програмного забезпечення KVM відкриті. Компонент ядра, необхідний для роботи KVM, включений в основну гілку ядра Linux починаючи з версії 2.6.20 (лютий 2007 року) [1] . KVM був також портовано на FreeBSD як модуль ядра [2] . Ведеться робота по включенню модифікацій, необхідних для роботи з KVM, в основну гілку QEMU.

C KVM працює велика кількість гостьових ОС, включаю безліч видів і версій Linux, BSD, Solaris, Windows, Haiku, ReactOS, Plan 9, AROS Research Operating System [3] а також OS X. [4] На додаток, Android 2.2, Minix 3.1.2a, Solaris 10 U3 and Darwin 8.0.1GNU / Hurd [5] (Debian K16), Minix 3.1.2a, Solaris 10 U3 and Darwin 8.0.1, разом з деякими версіями вище укзаних ОС, працюють з деякими обмеженнями. [6]

Паравіртуалізаціія деяких пристроїв доступна на Linux, OpenBSD, [7] FreeBSD, [8] NetBSD, [9] Plan 9 [10] і Windows гостьових ОС використовують VirtIO [11] API. Це підтримує паравіртуальние Ethernet карти, I / O контролер диска, [12] пристрою для модифікації споживаної гостем пам'яті, а також графічний інтерфейс VGA використовуючи драйвери SPICE або VMware.

оточення

Сам по собі KVM не виконує емуляції. Замість цього програма, що працює в просторі користувача, використовує інтерфейс / dev / kvm для настройки адресного простору гостя віртуальної машини, через нього ж емулює пристрої введення-виведення і відеоадаптер.

KVM дозволяє віртуальним машинам використовувати немодифіковані образи дисків QEMU, VMware та інших, що містять операційні системи. Кожна віртуальна машина має своє власне віртуальне апаратне забезпечення: мережеві карти, диск, відеокарту і інші пристрої.

Історія

Програмне забезпечення KVM було створено, розробляється і підтримується фірмою Qumranet, яка була куплена Red Hat за $ 107 млн ​​4 вересня 2008 року. Після операції KVM (поряд з системою управління виртуализацией oVirt) увійшла до складу платформи віртуалізації RHEV. KVM підтримується Paolo Bonzini. [14]

Принцип роботи

В даний час KVM взаємодіє з ядром через завантаження модуль ядра. Підтримуються різноманітні гостьові операційні системи, такі як Linux, BSD, Solaris, Windows, Haiku, ReactOS і AROS Research Operating System. Модифікована версія KVM (qemu) може працювати на Mac OS X. Примітка: KVM не виконує ніякої самоемуляціі; замість цього, програма, яка працює в просторі користувача, застосовує інтерфейс / dev / kvm для настройки адресного простору гостьового віртуального сервера, бере його змодельовані ресурси введення / виведення і відображає його образ на образ хоста.

Примітка: KVM не виконує ніякої самоемуляціі;  замість цього, програма, яка працює в просторі користувача, застосовує інтерфейс / dev / kvm для настройки адресного простору гостьового віртуального сервера, бере його змодельовані ресурси введення / виведення і відображає його образ на образ хоста

архітектура KVM

В архітектурі KVM, віртуальна машина виконується як звичайний Linux-процес, запланований стандартним планувальником Linux. Насправді кожен віртуальний процесор представляється як звичайний Linux-процес. Це дозволяє KVM користуватися всіма можливостями ядра Linux. Емуляцією пристроїв управляє модифікована версія qemu, яка забезпечує емуляцію BIOS, шини PCI, шини USB, а також стандартний набір пристроїв, таких як дискові контролери IDE і SCSI, мережеві карти і т.д.

Функціональні можливості

Безпека

Оскільки віртуальна машина реалізована як Linux-процес, вона використовує стандартну модель безпеки Linux для ізоляції та управління ресурсами. За допомогою SELinux (Security-Enhanced Linux) ядро ​​Linux додає обов'язкові засоби контролю доступу, багаторівневі і різноманітні засоби захисту, а також управляє політикою безпеки. SELinux забезпечує сувору ізоляцію ресурсів і обмежує рухливість процесів, запущених в ядрі Linux.

Проект SVirt - спроба зусиллями спільноти інтегрувати функції безпеки Mandatory Access Control (MAC) і віртуалізацію на базі Linux (KVM) - грунтується на SELinux, щоб забезпечити інфраструктуру, яка дозволить адміністратору визначати політику ізоляції віртуальних машин. SVirt покликаний гарантувати, що ресурси віртуальних машин не будуть доступні ні для яких інших процесів (або віртуальних машин); адміністратор може доповнити цю політику, визначивши детальні дозволи; наприклад, щоб група віртуальних машин спільно використовувала одні і ті ж ресурси.

управління пам'яттю

KVM успадковує потужні функції управління пам'яттю від Linux. Пам'ять віртуальної машини зберігається так само, як пам'ять будь-якого іншого Linux-процесу, і може замінюватися, копіюватися великими сторінками для підвищення продуктивності, узагальнюватися або зберігатися в файлі на диску. Підтримка технології NUMA (Non-Uniform Memory Access, архітектура пам'яті для багатопроцесорних систем) дозволяє віртуальним машинам ефективно звертатися до пам'яті великого обсягу.

KVM підтримує новітні функції віртуалізації пам'яті від виробників процесорів, зокрема, Intel Extended Page Table (EPT) і AMD Rapid Virtualization Indexing (RVI), для мінімізації завантаження процесора і досягнення високої пропускної здатності.

Узагальнення сторінок пам'яті підтримується за допомогою функції ядра Kernel Same-page Merging (KSM). KSM сканує пам'ять кожної віртуальної машини, і якщо якісь сторінки пам'яті віртуальних машин ідентичні, об'єднує їх в одну сторінку, яка стає загальною для цих віртуальних машин і зберігається в єдиній копії. Якщо гостьова система намагається змінити цю загальну сторінку, їй надається власна копія.

Зберігання даних

KVM може використовувати будь-який носій, підтримуваний Linux, для зберігання образів віртуальних машин, в тому числі локальні диски з інтерфейсами IDE, SCSI і SATA, Network Attached Storage (NAS), включаючи NFS і SAMBA / CIFS, або SAN з підтримкою iSCSI і Fibre Channel . Для поліпшення пропускної спроможності системи зберігання даних і резервування може використовуватися багато-введення / виведення.

Знову ж таки, оскільки KVM входить до складу ядра Linux, може використовуватися перевірена і надійна інфраструктура зберігання даних з підтримкою всіх провідних виробників; його набір функцій зберігання перевірений на багатьох виробничих установках.

KVM підтримує образи віртуальних машин в розподілених файлових системах, таких як Global File System (GFS2), так що вони можуть розділятися кількома хостами або узагальнюватися з використанням логічних томів. Підтримка тонкої настройки (thin provisioning) образів дисків дозволяє оптимізувати використання ресурсів зберігання даних, виділяючи їх не відразу все наперед, а тільки тоді, коли цього вимагає віртуальна машина. Власний формат дисків для KVM - QCOW2 - забезпечує підтримку знімків поточного стану і забезпечує кілька рівнів таких знімків, а також стиснення і шифрування.

динамічна міграція

KVM підтримує динамічну міграцію, забезпечуючи можливість переміщення працюючих віртуальних машин між фізичними вузлами без переривання обслуговування. Динамічна міграція прозора для користувачів: віртуальна машина залишається включеною, мережеві з'єднання - активними, і призначені для користувача програми продовжують працювати, в той час як віртуальна машина переміщається на новий фізичний сервер.

Крім динамічної міграції, KVM підтримує збереження копії поточного стану віртуальної машини на диск, дозволяючи зберігати її і відновлювати пізніше.

драйвери пристроїв

KVM підтримує гібридну віртуалізацію, коли паравіртуалізірованние драйвери встановлені в гостьовій операційній системі, що дозволяє віртуальним машинам використовувати оптимізований інтерфейс вводу / виводу, а не емульованого пристрою, забезпечуючи високу продуктивність введення / виводу для мережевих і блокових пристроїв.

Гипервизор KVM використовує стандарт VirtIO, розроблений IBM і Red Hat спільно з Linux-спільнотою для паравіртуалізірованних драйверів; це незалежний від гипервизора інтерфейс для створення драйверів пристроїв, що дозволяє декільком Гіпервізор використовувати один і той же набір драйверів пристроїв, що покращує взаємодію між гостьовими системами.

Драйвери VirtIO входять в сучасні версії Linux-ядра (найбільш пізня - 2.6.25), включені в Red Hat Enterprise Linux 4.8+ і 5.3 +, а також доступні для Red Hat Enterprise Linux 3. Red Hat розробила драйвери VirtIO для гостьових ОС Microsoft Windows , оптимізують мережеві і дискові операції введення / виводу; ці драйвери сертифіковані за програмою сертифікації Microsoft Windows Hardware Quality Labs (WHQL).

Продуктивність і масштабованість

KVM успадкував продуктивність і масштабованість Linux, підтримуючи віртуальні машини з 16 віртуальними процесорами і 256 ГБ оперативної пам'яті, а також хост-системи з 256 ядрами і більше 1 ТБ ОЗУ. Він може забезпечити:

  • продуктивність в 95-135% в порівнянні з "голим залізом" в реальних корпоративних додатках, таких як SAP, Oracle, LAMP і Microsoft Exchange;
  • понад мільйон повідомлень в секунду і менш ніж 200-мкс затримку в віртуальних машинах, що працюють на стандартному сервері;
  • максимальні рівні консолідації більш ніж з 600 віртуальними машинами, які виконують корпоративні програми, на одному сервері.

Це означає, що KVM допускає віртуалізацію найвимогливіших робочих навантажень.

Налаштування

Налаштування Virtual Machine Manager (VMM) [15]

При першому запуску програми ви побачите дві категорії, обидві не підключені. Це посилання на стандартні модулі KVM, поки не працюють. Для їх використання правою кнопкою миші і виберіть "connect".

Щоб додати нове з'єднання, виберіть у меню File> Add Connection. При цьому відкриється вікно, в якому можна буде задати тип гипервизора і тип з'єднання. VMM може використовувати як локальні, так і віддалені з'єднання, включаючи QUEMU / KVM і Xen. Крім того, підтримуються всі методи аутентифікації.

Можна також поставити галочку autoconnect. При наступному запуску програми ці сполуки будуть готові до використання.

Коротко розглянемо інші функції програми.
Мережеву функціональність можна переглянути або змінити, відкривши пункт Host Details. Там же ми встановимо утиліти для роботи мережевого моста.

Аналогічно можна змінити параметри дискової підсистеми:

Створення віртуальної машини

Створити віртуальну машину можна і з командного рядка, але ми скористаємося VMM. Перший крок повинен бути інтуїтивно зрозумілий. Введіть назву і задайте розташування інсталяційного диска. Це може бути як локальний пристрій у вигляді диска CD / DVD або образу ISO, так і HTTP або FTP сервер, NFS або PXE.

Ми використовуємо локальний носій. Тепер необхідно задати, чи буде це фізичний пристрій або образ. У нашому випадку використовується ISO. Далі потрібно вибрати тип і версію ISO. Тут не потрібно така вже висока точність, але правильний вибір дозволить підвищити продуктивність віртуальної машини.

Задаємо кількість процесорів і розмір оперативної пам'яті:

Четвертий етап - віртуальний диск. Ви можете створити новий образ або використовувати існуючий. Необхідно вибрати розмір диска і поставити, чи буде створено образ диска відразу заданого розміру, або його розмір буде збільшуватися динамічно в міру необхідності. Необхідно відзначити, що виділення відразу всього простору під образ диска підвищує продуктивність і зменшує фрагментованість файлової системи.

Далі ми ще приділимо увагу дискової підсистеми. Однак зверніть увагу, що при роботі в режимі Usermode у вас не буде прав записи в / var, де за замовчуванням зберігаються образи віртуальних дисків. Тому необхідно буде задати інше розташування для образів.
Етап 5 - це висновок зведених даних з можливістю настройки деяких просунутих опцій. Тут ви можете змінити тип мережі, задати фіксовані MAC-адреси, вибрати тип віртуалізації і цільову архітектуру. Якщо ви працюєте в режимі Usermode, можливості налаштування мережі будуть обмежені, наприклад неможливо буде створити мости між мережевими інтерфейсами. І останнє: якщо ваш процесор не підтримує апаратної віртуалізації, поле Virt Type матиме значення QUEMU і змінити його на KVM буде неможливо. Ви можете подивитися, як виглядають типові настройки для віртуальної машини Ubuntu:

Наша машина готова до використання.

Нижче представлена ​​пара скріншотів, що показує опції клонування і переміщення віртуальної машини.

Зверніть увагу на невелику завантаження системи. З цим режимом емуляції можна запускати одночасно кілька віртуальних машин.

При необхідності можна видалити віртуальну машину разом з усіма її файлами:

ліцензії

  • KVM модуль ядра: GPL v2.
  • KVM модуль користувацького оточення: LGPL v2.
  • QEMU бібліотека віртуального процесора (libqemu.a) і емулятор системи QEMU PC: LGPL.
  • Емулятор призначеного для користувача режиму Linux QEMU: GPL.
  • Файли BIOS (bios.bin, vgabios.bin і vgabios-cirrus.bin): SeaBIOS (LGPL v2 або більш пізня).

графічні інструменти

  • Kimchi веб інструмент менеджменту для KVM
  • Virtual Machine Manager підтримує створення, редакцію, старт і зупинку KVM-машин, також як холодну міграцію ВМ між хостами
  • Proxmox Virtual Environment вільний пакет менеджменту віртуалізації, включаючи KVM і OpenVZ. Має установник на голу машину, віддалений веб-інтерфейс для менеджменту, і опціонально комерційну підтримку.
  • OpenQRM платформа менеджменту для управління гетерогенними дата центрами.
  • GNOME Boxes інтерфейс Gnome для управління libvirt гостями на Linux.
  • oVirt вільний існструмент менеджменту віртуалізації для KVM на основі libvirt

реалізації

  • Debian 5.0 і вище
  • Gentoo Linux
  • illumos-based дистрибутиви
  • OpenIndiana
  • Red Hat Enterprise Linux (RHEL) 5.4 і вище
  • SmartOS
  • SUSE Linux Enterprise Server (SLES) 11 SP1 і вище
  • Ubuntu 10.04 LTS і вище
  • Univention Corporate Server

Emulated hardware

Клас Пристрій Відеокарта Cirrus CLGD 5446 PCI VGA карта, VGA card з розширеннями Bochs VESA, [16] або Virgil як 3D GPU [17] PCI Intel 440FX host PCI міст і PIIX3 PCI як ISA bridge [16] Пристрої введення PS / 2 Миша та клавіатура [16] Звукова карта Sound Blaster 16, ENSONIQ AudioPCI ES1370, Gravis Ultrasound GF1], CS4231A compatible [16] Мережева карта AMD Am79C970A (Am7990), E1000 (Intel 82540EM, 82573L, 82544GC), NE2000 and Realtek RTL8139 Таймер Intel 6300ESB or IB700 Оперативна пам'ять між 50 MB і 32 TB CPU 1 - 160 CPUs

посилання

Провайдеры:
  • 08.09.2015

    Batyevka.NET предоставляет услуги доступа к сети Интернет на территории Соломенского района г. Киева.Наша миссия —... 
    Читать полностью

  • 08.09.2015
    IPNET

    Компания IPNET — это крупнейший оператор и технологический лидер на рынке телекоммуникаций Киева. Мы предоставляем... 
    Читать полностью

  • 08.09.2015
    Boryspil.Net

    Интернет-провайдер «Boryspil.net» начал свою работу в 2008 году и на данный момент является одним из крупнейших поставщиков... 
    Читать полностью

  • 08.09.2015
    4OKNET

    Наша компания работает в сфере телекоммуникационных услуг, а именно — предоставлении доступа в сеть интернет.Уже... 
    Читать полностью

  • 08.09.2015
    Телегруп

    ДП «Телегруп-Украина» – IT-компания с 15-летним опытом работы на рынке телекоммуникационных услуг, а также официальный... 
    Читать полностью

  • 08.09.2015
    Софтлинк

    Высокая скоростьМы являемся участником Украинского центра обмена трафиком (UA — IX) с включением 10 Гбит / сек... 
    Читать полностью