Binero 2.0, del 1.4 – Driftsäkerhet, lastbalansering

  • PUSHA

I denna sista bloggpost i delen driftsäkerhet har vi något riktigt extra!

Något väldigt viktigt som säkert 98 procent av alla webbhotell saknar; lastbalansering.

» Lastbalansering, den enkla versionen
» Lastbalansering, tekniskt mumbojumbo


Lastbalansering, den enkla versionen

Lastbalansering är ett sätt att få din hemsida att vara oftare online på nätet. I en vanlig miljö, som vår gamla t ex, så är man beroende av en server, virtuell eller ej.

Om den här servern går sönder, blir överbelastad eller råkar ut för något annat fel som gör att den helt enkelt inte fungerar som den ska så kommer din webbsida inte kunna visas för besökarna. Och trasiga saker har vi diskuterat förut, det ogillar vi.

Vad vi gör då är att vi placerar din hemsida på flera servrar och besökaren hamnar på den servern som är minst belastad för närvarande och skulle något hända med den servern så hamnar den trevliga besökaren på en annan server. Upp till tio servrar ligger din hemsida på.

Vi tyckte inte detta var tillräckligt utan vi sa att webbservern ska inte göra något annat än att visa webbsidor, så vi satte upp tio servrar som bara hanterar FTP för din hemsida och ytterligare tio som hanterar e-posten ett antal databasservrar som kopierar all data kontinuerligt till en backup databasserver.

Krångligt? Ja det är det men sammanfattningen är att vi har slagit på stort i det nya systemet för att vara säkra på att vi kan leverera en världsbäst lösning för din hemsida.


Lastbalansering, tekniskt mumbojumbo

För lastbalanserarna har vi valt att använda OpenBSD tillsammans med relayd och carp (Common Address Redundancy Protocol). Relayd är en demon som är inkluderad i OpenBSD för att dynamiskt lastbalansera valfria tjänster i kombination med pf (packet-filter) och rdr .

Relayd är uppsatt för att flera gånger per minut kontrollera att bakomliggande noder fungerar som de ska och att om någon av noderna mot förmodan skulle gå ner tar relayd bort den ur klustret och trafiken omdirigeras till de andra noderna samt larmar vår driftavdelning. Vi har valt att köra denna typ av installation för samtliga tjänster, HTTP, FTP och e-post för att garantera högsta möjliga upptid.

För att vidare säkerställa full redundans nyttjar vi carp i active/passive mode mellan lastbalanserarna. Om en lastbalanserare går ner flyttar carp då över service-IP:t för tjänsten till den passiva lastbalanseraren som redan är redo att börja sända trafik till underliggande noder.

Då carp skapar ett virtuellt interface med en delad mac-address minimerar vi den nertid som uppstår vid en automatisk överlämning (failover) då noderna inte behöver uppdatera sin arp-cache (Address Resolution Protocol). Tester vi gjort har visat att överlämningen görs på mindre än tre sekunder.

Utöver detta delar bakomliggande noder samma lagring vilket säkerställer att din data finns tillgänglig oavsett vilken nod dina besökare hamnar på.

Relaterade inlägg:

  1. Binero 2.0, del 1 – Driftsäkerhet, virtualisering
  2. Binero 2.0, del 1.3 – Driftsäkerhet, nätverk och övervakning
  3. Binero 2.0, del 1.2 – Driftssäkerhet, lagring
  4. Binero 2.0, del 1.1 – Säkerhet, brandväggar
  5. Uppgraderingen av BineroNet: lastbalansering
  • peder

    vore intessant att höra hur sessions funkar i denna miljö. antar att det är helt transparent för era kunder, men hur går det till rent praktiskt?

  • pjocke

    @peder: “Utöver detta delar bakomliggande noder samma lagring vilket säkerställer att din data finns tillgänglig oavsett vilken nod dina besökare hamnar på.” Om det är t.ex. PHP:s sessioner du syftar på är det garanterat där du har lösningen – session.save_path på delad lagring. TCP-states syncas nog mellan lastbalanserarna med pfsyncd, om man får gissa lite.

  • http://www.binero.se garnser

    Hej Peder,

    Som pjocke nämner kommer även lagring av session-data vara centraliserat per användare. Utöver detta kör vi även last-balanserarna i “sticky-mode” vilket säkerställer att den session som är initierad av användaren alltid går mot samma bakomliggande nod. Men även om noden skulle gå ner så finns session-datan tillgänglig på de andra att återuppta direkt.

  • http://www.strandhuset.se Björn

    Och det ger resultat, er tillgänglighet är outstanding. Well done!

  • http://blogg.johandahlberg.se/ Johan Dahlberg

    Ni kan inte lägga upp lite bilder på er server hall?

  • http://www.binero.se Erik

    Hej Johan,
    Tack för tanken och den har du helt rätt i! Vi har det på gång (det också), det kommer.
    Vänliga hälsningar,

    Erik, Binero

  • Josm

    Har ni ett fc san bakom? Eller hur monteras lagringen till varje nod? Nfs?

  • http://www.binero.se Erik

    Hej Josm,
    Tack för frågan och kul med så mycket intresse. Nfs är det!
    Vänliga hälsningar,

    Erik, Binero

  • Krille

    Kanske lite o.t. men.. Jag skulle gärna använda Binero, men har några tunga sajter som inte ryms i era paket. Kan ni inte erbjuda dedikerad kraft (gärna lastbalanserad och mer bandbredd? En vettig managedtjänst saknas förövrigt också i vårt avlånga land (och ja, jag är beredd att betala för premiumtjänster)

  • http://www.binero.se Erik

    Hej Krille,
    Tack för frågan. Även om vi just nu inte erbjuder dedikerad hosting så är inget hugget i sten. Nu ska vi först lansera det nya systemet.
    Vänliga hälsningar,
    Erik, Binero

  • Ulrik

    Hej,

    Det skulle vara intressant att höra mer om hur MySQL databaser hanteras i den nya miljön. I många webbapplikationer ligger ju i princip “allt” i databasen. Är databaserna lastbalanserade/redundanta och kan man vara säker på att data alltid är 100% synkroniserat mellan databashanterare, databaser?

  • Conny

    Gäller lastbalanseringen även på Windows-servrarna?

  • http://www.binero.se Erik

    Hej Conny,
    Jomenabsolut är det så!
    Vänliga hälsningar,
    Erik, Binero

  • Pingback: Binero är Sveriges bästa webbhotell! | Johan Linnarsson

  • http://folkraceshop.se/ Stefan Ekblom

    Synd att ni bommande att installera Zend Optimizer i den nya plattformen…

  • http://www.binero.se Anders

    Stefan, Zend finns i det nya systemet och fungerar utmärkt. Jag använder det själv på en av webbplatserna som jag har lagt i det nya systemet.
    Du ligger tyvärr inte än i det nya systemet, vi har ca 70 kunder som betatestar i det nya systemet än så länge.

  • http://folkraceforum.se Stefan Ekblom

    Jo, jag upptäckte det senare, men iochmed att jag fick Zend fel, så trodde jag att jag hade blivit flyttad, sorry för det ;-)

  • Nicklas

    Är det Zend eller Zend Optimizer ni har i 2.0?

  • http://www.kjette.se Kjetil

    Vi använder oss av Zend Optimizer.

  • Pingback: Tillbakablick 2010 och framåt | Binero blogg

  • Pingback: Migrering: DNS-kunder först ut (och in) | Binero blogg


Bäst i test två år i rad - Internetworld

Rekommenderas av InternetworldVi är prisade för vår goda support, höga funktionalitet och kontrollpanel.