
Meie kohaliku võrgu agregatsioonis oli kuus paari Arista DCS-7050CX3-32S lülitit ja üks paar Brocade VDX 6940-36Q lülitit. See ei tähenda, et Brocade'i lülitid oleksid meid väga häirinud, nad töötavad ja täidavad oma funktsioone, kuid olime ette valmistanud täisautomaatika mitmete toimingute jaoks ning nende võimalustel puudus toetus nendel lülititel. Soovisime ka liikuda 40GE liidestelt 100GE kasutamise võimaluse suunas, et tagada varud järgmisteks 2-3 aastaks. Nii otsustasime Brocade'i Arista vastu vahetada.
Need lülitid on iga andmekeskuse kohaliku võrgu agregatsioonilülitid. Neid ühendatakse otse jaotuslülititega (teise taseme agregatsioon), mis on juba kogunud endasse Top-of-Rack kohaliku võrgu lülitid serveri rack'ides.
Iga server on ühendatud ühe või kahe ligipääsu lülitiga. Ligipääsu lülitid on ühendatud kahe jaotuslülitiga (kasutatakse kahte jaotuslülitit ja kahte füüsilist linki ligipääsu lülitist erinevatesse jaotuslülititesse varundamiseks).
Iga server võib olla kasutatav oma kliendi poolt, nii et kliendile eraldatakse eraldi VLAN. See VLAN määratakse seejärel teisele serverile, mis kuulub samale kliendile, ükskõik millises serveririiulis. Andmekeskus koosneb mitmest sellisest reas (POD-idest), igal serveririiulil on oma jaotusseinad. Seejärel ühendatakse need jaotusseinad aggregeerimisseintesse.
Kliendid saavad tellida serveri igas reas, kuid ei saa ette näha, et server eraldatakse või paigaldatakse mõnda kindlasse ritta või serveririiulisse, seetõttu on aggregeerimisseinadel igas andmekeskuses umbes 2500 VLAN-i.
DCI (Data-Center Interconnect) seadmed on ühendatud aggregeerimise seintega. Need võivad olla mõeldud kas L2-ühenduvuseks (paar jaotusseinast, mis moodustab VXLAN-tunneli teise andmekeskusesse) või L3-ühenduvuseks (kaks MPLS-reitijat).
Nagu juba mainisin, oli teenuste konfiguratsioonide automatiseerimise protsesside ühtlustamiseks antud andmekeskuses vaja vahetada kesksete agregatsioonikommutaatorite vastuvõtmiseks. Paigaldasime uued kommutaatorid olemasolevate lähedale, ühendasime need MLAG-paariks ja hakkasime ette valmistama töid. Need ühendati kohe olemasolevate agregatsioonikommutaatoritega, nii et neil tekkis ühine L2 domeen kõigi kliendi VLANide jaoks.
Skeemi üksikasjad
Konkreetsete näidete toomiseks nimetame vanad agregeerimiskommutaatorid A1 ja A2, uued — N1 ja N2. Kujutame ette, et POD 1 ja POD 4 asuvad ühe kliendi serverid C1, kliendi VLAN on tähistatud sinise värviga. See klient kasutab L2-ühenduse teenust teise andmekeskusega, seega on tema VLAN antud VXLANi paarile kommutaatoritele.
Klient C2 paigaldab serverid POD 2 ja POD 3, kliendi VLAN tähistatakse tumerohelise värviga. See klient kasutab samuti teenust ühenduse loomiseks teise andmekeskusega, kuid L3, seega on tema VLAN antud L3VPN marsruuterite paarile.
Kliendivlanid on vajalikud, et mõista, millistel etappidel vahetuse käigus toimub, kus katkestus ilmneb ja kui kaua see võib kesta. STP protokolli selles skeemis ei kasutata, kuna sellele saadud puu laius on suur ja protokolli konvergents kasvab geomeetrilises progressioonis seadmete ja nende vaheliste linkide hulgast.
Kõik seadmed, mis on ühendatud kahekordsete linkidega, moodustavad staki, MLAG-paar või VCS- Etherneti tehase. L3VPN marsruuterite paari jaoks selliseid tehnoloogiaid ei kasutata, kuna L2 reserveerimise vajadust ei ole, piisab, kui neil on L2 ühenduvus omavahel läbi aggregeerimisruutide.
Teostamise variandid
Edasiste sündmuste variante analüüsides saime aru, et neid töid on võimalik teostada mitmeti. Kogu kohalikus võrgus võib olla suur katkestus, kuni väikesteni, mis kestavad lihtsalt 1-2 sekundit võrgu erinevates osades.
Võrk, seista! Lülitid, vahetage välja!
Lihtsaim viis on kindlasti kuulutada ülemaailmne katkestus kõigis PODides ja kõigis DCI teenustes ning lülitada kõik lingid lülititest A lülititesse N.
Peale pauside, mille kestust ei saa me garanteerida (jah, me teame, kui palju linke on, aga me ei tea, kui tihti võib midagi valesti minna — alates katki läinud kaablist või kahjustatud konnektorist kuni portide või transiivide vigadeni), ei saa me ka ette ennustada, kas kaablite, DAC-de, AOC-de pikkus, mis on ühendatud vanadesse A-lülititesse, ulatub proovimata uutesse N-lülititesse, mis kuigi on lähedal, on siiski veidi eemal, ja kas samad transiivide/DAC/AOC seadmed Brocade'i lülititest töötavad Arista lülitites.
Ja kõik see toimub klientide ja tehnilise toe tugeva surve all («Natasha, tõuse! Natasha, seal ei tööta midagi! Natasha, me oleme juba tehnilisse toetusse kirjutanud, ausalt! Natasha, seal on kõik maha kukkunud! Natasha, kui palju veel ei tööta? Natasha, millal see tööle hakkab?!»). Isegi hoolimata eelnevalt teatatud pausist ja tehtud teavitustest klientidele, on sel ajal tulevate päringute voog garanteeritud.
Seisa, 1-2-3-4!
Aga kui mitte kuulutada suurt pausi, vaid kuulutada terve seeria väikeseid pauside üleminekuid POD ja DCI teenuste osas. Esimesel pausil lülitada üle lülititesse N ainult POD 1, teises — paar päeva pärast — POD 2, siis veel paar päeva hiljem POD 3, edasi POD 4…[N], siis VXLAN-lülitid ja seejärel L3VPN-ruuterid.
Sellise lülitustööde korralduse puhul vähendame korraga tehtavate tööde keerukust ja saame rohkem aega probleemide lahendamiseks, kui midagi juhtumisi valesti läheb. POD 1 ühenduvus pärast lülitamist teiste POD-ide ja DCI-ga ei kao. Kuid tööd venivad pikaks, nende tööde ajaks on andmekeskuses vaja eraldada insener füüsiliste lülituste teostamiseks, ning tööde ajal (need tööd tehakse tavaliselt öösel, kella 2–5 vahel) on vajalik olemasolu online-võrguinseneri, kelle kvalifikatsioon on üsna kõrge. Kuid selle tulemusena saame lühikesed ühenduse katkestused, tavaliselt võivad tööd toimuda poole tunni jooksul katkestustega kuni 2 minuti jooksul (praktiliselt on see sageli 20-30 sekundit eeldatava seadmete käitumise korral).
Antud kliendi näites C1 või klient C2 Teavitama peab vähemalt kolm korda, kui sidekatkestused toimuvad – esmakordselt ühe POD-i puhul, kus asub üks server, teist korda teise puhul ja kolmandat korda DCI teenuste jaoks varustuse vahetamisel.
Kokkukuuluvate sideteede vahetamine
Miks me räägime seadmete oodatavast käitumisest ja kuidas saavad kokkukuuluvad kanalid minimaalsete sidekatkestustega vahetuda. Kujutame ette järgmist pilti:
Ühe lingi pool – POD-i jaotusksevitaatorid – D1 ja D2, need moodustavad omavahel MLAG-paar (stek, VCS-tehas, vPC-paar), teiselt poolt kaks linki – Link 1 ja Link 2 – on ühendatud vanade kogumise switchide MLAG-paariga A. Switchide pool D on moodustatud kokkukuuluv liides nimega Port-channel A, kogumise switchide pool A – on kokkukuuluv liides nimega Port-channel D.
Kokkukuuluvad liidesed töötavad LACP abil, st switchide mõlemal küljel vahetatakse regulaarselt LACPDU pakette mõlemal lingil, et veenduda, et lingid:
- on töökorras;
- on ühendatud kaugema seadme paariga.
Pakettide vahetamisel edastatakse pakendis väärtus system-id, mis tähistab seadet, kuhu need lingid on ühendatud. MLAG-paaride (virnad, tehased jne) puhul on agregatsiooni liidese moodustavate seadmete jaoks system-id väärtus sama. Lüliti D1 saadab Link 1 väärtus system-id D, ja lüliti D2 saadab Link 2 väärtus system-id D.
Lülitid A1 ja A2 analüüsivad LACPDU pakette, mida on saadud ühe Po D liidese kaudu, ja kontrollivad system-id vastavust. Kui mõne lingi kaudu saadud system-id erineb järsku praegusest tööväärtusest, siis see link kustutatakse agregatsiooni liidese koostisosadest, kuni olukord on parandatud. Praegu on meie lülititel D LACP-partnerilt saadud current system-id väärtus — A, aga lülitite poolel A — LACP-partnerilt saadud current system-id väärtus — D.
Kui on vaja agregatsiooni liidest vahetada, saame toimida kahel erineval viisil:
Meetod 1 — Lihtne
Lülitada välja mõlemad lingid lülititest A. Sel juhul agregatsioonikanal ei tööta.
Lülitage mõlemad lingid ükshaaval lülititesse N, seejärel toimub LACP tööparameetrite uuesti kooskõlastamine, liidese moodustamine Po D lülititel N ja edastamine linkide kaudu system-id N.
Meetod 2 — Katkestuse minimeerimine
Eemalda link Link 2 lülitist A2. Sel juhul edastatakse liiklus A ja D lihtsalt läbi mõne linki, mis jääb koondatud liidese osaks.
Ühenda Link 2 lülitisse N2. Lülitil N on juba seadistatud koondatud liides Po DN, ja lüliti N2 hakata edastama LACPDU system-id N. Sel etapil saame juba kontrollida, et lüliti N2 töötleb korrektset vastuvõtjat, mida kasutatakse Link 2, et ühendusport on läinud olekusse Up, ja et LACPDU edastamisel ei teki ühendusports vigu.
Kuid asjaolu, et lüliti D2 koondatud liidese Po A külgedel Link 2 saab system-id N väärtuse, mis erineb praegusest toimivast system-id A väärtusest, ei võimalda lülititel D sisse tuua Link 2 koondatud liidese. Po ALüliti N ei saa tööle Link 2 , kuna ta ei saa kinnitust LACP-partnerilt lülitilt D2. Liiklus ei edastata kokkuvõttes. Link 2 Nüüd lülitame Link 1 välja lülitist A1
, seega jätame lülitid, тем самым лишая коммутаторы A ja D töötava liidese. Nii et lüliti poolel D kaob praegune tööväärtus system-id liidese jaoks Po A.
See võimaldab lülititel D ja N kokkuleppele jõuda system-id vahetamiseks A-N liidestel Po A ja Po DN, nii et liiklus hakkab liikuma läbi lingi Link 2. Sel juhul on katkestus tegelikult kuni 2 sekundit.
Ja nüüd lülitame rahulikult Link 1 lülitisse N1, taastades liideste mahtu ja varu taset Po A ja Po DN. Kuna sel lingil ühendamisel ei muutu praegune system-id väärtus kummaltki poolt, ei esine katkestust.
Lisalingid
Kuid lülitust saab teostada ilma inseneri kohalolekuta lülitamise hetkel. Selleks peame eelnevalt rajama lisalingid jaotusse glüteide vahel D ja uute aggregeerimise lülitite vahel N.
Rajame uued lingid aggregeerimise lülitite vahel N ja jaotusse glüteide vahel kõigis POD-ides. See nõuab täiendavate patch-kaablite tellimist ja rajamist ning lisatranssiiverite paigaldamist nagu N, kui ka D. Saame seda teha, kuna meie lülitites D iga POD-l on vabad portid (või vabastame need eelnevalt). Seetõttu on iga POD füüsiliselt ühendatud kahe lingiga vanade lülititega A ja uute lülititega N.
Lülitil D on loodud kaks aggregeeritud liidest — Po A liinidega Link 1 ja Link 2, ja Po N — koos liinidega Link N1 ja Link N2. Selle etapi juures kontrollime liideste ja linkide õiget ühendamist, optiliste signaalide taset mõlemas otsas (DDM-informatsiooni kaudu lülititest), saame isegi kontrollida lingi töökindlust koormuse all või jälgida optiliste signaalide ja konverterite temperatuuride olekuid paar päeva.
Liiklus edastatakse endiselt liidese kaudu Po A, samas kui liides Po N seisab ilma liikluseta. Liideste seadistused on enam-vähem sellised:
Liidese Port-channel A
Switchport mode trunk
Switchport allowed vlan C1, C2
Liidese Port-channel N
Switchport mode trunk
Switchport allowed vlan noneLülitid D toetavad reeglina seansipõhist konfiguratsiooni muutmist, kasutatakse selliseid lülitite mudeleid, mis omavad seda funktsionaalsust. Niisiis, saame muudatused liidetes Po A ja Po N teha ühes võtmes:
Konfigureeri sessioon
Liidese port-kanal A
Lülitusport lubatud vlan ei ühtegi
Liidese port-kanal N
Lülitusport lubatud vlan C1, C2
KinnitaSel juhul toimub konfiguratsiooni muudatus piisavalt kiiresti, ja katkestus kestab praktikas mitte rohkem kui 5 sekundit.
Selline lähenemine võimaldab meil kõik ettevalmistustööd eelnevalt teha, kõik vajalikud kontrollid läbi viia, koostada tööd osalistega, üksikasjalikult prognoosida tööde tootmisprotsessi, vältida loovuse lendamist, kui "kõik läheb valesti", ja olla varustatud tagasilangemise plaaniga eelmisele konfiguratsioonile. Töö selle plaani kohaselt teostab võrguinsener ilma andmekeskuse inseneri kohalolekuta, kes füüsiliselt lülitusi teostab.
Mida veel on oluline sellise lülituse korral — kõik uued lingid on juba ette tasakaalu jälgimise all. Vead, linkide kaasamine agregaati, linkide koormus — kogu vajalik teave on juba jälgimisse ja see on juba kaardistatud.
D-Päev
POD
Valisime klientidele kõige vähem valuliku ja võimalikult veadeta teed lisalinkide vahetamiseks. Nii vahetasime mõne öö jooksul kõik PODid uute agregatsiooniklahvide sisse.
Kuid on veel jäänud vahetada seadmed, mis pakuvad DCI teenuseid.
L2
L2-ühenduse tagamise seadmete puhul ei suutnud me teha sarnaseid töid lisalinkidega. Sellel on vähemalt kaks põhjust:
- VXLAN-keskkondade jaoks vajaliku kiirusstandardiga vabad pordid puuduvad.
- VXLAN-keskkondade jaoks ei ole seansi konfiguratsiooni muutmise funktsionaalsust.
Linkide vahetamine 'ühe kaupa' vaid uue system-id paari kooskõlastamise ajaks ei olnud meie plaanis, kuna meil ei olnud 100% kindlust, et protseduur läheb sujuvalt, ja laboratoorsed testid näitasid, et juhul, kui 'midagi läheb valesti', saame me ikkagi ühenduse katkemise ja mis kõige hullem — mitte ainult klientidele, kellel on L2-ühendus teiste andmekeskustega, vaid ka kõikide selle andmekeskuse klientide jaoks.
Oleme eelnevalt läbi viinud kampaaniat klientide üleminekuks L2 kanalitelt, seega oli tegutsevate klientide arv, keda see puudutas VXLAN-lülitites, juba mitu korda väiksem kui möödunud aastal. Seetõttu otsustasime pausi võtta L2-ühenduse teenusest, tingimusel et me säilitame kohalikus andmekeskuses teenuste normaalse töö. Pealegi sisaldab SLA selle teenuse puhul võimalust korraldada planeeritud töid katkestuste ajal.
L3
Miks soovisime, et kõik üleminekuks L3VPN-i kasutamisele DCI teenuste korraldamisel? Üks põhjus on see, et ühel marsruuteritest, mis selle teenuse pakub, saab teostada töid lihtsalt varu taseme alandamisega N+0, ilma katkestusteta.
Vaatame teenuse pakkumise skeemi lähemalt. Selles teenuses L2 segment ulatub ainult klientide serveritest kuni L3VPN marsruutereid Selectel. Marsruuteritel katkestatakse kliendi võrk.
Igal kliendi serveril, näiteks, S2 ja S3 antud skeemi kohaselt on oma privaatne IP-aadressid — 10.0.0.2/24 serveri S2 juures ja 10.0.0.3/24 serveri S3 juures. Aadressid 10.0.0.252/24 ja 10.0.0.253/24 on määratud Selecteli poolt marsruutereid L3VPN-1 ja L3VPN-2, vastavalt. IP-aadress 10.0.0.254/24 on VRRP VIP aadress Selecteli marsuuterites.
L3VPN teenusest saab rohkem lugeda meie blogist.
Vahetamise hetkel nägi kõik välja umbes nagu diagrammil:
Kaks marsuuterit L3VPN-1 ja L3VPN-2 olid ühendatud vana aggregeerimise lülitiga A. VRRP VIP aadressi 10.0.0.254 meistriks on marsuuter L3VPN-1. Sellel on selle aadressi kõrgeim prioriteet võrreldes marsuutriga L3VPN-2.
unit 1006 {
description C2;
vlan-id 1006;
family inet {
address 10.0.0.252/24 {
vrrp-group 1 {
priority 200;
virtual-address 10.100.0.254;
preempt {
hold-time 120;
}
accept-data;
}
}
}
}Server S2, et suhelda teiste asukohtade serveritega, kasutab väravat 10.0.0.254. Kui L3VPN-2 marsuuter on võrgu lõpp, siis (loomulikult pärast selle väljalülitamist MPLS domeenist) ei mõjuta see kliendi serverite ühenduvust. Sel hetkel väheneb lihtsalt skeemi varukoopia tase.
Pärast seda saame rahulikult marsuuteri uuesti ühendada L3VPN-2 kahte lülitit N. Luua lingid, vahetada transiivereid. Marsruuteri loogilised liidesed, millest sõltuvad klienditeenuste toimimine, on välja lülitatud kuni kinnitamiseni, et kõik töötab nagu peab.
Pärast linkide, transiivereid, signaalitasemeid ja vigade tasemeid kontrollimist, lülitatakse marsruuter tööle, kuid juba ühendatud uue lüliti paariga.
Edasi vähendame L3VPN-1 marsruuteri VRRP eelistust ja VIP aadress 10.0.0.254 liigub marsruuterile L3VPN-2. Need tööd teostatakse samuti ilma ühenduse katkestamiseta.
VIP aadressi 10.0.0.254 üleviimine marsruuterile L3VPN-2 võimaldab lülitada marsruuteri L3VPN-1 ilma katkestusteta kliendile ja ühendada see juba uue aggregeerimise lülitite paariga N.
Kas tuua VRRP VIP tagasi marsruuterile L3VPN-1 või mitte — see on juba teine küsimus, ning kui tuua tagasi, siis seda tehakse samuti ilma katkestusteta.
Kokku
Pärast kõiki neid toiminguid oleme tõeliselt vahetanud aggregeerimis lülitid ühes meie andmekeskustes, minimeerides samal ajal katkestusi meie klientide jaoks.
Edasi jääb ainult demonteerimine. Vanade lülitite demonteerimine, vanade ühenduste demonteerimine lülitite A ja D vahel, nende ühenduste transiiverite demonteerimine, jälgimise parandamine, võrgu skeemi parandamine dokumentatsioonis ja jälgimises.
Lülitid, transiiverid, patch-kaablid, AOC, DAC, mis jäävad pärast lülitamisi, saame kasutada teistes projektides või sarnaste lülituste puhul.
„Natasja, me lülitasime kõik?“
Allikas: habr.com
