Hallo liebe Mitlesende,
ich habe eine allgemeine Frage bezüglich Hardwarearchitektur. Für ein Projekt ist es notwendig, dass gewisse Kriterien erfüllt werden. Diese sehen wie folgt aus:
- Der Server muss hochverfügbar sein - Die Last muss effizient verteilt werden (Loadbalancing) - Der Server muss skalierbar und ohne Downtime erweiterbar sein (RAM, Festplattenspeicher) - Auf dem Server läuft Debian (nicht unbedingt Voraussetzung)
Ich spreche hier erstmal von "dem Server". Ob es 1ner, 2 oder 50 Server sind, sei erstmal dahingestellt.
Gibt es dort irgendwie einen Ansatz, den man als "Normalo" auch umsetzen kann? Kennt jemand zufällig ein Unternehmen, welches solche Lösungen (kostengünstig) anbietet?
Ich habe bereits verschiedene Sachen getestet, jedoch nie als wirklich gangbar beurteilt. Ich würde erst um Vorschläge bitten, danach kann ich mal aufzeigen, was ich bereits versucht habe.
Ich bin für jede Hilfe dankbar.
Mit freundlichen Grüßen
Cedric Fingler
-- Mobil: 0172 44 139 44 Email: c.fingler@gmail.com http://www.facebook.com/c.fingler http://www.mobicar.de
Hi,
"ohne Downtime" sehe ich bezahlbar nur mit Virtualisierung realisierbar. Nehme n Hardware, dazu z.B. VMWare mit VMotion und/oder SAN und StorageMotion - damit deckst Du die Erweiterbarkeit und Hochverfügbarkeit ohne (mit minimalster) Downtime. Das Loadbalancing musst Du auf Anwendungsebene ja nach Anwendung realisieren.
Wir (iTS Seffner & Schlesier oHG, http://www.its-seffner.de) reden da gern mit Dir/Euch drüber und helfen natürlich auch gern bei der Realisierung. Referenzen gibt es.
Mit freundlichen Grüßen / Kind regards Ronny Seffner
Vielen Dank für die vielen Antworten, jedoch kam bis dato nichts neues.
Ich habe folgende Sachen probiert:
1) Loadbalancing mit HAProxy/Keepalived und einer virtuellen IP MySQL mit Replikation Dateisystem mit DRBD Heartbeat
==> Es ist nur eine Master/Master bzw. Primary/Primary Replikation möglich. Ich kann keine weiteren Server "einfach" hinzufügen. Außerdem fand ich, dass DRBD sehr anfällig ist. Wenn es nicht mehr funktioniert, dauert die Fehlersuche zu lange. Außerdem hat der sekundäre Loadbalancer die virtuelle IP nicht immer sofort "nehmen" können, wenn der primäre LB ausgefallen ist.
2) Loadbalancing mit LVS und einer virtuellen IP MySQL-Cluster Dateisystem mit Clusterd Heartbeat
==> Diesen Ansatz fand ich eigentlich nach langem hin und her am Besten. Man hätte das Dateisystem relativ einfach erweitern können und neue Resourcen einbinden. Jedoch war die Datenbank für ein reines MySQL-Cluster-System zu groß, da zu viele Textfelder u.ä. vorhanden waren. Dieses System hätte aber einen tiefen Eingriff in die Netzwerkkonfiguration gebraucht, damit die Server mit den Daten nicht nach außen erreichbar sind, jedoch die Loadbalancer etc~. Bei einem Serveranbieter nicht leicht zu erreichen...
3) Über reine Virtualisierung habe ich bereits auch nachgedacht. Habe jedoch (leider) vorerst keine Zeit, um mir das auch noch anzueignen. Wenn hier jemand gute Pflichlektüre kennt, bin ich jedoch jederzeit dankbar dafür.
==
Vielen Dank auch für die vielen Angebote. Jedoch ist der Kostenfaktor bei diesem Projekt nicht unerheblich. Man kann meiner Meinung nach nicht zig-tausend-Euro im Vorfeld für diese Thematik in ein Projekt investieren... Dafür find ich das Thema eigentlich zu alltäglich. Kann ja nicht sein, dass ich der einzigste bin, der solche Anforderungen an ein System stellt :-D
Nochmal vielen Dank an alle. Werd mir das eine oder andere trotzdem nochmal durch den Kopf gehen lassen.
Mit freundlichen Grüßen
Cedric Fingler
-- Mobil: 0172 44 139 44 Email: c.fingler@gmail.com http://www.facebook.com/c.fingler http://www.mobicar.de
Am 24. Oktober 2011 12:57 schrieb Ronny Seffner ronny@seffner.de:
Hi,
"ohne Downtime" sehe ich bezahlbar nur mit Virtualisierung realisierbar. Nehme n Hardware, dazu z.B. VMWare mit VMotion und/oder SAN und StorageMotion - damit deckst Du die Erweiterbarkeit und Hochverfügbarkeit ohne (mit minimalster) Downtime. Das Loadbalancing musst Du auf Anwendungsebene ja nach Anwendung realisieren.
Wir (iTS Seffner & Schlesier oHG, http://www.its-seffner.de) reden da gern mit Dir/Euch drüber und helfen natürlich auch gern bei der Realisierung. Referenzen gibt es.
Mit freundlichen Grüßen / Kind regards Ronny Seffner -- Ronny Seffner | Alter Viehweg 1 | 01665 Triebischtal
www.seffner.de | ronny@seffner.de | +49 35245 72950
Lug-dd maillist - Lug-dd@mailman.schlittermann.de https://ssl.schlittermann.de/mailman/listinfo/lug-dd
Hallo nochmal,
zum Lernen und Verstehen sind heartbeat und drbd super geeignet. Entgegen Deiner Erfahrung finde ich drbd sehr handhabbar und stabil. Für produktive Anforderungen sind wir mittlerweile von diesen "Bastellösungen" abgewichen, weil diese für den Admin zu viel Komplexität mitbringen. Um diesen Erfahrungsweg zu verkürzen hatte ich die Virtualisierung ins Spiel gebracht. Neben VMWare kann hier natürlich auch ein Kernelvirtualisierer mit LVM oder drbd zum Einsatz kommen - auch das hatten wir schon, benötigte aber Schaltzeiten und meist manuelle Failbacks. Auch der Microsoft - steinigt mich nicht - Hyper-V Core-Server ist kostenlos und sehr stabil, in der kommenden Version soll er der Konkurrenz in Sachen Clustering und SAN wohl gewaltig Druck machen.
Ein SAN mit VMWare beweist sich gerade bei 600 Usern mit mehreren Dutzend Servern und allem Erdenklichen wie ADS, LDAP, Oracle, MSSQL, MySQL, Exchange, Samba, ... als sehr robust. Man könnte Prüfen, was der kleine ESX(i?) hier alles schon kann.
Allein ein MySQL mit LB und HA benötigt volle Aufmerksamkeit beim Konfigurieren, hier sollte _ein_ Admin nicht Euer gesamtes Projekt an der Backe haben ...
Und von Geld war doch - zumindest bei mir - noch gar nicht die Rede. Wobei es hilfreich wäre das Budget zu kennen um zu entscheiden ob man Software kaufen kann ober ob das $admin allein lernen/machen muss (dessen Stunden natürlich nichts kosten). Auch von den Applikationen hast Du noch nichts geschrieben und in den Raum gestellt, die Anzahl der Server wäre egal (ein vernünftiges MySQL HA+LB fängt bei 4 Maschinen an).
Mit freundlichen Grüßen / Kind regards Ronny Seffner
==> Es ist nur eine Master/Master bzw. Primary/Primary Replikation möglich. Ich kann keine weiteren Server "einfach" hinzufügen. Außerdem fand ich, dass DRBD sehr anfällig ist. Wenn es nicht mehr funktioniert, dauert die Fehlersuche zu lange. Außerdem hat der sekundäre Loadbalancer die virtuelle IP nicht immer sofort "nehmen" können, wenn der primäre LB ausgefallen ist.
Das sind deine Einschätzungen, das mit der IP würde ich fast auf ein Konfigurationsfehler schieben, wir haben ein Firewallcluster mit ha gebaut und da gehen mal 2 Pakete verloren (wenn deinen Rechner über km getrennt sind könnte es auch dran liegen) es ist mit entsprechenden netfilter-modulen gar möglich Sessioninformationen zwischen den Rechnern auszutauschen
Loadbalancing mit LVS und einer virtuellen IP MySQL-Cluster Dateisystem mit Clusterd Heartbeat
==> Diesen Ansatz fand ich eigentlich nach langem hin und her am Besten. Man hätte das Dateisystem relativ einfach erweitern können und neue Resourcen einbinden. Jedoch war die Datenbank für ein reines MySQL-Cluster-System zu groß, da zu viele Textfelder u.ä. vorhanden waren.
da werfe ich mal mehr rechnerdatenbank systeme in die wagge
http://www.admin-magazin.de/Das-Heft/2011/04/HA-Serie-Teil-1-Grundlagen-von-...
Dieses System hätte aber einen tiefen Eingriff in die Netzwerkkonfiguration gebraucht, damit die Server mit den Daten nicht nach außen erreichbar sind,
verstehe ich nicht ganz das, sollte doch auch bei dem oberen das gleiche sein entweder ist der rechner erreichbar oder nicht, das hängt doch jetzt nicht mit der software ab, und wenn gewisse sachen broadcatsen wollen dann ist es gut da noch ne brandmauer hoch zuziehen oder
mehrer netztwerkschnitstellen
jedoch die Loadbalancer etc~. Bei einem Serveranbieter nicht leicht zu erreichen...
?wie meinst du das jetzt? wie du deine echten rootserver konfigurierst und installierst ist den meisten Anbietern egal, oder meinst du einen spezialisierte Hardware?
Über reine Virtualisierung habe ich bereits auch nachgedacht. Habe jedoch (leider) vorerst keine Zeit, um mir das auch noch anzueignen. Wenn hier jemand gute Pflichlektüre kennt, bin ich jedoch jederzeit dankbar dafür.
für den Einstieg http://www.linux-magazin.de/Heft-Abo/Ausgaben/2011/07/Cloud-HA?category=0 http://www.linux-magazin.de/NEWS/LTR-Update-KVM-Cluster-mit-freiem-SAN?categ... http://www.admin-magazin.de/Online-Artikel/Technical-Review/KVM-Cluster-mit-... http://www.linux-magazin.de/Heft-Abo/Ausgaben/2010/08/Von-wegen-toter-Bruder...
Vielen Dank auch für die vielen Angebote. Jedoch ist der Kostenfaktor bei diesem Projekt nicht unerheblich.
volle Leistung zu keinem Preis?
Man kann meiner Meinung nach nicht zig-tausend-Euro im Vorfeld für diese Thematik in ein Projekt investieren...
ich denke Doch kommt drauf an wie wichtig es dir ist, den Lastcluster ist nicht gleich Lastcluster (reine statiche Webserver oder mit DB, Vidoekonvertierungscluster, Wetterdatenberechnung, Videostreaming ...)
wie sind die Daten der DB kann man eine clevere DB-Struktur (Partitonierung ...) nehmen, vielleicht sogar nosql (da gibt es wieder Clusterspezialisten)
Lieber am Anfang 2000€ investiert und dann später ein perfomantes beherrschbares System für 800€ im Monat gemietet als ein riesiger Wust an Rechner die 1500€ im Monat Miete kosten
Dafür find ich das Thema eigentlich zu alltäglich. Kann ja nicht sein, dass ich der einzigste bin, der solche Anforderungen an ein System stellt :-D,
nein bist du nicht, aber es sind nicht alle Anforderungen/Randbedingungen für das System bekannt (weiß nicht welche Datenmengen du erwartest, welche Durchsätze brauchst du)
Vielleicht solltest du dir Clusterfilesysteme im Alllgemeinen anschauen, Vielleicht sind statt clusterfs aber auch nfs, samba. sambacluster, san interessant Auch richtung "Cloud" schauen
Andreas
werfe mal http://www.megware.com/ in die runde
Andreas
Hallo Cedric,
Cedric Fingler c.fingler@googlemail.com (Mon Oct 24 10:02:12 2011):
Hallo liebe Mitlesende,
ich habe eine allgemeine Frage bezüglich Hardwarearchitektur. Für ein Projekt ist es notwendig, dass gewisse Kriterien erfüllt werden. Diese sehen wie folgt aus:
- Der Server muss hochverfügbar sein
- Die Last muss effizient verteilt werden (Loadbalancing)
- Der Server muss skalierbar und ohne Downtime erweiterbar sein (RAM,
Festplattenspeicher)
- Auf dem Server läuft Debian (nicht unbedingt Voraussetzung)
Ich habe es jetzt einfacher als Ronny, weil ich seine und Deine Antworten schon kenne…
Von einfam „der Server“ zu sprechen, macht die Sache unnötig komplex. Ich würde hier tatsächlich fragen wollen, welche Applikation 100% verfügbar sein soll, dann kann man auch entscheiden, mit welchen Mitteln von Lastverteilung und Absicherung der Verfügbarkeit sich etwas anstellen läßt.
Willst Du nur 100% der Zeit eine Maschine per ICMP Echo Request erreichen, muß man über kein verteiltes Storage nachdenken.
Willst Du eine Webapplikation 100% verfügbar machen, die Daten auf den Clients speichert (Cookies etc), ist auch kein 100% verfügbares Storage notwendig.
Wenn die Webapplikation immer mit einer Datenbank reden können soll, dann könnte man untersuchen, ob auf dem Sektor der Datenbanken welche existieren, die 100% Verfügbarkeit der Daten (Master-Master, usw…) versprechen, ohne ein gemeinsames Filesystem zu benötigen.
Gibt es Sessions, die übernommen werden müssen, wenn ja, auf welchem OSI-Layer?
Gibt es dort irgendwie einen Ansatz, den man als "Normalo" auch umsetzen kann? Kennt jemand zufällig ein Unternehmen, welches solche Lösungen (kostengünstig) anbietet?
Ich denke, es gibt einige Unternehmen, die das umsetzen möchten und können. Eins ist Dir genannt worden, andere lassen sich relativ leicht finden. Allerdings meine ich, daß „kostengünstig“ sehr dehnbar sein sollte und den Anforderungen entsprechen wird. Welcher Auftraggeber sich auch immer soetwas wünscht, wird Gründe dafür haben und wird auch zu Investitionen gezwungen sein, entweder direkt mit Geld, oder in Arbeitszeit für seine Admins.
Es ist, glaube ich, noch immer keine Brot- und Butterlösung, was Du dort suchst. Wenn ich mir beispielsweise Debian anschaue, dann gibt es dort noch viel zu tun, um einfach zwei System zu einem „virtuellen“ System zusammenzufassen, wenn DRBD, Heartbeat, Pacemaker (oder wie das Teil auch gerade heißt) verwendet werden sollen. „aptitude install ha-mailserver“ gibt es noch nicht…
Viele Grüße aus Dresden Heiko
Hallo,
Heiko Schlittermann wrote:
Hallo Cedric,
Cedric Fingler c.fingler@googlemail.com (Mon Oct 24 10:02:12 2011):
Hallo liebe Mitlesende,
ich habe eine allgemeine Frage bezüglich Hardwarearchitektur. Für ein Projekt ist es notwendig, dass gewisse Kriterien erfüllt werden. Diese sehen wie folgt aus:
- Der Server muss hochverfügbar sein
- Die Last muss effizient verteilt werden (Loadbalancing)
- Der Server muss skalierbar und ohne Downtime erweiterbar sein (RAM,
Festplattenspeicher)
- Auf dem Server läuft Debian (nicht unbedingt Voraussetzung)
Ich habe es jetzt einfacher als Ronny, weil ich seine und Deine Antworten schon kenne???
Ich habe es noch einfacher, weil du viele Sachen schon angesprochen hast, die noch anzusprechen wären :)
Von einfam ???der Server??? zu sprechen, macht die Sache unnötig komplex.
Und ist auch nicht sehr hilfreich, weil *ein* Server garnicht hochverfügbar sein kann, ist er doch selbst der Single Point of Failure :)
Ich würde hier tatsächlich fragen wollen, welche Applikation 100% verfügbar sein soll, dann kann man auch entscheiden, mit welchen Mitteln von Lastverteilung und Absicherung der Verfügbarkeit sich etwas anstellen läßt.
100% ist übrigens auch noch so eine Utopie, man kann über 99,9% reden oder auch über 99.999%, muss dann je nach Anzahl der 9er Geld und Zeit für die Planung und die Umsetzung und auch für den laufenden Betrieb kalkulieren, oder umgekehrt aus dem Budget ableiten, wieviele 9er man garantieren kann...
Willst Du nur 100% der Zeit eine Maschine per ICMP Echo Request erreichen, muß man über kein verteiltes Storage nachdenken.
Willst Du eine Webapplikation 100% verfügbar machen, die Daten auf den Clients speichert (Cookies etc), ist auch kein 100% verfügbares Storage notwendig.
Wenn die Webapplikation immer mit einer Datenbank reden können soll, dann könnte man untersuchen, ob auf dem Sektor der Datenbanken welche existieren, die 100% Verfügbarkeit der Daten (Master-Master, usw???) versprechen, ohne ein gemeinsames Filesystem zu benötigen.
Gibt es Sessions, die übernommen werden müssen, wenn ja, auf welchem OSI-Layer?
Ohne genauere Kenntniss, was genau verfügbar sein soll, kann man eben immer nur raten ;-)
Gibt es dort irgendwie einen Ansatz, den man als "Normalo" auch umsetzen kann? Kennt jemand zufällig ein Unternehmen, welches solche Lösungen (kostengünstig) anbietet?
Ich denke, es gibt einige Unternehmen, die das umsetzen möchten und können. Eins ist Dir genannt worden, andere lassen sich relativ leicht finden.
<Werbeblock> Meine macht sowas auch, als Schwerpunktthema, siehe http://www.cc-dresden.de/ - aber in unserem konkreten Fall eher nicht mit Debian, sondern mit der Steeleye Protection Suite for Linux unter SLES, RHEL oder CentOS. Bei Interesse einfach melden ;) </Werbeblock>
Allerdings meine ich, daß ???kostengünstig??? sehr dehnbar sein sollte und den Anforderungen entsprechen wird. Welcher Auftraggeber sich auch immer soetwas wünscht, wird Gründe dafür haben und wird auch zu Investitionen gezwungen sein, entweder direkt mit Geld, oder in Arbeitszeit für seine Admins.
Wie oben angesprochen, das Budget und die Anzahl der 9er bei der garantierten Verfügbarkeit stehen in einem engen Verhältnis. Ab einer bestimmten Zahl 9er wird es dann aber sehr schnell sehr teuer.
Es ist, glaube ich, noch immer keine Brot- und Butterlösung, was Du dort suchst. Wenn ich mir beispielsweise Debian anschaue, dann gibt es dort noch viel zu tun, um einfach zwei System zu einem ???virtuellen??? System zusammenzufassen, wenn DRBD, Heartbeat, Pacemaker (oder wie das Teil auch gerade heißt) verwendet werden sollen. ???aptitude install ha-mailserver??? gibt es noch nicht???
Das mag daran liegen, dass Hochverfügbarkeit die ganze Angelegenheit sehr komplex macht. Hochverfügbarkeit ist wie eine Firewall - keine Lösung, sondern ein Prozess. Damit will ich sagen: Einfach ein Rundum-Sorglos-Paket installieren reicht nicht, sondern man muss auch die Arbeitsprozesse anpassen, Monitoring ist ein Thema, bei 24/7-Betrieb geht es mit Bereitschaftszeiten für Admins weiter... ein endloses Thema. Es gibt da eine ganze Palette von Ansätzen, und je nach Anforderung kann es da ganz unterschiedliche Lösungen geben.
Ciao, Thomas
lug-dd@mailman.schlittermann.de