PDA

Bekijk Volledige Versie : Hardware mail load balancing



ju5t
11/06/07, 21:43
Het is nog lang niet zo ver, maar toch wil ik me al een klein beetje orienteren op load balancing. En dan specifiek voor e-mail.

Als het even kan willen we met 2 load balancers (redundant dus) uit de voeten kunnen, maar ik weet niet in hoeverre dit mogelijk is met onze setup.

Een snelle tekening, waar er geloadbalanced moet worden staat een *.

* - servers1 - * - servers2 - * - servers3 -> server

Je kunt het echt zien als een opeenschakeling, zoals het er staat moet het uiteindelijk ook werken. Misschien hier en daar een tussenstap van servers1 naar servers3 of direct naar de uiteindelijke server, maar dit regelt de server in kwestie zelf (deze stuurt het dus door naar het volgende cluster). Daarom ook de vraag of dit met 2 of toch uiteindelijk met 6 loadbalancers zou moeten.

Het hoeft trouwens niet persé hardwarematig te zijn, mag ook software zijn. Zolang het werkt. Wat zijn jullie ervaringen?

gjtje
11/06/07, 23:30
Dat zou met 2 loadbalancers moeten kunnen, je kan er meerdere keren door heen fietsen. Ik denk dat zo'n beetje elke load balancer wel mail verkeer aankan, er is weinig speciaals aan.

Je zou naar lvs kunnen kijken, dat is een vrij uitgebreid software loadbancer systeem ook met high availability.

DiedX
12/06/07, 15:49
Ik zou eens serieus kijken naar HAProxy. Ik heb daar laatst SMTP mee geload-balanced, en dat werkte erg leuk!

liber!
12/06/07, 17:36
Je kan ook gewoon round robin dns gebruiken voor je MX records.

Of twee verschillende mx records opgeven met zelfde prioriteit.

PimEffting
12/06/07, 18:47
Waarom moeilijk doen als het ook makkelijk kan?
Het DNS protocol kent genoeg mogelijkheden om dit op een andere manier op te lossen. Inderdaad met round robin voor de loadbalancing en een hoger MX record voor je redundantie.
Wellicht iets minder "chique" dan met een redundante loadbalancer, maar wel een stuk eenvoudiger.

DiedX
12/06/07, 19:10
Met 975 berichten heb ik het idee dat GetUP wel weet waar hij het over heeft, maar inderdaad: RR-DNS (MX-records dus) is een mogelijkheid.

Costeijn
13/06/07, 11:35
Ik heb momenteel ook een mailcluster draaien. Ik heb hierover een howto gegeven hoe ik dit heb gedaan icm LVS(ook voor apache cluster). Als je deze wil kun je altijd even pm'en

Mikey
13/06/07, 11:46
Hotmail doet dat dmv round robin, zelfde prio's bij verschillende mx records. Een uitval kun je afvangen door hogere prio's toe te voegen en dan ook dmv round robin.

voorstelling:

(MX 10) mx1.server1.tld
(MX 10) mx2.server1.tld
(MX 10) mx3.server1.tld
(MX 10) mx4.server1.tld

(MX 15) mx1.server1.tld
(MX 15) mx2.server1.tld
(MX 15) mx3.server1.tld
(MX 15) mx4.server1.tld

(MX 20) mx1.server1.tld
(MX 20) mx2.server1.tld
(MX 20) mx3.server1.tld
(MX 20) mx4.server1.tld

De kans dat je dan mail hebt die niet aankomt is nihil, je zou als laatste een falback toe kunnen voegen die niet meedingen in de produktie lijn maar echt als laatste backup dienen. De mail zal dan aangeleverd worden bij de lagere prio's net zolang totdat je succes hebt.

DiedX
13/06/07, 11:47
Die mail zou inderdaad niet verloren *MOGEN* gaan als de SMTP de RFC volgt. Maar TS: wat is je oorspronkelijke bedoeling?

Mikey
13/06/07, 11:49
Zelf zou ik "een" load balancer zelf niet gebruiken. Op moment je die kwijt bent heb je "misschien" helemaal niets meer.

Ik zou zelf gebruiken met de tools die dieper liggen. Hierbij doelend op mx records en dns. Het is niet voor niets zo gemaakt en al jarenlang in gebruik / produktie.

DiedX
13/06/07, 11:50
Ik ook niet, maar de TS vroeg erom. Hij zal er wel een goede reden voor hebben :)

Mikey
13/06/07, 11:55
Zelfs barracuda geeft binnen hun website twee oplossingen die dns gebasseerd zijn.

http://www.barracudanetworks.com/ns/downloads/Barracuda_WP_MX_Load_Balancing.pdf

Ik ben wel benieuwd waar TS dan een hardware load balancer zoekt :)

ju5t
16/06/07, 11:34
Helemaal over het topic heengelezen :)

Het idee is eigenlijk dat je drie clusters krijgt (misschien maar van 2 of 3 machines, maar toch). Cluster1 doet de relay voor alle e-mail, die bekijkt eerst of er sowieso wel gerelayed mag worden het verdere standaard gebeuren. Cluster2 krijgt daarna het virusscannen voor z'n kiezen. Cluster3 vanzelfsprekend het antispam gedeelte.

Dat is dus niet op te vangen met MX (denk ik, tenzij je interne DNS gaat draaien met aparte MX records voor elk type dienst).

Het gaat me echt om loadbalancing, de failover staat hier los van.

DiedX
16/06/07, 11:55
maar dan zou je dus feitelijk gezien je virusscanners en spamfilters willen loadbalancen?

Shadowfox
16/06/07, 14:58
Ik heb het idee dat je wel erg specifiek de afzonderlijke services aan het scheiden bent?

Waarom niet alle services op een machine en die balancen?

Ik heb het idee wanneer je alles afzonderlijk heel veel capaciteit onbenut laat en de kans op fouten zoeken nog wel groter is indien het een keer ergens misgaat. Wanneer je via onderstaande plaatje doet is het mijn inziens schaalbaarder en vergt een minder grote initiele investering. Zie ik wat over het hoofd?

* ->| balancing ->| servers

ju5t
16/06/07, 23:14
Ja, dat is ook de bedoeling. Juist specifiek de taken scheiden. Dus wat jij zegt klopt DiedX.

Je hoeft geen capaciteit onbenut te laten, dat is afhankelijk van de servers die je hiervoor inzet. Bij het spreiden van taken spreid je juist risico's. Het zoeken van fouten is juist gemakkelijker. Vergt misschien iets meer tijd omdat je van verschillende servers logs moet controleren, maar je kunt specifieker onderhoud en taken uitvoeren. Als bijvoorbeeld een antispam server crashed, behoud je nog steeds je antivirus capaciteit. Wij willen bijvoorbeeld ook niet overal antivirus voor inzetten.

De investering is relatief.