DE112015000384T5 - Erhöhen der Zuverlässigkeit in einem verteilten Speichersystem - Google Patents

Erhöhen der Zuverlässigkeit in einem verteilten Speichersystem Download PDF

Info

Publication number
DE112015000384T5
DE112015000384T5 DE112015000384.3T DE112015000384T DE112015000384T5 DE 112015000384 T5 DE112015000384 T5 DE 112015000384T5 DE 112015000384 T DE112015000384 T DE 112015000384T DE 112015000384 T5 DE112015000384 T5 DE 112015000384T5
Authority
DE
Germany
Prior art keywords
data
loss
replicas
computer
data storage
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.)
Granted
Application number
DE112015000384.3T
Other languages
English (en)
Other versions
DE112015000384B4 (de
Inventor
Dmitry Yosef Sotnikov
Elliot Kolodner
Danny Harnik
Paula Kim Tashma
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112015000384T5 publication Critical patent/DE112015000384T5/de
Application granted granted Critical
Publication of DE112015000384B4 publication Critical patent/DE112015000384B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • 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/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1092Rebuilding, e.g. when physically replacing a failing disk
    • 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
    • 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
    • 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/1461Backup scheduling policy
    • 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/2053Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • 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/1456Hardware arrangements for backup
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Abstract

Maschinen, Systeme und Verfahren zum Verbessern der Datenwiederherstellung in einem Daten-Speichersystem, wobei das Verfahren beinhaltet: Ermitteln, ob ein oder mehrere Datenträger in einem Daten-Speichersystem nicht verfügbar sind; Ermitteln von Daten, bei denen infolge der Tatsache, dass ein oder mehrere Daten-Speicherträger nicht verfügbar sind, die Gefahr des Verlustes besteht; bei den Daten, bei denen festgestellt wird, dass die Gefahr des Verlustes besteht, Kennzeichnen von Daten, die auf Datenverlust stark anfällig sind; und Erzeugen von einer oder mehreren vorübergehenden Kopien der Daten, die auf Verlust stark anfällig sind.

Description

  • 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.
  • KURZDARSTELLUNG
  • 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.
  • Aus Sicht eines ersten Aspekts stellt die vorliegende Erfindung ein Verfahren zum Verbessern der Datenwiederherstellung in einem Daten-Speichersystem bereit, 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.
  • Aus Sicht eines weiteren Aspekts stellt die vorliegende Erfindung ein System zum Verbessern der Datenwiederherstellung in einem Daten-Speichersystem bereit, 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, Aus Sicht eines weiteren Aspekts stellt die vorliegende Erfindung ein Computerprogrammprodukt zum Verbessern der Datenwiederherstellung in einem Daten-Speichersystem bereit, 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 der Erfindung ausführt.
  • Aus Sicht eines weiteren Aspekts stellt die vorliegende Erfindung ein Computerprogramm bereit, 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 der Erfindung aufweist, wenn das Programm auf einem Computer abläuft.
  • Gemäß einer oder mehrerer Ausführungsformen 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 einer nochmals weiteren Ausführungsform 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.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 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-RayTM-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 Senner 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.

Claims (22)

  1. Verfahren zum Verbessern der Datenwiederherstellung in einem Daten-Speichersystem, wobei das Verfahren aufweist: Ermitteln, ob ein oder mehrere Daten-Speichermedien in einem Daten-Speichersystem nicht verfügbar sind; Feststellen, dass bei Daten ein Verlustrisiko besteht aufgrund der Tatsache, dass ein oder mehrere Daten-Speichermedien nicht verfügbar sind; unter den Daten, bei denen ein Verlustrisiko festgestellt wird, Kennzeichnen von Daten, die stark auf Verlust anfällig sind; Erzeugen von einer oder mehreren vorübergehenden Repliken der Daten, die stark auf Verlust anfällig sind.
  2. Verfahren nach Anspruch 1, wobei die Daten, bei denen ein Verlustrisiko besteht, Daten aufweisen, die auf einem oder mehreren nicht verfügbaren Daten-Speichermedien gespeichert sind.
  3. Verfahren nach einem der beiden vorhergehenden Ansprüche, wobei wenigstens eine vorübergehende Replik in einer externen Speichereinheit oder in einer Halbleiter-Speichereinheit erzeugt wird.
  4. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Daten, die auf Verlust stark anfällig sind, Daten mit einer Anzahl von Repliken aufweisen, die kleiner als ein vorgegebener Schwellenwert ist.
  5. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Daten, die auf Verlust stark anfällig sind, auf der Grundlage des Berechnens einer Wahrscheinlichkeit festgestellt werden, dass die Daten während eines zukünftigen Ausfallereignisses verloren gehen.
  6. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Daten, die auf Verlust stark anfällig sind, auf der Grundlage des Betrachtens eines oder mehrerer Faktoren ermittelt werden, die in Bezug auf die Möglichkeit eines zukünftigen Ausfallereignisses korreliert werden.
  7. Verfahren nach Anspruch 6, wobei der eine oder die mehreren Faktoren das Alter einer Speicherplatte, auf der die Daten gespeichert sind, und/oder das Alter von Systemkomponenten in dem Daten-Speichersystem und/oder die Anzahl von brauchbaren Repliken für die Daten und/oder eine Fehlerrate umfassen, die dem Lesen der Daten zugehörig ist.
  8. Verfahren nach einem der Ansprüche 6 oder 7, wobei der eine oder die mehreren Faktoren ein oder mehrere Ereignisse aufweisen, die die Wahrscheinlichkeit des Datenverlustes oder die Möglichkeit zur Wiederherstellen der Daten aus einer oder mehreren Repliken der Daten beeinflussen.
  9. Verfahren nach allen vorhergehenden Ansprüchen, wobei die Anzahl der erzeugten vorübergehenden Repliken vermindert wird in Reaktion auf ein Feststellen, dass die Anzahl von Repliken für die Daten auf einen vorgegebenen Schwellenwert zurückgesetzt wird.
  10. Verfahren nach einem der vorhergehenden Ansprüche, wobei eine vorübergehende Replik zum Wiederherstellen nach Datenverlust verwendet wird.
  11. System zum Verbessern der Daten-Wiederherstellung in einem Daten-Speichersystem, wobei das System aufweist: eine Logikeinheit zum Ermitteln, ob ein oder mehrere Daten-Speichermedien nicht verfügbar sind; eine Logikeinheit zum Feststellen, dass bei Daten ein Verlustrisiko besteht auf der Grundlage der Tatsache, 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 ein Verlustrisiko festgestellt wurde; und eine Logikeinheit zum Erzeugen einer oder mehrerer Repliken der Daten, die auf Verlust stark anfällig sind.
  12. System nach Anspruch 11, wobei die Daten, bei denen ein Verlustrisiko besteht, Daten aufweisen, die auf dem einen oder den mehreren nicht verfügbaren Daten-Speichermedien gespeichert sind.
  13. System nach einem der Ansprüche 11 oder 12, wobei die wenigstens eine vorübergehende Replik in einer externen Speichereinheit oder in einer Halbleiter-Speichereinheit erzeugt wird.
  14. System nach einem der Ansprüche 11 bis 13, wobei die Daten, die auf Verlust stark anfällig sind, Daten mit einer Anzahl von Repliken umfassen, die kleiner ist als ein vorgegebener Schwellenwert.
  15. System nach einem der Ansprüche 11 bis 14, wobei die Daten, die auf Verlust stark anfällig sind, auf der Grundlage des Berechnens einer Wahrscheinlichkeit ermittelt werden, dass die Daten während eines zukünftigen Ausfallereignisses verloren gehen.
  16. System nach einem der Ansprüche 11 bis 15, wobei die Daten, die auf Verlust stark anfällig sind, auf der Grundlage des Betrachtens eines oder mehrerer Faktoren ermittelt werden, die in Bezug auf die Möglichkeit eines zukünftigen Ausfallereignisses korreliert werden.
  17. System nach Anspruch 16, wobei der eine oder die mehreren Faktoren das Alter einer Speicherplatte, auf der die Daten gespeichert sind, und/oder das Alter von Systemkomponenten in dem Daten-Speichersystem und/oder die Anzahl von brauchbaren Repliken für die Daten und/oder eine Fehlerrate umfassen, die dem Lesen der Daten zugehörig ist.
  18. System nach Anspruch 16 oder 17, wobei der eine oder die mehreren Faktoren ein oder mehrere Ereignisse aufweisen, die die Wahrscheinlichkeit des Datenverlustes oder die Möglichkeit des Wiederherstellens der Daten aus einer oder mehreren Repliken der Daten beeinflussen.
  19. System nach einem der Ansprüche 1 bis 18, wobei die Anzahl der erzeugten vorübergehenden Repliken in Reaktion auf Feststellen vermindert wird, dass die Anzahl von Repliken für die Daten auf einen vorgegebenen Schwellenwert zurückgesetzt wird.
  20. System nach einem der vorhergehenden Ansprüche, wobei eine vorübergehende Replik zum Wiederherstellen nach Datenverlust verwendet wird.
  21. Computerprogrammprodukt zum Verbessern der Datenwiederherstellung in einem Daten-Speichersystem, wobei das Computerprogrammprodukt aufweist: ein computerlesbares Speichermedium, das durch eine Verarbeitungsschaltung gelesen werden kann und Befehle zum Ausführen durch die Verarbeitungsschaltung speichert, um ein Verfahren nach einem der Ansprüche 1 bis 10 auszuführen.
  22. Computerprogramm, das auf einem computerlesbaren Speichermedium gespeichert ist und in den internen Arbeitsspeicher eines digitalen Computers geladen werden kann, das Software-Codeabschnitte aufweist zum Ausführen des Verfahrens nach einem der Ansprüche 1 bis 10, wenn das Programm auf einem Computer abläuft.
DE112015000384.3T 2014-03-06 2015-02-19 Erhöhen der Zuverlässigkeit in einem verteilten Speichersystem Active DE112015000384B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/198,592 2014-03-06
US14/198,592 US9336091B2 (en) 2014-03-06 2014-03-06 Reliability enhancement in a distributed storage system
PCT/IB2015/051266 WO2015132690A1 (en) 2014-03-06 2015-02-19 Reliabilty enhancement in a distributed storage system

Publications (2)

Publication Number Publication Date
DE112015000384T5 true DE112015000384T5 (de) 2016-09-29
DE112015000384B4 DE112015000384B4 (de) 2021-12-02

Family

ID=54017485

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112015000384.3T Active DE112015000384B4 (de) 2014-03-06 2015-02-19 Erhöhen der Zuverlässigkeit in einem verteilten Speichersystem

Country Status (6)

Country Link
US (3) US9336091B2 (de)
JP (1) JP6452712B2 (de)
CN (1) CN106104460B (de)
DE (1) DE112015000384B4 (de)
GB (1) GB2538206A (de)
WO (1) WO2015132690A1 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9264494B2 (en) * 2013-10-21 2016-02-16 International Business Machines Corporation Automated data recovery from remote data object replicas
US9336091B2 (en) 2014-03-06 2016-05-10 International Business Machines Corporation Reliability enhancement in a distributed storage system
US9891973B2 (en) * 2015-02-18 2018-02-13 Seagate Technology Llc Data storage system durability using hardware failure risk indicators
US10275302B2 (en) 2015-12-18 2019-04-30 Microsoft Technology Licensing, Llc System reliability by prioritizing recovery of objects
JP6580258B2 (ja) * 2016-05-24 2019-09-25 三菱電機株式会社 電子制御装置及びその動作制御方法
US10437241B2 (en) 2016-12-16 2019-10-08 General Electric Company Systems and methods for generating maintenance packages
CN107589916A (zh) * 2017-09-29 2018-01-16 郑州云海信息技术有限公司 一种基于纠删码的纠删池的创建方法及相关装置
CN109407975B (zh) * 2018-09-19 2020-08-25 华为技术有限公司 写数据方法与计算节点以及分布式存储系统
CN113467703A (zh) * 2020-03-31 2021-10-01 杭州海康存储科技有限公司 存储介质的管理方法、装置及设备
CN113726899B (zh) * 2021-09-01 2022-10-04 内蒙古工业大学 一种基于OpenStack的高校高可用微型数据中心构建方法
CN115167782B (zh) * 2022-07-28 2023-02-28 北京志凌海纳科技有限公司 临时存储副本管理方法、系统、设备和存储介质

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6516425B1 (en) 1999-10-29 2003-02-04 Hewlett-Packard Co. Raid rebuild using most vulnerable data redundancy scheme first
US6609212B1 (en) * 2000-03-09 2003-08-19 International Business Machines Corporation Apparatus and method for sharing predictive failure information on a computer network
JP4500063B2 (ja) * 2004-02-06 2010-07-14 富士通株式会社 電子装置、予測方法および予測プログラム
JP2007249441A (ja) * 2006-03-15 2007-09-27 Hitachi Ltd 仮想化システム及び障害対処方法
US7743276B2 (en) 2006-09-27 2010-06-22 Hewlett-Packard Development Company, L.P. Sufficient free space for redundancy recovery within a distributed data-storage system
JP5075465B2 (ja) * 2007-04-20 2012-11-21 株式会社東芝 インシデント・アクシデントレポート分析装置、方法、およびプログラム
US8019728B2 (en) 2008-04-17 2011-09-13 Nec Laboratories America, Inc. Dynamically quantifying and improving the reliability of distributed data storage systems
JP4843693B2 (ja) * 2009-03-30 2011-12-21 株式会社東芝 記憶装置
US8566354B2 (en) * 2010-04-26 2013-10-22 Cleversafe, Inc. Storage and retrieval of required slices in a dispersed storage network
WO2012017641A1 (ja) 2010-08-03 2012-02-09 パナソニック株式会社 アレイ管理装置、方法、集積回路およびプログラム
EP2439908A1 (de) * 2010-09-20 2012-04-11 Thomson Licensing Verfahren zur Datenreplikation in einem verteilten Datenspeicherungssystem und zugehörige Vorrichtung
US8732518B2 (en) 2011-04-13 2014-05-20 Netapp, Inc. Reliability based data allocation and recovery in a storage system
JP5887757B2 (ja) 2011-08-17 2016-03-16 富士通株式会社 ストレージシステム、ストレージ制御装置およびストレージ制御方法
JPWO2013038618A1 (ja) 2011-09-14 2015-03-23 パナソニックIpマネジメント株式会社 情報記憶媒体ライブラリアレイ装置、情報記録方法及び情報記録プログラム
US8812902B2 (en) 2012-02-08 2014-08-19 Lsi Corporation Methods and systems for two device failure tolerance in a RAID 5 storage system
US8862948B1 (en) * 2012-06-28 2014-10-14 Emc Corporation Method and apparatus for providing at risk information in a cloud computing system having redundancy
US9635109B2 (en) * 2014-01-02 2017-04-25 International Business Machines Corporation Enhancing reliability of a storage system by strategic replica placement and migration
US9336091B2 (en) 2014-03-06 2016-05-10 International Business Machines Corporation Reliability enhancement in a distributed storage system

Also Published As

Publication number Publication date
US10223207B2 (en) 2019-03-05
GB2538206A (en) 2016-11-09
CN106104460B (zh) 2019-04-12
US20180203769A1 (en) 2018-07-19
DE112015000384B4 (de) 2021-12-02
JP2017507427A (ja) 2017-03-16
US9946602B2 (en) 2018-04-17
WO2015132690A1 (en) 2015-09-11
JP6452712B2 (ja) 2019-01-16
CN106104460A (zh) 2016-11-09
GB201615112D0 (en) 2016-10-19
US9336091B2 (en) 2016-05-10
US20150254140A1 (en) 2015-09-10
US20160162361A1 (en) 2016-06-09

Similar Documents

Publication Publication Date Title
DE112015000384B4 (de) Erhöhen der Zuverlässigkeit in einem verteilten Speichersystem
DE112018000193B4 (de) Daten sequenziell in Zonen in einem verstreuten Speichernetzwerk speichern
DE112012005037B4 (de) Verwalten von redundanten unveränderlichen Dateien unter Verwendung von Deduplizierungen in Speicher-Clouds
DE112013001421B4 (de) Auf Richtlinien beruhendes Verwalten von Speicherfunktionen in Datenreplikationsumgebungen
DE112018002951B4 (de) Verwenden eines spurformatcodes in einem cache-steuerblock für eine spur in einem cache, um lese- und schreibanforderungen in bezug auf die spur im cache zu verarbeiten
DE102006048115B4 (de) System und Verfahren zum Aufzeichnen von behebbaren Fehlern
DE112011100534B4 (de) Mehrstufiger Sicherungsprozess
DE102013218341B4 (de) Ersatzweise Verlagerung von Threads (Thread-Sparing) zwischen Berechnungskernen in einem Multithread-Prozessor
DE102013201174A1 (de) Online-Überprüfung einer Standby-Datenbank in physischen Replikationsumgebungen mit Protokollversand
DE102013210642A1 (de) Vorrichtung zum Wiederherstellen von Redundanz
DE112017007690T5 (de) Verfahren und vorrichtungen zur durchführung einer fehlerdetektion und/oder korrektur in einer speichervorrichtung
DE112019003288T5 (de) Verwenden eines moduls mit maschinellem lernen, um zu ermitteln, wann eine fehlerprüfung eines speicherelements durchzuführen ist
DE102016107718A1 (de) Auslesen von Fehlervektoren aus einer Speichereinheit
DE112012002796T5 (de) Übertragen von in virtuellen Datenträgern organisierten deduplizierten Daten in einen Zielsatz von physischen Medien
DE112010004264B4 (de) Selektiver Schreibschutz für das Austesten der Wiederherstellung nach einem Absturz
US20210083936A1 (en) Method and system for managing virtual datacenters
DE112018000227B4 (de) Verfahren zum teilweisen Aktualisieren von Dateninhalten in einem verteilten Speichernetzwerk
US10616322B2 (en) Method for monitoring elements of a distributed computing system
DE112017002940T5 (de) Standard- und Nicht-Standard-Datenzugriff auf verstreute Speichernetzwerke
DE102015105414B4 (de) Bearbeiten eines Zielspeichers
DE112011104830T5 (de) Ein Verfahren zum Sicherstellen der Programmkorrektheit unter Verwendung von feingranularem spekulativem Hardwareausführen
DE112016004457T5 (de) Vervielfältigen von Daten in Datenspeichervorrichtungen eines Verknüpfungsvolumens
DE112019001744T5 (de) Verarbeiten von streaming-daten mit mehreren caches
DE112020000160B4 (de) Erkennen einer änderung von speicherschlüsseln, die zum schutz eines speichers verwendet werden
DE202014010886U1 (de) Programmatische Auswahl der bevorzugten Speicherparameter für Dateien in großen, verteilten Speichersystemen

Legal Events

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

Free format text: PREVIOUS MAIN CLASS: G06F0003060000

Ipc: G06F0011140000

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