-
TECHNISCHES GEBIET
-
Die vorliegende Erfindung betrifft allgemein das Gebiet von Operationen verteilter Dateisysteme und insbesondere eine zuverlässige Langlebigkeit von Ereignisbenachrichtigungen über Dateisystemoperationen.
-
HINTERGRUND
-
Unternehmen, die an mehreren geografischen Standorten tätig sind und geclusterte Dateisysteme nutzen, die oftmals in Cloud-Umgebungen gehostet werden, konzentrieren sich in zunehmendem Maße auf Datensicherheit und ein Überwachen des Zugriffs auf Daten und anderer Dateiaktivitätsereignisse. Der Schutz von unternehmenswichtigen Daten gegenüber internen Bedrohungen und externen Sicherheitsverletzungen hat dazu geführt, dass viele Unternehmen eine Schwachstellenanalysefunktionalität von Dateisystemen einbeziehen.
-
Für Finanzinstitute sowie Unternehmen der Gesundheitsfürsorge ist es aus betrieblichen und juristischen Gründen wichtig, Zugriffs- und Bearbeitungsaktivitäten auf bzw. an Hauptbücher(n) (ledger(s)), Konten und Transaktionen, medizinische(n) Unterlagen und Personaldateien ermitteln zu können. Einige Beratungsdienste greifen auf sichere Zugriffs- und Aktivitätsoperationen für Dateisysteme zurück, um dem Kundenbedarf gerecht zu werden und eine wettbewerbsfähige Position im Markt zu behaupten. Bei verteilten Datenverarbeitungssystemen, in denen möglicherweise geclusterte Dateisysteme genutzt werden, können eine Wiederherstellung einer Dateisystemaktivität vor Abstürzen von Knotenneustarts oder Hängezustände unbedingt notwendige Informationen enthalten oder diese können aufgrund von Konformitätsregeln sogar erforderlich sein.
-
Verteilte Dateisysteme enthalten oftmals eine Mehrzahl von Knoten, die betriebsbedingte Aktivitäten an Dateien, Objekten oder Datensätzen des Systems durchführen. Die Knoten können eine über die Mehrzahl von Knoten hinweg verteilte Nachrichtenwarteschlange enthalten, die die Sammlung der Dateiaktivität oder von Ereignissen unterstützt, die durch den jeweiligen Knoten an Dateien durchgeführt werden. Das Veröffentlichen der Dateiaktivität gegenüber der Nachrichtenwarteschlange wird durch eine „Erzeuger“-Komponente durchgeführt, die innerhalb eines Daemons auf dem Knoten läuft, die Richtlinien anwendet, die konfigurieren, welche Dateien und welche Ereignisaktivitäten beobachtet werden sollen.
-
KURZDARSTELLUNG
-
Aspekte der vorliegenden Erfindung stellen ein Verfahren, ein Computerprogrammprodukt und ein System für Fehlertoleranz bei der Übermittlung von Ereignisinformationen von Knoten innerhalb eines Computerknoten-Clusters bereit. Das Verfahren stellt einen oder mehrere Prozessoren bereit, um Ereignisinformationen zu ermitteln, die in Zusammenhang mit einer Dateisystemaktivität stehen, die durch einen Knoten eines Computer-Clusters von Knoten durchgeführt wurde. Der eine oder die mehreren Prozessoren fügen die Ereignisinformationen zu einem Ereignisprotokollpuffer im Speicher hinzu. Der eine oder die mehreren Prozessoren empfangen eine erste Protokollfolgenummer, die mit einer Wiederherstellungsprotokollfolgenummer übereinstimmt, die einem Leeren von Wiederherstellungsinformationen aus einem Wiederherstellungsprotokollpuffer entspricht. Der eine oder die mehreren Prozessoren ermitteln die Ereignisinformationen, die in dem Ereignisprotokollpuffer enthalten sind, die eine Protokollfolgenummer enthalten, die kleiner oder gleich der ersten Protokollfolgenummer ist, und als Reaktion auf ein Feststellen, dass die in dem Ereignisprotokollpuffer enthaltenen Informationen einer Protokollfolgenummer entsprechen, die kleiner oder gleich der ersten Protokollfolgenummer ist, leeren der eine oder die mehreren Prozessoren die Ereignisinformationen, die entsprechende Protokollfolgenummern enthalten, aus dem Ereignisprotokollpuffer in einen Plattenspeicher.
-
Figurenliste
-
- 1 ist ein Funktionsblockschema, das eine verteilte Datenverarbeitungsumgebung gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht.
- 2 ist ein Funktionsblockschema, das ein Beispiel des Leerens eines Ereignisprotokollpuffers in ein Ereignisprotokoll im Platten-Permanentspeicher gemäß Ausführungsformen der vorliegenden Erfindung veranschaulicht.
- 3 ist ein Ablaufdiagramm, das die Operationsschritte eines Ereignisprotokollprogramms bildlich darstellt, das in der verteilten Datenverarbeitungsumgebung von 1 gemäß Ausführungsformen der vorliegenden Erfindung arbeitet.
- 4 stellt ein Blockschema von Komponenten eines Datenverarbeitungssystems bildlich dar, unter anderem eine Datenverarbeitungseinheit, die das Ereignisprotokollprogramm von 3 gemäß einer Ausführungsform der vorliegenden Erfindung funktionsmäßig durchführt.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Ausführungsformen der vorliegenden Erfindung berücksichtigen, dass bestimmte Anwendungen, die auf verteilten Datenverarbeitungsumgebungen laufen, die geclusterte Dateisysteme enthalten, so konfiguriert sind, dass sie Ereignisbenachrichtigungen erzeugen und verteilen, die in Zusammenhang mit Ereignisaktivitäten von Dateien stehen. Ausführungsformen der vorliegenden Erfindung berücksichtigen, dass Anwendungen, die ein Dateisystem überwachen, einen einheitlichen und zuverlässigen Status sowie eine einheitliche und zuverlässige Aktivität erfordern, die in Zusammenhang mit dem Dateisystem und Komponentendaten des Dateisystems stehen. Dateisystemüberwachungsanwendungen stützen sich auf Ereignisbenachrichtigungen, die den Anwendungen als Eingabe über Status, Zugriff und Änderungen an dem Dateninhalt des Dateisystems übermittelt wurden, und eine Unterbrechung der Ereignisbenachrichtigungen, die aufgrund von Knotenabstürzen, Neustarts oder anderen Übermittlungsproblemen auftreten kann, kann zum Verlust von Ereignisinformationen führen und erfordert einen erheblichen Eingriff zur Korrektur. Die Ausfallsicherheit von Ereignisbenachrichtigungen des überwachten Dateisystems ist ein erhebliches Zuverlässigkeitsproblem bei derartigen Anwendungen. Speichersysteme können zur Speicherung von Dateien und Dokumenten vorgesehen sein oder können zur Speicherung von Elementen als Objekte konfiguriert sein.
-
Ausführungsformen der vorliegenden Erfindung stellen eine zuverlässige Übermittlung von Ereignisbenachrichtigungen bei Speicherverwaltungsoperationen und -aktivitäten unabhängig von der gespeicherten Inhaltsart bereit. Im Sinne der Kürze wird bei der Erörterung von Ausführungsformen Bezug auf „Dateien“, „Dateisysteme“ und „Dateisystem-Cluster“ genommen, ohne dass dies eine Einschränkung auf „Objekte“ oder andere Inhaltseinheiten darstellen würde.
-
Ausführungsformen der vorliegenden Erfahrung stellen ein Verfahren, ein Computerprogrammprodukt und ein Computersystem zur zuverlässigen Übermittlung von Ereignisbenachrichtigungen über geclusterte Dateisysteme bereit. Bei Ausführungsformen der vorliegenden Erfindung ist ein Ereignisprotokollpuffer in jeweiligen Betriebsknoten des geclusterten Dateisystems enthalten und empfängt Ereignismetadaten von Dateiereignissen, die durch den jeweiligen Knoten durchgeführt wurden. Bei einigen Ausführungsformen der vorliegenden Erfindung hat der Ereignisprotokollpuffer ein entsprechendes Ereignisprotokoll, das Ereignisinformationen über Dateizugriff und -aktivität, die auf dem jeweiligen Knoten verarbeitet wurden, aus dem Ereignisprotokollpuffer empfängt (d.h. leert) und eine dauerhafte Speicherung (d.h. Plattenspeicherung) der Ereignisinformationen bereitstellt.
-
Bei Ausführungsformen der vorliegenden Erfindung ist der Ereignisprotokollpuffer mit dem Wiederherstellungsprotokollpuffer synchronisiert, sodass der Ereignisprotokollpuffer im Speicher gespeicherte Ereignisinformationen auf die Platte leert, bevor ein Leeren der entsprechenden Daten des Wiederherstellungsprotokollpuffers in das Wiederherstellungsprotokoll auf der Platte erfolgt. Bei einigen Ausführungsformen werden als Reaktion auf eine Unterbrechung der Übermittlung von Ereignisbenachrichtigungen zu einer Benachrichtigungssenke die Informationen aus dem auf der Platte gespeicherten Ereignisprotokoll wiedergibt, wodurch eine vollständige Übermittlung der Dateisystemereignisinformationen sichergestellt wird.
-
Bei einigen Ausführungsformen der vorliegenden Erfindung umfasst ein Knoten eines Computer-Clusters, der ein geclustertes Dateisystem betreibt, einen laufenden Daemon, der einen Ereigniserzeuger hat, der Ereignisbenachrichtigungen erzeugt, die einer auf dem Knoten durchgeführten Dateisystemaktivität entsprechen. Zu einem Ereignis eines geclusterten Dateisystems können Aktivitäten wie z.B. Zugreifen (und Zugriffs-ID), Erstellen, Öffnen, Schließen, Entfernen, Bearbeitungsänderungen, Eigentümeränderungen, Sicherheitsstufenänderungen und Verlagerung gehören, ohne auf diese beschränkt zu sein. Der Erzeuger des Knotens sendet Ereignisinformationen als Metadaten an den Ereignisprotokollpuffer und an eine Senke. Bei einer Ausführungsform sendet der Erzeuger des Knotens Ereignismetadaten an eine Nachrichtenwarteschlange. Ausführungsformen der vorliegenden Erfindung berücksichtigen, dass es sich bei einer Nachrichtenwarteschlange und einem sequenziellen Protokoll auf einer Platte um Ausführungsformen einer Senke handelt. Bei einer Nachrichtenwarteschlange handelt es sich um eine datenstromverarbeitende Softwareplattform, die eine Behandlung von Echtzeit-Daten-Feeds mit hohem Durchsatz bereitstellt. Die Nachrichtenwarteschlange fungiert als Datendepot (repository), das Ereignisinformationsbenachrichtigungen aus jeweiligen verteilten Knoten des Dateisystem-Clusters sammelt, sodass die Informationen durch interessierte Anwendungen genutzt werden können. Bei einer Ausführungsform schreibt der Erzeuger eines Knotens Ereignismetadaten in eine Datei eines sequenziellen Protokolls auf einem Permanentspeicher. Die Senke stellt einen Zugangspunkt für eine Dateisystemüberwachungsanwendung bereit, um Ereignisbenachrichtigungen über eine Aktivität des Dateisystems und Metadaten über einen Datei- oder Objektstatus, über Änderungen und Zugriffsinformationen zu empfangen.
-
Ereignisinformationen enthalten zusätzliche Metadaten, die in Zusammenhang mit dem jeweiligen Dateisystemereignis stehen, als Daten, die an den Wiederherstellungsprotokollpuffer gesendet in den Wiederherstellungsprotokolls auf der Platte gespeichert werden. Ausführungsformen der vorliegenden Erfindung berücksichtigen, dass im Falle eines Knotenausfalls die zum Erzeugen einer Ereignisbenachrichtigung notwendigen Ereignisinformationen nicht in dem Wiederherstellungsprotokoll enthalten sind, das zum Durchführen einer Systemkomponentenwiederherstellung von Operationen ausgelegt ist. Das Ereignisprotokoll enthält Metadaten wie z.B. Nummer des I-Knotens, Teilename, Speicherpool, Benutzer-ID, Eigentümer-ID, Dateiattribute, Dateiereignisaktivität und Zeitstempel des Ereignisses, ohne auf diese beschränkt zu sein.
-
Ausführungsformen der vorliegenden Erfindung stellen sicher, dass die Ereignisbenachrichtigung auch bei Auftreten eines Absturzes, eines Neustarts oder einer anderen Systemunterbrechung zuverlässig aufrechterhalten und übermittelt werden, indem ein Ereignisprotokollpuffer bereitgestellt wird, der Ereignisinformationen in einen permanenten Plattenspeicher leert, bevor die Wiederherstellungsinformationen geleert werden, die in dem Wiederherstellungsprotokollpuffer enthalten sind. Das Ereignisprotokoll stellt Ereignisinformationen unter Fehlerbedingungen bereit, bei denen normale Ereignisaktivitätsinformationen nicht an Senken übermittelt werden.
-
Die vorliegende Erfindung wird nun unter Bezugnahme auf die Figuren ausführlich beschrieben. 1 ist ein Funktionsblockschema, das eine allgemein mit 100 bezeichnete verteilte Datenverarbeitungsumgebung gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht. 1 stellt lediglich eine Veranschaulichung einer Realisierungsform bereit und umfasst keinerlei stillschweigende Einschränkungen in Bezug auf die Umgebungen, in denen unterschiedliche Ausführungsformen realisiert werden können. Viele Abänderungen an der bildlich dargestellten Umgebung können durch Fachleute vorgenommen werden, ohne dass dies eine Abweichung von dem Schutzumfang der Erfindung darstellen würde, der durch die Ansprüche dargelegt ist.
-
Die verteilte Datenverarbeitungsumgebung 100 umfasst mehrere Server-Knoten eines verteilten Datenverarbeitungssystems, für die ein erster Server-Knoten 110, ein zweiter Server-Knoten 120 und zwischengeschaltete Server-Knoten (nicht gezeigt) bis einschließlich eines N-ten Server-Knotens 130 stehen. Die verteilte Datenverarbeitungsumgebung 100 umfasst außerdem eine Senke 140, Speichersystemanwendungen 160, Speichersystem-Überwachungsanwendungen 170, die untereinander über ein Netzwerk 150 verbunden sind. Bei dem Netzwerk 150 kann es sich zum Beispiel um ein lokales Netzwerk (local area network, LAN), ein Weitverkehrsnetzwerk (wide area network, WAN) wie z.B. das Internet, ein virtuelles lokales Netzwerk (virtual local area network, VLAN) oder um eine beliebige Kombination handeln, die kabelgebundene, kabellose oder lichtwellenleitergebundene Verbindungen umfassen kann. Im Allgemeinen kann es sich bei dem Netzwerk 150 um eine beliebige Kombination von Verbindungen und Protokollen handeln, die Datenaustausch und Datenübertragung zwischen dem ersten Server-Knoten 110, dem zweiten Server-Knoten 120 und den zwischengeschalteten Server-Knoten bis und einschließlich des N-ten Server-Knotens 130, der Senke 140, den Speichersystemanwendungen 160 und den Speichersystem-Überwachungsanwendungen 170 unterstützen.
-
Bei dem ersten Server-Knoten 110, dem zweiten Server-Knoten 120 und den zwischengeschalteten Knoten (nicht gezeigt) bis zu dem N-ten Server-Knoten 130 handelt es sich um Knoten eines verteilten Dateisystem-Clusters. Der erste Server-Knoten 110 enthält eine Kopie eines Ereignisprotokollprogramms 300, einen Daemon 115, einen Erzeuger 117, ein Ereignisprotokoll 113 und ein Wiederherstellungsprotokoll 119. Der zweite Server-Knoten 120 enthält eine Kopie eines Ereignisprotokollprogramms 300, einen Daemon 125, einen Erzeuger 127, ein Ereignisprotokoll 123 und ein Wiederherstellungsprotokoll 129. Der N-te Server-Knoten 130 enthält eine Kopie eines Ereignisprotokollprogramms 300, einen Daemon 135, einen Erzeuger 137, ein Ereignisprotokoll 133 und ein Wiederherstellungsprotokoll 139. Bei einigen Ausführungsformen der vorliegenden Erfindung kann das Ereignisprotokollprogramm 300 entfernt von dem ersten Server-Knoten 110, dem zweiten Server-Knoten 120 und dem N-ten Server-Knoten 130 gehostet sein und den jeweiligen Server-Knoten programmierbare Anweisungen bereitstellen.
-
Bei einigen Ausführungsformen handelt es sich bei dem ersten Server-Knoten 110, dem zweiten Server-Knoten 120 und dem N-ten Server-Knoten 130 um Datenverarbeitungseinheiten, die so konfiguriert sind, dass sie in einer verteilten Umgebung arbeiten und Dateisystemoperationen durchführen. Bei einigen Ausführungsformen kann es sich bei dem ersten Server-Knoten 110, dem zweiten Server-Knoten 120 und dem N-ten Server-Knoten 130 um Blade-Server, Web-Server, Laptop-Computer, Desktop-Computer, eigenständige mobile Datenverarbeitungseinheiten, Smartphones, Tablet-Computer oder andere elektronische Einheiten oder Datenverarbeitungssysteme handeln, die in der Lage sind, Daten zu empfangen, zu senden und zu verarbeiten. Bei anderen Ausführungsformen kann es sich bei dem ersten Server-Knoten 110, dem zweiten Server-Knoten 120 und dem N-ten Server-Knoten 130 um Datenverarbeitungseinheiten handeln, die mit Anwendungen und Diensten interagieren, die in einer Cloud-Computing-Umgebung gehostet werden und arbeiten. Bei einer weiteren Ausführungsform kann es sich bei dem ersten Server-Knoten 110, dem zweiten Server-Knoten 120 und dem N-ten Server-Knoten 130 um Netbook-Computer, Personal Digital Assistants (PDAs) oder andere programmierbare elektronische Einheiten handeln, die in der Lage sind, Eingaben in das Ereignisprotokollprogramm 300 zu erzeugen und zu diesem zu übertragen und Programmieranweisungen aus diesem zu empfangen. Alternativ können der erste Server-Knoten 110, der zweite Server-Knoten 120 und der N-te Server-Knoten 130 zu Datenübertragungszwecken mit dem Ereignisprotokollprogramm 300 verbunden sein, das entfernt angeordnet arbeitet. Der erste Server-Knoten 110, der zweite Server-Knoten 120 und der N-te Server-Knoten 130 können interne und externe Hardwarekomponenten enthalten, die in 4 ausführlicher bildlich dargestellt sind.
-
Bei dem Daemon 115, dem Daemon 125 und dem Daemon 135 handelt es sich um Computerprogramme, die als Hintergrundprozess laufen. Der Daemon 115, der Daemon 125 und der Daemon 135 ermöglichen den Erzeugern 117, 127 bzw. 137, eine Dateisystemereignisaktivität zu ermitteln, die auf jeweiligen Knoten auftritt, und Ereignisinformationen zu erzeugen, die in Zusammenhang mit einer bestimmten Datei- oder Objektaktivität stehen.
-
Bei dem Erzeuger 117, dem Erzeuger 127 und dem Erzeuger 137 handelt es sich um Einheiten, die innerhalb der Daemons 115, 125 bzw. 135 arbeiten. Die Erzeuger 117, 127 und 137 ermitteln eine Dateisystemereignisaktivität auf jeweiligen Knoten und sammeln Metadaten für das Ereignis und veröffentlichen das Ereignis und die Metadaten gegenüber der Nachrichtenwarteschlange. Bei Ausführungsformen der vorliegenden Erfindung senden die Erzeuger 117, 127 und 137 Ereignismetadaten an einen Ereignisprotokollpuffer des jeweiligen Knotens, was ausführlicher bei der Erörterung von 2 beschrieben wird.
-
Bei dem Wiederherstellungsprotokoll 119, dem Wiederherstellungsprotokoll 129 und dem Wiederherstellungsprotokoll 139 handelt es sich um eine Sammlung von Protokolldateien innerhalb des ersten Server-Knotens 110, des zweiten Servers 120 bzw. des N-ten Servers 130, die Aktivitäts- und Zustandsinformationen enthalten, die eine Wiederherstellung des jeweiligen Knotens aus einem Absturz, einem Neustart oder einer anderen Verarbeitungsunterbrechung ermöglichen. Die Wiederherstellungsprotokolle 119, 129 und 139 befinden sich auf einem Permanentspeicher im ersten Server-Knoten 110, zweiten Server-Knoten 120 bzw. N-ten Server-Knoten 130. Die Wiederherstellungsprotokolle 119, 129 und 139 empfangen die Wiederherstellungsinformationen, wenn entsprechende Wiederherstellungsprotokollpuffer für den jeweiligen Server-Knoten eine Kapazitätsgrenze erreichen oder sich dieser nähern, und leeren die Wiederherstellungsinformationen aus dem jeweiligen Wiederherstellungsprotokollpuffer im Speicher in das entsprechende Wiederherstellungsprotokoll auf der Platte.
-
Bei dem Ereignisprotokoll 113, dem Ereignisprotokoll 123 und dem Ereignisprotokoll 133 handelt es sich um Dateien der Ereignisaktivität und zugehörige Metadaten der Verarbeitung auf dem ersten Server-Knoten 110, dem zweiten Server-Knoten 120 und dem N-ten Server-Knoten 130. Die Ereignisprotokolle 113, 123 und 133 befinden sich im Permanentspeicher und stellen einheitliche Ereignisinformationen im Falle einer Unterbrechung oder Fehlfunktion der Übermittlung von Ereignisinformationen der Nachrichtenwarteschlange zu einer bezeichneten Senke bereit. Die Ereignisprotokolle 113, 123 und 133 empfangen die Wiederherstellungsinformationen, wenn entsprechende Ereignisprotokollpuffer für den jeweiligen Server-Knoten eine Kapazitätsgrenze erreichen oder sich dieser nähern, und leeren die Wiederherstellungsinformationen aus dem jeweiligen Ereignisprotokollpuffer im Speicher in das entsprechende Ereignisprotokoll auf der Platte.
-
Das Ereignisprogramm 300 ist bildlich als auf jedem des ersten Server-Knotens 110, des zweiten Server-Knotens 120 und des N-ten Server-Knotens 130 arbeitend dargestellt. Bei einigen Ausführungsformen der vorliegenden Erfindung handelt es sich bei dem Ereignisprotokollprogramm 300 um eine Komponente einer verteilten Anwendung, die Daten eines geclusterten Dateisystems verwaltet und skalierbar ist, um mit einer Mehrzahl von Knoten zu arbeiten, die in dem Dateisystem-Cluster arbeiten. DateisystemÜberwachungsanwendungen verwenden die Dateisystemereignisbenachrichtigungen, um den Zustand und den Status der Dateisystem-Komponentendateien oder - Objekte, -Verzeichnisse und -Betriebsaktivitäten zu ermitteln, die Dateien/Objekte erstellen und darauf zugreifen. Bei Anwendungen, die Dateisysteme überwachen, können Ausfallssicherheitsprobleme auftreten, bei denen Unterbrechungen der Übermittlung von Ereignisbenachrichtigungen zu einer Senke auftreten, aus der die Anwendungen auf die Ereignisbenachrichtigungen zugreifen. Anwendungen, die Dateisysteme überwachen, sind möglicherweise nicht in der Lage, Übermittlungsausfälle zu tolerieren, und Ausführungsformen der vorliegenden Erfindung stellen eine zuverlässige Quelle von Ereignisbenachrichtigungen zum Wiederholen und Übermitteln an Ereignisbenachrichtigungssenken im Falle eines Fehlerzustands eines Knotens des Dateisystem-Clusters bereit.
-
Bei einigen Ausführungsformen ermittelt das Ereignisprotokollprogramm 300 eine Ereignisaktivität und weist den jeweiligen Erzeuger des Knotens an, Ereignisinformationen, die Ereignismetadaten enthalten, an den Ereignisprotokollpuffer des Knotens zu senden. Bei einigen Ausführungsformen hängt das Ereignisprotokollprogramm 300 die Ereignismetadaten eines bestimmten Ereignisses an eine JSON-Datei an, die in dem Ereignisprotokollpuffer gespeichert ist. Jede Instanz der Ereignisinformationen empfängt eine Protokollfolgenummer (log sequence number, LSN), die derselben Protokollfolgenummer der Wiederherstellungsinformationen entspricht, die in Zusammenhang mit dem Ereignis stehen, das in dem Wiederherstellungsprotokollpuffer des Knotens gespeichert ist. Bei einem bestimmten Ereignis der Dateisystemaktivität wie z.B. bei einer „Schreiben“-Aktivität auf eine Datei wird eine LSN den Wiederherstellungsinformationen zugewiesen, die in Zusammenhang mit dem Schreibereignis stehen, und an den Wiederherstellungsprotokollpuffer gesendet, und dieselbe LSN wird den Ereignisinformationen des Schreibereignisses zugewiesen, die an den Ereignisprotokollpuffer gesendet werden.
-
Bei einigen Ausführungsformen der vorliegenden Erfindung empfängt das Ereignisprotokollprogramm 300 eine LSN, die einem Satz von Wiederherstellungsinformationen in dem Wiederherstellungsprotokollpuffer entspricht. Der Satz von Wiederherstellungsinformationen enthält alle Wiederherstellungsinformationen mit LSNs, die gleich oder kleiner als die durch das Ereignisprotokollprogramm 300 empfangene LSN sind. Zum Beispiel ist der Wiederherstellungsprotokollpuffer nahe der Kapazitätsgrenze von Wiederherstellungsinformationen und erfordert ein Leeren der Wiederherstellungsinformationen aus dem Puffer in das Wiederherstellungsprotokoll im Platten-Permanentspeicher. „Leeren“ bezeichnet den Prozess des Schreibens des Inhalts im flüchtigen Speicher (d.h. Puffer) in einen Permanentspeicher auf einer Platte. Der Wiederherstellungsprotokollpuffer kennzeichnet die LSN wie z.B. LSN = 1000, die einem zuvor auf dem Knoten durchgeführten Ereignis entspricht. Der Wiederherstellungsprotokollpuffer enthält außerdem mehrere LSNs, die auf dem Knoten vor dem Ereignis durchgeführt wurden, das der LSN = 1000 entspricht. Der Wiederherstellungsprotokollpuffer kennzeichnet die höchste Folgenummer, die zum Leeren auf Plattenspeicher geplant ist, zusammen mit allen anderen Wiederherstellungsinformationen, die LSNs enthalten, die kleiner als die gekennzeichnete LSN = 1000 sind (d.h. LSN = 999, LSN = 998...usw.), wodurch der Wiederherstellungsprotokollpuffer geräumt wird, um eine Aufnahme nachfolgender Wiederherstellungsinformationen aus der auf dem Knoten durchgeführten Dateisystemaktivität zu ermöglichen.
-
Vor dem Durchführen des Leerens der Wiederherstellungsinformationen auf den Plattenspeicher wird die durch den Wiederherstellungsprotokollpuffer gekennzeichnete LSN durch das Ereignisprotokollprogramm 300 empfangen, und das Ereignisprotokollprogramm 300 ermittelt die Ereignisinformationen in dem Ereignisprotokollpuffer, die LSNs enthalten, die gleich oder kleiner als die durch den Wiederherstellungsprotokollpuffer gekennzeichnete LSN sind. Zum Beispiel empfängt das Ereignisprotokollprogramm 300 die LSN = 1000, die den Wiederherstellungsinformationen in dem Wiederherstellungsprotokollpuffer entspricht, die in den permanenten Plattenspeicher in dem Wiederherstellungsprotokoll geleert werden sollen. Das Ereignisprotokollprogramm 300 ermittelt die Ereignisinformationen, die in Zusammenhang mit Ereignissen stehen, deren LSNs gleich oder kleiner als LSN = 1000 sind. Das Ereignisprotokollprogramm 300 leert die Ereignisinformationen von Ereignissen mit LSN = 1000 oder kleiner, die sich in dem Ereignisprotokollpuffer befinden, in das Ereignisprotokoll im Permanentspeicher auf der Platte. Das Ereignisprotokollprogramm 300 teilt die Beendigung des Leerens der Ereignisinformationen auf die Platte in dem Wiederherstellungsprotokollpuffer mit, wonach der Wiederherstellungsprotokollpuffer eine Leerung von Wiederherstellungsinformationen aus dem Puffer in das Wiederherstellungsprotokoll im Permanentspeicher auf der Platte durchführt.
-
Bei einigen Ausführungsformen stellt das Ereignisprotokollprogramm 300 fest, dass sich der Ereignisprotokollpuffer an oder nahe einer Kapazität befindet, und leitet ohne Einleitung einer durch den Wiederherstellungsprotokollpuffer gekennzeichneten LSN eine Leerung von Ereignisinformationen in das Ereignisprotokoll auf der Platte ein. Bei einigen Ausführungsformen stellt das Ereignisprotokollprogramm 300 fest, dass der Ereignisprotokollpuffer keine Ereignisinformationen mit einer LSN enthält, die gleich oder kleiner als die durch den Wiederherstellungsprotokollpuffer gekennzeichnete LSN ist, wobei in diesem Fall das Ereignisprotokollprogramm 300 keine Leerung von Ereignisinformationen durchführt und stattdessen die Beendigung dem Wiederherstellungsprotokollpuffer mitteilt, um das Leeren des Wiederherstellungsprotokollpuffers einzuleiten.
-
Bei der Senke 140 handelt es sich um eine Softwareanwendung, die Übermittlungen von Ereignisbenachrichtigungen von den jeweiligen Erzeugern 117, 127, 137 des ersten Server-Knotens 110, des zweiten Server-Knotens 120 und des N-ten Server-Knotens 130 über die Nachrichtenwarteschlange empfängt. Die Senke 140 stellt eine Schnittstelle für Speichersystem-Überwachungsanwendungen zum Zugreifen auf die Ereignisbenachrichtigungen, Ermitteln des Zustands und des Status von Komponenten des Dateisystem-Clusters und zum Durchführen von Überwachungsaktivitäten des Dateisystem-Clusters bereit.
-
Zu den Speichersystemanwendungen 160 gehören eine oder mehrere Anwendungen, die Dateisystem-Speicherverwaltungs- und -Koordinationsdienste für den Dateisystem-Cluster bereitstellen, der den ersten Server-Knoten 110, den zweiten Server-Knoten 120, zwischengeschaltete Server-Knoten (nicht gezeigt) und den N-ten Server-Knoten 130 umfasst. Bei einigen Ausführungsformen fungiert das Ereignisprotokollprogramm 300 als Modulkomponente der Speichersystemanwendungen 160.
-
Zu den Speichersystem-Überwachungsanwendungen 170 gehört eine Sammlung von Client-seitigen Anwendungen, die auf Ereignisbenachrichtigungen aus der Senke 140 zugreifen und die jeweiligen Zustands-, Status-, Datei- und Verzeichnisaktivitäten des Dateisystems überwachen. Die Speichersystem-Überwachungsanwendungen 170 nutzen eine ununterbrochene Übermittlung von Ereignisbenachrichtigungen, um eine einheitliche Überwachung jeweiliger Dateisystemkomponenten und -inhalte aufrechtzuerhalten, und verwenden Ereignismetadaten, um den Zustand, den Status und die Aktivität zu ermitteln, die in Zusammenhang mit Katalogisierungsoperationen stehen, die auf das geclusterte Dateisystem angewendet werden. Die Speichersystem-Überwachungsanwendungen 170 verwenden übermittelte Ereignisbenachrichtigungen, die Aktivitäten wie z.B. Systemstatus, Anzahl von Dateien, Anzahl von Verzeichnissen, Erkennung von zu archivierenden Dateien umfassen, ermitteln Benutzer, die auf Dateien zugreifen, ermitteln Inhaltsattribute (vertrauliche Dateien), ermitteln umfangreichen Zugriff und stellen Dienste über die verteilte Speicherumgebung hinweg bereit.
-
2 ist ein Funktionsblockschema, das ein Beispiel des Leerens eines Ereignisprotokollpuffers in ein Ereignisprotokoll im Platten-Permanentspeicher gemäß Ausführungsformen der vorliegenden Erfindung veranschaulicht. 2 enthält einen Daemon 215, einen Wiederherstellungsprotokollpuffer 220, ein Wiederherstellungsprotokoll 225, einen Ereignisprotokollpuffer 230, ein Ereignisprotokoll 235, eine Leerungs-LSN 240 und eine Beendigungsreaktion 250. Der Daemon 215 enthält einen Erzeuger 217 und eine Richtlinie 219. Der Daemon 215 läuft als Hintergrundanwendung in einem Knoten des Dateisystem-Clusters, wie vorstehend in Bezug auf die Dämons 115, 125 und 135 beschrieben. Der Erzeuger 217 ermittelt eine Dateisystemereignisaktivität auf dem Knoten, sammelt Metadaten für das Ereignis und veröffentlicht das Ereignis und die Metadaten gegenüber der Nachrichtenwarteschlange. Der Erzeuger 217 sendet die Ereignisinformationen, unter anderen Metadaten, die in Zusammenhang mit dem durch den Knoten durchgeführten Ereignis stehen, an den Ereignisprotokollpuffer 230. Bei einigen Ausführungsformen sendet der Erzeuger 217 Wiederherstellungsinformationen an den Wiederherstellungsprotokollpuffer 220.
-
Die Richtlinie 219 umfasst Regeln und Bedingungen, die in Zusammenhang mit dem Zugriff und dem Aufzeichnen von Ereignisinformationen stehen, die in Zusammenhang mit dem Dateisystem stehen. Bei einigen Ausführungsformen legt die Richtlinie 219 die Ereignisse von den Dateien und Aktivitäten fest, die in den durch den Erzeuger 217 veröffentlichten Benachrichtigungen enthalten sind.
-
Der Wiederherstellungsprotokollpuffer 220 sammelt Wiederherstellungsinformationen, die in Zusammenhang mit Ereignisaktivitäten des Dateisystems stehen, die auf dem jeweiligen Knoten durchgeführt werden. Der Wiederherstellungsprotokollpuffer 220 befindet sich im flüchtigen Speicher und schreibt die Wiederherstellungsinformationen für ein Dateisystem, die im Wiederherstellungsprotokollpuffer 220 gehalten werden, in das Wiederherstellungsprotokoll 225, das sich im Permanentspeicher auf der Platte befindet. Der Wiederherstellungsprotokollpuffer 220 empfängt Informationen zum Wiederherstellen aus einer Verarbeitungsunterbrechung wie z.B. einem Absturz, einem Knoten- oder Komponentenausfall oder einem Neustart.
-
Der Wiederherstellungsprotokollpuffer 220 ermittelt, wann die Kapazität des Puffers erschöpft oder nahezu erschöpft ist, und sendet die Leerungs-LSN 240 an den Ereignisprotokollpuffer 230. Das Ereignisprotokollprogramm 300 verwendet die Leerungs-LSN 240, um die im Ereignisprotokollpuffer 230 enthaltenen Ereignisinformationen zu ermitteln, die den Wiederherstellungsinformationen im Wiederherstellungsprotokollpuffer 220 entsprechen, um das Ereignisprotokoll 235 zu leeren, das sich im Permanentspeicher auf der Platte befindet. Die Leerungs-LSN 240 ermöglicht dem Ereignisprotokollprogramm 300, den Ereignisprotokollpuffer 230 in Synchronisierung mit dem Wiederherstellungsprotokollpuffer 220 zu halten. Der Wiederherstellungsprotokollpuffer 220 empfängt die Beendigungsreaktion 250 von dem Ereignisprotokollprogramm 300, nachdem die Ereignisinformationen, die der Leerungs-LSN 240 oder einer kleineren Leerungs-LSN 240 entsprechen, aus dem Ereignisprotokollpuffer 230 in das Ereignisprotokoll 235 geleert wurden, das sich im Permanentspeicher auf der Platte befindet.
-
Der Ereignisprotokollpuffer 230 empfängt Ereignisinformationen von dem Erzeuger 217, die in Zusammenhang einer auf dem Knoten durchgeführten jeweiligen Ereignisaktivität stehen. Der Ereignisprotokollpuffer 230 hängt die Ereignisinformationen der jeweiligen Ereignisaktivitäten an eine JSON-Datei an. Die Leerungs-LSN 240 wird durch das Ereignisprotokollprogramm 300 empfangen und spiegelt den Satz von Wiederherstellungsinformationen wider, die aus dem Wiederherstellungsprotokollpuffer 220 geleert werden sollen, während der Wiederherstellungsprotokollpuffer voll wird. Der Satz von Wiederherstellungsinformationen enthält die Wiederherstellungsinformationen mit entsprechenden LSNs, die gleich oder kleiner als die Leerungs-LSN 240 sind. Das Ereignisprotokollprogramm 300 verwendet die empfangene Leerungs-LSN 240, um zu ermitteln, ob der Ereignisprotokollpuffer 230 Ereignisinformationen enthält, die dem Satz von Wiederherstellungsinformationen entsprechen, die durch die Leerungs-LSN 240 gekennzeichnet sind. Wenn der Ereignisprotokollpuffer 230 Ereignisinformationen enthält, die LSNs entsprechen, die kleiner oder gleich der Leerungs-LSN 240 sind, leitet das Ereignisprotokollprogramm 300 das Leeren der gekennzeichneten Ereignisinformationen aus dem Ereignisprotokollpuffer 230 in das Ereignisprotokoll 235 auf dem Permanentspeicher auf der Platte ein. Das Leeren von Ereignisinformationen des Ereignisprotokollpuffers vor dem Leeren des Wiederherstellungsprotokollpuffers 220 stellt sicher, dass die Ereignisprotokollinformationen auf dem Permanentspeicher Ereignisinformationen enthalten, die mit dem Dateisystemzustand übereinstimmen, der zwecks Übermittlung von Ereignisbenachrichtigungen wiederholt werden soll, wenn eine Unterbrechung oder ein Ausfall der Übermittlung von Ereignisbenachrichtigungen des Dateisystems über die Nachrichtenwarteschlange und die Senke auftritt.
-
Die Leerungs-LSN 240 enthält eine Protokollfolgenummer, die Wiederherstellungsinformationen für eine Dateisystemaktivität entspricht, die zum Leeren aus dem Wiederherstellungsprotokollpuffer 220 in das Wiederherstellungsprotokoll 225 bezeichnet sind. Das Leeren des Wiederherstellungsprotokollpuffers 220 umfasst außerdem Wiederherstellungsinformationen, die kleineren LSNs als die Leerungs-LSN 240 entsprechen, die sich aktuell im Wiederherstellungsprotokollpuffer 220 befinden. Das Ereignisprotokollprogramm 300 kann die Leerungs-LSN 240 nutzen, um die Ereignisinformationen im Ereignisprotokollpuffer 230 zu ermitteln, die in das Ereignisprotokoll 235 geleert werden sollen. Das Leeren von Ereignisinformationen umfasst Ereignisinformationen mit entsprechenden LSNs, die kleiner als die Leerungs-LSN 240 sind, die im Ereignisprotokollpuffer 230 enthalten sind.
-
Bei der Beendigungsreaktion 250 handelt es sich um eine Datenübertragung aus dem Ereignisprotokollprogramm 300, die bestätigt, dass das Leeren des Ereignisprotokollpuffers 230 beendet ist, und anzeigt, dass das Leeren des Wiederherstellungsprotokollpuffers 220 eingeleitet werden kann. Bei Ausführungsformen der vorliegenden Erfindung leert der Ereignisprotokollpuffer 230 Ereignisinformationen in das Ereignisprotokoll 235 auf der Grundlage von Ereignisinformationen, die LSNs enthalten, die gleich oder kleiner als die Leerungs-LSN 240 sind, bevor Wiederherstellungsinformationen des Wiederherstellungsprotokollpuffers 220 in das Wiederherstellungsprotokoll 225 geleert werden. Bei Ausführungsformen kann der Ereignisprotokollpuffer 230 Ereignisinformationen in das Ereignisprotokoll 235 leeren, da sich der Ereignisprotokollpuffer 230 einer Kapazität nähert oder diese erreicht hat. Bei Ausführungsformen, bei denen das Ereignisprotokollprogramm 300 feststellt, dass der Ereignisprotokollpuffer 230 keine Ereignisinformationen mit entsprechenden LSNs enthält, die gleich oder kleiner als die Leerungs-LSN 240 sind, teilt das Ereignisprotokollprogramm 300 dem Wiederherstellungsprotokollpuffer 220 eine Beendigungsreaktion mit, um das Leeren von Wiederherstellungsinformationen in das Wiederherstellungsprotokoll 225 einzuleiten.
-
3 ist ein Ablaufdiagramm, das die Operationsschritte eines Ereignisprotokollprogramms bildlich darstellt, das in der verteilten Datenverarbeitungsumgebung von 1 gemäß Ausführungsformen der vorliegenden Erfindung arbeitet. Das Ereignisprotokollprogramm 300 empfängt eine Protokollfolgenummer, die den Satz von Wiederherstellungsinformationen widerspiegelt, die zum Leeren aus dem Wiederherstellungsprotokollpuffer des Knotens in das Wiederherstellungsprotokoll im Permanentspeicher bezeichnet sind. Das bezeichnete Leeren umfasst die Wiederherstellungsinformationen mit LSNs, die gleich oder kleiner als die empfangene Protokollfolgenummer sind. Das Ereignisprotokollprogramm 300 ermittelt, ob der Ereignisprotokollpuffer Ereignisinformationen mit entsprechenden LSNs enthält, die gleich oder kleiner als die aus dem Wiederherstellungsprotokollpuffer empfangene LSN sind.
-
Das Ereignisprotokollprogramm 300 ermittelt eine Dateisystemereignisaktivität eines Knotens eines Dateisystem-Clusters (Schritt 310). Das Ereignisprotokollprogramm 300 ermittelt die Einleitung einer durch den Knoten durchgeführten Dateizugriffsaktivität. Das Ereignisprotokollprogramm 300 ermittelt die Aktivitätsart und die Metadaten und die mit der Ereignisaktivität in Zusammenhang stehenden Metadaten, die als Ereignisinformationen enthalten sind. Zum Beispiel empfängt der erste Server-Knoten 110 eine Anweisung zum Durchführen einer Schreiboperation in eine Datei des Dateisystems. Das Ereignisprotokollprogramm 300 des ersten Server-Knotens 110 erkennt die Ereignisaktivität und bereitet das Empfangen von Metadaten vor, die der auf dem Knoten durchgeführten Ereignisaktivität entsprechen.
-
Das Ereignisprotokollprogramm 300 fügt Ereignisinformationen, die in Zusammenhang mit der Ereignisaktivität des Knotens stehen, zu einem Ereignisprotokollpuffer hinzu (Schritt 320). Das Ereignisprotokollprogramm 300 empfängt die Ereignisinformationen der Ereignisaktivität, die Metadaten enthalten, die in Zusammenhang mit der Aktivität und der Datei stehen, an der die Ereignisaktivität durchgeführt wird. Das Ereignisprotokollprogramm 300 empfängt die Ereignisinformationen, die eindeutig in Zusammenhang mit der bestimmten Ereignisaktivität stehen, um eine JSON-Nachricht zu bilden, und hängt die Nachricht an einen Ereignisprotokollpuffer an, der sich im flüchtigen Speicher befindet. Der Ereignisprotokollpuffer sammelt Ereignisinformationen für mehrere Ereignisaktivitäten auf dem Knoten und ist mit der Hinzufügung von Wiederherstellungsinformationen koordiniert, die in Zusammenhang mit der bestimmten Ereignisaktivität stehen, die einem Wiederherstellungsprotokollpuffer bereitgestellt werden, der sich ebenfalls im flüchtigen Speicher befindet.
-
Zum Beispiel hängt das Ereignisprotokollprogramm 300 nach dem Empfangen der Ereignisinformationen, die spezielle Metadaten enthalten, die in Zusammenhang mit einer Schreiboperation in eine Datei des Dateisystems in Zusammenhang stehen, die auf dem ersten Server-Knoten 110 durchgeführt wurde, die Ereignisinformationen an eine JSON-Datei des Ereignisprotokollpuffers an. Die Ereignisinformationen enthalten Metadaten, die speziell in Zusammenhang mit der Schreiboperation stehen, die an der Datei des Dateisystems durchgeführt wurde, an das die Schreiboperation gerichtet ist. Die Ereignisinformationen erhalten eine Protokollfolgenummer (LSN), die die Metadaten eindeutig kennzeichnet, die in Zusammenhang mit der bestimmten Schreibereignisaktivität stehen. Die Schreibereignisaktivität erzeugt außerdem einen entsprechenden Satz von Wiederherstellungsinformationen, die eindeutig in Zusammenhang mit der bestimmten Schreibaktivität stehen und die an den Wiederherstellungsprotokollpuffer gesendet werden, der sich im Speicher befindet. Die Ereignisinformationen enthalten erheblich mehr Metadateneinzelheiten, die in Zusammenhang mit der Schreibereignisaktivität in die bestimmte Datei steht, während die Wiederherstellungsinformationen nur Informationen enthalten, die eine Wiederherstellung nach einem Fehler auf dem Knoten unterstützen. Der Wiederherstellungsprotokollpuffer empfängt dieselbe Protokollfolgenummer (LSN) für die empfangenen Wiederherstellungsinformationen, die der Ereignisprotokollpuffer für die Ereignisinformationen für dieselbe Schreibereignisaktivität empfangen hat.
-
Das Ereignisprotokollprogramm 300 empfängt eine erste Protokollfolgenummer (LSN), die in Zusammenhang mit dem Leeren eines Wiederherstellungsprotokollpuffers (Schritt 330) steht. Der Begriff „erste“ Protokollfolgenummer wird verwendet, um die bestimmte LSN von anderen LSNs zu unterscheiden, und entspricht nicht zwangsläufig einer anfänglichen LSN wie z.B. 0001. Der Wiederherstellungsprotokollpuffer empfängt weiterhin Wiederherstellungsinformationen, die in Zusammenhang mit einer Ereignisaktivität auf dem Knoten stehen. Das Ereignisprotokollprogramm 300 empfängt eine LSN, während der Wiederherstellungsprotokollpuffer ein Kapazitätsniveau erreicht oder sich nahe einem Kapazitätsniveau des Hinzufügens von Wiederherstellungsinformationen zu dem Wiederherstellungsprotokollpuffer befindet. Die durch das Ereignisprotokollprogramm 300 empfangene LSN entspricht einer höheren oder höchsten Folgenummer-LSN von Wiederherstellungsinformationen, die aktuell in dem Wiederherstellungsprotokollpuffer gehalten werden, um auf die Platte geleert zu werden, und die Leerung von Wiederherstellungsinformationen umfasst alle LSNs, die gleich oder kleiner als die erste LSN sind. Das Ereignisprotokollprogramm 300 empfängt dieselbe erste LSN wie die, die zur Leerung des Wiederherstellungsprotokollpuffers bezeichnet ist, um eine Synchronisierung zwischen dem Wiederherstellungsprotokollpuffer und dem Ereignisprotokollpuffer herzustellen.
-
Zum Beispiel stellt der Wiederherstellungsprotokollpuffer 220 (2) fest, dass sich der Wiederherstellungsprotokollpuffer 220 nahe einer Kapazität befindet und die Wiederherstellungsinformationen, die im Wiederherstellungsprotokollpuffer 220 gehalten werden, in das Wiederherstellungsprotokoll 225 geleert werden müssen, das sich auf der Platte befindet. Der Wiederherstellungsprotokollpuffer 220 sendet eine LSN (Leerungs-LSN 240) an das Ereignisprotokollprogramm 300, die zum Leeren des Ereignisprotokollpuffers 230 verwendet werden soll. Die Leerungs-LSN 240, die gesendet wird, entspricht derselben LSN, die eine höhere oder höchste Folgenummer der Wiederherstellungsinformationen enthält, die aktuell im Wiederherstellungsprotokollpuffer 220 gehalten werden, die zum Leeren vorgesehen sind. Die Leerung von Wiederherstellungsinformationen umfasst alle LSNs die gleich oder kleiner als die Leerungs-LSN 240 sind, und das Ereignisprotokollprogramm 300 verwendet dieselbe Leerungs-LSN 240, um die Ereignisinformationen zu ermitteln, die in das Ereignisprotokoll 235 auf der Platte geleert werden sollen.
-
Das Ereignisprotokollprogramm 300 ermittelt die LSNs der Ereignisinformationen, die in dem Ereignisprotokollpuffer enthalten sind (Schritt 340). Das Ereignisprotokollprogramm 300 verwendet die LSNs der in dem Ereignisprotokollpuffer enthaltenen Ereignisinformationen, um einen Bereich von LSNs einzurichten, die aktuell in dem Ereignisprotokollpuffer gehalten werden. Die LSNs der eindeutigen Instanzen von Ereignisinformationen, die dem Ereignispuffer hinzugefügt wurden, werden zum Ermitteln des Satzes von Ereignisinformationen verwendet, die den individuellen Ereignisaktivitäten entsprechen, die in das Ereignisprotokoll geleert werden, das sich auf der Platte befindet.
-
Das Ereignisprotokollprogramm 300 ermittelt, ob der Ereignisprotokollpuffer LSNs enthält, die kleiner oder gleich der ersten LSN sind (Entscheidungsschritt 350). Für den Fall, bei dem das Ereignisprotokollprogramm 300 feststellt, dass aktuell in dem Protokoll puffer keine LSNs vorliegen, die gleich oder kleiner als die empfangene erste LSN sind (Schritt 350, „NEIN“-Zweig), sendet das Ereignisprotokollprogramm 300 eine Beendigungsbestätigungsnachricht, die das Leeren der Wiederherstellungsinformationen des Wiederherstellungsprotokollpuffers in das Wiederherstellungsprotokoll einleitet, das sich auf der Platte befindet (Schritt 370).
-
Zum Beispiel empfängt das Ereignisprotokollprogramm 300 eine erste LSN = 1000, die das Leeren von Ereignisinformationen mit LSNs angibt, die kleiner als LSN = 1000 sind oder dieser entsprechen. Das Ereignisprotokollprogramm 300 stellt fest, dass in dem Ereignisprotokollpuffer alle LSNs aus einer Leerungsaktion, die unabhängig von der Koordination mit dem Wiederherstellungsprotokollpuffer 220 erfolgte, LSN = 1000 in Zusammenhang damit überschreiten, dass Ereignisinformationen sich der Kapazität des Ereignisprotokollpuffers 230 nähern. Das Ereignisprotokollprogramm 300 sendet eine Beendigungsreaktion 250 (2), um das Leeren des Wiederherstellungsprotokollpuffers 220 einzuleiten.
-
Nach dem Senden einer Beendigungsbestätigung zum Einleiten des Leerens des Wiederherstellungsprotokollpuffers endet das Ereignisprotokollprogramm 300, bleibt aber zwecks Erkennung weiterer Ereignisaktivität aktiv, die auf dem Knoten durchgeführt wird. Bei einigen Ausführungsformen der vorliegenden Erfindung erkennt das Ereignisprotokollprogramm 300 einen Fehlerzustand, der die Übermittlung von Ereignisbenachrichtigungen unterbricht, und leitet eine Wiederholung von Ereignisbenachrichtigungen ab der LSN der letzten bestätigten Ereignisinformationen aus dem Ereignisprotokoll ein, das sich im Permanentspeicher befindet. Das Bereitstellen der Wiederholung einer sicher gespeicherten Ereignisbenachrichtigung stellt die Zuverlässigkeit bei der Übermittlung von Ereignisbenachrichtigungen für interne und/oder externe Senken sicher.
-
Für den Fall, bei dem das Ereignisprotokollprogramm 300 feststellt, dass der Ereignisprotokollpuffer Ereignisinformationen mit LSNs enthält, die kleiner oder gleich der empfangenen ersten LSN sind (Schritt 350, „JA“-Zweig), leert das Ereignisprotokollprogramm" 300 die Ereignisinformationen mit LSNs in das Ereignisprotokoll auf der Platte, die kleiner oder gleich der ersten LSN sind (Schritt 360). Das Ereignisprotokollprogramm 300 leitet das Leeren des Satzes von Ereignisinformationen, von denen jede einer auf dem Knoten durchgeführten eindeutigen Ereignisaktivität entspricht, in das Ereignisprotokoll ein, das sich im Permanentspeicher auf der Platte befindet.
-
Nach dem Durchführen einer Leerung der Ereignisinformationen, die durch LSNs bezeichnet sind, die kleiner oder gleich der empfangenen ersten LSN sind, sendet das Ereignisprotokollprogramm 300 eine Beendigungsbestätigung, um das Leeren des Wiederherstellungsprotokollpuffers einzuleiten (Schritt 370), und wird wie vorstehend beschrieben fortgesetzt. Ausführungsformen der vorliegenden Erfindung berücksichtigen, dass die auf die Platte geleerten Wiederherstellungsinformationen und Ereignisinformationen durch den bezeichneten LSN-Bereich koordiniert sind, der durch Ereignis-LSNs definiert ist, die kleiner oder gleich der ersten LSN sind. Ausführungsformen berücksichtigen ferner, dass durch das Leeren des Ereignisprotokollpuffers vor dem Leeren des Wiederherstellungsprotokollpuffers eine zuverlässige geschützte Quelle von Ereignisbenachrichtigungen und entsprechende Metadaten gesichert ist und zum Wiederholen bei Erkennung eines Fehlerzustands oder einer Unterbrechung der Übermittlung von Ereignisbenachrichtigungen aus dem Knoten zur Verfügung steht.
-
Nach dem Senden einer Beendigungsbestätigung zum Einleiten des Leerens des Wiederherstellungsprotokollpuffers endet das Ereignisprotokollprogramm 300, bleibt aber zwecks Erkennung weiterer Ereignisaktivität aktiv, die auf dem Knoten durchgeführt wird. Bei einigen Ausführungsformen der vorliegenden Erfindung erkennt das Ereignisprotokollprogramm 300 einen Fehlerzustand, der die Übermittlung von Ereignisbenachrichtigungen unterbricht, und leitet eine Wiederholung von Ereignisbenachrichtigungen ab der LSN der letzten bestätigten Ereignisinformationen aus dem Ereignisprotokoll ein, das sich im Permanentspeicher befindet. Das Bereitstellen der Wiederholung einer sicher gespeicherten Ereignisbenachrichtigung stellt die Zuverlässigkeit bei der Übermittlung von Ereignisbenachrichtigungen für interne und/oder externe Senken sicher.
-
4 stellt ein Blockschema von Komponenten eines Datenverarbeitungssystems bildlich dar, unter anderem eine Datenverarbeitungseinheit 405, die so konfiguriert ist, dass sie in 1 bildlich dargestellte Komponenten umfasst oder eine funktionsmäßige Verbindung zu diesen herstellt, und die Fähigkeit aufweist, das Ereignisprotokollprogramm 300 von 3 gemäß einer Ausführungsform der vorliegenden Erfindung funktionsmäßig durchzuführen.
-
Die Datenverarbeitungseinheit 405 umfasst Komponenten und eine Funktionsfähigkeit, die der von Komponenten des ersten Server-Knotens 110, des zweiten Server-Knotens 120 und des N-ten Server-Knotens 130 (1) gemäß einer veranschaulichenden Ausführungsform der vorliegenden Erfindung ähnelt. Es sollte klar sein, dass 4 lediglich zur Veranschaulichung einer Realisierungsform dient und nicht als Einschränkung in Bezug auf die Umgebungen gedacht ist, in denen unterschiedliche Ausführungsformen realisiert werden können. An der bildlich dargestellten Umgebung können viele Abänderungen vorgenommen werden.
-
Die Datenverarbeitungseinheit 405 umfasst eine Datenübertragungsstruktur 402, die Datenübertragung zwischen (einem) Computerprozessor(en) 404, einem Speicher 406, einem Permanentspeicher 408, einer Datenverarbeitungseinheit 410 und (einer) Eingabe/Ausgabe-Schnittstelle(n) (E/A-Schnittstelle(n)) 412 bereitstellt. Die Datenübertragungsstruktur 402 kann mit einer beliebigen Architektur realisiert sein, die auf das Weiterleiten von Daten und/oder Steuerinformationen zwischen Prozessoren (beispielsweise Mikroprozessoren, Datenübertragungs- und Netzwerkprozessoren usw.) und einem Systemspeicher, Peripherieeinheiten und beliebigen anderen Hardwarekomponenten innerhalb eines Systems ausgelegt ist. Zum Beispiel kann die Datenübertragungsstruktur 402 mit einem oder mehreren Bussen realisiert sein.
-
Bei dem Speicher 406, dem Cache-Speicher 416 und dem Permanentspeicher 408 handelt es sich um durch einen Computer lesbare Speichermedien. Bei diesem Beispiel umfasst der Speicher 406 Direktzugriffsspeicher (random access memory, RAM) 414. Im Allgemeinen kann der Speicher 406 beliebige geeignete flüchtige oder nichtflüchtige, durch einen Computer lesbare Speichermedien enthalten.
-
Bei einer Ausführungsform ist das Ereignisprotokollprogramm 300 im Permanentspeicher 408 zur Ausführung durch einen oder mehrere der jeweiligen Computerprozessoren 404 über einen oder mehrere Speicher des Speichers 406 gespeichert. Bei dieser Ausführungsform umfasst der Permanentspeicher 408 ein magnetisches Festplattenlaufwerk. Alternativ oder zusätzlich zu einem magnetischen Festplattenlaufwerk kann der Permanentspeicher 408 einen Halbleiterdatenträger (solid state hard drive), eine Halbleiterspeichereinheit, einen Nur-Lese-Speicher (read-only memory, ROM), einen löschbaren programmierbaren Nur-Lese-Speicher (erasable programmable read-only memory, EPROM), einen Flash-Speicher oder beliebige andere durch einen Computer lesbare Speichermedien enthalten, die in der Lage sind, Programmanweisungen oder digitale Informationen zu speichern. Bei einer Ausführungsform der vorliegenden Erfindung sind das Wiederherstellungsprotokoll 225 und das Ereignisprotokoll 235 im Permanentspeicher 408 enthalten.
-
Die durch den Permanentspeicher 408 verwendeten Medien können außerdem wechselbar sein. Zum Beispiel kann als Permanentspeicher 408 ein wechselbares Festplattenlaufwerk verwendet werden. Zu anderen Beispielen gehören optische und magnetische Platten, USB-Sticks und Smart-Cards, die in ein Laufwerk zum Übertragen auf ein weiteres, durch einen Computer lesbares Speichermedium eingeführt werden, das ebenfalls Teil des Permanentspeichers 408 ist.
-
Die Datenübertragungseinheit 410 stellt bei diesen Beispielen Datenübertragung mit anderen Datenverarbeitungssystemen oder -einheiten bereit, unter anderem mit Ressourcen der verteilten Datenverarbeitungsumgebung 100. Bei diesen Beispielen umfasst die Datenübertragungseinheit 410 eine oder mehrere Netzwerkschnittstellenkarten. Die Datenübertragungseinheit 410 kann Datenübertragung über die Verwendung von entweder physischen Datenübertragungsverbindungen oder kabellosen Datenübertragungsverbindungen oder beidem bereitstellen. Das Ereignisprotokollprogramm 300 kann über die Datenübertragungseinheit 410 in den Permanentspeicher 408 heruntergeladen werden.
-
Die E/A-Schnittstelle(n) 412 ermöglicht bzw. ermöglichen die Eingabe und Ausgabe von Daten mit anderen Einheiten, die mit dem Datenverarbeitungssystem 400 verbunden sein können. Zum Beispiel kann die E/A-Schnittstelle 412 eine Verbindung zu externen Einheiten 418 wie z.B. zu einer Tastatur, einem Tastenfeld, einem Touchscreen und/oder einer anderen geeigneten Eingabeeinheit bereitstellen. Zu externen Einheiten 418 können außerdem transportable, durch einen Computer lesbare Speichermedien wie z.B. USB-Sticks, transportable optische oder magnetische Platten und Speicherkarten gehören. Software und Daten, die zur praktischen Umsetzung von Ausführungsformen der vorliegenden Erfindung verwendet werden, z.B. das Ereignisprotokollprogramm 300, können auf derartigen transportablen, durch einen Computer lesbaren Speichermedien gespeichert sein und über E/A-Schnittstellen 412 in den Permanentspeicher 408 geladen werden. Die E/A-Schnittstellen 412 stellen außerdem eine Verbindung zu einer Anzeige 420 her.
-
Die Anzeige 420 stellt einen Mechanismus bereit, um einem Benutzer Daten anzuzeigen, und kann sich hierbei zum Beispiel um einen Computermonitor handeln.
-
Die hierin beschriebenen Programme sind auf der Grundlage der Anwendung bezeichnet, für die sie bei einer bestimmten Ausführungsform der Erfindung realisiert sind. Es sollte jedoch klar sein, dass hierin eine bestimmte Programmbenennung lediglich der Vereinfachung dient und die Erfindung daher nicht auf die Verwendung ausschließlich in einer bestimmten Anwendung begrenzt sein soll, die durch eine derartige Benennung bezeichnet oder stillschweigend darin eingeschlossen ist.
-
Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt in einem beliebigen möglichen Integrationsgrad technischer Einzelheiten handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) enthalten, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
-
Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, auf der Anweisungen zur Verwendung durch eine Einheit zur Ausführung von Anweisungen aufbewahrt und gespeichert sein können. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel, ohne auf diese beschränkt zu sein, um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder eine beliebige geeignete Kombination des Vorstehenden handeln. Eine nicht erschöpfende Liste genauerer Beispiele des durch einen Computer lesbaren Speichermediums enthält Folgendes: eine transportable Computerdiskette, eine Festplatte, einen Direktzugriffsspeicher (Random Access Memory, RAM), einen Nur-Lese-Speicher (Read-Only Memory, ROM), einen löschbaren programmierbaren Nur-Lese-Speicher (Erasable Programmable Read-Only Memory, EPROM oder Flash-Speicher), einen statischen Direktzugriffsspeicher (Static Random Access Memory, SRAM), einen transportablen Nur-Lese-Speicher in Form einer Compact Disc (CD-ROM), eine Digital Versatile Disc (DVD), einen Speicherstick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhöhte Strukturen in einer Rille mit darauf aufgezeichneten Anweisungen oder beliebige geeignete Kombinationen des Vorstehenden. Ein durch einen Computer lesbares Speichermedium im hierin verwendeten Sinne ist nicht so auszulegen, dass es sich dabei um flüchtige Signale an sich handelt, beispielsweise um Funkwellen oder sich frei ausbreitende elektromagnetische Wellen, um elektromagnetische Wellen, die sich durch einen Hohlleiter oder andere Übertragungsmedien ausbreiten (z.B. ein Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder um elektrische Signale, die über ein Kabel übertragen werden.
-
Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können über ein Netzwerk, zum Beispiel das Internet, ein lokales Netzwerk ein Weitverkehrsnetzwerk und/oder ein kabelloses Netzwerk von einem durch einen Computer lesbaren Speichermedium auf betreffende Datenverarbeitungs-/Verarbeitungseinheiten oder auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenleiter, kabellose Übertragung, Router, Firewalls, Switches, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder eine Netzwerkschnittstelle bei jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der jeweiligen Datenverarbeitungs-/Verarbeitungseinheit weiter.
-
Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Operationen der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (ISA = Instruction-Set-Architecture), Maschinenanweisungen, - maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben sind, unter anderem objektorientierte Programmiersprachen wie z.B. Smalltalk, C++ oder dergleichen sowie prozedurale Programmiersprachen wie z.B. die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. Beim letztgenannten Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über eine beliebige Art von Netzwerk verbunden sein, unter anderem über ein lokales Netzwerk (Local Area Network, LAN) oder über ein Weitverkehrsnetzwerk (Wide Area Network, WAN), oder die Verbindung kann zu einem externen Computer hergestellt sein (zum Beispiel über das Internet unter Nutzung eines Internet-Dienstanbieters (Internet Service Provider)). Bei einigen Ausführungsformen können elektronische Schaltungen, unter anderem zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logik-Arrays (PLA,) die durch einen Computer lesbaren Programmanweisungen ausführen, indem Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen genutzt werden, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
-
Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Flussdiagrammdarstellungen und/oder Blockschemata von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird klar sein, dass jeder Block der Flussdiagramme und/oder der Blockschemata und Kombinationen von Blöcken in den Flussdiagrammen und/oder Blockschemata mit Hilfe von durch einen Computer lesbaren Programmanweisungen realisiert werden kann bzw. können.
-
Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Computers oder anderer programmierbarer Datenverarbeitungsvorrichtungen bereitgestellt werden, um eine Maschine zu erzeugen, sodass die Anweisungen, die über den Prozessor des Computers oder anderer programmierbarer Datenverarbeitungsvorrichtungen ausgeführt werden, Mittel schaffen, um die in einem Block bzw. in den Blöcken des Flussdiagramms bzw. der Flussdiagramme und/oder des Blockschemas bzw. der Blockschemata angegebenen Funktionen/Aktionen zu realisieren. Diese durch einen Computer lesbaren Programmanweisungen können ebenfalls in einem durch einen Computer lesbaren Medium gespeichert sein, das einen Computer, andere programmierbare Datenverarbeitungsvorrichtungen oder andere Einheiten anweisen kann, in einer bestimmten Weise zu funktionieren, sodass das durch einen Computer lesbare Medium mit darauf gespeicherten Anweisungen ein Erzeugnis aufweist, das Anweisungen enthält, die die in einem Block bzw. in den Blöcken der Flussdiagramme und/oder der Blockschemata angegebene Funktion/Aktion realisieren.
-
Die durch einen Computer lesbaren Programmanweisungen können auch in einen Computer, in andere programmierbare Datenverarbeitungsvorrichtungen oder in andere Einheiten geladen werden, um zu bewirken, dass auf dem Computer, auf anderen programmierbaren Vorrichtungen oder anderen Einheiten eine Reihe von Operationen ausgeführt werden, um einen mittels Computer realisierten Prozess zu schaffen, sodass die Anweisungen, die auf dem Computer, auf anderen programmierbaren Vorrichtungen oder anderen Einheiten ausgeführt werden, die in einem Block bzw. in den Blöcken der Flussdiagramme und/oder der Blockschemata angegebenen Funktionen/Aktionen realisieren.
-
Die Flussdiagramme und Blockschemata in den Figuren veranschaulichen die Architektur, Funktionalität und Wirkungsweise möglicher Realisierungsformen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Flussdiagrammen bzw. in den Blockschemata ein Modul, ein Segment oder einen Abschnitt von Anweisungen darstellen, das bzw. der eine oder mehrere ausführbare Anweisungen zum Realisieren der angegebenen Logikfunktion bzw. Logikfunktionen aufweist. Bei einigen alternativen Realisierungsformen können die in dem Block angegebenen Funktionen in einer anderen als in der Reihenfolge ausgeführt werden, die in den Figuren angegeben ist. Zum Beispiel können zwei hintereinander gezeigte Blöcke tatsächlich als ein Schritt ausgeführt, gleichzeitig, Wesentlichen gleichzeitig, in einer teilweise oder vollständig zeitlich überlappenden Weise ausgeführt werden, oder die Blöcke können je nach der mit den Blöcken verbundenen Funktionalität manchmal in umgekehrter Reihenfolge ausgeführt werden. Darüber hinaus ist anzumerken, dass jeder Block der Blockschemata und/oder Flussdiagrammdarstellungen sowie Kombinationen von Blöcken in den Blockschemata und/oder Flussdiagrammdarstellungen mit Hilfe zweckgebundener hardwaregestützter Systeme zum Ausführen der angegebenen Funktionen bzw. Aktionen oder mit Hilfe von Kombinationen aus zweckgebundener Hardware und zweckgebundenen Computeranweisungen realisiert werden kann bzw. können.