Добавлен: 29.10.2018
Просмотров: 48199
Скачиваний: 190
7.12. Изучение конкретных примеров: VMWARE
571
Появление аппаратной поддержки, содействующей виртуализации, оказало существенное
влияние на принятую в VMware стратегию, сконцентрированную на гостевой операцион-
ной системе. В исходной VMware Workstation эта стратегия использовалась для резкого
снижения сложностей реализации за счет совместимости с полной архитектурой. Сегодня
же полная архитектурная совместимость предвидится благодаря аппаратной поддержке.
Текущий взгляд VMware на концентрацию на гостевой операционной системе свелся
к оптимизации производительности для выбранных гостевых операционных систем.
7.12.6. ESX-сервер: гипервизор первого типа
компании VMware
В 2001 году компания VMware выпустила совершенно другой продукт, названный ESX
Server и нацеленный на рынок серверных машин. Здесь инженеры VMware применили
иной подход: вместо создания решения второго типа, запускаемого поверх основной
операционной системы, они решили создать решение первого типа, которое бы рабо-
тало непосредственно на оборудовании.
На рис. 7.10 показана высокоуровневая архитектура ESX Server. В ней сочетаются
уже существующий компонент, VMM, и настоящий гипервизор, запускаемый непо-
средственно на голом оборудовании. VMM выполняет те же функции, что и в VMware
Workstation, состоящие в запуске виртуальной машины в изолированной среде, пред-
ставляющей собой дубликат архитектуры x86. Собственно говоря, VMM-мониторы, ис-
пользуемые в двух продуктах, имели один и тот же базовый исходный код и во многом
были похожи друг на друга. ESX-гипервизор заменял основную операционную систему.
Но вместо реализации полной функциональности, ожидаемой от операционной си-
стемы, его цель заключалась в запуске различных экземпляров VMM и эффективном
управлении физическими ресурсами машины. Поэтому ESX Server содержал обычные
подсистемы, характерные для операционных систем, такие как планировщик задач
центрального процессора и подсистема ввода-вывода, и при этом каждая подсистема
была оптимизирована для запуска виртуальных машин.
x86
ESX-ãèïåðâèçîð
VMM
VMM
VMM
VMM
VM
ESX
VM
VM
VM
Рис. 7.10. ESX Server: гипервизор первого типа от компании VMware
Отсутствие основной операционной системы потребовало от VMware непосред-
ственного решения сформулированных ранее проблем разнообразия периферийных
устройств и наличия опыта у пользователей. Для решения проблемы разнообразия
периферийных устройств компания VMware ввела следующее ограничение: запускать
ESX Server можно было только на широко известных и сертифицированных серверных
платформах, для которых у нее имелись драйверы устройств. Что же касается наличия
опыта у пользователей, ESX Server (в отличие от VMware Workstation) требовал от
пользователей устанавливать образ новой системы в загрузочный раздел диска.
572
Глава 7. Виртуализация и облако
Несмотря на недостатки, компромисс имел смысл для специализированного развер-
тывания виртуализации в дата-центрах, состоящих из сотен или тысяч физических
серверов и зачастую из многих тысяч виртуальных машин. Такие развертывания в наши
дни иногда называют закрытыми облаками. Здесь архитектура ESX Server предостав-
ляет солидные преимущества с точки зрения производительности, масштабируемости,
управляемости и функциональных возможностей, например:
Планировщик заданий центрального процессора обеспечивает каждой виртуаль-
ной машине получение справедливой доли времени центрального процессора
(во избежание зависания). Он сконструирован таким образом, что одновременно
планируется работа разных виртуальных центральных процессоров данного муль-
типроцессора виртуальной машины.
Диспетчер памяти оптимизирован под масштабируемость, в частности под эф-
фективную работу виртуальных машин, даже если им нужно больше памяти, чем
фактически доступно на компьютере. Для достижения такого результата в ESX
Server было введено понятие раздувания (ballooning) и прямого совместного ис-
пользования страниц для виртуальных машин (Waldspurger, 2002).
Подсистема ввода-вывода оптимизирована под высокую производительность.
Хотя VMware Workstation и ESX Server зачастую совместно используют одни
и те же эмулируемые компоненты внешнего интерфейса, внутренние интерфейсы
у них совершенно разные. В VMware Workstation весь поток ввода-вывода прохо-
дит через основную операционную систему и ее API, что часто приводит к допол-
нительным издержкам. Особенно явно это проявляется в случае с устройствами
сетевого обмена и устройствами хранения данных. В ESX Server эти драйверы
устройств запускаются непосредственно в ESX-гипервизоре, не требуя переклю-
чения миров.
Внутренние интерфейсы обычно также полагались на абстракции, предоставляе-
мые основной операционной системой. Например, VMware Workstation сохраняет
образы виртуальных машин в виде обычных (но очень больших) файлов на основ-
ной файловой системе. В отличие от этого у ESX Server имеется VMFS (Vaghani,
2010) — файловая система, специально оптимизированная для хранения образов
виртуальных машин и обеспечения высокой пропускной способности системы
ввода-вывода. Это позволяет достичь экстремальных уровней производительности.
Например, компания VMware еще в 2011 году демонстрировала, что один ESX
Server может выдать 1 млн операций с диском в секунду (VMware, 2011).
ESX Server упрощает введение новых возможностей, требующих жесткой коор-
динации и специальной конфигурации нескольких компонентов компьютера.
Например, в ESX Server было представлено средство VMotion — первое виртуали-
зационное решение, способное осуществить миграцию работающей виртуальной
машины, не останавливая ее, с одной машины, на которой запущен ESX Server,
на другую машину с запущенным ESX Server. Успех такой миграции требовал
координации диспетчера памяти, планировщика задач центрального процессора
и сетевого стека.
С годами к ESX Server добавлялись новые свойства. ESX Server превратился в ESXi,
компактную альтернативу, небольшой размер которой позволял выполнять ее пред-
установку в прошивке серверов. Сегодня ESXi является наиболее важным продуктом
компании VMware и служит основой набора vSphere.
Вопросы
573
7.13. Исследования в области виртуализации
и облаков
Технология виртуализации и облачные вычисления являются областями весьма актив-
ных исследований. Количество исследований в этих областях настолько велико, что не
поддается перечислению. В каждой из областей проводится несколько научно-исследо-
вательских конференций. Например, конференция по среде виртуального выполнения
(Virtual Execution Environments (VEE)) посвящена виртуализации в самом широком
смысле. В ее материалах можно найти статьи по миграции, дедупликации, масштаби-
рованию и т. д. А симпозиум по облачным вычислениям (ACM Symposium on Cloud
Computing (SOCC)), проводимый ассоциацией по вычислительной технике, является
одной из хорошо известных площадок, где рассматриваются вопросы облачных вычисле-
ний. Статьи, публикуемые в рамках SOCC, включают работы по устойчивости к сбоям,
планированию рабочих нагрузок дата-центров, управлению и отладке в облаках и т. д.
Не забыты и старые темы. Так, в работе Penneman et al. (2013) рассматриваются пробле-
мы виртуализации на основе ARM-процессоров в свете критериев, сформулированных
Попеком и Голдбергом. Неизменно актуальной остается тема безопасности (Beham et
al., 2013; Mao, 2013; Pearce et al., 2013), не уступает ей и тема сокращения энергопотре-
бления (Botero and Hesselbach, 2013; Yuan et al., 2013). При таком большом количестве
дата-центров, использующих в настоящее время технологии виртуализации, важной
темой исследований являются сети, соединяющие машины этих центров (Theodorou et
al., 2013). Перспективной темой является также виртуализация в беспроводных сетях
(Wang et al., 2013a).
Одной из интересных областей, в которой просматривается множество любопытных
исследований, является вложенная виртуализация (Ben-Yehuda et al., 2010; Zhang et
al., 2011). Идея заключается в том, что виртуальная машина сама может подвергнуться
дальнейшей виртуализации, приводящей к созданию нескольких виртуальных машин
более высокого уровня, которые в свою очередь могут быть виртуализированы, и т. д.
Один из таких проектов носит подходящее название — «Turtles» («Черепахи»), потому
что, стоит только начать, как получается нечто похожее на старый миф о том, что Земля
плоская и стоит на черепахе, которая стоит на другой, более крупной черепахе, и т. д.
Одним из приятных моментов, касающихся аппаратуры виртуализации, является воз-
можность получения ненадежным кодом непосредственного, но безопасного доступа
к таким аппаратным особенностям, как таблицы страниц и тегированные TLB-буферы.
С учетом этого проект Dune (Belay, 2012) нацелен не на предоставление машинной аб-
стракции, а на предоставление абстракции процесса. Процесс может входить в режим
Dune, являющийся необратимым переходом, дающим ему доступ к низкоуровневому
оборудованию. Несмотря на это, процесс остается процессом и имеет возможность по-
лагаться на ядро и взаимодействовать с ним. Единственным отличием является выдача
для системного вызова инструкции VMCALL.
Вопросы
1. Объясните причину заинтересованности дата-центра в виртуализации.
2. Объясните причину возможной заинтересованности компании в запуске гиперви-
зора на машине, которая уже некоторое время была в эксплуатации.
574
Глава 7. Виртуализация и облако
3. Объясните причину, по которой разработчик программного обеспечения может
воспользоваться виртуализацией на настольном компьютере, предназначенном
для разработки.
4. Объясните причину, по которой отдельный пользователь может заинтересоваться
виртуализацией на своем домашнем компьютере.
5. Почему, на ваш взгляд, виртуализация так долго обретала популярность? Ведь
ключевая статья была написана в 1974 году, а универсальные компьютеры ком-
пании IBM обладали необходимым аппаратным и программным обеспечением
в 1970-х годах и позднее.
6. Назовите два типа инструкций, являющихся служебными с точки зрения Попека
и Голдберга.
7. Назовите три машинные инструкции, которые с точки зрения Попека и Голдберга
не могут считаться служебными.
8. В чем разница между полной виртуализацией и паравиртуализацией? Какую из
них, на ваш взгляд, труднее осуществить? Обоснуйте ответ.
9. Есть ли смысл в паравиртуализации операционной системы, если ее исходный код
доступен? А что вы ответите, если он недоступен?
10. Предположим, что гипервизор первого типа способен одновременно поддержи-
вать n виртуальных машин. У персональных компьютеров на диске может быть
максимум четыре первичных раздела. Может ли n быть больше четырех? Если да,
то где могут храниться данные?
11. Коротко объясните концепцию виртуализации на уровне процесса.
12. Зачем нужны гипервизоры второго типа? Ведь они не делают ничего такого, с чем
не справились бы гипервизоры первого типа, и к тому же гипервизоры первого
типа работают более эффективно.
13. Полезен ли хоть в чем-то для виртуализации гипервизор второго типа?
14. Зачем была изобретена двоичная трансляция? Как вы думаете, есть ли у нее бу-
дущее? Обоснуйте ответ.
15. Объясните, как четыре защитных кольца процессоров семейства x86 могут ис-
пользоваться для поддержки виртуализации.
16. Назовите одну из причин, по которой аппаратный подход, использующий цен-
тральные процессоры с VT-технологией, может работать менее эффективно по
сравнению с подходами, основанными на применении программ-трансляторов.
17. Приведите пример, когда в системах, где используется двоичная трансляция, от-
транслированный код может работать быстрее исходного.
18. VMware осуществляет поэтапную двоичную трансляцию, при которой за один этап
преобразованию подвергается один базовый блок, затем этот блок выполняется
и начинается трансляция следующего блока. Может ли проводиться предвари-
тельная трансляция всей программы с последующим ее выполнением? Если да,
то какие преимущества и недостатки имеются у каждой из технологий?
19. В чем разница между чистым гипервизором и чистым микроядром?
20. Дайте краткое объяснение, почему сложна практическая виртуализация памяти.
Поясните свой ответ.
Вопросы
575
21. Известно, что для запуска на персональном компьютере нескольких виртуальных
машин требуется большой объем памяти. Почему? Можете ли вы придумать не-
сколько способов сокращения объема используемой памяти? Поясните ответ.
22. Объясните концепцию теневых таблиц страниц, используемых при виртуализации
памяти.
23. Одним
из
способов, позволяющих справиться с гостевыми операционными систе-
мами, изменяющими свои таблицы страниц с помощью обычных (непривилеги-
рованных) инструкций, является пометка таблиц страниц как предназначенных
только для чтения и применение системного прерывания при попытке их моди-
фикации. Как еще могут поддерживаться теневые таблицы страниц? Рассмотрите
эффективность вашего подхода по сравнению с пометкой таблиц страниц как
предназначенных только для чтения.
24. Зачем применяются драйверы раздувания? Можно ли в их применении усмотреть
обман?
25. Дайте описание ситуации, при которой драйверы раздувания не работают.
26. Дайте объяснение концепции дедупликации, используемой при виртуализации
памяти.
27. Десятилетиями компьютеры использовали при осуществлении ввода-вывода не-
посредственный доступ к памяти — DMA. Вызывало ли это какие-либо проблемы
до появления блоков управления памятью при вводе-выводе (I/O MMU)?
28. Назовите одно из преимуществ облачных вычислений над выполнением ваших
программ на локальных машинах. Назовите также один из недостатков.
29. Приведите пример IAAS, PAAS и SAAS.
30. Почему так важна миграция виртуальных машин? При каких обстоятельствах она
может принести пользу?
31. Миграция виртуальных машин может быть проще миграции процессов, но она
все же может быть непростой. Какие проблемы могут возникать при миграции
виртуальной машины?
32. Почему миграция виртуальных машин с одной машины на другую проще мигра-
ции процессов с одной машины на другую?
33. В чем разница между живой миграцией и другой ее разновидностью (может быть,
неживой миграцией?)?
34. Какими
были три основных требования, которые рассматривались VMware в про-
цессе разработки ее продуктов?
35. Почему при первом представлении VMware Workstation огромное количество
доступных периферийных устройств считалось серьезной проблемой?
36. VMware ESXi был выполнен в весьма небольших размерах. Почему? Ведь у сер-
веров в дата-центрах обычно имеются десятки гигабайт оперативной памяти. Не-
ужели больший или меньший на какие-то десятки мегабайт объем оперативной
памяти играет какую-то роль?
37. Найдите в Интернете два примера виртуальных устройств из реальной жизни.