Similar presentations:
Технологии аппаратной виртуализации
1. Технологии аппаратной виртуализации
Доклад подготовил:студент группы
ЭВМб-14-1
Русецкий Никита
2. Что это?
• Виртуализация – технология, позволяющая запускать наодном физическом компьютере, называемом «хостом»,
несколько виртуальных операционных систем, называемых
«гостевыми ОС»
Гостевая
ОС
Гостевая
ОС
Хост
2
Гипервизор
Гостевая
ОС
3. Зачем?
• Для обеспечения независимости гостевых ОС отаппаратной платформы;
• Для сосредоточения нескольких виртуальных машин на
одной физической.
3
4. Какие преимущества?
Обеспечивается существенная экономия на аппаратномобеспечении и обслуживании;
Упрощается процедура резервного копирования и
восстановления после сбоев.
4
5. Немного истории
• 1985 год – аппаратная виртуализации впервые былавоплощена в 386-процессорах (V86 mode)
• 1998 год – компания Vmware запатентовала программные
техники виртуализации
• Вслед за Intel AMD выпускает процессоры с поддержкой
аппаратной виртуализации
5
6. Эволюция уровней абстрагирования программных платформ
6Виртуализация
HyperThreading
7. Многозадачность
• Многозадачность – первыйуровень абстракции
приложений. Каждое
приложение разделяет
ресурсы физического
процессора в режиме
разделения исполнения
кода по времени
7
Приложени
е
Приложени
е
Приложени
е
Операционная система
ЦПУ
8. HyperThreading
• Технология HyperThreadingв широком смысле
представляет собой
аппаратную технологию
виртуализации.
• В рамках одного
физического процессора
происходит симуляция двух
виртуальных процессоров с
помощью техники Symmetric
Multi Processing (SMP).
8
Приложени
е
Приложени
е
Приложени
е
Операционная система
ЦП
ЦП
ЦП (Symmetric Multi Processing)
9. Виртуализация
• Виртуализацияпредставляет собой
эмуляцию нескольких
виртуальных процессоров
для каждой из гостевых ОС.
• Технология SMP позволяет
представлять несколько
виртуальных процессоров в
гостевой ОС при наличии
технологии HyperThreading
или нескольких ядер в
физическом процессоре.
9
Application
Application
Application
Guest OS
Guest OS
Guest OS
Virtual
Hardware
Virtual
Hardware
Virtual
Hardware
Hypervisor (Hyper-V, Xen, ESX Server)
Hardware (CPU, Memory, NIC, Disk)
10. Преимущества аппаратной виртуализации
+Упрощение разработки платформ виртуализации+Возможность увеличения быстродействия платформ
виртуализации
+Возможность независимого запуска нескольких
виртуальных платформ
+Отвязка гостевой системы и архитектуры хостовой
платформы и реализации платформы виртуализации
10
11. Аппаратная виртуализация
Принципы работы11
12. Архитектура VM
• Монитор виртуальных машин (Virtual Machine Monitor) илиГипервизор (Hypervisor) обеспечивает или позволяет
одновременное, параллельное выполнение нескольких
операционных систем на одном и том же хост-компьютере.
• Гипервизор также обеспечивает изоляцию операционных
систем друг от друга, защиту и безопасность, разделение
ресурсов между различными запущенными ОС и
управление ресурсами.
12
13. Требования к гипервизору
• Гипервизор должен быть способен к:• Самозащите от ПО гостевой машины
• Изоляции одной гостевой ОС от другой
• Предоставлению интерфейса гостевому ПО
• Чтобы достичь этого, гипервизор должен иметь доступ к:
• ЦП, памяти и устройствам ввода/вывода
• Способы разделения ресурсов между виртуальными
машинами:
• Временное мультиплексирование
• Разделение ресурсов
• Посреднические аппаратные интерфейсы
13
14. Временное мультиплексирование
• Виртуальной машине разрешен доступ к ресурсам наопределенный период времени перед тем, как произойдет
переключение к другой виртуальной машине
Виртуальная машина
#2
Виртуальная машина
#1
Гипервизор
14
ЦП
15. Разделение ресурсов
• Гипервизор распределяет «объем владения» физическимиресурсами между виртуальными машинами
Виртуальная машина
#2
Виртуальная машина
#1
Гипервизор
Механизм перераспределения /
защиты
ЦП
15
Хранилище Память
Дисплей
16. Посреднический доступ к физ. ресурсам
• Гипервизор сохраняет владение физическими ресурсамиВиртуальная машина
#2
Виртуальная машина
#1
Гипервизор
16
Сеть
Клавиатура Мышь
17. Все вместе
• Гипервизор применяет все три метода для созданияиллюзии, что гостевая ОС запускается в естественной
Виртуальная машина
Виртуальная машина
Виртуальная машина
Виртуальная машина
среде
#1
#2
#3
#4
Сеть
Клавиатура Мышь
Гипервизор
ЦП
17
ЦП
Хранилище Память
Дисплей
18. Виртуализация: стратегии реализации
1819. IA-32
• IA-32 обеспечивает 4 уровня привилегий (кольца защиты)• Защита, основанная на сегментах
• Разделенная между 4 кольцами
• Защита, основанная на страницах
• Разделяет только режимы пользователя и супервизора
• Режим пользователя: код исполняется в 3 кольце
• Режим супервизора: код исполняется в 0-2 кольцах
19
20. Управление памятью в IA-32
Кольца защиты• Механизм колец строго
ограничивает пути, с
помощью которых
управление можно передать
от одного кольца к другому,
а также предписывает
ограничения на операции
доступа к памяти, которые
могут быть произведены
внутри кольца.
Кольцо 3Классическая Минимум
Кольцо 2 архитектура привилегий
Кольцо 1
Кольцо 0
Кольцо -1
Кольцо
Кольцо 0-2
Ядро
SMM
Гипервизор
Ядро
Драйвера устройств
Драйвера устройств
Приложения
22
Максимум
привилегий
21. Дескриптор сегмента
Механизм защиты• Содержание селектора сегмента данных полностью
загружается в различные сегментные регистры, такие как
SS («Stack segment register») и DS («Data segment register»)
Запрашиваемы
й уровень
привилегий
16 bits
15
16 bits
23
15
Data segment selector
T RP
Index (3-15)
I L
2
0
Code segment selector
T СP
Index (3-15)
I L
2
0
Текущий
уровень
привилегий
22. Кольца защиты
Механизм защиты• MAX() выбирает наименее привилегированные CPL и RPL и
сравнивает их с уровнем привилегий дескриптора (DPL).
• Идея RPL заключается в том, чтобы позволить коду
ядра
CPL всегда
загружать сегмент с использованием пониженных привилегий.
равен
уровню
привилегий
ЦП
Current code segment register
CP
L
Уровень
привилегий
дескриптора
Data segment selector being loaded
T RP
I L
Selects
24
Segment descriptor
DP
L
True: segment
load ok
MAX(CPL,
RPL) <=
DPL
False: Generalprotection
exception
23. Механизм защиты
Проблемы работы гипервизора• ОС и приложения ВМ не должны знать,
что существует гипервизор или то, что
они разделяют ресурсы ЦП с другими
ВМ
• Гипервизор должен изолировать
системное ПО гостевых ОС друг от
друга
• Гипервизор должен исполняться
защищенно от гостевой ОС
• Гипервизор должен предоставлять
платформенный интерфейс для
25
системного ПО гостевой ОС
24. Механизм защиты
Классическое решение• «Trap-and-emulate»
• Запускать гостевую ОС в депривилегированном режиме
• Все инструкции, требующие привилегий, исполнять в гипервизоре
• Гипервизор эмулирует инструкции, например, использует
виртуальные прерывания, а не физические
26
25. Проблемы работы гипервизора
Вот так вотБез «Ring Deprivileging»
Приложени
я
Кольцо 3
Ядро ОС
Кольцо 0
Приложени
я гостевой
ОС
Кольцо 3
Гостевая
ОС
Кольцо 1
Гипервизор
Кольцо 0
С «Ring Deprivileging»
Приложени
я гостевой
ОС
Кольцо 3
Гостевая
ОС
Гипервизор
27
Кольцо 0
Модель «0/1/3»
Модель «0/3»
26. Классическое решение
Решение для IA-32• Любое гостевое ПО должно исполняться на кольце
выше нулевого
• Привилегированные инструкции генерируют
исключеня => гипервизор запускается на кольце 0
для обработки ошибок
• Гостевая ОС не должна вмешиваться в работы
гипервизора
• Гипервизор переводит привилегированные
инструкции в форму, в которой они могут быть
исполнены ОС
• Любая непривилегированная инструкция, созданная
ОС или приложением, должна исполняться на
виртуальной машине
• Гостевая ОС может быть лишена привилегий двумя
путями:
28
• Она может исполняться на кольце 1 (модель 0/1/3)
• Или же на кольце 3 (модель 0/3/3)
Гостевая ОС
запускается либо
здесь (3 кольцо)
Кольцо
0
Ядро
Либо здесь (1 кольцо)
27. Вот так вот
Проблемы виртуализации29
28. Решение для IA-32
Проблемы виртуализации• Ring Aliasing
• Address-Space Compression
• Excessive Faulting
• Non-trapped instructions
• Interrupt Virtualization
• Ring Compression
30
29. Проблемы виртуализации
Ring AliasingГостевое ПО
(3 кольцо)
• Возникает, если ПО исполняется на
уровне, отличном от том, для которого
оно было написано
• Последствия:
Кольцо
0
Ядро
• Система может определить, что
исполняется не на своём уровне
привилегий (возвращается General
Protection Exception)
Гостевая ОС
(1 кольцо)
31
Гипервизо
р (0
кольцо)
30. Проблемы виртуализации
Address-Space Compression• Гипервизор может полностью работать в адресном
пространстве гостевой ОС, но он будет использовать
значительную его часть
• Гипервизор может работать в отдельном адресном
пространстве, но он должен использовать минимальное
пространство гостевой ОС для управления переходами
между гостевым ОС и гипервизором (IDT и GDT для IA-32)
32
31. Ring Aliasing
Excessive Faulting• SYSENTER всегда выполняет переход к уровню привилегий 0, а
SYSTEXIT возвращает ошибку, если выполняется вне кольца 0
(General Protection Exception)
• Эмуляция SYSENTER* и SYSEXIT** вызывает серьезные
проблемы с производительностью
• *SYSENTER – механизм быстрого системного вызова, команда оптимизирована
для наиболее быстрого перехода на нулевой уровень привилегий
• **SYSEXIT – механизм быстрого системного вызова, команда оптимизирована
для наиболее быстрого перехода на уровень привилегий 3 с уровня привилегий
0.
33
32. Address-Space Compression
Виды инструкций• Инструкции
• По уровню привилегий
• Привилегированные
• Непривилегированные
Изменяют часть
ресурсов машины
• Sensitivity
• Sensitive
• Non-sensitive
• При выполнении в пользовательском режиме, привилегированные
команды «отлавливаются».
• «Отлавливание» («Trapping») означает, что машина принудительно
переходит в системный режим, посредством чего выполняет
некоторый код операционной системы, чтобы справиться с ситуацией
• В некотором смысле, отлавливание предупреждает операционную
систему об исполнении команд
34
33. Excessive Faulting
Non-trapping instructions• Проблема в том, что не все sensitive-инструкции X86
являются привилегированными инструкциями. Это означает,
что модификация ресурса может произойти без ведома
VMM, что может быть опасным
35
34. Виды инструкций
Interrupt Virtualization• Механизм маскировки внешних прерываний для
предотвращения их вызова, когда ОС не готова – большая
проблема для гипервизора
• Гипервизор должен управлять маскированием прерываний,
чтобы предотвратить маскирование внешних прерываний
гостевой операционной системой
• IA-32 использует флаг прерываний (IF) в регистре EFLAGS
для управления прерыванием маскировки. IF = 0, если
прерывания маскируются
36
35. Non-trapping instructions
Access to Hidden State• Некоторые компоненты процессора не представлены в виде
доступных системному ПО регистров
• IA-32 содержит скрытый кэш дескриптора для сегментного
регистра
37
36. Interrupt Virtualization
Frequent Access to Privileged Resources• Существует риск падения производительности, когда
многократно осуществляется доступ к привилегированным
ресурсам с последующей генерацией ошибок и исключений,
которые должны быть обработаны гипервизором
39
37. Access to Hidden State
Решение проблемвиртуализации при помощи
VT-x
40
38. Ring Compression
Что необходимо?• Virtual Machine eXtensions (VMX) определяют поддержку
виртуальных машин на x86 –платформе на уровне
процессора
• Расширенный набор инструкций:
• VMPTRLD, VMPTRST, VMCLEAR, WMREAD, WMWRITE,
WMCALL, WMLAUNCH, WMRESUME, WMXON и WMXOFF.
WMX
CPU
41
39. Frequent Access to Privileged Resources
Инструкции42
Инструкция
Описание
VMXON, WMXOFF
Вход и выход из режима VMW-root
WMLAUNCH
Начальный переход от гипервизора к гостевой
ОС, вводит WMX в non-root режим
WMRESUME
- Используется для последующих входов
- Вступает в WMX non-root режим работы
- Загружает состояние гостевой ОС и
критерий выхода из VMCS
WMEXIT
- Используется при переходе из гостевой ОС
в гипервизор
- Вступает в WMX root режим работы
- Сохраняет состояние гостевой ОС в VMCS
- Загружает состояние VMM из VMCS
WMPTRST, VMPTRL
Считывает и записывает указатель VMCS
WMREAD, WMWRITE, WMCLEAR
Читает из VMCS, пишет в него и очищает
40. Решение проблем виртуализации при помощи VT-x
VMX-операции• Два режима:
• Root – полностью привилегированный, предназначенный для VMM
• Non-root – не полностью привилегированный, предназначенный
для гостевого ПО
• Оба режима поддерживают все четыре уровня привилегий
от 0 до 3
43
41. Что необходимо?
Жизненный циклGuest OS 1
Guest OS 2
WMRESUME
Точка входа в
гостевую ОС
WMLAUNCH
VMXON
44
Передача
управления
гипервизору
WMRESUME
WMLAUNCH
Hypervisor
WMXOF
Выход из
режима
виртуализации
42. Инструкции
Virtual Machine Control Structure• Virtual Machine Control Structure (VMCS) – структура,
главной целью которой является сохранение состояний
«гостя» и «хозяина».
VMLANUCH /
VMRESUME
Активно
е
состояни
е
CPU
VMEntry
VMExit
Заголовок
Параметры
входа и
выхода
Состояние
хозяина
Состояние
гостя
VMCS
45
43. VMX-операции
Virtual Machine Control Structure• Управляет поведением процессора в non-root режиме и
работой с VMX
• Конфигурируется гипервизором
• Управляет закрытием гостевой ОС при помощи VMCS
указателя
46
44. Жизненный цикл
Virtual Machine Control Structure• Состоит из шести логических групп:
• Guest-state area: состояние процессора сохраняется в область
состояния гостя при закрытии WM из подгружается во время ее
загрузки
• Host-state area: состояние процессора подгружается из области
состояния хоста при закрытии WM
• VM-execution-fields: поля, управляющие работой процессора в
режиме non-root
• VM-exit control fields: поля, управляющие выходом WM
• VM-entry control fields: поля, управляющие входом WM
• VM-exit information fields: read-only поля, получающие информацию
при закрытии WM, описывающие причину завершения работы WM
47
45. Virtual Machine Control Structure
Address-Space Compression• Каждый переход между гостевым ПО и гипервизором может
изменять линейное адресное пространство, позволяя
гостевому ПО полностью использовать его
• Переходы WMX управляются VMCS, который находится в
физическом адресном пространстве, а не в линейном
49
46. Virtual Machine Control Structure
Ring Aliasing and Ring Compression• VT-x позволяет гипервизору запускать гостевое ПО на
уровне предполагаемых привилегий:
• Устраняет проблемы со смещением кольца – такая инструкция, как
PUSH (CS регистра) не может обнаружить, что ОС запускается в
виртуальной среде
• Устраняет проблемы сжатия кольца, возникающие, когда гостевая
ОС выполняется на том же уровне привилегий, что и гостевые
Application
Application
приложенияRing 3
Ring 0
VMX Root
Guest OS
Guest OS
Virtual Machine Monitor
Intel Virtualization Technology
50
Shared Physical Hardware
47. Virtual Machine Control Structure
Non-faulting Access to Privileged State• VT-x избегает этой проблемы двумя способами:
• Генерация VMExits во время каждого завершения
• Обеспечивает конфигурацию прерываний и исключений
51
48. Переходы WMX
Guest System Calls• Проблемы возникают с инструкциями SYSENTER и
SYSEXIT, когда гостевая ОС исполняется вне 0 уровня
привилегий. Эта проблема решена, потому что гостевая ОС
может исполняться на 0 уровне.
52
49. Address-Space Compression
Interrupt Virtualization• VT-x обеспечивает поддержку виртуализации прерываний
• Он включает в себя компонент управления работой
виртуальной машины, управляющий внешними
прерываниями
53
50. Ring Aliasing and Ring Compression
Access to Hidden State• VT-x включает в гостевой области VMCS поля, отвечающие
за состояния ЦПУ, которые не представлены в доступных
программному обеспечению регистрах
• Процессор загружает значения из этих полей при каждом входе
виртуальной машины и сохраняет их при выходе
54
51. Non-faulting Access to Privileged State
Frequent Access to Privileged Resources• VT-x позволяет гипервизору избежать лишних расходов на
частый доступ к TPR (Task Priority Register)
• Гипервизор может настроить VMCS так, чтобы он вызывался
только тогда, когда требуется
55
52. Guest System Calls
VT-xRing 3
Application
Application
Ring 3
Application
Application
Ring 1
Guest OS
Guest OS
Ring 0
Guest OS
Guest OS
Ring 0
Virtual Machine Monitor
Shared Physical Hardware
VMX Root
Virtual Machine Monitor
Intel Virtualization Technology
Shared Physical Hardware
Pre VT-x
Post VT-x
Ring 0 понижает привилегии гостевой ОС
Гипервизор исполняется в «root mode»
Гостевая ОС знает, что она исполняется не
на Ring 0
Гостевая ОС исполняется прямо на
«железе»
«Ring deprivileging» для гостевых ОС убран
56
53. Interrupt Virtualization
Заключение• Поддержка технологий аппаратной виртуализации в
процессорах открывает широкие перспективы по
использованию виртуальных машин в качестве надежных,
защищенных и гибких инструментов для повышения
эффективности виртуальных инфраструктур
57
54. Access to Hidden State
Спасибо за внимание!58