NCache Split Brain Recovery-Architektur & Demo

NCache bietet eine wichtige Architekturfunktion für hohe Verfügbarkeit namens Split Brain Detection and Recovery. Sehen Sie sich dieses Video an, um mehr über diese Funktion zu erfahren, und sehen Sie sich dann eine praktische Demo von an NCache Split-Brain-Recovery.

Heute werde ich über die sprechen NCache Split-Brain-Recovery-Architektur und geben Ihnen auch eine Demo davon.

ncache-in-missionskritischen-apps

NCache ist ein verteilter In-Memory-Cache für .NET und .NET Core Anwendungen. Es unterstützt auch Java- und Node.js-Anwendungen. NCache wird in höheren Transaktionsanwendungen verwendet, bei denen Ihre Anwendung auf mehreren Anwendungsservern ausgeführt wird. Dies können Ihre Webanwendungen, Ihre Microservices-Anwendungen oder andere Serveranwendungen sein. Und, NCache befindet sich zwischen der Anwendungsschicht und Ihrer Datenbank, sei es ein SQL-Server oder eine relationale Datenbank vom Typ Oracle oder eine andere NoSQL database wie CosmosDB oder MongoDB oder jede Legacy-Mainframe-Datenbank oder Daten. Und, NCache verfügt normalerweise über zwei oder mehr Cache-Server in einem Cluster und für diese unternehmenskritische Anwendungsumgebung NCache bietet Ihnen Hochverfügbarkeit und als Teil dieser Hochverfügbarkeit gibt es eine sehr wichtige Funktion namens Split-Brain-Erkennung und Split-Brain-Wiederherstellung, über die ich sprechen werde.

Dynamische Cache-Cluster-Architektur

Bevor ich auf Split-Brain eingehe, lassen Sie mich Ihnen schnell einen Überblick über das geben NCache dynamische Cache-Clustering-Architektur.

dynamischer Cache-Cluster

Dies ist eine TCP-basierte Architektur, bei der jeder Server über einen TCP-Socket mit jedem anderen Server verbunden ist. Es handelt sich um eine selbstheilende Peer-to-Peer-Architektur. Selbstheilend bedeutet, dass es sich automatisch an alle Änderungen anpasst. Und aufgrund dieser Peer-to-Peer-Architektur gibt es keinen Single Point of Failure. Das heißt, es gibt keinen Meister, es gibt keinen Sklaven. Es gibt einen Cluster-Koordinatorknoten, der normalerweise der älteste Knoten im Cluster ist. Aber wenn das jemals ausfällt, wird der nächstälteste Knoten automatisch sein Nachfolger. Ein Cluster-Koordinator ist für die Verwaltung des Clusters verantwortlich. Es verwaltet die Cluster-Mitgliedschaft. Es verwaltet, im Falle einer Partitions- oder Partitions-Replik-Topologie, die Datenverteilungskarte. Außerdem verwaltet es den Zustand des Clusters.

Nun, wie gesagt, jeder Knoten in diesem Cluster ist mit jedem anderen Knoten verbunden und verfolgt diese Verbindung. Und wenn diese Verbindung jemals unterbrochen wird, gibt es eine Verbindungs-Failover-Funktion innerhalb des Clusters, die besagt, dass dieser Knoten automatisch Wiederholungen durchführt, mehrere Wiederholungen, was eine konfigurierbare Option ist, und jede Wiederholung hat eine Zeitüberschreitung. Und es gibt auch eine Heartbeat-Funktion, bei der in einem konfigurierbaren Intervall ein Heartbeat gesendet wird, um sicherzustellen, dass die Socket-Verbindung aktiv ist. Der Grund dafür ist, dass dies in den meisten Situationen ausreicht, um sicherzustellen, dass ein Verbindungsabbruch automatisch wiederhergestellt oder behoben wird. Und der Grund dafür ist, dass die Cache-Server normalerweise im selben Rechenzentrum bereitgestellt werden, tatsächlich im selben Subnetz. Daher ist die Verbindung zwischen diesen Cache-Servern normalerweise sehr zuverlässig. Und das Split-Brain tritt nicht sehr häufig auf, aber manchmal schon. Und wenn dies der Fall ist, werde ich darüber sprechen, wie wir damit umgehen.

Wie auch immer, diese Architektur ermöglicht es Ihnen, beliebige Cache-Server zur Laufzeit hinzuzufügen oder zu entfernen, ohne den Cache oder eine Ihrer Anwendungen anzuhalten. Und jedes Mal, wenn Sie dem Cluster einen Cache-Server hinzufügen, aktualisiert der Cluster-Koordinator die Zuordnung der Cluster-Mitgliedschaft und gibt sie dynamisch an alle Cache-Server weiter, die sie dann dynamisch an alle Clients weitergeben. Und wenn es sich um eine Partitions- oder Partitionsreplikat-Topologie handelt, wird auch die Datenverteilungskarte aktualisiert, und Sie können auf die zugreifen NCache Architekturvideo für weitere Details dazu. Aber eine Partitions- oder Partitionsreplikattopologie hat 1000 Buckets, was die Verteilungskarte ist, und die Karte sagt im Grunde den Servern, welche Buckets jeder Server hat, und wenn das an die Clients gesendet wird, wissen die Clients, wo sich die Daten befinden. Das ist also der dynamische Cache-Cluster.

Dynamische Client-Verbindungen

Der zweite Aspekt sind die dynamischen Client-Verbindungen, das heißt, ebenso wie die Verbindung innerhalb des Clusters dynamisch ist, ist auch die Verbindung zwischen den Clients und dem Cluster dynamisch.

dynamische-client-verbindungen

Und es ist eine sehr leichte TCP-basierte Verbindung. Und wenn diese Verbindung jemals unterbrochen wird, gibt es wieder eine Verbindungs-Failover-Funktion, bei der es Wiederholungsversuche und Zeitüberschreitungen gibt. Und es gibt auch eine Keep-Alive-Funktion, bei der der Client weiterhin eine Heartbeat-Nachricht an den Cluster sendet, um sicherzustellen, dass die Verbindung bestehen bleibt. Tatsächlich ist die Wahrscheinlichkeit eines Verbindungsabbruchs zwischen den Clients und dem Cluster wahrscheinlicher als innerhalb des Clusters selbst, und der Grund dafür ist, dass die Clients in einem separaten Subnetz bereitgestellt werden könnten, sogar über die Firewall hinweg. All dies erhöht normalerweise die Wahrscheinlichkeit, dass Steckdosen brechen. Wann immer das passiert, können sich die Clients also wieder verbinden. Es gibt also eine Verbindungs-Failover-Funktion.

Diese gesamte Architektur ermöglicht es Ihnen, Clients zur Laufzeit hinzuzufügen oder zu entfernen, ohne den Cache oder die Anwendung anzuhalten. Und wenn ein Client hinzugefügt wird, erhält der Client die Cluster-Mitgliedschaftsinformationen vom Cluster, und wenn es sich dann um eine Partitions- oder Partitionsreplikattopologie handelt, erhält er auch die Datenverteilungskarte, die ich hier gezeigt habe, aus dem Cluster. Und dadurch kann der Client automatisch genau wissen, wie viele Server sich im Cluster befinden und wer sie sind. Sie können sich also nur in einer Partitions- oder Partitionsreplikattopologie mit ihnen verbinden und wissen auch, was die Datenverteilungskarte ist.

Split-Brain-Erkennung

In Anbetracht all dieser Architektur gibt es also immer noch eine Situation, obwohl die TCP-Verbindung durch Wiederholungen und Zeitüberschreitungen widerstandsfähig ist, aber eine Verbindung zwischen den Cache-Servern aus irgendeinem Grund tatsächlich unterbrochen werden kann. Es könnte ein Hardwaregrund sein. Es könnte ein Netzwerktreiberproblem sein oder es könnte eine Vielzahl von Gründen geben. Wann immer das passiert, nennen wir es einen Verbindungsabbruch.

Split-Brain-Erkennung

In der Cache-Clustering-Architektur erkennt also jeder Knoten im Cluster, ob eine Verbindung unterbrochen wird, was bedeutet, dass die Verbindung trotz erneuter Versuche immer noch unterbrochen wurde. Immer wenn eine Verbindung abbricht, geht jeder Knoten davon aus, dass der andere Knoten gestorben ist. Es spricht also weiter mit allen anderen Knoten. Wenn Sie also beispielsweise hier einen Server haben, spricht dieser Knoten mit allen dreien. Dieser Knoten kann also ausfallen. Dieser Knoten kann also möglicherweise mit diesen dreien sprechen. Wenn das passiert, wird davon ausgegangen, dass diese drei jetzt ein Cluster von drei sind und dieser Knoten gegangen ist. Also, wenn so etwas passiert, sagen wir, ein Cluster von sechs Knoten, und ich gebe nur das Beispiel, dass die Verbindungen so abbrechen, dass drei von ihnen in der Lage sind, miteinander zu sprechen, diese beiden sind es miteinander reden können und dieser kann mit niemandem reden.

Also, wenn das passiert, wenn diese Knoten all das erkennen, dann nehmen sie alle an, okay, ich bin ein Cluster von drei, weil ich in der Lage bin, mit diesen drei Knoten zu sprechen, und wenn ich ein Cluster von drei bin, dann einer von meinen Knoten wird ein Cluster-Koordinator, der möglicherweise bereits ein Cluster-Koordinator ist, denn wenn es der s1 ist, der wahrscheinlich der älteste war und der hier weiterhin der Cluster-Koordinator ist. Aber im Fall von Split Two wird s4 der neue Cluster-Koordinator für diesen Cluster. Und für Split 3 wird s6 als einziger Knoten auch zum Koordinator. Nun, in dieser Situation wissen diese Knoten, dass diese drei Knoten in der Lage sind, mit diesen drei Knoten zu sprechen. Also, es sagt okay, mir geht es gut, die anderen sind gestorben. Das denkt dasselbe, ich bin gut, die anderen sind gestorben. Diese denkt, ich bin gut, die anderen sind gestorben.

Aber sie wissen auch, dass ich ein Cluster aus sechs Knoten sein soll. Also versuchen sie weiterhin, alle anderen Knoten anzupingen, um zu sehen, ob sie wieder hochkommen. Und das Ping erfolgt für ein konfigurierbares Intervall, danach geben sie einfach auf und gehen davon aus, dass diese Knoten dauerhaft ausgefallen sind und ich der einzige übrige bin. Aber innerhalb dieses Intervalls, wenn wir sagen, die Verbindung, wird die Netzwerkverbindung wiederhergestellt und diese Knoten sind jetzt füreinander sichtbar. Nehmen wir also an, dass sich in diesem Beispiel alle gegenseitig sehen können. Also, jetzt erkennen sie, oh, wir haben drei getrennte Splits erstellt, aber wir können miteinander reden.

Also, jetzt werden sie offiziell, NCache wird formell eine Spaltung erkennen. Obwohl die Trennung in dem Moment stattfand, in dem die Verbindungen brachen, NCache Knoten wussten nicht, dass dies eine Spaltung war, weil sie dachten, sie seien alle gestorben. Aber wenn diese Knoten innerhalb dieses angegebenen Intervalls zurückkamen und die Cache-Knoten sagen, okay, es ist eine Aufteilung aufgetreten, und jetzt ist es Zeit, eine Aufteilungswiederherstellung durchzuführen. Und der Grund dafür ist, dass Ihre Anwendung einen gesunden Cache-Cluster benötigt, um weiter zu arbeiten, und obwohl die Aufteilung keine gesunde Situation ist, wenn Sie sich automatisch davon erholen können, anstatt dass Ihr Verwaltungspersonal zu ungewöhnlichen Zeiten eingreifen muss des Tages oder der Nacht oder am Wochenende. Dann macht es dir das Leben leichter NCache automatisch in einen gesunden Zustand zurückkehrt, ein gesunder Cluster von sechs. Aber wie passiert das?

Die erste ist, dass die Aufteilung wie gesagt nur erkannt wird, wenn die Verbindung wiederhergestellt ist und sie sich sehen können. Bis dahin gehen sie davon aus, dass andere tot sind. Okay? Jetzt, wo der Split erkannt wird, setzt jetzt die Split-Wiederherstellung ein.

Split-Brain-Recovery

Was ist an der Split-Recovery beteiligt?

Split-Brain-Recovery

Bei der Split-Wiederherstellung werden also zuerst die beiden größten Subcluster oder die beiden größten Splits zusammengeführt. Und der Cluster dieser Teilung und der Cluster dieser Teilung koordinieren sich untereinander, um zu sagen, okay, da ich der kleinere der beiden bin und die Größe hier auf der Anzahl der Knoten in jedem Cluster basiert. Das könnte an der Datenmenge liegen. Es hätte auf der Aktivitätsmenge und der Anzahl der Clients basieren können, aber wir haben die Anzahl der Knoten gewählt, weil dies die wahrscheinlichste Situation war. Denn in den meisten Situationen hat jeder Knoten aufgrund der Hash-Map-Verteilung so ziemlich die gleiche Datenmenge, weil es tausend Buckets gibt, die gleichmäßig verteilt sind, weil es eine Datenausgleichsfunktion gibt NCache die Daten über Knoten hinweg neu ausgleicht, wenn sie jemals aus dem Gleichgewicht geraten.

All dies bedeutet also, dass die wahrscheinlichste Situation darin besteht, dass jeder Knoten ungefähr die gleiche Datenmenge hat. Die größte Anzahl von Knoten bedeutet also die größte Datenmenge. Das wird also zum Meister. Und diese andere Teilung muss ihre Daten an diesen Cluster abgeben und sich diesem Cluster als frische Knoten wieder anschließen. Also, das erste, was es tut, gibt es seine Kunden auf, sagt es. Also, diese beiden Server, dieser Koordinator teilt seinem anderen Knoten mit, dass wir die Clients aufgeben und den Clients sagen müssen, dass sie sich mit diesem Cluster verbinden sollen. Das erste, was passiert, ist, dass die Clients in den neuen Cluster wechseln, weil dies der fehlerfreie Cluster ist, dies ist der Master-Cluster. Sobald die Clients hierher gezogen sind, gibt dieser Cluster jetzt seine Daten auf und im Wesentlichen können Sie sehen, wie er neu gestartet wird. Obwohl er nicht neu startet, gibt er nur seine Daten auf und tritt diesem Cluster als fehlerfreier Knoten wieder bei.

Als Ergebnis haben Sie jetzt einen Fünf-Knoten-Cluster, der eine Zusammenführung von Teil eins und Teil zwei ist. Nachdem dies erledigt ist, geht es zum nächstgrößten Split und verschmilzt diesen mit diesem. In unserem Fall hatten wir jetzt nur drei Splits, aber Sie könnten mehr als drei haben, und der Algorithmus ist, dass Sie mit dem größten beginnen und es mit dem nächstgrößten und dem nächstgrößten und so und so zusammenführen. Sie durchlaufen also so viele Iterationen wie nötig, aber zu jedem Zeitpunkt werden nur zwei Splits zusammengeführt. Während also diese beiden Splits zusammengeführt werden, wird der dritte Split als unabhängig angesehen, er wird seine Operationen fortsetzen, bis der Split zusammengeführt wird, und jetzt wird diese Zusammenführung stattfinden.

Und wenn es eine vierte Aufteilung gäbe, würde diese auch nach dieser zusammengeführt werden. Bitte beachten Sie bei diesem Vorgang, dass je nachdem, wie viele Knoten ihre Daten verlieren oder aufgeben mussten, Daten verloren gehen. So werden zum Beispiel in diesem Fall drei Nodes Master, die anderen drei verlieren ihre Daten. Selbst in einer Partitionsreplikattopologie haben Sie nur eine Reproduktion pro Partition. Sie werden also Daten verlieren und das ist nur der Teil dieser Situation. Der andere Teil dieser Realität ist jedoch, dass diese Daten bereits kommen, wenn es sich um eine Daten-Caching-Situation handelt. Diese existiert bereits in der Datenbank. Die Daten gehen also nicht verloren, Sie müssen sie nur neu aus der Datenbank laden. Sie könnten es basierend auf den Hit-and-Miss-Vorgängen Ihrer Anwendung neu laden. Sie können es auch basierend auf dem Durchlesen neu laden. Sie können es auch basierend auf der Cache-Refresher-Funktion von neu laden NCache aber so oder so gehen die Daten nicht verloren.

Wenn die Daten jedoch eher ein Sitzungsstatus waren, andere vorübergehende Daten, die nicht in einem permanenten Speicher vorhanden waren, dann sind diese Daten verloren. In diesem Fall müssen Sie diese Sitzungen also neu erstellen. Aber trotz dieses Datenverlusts ist die Situation immer noch besser, weil Sie schließlich einen Netzwerkausfall hatten. Das hat also Konsequenzen.

In der nächsten Version von NCache, werden wir eine Persistenzfunktion bereitstellen, mit der Sie den Cache beibehalten können. Und ein persistenter Cache bedeutet, dass alles, was sich im Cache befand, in seinem eigenen aufbewahrt wird. NCache's eigenen Persistenzspeicher und auf diese Weise in einer Split-Brain-Wiederherstellung verlieren Sie nicht einmal die vorübergehenden Daten, weil NCache bewahrt eine Kopie davon in einem dauerhaften Speicher auf. Aber ich werde darauf eingehen, wenn diese Funktion veröffentlicht wird. Also, an dieser Stelle werde ich nur darüber sprechen.

Hands-on-Demo

Ich hoffe, ich habe diese Architektur erklärt. Jetzt werde ich Ihnen tatsächlich eine Demo geben, wie Sie dies genau tun können NCache. Ich habe also ein Beispiel, in dem ich fünf Cache-Server habe und eine Aufteilung zwischen dieser und dieser Liste erstellen werde.

Cluster-Split-IPs

Ich werde nur diese beiden Splits erstellen. Split eins enthält diese beiden Cache-Server und Split zwei enthält diese beiden Cache-Server. Und ich habe einen Windows-Client, den ich verwenden werde, an dem ich gerade sitze und den ich für die Verwaltung und Überwachung verwenden werde. Und ich habe einen Linux-Client, für den ich zwei Regale offen habe. Ich kann also zwei separate Client-Anwendungen von dort aus starten. Also, ich habe diesen Cluster gerade am Laufen. Ich werde Ihnen nicht zeigen, wie Sie diesen Cluster hinzufügen, da es andere Videos gibt, die Ihnen zeigen, wie das geht. Ich werde Ihnen nur den Split-Brain-Teil davon zeigen.

Überwachen Sie Cluster-Zustand und -Statistiken

Hier habe ich also einen Fünf-Knoten-Cluster. Ich habe einen Fünf-Knoten-Cluster. Ich habe also einen Fünf-Knoten-Cluster, der genau hier ist und ausgeführt wird. Okay, und ich werde fortfahren und die Statistik öffnen und ich werde auch ihren Monitor öffnen. Also, was ich getan habe, ist, dass ich zwei verschiedene geöffnet habe NCache Manager-Fenster. Einer ist mit der .97 verbunden, die genau hier ist, und einer ist mit der .82 genau hier verbunden. Also, dieser hier ist .97, den ich als eigentlichen Manager habe. Ich habe den Monitor und ich habe die Statistiken. Und die zweite ist die .82 und ich werde das noch einmal machen. Es ist derselbe Cluster, aber ich spreche nur mit einem anderen Server für die Verwaltung. Ich spreche von diesem Server im Vergleich zu diesem hier. Und hier werde ich wieder Statistiken machen. So kann ich die Aktivität sehen. Derzeit gibt es keine Aktivität, da noch keine Clients ausgeführt werden. Und ich werde auch den Monitor öffnen.

Demo-Cache

Also, warum habe ich zwei davon geöffnet? Denn ich möchte überwachen, ich möchte mich mit diesem Knoten verbinden und ich möchte mich mit diesem Knoten verbinden. Also, wenn ich die Teilung mache, kann ich sehen. Denn wenn ich nur damit verbunden bin, wenn eine Teilung auftritt, zeigt es nur, dass ich nur noch zwei Server habe und diese nicht sehen kann. Ich möchte das also aus beiden Perspektiven sehen. Weil ich die Aufteilung durch eine Firewall-Regel einführen werde, werden Sie in Ihrem Fall natürlich keine Firewall-Regel haben. Sie werden eine Art Netzwerkausfall haben. Also werde ich das durch eine Firewall-Regel einführen oder simulieren. Ich bin jetzt also mit diesem Knoten zur Verwaltung und Überwachung und mit diesem Knoten zur Verwaltung und Überwachung verbunden. Und ich werde jetzt hierher kommen und ich werde… oh nein, noch nicht.

Ich werde diese Befehlszeile auch verwenden, um Get-Caches-Server aufzurufen, und ich werde hier mit .82 sprechen.

Befehlszeile-82

Ich werde mit 82 sprechen und sagen, geben Sie mir die Details aller Caches, die Sie haben. .82 sagt also, ich habe einen Cache namens Democache, in dem ich fünf Server habe; 82, 102, 122, 97 und 117. Ein Fünf-Server-Cluster, was daran liegt, dass es derzeit keine Aufteilung gibt.

Ich gehe zum anderen Server, dem 97.

Befehlszeile-97

Ich werde es das gleiche fragen. Ich sagte, gib mir deinen Server. Es sagt alles okay, ich habe einen Cache mit fünf Servern; 82, 102, 122, 97 und 117, derzeit. Es ist also ein Cluster mit fünf Servern, kein Split, alles ist in Ordnung.

Simulieren Sie Stress mit dem Powershell-Cmdlet Test-Stress

Alles funktioniert gut. Ich werde jetzt die Anwendung starten. Ich habe ein PowerShell-Fenster. Eigentlich ist das hier eine Linux-Box. Ich werde Ihnen zeigen, was hier passiert ist. Komm schon! Ich werde PowerShell einfach wieder öffnen. Entschuldigen Sie. Ich werde nur dieses Modul importieren, das die NCache Verwaltungsmodul. Das musst du nur unter Linux machen. Sie müssen dies nicht unter Windows importieren. Dann sage ich Test-Stress Democache. Okay. Also, jetzt habe ich dieses Tool ausgeführt. Ich werde das gleiche hier tun.

Test-Stress-Demo-Cache

Ich werde Test-Stress Democache sagen. Ich habe diese beiden. Jetzt pass auf, ich habe Aktivitäten im Gange. Ich habe Aktivität auf allen fünf Knoten, wie Sie hier sehen können, eins zwei drei vier fünf. Auf allen fünf Knoten habe ich Aktivität im Gange. Genau hier kann ich das sehen. Hier auch. Ich habe fünf Knoten. Ich spreche wieder von 97, das ist jetzt 97.

97-Port-before-Split

Mal sehen, ob ich das auch hier sehe. Also gehe ich zu .82 und sehe, dass fünf Knoten aktiv sind. Das Statistikfenster zeigt auch Aktivität an.

82-Port-before-Split

Okay! Also, alles funktioniert gut. Normalerweise würde ich diesen und den Cache-Manager-Monitor nicht auf zwei verschiedenen Servern öffnen. Der Grund, warum ich eröffne, ist, dass ich die Trennung zeigen muss, und wenn die Trennung stattfindet, muss ich Ihnen von beiden Seiten der Trennung zeigen, was passiert.

Induzieren einer Netzwerktrennung

Okay! Jetzt wo ich alles am Laufen habe. Ich werde jetzt fortfahren und vorstellen. Was ich also tun werde, ist, auf diesen beiden Boxen die Firewall-Regel zu verwenden. Also werde ich hier eine Firewall verwenden. Ich verwende hier eine Firewall. Also, ich habe diese beiden Regeln bereits eingerichtet. Also, ich werde mich anmelden. Ich bin hier bei 97 angemeldet. Ich habe hier eine Regel. Ich werde zu dem gehen, sagen wir, ich habe eine eingehende Regel. Es ist NCache, ich habe gerade angerufen NCache geteiltes Gehirn. Diese Regel besagt, dass die Verbindung auf den Ports 78 bis 7900 blockiert werden soll, das ist der Cache.

Inbound-Rule-Split-Brain

NCache startet für jeden Cache einen separaten Prozess. Dieser Cache-Prozess verwendet also standardmäßig den Port 7800 bis 7900. Obwohl es konfigurierbar ist. Möglicherweise verwenden Sie also einen anderen Port. In diesem Fall müssen Sie diese blockieren, wenn Sie dies simulieren möchten. Und Port 8250 ist der Management-Port.

Einstellungsbereich

Scope sagt Block für 82, 102, 122. Also, ich sage hier, blockiere diese drei Boxen für den Zugriff auf dich, das ist im Grunde das, was es sagt.

Also, ich habe diesen Port. Ich werde Regel aktivieren sagen, und ich habe denselben Port für eine ausgehende Regel. Es ist ein... Also, es blockiert nach außen. Und jetzt gehe ich zum 117 und blockiere das auch. Ich komme zu 117. Auch hier habe ich einen Inbound. Das selbe hier. Blockverbindung, Ports, 78 79, Geltungsbereich, alle diese drei Boxen. Okay. Also werde ich sagen Regel aktivieren. Das ist aktiviert. Ich werde zu dem anderen gehen, ich werde sagen, dass Sie hier die Regel aktivieren.

Aktivierungs-Firewall-Regel

Okay, was ich jetzt getan habe, ich habe die Firewall bei all diesen eingeschaltet.

Bildung von zwei Unterclustern

Also, jetzt wird die Trennung beginnen. Obwohl es nicht sofort passieren wird und ich das sehen kann, indem ich zuerst 82 frage, was das ist, wie viele Server haben Sie im Cache? Es sagt ok! Ich habe 82, 102, 122, 97, 117. Also hat es immer noch alle fünf, weil die Trennung noch nicht stattgefunden hat. Es durchläuft immer noch die Wiederholungen und all das andere Zeug. Ich werde den anderen fragen, wie viele Server Sie haben? Es hat immer noch eins, zwei, drei, vier, fünf. Es ist also noch keine Aufteilung erfolgt, da es immer noch zu Wiederholungen und Zeitüberschreitungen kommt. Aber die Trennung steht kurz bevor.

Ich werde hierher kommen und sehen, ob es anfängt, einige Haltestellen zu sehen. Ich spreche hier also mit 97, 97 ist die Zwei-Knoten-Clusterseite.

Split-begann-aufzutreten-am-97

Also, 97 sagt mir, dass es nur sieht … Also, es sieht nicht 102, 182, 82, das sagt, dass diese gestoppt sind, sondern 97 und 117 laufen prima. Okay! Mal sehen, was die andere Seite zeigt. Die andere Seite der Spaltung, die diese andere Seite war. Also, ich habe mit 97 gesprochen, jetzt werde ich mit 82 sprechen, wie Sie sehen können, das ist die 82, genau hier ist die 82. IP-Adresse ... es sagt Okay! Sagen 102, 122. Also, es heißt, 122 ist teilweise verbunden und 82 ist vollständig verbunden.

Split-begann-aufzutreten-am-82

Es durchläuft immer noch diese Erholung. Es durchläuft immer noch diese Wiederholungsphase, in der 122 nicht in der Lage ist, mit einigen der anderen Knoten zu sprechen, aber es wird weitergehen, und was passieren wird, ist, ich werde es Ihnen schnell zeigen ...

Hier gibt es also eine Funktion, von der ich Ihnen im Cluster erzählt habe: Wenn ein teilweise verbundener Knoten vorhanden ist, wird dieser teilweise verbundene oder teilweise verbundene Knoten aus dem Cluster entfernt, um einen fehlerfreien Cluster zu erstellen. Das, was gerade passiert, ist, dass es diesen anderen Cluster entfernt, diesen anderen Knoten, der ein teilweise verbundener Knoten ist. Lassen Sie uns jetzt noch einmal hierher kommen und sehen, was die Befehlszeile sagt. Ich spreche mit 82, was, wie gesagt, das Drei-Knoten-Cluster ist. Also, es sollte ... Mal sehen, wie viele es hat? Hoppla, hier steht 82, es hat eins, zwei, drei, vier. Also hat es vier. Es hat noch keine fünf. Es hat vier. Es geht immer noch durch die… es wird die Knoten gewaltsam so entfernen, wie sie sind, und jetzt gehe ich zu 97, was genau hier ist, und ich werde sagen, okay, wie viele Server haben Sie? Und 97 hat nur zwei.

97 hat also bereits festgestellt, dass es die anderen drei nicht sehen kann. Also denkt er, dass ich der einzige Cluster hier bin. Es weiß nicht, dass es eine Trennung gibt, denn wie gesagt, nur die Trennung, NCache weiß erst dann von einer Trennung, wenn diese Verbindung wiederhergestellt ist. Im Moment denkt es also nur, dass die anderen Knoten gestorben sind. Also, und es sagt, okay, ich werde mit diesen beiden Knoten mit mir selbst fortfahren. Und lassen Sie mich zu dem anderen hier gehen. Mal sehen, was es hat. Oh, in Ordnung! Jetzt hat es auch noch drei übrig. Es ist also durchgegangen und hat dies auch getan. Es hat den teilweise getrennten Knoten entfernt, um nun einen fehlerfreien Cluster zu erreichen. Aber es ist ein Cluster aus nur drei Knoten, richtig?

split-aufgetreten-auf-beiden-servern

Also habe ich hier mit Server .82 gesprochen, der genau hier ist. Ich habe ihn gefragt, wie viele Server Sie in Ihrem Cache haben, er sagt nur drei. Ich habe 97 gefragt, wie viele Server Sie in Ihrem Cache haben, es sagt nur zwei.

Okay! Es hat also eine Trennung stattgefunden. Als Teil der Aufteilung werden Sie sehen, dass die Anwendung bisher keine Ausnahmen ausgelöst hat. Das bedeutet, dass die Trennung ohne Datenverlust erfolgt ist. Dies könnte wahrscheinlich daran liegen, dass die Anwendung nicht aufgetreten ist, aber in einigen Fällen werden Sie auf einige Ausnahmen stoßen.

Split-Brain-Erkennung und Wiederherstellung bei Netzwerkwiederherstellung

Okay! Nun, der nächste Schritt, den ich tun werde, ist, weiterzumachen und das Split-Brain einzutreten. Also, ich möchte jetzt die Verbindung wiederherstellen, damit Split-Brain erkannt wird und eine Wiederherstellung gestartet wird. Aber bevor ich das tue, werde ich Ihnen zeigen, dass ich in meiner Cache-Konfiguration die automatische Wiederherstellung bereits aktiviert habe, wenn ich zu den Cluster-Einstellungen gehe, was das erste Thema hier ist, wenn ich ganz nach unten gehe geteiltes Gehirn.

Auto-Recover-Split-Brain

Also, wenn Sie die automatische Wiederherstellung aktivieren, bedeutet das NCache wird sich automatisch von einem Split Brain erholen, sobald es das Split Brain erkennt. Und wie ich bereits erwähnt habe, erkennt es das Split-Brain, wenn die Verbindung wiederhergestellt ist.

Gehen wir also jetzt zurück zu 97 und hier und schalten Sie diese Firewall aus. Und ich werde zuerst 97 machen. Ich komme hierher und sage: Deaktiviere diese Regel und ich komme hierher und sage: Deaktiviere diese Regel.

deaktivieren-firewall-97

Okay! Das habe ich getan, jetzt komme ich hierher zu 117 und ich werde sagen, lasst uns die Regel auch hier deaktivieren. Deaktivieren Sie die Regel. Deaktivieren Sie die Regel. Okay! Jetzt habe ich die Regeln deaktiviert. Diese Firewall ist also ausgeschaltet, was bedeutet, dass sie sich jetzt sehen können oder ziemlich bald sehen können. Es wird nicht sofort passieren, aber sie werden sich sehen können. Und wie man sieht…

Also, ich werde tatsächlich noch einmal hierher kommen und sagen, zeig mir deinen Cache. Ich bin wieder, ich werde das vor mir behalten und ich werde sagen, sicher, dass ich gerade mit 82 spreche, und ich sage, zeig mir deine Caches, 82 sagt, ich habe 82, 102, 122. So, so Bisher hat es noch drei Caches. Es sieht die anderen beiden nicht. Ich werde zu dem anderen gehen und ich werde sagen, zeig mir deine Caches. Es sagt 97 und 117. Bisher hat die Split-Brain-Recovery nicht eingesetzt, aber sie wird es tun. Das wird es, weil es ein wenig Zeit braucht, bis die Wiederholungsversuche stattfinden. Wie Sie hier sehen können, sehe ich bereits eins zwei drei vier fünf Server. Und hier eins zwei drei vier fünf Server.

split-brain-recovery-erfolgreich-in-ncache-Manager

Aber ich werde mich wieder auf mein gutes altes Befehlszeilen-PowerShell-Tool verlassen, um es mir zu sagen. Ich werde das tun, um Caches anzurufen. Ich werde mit 82 sprechen und sagen, zeigen Sie mir, wie viele Server Sie haben. Es hat immer noch eins zwei drei. Und ich sage, zeigen Sie mir, wie viele Server Sie hier haben. Es hat immer noch eins zwei. Also wieder eins zwei und eins zwei drei. Es bestand also keine Verbindung. Das Split-Brain wurde also noch nicht wiederhergestellt. Und deshalb wird es immer noch teilweise verbunden, teilweise verbunden, und die Clients arbeiten weiter.

Okay! lass mich wieder gehen. Machen wir noch eins. Es ist immer noch nicht fertig. Okay! Gehe hier hin. 97.. Komm schon! Okay! Jetzt beginnt es, den anderen Knoten zu sehen. 82, 102, 122 und auch 97 genau hier. Aber es ist immer noch teilweise. Es muss zwei davon sehen, und Sie sollten sowohl die Partition als auch die Replik sehen, und deshalb ist es wahrscheinlich noch nicht in der Lage, mit 97 zu sprechen, weil ... Okay! Nun, 82, 102, 122, 97, wieder fünf Knoten werden hier wiederhergestellt. Alle fünf.

5-Server-wiederhergestellt-Powershell-82-Port

Lassen Sie mich zu diesem gehen. Dieses. Irgendwie … Komm schon! Ich werde es hier ändern. Statt 82 sage ich hier also 97. Mach das jetzt. Ich werde sehen, dass 97 mir auch fünf Knoten anzeigt, eins zwei drei vier fünf. Okay. Alle fünf Knoten werden also wieder verbunden.

5-Server-wiederhergestellt-Powershell-97-Port

Ich werde hierher kommen. Lassen Sie mich diesen Monitor einfach neu starten. Ich werde wieder hierher kommen. Dieser Cache, ich sage Statistik. Ich sehe, dass alle fünf arbeiten und die Kunden mit ihnen sprechen. Auch hier bedeutet die Tatsache, dass der Client mit allen fünf spricht, dass die Client-Verbindungen ebenfalls automatisch wiederhergestellt werden. Und der Monitor wird mir auch hier alle fünf zeigen. Wie Sie also sehen können, sind alle fünf Knoten vollständig verbunden.

Statistikfenster-zeigt-alle-5-verbunden-für-97

Okay! Nun lass mich hier zum anderen kommen. Bin ich zum anderen gegangen? Dieses. Okay! Ich sage okay Statistik. Alle fünf sind hier, ich spreche mit allen fünf, wie Sie sehen können, finden auf allen Aktivitäten statt, und ich werde sagen, beobachten Sie, dass alle fünf hier stattfinden.

Statistikfenster-zeigt-alle-5-verbunden-für-82

Zusammenfassung

Also gingen wir von einem gesunden Cluster zu einem Split zu einem gesunden Cluster über. Und wir können auch hier sehen, dass wir einen Fünf-Knoten-Cluster haben. Das ist also so ziemlich das Ende dieser Demo. Bitte gehen Sie voran und spielen Sie mit NCache und sehen Sie, dass Sie mit der Split-Brain-Wiederherstellung diese zusätzliche Fähigkeit der Hochverfügbarkeit haben.

Was macht man als nächstes?

 
© Copyright Alachisoft 2002 - Alle Rechte vorbehalten NCache ist eine eingetragene Marke der Diyatech Corp.