2

You might also like

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 7

Віртуальні машини

Калум-Олдрідж

2 Огляд
Мета віртуальних машин полягає в тому, щоб абстрагувати апаратне забезпечення
одного комп'ютера в декількох середовищах виконання.
Ілюзія, що кожне середовище працює на своєму окремому комп'ютері.

3 Огляд: Компоненти
Хост: основна апаратна система, яка керує віртуальними машинами.
Менеджер віртуальних машин (гіпервізор): Створює та запускає віртуальні машини,
надаючи інтерфейс, ідентичний хосту.
Гість: Програмний компонент віртуальної машини, тобто зазвичай незалежний екземпляр
операційної системи.

4 Огляд: Реалізації
Гіпервізори типу 0: апаратні рішення, які забезпечують підтримку створення та
управління віртуальною машиною через прошивку. Наприклад: IBM LPAR
Гіпервізори типу 1: операційне програмне забезпечення, створене для забезпечення
віртуалізації. Наприклад: VMware ESX
Гіпервізори типу 2: програми, які працюють на стандартних ОС, але надають функції
VMM для гостьових ОС. Наприклад: паралелі, VirtualBox
Емулятори: дозволяє додаткам, написаним для одного апаратного середовища, працювати
на зовсім іншому апаратному середовищі. Екс: CEMU

5 Історія
Віртуальні машини вперше з'явилися комерційно на мейнфреймах IBM в 1972 році.
Забезпечується операційною системою IBM VM.
Однією з проблем ранніх ВМ були дискові системи. Як вирішити багато віртуальних
машин, використовуючи кілька дисків?
Minidisks: Віртуальні диски, де система виділяє стільки треків на фізичних дисках,
скільки потрібно мінідиску.

6 Історія cont.
IBM залишалася майстром віртуалізації протягом багатьох років після її введення.
Формальне визначення для віртуалізації допомогло встановити системні вимоги та ціль
для функціональності.
VMM забезпечує середовище для програм, які по суті ідентичні оригінальній машині.
Програми, що працюють у цьому середовищі, показують лише незначну продуктивність,
зменшується..
ВММ повністю контролює системні ресурси.

7 Переваги та особливості
Хост-система захищена від віртуальних машин. Віртуальні машини захищені один від
одного.
Потенційним недоліком є запобігання розподілу ресурсів.
Може призупинити або зробити «знімки» VM. Може пізніше відновити з тієї ж точки
після створення копії або переміщення VM.
Багато віртуальних машин на одній робочій станції дозволяють розробникам швидко
тестувати і портувати різні версії своїх програм.

8 Переваги та особливості cont.


Консолідація системи: прийняття ще двох окремих систем і запуск їх у ВМ на одній
системі.
Оптимізує ресурси і часто спостерігається у виробничих дата-центрах
Шаблони: один стандартний образ віртуальної машини, який використовується як
джерело для декількох віртуальних машин.
Все більш корисні серед інших функцій для системних адміністраторів. Керувати 100
фізичними серверами на 20 віртуальних серверах набагато простіше, ніж мати справу з
плоскими 2000 серверами.

9 Переваги та особливості cont.


Жива міграція: функція, яка переміщує запущеного гостя з одного фізичного сервера
на інший без переривання його роботи.
Якщо сервер перевантажений або потребує обслуговування, жива міграція може
звільнити ресурси на хості джерела, не порушуючи гостя.
Програми можуть бути встановлені на спеціально налаштовану VM для конкретного
певного додатка.
Більш ефективний, ніж наявність декількох додатків, встановлених на одній хост-ОС.

10 Віртуальні машини з будівельними блоками 10 надзвичайно корисні, але їх важко


реалізувати.
Точний дублікат базової машини займає багато роботи.
Можливість віртуалізації залежить від можливостей, що надаються процесором.
Віртуальний процесор (VCPU): VCPU не виконує код, а скоріше представляє стан
процесора, як гість вважає, що це.
Коли гість перемикається на процесор VMM, інформація з VCPU використовується для
завантаження правильного контексту.
Схоже на те, як операційна система загального призначення буде використовувати
друковану плату.

11 Реалізації: пастка та емуляція


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

12 Пастка і емуляція cont.


Коли ядро в гостя намагається виконати привілейовану інструкцію, це призводить до
помилки, що викликає пастку VMM в реальній машині.
VMM емулює дію, яка була зроблена гостьовим ядром, а потім повертає управління
віртуальній машині.
Це метод trap-and-emulate.
Більшість продуктів віртуалізації певною мірою використовують цей метод.

13 Пастка і емуляція cont.


14 Бінарний переклад
Деякі процесори не мають чистого чіткого поділу привілейованих і непривілейованих
інструкцій.
Процесор Intel x86, на жаль, є одним з них.
Бінарний переклад:
Якщо гостьовий VCPU знаходиться в користувацькому режимі, гість може виконувати
свої інструкції наново на фізичному процесорі.
Якщо гостьовий VCPU знаходиться в режимі ядра, то гість вважає, що він працює в
режимі ядра. VMM розглядає кожну інструкцію, яку гість виконує у режимі
віртуального ядра, читаючи наступні кілька інструкцій, які гість збирається
виконати через лічильник гостьових програм. Спеціальні інструкції переводяться в
новий набір інструкцій, які виконують еквівалентну задачу, тоді як звичайні
інструкції виконуються наново.

15 Бінарний переклад cont.


16 Вкладені таблиці сторінок
Як менеджер віртуальної пам'яті може зберігати стан таблиці сторінок як для гостей,
які вважають, що вони керують таблицями сторінок, так і для самого VMM?
Відповідь - вкладені таблиці сторінок (ДНЯЗ), які реалізовані як у трепінгу, так і
в емуляції, а також у бінарному перекладі.
Кожна гостьова ОС підтримує одну або кілька таблиць сторінок для перекладу з
віртуальної на фізичну пам'ять. VMM підтримує ДНЯЗ, щоб представляти стан сторінки
гостя, як VCPU.

17 Вкладені таблиці сторінок cont.


Коли гість змінює таблицю сторінок, зміна відображається в ДНЯЗ.
Коли гість знаходиться на процесорі, VMM ставить вказівник на відповідний ДНЯЗ у
відповідний регістр процесора.
Якщо гостю необхідно змінити таблицю сторінок, операція перехоплюється VMM і
вносяться відповідні зміни.

18 Апаратна допомога
Без деякого рівня апаратної підтримки віртуалізація була б неможливою.
Intel додала нову підтримку віртуалізації в послідовних поколіннях сімейства x86 і
тепер бінарний переклад більше не потрібен.
AMD і Intel звернулися до управління пам'яттю, яке дозволяє VMM не повинні
впроваджувати програмне забезпечення ДНЯЗ.
Стандартний контролер прямого доступу до пам'яті (DMA) приймає адресу цільової
пам'яті та пристрій введення/виведення джерела та передає дані між ними без дії ОС.
Без цієї апаратної допомоги гість може спробувати налаштувати передачу DMA, яка
впливає на VMM або інших гостей.

19 типів віртуальних машин: життєвий цикл VM


Щоразу, коли створюється віртуальна машина, творець дає VMM певні параметри
Скільки VCPUS, обсяг пам'яті, обсяг дискового простору, доступ до DVD-диска і т.д.
Потім VMM створює VM з цими заданими параметрами. Ресурси виділені або
віртуалізовані, залежно від типу.
Коли віртуальна машина більше не потрібна, її можна видалити.
Відносно простий життєвий цикл віртуальних машин може призвести до розростання
віртуальних машин, в яких є так багато віртуальних машин в системі, що їх,
використання, історія та стан стають заплутаними та важкими для відстеження.

20 типів віртуальних машин: тип 0 гіпервізор


Гіпервізори типу 0 існують протягом багатьох років під багатьма назвами, включаючи
«розділи» та «домени».
Тип 0s є апаратною функцією і дуже близький до виконання необробленого обладнання
ОС не потрібно робити нічого особливого, щоб скористатися їх функціями.
VM кодується в прошивці і завантажується під час завантаження.
Набір ознак, як правило, менший за інші типи.
Гіпервізор керує спільним доступом або надає всі пристрої контрольному розділу. У
розділі гостьова ОС надає послуги через фонові служби іншим гостям, а гіпервізорні
маршрути вводу/виводу надсилають відповідні запити.

21 типи віртуальних машин: тип 0 гіпервізор


22 типи віртуальних машин: тип 1 гіпервізор
Гіпервізори типу 1 зазвичай зустрічаються в центрах обробки даних і все більше
відомі як «ОС центру обробки даних».
Запустіть на апаратному забезпеченні.
Створюйте, запускайте та керуйте гостьовими ОС, а не системними викликами та іншими
інтерфейсами.
Тип 1 працює в режимі ядра, користуючись апаратним захистом.
Використовуючи гіпервізори типу 1, менеджери центрів обробки даних можуть об'єднати
більше Oses і додатків на меншу кількість систем.

23 типи віртуальних машин: тип 1 гіпервізор


За допомогою знімків і клонування система може зберігати стани гостей і дублювати
ці стани.
Ціна на це підвищена керованість - це вартість ВММ, необхідність вивчення нових
інструментів, а також підвищена складність.

24 типи віртуальних машин: тип 2 гіпервізор


Гіпервізори 2 типу - це VMM на прикладному рівні.
Просто інший процес запускається і управляється хостом.
Хост навіть не знає, що віртуалізація відбувається.
Гіпервізори 2 типу, як правило, мають більш низьку загальну продуктивність, ніж тип
0 або 1.
Якщо VMM запускається користувачем без прав адміністратора, VMM не може
скористатися функціями апаратної допомоги.
Є накладні витрати на управління операційною системою загального призначення, а
також гостьовими операційними системами.
Гіпервізори 2 типу все ще мають переваги, оскільки вони дуже мобільні.

25 Паравіртуалізація
Паравіртуалізація представляє гостю систему, яка схожа, але не ідентична бажаній
системі гостя.
Гість повинен бути змінений, щоб працювати на паравіртуалізованому віртуальному
обладнанні.
Ця додаткова робота призводить до більш ефективного використання ресурсів і меншого
рівня віртуалізації.
Xen VMM реалізує кілька методів для оптимізації продуктивності гостей, а також
господарів.
Представляє чисті та прості абстракції пристроїв, що дозволяють ефективне
введення/виведення даних.
Не впроваджує ДНЯЗ. Кожен гість має свої власні таблиці сторінок, встановлені
тільки для читання.
Гіперкаль проводиться від гостя до гіпервізора VMM, коли потрібна зміна.

26 Програмування-середовище віртуалізації
Мова програмування призначена для запуску в спеціально побудованому
віртуалізованому середовищі.
Віртуальна машина Java (JVM) є особливо помітним прикладом з конкретними методами
безпеки та управління пам'яттю.
Для Java програми працюють в середовищі JVM, що означає, що будь-яка система може
запустити програму Java, припускаючи наявність JVM.

27 типів віртуальних машин: емуляція


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

28 Компоненти операційної системи: планування процесора


Система з віртуалізацією часто діє як багатопроцесорна система.
Програмне забезпечення віртуалізації представляє один або кілька віртуальних
процесорів для кожної з віртуальних машин, що працюють на системі, і планує
використання фізичних процесорів серед машин.
Коли процесорів достатньо, щоб виділити потрібний номер кожному гостю, VMM може
розглядати процесори як виділені та запланувати лише нитки гостя на процесорах
цього гостя.
Не може бути достатньо процесорів, щоб обійти в інших випадках, що викликає
перевитрати, в яких гості налаштовані на більше процесорів, ніж існує в хості.
VMM займається цим, розподіляючи ресурси процесора пропорційно кількості доступного
обладнання.
29 Компоненти операційної системи: пам'ять Mgmt.
Ефективне використання пам'яті в операційних системах загального призначення є
одним з основних ключів до продуктивності
VMM зазвичай перевантажують пам'ять, так що загальна пам'ять гостей налаштовується
перевищує кількість пам'яті, яка фізично існує.
Наприклад: VMware ESX встановлює, скільки реальної пам'яті повинен використовувати
кожен гість.
Оцінює максимальний розмір пам'яті кожного гостя.
VMM обчислює цільове реальне виділення пам'яті для кожного гостя.
Використовує три низькорівневі механізми для відновлення пам'яті від гостей.

30 Управління пам'яттю cont.


За допомогою вкладених таблиць сторінок VMM може використовувати цей додатковий
рівень перенаправлення для оптимізації використання пам'яті гостем без відома
гостя.
2. VMM встановлює в кожного гостя драйвер псевдо-пристрою або модуль ядра, який він
контролює. Спілкується з ВММ і наказується виділяти або деаллокувати пам'ять.
3. Визначте, чи була одна і та ж сторінка завантажена більше одного разу. Якщо це
так, VMM зменшує кількість копій сторінки до однієї та вказує іншим користувачам
сторінки на цю копію.

31 Компоненти операційної системи: введення/виведення


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

32 Компоненти операційної системи: зберігання Mgmt.


Існує кілька рішень для роботи з управлінням пам'яттю в залежності від типу
гіпервізора.
Гіпервізори типу 0, як правило, дозволяють розбити кореневий диск.
Гіпервізори типу 1 зберігають гостьовий кореневий диск в одному або декількох
файлах у файлових системах, наданих VMM.
Гіпервізори типу 2 зберігають однакову інформацію в файлових системах основної
операційної системи.
VMM забезпечують механізм захоплення фізичної системи, оскільки вона в даний час
налаштована, і перетворюють її на гостя, яким VMM може керувати і запускати.

33 Компоненти операційної системи: жива міграція


Однією з особливостей, знайдених не в операційних системах загального призначення,
але знайдених у типах 0 і 1 гіпервізорів, є жива міграція запущеного гостя.
Джерело ВММ встановлює зв'язок з цільовою ВММ і підтверджує, що дозволено
відправляти гостя.
Мета створює нового гостя.
Джерело надсилає всі сторінки пам'яті лише для читання.
Джерела надсилають всі сторінки читання-запису.
Джерело повторює крок 4, за винятком змінених сторінок.
Коли тривалість 4 і 5 стає невеликою, джерело заморожує гість teh і надсилає
остаточний стан VCPU, кінцеві брудні сторінки та інші деталі. Гість починає бігати
і джерело закінчується.

34 Live Migration cont.


35 Резюме
Віртуалізація - це метод надання гостю дубліката основного обладнання системи.
Віртуалізація типу 0 реалізована в апаратному забезпеченні і вимагає внесення змін
в операційну систему для забезпечення належної роботи.
Віртуалізація Type 1 забезпечує середовище та функції, необхідні для створення,
запуску та знищення гостьових віртуальних машин.
Віртуалізація типу 2 - це просто програма, яка працює на інших операційних
системах.
Віртуалізація програмування-оточення визначає містку програму, в якій запускаються
програми, і ця програма надає послуги програмам.
Емуляція використовується, коли хост-система має одну архітектуру і гість був
скомпільований для іншої архітектури.

You might also like