Heim  >  Artikel  >  Datenbank  >  Lassen Sie uns darüber sprechen, warum Sie sich bei der Wartung nicht auf die Hochverfügbarkeit von MySQL verlassen sollten

Lassen Sie uns darüber sprechen, warum Sie sich bei der Wartung nicht auf die Hochverfügbarkeit von MySQL verlassen sollten

青灯夜游
青灯夜游Original
2022-10-25 20:31:221351Durchsuche

Lassen Sie uns darüber sprechen, warum Sie sich bei der Wartung nicht auf die Hochverfügbarkeit von MySQL verlassen sollten

Die Kosten für Ausfallzeiten summieren sich in einer Unternehmensumgebung schnell. In einer Umfrage gaben 40 % der Befragten an, dass nur eine Stunde Ausfallzeit ihr Unternehmen mehr als 1 Million US-Dollar kostete. Es lohnt sich eindeutig, dafür zu sorgen, dass Datenbankdienste kontinuierlich verfügbar sind. Es spart Ihrem Unternehmen jede Menge Geld, ganz zu schweigen von den Beziehungen zu Stakeholdern aller Art und Größe.

Wie stellen Sie also eine kontinuierliche Verfügbarkeit sicher? Das Konzept hinter der kontinuierlichen Verfügbarkeit heißt „Hochverfügbarkeit“. In diesem Artikel geben wir einen Überblick darüber, was Hochverfügbarkeit ist und wie Sie sie für Ihren MySQL-Cluster implementieren.

Wir weisen auch auf die Schattenseiten der Hochverfügbarkeit hin, selbst wenn Systemadministratoren fälschlicherweise auf Hochverfügbarkeit vertrauen, um Wartungsaufgaben durchzuführen – und erklären, warum dies den Zielen der Hochverfügbarkeit zuwiderläuft und Ihren Geschäftsbetrieb gefährdet. 1. Einführung in die Hochverfügbarkeit

Lass uns zuerst über die Verfügbarkeit sprechen. Es macht wenig Sinn, einen Dienst (z. B. eine Datenbank) auszuführen, wenn er den Benutzern die meiste Zeit nicht zur Verfügung steht. Wenn wir also von Verfügbarkeit sprechen, meinen wir damit, wie zugänglich ein Dienst ist.

Bei jedem Dienst, der ordnungsgemäß läuft, kann man vernünftigerweise davon ausgehen, dass er bei Bedarf immer verfügbar ist – aber es wird auch einige Ausfallzeiten geben, ein oder zwei Tage im Jahr oder ein paar Stunden im Monat.

Ein allgemein verfügbarer Dienst kann für viele Anwendungsszenarien großartig sein, aber wenn der Dienst von entscheidender Bedeutung ist oder eine große Anzahl von Benutzern auf einen Dienst angewiesen ist, reicht es nicht aus, sich allein auf die „Verfügbarkeit“ zu verlassen.

Darum geht es bei Hochverfügbarkeit. Im einfachsten Fall stellt Hochverfügbarkeit ein höheres Maß an Verfügbarkeit sicher, als normalerweise erwartet wird, und insbesondere ein vereinbartes Maß, das Wartung, Patches und allgemeine Fehler und Ausfälle ermöglicht.

2. Welches Maß an Verfügbarkeit ist Hochverfügbarkeit?

Es gibt keine einheitliche Definition dessen, was Hochverfügbarkeit ist, es geht lediglich um die Erfüllung spezifischer (höherer) Verfügbarkeitsanforderungen, die in der Regel über das hinausgehen, was vom Anbieter als „Verfügbarkeit“ akzeptiert wird. Tatsächlich kann Ihr Unternehmen die erforderliche Verfügbarkeit basierend auf den Anforderungen Ihres Betriebs definieren und dabei die Kosten der Hochverfügbarkeit gegen die Kosten ausfallzeitbedingter Verluste abwägen.

Der Grad der von Ihnen gewünschten Verfügbarkeit kann in Prozent ausgedrückt werden. Beispielsweise bedeutet eine Verfügbarkeit von 99,99 % oder „vier Neunen“ eine maximale Ausfallzeit von 52,06 Minuten pro Jahr, während eine Verfügbarkeit von „sechs Neunen“ oder 99,9999 % die Ausfallzeit auf 31,56 Minuten pro Jahr begrenzt.

Im Grunde liegt die Wahl bei Ihnen – aber auch hier ist es ein Kompromiss. Die Aufrechterhaltung einer hohen Verfügbarkeit ist teuer, erfordert zusätzliche physische Ressourcen und Softwarelizenzen und belastet Ihre Personalressourcen. Es kann jedoch sein, dass es sich lohnt, diesen Preis zu zahlen, um die Folgekosten einer Unterbrechung oder das Risiko von Umsatzeinbußen aufgrund unzufriedener Kunden zu vermeiden.

3. Wie funktioniert Hochverfügbarkeit in der Praxis?

Die genaue Art Ihrer Hochverfügbarkeitsinfrastruktur hängt von Ihrer Arbeitslast ab. Im Großen und Ganzen wird Hochverfügbarkeit jedoch dann erreicht, wenn Fehlertoleranz besteht, sodass die Arbeitslast auch dann nicht unterbrochen wird, wenn ein Dienst oder ein Gerät ausfällt. In der Regel bedeutet dies, dass es keine Single Points of Failure gibt – alle Dienste und Geräte sind auf Netzwerk- und Anwendungsebene vollständig redundant.

Je nach Dienst kann es sich hierbei in der Regel um mehrere Knoten handeln – Ihr MySQL-Cluster enthält beispielsweise noch einige weitere Knoten, auf denen die Daten gespeichert werden. Anschließend werden mehrere Knoten mit Lastausgleichstools kombiniert, sodass bei Ausfall eines Knotens Anforderungen an einen anderen Knoten weitergeleitet werden. Benutzer können weiterhin auf verfügbare Dienste zugreifen, auch wenn die Leistung leicht eingeschränkt ist.

4. Hochverfügbarkeit in MySQL konfigurieren

Natürlich hängt Ihr Weg zu einer hochverfügbaren MySQL-Datenbank von Ihrer MySQL-Implementierung ab. Kurz gesagt, Sie müssen eine Art MySQL-Cluster mit mehreren Knoten erstellen – mit anderen Worten, Ihre Daten müssen auf mehreren MySQL-Servern gespeichert werden.

Als nächstes benötigen Sie einen Dienst, der die Daten auf diesen Knoten replizieren kann und sicherstellt, dass jeder Knoten über eine genaue Kopie der in Ihrer Datenbank enthaltenen Daten verfügt. Schließlich benötigen Sie einen Lastenausgleich, um sicherzustellen, dass alle Datenbankanforderungen gleichmäßig an die Datenbankknoten weitergeleitet werden – ja, eine ausgeglichene Last – aber stellen Sie sicher, dass die Anforderungen auch dann erfüllt werden, wenn ein Knoten offline ist.

MySQL bietet beispielsweise ein kommerzielles Produkt für Hochverfügbarkeit an –

Te MySQL InnoDB Cluster

. Es basiert auf der MySQL-Gruppenreplikation, einer beliebten Methode zur Gewährleistung einer hohen Verfügbarkeit in MySQL-Datenbankumgebungen.

Eine weitere Alternative ist Galera, das seit Jahren MySQL-Hochverfügbarkeit bietet. Wenn Sie den MariaDB-Fork von MySQL verwenden, können Sie Ihre MariaDB-Umgebung für hohe Verfügbarkeit konfigurieren, indem Sie mehrere Knoten auf Ihrem Galera-Cluster ausführen – und sich dabei auf HAProxy für den Lastausgleich verlassen. Alternativ können Sie sich auch das eigene MaxScale
-Produkt von MariaDB ansehen. 5. Gute Gründe, sich auf Hochverfügbarkeit zu verlassen …

Workloads im Unternehmensmaßstab nutzen zunehmend Hochverfügbarkeitsprinzipien, weil sie auf lange Sicht die besten Ergebnisse liefern. Hier sind ein paar gute Gründe, warum Sie über die Einrichtung einer Hochverfügbarkeit in Ihrem Betrieb nachdenken sollten:

    Extrem wichtige Anwendungen
  • Manche Anwendungen können sich einfach keine Ausfallzeiten leisten, denken Sie an militärische Anwendungen oder Energienetze. In diesen Fällen ist Hochverfügbarkeit ein Muss und Sie haben keine andere Wahl, als eine extrem hohe Verfügbarkeit sicherzustellen. Sie können jedoch eine Risikobewertung durchführen und entscheiden, wie viel Hochverfügbarkeitsgarantien Sie benötigen.
  • Welleneffekt
  • Wenn das System das Herzstück einer Arbeitslast ist, kann selbst ein kurzer Ausfall weitreichende Probleme verursachen, da damit auch verbundene und synchronisierte Systeme ausfallen. Es lohnt sich, die Investition in Hochverfügbarkeit in einigen Kernbereichen – etwa Datenbanken – in Betracht zu ziehen, da sich dies angesichts der Kosten größerer damit verbundener Probleme, deren Behebung möglicherweise schwierig ist, lohnen kann.
  • Umsatzverlust
  • Eine hohe Verfügbarkeit, selbst eine niedrige Zahl von 9, verhindert Umsatzeinbußen. Für einen großen Online-Händler können bereits wenige Stunden Umsatzverlust und der damit verbundene Reputationsschaden erhebliche Auswirkungen auf das Geschäftsergebnis haben.
  • Kundenerwartungen und Service-Level-Agreements
  • Ihr Geschäftsbetrieb unterliegt möglicherweise einem Service-Level-Agreement, das Ihren Kunden eine bestimmte Verfügbarkeit garantiert. Wenn dies der Fall ist, müssen Sie sicherstellen, dass Ihre Client-Workloads mit einem gewissen Maß an Verfügbarkeit bedient werden – und das erreichen Sie durch Hochverfügbarkeit. Wenn Sie dies nicht tun, kann dies zur Kündigung des Vertrags oder zu Vertragsstrafen gemäß Ihrem Vertrag führen.
  • Das sind ein paar gute Gründe für Hochverfügbarkeit – und in der heutigen technologieorientierten Welt gibt es viele Workloads, die ohne eine Hochverfügbarkeitsplattform einfach nicht ausgeführt werden können.

6. …und die falschen Gründe, sich auf Hochverfügbarkeit zu verlassen

Leider hat die wachsende Beliebtheit der Hochverfügbarkeit zu ihrem Missbrauch geführt. Da Hochverfügbarkeit Systeme extrem robust macht, könnten technische Teams versucht sein, bei der Durchführung von Systemverwaltungsaufgaben (z. B. Patching) Abkürzungen zu nehmen, weil diese Teams glauben, dass die Hochverfügbarkeitsinfrastruktur lediglich die Last tragen wird, eine Maschine offline zu schalten.

Eigentlich wird es sehr schnell komplizierter. Nehmen Sie MySQL Cluster als Beispiel. Ja, wenn Sie eine Maschine zum Patchen neu starten, wird Ihr MySQL-Cluster aufgrund der hohen Verfügbarkeit weiterhin ausgeführt. Beachten Sie jedoch, dass beim Herunterfahren eines Knotens zum Patchen und anschließenden Neustart ein Datenrückstand entsteht, der eingegeben werden muss. Dieser Vorgang kann lange dauern.

Es ist unnötig zu erwähnen, dass jeder Datenbankhost dieselben Daten sehen muss. Die Gefahr ergibt sich aus dem Resynchronisierungsprozess: Wenn ein anderer Knoten ausfällt, während Sie ihn bereits heruntergefahren und gepatcht haben, kann dies zum Verlust des endgültigen gültigen Quorums führen. Mit anderen Worten: Die Anzahl der Server, die die „Wahrheit“ über die Daten haben, kann unter einem akzeptablen Wert liegen. Die Wiederherstellung aus diesem Zustand kann schwierig und komplex sein und sogar zu Datenverlust führen.

7. Verlassen Sie sich bei der Wartung nicht auf eine hohe Verfügbarkeit

#

Hohe Verfügbarkeit soll den normalen Betrieb des Systems im Falle eines Ausfalls sicherstellen. Dieser inhärente Schutz vor Ausfällen ist kein Freibrief, sich für eine hohe Verfügbarkeit auf eine robuste, unverantwortliche Systemwartung zu verlassen, ohne dass es jemandem auffällt.

Stattdessen sollten sich technische Teams auf andere Lösungen verlassen – zum Beispiel die Einrichtung einer vollständigen Redundanz für Systeme, die gepatcht werden, anstatt einfach darauf zu hoffen, dass die hochverfügbare Infrastruktur der Belastung standhält. Oder, wo möglich,

verlassen Sie sich stattdessen auf Echtzeit-Patches

, wodurch die Notwendigkeit entfällt, Dienste neu zu starten, um den Patch zu installieren. Dennoch zeigt die Abhängigkeit von einer hohen Verfügbarkeit bei Wartungsarbeiten besorgniserregende Anzeichen. Wenn Sie genau hinsehen, finden Sie möglicherweise sogar offizielle Anleitungen von Anbietern, die Benutzer anweisen, sich bei der Durchführung von Patching-Aufgaben auf Hochverfügbarkeit zu verlassen. Benutzer hoffen einfach, dass andere Knoten keine Probleme haben, wenn ein Knoten zum Patchen offline ist.

8. Das Ende


Hohe Verfügbarkeit ist für viele Anwendungen von entscheidender Bedeutung – und für viele andere von Vorteil. Bei korrekter Konfiguration kann eine MySQL-Datenbank eine nahezu perfekte Verfügbarkeit bieten. Das bedeutet jedoch nicht, dass technische Teams die Verfügbarkeit als selbstverständlich ansehen können.

Der Missbrauch von Hochverfügbarkeitsarchitekturen zur Aufrechterhaltung von Wartungsverknüpfungen ist nicht ratsam – die Risiken sind größer, als sie auf den ersten Blick erscheinen.

Stattdessen sollten Systemadministratoren nach bewährten Alternativen – einschließlich Redundanz und Live-Patching – suchen, um Wartungsarbeiten durchzuführen, ohne die Leistungsfähigkeit der Hochverfügbarkeitslösung zu beeinträchtigen.

Originaladresse: https://tuxcare.com/understanding-mysql-high-availability-good-and-bad-reasons-to-use-it/

Übersetzungsadresse: https://learnku.com/mysql /t/71681

【Verwandte Empfehlungen: MySQL-Video-Tutorial

Das obige ist der detaillierte Inhalt vonLassen Sie uns darüber sprechen, warum Sie sich bei der Wartung nicht auf die Hochverfügbarkeit von MySQL verlassen sollten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn