Опубликован: 31.07.2015 | Доступ: свободный | Студентов: 1956 / 894 | Длительность: 10:00:00
Лекция 1:

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

Лекция 1: 12345 || Лекция 2 >
Аннотация: В лекции рассматриваются технологии виртуализации, особенности платформ виртуализаций VMware, Citrix (Xen), Microsoft.
Ключевые слова: Виртуализация, виртуальная машина, хостовая операционная система , эмулятор виртуальной машины, монитор виртуальных машин, гостевая операционная система, эмулятор, API (Application Programming Interface), технология виртуализации серверов, виртуальных машин , полная виртуализация, собственная виртуализация, , паравиртуализация, виртуализация на уровне операционной системы, виртуализация на уровне ядра ОС, виртуализация сети, виртуализированные приложения, виртуализация приложений, виртуализация представлений (рабочих мест), виртуализация рабочих столов, технология NVIDIA GRID, виртуализация хранилищ, виртуализированные хранилища, виртуализация хранилищ VMware, технологии виртуализации хранилищ, VMware, Tripwire Change Audit, Tripwire Enterprise, Tripwire Enterprise for VMware ESX, Tripwire Log Center, Tripwire PCI Solution, Veeam Backup & Replication for Vmware, Veeam Monitor, Veeam nWorks Management Pack for VMware, Veeam nworks Smart Plug-in (SPI), Veeam Reporter, Vizioncore SMB Data Protection Pack, VMware Ace, VMware Capacity Planner, VMware ESX Server, VMware ESXi, VMware Fusion®7, VMware Fusion®7 Pro, VMware Horizon 6, VMware NSX, VMware Player, VMware Player Pro, VMware Server, VMware ThinApp, VMware vCenter Operation Manager, VMware vCenter Server, VMware vCloud Director, VMware vCloud Suite, VMware View, VMware Virtual SAN, VMware VMmark, VMware vRealize Suite, VMware vShield Edge, VMware vSphere, службы инфраструктуры, службы приложений, VMware vSphere Hypervisor, VMware vSphere with Operations Management, VMware Workspace Suite, VMware Workstation, Citrix Access Gateway, Citrix Edge Sight, Citrix NetScaler, Citrix XenApp, Citrix XenDesktop, Citrix XenServer, Microsoft Hyper-V Server 2008, Microsoft System Center Operations Manager, Microsoft System Center Virtual Machine Manager (SCVMM), Microsoft Virtual PC 2007 (EN), Microsoft Virtual Server 2005 R2 (EN), Microsoft Virtual Server, Microsoft Windows Server 2008 Hyper-V (EN), Veeam Backup & Replication for Hyper-V, Виртуализация приложений Microsoft Application Virtualization 4.5, Microsoft Hyper-V, Advanced Micro Devices (AMD), Aero Peek, AirWatch by VMware, Altiris Inc., Amazon Elastic Compute Cloud (Amazon EC2), Amazon Web Services (AWS), Amazon WorkSpace, Amazon, Inc., AMD Virtualization (AMD-V), Bochs, Citrix Branch Repeater, Citrix Receiver, Citrix Systems, Debian, Dynamic Suite Composition (DSC), ERP, Fedora, Flip 3D, Gartner, Horizon FLEX Clients, Horizon FLEX Policy Server, Hyper-V Server, IBM, INI-файл, Intel Core, Intel Corporation, Intel Virtualization Technology (VT), IP-протокол, Linux, microsoft, Microsoft Application Virtualization (App-V), Microsoft Exchange, Microsoft SQL Server, Microsoft Virtual PC, Microsoft Windows, Microsoft Windows Server 2012, Mirage for Horizon FLEX, NVIDIA GRID, Open Source Initiative, OpenVZ, Oracle (Sun Microsystems), Parallels Virtuozzo Containers, Parallels, Inc (ранее SWsoft), Physical-to-Virtual (P2V), PowerCLI, Red Hat, SAP, SAP Business Suite, SAP HANA, SAP Sybase, SE-Linux, Serenity Virtual Station, server, Server Core, SharePoint, solaris, Solaris Containers, SQL-сервер, Sun Ray, Sun Ray Server Software, SUSE Linux Enterprise Desktop (SLED), Symantec, Symantec LiveState Recovery Manager, Trusted Solaris, UML, vCenter Converter, vCenter Lab Manager, vCenter Site Recovery Manager, Veeam nWorks Smart Plug-in (SPI) для VMware, Virtual Machine Manager (VMM), VMBus (Virtual Machine Bus), VMkernel, VMware Fusion, VMware Fusion®7 , VMware Fusion®7 Pro, VMware Horizon FLEX, VMware vCenter, VMware vCenter Capacity IQ, VMware vCenter Configuration Manager (vCM), VMware vCenter Converter, VMware vCenter Lab Manager, VMware vCenter Site Recovery Manager, VMware vCloud Network and Security (vCNS), VMware vRealize Operations, VMware vRealize Orchestrator, VMware vSphere 4 Advanced, VMware Workspace Portal, VMware Zimbra, VPS, vSphere ESXi, Wind River Simics, Windows 2008 Server R2, Windows Display Driver Model (WDDM), Windows PowerShell, Windows Remote Desktop Services, Windows Server Hyper-V, Wine, workstation, x64, x86, Xen, брандмауэр, виртуализация представлений, виртуальный рабочий стол, выборочная эмуляция инструкций, гипервизор, дата-центр, доменная виртуализация, инкапсуляция в компьютерных сетях, информационное моделирование здания (BIM), командлеты (cmdlets), ЛВС, маршрутизатор, ОЗУ, операционная система, персональный компьютер, полная эмуляция инструкций, порт, САПР, сервер (Server), сервис DaaS, сетевой адаптер, сетевой коммутатор, CRM-система, СОМ, технология виртуализации, технология виртуализации AMD , ЭВМ (Электронно-вычислительная машина), эмуляция (emulation), эмуляция API

Одной из наиболее существенных технологических новаций, лежащих в основе облачных вычислений, являются технологии виртуализации.

Виртуализация – предоставление набора вычислительных ресурсов или их логического объединения, абстрагированное от аппаратной реализации, и обеспечивающее при этом логическую изоляцию вычислительных процессов, выполняемых на одном физическом ресурсе.

Основные понятия технологии виртуализации

Виртуальная машина – изолированный программный контейнер, который работает с собственной ОС и приложениями, подобно физическому компьютеру. Виртуальная машина действует так же, как физический компьютер, и содержит собственные виртуальные ОЗУ, жесткий диск и сетевой адаптер.

Виртуальная машина представляет собой программный контейнер, связывающий, или "инкапсулирующий" полный комплект виртуальных аппаратных ресурсов, а также ОС и все ее приложения в программном пакете.

Основными особенностями виртуальных машин являются: совместимость (виртуальные машины совместимы со всеми стандартными компьютерами, виртуальная машина работает под управлением собственной гостевой оперативной системы и выполняет собственные приложения); изолированность (виртуальные машины полностью изолированы друг от друга, как если бы они были физическими компьютерами); инкапсуляция (виртуальные машины полностью инкапсулируют вычислительную среду).

Виртуальные машины полностью независимы от базового физического оборудования, на котором они работают.

Хостовая операционная система – это операционная система, установленная на реальное оборудование. В рамках этой операционной системы устанавливается программное обеспечение виртуализации как обычное приложение.

Эмулятор виртуальной машины – это программное обеспечение, устанавливаемое на хостовую операционную систему и состоящее из монитора виртуальных машин и графической оболочки.

Монитор виртуальных машин представляет собой программу, обеспечивающую все взаимодействия между виртуальным и реальным оборудованием, поддерживающую работу одной или нескольких созданных виртуальных машин и установленных гостевых операционных систем. Графическая оболочка обеспечивает взаимодействие пользователя с приложением виртуальной машины, позволяя настраивать создаваемые виртуальные машины под свои нужды и управлять ее работой.

Гостевая операционная система – это операционная система, устанавливаемая на созданную виртуальную машину. В качестве гостевых операционных систем можно использовать Window, Linux и др.

При использовании технологии виртуализации получают иерархическую структуру взаимодействия виртуальных ЭВМ и реальной аппаратуры. На нижнем слое этой иерархии находится реальное оборудование, управление которым распределяется между хостовой операционной системой и эмулятором виртуальных машин.

Хостовая операционная система и эмулятор распределяют между собой ресурсы реальной ЭВМ и составляют второй уровень иерархии. Хостовая операционная система занимается управлением работающих на ней приложений и распределением между ними ресурсов реальной ЭВМ.

Эмулятор виртуальных машин управляет виртуальными машинами с установленными на них гостевыми операционными системами, распределяя между ними ресурсы реальной ЭВМ так, чтобы у пользователей создавалось впечатление работы на реальном оборудовании

Частично, распределение ресурсов между виртуальными машинами можно настроить на этапе конфигурации виртуальных машин, указав объем оперативной памяти, размер жесткого диска, количество виртуальных процессоров, виртуализируемые каналы связи и другие параметры.

Гостевые операционные системы управляют работой своих приложений в рамках выделенных эмулятором ресурсов.

Рассматривая технологию виртуализации, необходимо изучить эмулятор виртуальных машин, а именно монитор виртуальных машин, являющийся базовой частью технологии виртуализации.

Все существующие мониторы виртуальных машин можно разделить на четыре вида, использующие: аппаратную, аппаратно-программную, программную и доменную виртуализации. Это разделение – условно, поскольку большинство мониторов виртуальных машин используют, как программную, так и аппаратную виртуализацию, так как программная виртуализация – требовательна к ресурсам, а аппаратная виртуализация ограничивается узким кругом оборудования, поддерживающей какой-либо вид мониторов виртуальных машин.

Доменная виртуализация основывается на логическом распределении ресурсов на отдельные части (домены). В основном она используется в мэйнфреймах. Этот тип виртуализации появился первым и использовался для распределения ресурсов больших ЭВМ между отдельными пользователями.

Мониторы виртуальных машин, использующие технологию аппаратно-программной виртуализации, часть инструкций выполняют, непосредственно, на самом процессоре, а часть – эмулируют.

Существуют три типа программной эмуляции инструкций: полная эмуляция инструкций, выборочная эмуляция инструкций, эмуляция API.

При использовании полной эмуляции инструкции интерпретируются и преобразуются в инструкции, воспринимаемые реальным процессором. В этом случае появляется возможность создавать виртуальные машины, имитирующие работу аппаратуры, не совместимой по архитектуре с реальной ЭВМ. Например, можно запускать виртуальную машину, имитирующую работу процессора с RISC-архитектурой, на реальной ЭВМ с процессором CISC-архитектуры. Это возможно за счет того, что эмуляция ведется на уровне базовых арифметико-логических инструкций, присутствующих, практически, в любом процессоре.

Интерпретация каждой инструкции приводит к значительному расходу ресурсов реальной ЭВМ и снижает быстродействие приложений, работающих в гостевой операционной системе. Современные серверы и персональные ЭВМ обладают все большей производительностью. Поэтому виртуализация, с использованием интерпретации инструкций, приобретает популярность. Представителями данного класса виртуальных машин являются: Microsoft Virtual PC, Bochs, Simics и др.

Такие виртуальные машины являются незаменимыми при отладке и разработке программного обеспечения, написанного на языках низкого уровня, и при эмуляции ЭВМ со специфической архитектурой на стандартизированные персональные компьютеры и серверы.

Не все инструкции необходимо интерпретировать. Часть инструкций виртуальной машины можно выполнять без изменений на реальном процессоре. Монитор виртуальных машин, проанализировав код, может инструкции виртуальной машины, совпавшие с инструкциями реального процессора, без изменений отправить для выполнения на реальном процессоре, а остальные инструкции интерпретировать.

Появляются дополнительные расходы на анализ инструкций. Поскольку в программах часто встречаются циклы, интерпретация которых может производиться однократно, и наиболее простые инструкции, способные без изменения выполняться на процессоре составляют большую часть программ, то производительность виртуальной машины увеличивается в несколько раз, по сравнению с полной эмуляцией инструкций.

К виртуальным машинам этого типа относятся, например: VMware Workstation, VMware Server, Serenity Virtual Station и др.

В третьем случае, эмулируются API гостевой операционной системы. API (Application Programming Interface) – это интерфейс прикладного программирования.

Все работающие программы взаимодействуют с оборудованием при помощи интерфейса API. Поэтому можно перехватить обращение программ, работающих под управлением гостевой операционной системы, к API, преобразовать его к виду, принятому в хостовой операционной системе, и ретранслировать полученный результат к API хостовой операционной системы.

Результат выполнения запроса хостовой операционной системой преобразуется к виду, воспринимаемому гостевой операционной системой, и передается программе, выдавшей запрос.

Если гостевая и хостовая операционные системы совместимы по своим 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) считает, что "Гипервизоры – узкоспециализированные устройства. Обычный гипервизор меньше и более специализирован, чем операционная система общего назначения, и меньше открыт для атак, так как у него меньше или вообще нет открытых во вне сетевых портов. Гипервизор нечасто меняется и не выполняет приложения сторонних разработчиков. У гостевой ОС, которая может стать жертвой атак, нет прямого доступа к гипервизору. Гипервизор прозрачен для сетевого трафика, если не считать входящий и исходящий трафик выделенного интерфейса управления гипервизором. На настоящий момент не задокументировано ни одной атаки на гипервизоры, что говорит о низкой вероятности таких атак. Поэтому хотя масштаб разрушений в случае компрометации гипервизора может быть огромным (компрометация всех гостевых систем), вероятность такого события низка, потому что уязвимость гипервизора и вероятность атаки очень низкие".

Другой риск для безопасности в области виртуализации заключается в том, как выделяются и освобождаются такие ресурсы, как локальные хранилища, относящиеся к виртуальным машинам. В процессе развертывания и работы виртуальной машины данные записываются в физическую память. Если память не освобождается перед передачей ее следующей виртуальной машине, то существует возможность компрометации данных.

Поэтому необходимо контролировать использование ресурсов хранения и памяти при работе в общедоступном облаке. Необходимо очищать данные, аккуратно работать с конфиденциальными данными и уделять внимание управлению доступом и привилегиями, проверять очистку ресурса после его освобождения.

Еще один риск, связанный с виртуализацией, заключается в возможности незамеченных сетевых атак между виртуальными машинами, расположенными на одном физическом сервере.

Существует несколько способов решения этой проблемы. Во-первых, пользователь виртуальной машины может включить в ОС фильтрацию трафика или локальный брандмауэр.

По существу механизм виртуализации сети должен предоставлять виртуальной машине соответствующий сетевой интерфейс. Этот интерфейс может представлять мультиплексный канал, в котором коммутация и маршрутизация выполняется оборудованием сетевой связи.

Большинство полнофункциональных гипервизоров содержит виртуальные коммутаторы и брандмауэры, которые располагаются между физическими интерфейсами сервера и виртуальными интерфейсами виртуальных машин. Всей этой системой надо управлять, отслеживая изменения в месторасположении виртуальных машин и возможных путях коммуникации между ними.

Еще один теоретически возможный метод ограничения трафика между виртуальными машинами – сегрегация машины путем объединения их в классы, которые изолируются друг от друга. В процессе жизненного цикла виртуальной машины всегда должен быть известен ее владелец. На физических серверах возможно совместное размещение только тех машин, которые отвечают требованиям к совместному размещению на сервере.

При таком подходе может использоваться одна из форм маркировки, подобно той, что применяется в многоуровневых ОС (Trusted Solaris или SE-Linux). Можно также использовать базу данных управления конфигурацией для отслеживания запросов арендаторов на изоляцию приложений.

Билл Майне (Bill Meine), архитектор ПО и специалист по облакам в компании Blackhawk Network отмечает, что во всех этих примерах проблемы возникают, когда арендатору также требуется максимальная защита компонентов приложения от отказов по стандартным причинам, например, из-за необходимости высокой доступности. Дело не в том, что такую схему нельзя заставить работать, а в стоимости всех несовместимых и недогруженных фрагментов сервера (которые нельзя продать), которую приходится учитывать в цене сервиса.

Один из практических способов управления трафиком между виртуальными машинами заключается в использовании виртуальных ЛВС для изоляции трафика виртуальных машин, принадлежащих разным клиентам. Но чтобы такой подход был эффективным, нужно распространить поддержку виртуальных ЛВС за пределы основной инфраструктуры коммутации вплоть до физических серверов, на которых располагаются гостевые системы. Такая поддержка используется практически повсеместно при использовании виртуализации.

Следующая проблема заключается в масштабировании функциональности виртуальных ЛВС за пределы существующих границ для поддержки больших по размеру облаков.

Разновидности виртуализации:

  • виртуализация серверов (полная виртуализация и паравиртуализация);
  • виртуализация на уровне операционных систем;
  • виртуализация сети;
  • виртуализация приложений;
  • виртуализация представлений;
  • виртуализация рабочих мест САПР;
  • виртуализация хранилищ.
Лекция 1: 12345 || Лекция 2 >
Сергей Волков
Сергей Волков

Не могу получить доступ к Azure