PDA

Bekijk Volledige Versie : Redundency/failover



dausems
20/06/05, 13:19
Hallo,

Wie werkt er op dit moment met redundant (manual of automatic) webservers of database servers?

Hoe belangrijk is een seemless failover voor het geheel?

Werken er veel mensen met clusters?

Wat voor een oplossingen worden er veel gebruikt? Zijn deze prijzig?


Cheers,

luser
20/06/05, 14:01
http://pf4freebsd.love2party.net/carp.html, anders oplossing ahv pf & loadbalancing. Bolt als een trein.

De software is gratis, je moet natuurlijk dubbel investeren in hardware, voor een webcluster heb je het voordeel dat je webnodes uit goedkopere hardware gebouwd mogen zijn, als ze kapot gaan failenoveren ze toch over.

Owja, als je over minder technische kennis beschikt kan je is een kijkje nemen naar Zeus loadbalancer, das betalen maar wel een net stukje software.

wdv
20/06/05, 17:30
@luser; hoe synchroniseer je de data (van de websites)?

Cliff
20/06/05, 17:56
Wij draaien een redundante proxyserver opstelling. Dit voor onze dienst Content Filtering. Het zijn 2 dell machines welke als frontend een Alteon 180 hebben die loadbalanced voor deze 2 machines.

dausems
20/06/05, 18:38
Unilogic, jullie zijn toch vooral bezig in de onderwijs markt? Wist niet dat jullie ook een ISP waren. Of haal ik een aantal dingen door elkaar?

Is dat een prijzige opstelling waar jij het over hebt?

luser
20/06/05, 19:17
Simpelste/goedkoopste manier is voor een NAS systeem te kiezen, er bestaan al een aantal producenten (lacie, levelone,...) die voor 40G aan storage 1U's hebben. Wil je het echt goed doen moet je kiezen voor redundante storage arrays van infotrend ofzo.

ps. deze avond meer info, ff te warm om hier te zitten :D

MikeN
20/06/05, 19:25
Origineel geplaatst door dausems
Unilogic, jullie zijn toch vooral bezig in de onderwijs markt? Wist niet dat jullie ook een ISP waren. Of haal ik een aantal dingen door elkaar?
Lijkt me dat content filtering _perfect_ binnen de onderwijsmarkt past? :D

AlexanderOnline
20/06/05, 19:42
Origineel geplaatst door wdv
@luser; hoe synchroniseer je de data (van de websites)?
ja hoe gaat dat? En kun je mysql bijv live laten bewerken op 2e server?

SebastiaanStok
20/06/05, 19:53
Hier voor heb je volgens mij mysql-cluster nodig :)

froggie
20/06/05, 20:13
Is ATA-over-Ethernet met een cluster aware FS zoals GFS geen oplossing voor je data? Of dat ook voor je DB gaat werken weet ik niet (waarschijnlijk niet want je DBMS houdt de boel waarschijnlijk gelockt) maar voor je webcontent is dit een mogelijke oplossing.

Waneer je DB niet veel veranderd zou je er ook voor kunnen kiezen je DB readonly beschikbaar te stellen en updates bijv 's nachts uit te voeren via 1 DBMS.

Als je het niet vies vind om wat met Linux te klussen dan zijn er best low cost mogelijkheden voor eenvoudige web/db clusters.

Ik bedenk me nu net dat er een OS project loopt met als doel het bouwen van een low cost web/db cluster. Dit werkt met een soort virtualisatie software verdeelt over meerdere hardware nodes. Een naam schiet me zo ff niet te binnen en ik weet al helemaal niet of het bruikbaar is, maar loont misschien de moeite er ff naar te zoeken.

MikeN
20/06/05, 20:21
http://www.linuxvirtualserver.org/ ? ;)

AlexanderOnline
20/06/05, 20:22
Bedankt voor de info alvast :) Voor linux klussen doen we graag dus dat moet lukken ;)

flen
20/06/05, 20:38
MySQL kan je toch gewoon MySQL Replication voor gebruiken?

MikeN
20/06/05, 20:50
Mits je dan zelf iets regelt dat de ander het overneemt als de ene faalt. Er kan er tenslotte maar 1 tegelijk gebruikt worden, de rest is read-only.

wdv
20/06/05, 21:04
Origineel geplaatst door MikeN
http://www.linuxvirtualserver.org/ ? ;)

Die regelt toch niet data distributie? Alleen maar requests juist forwarden..

MikeN
20/06/05, 21:08
Nope, maar daar zijn ook wel aardig wat oplossingen voor te verzinnen. O.a. http://www.drbd.org/ is een oplossing.

luser
20/06/05, 21:28
Principeel heb je gewoon een mysql proxy nodig die luistert op het loadbalancer ip, hij schrijft 2x en leest 1x, soort raid1. Valt een weg moet je alleen achteraf nog iets vinden ter syncronisatie (full dump van db overgooien ofzo, klein bash scriptje)

wdv
20/06/05, 21:45
Origineel geplaatst door MikeN
Nope, maar daar zijn ook wel aardig wat oplossingen voor te verzinnen. O.a. http://www.drbd.org/ is een oplossing.

Ik zoek eigenlijk een oplossing voor FreeBSD. Je kan wel met een NFS share gaan werken, maar dan heb je weer een leuke single point of failure.

MikeN
20/06/05, 21:59
http://normi.net/~mike/reactie.txt voor mn reactie. Door die !#@$@#% mod_security krijg ik hem hier niet gepost.

wdv
20/06/05, 22:03
Nou ja, het is natuurlijk een beetje raar als een klant op de ene node zijn files upload en dan de files op een andere node pas een stuk later komen te staan. Wil hij een scriptje testen, wordt hij net naar een andere node geforwarded en moet ie een tijdje wachten :)

MikeN
20/06/05, 22:06
Er is een verschil tussen high-availability/failover en load-balancing. Je fileserver kan vrij veel hebben en daar hoef je dus in principe niet zonodig load-balancing toe te passen, je moet alleen voor redundantie zorgen. Zolang er dus maar 1 van je fileservers tegelijk actief is zal die klant het niet zo snel merken.

wdv
20/06/05, 22:13
Ja okay, je bedoelt dus eigenlijk dat je 1 fileserver in gebruik hebt en dan om de (ik zeg maar wat) 5 minuten naar een backup file server rsynced?

MikeN
20/06/05, 22:19
Jup. En op het moment dat je extra capaciteit nodig hebt en je ene fileserver het niet meer aankan kun je altijd een 3e server erbij zetten, 2 servers active zetten en de 3e als backup voor de andere 2.

Cliff
20/06/05, 22:28
Origineel geplaatst door dausems
Unilogic, jullie zijn toch vooral bezig in de onderwijs markt? Wist niet dat jullie ook een ISP waren. Of haal ik een aantal dingen door elkaar?

Is dat een prijzige opstelling waar jij het over hebt?

Unilogic en Unilogic Networks zijn twee verschillende bedrijven. Unilogic doet enkel Automatisering, wij doen allerlei internet en networking zaken, maar vanwege onze affiliatie met Unilogic vooral in de onderwijs markt.

Onze opstelling was toch wel redelijk prijzig aangezien je wat fikse servers nodig hebt om zo'n 400 scholen met gemiddeld 30 workstations te content filteren. Een paar dikke xeon backend machines met snelle schijven en een loadbalancer als frontend om de load te verdelen en om high availability te kunnen aanbieden. Ik denk dat het ons totaal zo'n 6000 euro gekost heeft. Wat opzich nog wel meevalt.

SebastiaanStok
21/06/05, 09:41
* Kwijl :D *

@MikeN: r s y n c Los van elkaar :)

Volgens mij kan je voor je klanten het beter zo houden:

Server1 = 200 Klanten
Server2 = 100 Klanten

Dus niet de websites van klanten niet in een cluster draain, dit is vragen om problemen.

Voor een netwerk-website die veel word bezocht zoals Tweakers.net en Lyocs kan je wel clustering gebruiken, dit moet zelfs :( .
Maar met Shared-hosting is dit monenteel gewoon niet te doen!
Dan zou je bij iedere write een s y n c moeten uitvoeren :X

Pest mod_security :mad:

WHT: Kunnen julie niet beter een javascript inplementeren die worden zoals r s y n c Verandert in geschijden door spaties ?;)

luser
21/06/05, 10:12
PCextreme draait hun klanten toch in een cluster, zover ik gehoord heb van vrienden bolt het als een trein.
Enigste 'probleem' in hun cluster is de aparte fileserver, maar een gelijkaardige oplossing met SAN switches enz kost rap >10k.

MikeN
21/06/05, 12:36
Rollerscapes: ik had al spaties tussen rdinges gezet, werkte niet echt.
Verder kun je wel je klanten over de servers verdelen, maar dit topic ging juist over redundancy, op het moment dat een klant zn data maar op 1 server staat heb je die dus niet. In het ideale geval moet er op ieder moment een willekeurige server uit kunnen vallen zonder dat dit problemen oplevert.

AlexanderOnline
21/06/05, 12:38
Ik denk dat je de mail ofzo elk uur moet syncen, de gewone files paar keer perdag (die verandere niet zo vaak) en mysql live.. Dan moet je wel ff kijken hoe je de zooi weer terugzet als hoofdserver down was

ju5t
21/06/05, 15:31
Je moet je single point of failure weghalen.

Als je werkt met 2 DNS servers, die beide tevens als load balancer kunnen fungeren en elkaar en andere servers dus continue monitoren, zou je in principe vrij veilig moeten zitten.

Zolang je alles dubbel uitvoert, 2 webservers, 2 SQL servers en 2 mail servers, daartussen alles continue replicate, zou het allemaal door (moeten) draaien mocht er 1 van de 2 wegvallen. Dit alles liefst nog globaal ook.

Ik ben vast iets vergeten.

Failover is zeker wel belangrijk, afhankelijk van de maatschappij die erachter zit, zal dit vaak alleen om mail gaan, dan is fallback mx voldoende. Hebben bedrijven belangrijkere gegevens op hun website staan, webshop als core business, en is het 'out of the question' dat hun site onbereikbaar is, dan zou ik ze dus global loadbalancing aanbevelen. Maar dat is wel in het uiterste geval.

Voor de gemiddelde webhoster is frequente backups en fallback mx/dns ruim voldoende denk ik.

Norman
23/06/05, 20:25
Kent iemand ook een CP die met zo'n opstelling zou werken zonder dat je het halve panel moet hacken ?

SebastiaanStok
24/06/05, 09:41
Virtealmin :)

Voor plesk, cpanel of DA is dit niet tedoen, ik heb heb zelf ook geprobeerd met één server voor het controll-panel en dat die dan de andere server aanroept, maar dat was gewoon niet tedoen.

Wido
06/07/05, 16:13
Origineel geplaatst door luser
PCextreme draait hun klanten toch in een cluster, zover ik gehoord heb van vrienden bolt het als een trein.
Enigste 'probleem' in hun cluster is de aparte fileserver, maar een gelijkaardige oplossing met SAN switches enz kost rap >10k. Inderdaad, wij draaien een volledig cluster.

Fileserver is niet echt een probleem, sinds er allemaal 74Gb raptors in zitten is dat beestje zo mak als een lammetje.

MikeN
06/07/05, 16:28
Volgens mij bedoelde hij vooral dat je fileserver een single point of failure is :)

Wido
06/07/05, 16:45
Origineel geplaatst door MikeN
Volgens mij bedoelde hij vooral dat je fileserver een single point of failure is :) Dan zet je een tweede neer die je via een eigen interne netwerk real-time laat syncen.

SebastiaanStok
06/07/05, 17:16
Dus als ik het goed begrijp staan op alle servers precies het zelfde van de websites ?

Wido
06/07/05, 17:18
Origineel geplaatst door Rollerscapes
Dus als ik het goed begrijp staan op alle servers precies het zelfde van de websites ? Nee, de webservers lezen via NFS de files vanaf de fileserver.

het loadbalancen gebruiken we vooral om zo alle CPU kracht van de servers optimaal te kunnen gebruiken.

SebastiaanStok
06/07/05, 17:23
Weer iets geleerd :D

AlexanderOnline
06/07/05, 17:59
@Wido: Ik was even op jullie site aan het kijken bij de servers, er draaien heel veel webservers en 1 mysql server (cluster 1), ik dacht dat mysql ook best zwaar is? Of is het script (php etc) vooral zwaar op de webservers?
Gebruiken jullie bepaalde cluster software etc, of hebben jullie het min of meer handmatig opgezet?
De DNS, draait die op de loadbalancer? En hoe werkt die SSH server eigelijk, leest die ook de files etc in via NFS van de fileserver?
Het is best gaaf, alleen behoorlijk ingewikkeld om op te zetten lijkt me.

Wido
06/07/05, 18:08
Origineel geplaatst door AlexanderOnline
@Wido: Ik was even op jullie site aan het kijken bij de servers, er draaien heel veel webservers en 1 mysql server (cluster 1), ik dacht dat mysql ook best zwaar is? Of is het script (php etc) vooral zwaar op de webservers?
Gebruiken jullie bepaalde cluster software etc, of hebben jullie het min of meer handmatig opgezet?
De DNS, draait die op de loadbalancer? En hoe werkt die SSH server eigelijk, leest die ook de files etc in via NFS van de fileserver?
Het is best gaaf, alleen behoorlijk ingewikkeld om op te zetten lijkt me. Ik moet er eigenlijk eens visio bij pakken om een overzicht te maken.

We hebben inderdaad 1 MySQL server, alle specs vind je op: http://www.pcextreme.nl/content/servers

We hebben via linuxvirtualserver.org een loadbalancing systeem opgezet. (DirectRouting, zijn wat kernel patches voor nodig)

Alle webservers starten hun Apache vanaf de fileserer en hebben allen een eigen IP. Ze hebben ook het IP van de loadbalancer zonder ARP draaien (dmv kernel-patch).

Als een verzoek voor een website binnenkomt, komt dat binnen op de loadbalancer, die stuurt het verzoek vervolgens door naar een webserver.

De SSH server draait rsbac om de users te kunnen jailen en haalt /home op via NFS.

In het gehele cluster wordt iedere 6 uur vanaf de fileserver /et c/passwd, /et c/group en /et c/shadow gekopieert naar alle servers.

De MySQL is een aparte server. db.pcextreme.nl (ons adres voor de MySQL) staat via /etc/hosts verwezen naar de MySQL server.

De DNS zijn 3 losse servers, 1 in RedBus op onze "main-locatie", 1 in de VS en 1 bij NXS, Telecity 2.
We gebruiken PowerDNS en via MySQL replicating hebben alle 3 de DNS servers altijd de zelfde data.

Hiervoor kan je dus geen cPanel oid gebruiken en hebben we dus ons eigen CP ontwikkeld. Dit CP snapt ook helemaal hoe het cluster in elkaar zit en werkt.

Maar zoals ik al zei, ik moet eigenlijk even visio pakken en een mooie tekening maken van ons netwerk.

AlexanderOnline
06/07/05, 18:15
Bedankt voor de uitleg, maakt een hoop duidelijk. lijkt me best gaaf om ook een cluster te bouwen, alleen nog een beetje overkill voor ons.

Wido
12/07/05, 00:51
Ik heb even snel wat geknutseld in Visio en heb dit gemaakt.

http://zooi.widodh.nl/images/netwerk.png

Het geeft een beetje grofweg aan hoe ons netwerk in elkaar steekt en hoe het cluster werkt.

Niet-boeiende dingen voor buitenstaanders zijn buiten de tekening gelaten.

Cliff
12/07/05, 08:09
Origineel geplaatst door Wido
Ik heb even snel wat geknutseld in Visio en heb dit gemaakt.

http://zooi.widodh.nl/images/netwerk.png

Het geeft een beetje grofweg aan hoe ons netwerk in elkaar steekt en hoe het cluster werkt.

Niet-boeiende dingen voor buitenstaanders zijn buiten de tekening gelaten.

Dus sw03 is je single point of failure ?

XS-24
12/07/05, 08:29
05 ook.

luser
12/07/05, 08:58
Een switch is redelijk betrouwbaar ;) (heb er al gehad die 2 jaar draaien zonder 1x van zich te laten horen voor een prob ofzo).

Wido
12/07/05, 10:07
Origineel geplaatst door Cliff


Dus sw03 is je single point of failure ? Op dit moment nog wel ja.

Loadbalancing over servers die op andere switches hangen dan waar de loadbalancer aan hangt is niet al te makkelijk.

Je gaat mij overigens niet wijsmaken dat jij al je servers aan 2 switches hebt verbonden in het geval dat 1 switch overlijd?

Cliff
12/07/05, 10:13
Origineel geplaatst door Wido
Op dit moment nog wel ja.

Loadbalancing over servers die op andere switches hangen dan waar de loadbalancer aan hangt is niet al te makkelijk.

Je gaat mij overigens niet wijsmaken dat jij al je servers aan 2 switches hebt verbonden in het geval dat 1 switch overlijd?

Ik heb voor iedere dienst 2 servers die ieder op een andere switch hangen.

Wido
12/07/05, 10:24
Origineel geplaatst door Cliff


Ik heb voor iedere dienst 2 servers die ieder op een andere switch hangen. Zeer netjes

luser
12/07/05, 10:59
Ow, opzich, je draait linux, met bonding is een failover op 2 (niet slimme) switches zo geregeld ;)

Wido
12/07/05, 11:36
Origineel geplaatst door luser
Ow, opzich, je draait linux, met bonding is een failover op 2 (niet slimme) switches zo geregeld ;) Ja, het is te regelen, inderdaad. Maar in mijn 1U servers heb ik geen ruimte meer voor een extra netwerk kaart.

luser
12/07/05, 12:59
Daar heb je ook weer een punt ;)

Op de riser quad of dual port kaartjes is de oplossing, maar niet bepaalt goedkoop.

dotXS
13/07/05, 17:02
Als je geen ruimte meer hebt voor een extra netwerk kaartje kun je altijd vlan support mee compileren in de kernel. Maak je een extra vlan aan voor load balancing netcards.

Dit heeft enkele voordelen ook zeker met betrekking tot failover/load balancing. Als je 802.1q tagging mee compileert en de vlan package installeert kun je namelijk virtuele netcards per vlan aanmaken. Op deze virt. netcards kun je ook het mac adres wijzigen (wat bij een normale virtuele eth0:1 adapter niet kan).

Je maakt een apart vlan waarin je per load balance/failover dienst 2 netcards met hetzelfde mac adres en ip adres plaatst.

Het is wel niet de meest elegante oplossing maar wel de goedkoopste.

Wido
14/07/05, 16:26
We hebben nu twee clusters (nl01 en nl02) en hebben het zo gemaakt dat alle hardware onderling is uit te wisselen.

De loadbalancer van bijv nl02 kan zo de loadbalancer van nl01 overnemen als hij dood valt.

Beide clusters hangen aan andere switches.

SebastiaanStok
15/07/05, 10:52
Even een vraagje over dat NFS oproepen van bestand.

Is het nu zo als je iets op zoon server laat uitvoeren dus niet de file-server zelf maar bv web01.pcextreme.nl

En je schijft met php iets weg word het dan weg gescheven op de file server of web01 ?

Wand hij is neem ik aan gemount, maar hoe zit dat precies :)

luser
15/07/05, 10:55
Zal readonly staan of je moet met GFS werken.

SebastiaanStok
15/07/05, 11:15
Sorry maar wat is GFS ?

Kan iemand me uit leggen hoe de manier van Wido wertk ?

Wido
15/07/05, 12:53
Bij ons staat /home r+w gemount op alle webservers.

/home staat dus centraal op de fileserver en de webservers mounten dat.

voor /tmp geld het zelfde en ook /ext (waar Apache, php e.d. staat.

Zo is alle data op elke webserver gelijk.

SebastiaanStok
15/07/05, 13:00
Maar ik heb niet zo veel verstand van NFS :p

Is het nu zo dat als je iets wegschijft met PHP dat dit op de file-server komt of de webserver ?

luser
15/07/05, 14:07
fileserver

Bedenk juist dat GFS niet nodig zal zijn, behalve als je met gesharde direkte storage access zit, zoals ATA-Over-Ethernet of iSCSI.

Wido
15/07/05, 16:34
Origineel geplaatst door Rollerscapes
Maar ik heb niet zo veel verstand van NFS :p

Is het nu zo dat als je iets wegschijft met PHP dat dit op de file-server komt of de webserver ? Dat komt dan op de fileserver terecht.