Балансирање оптерећења у Опенстацк-у

У великим системима у облаку, питање аутоматског балансирања или нивелисања оптерећења рачунарских ресурса је посебно акутно. Тионик (програмер и оператер услуга у облаку, део групе компанија Ростелецом) такође се побринуо за ово питање.

А пошто је наша главна развојна платформа Опенстацк, а ми смо, као и сви људи, лењи, одлучено је да изаберемо неки готов модул који је већ укључен у платформу. Наш избор је пао на Ватцхер, који смо одлучили да искористимо за своје потребе.
Балансирање оптерећења у Опенстацк-у
Прво, погледајмо термине и дефиниције.

Термини и дефиниције

Циљ је човеку читљив, видљив и мерљив крајњи резултат који се мора постићи. Постоји једна или више стратегија за постизање сваког циља. Стратегија је имплементација алгоритма који је способан да пронађе решење за дати циљ.

поступак је елементарни задатак који мења тренутно стање циљног управљаног ресурса ОпенСтацк кластера, као што је: миграција виртуелне машине (миграција), промена стања напајања чвора (цханге_ноде_повер_стате), промена стања сервиса нова (цханге_нова_сервице_стате ), промена укуса (промена величине), регистровање НОП порука (ноп), недостатак акције током одређеног временског периода - пауза (спавање), пренос диска (волуме_миграте).

План акције - одређени ток радњи које се спроводе одређеним редоследом за постизање одређеног циља. Акциони план такође садржи измерене глобалне перформансе са скупом индикатора учинка. Акциони план генерише Ватцхер након успешне ревизије, услед чега коришћена стратегија проналази решење за постизање циља. Акциони план се састоји од листе узастопних акција.

Ревизија је захтев за оптимизацију кластера. Оптимизација се врши да би се постигао један Циљ у датом кластеру. За сваку успешну ревизију, Ватцхер генерише акциони план.

Обим ревизије је скуп ресурса у оквиру којих се врши ревизија (зона(е) доступности), агрегатори чворова, појединачни рачунарски чворови или чворови за складиштење, итд.). Обим ревизије је дефинисан у сваком шаблону. Ако обим ревизије није наведен, ревидира се цео кластер.

Аудит Темплате — сачувани скуп подешавања за покретање ревизије. Предлошци су потребни за покретање ревизије више пута са истим подешавањима. Шаблон обавезно мора да садржи сврху ревизије; ако стратегије нису наведене, тада се бирају најпогодније постојеће стратегије.

Цлустер је колекција физичких машина које обезбеђују рачунарске, складишне и мрежне ресурсе и којима управља исти ОпенСтацк управљачки чвор.

Модел података кластера (ЦДМ) је логичан приказ тренутног стања и топологије ресурса којима управља кластер.

Индикатор ефикасности - индикатор који показује како се решење креирано коришћењем ове стратегије изводи. Индикатори учинка су специфични за одређени циљ и обично се користе за израчунавање глобалне ефикасности резултирајућег акционог плана.

Спецификација ефикасности је скуп специфичних карактеристика повезаних са сваким Циљем који дефинише различите индикаторе учинка које стратегија за постизање одговарајућег Циља мора постићи у свом решењу. Заиста, свако решење предложено стратегијом биће проверено у односу на спецификацију пре израчунавања његове глобалне ефикасности.

Сцоринг Енгине је извршна датотека која има добро дефинисане улазе, добро дефинисане излазе и обавља чисто математички задатак. На овај начин, прорачун је независан од окружења у којем се изводи—даће исти резултат било где.

Ватцхер Планнер - део мотора за доношење одлука Ватцхер-а. Овај модул преузима скуп акција које генерише стратегија и креира план тока посла који специфицира како да се закажу ове различите акције на време и за сваку акцију, који су предуслови.

Циљеви и стратегије посматрача

Циљ
стратегија

Думми гоал
Думми Стратеги 

Лажна стратегија која користи узорке машина за бодовање

Лажна стратегија са променом величине

Енерги Савинг
Стратегија уштеде енергије

Консолидација сервера
Основна консолидација ванмрежног сервера

Стратегија консолидације радног оптерећења ВМ

Балансирање радног оптерећења
Стратегија миграције биланса посла

Стратегија равнотеже складишног капацитета

Стабилизација радног оптерећења

Ноиси Неигхбор
Ноиси Неигхбор

Тхермал Оптимизатион
Стратегија заснована на излазној температури

Оптимизација протока ваздуха
Униформна стратегија миграције протока ваздуха

Одржавање хардвера
Миграција зона

некласификован
Ацтуатор

Думми гоал — резервисани циљ који се користи у сврхе тестирања.

Повезане стратегије: лажна стратегија, лажна стратегија која користи узорке машина за бодовање и лажна стратегија са променом величине. Думми стратегија је лажна стратегија која се користи за тестирање интеграције кроз Темпест. Ова стратегија не пружа никакву корисну оптимизацију, њена једина сврха је коришћење Темпест тестова.

Лажна стратегија која користи моделе за оцењивање - стратегија је слична претходној, једина разлика је у употреби узорка „машине за бодовање“ која врши прорачуне користећи методе машинског учења.

Думми стратегија са променом величине - стратегија је слична претходној, једина разлика је коришћење промене укуса (миграција и промена величине).

Не користи се у производњи.

Енерги Савинг — минимизирати потрошњу енергије. Стратегија уштеде енергије овог циља, заједно са стратегијом консолидације радног оптерећења ВМ (консолидација сервера), способна је за функције динамичког управљања напајањем (ДПМ) које штеде енергију динамичком консолидацијом радних оптерећења чак и током периода ниског коришћења ресурса: виртуелне машине се премештају на мање чворова , а непотребни чворови су онемогућени. Након консолидације, стратегија нуди одлуку о укључивању/искључењу чворова у складу са наведеним параметрима: “мин_фрее_хостс_нум” - број слободних омогућених чворова који чекају на учитавање, и "фрее_усед_перцент" - проценат бесплатних омогућених хостова према број чворова које заузимају машине. Мора постојати да би стратегија функционисала омогућио и конфигурисао Ирониц за управљање циклусом напајања на чворовима.

Параметри стратегије

параметар
Тип
подразумевано
описание

фрее_усед_перцент
Број
10.0
однос броја слободних рачунарских чворова према броју рачунарских чворова са виртуелним машинама

мин_фрее_хостс_нум
Инт
1
минимални број слободних рачунарских чворова

Облак мора имати најмање два чвора. Метод који се користи је промена стања напајања чвора (цханге_ноде_повер_стате). Стратегија не захтева прикупљање метрике.

Консолидација сервера - минимизирајте број рачунарских чворова (консолидација). Има две стратегије: основну консолидацију сервера ван мреже и стратегију консолидације радног оптерећења ВМ.

Основна стратегија ванмрежне консолидације сервера минимизира укупан број коришћених сервера и такође минимизира број миграција.

Основна стратегија захтева следеће метрике:

метрике
услуга
додаци
коментар

цомпуте.ноде.цпу.перцент
обилометар
ниједан
 

цпу_утил
обилометар
ниједан
 

Параметри стратегије: мигратион_аттемптс - број комбинација за тражење потенцијалних кандидата за гашење (подразумевано, 0, без ограничења), период - временски интервал у секундама за добијање статичког обједињавања из извора метричких података (подразумевано, 700).

Коришћене методе: миграција, промена стања сервиса нова (цханге_нова_сервице_стате).

Стратегија консолидације радног оптерећења ВМ-а заснована је на хеуристици првог прилагођавања која се фокусира на измерено оптерећење ЦПУ-а и покушава да минимизира чворове који имају превише или премало оптерећење с обзиром на ограничења капацитета ресурса. Ова стратегија пружа решење које резултира ефикаснијим коришћењем ресурса кластера користећи следећа четири корака:

  1. Фаза растерећења – обрада прекомерно искоришћених ресурса;
  2. Фаза консолидације - руковање недовољно искоришћеним ресурсима;
  3. Оптимизација решења – смањење броја миграција;
  4. Онемогућавање неискоришћених рачунарских чворова.

Стратегија захтева следеће метрике:

метрике
услуга
додаци
коментар

меморија
обилометар
ниједан
 

диск.роот.сизе
обилометар
ниједан
 

Следећи показатељи су опциони, али ће побољшати тачност стратегије ако су доступни:

метрике
услуга
додаци
коментар

памћење.становник
обилометар
ниједан
 

цпу_утил
обилометар
ниједан
 

Параметри стратегије: период — временски интервал у секундама за добијање статичког агрегирања из извора метричких података (подразумевано, 3600).

Користи исте методе као и претходна стратегија. Детаљније овде.

Балансирање радног оптерећења — уравнотежите оптерећење између рачунарских чворова. Циљ има три стратегије: Стратегија миграције равнотеже радног оптерећења, стабилизација радног оптерећења, Стратегија равнотеже капацитета складиштења.

Стратегија миграције равнотеже радног оптерећења покреће миграције виртуелне машине на основу радног оптерећења виртуелне машине хоста. Одлука о миграцији се доноси кад год проценат искоришћености ЦПУ-а или РАМ-а чвора премаши наведени праг. У овом случају, премештена виртуелна машина треба да приближи чвор просечном радном оптерећењу свих чворова.

Захтеви

  • Коришћење физичких процесора;
  • Најмање два физичка рачунарска чвора;
  • Инсталирао је и конфигурисао компоненту Цеилометер - цеилометер-агент-цомпуте, која ради на сваком рачунарском чвору, и Цеилометер АПИ, као и прикупљање следећих метрика:

метрике
услуга
додаци
коментар

цпу_утил
обилометар
ниједан
 

памћење.становник
обилометар
ниједан
 

Параметри стратегије:

параметар
Тип
подразумевано
описание

метрике
низ
'цпу_утил'
Основне метрике су: 'цпу_утил', 'мемори.ресидент'.

праг
Број
25.0
Праг радног оптерећења за миграцију.

период
Број
300
Кумулативни временски период Цеилометар.

Метод који се користи је миграција.

Стабилизација радног оптерећења је стратегија која има за циљ стабилизацију радног оптерећења помоћу миграције уживо. Стратегија се заснива на алгоритму стандардне девијације и одређује да ли постоји загушење у кластеру и реагује на то покретањем миграције машине како би се кластер стабилизовао.

Захтеви

  • Коришћење физичких процесора;
  • Најмање два физичка рачунарска чвора;
  • Инсталирао је и конфигурисао компоненту Цеилометер - цеилометер-агент-цомпуте, која ради на сваком рачунарском чвору, и Цеилометер АПИ, као и прикупљање следећих метрика:

метрике
услуга
додаци
коментар

цпу_утил
обилометар
ниједан
 

памћење.становник
обилометар
ниједан
 

Стратегија равнотеже капацитета складишта (стратегија која се примењује почевши од Куеенс-а) - стратегија преноси дискове у зависности од оптерећења на базенима Циндер. Одлука о трансферу се доноси кад год стопа искоришћења фонда пређе одређени праг. Диск који се премешта би требало да приближи базен просечном оптерећењу свих Циндер базена.

Захтеви и ограничења

  • Најмање два пепела базена;
  • Могућност миграције диска.
  • Модел података кластера - Колектор модела података кластера Циндер.

Параметри стратегије:

параметар
Тип
подразумевано
описание

волуме_тхресхолд
Број
80.0
Гранична вредност дискова за балансирање волумена.

Метод који се користи је миграција диска (волуме_миграте).

Ноиси Неигхбор – Идентификујте и мигрирајте „бучног суседа“ – виртуелну машину ниског приоритета која негативно утиче на перформансе виртуелне машине високог приоритета у смислу ИПЦ-а прекомерном употребом кеша последњег нивоа. Сопствена стратегија: Ноиси Неигхбор (коришћени параметар стратегије је цацхе_тхресхолд (подразумевана вредност је 35), када перформансе падну на наведену вредност, почиње миграција. Да би стратегија функционисала, омогућено ЛЛЦ (Ласт Левел Цацхе) метрика, најновији Интел сервер са ЦМТ подршком, као и прикупљање следећих показатеља:

метрике
услуга
додаци
коментар

цпу_л3_цацхе
обилометар
ниједан
Интел је потребан ЦМТ.

Модел података кластера (подразумевано): Нова сакупљач модела података кластера. Метод који се користи је миграција.

Рад са овим циљем преко контролне табле није у потпуности примењен у Квинсу.

Тхермал Оптимизатион — оптимизовати температурни режим. Температура излазног (излазног ваздуха) је један од важних система термалне телеметрије за мерење статуса термичког/радног оптерећења сервера. Циљ има једну стратегију, стратегију засновану на излазној температури, која одлучује да пренесе радна оптерећења на термички повољне домаћине (најнижа излазна температура) када излазна температура изворних домаћина достигне праг који се може конфигурисати.

Да би стратегија функционисала, потребан вам је сервер са инсталираним и конфигурисаним Интел Повер Ноде Манагер-ом 3.0 или новији, као и прикупљање следећих показатеља:

метрике
услуга
додаци
коментар

хардваре.ипми.ноде.оутлет_температуре
обилометар
ИПМИ
 

Параметри стратегије:

параметар
Тип
подразумевано
описание

праг
Број
35.0
Температурни праг за миграцију.

период
Број
30
Временски интервал, у секундама, за добијање статистичке агрегације из извора метричких података.

Метод који се користи је миграција.

Оптимизација протока ваздуха — оптимизовати режим вентилације. Сопствена стратегија - Униформ Аирфлов користећи миграцију уживо. Стратегија покреће миграцију виртуелне машине кад год проток ваздуха из вентилатора сервера пређе наведени праг.

Да би стратегија функционисала потребно вам је:

  • Хардвер: рачунарски чворови < подржавају НодеМанагер 3.0;
  • Најмање два рачунарска чвора;
  • Цеилометер-агент-цомпуте и Цеилометер АПИ компонента инсталирана и конфигурисана на сваком рачунарском чвору, која може успешно извести метрике као што су проток ваздуха, снага система, улазна температура:

метрике
услуга
додаци
коментар

хардваре.ипми.ноде.аирфлов
обилометар
ИПМИ
 

хардвер.ипми.ноде.температуре
обилометар
ИПМИ
 

хардвер.ипми.ноде.повер
обилометар
ИПМИ
 

Да би стратегија функционисала, потребан вам је сервер са инсталираним и конфигурисаним Интел Повер Ноде Манагер 3.0 или новијим верзијама.

Ограничења: Концепт није намењен за производњу.

Предложено је да се овај алгоритам користи уз континуиране ревизије, пошто је планирано да се мигрира само једна виртуелна машина по итерацији.

Могуће су живе миграције.

Параметри стратегије:

параметар
Тип
подразумевано
описание

тхресхолд_аирфлов
Број
400.0
Праг протока ваздуха за јединицу миграције је 0.1 ЦФМ

тхресхолд_инлет_т
Број
28.0
Праг улазне температуре за одлуку о миграцији

тхресхолд_повер
Број
350.0
Праг снаге система за одлуку о миграцији

период
Број
30
Временски интервал, у секундама, за добијање статистичке агрегације из извора метричких података.

Метод који се користи је миграција.

Хардваре Маинтенанце — одржавање хардвера. Стратегија везана за овај циљ је миграција зона. Стратегија је алат за ефикасну аутоматску и минималну миграцију виртуелних машина и дискова у случају потребе за одржавањем хардвера. Стратегија гради план акције у складу са тежинама: скуп акција који има већу тежину биће планиран пре других. Постоје две опције конфигурације: ацтион_веигхтс и паралелизација.

Ограничења: потребно је конфигурисати тежине акције и паралелизацију.

Параметри стратегије:

параметар
Тип
подразумевано
описание

цомпуте_нодес
поредак
ниједан
Израчунајте чворове за миграцију.

стораге_поолс
поредак
ниједан
Чворови за складиштење за миграцију.

параллел_тотал
цео број
6
Укупан број активности које се морају извршавати паралелно.

паралелни_по_чвору
цео број
2
Број радњи које се обављају паралелно за сваки рачунарски чвор.

параллел_пер_поол
цео број
2
Број радњи које се обављају паралелно за свако складиште за складиштење.

приоритет
објекат
ниједан
Листа приоритета за виртуелне машине и дискове.

витх_аттацхед_волуме
боолеан
Лажан
Нетачно—виртуелне машине ће бити мигриране након што сви дискови буду мигрирани. Тачно—виртуелне машине ће бити мигриране након што се мигрирају сви повезани дискови.

Елементи низа рачунарских чворова:

параметар
Тип
подразумевано
описание

срц_ноде
низ
ниједан
Рачунарски чвор са којег се мигрирају виртуелне машине (обавезно).

дст_ноде
низ
ниједан
Израчунајте чвор на који виртуелне машине мигрирају.

Елементи низа чворова за складиштење:

параметар
Тип
подразумевано
описание

срц_поол
низ
ниједан
Складиштење из којег се мигрирају дискови (обавезно).

дст_поол
низ
ниједан
Складиште меморије у које се мигрирају дискови.

срц_типе
низ
ниједан
Оригинални тип диска (обавезно).

дст_типе
низ
ниједан
Резултујући тип диска (обавезно).

Елементи приоритета објекта:

параметар
Тип
подразумевано
описание

пројекат
поредак
ниједан
Називи пројеката.

цомпуте_ноде
поредак
ниједан
Израчунајте имена чворова.

стораге_поол
поредак
ниједан
Имена складишног простора.

рачунати
енум
ниједан
Параметри виртуелне машине [„вцпу_нум“, „мем_сизе“, „диск_сизе“, „цреатед_ат“].

складиштење
енум
ниједан
Параметри диска [„величина“, „цреатед_ат“].

Коришћене методе су миграција виртуелних машина, миграција диска.

некласификован - помоћни циљ који се користи за олакшавање процеса развоја стратегије. Не садржи спецификације и може се користити кад год стратегија још није повезана са постојећим циљем. Овај циљ се такође може користити као прелазна тачка. Сродна стратегија за овај циљ је Ацтуатор.   

Стварање новог циља

Ватцхер Децисион Енгине има интерфејс додатка „спољни циљ“ који омогућава интеграцију спољног циља који се може постићи коришћењем стратегије.

Пре него што креирате нови циљ, требало би да се уверите да ниједан постојећи циљ не испуњава ваше потребе.

Прављење новог додатка

Да бисте креирали нови циљ, морате: проширити циљну класу, имплементирати метод класе гет_наме() да бисте вратили јединствени ИД новог циља који желите да креирате. Овај јединствени идентификатор мора да се подудара са именом улазне тачке које декларишете касније.

Затим морате имплементирати метод класе гет_дисплаи_наме() да бисте вратили преведено име за приказ циља који желите да креирате (немојте да користите променљиву да бисте вратили преведени стринг како би га алатка за превођење аутоматски прикупила.).

Имплементирајте метод класе гет_транслатабле_дисплаи_наме()да бисте вратили кључ за превод (заправо енглеско име за приказ) вашег новог циља. Повратна вредност мора да одговара стрингу преведеном у гет_дисплаи_наме().

Примените његов метод гет_еффицаци_специфицатион()да вратите спецификацију ефикасности за ваш циљ. Метод гет_еффицаци_специфицатион() враћа инстанцу Унцлассифиед() коју обезбеђује Ватцхер. Ова спецификација перформанси је корисна у процесу развоја вашег циља јер одговара празној спецификацији.

Прочитајте више овде

Архитектура посматрача (више детаља) овде).

Балансирање оптерећења у Опенстацк-у

Компоненте

Балансирање оптерећења у Опенстацк-у

Ватцхер АПИ - компонента која имплементира РЕСТ АПИ који обезбеђује Ватцхер. Механизми интеракције: ЦЛИ, Хоризон додатак, Питхон СДК.

Ватцхер ДБ — Ватцхер база података.

Ватцхер Апплиер — компонента која имплементира извршење акционог плана креираног од стране компоненте Ватцхер Децисион Енгине.

Ватцхер Децисион Енгине - Компонента одговорна за израчунавање скупа потенцијалних радњи оптимизације за постизање циља ревизије. Ако стратегија није наведена, компонента самостално бира најприкладнију.

Ватцхер Метрицс Публисхер – Компонента која прикупља и израчунава неке метрике или догађаје и објављује их на ЦЕП крајњој тачки. Функционалност компоненте такође може да обезбеди издавач Цеилометер.

Сложена машина за обраду догађаја (ЦЕП). — машина за сложену обраду догађаја. Из разлога перформанси, може постојати више инстанци ЦЕП Енгине-а које раде истовремено, а свака обрађује одређени тип метрике/догађаја. У систему Ватцхер, ЦЕП покреће две врсте акција: - евидентирање одговарајућих догађаја / метрике у бази података временских серија; - послати одговарајуће догађаје Ватцхер Децисион Енгинеу када овај догађај може утицати на резултат тренутне стратегије оптимизације, пошто Опенстацк кластер није статички систем.

Компоненте комуницирају користећи АМКП протокол.

Конфигурисање Ватцхер-а

Шема интеракције са Ватцхер-ом

Балансирање оптерећења у Опенстацк-у

Резултати теста Ватцхер-а

  1. На страници Оптимизација - Акциони планови 500 (и на чистом Куеенс-у и на штанду са Тионик модулима) појављује се тек након покретања ревизије и генерисања акционог плана; празан се нормално отвара.
  2. Постоје грешке на картици Детаљи акције, није могуће добити циљ ревизије и стратегију (како на чистом Куеенсу тако и на постољу са Тионик модулима).
  3. Ревизије са сврхом Думми (тест) се креирају и покрећу нормално, акциони планови се генеришу.
  4. Ревизије за Некласификовани циљ се не креирају јер циљ није функционалан и намењен је за средњу конфигурацију приликом креирања нових стратегија.
  5. Ревизије у сврху балансирања радног оптерећења (стратегија равнотеже капацитета складишта) су креиране успешно, али акциони план није генерисан. Није потребна оптимизација складишног простора.
  6. Ревизије за циљ балансирања радног оптерећења (Стратегија миграције равнотеже радног оптерећења) су креиране успешно, али акциони план није генерисан.
  7. Ревизије за балансирање радног оптерећења (Стратегија стабилизације радног оптерећења) не успевају.
  8. Ревизије за мету Ноиси Неигхбор су успешно креиране, али акциони план није генерисан.
  9. Ревизије за потребе одржавања хардвера су креиране успешно, акциони план се не генерише у потпуности (генеришу се индикатори учинка, али се не генерише сама листа акција).
  10. Измене у конфигурацијама нова.цонф (у подразумеваном одељку цомпуте_мониторс = цпу.вирт_дривер) на рачунарским и контролним чворовима не исправљају грешке.
  11. Ревизије које циљају на консолидацију сервера (основна стратегија) такође не успевају.
  12. Ревизије у сврху консолидације сервера (стратегија консолидације радног оптерећења ВМ) не успевају са грешком. У евиденцији постоји грешка у добијању изворних података. Дискусија о грешци, посебно овде.
    Покушали смо да наведемо Ватцхер у конфигурационој датотеци (није помогло - као резултат грешке на свим страницама оптимизације, враћање на оригинални садржај конфигурационе датотеке не исправља ситуацију):

    [ватцхер_стратегиес.басиц] извор података = метрометар, њоки
  13. Ревизије за уштеду енергије нису успеле. Судећи по евиденцији, проблем је и даље одсуство Ирониц; он неће радити без бареметал услуге.
  14. Ревизије за термичку оптимизацију нису успеле. Трацебацк је исти као и за консолидацију сервера (стратегија консолидације радног оптерећења ВМ) (грешка изворних података)
  15. Ревизије у сврху оптимизације протока ваздуха не успевају са грешком.

Такође се јављају следеће грешке при завршетку ревизије. Трацебацк у евиденцији одлучивања.лог (стање кластера није дефинисано).

→ Дискусија о грешци овде

Закључак

Резултат нашег двомесечног истраживања био је недвосмислен закључак да ћемо, у циљу добијања пуноправног, радног система балансирања оптерећења, морати у овом делу блиско сарађивати на усавршавању алата за Опенстацк платформу.

Ватцхер се показао као озбиљан производ који се брзо развија са огромним потенцијалом, за чију пуну употребу ће бити потребно много озбиљног рада.

Али више о томе у наредним чланцима серије.

Извор: ввв.хабр.цом

Додај коментар