Upgrade to Pro — share decks privately, control downloads, hide ads and more …

#3 “SRLB: The Power of Choices in Load Balancin...

#3 “SRLB: The Power of Choices in Load Balancing with Segment Routing”

Avatar for cafenero_777

cafenero_777

June 08, 2023
Tweet

More Decks by cafenero_777

Other Decks in Technology

Transcript

  1. Research Paper Introduction #3 “SRLB: The Power of Choices in

    Load Balancing with Segment Routing” @cafenero_777 2019/07/17
  2. $ which • SRLB: The Power of Choices in Load

    Balancing with Segment Routing • Yoann Desmouceaux ∗† , Pierre Pfister † , J´erˆome Tollet † , Mark Townsley ∗† , Thomas Clausen∗ • ∗Ecole Polytechnique, 91128 Palaiseau, France{yoann.desmouceaux,mark.townsley,thomas.clausen}@polytechnique.edu • †Cisco Systems Paris Research and Innovation Laboratory (PIRL), 92782 Issy-les-Moulineaux, France {ydesmouc,ppfister,jtollet,townsley}@cisco.com • http://www.thomasclausen.net/wp-content/uploads/2017/06/2017-ICDCS-SRLB-The-Power-of- Choices-in-Load-Balancing-with-Segment-Routing.pdf • https://www.internet-of-everything.fr/2017/06/09/paper-on-line-srlb-the-power-of-choices-in-load- balancing-with-segment-routing/
  3. Agenda • ֓ཁͱಡ΋͏ͱͨ͠ཧ༝ • Abstract • Introduction • αʔϏεϋϯςΟϯά •

    ίωΫγϣϯΞΫηϓλϯεϙϦγʔ • ࣮ݧ؀ڥ • ϙΞιϯτϥϑΟοΫ • ΢ΟΩϖσΟΞϦϓϨΠ • Conclusion
  4. ֓ཁͱಡ΋͏ͱͨ͠ཧ༝ • ֓ཁ • SRv6Λ࢖ͬͯϓϩτίϧඇґଘͳΞϓϦέʔγϣϯLoad BalancerΛݕূͨ͠ɻ • ैདྷͷϥϯμϜͳLBʹൺ΂ͯɺେ͖ͳύϑΥʔϚϯε޲্͕ࣔ͞Εͨɻ • ಡ΋͏ͱͨ͠ཧ༝

    • SRv6 (Segment Routing IPv6)ͷ࣮ྫΛ஌Γ͍͔ͨΒɻ͓΋͠Ζͦ͏͔ͩΒɻ • LBͳΒ਎ۙʹײ͔ͨ͡Βɻ(NOT Service Chaining͔ͩΒɻ) • VPPΛ࢖࣮ͬͯ૷͍ͯͨͨ͠Ίɻ
  5. ΠϯτϩμΫγϣϯ • ΞϓϦέʔγϣϯεέʔϦϯά • L4-LB(ECMP+RoundRobin), L7-LB(ΞϓϦέʔγϣϯͷঢ়ଶʹґΔ෼ࢄ) • ཧ૝తʹ͸2ͭΛ૊Έ߹Θ͕ͤྑ͍ɺ͕ݱ࣮తʹ͸ߴෛՙ • ཱࣗ෼ࢄܕɿC-hash෼ࢄͰNW෼ࢄɻΞϓϦෛՙ෼ࢄ͸͠ͳ͍ɻEx.

    Maglev/Ananta • தԝूݖܕɿSDNίϯτϩʔϥ͕NW/APPෛՙΛݟͯෛՙ෼ࢄ -> ίϯτϩʔϥଆʹΞϓϦଆͷstateΛอ࣋ • ΞϓϦଆ͕ঢ়ଶΛ޿ใ͢Δͷ͸ύϑΥʔϚϯεྼԽ • Α͋͘Δෛՙ෼ࢄํࣜ • NW LB: DNS Round Robin, NAT/IP rewrite, IP redirect • L7 LB: ΞϓϦଆͷෛՙΛݟͳ͕Β෼ࢄɻ Ex. HAProxy • SRv6 • Ѽઌ͚ͩͰͳ͘ɺηάϝϯτʢordered sequence of instructionsʣΛอ࣋ɻѼઌʹಧ͘·ͰNW্Ͱॱ൪ʹ”࣮ߦ”͞ΕΔ • IPv6֦ுϔομ͕࢖ΘΕΔ
  6. αʔϏεϋϯςΟϯά • LBͰόϥϯγϯά • ϥϯμϜͰ΋ྑ͍͠hashͰ΋ྑ͍ • ࣮ݧʢޙड़ʣͷͨΊɺ࣮ࡍ͸2୆ • S1͕ड৴͢Δ͔࣍ͷηάϝϯτΛॲཧ͢Δ͔͸S1͚ͩͷϩʔΧϧϙϦγʔʹґΔ •

    LBͱͷL7 stateಉظ͕ཁΒͳ͍ʂ • ΞϓϦέʔγϣϯΤʔδΣϯτ͕ҎԼΛݩʹड৴͢Δ͔Λ൑அ • ߥͬΆ͍൑ఆɿCPUෛՙɾϝϞϦ࢖༻཰Λߟྀ • ΑΓࡉ͔͍൑அɿΞϓϦͷΞΠυϧεϨουͷϝτϦΫε౳ • ڞ༗ϝϞϦΛ࢖͑͹γεςϜίʔϧ΍ಉظॲཧͷෛՙ૿Ճ͕ແ͘ɺ
 ϦΞϧλΠϜͷॲཧίετ͸ແࢹͰ͖Δ • S2͔Β໭Δͱ͖ɺSRϔομʹS2, LBΛೖΕͯฦ͢ • ಉҰϑϩʔΛอূ͢ΔͨΊ
  7. ίωΫγϣϯΞΫηϓλϯεϙϦγʔ • Static policy • ͖͍͠஋cΛࣄલʹࢦఆ • busy thread਺b (0<b<n+1),

    ͖͍͠஋c͸ݻఆɻb < cͳΒॲཧɻ • ௿ෛՙͳΒখ͞ͳc͕ྑ͍ɻߴෛՙͳΒେ͖ͳc͕ྑ͍ • ௨ৗ͸ࣄલʹ͸ෛՙ܏޲͸෼͔Βͳ͍ͨΊ • Dynamic policy • ͖͍͠஋cΛಈతʹม͑Δ • ෛՙ෼ࢄ͕1/NʹͳΔΑ͏ʹϑΟʔυόοΫͰௐ੔
  8. ࣮ݧ؀ڥ • Load-Balancer • SR headerૠೖͱϑϩʔ੍ޚ͸VPPϓϥάΠϯͱ࣮ͯ͠૷ • ΧʔωϧόΠύε͢ΔͷͰੑೳ΋ྑ͍ • Apache

    HTTP Server Agent • VPPϓϥάΠϯͱ࣮ͯ͠૷ • Apache’s scoreboard shared memoryܦ༝ͰbusyεϨου਺ΛಡΈࠐΈ • System set-up • ΫΤϦδΣωϨʔλɺLB͸ಉҰ෺ཧϚγϯ্ͰՔಇ • ΞϓϦ͸2-core VMͱͯ͠ՔಇɺશͯಉҰᝑମ্ͰՔಇʢXeon E5-2690, 24coreʣ • LB(VPP)ͱΞϓϦ্ͷVPP͸ಉҰϦϯΫͰ઀ଓɺstatic routeΛར༻ • mpm_prefork moduleΛར༻ɺ32ϫʔΧʔεϨουɺ128ͷTCP backlog • tcp_abort_on_over fl ow Λ࢖ͬͯbacklog͕͍ͬͺ͍ʹͳͬͨͱ͖ʢߴෛՙ࣌ʣʹTCP RSTΛు͘Α͏ʹɻ • ͜ΕͰΞϓϦέʔγϣϯͷϨεϙϯε஗Ԇ͕ଌΕΔ
  9. ϙΞιϯτϥϑΟοΫ (Cont.) • ಉ࣮͡ݧΛαʔόଆ • SRRR ͩͱCDF͕෼ࢄେ͖͍ • SRC ͷํ͕αʔόͷෛՙ௿ݮ

    • ΑΓ௿ෛՙͳঢ়گͩͱC͕େ͖ͯ͘΋ޮՌͳ͠ • SR4 , SRdyn ͕࠷ྑ ΑΓ௿ෛՙͳঢ়گ
  10. ΢ΟΩϖσΟΞϦϓϨΠ • ΑΓݱ࣮తͳworkloadͷଌఆ • English version of Wikipedia • MediaWiki/MySQL/memcached

    on VM • 24࣌ؒ෼τϨʔεΛ࣮ߦ • SR4 ͕࠷ྑ • ΦϑϐʔΫ࣌͸SR4 , SRRR ͲͪΒ΋มΘΒͣ • Response timeதԝ஋ͰSR4: 0.20, SRRR: 0.25
  11. Conclusion • SRLB • ΞϓϦέʔγϣϯඇґଘ • application-instance state aware query

    assignment within the IP forwarding plane • தԝूݖܕɾSDNతͳ΋ͷʢOOB signalingʣ͸ඞཁͳ͠ • RR/Static/Dynamic query acceptance policy • RRΑΓSRΛ࢖ͬͯϑΟʔυόοΫͨ͠ํ͕ੑೳ͕ྑ͍