Технологии облачных вычислений
Покупка
Новинка
Тематика:
Программирование и алгоритмизация
Издательство:
ИНТУИТ
Автор:
Зиангирова Л. Ф.
Год издания: 2016
Кол-во страниц: 252
Дополнительно
Курс содержит основы технологий облачных вычислений, их возможности, основные модели предоставления услуг облачных вычислений. Производится обзор решений ведущих компаний облачных платформ - Microsoft, Google, Amazon.
Курс содержит обзор технологий, которые послужили основой для "облаков”. В рамках курса рассматриваются технологии виртуализации, облачная платформа Microsoft Azure, основные модели предоставления услуг облачных вычислений. Производится обзор облачных платформ Microsoft, Google, Amazon. Слушатель курса получит навыки работы с виртуальной машиной VMWare Workstation и Office Online, а также опыт использования облачных сервисов Облако@mail.ru, Яндекс.Диск, Google Диск, Amazon Web Services.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.04: Программная инженерия
- ВО - Магистратура
- 09.04.01: Информатика и вычислительная техника
- 09.04.02: Информационные системы и технологии
- 09.04.04: Программная инженерия
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Технологии облачных вычислений 2-е издание, исправленное Зиангирова Л.Ф. Национальный Открытый Университет “ИНТУИТ” 2016 2
Технологии облачных вычислений/ Л.Ф. Зиангирова - М.: Национальный Открытый Университет “ИНТУИТ”, 2016 Курс содержит основы технологий облачных вычислений, их возможности, основные модели предоставления услуг облачных вычислений. Производится обзор решений ведущих компаний облачных платформ – Microsoft, Google, Amazon. Курс содержит обзор технологий, которые послужили основой для “облаков”. В рамках курса рассматриваются технологии виртуализации, облачная платформа Microsoft Azure, основные модели предоставления услуг облачных вычислений. Производится обзор облачных платформ Microsoft, Google, Amazon. Слушатель курса получит навыки работы с виртуальной машиной VMWare Workstation и Office Online, а также опыт использования облачных сервисов Облако@mail.ru, Яндекс.Диск, Google Диск, Amazon Web Services. (c) ООО “ИНТУИТ.РУ”, 2015-2016 (c) Зиангирова Л.Ф., 2015-2016 3
Технологии виртуализации В лекции рассматриваются технологии виртуализации, особенности платформ виртуализаций VMware, Citrix (Xen), Microsoft. Одной из наиболее существенных технологических новаций, лежащих в основе облачных вычислений, являются технологии виртуализации. Виртуализация – предоставление набора вычислительных ресурсов или их логического объединения, абстрагированное от аппаратной реализации, и обеспечивающее при этом логическую изоляцию вычислительных процессов, выполняемых на одном физическом ресурсе. Основные понятия технологии виртуализации Виртуальная машина – изолированный программный контейнер, который работает с собственной ОС и приложениями, подобно физическому компьютеру. Виртуальная машина действует так же, как физический компьютер, и содержит собственные виртуальные ОЗУ, жесткий диск и сетевой адаптер. Виртуальная машина представляет собой программный контейнер, связывающий, или “инкапсулирующий” полный комплект виртуальных аппаратных ресурсов, а также ОС и все ее приложения в программном пакете. Основными особенностями виртуальных машин являются: совместимость (виртуальные машины совместимы со всеми стандартными компьютерами, виртуальная машина работает под управлением собственной гостевой оперативной системы и выполняет собственные приложения); изолированность (виртуальные машины полностью изолированы друг от друга, как если бы они были физическими компьютерами); инкапсуляция (виртуальные машины полностью инкапсулируют вычислительную среду). Виртуальные машины полностью независимы от базового физического оборудования, на котором они работают. Хостовая операционная система – это операционная система, установленная на реальное оборудование. В рамках этой операционной системы устанавливается программное обеспечение виртуализации как обычное приложение. Эмулятор виртуальной машины – это программное обеспечение, устанавливаемое на хостовую операционную систему и состоящее из монитора виртуальных машин и графической оболочки. Монитор виртуальных машин представляет собой программу, обеспечивающую все взаимодействия между виртуальным и реальным оборудованием, поддерживающую работу одной или нескольких созданных виртуальных машин и установленных гостевых операционных систем. Графическая оболочка обеспечивает взаимодействие пользователя с приложением виртуальной машины, позволяя настраивать создаваемые 4
виртуальные машины под свои нужды и управлять ее работой. Гостевая операционная система – это операционная система, устанавливаемая на созданную виртуальную машину. В качестве гостевых операционных систем можно использовать Window, Linux и др. При использовании технологии виртуализации получают иерархическую структуру взаимодействия виртуальных ЭВМ и реальной аппаратуры. На нижнем слое этой иерархии находится реальное оборудование, управление которым распределяется между хостовой операционной системой и эмулятором виртуальных машин. Хостовая операционная система и эмулятор распределяют между собой ресурсы реальной ЭВМ и составляют второй уровень иерархии. Хостовая операционная система занимается управлением работающих на ней приложений и распределением между ними ресурсов реальной ЭВМ. Эмулятор виртуальных машин управляет виртуальными машинами с установленными на них гостевыми операционными системами, распределяя между ними ресурсы реальной ЭВМ так, чтобы у пользователей создавалось впечатление работы на реальном оборудовании Частично, распределение ресурсов между виртуальными машинами можно настроить на этапе конфигурации виртуальных машин, указав объем оперативной памяти, размер жесткого диска, количество виртуальных процессоров, виртуализируемые каналы связи и другие параметры. Гостевые операционные системы управляют работой своих приложений в рамках выделенных эмулятором ресурсов. Рассматривая технологию виртуализации, необходимо изучить эмулятор виртуальных машин, а именно монитор виртуальных машин, являющийся базовой частью технологии виртуализации. Все существующие мониторы виртуальных машин можно разделить на четыре вида, использующие: аппаратную, аппаратно-программную, программную и доменную виртуализации. Это разделение – условно, поскольку большинство мониторов виртуальных машин используют, как программную, так и аппаратную виртуализацию, так как программная виртуализация – требовательна к ресурсам, а аппаратная виртуализация ограничивается узким кругом оборудования, поддерживающей какойлибо вид мониторов виртуальных машин. Доменная виртуализация основывается на логическом распределении ресурсов на отдельные части (домены). В основном она используется в мэйнфреймах. Этот тип виртуализации появился первым и использовался для распределения ресурсов больших ЭВМ между отдельными пользователями. Мониторы виртуальных машин, использующие технологию аппаратно-программной виртуализации, часть инструкций выполняют, непосредственно, на самом процессоре, а часть – эмулируют. 5
Существуют три типа программной эмуляции инструкций: полная эмуляция инструкций, выборочная эмуляция инструкций, эмуляция API. При использовании полной эмуляции инструкции интерпретируются и преобразуются в инструкции, воспринимаемые реальным процессором. В этом случае появляется возможность создавать виртуальные машины, имитирующие работу аппаратуры, не совместимой по архитектуре с реальной ЭВМ. Например, можно запускать виртуальную машину, имитирующую работу процессора с RISC-архитектурой, на реальной ЭВМ с процессором CISC-архитектуры. Это возможно за счет того, что эмуляция ведется на уровне базовых арифметико-логических инструкций, присутствующих, практически, в любом процессоре. Интерпретация каждой инструкции приводит к значительному расходу ресурсов реальной ЭВМ и снижает быстродействие приложений, работающих в гостевой операционной системе. Современные серверы и персональные ЭВМ обладают все большей производительностью. Поэтому виртуализация, с использованием интерпретации инструкций, приобретает популярность. Представителями данного класса виртуальных машин являются: Microsoft Virtual PC, Bochs, Simics и др. Такие виртуальные машины являются незаменимыми при отладке и разработке программного обеспечения, написанного на языках низкого уровня, и при эмуляции ЭВМ со специфической архитектурой на стандартизированные персональные компьютеры и серверы. Не все инструкции необходимо интерпретировать. Часть инструкций виртуальной машины можно выполнять без изменений на реальном процессоре. Монитор виртуальных машин, проанализировав код, может инструкции виртуальной машины, совпавшие с инструкциями реального процессора, без изменений отправить для выполнения на реальном процессоре, а остальные инструкции интерпретировать. Появляются дополнительные расходы на анализ инструкций. Поскольку в программах часто встречаются циклы, интерпретация которых может производиться однократно, и наиболее простые инструкции, способные без изменения выполняться на процессоре составляют большую часть программ, то производительность виртуальной машины увеличивается в несколько раз, по сравнению с полной эмуляцией инструкций. К виртуальным машинам этого типа относятся, например: VMware Workstation, VMware Server, Serenity Virtual Station и др. В третьем случае, эмулируются API гостевой операционной системы. API (Application Programming Interface) – это интерфейс прикладного программирования. Все работающие программы взаимодействуют с оборудованием при помощи интерфейса API. Поэтому можно перехватить обращение программ, работающих под управлением гостевой операционной системы, к API, преобразовать его к виду, принятому в хостовой операционной системе, и ретранслировать полученный результат к API хостовой операционной системы. Результат выполнения запроса хостовой операционной системой преобразуется к виду, 6
воспринимаемому гостевой операционной системой, и передается программе, выдавшей запрос. Если гостевая и хостовая операционные системы совместимы по своим API, то преобразовывать обращения не нужно, достаточно только перенаправлять их. Однако у такой системы виртуализации есть недостатки: 1. Не все программное обеспечение удается запускать на виртуальной машине с этим принципом виртуализации, поскольку часто используются недокументированные API и обращение напрямую к аппаратуре. 2. Операционные системы активно развиваются, вносятся корректировки в API и добавляются новые возможности. Поэтому эмуляторы API быстро устаревают и для их модернизации необходимы большие затраты трудоемкости. 3. Эмуляторы API привязываются к конкретным операционным системам. Это сужает круг их использования и потребительские свойства. Однако использование эмуляции API позволяет избежать значительных потерь производительности. В качестве примера виртуальных машин, использующих эмуляцию API, можно привести такие продукты, как: Wine (Wine Is Not an Emulator), используемый для запуска Dos и Windows – приложений под управлением операционной системы Linux. UML (User Mode Linux), встраиваемый в ядро Linux и позволяющий запускать несколько копий операционной системы на одном компьютере. Безопасность в виртуальных облаках Виртуализация – это переход от технологии, лежащей в основе консолидации серверов и центров обработки данных, к основным компонентам для создания гибкой предоставляемой по требованию инфраструктуры. При реализации виртуализации в любой среде возникает много задач, которые надо решить. Рассмотрим вопросы, связанные с безопасностью, которые необходимо решить, когда речь идет об использовании виртуализации для облачных вычислений. Один из рисков – риск компрометации гипервизора виртуальных машин. Если гипервизор ненадежен, то он станет первой целью злоумышленников. Если не устранить эту опасность, то в облаке атака может привести к масштабным разрушениям. Это требует дополнительного уровня изоляции сети и усиленной системы мониторинга безопасности. Для анализа этой опасности попытаемся для начала понять природу гипервизора. Консультант по безопасности и одного из основателей компании Nemertes Research Group Inc. Андреаса Антонопулоса (Andreas Antonopoulos) считает, что “Гипервизоры 7
– узкоспециализированные устройства. Обычный гипервизор меньше и более специализирован, чем операционная система общего назначения, и меньше открыт для атак, так как у него меньше или вообще нет открытых во вне сетевых портов. Гипервизор нечасто меняется и не выполняет приложения сторонних разработчиков. У гостевой ОС, которая может стать жертвой атак, нет прямого доступа к гипервизору. Гипервизор прозрачен для сетевого трафика, если не считать входящий и исходящий трафик выделенного интерфейса управления гипервизором. На настоящий момент не задокументировано ни одной атаки на гипервизоры, что говорит о низкой вероятности таких атак. Поэтому хотя масштаб разрушений в случае компрометации гипервизора может быть огромным (компрометация всех гостевых систем), вероятность такого события низка, потому что уязвимость гипервизора и вероятность атаки очень низкие”. Другой риск для безопасности в области виртуализации заключается в том, как выделяются и освобождаются такие ресурсы, как локальные хранилища, относящиеся к виртуальным машинам. В процессе развертывания и работы виртуальной машины данные записываются в физическую память. Если память не освобождается перед передачей ее следующей виртуальной машине, то существует возможность компрометации данных. Поэтому необходимо контролировать использование ресурсов хранения и памяти при работе в общедоступном облаке. Необходимо очищать данные, аккуратно работать с конфиденциальными данными и уделять внимание управлению доступом и привилегиями, проверять очистку ресурса после его освобождения. Еще один риск, связанный с виртуализацией, заключается в возможности незамеченных сетевых атак между виртуальными машинами, расположенными на одном физическом сервере. Существует несколько способов решения этой проблемы. Во-первых, пользователь виртуальной машины может включить в ОС фильтрацию трафика или локальный брандмауэр. По существу механизм виртуализации сети должен предоставлять виртуальной машине соответствующий сетевой интерфейс. Этот интерфейс может представлять мультиплексный канал, в котором коммутация и маршрутизация выполняется оборудованием сетевой связи. Большинство полнофункциональных гипервизоров содержит виртуальные коммутаторы и брандмауэры, которые располагаются между физическими интерфейсами сервера и виртуальными интерфейсами виртуальных машин. Всей этой системой надо управлять, отслеживая изменения в месторасположении виртуальных машин и возможных путях коммуникации между ними. Еще один теоретически возможный метод ограничения трафика между виртуальными машинами – сегрегация машины путем объединения их в классы, которые изолируются друг от друга. В процессе жизненного цикла виртуальной машины всегда должен быть известен ее владелец. На физических серверах возможно совместное размещение только тех машин, которые отвечают требованиям к совместному размещению на 8
сервере. При таком подходе может использоваться одна из форм маркировки, подобно той, что применяется в многоуровневых ОС (Trusted Solaris или SE-Linux). Можно также использовать базу данных управления конфигурацией для отслеживания запросов арендаторов на изоляцию приложений. Билл Майне (Bill Meine), архитектор ПО и специалист по облакам в компании Blackhawk Network отмечает, что во всех этих примерах проблемы возникают, когда арендатору также требуется максимальная защита компонентов приложения от отказов по стандартным причинам, например, из-за необходимости высокой доступности. Дело не в том, что такую схему нельзя заставить работать, а в стоимости всех несовместимых и недогруженных фрагментов сервера (которые нельзя продать), которую приходится учитывать в цене сервиса. Один из практических способов управления трафиком между виртуальными машинами заключается в использовании виртуальных ЛВС для изоляции трафика виртуальных машин, принадлежащих разным клиентам. Но чтобы такой подход был эффективным, нужно распространить поддержку виртуальных ЛВС за пределы основной инфраструктуры коммутации вплоть до физических серверов, на которых располагаются гостевые системы. Такая поддержка используется практически повсеместно при использовании виртуализации. Следующая проблема заключается в масштабировании функциональности виртуальных ЛВС за пределы существующих границ для поддержки больших по размеру облаков. Разновидности виртуализации: виртуализация серверов (полная виртуализация и паравиртуализация); виртуализация на уровне операционных систем; виртуализация сети; виртуализация приложений; виртуализация представлений; виртуализация рабочих мест САПР; виртуализация хранилищ. Виртуализация серверов Архитектура современных серверов x86 предполагает выполнение только одной ОС на сервере. Преодолеть такое структурное ограничение можно с помощью виртуализации серверов x86. Эта технология абстрагирует операционную систему и приложения от уровня физического оборудования, что делает среду серверов менее сложной и более адаптивной и рентабельной. Благодаря виртуализации на одном физическом сервере можно выполнять несколько операционных систем в виде виртуальных машин, у каждой из которых есть доступ к вычислительным ресурсам сервера. Технология виртуализации серверов позволяет запускать на одном сервере несколько 9
логических единиц – виртуальных машин , которые полностью воспроизводят работу независимых физических серверов. Это дает возможность размещать на одной единице оборудования несколько десятков независимых операционных систем и корпоративных приложений, эффективнее используя IT-инфраструктуру. Виртуализацию можно описать как абстрагирование физических ресурсов системы, позволяющее создавать множество логических разделов, в которых будут работать различные операционные системы (одновременно на одном физическом сервере). Каждый раздел (называемый также виртуальной машиной) – это программная среда, которая предоставляет ресурсы (при помощи эмуляции оборудования или устройств). Поверх нее можно инсталлировать операционную систему, а также одно или несколько приложений. Начало коммерческой технологии виртуализации было положено компанией IBM в середине 60-х годов XX века, когда компьютер System/360 Model 67 позволял поддерживать несколько одновременно работающих гостевых виртуальных машин (в каждой из которых могла работать однопользовательская операционная система). Компания IBM достигла этого путем разработки двух отдельных операционных систем – Virtual Machine (VM) и Conversational Monitor System (CMS), которые обозначаются как VM/CMS. VM создавала виртуальные машины и управляла ими, а CMS (однопользовательская операционная система) работала внутри виртуальной машины, предоставляя доступ к ресурсам системы каждому пользователю. В настоящее время компания IBM продолжает разрабатывать и продвигать VM (после изменения бренда она называется z/VM), которая может теперь даже выполнять внутри виртуальной машины саму себя. В последние десятилетия исследования технологии виртуализации (и разработка соответствующих продуктов) пошли на подъем с акцентом на использование платформ х86 (как 32-, так и 64-битных). В 2006 года компании AMD и Intel выпустили версии процессоров семейства х86 с новыми инструкциями и расширениями, которые были предназначены специально для аппаратной поддержки виртуализации. Несмотря на то, что детали этих реализаций отличаются, технологии AMD Virtualization (AMD-V) и Intel Virtualization Technology (VT) предоставили такие аппаратные возможности виртуализации, которые могут быть использованы поставщиками программного обеспечения для упрощения кодов их программных продуктов виртуализации и для развития самой архитектуры решений виртуализации. В 2007-2008 годах расширения технологий AMD-V и Intel VT (появившиеся с выпуском 64-битных двух- и четырехъядерных процессоров AMD и Intel) оказали существенное влияние на разработку кода для Hyper-V. Компания Microsoft и другие поставщики программного обеспечения для виртуализации продолжают работать с AMD и Intel. В основе решения виртуализации на уровне машины лежит монитор виртуальных машин (Virtual Machine Monitor, VMM). VMM отвечает за создание и изоляцию виртуальной машины и сохранение ее состояния, а также за организацию доступа к системным ресурсам. Схема VMM зависит от архитектуры конкретного процессора; несмотря на то, что VMM позволяет работать внутри виртуальной машины 10