I den här artikeln vill jag visa hur enkelt och gratis du kan göra ett failover-schema för en webbplats (eller någon annan internettjänst) med en kombination av övervakning
Att leva med failover eller utan?
Tills något problem uppstår är det inte så stor skillnad. Men när det händer, utan failover, händer ofta följande: du försöker snabbt ta reda på vad problemet är, det fungerar inte (säkerhetskopior distribueras inte, programvaran av någon anledning fungerar inte som den ska från dokumentationen , etc.), men det finns ingen tid, ingen server - sajterna ligger runt, kunder ringer, alla är på kant, du försöker på något sätt fixa det grovt och smutsigt "med tejp", sedan på något sätt verkar det starta upp med kryckor och liv. Du tror att du på fritiden kommer att behöva reda ut det mer i detalj och göra om allt vackert, men det finns inget mer permanent än tillfälligt.
Nu, hur detta händer i en vacker version med en filer:
- Ett misstag händer
- Felet upptäcks automatiskt
- Varning skickas ut
- Byte till en av backupservrarna överförs
- Lugnt och utan panik löses problemet, åtgärdas och servern sätts i drift igen.
Detta schema kan naturligtvis också ha sina egna problem, men ändå är schemat linjärt, varje steg är enkelt och huvudsaken är att det kan felsökas separat, så risken för misslyckande med detta schema är mycket lägre, och alla åtgärder kan automatiseras och utföras snabbt (till skillnad från uppgiften att hitta och fixa okänt episk skit). Ditt plan har landat i ett avlägset land, du slår på din telefon och ser ett meddelande i ett telegram om att servern har kraschat, men allt är bra, backupservern har aktiverats, du kan fortsätta din resa, du behöver inte att flyga tillbaka eller reparera den via SSH från närmaste kafé med WiFi . Du kommer att ta reda på det när det är bekvämare.
Framtiden är redan här!
Tidigare var huvudproblemet som ofta gjorde failover till en oacceptabel lösning hur mycket kostnaden det kostar. Eller så var det nödvändigt att köpa dyr hårdvara (och bjuda in ännu dyrare specialister). Eller kollektivgård något komplicerat enligt guiderna (jag stötte till och med på ett alternativ där två servrar dessutom är anslutna med en nollmodemkabel, och de skickar ett hjärtslag genom den, så att backupservern vid rätt tidpunkt känner igen det och tar över kontrollera). Nu finns det enklare och gratis sätt. Om du har en webbplats med katter finns det ingen ursäkt för dig att inte implementera failover för den ännu!
Tja, dessutom, för ett failover-schema behöver du en annan server (och kanske mer än en) och innan var detta en stor kostnad, nu kan du få en VDS för slantar.
Den mest pålitliga sidan med katter
För att praktiskt illustrera lösningen med okerr + dynamisk dns lanserade vi vår hemsida med katter
I den tekniska informationen finns en rad "status=OK". Ibland låtsas servrar problem och skriver status=ERR. Huvudservern "verkar krascha" 20 minuter varje timme (0:20, 1:20, 2:20, …). Backupserver på 40 minuter. Den sista servern ("förlåt" servern) är alltid igång. Vid 0 minuter varje timme "återställs" huvud- och backupservrarna.
Om du öppnar sidan och lämnar den i fliken kommer du att se att den aldrig kraschar (även om varje enskild server periodvis simulerar ett problem), och i händelse av problem med servern "körs" den helt enkelt mellan liveservrar. Bilden, namnet och adressen för servern och dess roll kommer att ändras. Ibland kan du fånga ögonblicket när status = ERR (problemet finns redan, men hela failover-schemat har ännu inte fungerat), men nästa uppdatering kommer att visa dig en sida från arbetsplatsen.
Failover på okerr + dynamisk DNS
Låt oss se hur det fungerar under huven. Filarens uppgift är att se till att cat.okerr.com-adressen alltid pekar på IP-adressen för den fungerande servern.
Bakom var och en av servrarna som är värd för vår kattsajt i okerr finns en indikator som kontrollerar dess status en gång i minuten.
I den här skärmdumpen ser vi hur sajten cat.okerr.com kontrolleras från alpha.okerr.com-servern. Sidan ska innehålla status=OK, och som vi ser ovan är vår indikatorstatus OK nu. När servern "går sönder" kommer det att uppstå ett ERR. (Detta är bara ett exempel på en indikator, okerr övervakar, så du kan bifoga vilken typ av indikator som helst, till exempel kontrollera ledigt utrymme på disken, antalet nya beställningar i databasen och även logiska indikatorer, till exempel , på natten kommer det att finnas vissa felkriterier, och under dagen andra).
I projektinställningarna skapade vi ett failover-schema med dessa indikatorer:
Systemet har tre indikatorer (tre servrar), olika i prioritet. Huvudservern för sajten är charlie, om den inte fungerar (den kommer inte att ha "status=OK" eller är helt enkelt otillgänglig), då bravo och i det senare fallet - alpha. Den högra sidan av sidan visar statusen för DNS-posten på olika servrar.
För de som märkt att namnet cat.he.okerr.com används: Vi använder ett lite mer komplext schema. Istället för att bara ändra DNS-posten för cat.okerr.com, ändrar vi cat.he.okerr.com (på Dynamic DNS-leverantören
Från att falla till att stiga
Steg för steg hur detta schema fungerar:
- Ett problem uppstår (simulerat) på servern
- Okerr-sensorn kontrollerar statusen för varje server en gång i minuten och rapporterar till huvudprojektservern i okerr
- Motsvarande serverindikator ändras från OK till ERR
- När statusen för indikatorn ändras, beräknas failover om, och det beräknas vilken adress som behöver ställas in (om det behövs. Till exempel, om huvudservern fungerar, och samtidigt som backupservern dog, kommer inga ändringar att göras gjord)
- Denna adress rapporteras till den dynamiska dns-tjänsten. När det här steget är klart ser du statusen "synkroniserad" till höger.
- Mycket snart (sekunder) kommer posten att nå DNS-servrarna på din domän (för kattsidan är det ns1-ns5.he.net).
- Från och med detta ögonblick kommer vissa användare redan att vara på den nya liveservern. Men inte alla DNS-servrar i världen har uppdaterat posterna ännu, och den gamla posten kan fortfarande vara cachad någonstans. Du kan se hur data på offentliga DNS-servrar "dansar" och visar antingen ett nytt eller gammalt värde. Om du uppdaterar failover-konfigurationssidan kommer operatören själv att begära ny data från DNS-servrarna.
- Efter att data har stabiliserats är den gamla cachade posten ruttet överallt - alla 100 % av förfrågningarna går till den nya servern.
För att påskynda steg 7 (ofta den längsta) bör TTL för den dynamiska DNS-posten sättas så lågt som möjligt. Vanligtvis tillåter tjänster intervaller på 90-120 sekunder. Detta är en helt rimlig kompromiss.
dessutom
Allt detta kan konfigureras på en kväll (om du redan har en backupserver). Både okerr och dynamiska DNS-tjänster är gratis. För att få fler checkar i okerr och en kortare verifieringsperiod måste du genomföra utbildning (från din profilsida). När det är klart ökar nivån omedelbart (20 indikatorer per timme + 1 snabb, 10 minuter). Och om det är få av dem, skriv till [e-postskyddad], troligen kommer det att vara möjligt att öka (hittills har det alltid funnits en möjlighet, jag har aldrig tackat nej, tvärtom, jag erbjöd det själv). Det är bara det att jag till en början inte vill lova alla allt, jag är inte säker på att jag har tillräckligt med kapacitet för att hålla mitt ord. Men än så länge är det få användare, så det är inga problem med att höja gränserna.
Vad okerr kan göra i allmänhet - titta på hemsidan
När indikatorns status ändras skickas ett meddelande via e-post eller telegram. (Vi tittade på vad som hände och insåg att telegram verkar vara den mest pålitliga budbäraren. Tack vare RKN för stresstestet!) Med okerr korrekt konfigurerad är varje avisering antingen en signal "släpp allt, vi måste fixa det!" , eller "släcker!" Det bör inte finnas några extra varningar från okerra (om det finns måste de konfigureras på något annat sätt). Till exempel, för vår kattsajt, är alfaservern den sista och förfalskar aldrig ett fel. Om han ligger ner måste vi veta. Men andra servrar låtsas ständigt fel, därför, för att inte ta emot varningar flera gånger i timmen, har dessa indikatorer en "tyst" status.
Det är också vettigt att skapa en ledsen server (på vilket billigaste värd som helst), som antingen kommer att ha din ursäktsida (ifall alla huvud- och backupservrar är nere) eller som omdirigerar dig till statussidan på okerr (till exempel vår
Källa: will.com