# Ispconfig-Cluster?



## onestone (19. Mai 2010)

Hallo Leute,

diesmal eine allgemeine Frage:

Es ist doch möglich einen Ispconfig-Cluster zu bauen (wozu gäbe es sonst die Serverwahl im ispconfig). Mir geht es im Wesentlichen darum mit ispconfig3 die einzelnen Services auf mehrere Maschinen aufzuteilen. Was besonders interessant wäre: Alle Server über ein Interface steuern. Der Zucker im Kaffee wäre noch ein verschieben von Services (z.B. Webseiten) von Server A nach B...  

Wie würdet ihr das Projekt angehen? Mysql-Cluster bauen damit Config überall ident? Könnte man mit NFS ggf. die Webdaten spiegeln damit jeder Server die gleichen Daten hat?

Danke,
onestone


----------



## Till (19. Mai 2010)

Mit ISPConfig 3 kannst Du beliebig viele Server von einem Interface aus managen. Es wird sowohl das aufteilen auf Server sowie das Mirroring unterstützt.

Erstmal musst Du Dir überlegen, ob Du die Services aufteilen oder spiegeln willst. Denn das sind ja zwei unterschiedliche setups.

Wenn Du Services aufteilen möchtest, dann installierst Du einfach ISPConfig auf allen weiteren Servern im expert Modus und wählst dann im Installer aus, dass der Server einem bestehenden master Beitreten soll.

Wenn Du Mirroring haben möchtest, dann ist die Vorgehensweise ähnlich, Du musst nur zusätzlich dafür sorgen dass die Verzeichnisse /var/www und /var/vmail auf allen Servern die "gemirrort" werden sollen auf ein shared filesysem wie NFS oder glusterfs verweisen, so dass alle die gleichen Daten haben. ISPConfig kümmert sich dann um das Mirroring der Konfiguration, das kannst Du in den Server Einstelllungen in ISPConfig aktivieren.


----------



## onestone (19. Mai 2010)

Zitat von Till:


> Mit ISPConfig 3 kannst Du beliebig viele Server von einem Interface aus managen. Es wird sowohl das aufteilen auf Server sowie das Mirroring unterstützt.
> 
> Erstmal musst Du Dir überlegen, ob Du die Services aufteilen oder spiegeln willst. Denn das sind ja zwei unterschiedliche setups.
> 
> ...


OK, zur Sicherheit:

Variante 1: Services aufteilen: Maschine A macht WWW, Maschine B macht DNS, Maschine C macht MAIL. Ich installiere die entsprechenden Kisten, expert Mode, lasse beitreten und kann über die die Master-Console dann alle Services steuern - keine Sonderconfig notwendig, ispconfig macht das, korrekt?

Variante 2: Um Dinge wie Webseiten aber auch Mailaccounts zwischen Servern mooven zu können muss ich das dahinterliegende File-System syncen. Für Ispconfig ist das transparent (kriegt das quasi nicht mit) aber meldet keine Fehlermeldungen da er alle Files überall findet.

Wie schaut es bzgl. Performance aus, inbs. bei der zweiten Variante? Irgendwelche Fallstricke die zu beachten wären?

danke,
os


----------



## Till (19. Mai 2010)

Das Mirroring ziehlt auf Hochverfügbarkeit ab, also dass alle Dienste auf allen beteiligten Servern zur gleichen Zeit zur Verfüging stehen. Du kannst dabei keine Webseiten oder Email Accounts zwischen Servern verschieben.



> Wie schaut es bzgl. Performance aus, inbs. bei der zweiten Variante?


Wenn Du ein shared Medium für den Datenzugriff verwendest, dann ist dieses auch ausschlaggebend für die Performance. Deshalb solltest Du Dir mal ein Clusterfilesystem wie glusterfs ansehen, da dessen Performance mit der Anzahl der Cluster wächst während es bei NFS nicht mitwächst. Howtos dazu gibts auf howtoforge.com


----------



## onestone (19. Mai 2010)

Zitat von Till:


> Das Mirroring ziehlt auf Hochverfügbarkeit ab, also dass alle Dienste auf allen beteiligten Servern zur gleichen Zeit zur Verfüging stehen.


Grundsätzlich ja, aber wie lässt sich ein Clusterausfall damit bewerkstelligen? Letztlich hat ja jeder ispconfig-server seine ip - oder arbeitet ispconfig dann mit dynamischen IPs und macht ein Load-Balancing dahinter?



Zitat von Till:


> Du kannst dabei keine Webseiten oder Email Accounts zwischen Servern verschieben.


Das find ich jetzt irgendwie unlogisch. Wenn beide Server über ispconfig die Config sharen und dann auch auf der hdd-ebene die Daten replizieren müsste ich doch sagen können dass Webseite A jetzt von Server1 auf Server2 wechselt? Er löscht bei Server1 ja nur die Config und spielt diese auf Server2 auf - die dahinterliegenden Daten bleiben ja ident.



Zitat von Till:


> Wenn Du ein shared Medium für den Datenzugriff verwendest, dann ist dieses auch ausschlaggebend für die Performance. Deshalb solltest Du Dir mal ein Clusterfilesystem wie glusterfs ansehen, da dessen Performance mit der Anzahl der Cluster wächst während es bei NFS nicht mitwächst. Howtos dazu gibts auf howtoforge.com


Ah, interessant, danke für den Tipp.

os


----------



## Till (19. Mai 2010)

> Grundsätzlich ja, aber wie lässt sich ein Clusterausfall damit  bewerkstelligen? Letztlich hat ja jeder ispconfig-server seine ip - oder  arbeitet ispconfig dann mit dynamischen IPs und macht ein  Load-Balancing dahinter?


ISPConfig hat mit load Balancing nichts zu tun. Da gibt es ausreichend andere Software und Hardware dafür.  Es hängt auch vom jeweiligen Dienst ab, ob das überhaupt notwendig ist. Bei Email z.B. legst Du einfach nur 2 oder mehr MX records an, die auf die verschiedenen Nodes verweisen. Für das http Protokoll gibt es entsprechende Software, falls Du nicht mit round robin IP arbeiten möchtest.



> Das find ich jetzt irgendwie unlogisch. Wenn beide Server über ispconfig  die Config sharen und dann auch auf der hdd-ebene die Daten replizieren  müsste ich doch sagen können dass Webseite A jetzt von Server1 auf  Server2 wechselt? Er löscht bei Server1 ja nur die Config und spielt  diese auf Server2 auf - die dahinterliegenden Daten bleiben ja ident.


Kannst es ja gerne programmieren, wenn Du es brauchst. Ich kann Dir nur sagen, ganz so einfach ist das alles nicht. Du müsstest dann z.B. auch noch DNS Records ändern und ggf. über reverse Proxy noch Anfragen die an den alten node gehen zum neuen umleiten etc.


----------



## onestone (19. Mai 2010)

Zitat von Till:


> ISPConfig hat mit load Balancing nichts zu tun. Da gibt es ausreichend andere Software und Hardware dafür.  Es hängt auch vom jeweiligen Dienst ab, ob das überhaupt notwendig ist. Bei Email z.B. legst Du einfach nur 2 oder mehr MX records an, die auf die verschiedenen Nodes verweisen. Für das http Protokoll gibt es entsprechende Software, falls Du nicht mit round robin IP arbeiten möchtest.


Ja, schon klar, allerdings hast du ja was von Hochverfügbarkeit geschrieben - deswegen bin ich etwas verwirrt...das würde mir vom Konzept her bei ispconfig eben nicht passen..



Zitat von Till:


> Kannst es ja gerne programmieren, wenn Du es brauchst. Ich kann Dir nur sagen, ganz so einfach ist das alles nicht. Du müsstest dann z.B. auch noch DNS Records ändern und ggf. über reverse Proxy noch Anfragen die an den alten node gehen zum neuen umleiten etc.


Wir bringen uns grundsätzlich gerne ein, kein thema. 

Derzeit ist einfach nur das Ziel dass wir die verschiedenen Services aufteilen, gut Variante 1, weiß ich jetzt wie da der Plan ist.

Wozu sollte ich dann aber ein Cluster-Filesystem einplanen, welche Vorteile ergeben sich aus deiner Sicht (für die aktuelle VErsion von ispconfig)?

danke,
os


----------



## Till (19. Mai 2010)

> Ja, schon klar, allerdings hast du ja was von Hochverfügbarkeit  geschrieben - deswegen bin ich etwas verwirrt...das würde mir vom  Konzept her bei ispconfig eben nicht passen..


Wieso denn nicht? Du bringst ja hier auch Mirroring und Dienste-Aufteilung durcheinander. Hochverfügbarkeit = Mirroring, also dass ein Dienst zur gleichen Zeit von mehreren Servern angeboten wird. Das ist etwas komplett anderes als das Verschieben von z.B. webseiten auf Systemen ohne Mirroring. Beim verschieben einer Website kann immer nur ein einziger Server zur gleichen Zeit den Dienst im Cluster anbieten.  während ISPConfig darauf ausgelegt ist, Hochverfügbarkeit dadurch anzuibieten dass 2 oder mehr Server einen Dienst zur gleichen Zeit anbieten können.



> Wozu sollte ich dann aber ein Cluster-Filesystem einplanen, welche  Vorteile ergeben sich aus deiner Sicht (für die aktuelle VErsion von  ispconfig)?


Hochverfügbarkeit. Machen fast alle professionellen ISP's so die ISPConfig 3 einsetzen, denn ein professioneller ISP kann sich z.B. den Ausfall der Mailsysteme nicht leisten, also benutzt man Mirroring in ISPConfig in Zusammenarbeit mit einem Cluster Filesystem oder NFS Server oder SAN um Hochverfügbarkeit zu erreichen. ISPConfig sorgt also für die identische Konfiguration der Systeme, dass also die Accounts auf allen Systemen zur Verfügung stehen und das Clusterfilesystem sorgt dafür das die Daten auf allen Systemen zur Verfügung stehen.


----------



## onestone (19. Mai 2010)

OK. 

Dienste-Aufteilung: Services (DNS, WWW) auf mehrere Maschinen ist mir soweit klar. Ist bei uns insofern ein Thema weil langsam die Auslastung zu hoch wird um alle Services auf einer Maschine zu fahren (abgesehen vom single point of failure).

Hochverfügbarkeit: OK, cluster-FS nehmen, die notwendigen Verzeichnisse (WWW, DNS, MAIL) synchron halten. Somit haben beide Server alle notwendigen Daten, die config ist auch synchron weil ispconfig sich das selbst macht, korrekt? Um SMTP hochverfügbar zu machen nehme ich zwei MX-Records, klar. Aber wie ist es gedacht dass für Services wie FTP, Apache, Mail gedacht - Round-Robin klappt da ja nur bedingt (manche User erhalten Timeout, manche nicht) - also bräuchte es hierfür noch ein Zusatztool wie einen Load-Balancer der checkt ob einer der Nodes offline geht, korrekt? Oder hat ispconfig noch eine eigene Funktion die das übernimmt?

Ich glaub ich häng gedanklich einfach beim letzten Punkt.

Danke für die mehrfache Beantwortung... 

os


----------



## Till (19. Mai 2010)

> also bräuchte es hierfür noch ein Zusatztool wie einen Load-Balancer der  checkt ob einer der Nodes offline geht, korrekt?


Genau. Dafür gibt es zum einen fertige Hardware Appliances, die aber halt etwas teuer sind, oder aber diverse OpenSource Projekte. Tutorials dafür gibt es auch auf howtoforge.com


----------



## onestone (19. Mai 2010)

OK, thx. 

zu Open-source: Hast du noch ein paar Stichwörter? Mir würde Apache bzw. Squid einfallen, mit dem könnte das ja möglich sein, oder kennst du was besseres (plug-and-play-mässiges)?

danke,
os


----------



## Till (19. Mai 2010)

Schau mal hier:

http://www.howtoforge.com/setting-u...ancer-with-haproxy-keepalived-on-debian-lenny

http://www.howtoforge.com/loadbalanced_mysql_cluster_debian

http://www.howtoforge.com/load_balancing_apache_mod_proxy_balancer


----------



## onestone (19. Mai 2010)

THX!

Wohin darf ich das Six-Pack schicken? 

danke,
onestone


----------

