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

кандидата технических наук
Козловский, Александр Львович
город
Москва
год
2012
специальность ВАК РФ
05.13.05
цена
450 рублей
Диссертация по информатике, вычислительной технике и управлению на тему «Модели, методы и алгоритмы распределения ресурсов виртуализованных вычислительных кластеров»

Автореферат диссертации по теме "Модели, методы и алгоритмы распределения ресурсов виртуализованных вычислительных кластеров"

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

Козловский Александр Львович

МОДЕЛИ, МЕТОДЫ И АЛГОРИТМЫ РАСПРЕДЕЛЕНИЯ РЕСУРСОВ ВИРТУАЛИЗОВАННЫХ ВЫЧИСЛИТЕЛЬНЫХ КЛАСТЕРОВ

Специальность 05.13.05 «Элементы и устройства вычислительной техники и систем управления»

АВТОРЕФЕРАТ диссертации на соискание ученой степени кандидата технических наук

1 2ЯНВ2012

МОСКВА 2012

005006948

Работа выполнена в ФГУП «Московское орденов Октябрьской Революции и Трудового Красного Знамени конструкторское бюро «Электрон»

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

Доктор технических наук, с.н.с. Гольдин Виктор Вольфович

Официальные оппоненты:

Доктор технических наук, профессор Увайсов Сайгид Увайсович

Кандидат технических наук, доцент Штейнберг Виталий Иосифович

Ведущая организация:

ОАО «Научно-исследовательский институт вычислительных комплексов им. М. А. Карцева»

Защита состоится 16 февраля 2012 года в /О ¡00 часов на заседании диссертационного совета Д 217.047.01 при ФГУП «Научно-исследовательский и экспериментальный институт автомобильной электроники и электрооборудования» по адресу: 105187, г. Москва, ул. Кирпичная д. 39/41.

С диссертацией можно ознакомиться в библиотеке ФГУП «Научно-исследовательский и экспериментальный институт автомобильной электроники и электрооборудования»

Автореферат разослан «—^ » января 2012 г.

Ученый секретарь диссертационного

совета Д 217.047.01 С СШл?" Варламов О. О.

доктор технических наук, с.н.с.

ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ

Актуальность темы.

На сегодняшний день виртуализация серверной инфраструктуры является одной из основных тенденций развития отрасли информационных и коммуникационных технологий. Многие ведущие мировые производители программного обеспечения выпускают на рынок соответствующие продукты. Столь широкое внедрение технологий виртуализации связано с тем, что в последнее время был совершен большой технологический прорыв в области виртуализации операционных систем, открывший огромные возможности и перспективы. Под виртуализацией операционных систем понимают процесс создания на физическом сервере или кластере так называемой виртуальной машины, в которой устанавливается своя собственная операционная система. Виртуальных машин на одной физической платформе может быть множество, при этом каждая виртуальная машина имеет свои собственные виртуальные аппаратные компоненты: память, процессор, жесткий диск, сетевые адаптеры. Эти ресурсы резервируются виртуальной машиной за счет физических ресурсов аппаратного обеспечения сервера или кластера. Такая модель организации вычислительных систем впервые появилась еще в 70-х годах прошлого века в мэйнфреймах корпорации IBM System 360/370, когда требовалось сохранить предыдущие версии экземпляров операционных систем. Но лишь относительно недавно эта технология стала широко доступна для современных серверных систем.

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

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

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

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

Цель и задачи диссертационного исследования.

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

Для реализации поставленной цели необходимо решение следующих задач:

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

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

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

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

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

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

4

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

7. Проведение экспериментальной проверки разработанной методики распределения ресурсов.

Методы исследования.

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

Научная новизна результатов, выносимых на защиту.

При решении задач, поставленных в диссертационной работе, получены следующие новые научные результаты:

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

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

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

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

Результаты, выносимые на защиту:

1. Математические модели и алгоритмы распределения ресурсов виртуализованных вычислительных кластеров.

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

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

Апробация результатов работы. Основные положения диссертационной работы доложены и обсуждены на Международных научно-практических конференциях «Инфо-2010», (г. Сочи, 2010) и «Инфо-2011» (г. Сочи, 2011), а также на 19-ой Международной научно-технической конференции «Современное телевидение и радиоэлектроника» (г. Москва, 2011).

Публикации. По материалам работы опубликовано 5 научных работ, в том числе 2 работы - в журналах из перечня ВАК. Получено свидетельство об официальной регистрации программы для ЭВМ.

Реализация и внедрение результатов работы.

Основные результаты диссертационной работы внедрены в ФГУП «МКБ Электрон», ООО НПЦ «Квадра», а также в учебный процесс Московского государственного текстильного университета имени А.Н.Косыгина по дисциплине «Теоретические основы автоматизированного управления» в лекционном курсе и при выполнении лабораторных работ.

Структура и объем работы. Диссертационная работа состоит из введения, четырех глав с выводами, заключения, списка литературных источников и приложений. Работа изложена на 163 страницах машинописного текста. Список литературных источников включает 76 наименований.

КРАТКОЕ СОДЕРЖАНИЕ РАБОТЫ ВО ВВЕДЕНИИ обосновывается актуальность темы диссертации, охарактеризовано состояние исследуемых вопросов, приводится общая характеристика предметной области, определяются цель и задачи исследования. Сформулированы научная новизна и практическая значимость полученных результатов. Представлены состав и краткое описание работы, приведены сведения об апробации работы и публикациях.

В ПЕРВОЙ ГЛАВЕ осуществлен анализ используемых на практике технологий виртуализации серверной и коммуникационной инфраструктуры, произведено их сравнение. Приведены преимущества и недостатки технологий, описаны предпосылки перехода на виртуализованную инфраструктуру, указаны основные факторы неудачи проектов по виртуализации серверной инфраструктуры.

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

Такое программное обеспечение (ПО) используется во многих системах включая системы семейства Microsoft Windows. Windows Hardware Abstraction Layer (HAL) - типичный пример абстракции. Windows HAL обеспечивает взаимодействие всех драйверов и ПО с аппаратной частью в стандартизированном формате. Это упрощает написание ПО и драйверов, т.к. разработчикам не нужно создавать отдельное ПО для каждой модели компьютера в отдельности. Абстракция в терминах виртуализации - это набор стандартных аппаратных устройств, целиком управляемых программным обеспечением. Таким образом, это ПО, которое выглядит и действует как аппаратное обеспечение. Технология виртуализации позволяет установить операционную систему на аппаратные средства, которые на

7

самом деле не существуют. Достигается возможность с помощью виртуализации разделить ресурсы одного физического сервера для одновременной работы разных вычислительных сред. Причем разные вычислительные среды могут как взаимодействовать, так и быть полностью отделены друг от друга. Кроме того, каждая из вычислительных сред даже не будет подозревать, что она существует в общей виртуальной среде. Такие вычислительные среды принято называть виртуальными машинами (ВМ). Практически всегда каждая такая ВМ содержит в себе некие операционные системы (Linux, Windows, Netware и т.д.), называемые гостевыми операционными системам. Инструкции для ВМ обычно передаются физическому аппаратному обеспечению, что дает возможность вычислительной среде работать быстрее и более эффективно, чем эмуляции, хотя более сложные инструкции должны быть перехвачены и интерпретированы, чтобы обеспечить совместимость и абстракцию с физическим аппаратным обеспечением. На Рисунке 1 представлена схема работы виртуализированного сервера.

Виртуальная машина 00В Виртуальная машина 00S

Отречения еиетша (Umn. WMCDM, SotarU » ТА) Омрароиная еистми (LImb, Window*, 80km ■ ТА)

f Виртуально« аппаратное ] [ о6кп**ни« J f Виртуально* armaptrmc* | [ обеспечение j

Уровень виртуализации Монитор виртуальной машины/гипервиэор

Физическое аппаратное обеспечение Процессор, память, диски, сеть и тд.

Рисунок 1. Виртуализованная архитектура

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

8

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

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

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

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

Принимаются следующие предположения: есть И сервисов/приложений S¡,s2,...SJ,..^S|l(jeJ), которые установлены на т серверах хх,х2,...х1,...хт{1 е/). Различные виды ресурсов, такие как память, процессор и т.д. обозначим как гх,гг,..тк(к е К). Для каждого сервиса должно быть назначено условных единиц ресурса гк. Каждый физический сервер имеет статическую величину производительности ресурса гк. Определим у1 как двоичную переменную, показывающую какие серверы используются, С,. - показывающую приблизительную стоимость сервера, а - указывающую на то, какое приложение работает на конкретном сервере. Принимая во внимание наличие различных типов ресурсов

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

т

/=1

где:

м п

= 1, V/6/; £и,х9 <5лу,, У/е/; \/кеК (1)

¡«1

yl,xlJe{0,l},VieIУjeJ (2)

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

Полученная модель представляет собой потребность в ресурсах единичного сервиса как константу, неизменяемую со временем. Однако на практике характерны ситуации изменения нагрузки (потребности в ресурсах) сервиса во времени. Поэтому необходимо провести корректировку модели. Определим время Т как индексированный набор интервалов ? = {1,...,г}. Циклическую с течением времени нагрузку представим в виде матрицы Ид,, описывающую объем производительности, требуемый сервисом от типа ресурса гк в течение интервала /. В соответствии с этой матрицей набор ограничений может быть задан как:

^ V/ е 1У] е JУt € Т

м

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

минимизировать число физических серверов. Естественно предположить, что

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

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

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

ТРЕТЬЯ ГЛАВА посвящена созданию эффективного алгоритма практической реализации модели, предложенной во второй главе. Рассматривается известная задача о рюкзаке и производится ее модификация под условия модели. Кроме того,

рассматриваются приемы программирования для реализации полученного алгоритма.

На Рисунке 2 изображена блок-схема алгоритма модифицированной задачи о рюкзаке.

Рисунок 2. Блок-схема алгоритма модифицированной задачи о рюкзаке

Алгоритм решения модифицированной задачи о рюкзаке состоит в следующем:

1. Запоминаем производительность текущего сервера. Создаем матрицу А размерности п +1 на (№/2)+!, где п - количество приложений, XV - вес рюкзака, г - это показатель точности алгоритма, то есть с таким шагом будет решаться задача.

2. Заполняем нулями начальную строку матрицы, так как она соответствует случаю, когда доступно 0 приложений.

3. Начинаем цикл по переменной р по количеству приложений от 1 до П .

4. Если приложение уже использовалось (то есть в массиве индикаторов занятости оно помечено как распределенное), то переходим к пункту 3.

5. Начинаем вложенный цикл по переменной ] от 0 до IV с шагом 2. Здесь мы перебираем все возможные размеры рюкзака в пределах от 0 до .

6. Присваиваем элементу А [/?, У/г] значение Такое действие необходимо для того, чтобы на следующем шаге выбрать между этим значением и значением, описанным ниже.

7. Если теперь текущее приложение с номером р помещается в сервер с текущим

объемом и при этом -1, У - Ы'р] +1 > _/] то текущему значению ■^[р.У] присваиваем Л[/7-1,у-ир]+1. Где Щ - это вес текущего приложения с номером р .

8. Таким образом, в пунктах 6 и 7 проверяются следующие данные: если приложение р не попало в сервер веса У , то такой сервер будет укомплектован только из приложений с номерами от 1 до р — 1. Если же в сервер включен предмет р, то объем оставшихся приложений не превышает J ~ Нр, а от добавления приложения р количество приложений увеличивается на 1. Из двух таких вариантов комплектования сервера нужно выбрать наилучший, то есть тот, в котором поместилось больше приложений.

9. Возвращаемся к пункту 5.

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

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

12.Далее отметим приложения из доступного количества р (в начале работы

процедуры их Ь), которые вошли в лучший комплект для сервера с объемом ] (начинаем со значения XV, то есть производительности текущего сервера). Процедура рекурсивная.

13.Если А[р,_/] = 0, значит приложения требуют большей производительности чем возможно, программа ничего не отмечает и переходит к пункту 15, иначе переходит к пункту 13.

14.Если Л[р —= ^[р, значит максимально укомплектовать сервер можно и без приложения р, переходим к пункту 11 с количеством доступных приложений р — 1, иначе переходим к пункту 14.

15.Если же А[р — значит без текущего приложения максимально укомплектовать сервер нельзя, отмечаем это приложение, как использованное и переходим к пункту 11 со значением количества доступных приложений р — 1 и с максимальной производительностью сервера где ~мр - вес отмеченного только что приложения.

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

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

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

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

3. После этого сервер исключается из рассмотрения и помечается, как использованный. Если приложений не осталось (то есть мы разложили их по серверам), переходим к шагу 4, иначе - к шагу 6.

4. Стоимость всех помеченных как занятые на данный момент контейнеры - это стоимость данного варианта размещения. Если она меньше текущей «лучшей» стоимости, то данный набор отмечается как наилучший, стоимость запоминается как наилучшая, а конфигурация размещения сохраняется в специальном массиве.

5. Производится возвращение процедуры решения на шаг назад. То есть мы освобождаем текущий сервер от предполагаемых для него приложений, отмечаем приложения, как неиспользованные, отмечаем сервер, как незанятый и переходим к шагу 1 (не рекурсивно).

6. Если же после размещения в текущий сервер приложения еще остались (то есть не все приложения размещены), то мы должны перейти к шагу 1, при этом оставив все поместившиеся приложения в текущем сервере. Здесь следует отметить, что переход к шагу 1 в этом случае осуществляется рекурсивным обращением к процедуре, то есть в шаге 1 мы снова начнем цикл с 1 и до количества серверов.

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

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

8. Если после завершения процедуры стоимость осталась равной максимальной константе, значит, условия для перехода к шагу 4 не были достигнуты и решения задачи для точного распределения нет. В этом случае переходим к шагу 9, иначе -к шагу 16.

9. Суммируем объемы ресурсов всех приложений, присваиваем это значение переменной

Ю.Начинаем цикл от 1 до количества серверов. 11 .Если сервер занят, переходим к пункту 10 (не рекурсивно).

12.0тмечаем текущий сервер как занятый. Если общая производительность серверов больше И", значит, на них можно распределить все приложения, разбив какие-то из них на части. Переходим к шагу 13. Иначе переходим к шагу 14.

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

14.Переходим к шагу 10 рекурсивно, то есть цикл начинается с 1.

15.0свобождаем текущий сервер. Переходим к шагу 10 (нерекурсивно). 16.Если стоимость равна максимальной константе, значит решения нет. Иначе выводим значение стоимости.

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

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

17

производительности. Для реализации описанного выше алгоритма разработана программа RD-calculator.

В ЧЕТВЕРТОЙ ГЛАВЕ приводятся результаты решения трех различных задач планирования ресурсов виртуализованных кластеров, включающих различное число устройств вычислительной техники, развертываемых в ходе миграции, полученные с помощью разработанной в ходе работы над диссертацией программы RD-calculator. Отмечено, что виртуализации подлежат системы, связанные высокоскоростными подключениями (более 10 мбит\сек). Для подключения к виртуализованным сервисам удаленных подразделений предлагается настраивать защищенные каналы через Интернет (так называемые virtual private network (VPN). Термин «расположенные на одной площадке сервера» характеризует одно и\или несколько серверных расположений, соединенных постоянными (возможно резервированными) высокоскоростными подключениями (например, оптическими магистралями).

Представлена серверная инфраструктура трех предприятий, каждая из которых располагается целиком внутри одной площадки и включает в себя определенное количество серверов. Данные о производительности серверов и требованиям к ресурсам приложений получены с помощью инструментария, описанного в 3 главе диссертации. Такая структура является типовой и широко распространена в Российской Федерации и в мире, например, для решения задач автоматизации управления широкого спектра производственных предприятий среднего и большого размера. Программное обеспечение, установленное на серверы таких компаний, включает в себя: различные учетные системы (1С, Парус, Галактика, Microsoft Navision и др.), электронную почту, системы контроля доступа и безопасности, брандмауэры, антивирусные и многие другие. До появления решений виртуализации основным критерием установки и настройки был критерий «одна система - один физический сервер». Отмечается, что в настоящий момент данный критерий практически утратил свое значение.

Произведен анализ ИТ структуры предприятий и даны предложения о степени виртуализации инфраструктуры, затрагивающие виртуализацию разного количества

18

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

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

27 24 21 18 15 12 9 6 3 О

Рисунок 4. Возможность снижения количества серверов после перехода на новую технологию

Средний уровень загрузки серверов по итогам перехода на новую платформу поднялся с 28% до 85% в зависимости от сценария виртуализации.

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

экспериментальной задачи № 3 стоимость обслуживания сократилась на 68%, что подтверждает правильность разработанных моделей и алгоритмов.

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

В ЗАКЛЮЧЕНИИ приводятся основные выводы и результаты выполненной работы.

В ПРИЛОЖЕНИИ приведен листинг программной реализации алгоритма, полученного в ходе работы над диссертацией.

ОСНОВНЫЕ РЕЗУЛЬТАТЫ РАБОТЫ

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

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

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

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

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

СПИСОК РАБОТ, ОПУБЛИКОВАННЫХ ПО ТЕМЕ ДИССЕРТАЦИИ Публикации в изданиях, рекомендованных ВАК РФ

1. В. В. Гольдин, А. Л. Козловский. Оптимизация распределения ресурсов кластеризованной вычислительной автоматизированной системы управления с учетом надежности ее функционирования. // Оборонная техника. Выпуск 6, 7. М., 2011

2. В. В. Гольдин, А. Л. Козловский. Алгоритм решения задачи загрузки виртуализованного кластера. // Оборонная техника. Выпуск 6, 7. М., 2011

В других изданиях

3. В. В. Гольдин, А. Л. Козловский. Математические модели планирования ресурсов вычислительных кластеров. // Материалы научно-практической конференции «Инфо-2010». М., 2010

4. А. Л. Козловский. Эффективный алгоритм решения модифицированной задачи о рюкзаке. // Материалы научно-практической конференции «Инфо-2011». М., 2011

5. А. Л. Козловский. Методы распределения вычислительных ресурсов виртуализованного кластера. // Труды 19-ой Международной научно-технической конференции «Современное телевидение и радиоэлектроника». М., 2011

6. А. Л. Козловский. Программа распределения ресурсов виртуализованного кластера. Свидетельство об официальной регистрации программы для ЭВМ № 2011617318 от 20 сентября 2011 г.

Подписано в печать: 24.12.11

Объем: 1,5 усл.п.л. Тираж: 100 экз. Заказ № 7032 Отпечатано в типографии «Реглет» 119526, г. Москва, Проспект Вернадского д.39 (495) 363-78-90; www.reglet.ru

Оглавление автор диссертации — кандидата технических наук Козловский, Александр Львович

Введение.

Глава 1. Обзор методов оптимизации и формулировка задачи исследований.

1.1 Обзор существующих технологий виртуализации серверной и коммуникационной инфраструктуры.

1.2 Обзор моделей распределения ресурсов для решения задач планирования.

Выводы по 1 главе.

Глава 2. Математические модели оптимизации загрузки серверов.

2.1. Модели статического распределения серверов.

2.2. Взаимосвязь загрузки серверов с их надежностными показателями'.

2.3 Зависимость работы электронных средств от температуры.

2.4 Математические модели тепловых процессов электро-радиоизделий.

2.5 Оценка вычислительной сложности задачи распределения серверов.

2.6 Оценка значения глобального экстремума оптимизируемой функции загрузки серверов.

Выводы по 2 главе.

Глава 3. Реализация метода оптимизации загрузки серверов.

3.1 Алгоритмы распределения ресурсов.

3.2 Алгоритм распределения ресурсов виртуализованного кластера

3.3 Оценка производительности аппаратной и программной частей системы.

Выводы по 3 главе.

Глава 4. Экспериментальные исследования и внедрение разработанных методов оптимизации загрузки серверов.

4.1 Тестовая задача № 1.

4.2 Тестовая задача №2.

4.3 Задача №3.

Выводы по 4 главе.

Введение 2012 год, диссертация по информатике, вычислительной технике и управлению, Козловский, Александр Львович

Актуальность темы. На сегодняшний день виртуализация серверной инфраструктуры является одной из основных тенденций развития отрасли информационных и коммуникационных технологий. Многие ведущие мировые производители программного обеспечения выпускают на рынок соответствующие продукты. Столь широкое внедрение технологий виртуализации связано с тем, что в последнее время был совершен большой технологический прорыв в области виртуализации операционных систем, открывший огромные возможности и перспективы. Под виртуализацией операционных систем понимают процесс создания на физическом сервере или вычислительном кластере так называемой виртуальной машины, в которой устанавливается своя собственная операционная система. Виртуальных машин на одной физической платформе может быть множество, при этом каждая виртуальная машина имеет свои собственные виртуальные аппаратные компоненты: память, процессор, жесткий диск, сетевые а71аптеры. Эти ресурсы резервируются виртуальной машиной за счет физических ресурсов аппаратного обеспечения сервера или кластера. Такая модель организации вычислительных систем впервые появилась еще в 70-х годах прошлого века в мэйнфреймах корпорации IBM System 360/370, когда требовалось сохранить предыдущие версии экземпляров операционных систем.[2] Но лишь относительно недавно эта технология стала широко доступна для современных серверных систем.

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

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

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

Цель и задачи диссертационного исследования.

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

Для реализации поставленной цели необходимо решение следующих задач:

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

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

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

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

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

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

7. Проведение ряда испытаний разработанной методики распределения ресурсов.

Методы исследования.

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

Научная новизна результатов, выносимых на защиту.

При решении задач, поставленных в диссертационной работе, получены следующие новые научные результаты:

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

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

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

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

Результаты, выносимые на защиту:

1. Математические модели и алгоритмы распределения ресурсов виртуализованных вычислительных кластеров.

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

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

Апробация результатов работы. Основные положения диссертационной работы доложены и обсуждены на Международных научно-практических конференциях «Инфо-2010», (г. Сочи, 2010) и «Инфо-2011» (г. Сочи, 2011), а также на 19-ой Международной научно-технической конференции «Современное телевидение и радиоэлектроника» (г. Москва, 2011).

Публикации. По материалам работы опубликовано 5 научных работ, в том числе 2 работы - в журналах из перечня ВАК. Получено свидетельство об официальной регистрации программы для ЭВМ.

Реализация и внедрение результатов работы.

Основные результаты диссертационной работы внедрены в ФГУП «МКБ Электрон», ООО НПЦ «Квадра», а также в учебный процесс Московского государственного текстильного университета имени А.Н.Косыгина по дисциплине «Теоретические основы автоматизированного управления» в лекционном курсе и при выполнении лабораторных работ.

Заключение диссертация на тему "Модели, методы и алгоритмы распределения ресурсов виртуализованных вычислительных кластеров"

Выводы по 4 главе

1. Приводятся результаты решения трех различных задач планирования ресурсов виртуализованного кластера, развертываемого в ходе миграции, полученные с помощью программы ШЭ-са1си1а1;ог. Показано, что колличество используемых серверов в зависимости от задачи может быть снижено после перехода на технологию виртуализации в среднем на 40%.

2. Произведен анализ ИТ инраструктуры предприятий и предложены различные сценарии создания виртуализованных вычислительных кластеров. Предложенные сценарии позволяют существенно снизить простой вычислительных мощностей.

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

Заключение

В результате выполнения работы:

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

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

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

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

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

Библиография Козловский, Александр Львович, диссертация по теме Элементы и устройства вычислительной техники и систем управления

1. Борисов В. Ф., Лавренов О. П., Конструирование радиоэлектронных средств. М.: Издательство МАИ, 1996

2. Варфоломеев В. А., Лецкий Э. К., Архитектура и технологии IBM eServer zSeries. М.: Интернет-университет информационных технологий, 2005

3. Васин Н. Н., Основы сетевых технологий на базе коммутаторов и маршрутизаторов. М.: Бином, 2011

4. Гольдин В. В., Журавский В. Г., Исследование тепловых характеристик РЭС средствами математического моделирования. М.: "Радио и связь", 2003

5. Гольдин В. В., Козловский А. Л., Алгоритм решения задачи загрузки виртуализованного кластера. // Оборонная техника. Выпуск 6, 7. М., 2011

6. Гольдин В. В., Козловский А. Л., Математические модели планирования ресурсов вычислительных кластеров. // Материалы научно-практической конференции «Инфо-2010». М., 2010

7. Гольдин В. В., Козловский А. Л., Оптимизация распределения ресурсов кластеризованной вычислительной автоматизированной системы управления с учетом надежности ее функционирования. // Оборонная техника. Выпуск 6, 7. М., 2011

8. Грин Д., Математические методы анализа алгоритмов. М.: Мир, 1987

9. Гультяев А. К., Виртуальные машины. Несколько компьютеров в одном. -СПб.: Питер, 2006

10. Гэри М., Вычислительные машины и труднорешаемые задачи. М.: Мир, 1982

11. Жаднов В. В., Сарафанов А. В. Управление качеством при проектировании теплонагруженных радиоэлектронных средств. М.: "Солон-Пресс", 2004

12. Заводны Д., Шварц Б., MySQL. Оптимизация производительности. М.: Символ-Плюс, 2010

13. Залещанский Б. Д., Чернихов Д. Я. Кластерная технология и живучесть глобальных автоматизированных систем. М.: Финансы и статистика, 2005

14. Зорич В. А., Математический анализ. М.: Наука, 1981

15. Кириенко Д. П., Динамическое программирование. Московские учебно-тренировочные сборы по информатике. М.: МЦНМО, 2007

16. Козловский A. JL, Методы распределения вычислительных ресурсов виртуализованного кластера. // Труды 19-ой Международной научно-технической конференции «Современное телевидение и радиоэлектроника». М., 2011

17. Козловский А. Л., Программа распределения ресурсов виртуализованного кластера. Свидетельство об официальной регистрации программы для ЭВМ № 2011617318 от 20 сентября 2011г.

18. Козловский А. Л., Эффективный алгоритм решения модифицированной задачи о рюкзаке. // Материалы научно-практической конференции «Инфо-2011». М., 2011

19. Кормен Т., Лейзерсон Ч., Алгоритмы: построение и анализ. М.: Вильяме, 2005

20. Кофанов Ю. Н., Увайсов С. У., Моделирование тепловых процессов при проектировании, испытаниях и контроле качества радиоэлектронных средств. М.: МИЭМ, 1998

21. Кудинов А. Н., Сорокин М. К., CRM. Российская практика эффективного бизнеса. -М.: 1С-Паблишинг, 2009

22. Кушнир А. Н., Сборка сервера. Руководство администратора. М.: Эксмо, 2007

23. Ларсон Р., Карбон Ж., Платформа виртуализации Hyper-V. Ресурсы Windows Server 2008. М.: Русская Редакция, 2010

24. Левин М. III., Сафонов А. В., Эвристический алгоритм для многокритериальной блочной задачи о рюкзаке. / Искусственный интеллект и принятие решений. М.: 2009 - № 4

25. Лежнев А. В., Динамическое программирование в экономических задачах. -М: Бином, 2010

26. Лоу С., VMware vSphere 4. Полное руководство. М.: Диалектика, 2010

27. Менаске Д., Алмейда В., Производительность Web-служб. Анализ, оценка и планирование. М.: ДиаСофтЮП, 2003

28. Мюллер С., Соупер М., Модернизация и ремонт серверов. М.: Вильяме, 2009

29. Осипов Д. Н., Delphi. Профессиональное программирование. СПб, Символ-Плюс, 2006

30. Пападимитриу X., Комбинаторная оптимизация. Алгоритмы и сложность. -М.: Мир, 1985

31. Питеркин С. В., Оладов Н. А., Точно вовремя для России. Практика применения ERP-систем. М.: Альпина Паблишер, 2010

32. Польман Н., Кразерс Т., Архитектура брандмауэров для сетей предприятия. М.: Вильяме, 2003

33. Рахман П. А., Концептуальный подход к повышению эффективности использования вычислительных ресурсов корпоративных сетей при применении технологии виртуальных машин / Объединенный научный журнал. М.: Тезарус , 2005. - №2.

34. Рачинский Е. С., Анализ производительности распределенных информационных систем. СПб.: 2010

35. Резников Г. В., Расчет и конструирование систем охлаждения ЭВМ. М.: Радио и связь, 1988

36. Речистов Г. С., Моделирование и оптимизация алгоритмов работы кэшей. М.: Lambert Academic Publishing, 2009

37. Риз Д., Облачные вычисления. СПб.: БХВ-Петербург, 2011

38. Росляков А. В., Виртуальные частные сети. Основы построения и применения. М.: Эко-Трендз, 2006

39. Сафонов В. О., Основы современных операционных систем. М.: Бином, 2011

40. Стахнов А. А., Linux. СПб.: БХВ-Петербург, 2011

41. Стоян Ю. Г., Математические модели и оптимизационные методы геометрического проектирования. Киев: Наукова думка, 1986

42. Топорков В. В., Модели распределенных вычислений. М.: Физматлит, 2004

43. Федухин А. В., Ускоренная оценка надежности типовых функциональных блоков средств вычислительной техники. / Математические машины и системы. -М.: 1998 №1.

44. Фингар П., Dot.Cloud: облачные вычисления бизнес-платформа XXI века. - М.: Аквамариновая Книга, 2011

45. Фихтенгольц Г. М., Основы математического анализа, т.2. М.: Наука, 1968

46. Хедли Дж., Нелинейное и динамическое программирование. М.: Мир, 1967

47. Хританков А. С., Оценка производительности распределенных вычислительных комплексов на основе модели эталонных систем. М.: 2010

48. Чекмарев А. Н., Windows Server 2008. Настольная книга администратора. -СПб.: БХВ-Петербург, 2009

49. Шень А., Программирование: теоремы и задачи. М.: МЦНМО, 2004.

50. Шуремов Е. Л., Чистов Д. В., Информационные системы управления предприятиями. М.: Бухгалтерский учет, 2006

51. Юдин Д. Б., Задачи и методы стохастического программирования. М.: Сов. Радио, 1979

52. Amdahl G. M., Validity of the single processor approach to achieving large scale computing capabilities /Proc. AFIPS Conference. vol. 30, April 1967.

53. American Society of Heating, Refrigerating and Air-Conditioning Engineers, Материалы официального Интернет сайта http://www.ashrae.org/

54. Barrett D., Kipper G., Virtualization and Forensics: A Digital Forensic Investigator's Guide to Virtual Environments. Burlington: Syngress, 2010

55. Buttazzo G. C., Hard Real-Time Computing Systems: Predictable Scheduling Algorithms and Applications. New York: Springer, 2005

56. Frahim J., Santos O., Cisco ASA: All-in-One Firewall, IPS, Anti-X, and VPN Adaptive Security Appliance. Indiana: Cisco Press, 2010

57. Golze A., Sarbiewski M., Optimize Quality for Business Outcomes: A Practical Approach to Software Testing. Indiana: Wiley, 2008

58. Goralski W. J., Juniper and Cisco Routing: Policy and Protocols for Multivendor Networks. Indiana: Wiley, 2002

59. Haletky E., VMware ESX and ESXi in the Enterprise: Planning Deployment of Virtualization Servers. Boston: Prentice Hall, 2011

60. Hess K., Newman A., Practical Virtualization Solutions. Boston: Prentice Hall, 2010

61. Hewlett-Packard Corporation, Материалы официального Интернет сайта http://www.hp.com

62. Kelbley J., Sterling M., Windows Server 2008 Hyper-V: Insiders Guide to Microsoft's Hypervisor. Indiana: Wiley, 2011

63. Kim J. H., Green IT: Technologies and Applications. Berlin: Springer, 2011

64. Liu A. X., Firewall Design and Analysis. Singapore: World Scientific Publishing Company, 2010

65. Microsoft Corporation, Материалы официального Интернет сайта http://www.microsoft.com

66. Morro С. G., Performance factors of RAID systems. Munchen: Lambert Academic Publishing, 2010

67. Pinheiro E., Failure Trends in a Large Disk Drive Population. / 5th USENIX Conference on File and Storage Technologies, 2007

68. Poniatowski M., Foundation of Green IT. Boston: Prentice Hall, 2009

69. Roebuck K., Virtualization technology. New York: Emereo Pty Ltd, 2011

70. Sathaye A., Ramani S., Availability Models in Practice. 2006

71. Standard Performance Evaluation Corporation, Материалы официального Интернет сайта http://www.spec.org

72. Symantec Corporation, Опрос по виртуализации и эволюции в сторону облаков. 2011

73. Tadros L., Trefethen S., TestComplete Made Easy. California: Falafel Software Inc, 2011

74. VMware, Inc, Материалы официального Интернет сайта http://www.wmware.com

75. Wolf С., Halter Е. М., Virtualization: From Desktop to the Enterprise. New York: A-Press, 2005

76. Yan Y., Zhang X., An Effective Performance Prediction Model for Parallel Computing on Non-dedicated Heterogeneous Networks of Workstations / Parallel and Distributed Computing. 1996. - vol. 38

77. Текст исходного кода программы RD-calculator1. Unit Matrixbyte;interfacetype

78. MatrixPtr = AMatrixRec; MatrixRec = record MatrixRow : integer; MatrixCol : integer; MatrixArray : pointer; end;

79. MatrixElement = longint; PMatrixElement = AMatrixElement; (* DDV Функция сохраняет матрицу в текстовый файл *) function SaveMatrix(MPtr : MatrixPtr; namefile: string) : string;

80. DDV Функция загружает матрицу из текстового файла *) function LoadMatrix(Var MPtr : MatrixPtr; namefile: string) : boolean;

81. Функция возвращает целочисленную степень *) function IntPower(X,n : integer) : integer;

82. Функция создает квадратную матрицу *) function CreateSquareMatrix(Size : integer) : MatrixPtr;

83. Функция создает прямоугольную матрицу *) function CreateMatrix(Row,Col : integer) : MatrixPtr;

84. Функция дублирует матрицу *)function CloneMatrix(MPtr : MatrixPtr) : MatrixPtr;

85. Функция удаляет матрицу и возвращает TRUE в случае удачи *) function DeleteMatrix(var MPtr : MatrixPtr) : boolean;

86. Функция заполняет матрицу указанным числом *)function FillMatrix(MPtr : MatrixPtr;Value : MatrixElement) : boolean;

87. Функция удаляет матрицу MPtrl и присваивает ей значение MPtr2 *) function AssignMatrix(var MPtrl : MatrixPtr;MPtr2 : MatrixPtr) : MatrixPtr;

88. Функция отображает матрицу на консоль *)function DisplayMatrix(MPtr : MatrixPtr;Int,Frac : integer) : boolean;

89. Функция возвращает TRUE, если матрица lxl *) function IsSingleMatrix(MPtr : MatrixPtr) : boolean;

90. Функция возвращает TRUE, если матрица квадратная *) function IsSquareMatrix(MPtr : MatrixPtr) : boolean;

91. Функция возвращает количество строк матрицы *) function GetMatrixRow(MPtr : MatrixPtr) : integer;

92. Функция возвращает количество столбцов матрицы *) function GetMatrixCol(MPtr : MatrixPtr) : integer;

93. Процедура устанавливает элемент матрицы *)procedure SetMatrixElement(MPtr : MatrixPtr;Row,Col : integer;Value : MatrixElement);

94. Функция возвращает элемент матрицы *)function GetMatrixElement(MPtr : MatrixPtr;Row,Col : integer) : MatrixElement;

95. Процедура устанавливает элемент матрицы. Нумерация строк и столбцов с нуля *)procedure SetMatrixElementO(MPtr : MatrixPtr;Row,Col : integer;Value : MatrixElement);

96. Функция заменяет строку (столбец) матрицы вектором *)function SetVectorIntoMatrix(MPtr,VPtr : MatrixPtr;Pos : integer) : MatrixPtr;

97. Функция транспонирует матрицу *)function TransponeMatrix(MPtr : MatrixPtr) : MatrixPtr;

98. Функция умножает матрицу на число *)function MultipleMatrixOnNumber(MPtr : MatrixPtr;Number : MatrixElement) : MatrixPtr;

99. Функция умножает матрицу на матрицу *)function MultipleMatrixOnMatrix(MPtr 1 ,MPtr2 : MatrixPtr) : MatrixPtr; (* Функция суммирует две матрицы *)function AddMatrixOnMatrix(MPtrl ,MPtr2 : MatrixPtr) : MatrixPtr;

100. Функция вычитает из первой матрицы вторую *)function SubMatrixOnMatrix(MPtr 1 ,MPtr2 : MatrixPtr) : MatrixPtr;

101. Функция выделяет из матрицы подматрицу: начСтрока, начСтлб, числоСтрок, числоСтлб *)function GetSubMatrix(MPtrl: MatrixPtr; RowStart,ColStart,RowCount,ColCount: integer) : MatrixPtr;

102. Функция выделяет из матрицы подматрицу: начСтрока, начСтлб, последняяСтрока, последнийСтлб *)function GetSubMatrixRange(MPtrl: MatrixPtr;RowStart,ColStart,RowEnd,ColEnd integer) : MatrixPtr;

103. Функция вставляет в матрицу подматрицу, замещая элементы матрицы MPtrlэлементами матрицы MPtr2: начСтрока, начСтлб *) function InsertSubMatrix(MPtrl ,SubMPtr2: MatrixPtr;RowStart,ColStart: integer) : Boolean;

104. AssignFile(F, namefile); Rewrite(F); except

105. Showmessage(^aM '+namefile+' не создан'); SaveMatrix:="; exit; end; trywriteln(F ,MatrixRo w); writeln(F,MatrixCol); for i:= 1 to MatrixRow do for j:= 1 to MatrixCol do writeln(F,GetMatrixElement(MPtr,i,j)); finally CloseFile(F); end; end;

106. SaveMatrix := namefile; end; end;

107. DDV Функция загружает матрицу из текстового файла *) function LoadMatrix(var MPtr : MatrixPtr; namefile: string) : boolean; var

108. TempPtr : MatrixPtr; i j : integer; F: TextFile;

109. NewRow, NewCol : integer; TempElement: MatrixElement;begin try

110. AssignFile(F, namefile); Reset(F); except

111. Showmessage(,фaйл '+namefile+' не считан!'); LoadMatrix:= False;exit; end; try

112. Readln(F ,Ne wRo w); Readln(F,NewCol);

113. Функция возвращает целочисленную степень *)function IntPower(X,n : integer) : integer;var1. Res,i : integer;beginif n < 1 then IntPower:= 0 else begin Res:= X;for i:=l to n-1 do Res:= Res*X; IntPower:= Res; end; end;

114. Функция создает квадратную матрицу *) function CreateSquareMatrix(Size : integer) : MatrixPtr; var

115. TempPtr : MatrixPtr; begin TempPtr:= nil;

116. GetMem(TempPtr,SizeOf(MatrixRec)); if TempPtr = nil then begin CreateSquareMatrix:= nil; Exit; end;with TempPtrA do begin MatrixRow:= Size; MatrixCol:= Size; MatrixArray:= nil;

117. GetMem(Matrix Array, S ize * S ize * S izeOf(MatrixElement)); if MatrixArray = nil then begin FreeMem(TempPtr, S izeOf(MatrixRec));

118. CreateSquareMatrix:= nil; Exit; end; end;

119. Fi HMatrix(TempPtr ,0); CreateSquareMatrix:= TempPtr; end;

120. Функция создает прямоугольную матрицу *) function CreateMatrix(Row,Col : integer) : MatrixPtr; var

121. TempPtr : MatrixPtr; begin TempPtr:= nil;

122. GetMem(TempPtr,SizeOf(MatrixRec)); if TempPtr = nil then begin CreateMatrix:= nil; Exit; end;with TempPtrA do begin MatrixRow:= Row; MatrixCol:= Col; MatrixArray:= nil;

123. GetMem(MatrixArray ,Ro w* Col * S izeOf(MatrixElement)); if MatrixArray = nil then begin FreeMem(TempPtr, S izeOf(MatrixRec)); CreateMatrix:= nil; Exit;end; end;

124. FillMatrix(TempPtr,0); CreateMatrix:^ TempPtr; end;

125. Функция удаляет матрицу и возвращает TRUE в случае удачи *)function DeleteMatrix(var MPtr : MatrixPtr) : boolean;beginif MPtr = nil then DeleteMatrix:= FALSE else with MPtrA do begin if MatrixArray <> nil then

126. FreeMem(MatrixArray,MatrixRow*MatrixCol*SizeOf(MatrixElement)); FreeMem(MPtr, S izeOf(MatrixRec)); MPtr:= nil;

127. DeleteMatrix:= TRUE; end; end;

128. Функция дублирует матрицу *)function CloneMatrix(MPtr : MatrixPtr) : MatrixPtr;var

129. TempPtr : MatrixPtr; i,j : integer; beginif MPtr = nil then CloneMatrix:= nil else with MPtrA do begin

130. Функция удаляет матрицу MPtrl и присваивает ей значение MPtr2 *) function AssignMatrix(var MPtrl : MatrixPtr;MPtr2 : MatrixPtr) : MatrixPtr;begin

131. DeleteMatrix(MPtr 1); MPtrl := MPtr2; AssignMatrix:= MPtrl; end;

132. DisplayMatrix:= TRUE; end; end;

133. Функция возвращает TRUE, если матрица lxl *) function IsSingleMatrix(MPtr : MatrixPtr) : boolean; beginif MPtr о nil then with MPtrA do begin if (MatrixRow = 1) and (MatrixCol = 1) then

134. SingleMatrix:= TRUE else IsSingleMatrix:= FALSE; end else IsSingleMatrix:= FALSE; end;

135. Функция возвращает количество строк матрицы *) function GetMatrixRow(MPtr : MatrixPtr) : integer; beginif MPtr <> nil then GetMatrixRow:= MPtrA.MatrixRow else GetMatrixRow:= 0; end;

136. Функция возвращает количество столбцов матрицы * function GetMatrixCol(MPtr : MatrixPtr) : integer; beginif MPtr о nil then GetMatrixCol:= MPtrA.MatrixCol else GetMatrixCol:= 0; end;

137. Процедура устанавливает элемент матрицы *)procedure SetMatrixElement(MPtr : MatrixPtr;Row,Col : integer;Value :1. MatrixElement);var

138. TempPtr : AMatrixElement; begin if MPtr <> nil then if (Row <> 0) or (Col <> 0) then with MPtrA do begin pointer(TempPtr) := pointer(Matrix Array); Inc(TempPtr,MatrixRow* (Col-1 )+Row-1); TempPtrA:= Value; end; end;

139. Функция возвращает элемент матрицы *)function GetMatrixElement(MPtr : MatrixPtr;Row,Col : integer) : MatrixElement; var

140. Процедура устанавливает элемент матрицы. Нумерация строк и столбцов с нуля *)procedure SetMatrixElementO(MPtr : MatrixPtr;Row,Col : integer;Value :1. MatrixElement);begin

141. SetMatrixElement(MPtr,Row+1 ,Col+1,Value); end;

142. DDV Функция возвращает элемент матрицы. Нумерация строк и столбцов с нуля*) ^function GetMatrixElementO(MPtr : MatrixPtr;Row,Col : integer) : MatrixElement; begin

143. GetMatrixElementO := GetMatrixElement(MPtr,Row+l,CoH-l); end;

144. Функция исключает векторы из матрицы *)function ExcludeVectorFromMatrix(MPtr : MatrixPtr;Row,Col : integer) : MatrixPtr; var

145. NewPtr : MatrixPtr; NewRow, NewCol : integer; i,j : integer;

146. DiffRow, DiffCol : integer; beginif MPtr <> nil then with MPtrA do beginif Row = 0 then NewRow:= MatrixRow else NewRow:- MatrixRow-1; if Col = 0 then NewCol:= MatrixCol else NewCol:= MatrixCol-1;

147. ExcludeVectorFromMatrix:= NewPtr; end else ExcludeVectorFromMatrix:= nil; end;

148. Функция заменяет строку(столбец) матрицы вектором *)function SetVectorIntoMatrix(MPtr,VPtr : MatrixPtr;Pos : integer) : MatrixPtr;var

149. SetVectorIntoMatrix:= TempPtr; end else SetVectorIntoMatrix:= nil; end;

150. DeleteMatrix(TempPtr); DetMatrix:= Sum; end else DetMatrix:= GetMatrixElement(MPtr, 1,1); end else DetMatrix:= 0; end;

151. DetTriangularMatrix:= Sum; end else DetTriangularMatrix:= 0; end;

152. Функция возвращает алгебраическое дополнение элемента матрицы *) function AppendixElement(MPtr : MatrixPtr;Row,Col : integer) : MatrixElement; var

153. TempPtr : MatrixPtr; beginif IsSquareMatrix(MPtr) then begin TempPtr: = Exclude VectorFromMatrix(MPtr,Row, Col); if TempPtr = nil then begin AppendixElement:= 0; Exit; end;

154. AppendixElement:= IntPower(-1 ,Row+Col)*DetMatrix(TempPtr); DeleteMatrix(TempPtr); end else AppendixElement:= 0; end;

155. Функция создает матрицу алгебраических дополнений элементов матрицы *)function CreateAppendixMatrix(MPtr : MatrixPtr) : MatrixPtr;var

156. Функция транспонирует матрицу *)function TransponeMatrix(MPtr : MatrixPtr) : MatrixPtr;var

157. Функция умножает матрицу на число *)function MultipleMatrixOnNumber(MPtr : MatrixPtr;Number : MatrixElement) :1. MatrixPtr;var

158. Функция умножает матрицу на матрицу *)function MultipleMatrixOnMatrix(MPtrl ,MPtr2 : MatrixPtr) : MatrixPtr; var

159. Функция суммирует две матрицы *)function AddMatrixOnMatrix(MPtrl,MPtr2 : MatrixPtr) : MatrixPtr; var

160. Функция вычитает из первой матрицы вторую *)function SubMatrixOnMatrix(MPtrl,MPtr2 : MatrixPtr) : MatrixPtr;var

161. Функция выделяет из матрицы подматрицу: начСтрока, начСтлб, числоСтрок, числоСтлб *)function GetSubMatrix(MPtrl: MatrixPtr;RowStart,ColStart,RowCount,ColCount:integer): MatrixPtr;var

162. Функция выделяет из матрицы подматрицу: начСтрока, начСтлб, последняяСтрока, последнийСтлб *)function GetSubMatrixRange(MPtr 1: MatrixPtr;RowStart,ColStart,RowEnd,ColEndinteger) : MatrixPtr;var

163. Функция вставляет в матрицу подматрицу, замещая элементы матрицы MPtrlэлементами матрицы MPtr2: начСтрока, начСтлб *) function InsertSubMatrix(MPtr 1 ,SubMPtr2: MatrixPtr;RowStart,ColStart: integer) : Boolean; var

164. SetMatrixElement(Mptr 1 ,i 1 ,j 1 ,GetMatrixElement(SubMPtr2,i,j)); end;1.sertSubMatrix := true;end;else begin InsertSubMatrix := False; Exit; end;end else InsertSubMatrix := False; end;

165. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,matrixbyteDDV, Buttons, Grids;type

166. Private declarations } public

167. Public declarations } end;var

168. ЬаЬе12.Сарйоп:-Введите объем ресурсов для '+IntToSTR(ii)+'-ro приложения' else begin1.bel2.Caption:-Введите количество серверов'; end;

169. Проректор по учебной работе Московского государственного текстильного университетавнедрения результатов научных исследований в учебный процесс

170. Заведующий кафедрой АСОИУ, профессор У/Ш^ В.И.Монахов1. Утверждаю

171. Генеральный директор, ^яЕешщльный конструктор Электрон»,1. АКТвнедрения результатов диссертационной работы Козловского А.Л.

172. Модели, методы и алгоритмы распределения ресурсов виртуализованных вычислительных кластеров» предъявленной на соискание ученой степени кандидата технических наук

173. Настоящим актом подтверждается, что результаты диссертационной работы Козловского А.Л. использованы в ФГУП «МКБ Электрон» в процессе разработки и внедрения автоматизированных систем управления предприятием.

174. Настоящий акт удостоверяет, что ООО «НПЦ «Квадра» при выполнении работ по проектированию информационных и управляющих систем использует алгоритмы и программы оптимизации загрузки серверного оборудования.