DE102021109521A1 - Hochverfügbarer gemeinsamer speicher - Google Patents

Hochverfügbarer gemeinsamer speicher Download PDF

Info

Publication number
DE102021109521A1
DE102021109521A1 DE102021109521.2A DE102021109521A DE102021109521A1 DE 102021109521 A1 DE102021109521 A1 DE 102021109521A1 DE 102021109521 A DE102021109521 A DE 102021109521A DE 102021109521 A1 DE102021109521 A1 DE 102021109521A1
Authority
DE
Germany
Prior art keywords
file server
active
server instance
passive
state information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102021109521.2A
Other languages
English (en)
Inventor
Glenn Watkins
Peter Madany
Peter Corbett
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.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
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 Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of DE102021109521A1 publication Critical patent/DE102021109521A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • 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/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • 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/2035Error 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 without idle spare hardware
    • 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/2046Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share persistent storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Es werden Architekturen und Techniken zur Bereitstellung hochverfügbarer gemeinsamer Speicher offengelegt. Eine aktive Dateiserverinstanz wickelt mindestens aktive Ein-/Ausgabe-Transaktionen (E/A) für einen Cluster von Rechenknoten ab. Aktive E/A-Transaktionen greifen auf ein gemeinsames Speichersystem zu, das von mehreren Rechnerknoten gemeinsam genutzt wird. Die aktive Dateiserverinstanz verwaltet aktive Statusinformationen für das gemeinsame Speichersystem. Eine passive Dateiserverinstanz verwaltet eine Teilmenge der aktiven Zustandsinformationen. Als Reaktion auf einen Ausfall der aktiven Dateiserverinstanz werden die Zustandsinformationen synchronisiert, damit die Teilmenge der aktiven Zustandsinformationen mit den aktiven Zustandsinformationen zum Zeitpunkt des Ausfalls übereinstimmt, um eine aktive Ersatzdateiserverinstanz aus der passiven Dateiserverinstanz zu erhalten, und die Kontrolle über das gemeinsame Speichersystem wird an die Ersatzdateiserverinstanz übertragen. Nachfolgende aktive E/A-Transaktionen werden von der ersetzenden aktiven Dateiserverinstanz abgewickelt.

Description

  • HINTERGRUND
  • Shared-Nothing-Speichersysteme können effiziente Massenspeicherlösungen in Bezug auf Redundanz, Ausfallsicherheit und Skalierbarkeit bieten. Dies hat jedoch den Preis einer ineffizienten Kapazitätsauslastung. Daher sind verbesserte Speichersysteme möglich.
  • Figurenliste
  • Ausführungsformen der Erfindung sind beispielhaft und nicht einschränkend in den Figuren der beigefügten Zeichnungen dargestellt, in denen sich gleiche Bezugsziffern auf ähnliche Elemente beziehen.
    • 1 ist ein konzeptionelles Blockdiagramm einer Ausführungsform einer gemeinsamen Speicherkonfiguration.
    • 2 ist ein Blockdiagramm einer Ausführungsform eines Clusters mit einer aktiven Dateiserverinstanz und einer passiven Dateiserverinstanz.
    • 3 ist ein Flussdiagramm einer Ausführungsform des Failover-Schutzes mit einer passiven Dateiserverinstanz.
    • 4 ist ein Blockdiagramm einer Ausführungsform einer Verarbeitungsressource und eines maschinenlesbaren Mediums, das mit Beispielanweisungen zur Aufrechterhaltung einer hochverfügbaren Dateiserverumgebung kodiert ist.
    • 5 ist ein Blockdiagramm eines Clusters von Knoten, der so konfiguriert werden kann, dass er Hochverfügbarkeitsfunktionen bietet.
    • 6 ist ein Blockdiagramm eines Clusters von Knoten, der so konfiguriert werden kann, dass er Hochverfügbarkeitsfunktionen bietet.
    • 7 ist ein Blockdiagramm eines Clusters von Knoten, der so konfiguriert werden kann, dass er Hochverfügbarkeitsfunktionen mit Knoten mit mehreren aktiven Dateiserver-Instanzen bietet.
    • 8 ist ein Blockdiagramm eines Clusters von Knoten, der so konfiguriert werden kann, dass er Hochverfügbarkeitsfunktionen mit Knoten mit mehreren aktiven Dateiserver-Instanzen bietet.
    • 9 ist ein Blockdiagramm eines Clusters von Knoten, der so konfiguriert werden kann, dass er in einer Umgebung mit gestreckten Clustern Hochverfügbarkeitsfunktionen bietet.
  • AUSFÜHRLICHE BESCHREIBUNG
  • In der folgenden Beschreibung werden zahlreiche spezifische Details aufgeführt. Die Ausführungsformen können jedoch auch ohne diese spezifischen Details praktiziert werden. In anderen Fällen wurden bekannte Strukturen und Techniken nicht im Detail dargestellt, um das Verständnis dieser Beschreibung nicht zu beeinträchtigen.
  • Daten können auf verschiedenen Arten von Rechensystemen gespeichert werden, z. B. auf Servern, Computergeräten, Workstations, Speichersystemen oder Speicherarrays, konvergenten oder hyperkonvergenten Systemen oder Ähnlichem. Rechnersysteme, die über ein Netz verbunden sind, können als Knoten bezeichnet werden. Bei einer gemeinsamen Speicherkonfiguration können mehrere Knoten innerhalb eines Clusters (einer Gruppe) von Knoten auf externen Speicher zugreifen. Dies kann mit verschiedenen SAN-Protokollen (Storage Area Network) erreicht werden, z. B. Internet Small Computer Systems Interface (iSCSI), Fiber Channel (FC), Non-Volatile Memory Express Over Fabrics (NVMeOF) usw. In verschiedenen hier beschriebenen Ausführungsformen können Leistungsoptimierungen in einer Umgebung mit hoch zuverlässigen und hoch verfügbaren Blockspeichergeräten bereitgestellt werden, auf die mehrere virtuelle Maschineninstanzen (VM) zugreifen können.
  • Bei der Speicherung der Daten können einige Computersysteme eine Datenvirtualisierungsplattform verwenden, die Aspekte der physischen Speicherhardware, auf der die Daten physisch gespeichert sind, abstrahiert (z. B. Aspekte wie Adressierung, Konfigurationen usw.) und einer Benutzerumgebung (z. B. einem Betriebssystem, Anwendungen, Prozessen usw.) virtualisierten oder logischen Speicher präsentiert. Der virtualisierte Speicher kann aus mehreren Speichergeräten (z. B. Festplattenlaufwerken, Solid-State-Laufwerken usw.) in einem Datenspeicher zusammengeführt werden, aus dem der virtualisierte oder logische Speicher bereitgestellt werden kann. Die Datenvirtualisierungsplattform kann auch Datendienste wie Deduplizierung, Komprimierung, Replikation und Ähnliches bereitstellen.
  • In verschiedenen Ausführungsformen können hochverfügbare gemeinsam genutzte Speichersysteme durch den Einsatz einer aktiven Dateiserverinstanz und einer passiven Dateiserverinstanz bereitgestellt werden, wobei die aktive Instanz für die Verarbeitung aller E/A-Anforderungen zuständig ist und die passive Instanz über genügend Zustandsinformationen verfügt, um schnell die Rolle der aktiven Instanz zu übernehmen, wenn die ursprüngliche aktive Instanz nicht mehr verfügbar ist. Wenn die aktive Instanz ausfällt, stellt die passive Instanz den Besitz des gemeinsamen Speichers fest und überprüft die Cache-Konsistenz (z. B. durch den Abschluss laufender Transaktionen), und die neue aktive Instanz (zuvor passive Instanz) beginnt mit der Bearbeitung aktiver E/A-Anforderungen. Wenn die ausgefallene Instanz wieder verfügbar wird, kann sie neu synchronisiert und als neue passive Instanz eingerichtet werden, bevor sie wieder die Rolle der aktiven Instanz übernimmt, oder sie kann als passive Instanz weiterarbeiten.
  • Eine Dateisysteminstanz kann sich auf eine Organisation von Metadatenobjekten und Datenobjekten beziehen, die die Datenobjekte hierarchisch mit dem Stammobjekt verknüpfen. So kann eine Dateisysteminstanz durch ihr Stammobjekt identifiziert werden. Die Dateisysteminstanz kann z. B. ein Merkle-Baum oder eine andere hierarchische Anordnung sein (z. B. gerichtete azyklische Graphen usw.). Im Falle eines hierarchischen Merkle-Baums können sich die Datenobjekte auf der untersten Ebene eines jeden Zweigs befinden (d. h. am weitesten vom Stammobjekt entfernt) und auch als Blattdatenobjekte bezeichnet werden. Ein übergeordnetes Objekt enthält als Inhalt die Signaturen der untergeordneten Objekte. Ein übergeordnetes Objekt von Blattdatenobjekten ist zum Beispiel ein Metadatenobjekt, das als Inhalt die Signaturen seiner untergeordneten Blattdatenobjekte speichert.
  • Eine Dateiserverinstanz ist eine Softwarekomponente (z. B. ein virtueller Speichercontroller o. ä.), die die Datenstrukturen für eine oder mehrere Dateisysteminstanzen verwaltet und ein oder mehrere Dateizugriffsprotokolle implementiert. In den folgenden Beispielen können aktive und passive Dateiserver-Instanzen verwendet werden, um hochverfügbare gemeinsame Speichersysteme bereitzustellen.
  • 1 ist ein konzeptionelles Blockdiagramm einer Ausführungsform einer gemeinsamen Speicherkonfiguration. Im Beispiel von 1 kann das Speichersystem 150 eine beliebige Anzahl von Speichergeräten (z. B. 130, 132, 134, 136, 140) umfassen und mit einer beliebigen Anzahl von Dateiserverinstanzen (z. B. 120, 122, 129) kommunikativ verbunden sein. Jedes geeignete Protokoll (z. B. iSCSI, FC, NVMeOF) kann zur Verwaltung von Daten in der Beispielumgebung verwendet werden. Das gemeinsame Speichersystem kann mit einer redundanten Anordnung unabhängiger Festplatten (RAID) oder mit Nicht-RAID-Strukturen implementiert werden.
  • In Umgebungen mit nicht gemeinsam genutztem Speicher kann die Deduplizierungsdomäne als eine einzelne Objektspeicherinstanz pro Knoten implementiert werden. Jede Objektspeicherinstanz kann einen einzelnen Objektindex haben, der als Übersetzungsschicht von der Objektsignatur zur logischen Blockadresse (LBA) des Speichers fungieren kann. Da jede Instanz unabhängig arbeitet, gibt es keine Einschränkungen bei der Skalierbarkeit des Datenpfads, wenn die Clustergröße zunimmt.
  • Bei diesem nicht gemeinsam genutzten Ansatz kann die Replikation zwischen den Knoten auf der Dateisystemebene genutzt werden, wobei jedem Objektindex mehrere Hives zugeordnet werden, was dazu führt, dass jede Dateisysteminstanz ihren eigenen eindeutigen Satz von Objekten beibehält. Der Begriff „Hive“ bezieht sich auf einen Datensatz mit Daten und einem zugehörigen baumstrukturierten Dateisystem, wie oben beschrieben.
  • Damit ein System hochverfügbar bleibt, sollte es bei einem Ausfall einer Dateiserverinstanz (oder eines Knotens) in der Lage sein, den Client-Zugriff innerhalb eines akzeptablen Zeitfensters wiederherzustellen. Ein Ansatz zur Bereitstellung dieser Fähigkeit kann zum Beispiel die Replikation von Hive-Daten über einen direkt angeschlossenen Speicher (DAS) an einem lokalen Knoten sein. Wenn ein aktiver Knoten ausfällt, kann ein anderer (z. B. passiver) Knoten die Adresse (z. B. Internetprotokoll (IP)-Adresse) des ausgefallenen Knotens übernehmen und den Zugriff auf die im Cluster verbleibenden Datenreplikate ermöglichen.
  • In einem gemeinsam genutzten Speichersystem ist es nicht erforderlich, Daten zwischen den Knoten eines Clusters synchron zu replizieren, wenn ein anderer Knoten im Falle eines Ausfalls auf dieselben Daten zugreifen kann. Dies bedeutet, dass der Umfang der Hive-Replikation zwischen den Knoten auf eine einzige Instanz reduziert werden kann, was die Kapazitätseffizienz eines Clusters erhöhen kann.
  • In einem hochverfügbaren System, das einen gemeinsam genutzten externen Speicher nutzt, kann der Zugriff auf den gemeinsam genutzten Speicher durch eine (z. B. passive) Ersatzinstanz des Dateiservers erfolgen, die die ausgefallene Instanz des ursprünglichen Dateiservers ersetzen kann. Dies kann z. B. durch die Einrichtung einer neuen Dateiserverinstanz geschehen, die die Kontrolle über das gemeinsame Speichersystem übernehmen kann. Die neue Dateiserverinstanz kann überall dort online geschaltet werden, wo ein Zugriff auf das gemeinsame Speichersystem mit angemessener Latenzzeit möglich ist. In einigen Ausführungsformen kann die Ersatz-Dateiserverinstanz im Falle eines Knotenausfalls auf einem alternativen Knoten im Cluster stehen. In anderen Ausführungsformen können auch andere Konfigurationen unterstützt werden.
  • Im Beispiel von 1 kann die Dateiserverinstanz 120 als aktive Dateiserverinstanz fungieren und Zugriff auf das Speichersystem 150 bieten, das eine beliebige Anzahl von Speichergeräten (z. B. 130, 132, 134, 136, 140) umfassen kann. Bei den Speichergeräten kann es sich um jede Art von Speichermedium handeln, z. B. um ein Festplattenlaufwerk (HDD), ein Solid-State-Laufwerk (SSD) usw.
  • Im Normalbetrieb kann die Dateiserverinstanz 122 als passive Dateiserverinstanz fungieren, um bei einem Ausfall der Dateiserverinstanz 120 den Zugriff auf das Speichersystem 150 zu ermöglichen. Wie weiter unten ausführlicher erläutert, kann der aktive Dateiserver 120 Statusinformationen 180 aufrechterhalten, um einen voll funktionsfähigen Dateiserver bereitzustellen, und die passive Dateiserverinstanz 122 kann eine Teilmenge der Statusinformationen 182 aufrechterhalten, die von der aktiven Dateiserverinstanz aufrechterhalten werden. Die Aufrechterhaltung ausreichender Zustandsinformationen 182 dient dazu, die Zeit zu verkürzen, die erforderlich ist, bis die passive Dateiserverinstanz 122 vollständig aktiv wird und Zugriff auf das Speichersystem 150 bietet.
  • Die hier verwendeten Zustandsinformationen aus verschiedenen Nur-Lese-Caches (und anderen Datenstrukturen), die zur Unterstützung der vollen Funktionalität einer aktiven Dateisysteminstanz erforderlich sind, werden als „vollständiger Satz“ von Zustandsinformationen bezeichnet. Eine Teilmenge dieser Zustandsinformationen ist eine reduzierte Menge von Zustandsinformationen, die zur Aufrechterhaltung einer passiven Dateisysteminstanz verwendet wird. Mit anderen Worten, die Teilmenge der Zustandsinformationen ist diejenige, die Datenstrukturen enthält, die im Zuge einer Änderung des konsistenten Systemzustands, z. B. während eines Schreibvorgangs, geändert und über Protokollaktualisierungen beibehalten werden. Der vollständige Satz von Zustandsinformationen kann zusätzliche Datenstrukturen enthalten, die erforderlich sind, um eine Benutzeranforderung zu erfüllen, aber bei Bedarf aus einer bekannten Instanz auf dem gemeinsamen Speicher wiederhergestellt werden können.
  • 2 ist ein Blockdiagramm einer Ausführungsform eines Clusters mit einer aktiven Dateiserverinstanz und einer passiven Dateiserverinstanz. Um den Wechsel von der aktiven Instanz zur passiven Instanz zu ermöglichen, kann die passive Instanz in verschiedenen Ausführungsformen so konfiguriert werden, dass sie ausreichende Informationen über den aktuellen Zustand aufrechterhält, indem sie z. B. einen Protokoll-Cache verwendet, um den Clients eine konsistente Sicht auf die Daten zu bieten.
  • In einigen Ausführungsformen mit einer Aktiv/Passiv-Konfiguration (z. B. wie in den 1 und 2 dargestellt) können Knoten als Paare konfiguriert werden, wobei ein Knoten die aktive Dateiserverinstanz (z. B. 210) und ein anderer Knoten die passive Dateiserverinstanz (z. B. 220) aufweist. Die passive Instanz ist zumindest in der Lage, die aktive Identität zu übernehmen, wenn die aktive Instanz ausfällt.
  • Das Starten einer neuen Instanz von Grund auf kann zu lange dauern, um die gewünschten Hochverfügbarkeitsmerkmale zu erreichen, da die Protokolle möglicherweise aus einem Journal (z. B. 240) in einem externen Speicher (z. B. Speichersystem 270) neu erstellt werden müssen. In einigen Ausführungsformen liegt die Zugriffszeit des Zielclients im Sekundenbereich, so dass die Wiederherstellung des kompletten Protokolls aus dem Journal zu zeitaufwändig sein könnte.
  • In einigen Ausführungsformen können die gewünschten Zeitparameter durch Spiegelung eines oder mehrerer Protokolldatenbereiche (z. B. 230) in der passiven Dateiserverinstanz 220 mit replizierten Transaktionen 237, z. B. über eine Netzwerkverbindung 233, erfüllt werden. So kann in einigen Ausführungsformen das hochverfügbare Protokoll (log HA) 215 in der Dateiserverinstanz 210 zumindest teilweise durch den Protokollcache 225 in der Dateiserverinstanz 220 gespiegelt werden, um zumindest eine Teilmenge der oben beschriebenen Zustandsinformationen zu erhalten. In diesen Ausführungsformen gilt eine Transaktion erst dann als bestätigt, wenn sie sowohl im gemeinsamen externen Speicher (z. B. Speichersystem 270 mit Journal 240 mit Protokoll 242, Index 245 und Daten 250, 252, 259) persistiert als auch in den passiven Instanzcache (z. B. Log-Cache 225) repliziert wurde.
  • In einigen Ausführungsformen muss das Protokoll des gemeinsamen externen Speichers nur von der aktiven Instanz aktualisiert werden. Daher kann der Cache der passiven Instanz im flüchtigen Speicher verbleiben. In einigen Ausführungsformen schreibt nur die aktive Instanz ein Protokoll in den gemeinsamen Speicher, und die passive Instanz behält den konsistenten Zustand der Datenregion im Speicher bei.
  • Wenn auf allen Knoten ein persistenter Speicher vorhanden ist, kann dieser anstelle eines externen Journals verwendet werden. Dies würde eine Replikation von Transaktionen über die Knoten hinweg erfordern, die ebenfalls im persistenten Speicher des entfernten passiven Knotens abgelegt werden, um die Fehlertoleranz aufrechtzuerhalten. Wie weiter unten ausführlicher beschrieben, wird die passive Instanz, wenn sie zur aktiven Instanz wird, Eigentümerin des gemeinsamen Speichers, um potenzielle Konflikte zu vermeiden.
  • In einigen Ausführungsformen kann die Protokollstruktur Teil einer Architektur sein, die persistente Datenstrukturaktualisierungen über mehrere Datenpfadkomponenten auf Byte-Ebene verwaltet. Die Architektur kann ACID-Eigenschaften (Atomicity, Consistency, Isolation and Durability) garantieren und kann hardwareunabhängig sein.
  • In einer Ausführungsform kann (können) die Datenregion(en) 230 ein speicherinternes Array von Eintragsobjekten verwalten, wobei die Einträge serialisierbare (z. B. gepackte) Datenstrukturen eines vorbestimmten Größenbereichs (z. B. weniger als 256 Byte) sind, der so klein wie ein einziges Byte sein kann. In einer Ausführungsform enthalten die Datenregionseinträge Datenregionsbezeichner, die angeben, aus welcher Datenregion der entsprechende Eintrag stammt. Es kann eine beliebige Anzahl von Datenregionen unterstützt werden.
  • In einer Ausführungsform können die Datenbereiche 230 dazu dienen, ein Protokolldatenobjekt zu einer verknüpften Liste innerhalb der Transaktion(en) 237 hinzuzufügen, wenn ein veränderbarer Eintrag erstellt wird. In einer Ausführungsform können Einträge nur unter Verwendung einer vorgesehenen Transaktion geändert werden. In einer Ausführungsform bieten die Datenbereiche 230 ein Lese-Kopier-Aktualisierungsverhalten (RCU).
  • In einer Ausführungsform enthalten Transaktion(en) 237 einen vollständigen Satz von Datenstrukturaktualisierungen (z. B. in Form von in log HA 215 gespeicherten Protokolldaten), die eine einzelne atomare Systemoperation darstellen. In einer Ausführungsform kann (können) Transaktion(en) 237 intern eine verknüpfte Liste von in log HA 215 gespeicherten Logdateneinträgen verwalten. Die Protokolldateneinträge können z. B. die Details von aktualisierten Datenbereichseinträgen enthalten.
  • In einer Ausführungsform sind Datenstrukturaktualisierungen, die im Rahmen einer Transaktion vorgenommen werden, erst sichtbar, wenn sie bestätigt werden. In einer Ausführungsform kann (können) Transaktion(en) 237 mindestens zwei öffentliche Schnittstellen bereitstellen, eine zum Abbruch der Transaktion durch Benachrichtigung der Aufrufer in umgekehrter Reihenfolge, in der sie gepusht wurden, und eine zum Festschreiben des Änderungssatzes durch Schreiben in den permanenten Speicher und Aktualisieren der speicherinternen Datenstrukturen, wodurch sie für andere Zugriffsberechtigte sichtbar werden. In einigen Ausführungsformen können Transaktion(en) 237 mit ausreichend Speicher für alle Aktualisierungen und Rückrufe instanziiert werden, um eine dynamische Speicherzuweisung zu vermeiden.
  • In einer Ausführungsform sorgt die Dateisysteminstanz 210 für Dauerhaftigkeit, indem sie Aktualisierungen von Datenbereichen 230 in das persistente Speichersystem 270 schreibt. In einer Ausführungsform verwaltet Log HA 215 eine Liste der Transaktion(en) 237 und persistiert jede einzelne im Speichersystem 270.
  • In einigen Ausführungsformen können Transaktionen aus mehreren Regionen in einen einzigen Puffer mit einer vorgewählten Größe (z. B. 4 KB) gepackt werden. In einer Ausführungsform wird der Puffer in ein Journal im Speichersystem 270 geschrieben, wenn der Puffer voll ist oder wenn ein Timer abläuft (z. B. 800 µs). Journalpuffer können eine beliebige Anzahl von Regionseinträgen enthalten, die Transaktionen entsprechen.
  • Eine Transaktion kann einen oder mehrere Regionseinträge haben. In einigen Ausführungsformen ist ein zweistufiger Festschreibungsprozess vorgesehen, um die Atomizität zu gewährleisten. Zum Beispiel können Transaktionen in einem Staging-Bereich des Speichersystems 270 bereitgestellt werden, bis die Regionseinträge in die entsprechende Regionspartition des Speichersystems 270 geschrieben werden können.
  • 3 ist ein Flussdiagramm einer Ausführungsform des Failover-Schutzes mit einer passiven Dateiserverinstanz. Der in 3 dargestellte Prozess kann z. B. mit Hilfe von Clustern, wie in den 1 und 2 dargestellt, durchgeführt werden.
  • Der Ausfall eines aktiven Knotens oder einer Dateiserverinstanz wird in Block 310 erkannt. Es kann jede Überwachungstechnik verwendet werden, die einen Ausfall schnell genug erkennt, um den Übergang der Kontrolle über den gemeinsamen Speicher einzuleiten.
  • Als Reaktion auf den Ausfall der aktiven Dateiserverinstanz (in Block 310) kann die passive Dateiserverinstanz in Block 320 die Eigentümerschaft an dem gemeinsamen Speichersystem übernehmen. In einer Ausführungsform übernimmt die passive Dateiserverinstanz im Falle eines Ausfalls die IP-Adresse der ausgefallenen (zuvor aktiven) Dateiserverinstanz. Dies kann es der passiven Instanz ermöglichen, eine aktive Instanz zu werden und E/A-Transaktionen mit dem gemeinsamen Speichersystem zu verwalten.
  • Die neu aktive Dateiserverinstanz kann dann in Block 330 die Kohärenz des Protokoll-Caches (z. B. Protokoll-Cache 225 in 2) überprüfen. Dazu kann es gehören, dass alle laufenden Transaktionen abgeschlossen werden, um Atomarität zu gewährleisten. Es können auch andere Cache-Kohärenzoperationen durchgeführt werden. Die neu aktive Dateiserverinstanz kann dann in Block 340 E/A-Transaktionen mit dem gemeinsamen Speichersystem durchführen.
  • Zu einem späteren Zeitpunkt kann die ausgefallene (ursprünglich aktive) Dateiserverinstanz wieder verfügbar werden. In einigen Ausführungsformen wird die Dateiserverinstanz, wenn sie wieder funktionsfähig ist, als neue passive Dateiserverinstanz (in Verbindung mit der derzeit aktiven Dateiserverinstanz) eingerichtet. Die zwischen den beiden Instanzen verknüpften Protokoll-Caches werden synchronisiert. In einer Ausführungsform kann die ursprüngliche aktive Dateiserverinstanz nach der Synchronisierung in Block 350 wieder den aktiven Status erlangen, und die ursprüngliche passive Dateiserverinstanz kann wieder als passive Dateiserverinstanz arbeiten.
  • Dadurch kann eine ausgewogene Verteilung der Rechenressourcen innerhalb eines Clusters erreicht werden. Bei diesem Ansatz müssen für jede passive Instanz genügend Ressourcen im Host-System reserviert werden, damit die passive Instanz jederzeit zur aktiven Instanz werden kann. Dies erhöht den Gesamtbedarf an Rechen- und Speicherressourcen des Hosts. In alternativen Ausführungsformen kann die neu zurückgegebene Dateiserverinstanz bis zum Ausfall der derzeit aktiven Dateiserverinstanz als passive Dateiserverinstanz weiterarbeiten.
  • 4 ist ein Blockdiagramm einer Ausführungsform einer Verarbeitungsressource und eines maschinenlesbaren Mediums, das mit Beispielanweisungen zur Aufrechterhaltung einer hochverfügbaren Dateisystemumgebung codiert ist. Das maschinenlesbare Medium 410 ist nicht flüchtig und wird alternativ als nicht flüchtiges maschinenlesbares Medium 410 bezeichnet. In einigen Beispielen kann auf das maschinenlesbare Medium 410 durch Prozessorvorrichtung(en) 400 zugegriffen werden. Prozessorgerät(e) 400 und maschinenlesbares Medium 410 können in einem oder mehreren Rechenknoten enthalten sein, die die oben beschriebenen Dateiserverinstanzen haben.
  • Das maschinenlesbare Medium 410 kann mit Beispielanweisungen 425, 435, 445, 455 und 465 kodiert sein. Die Befehle 425, 435, 445, 455 und 465 können, wenn sie von der (den) Prozessorvorrichtung(en) 400 ausgeführt werden, verschiedene Aspekte der Aufrechterhaltung der Hochverfügbarkeit eines hier beschriebenen Dateisystems implementieren.
  • In einigen Ausführungsformen veranlassen die Anweisungen 425 eine oder mehrere Komponenten, den Ausfall einer aktiven Dateiserverinstanz zu erkennen. In einigen Ausführungsformen können die Anweisungen 435 eine oder mehrere Komponenten veranlassen, den Besitz eines gemeinsam genutzten Speichersystems durch die passive Dateiserverinstanz festzustellen.
  • In einigen Ausführungsformen können die Anweisungen 445 den (ursprünglichen) passiven Dateiserver veranlassen, die Kohärenz des Protokoll-Caches mit dem dauerhaften gemeinsamen Speicher zu überprüfen. Nach Abschluss des Wiederaufbauprozesses können die Anweisungen 455 die (neu) aktive Dateiserverinstanz veranlassen, E/A-Anforderungen mit dem gemeinsamen Speichersystem zu bearbeiten. Wenn die ursprüngliche aktive Dateiserverinstanz wieder verfügbar ist, können die Anweisungen 465 die zurückgegebene Dateiserverinstanz veranlassen, die Funktionalität der aktiven Dateiserverinstanz wiederzuerlangen.
  • Die obige Beschreibung enthält grundlegende Architekturen und Beispiele für zugehörige aktive und passive Dateiserver-Instanzen, die in Umgebungen mit gemeinsamem Speicher hohe Verfügbarkeit bieten können. Die folgenden Beispiele bieten komplexere Anwendungsfälle, in denen die oben beschriebenen Konzepte angewendet werden können.
  • 5 ist ein Blockdiagramm eines Clusters von Knoten, der so konfiguriert werden kann, dass er Hochverfiigbarkeitsfunktionen bietet. Im dargestellten Beispiel ist jeder Knoten (z. B. 510, 530, 550) sowohl mit einer aktiven Dateiserverinstanz (z. B. 520, 540, 560) als auch mit einer passiven Dateiserverinstanz (z. B. 525, 545, 565) ausgeglichen. Unabhängig davon, ob ein Software- oder Hardwarefehler einen Teil eines einzelnen Knotens betrifft, steht dem Cluster im dargestellten Beispiel eine passive Instanz zur Verfügung. Das Ergebnis ist ein vollständig aktiver Cluster, bei dem auf jedem Hardwareknoten eine aktive Instanz läuft.
  • Im Beispiel von 5 können die Knoten 510, 530 und 550 gemeinsam auf das Speichersystem 590 zugreifen, das partitioniert sein kann (z. B. Partitionen 570, 572, 574) und über eine beliebige Anzahl von physischen Speichergeräten (z. B. 580-585) verfügt. In einer gemeinsam genutzten Speicherumgebung können auch andere Konfigurationen unterstützt werden.
  • In der Konfiguration von 5 befindet sich jede passive Instanz auf einem anderen Knoten als die entsprechende aktive Instanz. So kann sich beispielsweise die aktive Dateiserverinstanz 520 auf dem Knoten 510 und die passive Dateiserverinstanz 545 auf dem Knoten 530 befinden. Bei einem Ausfall von Knoten 510 oder der aktiven Dateiserverinstanz 520 kann die passive Dateiserverinstanz 545 die Dateiserverinstanz 520 als aktive Dateiserverinstanz ersetzen.
  • In ähnlicher Weise kann sich die aktive Dateiserverinstanz 540 auf dem Knoten 530 und die passive Dateiserverinstanz 565 auf dem Knoten 550 befinden. Bei einem Ausfall von Knoten 530 oder der aktiven Dateiserverinstanz 540 kann die passive Dateiserverinstanz 565 die Dateiserverinstanz 540 als aktive Dateiserverinstanz ersetzen. Außerdem kann sich die aktive Dateiserverinstanz 560 auf dem Knoten 550 und die passive Dateiserverinstanz 525 auf dem Knoten 510 befinden. Bei einem Ausfall von Knoten 550 oder der aktiven Dateiserverinstanz 560 kann die passive Dateiserverinstanz 525 die Dateiserverinstanz 560 als aktive Dateiserverinstanz ersetzen.
  • 6 ist ein Blockdiagramm eines Clusters von Knoten, der so konfiguriert werden kann, dass er Hochverfügbarkeitsfunktionen bietet. 6 veranschaulicht eine Situation, in der ein ganzer Knoten (z. B. 610) verfügbar wird und sowohl die aktive Instanz (z. B. 620) als auch die passive Instanz (z. B. 625) nicht verfügbar sind. Wenn auf den überlebenden Knoten genügend Ressourcen verfügbar sind, können im Allgemeinen zusätzliche passive Instanzen erstellt werden, um die Hochverfügbarkeit auf selbstheilende Weise wiederherzustellen.
  • Im Beispiel von 6 können die Knoten 610, 630 und 650 gemeinsam auf das Speichersystem 690 zugreifen, das partitioniert sein kann (z. B. Partitionen 670, 672, 674) und über eine beliebige Anzahl von physischen Speichergeräten (z. B. 680-685) verfügt. In einer gemeinsam genutzten Speicherumgebung können auch andere Konfigurationen unterstützt werden.
  • Der Cluster in 6 kann in derselben Konfiguration wie der Cluster in 5 in Betrieb genommen werden, aber zu einem bestimmten Zeitpunkt kann der Knoten 610 physisch nicht mehr verfügbar sein. Als Reaktion auf die Nichtverfügbarkeit der aktiven Dateiserverinstanz 620 kann die Dateiserverinstanz 645 zu einer aktiven Instanz werden und die zuvor von der aktiven Dateiserverinstanz 620 bereitgestellten Funktionen übernehmen.
  • Wenn innerhalb der Knoten 630 und 650 genügend Ressourcen verfügbar sind, können zwei zusätzliche passive Dateiserver-Instanzen (z. B. 623 und 628) erzeugt werden, die mit der vorhandenen passiven Dateiserver-Instanz (z. B. 665) zusammenarbeiten und ein Backup für die funktionierenden aktiven Dateiserver-Instanzen (z. B. 640, 645, 660) bereitstellen. Die aktiven und passiven Instanzen können gepaart werden (z. B. 640 mit 665, 645 mit 628, 660 mit 623), um wie oben beschrieben zu funktionieren.
  • 7 ist ein Blockdiagramm eines Clusters von Knoten, der so konfiguriert werden kann, dass er Hochverfiigbarkeitsfunktionen mit Knoten mit mehreren aktiven Dateiserver-Instanzen bietet. Mit zwei aktiven Instanzen, die pro Knoten verwaltet werden, kann jede auf eine einzelne passive Instanz auf verschiedenen Knoten innerhalb des Clusters replizieren. Somit bieten diese Ausführungsformen eine Eins-zu-Eins-Zuordnung von aktiven Dateiserver-Instanzen zu einer passiven Dateiserver-Instanz. Diese Ausführungsform kann den Bedarf an Cluster-Ressourcen verringern und das Gleichgewicht während eines Failover auf Kosten der Deduplizierungseffizienz verbessern.
  • Das Beispiel in 7 zeigt einen Cluster mit drei Knoten; es kann jedoch jede Clustergröße unterstützt werden. In einigen Ausführungsformen kann jede Instanz einen dedizierten Plattensatz (der eine Deduplizierungsdomäne sein kann) auf einem gemeinsam genutzten Speichersystem haben und zu einer passiven Instanz auf einem anderen Knoten replizieren. Im dargestellten Beispiel ist jeder Knoten (z. B. 710, 730, 750) mit zwei aktiven Dateiserver-Instanzen (z. B. 720, 722 auf Knoten 710; 740, 742 auf Knoten 730; 760, 762 auf Knoten 750) und einer passiven Dateiserver-Instanz (z. B. 725 auf Knoten 710, 745 auf Knoten 730, 765 auf Knoten 750) ausgeglichen.
  • Im Beispiel von 7 können die Knoten 710, 730 und 750 gemeinsam auf das Speichersystem 790 zugreifen, das partitioniert sein kann (z. B. Partitionen 770-775) und über eine beliebige Anzahl von physischen Speichergeräten verfügt (z. B. 780-785). In einer gemeinsamen Speicherumgebung können auch andere Konfigurationen unterstützt werden.
  • In der Konfiguration von 7 befindet sich jede passive Instanz auf einem anderen Knoten als die entsprechenden aktiven Instanzen. Beispielsweise können sich die aktiven Dateiserverinstanzen 720 und 722 auf dem Knoten 710, die passive Dateiserverinstanz 745 auf dem Knoten 730 und die passive Dateiserverinstanz 765 auf dem Knoten 750 befinden. Bei einem Ausfall von Knoten 710 kann die passive Dateiserverinstanz 745 die Dateiserverinstanz 720 und die passive Dateiserverinstanz 765 die Dateiserverinstanz 722 als aktive Dateiserverinstanzen ersetzen. Wenn Knoten 710 funktionsfähig bleibt und eine oder beide aktiven Dateiserverinstanzen ausfallen, können die entsprechenden passiven Instanzen die Rolle der aktiven Dateiserverinstanz übernehmen.
  • In ähnlicher Weise können sich die aktiven Dateiserver-Instanzen 740 und 742 auf dem Knoten 730, die passive Dateiserver-Instanz 765 auf dem Knoten 750 und die passive Dateiserver-Instanz 725 auf dem Knoten 710 befinden. Bei einem Ausfall von Knoten 730 kann die passive Dateiserverinstanz 765 die Dateiserverinstanz 740 und die passive Dateiserverinstanz 725 die Dateiserverinstanz 742 als aktive Dateiserverinstanzen ersetzen. Wenn der Knoten 730 funktionsfähig bleibt und eine oder beide der aktiven Dateiserverinstanzen ausfallen, können die entsprechenden passiven Instanzen die Rolle der aktiven Dateiserverinstanz übernehmen.
  • Außerdem können die aktiven Dateiserver-Instanzen 760 und 762 auf dem Knoten 750, die passive Dateiserver-Instanz 725 auf dem Knoten 710 und die passive Dateiserver-Instanz 745 auf dem Knoten 730 untergebracht werden. Im Falle eines Ausfalls von Knoten 750 kann die passive Dateiserverinstanz 725 die Dateiserverinstanz 760 und die passive Dateiserverinstanz 745 die Dateiserverinstanz 762 als aktive Dateiserverinstanzen ersetzen. Wenn Knoten 750 funktionsfähig bleibt und eine oder beide aktiven Dateiserverinstanzen ausfallen, können die entsprechenden passiven Instanzen die Rolle der aktiven Dateiserverinstanz übernehmen.
  • 8 ist ein Blockdiagramm eines Clusters von Knoten, der so konfiguriert werden kann, dass er Hochverfiigbarkeitsfunktionen mit Knoten mit mehreren aktiven Dateiserverinstanzen bietet. Das Beispiel in 8 zeigt einen Cluster, der wie in 10 konfiguriert startet und bei dem ein Knoten ausfällt (z. B. 810).
  • Das Beispiel in 8 zeigt einen Cluster mit drei Knoten; es kann jedoch jede Clustergröße unterstützt werden. In einigen Ausführungsformen kann jede Instanz einen dedizierten Plattensatz (der eine Deduplizierungsdomäne sein kann) auf einem gemeinsamen Speichersystem haben. Im Beispiel von 8 können die Knoten 810, 830 und 850 gemeinsam auf das Speichersystem 890 zugreifen, das partitioniert sein kann (z. B. Partitionen 870-875) und über eine beliebige Anzahl von physischen Speichergeräten verfügt (z. B. 880-885). In einer gemeinsamen Speicherumgebung können auch andere Konfigurationen unterstützt werden.
  • Wenn Knoten 810 ausfällt, kann die aktive Instanz 820 durch die aktive Instanz 845 auf Knoten 830 und die aktive Instanz 822 durch die aktive Instanz 865 auf Knoten 850 ersetzt werden. Somit führt der Ausfall von Knoten 810 zum Verlust von zwei aktiven Instanzen (z. B. 820, 822) und zwei passiven Instanzen (z. B. 845, 865 sind keine passiven Instanzen mehr). Da die passiven Instanzen die verlorenen aktiven Instanzen ersetzen, kann der Knoten 830 drei aktive Instanzen haben (z. B. 840, 842, 845) und der Knoten 850 kann ebenfalls drei aktive Instanzen haben (z. B. 860, 862, 865). In einigen Ausführungsformen können neue passive Ersatzinstanzen erzeugt werden, um die zuvor passiven Instanzen zu ersetzen, die zu aktiven Instanzen geworden sind. In einigen Ausführungsformen können nicht genügend Ressourcen verfügbar sein, um passive Ersatzinstanzen bereitzustellen.
  • Wenn das zugrunde liegende Speichermedium von mehreren Dateiserver-Instanzen gemeinsam genutzt wird, kann unter bestimmten Bedingungen die Fehlertoleranz des Gesamtsystems verringert werden. Ein ausgefallenes oder beschädigtes Speichergerät oder eine RAID-Gruppe kann sich auf viele Dateiserver-Instanzen auswirken und potenziell clusterweite Folgen haben. Ohne die von Hive-Replikaten bereitgestellte Datenredundanz kann ein Ausfall einer RAID-Gruppe zu einem Datenverlust im Cluster führen. Diese Fehlertoleranz-Situation kann mit gestreckten Clustern angegangen werden.
  • 9 ist ein Blockdiagramm eines Clusters von Knoten, der so konfiguriert werden kann, dass er in einer Umgebung mit gestreckten Clustern Hochverfügbarkeitsfunktionen bietet. Gestreckte Cluster bieten die Möglichkeit, Daten zwischen Fehlerdomänen zu replizieren, so dass sie auch bei einem Ausfall der gesamten Domäne verfügbar bleiben. Dabei kann es sich beispielsweise um getrennte Racks in einem Labor, getrennte Labore in einem Gebäude, getrennte Gebäude an einem Standort oder sogar um getrennte Standorte handeln, wenn zwischen ihnen eine hochwertige Netzwerkverbindung mit akzeptabler Latenzzeit besteht.
  • Im Beispiel von 9 kann für jede Domäne separate Speicherhardware vorhanden sein, und es kann eine Hive-Replikation (z. B. 950 bis 955) verwendet werden. Die zusätzliche Hive-Replik 955 kann eine hohe Verfügbarkeit gewährleisten. Im Beispiel von 9 können die Daten domänenübergreifend repliziert werden (z. B. 900, 905), aber die Caches (z. B. 215 und 225 in 2) werden innerhalb der Domäne repliziert (z. B. 920 bis 927 der Domäne 900).
  • Wie bei den oben beschriebenen Ausführungsformen kann der Knoten 910 eine aktive Instanz 920 und eine passive Instanz 922 haben, und der Knoten 912 kann eine aktive Instanz 925 und eine passive Instanz 927 haben, die wie oben beschrieben funktionieren. Die Knoten 910 und 912 können beide Zugriff auf das Speichersystem 990 haben, das eine Partition 970 (mit Speichergeräten 980a-980n) und eine Partition 973 (mit Speichergeräten 984a-984n) haben kann.
  • In ähnlicher Weise kann der Knoten 930 eine aktive Instanz 940 und eine passive Instanz 942 haben, und der Knoten 932 kann eine aktive Instanz 945 und eine passive Instanz 947 haben, die wie oben beschrieben funktionieren. Die Knoten 930 und 932 können beide Zugriff auf das Speichersystem 1295 haben, das die Partition 1972 (mit Speichergeräten 983a-983n) und die Partition 974 (mit Speichergeräten 986a-986n) haben kann.
  • Wenn in der Beschreibung auf „eine Ausführungsform“ oder „eine Ausführungsform“ Bezug genommen wird, bedeutet dies, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Eigenschaft, die im Zusammenhang mit der Ausführungsform beschrieben wird, in mindestens einer Ausführungsform der Erfindung enthalten ist. Die Formulierung „in einer Ausführungsform“, die an verschiedenen Stellen der Beschreibung auftaucht, bezieht sich nicht unbedingt auf dieselbe Ausführungsform.
  • Während die Erfindung anhand mehrerer Ausführungsformen beschrieben wurde, wird der Fachmann erkennen, dass die Erfindung nicht auf die beschriebenen Ausführungsformen beschränkt ist, sondern mit Modifikationen und Änderungen im Rahmen des Geistes und des Umfangs der beigefügten Ansprüche ausgeführt werden kann. Die Beschreibung ist daher als illustrativ und nicht als einschränkend zu betrachten.

Claims (18)

  1. Ein nicht-transitorisches computerlesbares Medium, auf dem Anweisungen gespeichert sind, die, wenn sie von einem oder mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren veranlassen: mindestens eine aktive Dateiserverinstanz aufrechtzuerhalten, um mindestens einen Teil der aktiven Eingabe/Ausgabe (E/A)-Transaktionen für einen Cluster von Rechenknoten zu verarbeiten, wobei mindestens der Teil der aktiven E/A-Transaktionen auf ein gemeinsam genutztes Speichersystem zugreift, das von mehreren Rechenknoten gemeinsam genutzt wird, und die aktive Dateiserverinstanz aktive Zustandsinformationen für das gemeinsam genutzte Speichersystem in Bezug auf die mehreren Rechenknoten aufrechterhält; Aufrechterhaltung einer passiven Dateiserverinstanz für den Cluster von Rechenknoten, wobei die passive Dateiserverinstanz eine Teilmenge der aktiven Statusinformationen aufrechterhält; einen Ausfall der aktiven Dateiserverinstanz erkennen; die Kontrolle über das gemeinsame Speichersystem an die passive Dateiserverinstanz übertragen, um eine ausgefallene aktive Dateiserverinstanz zu ersetzen; Synchronisieren von Zustandsinformationen, um zu bewirken, dass die Teilmenge der aktiven Zustandsinformationen, die von der passiven Dateiserverinstanz aufrechterhalten werden, mit den aktiven Zustandsinformationen zum Zeitpunkt des Ausfalls übereinstimmen, um eine aktive Ersatz-Dateiserverinstanz aus der passiven Dateiserverinstanz zu ergeben; und nachfolgende aktive E/A-Transaktionen über die aktive Ersatzinstanz des Dateiservers abwickeln.
  2. Nicht-transitorisches computerlesbares Medium nach Anspruch 1, wobei die Aufrechterhaltung der Teilmenge von Zustandsinformationen die Aufrechterhaltung eines gespiegelten Caches von Systemoperationen innerhalb der mehreren Rechenknoten umfasst.
  3. Das nicht-transitorische computerlesbare Medium nach Anspruch 1 umfasst ferner Anweisungen, die, wenn sie von dem einen oder den mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren dazu veranlassen: die Wiederherstellung der Verfügbarkeit der ausgefallenen aktiven Dateiserverinstanz feststellen; zumindest die von der ersetzenden aktiven Dateiserverinstanz und der ausgefallenen aktiven Dateiserverinstanz verwalteten Zustandsinformationen nach der Rückkehr zur Verfügbarkeit synchronisieren; die Kontrolle über das gemeinsame Speichersystem zurück an die ausgefallene aktive Dateiserverinstanz übertragen; und Bewirken, dass die aktive Ersatz-Dateiserverinstanz als die passive Dateiserverinstanz arbeitet, indem mindestens eine Teilmenge der aktiven Zustandsinformationen beibehalten wird, die von der aktiven Dateiserverinstanz beibehalten werden.
  4. Nicht-transitorisches computerlesbares Medium nach Anspruch 1, wobei die erste aktive Dateiserverinstanz in einem ersten Knoten der mehreren Rechenknoten funktioniert und die passive Dateiserverinstanz in einem zweiten Knoten der mehreren Rechenknoten funktioniert.
  5. Das nicht-transitorische computerlesbare Medium nach Anspruch 1 umfasst ferner Anweisungen, die, wenn sie von dem einen oder den mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren veranlassen: Aufrechterhalten einer zweiten passiven Dateiserverinstanz für den Cluster von Rechenknoten, wobei die zweite passive Dateiserverinstanz eine zweite Kopie der Teilmenge aktiver Statusinformationen aufrechterhält; und die zweite passive Dateiserverinstanz veranlassen, eine Teilmenge von Zustandsinformationen, die von der ersetzenden aktiven Dateiserverinstanz verwaltet werden, als Reaktion auf die Handhabung der nachfolgenden E/A-Transaktionen durch die ersetzende aktive Dateiserverinstanz zu verwalten.
  6. Nicht-transitorisches computerlesbares Medium nach Anspruch 1, das ferner Anweisungen umfasst, die, wenn sie von dem einen oder den mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren veranlassen: eine zweite aktive Dateiserverinstanz aufrechtzuerhalten, um mindestens einen zweiten Teil der aktiven Eingabe/Ausgabe (E/A)-Transaktionen für den Cluster von Rechenknoten zu bearbeiten, wobei mindestens der zweite Teil der aktiven E/A-Transaktionen auf das gemeinsame Speichersystem zugreift und die zweite aktive Dateiserverinstanz zweite aktive Zustandsinformationen für das gemeinsame Speichersystem in Bezug auf die mehreren Rechenknoten aufrechterhält; mit der passiven Dateiserverinstanz eine Teilmenge der zweiten aktiven Zustandsinformationen zu erhalten.
  7. Ein System, bestehend aus: mindestens ein gemeinsames Speichersystem, das so gekoppelt ist, dass es von mehreren Rechenknoten gemeinsam genutzt werden kann; und einen oder mehrere Hardware-Prozessoren, die mit dem gemeinsamen Speichersystem gekoppelt sind, um einen Cluster von Rechenknoten bereitzustellen, wobei der eine oder die mehreren Hardware-Prozessoren dazu dienen: mindestens eine aktive Dateiserverinstanz aufrechtzuerhalten, um mindestens einen Teil der aktiven Eingabe/Ausgabe (E/A)-Transaktionen für einen Cluster von Rechenknoten zu verarbeiten, wobei mindestens der Teil der aktiven E/A-Transaktionen auf ein gemeinsam genutztes Speichersystem zugreift, das von mehreren Rechenknoten gemeinsam genutzt wird, und die aktive Dateiserverinstanz aktive Zustandsinformationen für das gemeinsam genutzte Speichersystem in Bezug auf die mehreren Rechenknoten aufrechterhält; Aufrechterhaltung einer passiven Dateiserverinstanz für den Cluster von Rechenknoten, wobei die passive Dateiserverinstanz eine Teilmenge der aktiven Statusinformationen aufrechterhält; einen Ausfall der aktiven Dateiserverinstanz erkennen; die Kontrolle über das gemeinsame Speichersystem an die passive Dateiserverinstanz übertragen, um eine ausgefallene aktive Dateiserverinstanz zu ersetzen; Synchronisieren von Zustandsinformationen, um zu bewirken, dass die Teilmenge der aktiven Zustandsinformationen, die von der passiven Dateiserverinstanz aufrechterhalten werden, mit den aktiven Zustandsinformationen zum Zeitpunkt des Ausfalls übereinstimmen, um eine aktive Ersatz-Dateiserverinstanz aus der passiven Dateiserverinstanz zu ergeben; und nachfolgende aktive E/A-Transaktionen über die aktive Ersatzinstanz des Dateiservers abwickeln.
  8. Das System nach Anspruch 7, wobei die Aufrechterhaltung der Teilmenge von Zustandsinformationen die Aufrechterhaltung eines gespiegelten Caches von Systemoperationen innerhalb der mehreren Rechenknoten umfasst.
  9. Das System nach Anspruch 7, wobei der eine oder die mehreren Prozessoren ferner so konfiguriert sind, dass sie: die Wiederherstellung der Verfügbarkeit der ausgefallenen aktiven Dateiserverinstanz feststellen; zumindest die von der ersetzenden aktiven Dateiserverinstanz und der ausgefallenen aktiven Dateiserverinstanz verwalteten Zustandsinformationen nach der Rückkehr zur Verfügbarkeit synchronisieren; die Kontrolle über das gemeinsame Speichersystem zurück an die ausgefallene aktive Dateiserverinstanz übertragen; und Bewirken, dass die aktive Ersatz-Dateiserverinstanz als die passive Dateiserverinstanz arbeitet, indem mindestens eine Teilmenge der aktiven Zustandsinformationen beibehalten wird, die von der aktiven Dateiserverinstanz beibehalten werden.
  10. Das System nach Anspruch 7, wobei die erste aktive Dateisysteminstanz in einem ersten Knoten innerhalb des Clusters arbeitet und die passive Dateisysteminstanz in einem zweiten Knoten des Clusters arbeitet.
  11. Das System nach Anspruch 7, wobei der eine oder die mehreren Prozessoren ferner so konfiguriert sind, dass sie: Aufrechterhalten einer zweiten passiven Dateiserverinstanz für den Cluster von Rechenknoten, wobei die zweite passive Dateiserverinstanz eine zweite Kopie der Teilmenge aktiver Statusinformationen aufrechterhält; und die zweite passive Dateiserverinstanz veranlassen, eine Teilmenge von Zustandsinformationen, die von der ersetzenden aktiven Dateiserverinstanz verwaltet werden, als Reaktion auf die Handhabung der nachfolgenden E/A-Transaktionen durch die ersetzende aktive Dateiserverinstanz zu verwalten.
  12. Das System nach Anspruch 7, wobei der eine oder die mehreren Prozessoren ferner so konfiguriert sind, dass sie: eine zweite aktive Dateiserverinstanz aufrechtzuerhalten, um mindestens einen zweiten Teil der aktiven Eingabe/Ausgabe (E/A)-Transaktionen für den Cluster von Rechenknoten zu verarbeiten, wobei mindestens der zweite Teil der aktiven E/A-Transaktionen auf das gemeinsame Speichersystem zugreift und die zweite aktive Dateiserverinstanz zweite aktive Zustandsinformationen für das gemeinsame Speichersystem in Bezug auf die mehreren Rechenknoten aufrechterhält; mit der passiven Dateiserverinstanz eine Teilmenge der zweiten aktiven Zustandsinformationen zu erhalten.
  13. Ein Verfahren, das Folgendes umfasst: Aufrechterhalten mindestens einer aktiven Dateiserverinstanz, um mindestens einen Teil der aktiven Eingabe/Ausgabe (E/A)-Transaktionen für einen Cluster von Rechenknoten zu verarbeiten, wobei mindestens der Teil der aktiven E/A-Transaktionen auf ein gemeinsam genutztes Speichersystem zugreift, das von mehreren Rechenknoten gemeinsam genutzt wird, und die aktive Dateiserverinstanz aktive Zustandsinformationen für das gemeinsam genutzte Speichersystem in Bezug auf die mehreren Rechenknoten aufrechterhält; Verwalten einer passiven Dateiserverinstanz für den Cluster von Rechenknoten, wobei die passive Dateiserverinstanz eine Teilmenge der aktiven Zustandsinformationen verwaltet; Erkennen eines Ausfalls der aktiven Dateiserverinstanz; Übertragung der Kontrolle über das gemeinsame Speichersystem an die passive Dateiserverinstanz, um eine ausgefallene aktive Dateiserverinstanz zu ersetzen; Synchronisieren von Zustandsinformationen, um zu bewirken, dass die Teilmenge der aktiven Zustandsinformationen, die von der passiven Dateiserverinstanz aufrechterhalten werden, mit den aktiven Zustandsinformationen zum Zeitpunkt des Ausfalls übereinstimmen, was zu einer aktiven Ersatz-Dateiserverinstanz von der passiven Dateiserverinstanz führt; und Abwicklung nachfolgender aktiver E/A-Transaktionen unter Verwendung der ersetzenden aktiven Dateiserverinstanz.
  14. Verfahren nach Anspruch 13, wobei die Aufrechterhaltung der Teilmenge von Zustandsinformationen die Aufrechterhaltung eines gespiegelten Caches von Systemoperationen innerhalb der mehreren Rechenknoten umfasst.
  15. Das Verfahren nach Anspruch 13 umfasst ferner: Erkennung der Wiederverfügbarkeit der ausgefallenen aktiven Dateiserver-Instanz; Synchronisieren zumindest der Zustandsinformationen, die von der aktiven Ersatz-Dateiserver-Instanz und der ausgefallenen aktiven Dateiserver-Instanz nach der Rückkehr zur Verfügbarkeit aufrechterhalten werden; Übertragen der Kontrolle über das gemeinsame Speichersystem zurück an die ausgefallene aktive Dateiserverinstanz; und Bewirken, dass die ersetzende aktive Dateiserverinstanz als die passive Dateiserverinstanz arbeitet, indem mindestens eine Teilmenge der von der aktiven Dateiserverinstanz verwalteten aktiven Zustandsinformationen beibehalten wird.
  16. Verfahren nach Anspruch 13, wobei die erste aktive Dateisysteminstanz innerhalb eines ersten Knotens der mehreren Rechenknoten funktioniert und die passive Dateisysteminstanz innerhalb eines zweiten Knotens der mehreren Rechenknoten funktioniert.
  17. Das Verfahren nach Anspruch 13 umfasst ferner: Aufrechterhalten einer zweiten passiven Dateiserverinstanz für den Cluster von Rechenknoten, wobei die zweite passive Dateiserverinstanz eine zweite Kopie der Teilmenge aktiver Statusinformationen aufrechterhält; und Veranlassen der zweiten passiven Dateiserverinstanz, eine Teilmenge von Zustandsinformationen zu erhalten, die von der ersetzenden aktiven Dateiserverinstanz als Reaktion auf die Handhabung der nachfolgenden E/A-Transaktionen durch die ersetzende aktive Dateiserverinstanz erhalten werden.
  18. das Verfahren nach Anspruch 13 umfasst ferner: Aufrechterhalten einer zweiten aktiven Dateiserverinstanz, um mindestens einen zweiten Teil der aktiven Eingabe/Ausgabe (E/A)-Transaktionen für den Cluster von Rechenknoten zu verarbeiten, wobei mindestens der zweite Teil der aktiven E/A-Transaktionen auf das gemeinsame Speichersystem zugreift und die zweite aktive Dateiserverinstanz zweite aktive Zustandsinformationen für das gemeinsame Speichersystem in Bezug auf die mehreren Rechenknoten aufrechterhält; Aufrechterhaltung einer Teilmenge der zweiten aktiven Zustandsinformationen durch die passive Dateiserverinstanz.
DE102021109521.2A 2020-07-30 2021-04-15 Hochverfügbarer gemeinsamer speicher Pending DE102021109521A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202016943856A 2020-07-30 2020-07-30
US16943856 2020-07-30

Publications (1)

Publication Number Publication Date
DE102021109521A1 true DE102021109521A1 (de) 2022-02-03

Family

ID=79300742

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021109521.2A Pending DE102021109521A1 (de) 2020-07-30 2021-04-15 Hochverfügbarer gemeinsamer speicher

Country Status (2)

Country Link
CN (1) CN114064591A (de)
DE (1) DE102021109521A1 (de)

Also Published As

Publication number Publication date
CN114064591A (zh) 2022-02-18

Similar Documents

Publication Publication Date Title
DE112013001421B4 (de) Auf Richtlinien beruhendes Verwalten von Speicherfunktionen in Datenreplikationsumgebungen
DE102013210642B4 (de) Vorrichtung zum Wiederherstellen von Redundanz
DE69724834T2 (de) System für hochverfügbare datenspeicherung mit allgemein-adressiertem speicher
DE112019002609T5 (de) Wechseln zwischen Fehlerreaktionsmodellen für ein Speichersystem
DE112021003061T5 (de) Ausgleichen von resilienz und leistung durch selektive verwendung von verschlechterten schreibvorgängen und freier kapazität in speichersystemen
CA2913036C (en) Index update pipeline
DE602004005344T2 (de) Verfahren, system und programm zur handhabung eines failover zu einem fernspeicherort
DE112014006156B4 (de) Speichersystem und Datenmigrationsverfahren
DE112013006643B4 (de) Speichersystem und steuerungsverfahren für speichersystem
DE112014006605B4 (de) Speichersystem
DE112016001295T5 (de) Neusynchronisieren auf ein erstes Speichersystem durch Spiegeln des ersten Speichersystems nach einem Failover zu einem zweiten Speichersystem
DE602005002532T2 (de) Cluster-datenbank mit ferndatenspiegelung
DE202019005483U1 (de) Datenreplikation und Datenausfallsicherung in Datenbanksystemen
DE202017007211U1 (de) Klonen von Katalogobjekten
DE112013005903T5 (de) Speichersystem und Speichersteuerungsverfahren
DE19924822A1 (de) Verfahren und Vorrichtung für Katastrophen-Behebung von Dateisystemen
DE19924900A1 (de) Verfahren und Vorrichtung für Katastrophen-Behebung von Dateisystemen
DE102019111068A1 (de) Datenspeichersystem mit LUN-Archivierung in die Cloud unter Verwendung einer Volume-to-Object(Volumen-zu-Objekt)-Umsetzung
DE112011103666T5 (de) Speicherverwaltung in Cluster-Datenverarbeitungssystemen
DE102013101863A1 (de) Hochverfügbares Hauptspeicher-Datenbanksystem, Arbeitsverfahren und deren Verwendungen
DE202015009267U1 (de) Priorisierung von Datenrekonstruktion in verteilten Speichersystemen
DE112012000282B4 (de) Anwendungswiederherstellung in einem Dateisystem
DE102013215535A1 (de) Sicherung oder wiederherstellung von daten mit hilfe eines hauptspeichers und nichtflüchtiger speichermedien
DE112010004530B4 (de) Transaktionsaktualisierung bei Dynamischen Verteilten Arbeitslasten
EP1821498B1 (de) Ausfallsicheres System zum Verwalten von Client-Server-Kommunikation

Legal Events

Date Code Title Description
R083 Amendment of/additions to inventor(s)
R081 Change of applicant/patentee

Owner name: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, SPR, US

Free format text: FORMER OWNER: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, HOUSTON, TX, US