PDA

Bekijk Volledige Versie : Redunant systeem Direct Admin



HageHosting
23/09/12, 13:53
Weet niet precies waar ik hem moet plaatsen, maar ik heb nu alleen single servers draaien met RAID1 met DirectAdmin. Maar nu is mijn vraag is er een mogelijk dat er een systeem is met DirectAdmin met een soort redunant opstelling.
Met andere woorden als 1 server uitvalt de andere het automatisch overneemt soort master slave.
Er is volgens mij wel een mogelijkheid de Database op een externe MooseFS op te slaan. Door de instellingen in de config file van DirectAdmin mysql bestandje aan te passen.
Maar belangrijkste is de DirectAdmin server zelf zijn er mensen die ervaringen mee hebben of zoiets hebben draaien?

Alvast bedankt voor suggesties.

Tim.Bracquez
23/09/12, 14:37
Ik denk dat CloudLinux wat voor je is: http://www.cloudlinux.com/docs/convert_directadmin_step_by_step.php

golden
23/09/12, 14:39
Ik denk dat CloudLinux wat voor je is: http://www.cloudlinux.com/docs/convert_directadmin_step_by_step.php

Inderdaad wat hij zegt. Enkel blijft volgens mij dan de installatie nog een SPOF. Dus gaat er wat met het OS mis dan gaat de boel alsnog onderuit.

dennis0162
23/09/12, 14:56
Je kan ook zelf wat in elkaar knutselen met OpenVZ/KVM, DRBD en heartbeat. (met 2 servers zonder centrale storage)
Installatie, documentatie en testen kan je het binnen een aantal uurtjes online hebben.

joriz
23/09/12, 15:04
CloudLinux heeft helaas niets met redundantie te maken. Het enige wat de RedHat fork doet is de gebruikers meer van elkaar scheiden binnen het besturingssysteem op oa. kernel niveau en daarnaast houdt het resources in de gaten en limiteert het deze. Het is dus geen oplossing om meerdere servers aan elkaar te knopen.
Mocht je echt op zoek zijn naar redundantie kan je zoals Dennis zegt beter aan virtualisatie gaan werken.

HageHosting
23/09/12, 16:08
Bedankt voor reacties maandag zeker wat dingen nu om uit te zoeken, en welke hardware beste is.
Is ook een leuke uitdaging

systemdeveloper
23/09/12, 16:12
Als je het makkelijk wilt doen, dan drbd je de boel gewoon en zorg dat je DirectAdmin ip ingesteld staat op het virtuele ip dat je via heartbeat configureert.

Als je het schaalbaar wilt doen dan zet je apache, mysql, ftp en de rest van de blabla op een cluster en directadmin zelf gewoon op een los vpsje. Maar dat is een iets ingewikkelder setup ;)

vDong
23/09/12, 17:26
Voor Plesk heb ik dit jaren geleden met een collega uitgezocht, toen kon je script voor script die de plesk gui aanriep vervangen zodat die een clustered omgeving beheerd zonder dat plesk het zelf door heeft.
Op die manier hebben we oa powerdns erin gebouwd.
Voor directadmin is het wellicht een stukje ingewikkelder, omdat het maar 1 backend script heeft (dataskq) dit zou je kunnen vervangen door iets dat de action=&value= verwerkt

Randy
23/09/12, 17:42
Laatst een POC gebouwd. MySQL in master-master, twee loadbalancers met een VIP ervoor. Replicatie van de files met rsync. Hoewel er best wat tijd in ging zitten bleek het een en anders goed te realiseren.

systemdeveloper
23/09/12, 18:25
Laatst een POC gebouwd. MySQL in master-master, twee loadbalancers met een VIP ervoor. Replicatie van de files met rsync. Hoewel er best wat tijd in ging zitten bleek het een en anders goed te realiseren.

Ik heb het ondertussen al een jaartje of 2 lopen naar tevredenheid. Idd mysql in master/master, varnishjes als cache en loadbalancer, directories voor de webservers gekoppeld over nfs naar drbd storage en directadmin gewoon op een simpel vpsje met een paar scriptjes in de scripts/custom om de ldap servers te updaten zodat de rechten direct overal goed staan en crap zoals vhosts op de webservers terechtkomen.
Maar dit is niet de gemakkelijkste weg. Het is puur gedaan om te kunnen schalen, redundantie is dan mooi meegenomen.

HageHosting
23/09/12, 22:25
Probeer het even beetje te begrijpen maar kom met wat termen niet door :) Maar VIP is natuurlijk is Virtual IP omdat de sites onder bepaalde IP te bereiken zijn. En die kan je niet veranderen.
Maar als ik goed begrijp is het hele systeem in een cluster van bv MooseFS bv met 4 servers.
En dan met een loadbalancer en een VIP voor de ips die in gebruik zijn zoiets op te zetten.
En op MooseFS draai ik dan een VPS zodat ik in een omgeving DirectAdmin kan runnen maar alles verdeeld over meerdere servers ?
Als ik fout zit of het is niet te begrijpen, moet je me snel terugfluiten :)

t.bloo
23/09/12, 23:44
Zou MooseFS snel genoeg zijn daarvoor?

systemdeveloper
24/09/12, 01:23
Je moet even goed in gedachten houden wát je precies wilt.

1 server/vps op een redundant (storage) systeem is niet hetzelfde als 2 servers op niet-redundante systemen.

Als je 1 server op een redundant filesystem hebt van (voor mijn part) 100 servers en je verprutst je apache config... dan zijn je website gewoon down.
Heb je 2 cheapass servers op halfzachte sata schijven draaien en je verputst de config van eentje, dan hoef je niet down te zijn zolang de andere nog draait.

Voor een virtueel ip heb je overigens geen loadbalancer nodig. Dat ip 'hopt' softwarematig van de ene server naar de andere op het moment dat ie dit getriggerd wordt (bv. als heartbeat merkt dat 1 van de 2 server geen beat meer heeft).

Wat je uiteindelijk wilt en wat je echt nodig hebt moet natuurlijk wel een beetje in overeenstemming zijn.

HageHosting
24/09/12, 08:57
@t. bloo Heb inmiddels vernomen dat MooseFS goed is voor storage maar weer te langzaam voor databases. Dus viel weer beetje af.

@Systemdeveloper Wat je uitlegt met de 2 cheapass servers zoiets is het eigenlijk. Wanneer 1 server in wat dan ook iets mee gebeurd de andere het automatisch overneemt. Maar dat ze wel met elkaar synchroniseren, tot op laatste moment mogelijk, er zal altijd wel wat verlies zijn als die er ineens uitklapt.
En dan zoals je al zegt met een Heartbeat van server 1 is niet te bereiken ik moet beschikbaar worden. En omdat de database server wel extern is opgebouwd zou die ook zo te bereiken moeten zijn.
En ik las ook al dat er mogelijkheden waren met database servers die met elkaar in contact zijn en identieke copieen zijn.
drbd is denk ik zoiets wat mogelijk is om in te zetten of niet?

Randy
24/09/12, 09:14
Voor de database gebruik je MySQL replicatie. Eigenlijk wil je al helemaal geen distributed filessystems. Na een split-brain situatie blijft het altijd ellende en voor dit doel (een server overnemen na uitval) volstaan simpele overzichtelijke oplossingen als rsync beter denk ik. KISS: Keep It Simple Stupid. Zodat je niet afhankelijk bent van erg specifieke kennis bij probleemsituaties.

systemdeveloper
24/09/12, 09:14
@Systemdeveloper Wat je uitlegt met de 2 cheapass servers zoiets is het eigenlijk. Wanneer 1 server in wat dan ook iets mee gebeurd de andere het automatisch overneemt. Maar dat ze wel met elkaar synchroniseren, tot op laatste moment mogelijk, er zal altijd wel wat verlies zijn als die er ineens uitklapt.
En dan zoals je al zegt met een Heartbeat van server 1 is niet te bereiken ik moet beschikbaar worden. En omdat de database server wel extern is opgebouwd zou die ook zo te bereiken moeten zijn.
En ik las ook al dat er mogelijkheden waren met database servers die met elkaar in contact zijn en identieke copieen zijn.
drbd is denk ik zoiets wat mogelijk is om in te zetten of niet?

Als je drbd gebruikt dan kun je maar 1 server actief gebruiken, dus je kunt niet een master/master replicatie met mysql opzetten dan. Nou ja, het kan wel door mysql op een niet-drbd partitie te zetten, maar dit wil je meestal niet aangezien je dan 2 vormen van replicatie zou hebben en dat is performance weggooien en lastiger te beheren. (je bent dan de netwerk verbinding tussen beide server aan het gebruiken voor drbd replicatie en voor mysql replicatie)

Met drbd mirror je de ene server naar de andere waarbij je eigenlijk alleen de eerste actief gebruikt. (Je mirrored eigenlijk 'partities' dus in theorie kun je de 2de wel gebruiken voor andere zaken.).
Met heartbeat configureer je op de eerste server een virtueel ip en 1 of 2 afzonderlijke netwerkpaden naar de 2de server. Deze paden worden gebruikt om te kijken welke van de 2 servers down gaat. Op dat moment switched drbd zijn slave naar master, heartbeat gooit het virtuele ip over naar de 2de server en dan kun je daar automatisch een script starten om de services (exim, apache, mysql, ftp e.d.) te starten.

vDong
24/09/12, 10:05
Ik heb het ondertussen al een jaartje of 2 lopen naar tevredenheid. Idd mysql in master/master, varnishjes als cache en loadbalancer, directories voor de webservers gekoppeld over nfs naar drbd storage en directadmin gewoon op een simpel vpsje met een paar scriptjes in de scripts/custom om de ldap servers te updaten zodat de rechten direct overal goed staan en crap zoals vhosts op de webservers terechtkomen.
Maar dit is niet de gemakkelijkste weg. Het is puur gedaan om te kunnen schalen, redundantie is dan mooi meegenomen.
De issue die ik hierbij zie is dat je 1 DA machine hebt als SPOF, omdat de DA machine niet in de cluster kijkt hoe de config nu is, maar een lokale kopie gebruikt kan je niet meer dan 1 frontend DA gebruiken.
Wat ik bedoelde is de complete backend vervangen, zodat de DA frontends ook echt in de cluster backend kijkt.

Nog even buiten hoe je opgelost hebt dat de DA machine de ip adressen lokaal verbonden wil hebben

systemdeveloper
24/09/12, 10:41
De issue die ik hierbij zie is dat je 1 DA machine hebt als SPOF, omdat de DA machine niet in de cluster kijkt hoe de config nu is, maar een lokale kopie gebruikt kan je niet meer dan 1 frontend DA gebruiken.
Wat ik bedoelde is de complete backend vervangen, zodat de DA frontends ook echt in de cluster backend kijkt.

Nog even buiten hoe je opgelost hebt dat de DA machine de ip adressen lokaal verbonden wil hebben

Ik kan wel meerdere da vpssen hebben, maar mijn doel is hier niet om het controlpanel redundant te hebben, maar de services redundant en vooral schaalbaar.
Als je via het controlpanel een user/website oid toevoegt dan wordt die weliswaar lokaal op het da vps aangemaakt, maar staat daar verder puur niks te doen. Maar tegelijkertijd worden de configs op het cluster wel bijgewerkt. Stel nu dat het da vps op zijn bek gaat, dan draait dus alles lekker door en worst case kan er een snapshot van het (mini) da vps gestart worden. Deze SPOF is dus niet productieverstorend en kan altijd binnen een paar minuten (handmatig) opgelost worden of (automatisch) binnen seconden als het ding niet meer pingt oid.

Wat ik eigenlijk heb is 3 webvpssen, 2 mysql vpssen, 2 cache/loadbalancer vpssen, 2 mailvpssen, 2 storagevpssen met (in dit geval drbd, maar kan net zo goed gluster zijn), 2 ldaps en nog wat voor backups, monitoring, video conversies e.d. Dit is een setje vpssen dat je in principe non-redundant allemaal op 1 storage en 1 vpsnode kunt gooien, maar naarmate je meer power/redundantie wilt, kun je elk vps moven naar andere nodes/storages. Zo kun je zonder ergens naar om te kijken groeien van 1 fysieke server met satastorage naar een vps cluster van bv. 10-15 fysieke servers met ssd storages of zo gemixed als je zelf wilt.

Dit is wel niet helemaal via het keep-it-simple principe...

crossplatform
24/09/12, 11:10
mensen mensen, waar hebben we het over!?!

HageHosting vroeg om een master slave oplossing, I quote "Weet niet precies waar ik hem moet plaatsen, maar ik heb nu alleen single servers draaien met RAID1 met DirectAdmin. Maar nu is mijn vraag is er een mogelijk dat er een systeem is met DirectAdmin met een soort redunant opstelling. Met andere woorden als 1 server uitvalt de andere het automatisch overneemt soort master slave."

Dan is DRBD met heartbeat waarbij alles via een virtual IP bereikbaar is een prima oplossing. Redelijk simpel en overzichtelijk.

golden
25/09/12, 10:34
Dat werkt ook goed in combinatie met de licentie structuur van DA? Of heb je dan 2 licenties nodig van DA?

vDong
25/09/12, 11:04
Dat werkt ook goed in combinatie met de licentie structuur van DA? Of heb je dan 2 licenties nodig van DA?

Er is in dit geval maar 1 DA server, de andere server heeft een non-active disk replica van de eerste

dicktump
26/09/12, 10:15
We hebben het hier ook wel eens gedaan met DRBD en Heartbeat. Werkt best goed. Mijn collega was er toen aardig druk mee en heeft er nog een weblog artikel + filmpje van gemaakt: http://weblog.shockmedia.nl/2011/03/15/high-available-directadmin-it-is-possible/

Er zijn wel wat kleine dingetjes waar je op moet letten, want installatie van updates wil je natuurlijk het liefst doen op de server die niet actief is, maar dat is nog wat tricky.

HageHosting
26/09/12, 21:08
@dicktump Dat is precies wat ik zoek als backup van bestaande server. Hoe gaat het bv met databases en mail ? wordt gelijk overgezet en met drbd constant synchroon de servers?

Yourwebhoster
26/09/12, 22:18
@dicktump Dat is precies wat ik zoek als backup van bestaande server. Hoe gaat het bv met databases en mail ? wordt gelijk overgezet en met drbd constant synchroon de servers?

Databases zijn tricky, wellicht master-to-master replicatie. Aangezien je maar één van de twee gelijktijdig gebruikt zou dit geen probleem moeten zijn (Ga ze aub niet beiden tegelijk gebruiken dan kan je bijv auto increment problemen krijgen).

Netbulae
27/09/12, 12:02
Let bij DRBD en cluster synchronisatie goed op je FENCING devices. Ik weet niet wat voor hardware je hebt maar een powerbar die aan het netwerk hangt of IPMI heb je eigenlijk wel nodig als je echt zeker wil zijn van je data.

Ik heb het zelf jaren goed zien gaan zonder maar je neemt een risico. RedHat verplicht zelfs fencing bij DRBD clusters:

9.1.1. Fencing

Red Hat Cluster, originally designed primarily for shared storage clusters, relies on node fencing to prevent concurrent, uncoordinated access to shared resources. The Red Hat Cluster fencing infrastructure relies on the fencing daemon fenced, and fencing agents implemented as shell scripts.

Even though DRBD-based clusters utilize no shared storage resources and thus fencing is not strictly required from DRBD’s standpoint, Red Hat Cluster Suite still requires fencing even in DRBD-based configurations.

dicktump
27/09/12, 12:41
Voor MySQL werd geen replicatie gebruikt. Bij een failover naar het secundaire systeem, werd MySQL op de primaire afgesloten en gestart op de secundaire. Dit heeft echter als nadeel dat er bij een ongeplande failover corruptie kan ontstaan in de database. Alhoewel dat natuurlijk ook het geval is bij een opstelling zonder HA, want als je ene systeem crasht en weer boot, heb je net zo goed dat er corruptie kan zijn ontstaan.

Dus de MySQL data (en ook de mail data) wordt via DRBD synchroon gehouden inderdaad.

Fencing is inderdaad ook belangrijk, je wilt bij deze opstelling geen 'split brain' hebben.

HageHosting
27/09/12, 18:09
Bedankt voor alle tips. Ben iedergeval stuk wijzer grworden met de do's en dont's .
Kwa hardware was ik wel van plan goeie spullen te nemen had me oog latennvallen op de dell r410 en de hp pl140
En een goeie powerbar met netwerk aansluiting was sowieso op de agenda.

Domenico
05/10/12, 19:03
Keep us posted aub!

Mark17
18/11/12, 23:24
@HageHosting: hoever ben je er inmiddels mee?

Wij draaien nu een klein HA cluster met DirectAdmin als controlpanel. Enkel werkt FTP nog niet zoals gehoopt/gepland, voor de rest werkt alles perfect. FTP werkt wel als je rechtstreeks verbind met de het IP van de FTP server, maar niet als je dat doet via het loadbalancer IP (LVS).

Welke delen hebben wij binnen ons platform:
- 2x loadbalancer
- 2x mysql (master-master)
- 2x caching server (Varnish (http) + nginx (https))
- 2x web server
- 1x directadmin/email/ftp (zodra nog 2 puntjes zijn opgelost, waaronder ftp dan gaan we deze ook maar dubbel uitvoeren)

De onderliggende storage bestaat uit 4 machines en is volledig redundant. Wij hebben het zo ingericht dat we als het nodig kan gaan worden binnen een korte tijd extra web server + caching server in kunnen zetten.

vDong
19/11/12, 07:39
Wij draaien nu een klein HA cluster met DirectAdmin als controlpanel. Enkel werkt FTP nog niet zoals gehoopt/gepland, voor de rest werkt alles perfect. FTP werkt wel als je rechtstreeks verbind met de het IP van de FTP server, maar niet als je dat doet via het loadbalancer IP (LVS).

Gokje, inloggen met ftp lukt wel, alleen daarna niks meer?
FTP is een protocol met een controlchannel (poort 21) en 1 of meer datachannels die je load balancer niet herkent als hem dat niet verteld wordt.

Boyke
19/11/12, 09:41
1 of meer datachannels die je load balancer niet herkent als hem dat niet verteld wordt.

De range van die datachannels kan je heel makkelijk regelen via de config (althans bij ProFTPD -> http://www.proftpd.org/docs/directives/linked/config_ref_PassivePorts.html).

Mark17
19/11/12, 10:02
Gokje, inloggen met ftp lukt wel, alleen daarna niks meer?
FTP is een protocol met een controlchannel (poort 21) en 1 of meer datachannels die je load balancer niet herkent als hem dat niet verteld wordt.

Klopt, ik had dat al gevonden en moet nog even kijken hoe ik dat deel het beste in kan stellen. Ik verwacht dat dat goed gaat komen vandaag of morgen. Gelijktijdig nog wat routing aanpassen denk ik om wat anders op te lossen.