Як абр - ОС сатҳи маркази додаҳо дар Одноклассники

Як абр - ОС сатҳи маркази додаҳо дар Одноклассники

Салом, мардум! Номи ман Олег Анастасьев, ман дар Одноклассники дар дастаи Платформа кор мекунам. Ва гайр аз ман дар Одноклассники техникаи зиёде кор мекунад. Мо чор маркази додаҳо дорем, ки тақрибан 500 раф бо зиёда аз 8 ҳазор сервер доранд. Дар лаҳзаи муайян, мо фаҳмидем, ки ҷорӣ намудани системаи нави идоракунӣ ба мо имкон медиҳад, ки таҷҳизотро самараноктар бор кунем, идоракунии дастрасиро осон кунем, тақсимоти (аз нав) захираҳои ҳисоббарориро автоматӣ гардонем, ба кор андохтани хидматҳои навро суръат бахшем ва ҷавобҳоро суръат бахшем. ба фалокатхои калон.

Аз он чӣ омад?

Ба гайр аз ман ва як даста сахтафзор, инчунин одамоне ҳастанд, ки бо ин сахтафзор кор мекунанд: муҳандисоне, ки бевосита дар марказҳои маълумот ҷойгиранд; шабакаҳое, ки нармафзори шабакаро насб мекунанд; маъмурон ё SREs, ки устувории инфрасохторро таъмин мекунанд; ва гурӯҳҳои таҳиякунанда, ҳар яки онҳо барои як қисми вазифаҳои портал масъуланд. Нармафзоре, ки онҳо эҷод мекунанд, чунин кор мекунанд:

Як абр - ОС сатҳи маркази додаҳо дар Одноклассники

Дархостҳои корбарон ҳам дар паҳлӯи портали асосӣ қабул карда мешаванд www.ok.ru, ва дар бораи дигарон, масалан дар фронтҳои API мусиқӣ. Барои коркарди мантиқи тиҷорӣ, онҳо сервери барномаро даъват мекунанд, ки ҳангоми коркарди дархост хидматҳои зарурии махсусгардонидашударо даъват мекунанд - як график (графи пайвастҳои иҷтимоӣ), кэши корбар (кеши профилҳои корбар) ва ғайра.

Ҳар яке аз ин хидматҳо дар бисёр мошинҳо ҷойгир карда шудаанд ва ҳар яки онҳо таҳиягарони масъул барои фаъолияти модулҳо, фаъолият ва рушди технологӣ доранд. Ҳамаи ин хидматҳо дар серверҳои сахтафзор кор мекунанд ва то ба наздикӣ мо маҳз як вазифаро барои ҳар як сервер оғоз кардем, яъне он барои як вазифаи мушаххас махсусгардонида шуда буд.

Барои чӣ ин? Ин усул якчанд афзалиятҳо дошт:

  • Осоиш ёфт идоракунии омма. Фарз мекунем, ки вазифа баъзе китобхонаҳо, баъзе танзимотро талаб мекунад. Ва он гоҳ сервер ба як гурӯҳи мушаххас таъин карда мешавад, сиёсати cfengine барои ин гурӯҳ тавсиф карда мешавад (ё он аллакай тавсиф шудааст) ва ин конфигуратсия ба таври мутамарказ ва ба таври худкор ба ҳамаи серверҳои ин гурӯҳ интиқол дода мешавад.
  • Соддашуда ташхис. Фарз мекунем, ки шумо ба афзоиши сарбории протсессори марказӣ назар мекунед ва дарк мекунед, ки ин сарборӣ метавонад танҳо аз ҷониби вазифае, ки дар ин протсессори сахтафзор кор мекунад, тавлид шавад. Ҷустуҷӯи касе, ки гунаҳкор аст, хеле зуд анҷом меёбад.
  • Соддашуда назорат. Агар дар сервер чизе хато бошад, монитор дар ин бора хабар медиҳад ва шумо аниқ медонед, ки кӣ гунаҳкор аст.

Хидмате, ки аз якчанд реплика иборат аст, якчанд серверҳо ҷудо карда мешавад - якто барои ҳар як. Сипас, манбаи ҳисоббарорӣ барои хидмат хеле содда тақсим карда мешавад: шумораи серверҳои хидмат, миқдори максималии захираҳое, ки он метавонад истеъмол кунад. "Осон" дар ин ҷо маънои онро надорад, ки истифодаи он осон аст, балки ба он маъно, ки тақсимоти захираҳо дастӣ анҷом дода мешавад.

Чунин муносибат ба мо низ имкон дод конфигуратсияҳои махсуси оҳан барои вазифае, ки дар ин сервер иҷро мешавад. Агар супориш миқдори зиёди маълумотро нигоҳ дорад, пас мо сервери 4U-ро бо шасси бо 38 диск истифода мебарем. Агар вазифа сирф ҳисобкунӣ бошад, мо метавонем сервери арзонтари 1U харем. Ин аз ҷиҳати ҳисоббарорӣ самаранок аст. Дар байни чизҳои дигар, ин равиш ба мо имкон медиҳад, ки чор маротиба камтар мошинҳоро бо сарборӣ бо як шабакаи иҷтимоии дӯстона муқоиса кунем.

Чунин самаранокӣ дар истифодаи захираҳои ҳисоббарорӣ инчунин бояд самаранокии иқтисодиро таъмин намояд, агар мо аз он асос гузорем, ки чизи аз ҳама гаронбаҳо серверҳост. Дар тӯли муддати тӯлонӣ сахтафзор қиматтарин буд ва мо барои коҳиш додани нархи сахтафзор кӯшиши зиёд ба харҷ дода, алгоритмҳои таҳаммулпазирии хатогиҳоро барои коҳиш додани талаботи эътимоднокии сахтафзор таҳия кардем. Ва имрӯз мо ба марҳилае расидем, ки дар он нархи сервер ҳалкунанда буданро қатъ кардааст. Агар шумо экзотикҳои навтаринро ба назар нагиред, пас конфигуратсияи мушаххаси серверҳо дар раф аҳамият надорад. Ҳоло мо як мушкили дигар дорем - нархи ҷойе, ки сервер дар маркази додаҳо ишғол мекунад, яъне ҷой дар раф.

Фахмидем, ки хамин тавр аст, мо карор додем, ки то чй андоза самаранок истифода бурдани рафхо хисоб кунем.
Мо нархи пуриқтидортарин серверро аз серверҳои аз ҷиҳати иқтисодӣ асоснок гирифта, ҳисоб кардем, ки чӣ қадар чунин серверҳоро дар рафҳо ҷойгир карда метавонем, дар асоси модели кӯҳнаи “як сервер = як вазифа” чӣ қадар вазифаҳоро иҷро мекунем ва чӣ қадар инҳоянд. вазифаҳо метавонистанд аз таҷҳизот истифода баранд. Ҳисоб карда, ашк мерехтанд. Маълум шуд, ки самаранокии мо дар истифодаи рафҳо тақрибан 11% аст. Хулоса равшан аст: мо бояд самаранокии истифодаи марказҳои маълумотро зиёд кунем. Чунин ба назар мерасад, ки ҳалли равшан аст: шумо бояд дар як сервер якбора якчанд вазифаҳоро иҷро кунед. Аммо аз ин чо душворихо сар мешаванд.

Конфигуратсияи оммавӣ ба таври назаррас мураккабтар мешавад - ҳоло таъин кардани ягон гурӯҳ ба сервер ғайриимкон аст. Дар ниҳоят, ҳоло дар як сервер якчанд супоришҳои фармонҳои гуногунро оғоз кардан мумкин аст. Илова бар ин, конфигуратсия метавонад барои барномаҳои гуногун мухолиф бошад. Ташхис низ мушкилтар мешавад: агар шумо дар сервер зиёд истеъмоли CPU ё дискро бинед, шумо намедонед, ки кадом вазифа боиси мушкилот мегардад.

Аммо чизи асосӣ ин аст, ки дар байни вазифаҳое, ки дар як мошин иҷро мешаванд, ҷудогона вуҷуд надорад. Дар ин ҷо, масалан, графики вақти миёнаи посухи супориши сервер пеш аз ва баъд аз ба кор андохтани як замимаи дигари ҳисоббарорӣ дар ҳамон сервер оварда шудааст, ки ба ҳеҷ ваҷҳ ба яке аз аввал алоқаманд нест - вақти вокуниши вазифаи асосӣ ба таври назаррас зиёд шудааст.

Як абр - ОС сатҳи маркази додаҳо дар Одноклассники

Аён аст, ки шумо бояд вазифаҳоро дар контейнерҳо ё мошинҳои виртуалӣ иҷро кунед. Азбаски қариб ҳамаи вазифаҳои мо дар зери як OS (Linux) иҷро мешаванд ё барои он мутобиқ карда шудаанд, ба мо лозим нест, ки системаҳои гуногуни амалиётиро дастгирӣ кунем. Мувофиқи он, виртуализатсия лозим нест; аз сабаби хароҷоти иловагӣ, он нисбат ба контейнеризатсия камтар самараноктар хоҳад буд.

Ҳамчун татбиқи контейнерҳо барои иҷро кардани вазифаҳо мустақиман дар серверҳо, Docker номзади хуб аст: тасвирҳои системаи файлӣ мушкилотро бо конфигуратсияҳои мухолиф хуб ҳал мекунанд. Далели он, ки тасвирҳо метавонанд аз якчанд қабатҳо иборат бошанд, ба мо имкон медиҳад, ки миқдори маълумотро барои ҷойгиркунии онҳо дар инфрасохтор ба таври назаррас коҳиш дода, қисмҳои умумиро ба қабатҳои алоҳидаи асосӣ ҷудо кунем. Он гоҳ қабатҳои асосӣ (ва ҳаҷмноктарин) дар тамоми инфрасохтор хеле зуд кэш карда мешаванд ва барои расонидани бисёр намудҳои гуногуни барномаҳо ва версияҳо танҳо қабатҳои хурд бояд интиқол дода шаванд.

Илова бар ин, феҳристи омода ва барчаспкунии тасвирҳо дар Docker ба мо примитивҳои омодаро барои версия ва интиқоли код ба истеҳсолот медиҳад.

Docker, ба монанди ҳама гуна технологияҳои шабеҳ, ба мо сатҳи изолятсияи контейнерро аз қуттӣ медиҳад. Масалан, изолятсияи хотира - ба ҳар як контейнер маҳдудияти истифодаи хотираи мошин дода мешавад, ки берун аз он истеъмол намекунад. Шумо инчунин метавонед контейнерҳоро дар асоси истифодаи CPU ҷудо кунед. Аммо барои мо изолятсияи стандартӣ кофӣ набуд. Аммо бештар дар бораи он дар зер.

Кори мустақими контейнерҳо дар серверҳо танҳо як қисми мушкилот аст. Қисми дигар бо хостинги контейнерҳо дар серверҳо алоқаманд аст. Шумо бояд фаҳмед, ки кадом контейнерро дар кадом сервер ҷойгир кардан мумкин аст. Ин кори осон нест, зеро контейнерҳоро бояд дар серверҳо ҳарчи бештар зичтар бидуни кам кардани суръати онҳо ҷойгир кунанд. Чунин ҷойгиркунӣ инчунин метавонад аз нуқтаи назари таҳаммулпазирии хатоҳо душвор бошад. Аксар вақт мо мехоҳем нусхаҳои як хидматро дар рафҳои гуногун ё ҳатто дар утоқҳои гуногуни маркази додаҳо ҷойгир кунем, то дар сурати аз кор баромадани рейк ё ҳуҷра мо ҳама репликаҳои хидматиро фавран аз даст надиҳем.

Агар шумо 8 ҳазор сервер ва 8-16 ҳазор контейнер дошта бошед, дастӣ тақсим кардани контейнерҳо имконнопазир аст.

Илова бар ин, мо мехостем, ки ба таҳиягарон дар тақсимоти захираҳо мустақилияти бештар диҳем, то онҳо хидматҳои худро дар истеҳсолот бидуни кӯмаки маъмур ҷойгир кунанд. Ҳамзамон, мо мехостем, ки назоратро нигоҳ дорем, то баъзе хидматҳои ночиз тамоми захираҳои марказҳои додаҳои моро истеъмол накунанд.

Аён аст, ки ба мо як қабати назорат лозим аст, ки ин корро ба таври худкор анҷом диҳад.

Ҳамин тавр, мо ба як манзараи оддӣ ва фаҳмо омадем, ки ҳама меъморон онро дӯст медоранд: се мураббаъ.

Як абр - ОС сатҳи маркази додаҳо дар Одноклассники

устоҳои як-абр кластери ноком аст, ки барои оркестри абр масъул аст. Таҳиягар ба устод манифест мефиристад, ки дар он тамоми маълумоти зарурӣ барои ҷойгиркунии хидмат мавҷуд аст. Дар асоси он усто ба минонҳои интихобшуда фармон медиҳад (мошинҳое, ки барои идора кардани контейнерҳо пешбинӣ шудаанд). Минонҳо агенти моро доранд, ки фармонро қабул мекунад, фармонҳои худро ба Docker медиҳад ва Docker ядрои Linux-ро барои оғоз кардани контейнери мувофиқ танзим мекунад. Илова ба иҷрои фармонҳо, агент пайваста ба усто дар бораи тағирёбии ҳолати мошини минион ва контейнерҳои дар он коркунанда гузориш медиҳад.

Распределение ресурсҳо

Акнун биёед ба проблемам мураккабтари таксимоти ресурсхо барои бисьёр мин-дорхо назар кунем.

Манбаи ҳисоббарорӣ дар як абр ин аст:

  • Миқдори қувваи протсессори аз ҷониби як вазифаи мушаххас истеъмолшуда.
  • Миқдори хотираи дастрас барои вазифа.
  • Трафики шабака. Ҳар яке аз минионҳо дорои интерфейси махсуси шабакавӣ бо фарохмаҷрои маҳдуд аст, аз ин рӯ тақсим кардани вазифаҳо бе назардошти ҳаҷми маълумоте, ки онҳо тавассути шабака интиқол медиҳанд, ғайриимкон аст.
  • Дискҳо. Илова бар ин, бешубҳа, ба фазои ин вазифаҳо, мо инчунин навъи дискро ҷудо мекунем: HDD ё SSD. Дискҳо метавонанд шумораи ниҳоии дархостҳоро дар як сония иҷро кунанд - IOPS. Аз ин рӯ, барои вазифаҳое, ки IOPS-ро бештар аз як диск иҷро карда метавонад, мо инчунин "шпинделҳо" ҷудо мекунем, яъне дастгоҳҳои диские, ки бояд танҳо барои ин вазифа ҷудо карда шаванд.

Пас барои баъзе хидматҳо, масалан барои кэши корбар, мо метавонем захираҳои истеъмолшударо бо ин роҳ сабт кунем: 400 ядрои протсессор, 2,5 ТБ хотира, трафики 50 Гбит/с дар ҳарду самт, 6 ТБ фазои HDD дар 100 шпиндель ҷойгир аст. Ё дар шакли бештар шинос ба монанди ин:

alloc:
    cpu: 400
    mem: 2500
    lan_in: 50g
    lan_out: 50g
    hdd:100x6T

Захираҳои хидматрасонии корбар-кэш танҳо як қисми тамоми захираҳои мавҷударо дар инфрасохтори истеҳсолӣ истеъмол мекунанд. Аз ин рӯ, ман мехоҳам боварӣ ҳосил кунам, ки ногаҳон, аз сабаби хатогии оператор ё не, кэши корбар аз захираҳои ба он ҷудошуда бештар истеъмол намекунад. Яъне мо бояд захираҳоро маҳдуд кунем. Аммо мо квотаро ба чӣ вобаста карда метавонем?

Биёед ба диаграммаи хеле соддашудаи таъсири мутақобилаи ҷузъҳо баргардем ва онро бо тафсилоти бештар аз нав кашем - ба монанди:

Як абр - ОС сатҳи маркази додаҳо дар Одноклассники

Чизе, ки ба чашми шумо мерасад:

  • Шабакаи веб ва мусиқӣ кластерҳои ҷудогонаи як сервери барномаро истифода мебаранд.
  • Мо метавонем қабатҳои мантиқиро, ки ин кластерҳо ба онҳо тааллуқ доранд, фарқ кунем: фронтҳо, кэшҳо, нигоҳдории маълумот ва қабати идоракунӣ.
  • Фронт гетерогенӣ аст; он аз зерсистемаҳои гуногуни функсионалӣ иборат аст.
  • Кэшҳо инчунин метавонанд дар саросари зерсистема пароканда шаванд, ки маълумоти онҳо кэш мекунанд.

Биёед расмро боз аз нав кашем:

Як абр - ОС сатҳи маркази додаҳо дар Одноклассники

Баҳ! Бале, мо иерархияро мебинем! Ин маънои онро дорад, ки шумо метавонед захираҳоро дар қисмҳои калонтар тақсим кунед: як таҳиягари масъулро ба гиреҳи ин иерархияи ба зерсистемаи функсионалӣ мувофиқ таъин кунед (ба мисли “мусиқӣ” дар расм) ва ба ҳамон сатҳи иерархия квота замима кунед. Ин иерархия инчунин ба мо имкон медиҳад, ки хидматҳоро барои осонии идоракунӣ чандиртар ташкил кунем. Масалан, мо тамоми вебро тақсим мекунем, зеро ин як гурӯҳи хеле калони серверҳост, ба якчанд гурӯҳҳои хурдтар, ки дар расм ҳамчун group1, group2 нишон дода шудаанд.

Бо нест кардани сатрҳои иловагӣ, мо метавонем ҳар як гиреҳи расми худро дар шакли ҳамвортар нависем: group1.web.front, api.music.front, user-cache.cache.

Ҳамин тавр мо ба мафҳуми «навбати иерархӣ» меоем. Он мисли "group1.web.front" ном дорад. Ба он квота барои захираҳо ва ҳуқуқҳои корбар таъин шудааст. Мо ба шахсе аз DevOps ҳуқуқи фиристодани хидматро ба навбат медиҳем ва чунин корманд метавонад дар навбат чизеро оғоз кунад ва шахсе аз OpsDev дорои ҳуқуқи администратор мешавад ва ҳоло ӯ метавонад навбатро идора кунад, одамонро дар он ҷо таъин кунад, ба ин одамон ҳуқуқ диҳед ва ғайра. Хизматҳое, ки дар ин навбат кор мекунанд, дар доираи квотаи навбат кор мекунанд. Агар квотаи ҳисоббарории навбат барои якбора иҷро кардани ҳамаи хидматҳо кифоя набошад, он гоҳ онҳо пайдарпай иҷро карда мешаванд ва ҳамин тавр худи навбатро ташкил медиҳанд.

Биёед хидматҳоро бодиққат дида бароем. Хидмат номи пурраи мувофиқ дорад, ки ҳамеша номи навбатро дар бар мегирад. Он гоҳ хидмати веби пешина ном дорад ok-web.group1.web.front. Ва хидмати сервери барномае, ки ба он дастрасӣ дорад, даъват карда мешавад ok-app.group1.web.front. Ҳар як хидмат манифест дорад, ки тамоми маълумоти заруриро барои ҷойгиркунӣ дар мошинҳои мушаххас муайян мекунад: ин вазифа чӣ қадар захираҳоро истеъмол мекунад, барои он чӣ конфигуратсия лозим аст, чанд нусха бояд дошта бошад, хосиятҳои коркарди нокомиҳои ин хидмат. Ва пас аз он ки хидмат бевосита дар мошинҳо ҷойгир карда шавад, инстансияҳои он пайдо мешаванд. Онҳо инчунин якхела номида мешаванд - ҳамчун рақами мисол ва номи хидмат: 1.ok-web.group1.web.front, 2.ok-web.group1.web.front, …

Ин хеле қулай аст: танҳо ба номи контейнери корӣ нигоҳ карда, мо дарҳол бисёр чизҳоро фаҳмида метавонем.

Акнун биёед муфассалтар бубинем, ки ин ҳолатҳо воқеан чӣ кор мекунанд: вазифаҳо.

Синфҳои ҷудокунии вазифаҳо

Ҳама вазифаҳоро дар OK (ва эҳтимолан дар ҳама ҷо) ба гурӯҳҳо тақсим кардан мумкин аст:

  • Вазифаҳои кӯтоҳмуддат - prod. Барои чунин вазифаҳо ва хидматҳо таъхири посух (таҳқирӣ) хеле муҳим аст, ки то чӣ андоза ҳар як дархост аз ҷониби система коркард карда мешавад. Намунаҳои вазифаҳо: веб фронтҳо, кэшҳо, серверҳои барномавӣ, нигаҳдории OLTP ва ғайра.
  • Масъалаҳои ҳисобкунӣ - партия. Дар ин ҷо суръати коркарди ҳар як дархости мушаххас муҳим нест. Барои онҳо муҳим аст, ки ин вазифа дар як муддати муайян (дароз) чанд ҳисобкуниро анҷом медиҳад. Инҳо ҳама гуна вазифаҳои MapReduce, Hadoop, омӯзиши мошинсозӣ, омор хоҳанд буд.
  • Вазифаҳои заминавӣ - бекор. Барои ин гуна вазифаҳо, на таъхир ва на қобилияти интиқол чандон муҳим нестанд. Ин санҷишҳои гуногун, муҳоҷират, аз нав ҳисобкунӣ ва табдил додани маълумотро аз як формат ба формати дигар дар бар мегирад. Аз як тараф, онҳо ба ҳисобҳои ҳисобшуда монанданд, аз тарафи дигар, барои мо муҳим нест, ки онҳо то чӣ андоза зуд анҷом дода мешаванд.

Биёед бубинем, ки чӣ гуна чунин вазифаҳо захираҳоро, масалан, протсессори марказӣ истеъмол мекунанд.

Вазифаҳои таъхири кӯтоҳ. Чунин вазифа дорои намунаи истеъмоли CPU мебошад, ки ба ин монанд аст:

Як абр - ОС сатҳи маркази додаҳо дар Одноклассники

Дархост аз корбар барои коркард қабул карда мешавад, вазифа ба истифодаи ҳама ядроҳои мавҷудаи CPU оғоз мекунад, онро коркард мекунад, ҷавобро бармегардонад, дархости навбатиро интизор мешавад ва қатъ мегардад. Дархости навбатӣ расид - боз мо ҳама чизеро, ки дар он ҷо буд, интихоб кардем, ҳисоб кардем ва навбати дигарро интизорем.

Барои кафолат додани ҳадди ақали таъхири чунин вазифа, мо бояд захираҳои ҳадди аксареро, ки онро истеъмол мекунад, бигирем ва миқдори зарурии ядроҳоро дар минион захира кунем (мошине, ки супоришро иҷро мекунад). Он гоҳ формулаи фармоиш барои мушкилоти мо чунин хоҳад буд:

alloc: cpu = 4 (max)

ва агар мо машинаи миниони дорой 16 ядро ​​дошта бошем, дар он сурат махз чор чунин вазифаро ба зиммаи он гузоштан мумкин аст. Мо махсусан қайд мекунем, ки истеъмоли миёнаи протсессори чунин вазифаҳо аксар вақт хеле паст аст - ин равшан аст, зеро қисми зиёди вақт супориш интизори дархост аст ва ҳеҷ кор намекунад.

Вазифаҳои ҳисобкунӣ. Намунаи онҳо каме фарқ мекунад:

Як абр - ОС сатҳи маркази додаҳо дар Одноклассники

Истеъмоли миёнаи захираҳои CPU барои чунин вазифаҳо хеле баланд аст. Аксар вақт мо мехоҳем, ки вазифаи ҳисобкунӣ дар муддати муайян анҷом дода шавад, аз ин рӯ мо бояд миқдори камтарини коркардкунандагони онро захира кунем, то тамоми ҳисобкунӣ дар як муддати қобили қабул анҷом дода шавад. Формулаи фармоиши он чунин хоҳад буд:

alloc: cpu = [1,*)

"Лутфан, онро ба миноне ҷойгир кунед, ки дар он ҳадди аққал як ядрои озод мавҷуд аст, ва он гоҳ ҳар қадаре, ки вуҷуд доранд, ҳама чизро мехӯрад."

Дар ин ҷо самаранокии истифода аллакай нисбат ба супоришҳои бо таъхири кӯтоҳ хеле беҳтар аст. Аммо фоида бештар хоҳад буд, агар шумо ҳарду намуди вазифаҳоро дар як мошини минион якҷоя кунед ва захираҳои онро дар роҳ тақсим кунед. Вақте ки супориш бо таъхири кӯтоҳ протсессорро талаб мекунад, онро фавран қабул мекунад ва вақте ки захираҳо дигар лозим нестанд, онҳо ба вазифаи ҳисоббарорӣ интиқол дода мешаванд, яъне чизе монанди ин:

Як абр - ОС сатҳи маркази додаҳо дар Одноклассники

Аммо инро чӣ гуна бояд кард?

Аввалан, биёед ба истеҳсолот ва тақсимоти он назар кунем: cpu = 4. Мо бояд чор ядроро захира кунем. Дар Docker иҷро ин корро бо ду роҳ анҷом додан мумкин аст:

  • Истифодаи опсия --cpuset=1-4, яъне чор ядрои мушаххасро дар мошин ба вазифа ҷудо кунед.
  • Барои истифода --cpuquota=400_000 --cpuperiod=100_000, квота барои вақти протсессор таъин кунед, яъне нишон диҳед, ки ҳар 100 мс вақти воқеӣ вазифа на бештар аз 400 мс вақти протсессорро сарф мекунад. Хамин чор ядро ​​ба даст оварда мешавад.

Аммо кадоме аз ин усулҳо мувофиқ аст?

cpuset хеле ҷолиб менамояд. Вазифа чор ядрои бахшидашуда дорад, ки ин маънои онро дорад, ки кэшҳои протсессор то ҳадди имкон самаранок кор хоҳанд кард. Ин як манфии он низ дорад: мо бояд вазифаи тақсими ҳисобҳоро дар байни ядроҳои холӣшудаи мошин ба ҷои ОС ба дӯш гирем ва ин кори хеле ночиз аст, хусусан агар мо кӯшиш кунем, ки вазифаҳои дастаҷамъиро дар чунин система ҷойгир кунем. мошин. Санҷишҳо нишон доданд, ки вариант бо квота дар ин ҷо беҳтар мувофиқ аст: бо ин роҳ системаи оператсионӣ дар интихоби аслӣ барои иҷрои вазифа дар айни замон озодии бештар дорад ва вақти протсессор самараноктар тақсим карда мешавад.

Биёед бифаҳмем, ки чӣ гуна дар Docker дар асоси шумораи ҳадди ақали ядроҳо қайд кардан мумкин аст. Квота барои супоришҳои гурӯҳӣ дигар татбиқ намешавад, зеро зарурати маҳдуд кардани ҳадди аксар вуҷуд надорад, танҳо кафолат додани ҳадди ақал кофӣ аст. Ва дар ин ҷо вариант хуб мувофиқ аст docker run --cpushares.

Мо розӣ шудем, ки агар партия ҳадди аққал як ядроро кафолат диҳад, пас мо нишон медиҳем --cpushares=1024, ва агар ҳадди аққал ду ядро ​​мавҷуд бошад, мо нишон медиҳем --cpushares=2048. Саҳмияҳои CPU ба ҳеҷ ваҷҳ ба тақсимоти вақти протсессор халал намерасонанд, то он даме, ки он кофӣ аст. Ҳамин тариқ, агар prod дар айни замон тамоми чор ядрои худро истифода набарад, ҳеҷ чизи маҳдудкунандаи вазифаҳои партия вуҷуд надорад ва онҳо метавонанд вақти иловагии протсессорро истифода баранд. Аммо дар шароите, ки протсессори нарасидани протсессорҳо вуҷуд дорад, агар маҳсулот ҳамаи чаҳор ядрои худро истеъмол кунад ва ба квотаи худ расида бошад, вақти боқимондаи протсессор мутаносибан ба cpushares тақсим карда мешавад, яъне дар ҳолати се ядрои озод, як протсессор мешавад. ба супориш бо 1024 cpushare дода, ду нафари бокимонда ба супориши 2048 cpushare дода мешавад.

Аммо истифодаи квота ва саҳмияҳо кофӣ нест. Мо бояд боварӣ ҳосил кунем, ки вазифаи дорои таъхири кӯтоҳ ҳангоми тақсими вақти протсессори протсессор нисбат ба вазифаи партия афзалият дорад. Бе чунин афзалиятнокӣ, вазифаи партия дар лаҳзаи зарурии истеҳсолот тамоми вақти протсессорро мегирад. Дар Docker ягон варианти афзалиятдиҳии контейнер вуҷуд надорад, аммо сиёсати банақшагирии Linux CPU муфид аст. Шумо метавонед дар бораи онҳо муфассал хонед дар ин ҷо, ва дар доираи ин мақола мо ба таври мухтасар аз онҳо мегузарем:

  • SCHED_OTHER
    Бо нобаёнӣ, ҳама равандҳои муқаррарии корбар дар мошини Linux мегиранд.
  • SCHED_BATCH
    Барои равандҳои ресурсталаб пешбинӣ шудааст. Ҳангоми ҷойгир кардани супориш дар протсессор, ҷазои ба истилоҳ фаъолсозӣ ҷорӣ карда мешавад: чунин вазифа эҳтимоли камтар гирифтани захираҳои протсессориро дорад, агар он дар айни замон аз ҷониби супориш бо SCHED_OTHER истифода шавад
  • SCHED_IDLE
    Раванди замина бо афзалияти хеле паст, ҳатто камтар аз хуб -19. Мо китобхонаи кушодаи худро истифода мебарем як-нио, бо мақсади муқаррар кардани сиёсати зарурӣ ҳангоми оғоз кардани контейнер тавассути занг

one.nio.os.Proc.sched_setscheduler( pid, Proc.SCHED_IDLE )

Аммо ҳатто агар шумо дар Java барнома надиҳед, ҳамин корро бо истифода аз фармони chrt иҷро кардан мумкин аст:

chrt -i 0 $pid

Биёед тамоми сатҳҳои изолятсияи худро дар як ҷадвал ҷамъбаст кунем, то возеҳ бошад:

Синфи изолятсия
Намунаи Alloc
Вариантҳои иҷрои Docker
sched_setscheduler chrt*

PROD
CPU = 4
--cpuquota=400000 --cpuperiod=100000
SCHED_OTHER

Бекор
CPU = [1, *)
--cpushares=1024
SCHED_BATCH

Idle
CPU = [2, *)
--cpushares=2048
SCHED_IDLE

*Агар шумо chrt-ро аз дохили контейнер иҷро кунед, шояд ба шумо қобилияти sys_nice лозим шавад, зеро ба таври нобаёнӣ Docker ҳангоми оғоз кардани контейнер ин қобилиятро нест мекунад.

Аммо вазифаҳо на танҳо протсессор, балки трафикро низ истеъмол мекунанд, ки ба таъхири вазифаи шабака ҳатто бештар аз тақсимоти нодурусти захираҳои протсессор таъсир мерасонад. Аз ин рӯ, мо табиатан мехоҳем, ки барои трафик маҳз ҳамон тасвирро ба даст орем. Яъне, вақте ки вазифаи истеҳсолӣ якчанд бастаҳоро ба шабака мефиристад, мо суръати максималиро маҳдуд мекунем (формула Ҷудо: lan = [*,500mbps) ), ки бо кадом продюсер ин корро карда метавонад. Ва барои партия мо танҳо ҳадди ақали интиқолро кафолат медиҳем, аммо ҳадди аксарро маҳдуд намекунем (формула ҷудокунӣ: lan = [10Mbps,*) ) Дар ин маврид трафики махсулот бояд нисбат ба супоришхои партия афзалият дошта бошад.
Дар ин ҷо Docker ягон ибтидоӣ надорад, ки мо онҳоро истифода барем. Аммо он ба ёрии мо меояд Назорати трафики Linux. Мо бо мадади интизом ба натицаи дилхох ноил гардидем Каҷи хидмати иерархивии одилона. Бо кӯмаки он, мо ду синфи трафикро ҷудо мекунем: маҳсулоти афзалиятноки баланд ва партияи кам афзалиятнок / бекор. Дар натиҷа, конфигуратсияи трафики содиротӣ чунин аст:

Як абр - ОС сатҳи маркази додаҳо дар Одноклассники

дар ин ҷо 1:0 «решаи qdisc»-и интизоми hsfc аст; 1:1 - синфи кӯдаки hsfc бо маҳдудияти умумии фарохмаҷрои 8 Гбит/с, ки дар зери он синфҳои кӯдаконаи ҳама контейнерҳо ҷойгир шудаанд; 1:2 - синфи кӯдаки hsfc барои ҳама вазифаҳои дастаҷамъӣ ва бекор бо маҳдудияти "динамикӣ" умумӣ аст, ки дар зер баррасӣ мешавад. Синфҳои боқимондаи кӯдаконаи hsfc синфҳои бахшидашуда барои контейнерҳои истеҳсолии ҳозира бо маҳдудиятҳои мувофиқ ба манифестҳои онҳо - 450 ва 400 Мбит/с мебошанд. Ба ҳар як синфи hsfc як навбати qdisc fq ё fq_codel таъин карда мешавад, вобаста ба версияи ядрои Linux, барои пешгирӣ кардани талафи бастаҳо ҳангоми таркишҳои трафик.

Одатан, фанҳои tc барои афзалият додан танҳо трафики содиротӣ хизмат мекунанд. Аммо мо мехоҳем, ки трафики даромадро низ авлавият диҳем - дар ниҳоят, баъзе вазифаҳои гурӯҳӣ метавонанд ба осонӣ тамоми канали воридотӣ интихоб карда, масалан, миқдори зиёди маълумоти воридшударо барои харита ва камкунӣ қабул кунанд. Барои ин мо модулро истифода мебарем агарб, ки барои ҳар як интерфейси шабакавӣ интерфейси маҷозии ifbX эҷод мекунад ва трафики даромадро аз интерфейс ба трафики содиротӣ дар ifbX равона мекунад. Ғайр аз он, барои ifbX, ҳама фанҳои якхела барои назорати трафики содиротӣ кор мекунанд, ки барои онҳо конфигуратсияи hsfc хеле монанд хоҳад буд:

Як абр - ОС сатҳи маркази додаҳо дар Одноклассники

Дар давоми таҷрибаҳо мо фаҳмидем, ки hsfc натиҷаҳои беҳтаринро дар ҳоле нишон медиҳад, ки синфи 1: 2 трафики ғайридавлатии партия/бекорӣ дар мошинҳои минион на бештар аз як хатти озод маҳдуд аст. Дар акси ҳол, трафики афзалиятнок ба таъхири вазифаҳои истеҳсолӣ таъсири аз ҳад зиёд мерасонад. miniond миқдори ҷории фарохмаҷрои озодро ҳар сония муайян мекунад, ки истеъмоли миёнаи трафикро барои ҳамаи вазифаҳои маҳсулоти як миниони додашуда чен мекунад. Як абр - ОС сатҳи маркази додаҳо дар Одноклассники ва тарҳ кардани он аз маҷрои интерфейси шабака Як абр - ОС сатҳи маркази додаҳо дар Одноклассники бо маржаи хурд, яъне.

Як абр - ОС сатҳи маркази додаҳо дар Одноклассники

Бандҳо барои трафики даромад ва баромад мустақилона муайян карда мешаванд. Ва мувофиқи арзишҳои нав, miniond маҳдудияти синфҳои афзалиятнокро 1: 2 аз нав танзим мекунад.

Ҳамин тариқ, мо ҳар се синфи изолятсияро амалӣ кардем: истеҳсол, партия ва бекор. Ин синфҳо ба хусусиятҳои иҷрои вазифаҳо таъсири калон мерасонанд. Аз ин рӯ, мо тасмим гирифтем, ки ин атрибутро дар болои иерархия ҷойгир кунем, то ҳангоми дидани номи навбати иерархӣ фавран маълум шавад, ки мо бо чӣ кор карда истодаем:

Як абр - ОС сатҳи маркази додаҳо дар Одноклассники

Хамаи дустони мо Веб и мусиқӣ фронтҳо баъд дар иерархия зери истеҳсол ҷойгир карда мешаванд. Масалан, дар зери партия, биёед хидматро ҷойгир кунем каталоги мусиқӣ, ки давра ба давра феҳристи трекҳоро аз маҷмӯи файлҳои mp3, ки ба Одноклассники бор карда шудаанд, тартиб медиҳад. Намунаи хидмате, ки дар ҳолати бекор аст, метавонад бошад трансформатори мусиқӣ, ки сатҳи баландии мусиқиро ба эътидол меорад.

Бо аз нав хориҷ кардани сатрҳои иловагӣ, мо метавонем номҳои хидмати худро бо илова кардани синфи изолятсияи вазифа ба охири номи пурраи хадамот ҳамвортар нависем: web.front.prod, catalog.music.batch, трансформатор.мусиқӣ.бекор.

Ва ҳоло, ба номи хидмат нигоҳ карда, мо на танҳо дарк мекунем, ки он чӣ гуна вазифаро иҷро мекунад, балки синфи изолятсияи он, яъне танқидии он ва ғайра.

Ҳама чиз бузург аст, аммо як ҳақиқати талх ҳаст. Корҳоеро, ки дар як мошин иҷро мешаванд, комилан ҷудо кардан ғайриимкон аст.

Он чизе ки мо ба даст овардем: агар партия ба таври интенсивӣ истеъмол кунад танҳо Захираҳои CPU, пас нақшаи CPU-и дарунсохт Linux кори худро хеле хуб иҷро мекунад ва ба вазифаи истеҳсолӣ амалан ҳеҷ таъсире надорад. Аммо агар ин вазифаи партия ба таври фаъол бо хотира кор кунад, пас таъсири мутақобила аллакай пайдо мешавад. Ин аз он сабаб рӯй медиҳад, ки супориши истеҳсолӣ аз кэшҳои хотираи протсессори протсессори "шуста" мешавад - дар натиҷа, гум шудани кэш зиёд мешавад ва протсессор вазифаи маҳсулотро сусттар коркард мекунад. Чунин вазифаи партия метавонад таъхири контейнери маъмулии моро 10% зиёд кунад.

Ҷудо кардани трафик боз ҳам мушкилтар аст, зеро кортҳои шабакавии муосир навбати дохили бастаҳо доранд. Агар бастаи вазифаи партия аввал ба он ҷо расад, он гоҳ он аввалин шуда тавассути кабел интиқол дода мешавад ва дар ин бора ҳеҷ кор карда намешавад.

Илова бар ин, мо то ҳол танҳо тавонистем, ки масъалаи афзалият додани трафики TCP-ро ҳал кунем: равиши hsfc барои UDP кор намекунад. Ва ҳатто дар ҳолати трафики TCP, агар супориши партия трафики зиёдро тавлид кунад, ин инчунин тақрибан 10% афзоиши таъхири супориши истеҳсолиро медиҳад.

таҳаммулпазирии хатогиҳо

Яке аз ҳадафҳо ҳангоми таҳияи як-абр беҳтар кардани таҳаммулпазирии хатогиҳои Одноклассники буд. Аз ин рӯ, дар оянда ман мехоҳам сенарияҳои имконпазири нокомиҳо ва садамаҳоро муфассалтар баррасӣ кунам. Биёед бо як сенарияи оддӣ оғоз кунем - нокомии контейнер.

Худи контейнер метавонад бо якчанд роҳ ноком шавад. Ин метавонад як навъ таҷриба, иштибоҳ ё иштибоҳ дар манифест бошад, ки бинобар он вазифаи истеҳсолӣ нисбат ба манифест нишондодашуда захираҳои бештарро истеъмол мекунад. Мо як ҳолат доштем: як таҳиякунанда як алгоритми мураккабро амалӣ кард, онро борҳо аз нав кор кард, худро аз ҳад зиёд фикр кард ва чунон парешон шуд, ки дар ниҳоят мушкилот ба як ҳалқаи ғайриоддӣ табдил ёфт. Ва азбаски вазифаи истеҳсолӣ нисбат ба ҳамаи дигарон дар ҳамон минонҳо афзалияти баландтар дорад, он ба истеъмол кардани тамоми захираҳои протсессори мавҷуда шурӯъ кард. Дар ин вазъият, ҷудокунӣ, ё дурусттар квотаи вақти CPU, рӯзро наҷот дод. Агар ба супориш квота ҷудо карда шавад, супориш бештар истеъмол намекунад. Аз ин ру, партия ва дигар вазифадои истедсолие, ки дар як дастгод ичро мешаванд, чизеро пай набурданд.

Мушкилоти дуюми имконпазир афтидани контейнер мебошад. Ва дар ин ҷо сиёсатҳои бозоғозӣ моро наҷот медиҳанд, ҳама онҳоро медонад, худи Докер кори хуб мекунад. Қариб ҳамаи вазифаҳои истеҳсолӣ сиёсати ҳамеша бозоғозӣ доранд. Баъзан мо on_failure-ро барои вазифаҳои дастаҷамъӣ ё барои ислоҳи контейнерҳои маҳсулот истифода мебарем.

Шумо чӣ кор карда метавонед, агар тамоми минон дастнорас бошад?

Аён аст, ки контейнерро дар мошини дигар кор кунед. Қисми ҷолиб ин аст, ки бо суроғаҳои IP-и ба контейнер таъиншуда чӣ рӯй медиҳад.

Мо метавонем ба контейнерҳо суроғаҳои IP-ро бо мошинҳои минионе, ки дар он контейнерҳо кор мекунанд, таъин кунем. Сипас, вақте ки контейнер дар мошини дигар ба кор андохта мешавад, суроғаи IP-и он тағир меёбад ва ҳама муштариён бояд фаҳманд, ки контейнер кӯчонида шудааст ва акнун онҳо бояд ба суроғаи дигар раванд, ки хидмати алоҳидаи Discovery Services-ро талаб мекунад.

Кашфи хидмат қулай аст. Дар бозор бисёр роҳҳои ҳалли дараҷаҳои гуногуни таҳаммулпазирӣ ба хатогиҳо барои ташкили феҳристи хидматҳо мавҷуданд. Аксар вақт ин гуна қарорҳо мантиқи тавозуни сарбориро амалӣ мекунанд, конфигуратсияи иловагиро дар шакли нигаҳдории КВ нигоҳ медоранд ва ғайра.
Вале мо мехостем, ки аз зарурати чорй намудани реестри алохида даст кашем, зеро ин маънои чорй намудани системаи чиддиро дорад, ки тамоми хизматрасонихо дар истехсолот истифода мебаранд. Ин маънои онро дорад, ки ин як нуқтаи эҳтимолии нокомӣ аст ва шумо бояд як роҳи хеле таҳаммулпазири хатогиро интихоб кунед ё таҳия кунед, ки баръало хеле душвор, вақт ва гарон аст.

Ва боз як камбудии калон: барои он ки инфрасохтори кӯҳнаи мо бо инфрасохтори нав кор кунад, мо бояд комилан ҳама вазифаҳоро аз нав нависем, то ягон намуди системаи Discovery Serviceро истифода барем. Кори зиёд вуҷуд дорад ва дар баъзе ҷойҳо он дар бораи дастгоҳҳои сатҳи паст, ки дар сатҳи ядрои OS ё бевосита бо сахтафзор кор мекунанд, қариб ғайриимкон аст. Амалисозии ин функсия бо истифода аз намунаҳои ҳалли муқарраршуда, ба монанди мошини паҳлӯ Дар баъзе ҷойҳо бори иловагӣ, дар дигар ҷойҳо мушкилии амалиёт ва сенарияи нокомии иловагиро дорад. Мо намехостем, ки чизҳоро душвор созем, аз ин рӯ мо тасмим гирифтем, ки истифодаи Discovery-ро ихтиёрӣ гардонем.

Дар як абр, IP аз контейнер пайравӣ мекунад, яъне ҳар як мисоли вазифа суроғаи IP-и худро дорад. Ин суроға "статикӣ" аст: он ба ҳар як мисол таъин карда мешавад, вақте ки хидмат бори аввал ба абр фиристода мешавад. Агар хадамот дар давоми умри худ шумораи инстансияҳои гуногун дошта бошад, пас дар ниҳоят ба он суроғаҳои IP таъин карда мешаванд, ки шумораи ҳадди аксар вуҷуд доранд.

Минбаъд ин адресхо тагйир намеёбанд: онхо як маротиба таъин карда мешаванд ва дар давоми тамоми давраи хизмат дар истехсолот вучуд доранд. Суроғаҳои IP контейнерҳоро дар саросари шабака пайгирӣ мекунанд. Агар контейнер ба минони дигар дода шавад, он гоҳ суроға аз он пайравӣ мекунад.

Ҳамин тариқ, харитасозии номи хидмат ба рӯйхати суроғаҳои IP-и он хеле кам тағйир меёбад. Агар шумо бори дигар ба номҳои хидматҳое, ки мо дар аввали мақола зикр кардем, назар андозед (1.ok-web.group1.web.front.prod, 2.ok-web.group1.web.front.prod, …), мо мебинем, ки онҳо ба FQDN-ҳои дар DNS истифодашаванда шабоҳат доранд. Дуруст аст, барои харитаи номҳои мисолҳои хидматрасонӣ ба суроғаҳои IP-и онҳо, мо протоколи DNS-ро истифода мебарем. Ғайр аз он, ин DNS ҳама суроғаҳои IP-и ҳифзшудаи ҳама контейнерҳоро бармегардонад - ҳам иҷрошаванда ва ҳам қатъшуда (биёед, ки се реплика истифода мешавад ва мо дар он ҷо панҷ суроғаи ҳифзшуда дорем - ҳама панҷ суроға баргардонида мешаванд). Мизоҷон, ки ин маълумотро ба даст овардаанд, кӯшиш мекунанд, ки бо ҳамаи панҷ реплика робита барқарор кунанд - ва ҳамин тавр онҳое, ки кор мекунанд, муайян мекунанд. Ин хосият барои муайян кардани мавҷудият хеле боэътимодтар аст; он на DNS ва на Discovery-ро дар бар намегирад, яъне маънои онро дорад, ки дар таъмини мувофиқати иттилоот ва таҳаммулпазирии хатогиҳои ин системаҳо мушкилоти душворе барои ҳалли онҳо вуҷуд надорад. Ғайр аз он, дар хидматҳои муҳиме, ки кори тамоми портал аз он вобаста аст, мо наметавонем DNS-ро умуман истифода набарем, балки танҳо суроғаҳои IP-ро ба конфигуратсия ворид кунед.

Татбиқи чунин интиқоли IP дар паси контейнерҳо метавонад ғайриоддӣ бошад - ва мо мебинем, ки чӣ тавр он бо мисоли зерин кор мекунад:

Як абр - ОС сатҳи маркази додаҳо дар Одноклассники

Фарз мекунем, ки устоди як-абр ба минони М1 фармон медиҳад, ки давад 1.ok-web.group1.web.front.prod бо суроғаи 1.1.1.1. Дар минион кор мекунад Парранда, ки ин суроғаро ба серверҳои махсус таблиғ мекунад инъикоскунандаи маршрут. Охиринҳо сеанси BGP бо сахтафзори шабакавӣ доранд, ки ба он масири суроғаи 1.1.1.1 дар M1 тарҷума мешавад. M1 пакетҳоро дар дохили контейнер бо истифода аз Linux интиқол медиҳад. Се сервери рефлектори масир вуҷуд дорад, зеро ин як қисми хеле муҳими инфрасохтори як абрӣ аст - бе онҳо, шабака дар як абр кор намекунад. Мо онҳоро дар рафҳои гуногун ҷойгир мекунем, агар имконпазир бошад, ки дар утоқҳои гуногуни маркази додаҳо ҷойгиранд, то эҳтимолияти нокомии ҳар се дар як вақт кам карда шавад.

Акнун фарз кунем, ки робитаи байни устоди як-абр ва миниони M1 гум шудааст. Устоди як-абр акнун аз рӯи фарзия амал хоҳад кард, ки M1 комилан ноком шудааст. Яъне, он ба минони M2 фармон медиҳад, ки оғоз кунад web.group1.web.front.prod бо ҳамон суроғаи 1.1.1.1. Ҳоло мо дар шабака барои 1.1.1.1 ду масири ба ҳам мухолиф дорем: дар M1 ва M2. Барои ҳалли чунин ихтилофҳо, мо дискриминатори Multi Exit-ро истифода мебарем, ки дар эълони BGP зикр шудааст. Ин рақамест, ки вазни масири эълоншударо нишон медиҳад. Дар байни хатсайрҳои ба ҳам зид, масир бо арзиши ВРИС камтар интихоб карда мешавад. Устоди як абр ВРИС-ро ҳамчун қисми ҷудонашавандаи суроғаҳои IP контейнер дастгирӣ мекунад. Бори аввал, суроға бо ВРИС ба қадри кофӣ калон навишта мешавад = 1.Дар ҳолати чунин интиқоли контейнери фавқулодда, усто ВРИС-ро коҳиш медиҳад ва M000 аллакай фармони таблиғи суроғаи 000-ро бо ВРИС мегирад = 2. Инстансияе, ки дар M1.1.1.1 кор мекунад, дар ин ҳолат боқӣ мемонад, ки ҳеҷ гуна робита вуҷуд надорад ва сарнавишти минбаъдаи ӯ то он даме, ки робита бо устод барқарор карда нашавад, вақте ки ӯ мисли акси кӯҳна қатъ карда мешавад, каме манфиатдор аст.

Садамаҳо

Ҳама системаҳои идоракунии маркази додаҳо ҳамеша хатогиҳои хурдро ба таври қобили қабул ҳал мекунанд. Кариб дар хама чо аз зарфхо пур кардани контейнерхо норма аст.

Биёед бубинем, ки чӣ тавр мо дар ҳолати фавқулодда, масалан, нокомии барқ ​​дар як ё якчанд ҳуҷраи маркази додаҳо кор мекунем.

Садама барои системаи идоракунии маркази додаҳо чӣ маъно дорад? Пеш аз хама, ин корношоямии азими якдафъаинаи бисьёр машинахо мебошад ва системаи идоракунй бояд дар як вакт бисьёр контейнерхоро гузаронад. Аммо агар фалокат миқёси хеле калон дошта бошад, пас он метавонад рӯй диҳад, ки ҳама вазифаҳоро ба дигар минонҳо дубора тақсим кардан мумкин нест, зеро иқтидори манбаи маркази додаҳо аз 100% сарборӣ кам мешавад.

Аксар вакт ходисахои нохуш бо корношоямии кабати идоракунй ба амал меоянд. Ин метавонад аз сабаби корношоямии таҷҳизоти он рӯй диҳад, аммо аксар вақт аз сабаби санҷида нашудани фалокатҳо ва худи қабати идоракунӣ аз сабаби зиёд шудани сарборӣ меафтад.

Шумо дар бораи ҳамаи ин чӣ кор карда метавонед?

Муҳоҷирати оммавӣ маънои онро дорад, ки дар инфрасохтор шумораи зиёди фаъолиятҳо, муҳоҷират ва ҷойгиркунӣ вуҷуд дорад. Ҳар як муҳоҷир метавонад барои расонидани тасвирҳои контейнерӣ ба минонҳо, ба кор андохтан ва ба кор андохтани контейнерҳо ва ғайра вақти лозимаро талаб кунад. Аз ин рӯ, беҳтар аст, ки вазифаҳои муҳимтар пеш аз вазифаҳои камтар муҳим оғоз карда шаванд.

Биёед бори дигар ба иерархияи хидматҳое, ки мо бо онҳо шинос ҳастем, назар андозем ва кӯшиш кунем, ки кадом вазифаҳоро аввал иҷро кунем.

Як абр - ОС сатҳи маркази додаҳо дар Одноклассники

Албатта, ин равандҳое мебошанд, ки бевосита дар коркарди дархостҳои корбарон иштирок мекунанд, яъне прод. Мо инро бо афзалияти ҷойгиркунӣ — рақаме, ки метавонад ба навбат таъин карда шавад. Агар навбат афзалияти баландтар дошта бошад, хидматҳои он дар ҷои аввал гузошта мешаванд.

Дар бораи маҳсулот мо афзалиятҳои баландтарро таъин мекунем, 0; дар партия - каме пасттар, 100; дар бекорӣ - ҳатто камтар, 200. Афзалиятҳо ба таври иерархӣ истифода мешаванд. Ҳама вазифаҳои поинтар дар иерархия афзалияти мувофиқ доранд. Агар мо хоҳем, ки кэшҳои дохили маҳсулот пеш аз фронтҳо оғоз карда шаванд, пас мо афзалиятҳоро ба кэш = 0 ва ба зернавбатҳои пеш = 1 таъин мекунем. пас, он гоҳ мо метавонем афзалияти камтарро ба охирин таъин кунем - 10.

Мушкилоти навбатӣ нарасидани захираҳост. Ҳамин тариқ, миқдори зиёди таҷҳизот, тамоми толорҳои маркази додаҳо ноком шуданд ва мо он қадар хидматҳоро дубора ба кор андохтем, ки ҳоло барои ҳама захираҳо кофӣ нестанд. Шумо бояд қарор кунед, ки кадом вазифаҳоро қурбонӣ кунед, то хидматҳои асосии муҳимро идома диҳед.

Як абр - ОС сатҳи маркази додаҳо дар Одноклассники

Баръакси афзалияти ҷойгиркунӣ, мо наметавонем ҳама вазифаҳои партияро бетартиб қурбон кунем; баъзеи онҳо барои кори портал муҳиманд. Аз ин рӯ, мо алоҳида таъкид кардем афзалияти афзалиятнок вазифахо. Вақте ки ҷойгир карда мешавад, вазифаи авлавияти баландтар метавонад пеш аз он, яъне қатъ, вазифаи аввалиндараҷаи пасттарро, агар дигар минонҳои ройгон вуҷуд надошта бошанд. Дар ин ҳолат, вазифаи дорои афзалияти паст эҳтимолан беҷо мемонад, яъне дигар барои он минони мувофиқ бо захираҳои кофии ройгон вуҷуд нахоҳад дошт.

Дар иерархияи мо, муайян кардани афзалияти афзалиятнок хеле осон аст, то ки вазифаҳои истеҳсолӣ ва дастаҷамъӣ вазифаҳои бекориро пешгирӣ кунанд ё қатъ кунанд, аммо на ҳамдигар, бо муайян кардани афзалият барои бекорӣ ба 200. Ҳамон тавре ки дар мавриди афзалияти ҷойгиркунӣ, мо метавонад иерархияи моро барои тавсифи қоидаҳои мураккабтар истифода барад. Масалан, биёед нишон диҳем, ки мо функсияи мусиқиро қурбон мекунем, агар мо барои веб-портали асосӣ захираҳои кофӣ надорем ва афзалиятро барои гиреҳҳои мувофиқ поёнтар муқаррар кунем: 10.

Тамоми садамаҳои DC

Чаро тамоми маркази додаҳо ноком шуда метавонад? Элемент. Як пости хуб буд туфон ба кори маркази маълумотхо таъсир расонд. Унсурҳоро метавон одамони бесарпаноҳ ҳисоб кард, ки як вақтҳо оптикаро дар коллектор сӯзонданд ва маркази додаҳо тамосро бо дигар сайтҳо комилан аз даст дод. Сабаби нокомӣ низ метавонад омили инсонӣ бошад: оператор чунин фармон медиҳад, ки тамоми маркази додаҳо меафтад. Ин метавонад бо сабаби хатогии калон рӯй диҳад. Умуман, пошхӯрии марказҳои додаҳо камназир нест. Ин дар як чанд моҳ як маротиба бо мо рӯй медиҳад.

Ва ин аст он чизе ки мо мекунем, то касе аз твитнависии #alive пешгирӣ кунем.

Стратегияи аввал ҷудошавӣ аст. Ҳар як намунаи як абрӣ ҷудо карда шудааст ва метавонад мошинҳоро танҳо дар як маркази додаҳо идора кунад. Яъне, аз даст додани абр бо сабаби хатогиҳо ё фармонҳои нодурусти оператор ин аз даст додани танҳо як маркази додаҳо мебошад. Мо ба ин омодаем: мо сиёсати зиёдатӣ дорем, ки дар он нусхаҳои барнома ва додаҳо дар ҳама марказҳои додаҳо ҷойгир шудаанд. Мо пойгоҳи додаҳои ба хатогиҳо тобоварро истифода мебарем ва мунтазам барои нокомиҳо озмоиш мекунем.
Аз имрӯз мо чор маркази додаҳо дорем, ки ин маънои чаҳор мисоли алоҳида ва комилан ҷудошудаи як абрро дорад.

Ин равиш на танҳо аз шикасти ҷисмонӣ муҳофизат мекунад, балки метавонад аз хатогиҳои оператор низ муҳофизат кунад.

Бо омили инсонй боз чй кор кардан мумкин аст? Вақте ки оператор ба абр ягон фармони аҷиб ё эҳтимолан хатарнок медиҳад, метавонад ногаҳон аз ӯ хоҳиш кунад, ки як масъалаи хурдро ҳал кунад, то бубинад, ки то чӣ андоза хуб фикр мекард. Масалан, агар ин як навъ таваққуфи оммавии бисёр репликаҳо ё танҳо як фармони аҷиб бошад - кам кардани шумораи репликаҳо ё тағир додани номи тасвир, на танҳо рақами версияи манифести нав.

Як абр - ОС сатҳи маркази додаҳо дар Одноклассники

Натиҷаҳо

Хусусиятҳои фарқкунандаи як абр:

  • Схемаи номгузории иерархӣ ва визуалӣ барои хидматҳо ва контейнерҳо, ки ба шумо имкон медихад хеле зуд фахмед, ки вазифа чй гуна аст, ба чй дахл дорад ва он чй тавр кор мекунад ва барои он кй масъул аст.
  • Мо ба кор мебарем техникаи якҷоя кардани маҳсулот ва партиявазифахои мин-баъд хам бехтар намудани самараи таксимоти мошинхо. Ба ҷои cpuset мо квотаҳои CPU, саҳмияҳо, сиёсати ҷадвали CPU ва Linux QoS -ро истифода мебарем.
  • Контейнерҳоро, ки дар як мошин кор мекунанд, комилан ҷудо кардан имкон надошт, аммо таъсири мутақобилаи онҳо дар ҳудуди 20% боқӣ мемонад.
  • Ташкили хидматҳо дар иерархия бо истифода аз барқарорсозии автоматии офатҳои табиӣ кӯмак мекунад афзалиятҳои ҷойгиркунӣ ва афзалият.

Саволҳо

Чаро мо халли тайёрро нагирифтем?

  • Синфҳои гуногуни ҷудокунии вазифа ҳангоми ҷойгир кардани минонҳо мантиқи гуногунро талаб мекунанд. Агар вазифаҳои истеҳсолиро тавассути захира кардани захираҳо ҷойгир кардан мумкин бошад, пас вазифаҳои гурӯҳӣ ва бекорӣ бояд ҷойгир карда шаванд, ки истифодаи воқеии захираҳоро дар мошинҳои minion пайгирӣ кунанд.
  • Зарурати ба назар гирифтани захираҳое, ки аз ҷониби вазифаҳо истифода мешаванд, ба монанди:
    • фарохмаҷрои шабака;
    • намудхо ва «шпиндельхои» дискхо.
  • Зарурати нишон додани афзалиятҳои хадамот ҳангоми вокуниш ба ҳолати изтирорӣ, ҳуқуқ ва квотаҳои фармонҳо барои захираҳо, ки бо истифода аз навбатҳои иерархӣ дар як абр ҳал карда мешаванд.
  • Зарурати доштани номгузории одамон ба контейнерҳо барои кам кардани вақти вокуниш ба садамаҳо ва ҳодисаҳо
  • Имконнопазирии татбиқи якдафъаинаи Service Discovery; зарурати ҳамзистии дарозмуддат бо вазифаҳои дар ҳостҳои сахтафзор ҷойгиршуда - чизе, ки тавассути суроғаҳои IP-и "статикӣ" пас аз контейнерҳо ҳал карда мешавад ва дар натиҷа, зарурати ҳамгироии беназир бо инфрасохтори бузурги шабака.

Ҳамаи ин вазифаҳо тағироти ҷиддии қарорҳои мавҷударо талаб мекунанд, ки ба мо мувофиқ бошанд ва миқдори корҳоро арзёбӣ карда, мо фаҳмидем, ки мо метавонем ҳалли худро бо тақрибан ҳамон хароҷоти меҳнатӣ таҳия кунем. Аммо ҳалли шумо барои кор кардан ва таҳия кардан хеле осонтар хоҳад буд - он дорои абстраксияҳои нолозим нест, ки функсияҳоеро, ки ба мо лозим нестанд, дастгирӣ мекунанд.

Ба онҳое, ки сатрҳои охиринро мехонанд, барои сабру таҳаммул ва таваҷҷӯҳатон ташаккур!

Манбаъ: will.com

Илова Эзоҳ