УДК 519.687
Полежаев П.Н.
Оренбургский государственный университет E-mail: [email protected]
МАТЕМАТИЧЕСКАЯ МОДЕЛЬ РАСПРЕДЕЛЕННОГО ВЫЧИСЛИТЕЛЬНОГО ЦЕНТРА ОБРАБОТКИ ДАННЫХ С ПРОГРАММНО-КОНФИГУРИРУЕМЫМИ
СЕТЯМИ ЕГО СЕГМЕНТОВ
В статье представлена математическая модель распределенного вычислительного центра обработки данных. Она является теоретической основой для разрабатываемого центра обработки данных, обеспечивающего эффективное планирования задач за счет их распределения по топологически близким вычислительным узлам и управления потоками данных.
Ключевые слова: распределенный центр обработки данных, облачные вычисления, программно-конфигурируемые сети, OpenFlow.
Множество организаций используют облачные вычислительные центры обработки данных (ЦОД) с целью размещения своих научных и бизнес-приложений, что позволяет им избежать расходов на создание и поддержание функционирования собственных ЦОД. С другой стороны, владельцы облачных вычислительных ЦОД путем консолидации вычислительных ресурсов и систем хранения данных (СХД) способны снизить совокупную стоимость владения ИТ-инфраструктурой за счет обслуживания значительного количества клиентов, а также использования эффективных технических средств.
Существующие облачные решения недостаточно эффективно используют сетевые и вычислительные ресурсы. Это особенно отчетливо видно при исполнении коммуникационно-интенсивных задач, которые простаивают при выполнении синхронных сетевых операций, что в конечном счете ведет к снижению загрузки ресурсов ЦОД.
Данная проблема может быть решена с использованием программно-конфигурируемых сетей (ПКС) [1], [2], в основе которых лежит возможность динамического управления потоками данных в сети путем программной настройки таблицы потоков в коммутаторах OpenFlow. Каждый подобный коммутатор при получении пакета ищет подходящие для него правила в таблице потоков и применяет их к нему, в случае их отсутствия он посылает пакет контроллеру OpenFlow. Контроллер принимает решение о действиях над пакетом и устанавливает соответствующие правила в исходный и, возможно, в другие коммутаторы OpenFlow.
В рамках настоящего исследования программно-конфигурируемые сети позволят учи-
тывать топологию и состояние сети при планировании групп экземпляров виртуальных машин, а также при диспетчеризации вычислительных задач, в случае реализации высокопроизводительных вычислений поверх вычислительного облака. Они также позволят эффективно распределять потоки данных в сети, чтобы минимизировать сетевую конкуренцию.
Для реализации предложенного подхода необходима разработка адекватной математической модели распределенного вычислительного ЦОД с ПКС его сегментов. Ранее предложенный в [3] авторский вариант модели не полностью учитывал виртуализацию вычислительных ресурсов, а также не принимал во внимание возможно организации высокопроизводительных вычислений поверх вычислительного облака. Предложенная в рамках данной статьи модель исправляет приведенные недостатки.
Методы проведения исследования
При разработке модели распределенного вычислительного ЦОД используется системный подход, позволяющий адекватно синтезировать структуру ЦОД, выделить отдельные его компоненты. Для представления всего ЦОД, отдельных его сегментов, облачной системы и грид-си-стемы используются элементы теории графов.
Результаты исследования
В рамках модели облачной вычислительной системы выделены:
1. Структурная модель распределенного ЦОД с ПКС его сегментов.
2. Модель вычислительного облака.
3. Модель грид-системы, функционирующей поверх вычислительного облака.
Полежаев П.Н.
Опишем более подробно каждую из данных моделей.
Структурная модель распределенного ЦОД с ПКС его сегментов может быть определена в виде ориентированного мультиграфа вида: Datacenter = (Segments, Connections(t)), где вершины Segments = {Segmenti, Segment2,..., Segments} -множество отдельных территориально разделенных сегментов (автономных систем) ЦОД, связанных между собой через глобальные сети; дуги Connections(t) = {(Segmenti, Segment j Я - на-
правленные связи между сегментами через глобальные сети. Для соединения сегментов используются граничные шлюзы и протокол BGP.
Сегмент Segmentk є Segments распределенного вычислительного ЦОД может быть описан в форме взвешенного неориентированного мультиграфа:
Segmentk = (Devicesk, Linksk, Flowsk (t)). Его вершины представляют собой разбиение множества
Devicesk = Nodesk и Switchesk и OFSwitchesk и SBalancersk и Storagesk . Здесь Nodesk = {Nodeki,Nodek2,...,Nodeknt} обозначает множество вычислительных узлов, Switchesk = {Switchki, Switchk2,...,Switchkmt} - коммутаторов без поддержки OpenFlow, OFSwitchesk = {OFSwitctibOFSwitctk2,...,OFSwichkfk} - коммутаторов OpenFlow, Controllersk = {Controller,Controller2,...,ControllerZk} - контроллеров OpenFlow, Gateways, = {Gatewayki,Gatewayk2,...,Gatewayw } - граничных шлюзов, SBalancersk = {SBalancerki, SBalancerk2,..., SBalancerkbt} - балансировщиков коммутаторов OpenFlow,
Storagesk = {Storageki, Storagek2,...,Storagekh } - хранилищ данных.
Ребра мультиграфа Linksk = {(pki,pkj)} представляют собой двусторонние сетевые связи между портами устройств сети, причем допускается наличие нескольких параллельных связей между двумя устройствами через разные пары портов.
Flows k (t) = {Flowki (t)} - набор потоков, появившихся в сегменте Segmentk к моменту времени t.
Каждый вычислительный узел Nodeki є Nodesk характеризуется следующими параметрами и динамическими характеристиками:
Nodeki = (Mki, Dkl, Ckl, Ski, Pude, mki (t),
dkl (t), ukl (t), snode (t)), где M ki є N и Dki є N - соответственно размеры его оперативной и дисковой памяти в Мб; Cki є N - количество его вычислительных ядер, Ski є R + - величина их производительности относительно самого медленного ядра во всем распределенном ЦОД; Pj^de = {pj}j - множество сетевых портов; mki(t)є [0,1] и dki (t) є [0,1] - соответственно удельные доли загруженности оперативной и дисковой памяти вычислительного узла в момент времени t; Uki(t) = (Ukii(t),Uki2(t),...,UkiCti (t)) - вектор загруженностей каждого из вычислительных ядер узла в момент времени t, причем u kij (t) є [0,1];
sl°de(t)є {"online',"offline'} - состояние узла в момент времени t.
node _ r,node
Каждый сетевой порт узла pkij є Pki имеет следующие параметры и динамические характеристики:
pj = (iP™de-port, MACn°jde'port, MaxBand™^'port,
Loadl°°de.port (t), Q™^ port (t), s^ port (t)), где MaxBandnode'port є N - максимальная пропускная способность передачи порта в Кбит/с; pod^on и mac1ode.port - соответственно его IP-адрес и MAC-адрес; Load port(t)є [0,1] -удельная загрузка исходящей связи порта в момент времени t; Qnkiport(t) - набор очередей, ассоциированных с портом, и их состояния в момент времени t; sI^port (t) є {"on","off"} - состояние порта в момент времени t.
Заметим, что все вычислительные узлы являются SMP-узлами, состоящими из однотипных многоядерных процессоров.
Динамические характеристики узлов могут собираться через регулярные интервалы времени с помощью протокола SNMP.
Q^pon(t) = {Qnod.pon(t)}e обозначает набор очередей пакетов, ассоциированных с конкретным портом pioj1".port вычислительного узла Nodeki и значением PCP равным е. Они используются, чтобы обеспечить согласно QoS мини-
мальную гарантированную пропускную способность и максимальную гарантированную задержку для заданных сетевых связей.
С каждой подобной очередью Qj.pon (t) связаны следующие параметры и динамические характеристики:
-л node -kije
а^рог' (t) = (MinBandnode-port (t),
, MaxDelaykO}d;port (t)),
где MinBandj.port (t) є N и {0} и MaxDelaiodaport (t) є N и {0} представляют собой соответственно минимальную пропускную способность (в Кб/с) и максимальную задержку для соответствующей очереди порта (в мкс), которые были установлены механизмом обеспечения QoS.
Каждый коммутатор без поддержки OpenFlow Switchki є Switchesk определяется следующими параметрами и динамическими характеристиками:
/ hj л г1 switch г,switch „switch/.w Switchki = (MACki , Pki , ski (t)) .
Здесь MAClwitch - его MAC-адрес
n switch ( switch і
Pw = { p^ } і - множе<
switch
= {pkij } j - множество сетевых портов. Динамическая характеристика sskwitch(t)є {"online","offline"} определяет состояние коммутатора.
Сетевые порты коммутатора без поддержки OpenFlow имеют аналогичные параметры и характеристики, что и вычислительный узел, за исключением двух первых отсутствующих значений IP и MAC-адресов
Каждый OpenFlow-коммутатор OFSwitchki є OFSwitchesk имеет статические параметры и динамические характеристики, описываемые набором:
OFSwitchki = (OFVerki, IPki, MAf^, P°fswitch, Contrki (t), FlowEntrieski (t), sfwitch (t)), где OFVerki є {"1.0", "1 .1", "1.2","1. 3"} - поддерживаемая коммутатором версия протокола OpenFlow;
IPki - его IP для управления;
MACfwUch - его MAC-адрес;
Pfwitch = {pojwitch} j - множество его сетевых портов.
К числу динамических характеристик относятся: Contrki (t) є Controllersk и {0} - контроллер, к которому подключен коммутатор OpenFlow в момент времени t (если коммутатор еще не подключен к контроллеру, то Contrki (t) = 0, FlowEntrieski (t) - состояние его таблицы записей о потоках в момент времени t,
s'oofswitch (t) є {" online","ofline"} - состояние в момент времени t.
Каждая запись о потоке FlowEntrykij є FlowEntrieski (t) имеет вид: FlowEntrykij = (Matchkij, Actionskij, TimeOutf°w'entry,
, Flowkj, Counters^™'entry (t)), где Matchkij представляет собой набор полей для проверки на совпадение с заголовками пакета; Actionskij - набор действий, выполняемых над пакетом, при совпадении его заголовков с Matchkij; TimeOut j*.entry є N и {0} - время, на которое установлена запись о потоке; Flowkij є Flowsk и {0} - поток, к которому относится данное правило OpenFlow (если запись о потоке не относится ни к какому глобальному потоку, являясь потоком внутри коммутатора, то Flowkij =0 ); Counterskiow.entry (t) - статистические счетчики OpenFlow.
Все пакеты, поступающие в коммутатор, сопоставляются со всеми правилами из таблицы потоков. Если подходящее правило найдено (его Matchkij соответствует заголовкам пакета), то выполняются все действия из набора Actionskij и обновляются значения счетчиков Countersf jw.entr (t), в противном случае пакет отправляется контроллеру, ассоциированному с коммутатором OpenFlow. Контроллер ответственен за определения способа обработки пакетов, для которых не нашлось подходящих правил в таблице коммутатора. После принятия решения контроллер добавляет или удаляет правила в таблицах потоков данного и других коммутаторов, подключенных к нему.
Сетевые порты коммутатора OpenFlow имеют аналогичные параметры и характеристики, что и коммутатор без поддержки OpenFlow. Отличие в том, что дополнительно имеется Counter^^port (t) - набор счетчиков OpenFlow уровня очереди пакетов порта, также имеется набор счетчиков Countersf1^'port (t) уровня порта коммутатора OpenFlow. Учитываются все основные счетчики стандарта OpenFlow [2].
Любой контроллер Controllerki є Controllersk сегмента Segmentk обладает следующими параметрами и динамическими характеристиками:
Controllerki = (iPckontroller, p^ontroller, Switchefkontroller (t), s^11^ (t)),
где ip£°ntroller - IP-адрес контроллера;
pcontroller = {poontroller } j - множество его сетевых портов;
Switchescintroller(t) с OFSwitchesk - множество коммутаторов OpenFlow, подключенных к контроллеру в момент времени t;
skontrollur(t) є {"online","offline"} - состояние контроллера в момент времени t.
Множество Switchesck°ntroller (t) в каждом сегменте динамически формируется балансировщиком коммутаторов OpenFlow, находящимся в активном состоянии.
Каждый граничный шлюз Gatewayki є Gatewaysk сегмента Segmentk имеет следующие параметры и динамические характеристики:
Gatewayki = (P'gateway,Preficieski(t),sgateway (t)).
Здесь Pgateway = {pgaateway} j - множество сетевых портов граничного шлюза,
Preficieski (t) = {(IPjfix,Maskkij)} - набор префиксов (IP-адресов и масок) других сегментов ЦОД, известных граничному шлюзу на момент времени t,
sgateway(t) є {"online,"offline"} - состояние граничного шлюза в момент времени t.
Каждому префиксу (IPkprefiX, Maskkij) взаимно-однозначно соответствует дуга, принадлежащая множеству Connections(t) мультиграфа сегментов ЦОД.
Балансировщик коммутаторов OpenFlow SBalancerki є SBalancersk сегмента Segmentk обладает следующими параметрами и динамическими характеристиками:
SBalancerki = (Policy^, p;:ibalancer, sskbalancer (t)), где Policyki є {"RoundRobin","MinLoad"} - политика балансировки коммутаторов OpenFlow, psbalancer = {p sba.ancee } j - множество сетевых
портов балансировщика,
ss,balancer (t) є {" active"," reserved"," failed"} его состояние в момент времени t.
Сетевые хранилища содержат образы экземпляров виртуальных машин, вычислительные задачи грид-системы, базы данных приложений, а также инфраструктурные компоненты вычислительного облака.
Каждое хранилище Storageki є Storagesk сегмента Segmentk имеет следующие параметры и динамические характеристики:
Storage ki = (MaxVolumeki, p^^ ,Volumeki (t),
Rki(t ),Wki(t), ssJrge (t)),
где MaxVolumeki є N - максимальный объем хранилища в килобайтах;
pstorage = {pSjrage } j - множество его сетевых портов;
Volumeki (t) є N и {0} - доступный объем хранилища в килобайтах в момент времени t;
Rki (t) и Wki (t) - соответственно средние установившиеся к моменту времени t скорости чтения и записи данных;
sktorage (t) є{"online","offline"} - состояние хранилища в момент времени t.
Все сетевые порты контроллера, граничного шлюза, балансировщика и хранилища имеют параметры и динамические характеристики, аналогичные параметрам и характеристикам порта вычислительного узла.
На основе структурной модели распределенного вычислительного ЦОД с ПКС его сегментов разработана модель вычислительного облака.
Основное ее отличие от структурной модели заключается в том, что вводятся виртуальные вычислительные узлы, представляющие собой экземпляры виртуальных машин, соединенных на каждом физическом вычислительном узле с помощью виртуального коммутатора. В соответствии с рисунком 1 в структуре физического вычислительного узла выделяются: виртуальные вычислительные узлы, ОС физического вычислительного узла и виртуальный коммутатор.
Изображенные линии обозначают сетевые соединения между одной или более парой портов соответствующих сетевых устройств. Все виртуальные вычислительные узлы подключены с помощью одного или нескольких виртуальных портов к виртуальному коммутатору. Сам физический вычислительный узел с помощью виртуального порта соединен с виртуальным коммутатором. Виртуальный коммутатор подключен к физическим портам физического вычислительного узла, через которые он связан с другими устройствами сети.
Виртуальный коммутатор в зависимости от используемого монитора виртуальных машин может представлять собой как коммутатор без поддержки OpenFlow, так и OpenFbw-ком-мутатор.
Далее по тексту переменные с символом штриха обозначают величины, введенные ранее и дополненные в настоящем пункте.
Модель облачной системы распределенного вычислительного ЦОД с ПКС его сегментов формализована в виде ориентированного муль-тиграфа вида:
Cloud = (Segments', Connections(t), CloudSoftware(t)),
где вершины
Segments' = {Segment[, Segment'2,..., Segment',,} представляют собой дополненные параметрами и динамическими характеристиками обозначения сегментов ЦОД,
Connections(t) = {(Segment, Segmentj)} - направленные связи между сегментами,
CloudSoftware(t) - состояния компонентов программного обеспечения облачной системы.
Сегмент Segment'k є Segments' облачной системы может быть описан в форме взвешенного неориентированного мультиграфа:
Segmentk = (Devicesk, Links'k, Flowsk it)), где вершины представляют собой разбиение множеств Devicesk = Devicesk и VirtualDevicesk . Здесь VirtualDevicesk - виртуальные сетевые устройства, они являются разбиением множеств
VirtualDevicesk = VirtualNodesk и
и VirtualSwitchesk и VirtualOpenFlowSwitchesk , где VirtualNodesk = {VNodeki} - множество виртуальных вычислительных узлов,
VirtualSwitchesk = {VSwitchki} - множество виртуальных коммутаторов без поддержки OpenFlow,
VirtualOpenFlowSwitchesk = {VOFSwitchki }i -множество виртуальных коммутаторов с поддержкой OpenFlow.
Будем условно считать, что каждый физический узел, включая случаи отсутствия назначенных на него экземпляров виртуальных машин или наличия ровного одного экземпляра, содержит ровно один виртуальный коммутатор. Тогда имеет место равенство: \VirtualSwitchesk | + \VirtualOpenFlowSwitchesk \ = = \Nodesk I
Множество сетевых связей сегмента Links'k представляет собой разбиение
Links'k = Linksk и VirtualLinksk , где VirtualLinksk - виртуальные соединения.
Состояние компонентов программного обеспечения облачной системы включает следующие параметры и динамические характеристики:
CloudSoftware(t) = (Users, Flavors, Images, VMGroups(t)), где Users = {User, User2,..., Userv} - множество зарегистрированных пользователей системы;
Flavors = {Flavorx, Flavor2,..., Flavore} - типы виртуальных машин;
Images = {Imagel, Image2,..., Imaged} - набор дисковых образов виртуальных машин;
VMGroups(t) - набор параллельных вычислительных задач, представляющих собой группы экземпляров виртуальных машин, существующих в системе в момент времени t.
Каждый тип виртуальной машины включает в себя следующие параметры:
Flavor = iMfavor, Dflavor, Cfavor).
Здесь Mflavor Є N и Djfavor є N - объемы соответственно оперативной и дисковой памяти вир-
Физический вычислительный узел
Рисунок 1. Структура физического вычислительного узла в модели облачной системы
Полежаев П.Н.
туальной машины в мегабайтах, Clflavor є N -количество вычислительных ядер физического узла, отдаваемых виртуальной машине.
Данная модель позволяет формализовать современные облачные системы, включая систему на базе программного обеспечения OpenStack.
Вычислительная грид-система, функционирующая поверх облачной системы, может быть описана с помощью набора значений вида:
Grid = (Clusters, Dispatcher, distVM, Cloud), где Clusters = {Clusteri,Cluster2,...,Clusterq} - набор виртуальных вычислительных кластеров;
Dispatcher - диспетчер грид-системы; distVM -функция вычисления топологического расстояния между двумя экземплярами виртуальных машин; Cloud - вычислительное облако, поверх которого функционирует грид-система.
Каждый виртуальный вычислительный кластер Cluster представляет собой отдельную группу экземпляров виртуальных машин VMGroup j вычислительного облака Cloud , локализованную в пределах одного его сегмента Ф seg (VMGroupji) = Segmentk. В каждом сегменте вычислительного облака не более одной группы экземпляров виртуальных машин:
У VMGroup L , VMGroup L VMGroup L Ф VMGroup L ^ Ф seg (VMGroup L ) Ф Ф
seg
(VMGroup: ).
Ji2
Каждая группа экземпляров виртуальных машин VMGroup i включает множество виртуальных машин вида
VMsj = {VMM i,VMM 2 ,.",VM jig ji } .
Пусть экземпляр виртуальной машины VM jr имеет тип
Flavorr = (Mfavor,Dfavor,Cfavor) в вычислительном облаке и входит вместе с группой в его сегмент Segmentk , тогда он является виртуальным вычислительным узлом облака и одновременно узлом грид-системы, поэтому он описывается набором значений:
т 7~ал _ /-а л flavor -p. flavor flavor avm r,vm jvm
VM j.r = (M r , Dr , Cr , Skr , pkr , Lkr , .„vm j v^ ^ , vm ґ.\ „vm mkr (t), dkr (t), ukr (t), skr (t)).
Диспетчер включает единую для всей грид-системы очередь задач Q jobs . В нее помещаются вновь поступающие по сети задачи от пользователей, алгоритм планирования обслуживает данную очередь, выбирая подходящие для планирования и диспетчеризации вычислительные задачи в каждом цикле планирования. Сам диспетчер выполняется в отдельной виртуальной машине VM disp облачной системы.
Обозначим в качестве
VMpo°l = U VM jtr
VMGroupj.єашіт - объединение вирту-
VMjir єVMGroupji
альных машин всех виртуальных кластеров грид-системы.
Грид-система Grid может быть представлена в виде неориентированного полносвязного взвешенного графа, в котором вершинами являются элементы множества VM voo° и {VMdisp} -
виртуальные машины пула и диспетчера. Вес каждой дуги (VM',VM"), соединяющей две любые виртуальные машины VM ',VM 'є VM po°l из пула, определяется с помощью функции distVM (VM' ,VM"), которая на основе данных о состоянии сети всего вычислительного облака формирует оценку задержки передачи одного пакета между виртуальными машинами в виртуальной сети грид-системы. Для формирования оценки предполагается использовать метод двумерной диффузионной аппроксимации.
Также, для удобства реализации модели вычислительной грид-системы, функционирующей поверх облачной системы, узел диспетчера может быть включен в виртуальную сеть каждого виртуального кластера.
Обсуждение полученных результатов
Разработанная модель распределенного вычислительного ЦОД позволяет:
1) описывать современные облачные системы, а также грид-системы, функционирующие поверх вычислительных облаков;
2) учитывать наличие ПКС для сегментов распределенного ЦОД;
3) учитывать коммуникационную составляющую и сетевую конкуренцию;
4) формировать виртуальные вычислительные кластеры - однородные или гетерогенные по составу вычислительных узлов, в том числе многопроцессорные;
5) учитывать виртуальную и физическую топологию облачной вычислительной системы.
В дальнейшем данная модель послужит основой для разработки алгоритмов управления распределенным вычислительным ЦОД с ПКС его сегментов.
Выводы
Представлена математическая модель распределенного вычислительного центра обработки данных, включающая в себя структурную модель, модель вычислительного облака и мо-
дель грид-системы, функционирующей поверх вычислительного облака. Модель является теоретической основой для разрабатываемого распределенного центра обработки данных, обеспечивающего эффективное планирование задач, путем их распределения по топологически близким вычислительным узлам, а также за счет управления потоками данных между ними с целью их топологической локализации и снижения сетевой конкуренции.
28.02.2013
Исследования выполнены при поддержке Министерства образования и науки Российской Федерации в рамках проекта № 07.514.11.4153 ФЦП «Исследования и разработки по приоритетным направлениям развития научно-технологического комплекса России на 2007-2013 годы» и РФФИ (проекты №12-07-31089 и №12-07-31022)
Список литературы:
1. OpenFlow - Enabling Innovation in Your Network [Электронный ресурс]. - Режим доступа : http://www.openflow.org/
2. OpenFlow Switch Specification, Version 1.0.0. [Электронный ресурс]. - Режим доступа: http://www.openflow.org/documents/ openflow-spec-v1.0.0.pdf
3. Математические модели облачного вычислительного центра обработки данных с использованием OpenFlow / В. Н. Тарасов [и др.] // Вестник Оренбургского государственного университета. - 2012. - № 9 (145). - С. 150-155.
Сведения об авторе:
Полежаев Петр Николаевич, преподаватель кафедры математического обеспечения информационных систем Оренбургского государственного университета 460018, г. Оренбург, пр-т Победы, 13, тел. (3532) 372534, e-mail: [email protected]
UDC 519.687 Polezhaev P.N.
Orenburg state university, e-mail: [email protected]
MATHEMATICAL MODEL OF DISTRIBUTED COMPUTING DATACENTER BASED ON SOFTWARE DEFINED NETWORKS FOR ITS SEGMENTS
This paper proposes mathematical model of distributed computing datacenter. This model is a theoretical basis for the developed distributed computing datacenter. It provides effective task scheduling by their assignment to topologically closest computing nodes and managing of data flows between them. Key words: distributed datacenter, cloud computing, software defined network, OpenFlow.
Bibliography:
1. OpenFlow - Enabling Innovation in Your Network [Electronic resource]. - Access mode : http://www.openflow.org/
2. OpenFlow Switch Specification, Version 1.0.0. [Electronic resource]. - Access mode : http://www.openflow.org/documents/ openflow-spec-v1.0.0.pdf
3. Mathematical models of cloud computing datacenter based on OpenFlow / V. N. Tarasov [et al.] // Vestnik OSU. - 2012. -№ 9(45). - P. 150-155.