paint-brush
Ամպային հսկաները մեծ գումար են ծախսում բեռի հավասարակշռողների վրա. այս հետազոտությունը կարող է փոխել դակողմից@loadbalancer
Նոր պատմություն

Ամպային հսկաները մեծ գումար են ծախսում բեռի հավասարակշռողների վրա. այս հետազոտությունը կարող է փոխել դա

կողմից Load Balancer5m2025/02/14
Read on Terminal Reader

Չափազանց երկար; Կարդալ

Հետազոտողները օպտիմիզացրել են Layer-7 բեռի հավասարակշռումը, օգտագործելով ծրագրավորվող SmartNIC-ները՝ բարելավելու արդյունավետությունը, ծախսերը և էներգիայի օգտագործումը ամպային տվյալների կենտրոններում:
featured image - Ամպային հսկաները մեծ գումար են ծախսում բեռի հավասարակշռողների վրա. այս հետազոտությունը կարող է փոխել դա
Load Balancer HackerNoon profile picture
0-item

Հեղինակներ:

(1) Tianyi Cui, Վաշինգտոնի համալսարան ([email protected]);

(2) Չենզինգյու Ժաո, Վաշինգտոնի համալսարան ([email protected]);

(3) Wei Zhang, Microsoft ([email protected]);

(4) Kaiyuan Zhang, Վաշինգտոնի համալսարան ([email protected]):

Խմբագրի նշում. Սա 6-րդ ուսումնասիրության 1-ին մասն է, որը մանրամասնում է 7-րդ շերտի բեռի հավասարակշռման օպտիմալացման փորձերը: Մնացածը կարդացեք ստորև։

Հղումների աղյուսակ

Վերացական

Բեռնվածության հավասարակշռող սարքերը լայնորեն օգտագործվում են այսօրվա ամպերի ներսում՝ ցանցային հարցումները տվյալների կենտրոնների սերվերների մեջ մասշտաբային բաշխելու համար: Հաշվի առնելով ծանրաբեռնվածության հավասարակշռող սարքերի լայնածավալ օգտագործումը և դրանց հետ կապված գործառնական ծախսերը, մի շարք ջանքեր կենտրոնացած են դրանց արդյունավետության բարելավման վրա՝ միջուկում ներդնելով 4-րդ շերտի բեռի հավասարակշռման տրամաբանությունը կամ օգտագործելով ապարատային արագացում: Այս աշխատանքը ուսումնասիրում է, թե արդյոք ավելի բարդ և միացմանն ուղղված Layer-7 բեռնվածքի հավասարակշռման հնարավորությունը կարող է նաև օգտվել ապարատային արագացումից: Մասնավորապես, մենք նպատակաուղղված ենք բեռնաթափման հնարավորությունների բեռնաթափմանը ծրագրավորվող SmartNIC-ների վրա: Մենք լիովին օգտագործում ենք SmartNIC-ների ծախսերը և էներգաարդյունավետությունը՝ օգտագործելով երեք հիմնական գաղափարներ: Նախ, մենք պնդում ենք, որ ամբողջական և բարդ TCP/IP կույտ չի պահանջվում Layer-7 բեռի հավասարակշռիչների համար, և փոխարենը առաջարկում ենք թեթև վերահասցեավորող գործակալ SmartNIC-ում: Երկրորդ, մենք մշակում ենք կապի կառավարման տվյալների կառուցվածքներ՝ միաժամանակյա բարձր աստիճանով՝ նվազագույն համաժամանակացմամբ, երբ գործարկվում են բազմամիջուկ SmartNIC-ների վրա: Վերջապես, մենք նկարագրում ենք, թե ինչպես կարելի է արագացնել բեռի հավասարակշռման տրամաբանությունը՝ օգտագործելով SmartNIC-ների վրա հատուկ փաթեթների մշակման արագացուցիչներ: Մենք նախատիպում ենք Laconic-ը երկու տեսակի SmartNIC սարքաշարի վրա՝ հասնելով ավելի քան 150 Գբիտ/վ թողունակության՝ օգտագործելով բոլոր միջուկները BlueField-2-ում, մինչդեռ մեկ SmartNIC միջուկը հասնում է 8,7 անգամ ավելի բարձր թողունակության և Nginx-ի հետ համեմատելի ուշացման մեկ x86 միջուկի վրա:

1 Ներածություն

Բեռի հավասարակշռիչները տվյալների կենտրոնների համար հիմնարար շինանյութ են, քանի որ դրանք հավասարակշռում են ծառայության բեռը կիրառական սերվերների հավաքածուներում [38, 45, 46]: Բեռի հավասարակշռիչները ի սկզբանե կառուցվել են որպես մասնագիտացված ապարատային սարքեր, սակայն այժմ սովորաբար օգտագործվում են որպես ծրագրակազմ, որն աշխատում է ապրանքային սերվերների կամ VM-ների վրա: Այս տեղակայման մոդելն ապահովում է հարմարեցվածության և հարմարվողականության ավելի մեծ աստիճան, քան ապարատային վրա հիմնված հին նմուշները, բայց դա կարող է նաև հանգեցնել բարձր ծախսերի ամպային մատակարարների և կիրառական ծառայությունների համար՝ հաշվի առնելով գնման ծախսերը և ընդհանուր նշանակության սերվերների էներգիայի սպառումը [8]: Կիրառական ծառայությունները հաճախ մեծ ջանքեր են գործադրում՝ համախմբելու և նվազեցնելու բեռի հավասարակշռող սարքերի օգտագործումը՝ ցանկալի ծախսերի խնայողություններ ձեռք բերելու համար [2, 4, 5]:


Հաշվի առնելով ծանրաբեռնվածության հավասարակշռող սարքերի լայնածավալ օգտագործումը և արժեքը, մի շարք ջանքեր կենտրոնացած են դրանց արդյունավետության բարձրացման վրա, հատկապես Շերտ-4 (L4) բեռի հավասարակշռիչները՝ ներդնելով բեռի հավասարակշռման տրամաբանությունը ավելի ցածր, հնարավոր է ապարատային արագացված շերտում: Katran-ը [16] արագացվում է Linux-ի միջուկի ներսում eBPF կոդի միջոցով, այդպիսով միջուկի միջուկի միջուկի միջուկի մեջ գաղտնալսելով և մշակելով փաթեթները և նվազագույնի հասցնելով օգտվողի մակարդակի բեռի հավասարակշռման կոդի անցումների քանակը: ClickNP [32]-ը լուծում է L4 բեռնվածքի հավասարակշռման տրամաբանության որոշ ասպեկտներ (հատկապես NAT-ի նման հնարավորությունները) FPGA միացված SmartNIC-ի վրա և օգտագործում է FPGA սարքերի զուգահեռ մշակման հնարավորությունները: SilkRoad-ը [38] օգտագործում է ծրագրավորվող անջատիչի և վերջնական հոսթի համադրություն՝ L4 բեռի հավասարակշռիչների հետ կապված վիճակը պահելու և անջատիչ խողովակաշարում բեռի հավասարակշռման գործողության հետ կապված տվյալների հարթության փոխակերպումները կատարելու համար:


Թեև այս ջանքերը զգալի ձեռքբերումներ են ունեցել L4 բեռնվածության հավասարակշռման օպտիմալացման գործում, որը հավասարակշռում է երթևեկը ցանցի շերտում, տվյալների կենտրոնի ծառայությունները հաճախ հիմնվում են կիրառական շերտի բեռի հավասարակշռման հնարավորությունների վրա, որոնք հայտնաբերված են միայն Layer-7 (L7) բեռի հավասարակշռիչներում: Մասնավորապես, ծառայությունները կցանկանային ուղղորդել հոսքերը՝ հիմնվելով հաճախորդի հարցման հատկանիշների վրա, պահպանել սեսիայի կապը հաճախորդի հարցումների համար, ապահովել մուտքի վերահսկում և այլն [7]: Սակայն այս հատկանիշները դժվարացնում են L7 բեռի հավասարակշռողների համար կիրառել ապարատային-արագացման տեխնիկան, որն օգտագործվում է L4 բեռի հավասարակշռիչների համար: Հիմնական մարտահրավերն այն է, որ L7 բեռի հավասարակշռման գործողությունը հիմնված է կապի վրա հիմնված տրանսպորտային արձանագրություններում ներկառուցված տեղեկատվության վրա, այդպիսով թվում է, որ պահանջվում է ամբողջական փաթեթային ցանցի մշակման գործակալ բեռնվածության հավասարակշռիչում TCP/HTTP կապերը կարգավորելու համար: Հետևաբար, այսօրվա L7 բեռնաչափերը ընդհանուր ծրագրային լուծումներ են, որոնք կրում են բարձր պրոցեսինգային ծախսեր ապրանքային սերվերների վրա:


Այս աշխատանքում մենք ուսումնասիրում ենք, թե արդյոք մենք կարող ենք բարելավել L7 բեռի հավասարակշռողների արդյունավետությունը՝ օգտագործելով ծրագրավորվող ցանցային սարքավորում: Մենք կենտրոնանում ենք SmartNIC-ների վրա, որոնք ապահովում են ընդհանուր նշանակության հաշվողական միջուկներ՝ համալրված փաթեթների մշակման ապարատով: SmartNIC-ները հատկապես գրավիչ թիրախներ են, քանի որ դրանց հաշվողական միջուկները կարող են ընդունել կամայական արձանագրության տրամաբանություն, մինչդեռ դրանց փաթեթների մշակման արագացուցիչները կարող են արդյունավետ կերպով կատարել տվյալների հարթության փոխակերպումներ: Այսպիսով, SmartNIC-ը համատեղում է ավանդական հոսթինգի հնարավորությունները ծրագրավորվող անջատիչների առաջացող հնարավորությունների հետ և հանդիսանում է համապատասխան թիրախ L7 բեռի հավասարակշռիչների համար: Մեր աշխատանքը նաև մասամբ պայմանավորված է SmartNIC-ների աճող տեղակայմամբ տվյալների կենտրոններում՝ որպես ցանցային առաջադրանքների համար ծախսարդյունավետ և էներգաարդյունավետ հաշվողական հիմք:


Մի քանի մարտահրավերներ պետք է լուծվեն բեռնաթափման գործառույթը SmartNIC-ներում բեռնաթափելու համար: Նախ, SmartNIC միջուկները թուլացած են, հագեցած են սահմանափակ հիշողությամբ և անարդյունավետ են ընդհանուր նշանակության հաշվարկներ իրականացնելիս: Հնարավորության սահմաններում մենք պետք է օգտագործենք թեթև ցանցային կույտեր՝ OS միջուկների ներսում առկա ընդհանուր, լիարժեք ֆունկցիոնալ կույտերի փոխարեն: Երկրորդ, SmartNIC-ների վրա արդյունավետ բազմաբնույթ մշակումը ենթադրում է թեթև համաժամացում տվյալների միաժամանակյա կառուցվածքներին հասանելիության համար, և դա հատկապես կարևոր է, քանի որ մենք նվազեցնում ենք ցանցի մշակման տրամաբանությունը: Երրորդ, արագացուցիչների արդյունավետ օգտագործումը փաթեթների փոխակերպման համար անհրաժեշտ է SmartNIC-ների հաշվողական հնարավորությունները բարձրացնելու համար:


Մենք նախագծում և իրականացնում ենք Laconic-ը ՝ SmartNIC-ով բեռնաթափվող բեռնվածքի հավասարակշռող սարք, որը լուծում է վերը նշված մարտահրավերները: Մեր համակարգի հիմնական բաղադրիչը թեթև ցանցային կույտն է, որը ներկայացնում է կիրառական շերտի բեռի հավասարակշռման տրամաբանության համատեղ ձևավորումը տրանսպորտային շերտի առաջադրանքների հետ: Այս թեթև ցանցային կույտը կատարում է բարդ փաթեթների մշակում միայն փաթեթների ենթաբազմության վրա, որոնք փոխանցվում են բեռի հավասարակշռիչի միջոցով: Մնացած փաթեթների համար ցանցի կույտը կատարում է փաթեթների պարզ վերագրանցում և հենվում է հաճախորդի և սերվերի վրա՝ վերջնական հուսալիություն և գերբեռնվածության վերահսկում ապահովելու համար: Փաթեթների մշակման արագացուցիչներով SmartNIC-ների համար այս դիզայնը թույլ է տալիս փաթեթների մեծ մասը մշակել ապարատային վրա հիմնված հոսքի մշակման շարժիչների միջոցով՝ այդպիսով ապահովելով արդյունավետության զգալի ձեռքբերումներ: Մենք նաև մշակում ենք կապի կառավարման տվյալների կառուցվածքներ, որոնք շատ համընթաց են և նվազագույնի են հասցնում փոխադարձ բացառման թանկարժեք գործառնությունները: Մենք նշում ենք, որ մեր նախագծային ներդրումներից մի քանիսը վերաբերում են նաև սերվերի վրա հիմնված ընդհանուր նախագծմանը, բայց դրանք բազմապատկիչ ազդեցություն ունեն SmartNIC-ների վրա՝ գործակցելով արագ ուղի, որը կարող է իրականացվել ապարատային փաթեթների շարժիչների վրա:


Մենք կառուցեցինք Laconic-ը և այն հարմարեցրեցինք երկու տարբեր տեսակի SmartNIC-ներին՝ Marvell LiquidIO3 և Nvidia BlueField-2: Laconic-ը տրամադրում է ինչպես Layer-4, այնպես էլ Layer-7 ֆունկցիոնալությունը և իրականացնում է սովորաբար օգտագործվող Layer-7 ինտերպոզիցիայի տրամաբանությունը՝ հետին ծառայությունների հետ կապերը հավասարակշռելու համար: Խոշոր հաղորդագրությունների համար, Laconic-ը, որն աշխատում է BlueField-2-ով մեկ ARM միջուկով, կարող է հասնել մինչև 8,7 անգամ ավելի բարձր թողունակություն, քան լայնորեն օգտագործվող Nginx-ը, որն աշխատում է ավելի հզոր x86 միջուկով: Փոքր հաղորդագրությունների համար Laconic-ը BlueField-2-ում կարող է հասնել ավելի բարձր թողունակության՝ համեմատելի կամ նույնիսկ ավելի ցածր հետաձգմամբ՝ համեմատած Nginx-ի հետ: LiquidIO3-ում Laconic-ի թողունակությունը 4,5 անգամ ավելի բարձր է x86 Nginx-ի համեմատ: Մենք նաև ցուցադրում ենք Laconic կատարումը իրական աշխատանքային ծանրաբեռնվածությամբ և ներկայացնում ենք հիմնական գաղափարների առավելությունների վերաբերյալ մանրամասն միկրոհենանիշներ:


Նկար 1. Ընդհանուր SmartNIC ճարտարապետություններ


Այս փաստաթուղթը հասանելի է arxiv-ում CC BY-NC-ND 4.0 DEED լիցենզիայի ներքո: