DE112010003372T5 - Paketspiegelung zwischen primären und sekundären virtualisierten Software-Abbildern für verbesserte Systemausfallumschaltungsleistung - Google Patents

Paketspiegelung zwischen primären und sekundären virtualisierten Software-Abbildern für verbesserte Systemausfallumschaltungsleistung Download PDF

Info

Publication number
DE112010003372T5
DE112010003372T5 DE112010003372T DE112010003372T DE112010003372T5 DE 112010003372 T5 DE112010003372 T5 DE 112010003372T5 DE 112010003372 T DE112010003372 T DE 112010003372T DE 112010003372 T DE112010003372 T DE 112010003372T DE 112010003372 T5 DE112010003372 T5 DE 112010003372T5
Authority
DE
Germany
Prior art keywords
standby
primary
commit
state
active
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112010003372T
Other languages
English (en)
Inventor
Lee Hyoungjoo
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Avaya Inc
Original Assignee
Avaya Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Avaya Inc filed Critical Avaya Inc
Publication of DE112010003372T5 publication Critical patent/DE112010003372T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2038Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/02Standardisation; Integration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2048Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share neither address space nor persistent storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Retry When Errors Occur (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Es ergibt sich ein Paketverlust bei dem Bereitschaftsserver während der Ausfallumschaltung, wenn das Primäre ausfällt. Es gibt gegenwärtig immer eine gewisse Menge an bedeutsamem Paketverkehr, der bei dem Primären ankommt, der während des Ausfallumschaltungszeitraums verlorengeht. Bei den vorhandenen Lösungen ist dieser Paketverlust während der Ausfallumschaltung unvermeidlich. Das Problem ist, dass, wenn diese Informationen verlorengehen, die Bereitschaft den Zustand des letzten Commits hat, so dass die Bereitschaft die Zustandsinformationen haben wird, die alt sind und den Systemzustand darstellen, der genau nur dem Systemzustand zum Zeitpunkt des letzten Commits entspricht. Eine Lösung ist ein Verfahren, bei dem alle ankommenden Datenpakete, die darauf gerichtet sind, an eine primäre Software-Anwendung, wie beispielsweise eine virtualisierte Software-Anwendung, übermittelt zu werden, die in einer primären virtuellen Maschine läuft, fortlaufend überwacht und durch ein Netz-Replikationsgerät kopiert werden, für eine gleichzeitige Übermittlung an ein Sicherungsabbild der Software-Anwendung, das auf einem Bereitschaftssystem läuft.

Description

  • TECHNOLOGISCHES GEBIET
  • Ein beispielhafter Aspekt ist auf eine Verbesserung der System-Ausfallumschaltungsleistung gerichtet. Insbesondere ist ein beispielhafter Aspekt auf eine Verbesserung der System-Ausfallumschaltungsleistung in Software-Umgebungen mit Hochverfügbarkeit (High Availability – HA) gerichtet.
  • ALLGEMEINER STAND DER TECHNIK
  • Die Replikation von Software-Anwendungen unter Verwendung von Virtual-Machine-(VM-)Plattformen und -Technologien auf dem neuesten Stand der Technik ist eine sehr leistungsstarke und flexible Weise, Hochverfügbarkeitsgarantien für Anwender von Software-Anwendungen bereitzustellen. Anwendungsanbieter können Nutzen aus der VM-Technologie ziehen, um Zuverlässigkeit in ihre Lösungen einzubauen, durch das Erzeugen von mehreren Abbildern (oder Kopien) der Software-Anwendung, die gleichzeitig, aber unabhängig voneinander, laufen. Diese Abbilder können auf dem gleichen physischen Gerät, z. B. einem Allzweck-Anwendungsserver, oder innerhalb von mehreren, entkoppelten VM-Containern laufen, oder sie können über mehrere physische Rechner in entkoppelten VM-Containern entwickelt werden. Es gibt mehrere VM-Replikationsschemen, aber im Allgemeinen haben VM-Lösungen ein primäres Software-Abbild, das Software-Dienste für Anwender liefert, und dann ein sekundäres oder tertiäres Sicherungsabbild auf einem Bereitschaftsserver, das im Fall eines Ausfalls für das primäre übernehmen kann. Die Sicherungsabbilder werden im Allgemeinen in diskreten Zeitabständen synchronisiert, um die Datenstrukturen und die Datenbank der Sicherungsserver zu aktualisieren, um Veränderungen nachzuvollziehen, die seit dem letzten Zeitpunkt, an dem die Datensynchronisierungsaktualisierung stattfand, stattgefunden haben. Die Synchronisierung wird als „Commit” bezeichnet, und diese Lösungen gewährleisten für einen Software-Anwendungsanbieter drastische Verbesserungen bei der Fähigkeit, zu garantieren, dass seine Anwender einen zuverlässigen Zugang zu den Software-Anwendungsdiensten erhalten werden.
  • In Hochverfügbarkeitsumgebungen arbeiten ein primäres (aktives) und ein sekundäres (passives) System zusammen, um eine Zustandssynchronisierung sicherzustellen, entweder in engem Gleichschritt, wie beispielsweise fehlertolerante Tandem- und Stratus-Systeme, oder in loser Gleichschritt, wie beispielsweise weniger teure Cluster. Immer wenn es auf einer Ebene des Systems eine Zustandsveränderung gibt, sendet das Primäre den kurz gefassten Zustand an das Sekundäre, das seinen Zustand unter Verwendung des kurz gefassten Zustandes abstimmt, um sich mit dem Primären zu synchronisieren. Wenn das Primäre ausfällt, bevor es dazu in der Lage ist, irgendwelche Informationen zu übermitteln, die es seit der letzten Fixpunkt-Operation gesammelt hat, werden diese Informationen üblicherweise, auf der Grundlage des Datums, zu dem sie empfangen werden, lokal durch das Sekundäre wiedergegeben, und es versucht, sich selbst zu synchronisieren, bevor es als Primäres übernimmt.
  • ZUSAMMENFASSUNG
  • Es gibt jedoch ein kritisches Problem bei der VM-Replikation von Software-Anwendungen, das nach einer Lösung verlangt. Das Problem ist der Paketverlust bei dem Bereitschaftsserver während der Ausfallumschaltung, der sich ergibt, wenn das Primäre ausfällt. Es gibt gegenwärtig immer eine gewisse Menge an bedeutsamem Paketverkehr, der bei dem Primären ankommt, der während des Ausfallumschaltungszeitraums verlorengeht. Bei den vorhandenen Lösungen ist dieser Paketverlust während der Ausfallumschaltung unvermeidlich. Das Problem ist, dass, wenn diese Informationen verlorengehen, die Bereitschaft den Zustand des letzten Commits hat, so dass die Bereitschaft die Zustandsinformationen haben wird, die alt sind und den Systemzustand darstellen, der genau nur dem Systemzustand zum Zeitpunkt des letzten Commits entspricht.
  • Ein vorhandenes Beispiel für einen Versuch, dieses Problem zu überwinden, ist Link Bouncing. Remus (http://people.cs.ubc.ca/~brendan/papers/remus-nsdi08.pdf) versuchte, das gleiche Problem durch das Puffern der abgehenden Pakete in einem aktiven Puffer zu lösen. Jedoch leidet die Umsetzung von Remus unter einem großen Leistungshandicap, so dass sie in den meisten Produktionssoftware-Umgebungen nicht verwendbar ist. Bei Remus ist die Hauptursache des Leistungshandicaps, dass die Übertragung der Netzpakete, die dem Verlorengehen ausgesetzt sind, bis zu dem nächsten Fixpunkt/Commit verzögert wird.
  • Geschichtlich ist die Ausgangspraxis für eine Ausfallumschaltung mit Daten die Verwendung von Fixpunktintervallen, während derer die Daten auf den Sicherungsservern auf den aktuellen Stand gebracht werden. Jedoch verlieren, wie oben erörtert, die verfügbaren Lösungen entweder Daten während der Ausfallumschaltung oder, im besten Fall, falls sie ankommende Daten während der Ausfallumschaltung puffern, leiden sie unter einem enormen Leistungshandicap.
  • Nach einem Ausführungsbeispiel wird ein System oder ein Mechanismus konstruiert, das/der ein Verfahren umsetzt, bei dem alle ankommenden Datennetzpakete, die darauf gerichtet sind, an ein(e) primäre(s) Software-Anwendung oder -System, wie beispielsweise eine virtualisierte Software-Anwendung, die in einer primären virtuellen Maschine (VM) läuft, übermittelt zu werden, fortlaufend durch ein Netzreplikationsgerät oder einen -treiber (Network Replication Device or driver – NRD) überwacht und aufgespalten oder kopiert werden, für eine gleichzeitige Übermittlung an ein Sicherungsabbild der Software-Anwendung, das auf einem Bereitschaftssystem oder einer VM läuft. Diese Daten werden durch das NRD in Echtzeit oder nahezu Echtzeit aufgespalten oder kopiert und an das Bereitschaftsanwendungsabbild übermittelt, mit dem Ziel, eine verringerte oder keine Anwendungsausfallzeit zu erreichen. Ein zweiter beispielhafter Nutzen des NRD ist seine Fähigkeit, eine verringerte oder keine Anwendungsleistungsverschlechterung im Ergebnis des Paketverlustes während eines Ausfallumschaltungsereignisses zu ermöglichen. Ein Ausführungsbeispiel geht davon aus, dass die/das VM-Plattform/-System, worauf die Technologie angewendet werden wird, aktuelle Fixpunkt-Commit- und Störungserkennungsmechanismen „nach dem neuesten Stand der Technik” einschließt.
  • Wenn (ein) Fixpunkt-Commit- und Störungserkennungssystem(e) vorhanden ist/sind, kann die grundlegende Logik für die NRD-Netzreplikationstechniken als ein Netzreplikationstreiber umgesetzt werden, der vollständig in Hardware und/oder in Software, die koresident auf dem Server oder den Servern läuft, welche(r) die Software-Anwendungsabbilder und VMs hostet/hosten, umgesetzt wird. Alternativ dazu und vielleicht in einer anderen beispielhaften Umsetzung, könnte das NRD als (ein) selbständige(s) „Bump-in-the-Wire”-eingebettetes Datenverarbeitungsgerät(e) umgesetzt werden, das/die physisch unabhängig von dem Server oder den Servern, welche(r) die VM-Software-Anwendungsabbilder hostet/hosten, gespeist und eingesetzt wird/werden. In dem Obermengenfall von primären und sekundären physischen Servern, die primäre und sekundäre virtualisierte Abbilder der Software-Anwendung hosten, könnte ein Ausführungsbeispiel ebenfalls ein primäres (aktives) und ein sekundäres (Bereitschafts-)NRD einschließen.
  • Das NRD kann in dem/der aktiven und/oder dem/der Bereitschaftsserver oder -anwendung oder an einer anderen Position in dem Netz laufen. Nach einem Ausführungsbeispiel wird das aktive NRD die Pakete, die an der VM ankommen, kopieren, die Zieladresse zu einem Bereitschaftsziel verändern und die Pakete zu dem Bereitschaftsserverdienst weiterleiten. Bei diesem Ausführungsbeispiel könnte das Bereitschaftsziel eine DOM0-(Domäne-Null-)Position sein, wobei das System in einer Hypervisor-Umgebung umgesetzt wird. Jedoch könnte sich diese Position im Allgemeinen irgendwo innerhalb des Systems befinden. Das Bereitschafts-NRD wird die Pakete wie folgt Puffern:
    • – Beim Fixpunkt-Commit wird das Bereitschafts-NRD die Puffernetzpakete bis hin zu dem Commit löschen.
    • – Bei der Störungserkennung wird das Bereitschafts-NRD das Pufferpaket an das vor kurzem als virtuelle Maschine aktivierte Bereitschaftsgerät übermitteln.
  • Ein Ausführungsbeispiel verwendet einen Satz von entkoppelten, Bump-in-the-Wire-Puffergeräten, wobei die Funktionsweise konzeptionell identisch ist. Bei der Umsetzung jedoch werden die Pakete vor der Ankunft an dem primären Server, der die primäre VM laufen lässt, durch das primäre „Bump”-Gerät abgefangen. Danach werden sie zu dem sekundären Bump-in-the-Wire abgespalten, für das Puffern für das Sicherungs-/Bereitschaftssoftware-Abbild im Fall eines Ausfalls.
  • Bei der Bump-in-the-Wire-Umsetzung könnten, wenn das Primäre ausfällt, selbst wenn es ein katastrophaler Hardware-Ausfall ist, die Bump-Geräte sicherstellen, dass keines der ankommenden Pakete für das Primäre verlorengeht. Bei einem Ausfall könnte dann das sekundäre Abbild eingeleitet werden und beginnen, den Verkehr zu handhaben, mit der Fähigkeit den Zustand des Primären vollständig wiederherzustellen, weil keine ankommenden Pakete für das Primäre verlorengingen. Zusätzlich wird keine Leistung geopfert, weil die Bump-Geräte nicht auf das Spiegeln der Daten nur zu diskreten, Fixpunkt-Commit-Intervallen begrenzt sind. Als Teil dieses Szenarios könnten der sekundäre Bump und der primäre Bump bei einer Ausfallumschaltung die Rollen wechseln, von dem primären Bump zu dem sekundären und umgekehrt. Der sekundäre Bump, der nach dem Ausfall wie ein primärer agiert, könnte beginnen, Daten dorthin zu spiegeln, wo vorher der primäre Bump war, der nun die Rolle des sekundären spielt.
  • Inzwischen kann der primäre Server, der ausfiel, ersetzt und neu gestartet werden, während die beiden Bump-Geräte ihren ununterbrochenen Betrieb fortsetzen. Sobald der primäre Server ersetzt/neu gestartet ist, kann das System nun ein Wiederherstellungs-„Rücktausch” vornehmen, wobei der „Bereitschafts”-Server ein Commit von Zustand, Verkehr und Ownership-Session-Operationen zurück zu dem ersetzten/neu gestarteten „primären” Server vornimmt. Dies wäre wieder möglich, ohne irgendeine(n) Zustand oder Verfügbarkeit zu verlieren, wobei wieder die zwei physisch gesonderten Bump-Geräte wirksam eingesetzt werden.
  • Ein beispielhafter Vorteil dieser Herangehensweise gegenüber früheren Lösungen ist, dass sie es ermöglicht, dass eine virtualisierte Software-Anwendung mit mehreren Abbildern selbst angesichts eines katastrophalen Ausfalls der primären Hardware oder Software durchgehende und ununterbrochene Dienste für Anwender der Software-Anwendung bereitstellt.
  • Ein anderer beispielhafter Aspekt ist auf das Abkoppeln der Handhabung des ankommenden Verkehrs für ein virtualisiertes Software-Abbild von der primären Funktionsweise dieser virtualisierten Software-Anwendung gerichtet. Zusätzlich sind weitere interessante Aspekte in dem Gedanken zu finden, diese Verkehrshandhabung physisch zu einem Satz von unabhängig eingesetzten Bump-in-the-Wire-Geräten abzukoppeln, welche diese koordinierte Pufferungsoperation durchführen.
  • Ein anderes Ausführungsbeispiel ist auf eine Netzreplikation in einer VM-Umgebung, und insbesondere eine VM-Replikation, gerichtet. VM-Replikation, die in Puffer eines oder mehr von Netzinformationen, Anwendungsdaten und im Allgemeinen jegliche Art von Daten, Systemdaten usw. speichert, wird ein sehr beherrschender Weg für das Bereitstellen von hohem Zugang in virtualisierten Systemen. Es gibt jedoch ein großes Problem bei der VM-Replikation, und doch gibt es keine vollkommene Lösung. Das beispielhafte Problem ist der Paketverlust während der Ausfallumschaltung. Da es während der Ausfallumschaltung eine VM-Ausfallzeit gibt und die Bereitschaft typischerweise bei jedem Fixpunktintervall synchronisiert wird, ist ein Paketverlust während der Ausfallumschaltung unvermeidlich.
  • Daher ist es ein Ausführungsbeispiel, Netzpakete in Echtzeit bei (einem) Bereitschaftsserver(n) zu Puffern. Dies gewährleistet wenigstens eine beträchtliche Steigerung bei der Systemleistung. Diese Annahme ist jedoch darauf gegründet, dass das System mit Fixpunkt-Commit und Störungserkennung durch andere Mittel versehen ist.
  • Nach einem Ausführungsbeispiel kann die grundlegende Logik für die Netzreplikation als ein Netzreplikationstreiber umgesetzt werden. Das NRD kann in einem oder mehreren von dem aktiven und dem Bereitschaftsserver laufen und kann wahlweise an einer anderen Position innerhalb eines Kommunikations- oder Datenverarbeitungsnetzes angeordnet sein. Das aktive NRD wird die Pakete, die zu der VM kommen, kopieren, die Zieladresse zu einer Bereitschaftsadresse verändern und die Pakete zu dem Bereitschaftsgerät oder -server weiterleiten. Das Bereitschafts-NRD wird die Pakete Puffern und Folgendes tun:
    • – Beim Fixpunkt-Commit wird das Bereitschafts-NRD die gepufferten Netzpakete bis hin zu dem Fixpunkt löschen.
    • – Bei der Störungserkennung wird das Bereitschafts-NRD die gepufferten Pakete an die vor kurzem aktivierte virtuelle Maschine übermitteln.
  • Ein anderer Aspekt ist auf eine Technik gerichtet, wobei, anstatt abgehende Pakete zu Puffern, ankommende Netzpakete zu einer/m Bereitschaftsmaschine, -server, -gerät oder virtuellen Maschine kopiert werden. Einige der ankommenden Pakete erreichen während der Ausfallumschaltung unvermeidlich nicht die aktive Maschine, weil dieses Gerät zu dieser Zeit nicht vorhanden sein mag. Jedoch werden die Pakete in einem Puffer für die Bereitschaftsmaschine gesichert. Nachdem die Bereitschaftsmaschine übernimmt, können die gesicherten Netzpakete an die vor kurzem aktivierte Maschine oder virtuelle Maschinen zurückgespielt werden, so dass der Zustandsverlust auf Grund von Netzpaketverlust auf ein Minimum verringert wird.
  • Im Einzelnen tritt ein Zustandsverlust einer virtuellen Maschine auf die folgende Weise auf. Angenommen, es gibt nur eine Speicherreplikation der virtuellen Maschine durch Fixpunkt-Operation. Angenommen, zum Zeitpunkt T befindet sich das Aktive mitten in der N-ten Fixpunkt-Operation. Die Bereitschaft hat den Zustand des letzten Fixpunktes, der N – 1 ist. Während der N-ten Fixpunkt-Operation empfängt die aktive VM ein Paket, genannt „verlorenes Paket”, von einem dient, der dieses Paket quittiert, dann kommt sie irgendwie zum Stillstand, bevor sie das Commit für den aktuellen Fixpunkt durchführt. Dann wird die Bereitschaft von dem Zustand des letzten Fixpunktes N – 1 an übernehmen. Also hat die vor kurzem aktivierte VM nun das „verlorenes Paket” genannte Paket verloren. Nach einem Ausführungsbeispiel kann die Bereitschaft das verlorene Paket wiederherstellen durch das Wiedergeben oder Auslesen des Verlorenen Paketes, um den Zustand vor dem Ausfall wiederherzustellen.
  • In Hochverfügbarkeitsumgebungen arbeiten ein primäres (aktives) und ein sekundäres (passives) System zusammen, um eine Zustandssynchronisierung sicherzustellen, entweder in engem Gleichschritt, wie beispielsweise fehlertolerante Tandem- und Stratus-Systeme, oder in loser Gleichschritt, wie beispielsweise weniger teure Cluster. Immer wenn es auf einer Ebene des Systems eine Zustandsveränderung gibt, sendet das Primäre den kurz gefassten Zustand an das Sekundäre, das seinen Zustand unter Verwendung des kurz gefassten Zustandes abstimmt, um sich mit dem Primären zu synchronisieren. Wenn das Primäre ausfällt, bevor es dazu in der Lage ist, irgendwelche Informationen zu übermitteln, die es seit der letzten Fixpunkt-Operation gesammelt hat, werden diese Informationen üblicherweise, auf der Grundlage des Datums, zu dem sie empfangen werden, lokal durch das Sekundäre wiedergegeben, und es versucht, sich selbst mit dem Externen zu synchronisieren, bevor es als Primäres übernimmt. Es ist diese letztere Art von Nicht-Fixpunkt-Daten, die ein beispielhafter Aspekt der Technologie unmittelbar zu dem Sekundären repliziert, anstatt an den Daten festzuhalten und die Daten später von dem Primären aus zu senden, was zu zwei Nachteilen führt:
    Einer ist, dass es die Sendewarteschlange beherrscht, und zweitens verursacht es einen zusätzlichen Stillstand, wenn ein Fixpunkt von dem Primären aus gesendet wird; im Fall einer Hochverfügbarkeit in der Art von Remus führt es zu Speicherressourcenabzug von dem aktiven Primären während der Zeiten einer hohen Aktivität.
  • Folglich wird das Übernehmen des anfänglichen Mehraufwandes des frühzeitigen Aufspaltens der Netzdatagramme zu dem Sekundären aufgewogen durch die Vorteile der Vermeidung der oben aufgezählten Nachteile. Selbstverständlich werden, wenn eine Zustandsfixpunkt-Meldung von dem Primären ankommt, diese gepufferten Datagramme durch das Sekundäre verworfen, nachdem es in sich ein Commit für diesen Zustand durchgeführt hat.
  • Die hierin beschriebenen Techniken können in Abhängigkeit von der besonderen Konfiguration eine Anzahl von Vorteilen bereitstellen. Diese und andere Vorteile werden aus der hierin enthaltenen Offenbarung offensichtlich werden.
  • Die Wendungen „wenigstens ein”, „ein oder mehr” und „und/oder” sind offene Ausdrücke, die in der Funktion sowohl verbindend als auch trennend sind. Zum Beispiel bedeutet jeder der Ausdrücke „wenigstens eines von A, B und C”, „wenigstens eines von A, B oder C”, „eines oder mehrere von A, B und C”, „eines oder mehrere von A, B oder C” und „A, B und/oder C” A allein, B allein, C allein, A und B zusammen, A und C zusammen, B und C zusammen oder A, B und C zusammen.
  • Der Begriff „ein” oder „eine” Einheit bezieht sich auf eine oder mehrere dieser Einheit. Daher können die Begriffe „ein” (oder „eine”), „ein und mehr” und „wenigstens ein” hierin gegenseitig austauschbar verwendet werden. Es ist ebenfalls zu bemerken, dass die Begriffe „umfassend”, „einschließlich” und „aufweisend” gegenseitig austauschbar verwendet werden können.
  • Der Begriff „selbsttätig” und Variationen desselben, wie sie hierin verwendet werden, beziehen sich auf jeglichen Ablauf oder Arbeitsgang, der ohne wesentliche menschliche Eingabe, wenn der Ablauf oder Arbeitsgang durchgeführt wird, vorgenommen wird. Jedoch kann ein Ablauf oder Arbeitsgang selbsttätig sein, selbst wenn die Durchführung des Ablaufs oder Arbeitsgangs eine wesentliche oder unwesentliche menschliche Eingabe verwendet, falls die Eingabe vor der Durchführung des Ablaufs oder Arbeitsgangs empfangen wird. Eine menschliche Eingabe ist als wesentlich anzusehen, falls eine solche Eingabe beeinflusst, wie der Ablauf oder Arbeitsgang durchgeführt wird. Eine menschliche Eingabe, die der Durchführung des Ablaufs oder Arbeitsgangs zustimmt, ist nicht als „wesentlich” anzusehen.
  • Der Begriff „rechnerlesbares Medium”, wie er hierin verwendet wird, bezieht sich auf jegliches dingliche Speicher- oder Verteilungsmedium, das an der Bereitstellung von Anweisungen an einen Prozessor zur Ausführung beteiligt ist. Ein solches Medium kann viele Formen annehmen, einschließlich von nicht flüchtigen Medien, flüchtigen Medien und Übertragungsmedien, aber ohne darauf begrenzt zu sein. Nicht flüchtige Medien schließen zum Beispiel NVRAM oder Magnet- oder optische Platten ein. Flüchtige Medien schließen dynamischen Speicher, wie beispielsweise Hauptspeicher, ein. Gebräuchliche Formen von rechnerlesbaren Medien schließen zum Beispiel eine Floppy-Disk, eine flexible Diskette, Festplatte, Magnetband oder ein beliebiges anderes magnetisches Medium, magneto-optisches Medium, eine CD-ROM, ein beliebiges anderes optisches Medium, Lochkarten, Papierband, ein beliebiges anderes physikalisches Medium mit Mustern aus Lächern, einen RAM, einen PROM und EPROM, einen FLASH-EPROM, ein Festkörpermedium, wie eine Speicherkarte, eine(n) beliebige(n) andere(n) Speicherchip oder -kassette, eine Trägerwelle, wie sie im Folgenden beschrieben wird, oder ein beliebiges anderes Medium, von dem ein Rechner lesen kann, ein. Ein digitaler Dateianhang an E-Mail oder ein anderes in sich geschlossenes Informationsarchiv oder eine Menge von Archiven ist als ein Verteilungsmedium, äquivalent zu einem dinglichen Speichermedium, zu betrachten. Wenn die rechnerlesbaren Medien als eine Datenbank konfiguriert sind, versteht es sich, dass die Datenbank eine beliebige Art von Datenbank, wie beispielsweise relational, hierarchisch, objektorientiert und/oder dergleichen, sein kann.
  • Während mit denn vorliegenden System leitungs- oder paketvermittelte Arten von Kommunikationsverbindungen verwendet werden können, sind die hierin offenbarten Konzepte und Techniken auf andere Protokolle anwendbar.
  • Dementsprechend ist davon auszugehen, dass die Offenbarung ein dingliche Speichermedium oder Verteilungsmedium und vom Stand der Technik anerkannte Äquivalente und Nachfolgemedien einschließt, in denen die Software-Umsetzungen der vorliegenden Technologie gespeichert sind.
  • Die Begriffe „bestimmen”, „berechnen” und „ausrechnen” und Variationen derselben, wie sie hierin verwendet werden, werden gegenseitig austauschbar verwendet und schliefen jegliche Art von Methodologie, Verfahren, mathematischer Operation oder Technik ein.
  • Der Begriff „Modul”, wie er hierin verwendet wird, bezieht sich auf jegliche bekannte oder später entwickelte Hardware, Software, Firmware, künstliche Intelligenz, unscharfe Logik oder Kombination von Hardware und Software, die dazu in der Lage ist, die mit diesem Element verbundene Funktionalität zu leisten. Außerdem sollte, während die Technologie bezogen auf Beispiele beschrieben wird, zu erkennen sein, dass einzelne Aspekte der Technologie gesondert beansprucht werden können.
  • Das Vorstehende ist eine vereinfachte Zusammenfassung der Technologie, um ein Verständnis einiger Aspekte derselben zu gewährleisten. Diese Zusammenfassung ist weder eine umfassende noch eine vollständige Übersicht der Technologie und ihrer verschiedenen Ausführungsformen. Sie ist weder dafür vorgesehen, entscheidende oder wesentliche Elemente der Technologie zu identifizieren, noch dafür, den Rahmen der Technologie zu umreißen, sondern dafür, ausgewählte Konzepte der Technologie in einer vereinfachten Form als eine Einführung zu der weiter unten dargestellten ausführlicheren Beschreibung zu geben. Wie zu erkennen sein wird, sind unter Benutzung eines oder mehrerer der weiter oben dargelegten oder weiter unten ausführlich beschriebenen Merkmale, allein oder in Kombination, andere Ausführungsformen der Technologie möglich.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die vorliegende Offenbarung wird ausführlich beschrieben werden, unter Bezugnahme auf die folgenden Figuren, in denen:
  • 1 ein beispielhaftes Ausfallumschaltungssystem illustriert,
  • 2 bis 4 beispielhafte Zeitdiagramme illustrieren und
  • 5 ein beispielhaftes Verfahren des Betriebs des Ausfallumschaltungssystems illustriert.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Ein Ausführungsbeispiel der Technologie wird weiter unten in Bezug auf eine System-Ausfallumschaltungsumgebung beschrieben werden. Obwohl sie gut für eine Verwendung mit VMs geeignet sind, sind die beispielhaften Aspekte nicht auf eine Verwendung mit einer beliebigen bestimmten Art von Gerät oder von Systemelementen begrenzt. Die Fachleute auf dem Gebiet werden erkennen, dass die offenbarten Techniken in einer beliebigen Umgebung verwendet werden können, bei der es wünschenswert ist, eine System-Ausfallumschaltungswiederherstellung bereitzustellen.
  • Die beispielhaften Systeme und Verfahren werden ebenfalls in Bezug auf Software, Module und zugeordnete Hardware und Netz(e) beschrieben werden. Um ein unnötiges Verunklaren der vorliegenden Offenbarung zu vermeiden, lässt die folgende Beschreibung gut bekannte Strukturen, Komponenten und Geräte weg, die in Blockdiagrammform gezeigt werden können, gut bekannt sind oder auf andere Weise zusammengefasst werden.
  • Zu Zwecken der Erläuterung werden zahlreiche Einzelheiten dargelegt, um ein umfassendes Verständnis der vorliegenden Technologie zu gewährleisten. Es sollte jedoch zu erkennen sein, dass die Technologie in einer Vielzahl von Weisen über die hierin dargelegte Einzelheit hinaus umgesetzt werden kann.
  • Es kann eine Zahl von Variationen und Modifikationen verwendet werden. Es wäre möglich, einige Merkmale der Erfindung bereitrustellen oder zu beanspruchen, ohne andere bereitzustellen oder zu beanspruchen.
  • Die beispielhaften Systeme und Verfahren sind in Bezug auf Verbesserungen der System-Ausfallumschaltung beschrieben worden. Jedoch lässt die Beschreibung eine Anzahl von bekannten Strukturen und Geräten weg, um ein unnötiges Verunklaren der vorliegenden Offenbarung zu vermeiden. Dieses Weglassen ist nicht als eine Begrenzung des Rahmens der Ansprüche zu deuten. Es werden spezifische Einzelheiten dargelegt, um ein Verständnis der vorliegenden Technologie zu gewährleisten. Es sollte jedoch zu erkennen sein, dass die Technologie in einer Vielzahl von Weisen über die hierin dargelegte Einzalheit hinaus umgesetzt werden kann.
  • Ferner können, während die hierin illustrierten Ausführungsbeispiele verschiedene Komponenten des Systems nebeneinander stehend zeigen, bestimmte Komponenten des Systems entfernt, an entfernten Abschnitten eines verteilten Netzes, wie beispielsweise eines LAN, eines Kabelnetzes und/oder des Internets, oder innerhalb eines dedizierten Systems angeordnet sein. Folglich sollte zu erkennen sein, dass die Komponenten des Systems zu ein oder mehr Geräten, wie beispielsweise einem Gateway, kombiniert oder nebeneinander auf einem bestimmten Knoten eines verteilten Netzes, wie beispielsweise eines analogen und/oder eines digitalen Kommunikationsnetzes, eines paketvermittelten Netzes, eines leitungsvermittelten Netzes oder eines Kabelnetzes, stehen können.
  • 1 umreißt eine beispielhafte Datenverarbeitungsumgebung 1. Die Datenverarbeitungsumgebung 1 schließt ein aktives Gerät 100 und ein Bereitschaftsgerät 200, die durch ein oder mehrere Netze 10 und Verbindungen 5 verbunden werden, ein. Sowohl das aktive Gerät 100 als auch das Bereitschaftsgerät 200 schließen ein Commit-Modul (110, 210), ein Gerätezustandsmodul (120, 220), (einen) Prozessor(en) (130, 230), Speicher (140, 240), Server (150, 250), (eine) Datenbank(en) (160, 260), einen wahlweisen Puffer (170, 270) und ein NRD-Modul (180, 280), die über ein oder mehrere Netze 10 und Verbindungen 5 verbunden sind, ein. Der wahlweise Puffer 175 kann ebenfalls irgendwo innerhalb einer Datenverarbeitungsumgebung 1 angeordnet sein, wobei das Gerät, das gegenwärtig aktiv ist, typischerweise Datenpakete von einem oder mehreren Clients über die Netze 10 und die Verbindungen 5 empfängt.
  • Im Betrieb wird ein primäres System aktiviert (aktives Gerät/System). Nach dem ersten Ausführungsbeispiel ist das aktive Gerät das Gerät 100, wobei das Bereitschaftsgerät das Gerät 200 ist. In Zusammenwirken mit dem Commit-Modul 110 führt das Commit-Modul 110 zu vorbestimmten Zeiten ein Commit durch, wodurch der Zustand des aktiven Gerätes 100 bewahrt wird (siehe 24). Nach dem Fertigstellen dieses Commits und in Zusammenwirken mit dem Prozessor 130 und dem wahlweisen Puffer 170 oder 175 werden alle ankommenden Datenpakete von den Clients 2 zu dem Bereitschaftsgerät 200 kopiert. Diese Pakete können in einem oder mehreren von dem Puffer selbst oder zum Beispiel in der Datenbank 260 gespeichert werden. Im Einzelnen überwacht das NRD-Modul 180 alle ankommenden Datenpakete von den Clients 2, die durch das NRD-Modul 180 fortlaufend überwacht und aufgespalten oder gespiegelt werden, für eine gleichzeitige Übermittlung an das Bereitschaftsgerät, das ein Sicherungsabbild der Software-Anwendung(en), die auf dem aktiven Gerät 100 läuft/laufen, verwaltet. Diese können durch das NRD-Modul 180 in Echtzeit aufgespalten und an das Bereitschaftsgerät 200 übermittelt werden, wobei ein beispielhaftes Ziel desselben ist, eine verringerte oder keine Anwendungsausfallzeit zwischen den zwei Geräten zu erreichen.
  • Wie erörtert, kann das NRD-Modul 180 in Hardware oder Software, die koresident auf dem Gerät oder dem/den Server(n) läuft, welche(s/r) die Abbilder von Software-Anwendung und VMs hostet/hosten. Bei einem anderen Ausführungsbeispiel kann das NRD als ein selbständiges „Bump-in-the-Wire”-eingebettetes Datenverarbeitungsgerät umgesetzt werden, das physisch unabhängig von dem Server oder den Servern, welche(r) die VM-Software-Anwendung über Abbilder hostet/hosten, gespeist und eingesetzt wird.
  • Im Fall eines Ausfalls gibt das Bereitschaftsgerät 200, in Zusammenwirken mit dem Prozessor 230 und dem Gerätezustandsmodul 220, die kopierten Pakete wieder, um von dem letzten Commit zu dem aktuellen Zustand wiederherzustellen. Danach ist es möglich, dass sich die Verarbeitung ohne einen Verlust von Datenpaketen von dem Ausfallumschaltungspunkt aus fortsetzt. An diesem Punkt ist das Bereitschaftsgerät 200 nun das „aktive Gerät” und agiert als das primäre System, bis das ausgefallene aktive Gerät 100 wiederhergestellt und wieder online gestellt ist. Sobald das ausgefallene aktive Gerät 100 wiederhergestellt/repariert/neu gestartet ist, kann das System wahlweise ein Wiederherstellungs-„Rücktausch” vornehmen, wobei das aktive Bereitschaftsgerät 200 ein Commit von Zustand, Verkehr und Ownership-Session-Operationen zurück zu dem ersetzten/reparierten/neu gestarteten aktiven Gerät 100 vornimmt. Wieder ist dies ohne einen Verlust von Zustand oder Datenpaketen möglich.
  • 2 umreißt ein beispielhaftes Zeitdiagramm, das den Punkt und die Zeit, wo das letzte Commit vorgenommen wird, den Zeitraum, während dessen replizierte Pufferpakete gespeichert werden, und einen Punkt in der Zeit, zu dem die Bereitschaft die gepufferten Daten dazu verwendet, die Operationen von dem ausgefallenen Punkt an fortzusetzen, hervorhebt. 3 und 4 umreißen die beispielhaften Zeitdiagramme dazu, wie nach einem Ausfall des aktiven Geräts verschiedene Aktivitäten stattfinden, bis das ausgefallene Gerät reaktiviert worden ist. Im Allgemeinen heben 3 und 4 Prozesse hervor, die stattfinden, wenn zum Beispiel das Bereitschaftsgerät 200 als das „primäre oder aktive” Gerät agiert, in dem Fall, dass das aktive Gerät 100 ausgefallen ist. Die Prozesse für einen Wiederherstellungsrücktausch von dem Bereitschaftsgerät 200 zu dem aktiven Gerät 100 sind die gleichen, wie wenn das aktive Gerät 100 das „primäre oder aktive” Gerät oder System in Betrieb ist.
  • Wie erörtert können die Puffer (170, 175, 270) an einem beliebigen Punkt innerhalb der Datenverarbeitungsumgebung 1 angeordnet sein. Außerdem können nach Bedarf mehrere Puffer bereitgestellt werden, vorausgesetzt, der Puffer ist dazu in der Lage, im Fall eines Ausfalls des aktiven Gerätes replizierte gepufferte Pakete an das/die Bereitschaftsgerät(e) oder -system weiterzuleiten. Die Puffer können, in Abhängigkeit von der besonderen Umgebung des Datenverarbeitungssystems 1, ebenfalls mit einem oder mehreren von den Speichern 140, 240 und den Datenbanken 150, 260 zusammenwirken.
  • 5 umreißt eine beispielhafte Methodologie für das Gewährleisten von Hochverfügbarkeit in einer Software-Anwendungsumgebung. Im Einzelnen beginnt die Steuerung in Schritt S100 und setzt sich fort zu Schritt S110. In Schritt S110 wird ein primäres System aktiviert. Als Nächstes wird in Schritt S120 durch das primäre System ein Commit durchgeführt, um den Zustand für ein Bereitschaftssystem zu bewahren. Danach wird in Schritt S130 der gesamte ankommende Verkehr an das primäre System zu einem oder mehreren Puffern oder dem Bereitschaftssystem kopiert. Danach schreitet die Steuerung fort zu Schritt S140.
  • In Schritt S140 wird eine Feststellung getroffen, ob ein Ausfall stattgefunden hat. Falls ein Ausfall stattgefunden hat, springt die Steuerung zu Schritt S142. Anderenfalls schreitet die Steuerung fort zu Schritt S150.
  • In Schritt S150 wird eine Feststellung getroffen, ob der nächste Commit-Zustand erreicht worden ist. Falls er erreicht worden ist, springt die Steuerung zurück zu Schritt S120, wobei die Steuerung anderenfalls fortschreitet zu Schritt S130.
  • In Schritt S142 werden die zum Nutzen des Bereitschaftssystems kopierten Pakete von dem letzten Commit zu dem aktuellen Zustand wiedergegeben. Danach ist das Bereitschaftssystem in Schritt S144 dazu in der Lage, die Verarbeitung ohne einen Verlust von jeglichen Datenpaketen von dem Ausfallumschaltungspunkt aus zu beginnen. Danach agiert das Bereitschaftssystem in Schritt S146 als das primäre System, wobei die Steuerung fortschreitet zu Schritt S148, wo die Steuerungsabfolge endet.
  • Aus der vorstehenden Beschreibung und aus Gründen der rechnerischen Effizienz wird zu erkennen sein, dass die Komponenten des Systems an einem beliebigen Ort innerhalb eines verteilten Netzes von Komponenten angeordnet sein können, ohne die Funktionsweise des Systems zu beeinträchtigen. Zum Beispiel können die verschiedenen Komponenten in einem Switch, wie beispielsweise einem PBX- und Medienserver, einem Gateway, einem Kabel-Diensteanbieter, einem Unternehmenssystem, einer Client-Server-Umgebung, einem Verteilernetz, das einen oder mehrere Server einschließt, in einem oder mehreren Kommunikationsgeräten, bei den Räumlichkeiten eines oder mehrerer Anwender(s) oder einer Kombination derselben angeordnet sein. Ähnlich könnten einer oder mehrere funktionelle Abschnitte des Systems zwischen (einem) Telekommunikationsgerät(en) und einem zugeordneten Datenverarbeitungsgerät verteilt sein.
  • Ferner sollte zu erkennen sein, dass die verschiedenen Verbindungen, wie beispielsweise die Verbindung 5, welche die Elemente verbinden, drahtgebundene oder drahtlose Verbindungen oder eine beliebige Kombination derselben oder (ein) beliebige(s) andere(s) bekannte(s) oder später entwickelte(s) Element(e) sein können, die dazu in der Lage sind, Daten zu und von den verbundenen Elementen zu liefern und/oder zu übermitteln. Diese drahtgebundenen oder drahtlosen Verbindungen können ebenfalls sichere Verbindungen sein und können dazu in der Lage sein, verschlüsselte Informationen zu übermitteln.
  • Übertragungsmedien, die als Verbindungen verwendet werden, können zum Beispiel ein beliebiger geeigneter Träger für elektrische Signale, einschließlich von Koaxialkabeln, Kupferdraht und Lichtwellenleitertechnik, sein und können die Form von akustischen oder Lichtwellen, wie beispielsweise der während Hochfrequenz- und Infrarot-Datenübertragungen erzeugten, annehmen.
  • Außerdem sollte, während die Ablaufdiagramme in Bezug auf eine bestimmte Abfolge von Ereignissen erörtert und illustriert worden sind, zu erkennen sein, dass Veränderungen, Hinzufügungen und Weglassungen an dieser Abfolge auftreten können, ohne die Funktionsweise der Erfindung erheblich zu beeinträchtigen.
  • Bei noch einer anderen Ausführungsform können die Systeme und Verfahren dieser Technologie in Verbindung mit einem Spezialrechner, einem programmierten Mikroprozessor oder Mikrokontroller und (einem) peripheren integrierten Schaltungselement(en), einem ASIC oder einer anderen integrierten Schaltung, einem digitalen Signalprozessor, einer festverdrahteten elektronischen oder logischen Schaltung, wie beispielsweise, einer Schaltung aus diskreten Bauelementen, einem programmierbaren Logikbaustein oder Gateway, wie beispielsweise einem PLD, PLA, FGPA, PAL, einem Spezialrechner, einem beliebigen vergleichbaren Mittel oder dergleichen umgesetzt werden. Im Allgemeinen können (ein) beliebige(s) Gerät(e) oder Mittel, die dazu in der Lage sind, die hierin illustrierte Methodologie umzusetzen, dazu verwendet werden, die verschiedenen Aspekte dieser Technologie umzusetzen.
  • Beispielhafte Hardware, die für das vorliegende System verwendet werden kann, schließt Rechner, in der Hand zu haltende Geräte und andere auf dem Gebiet bekannte Hardware ein. Einige dieser Geräte schließen Prozessoren (z. B. einen einzelnen oder mehrere Mikroprozessoren), Speicher, nicht flüchtigen Speicher, Eingabegeräte und Ausgabegeräte ein. Darüber hinaus können alternative Software-Umsetzungen, einschließlich von verteilter Verarbeitung oder komponenten-/objektverteilte Verarbeitung, parallele Verarbeitung oder virtuelle Maschinenverarbeitung, aber ohne darauf begrenzt zu sein, ebenfalls dafür aufgebaut werden, die hierin beschriebenen Verfahren umzusetzen.
  • Bei noch einer anderen Ausführungsform können die offenbarten Verfahren leicht in Software umgesetzt werden, unter Verwendung von Objekt- oder objektorientierten Software-Entwicklungsumgebungen, die portierbaren Software-Code bereitstellen, der auf einer Vielzahl von Rechner- oder Arbeitsstationsplattformen verwendet werden kann. Alternativ dazu kann das offenbarte System teilweise oder vollständig in Hardware umgesetzt werden, unter Verwendung von standardmäßigen Logikschaltungen oder einer VLSI-Konstruktion. Ob Software oder Hardware verwendet wird, um die Systeme nach dieser Technologie umzusetzen, hängt von den Geschwindigkeits- und/oder Effizienzanforderungen des Systems, der besonderen Funktion und den besonderen Software- oder Hardwaresystemen oder Mikroprozessor- oder Mikrorechnersystemen, die benutzt werden, ab.
  • Bei noch einer anderen Ausführungsform können die offenbarten Verfahren teilweise in Software umgesetzt werden, die auf einem rechnerlesbaren Speichermedium gespeichert, auf einem programmierten Allzweckrechner mit der Mitwirkung eines Steuergeräts und eines Speichers, einem Spezialrechner, einem Mikroprozessor oder dergleichen ausgeführt werden. In diesen Fällen können die Systeme und Verfahren dieser Technologie als auf einem Arbeitsplatzrechner eingebettetes Programm, wie beispielsweise als ein Applet, ein JAVA®- oder CGI-Skript, als eine Ressource, die auf einem Server oder einer Rechnerarbeitsstation liegt, als eine in ein dediziertes Mess-System eingebettete Routine, eine Systemkomponente oder dergleichen umgesetzt werden. Das System kann ebenfalls durch physisches Einbeziehen des Systems und/oder des Verfahrens in ein Software- und/oder ein Hardwaresystem umgesetzt werden.
  • Obwohl die vorliegende Offenbarung Komponenten und Funktionen beschreibt, die bei den Ausführungsformen unter Bezugnahme auf bestimmte Standards und Protokolle umgesetzt werden, ist die Offenbarung nicht auf solche Standards und Protokolle begrenzt. Andere ähnliche Standards und Protokolle, die hierin nicht erwähnt werden, sind vorhanden und werden als in der vorliegenden Offenbarung eingeschlossen betrachtet. Darüber hinaus werden die hierin erwähnten Standards und Protokolle und andere ähnliche Standards und Protokolle, die hierin nicht erwähnt werden, in regelmäßigen Abständen durch schnellere oder effektivere Äquivalente abgelöst, die im Wesentlichen die gleichen Funktionen haben. Solche Ersatzstandards und -protokolle, welche die gleichen Funktionen haben, werden als in der vorliegenden Offenbarung eingeschlossene Äquivalente betrachtet.
  • Die vorliegende Offenbarung schließt, in verschiedenen Ausführungsformen, Konfigurationen und Aspekten, Komponenten, Verfahren, Prozesse, Systeme und/oder Vorrichtungen, im Wesentlichen, wie sie hierin abgebildet und beschrieben werden, einschließlich von verschiedenen Ausführungsformen, Unterkombinationen und Untermengen derselben, ein. Die Fachleute auf dem Gebiet werden nach dem Verstehen der vorliegenden Offenbarung verstehen, wie die vorliegende Technologie herzustellen und zu verwenden ist. Die vorliegende Technologie schließt, in verschiedenen Ausführungsformen, Konfigurationen und Aspekten, das Bereitstellen von Geräten und Prozessen ein, in der Abwesenheit von Gegenständen, die hierin oder in verschiedenen Ausführungsformen, Konfigurationen oder Aspekten hiervon nicht abgebildet und/oder beschrieben sind, einschließlich in der Abwesenheit von solchen Gegenständen, wie sie bei vorherigen Geräten oder Prozessen, z. B. zur Verbesserung der Leistung, Zum Erreichen von Einfachheit und/oder zum Verringern von Umsetzungskosten, verwendet worden sein können.
  • Die vorstehende Erörterung ist zu Zwecken der Illustration und Beschreibung dargeboten worden. Es ist nicht beabsichtigt, dass das Vorstehende die Offenbarung auf die hierin offenbarte(n) Form oder Formen begrenzt. In der vorstehenden Ausführlichen Beschreibung werden zum Beispiel zum Zweck des Straffens der Offenbarung verschiedene Merkmale der Technologie in einer oder mehreren Ausführungsformen, Konfigurationen und Aspekten zusammen gruppiert. Die Merkmale der Ausführungsformen, Konfigurationen und Aspekte der Technologie können in alternativen Ausführungsformen, Konfigurationen und Aspekten, die sich von den weiter oben erörterten unterscheiden, kombiniert werden. Dieses Verfahren der Offenbarung ist nicht so auszulegen, dass es eine Absicht widerspiegelt, dass die beanspruchte Technologie mehr Merkmale erfordert, als sie ausdrücklich in jedem Anspruch angeführt werden. Stattdessen liegen, wie es die folgenden Ansprüche widerspiegeln, die erfinderischen Aspekte in weniger als allen Merkmalen einer/eines einzelnen vorstehend offenbarten Ausführungsform, Konfiguration oder Aspekts. Folglich werden die folgenden Ansprüche hiermit in diese Ausführliche Beschreibung einbezogen, wobei jeder Anspruch für sich als eine gesonderte bevorzugte Ausführungsform steht.
  • Darüber hinaus liegen, obwohl die Beschreibung der Technologie die Beschreibung einer oder mehrerer Ausführungsformen, Konfigurationen oder Aspekte und bestimmter Variationen und Modifikationen eingeschlossen hat, andere Variationen, Kombinationen und Modifikationen innerhalb des Rahmen der Erfindung, wie sie z. B. nach dem Verstehen der vorliegenden Offenbarung innerhalb der Fähigkeit und des Wissens der Fachleute auf dem Gebiet liegen können. Es ist beabsichtigt, Rechte zu erwerben, die alternative Ausführungsformen, Konfigurationen oder Aspekte bis zu dem erlaubten Umfang einschließen, einschließlich von alternativen, wechselseitig austauschbaren und/oder äquivalenten Strukturen, Funktionen, Bereichen oder Schritten zu den beanspruchten, ob solche alternativen, wechselseitig austauschbaren und/oder äquivalenten Strukturen, Funktionen, Bereiche oder Schritte hierin offenbart werden oder nicht, und ohne zu beabsichtigen, öffentlich irgendeinen patentierbaren Gegenstand zu überlassen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • http://people.cs.ubc.ca/~brendan/papers/remus-nsdi08.pdf [0005]

Claims (20)

  1. Verfahren für das Bewahren eines Zustandes und das Verringern von Datenverlust, Folgendes umfassend: auf das Erkennen eines Commits in einem aktiven Gerät hin, das Kopieren des gesamten ankommenden Verkehrs zu einem oder mehreren Puffern bis zu einem nächsten Commit oder einem Ausfall, das Erkennen eines Ausfalls und das Wiedergeben des kopierten Datenverkehrs, um ein Bereitschaftsgerät zu einem aktuellen Stand eines ausgefallenen Gerätes wiederherzustellen.
  2. Verfahren nach Anspruch 1, das ferner das Beginnen der Verarbeitung an dem Bereitschaftsgerät von einem Ausfallumschaltungspunkt aus umfasst.
  3. Verfahren nach Anspruch 1, das ferner das Löschen des gesamten kopierten ankommenden Verkehrs bei dem nächsten Commit umfasst.
  4. Verfahren nach Anspruch 1, das ferner einen Rücktausch von dem Bereitschaftsgerät zu dem aktiven Gerät umfasst.
  5. Verfahren nach Anspruch 1, wobei das aktive Gerät eines oder mehrere von einer/einem oder mehreren virtuellen Maschinen, Servern und Rechnern ist.
  6. Verfahren nach Anspruch 1, wobei das Bereitschaftsgerät eines oder mehrere von einer/einem oder mehreren virtuellen Maschinen, Servern und Rechnern ist.
  7. Verfahren nach Anspruch 1, wobei ein Netz-Replikationsgerät das Kopieren durchführt.
  8. Verfahren nach Anspruch 7, wobei das Netz-Replikationsgerät stromaufwärts von dem Bereitschaftsgerät angeordnet ist.
  9. Ein oder mehrere Mittel für das Durchführen der Schritte nach Anspruch 1.
  10. Rechnerlesbares Speichermedium, das in demselben Anweisungen gespeichert hat, die, wenn sie ausgeführt werden, bewirken, dass die Schritte nach Anspruch 1 durchgeführt werden.
  11. System, das einen Zustand bewahrt und Datenverlust verringert, Folgendes umfassend: ein Netz-Replikationsmodul, das, auf das Erkennen eines Commits durch ein Commit-Modul in einem aktiven Gerät hin, den gesamten ankommenden Verkehr bis zu einem nächsten Commit oder einem Ausfall zu einem oder mehreren Puffern speichert, ein Gerätezustandsmodul, das einen Ausfall erkennt, und ein zweites Gerätezustandsmodul, das den kopierten Datenverkehr wiedergibt, um ein Bereitschaftsgerät zu einem aktuellen Stand eines ausgefallenen Gerätes wiederherzustellen.
  12. System nach Anspruch 11, wobei die Verarbeitung an dem Bereitschaftsgerät von einem Ausfallumschaltungspunkt aus beginnt.
  13. System nach Anspruch 11, wobei der gesamte kopierte ankommende Verkehr bei dem nächsten Commit gelöscht wird.
  14. System nach Anspruch 11, wobei das Bereitschaftsgerät auf eine Korrektur des Ausfalls hin zu dem aktiven Gerät zurückgetauscht wird.
  15. System nach Anspruch 11, wobei das aktive Gerät eines oder mehrere von einer/einem oder mehreren virtuellen Maschinen, Servern und Rechnern ist.
  16. System nach Anspruch 11, wobei das Bereitschaftsgerät eines oder mehrere von einer/einem oder mehreren virtuellen Maschinen, Servern und Rechnern ist.
  17. System nach Anspruch 11, wobei das Netz-Replikationsgerät das Kopieren zu dem einen oder den mehreren Puffern durchführt, wobei der eine oder die mehreren Puffer mit einem oder mehreren von dem aktiven Gerät, dem Bereitschaftsgerät nebeneinander stehen oder auf einem Netzknoten angeordnet sind.
  18. System nach Anspruch 17, wobei das Netz-Replikationsgerät stromaufwärts von dem aktiven Gerät angeordnet ist.
  19. System nach Anspruch 17, wobei das Netz-Replikationsgerät stromaufwärts von dem Bereitschaftsgerät angeordnet ist.
  20. System nach Anspruch 11, wobei der gesamte ankommende Verkehr, der darauf gerichtet ist, an eine primäre Software-Anwendung übermittelt zu werden, die in einer primären virtuellen Maschine auf dem aktiven Gerät läuft, fortlaufend überwacht und durch das Netz-Replikationsmodul kopiert wird, für eine gleichzeitige Übermittlung an ein Sicherungsabbild der Software-Anwendung, das auf einem System oder einer virtuellen Maschine in Bereitschaft läuft.
DE112010003372T 2010-01-04 2010-12-13 Paketspiegelung zwischen primären und sekundären virtualisierten Software-Abbildern für verbesserte Systemausfallumschaltungsleistung Pending DE112010003372T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/651,554 2010-01-04
US12/651,554 US8145945B2 (en) 2010-01-04 2010-01-04 Packet mirroring between primary and secondary virtualized software images for improved system failover performance
PCT/US2010/060100 WO2011081888A1 (en) 2010-01-04 2010-12-13 Packet mirroring between primary and secondary virtualized software images for improved system failover performance

Publications (1)

Publication Number Publication Date
DE112010003372T5 true DE112010003372T5 (de) 2012-09-06

Family

ID=44225415

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112010003372T Pending DE112010003372T5 (de) 2010-01-04 2010-12-13 Paketspiegelung zwischen primären und sekundären virtualisierten Software-Abbildern für verbesserte Systemausfallumschaltungsleistung

Country Status (6)

Country Link
US (1) US8145945B2 (de)
KR (1) KR101280754B1 (de)
CN (1) CN102473105B (de)
DE (1) DE112010003372T5 (de)
GB (1) GB2483042B (de)
WO (1) WO2011081888A1 (de)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8301700B1 (en) 2010-08-06 2012-10-30 Open Invention Network Llc System and method for event-driven live migration of multi-process applications
US8584145B1 (en) 2010-08-06 2013-11-12 Open Invention Network, Llc System and method for dynamic transparent consistent application-replication of multi-process multi-threaded applications
US9043640B1 (en) * 2005-08-26 2015-05-26 Open Invention Network, LLP System and method for event-driven live migration of multi-process applications
US9141481B1 (en) 2010-08-06 2015-09-22 Open Invention Network, Llc System and method for reliable non-blocking messaging for multi-process application replication
US8281184B1 (en) * 2010-08-06 2012-10-02 Open Invention Network Llc System and method for reliable non-blocking messaging for multi-process application replication
US8589953B1 (en) 2010-08-06 2013-11-19 Open Invention Network, Llc System and method for transparent consistent application-replication of multi-process multi-threaded applications
US8621275B1 (en) 2010-08-06 2013-12-31 Open Invention Network, Llc System and method for event-driven live migration of multi-process applications
JP5352299B2 (ja) * 2009-03-19 2013-11-27 株式会社日立製作所 高信頼性計算機システムおよびその構成方法
US8782434B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time
US9135127B1 (en) 2010-08-06 2015-09-15 Open Invention Network, Llc System and method for dynamic transparent consistent application-replication of multi-process multi-threaded applications
US8521703B2 (en) * 2010-11-05 2013-08-27 International Business Machines Corporation Multiple node/virtual input/output (I/O) server (VIOS) failure recovery in clustered partition mobility
US8924560B2 (en) * 2010-11-29 2014-12-30 At&T Intellectual Property I, L.P. Optimized game server relocation environment
TWI537828B (zh) * 2010-12-21 2016-06-11 萬國商業機器公司 虛擬機管理的方法及其電腦系統之裝置和電腦程式
US8832489B2 (en) * 2011-04-26 2014-09-09 Dell Products, Lp System and method for providing failover between controllers in a storage array
US10585766B2 (en) 2011-06-06 2020-03-10 Microsoft Technology Licensing, Llc Automatic configuration of a recovery service
US8938638B2 (en) * 2011-06-06 2015-01-20 Microsoft Corporation Recovery service location for a service
US8639984B2 (en) * 2011-08-09 2014-01-28 International Business Machines Corporation Checkpoint debugging using mirrored virtual machines
US9256463B2 (en) 2012-06-29 2016-02-09 International Business Machines Corporation Method and apparatus to replicate stateful virtual machines between clouds
US9122873B2 (en) 2012-09-14 2015-09-01 The Research Foundation For The State University Of New York Continuous run-time validation of program execution: a practical approach
US9069782B2 (en) 2012-10-01 2015-06-30 The Research Foundation For The State University Of New York System and method for security and privacy aware virtual machine checkpointing
KR101471879B1 (ko) 2012-10-31 2014-12-11 삼성에스디에스 주식회사 하이퍼바이저 기반 서버 이중화 시스템, 그 방법 및 서버 이중화 컴퓨터 프로그램이 기록된 기록매체
US9032157B2 (en) * 2012-12-11 2015-05-12 International Business Machines Corporation Virtual machine failover
US9251002B2 (en) * 2013-01-15 2016-02-02 Stratus Technologies Bermuda Ltd. System and method for writing checkpointing data
US9262090B2 (en) * 2013-02-26 2016-02-16 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Asynchronous data mirroring in memory controller
US9678673B2 (en) 2013-03-28 2017-06-13 Hewlett Packard Enterprise Development Lp Coordinating replication of data stored in a non-volatile memory-based system
CN103354503A (zh) * 2013-05-23 2013-10-16 浙江闪龙科技有限公司 一种可自动检测及替换故障节点的云存储***及其方法
KR101511841B1 (ko) * 2013-05-30 2015-04-13 삼성에스디에스 주식회사 가상 머신 기반의 무중단 시스템 및 상기 시스템에서의 패킷 중재 방법
CN103457775B (zh) * 2013-09-05 2016-09-14 中国科学院软件研究所 一种基于角色的高可用虚拟机池化管理***
US9588844B2 (en) 2013-12-30 2017-03-07 Stratus Technologies Bermuda Ltd. Checkpointing systems and methods using data forwarding
EP3090344B1 (de) 2013-12-30 2018-07-18 Stratus Technologies Bermuda Ltd. Systeme und verfahren für dynamisches checkpointing
US9760442B2 (en) 2013-12-30 2017-09-12 Stratus Technologies Bermuda Ltd. Method of delaying checkpoints by inspecting network packets
US10339010B1 (en) * 2014-04-05 2019-07-02 Bruce Talley Systems and methods for synchronization of backup copies
US10970179B1 (en) * 2014-09-30 2021-04-06 Acronis International Gmbh Automated disaster recovery and data redundancy management systems and methods
CN104461775A (zh) * 2014-11-26 2015-03-25 英业达科技有限公司 异地备援***及备份方法
CN105490847B (zh) * 2015-12-08 2019-03-29 天津市初志科技有限公司 一种私有云存储***中节点故障实时检测及处理方法
US10521315B2 (en) * 2016-02-23 2019-12-31 Vmware, Inc. High availability handling network segmentation in a cluster
WO2017209955A1 (en) 2016-05-31 2017-12-07 Brocade Communications Systems, Inc. High availability for virtual machines
US20180341494A1 (en) * 2017-05-26 2018-11-29 Intel Corporation Accelerating network security monitoring
EP3609108B1 (de) * 2018-08-09 2021-04-28 Tata Consultancy Services Limited Verfahren und system zur nachrichtenbasierten kommunikation und fehlerbehebung für fpga-middleware-rahmen
CN111309515B (zh) * 2018-12-11 2023-11-28 华为技术有限公司 一种容灾控制方法、装置及***
US11962647B2 (en) * 2019-06-05 2024-04-16 Vmware, Inc. Data migration using dynamic synchronization
US20210397473A1 (en) * 2020-06-18 2021-12-23 Sonicwall Inc. Method of creating high availability for single point network gateway using containers
CN112532525B (zh) * 2020-11-25 2022-11-25 北京金山云网络技术有限公司 设备恢复服务的处理方法、装置和***
CN113221937A (zh) * 2021-02-24 2021-08-06 山东万博科技股份有限公司 基于人工智能判断的应急处理***及方法
US12040934B1 (en) * 2021-12-17 2024-07-16 Juniper Networks, Inc. Conversational assistant for obtaining network information

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4590554A (en) * 1982-11-23 1986-05-20 Parallel Computers Systems, Inc. Backup fault tolerant computer system
US6070251A (en) * 1997-06-26 2000-05-30 Sun Microsystems, Inc. Method and apparatus for high availability and caching data storage devices
US6594229B1 (en) * 1999-12-14 2003-07-15 Samsung Electronics Co., Ltd. Data synchronization system for redundant packet routing architecture and method of operation
US6751746B1 (en) 2000-07-31 2004-06-15 Cisco Technology, Inc. Method and apparatus for uninterrupted packet transfer using replication over disjoint paths
GB0112781D0 (en) 2001-05-25 2001-07-18 Global Continuity Plc Method for rapid recovery from a network file server failure
US6745209B2 (en) 2001-08-15 2004-06-01 Iti, Inc. Synchronization of plural databases in a database replication system
JP3932994B2 (ja) * 2002-06-25 2007-06-20 株式会社日立製作所 サーバ引継システムおよびその方法
US7065673B2 (en) * 2002-10-29 2006-06-20 Brocade Communication Systems, Inc. Staged startup after failover or reboot
US7194652B2 (en) * 2002-10-29 2007-03-20 Brocade Communications Systems, Inc. High availability synchronization architecture
US7047379B2 (en) * 2003-07-11 2006-05-16 International Business Machines Corporation Autonomic link optimization through elimination of unnecessary transfers
US7797571B2 (en) * 2003-07-15 2010-09-14 International Business Machines Corporation System, method and circuit for mirroring data
US7739403B1 (en) * 2003-10-03 2010-06-15 Juniper Networks, Inc. Synchronizing state information between control units
US7500134B2 (en) * 2005-12-27 2009-03-03 Emc Corporation Virtual array failover
US20070174484A1 (en) * 2006-01-23 2007-07-26 Stratus Technologies Bermuda Ltd. Apparatus and method for high performance checkpointing and rollback of network operations
US20080077686A1 (en) 2006-09-26 2008-03-27 Dinesh Kumar Subhraveti System and Method for Replication of Network State for Transparent Recovery of Network Connections
US8135838B2 (en) 2008-04-08 2012-03-13 Geminare Incorporated System and method for providing data and application continuity in a computer system
US8301593B2 (en) 2008-06-12 2012-10-30 Gravic, Inc. Mixed mode synchronous and asynchronous replication system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
http://people.cs.ubc.ca/~brendan/papers/remus-nsdi08.pdf

Also Published As

Publication number Publication date
CN102473105A (zh) 2012-05-23
GB2483042B (en) 2018-06-27
GB2483042A (en) 2012-02-22
WO2011081888A1 (en) 2011-07-07
KR101280754B1 (ko) 2013-07-05
KR20120016298A (ko) 2012-02-23
CN102473105B (zh) 2014-12-10
GB201122355D0 (en) 2012-02-01
US20110167298A1 (en) 2011-07-07
US8145945B2 (en) 2012-03-27

Similar Documents

Publication Publication Date Title
DE112010003372T5 (de) Paketspiegelung zwischen primären und sekundären virtualisierten Software-Abbildern für verbesserte Systemausfallumschaltungsleistung
DE112011104471T5 (de) Verfahren zur Failover-Verwaltung von virtuellen Maschinen und System zum Unterstützen desselben
DE69410671T2 (de) Datensicherung in einer Datenverarbeitungsanlage
USRE47852E1 (en) Snapshot and replication of a multi-stream application on multiple hosts at near-sync frequency
US9875042B1 (en) Asynchronous replication
DE69511796T2 (de) Progressives Wiederholungsverfahren und Vorrichtung mit wiederverwendbaren Softwaremodulen zur Softwareausfallbeseitigung in Nachrichten übertragenden Multiprozessanwendungen
DE602005002532T2 (de) Cluster-datenbank mit ferndatenspiegelung
DE60312746T2 (de) Wiederherstellung nach fehlern in datenverarbeitungsanlagen
US9563655B2 (en) Zero and near-zero data loss database backup and recovery
DE60001460T2 (de) Datenfernkopieren unter verwendung von potentiellen aufhebungsbefehlen
DE69715536T2 (de) Fehlertolerantes verarbeitungssystem
US9256605B1 (en) Reading and writing to an unexposed device
US8478955B1 (en) Virtualized consistency group using more than one data protection appliance
DE69715537T2 (de) Fehlertolerante verfahrensmethode
US10101943B1 (en) Realigning data in replication system
US10067694B1 (en) Replication ordering
DE69712689T2 (de) Prüfpunktrechnersystem
US7627728B1 (en) System and method for efficient generation of application snapshots
DE102013101863A1 (de) Hochverfügbares Hauptspeicher-Datenbanksystem, Arbeitsverfahren und deren Verwendungen
US20130212205A1 (en) True geo-redundant hot-standby server architecture
DE112011100623T5 (de) Read-Other-Protokoll zur Aufrechterhaltung der Paritätskohärenz in einem Writeback-Datenspeichersystem mit verteilter Redundanz
DE112012004216T5 (de) Nachrichtenabgleich während einer Wiederherstellung nach einem Systemausfall
DE112020005786T5 (de) Systeme und verfahren zum ermöglichen eines hochverfügbaren verwalteten ausfallsicherungsdienstes
DE112006002531T5 (de) Anwendung virtueller Server für Lösungen mit hoher Verfügbarkeit und für Lösungen bei der Wiederherstellung nach Fehlern
EP1959639B1 (de) Ausfallsicheres System zum Verwalten von Client-Server-Kommunikation

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0009455000

Ipc: G06F0011140000

Effective date: 20120824

R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication