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

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

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

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

Добавлен: 25.04.2023

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

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

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

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

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

Далее рассмотрим преимущества использования виртуальных машин.

Какими бы техническими "изюминками" не обладало решение, его эффективность и целесообразность использования определяются обеспечиваемым им функционалом и преимуществами, по сравнению с иными способами решения тех же задач. Рассмотрим основные преимущества виртуализации [13]:

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

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

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

2.3 Семейства решений виртуализации

Проведем краткую характеристику наиболее распространенных линеек разработок виртуальных машин.

1. Microsoft – является относительно новым игроком, вышедшим на рынок после приобретения ПО Virtual PC разработчика Connectix. В настоящее время данное решение поставляется в двух вариантах, которые значительно отличаются по реализации для Windows и Mac. Соответственно, первая из них является эмулятором периферийных устройств, в то время как вторая представляет собой полный эмулятор вследствие того, что значительная часть ее пользователей все еще использует PowerPC. Обе системы поддерживают работу эмулируемых устройств, которые имеют реально существующие аналоги, в комплект входят специальные упрощенные версии драйверов для ОС от Microsoft. Таким образом, применение Virtual PC рассчитано на конечных пользователей, которым, по некоторым причинам, необходимо работать с несколькими одновременно запущенными ОС без особых требований к быстродействию [15].

Вторым продуктом компании является ПО Virtual Server – в соответствии со своим наименованием он позиционируется как технология виртуализации серверных операционных систем. По принципам работы он схож с Virtual PC для Windows, при этом имеются значительные улучшения в параметрах производительности, что делает возможным использование данного продукта в сетевых средах. Способствует этому и характерная методика управления – с использованием Web-интерфейса, вплоть до возможности подключения к терминалу виртуальной машины посредством интегрированного ActiveX-компонента. В комплекте поставки имеются также специальные, «облегченные» клиенты, обеспечивающие только возможность подсоединения к виртуальным машинам, без возможности их конфигурации либо в режиме просмотра статистики. К гостевым ОС, работающим с данной технологией, в настоящее время относятся Windows и Linux, причем полноценная поддержка работы с Linux реализована совсем недавно, соответственно, прежде всего предполагается поставка оптимизированных драйверов. Однако в силу того, что Virtual Server позволяет эмулировать стандартное оборудование (Ethernet-контроллеры DEC Tulip, «безымянные» IDE, SCSI-адаптеры от Adaptec), то в системе вполне возможным является запуск, например, FreeBSD, хотя в сопроводительной документации сказано о возможности потерь в быстродействии при использовании данной ОС.


2. VMware является старым игроком на рынке технологий виртуализации. Компанией предлагается значительно более широкий спектр ПО и в настоящее время в данном сегменте VMware является неоспоримым лидером. Тем не менее, напряженность в конкурентной борьбе свидетельствует о наличии нескольких фактов, в частности выпуска бесплатного ПО VMware Player и обещание реализовать бесплатную версию VMware Server, служащий для замены VMware GSX Server. С точки зрения архитектуры все данные продукты функционально схожи с напоминают конкурирующими разработками Microsoft и в целом обеспечивают схожие параметры производительности (при проведении различных тестов зачастую показываются полностью противоположные результаты) и функциональности, при этом каждое решение имеет как достоинства, так и недостатки. Естественно, достоинством VMware является возможность полноценной работы в среде Linux.

При этом, в линейке ПО от VMWare реализовано ПО VMware ESX Server, представляющее собой полноценный hypervisor. Данное решение позиционируется для использования в корпоративных средах для решения задач, требовательных к вычислительным ресурсам, имеется поддержка ряда технологий, отсутствующих у конкурирующих разработок других компаний (например, работа с виртуальной многопроцессорностью). Также имеется ряд сопутствующих продуктов для администрирования виртуальных систем. Таким образом, на настоящий момент данное решение является оптимальным по соотношению цены, качества и производительности.

Также, в продуктах VMware значительное внимание уделяется некритичным, но довольно полезным функциям, к которым можно отнести: откат состояния виртуальных дисков, наличие средств миграции и др., – способным существенно упростить процессы по развертыванию и обслуживанию решений [14].

3. Xen – разработка для платформы x86, способная работать в различных гостевых ОС (Linux, NetBSD/FreeBSD, Plan 9, Minix, Solaris). В данной системе используются технологии, получившие название «паравиртуализации» и включающая hypervisor и специальные программные прослойки, эмулирующие аппаратное обеспечение. Однако для обеспечения необходимых параметров взаимодействия с hypervisor и необходимых характеристик производительности указанный подход предполагает необходимость модификации кода в гостевых ОС, что, очевидно, закрывает возможность использования Windows. В то же время текущая версия Xen предоставляет возможность использования ОС от Microsoft – благодаря использованию технологий аппаратной поддержки технологий виртуализации от Intel и наличию специальных системных драйверов. Вообще на фоне остальных решений в области виртуализации для x86 подходы от Xen предполагают оптимальное обеспечение самых современных возможностей, в том числе многопроцессорности и 64-разрядности виртуальной среды [12].


4. Семейство решений от компании Parallels.

Данное ПО используется для решения задач пользовательского класса, аналогичных решениям от VMware Workstation и Microsoft Virtual PC. В настоящее время используется решение Parallels Workstation для Mac OS X/Intel. Данное ПО представляет интерес в том плане, что обеспечивает на современных компьютерах оптимальные параметры производительности, чем в обычной системе от Windows, организованной с помощью Boot Camp. Производительность обеспечивается особенностями реализации дисковых подсистем в ПО Parallels Workstation.

При этом, существуют затруднения при осуществлении из виртуальных сред прямого доступа к 3D-функциям видеокарты, в качестве исключения можно отметить экспериментальную поддержку Direct3D в ПО VMware Workstation, однако реализация данных функций проведена при многочисленных ограничениях и без каких-либо возможностей по параметрам быстродействия, что делает ее использование неэффективным [11].

2.4 Виртуализация на уровне операционной системы

Виртуализация на уровне операционной системы (контейнерная виртуализация) — технология виртуализации, при которой ядром операционной системы поддерживается несколько изолированных экземпляров пользовательских пространств, вместо одного. Данные экземпляры (зачастую называемые контейнерами или зонами) с пользовательской точки зрения являются полностью идентичными реальным серверам. Для систем на основе UNIX, данная технология может быть рассмотрена как улучшение реализации механизмов chroot. Ядром обеспечивается полная изолированность контейнеров, поэтому экземпляры ПО из разных контейнеров не могут воздействовать друг на друга.

Основным отличием виртуализации на уровне операционной системы является то, что проводится виртуализация не компьютера и не операционной системы, а пользовательского окружения ОС. Данные экземпляры пользовательского окружения, называемые также контейнерами, являются полностью идентичными основному серверу и используют общее ядро операционной системы [12].

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


Одним из наиболее популярных решений для данного типа виртуализации является OpenVZ и коммерческое ПО на его базе Virtuozzo, в настоящее время приобретает известность разрабатываемый при поддержке IBM LXC (Linux Containers), на аналогичных принципах работают FreeBSD Jail и Solaris Containers/Zones. Среди решений подобного типа выделяют также [10]:

  • Linux-VServer
  • FreeVPS
  • OpenVZ
  • iCore Virtual Accounts

Технологии работы с контейнерами рассмотрены в следующем разделе.

3. Технология контейнеров

3.1. История и определения

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

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

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

В то же самое время группой разработчиков проводились эксперименты с Linux и концепциями, основаннями на механизмах cgroups — так называемых контейнерах процессов. Компания Google использовала этих специалистов для разработки системы контейнеризации своих ЦОД в цельях решения проблемы эластичности при масштабировании. В январе 2008 года были завершены работы по перенесению в ядро Linux части технологии cgroup, используемой Google,. В 2011 году компании Google и Parallels пришли к соглашению о сотрудничестве в области контейнерных технологий. Результатом стал выпуск ядра Linux версии 3.8, представленный в 2013 году. В данном релизе было проведено объединение всех актуальных на тот момент контейнерных технологий для Linux, что позволило избежать повторения ошибок при разделении ядер, как в случае с KVM и Xen [3].