Në këtë artikull dua të tregoj se sa e lehtë dhe falas mund të bëni një skemë dështimi për një faqe interneti (ose ndonjë shërbim tjetër në internet) duke përdorur një kombinim të monitorimit
Të jetosh me dështim apo pa?
Derisa të ndodhë ndonjë problem, nuk ka shumë ndryshim. Por kur ndodh, pa dështuar shpesh ndodh sa vijon: ju përpiqeni të kuptoni shpejt se cili është problemi, ai nuk funksionon (kopjet rezervë nuk vendosen, softueri për ndonjë arsye nuk funksionon siç duhet nga dokumentacioni , etj.), por nuk ka kohë, nuk ka server - faqet janë të shtrira, klientët po telefonojnë, të gjithë janë në avantazh, ju po përpiqeni ta rregulloni disi atë përafërsisht dhe të ndotur "me shirit", pastaj disi duket se po fillon me paterica dhe jetë. Ju mendoni se në kohën tuaj të lirë do t'ju duhet ta kuptoni më në detaje dhe të ribëni gjithçka bukur, por nuk ka asgjë më të përhershme se sa e përkohshme.
Tani, si ndodh kjo në një version të bukur me një skedar:
- Ndodh një gabim
- Gabimi zbulohet automatikisht
- Alarmi dërgohet
- Kalimi në një nga serverët rezervë transferohet
- Me qetësi dhe pa panik, problemi zgjidhet, korrigjohet dhe serveri vihet sërish në funksion.
Kjo skemë, natyrisht, mund të ketë edhe problemet e veta, por megjithatë, skema është lineare, secila fazë është e thjeshtë dhe gjëja kryesore është që mund të korrigjohet veçmas, kështu që mundësia e dështimit të kësaj skeme është shumë më e ulët, dhe të gjitha veprimet mund të automatizohen dhe të kryhen shpejt (ndryshe nga detyra për të gjetur dhe rregulluar katrahurën e panjohur epike). Avioni juaj është ulur në një vend të largët, ju ndizni telefonin tuaj dhe shihni një njoftim në një telegram se serveri është rrëzuar, por gjithçka është në rregull, serveri rezervë është aktivizuar, ju mund të vazhdoni udhëtimin tuaj, nuk keni nevojë për të fluturuar prapa ose për ta riparuar atë nëpërmjet SSH nga kafeneja më e afërt me WiFi. Do ta kuptoni kur të jetë më i përshtatshëm.
E ardhmja është tashmë këtu!
Më parë, problemi kryesor që e bënte dështimin shpesh një zgjidhje të papranueshme ishte shuma e kostos që kushtonte. Ose ishte e nevojshme për të blerë pajisje të shtrenjta (dhe për të ftuar specialistë edhe më të shtrenjtë). Ose ferma kolektive diçka e komplikuar sipas udhëzuesve (madje kam hasur në një opsion ku dy serverë janë të lidhur shtesë me një kabllo modem null, dhe ata dërgojnë një rrahje zemre përmes tij, në mënyrë që në kohën e duhur serveri rezervë ta njohë dhe të marrë përsipër kontroll). Tani ka mënyra më të lehta dhe falas. Nëse keni një uebsajt me macet, nuk ka asnjë justifikim për ju që të mos zbatoni ende failover për të!
Epo, përveç kësaj, për një skemë failover ju nevojitet një server tjetër (dhe ndoshta më shumë se një) dhe më parë kjo ishte një shpenzim i madh, tani mund të merrni një VDS për qindarka.
Faqja më e besueshme me macet
Për të ilustruar praktikisht zgjidhjen me okerr + dns dinamike, ne hapëm faqen tonë të internetit me macet
Në informacionin teknik ka një rresht "status=OK". Ndonjëherë serverët shtiren probleme dhe shkruajnë status=ERR. Serveri kryesor "duket se rrëzohet" në 20 minuta të çdo ore (0:20, 1:20, 2:20, ...). Server rezervë në 40 minuta. Serveri i fundit (serveri "më falni") është gjithmonë në punë. Në 0 minuta të çdo ore, serverët primar dhe rezervë "rikthehen".
Nëse e hapni faqen dhe e lini në skedë, do të shihni se ai nuk rrëzohet kurrë (edhe pse çdo server individual simulon periodikisht një problem), dhe në rast të një problemi me serverin, ai thjesht "drejton" midis serverëve të drejtpërdrejtë. Fotografia, emri dhe adresa e serverit dhe roli i tij do të ndryshojnë. Ndonjëherë mund të kapni momentin kur statusi = ERR (problemi tashmë ekziston, por e gjithë skema e dështimit nuk ka funksionuar ende), por përditësimi tjetër do t'ju tregojë një faqe nga faqja e punës.
Dështimi në okerr + DNS dinamike
Le të shohim se si funksionon nën kapuç. Detyra e skedarit është të sigurojë që adresa cat.okerr.com të tregojë gjithmonë adresën IP të serverit që punon.
Pas secilit prej serverëve që pret faqen tonë të maceve në okerr ka një tregues që kontrollon statusin e tij një herë në minutë.
Në këtë pamje të ekranit ne shohim se si faqja cat.okerr.com kontrollohet nga serveri alpha.okerr.com. Faqja duhet të përmbajë status=OK, dhe siç e shohim më lart, statusi i treguesit tonë tani është në rregull. Kur serveri "prihet", do të ketë një ERR. (Ky është vetëm një shembull i një treguesi, okerr po monitoron, kështu që ju mund të bashkëngjitni çdo lloj treguesi, për shembull, kontrolloni hapësirën e lirë në disk, numrin e porosive të reja në bazën e të dhënave dhe madje edhe treguesit logjikë, për shembull , natën do të ketë disa kritere gabimi, dhe gjatë ditës të tjera) .
Në cilësimet e projektit krijuam një skemë dështimi me këta tregues:
Skema ka tre tregues (tre serverë), të ndryshëm në prioritet. Serveri kryesor për sitin është charlie, nëse nuk funksionon (nuk do të ketë "status=OK" ose thjesht është i padisponueshëm), atëherë bravo dhe në rastin e fundit - alfa. Ana e djathtë e faqes tregon statusin e regjistrimit DNS në serverë të ndryshëm.
Për ata që vunë re se përdoret emri cat.he.okerr.com: Ne përdorim një skemë pak më komplekse. Në vend që thjesht të ndryshojmë rekordin DNS të cat.okerr.com, ne ndryshojmë cat.he.okerr.com (në ofruesin Dynamic DNS
Nga rënia në ngritje
Hap pas hapi si funksionon kjo skemë:
- Ndodh një problem (i simuluar) në server
- Sensori okerr kontrollon statusin e secilit server një herë në minutë dhe raporton te serveri kryesor i projektit në okerr
- Treguesi përkatës i serverit ndryshon nga OK në ERR
- Kur statusi i treguesit ndryshon, dështimi rillogaritet dhe llogaritet se cila adresë duhet të vendoset (nëse është e nevojshme. Për shembull, nëse serveri kryesor është duke punuar, dhe në të njëjtën kohë serveri rezervë ka vdekur, nuk do të ketë ndryshime i bërë)
- Kjo adresë i raportohet shërbimit dinamik dns. Pas përfundimit të kësaj faze, do të shihni statusin e "sinkronizuar" në të djathtë.
- Shumë shpejt (sekonda) rekordi do të arrijë në serverët DNS të domenit tuaj (për faqen cat është ns1-ns5.he.net).
- Nga ky moment, disa përdorues do të jenë tashmë në serverin e ri të drejtpërdrejtë. Por jo të gjithë serverët DNS në botë i kanë përditësuar ende të dhënat dhe rekordi i vjetër mund të ruhet ende diku. Ju mund të shihni se si të dhënat në serverët DNS publik "vallëzojnë", duke treguar një vlerë të re ose të vjetër. Nëse përditësoni faqen e konfigurimit të dështimit, vetë operatori do të kërkojë të dhëna të reja nga serverët DNS.
- Pasi të dhënat janë stabilizuar, rekordi i vjetër i memorizuar është i kalbur kudo - të gjitha 100% të kërkesave shkojnë në serverin e ri.
Për të shpejtuar fazën 7 (shpesh më të gjatë), TTL e regjistrimit dinamik DNS duhet të vendoset sa më ulët që të jetë e mundur. Zakonisht shërbimet lejojnë intervale prej 90-120 sekondash. Ky është një kompromis plotësisht i arsyeshëm.
Përveç kësaj
E gjithë kjo mund të konfigurohet në një mbrëmje (nëse tashmë keni një server rezervë). Të dy shërbimet okerr dhe ato dinamike DNS janë falas. Për të marrë më shumë kontrolle në okerr dhe një periudhë më të shkurtër verifikimi, duhet të përfundoni trajnimin (nga faqja e profilit tuaj). Pas përfundimit, niveli rritet menjëherë (20 tregues në orë + 1 i shpejtë, 10 minuta). Dhe nëse ka pak prej tyre, shkruajini [email mbrojtur], me shumë mundësi do të jetë e mundur të rritet (deri më tani ka pasur gjithmonë një mundësi, nuk e kam refuzuar kurrë, përkundrazi, e kam ofruar vetë). Vetëm se fillimisht nuk dua t'u premtoj të gjithëve gjithçka, nuk jam i sigurt se kam kapacitet të mjaftueshëm për të mbajtur fjalën time. Por deri më tani ka pak përdorues, kështu që nuk ka probleme me rritjen e kufijve.
Çfarë mund të bëjë okerr në përgjithësi - shikoni faqen e internetit
Kur ndryshon statusi i treguesit, një njoftim dërgohet me email ose Telegram. (Ne shikuam se çfarë po ndodhte dhe kuptuam se telegrami duket të jetë mesazheri më i besueshëm. Falë RKN për testin e stresit!) Me okerr të konfiguruar saktë, çdo njoftim është ose një sinjal "hiqni gjithçka, duhet ta rregullojmë!" , ose "dritat fikur!" Nuk duhet të ketë asnjë sinjalizim shtesë nga okerra (nëse ka, ato duhet të konfigurohen disi ndryshe). Për shembull, për faqen tonë të maceve, serveri alfa është i fundit dhe nuk falsifikon kurrë një gabim. Nëse ai shtrihet, ne duhet ta dimë. Por serverët e tjerë vazhdimisht shtiren gabime, prandaj, për të mos marrë sinjalizime disa herë në orë, këta tregues kanë një status "të heshtur".
Gjithashtu ka kuptim të krijosh një server me falje (në çdo host më të lirë), i cili ose do të ketë faqen tuaj të faljes (në rast se të gjithë serverët kryesorë dhe rezervë janë të dëmtuar) ose do t'ju ridrejtojë në faqen e statusit në okerr (për shembull, e jona
Burimi: www.habr.com