-
HINTERGRUND DER ERFINDUNG
-
Gebiet der Erfindung
-
Die vorliegende Erfindung betrifft allgemein Computersysteme und insbesondere verschiedene Ausführungsformen zum Verringern der Wiederherstellungszeit in einer Computerspeicherumgebung, in der ein Computer-Prozessor verwendet wird.
-
Beschreibung der zugrunde liegenden Technik
-
Computersysteme sind am Arbeitsplatz, zuhause oder in der Schule anzutreffen. Computersysteme können Datenspeichersysteme oder Plattenspeichersysteme zum Verarbeiten und Speichern von Daten enthalten. Ein Speichersystem kann ein oder mehrere Plattenlaufwerke enthalten, die als Array angeordnet sein können, beispielsweise in einer RAID- (Redundant Array of Independent Disks) Topologie. In einem RAID-System sind Daten redundant auf mehreren Platten in einer Vielfalt von Konfigurationen gespeichert, um für den Fall eines Hardware- oder Softwareausfalls für Datensicherheit zu sorgen.
-
Mit dem exponentiellen jährlichen Wachstum der Technologie und der ständig zunehmenden Mengen an kritischen Daten, die in Speichersystemen wie RAIDs gespeichert sind, nimmt der Bedarf immer mehr zu, fehlerhafte Plattenlaufwerke wiederherzustellen. Demgemäß werden Entwicklungen auf dem Gebiet der Datenspeicherung immer wichtiger.
-
Die US 2019 / 0 121 698 A1 offenbart ein Verfahren und ein Gerät zur Verwaltung eines Speichersystems, das mehrere Speichergeräte in einer ersten Schicht und mindestens ein Backup-Speichergerät in einer zweiten Schicht umfasst. Das Verfahren umfasst in Reaktion auf das Empfangen einer Anforderung zum Schreiben von Zieldaten in das Speichersystem, Speichern der Zieldaten in einem ersten Teil von Speichergeräten unter den mehreren Speichergeräten in der ersten Schicht; Speichern einer ersten Parität, die auf der Grundlage eines ersten Algorithmus ermittelt wurde, von Daten in dem ersten Teil von Speichergeräten in einem zweiten Teil von Speichergeräten unter den mehreren Speichergeräten in der ersten Schicht; und Speichern einer zweiten Parität, die auf der Grundlage eines zweiten Algorithmus ermittelt wurde, von Daten in dem ersten Teil von Speichergeräten in einem ersten Backup-Speichergerät des mindestens einen Backup-Speichergeräts in der zweiten Schicht.
-
Die US 2016 / 0 246 678 A1 offenbart eine Vorrichtung, die ein RAID-Array beinhalten kann, das eine Mehrzahl von Festkörperlaufwerken (SSDs) umfasst. Die Vorrichtung kann ferner eine RAID-Array-Steuereinheit beinhalten, die mit der Mehrzahl der SSDs gekoppelt ist. Die RAID-Array-Steuereinheit kann so konfiguriert sein, dass sie feststellt, ob eine oder mehrere logische Blockadressen (LBAs) eines Stripes des RAID-Arrays nicht abgebildet sind. Die eine oder mehreren LBAs können mit einer oder mehreren SSDs der Mehrzahl von SSDs verknüpft sein. Die Steuereinheit des RAID-Arrays kann so konfiguriert sein, dass sie die dem Stripe entsprechenden Daten auf Grundlage der Ermittlung feststellt, ob die eine oder die mehreren LBAs nicht abgebildet sind. RAID-Operationen (wie z.B. Rebuild, Exposed Mode Read, und / oder Parity Resync-Operationen) können auf Grundlage der Kenntnis, welche LBAs abgebildet sind und welche nicht, optimiert werden.
-
Die US 2020 / 0 249 869 A1 offenbart ein Speichersystem, das eine Mehrzahl von Einheiten und einen Speicher-Controller umfasst. Jede Einheit umfasst mindestens ein Verarbeitungsgerät und eine Mehrzahl von Laufwerken, die gemäß einer RAID-Anordnung konfiguriert sind. Der Speicher-Controller erhält Datenseiten, die mit einer Eingabe-Ausgabe-Anforderung verknüpft sind, stellt die Datenseiten einem Verarbeitungsgerät einer gegebenen Einheit zur Verfügung und gibt einen Befehl an das Verarbeitungsgerät aus, mindestens eine Operation durchzuführen, die zumindest teilweise auf den Datenseiten basiert. Das Verarbeitungsgerät der gegebenen Einheit empfängt die Datenseiten vom Speicher-Controller, erzeugt komprimierte Datenseiten, die zumindest teilweise auf den empfangenen Datenseiten basieren, speichert eine oder mehrere der komprimierten Datenseiten auf der Mehrzahl von Laufwerken gemäß der RAID-Anordnung und gibt Informationen, die mit der Speicherung der komprimierten Datenseiten verknüpft sind, an den Speicher-Controller zurück.
-
KURZDARSTELLUNG DER ERFINDUNG
-
Zu den der Erfindung zugrundeliegenden Aufgaben zählt das Bereitstellen eines Verfahrens, eines Systems und eines Computerprogrammprodukts, das in einem Computersystem mit einem einzelnen RAID-6-Array eine Datenwiederherstellung mit verbessertem Schutz vor Totalverlust eines Volumes ermöglicht. Die der Erfindung zugrundeliegenden Aufgaben werden jeweils mit den Merkmalen der unabhängigen Patentansprüche gelöst. Ausführungsformen der Erfindung sind Gegenstand der abhängigen Patentansprüche.
-
Es werden verschiedene Ausführungsformen zum Verringern der Wiederherstellungszeit in einer Datenspeicherumgebung durch einen Prozessor bereitgestellt. Gemäß einer Ausführungsform wird zum Beispiel ein Verfahren für kürzere Wiederherstellungszeiten in einer RAID-6-Computerspeicher-Umgebung, wiederum durch einen Prozessor, bereitgestellt. Ein oder mehrere fehlerhafte Plattenlaufwerke in einem RAID-6 können durch Bereithalten von mindestens drei Paritätsstreifen je Stripe-Datenblock und Verwenden eines oder mehrerer der drei Paritätsstreifen gemäß dem Fehler des einen oder der mehreren ausgefallenen Plattenlaufwerke wiederherstellt werden.
-
Gemäß einem Aspekt wird ein Verfahren zur Datenwiederherstellung durch einen Prozessor in einem Computersystem bereitgestellt, das aufweist: Wiederherstellen eines oder mehrerer fehlerhafter Plattenlaufwerke in einem RAID-6 durch Bereithalten von mindestens drei Paritätsstreifen pro Stripe und Verwenden eines oder mehrerer der mindestens drei Paritätsstreifen gemäß dem einen oder den mehreren fehlerhaften Plattenlaufwerken.
-
Gemäß einem anderen Aspekt wird ein System zur Datenwiederherstellung in einer Computerumgebung bereitgestellt, wobei das System aufweist: einen oder mehrere Computer mit ausführbaren Anweisungen, die bei Ausführung das System veranlassen: bei einem oder mehreren Fehlern auf Plattenlaufwerken in einem redundanten Array unabhängiger Platten (RAID)-6 durch Bereithalten von mindestens drei Paritätsstreifen pro Stripe und Verwenden eines oder mehrerer der mindestens drei Paritätsstreifen entsprechend dem einen oder mehreren Fehlern von Plattenlaufwerken eine Fehlerfreiheit wiederherzustellen.
-
Gemäß einem anderen Aspekt wird ein Computerprogrammprodukt zur Datenwiederherstellung durch einen Prozessor in einem Computersystem bereitgestellt, wobei das Computerprogrammprodukt ein nichtflüchtiges, durch einen Computer lesbares Speichermedium mit darin gespeicherten Abschnitten von durch einen Computer lesbarem Programmcode aufweist, wobei die Abschnitte von durch einen Computer lesbarem Programmcode aufweisen: einen ausführbaren Abschnitt, der bei einem oder mehreren Fehlern auf Festplattenlaufwerken in einem redundanten Array unabhängiger Platten (RAID)-6 durch Bereithalten von mindestens drei Paritätsstreifen pro Stripe und Verwenden eines oder mehrerer der mindestens drei Paritätsstreifen entsprechend dem einen oder mehreren Fehlern von Plattenlaufwerken eine Fehlerfreiheit wiederherstellt.
-
Figurenliste
-
Nunmehr werden bevorzugte Ausführungsformen der vorliegenden Erfindung lediglich beispielhaft und unter Bezugnahme auf die folgenden Zeichnungen beschrieben:
- 1 ist ein Blockschaltbild, das einen beispielhaften Cloud-Computerknoten gemäß einer Ausführungsform der vorliegenden Erfindung zeigt;
- 2 ist ein weiteres Blockschaubild, das eine beispielhafte Cloud-Computerumgebung gemäß einer Ausführungsform der vorliegenden Erfindung zeigt;
- 3 ist ein weiteres Blockschaubild, das Schichten des Abstraktionsmodells gemäß einer Ausführungsform der vorliegenden Erfindung zeigt;
- 4 ist ein Blockschaubild, das einen Stripe in einer Topologie eines redundanten Array unabhängiger Platten (RAID)-6 gemäß Ausführungsformen der vorliegenden Erfindung zeigt;
- 5 ist ein Blockschaubild, das Vergleichen einer Topologie eines redundanten Array unabhängiger Platten (RAIS)-6 mit einem verbesserten redundanten Array unabhängiger Platten (RAID)-6 gemäß Ausführungsformen der vorliegenden Erfindung zeigt;
- 6 ist eine tabellarische Darstellung von Plattenfehlerkombinationen und Wiederherstellungsmaßnahmen für die verschiedenen Plattenfehlerkombinationen unter Verwendung eines verbesserten redundanten Array unabhängiger Platten (RAID) 6 gemäß Ausführungsformen der vorliegenden Erfindung;
- 7 ist eine tabellarische Aufstellung von Plattenfehlerkombinationen und Wiederherstellungszeiten für die verschiedenen Plattenfehlerkombinationen unter Verwendung eines verbesserten redundanten Array unabhängiger Platten (RAID) 6 gemäß Ausführungsformen der vorliegenden Erfindung;
- 8 ist ein zusätzlicher Ablaufplan, der ein beispielhaftes Verfahren zum Verringern der Wiederherstellungszeit durch einen Prozessor in einer Computerspeicherumgebung zeigt, in der Ausführungsformen der vorliegenden Erfindung umgesetzt werden können; und
- 9 ist ein zusätzlicher Ablaufplan, der ein beispielhaftes Verfahren zum Verringern der Wiederherstellungszeit durch einen Prozessor in einer Computerspeicherumgebung zeigt, in der ebenfalls Ausführungsformen der vorliegenden Erfindung umgesetzt werden können.
-
DETAILLIERTE BESCHREIBUNG DER ZEICHNUNGEN
-
Bei einem redundanten Array unabhängiger Platten („RAID“) handelt es sich um ein Array oder eine Gruppe von Festplattenlaufwerken, die durch eine einzige Steuereinheit gesteuert und miteinander kombiniert werden, um höhere Übertragungsraten als ein einziges, großes Laufwerk zu erreichen. Obwohl mehrere Laufwerke durch einen Adapter gesteuert werden, erscheint die RAID-Einheit dem Datenverarbeitungssystem wie ein Laufwerk. Je nach Konfiguration bietet das RAID im Vergleich mit einem einzigen Festplattenlaufwerk einen besseren Schutz und eine größere Speicherkapazität. Die Funktionen des RAID-Systems bestehen in erster Linie darin, die Verfügbarkeit, den Schutz und die Speicherkapazität für ein Datenverarbeitungssystem zu erhöhen.
-
Mittels der RAID-Technologie werden allgemein Daten entsprechend dem Format der jeweiligen RAID-Klassifikation (RAID 1, 2, 3, 4, 5 oder 6) auf die Laufwerke verteilt. Kopien oder Abschnitte von Daten für eine bestimmte Datei können in Segmente auf mehr als nur einem Plattenlaufwerk geschrieben werden, dieser Prozess wird als „Striping“ (einheitenübergreifendes Schreiben) bezeichnet. Durch Speichern der Daten und Anweisungen auf mehreren Laufwerken werden höhere Datenübertragungsraten durch die Fähigkeit der Steuereinheit erreicht, Lese- und Schreibbefehle für mehrere Laufwerke parallel zu planen.
-
Wenn eine Platte des RAID fehlerhaft ist, müssen Daten von dieser fehlerhaften Platte erneuert, z.B. unter Verwendung von Fehlerkorrekturinformationen von den übrigen Platten in der Gruppe wiederhergestellt werden. Das heißt, wenn eine Komponente des Plattenlaufwerks eines RAID fehlerhaft, kann das RAID wiederhergestellt werden, um die Datenredundanz wiederherzustellen. Dies kann erreicht werden durch Ersetzen der fehlerhaften Komponente des Plattenlaufwerks durch eine Reservekomponente des Plattenlaufwerks und Kopieren und Erneuern der verlorengegangenen Daten auf der Reservekomponente des Plattenlaufwerks. Im Idealfall wird das RAID so schnell wie möglich wiederhergestellt, um die Wahrscheinlichkeit zu verhindern, dass eine andere Komponente des Plattenlaufwerks versagt und zu einem dauerhaften Datenverlust führt.
-
Wenn ein RAID aufgrund eines Plattenausfalls wiederhergestellt wird, sind die Lese/Schreib-Antwortzeiten aufgrund des Wettbewerbs um Ressourcen nachteilig beeinflusst. Wenn zum Wiederherstellen des RAID mehr Ressourcen eingesetzt werden, leidet darunter die E/A-Leistung. Wenn zum Erfüllen von E/A-Anforderungen mehr Ressourcen eingesetzt werden, verlängert sich die Wiederherstellungszeit. Je länger die Wiederherstellungszeit wird, desto größer wird die Wahrscheinlichkeit, dass es zu einem Fehler kommt, der zum dauerhaften Datenverlust führt. Demgemäß kommt dem Verkürzen der Wiederherstellungszeit (z.B. schnellere Wiederherstellung) in einer Computerspeicherumgebung, insbesondere in einer RAID 6-Topologie, eine entscheidende Bedeutung für die Verbesserung der Datenverarbeitungsleistung zu.
-
Gemäß einer Ausführungsform wird lediglich beispielhaft ein Verfahren zur Verkürzung der Wiederherstellungszeit in einer Computerspeicherumgebung mit einem redundanten Array unabhängiger Platten (RAID) 6 wiederum mittels eines Prozessors bereitgestellt, um einen oder mehrere Plattenlaufwerkfehler in einem RAID-6 durch Zuweisen eines ersten Paritätsstreifens zu einem ersten Abschnitt eines Stripe und eines zweiten Paritätsstreifens zu einem zweiten Abschnitt des Stripe und eines dritten Paritätsstreifens zu dem gesamten Stripe und Wiederherstellen des ersten Abschnitts oder des zweiten Abschnitts gemäß einen definierten Reihenfolge auf der Grundlage einer Position einer/eines oder mehrerer versagender Platten/Streifen wiederherzustellen. Bei dem ersten Paritätsstreifen handelt es sich um einen P-Paritätsstreifen, bei dem zweiten Paritätsstreifen um einen P-Paritätsstreifen und bei dem dritten Paritätsstreifen um einen Q-Paritätsstreifen.
-
Es sei von vornherein klargestellt, dass diese Offenbarung zwar eine ausführliche Beschreibung von Cloud-Computing umfasst, ein Umsetzen der hierin angeführten Lehren jedoch nicht auf eine Cloud-Computing-Umgebung beschränkt ist. Stattdessen können Ausführungsformen der vorliegenden Erfindung gemeinsam mit jeder beliebigen Art von jetzt bekannter oder später entwickelter Datenverarbeitungsumgebung umgesetzt werden.
-
Cloud-Computing ist ein Servicebereitstellungsmodell zum Ermöglichen eines problemlosen bedarfsgesteuerten Netzwerkzugriffs auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Hauptspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste), die mit minimalem Verwaltungsaufwand bzw. minimaler Interaktion mit einem Anbieter des Service schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften umfassen, mindestens drei Dienstmodelle und mindestens vier Implementierungsmodelle.
-
Bei den Eigenschaften handelt es sich um die folgenden:
- On-Demand Self-Service: Ein Cloud-Nutzer kann einseitig automatisch nach Bedarf für Datenverarbeitungsfunktionen wie Serverzeit und Netzwerkspeicher sorgen, ohne dass eine menschliche Interaktion mit dem Anbieter der Dienste erforderlich ist.
-
Broad Network Access: Es sind Funktionen über ein Netzwerk verfügbar, auf die durch Standardmechanismen zugegriffen wird, welche die Verwendung durch heterogene Thin- oder Thick-Client-Plattformen (z.B. Mobiltelefone, Laptops und PDAs) unterstützen.
-
Resource-Pooling: Die Datenverarbeitungsressourcen des Anbieters werden zusammengeschlossen, um mehreren Nutzern unter Verwendung eines Multi-Tenant-Modells zu dienen, wobei verschiedene physische und virtuelle Ressourcen dynamisch nach Bedarf zugewiesen und neu zugewiesen werden. Es gibt eine gefühlte Standortunabhängigkeit, da der Nutzer allgemein keine Kontrolle bzw. Kenntnis über den genauen Standort der bereitgestellten Ressourcen hat, aber in der Lage sein kann, einen Standort auf einer höheren Abstraktionsebene festzulegen (z.B. Land, Staat oder Rechenzentrum).
-
Rapid Elasticity: Funktionen können für eine schnelle horizontale Skalierung (scale out) schnell und elastisch bereitgestellt werden, in einigen Fällen auch automatisch, und für ein schnelles Scale-in schnell freigegeben werden. Für den Nutzer erscheinen die für das Bereitstellen verfügbaren Funktionen häufig unbegrenzt und sie können jederzeit in jeder beliebigen Menge gekauft werden.
-
Measured Service: Cloud-Systeme steuern und optimieren die Verwendung von Ressourcen automatisch, indem sie eine Messfunktion auf einer gewissen Abstraktionsebene nutzen, die für die Art von Dienst geeignet ist (z.B. Speicher, Verarbeitung, Bandbreite sowie aktive Benutzerkonten). Die Nutzung von Ressourcen kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Nutzer des verwendeten Dienstes Transparenz geschaffen wird.
-
Bei den Dienstmodellen handelt es sich um die folgenden:
- Software as a Service (SaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, die in einer Cloud-Infrastruktur laufenden Anwendungen des Anbieters zu verwenden. Die Anwendungen sind über eine Thin-Client-Schnittstelle wie einen Web-Browser (z.B. auf dem Web beruhende E-Mail) von verschiedenen Client-Einheiten her zugänglich. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter das Netzwerk, Server, Betriebssysteme, Speicher bzw. sogar einzelne Anwendungsfunktionen, mit der möglichen Ausnahme von eingeschränkten benutzerspezifischen Anwendungskonfigurationseinstellungen.
-
Platform as a Service (PaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, durch einen Nutzer erstellte bzw. erhaltene Anwendungen, die unter Verwendung von durch den Anbieter unterstützten Programmiersprachen und Tools erstellt wurden, in der Cloud-Infrastruktur einzusetzen. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter Netzwerke, Server, Betriebssysteme bzw. Speicher, hat aber die Kontrolle über die eingesetzten Anwendungen und möglicherweise über Konfigurationen des Application Hosting Environment.
-
Infrastructure as a Service (laaS): Die dem Nutzer bereitgestellte Funktion besteht darin, das Verarbeiten, Speicher, Netzwerke und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Nutzer in der Lage ist, beliebige Software einzusetzen und auszuführen, zu der Betriebssysteme und Anwendungen gehören können. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicher, eingesetzte Anwendungen und möglicherweise eine eingeschränkte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
-
Bei den Einsatzmodellen handelt es sich um die folgenden:
- Private Cloud: Die Cloud-Infrastruktur wird einzig und allein für eine Organisation betrieben. Sie kann durch die Organisation oder einen Dritten verwaltet werden und kann sich in den eigenen Räumen oder in fremden Räumen befinden.
-
Community Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine spezielle Benutzergemeinschaft, die gemeinsame Angelegenheiten hat (z.B. Mission, Sicherheitsanforderungen, Richtlinien sowie Überlegungen bezüglich der Einhaltung von Vorschriften). Sie kann durch die Organisationen oder einen Dritten verwaltet werden und kann in den eigenen Räumen oder fremden Räumen stehen.
-
Public Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt und sie gehört einer Cloud-Dienste verkaufenden Organisation.
-
Hybrid Cloud: Die Cloud-Infrastruktur ist eine Zusammensetzung aus zwei oder mehreren Clouds (privat, Benutzergemeinschaft oder öffentlich), die zwar einzelne Einheiten bleiben, aber durch eine standardisierte oder proprietäre Technologie miteinander verbunden sind, die Daten- und Anwendungsportierbarkeit ermöglicht (z.B. Cloud-Zielgruppenverteilung für den Lastenausgleich zwischen Clouds).
-
Eine Cloud-Computing-Umgebung ist dienstorientiert mit Fokus auf Statusunabhängigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität. Im Herzen von Cloud-Computing liegt eine Infrastruktur, die ein Netzwerk aus zusammengeschalteten Knoten aufweist.
-
Unter Bezugnahme auf 1 ist nunmehr ein Schema eines Beispiels eines Cloud-Computing-Knotens gezeigt. Bei dem Cloud-Computing-Knoten 10 handelt es sich lediglich um ein Beispiel eines geeigneten Cloud-Computing-Knotens, das keine Einschränkung des Schutzumfangs der Verwendung oder Funktionalität von Ausführungsformen der hierin beschriebenen Erfindung nahelegen soll. Ungeachtet dessen ist der Cloud-Computing-Knoten 10 in der Lage, umgesetzt zu werden und/oder jede der oben dargelegten Funktionalitäten auszuführen.
-
In dem Cloud-Computing-Knoten 10 gibt es ein Computersystem/einen Server 12, der mit zahlreichen anderen Universal- oder Spezial-Computersystemumgebungen oder -konfigurationen zusammenarbeitet. Als Beispiel allgemein bekannter Computersysteme, -umgebungen und/oder -konfigurationen, die zur Verwendung mit dem Computersystem/-server 12 geeignet sind, kommen infrage, ohne auf diese beschränkt zu sein, Personal Computer-Systeme, Server Computer-Systeme, Thin Clients, Thick Clients, tragbare oder Laptop-Einheiten, Mehrprozessor-Systeme, Systeme auf der Grundlage von Mikroprozessoren, Set-Top-Boxen, programmierbare Heimelektronik, Netzwerk-PCs, Minicomputer-Systeme, Mainframecomputer-Systeme und verteilte Cloud-Computing-Umgebungen, die eines der obigen Systeme oder Einheiten enthalten, und dergleichen mehr.
-
Das Computersystem/der Server 121 kann im allgemeinen Zusammenhang mit durch ein Computersystem ausführbaren Anweisungen wie Programmmodulen beschrieben werden, die durch ein Computersystem ausgeführt werden. Im Allgemeinen können Programmmodule Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen und so weiter enthalten, um bestimmte Aufgaben auszuführen oder bestimmte abstrakte Datentypen einzuführen. Das Computersystem/der Server 12 kann in verteilten Cloud-Computing-Umgebungen verwendet werden, in denen Aufgaben durch ferne Verarbeitungseinheiten ausgeführt werden, die durch ein Datenübertragungsnetzwerk verbunden sind. In einer verteilten Cloud-Computing-Umgebung können Programmmodule in Speichermedien sowohl in lokalen als auch fernen Computersystemen gespeichert werden, die Speichereinheiten enthalten.
-
In 1 ist gezeigt, dass das Computersystem/der Server 12 im Cloud-Computing-Knoten 10 in Form einer Universal-Computereinheit dargestellt ist. Zu den Komponenten des Computersystems/Servers 12 können gehören, ohne auf diese beschränkt zu sein, ein/eine oder mehrere Prozessoren oder Verarbeitungseinheiten 16, ein Systemspeicher 28 und ein Bus 18, der verschiedene Systemkomponenten, die den Systemspeicher 28 enthalten, mit dem Prozessor 16 verbindet.
-
Der Bus 18 stellt einen oder mehrere beliebige verschiedene Typen von Busstrukturen dar, darunter ein Speicherbus oder eine Speichersteuerung, ein peripherer Bus, ein beschleunigter Grafikanschluss und ein Prozessor- oder lokaler Bus, der eine aus einer Vielfalt von Busarchitekturen verwendet. Als Beispiel, aber nicht als Einschränkung zu verstehen, kommen als Architekturen der ISA- (Industry Standard Architecture) Bus, der MCA- (Micro Channel Architecture) Bus, der erweiterte ESA- (EISA-) Bus, der lokale VESA-(Video Electronics Standards Association) Bus und der PCI- (Peripheral Component Interconnects) Bus infrage.
-
Das Computersystem/der Server 12 enthält üblicherweise eine Vielfalt von durch ein Computersystem lesbaren Medien. Bei solchen Medien kann es sich um beliebige verfügbare Medien handeln, auf das das Computersystem/der Server 12 zugreifen kann und die sowohl flüchtige als auch nichtflüchtige Medien, austauschbare und nichtaustauschbare Medien enthalten.
-
Der Systemspeicher 28 kann durch ein Computersystem lesbare Medien in Form eines flüchtigen Speichers wie eines Speichers mit wahlfreiem Zugriff (RAM) 30 und/oder eines Cache 32 enthalten. Das Computersystem/der Server 12 kann ferner andere austauschbare/nichtaustauschbare, flüchtige/nichtflüchtige Speichermedien des Computersystems enthalten. Lediglich beispielsweise kann das Speichersystem 34 zum Lesen von einem nichtaustauschbaren, nichtflüchtigen magnetischen Medium (das nicht gezeigt ist und üblicherweise als „Festplatte“ bezeichnet wird) und zum Schreiben darauf eingerichtet sein. Ein magnetisches Plattenlaufwerk zum Lesen von einer austauschbaren, nichtflüchtigen Magnetplatte (z.B. einer „Diskette“) und zum Schreiben darauf und ein optisches Plattenlaufwerk zum Lesen von einer austauschbaren, nichtflüchtigen optischen Platte wie einer CD-ROM, einer DVD-ROM oder anderen optischen Medien und zum Schreiben darauf können bereitgestellt sein, sind aber nicht gezeigt. In solchen Fällen kann jede Einheit durch eine oder mehrere Daten-Medienschnittstellen mit dem Bus 18 verbunden sein. Im Folgenden wird genauer gezeigt und beschrieben, dass der Systemspeicher 28 mindestens ein Computerprogrammprodukt mit einem Satz (z.B. mindestens einem) Programmmodule enthalten kann, die zum Ausführen der Funktionen von Ausführungsformen der Erfindung konfiguriert sind.
-
Beispielsweise, ohne eine Einschränkung darzustellen, können das Programm/Dienstprogramm 40 mit einem Satz (mindestens einem) Programmmodule 42 sowie ein Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten im Systemspeicher 28 gespeichert sein. Sowohl das Betriebssystem als auch ein oder mehreren Anwendungsprogramme, andere Programmmodule und Programmdaten oder eine beliebige Kombination derselben können eine Ausführung einer Netzwerkumgebung enthalten. Die Programmmodule 42 führen generell die Funktionen und/oder Verfahrensweisen von hierin beschriebenen Ausführungsformen der Erfindung aus.
-
Das Computersystem/der Server 12 kann auch Daten mit einer oder mehreren externen Einheiten 14 austauschen wie mit einer Tastatur, einer Zeigereinheit, einem Bildschirm 24 usw.; mit einer oder mehreren Einheiten, die einen Benutzer befähigen, mit dem Computersystem/dem Server 12 zu interagieren; und/oder mit beliebigen Einheiten (z.B. Netzwerkkarte, Modem usw.), die das Computersystem/den Server 12 befähigen, Daten mit einer oder mehreren anderen Datenverarbeitungseinheiten auszutauschen. Ein solcher Datenaustausch kann über Eingabe/Ausgabe (E/A-) Schnittstellen 22 erfolgen. Weiterhin kann das Computersystem/der Server 12 Daten mit einem oder mehreren Netzwerken wie einem lokalen Netz (Local Area Network, LAN), einem allgemeinen Weitverkehrsnetz (Wide Area Network, WAN) und/oder einem öffentlichen Netzwerk (z.B. dem Internet) über einen Netzwerkadapter 20 austauschen. Der Netzwerkadapter 20 tauscht wie gezeigt Daten mit den anderen Komponenten des Computersystems/des Servers 12 über den Bus 18 aus. Es sollte klar sein, dass in Verbindung mit dem Computersystem/dem Server 12 andere Hardware- und/oder Software-Komponenten verwendet werden können, obwohl dies nicht gezeigt ist. Als Beispiele kommen infrage, ohne auf diese beschränkt zu sein: Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, externe Plattenlaufwerk-Arrays, RAID-Systeme, Bandlaufwerke und Speichersysteme zur Datenarchivierung usw.
-
Unter Bezugnahme auf 2 ist die veranschaulichende Cloud-Computing-Umgebung 50 abgebildet. Wie gezeigt ist, weist die Cloud-Computing-Umgebung 50 einen oder mehrere Cloud-Computing-Knoten 10 auf, mit denen von Cloud-Nutzern verwendete lokale Datenverarbeitungseinheiten wie der elektronische Assistent (PDA, personal digital assistant) oder das Mobiltelefon 54A, der Desktop-Computer 54B, der Laptop-Computer 54C und/oder das Automobil-Computer-System 54N Daten austauschen können. Die Knoten 10 können miteinander Daten austauschen. Sie können physisch oder virtuell zu einem oder mehreren Netzwerken wie privaten, Benutzergemeinschafts-, öffentlichen oder hybriden Clouds gruppiert werden (nicht gezeigt), wie vorstehend beschrieben wurde, oder zu einer Kombination daraus. Dies ermöglicht es der Cloud-Computing-Umgebung 50, Infrastruktur, Plattformen und/oder Software als Dienst anzubieten, für die ein Cloud-Nutzer keine Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es sei darauf hingewiesen, dass die Arten von in 2 gezeigten Datenverarbeitungseinheiten 54A bis N lediglich veranschaulichend sein sollen und dass die Datenverarbeitungsknoten 10 und die Cloud-Computing-Umgebung 50 über eine beliebige Art Netzwerk und/oder über eine beliebige Art von über ein Netzwerk aufrufbarer Verbindung (z.B. unter Verwendung eines Web-Browsers) mit einer beliebigen Art von computergestützter Einheit Daten austauschen können.
-
Unter Bezugnahme auf 3 wird ein Satz von funktionalen Abstraktionsschichten gezeigt, die durch die Cloud-Computing-Umgebung 50 (2) bereitgestellt werden. Es sollte von vornherein klar sein, dass die in 3 gezeigten Komponenten, Schichten und Funktionen lediglich veranschaulichend sein sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie abgebildet ist, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
-
Eine Hardware- und Software-Schicht 60 umfasst Hardware- und Software-Komponenten. Zu Beispielen für Hardware-Komponenten gehören: Mainframe-Computer 61; auf der RISC- (Reduced Instruction Set Computer) Architektur beruhende Server 62; Server 63; Blade-Server 64; Speichereinheiten 65; und Netzwerke sowie Netzwerkkomponenten 66. In einigen Ausführungsformen umfassen Software-Komponenten eine Netzwerk-Anwendungsserver-Software 67 und eine Datenbank-Software 68.
-
Die Virtualisierungsschicht 70 stellt eine Abstraktionsschicht bereit, aus der die folgenden Beispiele für virtuelle Einheiten bereitgestellt werden können: virtuelle Server 71, virtueller Speicher 72, virtuelle Netzwerke 73, darunter virtuelle private Netzwerke, virtuelle Anwendungen und Betriebssysteme 74; und virtuelle Clients 75.
-
In einem Beispiel kann die Verwaltungsschicht 80 die nachfolgend beschriebenen Funktionen bereitstellen. Eine Ressourcen-Bereitstellung 81 stellt die dynamische Beschaffung von Datenverarbeitungsressourcen sowie anderen Ressourcen bereit, die zum Durchführen von Aufgaben innerhalb der Cloud-Computing-Umgebung verwendet werden. Ein Messen und eine Preisfindung 82 stellen die Kostenverfolgung beim Verwenden von Ressourcen innerhalb der Cloud-Computing-Umgebung sowie die Abrechnung oder Rechnungsstellung für den Verbrauch dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Anwendungs-Software-Lizenzen aufweisen. Die Sicherheit stellt die Identitätsüberprüfung für Cloud-Nutzer und Aufgaben sowie Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal 83 stellt Nutzern und Systemadministratoren den Zugang zu der Cloud-Computing-Umgebung bereit. Eine Verwaltung des Dienstumfangs 84 stellt die Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, so dass die benötigten Dienstziele erreicht werden. Ein Planen und Erfüllen von Vereinbarungen zum Dienstumfang (SLA, Service Level Agreement) 85 stellt die Anordnung vorab und die Beschaffung von Cloud-Computing-Ressourcen, für die eine zukünftige Anforderung vorausgesehen wird, gemäß einem SLA bereit.
-
Eine Arbeitslastschicht 90 stellt Beispiele für die Funktionalität bereit, für welche die Cloud-Computing-Umgebung verwendet werden kann. Zu Beispielen für Arbeitslasten und Funktionen, die von dieser Schicht bereitgestellt werden können, gehören: Abbildung und Navigation 91; Software-Entwicklung und Lebenszyklusverwaltung 92; Bereitstellung von Ausbildung in virtuellen Klassenzimmern 93; Datenanalytikverarbeitung 94; Transaktionsverarbeitung 95; und in Verbindung mit den veranschaulichten Ausführungsformen der vorliegenden Erfindung verschiedene Arbeitslasten und Funktionen 96 zum Verringern der Wiederherstellungszeit in einer RAID 6-Computerspeicherumgebung wie zum Beispiel in der Hardware- und Softwareschicht 60. Außerdem können zum Verringern der Wiederherstellungszeit in einer RAID 6-Computerspeicherumgebung wie zum Beispiel in der Hardware- und Softwareschicht 60 solche Arbeitsschritte wie Leistungsanalyse der Arbeitslast, Analyse des Leistungsprofils, Wiederherstellen eines oder mehrerer Plattenlaufwerke und andere die Computerspeicher betreffende Funktionen gehören. Dem Fachmann dürfte einsichtig sein, dass die Arbeitslasten und Funktionen 96 zum Verringern der Wiederherstellungszeit in einer RAID 6-Computerspeicherumgebung auch in Verbindung mit anderen Bereichen der verschiedenen Abstraktionsschichten wirksam sein können, beispielsweise Hardware und Software 60, Virtualisierung 70, Verwaltung 80 und andere Arbeitslasten 90 (zum Beispiel die Verarbeitung der Datenanalytik 94), um die verschiedenen Zielstellungen der veranschaulichten Ausführungsformen der vorliegenden Erfindung zu erreichen.
-
Es wird darauf hingewiesen, dass in einer RAID 5-Topologie das RAID 5 Datensegmente über mehrere Datenlaufwerke hinweg liest und Parität auf dieselben Datenplatten schreibt. Die Paritätsdaten („P“) werden niemals auf demselben Laufwerk wie die zu schützenden Daten gespeichert, sodass simultane Lese- und Schreiboperationen möglich sind. Innerhalb eines Stripe einer RAID 5-Konfiguration mit fünf Laufwerken enthalten alle Laufwerke Dateninformationen und Paritätsinformationen. Wenn eines der Datenlaufwerke ausfallen sollte, könnten die übrigen vier Datenlaufwerke und die Parität auf jedem Laufwerk zum Erneuern der Benutzerdaten verwendet werden, wodurch der Datenschutz verbessert wird.
-
Alternativ wird der Datenschutz durch das RAID 6 gegenüber dem RAID 5 verbessert, indem zwei Paritätsstreifen (z.B. der Paritätsstreifen P und der Paritätsstreifen Q) bereitgestellt werden, was in 4 veranschaulicht ist. Das heißt, 4 zeigt eine RAID 6-Topologie (mit N Laufwerken), die ein RAID 6 mit 8 Streifen (z.B. den Streifen 1 bis 6 und dem Paritätsstreifen P und dem Paritätsstreifen Q) in einem einzigen Stripe 410 zeigt. Gemäß einer Ausführungsform können in 4 ein/eine oder mehrere der in den 1 bis 3 beschriebenen Komponenten, Module, Dienste, Anwendungen und/oder Funktionen verwendet werden. Ferner können im selben Sinn, wie zuvor in den 1 bis 3 beschrieben, viele der Funktionsblöcke auch als Funktionalitäts-„Module“ angesehen werden. Auf wiederholte Beschreibung gleicher Elemente, Komponenten, Module, Dienste, Anwendungen und/oder Funktionen, die in anderen hierin beschriebenen Ausführungsformen verwendet werden, wird der Kürze halber verzichtet.
-
In Block 420 ist dargestellt, dass ein oder mehrere Stripes in einem oder mehreren Plattenlaufwerken („Laufwerken“) enthalten sein können, beispielsweise in den Laufwerken A bis H. Das heißt, sowohl das RAID 5 als auch das RAID 6 wenden das Striping (einheitenübergreifendes Schreiben) an, bei dem die Daten zyklisch über die Laufwerke hinweg geschrieben werden, zum Beispiel die Laufwerke A bis H, und nacheinander jedes Laufwerk drankommt, sodass die Streifen 1 bis 6, P und Q auf alle Laufwerke verteilt werden, was in Block 420 gezeigt ist, der eine RAID- 6-Topologie darstellt.
-
Gemäß einer Ausführungsform stellt die RAID 6-Topologie ein System zur Plattenredundanz dar, das zum Erzielen einer hohen Zuverlässigkeit eines Platten-Array verwendet wird. Bei einer Konfiguration von N Laufwerken nutzt das RAID 6 zwei Laufwerke zur Paritätsprüfung: Paritätsstreifen P (oder „Paritätslaufwerk P“) und Paritätsstreifen Q (oder „Paritätslaufwerk Q“). Die Parität P kann unter Verwendung einer XOR-Operation und die Parität Q unter Verwendung von Paritäts- und Reed-Solomon-Codes berechnet werden. Außerdem enthält das RAID 6 zum Datenschutz im RAID 6 zwei Paritätsstreifen und schützt immer vor 2 Fehlern. Die Parität P und die Parität Q schützen dieselben Streifen/Laufwerke. Jeder Stripe hat eine Parität P und eine Parität Q. Eine RAID 6-Einheit mit dieser Konfiguration kann lediglich beispielhaft mit mehreren Zeilen und mehreren Spalten von Datenlaufwerken dargestellt werden, wobei jede Zeile und Spalte mit einem Paritätslaufwerk endet. Solche Ansätze unterscheiden sich von einem RAID 5, bei dem nur ein einziger Paritätsstreifen verwendet wird.
-
Somit besteht der Vorteil des RAID 6 gegenüber dem RAID 5 in der Fähigkeit, zwei Plattenfehler zu überstehen. Auf diese Weise werden durch ein RAID 6 der prozentuale Anteil, die Speichereffizienz und die Verfügbarkeit von Daten (z.B. eine Mindestanforderung des Speichersystems von 99,999%) für ein Computer-Speichersystem im Vergleich zum RAID 5 erhöht. Der Nachteil des RAID 6 besteht jedoch im erhöhten Schreibaufwand und im erhöhten Kapazitätsaufwand.
-
Gemäß einer Ausführungsform sollten bei der Wahl einer RAID 6-Konfiguration (Streifen- und Stripe-Größen) einer oder mehrere der folgenden Faktoren berücksichtigt werden. 1) Der Kapazitätsaufwand (P und Q). Zum Beispiel steht im RAID 6 mehr Kapazität zur Verfügung, wenn mehr Streifen (beliebige Anzahl „N“) vorhanden sind. Das wirkt sich auch direkt auf die Funktionslebenszeit des Laufwerks aus. 2) Die Wiederherstellungszeit des RAID. Zum Beispiel müssen, je mehr Streifen vorhanden sind, umso mehr Daten zum Wiederherstellen eines fehlerhaften Laufwerks gelesen werden. 3) Die Anzahl physischer Laufwerke. Zum Beispiel kann die Anzahl der Streifen nicht größer als die Anzahl physischer Laufwerke sein. 4) Die geforderte Zuverlässigkeit eines Computerspeichersystems. Zum Beispiel kommt es im RAID 6 nicht zum Datenverlust, solange gleichzeitig drei Laufwerkfehler auftreten. Die Zuverlässigkeit ist ein Faktor der Fehlerrate des Laufwerks und der Wiederherstellungszeit. Die Wiederherstellungszeit ist länger, wenn die Kapazität des Laufwerks größer ist und wenn N größer ist (weil dann mehr Daten gelesen werden müssen). Die Wahrscheinlichkeit des Datenverlustes ist gleich der Wahrscheinlichkeit eines ersten ausfallenden Laufwerks, multipliziert mit der Wahrscheinlichkeit von zwei weiteren ausfallenden Laufwerken während der Wiederherstellungszeit des ersten Laufwerks. Die Ausfallrate eines Laufwerks wird normalerweise durch zwei Größen dargestellt. Die erste Größe ist die mittlere Zeit zwischen Ausfällen („MTBF“) (z.B. Ausfall pro Laufwerk). Die zweite Größe ist die nicht korrigierbare Bitfehlerrate („UBER“) (z.B. ein Ausfall pro Bit). Somit gibt es einen inhärenten Kompromiss zwischen Kapazitätsaufwand und Zuverlässigkeit. Außerdem stellt die Wiederherstellungszeit einen entscheidenden Faktor für die Zuverlässigkeit des Speichersystems dar. Je länger die Wiederherstellung dauert, desto stärker ist ein Computersystem anfällig für Datenverlust.
-
Demgemäß sorgen bevorzugte Ausführungsformen der vorliegenden Erfindung für eine verbesserte Modifikation des RAID 6, durch die die Wiederherstellungszeit eines einzelnen Laufwerkausfalls sowie die Wiederherstellungszeit eines doppelten Laufwerkfehlers in vielen Fällen/Beispielen verringert wird. Die Wiederherstellungszeit eines doppelten Laufwerkfehlers wird erkauft durch eine Verlängerung der Zeit zum Reparieren lediglich der Stripes mit zwei fehlerhaften Streifen pro Stripe. Das heißt, die vorliegende Erfindung kann gemäß einer bevorzugten Ausführungsform drei Paritätsstreifen pro Stripe bereithalten, jedoch verwendet die bevorzugte Ausführungsform im Gegensatz zum RAID mit dreifacher Parität nur zwei Paritätsstreifen („P“) wie beispielsweise P1 und P2, wobei P1 die Parität der ersten Hälfte der Streifen und P2 die Parität der zweiten Hälfte des Streifens ist. Die Parität Q kann so verbleiben wie im RAID 6 definiert. Auf diese Weise bietet die Modifikation ein verbessertes RAID 6, wobei durch den Begriff „verbessert“ ein im Vergleich zum RAID 6 zusätzlich verwendetes P angezeigt wird.
-
In 5 zeigt das Schaubild 500 einen Vergleich einer RAID 6-Topologie 510 mit einem verbesserten RAID 6 (z.B. dem modifizierten RAID 6 oder „RAID 6P“) 520. Zu sehen ist, dass sich die Beschriftung auf jeden der Funktionsblöcke 500 bezieht. Gemäß einer Ausführungsform können in 5 ein/eine oder mehrere der in den 1 bis 4 beschriebenen Komponenten, Module, Dienste, Anwendungen und/oder Funktionen verwendet werden. Auf eine wiederholte Beschreibung gleicher Elemente, Komponenten, Module, Dienste, Anwendungen und/oder Funktionen, die in anderen Ausführungsformen verwendet und hierin beschrieben werden, wird der Kürze halber verzichtet.
-
Gemäß einer Ausführungsform stellt die vorliegende Erfindung ein verbessertes RAID 6 (520) durch Bereithalten von drei Paritätsstreifen pro Stripe bereit. Im Gegensatz zu einem RAID mit drei Paritäten sorgt eine bevorzugte Ausführungsform der vorliegenden Erfindung dafür, dass nur zwei Paritäten („P“) verwendet werden. Gemäß einer Ausführungsform kann eine erste Parität (z.B. „P1“, p-Stripe 1 oder Paritätsstreifen 1) die Parität einer ersten Hälfte von Streifen in einem Stripe ausmachen. Eine zweite Parität (z.B. „P2“, p-Stripe 2 oder Paritätsstreifen 2) kann die Parität einer zweiten Hälfte der Streifen in einem Stripe ausmachen. Die Parität Q entspricht dem Reed-Solomon-Code über alle im RAID 6 definierten Datenstreifen hinweg. Somit zeigt in dem verbesserten RAID 6 wie zum Beispiel in dem verbesserten RAID 6 (520) das hinzugefügte p die im Vergleich mit dem RAID 6 zusätzlich verwendete P-Parität an. Somit kann der Aufwand des verbesserten RAID 6 wie zum Beispiel des verbesserten RAID 6 (520) als ein Faktor der Anzahl Leseschritte angesehen werden, die zum Wiederherstellen eines Laufwerks erforderlich sind.
-
Genauer gesagt handelt es sich in 5 bei der oberen Zeile um ein herkömmliches RAID 6 wie zum Beispiel um das RAID 6 (510), bei dem N gleich 10 ist und der Systemaufwand 20 Prozent (%) (z.B. 2/10) beträgt. Bei der unteren Zeile handelt es sich um das verbesserte RAID 6 wie zum Beispiel um das verbesserte RAID 6 (520), bei dem N gleich 15 ist und der Systemaufwand ebenfalls 20% (z.B. 3/15) beträgt. Zur Veranschaulichung und zum Vergleich ist die Lösung durch bewusste Auswahl eines Beispiels zum Vergleich mit identischem Systemaufwand gewählt worden, um die Wiederherstellungszeit des verbesserten RAID 6 (520) mit der des nicht verbesserten RAID 6 (510) zu vergleichen. Der Begriff „p-Stripe“ dient dazu, einen ausgewählten Abschnitt des Stripe anzuzeigen, der durch ein Laufwerk mit einfacher Parität („P“) wie zum Beispiel P1, die einen ersten Abschnitt oder einen ersten p-Stripe in einem Stripe belegt und/oder P2 belegt ist, die einen zweiten Abschnitt oder einen zweiten p-Stripe in dem Stripe belegt. Ein p-Stripe enthält (N-1)/2 Streifen, von denen einer auf die P-Parität und (N-1)/2 - 1 auf Daten entfallen.
-
Es wird darauf hingewiesen, dass die zentrale Struktur des RAID 6 (510) in dem verbesserten RAID 6 (520) erhalten bleibt, da P gleich einer Funktion P1 XOR P2 (z.B. P = P1 ⊕ P2) ist, die zum Wiederherstellen jedes RAID 6 verwendet werden kann. Somit können die Vorteile des verbesserten RAID 6 (520) jeweils Folgendes enthalten. 1) Ein Einzelfehler in jedem Streifen (außer der Parität Q) lässt sich schneller wiederherstellen, da nur ein p-Stripe wiederhergestellt werden muss. 2) Die Wahrscheinlichkeit eines Doppelfehlers wird verringert, da zwei Fehler in ein und demselben Stripe, aber voneinander getrennten p-Stripes, jetzt nur einen Einzelfehler in dem verbesserten RAID 6 (520) darstellen. Zu einem Doppelfehler kommt es nur, wenn zwei Fehler in ein und demselben p-Stripe vorkommen oder ein Fehler in einem p-Stripe und ein Fehler in der Q-Parität vorkommen. 3) Der Umfang des Datenverlusts im Fall von drei Laufwerkfehlern ist geringer als bei dem nicht verbesserten RAID 6 (510), da Daten nur verloren gehen, wenn drei Streifen aus ein und demselben p-Stripe oder 2 Streifen von ein und demselben p-Stripe und der Q-Parität verloren gehen.
-
Bei Verwendung des obigen Beispiels (z.B. N gleich 8+2 im Vergleich mit N gleich 12+3) beträgt die Wiederherstellungszeit eines Einzelfehlers in dem verbesserten RAID 6 (520) nur 80% der Wiederherstellungszeit in dem nicht verbesserten RAID 6 (510). Es wird darauf hingewiesen, dass zwar bei allen Beispielen der Fall von 2 p-Stripes pro Stripe erörtert wird, die vorliegende Erfindung jedoch auf eine beliebige Anzahl p-Stripes pro Stripe angewendet werden kann. Gemäß der vorliegenden Veranschaulichung wird somit jeder p-Stripe in dem verbesserten RAID 6 (520) in eine RAID 5-Konfiguration umgewandelt. Zum Beispiel hat das verbesserte RAID 6 (520) eine RAID 5-Konfiguration aufgrund der Tatsache, dass P1 einen ersten Abschnitt oder einen ersten p-Stripe in einem Stripe belegt, und eine zweite RAID 5-Konfiguration aufgrund der Tatsache, dass P2 den zweiten Abschnitt oder den zweiten p-Stripe in dem Stripe belegt, was in der Wiederherstellungstabelle 600 näher veranschaulicht wird.
-
Tabelle 600 in 6 führt Kombinationen von Plattenfehlern und Wiederherstellungsmaßnahmen für die verschiedenen Kombinationen von Plattenfehlern unter Verwendung eines verbesserten RAID 6 wie zum Beispiel des verbesserten RAID 6 (520) von 5 auf. Gemäß einer Ausführungsform können in 6 ein/eine oder mehrere der in den 1 bis 5 beschriebenen Komponenten, Module, Dienste, Anwendungen und/oder Funktionen verwendet werden. Auf eine wiederholte Beschreibung gleicher Elemente, Komponenten, Module, Dienste, Anwendungen und/oder Funktionen, die in anderen hierin beschriebenen Ausführungsformen verwendet werden, wird der Kürze halber verzichtet.
-
Im Einzelnen veranschaulicht Tabelle 600 einen Laufwerkfehler, beschädigte Streifen und eine Wiederherstellungsreihenfolge für das betreffende fehlerhafte Laufwerk. Tabelle 600 veranschaulicht zum Beispiel einen Wiederherstellungsarbeitsschritt der verbesserten RAID 6 (520)-Topologie. Tabelle 600 zeigt jede Kombination möglicher Laufwerkfehler, die gemäß einer definierten Reihenfolge wiederhergestellt werden. Zur weiteren Veranschaulichung werden in Tabelle 600 die folgenden Definitionen verwendet. „D{i}“ stellt einen Datenstreifen vom p-Stripe i ∈{1,2} dar. Q ist der Q-Paritätsstreifen. „DP{i}“ sind Daten oder der P-Paritätsstreifen vom p-Stripe i ε{1,2}. „P{i}“ ist eine Parität des p-Stipe i ∈{1,2}. „P“ ist eine Parität eines Stripe, die gleich der XOR-Verknüpfung von P1 und P2 ist (z.B. ist P nicht gespeichert). Somit führt die Tabelle 600 alle möglichen Kombinationen von Plattenfehlern auf und gibt den Wiederherstellungstyp für diesen betreffenden Laufwerkfehler an. Es wird darauf hingewiesen, dass in der Tabelle 600 jeder Fall, der nur einen p-Streifen 1 betrifft (z.B. D1 und P1), gleichermaßen für den p-Streifen 2 zutreffend ist.
-
Wenn es sich zum Beispiel bei einem einzigen Laufwerkfehler bei dem beschädigten Streifen um D1 handelt, besteht die Wiederherstellungsmaßnahme darin, den p-Streifen 1 des RAID 5 wiederherzustellen. Wenn es sich hingegen bei dem korrigierten Streifen um P1 handelt, besteht die Wiederherstellungsmaßnahme alternativ darin, den p-Streifen 1 des RAID 5 wiederherzustellen.
-
Wenn es sich bei zwei Laufwerkfehlern bei den beschädigten Streifen um DP1 und Q handelt, besteht die Wiederherstellungsmaßnahme darin, den p-Streifen 1 für P oder D des RAID 5 und den Streifen für Q im RAID 6 wiederherzustellen. Wenn es sich bei den beschädigten Streifen um DP1 (z.B. „DP1“-Daten in Parität) und DP2 handelt, werden beide p-Stripes des RAID 5 wiederhergestellt. Wenn es sich bei den beschädigten Streifen um P1 und D1 handelt, besteht die Wiederherstellungsmaßnahme darin, D1 von anderen Ds in dem Stripe und Q sowie P1 von den Ds in dem betreffenden P-Streifen wiederherzustellen. Wenn hingegen zwei Streifen (z.B. 2-mal D1) beschädigt sind, wird P alternativ durch XOR-Verknüpfung von P1 und P2 (z.B. P1 XOR P2) berechnet, und der Streifen wird unter Verwendung von P, Q und Ds des RAID 6 wiederherstellt.
-
Wenn es bei drei Laufwerkfehlern mehrere beschädigte Streifen (z.B. 3-mal D1) gibt, geht der P-Streifen 1 verloren. Wenn es mehrere beschädigte Streifen (z.B. 3-mal D1) oder Q und zwei beschädigte Streifen (z.B. 2-mal D1) gibt, geht der P-Streifen 1 verloren oder Q kann auf der Grundlage von D2 neu berechnet und gegebenenfalls P1 für die Wiederherstellung wiederbeschrieben werden. Wenn es mehrere beschädigte Streifen (z.B. 2-mal DP1 und DP2) gibt, werden der p-Streifen 2 des RAID 5 und der p-Stripe des RAID 6 wiederhergestellt. Wenn es sich bei den beschädigten Dateien um Q und DP1 (z.B. irgendwo im p-Stripe 1) und um DP2 handelt (z.B. irgendwo im p-Stripe 2), werden der p-Stripe 1 des RAID 5, der p-Stripe 2 des RAID 5 und der Q-Stripe des RAID 2 wiederhergestellt.
-
Wiederherstellungsreihenfolge (Optimale Reihenfolge der Wiederherstellung)
-
Wenn es aufgrund der laufwerkübergreifenden Speicherung in einem RAID zu einem Laufwerkausfall kommt, gibt es somit in Tabelle 600 eine Kombination von Szenarios. Tabelle 600 veranschaulicht die Wiederherstellungszeiten verschiedener RAID-Konfigurationen. Zum Beispiel besteht in dem nicht verbesserten RAID 6 (510) der Wiederherstellungsarbeitsschritt darin, zuerst Stripes mit zwei Fehlern wiederherzustellen und dann Stripes mit nur einem Fehler zu reparieren. In Tabelle 600 ist jedoch veranschaulicht, dass die verbesserte RAID 6-Topologie mehrere Kombinationen zeigt. Demgemäß lautet die bevorzugte/optimale Reihenfolge zur Wiederherstellung des verbesserten RAID 6 wie folgt. Bei 3 Laufwerkausfällen werden Q und ein DP in jedem p-Stripe wiederhergestellt. Bei 2 Laufwerkausfällen werden 1) Q und ein DP wiederhergestellt (Bearbeiten des Falls des Verlustes von q und einem DP) und/oder 2) DPs von ein und demselben p-Stripe werden wiederhergestellt. Das heißt, die Wiederherstellungszeiten verschiedener RAID-Konfigurationen können wie folgt lauten. 1) 3 Fehler - a) Q und ein DP in jedem p-Stripe, und/oder b) 2 DPs in einen p-Stripe und eins in dem anderen. 2) 2 Fehler - a) Q und ein DP und/oder b) 2 DPs von demselben p-Stripe. 1) 1 Fehler - a) Q und/oder b) DP. Es wird darauf hingewiesen, dass es sich bei den Optionen „a)“ und „b)“ um verschiedene Fälle oder „Zustände“ eines Stripe handelt. Es kann Stripes in allen obigen Zuständen geben.
-
Wiederherstellungszeit
-
In Bezug auf die Wiederherstellungszeit ist zu beachten, dass der Vergleich zwischen dem nicht verbesserten RAID 6 (510) und dem verbesserten RAID 6 (520) von der Größe des RAID-Stripe abhängt. Ebenso wie oben wird bei dem Vergleich zwischen dem nicht verbesserten RAID 6 (510) und dem verbesserten RAID 6 (520) vorausgesetzt, dass der RAID-Systemaufwand gleich ist (z.B. N gleich 8+2 beim nicht verbesserten RAID 6 (510) im Vergleich mit N gleich 12+3 beim verbesserten RAID 6 (520)).
-
Demgemäß wird im Fall eines Einzelfehlers bei dem verbesserten RAID 6 (520) nur ein p-Stripe wiederhergestellt. Dies führt bei Verwendung des obigen Beispiels zu einer um 20% kürzeren Wiederherstellungszeit im Vergleich mit dem nicht verbesserten RAID 6 (510). Bei einem Doppelfehler gibt es einen Kompromiss. Das verbesserte RAID 6 (520) hat eine kürzere gesamte Wiederherstellungszeit, wenn es viele Laufwerke gibt, hingegen eine längere Zeit, wenn es weniger Laufwerke gibt. Das liegt an der geringeren Wahrscheinlichkeit, dass zwei Fehler in ein und demselben p-Stripe auftreten. Außerdem besteht ein anderer Kompromiss darin, dass die Zeit zum Wiederherstellen nur der Stripes mit zwei Fehlern im verbesserten RAID 6 (520) länger ist. Somit stellt Tabelle 700 von 7 stichprobenartig beispielhafte Wiederherstellungszeiten für verschiedene Konfigurationen des verbesserten RAID 6 (520) (mit N gleich 12+3) im Vergleich mit dem nicht verbesserten RAID 6 (510) (mit N gleich 8+2) bereit.
-
Umfang des Datenverlusts bei Dreifachfehler
-
Gemäß einer Ausführungsform gehen bei dem verbesserten RAID 6 (520) im Fall eines Dreifachfehlers aus zwei Gründen weniger Daten verloren als beim RAID 6 (510). Erstens gehen im Fall von drei Fehlern bei den Stripes des verbesserten RAID 6 (520) im Gegensatz zum RAID 6 (510) nicht immer Daten verloren. Zweitens geht im Fall eines Dreifachfehlers beim verbesserten RAID 6 (520) nur ein p-Stripe verloren.
-
Leistungsfähigkeit
-
Es wird darauf hingewiesen, dass beim Vergleich zwischen dem verbesserten RAID 6 (520) (mit N gleich 12+3) und dem nicht verbesserten RAID 6 (510) (mit N gleich 8+2) die Leistung gleich ist. Gemäß einer Ausführungsform haben sequenzielle Schreiboperationen (bei Konfigurationen mit gleichem Systemaufwand) denselben Durchsatz. Ferner ist die Zahl der Eingabe/Ausgabe-Operationen pro Sekunde („IOPS“) gleich, da bei zufälligen Schreiboperationen ein Schreiben und Lesen sowohl von P als auch Q erforderlich ist.
-
8 ist ein zusätzlicher Ablaufplan 800, der ein beispielhaftes Verfahren zum Verringern der Wiederherstellungszeit in einer Computerumgebung, in der wiederum verschiedene Ausführungsformen der vorliegenden Erfindung realisiert werden können. Gemäß einer Ausführungsform können in 8 ein/eine oder mehrere der in den 1 bis 7 beschriebenen Komponenten, Module, Dienste, Anwendungen und/oder Funktionen verwendet werden. Die Funktionalität 800 kann als Verfahren umgesetzt werden, das durch Anweisungen auf einer Maschine ausgeführt werden, wobei die Anweisungen auf mindestens einem durch einen Computer lesbaren Medium oder einem nichtflüchtigen, durch eine Maschine lesbaren Speichermedium gespeichert sind. Die Funktionalität 800 kann in Block 802 starten.
-
Ein oder mehrere Plattenlaufwerkfehler in einem redundanten Array unabhängiger Platten (RAID)-6 können in Block 804 durch Bereithalten und Verwenden von mindestens drei Paritätsstreifen je Stripe wiederhergestellt werden, obwohl nur zwei Paritätsstreifen der drei Paritätsstreifen verwendet werden. Das heißt, alle 3 Paritätsstreifen werden verwendet, jedoch in unterschiedlichen Fällen entsprechend der Position des einen oder der mehreren beschädigten Streifen. Ferner werden, wenn Fehler in den beschädigten Streifen DP1, DP2 und Q festgestellt werden, alle drei Paritätsstreifen verwendet. Die Funktionalität 800 kann in Block 806 beendet sein.
-
9 ist ein weiterer Ablaufplan 900, der ein beispielhaftes Verfahren zum Verringern der Wiederherstellungszeit in einer Computerumgebung zeigt, in dem wiederum verschiedene Ausführungsformen der vorliegenden Erfindung realisiert werden können. Gemäß einer Ausführungsform können in 9 ein/eine oder mehrere der in den 1 bis 7 beschriebenen Komponenten, Module, Dienste, Anwendungen und/oder Funktionen verwendet werden. Die Funktionalität 900 kann als Verfahren umgesetzt werden, das als Anweisungen auf einer Maschine ausgeführt wird, wobei die Anweisungen auf mindestens einem durch einen Computer lesbaren Medium oder einem nichtflüchtigen, durch eine Maschine lesbaren Speichermedium gespeichert sind. Die Funktionalität 900 kann in Block 902 starten.
-
Ein erster Paritätsstreifen von N Paritätsstreifen (wobei N gleich einer positiven ganzen Zahl oder einem definierten Wert sein kann) kann in Block 904 in einem ersten Paritäts-Stripe eines Stripe in einem RAID 6-Speichersystem verwendet/bereitgehalten werden. Ein zweiter Paritätsstreifen der N Paritätsstreifen kann in Block 906 in einem zweiten Paritäts-Stripe des Stripe in dem RAID 6-Speichersystem verwendet/bereitgehalten werden. Ein dritter Paritätsstreifen der N Paritätsstreifen kann in Block 908 am Ende des Stripe in dem RAID 6-Speichersystem verwendet/bereitgehalten werden. In Block 910 können ein oder mehrere Plattenlaufwerkfehler in einem oder mehreren Stripes des RAID 6-Speichersystems ermittelt/detektiert werden. Ein oder mehrere Stripes, die einen oder mehrere Plattenlaufwerkfehler aufweisen und dem ersten Paritätsstreifen zugehörig sind, oder eine Kombination derselben können in Block 912 gemäß einer definierten Wiederherstellungsreihenfolge wiederhergestellt werden. Die Funktionalität 900 kann in Block 914 beendet werden.
-
Gemäß einer Ausführungsform können die Arbeitsschritte der Verfahren 800 und/oder 900 in Verbindung mit und/oder als Teil mindestens eines Blocks der 8 bis 9 jeden der folgenden Schritte enthalten. Die Arbeitsschritte der Verfahren 800 und/oder 900 können einen ersten Paritätsstreifen der N drei Paritätsstreifen (z.B. mindestens 3 Paritätsstreifen) in einem ersten Paritäts-Stripe des Stripe verwenden/bereithalten, einen zweiten Paritätsstreifen der N drei Paritätsstreifen in einem zweiten Paritäts-Stripe des Stripe verwenden/bereithalten und/oder einen dritten Paritätsstreifen der N drei Paritätsstreifen am Ende des Stripe verwenden/bereithalten. Bei dem ersten Paritätsstreifen handelt es sich um einen P-Paritätsstreifen des ersten Paritäts-Stripe, bei dem zweiten Paritätsstreifen um einen P-Paritätsstreifen und bei dem dritten Paritätsstreifen um eine Q-Parität des gesamten Streifens.
-
Durch die Arbeitsschritte der Verfahren 800 und/oder 900 kann ein ausgewählter Abschnitt des Stripe, der einen einzigen Plattenlaufwerkfehler aufweist und einem ersten Paritätsstreifen der N drei Paritätsstreifen zugehörig ist, und/oder der Stripe gemäß einer definierten Wiederherstellungsreihenfolge wiederhergestellt werden, der einen oder mehrere Plattenlaufwerkfehler aufweist und einem oder mehreren der N drei Paritätsstreifen zugehörig ist.
-
Durch die Arbeitsschritte der Verfahren 800 und/oder 900 können beim Auftreten eines einzelnen Plattenlaufwerkfehlers ein Q-Paritätsstreifen, ein Datenstreifen oder ein einzelner Paritätsstreifen für einen einzelnen Plattenlaufwerkfehler wiederhergestellt werden; können beim Auftreten von mindestens zwei Plattenlaufwerkfehlern ein Q-Paritätsstreifen und ein Datenstreifen oder ein einzelner Paritätsstreifen oder mindestens zwei Paritätsstreifen, die in einem identischen p-Stripe vorkommen, der einem oder mehreren der beiden Paritätsstreifen zugehörig ist, wiederhergestellt werden und/oder nach dem Auftreten von mindestens drei oder mehr Plattenlaufwerkfehlern ein Q-Paritätsstreifen und ein Datenstreifen in jedem Abschnitt des Stripe wiederhergestellt werden, der den beiden Paritätsstreifen zugehörig ist.
-
Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann ein durch einen Computer lesbares Speichermedium (oder -medien) mit durch einen Computer lesbaren Programmanweisungen darauf umfassen, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
-
Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch ein System zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch kodierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. ein Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
-
Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs/Verarbeitungs-Einheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs/Verarbeitungs-Einheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs/Verarbeitungs-Einheit weiter.
-
Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
-
Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
-
Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder angegebenen Funktion/Schritts umsetzen.
-
Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu bewirken, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
-
Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.