FAQ |
Kalender |
![]() |
#1 | ||
|
|||
Medlem
|
Hej,
Jag ska inom några månader dra igång ett projekt där jag kommer behöva ett någorlunda kraftigt serverkluster. Syftet är att servera webbinnehåll, främst HTML och PHP med MySQL databas. Vad finns det för "färdiggjorda" klusterlösningar på marknaden, om det ens existerar? Servrarna bör helst köras i Debian. Meningen är att jag ska kunna uppgradera och lägga till servrar utan nedtid. Mycket viktigt är även att kunna bygga på klustret utan att hela tiden behöva konfigurera servrar. Det jag tänkt mig är att man har en färdig configuration som passar alla servrar i klustret. Hur gör man med IP adresser vid en sådan lösning? Helst skulle jag vilja ha en eller flera IP adresser per server, är det möjligt i ett kluster? Skulle gärna höra era tankar/åsikter/erfarenheter osv. angående detta. |
||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Klarade millennium-buggen
|
Beror helt hur du vill bygga lösningen, normalt så bygger jag alltid den lösningen med hårdvarulastbalanserare.
Kör 2 st i 2 olika städer sedan en L2 ring, men har med få det helt fysiskt/logisk redundans. Lastbalanserarna har 1 eller flera IP utåt sedan har servrarna bakom var sitt IP. Sedan kör du emot lastbalanserarens IP så skickar den förfrågningarna efter du har ställt in det mot servrarna bakom. Så du ser bara 1 IP utåt medans det kan vara valfritt antal servrar bakom som aldrig syns utåt. Sedan är det hur du ska köra med lagring, hur filerna ska synkas mellan alla servrar. Antingen kör man något SAN/NAS. Beror lite på hur man vill köra det och vad för kluster filsystem man vill använda. MySQL har redan kluster stöd i sig, men där kan du även använda lastbalanserare för att lastbalanera förfrågningarna mellan dom servrarna som finns. |
||
![]() |
![]() |
![]() |
#3 | ||
|
|||
Klarade millennium-buggen
|
Som test kan du prova http://91.90.25.1/ och ladda om den sidan några gånger så kommer du till olika servrar i skilda städer.
Bara ett litet exempel, helt transparent failover. 2 servrar 2 lastbalanserare 2 skilda städer. |
||
![]() |
![]() |
![]() |
#4 | |||
|
||||
Mycket flitig postare
|
Om du har all din data i MySQL så är det MySQL-replikering du vill ha.
Ex har du då en master och flera slavar. Alla slavar är endast till för att läsa (SELECT). Och mastern är till för skriv (INSERT,UPDATE,DELETE). Mastern bör endast användas för läs som måste ha rätt svar omgående, ex en SELECT som påverkas direkt av en UPDATE nanosekunden innan. Din applikation måste alltså vara skriven så att du kan särskilja på alla läs och skrivfrågor. Sedan gör du någon form av lastbalansering över alla dina slavar. Roundrobin (mjukvara eller DNS) går bra om man inte har tillgång till en lastbalanserare. För webbservrar är det bara att ha samma matrial på alla servrar och kommer det nytt matrial så skicka ut det med rsync eller likn. Om du har matrial på webbservarna som ändras hela tiden måste du ha någon form av fildelning. För att lastdela den inkommande trafiken använder du helst en lastbalanserare. Har du inte tillgång till det så duger roundrobin-DNS. |
|||
![]() |
![]() |
![]() |
#5 | ||
|
|||
Klarade millennium-buggen
|
Om du kör MySQL Cluster och inte endast replikering kan du ha flera master och det är ett krav för HA samt större belastning.
Lagringen är bästa och köra någon NAS/SAN eller något kluster filsystem av något slag. Roundrobin på DNS är inget man vill köra på seriösa saker som är viktiga. Rsync funkar men finns betydligt bättre lösningar. |
||
![]() |
![]() |
![]() |
#6 | |||
|
||||
Klarade millennium-buggen
|
Men det låter som att han vill ha kluster för att expandera och inte för att balansera?
Eller är förstår jag fel. Dvs han vill utöka sin "tjänst" genom att lägga till en extra maskin som kan hantera **** saker. Så t.ex. matar man in nya användare så kanske de slangas in på den nya servern. Antar att det är nått liknande som servage kör med. Vill man bara att man skall hoppa till olika plattser så kan man simpelt bara lägga till det i recordsen på domänen? "kanske inte blir fancy med samma ip". Eller vanlig balansering som NLB som bara skickar till server bakom den som är minst belastad. Kanske skulle gå att använda knoppix med nått liknande med pxe boot för lokal dist av imagen och sen bootar nya maskiner bara upp och hoppar in på jobbet mer eller mindre. |
|||
![]() |
![]() |
![]() |
#7 | ||
|
|||
Mycket flitig postare
|
ber om ursäkt till trådskaparen, men jag tänkte bara låna tråden lite.
Finns det webbhotell som erbjuder klustertjänster som shared web? Dvs att flera delar på klustret? som man brukar göra vid vanliga webbhotell? |
||
![]() |
![]() |
![]() |
#8 | |||
|
||||
Klarade millennium-buggen
|
Citat:
|
|||
![]() |
![]() |
![]() |
#9 | ||
|
|||
Mycket flitig postare
|
Citat:
Idag kör vi FSdata, går FSdata ner ( inte helt ovanligt ), då går det åt skogen för vår hemsida. Vi skulle då behövt någon lösning som skickar vidare anv. till en annan server om en server failar. Vill nog inte sno mer av trådskaparens tråd, PM om ni har någon idé! |
||
![]() |
![]() |
![]() |
#10 | |||
|
||||
Klarade millennium-buggen
|
Citat:
![]() |
|||
![]() |
![]() |
Svara |
|
|