-
TECHNISCHES GEBIET
-
Der offenbarte Gegenstand bezieht sich im Allgemeinen auf Erhöhen der Zuverlässigkeit in einem verteilten Speichersystem und insbesondere auf ein System und ein Verfahren für einen Hilfsmechanismus zur Verstärkung der Zuverlässigkeit für verteilte Speichersysteme.
-
HINTERGRUND
-
Es ist allgemein üblich, Informationen mit einem bestimmten Grad der Redundanz zu speichern, um bei Hardware-Ausfall einen Datenverlust zu vermeiden. Diese Redundanz kann durch Duplizieren (oder Kopieren) der Daten oder durch Hinzufügen einer bestimmten Redundanz-Codierung (z.B. Paritätsblöcke oder Löschcodes) eingeführt werden. Redundanz-Daten oder Datenkopien können über mehrere Bereiche gespeichert werden, damit bei einem Bereichsausfall eine Datenwiederherstellung möglich ist.
-
Kopien können auf unterschiedlichen Speicherplatten, Servern, Einschüben oder geografisch voneinander getrennten Standorten gespeichert werden, so dass ein Ausfall einer einzelnen Speicherplatte, eines Servers, eines Einschubs oder selbst eines kompletten Datenzentrums keinen Datenverlust bewirken würde. Somit macht eine integrierte Redundanz ein System widerstandsfähig gegenüber gleichzeitigen Ausfällen. Trotzdem kann ein System lediglich einer bestimmten Anzahl von gleichzeitigen Ausfällen standhalten. Beispielsweise ist ein Speichersystem mit Dreifach-Kopie gegen einen doppelten Speicherplattenausfall geschützt, jedoch nicht gegen einen Dreifach-Speicherplattenausfall.
-
Zum Gewährleisten der Zuverlässigkeit mittels Kopieren stellt das System beim Auftreten eines Ausfalls die Daten, die sich auf der ausgefallenen Hardware befanden, aus den restlichen Kopien bis zu einem im Voraus festgelegten Redundanzgrad wieder her. Während der Wiederherstellung ist das System anfällig auf weitere Ausfälle, so dass es wichtig ist, dass die Wiederherstellung möglichst schnell erfolgt. Jedoch sind nicht alle Daten, die an dem Prozess der Wiederherstellung beteiligt sind, in gleichem Maße anfällig. Beispielsweise können Daten, bei denen eine kleinere Anzahl von Repliken vorhanden ist, im Allgemeinen als anfälliger betrachtet werden.
-
Es wäre wünschenswert, die Zuverlässigkeit eines Speichersystems anhand eines Wiederherstellungsschemas zu verbessern, bei dem die Wiederherstellung von anfälligeren Daten dynamisch priorisiert wird. Ein Umsetzen eines derartigen Wiederherstellungsschemas ist üblicherweise nicht einfach möglich, da die Wiederherstellungskomponenten in einem Speichersystem möglicherweise in Hardware oder vorbehaltlich von Lizenzbestimmungen umgesetzt sind, die Modifikationen an dem Wiederherstellungsmechanismus des Systems verbieten. Es werden Systeme und Verfahren benötigt, bei denen die oben aufgeführten Nachteile überwunden werden. Es besteht deswegen in der Technik ein Bedarf, sich mit dem obenerwähnten Problem zu befassen.
-
Die US 2013 / 0 212 428 A1 betrifft ein Informationswiedergabeverfahren zum Wiedergeben von Daten von einer Vielzahl von einmalig beschreibbaren Informationsspeichermedien und einem einmalig beschreibbaren alternativen Informationsspeichermedium, das ein Ersatz für eines der Vielzahl von einmalig beschreibbaren Informationsspeichermedien ist, wobei jedes der Vielzahl von einmalig beschreibbaren Informationsspeichermedien und das einmalig beschreibbare alternative Informationsspeichermedium Datensätze kontinuierlich auf Spuren aufzeichnen, wobei die Daten auf dem einmal beschreibbaren Informationsspeichermedium, das ein Aufzeichnungsobjekt ist, der Vielzahl von einmal beschreibbaren Informationsspeichermedien aufgezeichnet werden; und wobei die Daten, die auf einem einmal beschreibbaren fehlerhaften Informationsspeichermedium, in dem das Auftreten eines Fehlers erkannt wurde, aufgezeichnet werden sollten, alternativ auf dem einmal beschreibbaren alternativen Informationsspeichermedium aufgezeichnet werden; wenn eine Anforderung zur Wiedergabe in Bezug auf das einmal beschreibbare fehlerhafte Informationsspeichermedium empfangen wird und wenn der durch die Anforderung zur Wiedergabe bezeichnete Bereich ein aufgezeichneter Bereich des einmal beschreibbaren alternativen Informationsspeichermediums ist, dann werden Daten von dem einmal beschreibbaren alternativen Informationsspeichermedium wiedergegeben, und wenn der durch die Anforderung zur Wiedergabe bezeichnete Bereich ein nicht aufgezeichneter Bereich des einmal beschreibbaren alternativen Informationsspeichermediums und ein aufgezeichneter Bereich des einmal beschreibbaren fehlerhaften Informationsspeichermediums ist, dann werden Daten von dem einmal beschreibbaren fehlerhaften Informationsspeichermedium wiedergegeben.
-
Die WO 2012/ 017 641 A1 betrifft ein digitales Aufzeichnungsgerät, das aufweist: eine Einheit zur Spezifikation eines fehlerhaften Arrays, die die Fehlerrate eines fehlerhaften Arrays verringern kann, ohne notwendigerweise einen anderen Speicher zu verwenden, und die ein fehlerhaftes Array spezifiziert, in dem die Anzahl der fehlerhaften Geräte eine Anzahl von Geräten übersteigt, die fehlerhaft sein dürfen; und eine Austauscheinheit, die einen fehlerhaften Speicher, der von dem spezifizierten fehlerhaften Array verwaltet wird, gegen einen spezifizierten gesunden Speicher austauscht.
-
KURZDARSTELLUNG
-
Der Erfindung liegt die Aufgabe zugrunde ein Verfahren, ein System, ein Computerprogrammprodukt und ein Computerprogramm zum Verbessern der Datenwiederherstellung in einem verteilten Daten-Speichersystem zu schaffen. Die der Erfindung zugrunde liegende Aufgabe wird durch die Merkmale der unabhängigen Patentansprüche gelöst. Ausführungsformen der Erfindung sind in den abhängigen Patentansprüchen angegeben.
-
Für Zwecke der Zusammenfassung wurden an dieser Stelle bestimmte Aspekte, Vorteile und neuartige Merkmale beschrieben. Es sollte klar sein, dass nicht alle dieser Vorteile gemäß einer bestimmten Ausführungsform erreicht werden können. Daher kann der offenbarte Gegenstand in einer Weise realisiert oder ausgeführt werden, die einen Vorteil oder eine Gruppe von Vorteilen erreicht oder optimiert, ohne dass alle Vorteile erreicht werden, die denkbar sind oder hier vorgeschlagen werden.
-
In einem Beispiel wird ein Verfahren zum Verbessern der Datenwiederherstellung in einem Daten-Speichersystem bereitgestellt, wobei das Verfahren aufweist: Ermitteln, ob ein oder mehrere Daten-Speichermedien in einem Daten-Speichersystem nicht verfügbar sind; Ermitteln von Daten, bei denen ein Risiko des Verlusts infolge dessen besteht, dass ein oder mehrere Daten-Speichermedien nicht verfügbar sind; Kennzeichnen von Daten, die auf Verlust stark anfällig sind, unter den Daten, bei denen ermittelt wurde, dass bei ihnen das Risiko des Verlusts besteht; und Erzeugen einer oder mehrerer vorübergehender Repliken der Daten, die auf Verlust stark anfällig sind.
-
In einem weiteren Beispiel wird ein System zum Verbessern der Datenwiederherstellung in einem Daten-Speichersystem bereitgestellt, wobei das System aufweist: eine Logikeinheit zum Ermitteln, ob ein oder mehrere Daten-Speichermedien in einem Daten-Speichersystem nicht verfügbar sind; eine Logikeinheit zum Ermitteln von Daten, bei denen ein Risiko des Verlusts infolge dessen besteht, dass ein oder mehrere Daten-Speichermedien nicht verfügbar sind; eine Logikeinheit zum Kennzeichnen von Daten, die auf Verlust stark anfällig sind, unter den Daten, bei denen festgestellt wurde, dass bei ihnen das Risiko des Verlusts besteht; und eine Logikeinheit zum Erzeugen einer oder mehrerer vorübergehender Repliken der Daten, die auf Verlust stark anfällig sind.
-
In einem weiteren Beispiel wird ein Computerprogrammprodukt zum Verbessern der Datenwiederherstellung in einem Daten-Speichersystem bereitgestellt, wobei das Computerprogrammprodukt ein computerlesbares Speichermedium aufweist, das durch eine Verarbeitungsschaltung gelesen werden kann und Befehle zum Ausführen durch die Verarbeitungsschaltung speichert, um ein Verfahren auszuführen, das die Schritte des Verfahrens ausführt.
-
In einem weiteren Beispiel wird ein Computerprogramm bereitgestellt, das auf einem computerlesbaren Medium gespeichert ist und in den internen Arbeitsspeicher eines digitalen Computers geladen werden kann, der Softwarecode-Abschnitte zum Ausführen der Schritte des Verfahrens aufweist, wenn das Programm auf einem Computer abläuft.
-
Gemäß einem weiteren Beispiel wird ein System bereitgestellt, das eine oder mehrere Logikeinheiten aufweist. Die eine oder die mehreren Logikeinheiten sind so eingerichtet, dass sie die Funktionen und Operationen ausführen, die den oben offenbarten Verfahren zugehörig sind. Bei einem nochmals weiteren Beispiel wird ein Computerprogrammprodukt bereitgestellt, das ein computerlesbares Speichermedium mit einem computerlesbaren Programm aufweist. Das computerlesbare Programm bewirkt beim Ausführen auf einem Computer, dass der Computer die Funktionen und Operationen ausführt, die den oben offenbarten Verfahren zugehörig sind.
-
Eine oder mehrere der oben offenbarten Ausführungsformen werden zusätzlich zu bestimmten Alternativen nachfolgend unter Bezugnahme auf die beigefügten Figuren genauer bereitgestellt. Der offenbarte Gegenstand ist jedoch nicht auf eine bestimmte offenbarte Ausführungsform beschränkt.
-
Figurenliste
-
Die vorliegende Erfindung wird nun lediglich beispielhaft unter Bezugnahme auf bevorzugte Ausführungsformen beschrieben, die in den folgenden Figuren dargestellt sind:
- 1 veranschaulicht ein beispielhaftes Daten-Speichersystem gemäß einer oder mehrerer Ausführungsformen in Übereinstimmung mit dem Stand der Technik, bei der bzw. denen eine bevorzugte Ausführungsform der vorliegenden Erfindung umgesetzt werden kann;
- 2 ist ein Ablaufplan eines beispielhaften Verfahrens zum Verbessern der Zuverlässigkeit in einem verteilten Daten-Speichersystem gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung;
- die 3 und 4 sind Blockdarstellungen von Hardware- und Software-Umgebungen, in denen die offenbarten Systeme und Verfahren in Übereinstimmung mit dem Stand der Technik betrieben werden können, und in denen eine bevorzugte Ausführungsform der vorliegenden Erfindung umgesetzt werden kann.
-
Merkmale, Elemente und Aspekte, auf die durch dieselbe Nummerierung in verschiedenen Figuren Bezug genommen wird, repräsentieren dieselben, gleichwertige oder ähnliche Merkmale, Elemente oder Aspekte gemäß einer oder mehrerer Ausführungsformen.
-
GENAUE BESCHREIBUNG
-
Nachfolgend werden zahlreiche spezifische Einzelheiten dargestellt, um eine ausführliche Beschreibung verschiedener Ausführungsformen bereitzustellen. Bestimmte bevorzugte Ausführungsformen der vorliegenden Erfindung können ohne diese spezifischen Einzelheiten oder mit einigen detaillierten Variationen realisiert werden. In einigen Fällen werden bestimmte Merkmale weniger genau beschrieben, um andere Aspekte nicht zu überdecken. Der Detailgrad, der jedem der Elemente oder Merkmale zugehörig ist, sollte nicht so ausgelegt werden, dass er die Neuartigkeit oder die Wichtigkeit eines Merkmals gegenüber anderen bewertet.
-
In 1 wird ein Daten-Speichersystem 100 bereitgestellt, bei dem Daten 112 in einem Daten-Speichermedium A an einem ersten Standort gespeichert werden, der einen Server 110 enthält. Zum Bereitstellen einer primären Einrichtung zur Daten-Wiederherstellung können Kopien der Daten 112 über Speichermedien B an einem Standort 2 repliziert werden, der einen Server 120 enthält. Auf diese Weise kann ein primäres Wiederherstellungssystem im Daten-Speichersystem 100 bereitgestellt werden. Zusätzlich zu dem primären Wiederherstellungssystem kann für das Daten-Speichersystem 100 hier ein sekundärer Mechanismus in der Infrastruktur der primären Wiederherstellung eingeführt werden.
-
Der sekundäre Mechanismus kann mittels beispielsweise einer Hilfs-Komponente umgesetzt werden, die das Daten-Speichersystem 100 überwacht, um zusätzliche vorübergehende Repliken von Daten zu erzeugen, indem die vorhandene Anwendungs-Programmierschnittstelle (API) verwendet wird, ohne dass die primäre Einrichtung zur Daten-Wiederherstellung des Daten-Speichersystems 100 geändert wird. Daher kann der sekundäre Mechanismus bereitgestellt werden, um die Zuverlässigkeit sämtlicher Daten-Wiederherstellungsoperationen in Verbindung mit der Infrastruktur zur primären Daten-Wiederherstellung zu verbessern, die verwendet wird, um die verlorenen Daten wiederzugewinnen oder wiederherzustellen.
-
In 2 kann der sekundäre Mechanismus umgesetzt werden, um Server in dem Daten-Speichersystem unabhängig abzutasten und zu ermitteln, ob die Server (oder Speichermedien wie beispielsweise Speicherplatten, die von den Servern verwendet werden) verfügbar sind (S210, S220). Wenn beispielsweise einer der Server oder eine der Speicherplatten nicht verfügbar ist, wird eine Liste von Risikodaten (z.B.
-
Datenobjekte) erhalten, von denen angenommen wird, dass sie auf den nicht verfügbaren Servern oder Plattenspeichern gespeichert sind. Die Liste kann zum Ermitteln von Ausfällen verwendet werden, die möglicherweise zu einem Datenverlust führen (S230). Wenn festgestellt wird, dass bestimmte Daten verloren sind (S240), können die verlorenen Daten aus einer vorübergehenden Kopie oder einer Replik der Daten wiederhergestellt werden, die an einem anderen Standort gespeichert ist (S250).
-
Bei einer bevorzugten Ausführungsform der vorliegenden Erfindung kann die Liste von Risikodaten geprüft werden, um zu ermitteln, ob es eine Schnittmenge zwischen den in der Liste gekennzeichneten Risikodaten und anderen Listen von Risikodaten gibt, die vorherigen Ausfällen zugehörig sind (z.B. Ausfällen, die möglicherweise noch Gegenstand eines Wiederherstellungsprozesses sind). Die Prüfung trägt dazu bei, stark anfällige Daten zu ermitteln (S260). Wenn diese vorhanden sind, können zusätzliche vorübergehende Kopien oder Repliken der stark anfälligen Daten erzeugt werden (S270). Wenn bei einer Umsetzung die Risikodaten erfolgreich wiederhergestellt werden, können die vorübergehenden Repliken entfernt werden. Andernfalls können die vorübergehenden Repliken zum Aufrechterhalten oder Verbessern der Zuverlässigkeit des Speichersystems oder bei Bedarf zur Datenwiederherstellung bewahrt werden.
-
Wie nachfolgend genauer dargestellt, ist in den meisten Fällen die Partition der stark anfälligen Daten (d.h. Daten, die von mehreren Ausfällen betroffen sind) vernachlässigbar im Vergleich zu Daten, die lediglich von einem einzigen Ausfall betroffen sind. Daher ist die Zeitspanne, die zum Erzeugen zusätzlicher vorübergehender Repliken von stark anfälligen Daten erforderlich ist, ebenfalls vernachlässigbar. Die Anfälligkeit eines Datenobjekts kann beispielsweise anhand der Wahrscheinlichkeit berechnet werden, dass das bestimmte Datenobjekt während eines zukünftigen Ausfalls verloren geht. Diese Anfälligkeit kann näherungsweise ermittelt werden, indem die Anzahl von verbleibenden Repliken eines Datenobjekts ermittelt wird oder einige Eigenschaften betrachtet werden, die mit der Wahrscheinlichkeit eines Ausfalls korreliert werden können (z.B. das Alter der Speicherplatte, auf der das Datenobjekt gespeichert ist).
-
Bei einer bevorzugten Ausführungsform der vorliegenden Erfindung kann die Anfälligkeit in dem Daten-Speichersystem 100 einer bestimmten Hierarchieebene zugeordnet werden, wobei die Hierarchie möglicherweise definiert, welche Daten anfälliger als andere sind. Wie oben erwähnt kann in dem Daten-Speichersystem 100 der Umfang von stark anfälligen Daten bedeutend kleiner sein als der Umfang von anfälligen oder nichtanfälligen Daten. Wenn bei einer Umsetzung vorübergehende Repliken für die stark anfälligen Daten zuerst erzeugt werden, kann daher die Zuverlässigkeit des Daten-Speichersystems 100 bei verhältnismäßig geringen Kosten erheblich verbessert werden.
-
Wenn man als Alternative ein willkürliches Replizieren aller anfälligen Daten oder sämtlicher Daten in dem System betrachtet, wird der Grund für die verhältnismäßig geringen Kosten, die mit dem Replizieren der stark anfälligen Daten verbunden sind, ohne Weiteres offensichtlich. Natürlich würde ein vorübergehendes Replizieren der stark anfälligen Daten weniger Zeit und Ressourcen beanspruchen. Wenn beispielsweise lediglich 5 % der Daten in dem Daten-Speichersystem 100 als stark anfällig betrachtet werden, würde ein Erzeugen von vorübergehenden Repliken dieser 5 % verhältnismäßig schnell und kostengünstig erfolgen. Nachdem die stark anfälligen Daten repliziert wurden, können später die weniger anfälligen Daten repliziert werden.
-
Wie erwähnt kann ein Ermitteln, welche Daten stark anfällig sind, in Abhängigkeit von der Umsetzung erfolgen, indem Daten erkannt werden, die gemäß einer historischen oder Echtzeit-Angabe einer bestimmten Anzahl von Ausfällen unterlagen. Wenn die Anzahl von Ausfällen beispielsweise über einem bestimmten Schwellenwert der Ausfalltoleranz liegt, kann das Datenobjekt als stark anfällig erachtet werden. Bei Verwendung eines hierarchischen Ansatzes können bei einer bevorzugten Ausführungsform der vorliegenden Erfindung verschiedene Gradstufen der Anfälligkeit für unterschiedliche Daten oder Datensätze festgelegt werden, so dass es sich bei den stark anfälligen Daten um die Daten handelt, die der höchsten Anzahl von Ausfällen zugehörig sind.
-
Bei einer beispielhaften Umsetzung können Daten mit der größten Anzahl von verlorenen Repliken über das Speichersystem als die stark anfälligen Daten betrachtet werden. Bei einer oder mehreren bevorzugten Ausführungsformen der vorliegenden Erfindung kann ein Schema (oder Algorithmus) zum Berechnen des Grads der Anfälligkeit auf der Grundlage von verschiedenen Faktoren verwendet werden. Beispielsweise kann die Anfälligkeit auf der Grundlage einer Ausfallrate von Komponenten des Daten-Speichersystems 100 (z.B. Speicherplatten, Server usw.), die beim Speichern der Daten und der Repliken beteiligt sind, einer Echtzeit-Erkennung von Komponentenausfällen im gesamten Daten-Speichersystem 100, von historischen Ausfalldaten, die für Daten-Speicherkomponenten oder ähnliche Daten-Speicherkomponenten gesammelt werden, oder anhand von statistischen Angaben, die vom Hersteller bereitgestellt werden, über die Ausfallrate der jeweiligen Daten-Speicherkomponenten berechnet werden.
-
Wie oben erwähnt können bei einigen bevorzugten Ausführungsformen der vorliegenden Erfindung die stark anfälligen Daten auf der Grundlage von Faktoren ermittelt werden, bei denen es sich nicht um die zugehörige Ausfallrate der Systemkomponenten handelt. Die Anfälligkeit kann beispielsweise durch eine oder mehrere der folgenden Angaben gemessen werden: Alter der Systemkomponenten, Anzahl von brauchbaren Repliken für die Daten, Fehlerrate, die dem Lesen der Daten zugehörig ist, oder jeder andere Faktor, der die Wahrscheinlichkeit des Datenverlustes oder die Möglichkeit zum Wiederherstellen der Daten aus ihren Repliken beeinflussen würde.
-
Unabhängig von dem Mechanismus, der zum Ermitteln der stark anfälligen Daten verwendet wird, und der Hierarchie der Daten-Anfälligkeit, nachdem die stark anfälligen Daten festgestellt wurden, können eine oder mehrere Repliken der stark anfälligen Daten angefertigt und auf einem oder mehreren Daten-Speichermedien gespeichert werden (z.B. Band, Festplattenlaufwerk, nichtflüchtiger Arbeitsspeicher, Halbleiter-Speichereinheit usw.). Die Daten-Speichermedien können in Bezug auf die vorhandene Infrastruktur zur Daten-Wiederherstellung in dem Daten-Speichersystem 100 entweder direkt, über eine Anwendungs-Programmierschnittstelle (API) oder auf andere Weise zugänglich sein (wobei sie jedoch getrennt angeordnet sein sollten).
-
Auf der Grundlage des oben genannten Ansatzes werden die stark anfälligen Daten mit dem höchsten Verlustrisiko zuerst kopiert. In Abhängigkeit von der Umsetzung können verbleibende anfällige Daten gemäß dem jeweiligen Verlustrisiko in hierarchischer Weise kopiert werden, so dass die stärker anfälligen Daten vor den weniger anfälligen Daten kopiert werden, bis keine stärker anfälligen Daten mehr vorhanden sind, die noch nicht kopiert wurden. Da in Abhängigkeit von der Umsetzung ein Anfälligkeitsstatus von bestimmten Daten aktualisiert wird, kann die Anzahl von entsprechenden Kopien dynamisch aktualisiert werden. Beispielsweise kann die Anzahl von Kopien für Daten, die nicht mehr als gefährdet oder in einem Anfälligkeitszustand befindlich betrachtet werden, vermindert werden.
-
Auf der Grundlage des oben genannten Schemas zur Replikenverwaltung kann die Verlustwahrscheinlichkeit, die Daten zugehörig ist, die als stark anfällig gekennzeichnet sind, in einer verhältnismäßig kurzen Zeitspanne und bei verhältnismäßig geringen Kosten beträchtlich vermindert werden. Wenn bei einer oder mehreren bevorzugten Ausführungsformen der vorliegenden Erfindung eine Kopie von Daten oder eine Replik der Daten verloren geht, kann die Kopie oder die Replik aus anderen Repliken wiederhergestellt werden. Verlorene Kopien von Daten können auf Anforderung wiederhergestellt werden, die durch eine administrative Entität oder mittels eines Mechanismus erzeugt wird, der im Hintergrund zum Wiederherstellen aller Kopien in der zugrundeliegenden Infrastruktur zur Datenwiederherstellung periodisch abläuft.
-
Bei einer bevorzugten Ausführungsform der vorliegenden Erfindung erfolgt der Replikationsprozess im Zusammenhang mit dem Herstellen von Repliken von anfälligen Daten außerhalb des primären Daten-Wiederherstellungssystems, so dass die Duplikat-Kopien der Daten keinen integralen Bestandteil des Speichersystems darstellen. Oben wurde eine Replikations-Verfahrensweise gemäß einer oder mehrerer bevorzugter Ausführungsformen der vorliegenden Erfindung erläutert. Nachfolgend werden besondere Merkmale und Umsetzungen mittels zweier veranschaulichender Beispiele bereitgestellt. Es sollte jedoch angemerkt werden, dass die folgenden Merkmale dem Wesen nach beispielhaft sind und den Umfang des beanspruchten Gegenstands auf keine spezifischen Einzelheiten beschränken sollen.
-
Bei einem Beispiel einer zweistufigen Replikation werden Daten-Repliken in RAID 5-Einheiten (Redundante Anordnung unabhängiger Speicherplatten (RAID)) abgelegt, wobei es sich bei einer RAID 5-Einheit um eine lokale Einheit handeln kann und die zweistufige Replikation global erfolgen kann (wird beispielsweise über ein Weitbereichsnetz (WAN) umgesetzt). Bei diesem Beispiel können Einzel-Plattenfehler durch einen internen Mechanismus der RAID 5-Einheit behandelt werden. Der globale Replikationsprozess stört bei diesem Prozess gegebenenfalls nicht, da Daten verfügbar bleiben. Wenn jedoch eine weitere Speicherplatte in einer anderen RAID 5-Einheit ausfällt, können die Wiederherstellungsprozesse unabhängig und parallel ablaufen.
-
Bei dem obigen Beispiel sind Daten, die an dem Schnittpunkt zweier beeinträchtigter RAID-Arrays gespeichert sind, gefährdeter als andere Daten in dem System. Dieses Szenario ist besonders relevant, da der Wiederherstellungsprozess der RAID-Einheit äußerst langwierig ist und umso länger dauert, je größer die Abmessungen der Speicherplatten in dem System sind. Ein Herstellen von unterstützenden Repliken für die Daten an dem Schnittpunkt kann viel schneller ausgeführt werden als die vollständige Wiederherstellung von jeder der RAID-Einheiten. Daher kann das Herstellen der unterstützenden Kopien die Wahrscheinlichkeit des Datenverlustes stark vermindern.
-
Bei einem Beispiel mit dreistufiger Replikation bewirken zwei Plattenausfälle gegebenenfalls keinen Datenverlust, sie gefährden jedoch Daten, deren Repliken sich auf den beiden ausgefallenen Speicherplatten befinden (d.h., die Daten haben eine einzige verbleibende Replik und können verloren gehen, wenn die letzte Speicherplatte ausfällt). Ein Erzeugen einer zusätzlichen vorübergehenden unterstützenden Replik schützt die Daten, so dass keine Daten verloren gehen, wenn während des Wiederherstellungsprozesses ein dritter Ausfall auftritt. Bei einem verteilten System mit dreistufiger Replikation ist der Umfang von Daten am Schnittpunkt zweier Speicherplatten viel kleiner als die Gesamtmenge von Daten auf beiden Speicherplatten. Während der Prozess der Wiederherstellung für eine vollständige Speicherplatte sehr zeitaufwändig wäre, würde daher die Zeitspanne zum Erzeugen der unterstützenden Repliken kurz sein. Deswegen ist die Zeitspanne minimal, in der für Daten ein wirkliches Verlustrisiko besteht.
-
Bei Openstack Swift handelt es sich um ein Beispiel eines Systems, bei dem nicht zwischen unterschiedlichen Gradstufen von gefährdeten Daten unterschieden wird und eine Wiederherstellung nicht priorisiert wird. Bei Openstack gibt es Schnittstellen, die ein externes Identifizieren der Daten zulassen. Durch Verwenden des oben erläuterten Schemas kann die Zuverlässigkeit eines SWIFT-Clusters verbessert werden, ohne dass Code zu der Open-Source-Community beigetragen werden muss, und trotzdem aus dem aktuellen Open-Source-Wiederherstellungsmechanismus und allen Updates und Fehlerbereinigungen Nutzen gezogen wird, die der gemeinsamen Codebasis angefügt werden. Es wird angemerkt, dass die Ausdrücke „Replik“ oder „Duplikat“ und „Replikation“ oder „Duplikation“ an dieser Stelle austauschbar verwendet werden und sich auf den Prozess des Herstellens einer zusätzlichen Kopie der Zieldaten beziehen.
-
Da bei Verwendung der obigen Verfahrensweisen der Umfang von stark anfälligen Daten klein ist in Bezug auf alle anderen Daten, kann durch Replizieren der stark anfälligen Daten beim Aufrechterhalten der Zuverlässigkeit des Systems durch einen verhältnismäßig geringen Mehraufwand eine erhebliche Verbesserung erzielt werden. Des Weiteren kann der primäre Daten-Wiederherstellungsmechanismus vorteilhaft über die System-Hardware homogen bleiben, während heterogene Hardware genutzt werden kann, um die sekundäre Replikationsschicht umzusetzen, um bei Bedarf einen schnelleren Zugriff auf bestimmte Daten zu unterstützen (beispielsweise können vorübergehende Kopien von stark anfälligen Daten in Halbleitereinheiten mit schnellen Zugriffszeiten gespeichert werden).
-
Bei dieser Spezifikation bedeuten Bezugnahmen auf „eine Ausführungsform“, „eine oder mehrere Ausführungsformen“ oder dergleichen, dass das spezielle Element, das spezielle Merkmal, die spezielle Struktur oder die spezielle kennzeichnende Eigenschaft, das bzw. die beschrieben wird, in wenigstens einer Ausführungsform des offenbarten Gegenstands enthalten ist. Das Auftreten dieser Ausdrücke in dieser Spezifikation sollte insbesondere weder so ausgelegt werden, dass sie dieselbe Ausführungsform betreffen, noch sollten diese Ausdrücke so interpretiert werden, dass sie Ausführungsformen betreffen, die sich in Bezug auf die erläuterten Merkmale oder Elemente gegenseitig ausschließen.
-
Bei verschiedenen Ausführungsformen kann der beanspruchte Gegenstand als eine Kombination von Hardware- und Software-Elementen und alternativ nur in Form von Hardware oder nur in Form von Software umgesetzt werden. Des Weiteren können Datenverarbeitungssysteme und Programmsoftware, die hier offenbart sind, eine gesteuerte Datenverarbeitungsumgebung aufweisen, die in Bezug auf Hardware-Komponenten oder Logikcode dargestellt wird, der ausgeführt wird, um Verfahren und Prozesse auszuführen, die die hier vorgesehenen Ergebnisse zu erreichen. Wenn sie durch ein Universal-Datenverarbeitungssystem oder eine Maschine ausgeführt werden, wandeln diese Verfahren und Prozesse die Universal-Maschine in eine spezielle Maschine um.
-
In den 3 und 4 kann eine Umgebung eines Datenverarbeitungssystems gemäß einer beispielhaften Ausführungsform eine Hardware-Umgebung 1110 und eine Software-Umgebung 1120 enthalten. Die Hardware-Umgebung 1110 kann Logikeinheiten, Schaltungen oder andere Ausrüstungen und Ausstattungen aufweisen, die eine Ausführungsumgebung für die Komponenten der Software-Umgebung 1120 bereitstellen. Die Software-Umgebung 1120 kann ihrerseits die Ausführungsbefehle bereitstellen, darunter die grundlegenden Betriebseinstellungen und Konfigurationen für die zahlreichen Komponenten der Hardware-Umgebung 1110.
-
In 3 können die Anwendungssoftware und der Logikcode, die hier offenbart werden, in Form von maschinenlesbarem Code umgesetzt werden, der über ein oder mehrere Datenverarbeitungssysteme ausgeführt wird, die durch die beispielhafte Hardware-Umgebung 1110 dargestellt werden. Wie veranschaulicht kann die Hardware-Umgebung 110 einen Prozessor 1101 aufweisen, der mittels eines Systembusses 1100 mit einem oder mehreren Speicherelementen verbunden ist. Die Speicherelemente können beispielsweise lokale Arbeitsspeicher 1102, Speichermedien 1106, Cache-Speicher 1104 oder andere maschinennutzbare oder computerlesbare Medien aufweisen. Im Kontext dieser Offenbarung kann ein maschinennutzbares oder computerlesbares Medium jeden aufzeichnungsfähigen Gegenstand enthalten, der zum Halten, Speichern, Übertragen, Verbreiten oder Transportieren von Programmcode genutzt werden kann.
-
Bei einem computerlesbaren Speichermedium kann es sich um ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleiter-Medium, - System, -Einrichtung oder -Einheit handeln. Das computerlesbare Speichermedium kann außerdem ohne Einschränkung in einem Ausbreitungsmedium in dem Umfang umgesetzt sein, so dass diese Umsetzung als rechtlicher Gegenstand erachtet wird. Zu Beispielen eines computerlesbaren Speichermediums gehören möglicherweise ein Halbleiter-Arbeitsspeicher, ein Magnetband, eine Wechsel-Computerdiskette, ein Direktzugriffsspeicher (RAM), ein Festwertspeicher (ROM), eine starre Magnetplatte, eine optische Speicherplatte oder gegebenenfalls eine Trägerwelle. Zu aktuellen Beispielen von optischen Speicherplatten gehören Compact-Disk, Festwertspeicher (CD-ROM), Compact-Disk-Lesen/Schreiben (CD-R/W), digitale Video-Disk (DVD), Video-Disk mit hoher Auslösung (HD-DVD) oder Blue-Ray™-Disk.
-
Bei einer Ausführungsform lädt der Prozessor 1101 ausführbaren Code von Speichermedien 1106 zum lokalen Arbeitsspeicher 1102. Der Cache-Speicher 1104 optimiert die Verarbeitungszeit durch Bereitstellen einer vorübergehenden Speicherung, damit die Häufigkeit vermindert wird, wie oft Code zur Ausführung geladen wird. Eine oder mehrere Benutzerschnittstellen-Einheiten 1105 (z.B. Tastatur, Zeigeeinheit usw.) und ein Anzeigebildschirm 1107 können mit den anderen Elementen in der Hardware-Umgebung 1110 direkt oder beispielsweise über eine dazwischenliegende E/A-Steuereinheit 1103 verbunden sein. Eine Datenübertragungs-Schnittstelleneinheit 1108 wie etwa ein Netzwerkadapter kann bereitgestellt werden, damit die Hardware-Umgebung 1110 in der Lage ist, mit lokalen oder entfernt angeordneten Datenverarbeitungssystemen, Druckern und Speichereinheiten über dazwischen liegende private oder öffentliche Netzwerke (z.B. das Internet) Daten auszutauschen. Leitungsgestützte oder drahtlose Modems und Ethernet-Karten stellen einige der beispielhaften Typen von Netzwerkadaptern dar.
-
Es sollte erwähnt werden, dass die Hardware-Umgebung 1110 bei bestimmten Umsetzungen möglicherweise einige oder alle der oben genannten Komponenten nicht enthält oder möglicherweise zusätzliche Komponenten enthält, um eine zusätzliche Funktionalität oder Gebrauchsfähigkeit bereitzustellen. In Abhängigkeit von der vorgesehenen Verwendung und Konfiguration kann es sich bei der Hardware-Umgebung 1110 um eine Maschine wie etwa ein Desktop- oder ein Laptop-Computer oder eine andere Datenverarbeitungsmaschine handeln, die wahlweise in einem eingebetteten System verkörpert ist, wie etwa eine Set-Top-Box, ein persönlicher digitaler Assistent (PDA), ein persönliches Medien-Wiedergabegerät, eine mobile Datenübertragungseinheit (z.B. ein Mobiltelefon) oder andere ähnliche Hardware-Plattformen mit Möglichkeiten zur Informationsverarbeitung oder Datenspeicherung.
-
Bei einigen Ausführungsformen wirkt eine Datenverarbeitungsschnittstelle 1108 als Datenübertragungsanschluss, um ein Mittel zum Datenaustausch mit einem oder mehreren Datenverarbeitungssystemen bereitzustellen, indem digitale, elektrische, elektromechanische oder optische Signale gesendet und empfangen werden, die analoge oder digitale Datenströme befördern, die verschiedene Typen von Informationen darstellen, darunter Programmcode. Der Datenaustausch kann mittels eines lokalen oder fernen Netzwerks oder alternativ über die Luft oder ein anderes Medium eingerichtet werden, darunter ohne Beschränkung die Ausbreitung über eine Trägerwelle.
-
Die hier bereitgestellten offenbarten Software-Elemente, die auf den dargestellten Hardware-Elementen ausgeführt werden, sind gemäß logischen oder funktionsmäßigen Beziehungen definiert, die dem Wesen nach beispielhaft sind. Es ist jedoch zu beachten, dass die entsprechenden Verfahren, die mittels dieser beispielhaften Software-Elemente umgesetzt sind, außerdem in den Hardware-Elementen beispielsweise durch konfigurierte oder programmierte Prozessoren, anwendungsspezifische integrierte Schaltungen (ASICs), vor Ort programmierbare Gate-Arrays (FPGAs) und digitale Signalprozessoren (DSPs) codiert sein können.
-
In 4 kann die Software-Umgebung 1120 im Allgemeinen in zwei Klassen unterteilt sein, die Systemsoftware 1121 und Anwendungssoftware 1122 aufweisen, die in einer oder mehreren Hardware-Umgebungen 1110 ausgeführt wird. Bei einer Ausführungsform können die hier offenbarten Verfahren und Prozessen als Systemsoftware 1121, Anwendungssoftware 1122 oder eine Kombination hiervon umgesetzt werden. Systemsoftware 1121 kann Steuerungsprogramme aufweisen wie beispielsweise ein Betriebssystem (BS) oder ein Informationsverwaltungssystem, das einen oder mehrere Prozessoren 1101 (z.B. Mikro-Steuereinheiten) in der Hardware-Umgebung 1110 anweist, wie sie wirken und Informationen verarbeiten sollen. Anwendungssoftware 1122 kann Programmcode, Datenstrukturen, Firmware, residente Software, Mikrocode oder jede andere Form von Informationen oder Routinen aufweisen, die durch einen Prozessor 1101 gelesen, analysiert oder ausgeführt werden können, ist jedoch nicht darauf beschränkt.
-
Mit anderen Worten, Anwendungssoftware 1122 kann als Programmcode umgesetzt sein, der in ein Computerprogrammprodukt in Form eines maschinennutzbaren oder computerlesbaren Speichermediums eingebettet ist, das Programmcode zur Verwendung durch oder in Verbindung mit einer Maschine, einem Computer oder einem Befehlsausführungssystem bereitstellt. Darüber hinaus kann Anwendungssoftware 1122 ein oder mehrere Computerprogramme aufweisen, die über der Systemsoftware 1121 ausgeführt werden, nachdem sie von Speichermedien 1106 in den lokalen Arbeitsspeicher 1102 geladen wurden. Bei einer Client-Server-Architektur kann Anwendungssoftware 1122 Client-Software und Server-Software aufweisen. Bei einer Ausführungsform kann beispielsweise Client-Software in einem Client-Datenverarbeitungssystem ausgeführt werden, das von einem Server-Datenverarbeitungssystem verschieden und getrennt ist, in dem Server-Software ausgeführt wird.
-
Die Software-Umgebung 1120 kann außerdem Browser-Software 1126 aufweisen, um auf Daten zuzugreifen, die über lokale oder ferne Datenverarbeitungsnetze verfügbar sind. Des Weiteren kann die Software-Umgebung 1120 eine Benutzerschnittstelle 1124 (z.B. eine grafische Benutzeroberfläche (GUI)) zum Empfangen von Benutzerbefehlen und Daten aufweisen. Es sollte wiederholt werden, dass die oben beschriebenen Hardware- und Software-Architekturen und Umgebungen lediglich als Beispiel dienen. Daher können eine oder mehrere Ausführungsformen über jeden Typ von Systemarchitektur, funktionsmäßiger oder logischer Plattform oder Verarbeitungsumgebung umgesetzt werden.
-
Es sollte außerdem klar sein, dass der Logikcode, Programme, Module, Prozesse, Verfahren und die Reihenfolge, in der die entsprechenden Prozesse jedes Verfahrens ausgeführt werden, lediglich beispielhaft sind. In Abhängigkeit von der Umsetzung können die Prozesse oder alle zugrunde liegenden Teilprozesse und Verfahren in beliebiger Reihenfolge oder gleichzeitig ausgeführt werden, falls in der vorliegenden Offenbarung nicht anders angegeben. Falls nicht speziell anders festgelegt bezieht sich die Definition von Logikcode im Kontext dieser Offenbarung nicht auf eine bestimmte Programmiersprache oder ist auf diese beschränkt und kann ein oder mehrere Module aufweisen, die in einem oder mehreren Prozessoren in verteilten, nichtverteilten Umgebungen mit Einzel- oder Mehrfachverarbeitung ausgeführt werden.
-
Einem Fachmann ist klar, dass eine Software-Ausführungsform Firmware, residente Software, Mikrocode usw. enthalten kann. Bestimmte Komponenten, darunter Software- oder Hardware- oder Software und Hardware kombinierende Aspekte können hier allgemein als „Schaltung“, „Modul“ oder „System“ bezeichnet werden. Des Weiteren kann der offenbarte Gegenstand als Computerprogrammprodukt umgesetzt werden, das in einem oder mehreren computerlesbaren Speichermedien verkörpert ist, die computerlesbaren Programmcode enthält, der darauf verkörpert ist. Jede Kombination aus einem oder mehreren computerlesbaren Speichermedien kann genutzt werden. Bei dem computerlesbaren Speichermedium kann es sich um ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium handeln. Bei einem computerlesbaren Speichermedium kann es sich beispielsweise um ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleiter-System, -Vorrichtung oder Einheit oder jede geeignete Kombination des Vorhergehenden handeln, ohne darauf beschränkt zu sein.
-
Im Kontext dieses Dokuments kann es sich bei dem computerlesbaren Speichermedium um ein materielles Medium handeln, das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Befehlsausführung enthalten oder speichern kann. Ein computerlesbares Signalmedium kann ein sich ausbreitendes Datensignal mit computerlesbarem Programmcode enthalten, der darin z.B. im Basisband oder als Teil einer Trägerwelle verkörpert wird. Ein derartiges sich ausbreitendes Signal kann jede von einer Vielfalt von Formen annehmen, zu denen elektromagnetische, optische Formen oder jede geeignete Kombination hiervon gehören, jedoch nicht darauf beschränkt sind. Ein computerlesbares Signalmedium kann jedes computerlesbare Medium sein, das kein computerlesbares Speichermedium ist und ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Befehlsausführung übertragen, verbreiten oder transportieren kann.
-
Programmcode, der auf einem computerlesbaren Speichermedium verkörpert ist, kann unter Verwendung jedes geeigneten Mediums übertragen werden, darunter drahtlose, leitungsgestützte, Lichtwellenleiterkabel-, Hochfrequenz- (HF-) Medien usw. oder jede geeignete Kombination aus dem Vorhergehenden, ohne darauf beschränkt zu sein. Computerprogrammcode zum Ausführen der offenbarten Operationen kann in jeder Kombination aus einer oder mehreren Programmiersprachen geschrieben sein, darunter eine objektorientierte Programmiersprache wie Java®, Smalltalk, C++ oder dergleichen und herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Java und alle Java-basierten Warenzeichen und Logos sind Warenzeichen oder eingetragene Warenzeichen von Oracle und/oder deren Tochtergesellschaften.
-
Der Programmcode kann nur auf dem Computer eines Benutzers, teilweise auf dem Computer des Benutzers als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder nur auf dem fernen Computer oder Server ausgeführt werden. Bei dem zuletzt genannten Szenario kann der ferne Computer mit dem Computer des Benutzers durch jeden Netzwerktyp verbunden sein, darunter ein Lokalbereichsnetz (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann zu einem externen Computer (beispielsweise durch das Internet unter Verwendung eines Internet-Dienstanbieters) hergestellt werden.
-
Bestimmte Ausführungsformen werden unter Bezugnahme auf Ablaufplan-Darstellungen oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen offenbart. Es ist klar, dass jeder Block der Ablaufplan-Darstellungen oder Blockschaubilder und Kombinationen von Blöcken in den Ablaufplan-Darstellungen und/oder Blockschaubildern durch Computerprogrammbefehle umgesetzt werden können. Diese Computerprogrammbefehle können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu bilden, so dass die Befehle, die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, Mittel zum Umsetzen der Funktionen/Wirkungen, die in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaubilds spezifiziert sind, erzeugen.
-
Diese Computerprogrammbefehle können außerdem in einem computerlesbaren Medium gespeichert sein, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten anweisen kann, in einer bestimmten Weise zu funktionieren, so dass die in dem computerlesbaren Medium gespeicherten Befehle einen Herstellungsgegenstand produzieren, der Befehle enthält, die die Funktion oder Wirkung umsetzen, die in dem Block oder den Blöcken des Ablaufplans oder des Blockschaubilds spezifiziert sind.
-
Die Computerprogrammbefehle können außerdem in einen Computer, eine andere Datenverarbeitungsvorrichtung oder andere Einheiten geladen werden, um eine Reihe von Operationsschritten zu bewirken, die in dem Computer, der anderen Datenverarbeitungsvorrichtung oder anderen Einheiten auszuführen sind, um einen durch einen Computer oder eine Maschine umgesetzten Prozess zu bilden, oder dass die Befehle, die in dem Computer oder der anderen Datenverarbeitungsvorrichtung ausgeführt werden, Prozesse zum Umsetzen der Funktionen oder Wirkungen bereitstellen, die in dem Ablaufplan oder in dem Block oder den Blöcken des Blockschaubilds spezifiziert sind.
-
Der Ablaufplan und die Blockdarstellungen in den Figuren veranschaulichen die Architektur, Funktionalität und Operation von möglichen Umsetzungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedener Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in dem Ablaufplan oder in Blockdarstellungen ein Modul, Segment oder Abschnitt von Code repräsentieren, der einen oder mehrere ausführbare Befehle zum Umsetzen der spezifizierten logischen Funktionen aufweist. Es ist außerdem zu beachten, dass bei einigen alternativen Umsetzungen die in dem Block angegebenen Funktionen möglicherweise in beliebiger Reihenfolge oder nicht in der in den Figuren angegebenen Reihenfolge auftreten können.
-
Zum Beispiel können zwei Blöcke, die nacheinander gezeigt sind, tatsächlich im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können gelegentlich in Abhängigkeit von der beteiligten Funktionalität in der umgekehrten Reihenfolge ausgeführt werden. Es ist außerdem zu beachten, dass jeder Block der Blockdarstellungen oder der Ablaufplan-Darstellung und Kombinationen von Blöcken in den Blockdarstellungen oder der Ablaufplan-Darstellung durch Systeme, die auf spezieller Hardware beruhen, die die spezifizierten Funktionen oder Wirkungen ausführen, oder in Kombinationen aus spezieller Hardware und Computerbefehlen umgesetzt werden können.
-
Der beanspruchte Gegenstand wurde hier unter Bezugnahme auf ein oder mehrere Merkmale oder Ausführungsformen bereitgestellt. Ein Fachmann wird erkennen und es ist für ihn klar, dass trotz der detaillierten Natur der beispielhaften Ausführungsformen, die hier bereitgestellt wurden, Änderungen und Modifikationen an den Ausführungsformen ausgeführt werden können, ohne den allgemein vorgesehenen Umfang einzuschränken oder von diesem abzuweichen. Diese und zahlreiche weitere Anpassungen und Kombinationen der hier bereitgestellten Ausführungsformen liegen im Umfang des offenbarten Gegenstands, der durch die Ansprüche und deren vollständige Menge von Ersetzungen definiert ist.