Файл: Распределенная технология обработки информации (Классификация кластерных вычислений).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 25.04.2023

Просмотров: 122

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

На рисунке 2 показана схема гипервизорной виртуализации.

Рис. 2 - Схема гипервизорной виртуализации

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

Контейнеры являются управляемыми ресурсами. Например, если Контейнеры 1 и 2 работают с одним и тем же файлом, ядром хоста открывается этот файл с размещением страницы из него в страничном кэше ядра, который далее передается Контейнерам 1 и 2. При обращении к файлу из обеих контейнеров, производится обращение одной и той же странице памяти. При необходимости выполнения аналогичной операции гипервизорными виртуальными машинами VM1 и VM2, то сначала производится открытие запрашиваемого файла хостом (через создание страницы в своем страничном кэше), и далее каждое из ядер VM1 и VM2 производит аналогичное действие. Таким образом, при чтении машинами VM1 и VM2 одних и тех же файлов в памяти отводится целых три идентичных страницы (по одной в страничном кэше хоста и в ядрах VM1 и VM2), в силу того, что не существует гипервизорной технологии по одновременному использованию одной и той же страницы, как это сделано в контейнерах.

В обычных системах, если два или более процесса проводят обращение к идентичным разделяемым библиотекам (например, libc), ее код присутствует в памяти только в одном экземпляре. Это характерно и для исполняемых файлов, и к сегментам немодифицируемых данных, что дает возможности существенного снижения требований к объему оперативной памяти. Так как контейнерами также используется единое ядро, вышеописанные механизмы при некоторых условиях распространяется и на них, что приводит, в частности, к повышению плотности размещения информации, которая и без данного механизма изначально выше, чем у виртуальных машин, в силу отсутствия множественных копии ядра [4].

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


Основными преимущемствами контейнерной виртуализации являются [7]:

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

3.2 Типы технологии контейнеров (Семейство решений)

Разработчиками Windows до недавнего времени предлагались следующие технологии виртуализации: виртуальные машины и виртуальные приложения Server App-V. Каждая из них имеет свою нишу использования, свои достоинства и недостатки. В настоящее время ассортимент расширился — в Windows Server 2016 включены контейнеры (Windows Server Containers). Главным отличием является то, что в системе предложены следующие виды контейнеров: контейнеры Windows и контейнеры Hyper-V. В TP3 были доступны только первые.

Контейнеры семейства Hyper-V обеспечивают дополнительные уровни изоляции с использованием Hyper-V. Для каждого из контейнеров выделяется собственное ядро и ресурсы памяти, изоляция осуществляется не ядром ОС, а гипервизором Hyper-V. В результате возможно достижение такого же уровня изоляции, как у виртуальных машин, при меньших затратах по сравнению с VM, но большей, по сравнению с контейнерами Windows. Для возможности использования такого типа контейнеров необходима установка на хосте роли Hyper-V. Контейнеры Windows по большей части подходят для применения в доверенных средах, например когда на серверах производится запуск приложений от одной организации. Когда сервер используется множеством компаний и необходимо обеспечивать больший уровень изоляции, использование контейнеров Hyper-V, вероятнее, будут более рациональным решением.


Важной особенностью контейнеров в Win 2016 является то, что выбор типа проводится не в момент создания, а в моменты деплоя. То есть запуск любого контейнера может производиться как Windows, и как Hyper-V.

В ОС Win 2016 за контейнеры отвечают абстракции Contаiner Management stack, реализующие все необходимые функции. При хранении применяется формат образа жесткого диска типа VHDX. Сохранение контейнеров, производится в образы в репозитории. Причем сохранение осуществляется не для полного набора данных, а только для отличий создаваемого образа от эталонного, и в момент запуска производится проецирование всех нужных данных в память. При управлении сетевым трафиком между контейнерами и физической сетью используется Virtual Switch.

В качестве ОС в контейнерах может использоваться Server Core или Nano Server. С помощью Server Core обеспечивается необходимый уровень совместимости с имеющимися приложениями. Nano Server представляет собой еще более урезанную версию для работы без мониторов, позволяющую проводить запуск сервера в минимально возможной конфигурации для работы с Hyper-V, ресурсами файлового сервера (SOFS) и облачными службами.

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

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

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

  • упаковка приложения (а также используемых компонент) в docker контейнеры;
  • раздача и доставка этих контейнеров командам для проведения разработки и тестирования;
  • выкладывание данных контейнеров на продакшены, как в Data-центры так и в облака

Solaris Containers (включая Solaris Zones) представляет собой реализацию технологии виртуализации на уровне операционной системы, разработки корпорации Sun Microsystems в 2005 для Solaris 10.


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

Для каждой зоны имеется своё уникальное имя в сети, виртуальные сетевые интерфейсы и системы хранения информации; не существует ограничений на минимальные параметры поддерживающей работу с зоной аппаратуры обеспечения кроме минимально необходимого дискового пространства, используемого для сохранения уникальных данных о конфигурации зоны. Необходимо отметить, что зоны Solaris не нуждаются в выделенных процессорах, ОЗУ, физических сетевых интерфейсах или HBA, при этом любой из процессоров может быть выделен для зоны.

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

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

Особенности Solaris Zones:

Безопасность – приложения, запущенные в зоне, запущены в «песочнице», то есть процесс, даже запущенный от имени root в рамках зоны, не может повлиять на другие зоны или на global зону (управляющую, корневую зону). Перезагрузка или выключение доступно только из global зоны.

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

Гибкость – ресурсы зоне могу быть назначены жестко или зона может использовать общий пул ресурсов хоста.

Проведение установки виртуальных зон может производиться в следующем порядке [6]:


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

Заключение

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

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