PDA

Bekijk Volledige Versie : server indeling voor starters



nzyme
20/09/06, 17:05
wat ik me afvraag, is dit een goede oplossing voor een beginnende webhoster ? (met het oog op de toekomst waarin je natuurlijk hoopt te groeien)

(met loadbalancer doel ik op http://www.linux-vs.org)

==fysiek systeem 1 - linux icm xen
=virtueel systeem 1
...loadbalancer+failover voor apache/nfs/mysql
...failover voor mail/proftpd
...bind nameserver (ns1)
=virtueel systeem 2
...apache webserver (www1)
...proftpd ftpserver (ftp1)
=virtueel systeem 3
...mysql master (mysql_m)
=virtueel systeem 4
...postfix/courier mailserver (mail1)
=virtueel systeem 5
...nfs server (nfs1)

==fysiek systeem 2 - linux icm xen
=virtueel systeem 1
...loadbalancer+failover voor apache/nfs/mysql
...failover voor mail/proftpd
...bind nameserver (ns2)
=virtueel systeem 2
...apache webserver (www2)
...proftpd ftpserver (ftp2)
=virtueel systeem 3
...mysql slave (mysql_s)
=virtueel systeem 4
...postfix/courier mailserver (mail2)
=virtueel systeem 5
...nfs server (nfs2)

deze namen zijn voor intern gebruik, de internet namen zijn:
ns1, ns2, www, ftp, mail


Uitleg:
Men maakt verbinding met www/ftp/mail.<mydomain>.nl en de eerste loadbalancer zal meteen de request afhandelen en je doorsturen naar bijv. www1. Mocht het druk worden zal hij je vanzelf doorsturen naar www2. Mocht de loadbalancer dood gaan zal de andere loadbalancer zijn taken zonder downtime overnemen (ze polsen elkaar dmv hearbeats). Mocht een webserver down gaan is er altijd nog de tweede webserver dus ook dat probleem is gecovered. Mocht het fysieke systeem het niet langer aankunnen kan de webserver image in no-time overgezet worden naar een nieuwe fysieke host en wederom zonder downtime... www2 zal het alleen even _erg_ druk krijgen tot de nieuwe server in de lucht is.

Mysql kan zichzelf repliceren dmv een aangepaste configuratie en op die manier een backup full featured database bijhouden/leveren. Het is dacht ik ook gebalanced...

Email wordt niet gebalanced maar zal slechts backup zijn, full featured zonder downtime enzo.

Ftp is ook backup.

Tenslotte:
Om voor iedere dienst dezelfde gegevens beschikbaar te hebben moet er intern een nfs server draaien met alle webmappen en mailboxen. Ook configuratie bestanden kunnen op die manier geshared worden tussen de verschillende hosts.


Doordat alle diensten in een eigen VM zitten gedragen ze zich als een normale host, precies als iedere andere server. Het voordeel is echter dat waneer er een zwaardere configuratie nodig is er een nieuwe fysieke server geplaatst kan worden met daarop bijv. www3. Door het aanpassen van de configuratie van de loadbalancers kan deze www3 zonder enkele problemen toegevoegd worden en kan de oude www2 bijv. uitgezet worden.
Mocht de database server toezijn aan een dedicated systeem kan dat zonder downtime gedaan worden, het nieuwe systeem kan als slave worden bijgezet en in de config van de loadbalancer bijgezet worden.

Is het een goed id om zo te beginnen ?

CharlieRoot
20/09/06, 17:32
het oogt mij nogal omslachtig maar dat kan aan mij liggen. Voor een beginnende hoster is dit zowiezo geen optie lijkt mij..

Sander-
20/09/06, 17:36
Mwah het idee lijkt me veelbelovend, het enige wat ik je zou aanraden is: Kijk of je deze setup kunt nabouwen in een VMWare omgeving of met 2 machines en ga eens testen want ik ben bang dat je nog wel wat haken en ogen gaat tegenkomen, vooral op het gebied van services die met elkaar moeten praten.

En hoe wil je richting je klanten gaan werken? Welk controlepaneel wil je gaan gebruiken?

luser
20/09/06, 17:37
het oogt mij nogal omslachtig maar dat kan aan mij liggen. Voor een beginnende hoster is dit zowiezo geen optie lijkt mij..

Valt te bezien, het is al heel goed dat de TS naar zulke oplossingen kijkt ipv gewoon een doos met directadmin te nemen. Als de technische kennis aanwezig is, waarom niet?

nzyme
20/09/06, 17:44
Valt te bezien, het is al heel goed dat de TS naar zulke oplossingen kijkt ipv gewoon een doos met directadmin te nemen. Als de technische kennis aanwezig is, waarom niet?
toegegeven het is mss niet voor _iedere_ beginner te doen :p

kennis is behoorlijk aanwezig (zonder arrogant over te komen:p) en uiteraard MOET iets dergelijks eerst getest worden. VHCS wil ik gebruiken als CP. Opensource pakket.

alle services praten metelkaar over (in dit geval nog) 1 ip, namelijk een virtueel IP die de loadbalancers delen. Maar idd, als er dan nieuwe hosts bij komen kom je wel (tijdelijk) in een configuratie hel met nieuwe ip's :p

eerst maar eens goed testen dus :)

kwakkwak
20/09/06, 18:00
hmm, ga ik ook eens testen. Is een leuke test weeral

alexbik
20/09/06, 19:36
Je hebt het over een NFS server, maar hoe ga je dat oplossen? Of doe je alles dubbel behalve je storage? Misschien kun je toch beter de storage lokaal houden en web- en config-data dmv rsync synchroon houden. Da's niet ideaal, maar als je NFS server onderuit gaat ook niet. Als je loadbalancing op de servers zelf doet ipv met hardware loadbalancers, neem ik tenminste niet aan dat je van plan was om een NetApp te kopen als NFS server :D

nzyme
20/09/06, 21:34
Je hebt het over een NFS server, maar hoe ga je dat oplossen? Of doe je alles dubbel behalve je storage? Misschien kun je toch beter de storage lokaal houden en web- en config-data dmv rsync synchroon houden. Da's niet ideaal, maar als je NFS server onderuit gaat ook niet. Als je loadbalancing op de servers zelf doet ipv met hardware loadbalancers, neem ik tenminste niet aan dat je van plan was om een NetApp te kopen als NFS server :D

uhm, de loadbalancers zijn gewoon normale linux bakken met wat kernel patches (zie linkje) en als je beter leest zie je dat de nfs server dus OOK dubbel is ;) Juist om te voorkomen dat je daarvan afhankelijk bent zoals jij dus opmerkt :)

alexbik
20/09/06, 21:59
Ohja, met een paar kernel patches zijn al je problemen als sneeuw voor de zon verdwenen natuurlijk. Was ik even vergeten :D

Nu weer even serieus: Ik denk dat je een beetje onderschat wat er komt kijken bij het redundant uitvoeren van storage. Vooral als er niet alleen gelezen maar ook geschreven wordt.

nzyme
20/09/06, 22:19
Ohja, met een paar kernel patches zijn al je problemen als sneeuw voor de zon verdwenen natuurlijk. Was ik even vergeten :D

uhm... wil jij zeggen dat het niet zo is :) een paar modules laden, wat dingen op 1 zetten in /proc/dinges, iptables aanpassen, heartbeat configgen, ldirectord configgen en dan is het ongeveer klaar :)


Nu weer even serieus:

lijkt er wel op :p

Ik denk dat je een beetje onderschat wat er komt kijken bij het redundant uitvoeren van storage. Vooral als er niet alleen gelezen maar ook geschreven wordt.
ok, ik zal het nog eens proberen uit te leggen :)

2 nfs servers die DEZELFDE data houden, ze syncen via DRBD (raid over ip als ik me niet vergis). 1 van de twee servers zal steeds aangesproken worden en in gebruik zijn om all diensten van diskspace te voorzien. De andere komt pas "in actie" als de eerste offline gaat. De loadbalancers zullen dit vernemen en zo de connecties naar de goede online host doorsturen.

maar even iets anders, allemaal leuk en aardig om een fileserver redundant te maken maar in hoeverre is dat nou eigelijk nodig :) je gaat toch al voor RAID5+hotspare dus dan heb je al 2 disks die kapot mogen gaan voordat je in de problemen komt.....

alexbik
20/09/06, 22:40
Kijk, daar zeg je iets zinnigs. Als je gewoon 1 goede fileserver bouwt, met fatsoenlijke hardware en je draait er niets op behalve NFS, weet ik zeker dat dat betrouwbaarder gaat zijn dan geknutsel (een ander woord heb ik er niet voor) met RAID over IP en andere spannende dingen. Ik zeg: KISS.

Je moet alleen nog wel wat dingetjes fixen voor je logfiles, want loggen over NFS wil je echt niet. Sowieso gaat het mis als je meerdere apaches via NFS naar dezelfde file laat loggen (ook al worden de apaches niet tegelijk aangesproken), maar loggen over NFS is sowieso al niet wat je wilt, vanwege performance. Ik zou lokaal loggen en periodiek de boel naar de fileserver kopieeren (vanuit een cronnetje). Allemaal niet zo ingewikkeld dus, maar wel ff goed over nadenken.

nzyme
20/09/06, 22:44
Kijk, daar zeg je iets zinnigs. Als je gewoon 1 goede fileserver bouwt, met fatsoenlijke hardware en je draait er niets op behalve NFS, weet ik zeker dat dat betrouwbaarder gaat zijn dan geknutsel (een ander woord heb ik er niet voor) met RAID over IP en andere spannende dingen. Ik zeg: KISS.

Je moet alleen nog wel wat dingetjes fixen voor je logfiles, want loggen over NFS wil je echt niet. Sowieso gaat het mis als je meerdere apaches via NFS naar dezelfde file laat loggen (ook al worden de apaches niet tegelijk aangesproken), maar loggen over NFS is sowieso al niet wat je wilt, vanwege performance. Ik zou lokaal loggen en periodiek de boel naar de fileserver kopieeren (vanuit een cronnetje). Allemaal niet zo ingewikkeld dus, maar wel ff goed over nadenken.
kijk, ik zet voor en jij kopt in :p een failover fileserver is idd eigelijk ook niet nodig :)

loggen over nfs is idd niet fijn nee, ik wil het ook puur gebruiken voor de userdirs ofwel de html/php/plaatjes enzo. Logs via cron overgooien en de nfs server dan als backup server laten fungeren voor die logs lijkt me een interessante oplossing.
En mss laat ik de ftpd ook wel via een nfsmount zn bestanden benaderen (iso's en tar.gz zooi). Want omnou de nfs server ook ftpd te laten doen... hmz... Even overdenken :)

Netbyte
20/09/06, 22:46
Zeer interresant, had zelf ook wel zoiets bedacht, alleen nog nooit getest. Wat zeker een tip is, documenteren als het draaid! hier heb je later heel veel aan.

nzyme
20/09/06, 22:53
Zeer interresant, had zelf ook wel zoiets bedacht, alleen nog nooit getest. Wat zeker een tip is, documenteren als het draaid! hier heb je later heel veel aan.
klopt, ik doe ook al niet anders... en als ik _alles_ klaar heb komt het ook cker op howtoforge :D

V v Zuydewijn
21/09/06, 20:26
Voor een beginner ziet het er goed uit. Liever zo iemand die begint dan iemand een reseller pakketje ergens neemt maar er eigenlijk niets van begrijpt.

Victor

nzyme
21/09/06, 21:57
damn, fijne antwoorden mensen :) thnx :)

ik heb inmiddels een oude compaq opgezet met Xen en wat virtuele machines. 2 loadbalancers en 2 webservers. Werkt perfect na een middagje rustig stoeien :)

als ik de boel klaar en compleet heb komt er hier een howto waarop jullie je mogen uitleven met commentaar :)

de opzet die ik wil bouwen:


=== phys1
--virtual1
-loadbalancer/failover
-dns
--virtual2
-www
--virtual3
-postfix
-courier
--virtual4
-mysql
--virtual5
-nfs

=== phys2
--virtual1
-loadbalancer/failover
-dns
--virtual2
-www
--virtual3
-postfix
-courier
--virtual4
-mysql
--virtual5
-controlpanel (+webmail/pma)
-ftp
-dns


en ja, er komen denk ik 3 dns servers en ja, het lijkt mss een virtuele en wellicht onlogische puinhoop maar in feite is dat natuurlijk niet waar het omgaat ;)

systemdeveloper
21/09/06, 22:44
Goed plan !
Ik ben i.i.g. benieuwd naar de uitvoer aangezien ik hier ook nog wel wat vm's heb draaien.

Wanneer zien we de 'Howto (become a fullblown webhoster with only this install.sh)' ? hehe ;)

nzyme
21/09/06, 22:55
nou binnen nu en enkele weekjes ofzo :p

ik zit nu al met het volgende: het cp zit op een andere server als de eigelijke webservers... Hoe gaan we dat oplossen met het oog op de users.... /etc/passwd overcopieren lijkt me niet helemaal de bedoeling toch....

en ook de dns servers syncen... kan ik de zone bestanden en de configs op een nfs share dumpen en bind dan eens per X uur herstarten (cronjob) waardoor het die bestanden opnieuw leest ? ik bewerk ze immers maar vanaf 1 host (die met het cp) en de andere 2 _lezen_ slechts... In theorie lijkt me dat wel een aardige methode...

systemdeveloper
22/09/06, 00:48
Heb je al eens naar nis gekeken (yp, ypbind e.d.) voor het verdelen van de passwds. Technisch kun je daar ook je dns in kwijt, maar of dat handig is....

Stina
25/09/06, 15:19
kijk eens naar ispman, gebruikt LDAP icm agents op iedere host.

eventueel maak je een eigen versie ervan want de standaard versie is echt afzichtelijk om te zien. Kwa techniek vind ik het een super systeem en ontzettend schaalbaar.

Helaas ligt de ontwikkeling wel behoorlijk stil, maar als je een eigen implementatie maakt is dat natuurlijk geen probleem.

nopzolder
26/10/06, 22:35
@nzyme,

Ik zit vol interesse te lezen.. wat is de status?

HY5
26/10/06, 22:44
Het is wel interessant als Proof of Concept. Je gaat dit toch niet in productie gebruiken of wel?

Jaz
26/10/06, 23:59
Misschien heb ik het fout maar zo te zien heb je wel echt zware servers nodig om zoveel virtual servers te draaien :rolleyes:

nzyme
28/10/06, 10:04
neej waarom ? je bent als starter echt niet duizenden ditjes of datjes nodig toch :)

iig, het project loopt behoorlijk anders als "verwacht". Namelijk niet...

ik ben wel tot de volgende bevindingen gekomen:
-redundante storage is mogelijk dmv drbd
-loadbalancers voor een webserver park gaat niet werken: wat gebeurd er als je -een- site host met een php script die een waarde in een file moet zetten (denk aan een teller)... Wat gebeurd er als dit vanaf alle clusterservers tegelijk gebeurd wegens een tiental bezoekers op de site in kwestie ? juist, dan kom je hopeloos in de problemen.

in het kort zijn dat de grote problemen.

Waar ik nu wel mee aan het stoeien ga is het volgende:

een tweetal Xen Debian hosts met daarop een of meerdere DomU's die in een cluster opereren. Moet alleen nog even precies uitzoeken hoe en wat, maar op die manier is de scalability een behoorlijk stap 'lager' dan in de eerste situatie. Immers, het gaat dan om 1 systeem opzich en niet slechts om apache of nfs.

edit: ik ga trouwens wel steeds uit van starters met voorkennis :p

edit2: ik bedenk met net dat zo'n cluster niet echt zal werken, puur omdat je qua bandbreedte in de problemen zal komen.... Toch denk ik dat de oplossing wel in die hoek gezocht kan worden......

HY5
28/10/06, 11:41
Waarom zou je met bandbreedte in problemen komen, je doet het toch over lokaal netwerk?

Aessence
29/10/06, 17:35
het project loopt behoorlijk anders als "verwacht". Namelijk niet...

Ehh... Ik houdt wel van een beetje techniek, maar als je d'r een business mee wilt voeren dringt zich toch de vraag op: Waarom?

Is het doel een hoge betrouwbaarheid of juist een hoge prestaties/schaalbaarheid? (beide in termen van zowel 'het systeem' als een individuele site)

Bij je eerste post dacht ik aan betrouwbaarheid, maar je laatste post lijkt meer op capaciteit en gedistribueerde, loadbalanced, sites gericht.

Op zich denk ik dat je aan betrouwbaarheid kan winnen door gebruik te maken van virtualisatie en VM's te verdelen over een paar fysieke machines. Dat is wat wij ook doen (en we beginnen ook maar net met ons managed platform).

Maar voor de capaciteit/schaalbaarheid/performance/loadbalancing zijn de voordelen dan niet zo direct aanwezig. Als bepaalde sites zoveel resources gebruiken dat je ze over verschillende fysieke machines en VM's moet verdelen en gaan loadbalancen, is het wellicht tijd om deze een dedicated server te geven (met een VM fail-over backup misschien).

Het voordeel van VM's is dat je ze lekker snel van de ene naar de andere machine kan 'slepen', en dat je backups kan maken van hele machines en deze, ongeacht het fysieke systeem, snel weer up kan hebben.

Wij gebruiken VM's zowel voor redundante services als ook om een korte downtime/recovery tijd te hebben als er iets misgaat. Hierbij hangt het van de app (in jouw geval wellicht van de site) af of wel bij een calamiteit gaan voor volledige recovery of snel herstellen van de service (fail-over en later alle bits weer integreren).

Onze hosts zijn Windows (vanwege onze apps; we doen eigenlijk geen webhosting) met nogal wat redundantie en gekoppeld aan een gedeelde SAN host voor non-critical files en backups.

George/

Oh... en counters worden meestal apart gehost (om deze reden). Een meer generieke oplossing voor een gedistribueerde site zou een front-end/back-end model kunnen zijn, misschien wel met web-services. Da's schaalbaar 'by design'.