Gå til innhold

Anbefalte innlegg

Jeg er ute etter en robust måte å fordele last over flere web servere.

 

Jeg har flere ulike web servere, med ulik båndbredde kapasitet. De kjører mysql, og apache. Et av problemene er at de også tar imot opplastete filer.

 

Hvordan kan jeg lage en sømløs load balancer, som tar hensyn til forskjellige serveres kapasitet? Hvordan replikere sql og opplastede filer slik at sql ikke replikeres før filene er kommet over på alle serverene?

 

Er det mulig å sette opp en robust system for oppdateringer? Backup løsninger?

 

Hvordan kan det lages en backup løsning som tar hensyn til at en server går ned, og en annen tar over som load balancer? evt. resyncer en server som har vært nede over lengre tid?

 

Evt. andre tips? :)

Lenke til kommentar
Videoannonse
Annonse

Virker som du ikke helt vet hva du vil ha, men du kan undersøke revers proxy (en frontend server som fordeler forespørslene til ulike servere i bakhånd: squid f.eks). Her finnes flere løsninger alt etter budsjett og arkitektur.

 

Failover som du er ute etter kan oppnås med hearbeat hvor du oppretter et eget nett hvor maskinene pinger hverandre og dekker for hverandre hvis den ene går ned.

Lenke til kommentar

En god gjennomgang av alle problemstillingene du beskriver vil kreve en temmelig fyldig avhandling. Breddeskalering og HA-løsninger er forholdvis komplekse greier, spesielt dersom vi snakker om balansering i både leveranse, applikasjon og databaselag.

 

Jeg er heller ikke inneforstått med om målet er bedre sikring, høyere oppetid eller bedre ytelse.

 

Send meg en PM med kontaktinfoen din, så kan vi ta en prat om det.

Lenke til kommentar

Det er hovedsaklig ytelse jeg er ute etter. Det er snakk om web servere med begrenset båndbredde, som kjører samme web applikasjon. Jeg trenger også å synkronisere de forskjellige serverene, som nødvendigvis kommer til å ta en del båndbredde når de holder på. Er det hensiktsmessig å ta hensyn til dette?

 

Sikring begrenser seg til at nedetid skal være unødvendig. Ingen krav til absolutt oppetid.

 

Jeg leter etter en løsning som vil være relativt enkel å ekspandere med flere servere, til å ta unna mer last med hensyn til båndbredde.

Lenke til kommentar
Jeg er ute etter en robust måte å fordele last over flere web servere.

 

Det finnes kun èn virkelig robust måte, og det er å bruke en redundant content switch. Alternativet er å benytte reverse proxy eller cache. Apache (mod_proxy_balancer) og/eller Varnish (cache med støte for flere backends) er to populære friprog-løsninger. Vil du ha dette noenlunde robust bør du vurdere å clustre.

 

Jeg har flere ulike web servere, med ulik båndbredde kapasitet. De kjører mysql, og apache. Et av problemene er at de også tar imot opplastete filer.

 

Dette skal ikke by på noen problemer.

 

Hvordan kan jeg lage en sømløs load balancer, som tar hensyn til forskjellige serveres kapasitet? Hvordan replikere sql og opplastede filer slik at sql ikke replikeres før filene er kommet over på alle serverene?

 

Vanligvis snur man på løsningen, og gjør filområdet tilgjengelig for alle applikasjons- eller leveransemaskiner. Her finnes det en mengde varianter, avhengig av hva slags lagringsløsning du har tilgjengelig. Et cluster filsystem på delt lagring er en vanlig løsning.

 

Dette kan selvsagt også løses i applikasjonen. Èn variant kan være å forsinke tilgjengeligheten av data til replikering er ferdig.

 

Er det mulig å sette opp en robust system for oppdateringer? Backup løsninger?

 

Her må du spesifisere litt nærmere. Hva slags oppdateringer? Hva slags backup?

 

Hvordan kan det lages en backup løsning som tar hensyn til at en server går ned, og en annen tar over som load balancer?

 

Vanlig failover cluster håndterer dette.

 

evt. resyncer en server som har vært nede over lengre tid?

 

Denne problemstillingen forsøker man gjerne å unngå, men det finnes løsninger. Eksempelvis kan et distribuert filsystem håndtere dette direkte.

 

Det er hovedsaklig ytelse jeg er ute etter. Det er snakk om web servere med begrenset båndbredde, som kjører samme web applikasjon. Jeg trenger også å synkronisere de forskjellige serverene, som nødvendigvis kommer til å ta en del båndbredde når de holder på. Er det hensiktsmessig å ta hensyn til dette?

 

Er hensikten å utvide båndbredde ved å kjøre multisite? Da er du muligens på riktig hylle men nesten helt sikkert i feil skap. Dette fikser du ved bruk av cache og multihoming, eventuelt ved å dele opp applikasjonen.

 

Med dagens priser på båndbredde svarer det seg antagelig å bare kjøpe mer.

Endret av deviant
Lenke til kommentar

Serverene står fysisk adskilte, så delt lagring er ikke en reell mulighet. (Vil spise båndbredden jeg ønsker skalere for). Kan cluster brukes da?

 

Tilgjengeligheten må forsinkes på enkelte deler av applikasjonen, men langt ifra alle. Det må lages en egen løsning på den delen som må forsinkes går jeg ut ifra. Men kan bli trøbbel hvis samme database blir brukt?

 

Multisite høres riktig ut. :) Det er enkelte store filer som tar opp mye båndbredde. Men jeg ønsker fortsatt redundans, om en server skulle kvelde helt.

 

Oppdateringer vil si nye versioner av applikasjonen. Om det finnes et lettvinn distribueringsmetode.

 

Backup vil si mot en dedikert lagringsserver som kjører kun backup.

 

Hvordan vil sessions og server logging fungere på multisite?

 

Takker for svar så langt. :)

Lenke til kommentar
  • 4 uker senere...

Ang. reverse proxy for web kan jeg anbefale nginx. Den er lynkjapp, friprog, og kan tweakes og tunes til du drømmer om konfigurasjonsfilen. Eneste ulempen med denne, er at den ikke støtter IPv& (den gjorde ikke det siste jeg sjekket iallefall), og dokumentasjonen er ikke alltid like fyldig på alle områder, men når det er up-and-running, kjører det som en klokke.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...