VIP STUDY сегодня – это учебный центр, репетиторы которого проводят консультации по написанию самостоятельных работ, таких как:
  • Дипломы
  • Курсовые
  • Рефераты
  • Отчеты по практике
  • Диссертации
Узнать цену

Решение вопросов безопасности и защиты информации в частном “облаке” образовательного учреждения

Внимание: Акция! Курсовая работа, Реферат или Отчет по практике за 10 рублей!
Только в текущем месяце у Вас есть шанс получить курсовую работу, реферат или отчет по практике за 10 рублей по вашим требованиям и методичке!
Все, что необходимо - это закрепить заявку (внести аванс) за консультацию по написанию предстоящей дипломной работе, ВКР или магистерской диссертации.
Нет ничего страшного, если дипломная работа, магистерская диссертация или диплом ВКР будет защищаться не в этом году.
Вы можете оформить заявку в рамках акции уже сегодня и как только получите задание на дипломную работу, сообщить нам об этом. Оплаченная сумма будет заморожена на необходимый вам период.
В бланке заказа в поле "Дополнительная информация" следует указать "Курсовая, реферат или отчет за 10 рублей"
Не упустите шанс сэкономить несколько тысяч рублей!
Подробности у специалистов нашей компании.
Код работы: K006458
Тема: Решение вопросов безопасности и защиты информации в частном “облаке” образовательного учреждения
Содержание
государственный комитет связи, информатизации И ТЕЛЕКОММУНИКАЦИОННЫХ ТЕХНОЛОГИЙ 

РЕСПУБЛИКИ УЗБЕКИСТАН 

ТАШКЕНТСКИЙ УНИВЕРСИТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

		

На правах рукописи

			УДК ____________



АСТАШЕВА ЕВГЕНИЯ АЛЕКСАНДРОВИЧА

«Решение вопросов безопасности и защиты информации в частном “облаке” образовательного учреждения»

Специальность 5A330201 – «Компьютерные системы и Программное обеспечение»

ДИССЕРТАЦИЯ

На соискание академической степени магистра



Научный руководитель

____________________________________

____________________________________

 «____» ________________________ 2014 г.





Ташкент-2014

государственный комитет связи, информатизации И ТЕЛЕКОММУНИКАЦИОННЫХ ТЕХНОЛОГИЙ РЕСПУБЛИКИ УЗБЕКИСТАН

ТАШКЕНТСКИЙ УНИВЕРСИТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

Факультет: Программный инжиниринг

Студент: Асташев Е. А.

Кафедра: ПОИТ

Научный руководитель: Рахимов Д.К.

Учебный год: 2013-2014

Специальность: 5А330201 «КСиПО»



АННОТАЦИЯ К МАГИСТЕРСКОЙ ДИССЕРТАЦИИ

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

Цель и задачи исследования. Основной целью настоящей магистерской диссертации является разработка мер и действий по обеспечению безопасности облачного вычислительного центра при Ташкентском Университете Информационных технологий.

Задачами исследования являются:

Выявление требований и задач предъявляемых к частному облаку образовательного учреждения;

Анализ существующих облачных технологий, их видов, типологии, уровней доступа, а также выделение основных признаков и создание правил и методов для обеспечения повышенной безопасности;

Проведение работ по администрированию компьютерных систем и реализация алгоритма и программного обеспечения в соответствии с выделенными требованиями к разрабатываемой системе;

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

Методы и средства исследования. Были применены такие методы исследования: моделирование, доказательство, анализ. В качестве средств исследования использовались: информационные, математические и логические средства исследования.

Гипотеза исследования. Возможность повышения безопасности данных за счет использования результатов диссертации при построении облачных систем.

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

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

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

Научный руководитель:

Рахимов Д.К.





Студент магистратуры:

Асташев Е.А.

STATE COMMITTEE FOR COMMUNICATIONS, INFORMATIZATION AND TELECOMMUNICATION TECHNOLOGIES 

OF THE REPUBLIC OF UZBEKISTAN

TASHKENT UNIVERSITY OF INFORMATION TECHNOLOGIES

Faculty: Software Engineering

Master: Astashev E.A.

Department: SIT

Supervisor: Rakhimov D.K.

Academic year: 2013-2014

Specialty: 5А330201 «CS&S»



ABSTRACT TO MASTER'S THESIS

 Justification topicality. Due to the emergence of new computer, technology remains an urgent problem of security in modern computer systems. Thus, the current study is the development of solutions and private cloud security issues of the educational institution.

The purpose and objectives of the study. The main purpose of this master thesis is the development of measures and actions to ensure the security of the cloud-computing center at Tashkent University of Information Technologies.

The objectives of the study are:

• Identify needs and challenges imposed on the private cloud educational institution;

• Analysis of existing cloud technologies, their species, typology, access levels, as well as the selection and creation of the main features of the rules and methods for enhanced security;

• Work on administration of computer systems and the implementation of the algorithm and software in accordance with the requirements allocated to the system developed;

Object and subject of study. Objects of study are computer networks and systems, and the study subject - service created using a software shell that provide access to the resources of the computer- computer system, as well as scripts for configuring the security of such systems.

Methods and tools for research. Were applied research methods: modeling, evidence analysis. As research, tools used: information, mathematical and logical research.

Hypothesis of the study. Possibility of increasing the security of the data using the results of the dissertation in the construction of cloud systems.

Scientific and practical significance. The results can used in the construction of cloud systems and developed software can used for safe storage in the cloud systems.

Scientific novelty. Of the work, lies in the fact that a new direction  investigated distributed computer systems and improving their safety, as well as software development to use new methods and tools for developing software applications and cryptographic standards of Uzbekistan, which is currently little studied.

Composition of the thesis. Master's thesis consists of an introduction, three chapters, conclusion, bibliography and appendices.



Supervisor:

Rakhimov D.K.





Master:

Astashev E.A.




Содержание



	Аннотация к магистерской диссертации	2

	Abstract to master's thesis	4

	Обозначения и сокращения	8

	Введение	9

	ГЛАВА I. Теоретические основы облачных вычислений и методов виртуализации.	12

		1.1	Виды облаков	12

	1.2 Организация облачной инфраструктуры	14

		1.2.1	Аппаратная виртуализация	15

		1.2.2	Программная виртуализация	27

	1.3 Методы организации защиты в облаке	33

	1.3.1 Принципы организации безопасности	35

	1.3.2 Виды угроз осуществляемые на аппаратном уровне	36

	1.3.3 Виды угроз осуществляемые на программном уровне	38

	1.3.4 Потенциальные нарушители	41

	1.4 Выводы по главе	42

	Глава II. Анализ и выявление требований к частному облаку образовательного учреждения.	44

	2.1 Изучение потребностей образовательного учреждения и составление параметров требований к системе.	44

	2.2 Анализ выбора основы построения облака образовательного учреждения.	47

	2.3 Сравнение систем виртуализации и выработка алгоритма построения частного облака образовательного учреждения.	52

	2.4 Построение алгоритма реализации облака для образовательного учреждения.	54

	2.5 Выводы по главе	63

	Глава III. Реализация программного комплекса для частного облака образовательного учреждения по улучшению безопасности.	64

	3.1 Формирование требований по безопасности частного облака	64

	3.2 Разработка мер облачной безопасности	65

		3.2.1	Требования предъявляемые к аппаратной части	66

		3.2.2	Требования предъявляемые к используемому программному обеспечению	67

	3.3 Разработка программного приложения для организации безопасности частного облака образовательного учреждения	68

	3.4 Выводы по главе	77

	Заключение	78

	Литература	80






Обозначения и сокращения 

Кластер — программно-аппаратный комплекс с массивно параллельной архитектурой предназначенный для решения всевозможных вычислительных задач математической физики, геологии, химии и множества других.

Узел — стандартная вычислительный единица Кластера, обычно представляющая собой сервер размером 1U или блок т.н. blade-серверов.

Управляющий узел (УУ) — один или несколько выделенных серверов в составе Кластера. УУ обеспечивает целостною работу кластера при помощи ряда функционирующих на нем Сервисов.

СХД — система хранения данных.

InfiniBand Фабрика — единый комплекс оборудования InfiniBand.

Baseboard Management Controller (BMC)— сервисный процессор в составе Узла позволяющий осуществлять гипервизоринг по протоколам HTTP, IPMI 7.0, SNMP и прочим. Также BMC предоставляет функции KVMoIP и VirtualMedia.

Сервис — отдельная служба выполняющая конкретную задачу Кластера. Как правило, за работу сервиса отвечает один или несколько системных служб (демонов).

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

Хозяин (англ. host) — аппаратная система, на которой запущен гипервизор виртуальных машин или симулятор.

Гость (англ.guest) — виртуальная или моделируемая система, запущенная под управлением гипервизора или симулятора. Также иногда именуется как целевая система (англ. target system).

 


Введение

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

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

На заседании Кабинета Министров 19 января 2012 года Президент Республики Узбекистана Ислам Абдуганиевич Каримов отметил, что в Узбекистане активно развивается информатизация общества[1]. 

В соответствии с «Постановлением Президента РУз от 21.03.2012 г. за № ПП-1730 "О мерах по дальнейшему внедрению и развитию современных информационно-коммуникационных технологий"» более широкое развитие и внедрение получили современные компьютерные системы, в частности развиваются облачные системы вычисления и хранения данных. Актуальным является в данном случае вопрос о безопасном хранении и передаче и использовании существующей информации. Традиционные системы требуют знания пароля, наличия ключа, идентификационной карточки, либо иного идентифицирующего предмета, который можно забыть или потерять. Но при правильном подходе защиты информации можно увеличить и поддерживать уровень безопасности на высоком уровне. И именно обеспечить данный уровень и стараются обеспечить облачные сервисы. Также «облака» помогают осуществлять доступность к информации, что является одним из основных признаков развития информационного поля.

Сутью данной работы становится выработка методов и правил защиты в частном облаке, а также создание одного из видов «облака» и проведения экспериментов в области безопасности над ним.

К недостаткам «облаков» следует отнести то, что сама по себе такая система является достаточно сложной в реализации, а существующие решения либо узкоспециализированы, либо являются платными. 

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

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

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

Данная выпускная диссертационная работа состоит из трех глав.

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

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

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




ГЛАВА I. Теоретические основы облачных вычислений и методов виртуализации.

Виды облаков

На сегодняшний день стал актуальным вопрос облачных вычислений, хранения данных в облаке, построение систем облачного вычисления с использованием гипервизоров и т.п. Термин облако появилось в 2008 году, где впервые было использовано Эриком Шмидтом (одним из основателей Google), представляет собой метафору, скрывающую сложную архитектуру инфраструктуру и технические детали по созданию и поддержки таких систем. На современном IT рынке в мире и Узбекистане данная технология является быстро развивающейся и важной для общества. Согласно исследованию компании Gartner, к 2016 году мировой объем рынка сервисов облачных технологий достигнет 206,6 млрд. долларов. 

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

Существуют четыре типа модели развертывания облака:

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

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

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

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

На основе модели развертывания применяют три основных вида модели обслуживания:

SaaS (от англ. Software as a Service), (пер. Программное обеспечение как услуга) – данная модель, предоставляет возможность конечному потребителю использовать прикладное программное обеспечение провайдера, работающего в облачной среде и предоставляющий доступ с различных клиентских устройств интерфейса программы. Управление и контроль инфраструктуры облака осуществляется провайдером предоставляющим, в том числе сети, сервера, операционные системы, системы хранения, и даже индивидуальные возможности приложения.

PaaS (от англ. Platform as a Service), (пер. Платформа как услуга) – такая модель предоставляет потребителю использование облачной инфраструктуры как пространство для размещения программного обеспечения, в дальнейшем предусматривая размещение новых приложений которые могут быть как собственного производства, так и приобретённых приложений. Такие платформы содержат инструменты разработки, отладки, тестирования, выполнения программного обеспечения, промежуточное программное обеспечение, среды для компиляции и запуска кода, а также системы управления базами данных, которые предоставляются поставщиком услуг.

IaaS (от англ. Infrastructure as a Service), (пер. Инфраструктура как услуга) – такая модель даёт большое поле деятельности для потребителя услуг, предоставляя последнему использовать облачную инфраструктуру для самостоятельного управления ресурсами системы, обработки и хранения данных, управление сетями и т.п. к примеру, потребитель услуги может запускать и устанавливать любое программное обеспечение кроме того он может использовать в облаке такого типа операционные системы, а также требуемое для его работы программное обеспечение. Потребитель может настроить систему безопасности по требуемому уровню для организации осуществлять контроль физических и виртуальных систем, систем хранения данных и установленных приложения, а также вводить определенные ограничения для конкретного пользователя или группа сервиса или набора доступных сервисов (например, межсетевой экран, DNS). Контроль, обслуживание и управление инфраструктурой облака, в том числе сети, серверов, операционных систем, хранения осуществляется облачным провайдером, за исключением тех приложений (разработанных или установленных потребителем), а также, по возможности, параметров конфигурации среды (платформы).



1.2 Организация облачной инфраструктуры

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

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

Надо учитывать, что виртуализация бывает двух типов: 

Аппаратная виртуализация;

Программная виртуализация;

Критерии для виртуальных машин были сформулированы в работе 1974 г. Жеральда Попека и Роберта Голдберга «Formal requirements for virtualizable third generation architectures» [12]. Для рассмотрения будем использовать упрощённое представление компьютера, состоящего из одного центрального процессора и оперативной памяти. 

Выдвигаемые критерии к виртуальным машинам (ВМ): 

Изоляция — каждая виртуальная машина должна иметь доступ только к тем ресурсам, которые были ей назначены. 

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

Эффективность — большинство инструкций должны симулироваться в режиме прямого исполнения. 

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

1.2.1	Аппаратная виртуализация

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

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

Классы инструкций

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

Состояние процессора содержит минимум три регистра [11]: M, определяющий, находится ли он в режиме супервизора S или пользователя U, P — указатель текущей инструкции и R — состояние, определяющее границы используемого сегмента памяти (в простейшем случае R задаёт отрезок, т.е. , где l — адрес начала диапазона, b — его длина). 

Машинные инструкции рассматриваемого процессора можно классифицировать по трём категориям: 

Привилегированные (англ. privileged). Инструкции, исполнение которых с M = U всегда вызывает ловушку потока управления. Другими словами, такая инструкция может исполняться только в режиме супервизора, иначе она обязательно вызывает исключение. 

Служебные. Класс состоит из двух подклассов. 

1. Инструкции, исполнение которых закончилось без ловушки защиты памяти и вызвало изменение M и/или R. Они могут менять режим процессора из супервизора в пользовательский или обратно или изменять положение и размер доступного сегмента памяти. 

2. Инструкции, поведение которых в случаях, когда они не вызывают ловушку защиты памяти, зависят или от режима M, или от значения R. 

Безвредные (англ. innocuous). Не являющиеся служебными. Самый широкий класс инструкций, не манипулирующие ничем, кроме указателя инструкций P и памяти E, поведение которых не зависит от того, в каком режиме или с каким адресом в памяти они расположены.

При исполнении каждая инструкция i в общем случае может изменить как (M, P, R), так и память E, т.е. она является функцией преобразования: 

Считается, что для некоторых входных условий инструкция вызывает исключение (ловушки), если в результате её исполнения содержимое памяти не изменяется, кроме единственной ячейки , в которую помещается предыдущее состояние процессора . Новое состояние процессора  при этом копируется из . Другими словами, ловушка позволяет сохранить полное состояние программы на момент до начала исполнения её последней инструкции и передать управление обработчику, в случае обычных систем обычно работающему в режиме супервизора и призванного обеспечить дополнительные действия над состоянием системы, а затем вернуть управление в программу, восстановив состояние из . 

Далее, ловушки могут иметь два признака. 

Вызванные попыткой изменить состояние процессора (ловушка потока управления). 

Обращения к содержимому памяти, выходящему за пределы диапазона, определённого в (ловушка защиты памяти). 

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

Достаточное условие построения гипервизора ВМ 

Соблюдение трёх сформулированных выше условий возможности построения гипервизора виртуальных машин: множество служебных инструкций является подмножеством привилегированных инструкций (Рис. 1.1)[10][12].

Соблюсти оптимальный баланс между тремя свойствами: изоляцией, эквивалентностью и эффективностью, — является невозможным, из-за необходимости программного контроля за исполнением ими служебных, но не привилегированных инструкций, так как сама аппаратура не обеспечивает этого (Рис. 1.2).



Рис. 1.1: Выполнение условия виртуализации. Множество служебных инструкций является подмножеством привилегированных

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

Рис. 1.2: Невыполнение условия виртуализации. Служебные, но не привилегированные инструкции требуют реализации сложной логики.

Структура гостевых программ

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

Периферия 

Поскольку периферийные устройства являются служебным ресурсом, очевидно, что для обеспечения условий изоляции и эквивалентности необходимо, чтобы все попытки доступа к ним были контролируемы гипервизором ВМ так же, как они контролируются в многозадачной операционной системе её ядром. В настоящее время доступ к устройствам производится через механизм отражения их в физической памяти системы (англ. memory mapped I/O)[14].

В зависимости от класса устройств периферии и от приложений с ними взаимодействующими может происходить замедление в работе при виртуализации. Различают следующие классы устройств: 

Выделенное устройство — устройство, доступное исключительно внутри одной гостевой системы. Примеры: клавиатура, гипервизор. 

Разделяемое — общее для нескольких гостей. Такое устройство или имеет несколько частей, каждая из которых выделена для нужд одного из них (англ. partitioned mode), например, жёсткий диск с несколькими разделами, или подключается к каждому из них поочерёдно (англ. shared mode). Пример: сетевая карта. 

Полностью виртуальное — устройство, отсутствующее в реальной системе (или присутствующее, но в ограниченном количестве) и моделируемое программно внутри гипервизора. Примеры: таймеры прерываний — каждый гость имеет собственный таймер, несмотря на то, что в хозяйской системе есть только один, и он используется для собственных нужд гипервизора. 

Многопроцессорные системы 

На сегодняшний день практически все современные компьютеры содержат в себе более одного ядра или процессора. Кроме того, внутри одного гипервизора могут исполняться несколько ВМ, каждая из которых может иметь в своём распоряжении несколько виртуальных процессоров. Рассмотрим, как это влияет на условия виртуализации. Здесь зачастую используется гипервизор. Гипервизор это программа находящаяся на реальной физической машине и осуществляющая ретрансляцию и выполнение команд виртуальных машин [15].

Аппаратная синхронизация в условиях виртуализации 

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

Примером такого неэффективного поведения гостевых систем является синхронизация с задействованием циклических блокировок (англ. spin lock) внутри ВМ[9]. Будучи неэффективной и поэтому неиспользуемой для однопроцессорных систем, в случае нескольких процессоров она является легковесной альтернативой другим, более тяжеловесным замкам (англ. lock), используемым для входа в критические секции параллельных алгоритмов. Чаще всего они используются внутри операционной системы, но не пользовательских программ, так как только ОС может точно определить, какие из системных ресурсов могут быть эффективно защищены с помощью циклических блокировок. Однако в случае виртуальной машины планированием ресурсов на самом деле занимается не ОС, а гипервизор ВМ, который в общем случае не осведомлён о них и может вытеснить поток, способный освободить ресурс, тогда как второй поток будет выполнять циклическую блокировку, бесполезно тратя процессорное время. 

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

Существующие решения для данной проблемы описаны ниже. 

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

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

Прерывания 

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

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

Преобразование адресов 

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

В настоящее время механизмы страничной виртуальной памяти и применяют нелинейное преобразование виртуальных адресов пользовательских приложений в физические адреса, используемые аппаратурой. Участвующий при этом системный ресурс — регистр-указатель адреса таблицы преобразований (чаще всего на практике используется несколько таблиц, образующих иерархию, имеющую общий корень). В случае работы ВМ этот указатель необходимо виртуализировать, так как у каждой гостевой системы содержимое регистра своё, как и положение/содержимое таблицы. Стоимость программной реализации этого механизма внутри гипервизора высока, поэтому приложения, активно использующие память, могут терять в эффективности при виртуализации. 

Для решения этой проблемы используется двухуровневая аппаратная трансляция адресов (Рис. 1.3). Гостевые ОС видят только первый уровень, тогда как генерируемый для них физический адрес в дальнейшем транслируется вторым уровнем в настоящий адрес. 

Рис. 1.3: Двухуровневая трансляция адресов. Первый уровень контролируется гостевыми ОС, второй — гипервизором виртуальных машин

Аннотация к рисунку: 

На рисунке присутствуют блоки различных цветов:



Ячейки для адресов команд хостовой машины

 

Ячейки для адресов команд ВМ № 1



Ячейки для адресов команд ВМ № 2



Незаполненные ячейки для адресов команды

 

Преобразование адресов для периферийных устройств

Кроме процессоров к оперативной памяти напрямую могут обращаться и периферийные устройства — с помощью технологии DMA (англ. Direct Memory Access). При этом обращения в классических системах без виртуализации идёт по физическим адресам. Очевидно, внутри виртуальной машины необходимо транслировать такие адреса, и это превращается в накладные расходы и понижение эффективности гипервизора. Решение состоит в использовании устройства IOMMU (англ. Input output memory management unit), позволяющего контролировать обращения пользовательских устройств к физической памяти.

Расширение принципа 

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

При этом условие повышения эффективности виртуализации будет звучать следующим образом: в архитектуре системы должно присутствовать минимальное число служебных операций. Достигать его можно двумя способами: переводя служебные инструкции в разряд безвредных или уменьшая число привилегированных. Для этого большинство архитектур пошло по пути добавления в регистр состояния M нового режима r — режима гипервизора ВМ (англ. root mode). Он соотносится с режимом S так, как S — с U; другими словами, обновлённый класс привилегированных инструкций теперь вызывает ловушку потока управления, переводящую процессор из S в r. Для обеспечение эффективной виртуализации требуется:

Уменьшение частоты и выходов в режим гипервизора с помощью пред просмотра инструкций 

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



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

Рекурсивная виртуализация 

Когда гипервизор виртуальных машин запускается под управлением другого гипервизора, непосредственно исполняющегося на аппаратуре, называется рекурсивной виртуализацией (Рис.1.4.). Теоретически она может быть не ограничена только двумя уровнями — внутри каждого гипервизора ВМ может исполняться следующий, тем самым образуя иерархию гипервизоров. 

Рассмотрим о.......................
Для получения полной версии работы нажмите на кнопку "Узнать цену"
Узнать цену Каталог работ

Похожие работы:

Отзывы

Спасибо, что так быстро и качественно помогли, как всегда протянул до последнего. Очень выручили. Дмитрий.

Далее
Узнать цену Вашем городе
Выбор города
Принимаем к оплате
Информация
Наши преимущества:

Экспресс сроки (возможен экспресс-заказ за 1 сутки)
Учет всех пожеланий и требований каждого клиента
Онлай работа по всей России

Сотрудничество с компаниями-партнерами

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