Ամսական պահոցներ՝ Փետրվարի 2017

Ասք BSD֊ում CARP֊ով ծանրաբեռնուածութեան հաւասարակշռող կարգաւորելու մասին

CARP֊ի մասին

CARP֊ը, նոյն ինքը Common Address Redundancy Protocol-ը, ցանցային հաղորդակարգ է, որը թոյլ է տալիս մի քանի հանգոյց նոյն ցանցում ունենան նոյն ԱյՓին 🙂 CARP-ի գլխաւոր նպատակն է ֆեյլօվերների ժամանակ ապահովել կապը։ ճիշտ կարգաւորումով այն կարող է օգտագործուել որպէս ծանրաբեռնուածութեան հաւասարակշռող (Load Balancer)։

CARP-ը ստեղծուել OpenBSD֊ի կողմից է որպէս Ցիսկոյի VRRP֊ի ու HSRP֊ի ազատ եւ անպատենտ տարբերակ 🙂

Ինչու (Free|Open)BSD֊ի վրայ։

ահաւոր յարմար է, հեշտ, տեղակայումը տեւում է չորս րոպէ ։պ

Օկ, հիմա կարգաւորենք։

Այս փորձարկման համար սարքել եմ երկու վիրտուալ մեքենայ, hosta եւ hostb, որտեղ, hosta-ն լինելու է գլխաւոր մեքենան, իսկ hostb-ն լինելու է backup-ը։

օքեյ, հիմա։ CARP-ի համար պէտք են հետեւեալ բաները՝ Մեքենաներ, ամէն մէկն ունենում է իր իրական ԱյՓին (Real IP), եւ բոլորը միասին սպասարկում են Shared IP որն ունի իր Virtual Host ID :))

օկ, նախ կարգաւորենք իրական այփիները, եւ տեսնենք որ մէկը միւսին հասանելի է։

hosta.carp:

ifconfig em1 inet 192.168.69.10/24

ապա hostb.carp:

ifconfig em1 inet 192.168.69.20/24

եւ իրար պինգենք (։

ահա, հիմա երկուսն էլ իրար հասանելի են։ հիմա արդէն կարգաւորենք VHID-ն եւ shared IP-ն (։

hosta.carp:

ifconfig em1 inet vhid advskew 100 pass mypassword alias 192.168.69.50/24

hostb.carp:

ifconfig em1 inet vhid advskew 200 pass mypassword alias 192.168.69.50/24

advskew-ն որն աւելի ցածր է, դա աւելի բարձր priority ունի։

ես չուզեցի հրաման աշխատեցնել, նախընտրում եմ սկրիպտ գրել, ահա եւ դա։

յուշում, չմոռանալ միացնել միջուկի մոդուլը՝ kldload carp

ահա եւ երկու մեքենաները, ոնց տեսնում էք, մէկը master իսկ միւսը backup 🙂

լաւ, հիմա արդէն փորձարկում անենք։

դրա համար ես կը քաշեմ երկուսի վրայ էլ վեբ սերվեր, ապա ամէն մէկի մէջ գրենք թէ ինքը ով է ։)

հիմա, մաաաարդ ես, եթէ HostA-ին ինչ որ բան լինի, (էս դէպքում ես Reboot արեցի) ապա HostB-ն է արդէն պատասխանում 🙂

լաւ, հիմա միքիչ աւելի հետաքրքիր բան։ շատ ժամանակ ուզում ենք մեր միջավայրը փոխել, ասենք Dev վերսիան release անել, բայց երբէք downtime չենք ուզում։

հիմա ունեմ HostDev, որը ունի Dev վերսիան, հիմա դա պէտք է Release անել։

նախ իհարկէ դա կարգաւորում ենք CARP-ով (իհարկէ իր իրական այփին կարգաւորելուց յետոյ)։

ifconfig em1 inet 192.168.69.32/24
ifconfig em1 inet vhid 1 advskew 99 pass mypassword alias 192.168.69.50/25

ապա իրեն դնում ենք MASTER

ifconfig em1 vhid 1 state master

ու ֆսյո (։

ասանկ բաներ 🙂

Պատասխանել մեյլով