DE112012000282B4 - Anwendungswiederherstellung in einem Dateisystem - Google Patents

Anwendungswiederherstellung in einem Dateisystem Download PDF

Info

Publication number
DE112012000282B4
DE112012000282B4 DE112012000282.2T DE112012000282T DE112012000282B4 DE 112012000282 B4 DE112012000282 B4 DE 112012000282B4 DE 112012000282 T DE112012000282 T DE 112012000282T DE 112012000282 B4 DE112012000282 B4 DE 112012000282B4
Authority
DE
Germany
Prior art keywords
application
copy
server node
computer
cluster
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.)
Active
Application number
DE112012000282.2T
Other languages
English (en)
Other versions
DE112012000282T5 (de
Inventor
Karan Gupta
Himabindu Pucha
Prasenjit Sarkar
Dinesh Subhraveti
Reshu Jain
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112012000282T5 publication Critical patent/DE112012000282T5/de
Application granted granted Critical
Publication of DE112012000282B4 publication Critical patent/DE112012000282B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • 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

Abstract

Verfahren zum Verwalten von Anwendungsverarbeitung in einem Computersystem, wobei das Verfahren die Schritte aufweist des:Konfigurierens eines Shared-Nothing-basierten Cluster-Dateisystems mit einem verteilten Satz an Serverknoten, aufweisend einen ersten Serverknoten und einen zweiten Serverknoten;Speicherns einer ersten Kopie einer ersten Anwendung lokal auf dem ersten Knoten in einem ersten Schreibaffinitäts-Bereich;Speicherns einer zweiten Kopie der ersten Anwendung lokal auf dem zweiten Serverknoten in einem zweiten Schreibaffinitäts-Bereich;Speicherns einer dritten Kopie der ersten Anwendung über Wide-Striping-Bereiche in dem Cluster;lokalen Bedienens der ersten Anwendung von dem ersten Serverknoten;in Reaktion auf einen Ausfall der ersten Anwendung, des Verlagerns der ersten Anwendung auf den zweiten Serverknoten, der durch die zweite Kopie unterstützt wird; undWiederherstellens der ersten Anwendung lokal auf dem ersten Serverknoten mit der dritten Kopie.

Description

  • Technisches Gebiet
  • Diese Erfindung betrifft Wiederherstellung von Anwendungsverarbeitung in einem Computersystem. Insbesondere betrifft die Erfindung Anwendungsausfall und Wiederherstellung einer ausgefallenen Anwendung auf transparente Weise.
  • Technischer Hintergrund
  • Ein Datenspeicherblock beziehungsweise ein Speicherblock, nachfolgend als Block bezeichnet, ist für bestimmte Bereiche von Adressraum auf einer Speichereinheit ausgelegt. So kann ein Datenblock beispielsweise eine Anhäufung von Sektoren oder Bytes in einem Bereich eines Plattenraumes sein. Blöcke werden als Einheiten bearbeitet. Werden große Blöcke zugeordnet, kann eine große Menge an Daten in einer einzigen Eingabe/Ausgabe-(E/A)-Transaktion abgerufen werden. In einer Ausführungsform handelt es sich bei einem Block um eine Dateneinheit einer festen Größe, die insgesamt übertragen wird. Bei einem Dateisystem handelt es sich um eine Sammlung von Dateidaten, die von einer Implementierung verwaltet werden, welche Dateidaten in einer Datei- und/oder Verzeichnishierarchie speichert, organisiert und verwaltet. Dateisysteme verwenden Verfahren zum Schreiben von Daten auf Speichermedien unter Anwendung von Verfahren zur Blockzuordnung. Normalerweise stellt ein Speichersystem Zugriff auf Daten bereit, die auf einer oder mehreren Speichereinheiten gespeichert sind, die mit dem Speichersystem verbunden sind. Zugriff auf die Daten ist möglich, indem die Speichereinheiten in Volumes organisiert werden, welche die auf den Speichereinheiten gespeicherten Daten logisch organisieren.
  • Das Speichersystem kann des Weiteren so konfiguriert sein, dass es gemäß einem Client-/Servermodell für Datenbereitstellung arbeitet, bei dem viele Clients auf Datencontainer zugreifen können, die auf dem System gespeichert sind. Bei diesem Modell kann der Client eine Anwendung wie beispielsweise eine Datenbankanwendung verwenden, die auf einem Computer ausgeführt wird, der über ein Computernetzwerk mit dem Speichersystem verbunden ist. Jeder Client kann die Dienste des Speichersystems anfordern, indem dateibasierte Protokollmitteilungen über das Netzwerk an das System ausgegeben werden. Es können viele Speichersysteme miteinander verbunden sein, womit eine Speichersystemumgebung mit einer Konfiguration bereitgestellt wird, bei der viele Clients bedient werden. Jedes Speichersystem kann so konfiguriert sein, dass es einen oder mehrere Volumes bedient, wobei jedes Volume einen oder mehrere Datencontainer speichert.
  • In einem Shared-Nothing-Cluster (SNC) kann es jedoch, wenn Anwendungen ausfallen und wenn ausgefallene Anwendungen wiederhergestellt werden, zu hohen Leistungseinbußen für Anwendungen kommen.
  • Dementsprechend besteht auf dem Gebiet der Technik ein Bedarf zum Behandeln des vorstehend beschriebenen Problems.
  • Die US 8 326 990 B1 offenbart Verfahren und Systeme für die Zuweisung von Datenpartitionen zu datenverarbeitenden Host-Computern, z. B. für die anfängliche Zuweisung von Datenpartitionen zu Beginn eines großen Datenverarbeitungsauftrags oder während Failover-Maßnahmen, die als Reaktion auf einen ausgefallenen Host in einem Share-Nothing-Datenbankmanagementsystem (SN-DBMS) getroffen werden. In einer Implementierung bewertet ein Verfahren zur Verwaltung eines exklusiven Zugriffs auf eine Datenpartition innerhalb eines Datenbanksystems einen ersten Host und einen zweiten Host, die exklusiven Zugriff auf eine erste bzw. zweite Datenpartition innerhalb des Datenbanksystems haben. Das Verfahren weist den exklusiven Zugriff auf die Datenpartition einem der ersten und zweiten Hosts auf der Grundlage von Faktoren zu, die die Verarbeitungsleistung des ersten und zweiten Hosts und die Verarbeitungsanforderungen (wie Datenmenge und Datenkritikalität) für Daten auf der ersten und zweiten Datenpartition umfassen können.
  • Die US 2007 / 0 220 223 A1 offenbart ein Verfahren, ein System und ein Programm zum Fernkopieren von Aktualisierungen auf primäre und sekundäre Speicherplätze, die einer Kopierbeziehung unterliegen. Eine erste Kopierbeziehung wird zwischen ersten und zweiten Speicherplätzen in einem ersten Speichersystem bzw. zweiten Speichersystem hergestellt, wobei Aktualisierungen der ersten Speicherplätze in die zweiten Speicherplätze kopiert werden. Eine zweite Kopierbeziehung wird zwischen den ersten Speicherplätzen in der ersten Kopierbeziehung und dritten Speicherplätzen in einem dritten Speichersystem hergestellt, wobei Aktualisierungen an den ersten Speicherplätzen in einer ersten Bitmap angezeigt werden. Eine ausgesetzte dritte Kopierbeziehung wird zwischen den zweiten Speicherplätzen in der ersten Kopierbeziehung und den dritten Speicherplätzen hergestellt, wobei Aktualisierungen der zweiten Speicherplätze in einer zweiten Bitmap angezeigt werden. Aktualisierungen werden von den ersten oder zweiten Speicherplätzen zu den dritten Speicherplätzen kopiert, wobei die erste oder zweite Bitmap verwendet werden kann, um Aktualisierungen für die ersten oder zweiten Speicherplätze zu bestimmen, die zu den dritten Speicherplätzen kopiert werden sollen.
  • Die US 6 697 960 B1 offenbart ein System und Verfahren, das die Spiegelung von Daten in einen Wiederherstellungsstandort in Echtzeit ermöglicht, so dass Daten, die in einem primären Datenzentrum auf eine Platte geschrieben werden, gleichzeitig auf eine Platte an einem Wiederherstellungsstandort kopiert werden, wodurch die Verwendung separater magnetischer Medien für diesen Zweck vermieden wird. Die Echtzeit-Spiegelung der Daten erfolgt in einer separaten Einrichtung, die über entsprechende Kommunikationsleitungen mit einem ersten Mainframe-Rechenzentrum verbunden ist. Die Operationen des sekundären Rechenzentrums werden mit den Operationen des primären Rechenzentrums auf dem neuesten Stand gehalten, so dass im Falle eines Systemausfalls die Operationen des Rechenzentrums schnell wiederhergestellt werden können.
  • KURZDARSTELLUNG
  • Zu den der Erfindung zugrundeliegenden Aufgaben zählt das Bereitstellen eines Verfahrens, eines Systems und eines Computerprogrammprodukts, das im Kontext eines Shared-Nothing-basierten Cluster-Dateisystems eine Wiederherstellung ausgefallener Anwendungen mit geringeren Leistungseinbußen für Anwendungen ermöglicht. Die der Erfindung zugrundeliegenden Aufgaben werden jeweils mit den Merkmalen der unabhängigen Patentansprüche gelöst. Ausführungsformen der Erfindung sind Gegenstand der abhängigen Patentansprüche.
  • Diese Erfindung betrifft ein Verfahren, ein System und einen Artikel für Transparenz bei Wiederherstellung und Leistung einer Anwendung in einem Cluster-Dateisystem.
  • In einem Aspekt der Erfindung wird ein Verfahren zum Konfigurieren eines Cluster-Dateisystems mit Shared-Nothing-Architektur mit einem verteilten Satz von Serverknoten bereitgestellt, das sowohl einen ersten Serverknoten als auch einen zweiten Serverknoten in dem Cluster aufweist. Eine erste Kopie einer ersten Anwendung wird lokal auf dem ersten Serverknoten in einem ersten Schreibaffinitäts-Bereich gespeichert, und eine zweite Kopie der ersten Anwendung wird lokal auf einem zweiten Serverknoten in einem Schreibaffinitäts-Bereich des zweiten Serverknotens gespeichert. Des Weiteren wird eine dritte Kopie der ersten Anwendung über Wide-Striping-Bereiche in dem Cluster gespeichert. Die erste Anwendung wird von dem ersten Serverknoten bedient. Nach einem Ausfall der ersten Anwendung geht die Verarbeitung der ersten Anwendung von dem ersten Server auf den zweiten Serverknoten über, der von der zweiten Kopie unterstützt wird. Des Weiteren wird die erste Anwendung unter Verwendung der dritten Kopie wiederhergestellt.
  • In einem weiteren Aspekt der Erfindung wird ein Computersystem mit einem Cluster-Dateisystem mit Shared-Nothing-Architektur mit einem verteilten Satz an Serverknoten bereitgestellt, das sowohl einen ersten Serverknoten als auch einen zweiten Serverknoten aufweist. Eine erste Kopie einer ersten Anwendung wird lokal zu dem ersten Serverknoten bereitgestellt und in einem ersten Schreibaffinitäts-Bereich lokal zu dem ersten Serverknoten gespeichert, eine zweite Kopie der ersten Anwendung wird in einem zweiten Schreibaffinitäts-Bereich lokal zu dem zweiten Serverknoten gespeichert, und eine dritte Kopie der ersten Anwendung wird über Wide-Striping-Bereiche in dem Cluster gespeichert. In dem Cluster wird ein Service-Manager bereitgestellt, um lokale Dienste einer ersten Anwendung von dem ersten Server zu unterstützen, und es wird ein Kopien-Manger in dem Cluster bereitgestellt, um eine Anzahl an Replikationskopien der ersten Anwendung für Wide Striping festzulegen. Nach einem Ausfall der ersten Anwendung durch den Service-Manager wird ein Wiederherstellungs-Manager bereitgestellt, um die Anwendungsverarbeitung der ersten Anwendung auf den zweiten Serverknoten in dem Cluster mit der zweiten Kopie zu verlagern, und um mit dem Kopien-Manager zu kommunizieren, um die ausgefallene erste Anwendung unter Verwendung der dritten Kopie wiederherzustellen.
  • In noch einem weiteren Aspekt der Erfindung wird ein Computerprogrammprodukt mit einem computerlesbaren Speichermedium mit einem darauf ausgebildeten computerlesbaren Programmcode bereitgestellt. Genauer gesagt wird ein computerlesbarer Programmcode bereitgestellt, um zwei oder mehr Bereichstypen in einem Dateisystem für eine Blockzuweisung zu definieren. Bei einem der Bereichstypen handelt es sich um einen Schreibaffinitäts-Bereich, und bei dem anderen Bereichstyp handelt es sich um einen Wide-Striping-Bereich. Der computerlesbare Programmcode wird bereitgestellt, um eine erste Anwendung von einer ersten Schreibaffinitäts-Kopie lokal zu bedienen. Nach Ausfall der ersten Anwendung wird der computerlesbare Programmcode bereitgestellt, um die Anwendungsverarbeitung der ersten Anwendung unter Verwendung einer replizierten Schreibaffinitäts-Kopie der ersten Anwendung auf einen anderen Serverknoten in dem Cluster zu verlagern. Zusätzlich zu der Schreibaffinitäts-Kopie wird der computerlesbare Programmcode bereitgestellt, um Kopien von Daten der ersten Anwendung zum Speichern einer dritten Kopie der ersten Anwendung in Wide-Striping-Bereichen über den Cluster auszuwählen. Der computerlesbare Programmcode wird bereitgestellt, um die erste Anwendung mit der Kopie der ersten Anwendung in den Wide-Striping-Bereichen wiederherzustellen.
  • In einem weiteren Aspekt wird ein Cluster-Dateisystem mit einem verteilten Satz von Serverknoten bereitgestellt. Eine erste Anwendung wird lokal von einem ersten Serverknoten bedient. Nach einem Ausfall der ersten Anwendung wird die Verarbeitung auf einen anderen Serverknoten in dem Cluster verlagert, der eine replizierte Kopie der ersten Anwendung in einem Schreibaffinitäts-Bereich hostet. Des Weiteren wird die ausgefallene erste Anwendung unter Verwendung verteilter Segmente von Wide-Striping-Bereichen über den Cluster wiederhergestellt.
  • Gemäß einem weiteren Aspekt stellt die vorliegende Erfindung ein Computerprogrammprodukt zum Verwalten von Anwendungsverarbeitung in einem Computersystem bereit, wobei das Computerprogrammprodukt aufweist: ein computerlesbares Speichermedium, das von einer Verarbeitungsschaltung lesbar ist und Anweisungen zum Ausführen durch die Verarbeitungsschaltung zum Durchführen eines Verfahrens speichert, um die Schritte der Erfindung durchzuführen.
  • Gemäß einem weiteren Aspekt stellt die vorliegende Erfindung ein Computerprogramm bereit, das auf einem computerlesbaren Medium gespeichert ist und in den internen Speicher eines digitalen Computers ladbar ist, aufweisend Softwarecodeabschnitte zum Durchführen der Schritte der Erfindung, wenn das Programm auf einem Computer ausgeführt wird.
  • Anhand der folgenden ausführlichen Beschreibung der hierin bevorzugten Ausführungsform der Erfindung werden, wenn diese gemeinsam mit den beigefügten Zeichnungen gelesen wird, weitere Leistungsmerkmale und Vorteile dieser Erfindung offensichtlich.
  • Figurenliste
  • Im Folgenden wird die vorliegende Erfindung in Bezug auf die bevorzugten Ausführungsformen lediglich im beispielhaften Sinne in ihrer in den folgenden Figuren veranschaulichten Form beschrieben:
    • 1 ist ein Blockschaubild einer Logikansicht einer Blockzuordnungsliste (block allocation map) für Wide Striping;
    • 2 ist ein Blockschaubild einer Logikansicht einer Blockzuordnungsliste (block allocation map) für Schreibaffinität;
    • 3 ist ein Ablaufplan, der den grundlegenden Prozess zum Unterstützen von Transparenz in einem Ausfallszenario veranschaulicht;
    • 4 ist ein Ablaufplan, der den Prozess zum Wiederherstellen einer Anwendung anhand der auf Wide Striping beruhenden Replikationen über Serverknoten in dem Cluster veranschaulicht;
    • 5 ist ein Blockschaubild, das in einem Computersystem enthaltene Tools zum Unterstützen einer fortgesetzten Verarbeitung von Transaktionen in einem Cluster-Dateisystem mit Shared-Nothing-Architektur veranschaulicht; und
    • 6 ist ein Blockschaubild, das ein System zum Implementieren einer Ausführungsform der vorliegenden Erfindung darstellt.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Es ist ersichtlich, dass die Komponenten der vorliegenden Erfindung in ihrer hierin grundlegend beschriebenen und in den Figuren veranschaulichten Form in einer großen Reihe unterschiedlicher Konfigurationen ausgebildet sein können. Demzufolge beabsichtigt die folgende ausführliche Beschreibung der Ausführungsformen der Vorrichtung, des Systems und des Verfahrens der vorliegenden Erfindung in ihrer in den Figuren dargestellten Form keine Beschränkung des Schutzumfangs der Erfindung gemäß ihren Ansprüchen, sondern stellt lediglich ausgewählte Ausführungsformen der Erfindung dar.
  • Die in dieser Patentschrift beschriebenen Funktionseinheiten werden als Manager bezeichnet. Ein Manager kann in programmierbaren Hardware-Einheiten wie beispielsweise feldprogrammierbaren Gate-Arrays (FPGA), Programmable Array Logic (PAL), programmierbaren Logikeinheiten (PLD) oder Ähnlichem implementiert sein. Der Manager kann auch in Software zum Verarbeiten durch verschiedene Typen von Prozessoren implementiert sein. Ein identifizierter Manager eines ausführbaren Codes kann beispielsweise einen oder mehrere physische oder logische Blöcke von Computeranweisungen aufweisen, die beispielsweise als ein Objekt, eine Verfahrensweise, eine Funktion oder eine andere Struktur organisiert sein können. Dennoch müssen die ausführbaren Dateien (executables) eines identifizierten Managers nicht notwendigerweise physisch an einem Ort zusammen positioniert sein, sondern können voneinander unterschiedliche und an verschiedenen Orten gespeicherte Anweisungen aufweisen, die, wenn sie logisch zusammengruppiert werden, den Manager darstellen und die ausgewiesene Aufgabe des Managers verrichten.
  • Tatsächlich kann es sich bei dem Manager eines ausführbaren Codes um eine einzelne Anweisung oder viele Anweisungen handeln, die sogar über mehrere unterschiedliche Codesegmente, zwischen verschiedenen Anwendungen und über mehrere Speichereinheiten hinweg verteilt sein können. Auf ähnliche Weise können Funktionsdaten innerhalb des Managers identifiziert werden und in jeder beliebigen geeigneten Form ausgebildet und in jedem beliebigen Typ von Datenstruktur organisiert sein, wie dies hierin veranschaulicht ist. Die Funktionsdaten können als einzelner Datensatz erfasst sein oder über verschiedene Bereiche, unter anderem über unterschiedliche Speichereinheiten verteilt sein, und können zumindest teilweise als elektronische Signale auf einem System oder Netzwerk vorhanden sein.
  • Mit dem Bezug auf „eine ausgewählte Ausführungsform“, „Ausführungsform“ oder „eine Ausführungsform“ in dieser Patentschrift ist gemeint, dass ein bestimmtes Merkmal, eine Struktur oder eine Eigenschaft, die hierin im Zusammenhang mit der Ausführungsform beschrieben wird, in wenigstens einer Ausführungsform der vorliegenden Erfindung enthalten ist. Dementsprechend beziehen sich die Formulierungen „eine ausgewählte Ausführungsform“, „Ausführungsform“ oder „eine Ausführungsform“ an verschiedenen Stellen in dieser Patentschrift nicht notwendigerweise auf die gleiche Ausführungsform.
  • Des Weiteren können die beschriebenen Merkmale, Strukturen oder Eigenschaften auf jede beliebige geeignete Weise in einer oder mehreren Ausführungsformen kombiniert werden. In der folgenden Beschreibung werden viele spezielle Einzelheiten angeführt, wie Beispiele eines Schreibstrom-Managers (write stream manager) usw., um ein gründliches Verständnis der Ausführungsformen der Erfindung zu gewährleisten. Fachleuten wird jedoch ersichtlich sein, dass die Erfindung auch ohne die eine oder die mehreren speziellen Einzelheiten oder mit anderen Verfahren, Komponenten, Materialien usw. ausgebildet sein kann. In anderen Fällen werden gut bekannte Strukturen, Materialien oder Operationen nicht dargestellt oder ausführlich beschrieben, um Verwirrung zu Aspekten der Erfindung zu vermeiden.
  • Die veranschaulichten Ausführungsformen der Erfindung werden am besten mit Bezug auf die Zeichnungen verstanden, in denen gleiche Teile mit gleichen Nummern versehen sind. Die folgende Beschreibung ist nur im beispielhaften Sinne zu betrachten und veranschaulicht einfach bestimmte ausgewählte Ausführungsformen von Einheiten, Systemen und Prozessen, die der Erfindung in ihrer hierin beanspruchten Form entsprechen.
  • Bei einem Cluster-Dateisystem handelt es sich um ein Speicherdateisystem eines Unternehmens, auf das von mehreren Computern gleichzeitig zum Lesen und Schreiben zugegriffen werden kann. Genauer gesagt liegen in solchen Dateisystemen die Computer in Form von Cluster-Servern vor, die mit einer zugrundeliegenden Speichereinheit verbunden sind. Es gibt verschiedene Architekturansätze für ein gemeinsam genutztes (shared) Plattendateisystem, unter anderem werden Dateidaten zwischen allen Servern in dem Cluster verteilt, um ein konsistentes Dateisystembild zwischen den Cluster-Servern zu gewährleisten. Jede Speichereinheit in dem Speicherdateisystem besitzt eine Vielzahl von Blöcken; jeder Block ist eine Dateneinheit einer festen Größe auf einer Speichereinheit. Daten werden in gruppierten Blöcken in den Speicher geschrieben und auf ähnliche Weise in gruppierten Blöcken von dem Speicher gelesen. In einer Ausführungsform adressieren Dateisysteme Daten in Blöcken, die eine bestimmte Anzahl von Plattensektoren (disk sectors) enthalten; die kleinste Menge an Plattenraum, der zum Lesen und Schreiben zugeordnet werden kann.
  • In dem Dateisystem werden zwei Typen von Blockbereichen definiert, ein Schreibaffinitäts-Bereich und ein Wide-Striping-Bereich. Der Schreibaffinitäts-Bereich besitzt Blöcke vom Datenspeicher lokal zu einem Server in dem Cluster. Der Wide-Striping-Bereich besitzt Blöcke von allen Datenspeichern innerhalb des Cluster. Mit anderen Worten ist der Schreibaffinitäts-Bereich auf Blöcke beschränkt, die lokal zu einem Serverknoten sind, und der Wide-Striping-Bereich weist Blöcke auf, die zwischen den Speichereinheiten des Cluster, einschließlich wenigstens einer Speichereinheit, die lokal zu dem Serverknoten ist, verteilt sind. Das Schreiben von Daten in einen Schreibaffinitäts-Bereich ist dann wünschenswert, wenn Netzwerkverkehr verringert und damit die Schreibleistung verbessert werden muss. Gleichzeitig können durch Wide Striping alle Serverknoten und Plattenressourcen in dem Cluster einheitlich verwendet werden.
  • 1 ist ein Blockschaubild (100) einer Blockzuordnungsliste (block allocation map) für Wide Striping. Wie dies hierin dargestellt ist, sind vier Formen von Datenspeichern (110), (120), (130), und (140) vorhanden. Jeder Datenspeicher besitzt Blöcke, wobei die unterbrochenen Linien (112), (122), (132) und (142) Blöcke darstellen, die nicht verfügbar sind, weil sie Schreibaffinitäts-Transaktionen zugeordnet sind, und die leeren Blöcke (114), (124), (134), und (144) in Wide-Striping-Bereichen (150), (152) und (154), die für eine Wide-Striping-Transaktion verfügbar sind. 2 ist ein Blockschaubild (200) einer Blockzuordnungsliste für Schreibaffinität. Wie dies hierin dargestellt ist, sind vier Formen eines Datenspeichers (210), (220), (230) und (240) vorhanden. Jeder Datenspeicher besitzt Blöcke, wobei die unterbrochenen Linien (250) Blöcke darstellen, die nicht verfügbar sind, weil sie Wide-Striping-Transaktionen zugeordnet sind, und die leeren Blöcke (212), (222), (232) und (242) zeigen Bereiche, die für eine Schreibaffinitäts-Transaktion verfügbar sind. Obgleich die Zuordnungslisten (100) und (200) vier Formen von Datenspeichern darstellen, sollte die Erfindung nicht auf die Anzahl an hierin gezeigten Speicherelementen beschränkt werden. In einer Ausführungsform können mehr oder weniger Speicherelemente bereitgestellt werden.
  • In einem System für Standard-Hardwarearchitektur gilt ein Ausfall eines Serverknotens als normaler Vorgang während des Betriebs. Genauer gesagt ist auf dem Gebiet der Technik bekannt, dass Standard-Hardwarekomponenten Ausfällen unterliegen. In einer Ausführungsform umfasst der Ausfall einer Maschine und/oder einer Anwendung das Nicht-Ausführen eines Schrittes oder einer Aufgabe, einen Offline-Zustand der Maschine und/oder keine Betriebsbereitschaft, ist jedoch nicht darauf beschränkt. Um die negative Auswirkung des Serverausfalls sowohl für Leseals auch Schreibtransaktionen in einem Dateisystem mit Standardkomponenten zu mindern und um Transparenz sicherzustellen, wird ein Replizieren der Anwendung durchgeführt. 3 ist ein Ablaufplan (300), der den grundlegenden Prozess zum Unterstützen von Transparenz in einem Dateisystem darstellt. Ein Dateisystem ist mit einem Cluster von verteilten Serverknoten konfiguriert (302). Jeder Serverknoten in dem Cluster ist so konfiguriert, dass er die Verarbeitung von Daten durch eine Anwendung unterstützt. Genauer gesagt kann ein erster Serverknoten so konfiguriert sein, dass er eine erste Anwendung anhand einer Kopie der ersten Anwendung, die in einem Schreibaffinitäts-Bereich gespeichert ist, hostet und verarbeitet, während ein zweiter Serverknoten in dem Cluster so konfiguriert sein kann, dass er eine zweite Anwendung anhand einer Kopie der zweiten Anwendung, die in einem Schreibaffinitäts-Bereich gespeichert ist, hostet und verarbeitet (304), usw. Die in dem Schreibaffinitäts-Bereich gespeicherte Kopie der Anwendungen weist alle der Blöcke auf, die die Anwendung unterstützen. Dementsprechend wird die erste Anwendung lokal von einer Kopie in einem Schreibaffinitäts-Bereich lokal zu dem ersten Serverknoten unterstützt, und die zweite Anwendung wird lokal von einer Kopie in einem Schreibaffinitäts-Bereich unterstützt, der lokal zu dem zweiten Serverknoten ist.
  • Zum Behandeln eines Ausfalls eines Standardproduktes in dem Cluster wird wenigstens ein Replikat einer jeden Anwendung mit Schreibaffinitätstiefe geführt. Genauer gesagt wird ein Replikat der ersten Anwendung mit einer Schreibaffinitätstiefe auf wenigstens einem der sekundären Knoten in dem Cluster geführt (306), und ein Replikat der zweiten Anwendung wird mit einer Schreibaffinitätstiefe auf wenigstens einem der sekundären Knoten in dem Cluster geführt (308). In einer Ausführungsform werden das Replikat der ersten Anwendung und das Replikat der zweiten Anwendung auf verschiedenen sekundären Knoten in dem Cluster geführt. Auf ähnliche Weise können in einer Ausführungsform mehrere Serverknoten auf einem Computer-Gestell (rack) angeordnet sein, wo Komponenten des Cluster vertikal übereinander gestapelt werden. In der Gestellumgebung kann es zum Aufrechterhalten von Lokalität wünschenswert sein, das Replikat mit einer Schreibaffinitätstiefe einer oder mehrerer Anwendungen auf einem sekundären Knoten in dem Cluster zu führen, der auf demselben Gestell wie die primäre Kopie der Anwendung vorhanden ist. Dementsprechend wird wenigstens ein Replikat sowohl der ersten als auch der zweiten Anwendung bei einer Schreibaffinitätstiefe auf separaten sekundären Knoten in dem Cluster geführt.
  • Zu dem Zeitpunkt, zu dem der Serverknoten, der eine der ersten oder der zweiten Anwendung hostet, einem Ausfall unterliegt, wird die Anwendungsverarbeitung auf einen sekundären Knoten mit einem Schreibaffinitäts-Replikat der Anwendung verlagert. Genauer gesagt wird, um Transparenz bei Support und Verarbeitung bereitzustellen, das Schreibaffinitäts-Replikat aktiviert. Wie dies hierin dargestellt ist, wird zu dem Zeitpunkt, zu dem der erste Server möglicherweise einem Ausfall unterliegt (310), die Verarbeitung der ersten Anwendung auf die Schreibaffinitäts-Kopie übertragen, die lokal zu einem der sekundären Knoten in dem Cluster ist (312). Auf ähnliche Weise wird zu dem Zeitpunkt, zu dem der zweite Serverknoten möglicherweise einem Ausfall unterliegt (314), die Verarbeitung der zweiten Anwendung auf die Schreibaffinitäts-Kopie übertragen, die lokal zu einem der sekundären Knoten in dem Cluster ist (316). Dementsprechend wird durch Übertragen der Anwendungsverarbeitung von einem ausgefallenen Knoten auf einen der sekundären Knoten mit der Schreibaffinitäts-Kopie die lokale Leistung der Anwendung aufrechterhalten.
  • Zusätzlich zu den Schreibaffinitäts-Replikaten gibt es auch Wide-Striping-Replikate einer jeden Anwendung in dem Cluster. Jede Anwendung ist in mehrere Blocksegmente unterteilt, wobei ein oder mehrere Blocksegmente in einem Wide-Striping-Bereich des Datenspeichers gespeichert werden, der fern von dem Serverknoten ist, der Transaktionen für eine primäre Kopie der Anwendung hostet und verarbeitet. Es wird eine Anzahl von Blocksegmenten für Anwendungsdaten einer ersten Anwendung festgelegt, wobei die Blocksegmente der Anzahl von Wide-Striping-Bereichen entsprechen. Eine Kopie eines jeden Anwendungs-Blocksegmentes wird auf verschiedenen Datenspeichern von Serverknoten in dem Cluster gespeichert, um die Anwendung über den Cluster zu verteilen und ohne dabei irgendeinen Serverknoten in dem Cluster zu beeinträchtigen. Wird beispielsweise die Anzahl der Blocksegmente für die erste Anwendung auf drei eingestellt, wird ein Satz an Segmenten der ersten Anwendung in einem Speicher lokal zu einem ersten sekundären Knoten geführt, ein zweiter Satz an Blocksegmenten der ersten Anwendung wird in einem Speicher lokal zu einem zweiten sekundären Knoten geführt, und ein dritter Satz an Blocksegmenten der ersten Anwendung wird in einem Speicher lokal zu einem dritten sekundären Knoten geführt. Dementsprechend wird Wide Striping als ein Tool zum Verteilen von Kopien von Blocksegmenten der Anwendung über den Cluster eingesetzt.
  • Nach einem Ausfall eines der Serverknoten wird die Anwendungsverarbeitung auf eine Schreibaffinitäts-Kopie übertragen, um Transparenz aufrechtzuerhalten, und gleichzeitig kann die ausgefallene Anwendung anhand der Blocksegmente wiederhergestellt werden, die in den Wide-Striping-Bereichen gespeichert sind, welche über den Cluster verteilt sind. 4 ist ein Ablaufplan (400), der das Wiederherstellen einer Anwendung anhand von Blocksegmenten darstellt, die in Wide-Striping-Bereichen in Datenspeichern gespeichert sind, die lokal zu den Serverknoten in dem Cluster sind. Vor dem Einleiten einer Wiederherstellung werden Kopien von Blocksegmenten der ersten Anwendung über den Cluster in Wide-Striping-Bereichen verteilt, die spezifizierte Blöcke der Anwendung identifizieren, die auf den verschiedenen Serverknoten gehalten werden sollen (402). In einer Ausführungsform weist eine Kombination aller der Blocksegmente der Anwendung in den Wide-Striping-Bereichen des Datenspeichers die Anwendung auf. Nach Ausfall der Anwendung (404) wird einer der Serverknoten für ein Wiederherstellen der ausgefallenen Anwendung ausgewählt (406). In einer Ausführungsform handelt es sich bei dem Knoten, der für das Wiederherstellen ausgewählt wurde, um den Knoten, der dem Ausfall unterlag. Gleichzeitig mit dem Wiederherstellen setzt eine Kopie der ausgefallenen Anwendung in einem Schreibaffinitäts-Bereich eines nicht ausgefallenen Serverknotens, d.h. eines Ersatzknotens, die Verarbeitung der Transaktionen für die ausgefallene Anwendung fort (408). Das Wiederherstellen der ausgefallenen Anwendung verwendet die verteilten Blocksegmente der Anwendung in den Wide-Striping-Bereichen innerhalb des Clusters, so dass jeder Knoten in dem Cluster nur minimal bezüglich der Anwendungsleistung beeinträchtigt wird. Dementsprechend wird durch das Verteilen und Wiederherstellen der Anwendung eine Lastverteilung (load balancing) erreicht, da der Rechenaufwand des Wiederherstellens über das Cluster verteilt wird.
  • Die Verarbeitung der ersten Anwendung wird so lange auf die Schreibaffinitäts-Kopie d.h. eine Ersatzkopie übertragen, bis das Wiederherstellen abgeschlossen ist. Sobald das Wiederherstellen der ausgefallenen Anwendung anhand der in den Wide-Striping-Bereichen in dem Cluster gespeicherten Segmente abgeschlossen ist (410), kehrt die Verarbeitung zu der wiederhergestellten Anwendung zurück (412). Gleichzeitig setzt jeder der Serverknoten mit einer der mittels Wide Striping verteilten Kopien der ersten Anwendung das Unterstützen des Bedienens der Transaktionen von anderen von den Serverknoten gehosteten Anwendungen fort. Dementsprechend speichert ein Schreibaffinitäts-Bereich, dem verfügbare Blöcke von dem Datenspeicher lokal zu einem Serverknoten in dem Cluster zugeordnet sind, für jede in dem Cluster unterstützte Anwendung, ein Replikat einer Anwendung, und dem Wide-Striping-Bereich in dem Cluster werden Blocksegmente der Anwendung zugeordnet.
  • Wie dies in den Ablaufplänen in den 1 bis 4 dargestellt ist, wird ein Verfahren angewendet, um eine Transparenz der Anwendungsverarbeitung durch den Einsatz von Schreibaffinitäts- und Wide-Striping-Bereichen eines Dateisystems zu unterstützen. 5 ist ein Blockschaubild (500), das in einem Computer eingebettete Tools zum Unterstützen einer fortgesetzten Verarbeitung von Transaktionen in einem Cluster-Dateisystem mit Shared-Nothing-Architektur veranschaulicht. Eine Shared-Nothing-Architektur weist einen Cluster auf, der aus Standard-Hardwarekomponenten aufgebaut ist. Die Koordinierung aller Knoten in dem Cluster zur Ausführung der Anwendungen der Benutzer an Daten wird von einem Ausführungs-Framework durchgeführt, der das Dateisystem aufweist, das oberhalb des Cluster läuft. Der Kernansatz bei dieser Ausgestaltung besteht in dem Verschieben von Funktionen in den Fällen, in denen eine Datenverarbeitungsaufgabe auf den Knoten verschoben wird, der Daten besitzt, im Gegensatz zu dem herkömmlichen Ansatz des Verschiebens von Daten, bei dem die Daten von einem Speicherknoten auf einen Datenverarbeitungsknoten verschoben werden. Eine wichtige Herausforderung beim Erzielen von Leistung in datenintensiven Super-Datenverarbeitungssystemen besteht darin, einen hohen Durchsatz für Anwendungen in einer Standardumgebung zu erzielen, in der die Bandbreitenressourcen knapp sind und es üblicherweise zu Ausfällen kommt. Um dieses Ziel zu erreichen, wurde ein Cluster-Dateisystem entwickelt, das die Leistung von datenintensiven Super-Datenverarbeitungsanwendungen optimieren kann. Wie dies in 5 dargestellt ist, wird ein Cluster-Dateisystem auf mehreren Servern (510), (530), (550) und (570) angeordnet. Bei einem Cluster-Dateisystem handelt es sich um ein Dateisystem, das gleichzeitig auf mehreren Servern angeordnet ist. Obgleich in diesem Beispiel hierin vier Server dargestellt sind, sollte die Erfindung nicht auf diese Anzahl von Servern in dem Cluster-Dateisystem beschränkt werden. Auf ähnliche Weise können, obgleich hierin nur ein Cluster dargestellt ist, in einer Ausführungsform auch mehrere Cluster mit einer über eine Netzwerkverbindung unterstützten Kommunikation über mehrere Cluster bereitgestellt werden.
  • Jeder der Server in dem System wird mit einem lokalen Speicher bereitgestellt und kann gleichzeitig mit einem fernen Speicher innerhalb des Cluster kommunizieren. Genauer gesagt wird der Server (510) mit einer Verarbeitungseinheit (504), in Kommunikation mit einem Speicher (506) über einen Bus (508) und in Kommunikation mit einem Datenspeicher (512) bereitgestellt; der Server (530) wird mit einer Verarbeitungseinheit (534), in Kommunikation mit einem Speicher (536) über einen Bus (538), in Kommunikation mit einem Datenspeicher (542) bereitgestellt; der Server (550) wird mit einer Verarbeitungseinheit (554), in Kommunikation mit einem Speicher (556) über einen Bus (558), in Kommunikation mit einem Datenspeicher (562) bereitgestellt; und der Server (570) wird mit einer Verarbeitungseinheit (574), in Kommunikation mit einem Speicher (576) über einen Bus (578), in Kommunikation mit einem Datenspeicher (582) bereitgestellt. Gleichzeitig kann der Server (510) mit einem fernen Datenspeicher (542), (562) und (582) über eine Netzwerkverbindung (505) kommunizieren, der Server (530) kann mit einem fernen Datenspeicher (512), (562), und (582) über eine Netzwerkverbindung (505) kommunizieren, der Server (550) kann mit einem fernen Datenspeicher (512), (542) und (582) über eine Netzwerkverbindung (505) kommunizieren, und der Server (570) kann mit einem fernen Datenspeicher (512), (542), und (562) über die Netzwerkbindung (505) kommunizieren.
  • In einer Ausführungsform unterstützt jeder Server in dem Cluster wenigstens eine Anwendung, wobei die Anwendungsverarbeitung Transaktionen von einem oder der mehreren Client-Maschinen in Kommunikation mit dem Cluster liest und/oder schreibt. Ausgehend von dieser Ausführungsform wird der Server (510) mit einer ersten Anwendung (514) dargestellt, der Server (530) wird mit einer zweiten Anwendung (544) dargestellt, der Server (550) wird mit einer dritten Anwendung (564) dargestellt, und der Server (570) wird mit einer vierten Anwendung (584) dargestellt. Es werden Tools zum Unterstützen der Anwendungsverarbeitung in dem Cluster und zum Aufrechterhalten von Transparenz der Verarbeitung im Falle eines Serverausfalls bereitgestellt. Genauer gesagt wird wenigstens eine Schreibaffinitäts-Kopie einer jeden der ersten, zweiten, dritten und vierten Anwendung in dem Cluster geführt. Wie dies hierin dargestellt ist, ist in einer Ausführungsform eine Schreibaffinitäts-Kopie der ersten Anwendung (514a) lokal zu dem Server (530), eine Schreibaffinitäts-Kopie der zweiten Anwendung (544a) ist lokal zu dem Server (550), eine Schreibaffinitäts-Kopie der dritten Anwendung (564a) ist lokal zu dem Server (570), und eine Schreibaffinitäts-Kopie der vierten Anwendung (584a) ist lokal zu dem Server (510). Dementsprechend wird mit der Verteilung von Schreibaffinitäts-Kopien von Anwendungen in dem Cluster sichergestellt, dass ein vollständiges Replikat einer jeden Anwendung in dem Cluster bereitgestellt wird.
  • Jedem Serverknoten in dem Cluster wird lokal ein Service-Manager bereitgestellt, wobei jeder Service-Manager so konfiguriert ist, dass er die lokale Verarbeitung einer lokalen Schreibaffinitäts-Kopie einer Anwendung unterstützt. Wie dies hierin dargestellt ist, wird der erste Serverknoten (510) mit dem ersten Service-Manager (516) bereitgestellt, der zweite Serverknoten (530) wird mit dem zweiten Service-Manager (546) bereitgestellt, der dritte Serverknoten (550) wird mit dem dritten Service-Manager (566) bereitgestellt, und der vierte Serverknoten (570) wird mit dem vierten Service-Manager (566) bereitgestellt. Liegen keine von Ausfall betroffene Anwendungen vor, bedient der erste Service-Manager (516) die erste Anwendung (514), der zweite Service-Manager (546) bedient die zweite Anwendung (544), der dritte Service-Manager (566) bedient die dritte Anwendung (564), und der vierte Service-Manager (566) bedient die vierte Anwendung (584). Wie dies vorstehend beschrieben ist, können ein oder mehrere der Server in dem Cluster einem Ausfall unterliegen. Kommt es zu einem Ausfall, wird ein Wiederherstellungs-Manager in dem Cluster bereitgestellt, um die Wiederherstellung und Transparenz der Anwendungsverarbeitung zu verwalten. Genauer gesagt ist der Wiederherstellungs-Manager zum Verlagern der Anwendungsverarbeitung einer ausgefallenen Anwendung auf einen Serverknoten mit einer replizierten Kopie der ausgefallenen Anwendung im Schreibaffinitäts-Bereich ihres Datenspeichers verantwortlich.
  • Wie dies hierin dargestellt ist, wird jedem Serverknoten lokal ein Wiederherstellungs-Manager bereitgestellt. Genauer gesagt wird dem ersten Serverknoten (510) ein erster Wiederherstellungs-Manager (518) bereitgestellt, dem zweiten Serverknoten (530) wird ein zweiter Wiederherstellungs-Manager (548) bereitgestellt, dem dritten Serverknoten (550) wird ein dritter Wiederherstellungs-Manager (568) bereitgestellt, und dem vierten Serverknoten (570) wird ein vierter Wiederherstellungs-Manager (588) bereitgestellt. Jeder Wiederherstellungs-Manager steht in Kommunikation mit dem lokalen Service-Manager zum Unterstützen von sowohl der Wiederherstellung als auch der Transparenz der Anwendungsverarbeitung. Wie dies dargestellt ist, steht ein erster Service-Manager (516) mit einem ersten Wiederherstellungs-Manager (518) in Kommunikation, ein zweiter Service-Manager (546) steht mit einem zweiten Wiederherstellungs-Manager (548) in Kommunikation, ein dritter Service-Manager (566) steht mit einem dritten Wiederherstellungs-Manager (568) in Kommunikation, und ein vierter Service-Manager (566) steht mit einem vierten Wiederherstellungs-Manager (588) in Kommunikation. In einer Ausführungsform kann der Wiederherstellungs-Manager Manager für den gesamten Cluster sein, womit die Lokalität des Wiederherstellungs-Managers aus den einzelnen Knoten entfernt wird, während weiterhin die Wiederherstellung und Anwendungsverarbeitung unterstützt wird.
  • Zusätzlich zu der Schreibaffinitäts-Kopie einer Anwendung im Cluster hat jede Anwendung eine verteilte Kopie von Anwendungs-Blocksegmenten, die in Wide-Striping-Bereichen gespeichert ist. Genauer gesagt wird die Wide-Striping-Kopie der Anwendung über den Datenspeicher lokal an zwei oder mehr Serverknoten in dem Cluster verteilt. In dem Cluster wird ein Kopien-Manager zum Verwalten und Festlegen der Anzahl von Anwendungssegmenten bereitgestellt, die in den Wide-Striping-Bereichen von Datenspeichern über das Cluster gespeichert sind. Für Wide Striping werden Segmente von Anwendungen in Form von Datenblöcken, die eine Anwendung aufweisen, separat auf Datenspeichern von verschiedenen Serverknoten gespeichert, so dass eine vollständige Kopie der Anwendung alle der Anwendungssegmente aufweist. In einer Ausführungsform wird ein Kopien-Manager in dem gesamten Cluster unterstützt. Auf ähnliche Weise wird in einer Ausführungsform ein separater Kopien-Manager lokal zu jedem Serverknoten bereitgestellt. 5 zeigt eine lokale Verwendung von separaten Kopien-Managern lokal zu jedem Serverknoten, einschließlich eines ersten Kopien-Managers (520) lokal zu dem ersten Serverknoten (510), eines zweiten Kopien-Managers (522) lokal zu dem zweiten Serverknoten (530), eines dritten Kopien-Managers (524) lokal zu dem dritten Serverknoten (550) und eines vierten Kopien-Managers (526) lokal zu dem vierten Serverknoten (570). Dementsprechend unterstützt die Funktion ungeachtet der lokalen oder globalen Konfiguration des Kopien-Managers die Verteilung der Anwendungssegmente über Wide-Striping-Bereiche des Clusters.
  • Kommt es zu einem Ausfall einer oder mehrerer Anwendungen in dem Cluster ermöglicht/ermöglichen der/die Kopien-Manager zusammen mit dem/den Wiederherstellungs-Manager/n das Wiederherstellen einer ausgefallenen Anwendung. Genauer gesagt wird der Wiederherstellungs-Manager in dem Cluster bereitgestellt, um die Funktionalität einer ausgefallenen Anwendung auf die Schreibaffinitäts-Kopie in dem Cluster zu übertragen und um anhand der Wide-Striping-Kopie der ausgefallenen Anwendung eine ausgefallene Anwendung wiederherzustellen, wobei das Wiederherstellen Anwendungssegmente umfasst, die über Wide-Striping-Bereiche in dem Cluster verteilt sind. Als Solches werden über die Datenübertragung zwischen dem/den Wiederherstellungs-Manager/n und dem/den Kopien-Manager/n die verteilten Kopien der ausgefallenen Anwendung zusammengeführt. In einer Ausführungsform kann der Wiederherstellungs-Manager in dem gesamten Cluster unterstützt werden. Auf ähnliche Weise wird in einer Ausführungsform ein separater Wiederherstellungs-Manager lokal zu jedem Serverknoten in dem Cluster bereitgestellt. Dementsprechend unterstützt die Funktionalität ungeachtet der lokalen oder globalen Konfiguration des Kopien-Managers das Zusammenbringen der verteilten Blocksegmente der ausgefallenen Anwendungen, um eine Wiederherstellung zu ermöglichen.
  • In 5 ist das transparente Layout der Anwendungen in dem Cluster dargestellt, mit wenigstens einer Schreibaffinitäts-Kopie einer jeden Anwendung zusammen mit einer Wide-Striping-Verteilung der Anwendung in Wide-Striping-Bereichen innerhalb des Clusters. Die Schreibaffinitäts-Kopie der Anwendung weist einen vollständigen Satz an Dateien und Daten auf einem einzelnen Serverknoten auf, welche die Anwendung aufweisen. Obgleich die Schreibaffinitäts-Kopie verfügbaren Platz auf einem sekundären Knoten in dem Cluster erfordert, liefert sie Transparenz ohne den damit einhergehenden Rechenaufwand signifikant zu erhöhen. Wie dies vorstehend beschrieben wurde, ermöglicht nach einem Ausfall des Serverknotens der Wiederherstellungs-Manager ein Wiederherstellen der ausgefallenen Anwendung, wobei die Verarbeitungsbedürfnisse der ausgefallenen Anwendung auf die Schreibaffinitäts-Kopie der ausgefallenen Anwendung übertragen werden. Sobald die ausgefallene Anwendung mit einem vollständigen Satz an Dateien der ausgefallenen Anwendung aus den Wide-Striping-Bereichen wiederhergestellt worden ist, führt der Service-Manager die Anwendungsverarbeitung zu der wiederhergestellten Anwendung zurück.
  • Die hierin für eine einzelne Cluster-Konfiguration dargestellten und veranschaulichten Komponenten können für jeden Cluster in dem Netzwerk entsprechend hochgerechnet werden. In einer Konfiguration mit mehreren Clustern wird ein Tool zum Auswählen eines der Cluster zum Unterstützen der Kopie einer Anwendung in dem Schreibaffinitäts-Bereich und/oder dem Wide-Striping-Bereich verwendet. Weist beispielsweise eines der Cluster in dem Netzwerk Eigenschaften auf, die eine Wahrscheinlichkeit des Ausfalls annehmen lassen, kann das Tool einen anderen Cluster zum Replizieren der Anwendungsdaten, einschließlich des Schreibaffinitäts-Bereiches und/oder des Wide-Striping-Bereiches auswählen. Durch Replizieren einer Anwendung sowohl in Wide-Striping- als auch Schreibaffinitäts-Bereichen wird die Transparenz von Anwendungsunterstützung (application support) bewahrt, während gleichzeitig die Belastung für Server, die die Anwendungskopien hosten, gemindert wird. Gleichzeitig wird durch zunutze machen der Beziehungen zwischen den Servern für die Anwendungsreplizierung in einem stabileren Cluster die Wahrscheinlichkeit des Zugriffs und der Verfügbarkeit sichergestellt.
  • Wie dies vorstehend beschrieben wurde, dienen die Service-Manager (516), (546), (566) und (586), die Wiederherstellungs-Manager (518), (548), (568) und (588) und die Kopien-Manager (520), (522), (524) und (526) zum Verwalten von Verfügbarkeit, Transparenz und Wiederherstellung einer Anwendung durch Aufrechterhalten von wenigstens einer Anwendungskopie in einem Schreibaffinitäts-Bereich und einer zweiten Anwendungskopie in Wide-Striping-Bereichen des Clusters. Es ist dargestellt, dass sich die Manager in Speichern lokal zu dem jeweiligen Server befinden. Genauer gesagt befinden sich der erste Service-Manager (516), der erste Wiederherstellungs-Manager (518) und der erste Kopien-Manager (520) jeweils in dem Speicher (506) des ersten Servers (510). Der zweite Service-Manager (546), der zweite Wiederherstellungs-Manager (548) und der zweite Kopien-Manager (522) befinden sich jeweils im Speicher (536) des zweiten Servers (530); der dritte Service-Manager (566), der dritte Wiederherstellungs-Manager (568) und der dritte Kopien-Manager (524) befinden sich jeweils im Speicher (556) des dritten Servers (550); und der vierte Service-Manager (566), der vierte Wiederherstellungs-Manager (588) und der vierte Kopien-Manager (526) befinden sich jeweils im Speicher (576) des vierten Servers (570). Obgleich in einer Ausführungsform der Service-, Wiederherstellungs- und Kopien-Manager als Hardware-Tools extern zum Speicher ihres jeweiligen Servers vorhanden sein können, können sie auch als eine Kombination aus Hardware und Software implementiert sein. Auf ähnliche Weise können in einer Ausführungsform die Manager in einer einzigen Funktionseinheit kombiniert sein, die die Funktionalität der separaten Einheiten umfasst. Wie dies hierin dargestellt ist, wird jeder der Manager lokal zu den jeweiligen Servern dargestellt. In einer Ausführungsform können sie jedoch auch gemeinsam oder einzeln über das Netzwerk verteilt sein und als eine Einheit zum Verwalten von Anwendungsunterstützung sowie Transparenz von Lese- und Schreibtransaktionen funktionieren. Dementsprechend können die Manager als Software-Tools, Hardware-Tools oder als eine Kombination von Software- und Hardware-Tools zum Sammeln und Organisieren von Dateninhalt implementiert sein.
  • Wie dies den Fachleuten ersichtlich ist, können Aspekte der vorliegenden Erfindung als System, Verfahren oder Computerprogrammprodukt ausgebildet sein. Dementsprechend können Aspekte der vorliegenden Ausführungsformen als vollständige Hardware-Ausführungsform, vollständige Software-Ausführungsform (einschließlich Firmware, residenter Software, Mikrocode usw.) ausgebildet sein oder als eine Ausführungsform ausgebildet sein, die Software- und Hardwareaspekte kombiniert, die allesamt im Allgemeinen hierin als „Schaltung“, „Modul“ oder „System“ bezeichnet werden können. Des Weiteren können Aspekte der vorliegenden Erfindung als ein Computerprogrammprodukt ausgebildet sein, das in einem oder mehreren computerlesbaren Medium oder Medien mit darin enthaltenen computerlesbaren Programmcodes ausgebildet ist.
  • Es kann jede beliebige Kombination aus einem oder mehreren computerlesbaren Medium/Medien verwendet werden. Bei dem computerlesbaren Medium kann es sich um ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium handeln. Ein computerlesbares Speichermedium kann zum Beispiel ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, solche Vorrichtung oder Einheit oder jede beliebige geeignete Kombination der vorstehend Genannten sein, ohne darauf beschränkt zu sein. Konkretere Beispiele (eine ergänzbare Liste) des computerlesbaren Speichermediums weisen die Folgenden auf: eine elektrische Verbindung mit einer oder zwei Leitungen, eine tragbare Computerdiskette, eine Festplatte, einen Arbeitsspeicher (RAM), einen Nur-Lese-Speicher (ROM), einen elektronisch löschbaren programmierbaren Nur-Lese-Speicher (EPROM oder Flash-Memory), einen Lichtwellenleiter, einen tragbaren CD-Nur-Lesespeicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder jede beliebige geeignete Kombination der vorstehend Genannten. Im Kontext dieses Dokumentes kann ein computerlesbares Speichermedium jegliches materielle Medium sein, das ein Programm zur Verwendung durch ein oder im Zusammenhang mit einem Befehlsausführungssystem, einer solchen Vorrichtung oder Einheit ein Programm enthalten oder speichern kann.
  • Ein computerlesbares Signalmedium kann ein weitergegebenes Datensignal mit einem darin enthaltenen, computerlesbaren Programmcode, beispielsweise im Basisband oder als Teil einer Trägerwelle sein. Solch ein weitergegebenes Signal kann jede beliebige einer Reihe verschiedener Formen, einschließlich elektromagnetischer, optischer oder jeder beliebigen geeigneten Kombination daraus, jedoch nicht darauf beschränkt, umfassen. Ein computerlesbares Signalmedium kann jegliches computerlesbare Medium sein, das kein computerlesbares Speichermedium ist und das ein Programm zur Verwendung durch oder im Zusammenhang mit einem Befehlsausführungssystem, solcher Vorrichtung oder Einheit ein Programm übertragen, weitergeben oder senden kann.
  • Ein in einem computerlesbaren Medium enthaltener Programmcode kann unter Verwendung eines jeden beliebigen geeigneten Mediums, unter anderem drahtlos, drahtgebunden, Lichtwellenleiter, HF usw. oder einer jeden beliebigen geeigneten Kombination der vorstehend Genannten gesendet werden.
  • Der Computerprogrammcode zum Ausführen von Operationen für Aspekte der vorliegenden Erfindung kann in jeder beliebigen Kombination aus einer oder mehreren Programmiersprachen, unter anderem einer objektorientierten Programmiersprache wie beispielsweise Java®, Smalltalk, C++ oder Ähnlichen und herkömmlichen prozeduralen Programmiersprachen wie beispielsweise die Programmiersprache „C“ oder ähnlichen Programmiersprachen, geschrieben werden. Der Programmcode kann gänzlich auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als ein eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder gänzlich auf dem fernen Computer oder Server ausgeführt werden. In dem letzten Szenario kann der ferne Computer über jede beliebige Art von Netzwerk, unter anderem ein lokales Netz (LAN) oder ein Weitverkehrsnetz (WAN), mit dem Computer des Benutzers verbunden sein, oder die Verbindung kann zu einem externen Computer (beispielsweise über das Internet unter Verwendung eines Internet-Dienstanbieters) hergestellt werden. Java und alle auf Java beruhenden Marken und Firmenzeichen sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
  • Aspekte der vorliegenden Erfindung werden vorstehend in Bezug auf die Veranschaulichungen der Ablaufpläne und/oder die Blockschaubilder der Verfahren, Vorrichtungen (Systeme) und Computerprogrammprodukte gemäß Ausführungsformen der Erfindung beschrieben. Es ist offensichtlich, dass jeder Block der Veranschaulichungen der Ablaufpläne und/oder der Blockschaubilder sowie Kombinationen aus Blöcken in den Veranschaulichungen der Ablaufpläne und/oder der Blockschaubilder von Computerprogrammanweisungen implementiert werden können. Diese Computerprogrammanweisungen können einem Prozessor eines Universal-Computers, Spezial-Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung zur Herstellung einer Maschine bereitgestellt werden, und zwar so, dass mit den Anweisungen, die über den Prozessor des Computers oder andere Datenverarbeitungsvorrichtungen ausgeführt werden, Mittel zur Implementierung der in dem Ablaufplan und/oder dem/den Block/Blöcken der Blockschaltbilder spezifizierten Funktionen/Schritte geschaffen werden.
  • Diese Computerprogrammanweisungen können auch in einem computerlesbaren Medium gespeichert werden, das einen Computer, andere programmierbare Datenverarbeitungsvorrichtungen oder andere Einheiten anleitet, auf eine bestimmte Weise zu funktionieren, so dass die in dem computerlesbaren Medium gespeicherten Anweisungen einen Herstellungsartikel produzieren, der die Anweisungen enthält, mit denen die oder der in dem Ablaufplan und/oder dem oder den Block oder Blöcken der Blockschaltbilder spezifizierte/n Funktion oder Schritt implementiert wird.
  • Die Computerprogrammanweisungen können auch auf einen Computer, andere programmierbare Datenverarbeitungsvorrichtungen oder andere Einheiten geladen werden, um eine Reihe von Arbeitsschritten zu veranlassen, die auf dem Computer, anderen programmierbaren Datenverarbeitungsvorrichtungen oder Einheiten auszuführen sind, um ein computerimplementiertes Verfahren so zu schaffen, dass die Anweisungen, die auf dem Computer oder anderen programmierbaren Vorrichtungen ausgeführt werden, Prozesse zum Implementieren der in dem Ablaufplan und/oder dem oder den Block oder Blöcken des Blockschaltbildes spezifizierten Funktionen/Schritte bereitstellen.
  • In Bezug auf 6 stellt ein Blockschaubild ein System zum Implementieren einer Ausführungsform der vorliegenden Erfindung dar. Das Computersystem weist einen oder mehrere Prozessoren wie beispielsweise einen Prozessor (602) auf. Der Prozessor (602) ist mit einer Kommunikationsinfrastruktur (604) (z.B. einem Kommunikationsbus, einem Überkreuzverbinder (cross-over bar) oder einem Netzwerk) verbunden.
  • Das Computersystem kann eine Display-Schnittstelle (606) aufweisen, die Graphiken, Text und andere Daten von der Kommunikationsinfrastruktur (604) (oder von einem nicht dargestellten Frame-Buffer) zur Anzeige auf einer Display-Einheit (608) weiterleitet. Das Computersystem weist des Weiteren einen Hauptspeicher (610), vorzugsweise einen Arbeitsspeicher (RAM) auf, und kann darüber hinaus auch einen sekundären Speicher (612) aufweisen. Der sekundäre Speicher (612) kann beispielsweise ein Festplattenlaufwerk (614) und/oder ein Wechsellaufwerk (616) aufweisen, das beispielsweise ein Floppy-Plattenlaufwerk, ein Magnetbandlaufwerk oder ein optisches Plattenlaufwerk darstellt. Das Wechsellaufwerk (616) liest von und/oder schreibt auf eine entnehmbare Speichereinheit (618) auf eine den Fachleuten gut bekannte Weise. Die entnehmbare Speichereinheit (618) stellt beispielsweise eine Floppy-Disk, eine Compact Disc (CD), ein Magnetband oder eine optische Platte usw. dar, die von dem Wechsellaufwerk (616) gelesen und beschrieben wird. Wie ersichtlich ist, weist die entnehmbare Speichereinheit (618) ein computerlesbares Medium mit darin gespeicherter Computersoftware und/oder Daten auf.
  • In alternativen Ausführungsformen kann der sekundäre Speicher (612) andere ähnliche Mittel aufweisen, mit denen Computerprogramme oder andere Anweisungen in das Computersystem geladen werden können. Zu solchen Mitteln können beispielsweise eine entnehmbare Speichereinheit (620) und eine Schnittstelle (622) gehören. Zu Beispielen solcher Mittel können ein Programmpaket und eine Paketschnittstelle (wie beispielsweise die bei Videospieleinheiten vorhandene), ein entnehmbarer Speicherchip (wie zum Beispiel ein EPROM, oder PROM) und ein dazugehöriges Socket sowie andere entnehmbare Speichereinheiten (620) und Schnittstellen (622) gehören, mit denen Software und Daten von der entnehmbaren Speichereinheit (620) auf das Computersystem übertragen werden können.
  • Das Computersystem kann des Weiteren eine Kommunikationsschnittstelle (624) aufweisen. Mit der Kommunikationsschnittstelle (624) können Software und Daten zwischen dem Computersystem und externen Einheiten übertragen werden. Zu Beispielen einer Kommunikationsschnittstelle (624) können ein Modem, eine Netzwerkschnittstelle (wie beispielsweise eine Ethernet-Karte), ein Kommunikationsanschluss, oder ein PCMCIA-Slot und -Karte usw. gehören. Software und Daten, die über die Kommunikationsschnittstelle (624) übertragen werden, liegen in Form von Signalen vor, bei denen es sich möglicherweise um elektronische, elektromagnetische, optische oder andere Signale handeln kann, die von der Kommunikationsschnittstelle (624) empfangen werden können. Diese Signale werden der Kommunikationsschnittstelle (624) über einen Datenübertragungspfad (d.h. einen Kanal) (626) bereitgestellt. Dieser Datenübertragungspfad (626) überträgt Signale und kann unter Verwendung von Draht oder Kabel, eines Lichtwellenleiters, einer Telefonleitung, einer Zellulartelefonverbindung, einer Funkfrequenz- (HF) Verbindung und/oder anderen Datenübertragungskanälen implementiert werden.
  • In dieser Patentschrift beziehen sich die Begriffe „Computerprogrammmedium“, „von einem Computer nutzbares Medium“ und „computerlesbares Medium“ im Allgemeinen auf Medien wie beispielsweise einen Arbeitsspeicher (610) und einen sekundären Speicher (612), ein Wechsellaufwerk (616) und eine Festplatte, die in dem Festplattenlaufwerk (614) installiert ist.
  • Computerprogramme (auch als Computersteuerlogik bezeichnet) sind in dem Arbeitsspeicher (610) und/oder sekundären Speicher (612) gespeichert. Computerprogramme können auch über eine Kommunikationsschnittstelle (624) empfangen werden. Solche Computerprogramme können, wenn sie ausgeführt werden, das Computersystem zum Durchführen der Merkmale der vorliegenden Erfindung wie vorstehend beschrieben befähigen. Insbesondere befähigen die Computerprogramme, wenn sie ausgeführt werden, den Prozessor (602) zum Durchführen der Merkmale des Computersystems. Dementsprechend stellen solche Computerprogramme Controller des Computersystems dar.
  • Der Ablaufplan und die Blockschaubilder in den Figuren veranschaulichen die Architektur, Funktionalität und Betriebsweise möglicher Implementierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedener Ausführungsformen der vorliegenden Erfindung. In dieser Hinsicht kann jeder Block in dem Ablaufplan oder Blockschaubildern ein Modul, Segment oder Codeabschnitt darstellen, der eine oder mehrere Anweisungen zum Implementieren der spezifizierten logischen Funktion(en) aufweist. Es sollte darüber hinaus beachtet werden, dass in einigen alternativen Implementierungen die in dem Block vermerkten Funktionen in einer anderen als der in den Figuren dargestellten Reihenfolge auftreten können. So können beispielsweise zwei Blöcke, die nacheinander dargestellt sind, im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal auch in umgekehrter Reihenfolge je nach der beteiligten Funktion ausgeführt werden. Es wird darüber hinaus auch bemerkt, dass jeder Block der Blockschaubilder und/oder Ablaufplanveranschaulichung und Kombinationen von Blöcken in den Blockschaltbildern und/oder Ablaufplanveranschaulichungen durch spezielle hardwarebasierte Systeme implementiert werden können, die die spezifizierten Funktionen oder Schritte oder Kombinationen von speziellen Hardware- und Computeranweisungen ausführen.
  • Die hierin verwendete Terminologie dient lediglich dem Zwecke der Beschreibung bestimmter Ausführungsformen und beabsichtigt keine Beschränkung der Erfindung. In ihrer hierin verwendeten Form umfassen die Singularformen „ein“, „eine“, und „der(/die/das)“ ebenso die Pluralformen, es sei denn, der Kontext gibt eindeutig etwas Anderes vor. Des Weiteren ist offensichtlich, dass die Begriffe „weist auf und/oder „aufweisend“, wenn sie in dieser Spezifizierung verwendet werden, das Vorhandensein von dargestellten Merkmalen, Ganzzahlen, Schritten, Operationen, Elementen und/oder Komponenten angeben, jedoch nicht das Vorhandensein oder die Hinzufügung einer oder mehrerer weiterer Merkmale, Ganzzahlen, Schritte, Operationen, Elemente, Komponenten und/oder Gruppen davon ausschließen.
  • Die entsprechenden Strukturen, Materialien, Schritte und Entsprechungen aller Mittel oder Schritte plus Funktionselemente in den folgenden Ansprüchen beabsichtigen die Einbeziehung jeglicher Struktur, jeglichen Materials oder Schrittes zum Ausführen der Funktion in Kombination mit anderen beanspruchten Elementen in ihrer im Speziellen beanspruchten Form. Die Beschreibung der vorliegenden Erfindung wurde zum Zwecke der Veranschaulichung und Beschreibung dargestellt, sie erhebt jedoch weder Anspruch auf Vollständigkeit, noch stellt sie eine Beschränkung auf die Ausführungsformen in ihrer offenbarten Form dar. Den Fachleuten sind viele Modifizierungen und Varianten offensichtlich, ohne vom Schutzumfang und Geist der Ausführungsformen abzuweichen. Die Ausführungsformen wurden ausgewählt und beschrieben, um am besten die Prinzipien der Erfindung und die praktische Anwendung zu erläutern und um andere Fachleute dazu zu befähigen, die Erfindung für verschiedene Ausführungsformen mit verschiedenen Modifizierungen zu verstehen, die für die bestimmte angestrebte Verwendung geeignet sind.
  • Alternative Ausführungsform
  • Es ist offensichtlich, dass, obgleich zum Zwecke der Veranschaulichung hierin bestimmte Ausführungsformen der Erfindung beschrieben worden sind, auch verschiedene Modifizierungen daran vorgenommen werden können, ohne von Geist und Schutzumfang der Erfindung abzuweichen. Insbesondere kann das System mit r Kopien einer Datei, mit k Schreibaffinitäts-Kopien und I Wide-Striping-Kopien konfiguriert werden, wobei k+I=r ist. Die Variable k kann zwischen 1 und einschließlich r liegen. Eine Anwendung, die eine lokale Leistung erfordert, kann von einer der k Schreibaffinitäts-Kopien bedient werden. Die Variable I kann zwischen 1 und einschließlich r liegen. Anwendungsdaten können von jeder beliebigen oder von einem Satz von r Schreibaffinitäts-Kopien nach dem Ausfall einer Verarbeitung einer Schreibaffinitäts-Kopie wiederhergestellt werden. Dementsprechend wird der Schutzumfang dieser Erfindung lediglich durch die folgenden Ansprüche und ihre Entsprechungen begrenzt.

Claims (18)

  1. Verfahren zum Verwalten von Anwendungsverarbeitung in einem Computersystem, wobei das Verfahren die Schritte aufweist des: Konfigurierens eines Shared-Nothing-basierten Cluster-Dateisystems mit einem verteilten Satz an Serverknoten, aufweisend einen ersten Serverknoten und einen zweiten Serverknoten; Speicherns einer ersten Kopie einer ersten Anwendung lokal auf dem ersten Knoten in einem ersten Schreibaffinitäts-Bereich; Speicherns einer zweiten Kopie der ersten Anwendung lokal auf dem zweiten Serverknoten in einem zweiten Schreibaffinitäts-Bereich; Speicherns einer dritten Kopie der ersten Anwendung über Wide-Striping-Bereiche in dem Cluster; lokalen Bedienens der ersten Anwendung von dem ersten Serverknoten; in Reaktion auf einen Ausfall der ersten Anwendung, des Verlagerns der ersten Anwendung auf den zweiten Serverknoten, der durch die zweite Kopie unterstützt wird; und Wiederherstellens der ersten Anwendung lokal auf dem ersten Serverknoten mit der dritten Kopie.
  2. Verfahren nach Anspruch 1, wobei der Schritt des Speicherns der zweiten Kopie Speichern eines kompletten Satzes an Dateien und von Daten aufweist, die die erste Anwendung aufweisen.
  3. Verfahren nach einem der Ansprüche 1 oder 2, wobei das Verlagern der Anwendungsverarbeitung von dem ersten Serverknoten auf den zweiten Serverknoten lokales Verarbeiten der ersten Anwendung aufweist.
  4. Verfahren nach einem beliebigen der vorstehenden Ansprüche, wobei Wiederherstellen der ersten Anwendung auf dem ersten Knoten des Weiteren Wiederherstellen von Anwendungsdaten anhand der dritten Kopie der ersten Anwendung aufweist.
  5. Verfahren nach Anspruch 4, wobei ein vollständiges Wiederherstellen der ersten Anwendung lokal auf dem ersten Serverknoten einen kompletten Satz an Dateien der ersten Anwendung aufweist.
  6. Verfahren nach einem der Ansprüche 5 oder 6, des Weiteren aufweisend Verarbeiten von Schreibtransaktionen der ersten Anwendung von dem zweiten Serverknoten so lange, bis das Wiederherstellen abgeschlossen ist.
  7. Verfahren nach einem beliebigen der vorstehenden Ansprüche, des Weiteren aufweisend Verarbeiten von Schreibtransaktionen der ersten Anwendung von dem ersten Serverknoten, der die wiederhergestellte erste Anwendung hostet, nachdem das Wiederherstellen des ersten Knotens abgeschlossen ist.
  8. Verfahren nach einem beliebigen der vorstehenden Ansprüche, wobei Wiederherstellen der ersten Anwendung von den Wide- Striping-Bereichen die Beeinträchtigung der Leistung einer zweiten Anwendung mindert.
  9. System zum Verwalten von Anwendungsverarbeitung in einem Computersystem, das System aufweisend: ein Cluster-Dateisystem mit Shared-Nothing-Architektur, aufweisend einen ersten Serverknoten und einen zweiten Serverknoten; wobei das Dateisystem aufweist: eine erste Kopie einer ersten Anwendung lokal auf dem ersten Serverknoten, die in einem ersten Schreibaffinitäts-Bereich des ersten Serverknotens gespeichert ist, eine zweite Kopie der ersten Anwendung, die in einem zweiten Schreibaffinitäts-Bereich lokal auf dem zweiten Serverknoten gespeichert ist, eine dritte Kopie der ersten Anwendung, die über Wide-Striping-Bereiche in dem Cluster gespeichert ist; einen Service-Manager zum lokalen Bedienen der ersten Anwendung von dem ersten Serverknoten; einen Kopien-Manager zum Festlegen einer Anzahl von Replizierungskopien der ersten Anwendung für Wide-Striping-Bereiche; und einen Wiederherstellungs-Manager zum, in Reaktion auf einen Ausfall der ersten Anwendung durch den Service-Manager, Verlagern der Verarbeitung der ersten Anwendung auf den zweiten Serverknoten, der durch die zweite Kopie in dem zweiten Schreibaffinitäts-Bereich unterstützt wird und zum Kommunizieren mit dem Kopien-Manager zum Wiederherstellen der ausgefallenen ersten Anwendung mit der dritten Kopie.
  10. System nach Anspruch 9, wobei die zweite Kopie der ersten Anwendung einen kompletten Satz an Dateien und Daten aufweist, die die erste Anweisung auf einem einzelnen Serverknoten aufweisen.
  11. System nach Anspruch 9 oder 10, wobei der Wiederherstellungs-Manager des Weiteren zum lokalen Verarbeiten der ersten Anwendung eingerichtet ist.
  12. System nach einem der Ansprüche 9 bis 11, wobei der Wiederherstellungs-Manager des Weiteren zum Wiederherstellen von Anwendungsdaten anhand der dritten Kopie der ersten Anwendung eingerichtet ist.
  13. System nach Anspruch 12, wobei eine vollständige Wiederherstellung der ersten Anwendung lokal auf dem ersten Serverknoten einen kompletten Satz an Dateien der ersten Anwendung aufweist.
  14. System nach einem beliebigen der Ansprüche 9 bis 13, wobei der Service-Manager des Weiteren zum Verarbeiten von Schreibtransaktionen der ersten Anwendung von dem zweiten Serverknoten so lange eingerichtet ist, bis die Wiederherstellung der ausgefallenen Anwendung durch den Wiederherstellungs-Manager abgeschlossen ist.
  15. System nach einem beliebigen der Ansprüche 9 bis 14, wobei der Service-Manager des Weiteren zum Verarbeiten von Schreibtransaktionen der ersten Anwendung von dem ersten Server eingerichtet ist, der die wiederhergestellte erste Anwendung nach Abschluss des Wiederaufbaus durch den ersten Knoten hostet.
  16. System nach Anspruch 15, wobei der Wiederherstellungs-Manager des Weiteren zum Mindern der Beeinträchtigung der Leistung einer zweiten Anwendung in Reaktion auf die Wiederherstellung der ersten Anwendung anhand der dritten Kopie eingerichtet ist.
  17. Computerprogrammprodukt zum Verwalten von Anwendungsverarbeitung in einem Computersystem, wobei das Computerprogrammprodukt aufweist: ein computerlesbares Speichermedium, das von einer Verarbeitungsschaltung lesbar ist und Anweisungen zur Ausführung durch die Verarbeitungsschaltung zum Durchführen eines Verfahrens gemäß einem beliebigen der Ansprüche 1 bis 8 speichert.
  18. Computerprogrammprodukt, das auf einem computerlesbaren Medium gespeichert ist und in den internen Speichern eines digitalen Computers ladbar ist, aufweisend Softwarecodeabschnitte zum Durchführen des Verfahrens nach einem beliebigen der Ansprüche 1 bis 8, wenn das Programm auf einem Computer ausgeführt wird.
DE112012000282.2T 2011-01-27 2012-01-13 Anwendungswiederherstellung in einem Dateisystem Active DE112012000282B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/015,127 2011-01-27
US13/015,127 US8566636B2 (en) 2011-01-27 2011-01-27 Application recovery in a file system
PCT/IB2012/050170 WO2012101540A1 (en) 2011-01-27 2012-01-13 Application recovery in file system

Publications (2)

Publication Number Publication Date
DE112012000282T5 DE112012000282T5 (de) 2013-09-05
DE112012000282B4 true DE112012000282B4 (de) 2022-04-28

Family

ID=46578413

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112012000282.2T Active DE112012000282B4 (de) 2011-01-27 2012-01-13 Anwendungswiederherstellung in einem Dateisystem

Country Status (6)

Country Link
US (2) US8566636B2 (de)
JP (1) JP5946472B2 (de)
CN (1) CN103329105B (de)
DE (1) DE112012000282B4 (de)
GB (1) GB2501659B (de)
WO (1) WO2012101540A1 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104239493B (zh) * 2014-09-09 2017-05-10 北京京东尚科信息技术有限公司 跨集群数据迁移方法和系统
US10019249B1 (en) * 2014-12-18 2018-07-10 Amazon Technologies, Inc. Techniques for minimally invasive application updates and data transfer
US10102086B2 (en) * 2014-12-19 2018-10-16 Futurewei Technologies, Inc. Replicated database distribution for workload balancing after cluster reconfiguration
KR101773593B1 (ko) 2015-12-15 2017-08-31 경희대학교 산학협력단 멀티-에이전트 기반 코드 오프로딩을 수행하는 모바일 포그 컴퓨팅 시스템 및 그 방법
US10057309B2 (en) * 2016-06-29 2018-08-21 Microsoft Technology Licensing, Llc Concurrent serving of a media stream
US10776229B2 (en) * 2017-12-22 2020-09-15 Teradata Us, Inc. Dedicated fallback processing for a distributed data warehouse
US11954220B2 (en) 2018-05-21 2024-04-09 Pure Storage, Inc. Data protection for container storage
CN109561153A (zh) * 2018-12-17 2019-04-02 郑州云海信息技术有限公司 分布式存储系统及业务切换方法、装置、设备、存储介质
CN111770159B (zh) * 2020-06-26 2023-08-22 中信银行股份有限公司 服务发现系统、方法、第一服务器及存储介质
JP7149313B2 (ja) 2020-09-28 2022-10-06 株式会社日立製作所 記憶システム及びその制御方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6697960B1 (en) 1999-04-29 2004-02-24 Citibank, N.A. Method and system for recovering data to maintain business continuity
US20070220223A1 (en) 2006-03-17 2007-09-20 Boyd Kenneth W Remote copying of updates to primary and secondary storage locations subject to a copy relationship
US8326990B1 (en) 2005-07-15 2012-12-04 Symantec Operating Corporation Automated optimal workload balancing during failover in share-nothing database systems

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3526452B2 (ja) * 2001-12-18 2004-05-17 株式会社東芝 ディスクアレイ装置及びデータバックアップ方法
US7043665B2 (en) * 2003-06-18 2006-05-09 International Business Machines Corporation Method, system, and program for handling a failover to a remote storage location
US20050283658A1 (en) * 2004-05-21 2005-12-22 Clark Thomas K Method, apparatus and program storage device for providing failover for high availability in an N-way shared-nothing cluster system
CN1329829C (zh) 2004-11-29 2007-08-01 中兴通讯股份有限公司 一种用户数据库的备份恢复方法
US7490205B2 (en) * 2005-03-14 2009-02-10 International Business Machines Corporation Method for providing a triad copy of storage data
US7653668B1 (en) * 2005-11-23 2010-01-26 Symantec Operating Corporation Fault tolerant multi-stage data replication with relaxed coherency guarantees
US7613749B2 (en) 2006-04-12 2009-11-03 International Business Machines Corporation System and method for application fault tolerance and recovery using topologically remotely located computing devices
GB0616375D0 (en) 2006-08-17 2006-09-27 Ibm An apparatus for facilitating disaster recovery
US7917469B2 (en) * 2006-11-08 2011-03-29 Hitachi Data Systems Corporation Fast primary cluster recovery
US8386741B2 (en) * 2010-08-31 2013-02-26 International Business Machines Corporation Method and apparatus for optimizing data allocation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6697960B1 (en) 1999-04-29 2004-02-24 Citibank, N.A. Method and system for recovering data to maintain business continuity
US8326990B1 (en) 2005-07-15 2012-12-04 Symantec Operating Corporation Automated optimal workload balancing during failover in share-nothing database systems
US20070220223A1 (en) 2006-03-17 2007-09-20 Boyd Kenneth W Remote copying of updates to primary and secondary storage locations subject to a copy relationship

Also Published As

Publication number Publication date
US20120284558A1 (en) 2012-11-08
US8560884B2 (en) 2013-10-15
WO2012101540A1 (en) 2012-08-02
JP2014507028A (ja) 2014-03-20
US8566636B2 (en) 2013-10-22
CN103329105A (zh) 2013-09-25
CN103329105B (zh) 2016-01-20
GB2501659B (en) 2017-12-27
GB2501659A (en) 2013-10-30
JP5946472B2 (ja) 2016-07-06
US20120198269A1 (en) 2012-08-02
GB201315014D0 (en) 2013-10-02
DE112012000282T5 (de) 2013-09-05

Similar Documents

Publication Publication Date Title
DE112012000282B4 (de) Anwendungswiederherstellung in einem Dateisystem
DE112018003084B4 (de) Asynchrones lokales und entfernt angeordnetes erzeugen von konsistenten zeitpunkt-momentkopien in konsistenzgruppen
DE102013210642B4 (de) Vorrichtung zum Wiederherstellen von Redundanz
DE112013001421B4 (de) Auf Richtlinien beruhendes Verwalten von Speicherfunktionen in Datenreplikationsumgebungen
DE112011100534B4 (de) Mehrstufiger Sicherungsprozess
DE102012216022B4 (de) Verwaltung einer Zeitpunktkopie-Beziehung für platzsparende Datenträger
DE112014006605B4 (de) Speichersystem
DE112017005868T5 (de) Verwaltung von e/a-abläufen für datenobjekte in einem speichersystem
DE112017000629T5 (de) Multi-Tenant-Arbeitsspeicherdienst für Architekturen mit Arbeitsspeicher-Pools
DE202017007211U1 (de) Klonen von Katalogobjekten
DE112010003837T5 (de) Verbundfamilien für eine Verbundauswahl und eine Kooperative Replikation
DE102016119298B4 (de) Zeitpunktkopieren mit klonen von ketten
DE112016001295T5 (de) Neusynchronisieren auf ein erstes Speichersystem durch Spiegeln des ersten Speichersystems nach einem Failover zu einem zweiten Speichersystem
DE112018004008B4 (de) Auf dateisysteminhalten beruhende sicherheit
DE112006002531T5 (de) Anwendung virtueller Server für Lösungen mit hoher Verfügbarkeit und für Lösungen bei der Wiederherstellung nach Fehlern
DE112010004931T5 (de) Mehrphasige Wiederherstellung von Dateisystemen mit SelektiverBedarfsweiser Verfügbarkeit von Daten(
DE202015009260U1 (de) Effiziente Datenlesungen von verteilten Speichersystemen
DE102009031923A1 (de) Verfahren zum Verwalten von Datenobjekten
DE112014006156T5 (de) Datenmigrationsverfahren eines Speichersystems
DE112019000992T5 (de) Verwaltung virtueller Speicherlaufwerke in einem Datenspeichersystem
DE112012003695T5 (de) Aufrechterhalten mehrerer Zielkopien
DE102012108117A1 (de) Hochverfügbares Rechnersystem, Arbeitsverfahren und dessen Verwendung
DE602004007925T2 (de) Verwalten einer beziehung zwischen einem zielvolumen und einem quellenvolumen
DE112015000222T5 (de) Zusammenführen von mehreren Zeitpunktkopien zu einer zusammengeführten Zeitpunktkopie
DE102013205571B4 (de) Verfahren, Computerprogrammprodukt und Vorrichtung zum Migrieren von Datenträgern mit schlanker Speicherzuweisung in mehrschichtigen Speicherarchitekturen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: RICHARDT PATENTANWAELTE PARTG MBB, DE

Representative=s name: RICHARDT PATENTANWAELTE PART GMBB, DE

Representative=s name: RICHARDT PATENTANWAELTE GBR, DE

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final