1 / 15

Т e хнологии виртуализации

Т e хнологии виртуализации. Воронин Дмитрий. План. Что такое виртуализация Модели виртуализации Как это реализовать Динамическая трансляция Аппаратная поддержка виртуализации. Что такое виртуализация.

dianne
Télécharger la présentation

Т e хнологии виртуализации

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Тeхнологиивиртуализации Воронин Дмитрий

  2. План • Что такое виртуализация • Модели виртуализации • Как это реализовать • Динамическая трансляция • Аппаратная поддержка виртуализации

  3. Что такое виртуализация • Сокрытие физических ресурсов от их потебителей. Обычно потребителями являются операционные системы. • Изоляция окружения одного потребителя от другого.

  4. Модели виртуализации • Полная виртуализация • Пара-виртуализация • Виртуализация на уровне операционной системы

  5. Полная виртуализация • Использует подход разделения на guest/host ОС. • Каждый гость исполняется на виртуальной имитации физических ресурсов. • Гостевая ОС иполняется без модификаций кода. • Гипервизор исполняется на реальных физических ресурсах и управляет запросами от гостевой ОС к физическим ресурсам (Virtual Machine Monitor, VMM). • Гипервизор специальным образом исполняет все инструкции гостевой ОС, которые требуют системного уровня привелегий (модифицируют состояние CPU). • Либо использует поддержку виртуализации в архитектуре, либо бинарную трансляцию. • Примеры: VMWare, Virtual PC, Parallels, VirtualBox, QEMU+KQEMU, KVM.

  6. Паравиртуализация* • Использует подход разделения на guest/host OC. • VMM модифицирует код гостевой ОС. • Примеры: Xen, UML (User Mode Linux), Sun Logical Domains *Впервые термин возник в проекте Denali, а после того, как это слово применили исследователи из компьютерной лаборатории Кембриджского университета в проекте Xen, оно окончательно утвердилось в терминологии. Приставка «пара» в слове паравиртуализация ничего не обозначает, просто авторам данной идеи понадобился новый термин.

  7. Виртуализация на уровне ОС • Не использует подход guest/host. • Хост исполняет ядро ОС и передает функциональность ОС гостям. • Гости должны использовать одно и то же ядро, что и хост. Но могут использовать различные дистрибутивы. • Необходима изоляция окружения гостя. • Одни и те же исполняемые файлы и библиотеки могут существовать в одном экземпляре. • Примеры: Virtuozzo/OpenVZ, Solaris Zones, FreeBSD jails.

  8. Как это реализовать Хочется запускать больше одной гостевой ОС на одном хосте Для защиты нужно использовать аппаратные методы защиты памяти. В идеале: Layer3 < Layer 2 < Layer 1 < Layer 0 Guest OS 1 apps Guest OS N apps Layer 3 Guest OS 1 Guest OS N Layer 2 VMM 1 VMM N Layer 1 Host OS + HyperVisor Layer 0 Hardware

  9. Как это реализовать Проблема Гостевые ОС хотят: • Распределять физическую оперативную память. • Управлять системными ресурсами CPU. • Взаимодействовать с периферийным оборудованием. Как при этом не сломать контекст хостовой ОС? Решение Нужно виртуализовать все эти понятия для гостевых ОС.

  10. Виртуализация оперативной памяти • Пользовательскому процессу доступно только виртуальное адресное пространство. • Нужно создать 2 пространства. В первом будет VMM (Full) и Host OS, а во втором VMM(Base) и Guest OS. Virtual Address Space 1 Virtual Address Space 2 switch to Guest VMM VMM Host OS switch to Host Guest OS

  11. Виртуализация оперативной памяти Для того, что эта модель работала, нужно: • Исполнить специальным образом код гостевой системы, который занимается управлением физической памятью (соотв. сист. рег., обработка page fault). • Обеспечить синхронизацию гостевой структуры страниц (Guest Paging) и реальной структуры страниц (Shadow Paging), которое используется при работе гостевой ОС. • Защитить память VMM от памяти гостевой ОС (разграничить доступ к различным страницам при помощи уровней защиты).

  12. Виртуализация системного контекста CPU Чтобы работала схема виртуализации контекста CPU, нужно: • Специальным образом исполнять код гостевой системы, который читает и изменяет состояние гостевого CPU. • Читать состояние контекста можно без прерывания работы гостевой ОС (для оптимизации). • Записывать определенные значения можно без прерывания работы гостевой ОС (для оптимизации).

  13. Виртуализация периферии • Периферийные ус-ва могут быть как реальными (сетевая карта, видео память, звук. ус-во), так и виртуальными (виртуальный hard drive/cd drive/com port в виде файла в хостовой состеме). • Нужно специальным образом исполнять код гостевой системы, который взаимодействует с периферией (реализация устройства в виде отдельных процессов, которые периодически опрашивают состояния вирт. физ. ресурсов - вирт. физ.память, вирт. сист. регистры).

  14. Динамическая трансляция • Трансляция кода гостевой ОС в терминах блоков (линейных участков). • Связывание блоков (прямые условные/безусловные переходы, переходы по косвенности). Удаление блоков при удалении соотв. страницы кода из гостевой структуры страниц. • Отслеживание самомодифицирующегося кода (транслированный, который уже есть в кэше, нужно выкинуть при записи в соотв. гостевой код). • Специальное исполнение "запрещенного" кода. Подмена инструкций при трансляции.

  15. Аппаратная поддержка виртуализации • Новый режим привелегий (virtual mode), спец. инструкции для переключение в/из virt.mode. • Аппаратное сохранение/восстановление состояния CPU при переключении режимов. Недостаток в том, что этот процесс очень ресурсоемок, и происходит при каждом переключении. • Аппаратный выход из virt.mode при возникновении прерываний (можно настраивать конкретные прерывания).

More Related