MÄs esam izstrÄdÄjuÅ”i datu centra tÄ«kla dizainu, kas ļauj izvietot skaitļoÅ”anas klasterus, kas ir lielÄki par 100 tÅ«kstoÅ”iem serveru ar maksimÄlo bisekcijas joslas platumu, kas pÄrsniedz vienu petabaitu sekundÄ.
No Dmitrija Afanasjeva ziÅojuma jÅ«s uzzinÄsit par jaunÄ dizaina pamatprincipiem, mÄrogoÅ”anas topoloÄ£ijÄm, ar to saistÄ«tÄm problÄmÄm, to risinÄÅ”anas iespÄjÄm, mÅ«sdienu tÄ«kla ierÄ«Äu pÄradresÄcijas plaknes funkciju marÅ”rutÄÅ”anas un mÄrogoÅ”anas iespÄjÄm āblÄ«vi savienotÄsā vietÄs. topoloÄ£ijas ar lielu skaitu ECMP marÅ”rutu. TurklÄt Dima Ä«sumÄ stÄstÄ«ja par ÄrÄjÄ savienojuma organizÄÅ”anu, fizisko slÄni, kabeļu sistÄmu un veidiem, kÄ vÄl vairÄk palielinÄt jaudu.
- Labdien visiem! Mani sauc Dmitrijs Afanasjevs, es esmu Yandex tÄ«kla arhitekts un galvenokÄrt projektÄju datu centru tÄ«klus.
Mans stÄsts bÅ«s par atjauninÄto Yandex datu centru tÄ«klu. Tas lielÄ mÄrÄ ir mÅ«su dizaina evolÅ«cija, taÄu tajÄ paÅ”Ä laikÄ ir daži jauni elementi. Å Ä« ir pÄrskata prezentÄcija, jo bija daudz informÄcijas, kas jÄiepako nelielÄ laika posmÄ. SÄksim ar loÄ£iskÄs topoloÄ£ijas izvÄli. PÄc tam bÅ«s pÄrskats par vadÄ«bas plakni un problÄmÄm ar datu plaknes mÄrogojamÄ«bu, izvÄle, kas notiks fiziskajÄ lÄ«menÄ«, un mÄs apskatÄ«sim dažas ierÄ«Äu funkcijas. Pieskarsimies nedaudz tam, kas notiek datu centrÄ ar MPLS, par ko mÄs runÄjÄm pirms kÄda laika.
TÄtad, kas ir Yandex slodzes un pakalpojumu ziÅÄ? Yandex ir tipisks hiperskalers. Ja mÄs skatÄmies uz lietotÄjiem, mÄs galvenokÄrt apstrÄdÄjam lietotÄju pieprasÄ«jumus. ArÄ« dažÄdi straumÄÅ”anas pakalpojumi un datu pÄrraide, jo mums ir arÄ« uzglabÄÅ”anas pakalpojumi. Ja tuvÄk aizmugursistÄmai, tad tur parÄdÄs infrastruktÅ«ras slodzes un pakalpojumi, piemÄram, sadalÄ«ta objektu krÄtuve, datu replikÄcija un, protams, pastÄvÄ«gas rindas. Viens no galvenajiem darba slodzes veidiem ir MapReduce un lÄ«dzÄ«gas sistÄmas, straumju apstrÄde, maŔīnmÄcÄ«Å”anÄs utt.
KÄ ir ar infrastruktÅ«ru, uz kuras tas viss notiek? Atkal mÄs esam diezgan tipisks hiperskalotÄjs, lai gan mÄs, iespÄjams, esam nedaudz tuvÄk spektra mazÄkajai hiperskalera pusei. Bet mums ir visas Ä«paŔības. MÄs izmantojam preÄu aparatÅ«ru un horizontÄlo mÄrogoÅ”anu, kur vien iespÄjams. Mums ir pilna resursu apvienoÅ”ana: mÄs nestrÄdÄjam ar atseviŔķÄm maŔīnÄm, atseviŔķiem plauktiem, bet apvienojam tos lielÄ savstarpÄji aizvietojamu resursu baseinÄ ar dažiem papildu pakalpojumiem, kas nodarbojas ar plÄnoÅ”anu un sadali, un strÄdÄjam ar visu Å”o kopu.
TÄtad mums ir nÄkamais lÄ«menis ā operÄtÄjsistÄma skaitļoÅ”anas klastera lÄ«menÄ«. Ir ļoti svarÄ«gi, lai mÄs pilnÄ«bÄ kontrolÄtu izmantojamo tehnoloÄ£iju kopumu. MÄs kontrolÄjam galapunktus (saimniekus), tÄ«klu un programmatÅ«ras steku.
Mums ir vairÄki lieli datu centri KrievijÄ un ÄrvalstÄ«s. Tos vieno mugurkauls, kas izmanto MPLS tehnoloÄ£iju. MÅ«su iekÅ”ÄjÄ infrastruktÅ«ra gandrÄ«z pilnÄ«bÄ ir veidota uz IPv6, taÄu, tÄ kÄ mums ir jÄapkalpo ÄrÄjÄ trafika, kas joprojÄm galvenokÄrt nÄk, izmantojot IPv4, mums kaut kÄdÄ veidÄ ir jÄnogÄdÄ pieprasÄ«jumi, kas tiek saÅemti, izmantojot IPv4, uz priekÅ”gala serveriem un nedaudz vairÄk jÄiet uz ÄrÄjo IPv4 internetu. piemÄram, indeksÄÅ”anai.
DažÄs pÄdÄjÄs datu centru tÄ«kla projektu iterÄcijÄs ir izmantotas daudzslÄÅu Clos topoloÄ£ijas, un tÄs ir tikai L3. Pirms kÄda laika izgÄjÄm no L2 un atviegloti uzelpojÄm. Visbeidzot, mÅ«su infrastruktÅ«rÄ ir simtiem tÅ«kstoÅ”u skaitļoÅ”anas (servera) gadÄ«jumu. MaksimÄlais klastera lielums pirms kÄda laika bija aptuveni 10 tÅ«kstoÅ”i serveru. Tas lielÄ mÄrÄ ir saistÄ«ts ar to, kÄ var darboties tÄs paÅ”as klastera lÄ«meÅa operÄtÄjsistÄmas, plÄnotÄji, resursu pieŔķirÅ”ana utt. TÄ kÄ infrastruktÅ«ras programmatÅ«ras jomÄ ir panÄkts progress, tagad mÄrÄ·a lielums ir aptuveni 100 tÅ«kstoÅ”i serveru vienÄ skaitļoÅ”anas klasterÄ«, un Mums ir uzdevums ā spÄt uzbÅ«vÄt tÄ«kla rÅ«pnÄ«cas, kas ļauj efektÄ«vi apvienot resursus Å”ÄdÄ klasterÄ«.
Ko mÄs vÄlamies no datu centru tÄ«kla? PirmkÄrt, ir daudz lÄtu un diezgan vienmÄrÄ«gi sadalÄ«tu joslas platumu. TÄ kÄ tÄ«kls ir mugurkauls, caur kuru mÄs varam apvienot resursus. Jaunais mÄrÄ·a lielums ir aptuveni 100 tÅ«kstoÅ”i serveru vienÄ klasterÄ«.
MÄs, protams, vÄlamies arÄ« mÄrogojamu un stabilu vadÄ«bas plakni, jo tik lielÄ infrastruktÅ«rÄ daudz galvassÄpes rodas pat no vienkÄrÅ”i nejauÅ”iem notikumiem, un mÄs nevÄlamies, lai arÄ« vadÄ«bas plakne mums sagÄdÄ galvassÄpes. TajÄ paÅ”Ä laikÄ mÄs vÄlamies minimizÄt stÄvokli tajÄ. Jo mazÄks stÄvoklis, jo labÄk un stabilÄk viss darbojas, un jo vieglÄk to diagnosticÄt.
Protams, mums ir nepiecieÅ”ama automatizÄcija, jo manuÄli pÄrvaldÄ«t Å”Ädu infrastruktÅ«ru nav iespÄjams, un tas jau kÄdu laiku nav bijis iespÄjams. Mums ir nepiecieÅ”ams pÄc iespÄjas lielÄks operatÄ«vais atbalsts un CI/CD atbalsts, ciktÄl tas ir iespÄjams.
Ar Å”Äda izmÄra datu centriem un klasteriem uzdevums atbalstÄ«t pakÄpenisku izvietoÅ”anu un paplaÅ”inÄÅ”anu bez pakalpojuma pÄrtraukuma ir kļuvis diezgan akÅ«ts. Ja klasteros ar tÅ«kstoÅ” maŔīnu lielumu, varbÅ«t tuvu desmit tÅ«kstoÅ”iem maŔīnu, tÄs tomÄr varÄtu izvÄrst kÄ vienu darbÄ«bu - tas ir, mÄs plÄnojam infrastruktÅ«ras paplaÅ”inÄÅ”anu, un vairÄki tÅ«kstoÅ”i maŔīnu tiek pievienoti kÄ viena darbÄ«ba, tad simttÅ«kstoÅ” maŔīnu liela klasteris nerodas uzreiz kÄ Å”is, tas tiek uzbÅ«vÄts noteiktÄ laika periodÄ. Un vÄlams, lai visu Å”o laiku bÅ«tu pieejams tas, kas jau ir izsÅ«knÄts, infrastruktÅ«ra, kas ir izvÄrsta.
Un viena prasÄ«ba, kas mums bija un tika atstÄta: atbalsts vairÄku Ä«rÄÅ”anai, tas ir, virtualizÄcijai vai tÄ«kla segmentÄcijai. Tagad mums tas nav jÄdara tÄ«kla auduma lÄ«menÄ«, jo sadalÄ«Å”ana ir nonÄkusi saimniekiem, un tas mums ir ļoti atvieglojis mÄrogoÅ”anu. Pateicoties IPv6 un lielajai adreÅ”u telpai, mums iekÅ”ÄjÄ infrastruktÅ«rÄ nebija jÄizmanto dublÄtÄs adreses; visa adrese jau bija unikÄla. Un, pateicoties tam, ka filtrÄÅ”anu un tÄ«kla segmentÄciju esam nodevuÅ”i saimniekiem, mums datu centru tÄ«klos nav jÄizveido nekÄdas virtuÄlÄs tÄ«kla entÄ«tijas.
Ä»oti svarÄ«ga lieta ir tas, kas mums nav vajadzÄ«gs. Ja dažas funkcijas var noÅemt no tÄ«kla, tas ievÄrojami atvieglo dzÄ«vi un, kÄ likums, paplaÅ”ina pieejamÄ aprÄ«kojuma un programmatÅ«ras izvÄli, padarot diagnostiku ļoti vienkÄrÅ”u.
TÄtad, kas mums nav vajadzÄ«gs, no kÄ mÄs esam spÄjuÅ”i atteikties, ne vienmÄr ar prieku brÄ«dÄ«, kad tas notika, bet ar lielu atvieglojumu, kad process ir pabeigts?
PirmkÄrt, atteikÅ”anÄs no L2. Mums nav vajadzÄ«gs L2, ne Ä«sts, ne emulÄts. Nelietots lielÄ mÄrÄ tÄpÄc, ka mÄs kontrolÄjam lietojumprogrammu steku. MÅ«su aplikÄcijas ir horizontÄli mÄrogojamas, strÄdÄ ar L3 adresÄÅ”anu, ļoti neuztraucas, ka kÄda atseviŔķa instance ir izgÄjusi, vienkÄrÅ”i izrullÄ jaunu, to nevajag izrullÄt uz veco adresi, jo ir klasterÄ« esoÅ”o iekÄrtu atseviŔķs pakalpojumu atklÄÅ”anas un uzraudzÄ«bas lÄ«menis. MÄs nedeleÄ£Äjam Å”o uzdevumu tÄ«klam. TÄ«kla uzdevums ir piegÄdÄt paketes no punkta A uz punktu B.
Mums nav arÄ« situÄcijas, kad adreses pÄrvietotos tÄ«klÄ, un tas ir jÄuzrauga. Daudzos dizainos tas parasti ir nepiecieÅ”ams, lai atbalstÄ«tu VM mobilitÄti. MÄs neizmantojam virtuÄlo maŔīnu mobilitÄti lielÄ Yandex iekÅ”ÄjÄ infrastruktÅ«rÄ, un turklÄt uzskatÄm, ka pat tad, ja tas tiek darÄ«ts, tam nevajadzÄtu notikt ar tÄ«kla atbalstu. Ja tas patieÅ”Äm ir jÄdara, tas jÄdara resursdatora lÄ«menÄ« un jÄnospiež adreses, kuras var migrÄt pÄrklÄjumos, lai nepieskartos paÅ”a apakÅ”klÄja marÅ”rutÄÅ”anas sistÄmai (transporta tÄ«kls) vai neveiktu tajÄ pÄrÄk daudz dinamisku izmaiÅu. .
VÄl viena tehnoloÄ£ija, ko mÄs neizmantojam, ir multiraide. Ja vÄlaties, varu pastÄstÄ«t sÄ«kÄk, kÄpÄc. Tas ievÄrojami atvieglo dzÄ«vi, jo, ja kÄds ar to ir ticis galÄ un apskatÄ«jis, kÄ tieÅ”i izskatÄs multiraides vadÄ«bas plakne, visÄs, izÅemot vienkÄrÅ”ÄkajÄs instalÄcijÄs, ir lielas galvassÄpes. Un vÄl jo vairÄk, ir grÅ«ti atrast, piemÄram, labi funkcionÄjoÅ”u atvÄrtÄ pirmkoda ievieÅ”anu.
Visbeidzot, mÄs veidojam savus tÄ«klus tÄ, lai tie pÄrÄk daudz nemainÄ«tos. Varam rÄÄ·inÄties ar to, ka ÄrÄjo notikumu plÅ«sma marÅ”rutÄÅ”anas sistÄmÄ ir neliela.
KÄdas problÄmas rodas un kÄdi ierobežojumi jÄÅem vÄrÄ, attÄ«stot datu centru tÄ«klu? Izmaksas, protams. MÄrogojamÄ«ba, lÄ«menis, lÄ«dz kuram vÄlamies augt. NepiecieÅ”amÄ«ba paplaÅ”inÄties, neapturot pakalpojumu. Joslas platums, pieejamÄ«ba. TÄ«klÄ notiekoÅ”Ä redzamÄ«ba uzraudzÄ«bas sistÄmÄm, operatÄ«vajÄm komandÄm. AutomatizÄcijas atbalsts - atkal, cik vien iespÄjams, jo dažÄdus uzdevumus var atrisinÄt dažÄdos lÄ«meÅos, ieskaitot papildu slÄÅu ievieÅ”anu. Nu, nav [iespÄjams] atkarÄ«gs no pÄrdevÄjiem. Lai gan dažÄdos vÄstures periodos, atkarÄ«bÄ no tÄ, uz kuru sadaļu skatÄs, Ŕī neatkarÄ«ba bija vieglÄk vai grÅ«tÄk sasniedzama. Ja Åemam tÄ«kla ierÄ«Äu mikroshÄmu ŔķÄrsgriezumu, tad vÄl nesen bija ļoti nosacÄ«ti runÄt par neatkarÄ«bu no pÄrdevÄjiem, ja gribÄjÄm arÄ« mikroshÄmas ar lielu caurlaidspÄju.
KÄdu loÄ£isko topoloÄ£iju mÄs izmantosim tÄ«kla izveidei? Å is bÅ«s daudzlÄ«meÅu Clos. PatiesÄ«bÄ reÄlu alternatÄ«vu Å”obrÄ«d nav. Un Clos topoloÄ£ija ir diezgan laba, pat ja salÄ«dzina ar dažÄdÄm progresÄ«vÄm topoloÄ£ijÄm, kas Å”obrÄ«d ir vairÄk akadÄmisko intereÅ”u jomÄ, ja mums ir lieli radix slÄdži.
KÄ aptuveni ir strukturÄts daudzlÄ«meÅu Clos tÄ«kls un kÄ tajÄ tiek saukti dažÄdie elementi? PirmkÄrt, vÄjÅ” pacÄlÄs, lai orientÄtos kur ziemeļi, kur dienvidi, kur austrumi, kur rietumi. Å Äda veida tÄ«klus parasti veido tie, kuriem ir ļoti liela rietumu-austrumu satiksme. Kas attiecas uz atlikuÅ”ajiem elementiem, augÅ”pusÄ ir virtuÄls slÄdzis, kas samontÄts no mazÄkiem slÄdžiem. Å Ä« ir galvenÄ Clos tÄ«klu rekursÄ«vÄs bÅ«vniecÄ«bas ideja. MÄs Åemam elementus ar kaut kÄdu radiksi un savienojam tos, lai to, ko mÄs iegÅ«stam, varÄtu uzskatÄ«t par slÄdzi ar lielÄku radiksi. Ja nepiecieÅ”ams vÄl vairÄk, procedÅ«ru var atkÄrtot.
GadÄ«jumos, piemÄram, ar divu lÄ«meÅu Clos, kad ir iespÄjams skaidri noteikt komponentus, kas manÄ diagrammÄ ir vertikÄli, tos parasti sauc par plaknÄm. Ja mÄs uzbÅ«vÄtu Clos ar trÄ«s lÄ«meÅu mugurkaula slÄdžiem (kas visi nav robežslÄdži vai ToR slÄdži un tiek izmantoti tikai tranzÄ«tam), tad lidmaŔīnas izskatÄ«tos sarežģītÄkas; divu lÄ«meÅu slÄdži izskatÄs tieÅ”i Å”Ädi. MÄs saucam ToR vai lapu slÄdžu bloku un ar tiem saistÄ«tos pirmÄ lÄ«meÅa mugurkaula slÄdžus par Pod. Spine-1 lÄ«meÅa mugurkaula slÄdži Pod augÅ”pusÄ ir Pod augÅ”daļa, Pod augÅ”daļa. SlÄdži, kas atrodas visas rÅ«pnÄ«cas augÅ”pusÄ, ir rÅ«pnÄ«cas augÅ”Äjais slÄnis, auduma augÅ”daļa.
Protams, rodas jautÄjums: Clos tÄ«kli ir bÅ«vÄti jau kÄdu laiku, pati ideja kopumÄ nÄk no klasiskÄs telefonijas, TDM tÄ«klu laikiem. VarbÅ«t ir parÄdÄ«jies kas labÄks, varbÅ«t kaut ko var izdarÄ«t labÄk? JÄ un nÄ. TeorÄtiski jÄ, praktiski tuvÄkajÄ laikÄ noteikti nÄ. TÄ kÄ ir vairÄkas interesantas topoloÄ£ijas, dažas no tÄm tiek izmantotas pat ražoÅ”anÄ, piemÄram, Dragonfly tiek izmantots HPC lietojumprogrammÄs; Ir arÄ« interesantas topoloÄ£ijas, piemÄram, Xpander, FatClique, Jellyfish. Ja nesen aplÅ«kojat ziÅojumus konferencÄs, piemÄram, SIGCOMM vai NSDI, jÅ«s varat atrast diezgan lielu skaitu darbu par alternatÄ«vÄm topoloÄ£ijÄm, kurÄm ir labÄkas Ä«paŔības (vienas vai citas) nekÄ Clos.
Bet visÄm Ŕīm topoloÄ£ijÄm ir viena interesanta Ä«paŔība. Tas novÄrÅ” to ievieÅ”anu datu centru tÄ«klos, kurus mÄs cenÅ”amies veidot uz preÄu aparatÅ«ras un kas maksÄ diezgan saprÄtÄ«gu naudu. VisÄs Å”ajÄs alternatÄ«vajÄs topoloÄ£ijÄs lielÄkÄ daļa joslas platuma diemžÄl nav pieejama pa Ä«sÄko ceļu. TÄpÄc mÄs uzreiz zaudÄjam iespÄju izmantot tradicionÄlo vadÄ«bas plakni.
TeorÄtiski problÄmas risinÄjums ir zinÄms. TÄs ir, piemÄram, saites stÄvokļa modifikÄcijas, izmantojot k-Ä«sÄko ceļu, taÄu, atkal, nav tÄdu protokolu, kas bÅ«tu ieviesti ražoÅ”anÄ un plaÅ”i pieejami iekÄrtÄs.
TurklÄt, tÄ kÄ lielÄkÄ daļa jaudas nav pieejama, izmantojot Ä«sÄkos ceļus, mums ir jÄmaina ne tikai vadÄ«bas plakne, lai atlasÄ«tu visus Å”os ceļus (un, starp citu, tas ir ievÄrojami lielÄks stÄvoklis vadÄ«bas plaknÄ). Mums joprojÄm ir jÄmaina pÄrsÅ«tÄ«Å”anas plakne, un, kÄ likums, ir nepiecieÅ”amas vismaz divas papildu funkcijas. TÄ ir iespÄja vienreiz pieÅemt visus lÄmumus par pakeÅ”u pÄrsÅ«tÄ«Å”anu, piemÄram, resursdatorÄ. Faktiski tÄ ir avota marÅ”rutÄÅ”ana, dažreiz literatÅ«rÄ par starpsavienojumu tÄ«kliem to sauc par visiem uzreiz pÄrsÅ«tÄ«Å”anas lÄmumiem. Un adaptÄ«vÄ marÅ”rutÄÅ”ana ir funkcija, kas mums ir nepiecieÅ”ama tÄ«kla elementos, kas, piemÄram, ir atkarÄ«ga no tÄ, ka mÄs izvÄlamies nÄkamo lÄcienu, pamatojoties uz informÄciju par vismazÄko slodzi rindÄ. PiemÄram, ir iespÄjamas arÄ« citas iespÄjas.
LÄ«dz ar to virziens ir interesants, bet diemžÄl Å”obrÄ«d to nevaram pielietot.
Labi, mÄs izvÄlÄjÄmies Clos loÄ£isko topoloÄ£iju. KÄ mÄs to mÄrogosim? ApskatÄ«sim, kÄ tas darbojas un ko var darÄ«t.
Clos tÄ«klÄ ir divi galvenie parametri, kurus mÄs varam kaut kÄ mainÄ«t un iegÅ«t noteiktus rezultÄtus: elementu radikss un lÄ«meÅu skaits tÄ«klÄ. Man ir shematiska diagramma, kÄ abi ietekmÄ izmÄru. IdeÄlÄ gadÄ«jumÄ mÄs apvienojam abus.
Redzams, ka Clos tÄ«kla gala platums ir visu dienvidu radiksa mugurkaula slÄdžu lÄ«meÅu reizinÄjums, cik saiÅ”u mums ir uz leju, kÄ tas atzarojas. TÄdÄ veidÄ mÄs mÄrogojam tÄ«kla lielumu.
AttiecÄ«bÄ uz jaudu, it Ä«paÅ”i uz ToR slÄdžiem, ir divas mÄrogoÅ”anas iespÄjas. Vai nu mÄs varam, saglabÄjot vispÄrÄjo topoloÄ£iju, izmantot ÄtrÄkas saites, vai arÄ« varam pievienot vairÄk plakÅu.
Ja paskatÄs uz Clos tÄ«kla paplaÅ”inÄto versiju (labajÄ apakÅ”ÄjÄ stÅ«rÄ«) un atgriezÄ«sies pie Ŕī attÄla ar Clos tÄ«klu zemÄk...
... tad Ŕī ir tieÅ”i tÄda pati topoloÄ£ija, bet uz Ŕī slaida tÄ ir sabrukusi kompaktÄk un rÅ«pnÄ«cas plaknes ir uzliktas viena uz otru. Tas ir tas pats.
KÄ Clos tÄ«kla mÄrogoÅ”ana izskatÄs skaitļos? Å eit es sniedzu datus par to, kÄdu maksimÄlo tÄ«kla platumu var iegÅ«t, cik maksimÄlo plauktu, ToR slÄdžu vai lapu slÄdžu skaitu, ja tie nav statÄ«vi, mÄs varam iegÅ«t atkarÄ«bÄ no tÄ, kÄdu slÄdžu radiksi izmantojam mugurkaula lÄ«meÅiem, un cik lÄ«meÅus mÄs izmantojam.
LÅ«k, cik daudz plauktu mums var bÅ«t, cik serveru un aptuveni cik tas viss var patÄrÄt, pamatojoties uz 20 kW uz vienu statÄ«vu. Nedaudz agrÄk es minÄju, ka mÄs tiecamies uz aptuveni 100 tÅ«kstoÅ”u serveru klastera lielumu.
Var redzÄt, ka visÄ Å”ajÄ dizainÄ interesÄ divarpus iespÄjas. Ir iespÄja ar diviem slÄÅiem muguriÅiem un 64 portu slÄdžiem, kas nedaudz atpaliek. PÄc tam ir lieliski piemÄrotas iespÄjas 128 portu (ar radix 128) mugurkaula slÄdžiem ar diviem lÄ«meÅiem vai slÄdžiem ar radix 32 ar trim lÄ«meÅiem. Un visos gadÄ«jumos, kur ir vairÄk radiksi un vairÄk slÄÅu, var izveidot ļoti lielu tÄ«klu, bet, ja skatÄs uz paredzamo patÄriÅu, tad tipiski ir gigavati. Kabeli var ievilkt, bet diez vai vienÄ vietÄ tik daudz elektrÄ«bas dabÅ«sim. AplÅ«kojot statistiku un publiskos datus par datu centriem, jÅ«s varat atrast ļoti maz datu centru, kuru aptuvenÄ jauda ir lielÄka par 150 MW. LielÄkie parasti ir datu centru pilsÄtiÅas, vairÄki lieli datu centri, kas atrodas diezgan tuvu viens otram.
Ir vÄl viens svarÄ«gs parametrs. Ja skatÄties uz kreiso kolonnu, tur ir norÄdÄ«ts izmantojamais joslas platums. Ir viegli redzÄt, ka Clos tÄ«klÄ ievÄrojama daļa portu tiek izmantoti, lai savienotu slÄdžus viens ar otru. Izmantojamais joslas platums, noderÄ«ga josla, ir kaut kas tÄds, ko var pieŔķirt ÄrpusÄ, serveru virzienÄ. Protams, es runÄju par nosacÄ«tajiem portiem un konkrÄti par joslu. Parasti saites tÄ«klÄ ir ÄtrÄkas nekÄ saites uz serveriem, taÄu uz vienu joslas platuma vienÄ«bu, cik vien mÄs varam to nosÅ«tÄ«t uz mÅ«su servera aprÄ«kojumu, paÅ”Ä tÄ«klÄ joprojÄm ir zinÄms joslas platums. Un jo vairÄk lÄ«meÅu mÄs izgatavojam, jo āālielÄkas ir Ŕīs svÄ«tras nodroÅ”inÄÅ”anas Ä«paÅ”Äs izmaksas.
TurklÄt pat Ŕī papildu josla nav gluži tÄda pati. Lai gan laidumi ir Ä«si, mÄs varam izmantot kaut ko lÄ«dzÄ«gu DAC (tieÅ”Ä savienojuma vara, tas ir, twinax kabeļi) vai daudzmodu optiku, kas maksÄ pat vairÄk vai mazÄk saprÄtÄ«gu naudu. TiklÄ«dz mÄs pÄrejam uz garÄkiem laidumiem - parasti tÄ ir viena režīma optika, un Ŕīs papildu joslas platuma izmaksas ievÄrojami palielinÄs.
Un atkal, atgriežoties pie iepriekÅ”ÄjÄ slaida, ja mÄs izveidojam Clos tÄ«klu bez pÄrrakstÄ«Å”anÄs, tad ir viegli apskatÄ«t diagrammu, redzÄt, kÄ tiek veidots tÄ«kls - pievienojot katru mugurkaula slÄdžu lÄ«meni, mÄs atkÄrtojam visu joslu, kas bija apakÅ”Ä. Plus lÄ«menis - plus tÄda pati josla, tÄds pats portu skaits slÄdžos, kÄds bija iepriekÅ”ÄjÄ lÄ«menÄ«, un tikpat daudz raiduztvÄrÄju. TÄpÄc ir ļoti vÄlams samazinÄt mugurkaula slÄdžu lÄ«meÅu skaitu.
Pamatojoties uz Å”o attÄlu, ir skaidrs, ka mÄs patieÅ”Äm vÄlamies balstÄ«ties uz kaut ko lÄ«dzÄ«gu slÄdžiem ar radiksu 128.
Å eit principÄ viss ir tas pats, ko es tikko teicu; Å”is ir slaids, kas jÄapsver vÄlÄk.
KÄdas ir iespÄjas izvÄlÄties kÄ Å”Ädus slÄdžus? Mums ir ļoti patÄ«kama ziÅa, ka tagad Å”Ädus tÄ«klus beidzot var bÅ«vÄt uz vienas mikroshÄmas slÄdžiem. Un tas ir ļoti forÅ”i, tiem ir daudz jauku funkciju. PiemÄram, tiem gandrÄ«z nav iekÅ”ÄjÄs struktÅ«ras. Tas nozÄ«mÄ, ka tie saplÄ«st vieglÄk. ViÅi lÅ«zt visÄdi, bet par laimi saplÄ«st pavisam. Moduļu ierÄ«cÄs ir liels kļūdu skaits (ļoti nepatÄ«kami), kad no kaimiÅu un vadÄ«bas plaknes viedokļa Ŕķiet, ka tas darbojas, bet, piemÄram, ir pazudusi daļa auduma un tas nedarbojas ar pilnu jaudu. Un satiksme uz to ir lÄ«dzsvarota, pamatojoties uz to, ka tas ir pilnÄ«bÄ funkcionÄls, un mÄs varam tikt pÄrslogoti.
Vai, piemÄram, problÄmas rodas ar aizmugurÄjo plakni, jo modulÄrÄs ierÄ«ces iekÅ”pusÄ ir arÄ« Ätrgaitas SerDes - iekÅ”pusÄ tas ir patieÅ”Äm sarežģīti. Vai nu zÄ«mes starp pÄrsÅ«tÄ«Å”anas elementiem ir sinhronizÄtas vai nav sinhronizÄtas. KopumÄ jebkura produktÄ«va modulÄra ierÄ«ce, kas sastÄv no liela skaita elementu, parasti satur to paÅ”u Clos tÄ«klu, taÄu to ir ļoti grÅ«ti diagnosticÄt. Bieži vien pat paÅ”am pÄrdevÄjam ir grÅ«ti noteikt diagnozi.
Un tam ir liels skaits atteices scenÄriju, kuros ierÄ«ce pasliktinÄs, bet pilnÄ«bÄ neizkrÄ«t no topoloÄ£ijas. TÄ kÄ mÅ«su tÄ«kls ir liels, tiek aktÄ«vi izmantota balansÄÅ”ana starp identiskiem elementiem, tÄ«kls ir ļoti regulÄrs, tas ir, viens ceļŔ, kurÄ viss ir kÄrtÄ«bÄ, neatŔķiras no otra, mums izdevÄ«gÄk ir vienkÄrÅ”i zaudÄt daļu no ierÄ«ces no topoloÄ£ijas, nevis nonÄkt situÄcijÄ, kad dažas no tÄm it kÄ darbojas, bet dažas nedarbojas.
NÄkamÄ jaukÄ vienas mikroshÄmas ierÄ«Äu iezÄ«me ir tÄ, ka tÄs attÄ«stÄs labÄk un ÄtrÄk. ViÅiem mÄdz bÅ«t arÄ« labÄka jauda. Ja Åemam lielÄs saliktÄs konstrukcijas, kas mums ir uz apļa, tad vienÄda Ätruma portiem kapacitÄte uz statÄ«va vienÄ«bu ir gandrÄ«z divas reizes lielÄka nekÄ moduļu ierÄ«cÄm. IerÄ«ces, kas veidotas ap vienu mikroshÄmu, ir ievÄrojami lÄtÄkas nekÄ modulÄrÄs un patÄrÄ mazÄk enerÄ£ijas.
Bet, protams, tam visam ir iemesls, ir arÄ« trÅ«kumi. PirmkÄrt, radikss gandrÄ«z vienmÄr ir mazÄks nekÄ moduļu ierÄ«cÄm. Ja mÄs varam iegÅ«t ierÄ«ci, kas uzbÅ«vÄta ap vienu mikroshÄmu ar 128 portiem, tad tagad bez problÄmÄm varam iegÅ«t modulÄru ar vairÄkiem simtiem portu.
Tas ir ievÄrojami mazÄks pÄrsÅ«tÄ«Å”anas tabulu izmÄrs un, kÄ likums, viss, kas saistÄ«ts ar datu plaknes mÄrogojamÄ«bu. Sekli buferi. Un, kÄ likums, diezgan ierobežota funkcionalitÄte. Bet izrÄdÄs, ka, ja jÅ«s zinÄt Å”os ierobežojumus un savlaicÄ«gi parÅ«pÄjaties, lai tos apietu vai vienkÄrÅ”i Åemtu vÄrÄ, tad tas nav tik biedÄjoÅ”i. Fakts, ka radikss ir mazÄks, vairs nav problÄma ierÄ«cÄs ar radix 128, kas beidzot parÄdÄ«jÄs nesen; mÄs varam veidot divus muguriÅu slÄÅus. Bet joprojÄm nav iespÄjams izveidot kaut ko mazÄku par diviem, kas mums bÅ«tu interesanti. Ar vienu lÄ«meni tiek iegÅ«tas ļoti mazas kopas. Pat mÅ«su iepriekÅ”Äjie dizaini un prasÄ«bas joprojÄm tos pÄrsniedza.
PatiesÄ«bÄ, ja pÄkÅ”Åi risinÄjums ir kaut kur uz robežas, joprojÄm ir veids, kÄ mÄrogot. TÄ kÄ pÄdÄjais (vai pirmais) zemÄkais lÄ«menis, kurÄ serveri ir savienoti, ir ToR slÄdži vai lapu slÄdži, mums nav jÄpievieno viens statÄ«vs ar tiem. TÄpÄc, ja risinÄjums atpaliek apmÄram uz pusi, varat padomÄt par vienkÄrÅ”u slÄdža izmantoÅ”anu ar lielu radiksi zemÄkajÄ lÄ«menÄ« un, piemÄram, divu vai trÄ«s statÄ«vu savienoÅ”anu vienÄ slÄdžÄ. Å Ä« ir arÄ« iespÄja, tai ir savas izmaksas, taÄu tas darbojas diezgan labi un var bÅ«t labs risinÄjums, ja jums ir jÄsasniedz apmÄram divas reizes lielÄks izmÄrs.
RezumÄjot, mÄs balstÄmies uz topoloÄ£iju ar diviem muguriÅu lÄ«meÅiem ar astoÅiem rÅ«pnÄ«cas slÄÅiem.
Kas notiks ar fiziku? Ä»oti vienkÄrÅ”i aprÄÄ·ini. Ja mums ir divu lÄ«meÅu muguriÅas, tad mums ir tikai trÄ«s slÄdžu lÄ«meÅi, un mÄs sagaidÄm, ka tÄ«klÄ bÅ«s trÄ«s kabeļu segmenti: no serveriem lÄ«dz lapu slÄdžiem, uz muguru 1, uz muguriÅu 2. IespÄjas, ko varam lietojums ir - tie ir twinax, multimode, single mode. Un Å”eit mums ir jÄapsver, kÄda sloksne ir pieejama, cik tas maksÄs, kÄdi ir fiziskie izmÄri, kÄdus laidumus mÄs varam aptvert un kÄ mÄs uzlabosim.
Izmaksu ziÅÄ visu var sarindot. Twinaxes ir ievÄrojami lÄtÄkas nekÄ aktÄ«vÄ optika, lÄtÄkas par daudzmodu raiduztvÄrÄjiem, ja to Åem uz lidojumu no beigÄm, nedaudz lÄtÄk nekÄ 100 gigabitu komutÄcijas ports. Un, lÅ«dzu, Åemiet vÄrÄ, ka tas maksÄ mazÄk nekÄ viena režīma optika, jo lidojumos, kur nepiecieÅ”ams viens režīms, datu centros vairÄku iemeslu dÄļ ir lietderÄ«gi izmantot CWDM, savukÄrt paralÄlÄ viena režīma (PSM) nav Ä«paÅ”i Ärti strÄdÄt. ar, ļoti lielas pakas tiek iegÅ«tas Ŕķiedras, un, ja mÄs koncentrÄjamies uz Ŕīm tehnoloÄ£ijÄm, mÄs iegÅ«stam aptuveni Å”Ädu cenu hierarhiju.
VÄl viena piezÄ«me: diemžÄl nav ļoti iespÄjams izmantot izjauktus 100 lÄ«dz 4x25 daudzmodu portus. Pateicoties SFP28 raiduztvÄrÄju dizaina iezÄ«mÄm, tas nav daudz lÄtÄks par 28 Gbit QSFP100. Un Ŕī daudzrežīmu demontÄža nedarbojas ļoti labi.
VÄl viens ierobežojums ir tÄds, ka skaitļoÅ”anas klasteru lieluma un serveru skaita dÄļ mÅ«su datu centri izrÄdÄs fiziski lieli. Tas nozÄ«mÄ, ka vismaz viens lidojums bÅ«s jÄveic ar singlemod. Atkal, Pods fiziskÄ izmÄra dÄļ nebÅ«s iespÄjams palaist divus twinax (vara kabeļus) laidumus.
RezultÄtÄ, ja mÄs optimizÄjam cenu un Åemam vÄrÄ Å”Ä« dizaina Ä£eometriju, mÄs iegÅ«stam vienu twinax laidumu, vienu daudzmodu diapazonu un vienu vienmodu diapazonu, izmantojot CWDM. Tas Åem vÄrÄ iespÄjamos jauninÄÅ”anas ceļus.
TÄ tas izskatÄs pÄdÄjÄ laikÄ, kurp virzÄmies un kas ir iespÄjams. Vismaz ir skaidrs, kÄ virzÄ«ties uz 50 gigabitu SerDes gan daudzmodiem, gan vienmodiem. TurklÄt, ja paskatÄs, kas ir vienmoda raiduztvÄrÄjos tagad un nÄkotnÄ 400G, bieži pat tad, kad no elektriskÄs puses pienÄk 50G SerDes, 100 Gbps uz joslu jau var aiziet uz optiku. TÄpÄc ir pilnÄ«gi iespÄjams, ka tÄ vietÄ, lai pÄrietu uz 50, notiks pÄreja uz 100 Gigabit SerDes un 100 Gbps uz joslu, jo saskaÅÄ ar daudzu pÄrdevÄju solÄ«jumiem to pieejamÄ«ba ir gaidÄma diezgan drÄ«z. Laika posms, kad 50G SerDes bija ÄtrÄkie, Ŕķiet, nebÅ«s Ä«paÅ”i ilgs, jo pirmie 100G SerDe eksemplÄri iznÄk gandrÄ«z nÄkamgad. Un pÄc kÄda laika pÄc tam tie, iespÄjams, bÅ«s saprÄtÄ«gas naudas vÄrti.
VÄl viena nianse par fizikas izvÄli. PrincipÄ mÄs jau varam izmantot 400 vai 200 Gigabit portus, izmantojot 50G SerDes. Bet izrÄdÄs, ka tam nav lielas jÄgas, jo, kÄ jau teicu iepriekÅ”, mÄs vÄlamies diezgan lielu slÄdžu radiksi, protams, saprÄta robežÄs. Gribam 128. Un ja mums ir ierobežota Äipu ietilpÄ«ba un paaugstinÄm linka Ätrumu, tad radikss dabiski samazinÄs, brÄ«numu nav.
Un mÄs varam palielinÄt kopÄjo jaudu, izmantojot lidmaŔīnas, un nav Ä«paÅ”u izmaksu, mÄs varam pievienot lidmaŔīnu skaitu. Un, ja pazaudÄsim radix, nÄksies ieviest papildu lÄ«meni, tÄpÄc paÅ”reizÄjÄ situÄcijÄ ar paÅ”reizÄjo maksimÄlo pieejamo jaudu uz vienu mikroshÄmu, izrÄdÄs, ka efektÄ«vÄk ir izmantot 100 gigabitu portus, jo tie ļauj jums lai iegÅ«tu lielÄku radiksu.
NÄkamais jautÄjums ir par to, kÄ tiek organizÄta fizika, bet no kabeļu infrastruktÅ«ras viedokļa. IzrÄdÄs, tas ir organizÄts diezgan jocÄ«gi. Kabeļi starp lapu slÄdžiem un pirmÄ lÄ«meÅa muguriÅÄm - tur nav daudz saiÅ”u, viss ir uzbÅ«vÄts salÄ«dzinoÅ”i vienkÄrÅ”i. Bet, ja mÄs Åemam vienu plakni, iekÅ”Ä notiek tas, ka mums ir jÄsavieno visi pirmÄ lÄ«meÅa muguriÅas ar visiem otrÄ lÄ«meÅa muguriÅiem.
TurklÄt, kÄ likums, ir dažas vÄlmes, kÄ tam vajadzÄtu izskatÄ«ties datu centra iekÅ”ienÄ. PiemÄram, mÄs ļoti vÄlÄjÄmies apvienot kabeļus saiŔķī un savilkt tos tÄ, lai viens augsta blÄ«vuma plÄkstera panelis pilnÄ«bÄ ietilptu vienÄ plÄkstera panelÄ«, lai garumu ziÅÄ nebÅ«tu zoodÄrza. Mums izdevÄs atrisinÄt Å”o problÄmu. Ja sÄkotnÄji paskatÄs uz loÄ£isko topoloÄ£iju, var redzÄt, ka plaknes ir neatkarÄ«gas, katru plakni var uzbÅ«vÄt atseviŔķi. Bet, kad mÄs pievienojam Å”Ädu komplektÄÅ”anu un vÄlamies visu ielÄpu paneli ievilkt ielÄpu panelÄ«, mums ir jÄsajauc dažÄdas plaknes vienÄ komplektÄ un jÄievieÅ” starpstruktÅ«ra optisku ŔķÄrssavienojumu veidÄ, lai tÄs pÄrsaiÅotu no tÄ, kÄ tÄs tika saliktas. vienÄ segmentÄ , kÄ tie tiks apkopoti citÄ segmentÄ. Pateicoties tam, mÄs iegÅ«stam jauku funkciju: visa sarežģītÄ pÄrslÄgÅ”ana nepÄrsniedz statÄ«vus. Kad vajag kaut ko ļoti stipri savÄ«t, āatlocÄ«t plaknesā, kÄ to dažkÄrt sauc Clos tÄ«klos, tas viss ir koncentrÄts vienÄ statÄ«vÄ. Mums nav ļoti izjauktu, lÄ«dz pat atseviŔķÄm saitÄm, pÄrslÄgÅ”anÄs starp statÄ«viem.
TÄ tas izskatÄs no kabeļu infrastruktÅ«ras loÄ£iskÄs organizÄcijas viedokļa. AttÄlÄ pa kreisi uz daudzkrÄsainiem blokiem ir attÄloti pirmÄ lÄ«meÅa mugurkaula slÄdžu bloki, katrs astoÅi gabali, un Äetri no tiem nÄkoÅ”ie kabeļu saiŔķi, kas iet un krustojas ar saiŔķiem, kas nÄk no mugurkaula-2 slÄdžu blokiem. .
Mazie kvadrÄti norÄda krustojumus. AugÅ”ÄjÄ kreisajÄ stÅ«rÄ« ir katra Å”Äda krustojuma sadalÄ«jums, patiesÄ«bÄ tas ir 512 x 512 portu ŔķÄrssavienojuma modulis, kas pÄrpako kabeļus tÄ, lai tie pilnÄ«bÄ nonÄktu vienÄ statÄ«vÄ, kur ir tikai viena mugurkaula 2 plakne. Un labajÄ pusÄ Å”Ä« attÄla skenÄÅ”ana ir nedaudz detalizÄtÄka attiecÄ«bÄ uz vairÄkiem podiem mugurkaula-1 lÄ«menÄ« un to, kÄ tas ir iesaiÅots ŔķÄrssavienojumÄ, kÄ tas attiecas uz mugurkaula-2 lÄ«meni.
Tas izskatÄs Å”Ädi. VÄl nav pilnÄ«bÄ samontÄts spine-2 statÄ«vs (kreisajÄ pusÄ) un ŔķÄrssavienojuma statÄ«vs. DiemžÄl tur nav daudz ko redzÄt. Visa Ŕī struktÅ«ra Å”obrÄ«d tiek izvietota vienÄ no mÅ«su lielajiem datu centriem, kas tiek paplaÅ”inÄts. Tas ir nepabeigts darbs, tas izskatÄ«sies skaistÄk, tas bÅ«s labÄk aizpildÄ«ts.
SvarÄ«gs jautÄjums: mÄs izvÄlÄjÄmies loÄ£isko topoloÄ£iju un izveidojÄm fiziku. Kas notiks ar vadÄ«bas plakni? Tas ir diezgan labi zinÄms no darbÄ«bas pieredzes, ir vairÄki ziÅojumi, ka saiÅ”u stÄvokļa protokoli ir labi, ar tiem ir patÄ«kami strÄdÄt, bet diemžÄl tie nav labi mÄrogoti blÄ«vi savienotÄ topoloÄ£ijÄ. Un ir viens galvenais faktors, kas to novÄrÅ” - Å”Ädi notiek applÅ«Å”ana saites stÄvokļa protokolos. Ja jÅ«s vienkÄrÅ”i izmantojat applÅ«Å”anas algoritmu un paskatÄs, kÄ ir strukturÄts mÅ«su tÄ«kls, jÅ«s varat redzÄt, ka katrÄ solÄ« bÅ«s ļoti liels izplÅ«dums, un tas vienkÄrÅ”i pÄrpludinÄs vadÄ«bas plakni ar atjauninÄjumiem. KonkrÄti, Å”Ädas topoloÄ£ijas ļoti slikti sajaucas ar tradicionÄlo applÅ«Å”anas algoritmu saites stÄvokļa protokolos.
IzvÄle ir izmantot BGP. KÄ to pareizi sagatavot, ir aprakstÄ«ts RFC 7938 par BGP izmantoÅ”anu lielos datu centros. Pamatidejas ir vienkÄrÅ”as: minimÄlais prefiksu skaits uz vienu resursdatoru un parasti minimÄlais prefiksu skaits tÄ«klÄ, ja iespÄjams, izmantojiet apkopoÅ”anu un apturiet ceļu meklÄÅ”anu. MÄs vÄlamies ļoti rÅ«pÄ«gu, ļoti kontrolÄtu atjauninÄjumu izplatÄ«Å”anu, ko sauc par brÄ«vu ieleju. MÄs vÄlamies, lai atjauninÄjumi tiktu izvietoti tieÅ”i vienreiz, kad tie iziet cauri tÄ«klam. Ja tie rodas apakÅ”Ä, tie iet uz augÅ”u, izvÄrÅ”oties ne vairÄk kÄ vienu reizi. NevajadzÄtu bÅ«t zigzagiem. Zigzagi ir ļoti slikti.
Lai to izdarÄ«tu, mÄs izmantojam dizainu, kas ir pietiekami vienkÄrÅ”s, lai izmantotu pamatÄ esoÅ”os BGP mehÄnismus. Tas nozÄ«mÄ, ka mÄs izmantojam eBGP, kas darbojas vietÄjÄ saitÄ, un autonomÄs sistÄmas tiek pieŔķirtas Å”Ädi: autonoma sistÄma uz ToR, autonoma sistÄma visam viena Pod spine-1 slÄdžu blokam un vispÄrÄja autonoma sistÄma visÄ augÅ”pusÄ. no Auduma. Nav grÅ«ti paskatÄ«ties un redzÄt, ka pat parastÄ BGP darbÄ«ba nodroÅ”ina mums vajadzÄ«go atjauninÄjumu izplatÄ«Å”anu.
Protams, adresÄcija un adreÅ”u apkopoÅ”ana ir jÄveido tÄ, lai tÄ bÅ«tu savietojama ar veidu, kÄ tiek veidota marÅ”rutÄÅ”ana, lai tÄ nodroÅ”inÄtu vadÄ«bas plaknes stabilitÄti. L3 adresÄÅ”ana transportÄ ir piesaistÄ«ta topoloÄ£ijai, jo bez tÄs nav iespÄjams panÄkt agregÄciju, bez tÄ atseviŔķas adreses iezagsies marÅ”rutÄÅ”anas sistÄmÄ. Un vÄl viena lieta ir tÄda, ka agregÄcija diemžÄl ne pÄrÄk labi sajaucas ar daudzceļu, jo, kad mums ir daudzceļŔ un mums ir agregÄcija, viss ir kÄrtÄ«bÄ, kad viss tÄ«kls ir vesels, tajÄ nav nekÄdu kļūmju. DiemžÄl, tiklÄ«dz tÄ«klÄ parÄdÄs kļūmes un topoloÄ£ijas simetrija zÅ«d, mÄs varam nonÄkt lÄ«dz punktam, no kura tika paziÅots par vienÄ«bu, no kuras mÄs nevaram tikt tÄlÄk uz vietu, kur mums jÄiet. TÄpÄc vislabÄk ir apkopot tur, kur vairs nav vairÄku ceļu, mÅ«su gadÄ«jumÄ tie ir ToR slÄdži.
Faktiski ir iespÄjams apkopot, bet uzmanÄ«gi. Ja mÄs varam veikt kontrolÄtu sadalÄ«Å”anu, kad rodas tÄ«kla kļūmes. Bet tas ir diezgan sarežģīts uzdevums, mÄs pat domÄjÄm, vai to bÅ«tu iespÄjams izdarÄ«t, vai ir iespÄjams pievienot papildu automatizÄciju un ierobežotu stÄvokļu maŔīnas, kas pareizi iedarbinÄtu BGP, lai iegÅ«tu vÄlamo uzvedÄ«bu. DiemžÄl stÅ«ra lietu apstrÄde ir ļoti nepÄrprotama un sarežģīta, un Å”o uzdevumu nevar labi atrisinÄt, pievienojot BGP ÄrÄjos pielikumus.
Ä»oti interesants darbs Å”ajÄ sakarÄ ir veikts RIFT protokola ietvaros, par ko tiks runÄts nÄkamajÄ ziÅojumÄ.
VÄl viena svarÄ«ga lieta ir tas, kÄ datu plaknes mÄrogojas blÄ«vÄs topoloÄ£ijÄs, kur mums ir liels skaits alternatÄ«vu ceļu. Å ajÄ gadÄ«jumÄ tiek izmantotas vairÄkas papildu datu struktÅ«ras: ECMP grupas, kas savukÄrt apraksta Next Hop grupas.
NormÄli strÄdÄjoÅ”Ä tÄ«klÄ bez kļūmÄm, kad ejam uz augÅ”u pa Clos topoloÄ£iju, pietiek izmantot tikai vienu grupu, jo pÄc noklusÄjuma ir aprakstÄ«ts viss, kas nav lokÄls, mÄs varam tikt uz augÅ”u. Kad mÄs ejam no augÅ”as uz leju uz dienvidiem, tad visi ceļi nav ECMP, tie ir viena ceļa ceļi. Viss ir kÄrtÄ«bÄ. ProblÄma ir tÄda, ka klasiskÄs Clos topoloÄ£ijas Ä«patnÄ«ba ir tÄda, ka, ja mÄs skatÄmies uz auduma augÅ”daļu, uz jebkuru elementu, ir tikai viens ceļŔ uz jebkuru zemÄk esoÅ”o elementu. Ja Å”ajÄ ceÄ¼Ä rodas kļūmes, tad Å”is konkrÄtais elements rÅ«pnÄ«cas augÅ”pusÄ kļūst nederÄ«gs tieÅ”i tiem prefiksiem, kas atrodas aiz salauztÄ ceļa. Bet pÄrÄjiem tas ir spÄkÄ, un mums ir jÄparsÄ ECMP grupas un jÄievieÅ” jauns stÄvoklis.
KÄ mÅ«sdienu ierÄ«cÄs izskatÄs datu plaknes mÄrogojamÄ«ba? Ja taisÄm LPM (garÄko prefiksu sakritÄ«bu), viss ir diezgan labi, virs 100k prefiksu. Ja runÄjam par Next Hop grupÄm, tad viss ir sliktÄk, 2-4 tÅ«kst. Ja mÄs runÄjam par tabulu, kurÄ ir Next Hops (vai blakus esoÅ”o) apraksts, tad tas ir kaut kur no 16 k lÄ«dz 64 k. Un tas var kļūt par problÄmu. Un Å”eit mÄs nonÄkam pie interesantas novirzes: kas notika ar MPLS datu centros? PrincipÄ mÄs to gribÄjÄm darÄ«t.
Notika divas lietas. MÄs veicÄm mikrosegmentÄÅ”anu saimniekdatoros; mums vairs nebija nepiecieÅ”ams to darÄ«t tÄ«klÄ. Tas nebija Ä«paÅ”i labs ar dažÄdu pÄrdevÄju atbalstu un vÄl jo vairÄk ar atvÄrtÄm implementÄcijÄm baltÄs kastÄs ar MPLS. Un MPLS, vismaz tÄs tradicionÄlÄs implementÄcijas, diemžÄl ļoti slikti apvienojas ar ECMP. Un tÄpÄc.
Å Ädi izskatÄs ECMP pÄrsÅ«tÄ«Å”anas struktÅ«ra IP. Liels skaits prefiksu var izmantot vienu un to paÅ”u grupu un vienu un to paÅ”u Next Hops bloku (vai blakus esoÅ”Äs vietas, to dažÄdÄs dokumentÄcijÄs dažÄdÄm ierÄ«cÄm var saukt atŔķirÄ«gi). Lieta tÄda, ka tas ir aprakstÄ«ts kÄ izejoÅ”ais ports un uz ko pÄrrakstÄ«t MAC adresi, lai nokļūtu pareizajÄ Next Hop. AttiecÄ«bÄ uz IP viss izskatÄs vienkÄrÅ”i, jÅ«s varat izmantot ļoti lielu skaitu prefiksu vienai grupai, tam paÅ”am Next Hops blokam.
KlasiskÄ MPLS arhitektÅ«ra nozÄ«mÄ, ka atkarÄ«bÄ no izejoÅ”Ä interfeisa etiÄ·eti var pÄrrakstÄ«t uz dažÄdÄm vÄrtÄ«bÄm. TÄpÄc mums ir jÄsaglabÄ grupa un Next Hops bloks katrai ievades etiÄ·etei. Un tas, diemžÄl, nav mÄrogs.
Ir viegli redzÄt, ka mÅ«su dizainÄ mums bija nepiecieÅ”ami aptuveni 4000 ToR slÄdži, maksimÄlais platums bija 64 ECMP ceļi, ja mÄs virzÄmies prom no mugurkaula-1 uz mugurkaula-2. MÄs tik tikko iekļūstam vienÄ ECMP grupu tabulÄ, ja pazÅ«d tikai viens prefikss ar ToR, un mÄs vispÄr neiekļūstam tabulÄ Next Hops.
Tas nav bezcerÄ«gi, jo tÄdÄs arhitektÅ«rÄs kÄ Segment Routing ir globÄlas etiÄ·etes. FormÄli bÅ«tu iespÄjams atkal sabrukt visus Å”os Next Hops blokus. Lai to izdarÄ«tu, nepiecieÅ”ama aizstÄjÄjzÄ«mes tipa darbÄ«ba: paÅemiet etiÄ·eti un pÄrrakstiet to uz to paÅ”u bez noteiktas vÄrtÄ«bas. Bet diemžÄl pieejamajÄs implementÄcijÄs tas nav Ä«paÅ”i klÄt.
Un, visbeidzot, datu centrÄ ir jÄieved ÄrÄjÄ trafika. KÄ to izdarÄ«t? IepriekÅ” satiksme tika ievadÄ«ta Clos tÄ«klÄ no augÅ”as. Tas nozÄ«mÄ, ka bija malu marÅ”rutÄtÄji, kas savienojÄs ar visÄm ierÄ«cÄm auduma augÅ”daļÄ. Å is risinÄjums diezgan labi darbojas maziem un vidÄjiem izmÄriem. DiemžÄl, lai Å”ÄdÄ veidÄ simetriski nosÅ«tÄ«tu trafiku visam tÄ«klam, mums vienlaicÄ«gi ir jÄnonÄk pie visiem auduma augÅ”daļas elementiem, un, kad to ir vairÄk nekÄ simts, izrÄdÄs, ka mums ir nepiecieÅ”ams arÄ« liels radix uz malas marÅ”rutÄtÄjiem. KopumÄ tas maksÄ naudu, jo malu marÅ”rutÄtÄji ir funkcionÄlÄki, porti uz tiem bÅ«s dÄrgÄki, un dizains nav Ä«paÅ”i skaists.
VÄl viena iespÄja ir sÄkt Å”Ädu satiksmi no apakÅ”as. Ir viegli pÄrbaudÄ«t, vai Clos topoloÄ£ija ir veidota tÄ, ka satiksme, kas nÄk no apakÅ”as, tas ir, no ToR puses, tiek vienmÄrÄ«gi sadalÄ«ta pa lÄ«meÅiem visÄ auduma augÅ”daÄ¼Ä divÄs iterÄcijÄs, noslogojot visu tÄ«klu. TÄpÄc mÄs ievieÅ”am Ä«paÅ”u Pod veidu Edge Pod, kas nodroÅ”ina ÄrÄjo savienojumu.
Ir vÄl viens variants. To dara, piemÄram, Facebook. ViÅi to sauc par auduma apkopotÄju vai HGRID. Tiek ieviests papildu mugurkaula lÄ«menis, lai savienotu vairÄkus datu centrus. Å is dizains ir iespÄjams, ja mums nav papildu funkciju vai iekapsulÄÅ”anas izmaiÅu saskarnÄs. Ja tie ir papildu saskares punkti, tas ir grÅ«ti. Parasti ir vairÄk funkciju un sava veida membrÄna, kas atdala dažÄdas datu centra daļas. Nav jÄgas tÄdu membrÄnu taisÄ«t lielu, bet, ja tÄ nez kÄdÄļ tieÅ”Äm ir vajadzÄ«ga, tad ir jÄga apsvÄrt iespÄju to atÅemt, taisÄ«t pÄc iespÄjas platÄku un nodot saimniekiem. To dara, piemÄram, daudzi mÄkoÅu operatori. ViÅiem ir pÄrklÄjumi, viÅi sÄkas no saimniekiem.
KÄdas attÄ«stÄ«bas iespÄjas mÄs redzam? PirmkÄrt, uzlabojot atbalstu CI/CD konveijeram. MÄs vÄlamies lidot tÄ, kÄ mÄs pÄrbaudÄm, un pÄrbaudÄ«t, kÄ mÄs lidojam. Tas neizdodas Ä«paÅ”i labi, jo infrastruktÅ«ra ir liela un to dublÄt testiem nav iespÄjams. Jums ir jÄsaprot, kÄ ieviest testÄÅ”anas elementus ražoÅ”anas infrastruktÅ«rÄ, to neizlaižot.
LabÄka instrumentÄcija un labÄka uzraudzÄ«ba gandrÄ«z nekad nav lieka. Viss jautÄjums ir lÄ«dzsvars starp centieniem un atdevi. Ja varat to pievienot ar saprÄtÄ«gu piepÅ«li, ļoti labi.
AtvÄrtÄs operÄtÄjsistÄmas tÄ«kla ierÄ«cÄm. LabÄki protokoli un labÄkas marÅ”rutÄÅ”anas sistÄmas, piemÄram, RIFT. Ir nepiecieÅ”ami arÄ« pÄtÄ«jumi par labÄku sastrÄgumu kontroles shÄmu izmantoÅ”anu un, iespÄjams, vismaz dažos punktos RDMA atbalsta ievieÅ”anu klasterÄ«.
Skatoties tÄlÄkÄ nÄkotnÄ, mums ir vajadzÄ«gas uzlabotas topoloÄ£ijas un, iespÄjams, tÄ«kli, kas patÄrÄ mazÄk pieskaitÄmÄs izmaksas. No jaunÄkajÄm lietÄm nesen ir publicÄtas publikÄcijas par auduma tehnoloÄ£iju HPC Cray Slingshot, kas ir balstÄ«ta uz preÄu Ethernet, bet ar iespÄju izmantot daudz Ä«sÄkas galvenes. TÄ rezultÄtÄ tiek samazinÄtas pieskaitÄmÄs izmaksas.
Visam jÄbÅ«t pÄc iespÄjas vienkÄrÅ”Äkam, bet ne vienkÄrÅ”Äkam. SarežģītÄ«ba ir mÄrogojamÄ«bas ienaidnieks. VienkÄrŔība un regulÄras struktÅ«ras ir mÅ«su draugi. Ja kaut kur varat veikt mÄrogoÅ”anu, dariet to. Un vispÄr tagad ir lieliski iesaistÄ«ties tÄ«kla tehnoloÄ£ijÄs. Notiek daudz interesantu lietu. Paldies.
Avots: www.habr.com