Openstack бағдарламасындағы жүктемені теңестіру

Үлкен бұлтты жүйелерде есептеу ресурстарына жүктемені автоматты түрде теңестіру немесе теңестіру мәселесі әсіресе өткір. Tionix (бұлтты қызметтерді әзірлеуші ​​және оператор, «Ростелеком» компаниялар тобының бөлігі) бұл мәселені де қолға алды.

Біздің негізгі әзірлеу платформамыз Openstack болғандықтан және біз барлық адамдар сияқты жалқау болғандықтан, платформаға енгізілген дайын модульді таңдау туралы шешім қабылданды. Біздің таңдауымыз Watcher-ге түсті, біз оны өз қажеттіліктеріміз үшін пайдалануды шештік.
Openstack бағдарламасындағы жүктемені теңестіру
Алдымен терминдер мен анықтамаларды қарастырайық.

Терминдер мен анықтамалар

Максат адам оқи алатын, бақыланатын және өлшенетін соңғы нәтиже, оған қол жеткізу қажет. Әрбір мақсатқа жету үшін бір немесе бірнеше стратегия бар. Стратегия – берілген мақсаттың шешімін табуға қабілетті алгоритмді жүзеге асыру.

Әрекет бұл OpenStack кластерінің мақсатты басқарылатын ресурсының ағымдағы күйін өзгертетін қарапайым тапсырма, мысалы: виртуалды машинаны тасымалдау (көшіру), түйіннің қуат күйін өзгерту (өзгерту_түйін_қуат_күйі), nova қызметінің күйін өзгерту (change_nova_service_state ), дәмді өзгерту (өлшемін өзгерту), NOP хабарламаларын тіркеу (жоқ), белгілі бір уақыт ұзақтығына әрекеттің болмауы - үзіліс (ұйқы), дискіні тасымалдау (том_көшіру).

Іс-шаралар жоспары - белгілі бір Мақсатқа жету үшін белгілі бір тәртіппен жүзеге асырылатын іс-әрекеттердің нақты ағымы. Іс-шаралар жоспары сонымен қатар тиімділік көрсеткіштерінің жиынтығымен өлшенген жаһандық өнімділікті қамтиды. Іс-шаралар жоспарын Watcher табысты аудиттен кейін жасайды, нәтижесінде пайдаланылған стратегия мақсатқа жету үшін шешім табады. Іс-шаралар жоспары бірізді әрекеттер тізімінен тұрады.

Аудит кластерді оңтайландыру сұранысы болып табылады. Оңтайландыру берілген кластерде бір Мақсатқа жету үшін орындалады. Әрбір сәтті аудит үшін Watcher әрекет жоспарын жасайды.

Аудит көлемі аудит орындалатын ресурстар жиынтығы (қолжетімділік аймақтары, түйін агрегаторлары, жеке есептеу түйіндері немесе сақтау түйіндері және т.б.). Аудит көлемі әрбір үлгіде анықталған. Аудит ауқымы көрсетілмесе, бүкіл кластер тексеріледі.

Аудит үлгісі — аудитті іске қосу үшін сақталған параметрлер жинағы. Үлгілер бірдей параметрлермен бірнеше рет тексерулерді орындау үшін қажет. Үлгі міндетті түрде аудиттің мақсатын қамтуы керек, егер стратегиялар көрсетілмесе, ең қолайлы бар стратегиялар таңдалады.

Кластер — есептеу, сақтау және желілік ресурстарды қамтамасыз ететін және бірдей OpenStack басқару түйінімен басқарылатын физикалық машиналар жиынтығы.

Кластерлік деректер үлгісі (CDM) кластер басқаратын ресурстардың ағымдағы күйі мен топологиясының логикалық көрінісі болып табылады.

Тиімділік көрсеткіші - осы стратегияны қолдану арқылы жасалған шешімнің қалай орындалатынын көрсететін көрсеткіш. Тиімділік көрсеткіштері белгілі бір мақсатқа тән және әдетте нәтижелі әрекет жоспарының жаһандық тиімділігін есептеу үшін пайдаланылады.

Тиімділік сипаттамасы сәйкес Мақсатқа жету стратегиясы өз шешімінде қол жеткізуі тиіс әртүрлі тиімділік көрсеткіштерін анықтайтын әрбір Мақсатпен байланысты ерекше белгілердің жиынтығы. Шынында да, стратегия ұсынған әрбір шешім оның жаһандық тиімділігін есептемес бұрын спецификацияға сәйкес тексеріледі.

Скоринг жүйесі нақты анықталған кірістері, жақсы анықталған шығыстары бар және таза математикалық тапсырманы орындайтын орындалатын файл. Осылайша, есептеу ол орындалатын ортаға тәуелсіз - ол кез келген жерде бірдей нәтиже береді.

Бақылаушы жоспарлаушы - Watcher шешім қабылдау механизмінің бөлігі. Бұл модуль стратегия арқылы жасалған әрекеттер жинағын қабылдайды және осы әртүрлі әрекеттерді уақытында және әрбір әрекет үшін қалай жоспарлау керектігін, алғышарттардың қандай екенін көрсететін жұмыс үрдісінің жоспарын жасайды.

Бақылаушылардың мақсаттары мен стратегиялары

Максат
Стратегиялар

Жалған мақсат
Жалған стратегия 

Үлгі бағалау механизмдерін қолданатын жалған стратегия

Өлшемді өзгертумен жалған стратегия

Энергияны үнемдеу
Энергияны үнемдеу стратегиясы

Серверді біріктіру
Негізгі офлайн серверді біріктіру

VM жұмыс жүктемесін біріктіру стратегиясы

Жұмыс жүктемесін теңестіру
Жұмыс жүктемесі балансының көші-қон стратегиясы

Сақтау сыйымдылығы балансының стратегиясы

Жұмыс жүктемесін тұрақтандыру

Шулы көрші
Шулы көрші

Жылулық оңтайландыру
Шығу температурасына негізделген стратегия

Ауа ағынын оңтайландыру
Ауа ағынының біркелкі миграциясы стратегиясы

Аппараттық құралдарға техникалық қызмет көрсету
Аймақтың көші-қоны

Жіктелмеген
Жетекші

Жалған мақсат — тестілеу мақсатында пайдаланылатын резервтелген мақсат.

Қатысты стратегиялар: Күлкілі стратегия, Үлгі бағалау механизмдерін пайдаланатын жалған стратегия және өлшемін өзгертуі бар жалған стратегия. Жалған стратегия - Tempest арқылы интеграциялық тестілеу үшін қолданылатын жалған стратегия. Бұл стратегия ешқандай пайдалы оңтайландыруды қамтамасыз етпейді, оның жалғыз мақсаты - Tempest сынақтарын пайдалану.

Скоринг механизмдерінің үлгісін пайдаланатын жалған стратегия - стратегия алдыңғыға ұқсас, жалғыз айырмашылығы - машиналық оқыту әдістерін қолдана отырып есептеулерді жүргізетін үлгідегі «баллдық қозғалтқышты» пайдалану.

Өлшемді өзгертумен жалған стратегия - стратегия алдыңғыға ұқсас, жалғыз айырмашылығы - дәмді өзгертуді пайдалану (көшіру және өлшемді өзгерту).

Өндірісте пайдаланылмайды.

Энергияны үнемдеу — энергия шығынын барынша азайту. Бұл мақсаттың Энергияны үнемдеу стратегиясы VM жұмыс жүктемесін біріктіру стратегиясымен (Серверді біріктіру) бірге ресурстарды аз пайдалану кезеңдерінде де жұмыс жүктемелерін динамикалық біріктіру арқылы энергияны үнемдейтін динамикалық қуатты басқару (DPM) мүмкіндіктеріне қабілетті: виртуалды машиналар азырақ түйіндерге жылжытылады. , және қажетсіз түйіндер өшірілген. Біріктіруден кейін стратегия көрсетілген параметрлерге сәйкес түйіндерді қосу/өшіру туралы шешімді ұсынады: «min_free_hosts_num» - жүктеуді күтіп тұрған бос қосылған түйіндердің саны және «free_used_percent» - бос қосылған хосттардың машиналар алып жатқан түйіндер саны. Стратегия жұмыс істеуі үшін болуы керек түйіндердегі қуат циклін өңдеу үшін қосылған және конфигурацияланған Ironic.

Стратегияның параметрлері

параметр
Түрі
әдепкі бойынша
Описание

бос_пайдаланылған_пайыз
нөмір
10.0
бос есептеу түйіндерінің санының виртуалды машиналары бар есептеу түйіндерінің санына қатынасы

мин_бос_хосттар_саны
Int
1
бос есептеу түйіндерінің ең аз саны

Бұлтта кемінде екі түйін болуы керек. Қолданылатын әдіс - түйіннің қуат күйін өзгерту (өзгерту_түйін_қуат_күйі). Стратегия көрсеткіштерді жинауды қажет етпейді.

Серверді біріктіру – есептеу түйіндерінің санын азайту (консолидация). Оның екі стратегиясы бар: Негізгі офлайн серверді біріктіру және VM жұмыс жүктемесін біріктіру стратегиясы.

Негізгі офлайн серверді біріктіру стратегиясы пайдаланылатын серверлердің жалпы санын азайтады, сонымен қатар тасымалдаулар санын азайтады.

Негізгі стратегия келесі көрсеткіштерді қажет етеді:

көрсеткіштер
қызметі
плагиндер
Пікір

есептеу.түйін.cpu.пайыз
цеилометр
бірде-бір
 

cpu_util
цеилометр
бірде-бір
 

Стратегия параметрлері: migration_attempts - өшіруге ықтимал үміткерлерді іздеуге арналған комбинациялар саны (әдепкі, 0, шектеулер жоқ), кезең - метрикалық деректер көзінен статикалық жинақтауды алу үшін секундтардағы уақыт аралығы (әдепкі, 700).

Қолданылатын әдістер: тасымалдау, жаңа қызмет күйін өзгерту (change_nova_service_state).

VM жұмыс жүктемесін біріктіру стратегиясы өлшенген орталық процессор жүктемесіне бағытталған және ресурс сыйымдылығы шектеулеріне байланысты тым көп немесе тым аз жүктемесі бар түйіндерді азайтуға әрекеттенетін бірінші қолайлы эвристикаға негізделген. Бұл стратегия келесі төрт қадамды қолдана отырып, кластерлік ресурстарды тиімдірек пайдалануға әкелетін шешімді ұсынады:

  1. Түсіру кезеңі – артық пайдаланылған ресурстарды өңдеу;
  2. Біріктіру кезеңі – толық пайдаланылмаған ресурстарды өңдеу;
  3. Шешімді оңтайландыру – көші-қон санын азайту;
  4. Пайдаланылмаған есептеу түйіндерін өшіру.

Стратегия келесі көрсеткіштерді қажет етеді:

көрсеткіштер
қызметі
плагиндер
Пікір

жад
цеилометр
бірде-бір
 

disk.root.size
цеилометр
бірде-бір
 

Келесі көрсеткіштер міндетті емес, бірақ егер бар болса, стратегияның дәлдігін жақсартады:

көрсеткіштер
қызметі
плагиндер
Пікір

жады.резидент
цеилометр
бірде-бір
 

cpu_util
цеилометр
бірде-бір
 

Стратегия параметрлері: кезең — метрикалық деректер көзінен статикалық жинақтауды алу үшін секундтардағы уақыт аралығы (әдепкі, 3600).

Алдыңғы стратегия сияқты әдістерді қолданады. Толығырақ осында.

Жұмыс жүктемесін теңестіру — есептеу түйіндері арасындағы жұмыс көлемін теңестіру. Мақсаттың үш стратегиясы бар: Жұмыс жүктемесінің теңгерімінің көші-қон стратегиясы, жұмыс жүктемесін тұрақтандыру, сақтау сыйымдылығының теңгерімінің стратегиясы.

Жұмыс жүктемесінің балансын тасымалдау стратегиясы хост виртуалды машинасының жұмыс жүктемесіне негізделген виртуалды машина тасымалдауларын іске қосады. Тасымалдау туралы шешім түйіннің % CPU немесе RAM пайдалануы көрсетілген шекті мәннен асқан сайын қабылданады. Бұл жағдайда жылжытылған виртуалды машина түйінді барлық түйіндердің орташа жұмыс жүктемесіне жақындатуы керек.

талаптар

  • Физикалық процессорларды қолдану;
  • Кемінде екі физикалық есептеу түйіндері;
  • Әрбір есептеу түйінінде және Ceilometer API-де жұмыс істейтін Ceilometer компоненті - ceilometer-агент-есептеу орнатылды және конфигурацияланды, сонымен қатар келесі көрсеткіштерді жинады:

көрсеткіштер
қызметі
плагиндер
Пікір

cpu_util
цеилометр
бірде-бір
 

жады.резидент
цеилометр
бірде-бір
 

Стратегияның параметрлері:

параметр
Түрі
әдепкі бойынша
Описание

метрикалар
String
'cpu_util'
Негізгі көрсеткіштер: 'cpu_util', 'memory.resident'.

шекті
нөмір
25.0
Тасымалдау үшін жұмыс жүктемесінің шегі.

кезең
нөмір
300
Жиынтық уақыт кезеңі Целометр.

Қолданылатын әдіс – көші-қон.

Жұмыс жүктемесін тұрақтандыру – бұл тікелей көшіруді пайдалана отырып, жұмыс жүктемесін тұрақтандыруға бағытталған стратегия. Стратегия стандартты ауытқу алгоритміне негізделген және кластерде кептеліс бар-жоғын анықтайды және кластерді тұрақтандыру үшін машина көшіруін іске қосу арқылы оған жауап береді.

талаптар

  • Физикалық процессорларды қолдану;
  • Кемінде екі физикалық есептеу түйіндері;
  • Әрбір есептеу түйінінде және Ceilometer API-де жұмыс істейтін Ceilometer компоненті - ceilometer-агент-есептеу орнатылды және конфигурацияланды, сонымен қатар келесі көрсеткіштерді жинады:

көрсеткіштер
қызметі
плагиндер
Пікір

cpu_util
цеилометр
бірде-бір
 

жады.резидент
цеилометр
бірде-бір
 

Storage Capacity Balance Strategy (Стратегия Queens-тен бастап жүзеге асырылады) - стратегия Cinder бассейндеріндегі жүктемеге байланысты дискілерді тасымалдайды. Тасымалдау туралы шешім пулды пайдалану жылдамдығы белгіленген шекті мәннен асқан сайын қабылданады. Жылжытылған диск бассейнді барлық Cinder бассейндерінің орташа жүктемесіне жақындатуы керек.

Талаптар мен шектеулер

  • Кем дегенде екі шлак бассейні;
  • Дискіні көшіру мүмкіндігі.
  • Кластерлік деректер моделі - Cinder кластерінің деректер үлгісінің коллекторы.

Стратегияның параметрлері:

параметр
Түрі
әдепкі бойынша
Описание

көлем_шегі
нөмір
80.0
Көлемді теңестіруге арналған дискілердің шекті мәні.

Қолданылатын әдіс - дискіні тасымалдау (көлемді_көшіру).

Шулы көрші - Соңғы деңгей кэшін шамадан тыс пайдалану арқылы IPC тұрғысынан жоғары басым виртуалды машинаның жұмысына теріс әсер ететін «шулы көршіні» анықтаңыз және тасымалдаңыз - төмен басымдықты виртуалды машина. Меншікті стратегия: Шулы көрші (пайдаланылған стратегия параметрі cache_threshold (әдепкі мән - 35), өнімділік көрсетілген мәнге төмендегенде, тасымалдау басталады. Стратегияның жұмыс істеуі үшін қосулы LLC (соңғы деңгей кэш) көрсеткіштері, CMT қолдауы бар соңғы Intel сервері, сонымен қатар келесі көрсеткіштерді жинау:

көрсеткіштер
қызметі
плагиндер
Пікір

cpu_l3_cache
цеилометр
бірде-бір
Intel қажет CMT.

Кластер деректерінің үлгісі (әдепкі): Nova кластерінің деректер үлгісінің коллекторы. Қолданылатын әдіс – көші-қон.

Бақылау тақтасы арқылы осы мақсатпен жұмыс Квинсте толық орындалмаған.

Жылулық оңтайландыру — температура режимін оңтайландыру. Шығару (шығатын ауа) температурасы сервердің жылу/жұмыс жүктемесінің күйін өлшеуге арналған маңызды термиялық телеметриялық жүйелердің бірі болып табылады. Мақсаттың бір стратегиясы бар, ол бастапқы хосттардың шығыс температурасы конфигурацияланатын шекке жеткенде жұмыс жүктемелерін термиялық қолайлы хосттарға (ең төменгі шығыс температурасы) көшіруді шешетін шығыс температурасына негізделген стратегия.

Стратегияның жұмыс істеуі үшін Intel Power Node Manager орнатылған және конфигурацияланған сервер қажет 3.0 немесе одан кейінгі нұсқасы, сонымен қатар келесі көрсеткіштерді жинау:

көрсеткіштер
қызметі
плагиндер
Пікір

hardware.ipmi.node.outlet_temperature
цеилометр
IPMI
 

Стратегияның параметрлері:

параметр
Түрі
әдепкі бойынша
Описание

шекті
нөмір
35.0
Миграция үшін температура шегі.

кезең
нөмір
30
Уақыт аралығы, секундтармен, метрикалық деректер көзінен статистикалық жинақтауды алу үшін.

Қолданылатын әдіс – көші-қон.

Ауа ағынын оңтайландыру — желдету режимін оңтайландыру. Жеке стратегия - Тікелей көші-қон арқылы біркелкі ауа ағыны. Сервер желдеткішінен шығатын ауа ағыны белгіленген шекті мәннен асқан сайын стратегия виртуалды машинаны тасымалдауды іске қосады.

Стратегияның жұмыс істеуі үшін сізге қажет:

  • Аппараттық құрал: есептеу түйіндері < NodeManager 3.0 қолдайтын;
  • Кем дегенде екі есептеу түйіні;
  • Әрбір есептеу түйінінде орнатылған және конфигурацияланған ceilometer-agent-computer және Ceilometer API құрамдас бөлігі ауа ағыны, жүйе қуаты, кіріс температурасы сияқты көрсеткіштерді сәтті есептей алады:

көрсеткіштер
қызметі
плагиндер
Пікір

hardware.ipmi.node.airflow
цеилометр
IPMI
 

аппараттық.ipmi.түйін.температура
цеилометр
IPMI
 

hardware.ipmi.node.power
цеилометр
IPMI
 

Стратегияның жұмыс істеуі үшін Intel Power Node Manager 3.0 немесе одан кейінгі нұсқасы орнатылған және конфигурацияланған сервер қажет.

Шектеулер: Тұжырымдама өндіріске арналмаған.

Бұл алгоритмді үздіксіз тексерулермен пайдалану ұсынылады, өйткені әр итерацияда тек бір виртуалды машинаны тасымалдау жоспарланған.

Тірі көші-қон мүмкін.

Стратегияның параметрлері:

параметр
Түрі
әдепкі бойынша
Описание

шекті_ауа ағыны
нөмір
400.0
Тасымалдау бірлігі үшін ауа ағынының шегі - 0.1CFM

threshold_inlet_t
нөмір
28.0
Көшіру шешімі үшін кіріс температурасының шегі

шекті_қуат
нөмір
350.0
Көшіру шешімі үшін жүйенің қуат шегі

кезең
нөмір
30
Уақыт аралығы, секундтармен, метрикалық деректер көзінен статистикалық жинақтауды алу үшін.

Қолданылатын әдіс – көші-қон.

Техникалық қызмет көрсету — аппараттық құралдарға қызмет көрсету. Осы мақсатқа қатысты стратегия - аймақтық көші-қон. Стратегия аппараттық құралдарға қызмет көрсету қажет болған жағдайда виртуалды машиналар мен дискілерді тиімді автоматты және минималды көшіру құралы болып табылады. Стратегия салмақтарға сәйкес іс-қимыл жоспарын жасайды: салмағы көбірек әрекеттер жиынтығы басқалардан бұрын жоспарланады. Екі конфигурация опциясы бар: action_weights және параллелизация.

Шектеулер: әрекет салмақтары мен параллелизацияны конфигурациялау қажет.

Стратегияның параметрлері:

параметр
Түрі
әдепкі бойынша
Описание

есептеу_түйіндері
массив
None
Тасымалдау үшін түйіндерді есептеу.

сақтау_пулдары
массив
None
Тасымалдау үшін сақтау түйіндері.

параллельді_жалпы
бүтін сан
6
Параллель орындалуы тиіс әрекеттердің жалпы саны.

әр_түйінге параллельді
бүтін сан
2
Әрбір есептеу түйіні үшін параллель орындалатын әрекеттер саны.

параллель_әр_бассейн
бүтін сан
2
Әрбір сақтау пулы үшін параллель орындалатын әрекеттер саны.

басымдық
зат
None
Виртуалды машиналар мен дискілер үшін басымдық тізімі.

қосылған_томмен
логикалық
жалған
False — барлық дискілер тасымалданғаннан кейін виртуалды машиналар тасымалданады. True — барлық қосылған дискілер тасымалданғаннан кейін виртуалды машиналар тасымалданады.

Есептеу түйіндерінің массивінің элементтері:

параметр
Түрі
әдепкі бойынша
Описание

src_түйіні
жол
None
Виртуалды машиналар тасымалданатын есептеу түйіні (міндетті).

dst_node
жол
None
Виртуалды машиналар тасымалданатын түйінді есептеңіз.

Сақтау түйіні массивінің элементтері:

параметр
Түрі
әдепкі бойынша
Описание

src_pool
жол
None
Дискілер тасымалданатын сақтау пулы (міндетті).

dst_pool
жол
None
Дискілер тасымалданатын сақтау пулы.

src_type
жол
None
Түпнұсқа диск түрі (міндетті).

dst_түрі
жол
None
Алынған диск түрі (міндетті).

Объектінің басымдылық элементтері:

параметр
Түрі
әдепкі бойынша
Описание

жоба
массив
None
Жоба атаулары.

есептеу_түйін
массив
None
Түйін атауларын есептеу.

сақтау_пул
массив
None
Сақтау пулының атаулары.

есептеу
енум
None
Виртуалды машина параметрлері [“vcpu_num”, “mem_size”, “disk_size”, “created_at”].

сақтау
енум
None
Диск параметрлері [“өлшем”, “құрылған_ат”].

Қолданылатын әдістер виртуалды машинаны тасымалдау, дискіні тасымалдау.

Жіктелмеген - стратегияны әзірлеу процесін жеңілдету үшін қолданылатын көмекші мақсат. Ешқандай ерекшеліктерді қамтымайды және стратегия бұрыннан бар мақсатпен әлі байланыспаған кезде пайдалануға болады. Бұл мақсатты өтпелі нүкте ретінде де пайдалануға болады. Осы мақсатқа қатысты стратегия - Actuator.   

Жаңа мақсат құру

Watcher Decision Engine стратегияны қолдану арқылы қол жеткізуге болатын сыртқы мақсатты біріктіруге мүмкіндік беретін «сыртқы мақсат» плагин интерфейсі бар.

Жаңа мақсатты жасамас бұрын, бар мақсаттардың ешқайсысы сіздің қажеттіліктеріңізге сәйкес келмейтініне көз жеткізіңіз.

Жаңа плагин жасау

Жаңа мақсатты жасау үшін сізге қажет: мақсатты сыныпты кеңейту, сынып әдісін енгізу get_name() жасағыңыз келетін жаңа мақсаттың бірегей идентификаторын қайтару үшін. Бұл бірегей идентификатор кейінірек жариялайтын кіру нүктесінің атауына сәйкес болуы керек.

Әрі қарай сынып әдісін енгізу керек get_display_name() жасағыңыз келетін мақсаттың аударылған дисплей атауын қайтару үшін (аударылған жолды қайтару үшін айнымалы мәнді пайдаланбаңыз, сондықтан ол аударма құралы арқылы автоматты түрде жиналуы мүмкін.).

Класс әдісін енгізу get_translatable_display_name()жаңа мақсатыңыздың аударма кілтін (шын мәнінде ағылшынша көрсетілетін атауы) қайтару үшін. Қайтару мәні get_display_name() түріне аударылған жолға сәйкес келуі керек.

Оның әдісін іске асырыңыз get_efficacy_specification()мақсатыңыз үшін тиімділік сипаттамасын қайтару үшін. get_efficacy_specification() әдісі Watcher ұсынған Unclassified() данасын қайтарады. Бұл өнімділік сипаттамасы мақсатты әзірлеу процесінде пайдалы, себебі ол бос спецификацияға сәйкес келеді.

Толығырақ мұнда

Бақылаушының архитектурасы (толығырақ) осында).

Openstack бағдарламасындағы жүктемені теңестіру

Құрамдастар

Openstack бағдарламасындағы жүктемені теңестіру

Watcher API - Watcher ұсынған REST API іске асыратын компонент. Өзара әрекеттесу механизмдері: CLI, Horizon плагині, Python SDK.

Watcher DB — Watcher мәліметтер базасы.

Watcher Applier — Watcher Decision Engine компонентімен жасалған әрекет жоспарының орындалуын жүзеге асыратын компонент.

Watcher Decision Engine - Аудит мақсатына жету үшін ықтимал оңтайландыру әрекеттерінің жиынтығын есептеуге жауапты құрамдас. Егер стратегия көрсетілмесе, құрамдас дербес ең қолайлысын таңдайды.

Watcher Metrics Publisher - Кейбір көрсеткіштерді немесе оқиғаларды жинайтын және есептейтін және оларды CEP соңғы нүктесіне жариялайтын құрамдас. Құрамдастың функционалдығын Ceilometer баспагері де қамтамасыз ете алады.

Кешенді оқиғаларды өңдеу (CEP) қозғалтқышы — оқиғаларды күрделі өңдеуге арналған қозғалтқыш. Өнімділік себептері бойынша бір уақытта жұмыс істейтін бірнеше CEP Engine даналары болуы мүмкін, олардың әрқайсысы метриканың/оқиғаның белгілі бір түрін өңдейді. Watcher жүйесінде CEP әрекеттің екі түрін іске қосады: - уақыт сериясының дерекқорына сәйкес оқиғаларды/метрикаларды жазу; - Openstack кластері статикалық жүйе емес болғандықтан, бұл оқиға ағымдағы оңтайландыру стратегиясының нәтижесіне әсер етуі мүмкін болса, тиісті оқиғаларды Watcher Decision Engine жүйесіне жіберіңіз.

Компоненттер AMQP протоколы арқылы өзара әрекеттеседі.

Watcher конфигурациялануда

Watcher-пен әрекеттесу схемасы

Openstack бағдарламасындағы жүктемені теңестіру

Бақылаушы сынағының нәтижелері

  1. Оңтайландыру - әрекет жоспарлары 500 бетінде (таза Queens-те де, Tionix модульдері бар стендте де) ол тек аудит іске қосылғаннан және әрекет жоспары жасалғаннан кейін пайда болады; бос бет қалыпты түрде ашылады.
  2. Әрекет туралы мәліметтер қойындысында қателер бар, аудит мақсаты мен стратегиясын алу мүмкін емес (таза Queens-те де, Tionix модульдері бар стендте де).
  3. Dummy (тест) мақсатындағы аудиттер қалыпты түрде құрылады және іске қосылады, іс-шаралар жоспарлары жасалады.
  4. Жіктелмеген мақсатқа арналған аудиттер жасалмайды, себебі мақсат жұмыс істемейді және жаңа стратегияларды жасау кезінде аралық конфигурацияға арналған.
  5. Жұмыс жүктемесін теңестіру (Сақтау сыйымдылығы балансының стратегиясы) мақсатындағы аудиттер сәтті жасалды, бірақ әрекет жоспары жасалмайды. Сақтау пулын оңтайландыру қажет емес.
  6. Жұмыс жүктемесін теңестіру мақсатына арналған аудиттер (Жұмыс жүктемесінің балансын тасымалдау стратегиясы) сәтті жасалды, бірақ әрекет жоспары жасалмады.
  7. Жұмыс жүктемесін теңестіру (жұмыс жүктемесін тұрақтандыру стратегиясы) аудиттері сәтсіз аяқталды.
  8. Шулы көрші мақсатына арналған аудиттер сәтті жасалды, бірақ әрекет жоспары жасалмады.
  9. Аппараттық қамтамасыз ету мақсатындағы аудиттер сәтті құрылды, іс-шаралар жоспары толық көлемде құрылмайды (тиімділік көрсеткіштері қалыптастырылады, бірақ әрекеттер тізімінің өзі құрылмайды).
  10. Есептеу және басқару түйіндеріндегі nova.conf конфигурацияларындағы өңдеулер (әдепкі compute_monitors = cpu.virt_driver бөлімінде) қателерді түзетпейді.
  11. Серверді біріктіруге (негізгі стратегия) бағытталған тексерулер де сәтсіз аяқталды.
  12. Серверді біріктіру (VM жұмыс жүктемесін біріктіру стратегиясы) мақсатындағы тексерулер қатемен орындалмайды. Журналдарда бастапқы деректерді алуда қате бар. Қатені талқылау, атап айтқанда осында.
    Біз конфигурация файлында Watcher-ді көрсетуге тырыстық (ол көмектеспеді - барлық оңтайландыру беттеріндегі қате нәтижесінде конфигурация файлының бастапқы мазмұнына оралу жағдайды түзетпейді):

    [watcher_strategies.basic] деректер көзі = цеилометр, гнокчи
  13. Энергияны үнемдеу аудиті сәтсіз аяқталды. Бөренелерге қарағанда, мәселе әлі күнге дейін Ironic-тің жоқтығы болып табылады, ол барметалл сервисінсіз жұмыс істемейді.
  14. Жылулық оңтайландыруға арналған тексерулер сәтсіз аяқталды. Кері бақылау серверді біріктірумен бірдей (VM жұмыс жүктемесін біріктіру стратегиясы) (бастапқы деректер қатесі)
  15. Ауа ағынын оңтайландыру мақсатындағы тексерулер қателікпен орындалмайды.

Келесі аудитті аяқтау қателері де кездеседі. Solution-engine.log журналдарында кері бақылау (кластер күйі анықталмаған).

→ Қатені талқылау осында

қорытынды

Біздің екі айлық зерттеуіміздің нәтижесі толыққанды, жұмыс жүктемесін теңестіру жүйесін алу үшін біз осы бөлікте Openstack платформасының құралдарын нақтылау бойынша тығыз жұмыс істеуіміз керек деген біржақты қорытынды болды.

Watcher орасан зор әлеуеті бар маңызды және қарқынды дамып келе жатқан өнім екенін дәлелдеді, оны толық пайдалану үлкен жұмысты қажет етеді.

Бірақ бұл туралы толығырақ серияның келесі мақалаларында.

Ақпарат көзі: www.habr.com

пікір қалдыру