Министерство образования и науки Российской Федерации
Московский физико-технический институт
(государственный университет)
УТВЕРЖДАЮ
Проректор по учебной работе
___________ Ю. А. Самарский
«___» _______________ 2011 г.
ПРОГРАММА
по курсу: Виртуализационные технологии (базовый)
по направлению: 010600
факультеты: ФУПМ
кафедра: ТЕОРЕТИЧЕСКОЙ И ПРИКЛАДНОЙ ИНФОРМАТИКИ
курс: 4
семестр: 7
семинары: 34 час.
ВСЕГО ЧАСОВ: 34
Программу составили: асс. Воробьева А.Л.
асс. Костюшко А.В
Программа обсуждена
на заседании кафедры
теоретической и прикладной
информатики
11 мая 2011 года
Заведующий кафедрой, А.Г. Тормасов
профессорПрограмма курса
Часть 1. Виртуальные машины
1.1. Понятие виртуализации. Задачи (виртуализация памяти, планировщик, vpn и далее); понятие "виртуальной машины". Виды виртуальных машин (уровня приложения, уровня системы, контейнеры)
Технологии виртуализации (эмуляция, паравиртуализация, рекомпиляция, аппаратная поддержка, изоляция)
1.2. История виртуальных машин уровня системы: век OS/370, эмуляторы, виртуализация на Интеле. Основные компоненты виртуальной машины
Пишем свою виртуальную машину, с чего начать, как реализовать (эмулятор, эмуляция устройств, депривелегирование гостя и непосредственное (native) исполнение, гостевой инструментарий (tools); взаимодействие компонент)
1.3. Виртуализация процессора (декодер, опасные/безопасные инструкции, vmexit-ы, hypercall вместо инструкций). Виртуализация прерываний (виды пребываний: гостевые/хостовые/мониторные, APIC/IDT, VT-d). Виртуализация таймеров
1.4. Бинарная трансляция (рекомпиляция): разбор, защита данных, оптимизации, применение (виртуальные машины, memory access instrumentation, NativeClient и аналоги)
1.5. Виртуализация физической памяти (GPA -> HPA): какие компоненты используют гостевую память, наивная организация гостевой памяти, компрессия. Технологии hаспределения ресурсов с взаимным наложением - overcommitment (balloon, content-based sharing, reclamation algorithms)
1. 6. Виртуализация страничного преобразования (shadow paging, линейное пространство монитора, RVI/NPT). Виртуализация видео
1.7. Виртуализация устройств: жесткого диска, сети, usb. Наивные реализации и некоторые из возможных оптимизаций.
1.8. Улучшение производительности виртуальной машины. Безопасность и надежность
1.9. Популярные свойства виртуальных машин: suspend/resume/snapshoting, migration
Менеджмент ресурсов: квота на память, квота на процессор
1.10. Облачные вычисления: overload (миграция, network memory), виртуализация HPC
Часть 2. Контейнеры
2.1. Понятие OS-level виртуализации разделяемого ядра (контейнеры). История (Solaris Zones, PVCfL, PVCfW), задачи.
Обзор архитектуры: компоненты режима ядра, управляющий сервис, утилиты командной строки.
2.2. Краткий обзор терминального сервера. Краткий обзор архитектуры Windows.
2.3. Подзадачи виртуализации: контекст контейнера и ContainerID, блокирование, трансляция, репликация глобальных свойств, виртуализация исполняемых модулей режима ядра.
Подзадачи изоляции: Object Manager, Registry, изоляция процессов и сессий (часть полного списка)
-
Подзадачи контроля и планирования: дисковая квота, квоты виртуальной памяти и рабочего набора, квоты числа процессов и нитей, иерархический двухуровневый планировщик CPU, network traffic shaper, resource tracking для драйверов режима ядра
-
Подсистемы и их виртуализация: user-mode replication system ( Session Leader и системные процессы), container storage system (виртуальный диск vzdsk, файловая система vzfs), container network system (виртуальный адаптер, виртуальный мост), кластер из контейнеров, vzscsi, device forwarding.
Основные принципы реализации: расширение функциональности ( драйвера-фильтры и callbacks), патчи и хуки (бинарная модификация для расширения функциональности), фильтрация аргументов, репликация глобальных переменных ит.п.
2.6. Обзор PVCfL (особенности реализации и отличия от PVCfW). Контроль I/O ресурсов. LiveMigration.
Литература
1. J Smith, R Nair "Virtual machines", Morgan Kaufmann, 2005, ISBN 1-55860-910-5
2. Таненбаум Э. «Современные операционные системы» - Санкт-Петербург, Издательский дом «Питер», 2002
3. Ian Pratt et al "Xen and the art of virtualization" http://www.cl.cam.ac.uk/research/srg/netos/papers/2003-xensosp.pdf
4. M. Rosenblum, T Garfinkel "Virtual machine monitors:current technologies and future trends"
http://www.stanford.edu/~talg/papers/COMPUTER05/virtual-future-computer05.pdf
5. Peter M. Chen and Brian D. Noble, «When Virtual Is Better Than Real»
When Virtual Is Better Than Real
6. Denning, P.J, “Virtual memory”- ACM, 1970
7. Roy A, Hand S, Harris T,"Hybrid binary rewriting for memory access instrumentation", VEE'11
8. virtualization.nfo
9. http://www.chromium.org/nativeclient
10. "VirtualBox user manual" http://www.virtualbox.org/manual/UserManual.html
11. "vmware architecture" http://www.vmware.com/files/pdf/ESXServer3i_architecture.pdf
12. Руссинович М., Соломон Д. «Внутренне устройство Microsoft Windows: Windows Server 2003, Windows XP и Windows 2000. Мастер-класс.» - 4-е изд. – М.: Издательско-торговый дом «Русская редакция»; СПб.: Питер; 2005
13. Bernard Tritsch “Microsoft Windows Server 2003 Terminal Services”, Microsoft Press, 2003, ISBN 0-7356-1904-2
14. Lambert M. Timpledon, Miriam T. Marseken, Susan F. Surhome “OpenVz”, Betascript Publishing, 2010, ISBN 5-1310-2348-4
15. http://www.parallels.com/products/pvcl/resources/docs/:
-
• PVCfL Installation Guide
-
• PVCfL User Guide
16. http://www.parallels.com/products/pvc/info/windows/details/#Installation_Guide_PVC
-
• PVCfW Installation Guide
-
• PVCfW User Guide
-
• PVCfW Reference Guide
• PVCfW Templates Management Guide
17. A. Тормасов «Виртуализация операционных систем» http://www.osp.ru/os/2002/01/180946/
18. А. Тормасов «Современная виртуализация»
http://www.osp.ru/os/2007/02/4108084/
Задачи по курсу
-
Найти 10 ВМ использующих бинарную трансляцию\рекомпиляцию
-
Какие технологии виртуализации используются в vbox-е. Как происходит выбор технологии
-
Какие инструкции являются опасными для виртуальных машин на Intel. Какие инструкции являются опасными для native client-а
-
Какие техники overcommitment-а применяются в XEN
-
В госте исполняется mov eax, [ebx] - опишите всевозможные развития ситуации с точки зрения ВМ
-
Какие средства для оптимизации работы с видео используются в vbox-е?
-
Какие средства для оптимизации работы с жестким диском используются в vbox-е?
-
Поиск уязвимостей в vbox-е
-
Написать скрипт под prlctl/prlsrvctl для одного из use-case-ов распределения ресурсов (гетто, щедрый провайдер), добавить проверки на выполнение условий
-
Использование терминального сервера. Создание удаленного подключения.
Использование терминального сервера для подключения к контейнеру.
-
Утилита vzctl. Создание, старт и остановка контейнера.
Vzctl exec для исполнения команд внутри контейнера. Миграция контейнера между физическими серверами.
-
Просмотр состояния системы с помощью утилит TaskManager, Process Explorer, WinObj, Regedit. Вид дерева объектов и реестра, списки процессов, номера сессий в контейнере и в основной системе.
-
Проверка изоляции и виртуализации контейнеров.
-
Контроль ресурсов: Счетчики производительности и работа с параметрами планировщика CPU. Проверка контроля ресурсов с помощью утилиты cpueater.
-
Монтирование диска (vzdskctl). Проброс usb flash drive внутрь контейнера.
-
Отладчик WinDbg, список измененных функций системы. Для предложенных 3-4 функций ядра прочитать их краткое описание и объяснить, для каких именно целей их поведение было модифицировано.
-
Создание, запуск контейнера PVCfL и его живая миграция.
|