Setup für eine virtualisierte Hochverfügbarkeitsumgebung

9

Für ein Projekt habe ich die Aufgabe, ein Hochverfügbarkeits-Setup für einen Webshop und ein CMS-System zu planen. Natürlich hat das Projekt ein knappes Budget. Eine High-End-Lösung ist also möglicherweise nicht im Budget enthalten.

Es werden zwei Computer mit Webserver (CMS, Shop), ein Computer mit Datenbank und ein Computer mit Faxserver für die Zustellung von Bestellungen an Partner vorhanden sein. Alle Systeme laufen unter Linux. Alle diese Komponenten müssen hoch verfügbar sein und sollten transparentes Failover unterstützen.

Um die Hardwarekosten zu senken, denke ich an eine virtualisierte Umgebung. Es gibt viele Informationen da draußen, aber ich weiß nicht genau, wo ich anfangen soll. Es scheint offensichtlich, dass zumindest Server als Host für die virtuellen Maschinen benötigt werden, so dass es keinen einzelnen Fehlerpunkt gibt.

Welches ist der beste Weg, um Hochverfügbarkeit zu unterstützen?

Die erste Frage ist, welche Virtualisierungslösung in dieser Situation die beste ist. Es muss eine Art Verwaltungsschnittstelle geben. Es muss eine Möglichkeit geben, eine laufende virtuelle Maschine von einem Host auf einen anderen zu verschieben, damit die Wartung des Hosts durchgeführt werden kann. Es muss einen Mechanismus geben, damit virtuelle Maschinen weiterhin verfügbar sind, wenn ein Host ausfällt. Könnten Sie hier eine gültige Lösung empfehlen?

Ein gemeinsam genutzter Dateispeicher scheint in den meisten Fällen Voraussetzung für eine hohe Verfügbarkeit zu sein (erwarten Sie VMware vSphere, das ziemlich teuer ist). Sie möchten jedoch lieber mehr Geld in die Hosts der virtuellen Maschine stecken, als dem Setup zwei weitere Server hinzuzufügen, um einen redundanten NFS-Dateispeicher bereitzustellen. Gibt es eine Möglichkeit, nur mit den beiden Hosts der virtuellen Maschine auszukommen? Eine Lösung könnte sein, dass zwei diese beiden auch als NFS-Hosts verwenden. Gibt es dafür eine große Leistungsstrafe?

EDIT: Ich strebe eine Verfügbarkeit von 99,9% an. Es ist jedoch keine Verfügbarkeit rund um die Uhr erforderlich, da es reguläre Geschäftszeiten gibt, die etwas Spielraum bieten. Die Verfügbarkeitsfrist, die in irgendeiner Weise garantiert werden muss, liegt zwischen 10 und 24 Uhr.

Spa
quelle
2
Wie hoch ist Hochverfügbarkeit? Schießen Sie für die Verfügbarkeit von 1: 9 oder 6: 9 oder irgendwo dazwischen? Solange Sie keine konkreten Anforderungen haben, können Sie nicht sagen, ob das, was Sie tun möchten, mit einem bestimmten Budget erreichbar ist.
wachsen
Ja, du hast recht. Ich strebe eine Verfügbarkeit von 99,9% an.
Spa
"99,9%" ist nicht nur eine Phrase, die wir herumwerfen. Dies entspricht einer Ausfallzeit von ca. 8,8 Stunden pro Jahr . Das bringt Sie aus dem Bereich der Systeme heraus, die nur mit einem knappen Budget zusammengewürfelt werden. Können Sie es sich leisten, diese Verfügbarkeit zu unterstützen, wenn Ihr Budget begrenzt ist?
Rob Moir
1
@RobMoir - Ich würde argumentieren, wenn Sie die Kriterien erfüllen, die ich in meiner Antwort dargelegt habe, gibt es nicht viele Probleme, die Sie in diesen 8 Stunden nicht beheben konnten (und das Budget könnte immer noch klein sein). Wenn Sie sicherstellen, dass geplante Ausfallzeiten mit Vorwarnung außerhalb der Geschäftszeiten nicht für Ihre SLA gelten (für Nicht-24/7-Software).
Mark Henderson
@MarkHenderson Ich weiß, dass Sie Recht haben. Ich sage nur, dass der Prozess einige Überlegungen und Planungen erfordert und nicht "einfach" passiert (Sie müssen sicherstellen, dass Sie Ersatzteile innerhalb dieser 8 Stunden vor Ort erhalten können, z Beispiel: Sie möchten also nicht 7 Stunden Zeit für die Post verlieren oder Ihren Lieblingslieferanten finden, der an diesem Tag für ein triviales Kabel, das normalerweise zu Tausenden auf Lager ist, nicht vorrätig ist.) .
Rob Moir

Antworten:

13

Um eine hohe Verfügbarkeit zu erreichen, benötigen Sie einen allgemeinen Überblick:

  1. Mehrere Server
  2. Mehrere konsistente Kopien der Daten
  3. Konsistente Daten, auf die zwischen mehreren Servern zugegriffen werden kann
  4. Eine Möglichkeit zum automatischen Booten einer zweiten Instanz auf dem Standby-Server

Nummer 1 ist so einfach wie es sich anhört - kaufen Sie zwei identische Server.

Nummer 2 kann durch ein replizierendes SAN (teuer, sehr schnell, sehr zuverlässig) oder ein repliziertes Dateisystem auf jedem der Server erreicht werden (billig, Geschwindigkeit und Zuverlässigkeit können von Ihrem Wissen über die ausgewählte Technologie abhängen).

Nummer 3 kann durch ein SAN (eine Speicher-LUN, auf die zwei Server zugreifen) oder ein repliziertes Dateisystem (zwei separate Speicherbereiche, jeder Server kann nur seine eigenen sehen) erreicht werden.

Nummer 4 kann durch eine Heartbeat-Anwendung erreicht werden.

Um dies mit einem kleinen Budget zu tun, sagen wir VMWare vSphere, können Sie entweder ein SAN verwenden oder VMWare bietet jetzt eine selbstreplizierende Speicher-Appliance an , die zwei unterschiedliche Datenspeicher auf zwei Servern bietet, die für hohe Verfügbarkeit verwendet werden können. vSphere bietet außerdem integrierte Heartbeats und Hochverfügbarkeitskonfigurationen.

Um dies ohne Budget zu tun , können Sie den Xen-Pfad entlang gehen und DRBD verwenden, um den Speicher zwischen den beiden Knoten zu replizieren. Anschließend richten Sie Heartbeat ein, um den aktiven DRBD-Speicherknoten und die Xen-Instanz so zu wechseln, dass die VMs auf dem zweiten Host gestartet werden, wenn der erste ausfällt.

Mit diesen grundlegenden Empfehlungen erhalten Sie keine Verfügbarkeit von 5 bis 9 (99,999%), aber Sie können mit den billigsten Methoden problemlos 3 bis 9 (99,9%) erzielen , wenn Sie wissen, was Sie tun.

Mark Henderson
quelle
9

Sie sprechen von "Kosten" in Bezug auf "wie viel Bargeld kostet dieser Kauf", wenn Sie über gemeinsam genutzten Speicher sprechen. Das ist natürlich ein absolut gültiger Punkt, das Geld ist überall knapp .

Wenn Sie jedoch über Hochverfügbarkeit sprechen, müssen Sie auch fragen: " Warum wollen wir Hochverfügbarkeit?" und wenn die Antwort zum Beispiel lautet: "Weil das Unternehmen einen Online-Umsatz von 2000 US-Dollar pro Stunde erzielt. Wenn wir also eine Stunde abwesend sind, haben wir 2000 US-Dollar verloren", kann die Frage nach Kosten und Erschwinglichkeit zu "Können wir" werden Sie möchten es sich leisten, nichts zu kaufen, das unsere Hochverfügbarkeitsbereitstellung ermöglicht oder erheblich verbessert? "

Dies ist ein wichtiges Detail und spielt für Ihren Kommentar zum Budget eine Rolle - der IT-Schwanz darf nicht mit dem Geschäftshund wedeln, indem er auf einer zu komplexen und teuren Lösung für ein kleines Problem besteht, sondern gleichzeitig, wenn das Unternehmen dies hat Bestimmte Anforderungen an die IT-Infrastruktur müssen darauf vorbereitet sein, diese entweder ordnungsgemäß zu budgetieren oder die Anforderungen anzupassen.

Ich denke, Virtualisierung hat viel Potenzial, um die Verfügbarkeit von Systemen zu verbessern, aber es ist kein Zauberstab. Die Hardware-Seite der Dinge ist zwar wichtig, aber den Softwareanforderungen sehr untergeordnet - es ist nicht gut, einen SQL-Datenbankcluster zu haben, der problemlos umkippt, wenn einer der SQL-Server abstürzt, wenn die Front-End-Anwendung spricht zu den Datenbankdrosseln, weil es das Failover nicht handhaben kann.

Und zwei "hochverfügbare" Server, die in einem Rechenzentrum nebeneinander sitzen, sind immer noch anfällig für Stromausfälle, Diebstahl usw. Abhängig von der Antwort auf " Warum machen wir das?" Müssen Sie diesen Aspekt möglicherweise durchaus berücksichtigen vorsichtig, da dies einigen Teilen Ihres Projekts Kosten und Komplexität hinzufügen kann.

Rob Moir
quelle
3
...no good having a SQL database cluster that falls over with no trouble in the event of one of the SQL servers crashing if the front-end application that talks to the database chokes because it can't handle the failover.- Ich konnte das nicht genug betonen. Wir hatten einen Client, der uns einen HA SQL Server-Cluster in einem großen SAN implementieren ließ, und am Ende des Tages musste seine Software im Falle eines Failovers neu gestartet werden, da sie keine Kommunikationsunterbrechung bewältigen konnte. Es war eine teure Übung, die zwecklos war, wenn ein SQL Mirror und eine NLB ausgereicht hätten.
Mark Henderson
Klingt so, als hätten wir beide ähnliche Narben von alten Projekten
Rob Moir
@ MarkHenderson, warum ist die Kommunikation unterbrochen (zwischen welchen - SAN oder Netzwerk)?
Nils
5

Ohne zu wissen, welche Datenbank und welchen Anwendungsserver Sie verwenden, würde ich empfehlen:

  • Verwenden Sie XEN> 3.2 im PV-Modus für die VMs (nur mein persönlicher Favorit) - möglicherweise passen auch Fächer oder andere Lightwight-Virutalisierungslösungen (OpenVZ, um nur einen zu nennen).
  • Erstellen Sie vier VM-Computer auf jedem physischen Knoten
  • Verwenden Sie ein lokales RAID 5 mit SAS 3,5 "-Datenträgern - so viele Datenträger wie möglich lokal (5 ist gut)
  • Verwenden Sie Festplatten mit 15.000 U / min (Ihre DBs benötigen sie)
  • Verwenden Sie DRBD und OCFS2, um billigen "gemeinsam genutzten" Speicher bereitzustellen. Verwenden Sie für diese Verbindung ein schnelles, sicheres und zuverlässiges lokales Netzwerk (das Verbinden von direkten Verbindungen ist ziemlich schnell und gut).
  • Führen Sie die HA auf Anwendungsebene durch
  • Verwenden Sie den Lastausgleich zwischen den Maschinenpaaren, damit 8 Maschinen gleichzeitig Aufgaben ausführen

HA-Beispiele:

  • Anwendungsserver: Verwenden Sie Tomcat im Cluster-Aktiv / Aktiv-Modus
  • LVS: Verwenden Sie die gleichzeitige Slave- und Master-Replikation von lvs
  • Oracle-DB: Verwenden Sie RAC (ich weiß nicht, ob es eine gleichwertige Lösung für OpenSource-DBs gibt)

Wenn Sie HA auf Anwendungsebene ausführen, weiß diese Ebene am besten, wie Sitzungen repliziert werden. Wenn ein Knoten ausfällt (geplant oder ungeplant), übernimmt der überlebende Knoten - einschließlich Sitzungen.

Nils
quelle
"Oracle-DB: Use RAC" - Standard Edition wird von OCFS2 nicht lizenziert oder unterstützt. Davon abgesehen eine sehr informative Antwort.
Kubanczyk
@kubanczyk Oracle-RAC ist mehr als ocfs2. Aber ocfs2 ist kostenlos. So können Sie es verwenden, wann immer Sie möchten.
Nils
2

Warum möchten Sie Ihre eigenen Gastgeber kaufen? Warum finden Sie keinen Enterprise Cloud / IaaS-Anbieter wie BlueLock oder Terremark , der die Infrastruktur bereitstellt, die Sie benötigen ? Sie bieten Dienste wie vSphere HA (eher reduzierte Ausfallzeiten als Service HA, aber eine kostengünstige Lösung), Firewall, LTM / SSL-Offloader, SAN (mit redundanten Regalen), Überwachung / Warnung usw. Beachten Sie, dass dies nicht der Fall ist Wenn Sie hier über Cloud-Lösungen für Verbraucher sprechen, sollten Sie bereit sein, für den Wert zu zahlen.

HTTP500
quelle
Ja, du hast recht. Das Setup enthält jedoch wie benutzerdefinierte Hardware für die Faxzustellung. Eine Cloud-Lösung reicht also nicht aus.
Spa
@spa, Sie können die benutzerdefinierte Hardware weiterhin in ihrer physischen Umgebung bereitstellen, den Rest in der virtuellen Umgebung und die VLANs überbrücken.
HTTP500