DE112011101317T5 - Optimieren eines Dateisystems für unterschiedliche Typen von Anwendungen in einem Datenverarbeitungs-Cluster unter Verwendung von dynamischer Blockgrössen-Granularität - Google Patents
Optimieren eines Dateisystems für unterschiedliche Typen von Anwendungen in einem Datenverarbeitungs-Cluster unter Verwendung von dynamischer Blockgrössen-Granularität Download PDFInfo
- Publication number
- DE112011101317T5 DE112011101317T5 DE112011101317T DE112011101317T DE112011101317T5 DE 112011101317 T5 DE112011101317 T5 DE 112011101317T5 DE 112011101317 T DE112011101317 T DE 112011101317T DE 112011101317 T DE112011101317 T DE 112011101317T DE 112011101317 T5 DE112011101317 T5 DE 112011101317T5
- Authority
- DE
- Germany
- Prior art keywords
- data
- data processing
- file system
- cluster
- node
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Abstract
Description
- Gebiet der Erfindung
- Ausführungsformen der Erfindung beziehen sich auf das Gebiet der Datenspeicherung und insbesondere auf das Optimieren eines Dateisystems für unterschiedliche Typen von Anwendungen in einem Datenverarbeitungs-Cluster unter Verwendung von dynamischer Blockgrößen-Granularität.
- Hintergrund
- Bei einem Dateisystem handelt es sich um ein Verfahren zum Speichern und Organisieren von Dateien und Daten. Zum Verwalten von Dateien und Daten verwenden Dateisysteme Speicherteilsysteme (engl.: Storage Sub-System). Dateisysteme sind Verwaltungsstrukturen, die eine Logikstruktur in ein Speicherteilsystem einführen, so dass Client-Computer Dateien aus Daten auf dem Speicherteilsystem erstellen, in ihm speichern und darauf zugreifen können. Ein verteiltes Dateisystem (Distributed File System) ist ein Dateisystem, das ein gemeinsames Nutzen von Dateien und Speicher-Ressourcen für eine Vielzahl von Clients innerhalb eines Netzwerkes unterstützt. Ein Cluster-Dateisystem ist ein Typ des verteilten Dateisystems, bei dem eine Vielzahl von Datenverarbeitungsknoten in einem Cluster gleichzeitig auf dieselben, in einem gemeinsam genutzten Speicherteilsystem gespeicherten Daten, zugreifen kann.
- Ein Datenverarbeitungs-Cluster ist ein System mit einer Vielzahl von Knoten, die miteinander agieren, um (einem) Client-System(en) Daten, Anwendungen und andere System-Ressourcen als einzelne Entität bereitzustellen. Durch die Möglichkeit bei Datenverarbeitungs-Clustern Knoten und gemeinsam genutzte Speicher zum Cluster hinzufügen zu können, kann Skalierbarkeit und Zuverlässigkeit gewährleistet werden. Zum Verwalten der Datenspeicherung innerhalb des Datenverarbeitungs-Cluster werden Dateisysteme verwendet. In einem Datenverarbeitungs-Cluster wird von einem Dateisystem Speicherplatz zugewiesen, indem zu speichernden Daten bestimmte Speicherbereiche zugeordnet werden. Datenverarbeitungs-Knoten in einem Cluster sehen ein Dateisystem als eine lokale Ressource mit Direktzugriff auf das gemeinsam genutzte Speicherteilsystem des Dateisystems des Cluster an.
- Cloud-Computing ist ein Datenverarbeitungsmodell, mit dem (einem) Client(s) ferne virtualisierte Datenverarbeitungs-Ressourcen als Dienst bereitgestellt werden. Mit Cloud-Computing werden durch fernes, und bei Bedarf innerhalb eines Netzwerkes, Hosten und Verteilen von Ressourcen (einem) Client(s) Software- und Hardware-Ressourcen als Dienste bereitgestellt. Endnutzer können damit bei Bedarf Datenverarbeitungs-Ressourcen nutzen, ohne dabei in Infrastruktur und Verwaltung zu investieren. Die zugrundeliegende Architektur für das Cloud-Computing umfasst üblicherweise große verteilte Cluster, bestehend aus eng zusammenarbeitenden Servern.
- Zusammenfassung der Erfindung
- Dementsprechend stellt die vorliegende Erfindung in einem ersten Aspekt ein Verfahren zum Optimieren eines Dateisystems für unterschiedliche Typen von Anwendungen in einem Datenverarbeitungs-Cluster unter Verwendung von dynamischer Blockgrößen-Granularität bereit, das Folgendes umfasst:
Reservieren einer vordefinierten Anzahl von Speicherzuordnungsbereichen für jeden Knoten in einem Cluster, wobei jeder Speicherzuordnungsbereich einen Satz von zusammenhängenden Datenblöcken auf einer einzelnen Speicherplatte eines lokal angeschlossenen Speichers umfasst; Verwenden eines zusammenhängenden Satzes von Datenblöcken auf einer einzelnen Speicherplatte eines lokal angeschlossenen Speichers als Blockzuordnungs-Granularität eines Dateisystems zum Stripen von Daten, die für eine Datenverarbeitungsoperation in dem Cluster in dem Dateisystem gespeichert werden sollen und Verwenden eines einzelnen Datenblockes eines gemeinsam genutzten Speicherteilsystems als Blockzuordnungs-Granularität des Dateisystems zum Stripen von Daten, die für eine Datenzugriffsoperation in dem Cluster in dem Dateisystem gespeichert werden sollen. - Das Verfahren kann des Weiteren Zuordnen von Daten für eine Datenverarbeitungsoperation zu wenigstens einem der reservierten Speicherzuordnungsbereiche umfassen. Das Verfahren kann des Weiteren, wenn eine Gesamtanzahl der reservierten Speicherzuordnungsbereiche für einen Knoten in dem Cluster kleiner als eine vordefinierte Anzahl ist, Reservieren von wenigstens einem zusätzlichen Speicherzuordnungsbereich so lange umfassen, bis die Gesamtanzahl reservierter Speicherzuordnungsbereiche für den Knoten der vordefinierten Anzahl entspricht. Das Verfahren kann des Weiteren Senden einer Datenverarbeitungsoperation an einen Knoten in dem Cluster zusammen mit Daten für die Datenverarbeitungsoperation umfassen, die dem lokal angeschlossenen Speicher des Knotens zugeordnet ist. Das Verfahren kann des Weiteren Replizieren eines jeden zusammenhängenden Satzes an Datenblöcken, die einem lokal angeschlossenen Speicher des Knotens zugeordnet sind, auf einen lokal angeschlossenen Speicher eines zweiten Knotens in dem Cluster umfassen. Das Verfahren kann des Weiteren Zuordnen von Daten für eine Datenzugriffsoperation zu dem gemeinsam genutzten Speicherteilsystem umfassen. Das Verfahren kann des Weiteren Verfolgen eines Ortes eines jeden Datenblockes, der dem gemeinsam genutzten Speicherteilsystem und dem lokal angeschlossenen Speicher in dem Dateisystem zugeordnet ist, in dem Dateisystem umfassen. Vorzugsweise wird die Datenzugriffsoperation aus der Gruppe bestehend aus einer Buchhaltungsoperation, einer Datenübertragungsoperation, einer Cachespeicher-Verwaltungsoperation und einer Prefetch-Operation ausgewählt. Das Verfahren kann des Weiteren, wenn ein Knoten mit einer Datenverarbeitungsoperation einen Fehler aufweist, Neustarten der Datenverarbeitungsoperation auf einem zweiten Knoten umfassen, wo mit der Datenverarbeitungsoperation assoziierte Daten repliziert sind. Vorzugsweise hostet der Cluster Datenverarbeitungsdienste für einen fernen Client.
- In einem zweiten Aspekt wird ein System zum Optimieren eines Dateisystems für unterschiedliche Typen von Anwendungen in einem Datenverarbeitungs-Cluster unter Verwendung von dynamischer Blockgrößen-Granularität bereitgestellt, das Folgendes umfasst: ein Datenverarbeitungs-Cluster, wobei der Datenverarbeitungs-Cluster Folgendes umfasst: eine Vielzahl von Knoten, wobei jeder der Vielzahl von Knoten einen lokal angeschlossenen Speicher, ein mit jedem der Vielzahl von Knoten verbundenes gemeinsam genutztes Speicherteilsystem und ein mit dem gemeinsam genutzten Speicherteilsystem und jedem der Vielzahl von Knoten verbundenen Dateisystemmanager umfasst, wobei der Dateisystemmanager eine vordefinierte Anzahl an Speicherzuordnungsbereichen für jeden der Vielzahl von Knoten in dem Datenverarbeitungs-Cluster reserviert, wobei jeder Speicherzuordnungsbereich einen Satz an zusammenhängenden Datenblöcken auf einer einzelnen Speicherplatte eines lokal angeschlossenen Speichers umfasst, einen zusammenhängenden Satz an Datenblöcken auf einer einzelnen Speicherplatte eines lokal angeschlossenen Speichers als Blockzuordnungs-Granularität eines Dateisystems zum Stripen von Daten, die für eine Datenverarbeitungsoperation in dem Cluster in dem Dateisystem gespeichert werden sollen, verwendet und einen einzelnen Datenblock eines gemeinsam genutzten Speicherteilsystems als Blockzuordnungs-Granularität des Dateisystems zum Stripen von Daten, die für eine Datenzugriffsoperation in dem Cluster in dem Dateisystem gespeichert werden sollen, verwendet.
- Vorzugsweise sendet der Dateisystemmanager eine Datenverarbeitungsoperation an einen Knoten in dem Cluster zusammen mit Daten für die Datenverarbeitungsoperation, die dem lokal angeschlossenen Speicher des Knotens zugeordnet ist.
- Vorzugsweise reserviert der Dateisystemmanager wenigstens einen zusätzlichen Speicherzuordnungsbereich, wenn eine Gesamtanzahl der reservierten Speicherzuordnungsbereiche für den Knoten kleiner als eine vordefinierte Anzahl ist, so lange, bis eine Gesamtanzahl der reservierten Speicherzuordnungsbereiche für den Knoten der vordefinierten Anzahl entspricht. Vorzugsweise führt der Dateisystemmanager Folgendes aus: Replizieren eines jeden zusammenhängenden Satzes an Datenblöcken, die einem lokal angeschlossenen Speicher eines Knotens zugeordnet sind, auf einen lokal angeschlossenen Speicher eines zweiten Knotens in dem Datenverarbeitungs-Cluster und Neustarten einer Datenverarbeitungsoperation auf einem zweiten Knoten, wo dem Datenverarbeitungsoperation zugehörige Daten repliziert sind, wenn ein Knoten mit der Datenverarbeitungsoperation einen Fehler aufweist.
- In einem dritten Aspekt wird ein einen Computerprogrammcode umfassendes Computerprogramm bereitgestellt, das auf einem von einem Computer lesbaren Medium gespeichert wird, um, wenn es in ein Computersystem geladen und darauf ausgeführt wird, den Computer zu veranlassen, alle Schritte eines Verfahrens gemäß dem ersten Aspekt durchzuführen.
- Das Computerprogramm kann als ein Computerprogrammprodukt zum Optimieren eines Dateisystems für unterschiedliche Typen von Anwendungen in einem Datenverarbeitungs-Cluster unter Verwendung von dynamischer Blockgrößen-Granularität ausgebildet sein, das Folgendes umfasst: ein von einem Computer lesbares Speichermedium mit einem darin enthaltenen von einem Computer lesbaren Programmcode, wobei der von einem Computer lesbare Programmcode Folgendes umfasst: von einem Computer lesbarer Programmcode, der so konfiguriert ist, dass er eine vordefinierte Anzahl von Speicherzuordnungsbereichen für jeden Knoten in einem Cluster reservieren kann, wobei jeder Speicherzuordnungsbereich einen Satz von zusammenhängenden Datenblöcken auf einer einzelnen Speicherplatte eines lokal angeschlossenen Speichers umfasst, wobei der von einem Computer lesbare Programmcode so konfiguriert ist, dass er einen zusammenhängenden Satz von Datenblöcken auf einer einzelnen Speicherplatte des lokal angeschlossenen Speichers als Blockzuordnungs-Granularität eines Dateisystems zum Stripen von Daten verwenden kann, die für eine Datenverarbeitungsoperation in dem Cluster in dem Dateisystem gespeichert werden sollen, und der von einem Computer lesbare Programmcode so konfiguriert ist, dass er einen einzelnen Datenblock eines gemeinsam genutzten Speicherteilsystems als Blockzuordnungs-Granularität des Dateisystems zum Stripen von Daten verwenden kann, die für eine Datenzugriffsoperation in dem Cluster in dem Dateisystem gespeichert werden sollen.
- Vorzugsweise umfasst der von einem Computer lesbare Programmcode des Weiteren Folgendes: von einem Computer lesbarer Programmcode, der so konfiguriert ist, dass er eine Datenverarbeitungsoperation an einen Knoten in dem Cluster zusammen mit Daten für die dem lokal angeschlossenen Speicher des Knotens zugeordnete Datenverarbeitungsoperation senden kann. Vorzugsweise umfasst der von einem Computer lesbare Programmcode des Weiteren Folgendes: von einem Computer lesbarer Programmcode, der so konfiguriert ist, dass er wenigstens einen zusätzlichen Speicherzuordnungsbereich so lange reservieren kann, bis eine Gesamtanzahl der reservierten Speicherzuordnungsbereiche für einen Knoten einer vordefinierten Anzahl entspricht, wenn eine Gesamtanzahl der reservierten Speicherzuordnungsbereiche für den Knoten kleiner ist als die vordefinierte Anzahl. Vorzugsweise umfasst der von einem Computer lesbare Programmcode des Weiteren Folgendes: von einem Computer lesbarer Programmcode, der so konfiguriert ist, dass er einen Ort eines jeden Datenblockes, der dem gemeinsam genutzten Speicherteilsystem und dem lokal angeschlossenen Speicher in dem Dateisystem zugeordnet ist, verfolgen kann. Vorzugsweise umfasst der von einem Computer lesbare Programmcode des Weiteren Folgendes: von einem Computer lesbarer Programmcode, der so konfiguriert ist, dass er jeden zusammenhängenden Satz an Datenblöcken, die einem lokal angeschlossenen Speicher eines Knotens zugeordnet sind, auf einen lokal angeschlossenen Speicher eines zweiten Knotens in dem Cluster replizieren kann. Vorzugsweise umfasst der von einem Computer lesbare Programmcode des Weiteren Folgendes: von einem Computer lesbarer Programmcode, der so konfiguriert ist, dass er eine Datenverarbeitungsoperation auf einem zweiten Knoten, wo der Datenverarbeitungsoperation zugehörige Daten repliziert sind, neustarten kann, wenn der Knoten mit der Datenverarbeitungsoperation einen Fehler aufweist.
- Ausführungsformen der Erfindung beziehen sich das Optimieren eines Dateisystems für unterschiedliche Typen von Anwendungen in einem Datenverarbeitungs-Cluster unter Verwendung von dynamischer Blockgrößen-Granularität. Ein Aspekt der Erfindung umfasst ein Verfahren zum Optimieren eines Dateisystems für unterschiedliche Typen von Anwendungen in einem Datenverarbeitungs-Cluster unter Verwendung von dynamischer Blockgrößen-Granularität. Das Verfahren kann Folgendes umfassen: Reservieren einer vordefinierten Anzahl von Speicherzuordnungsbereichen für jeden Knoten in einem Cluster, wobei jeder Speicherzuordnungsbereich einen Satz von zusammenhängenden Datenblöcken auf einer einzelnen Speicherplatte eines lokal angeschlossenen Speichers umfasst; Verwenden eines zusammenhängenden Satzes von Datenblöcken auf einer einzelnen Speicherplatte eines lokal angeschlossenen Speichers als Blockzuordnungs-Granularität eines Dateisystems zum Stripen von Daten, die für eine Datenverarbeitungsoperation in dem Cluster in dem Dateisystem gespeichert werden sollen; und Verwenden eines einzelnen Datenblockes eines gemeinsam genutzten Speicherteilsystems als Blockzuordnungs-Granularität des Dateisystems zum Stripen von Daten, die für eine Datenzugriffsoperation in dem Cluster in dem Dateisystem gespeichert werden sollen.
- Eine weitere Ausführungsform der Erfindung umfasst ein System zum Optimieren eines Dateisystems für unterschiedliche Typen von Anwendungen in einem Datenverarbeitungs-Cluster unter Verwendung von dynamischer Blockgrößen-Granularität. Das System kann einen Datenverarbeitungs-Clustern umfassen, wobei der Datenverarbeitungs-Cluster Folgendes umfasst: eine Vielzahl von Knoten, wobei jeder der Vielzahl von Knoten einen lokal angeschlossenen Speicher, ein mit jedem der Vielzahl von Knoten verbundenes gemeinsam genutztes Speicherteilsystem und einen Dateisystemmanager umfasst, der mit dem gemeinsam genutzten Speicherteilsystem und jedem der Vielzahl von Knoten verbunden ist, wobei der Dateisystemmanager Folgendes ausführt: Reservieren einer vordefinierten Anzahl von Speicherzuordnungsbereichen für jeden der Vielzahl von Knoten in dem Datenverarbeitungs-Cluster, wobei jeder Speicherzuordnungsbereich einen Satz von zusammenhängenden Datenblöcken auf einer einzelnen Speicherplatte eines lokal angeschlossenen Speichers umfasst, einen zusammenhängenden Satz von Datenblöcken auf einer einzelnen Speicherplatte des lokal angeschlossenen Speichers als Blockzuordnungs-Granularität eines Dateisystems zum Stripen von Daten verwendet, die für eine Datenverarbeitungsoperation in dem Cluster in dem Dateisystem gespeichert werden sollen, und einen einzelnen Datenblock eines gemeinsam genutzten Speicherteilsystems als Blockzuordnungs-Granularität des Dateisystems zum Stripen von Daten, die für eine Datenzugriffsoperation in dem Datenverarbeitungs-Cluster in dem Dateisystem gespeichert werden sollen, verwendet.
- Eine weitere Ausführungsform der Erfindung umfasst einen Computerprogrammcode zum Optimieren eines Dateisystems für unterschiedliche Typen von Anwendungen in einem Datenverarbeitungs-Cluster unter Verwendung von dynamischer Blockgrößen-Granularität, der Folgendes umfasst: ein von einem Computer lesbares Speichermedium mit einem darin enthaltenen von einem Computer lesbaren Programmcode, wobei der von einem Computer lesbare Programmode Folgendes umfasst: von einem Computer lesbarer Programmcode, der zum Reservieren einer vordefinierten Anzahl von Speicherzuordnungsbereichen für jeden Knoten in einem Cluster konfiguriert ist, wobei jeder Speicherzuordnungsbereich einen Satz von zusammenhängenden Datenblöcken auf einer einzelnen Speicherplatte eines lokal angeschlossenen Speichers umfasst, wobei der von einem Computer lesbare Programmcode so konfiguriert ist, dass er einen zusammenhängenden Satz an Datenblöcken auf einer einzelnen Speicherplatte eines lokal angeschlossenen Speichers als Blockzuordnungs-Granularität zum Stripen von in dem Dateisystem für eine Datenverarbeitungsoperation in dem Cluster zu speichernden Daten verwenden kann, und der von einem Computer lesbare Programmcode so konfiguriert ist, dass er einen einzelnen Datenblock eines gemeinsam genutzten Speicherteilsystems als Blockzuordnungs-Granularität des Dateisystems zum Stripen von in dem Dateisystem für eine Datenzugriffsoperation in dem Cluster zu speichernden Daten verwenden kann.
- Kurzbeschreibung der Zeichnungen
- Im Folgenden wird im Sinne eines Beispiels eine bevorzugte Ausführungsform der vorliegenden Erfindung in Bezug auf die begleitenden Zeichnungen beschrieben, in denen:
-
1 einen Datenverarbeitungs-Cluster mit einem Dateisystem veranschaulicht, das für unterschiedliche Typen von Anwendungen unter Verwendung von dynamischer Blockgrößen-Granularität gemäß einer Ausführungsform optimiert ist; -
2 einen Ablaufplan eines Verfahrens zum Optimieren eines Dateisystems für unterschiedliche Typen von Anwendungen in einem Datenverarbeitungs-Cluster unter Verwendung von dynamischer Blockgrößen-Granularität gemäß einer Ausführungsform veranschaulicht; -
3 ein Zuordnungsschema zum Stripen von Daten, die für eine Datenverarbeitungsoperation in einem Datenverarbeitungs-Cluster in einem Dateisystem gespeichert werden sollen, gemäß einer Ausführungsform in Blockform veranschaulicht; -
4 ein Zuordnungsschema zum Stripen von Daten, die für eine Datenzugriffsoperation in einem Datenverarbeitungs-Cluster in einem Dateisystem gespeichert werden sollen, gemäß einer Ausführungsform in Blockform veranschaulicht und -
5 ein Blockschaltbild eines Systems veranschaulicht, in dem ein Verfahren zum Optimieren eines Dateisystems für unterschiedliche Anwendungen in einem Datenverarbeitungs-Cluster unter Verwendung von dynamischer Blockgrößen-Granularität gemäß einer Ausführungsform implementiert werden kann. - Ausführliche Beschreibung der bevorzugten Ausführungsform
- Die folgende Beschreibung dient der Veranschaulichung der allgemeinen Grundgedanken der Erfindung und soll die hierin beanspruchten erfinderischen Konzepte nicht einschränkenden. Des Weiteren können hierin beschriebene bestimmte Leistungsmerkmale in Kombination mit anderen beschriebenen Leistungsmerkmalen in jeder der verschiedenen möglichen Kombinationen und Vertauschbarkeiten verwendet werden. Sofern hierin nichts Anderslautendes ausdrücklich festgelegt wird, ist allen Bedingungen ihre weitestmöglich gefasste Auslegung zu verleihen, die sich anhand der Spezifikation ebenso wie der Bedeutungen, die von den Fachleuten verstanden und/oder in Enzyklopädien, Abhandlungen usw. definiert werden, erschließt.
- Die Beschreibung offenbart möglicherweise mehrere bevorzugte Ausführungsformen zum Optimieren eines Dateisystems für unterschiedliche Typen von Anwendungen in einem Datenverarbeitungs-Cluster unter Verwendung von dynamischer Blockgrößen-Granularität, ebenso wie die Funktionsweise und/oder einzelne Komponenten davon. Obgleich die folgende Beschreibung in Bezug auf Speicherzuordnungsverfahren und Speichereinheiten gegeben wird, um die Erfindung in den Kontext einer beispielhaften Ausführungsform zu setzen, sollte berücksichtigt werden, dass die hierin enthaltenen Lehren einschließlich der Ansprüche, eine breite Anwendung auf andere Typen von Systemen, Einheiten und Anwendungen haben kann, unter anderem Systemen, Einheiten und Anwendungen in Cloud-Computing-Umgebungen.
- Ausführungsformen der Erfindung beziehen sich auf das Optimieren eines Dateisystems für unterschiedliche Typen von Anwendungen in einem Datenverarbeitungs-Cluster unter Verwendung von dynamischer Blockgrößen-Granularität. Cluster-Dateisysteme, die einen gemeinsam genutzten Speicher verwenden, unterstützen keine Weitergabe von Datenverarbeitungen, ein Leistungsmerkmal, das zum Unterstützen von datenintensiven Anwendungen (z. B. Datenanalyse-Anwendungen) erforderlich ist, die große Datensätze verarbeiten. Darüber hinaus sind die Standard-Blockgrößen für Cluster-Dateisysteme, die einen gemeinsam genutzten Speicher verwenden, klein, was zu einem hohen Task-Systemaufwand für datenintensive Anwendungen führt, die zeitlich eine Task pro Datenblock vorsehen. Die zugrundeliegende Speicherarchitektur zum Ausführen von datenintensiven Anwendungen beruht auf Internet-Dateisystemen, die keine standardmäßige POSIX-(Portable Operating System Interface for Unix)Schnittstelle aufweisen. Internet-Dateisysteme sind spezielle Dateisysteme, die zwar für datenintensive Anwendungen geeignet sind, jedoch nicht die Leistungsanforderungen herkömmlicher Anwendungen unterstützen.
- In einer Ausführungsform werden an einem Blockzuordnungsschema eines Dateisystems Modifizierungen vorgestellt, um herkömmliche Anwendungen und datenintensive Anwendungen in einem einzelnen Datenverarbeitungs-Cluster zu unterstützen. So wird beispielsweise die Datenzuordnung eines Dateisystems so modifiziert, dass ein POSIX-Speicherstack auf der Grundlage von herkömmlichen POSIX-basierten Cluster-Dateisystemen Cloud-Analyse unterstützen kann. In einer Ausführungsform wird ein Dateisystem eines Datenverarbeitungs-Clusters mit einer Auswahl aus großer Block-Granularität für Datenverarbeitungsoperationen zugehörige Daten für datenintensive Anwendungen und kleiner Block-Granularität für Datenzugriffsoperationen zugehörige Daten für herkömmliche Anwendungen ausgestattet. In einer beispielhaften Ausführungsform wird das Reihum-Blockzuordnungsschema des Dateisystems so modifiziert, dass es einen zusammenhängenden Satz von Blöcken, großer Block, als Zuordnungs-Granularität zum Stripen von Daten für eine Datenverarbeitungsoperation verwendet. In einer weiteren beispielhaften Ausführungsform verwendet das Dateisystem die standardmäßige Blockgrößen-Granularität, kleine Blockgröße, intern für alle Datenzugriffsoperationen, die für herkömmliche Anwendungen verwendet werden.
-
11 veranschaulicht einen Datenverarbeitungs-Cluster mit einem Dateisystem, das gemäß einer Ausführungsform unter Verwendung von dynamischer Blockgrößen-Granularität für unterschiedliche Typen von Anwendungen optimiert ist. Der Datenverarbeitungs-Cluster102 umfasst eine Vielzahl von Datenverarbeitungsknoten104a ,104b ...104 , auch als Anwendungsknoten bekannt. In einer beispielhaften Ausführungsform umfasst der Datenverarbeitungs-Cluster102 Hardware-Architektur, die auf Tausende von Datenverarbeitungsknoten104a ,104b ...104n skalieren kann. - Jeder Datenverarbeitungsknoten
104a ,104b ...104n ist mit dem lokal angeschlossenen Speicher106a ,106b ...106n verbunden. So kann der lokal angeschlossene Speicher106a ,106b ...106n beispielsweise physisch intern in einem Datenverarbeitungsknoten104a ,104b ...104n und/oder physisch extern in direkter Verbindung über eine Platteneinheit angeordnet sein. In einer Ausführungsform umfasst der lokal angeschlossene Speicher106a ,106b ...106n eine Speichereinheit, die über einen Schnittstellenstandard direkt mit den Datenverarbeitungsknoten104a ,104b ...104n verbunden ist. Schnittstellenstandards umfassen beispielsweise unter anderem Fiber Channel (FC), Small Computer System Interface (SCSI) oder Integrated Drive Electronics (IDE). In einer beispielhaften Ausführungsform umfasst jeder Datenverarbeitungsknoten104a ,104b ...104n als lokal angeschlossenen Speicher106a ,106b ...106n vier SATA-(Serial Advanced Technology Attachment)Laufwerke über 750 Gigabyte (GB). Der Datenverarbeitungs-Cluster102 umfasst einen Dateisystemmanager108 , der so konfiguriert ist, dass er ein Dateisystem des Datenverarbeitungs-Cluster102 verwalten kann. So können Dateisysteme des Datenverarbeitungs-Cluster102 beispielsweise unter anderem ein General Parallel File SystemTM (GPFSTM) von IBM umfassen. In einer beispielhaften Ausführungsform ist der Dateisystemmanager108 als Software ausgeführt und kann von einem Stand-alone-Knoten in dem Datenverarbeitungs-Cluster102 betrieben werden. - Der Datenverarbeitungs-Cluster
102 umfasst des Weiteren ein gemeinsam genutztes Speicherteilsystem114 . Das gemeinsam genutzte Speicherteilsystem114 kann beispielsweise unter anderem eine Speicherbereichsnetz-Einheit (Storage Area Network, SAN) umfassen. Das gemeinsam genutzte Speicherteilsystem114 ist mit einer Speicherschaltung112 verbunden. Die Datenverarbeitungsknoten104a ,104b ...106 sind für den Zugriff auf das gemeinsam genutzte Speicherteilsystem114 mit der Speicherschaltung112 verbunden. Für ein Verwalten des Dateisystems des Datenverarbeitungs-Cluster102 unter Verwendung des gemeinsam genutzten Speicherteilsystems114 ist der Dateisystemmanager108 mit der Speicherschaltung112 verbunden. Das gemeinsam genutzte Speicherteilsystem114 ist so konfiguriert, dass den Datenverarbeitungsknoten104a ,104b ...104n ein gleichzeitiger Zugriff auf dieselben Daten ermöglicht werden kann. Das gemeinsam genutzte Speicherteilsystem114 ermöglicht das gemeinsame Nutzen von Schreibbandbreite zwischen den Datenverarbeitungsknoten104a ,104b ...104n . In einer Ausführungsform ist das gemeinsam genutzte Speicherteilsystem114 so ausgelegt, dass es die zugrundeliegenden Datenschutzverfahren zur Umgehung von Hardware-Fehlern verwenden kann. So kann das gemeinsam genutzte Speicherteilsystem114 zur Gewährleistung von Datenschutz beispielsweise RAID-(Redundant Array of Inexpensive Disks)Verfahren anwenden. - Der Datenverarbeitungs-Cluster
102 umfasst des Weiteren ein Vermittlungsnetz110 . Das Vermittlungsnetz110 ist so konfiguriert, dass es Komponenten innerhalb des Dateisystems miteinander verbinden kann. In einer Ausführungsform ist das Vermittlungsnetz110 so konfiguriert, dass es die Datenverarbeitungsknoten104a ,104b ...104n und den Dateisystemmanager108 miteinander verbinden kann. In einer beispielhaften Ausführungsform handelt es sich bei dem Vermittlungsnetz110 um eine Gigabit Ethernet-Vermittlungsstelle für jeden Knoten-Gehäuserahmen für einen mit Linux-Software betriebenen Inter-Switch-Link mit 1 Gigabit pro Sekunde (Gb/s). In einer weiteren Ausführungsform ist das Vermittlungsnetz110 des Weiteren so konfiguriert, dass es einem Client-Knoten118 über das Netz116 Zugriff ermöglicht. So umfasst das Netz116 beispielsweise unter anderem ein Weitverkehrsnetz (Wide Area Network, WAN). - In einer Ausführungsform hostet der Datenverarbeitungs-Cluster
102 Daten und Datenverarbeitungsdienste fern für einen Client118 . So ermöglicht der Datenverarbeitungs-Cluster102 beispielsweise Cloud-Datenverarbeitungsdienste zum Hosten von Daten und Datenverarbeitungsdiensten an einem Datenstandort für ferne Clients. In einer beispielhaften Ausführungsform ist der Datenverarbeitungs-Cluster102 so konfiguriert, dass er das Ausführen von Datenanalyse-Anwendungen und das Speichern von den Datenanalyse-Anwendungen zugehörigen Daten über das Netz116 fern für einen Client(s)118 hosten kann. Dementsprechend ermöglicht der Datenverarbeitungs-Cluster102 Parallelverarbeitung und Skalierbarkeit in einer Cloud, um datenintensive Anwendungen mit großen Datensätzen auszuführen. Datenintensive Anwendungen umfassen zum Beispiel Datenanalyse-Anwendungen, die große Datenverarbeitungstasks in einen Satz kleinerer parallel ablaufender Verarbeitungsoperationen zerlegt. -
2 veranschaulicht einen Ablaufplan eines Verfahrens200 zum Optimieren eines Dateisystems für unterschiedliche Typen von Anwendungen in einem Datenverarbeitungs-Cluster unter Verwendung dynamischer Blockgrößen-Granularität gemäß einer Ausführungsform. Bei202 reserviert der Dateisystemmanager108 eine vordefinierte Anzahl von Speicherzuordnungsbereichen, die für jeden Datenverarbeitungsknoten104a ,104b ...104n in dem Cluster102 einen Satz von zusammenhängenden Datenblöcken auf einer einzelnen Speicherplatte des lokal angeschlossenen Speichers106a ,106b ...106n umfassen. In einer Ausführungsform führt der Dateisystemmanager108 frühzeitig einen Prefetch bzw. Vorabruf an einem Pool aus zusammenhängenden Speicherzuordnungsbereichen für jeden Datenverarbeitungsknoten104a ,104b ...104n in dem Datenverarbeitungs-Cluster102 durch. Das frühzeitige Vorabrufen eines Pool aus zusammenhängenden Speicherzuordnungsbereichen verhindert beispielsweise Netzlatenz und daraus resultierende Auswirkungen auf die Anwendungsleistung. Dementsprechend besitzt jeder Datenverarbeitungsknoten104a ,104b ...104n einen betriebsbereiten Pool aus zusammenhängenden Speicherzuordnungsbereichen und erfährt keine Netzlatenz im Pfad einer Eingabe/Ausgabe-Aufforderung. - In einer beispielhaften Ausführungsform ist die vordefinierte Anzahl reservierter Speicherzuordnungsbereiche für jeden Datenverarbeitungsknoten
104a ,104b ...104n in dem Datenverarbeitungs-Cluster102 zehn (10). Das Dateisystem ruft beispielsweise vorab einen Pool aus zehn Speicherzuordnungsbereichen, die einen zusammenhängenden Satz aus Datenblöcken umfassen, für jeden Datenverarbeitungsknoten104a ,104b ...104n in dem Datenverarbeitungs-Cluster102 ab. In anderen Ausführungsformen kann sich die Anzahl an Speicherzuordnungsbereichen für jeden Knoten104a ,104b ...104n in dem Cluster102 unter anderem zwischen 5 und 200 Speicherzuordnungsbereichen bewegen. - Die vordefinierte Anzahl reservierter Speicherzuordnungsbereiche kann für jeden Datenverarbeitungsknoten
104a ,104b ...104n in dem Cluster102 in Abhängigkeit davon, wie dicht die Datenblöcke benachbart sind, von dem Typ der in dem Cluster102 unterstützten Anwendung, dem verwendeten Dateisystem und den Leistungsanforderungen der Anwendungen in dem Datenverarbeitungs-Cluster102 in unterschiedlichen Bereichen liegen. - Bei
204 verwendet der Dateisystemmanager108 einen zusammenhängenden Satz aus Datenblöcken auf einer einzelnen Speicherplatte des lokal angeschlossenen Speichers106a ,106b ...106n als Blockzuordnungs-Granularität eines Dateisystems zum Stripen von Daten, die für eine Datenverarbeitungsoperation von einem Datenverarbeitungsknoten104a ,104b ...104n in dem Datenverarbeitungs-Cluster102 in dem Dateisystem gespeichert werden sollen. In einer Ausführungsform verwendet der Dateisystemmanager108 den zusammenhängenden Satz aus Datenblöcken auf einer einzelnen Speicherplatte des lokal angeschlossenen Speichers106a ,106b ...106n , große Datenblöcke oder große Blockgrößen-Granularität als Zuordnungs-Granularität zum Zuordnen von Daten, die für eine Datenverarbeitungsoperation von einem Datenverarbeitungsknoten104a ,104b ...104n in dem Datenverarbeitungs-Cluster102 gespeichert werden sollen. So verwendet der Dateisystemmanager108 die große Blockgrößen-Granularität beispielsweise zum Zuordnen von für eine Datenverarbeitungsoperation zu speichernden Daten, da geringe Blockgrößen für datenintensive Anwendungen zu einem hohen Task-Aufwand führen. Dementsprechend werden die Datenzuordnungs- und Datenlayout-Informationen des Dateisystems im Sinne einer Verwendung großer Blockgrößen-Granularität modifiziert, um die Anforderungen von datenintensiven Anwendungen zu erfüllen. - Die Blockgrößen-Granularität eines einzelnen Blockes kann variieren. Die Standard-Blockgröße eines einzelnen Blockes kann sich je nach Leistungsanforderungen und Abwägungen sowie dem verwendeten Dateisystem in unterschiedlichen Bereichen bewegen. Beispielsweise kann die Blockgrößen-Granularität eines einzelnen Blockes unter anderem zwischen 8 KB und 16 MB liegen. In einer beispielhaften Ausführungsform beträgt die Blockgrößen-Granularität eines einzelnen Blockes 1 MB. Datenblöcke mit einer festen Größe von 1 MB verhindern beispielsweise eine Fragmentierung in einem Dateisystem, sie erhalten eine optimale sequenzielle Lese- und Schreibleistung aufrecht und ermöglichen Lokalität auf Knotenebene. In anderen beispielhaften Ausführungsformen liegt die Blockgrößen-Granularität eines einzelnen Blockes zwischen 256 KB und 512 KB.
- In einer Ausführungsform sind die Speicherzuordnungsbereiche zum Stripen von Daten, die für eine Datenverarbeitungsoperation in dem Dateisystem gespeichert werden sollen, in einer vordefinierten Größe zusammenhängend. So können beispielsweise die Speicherzuordnungsbereiche zum Stripen von Daten, die für eine Datenverarbeitungsoperation in dem Dateisystem gespeichert werden sollen, unter anderem zwischen 8 MB und 256 MB zusammenhängend sein. In einer beispielhaften Ausführungsform werden 64 1-MB-Blöcke in einen 64-MB-Speicherzuordnungsbereich zum Stripen von Daten gruppiert, die für eine Datenverarbeitungsoperation in dem Dateisystem gespeichert werden sollen. Bei der großen Blockgrößen-Granularität zum Stripen von Daten, die für eine Datenverarbeitungsoperation in dem Dateisystem gespeichert werden sollen, handelt es sich beispielsweise um einen 64-MB-Datenblock, der 64 aufeinanderfolgende einzelne 1-MB-Datenblöcke umfasst. In anderen Ausführungsformen kann die Blockgrößen-Granularität zum Stripen von Daten, die für eine Datenverarbeitungsoperation in dem Dateisystem gespeichert werden sollen, je nach dem verwendeten Dateisystem und den Leistungsanforderungen der Anwendung variieren.
- Zum Speichern von Daten für Datenverarbeitungsoperationen verwendet der Dateisystemmanager
108 eher lokal angeschlossene Speicher106a ,106b ...106n eines jeden Datenverarbeitungsknotens104a ,104b ...104n in dem Datenverarbeitungs-Cluster102 als ein gemeinsam genutztes Speicherteilsystem. Der lokal angeschlossene Speicher106a ,106b ...106n wird beispielsweise aufgrund der niedrigen Kosten des lokal angeschlossenen Speichers106a ,106b ...106n und der Bandbreitenbeschränkungen des gemeinsam genutzten Speicherteilsystems114 zum Speichern von Daten für Datenverarbeitungsoperationen verwendet. Die Speicherebene für datenintensive Anwendungen wird beispielsweise aus Produktkomponenten und lokal angeschlossenen Speichern106a ,106b hergestellt, um Speicherkosten zu verringern und den Datenverarbeitungs-Cluster102 bis auf Tausende von Datenverarbeitungsknoten104a ,104b ...104n skalierbar zu gestalten, so dass in hohem Maße parallelisierte Anwendungen große Mengen von Daten verarbeiten können. Des Weiteren wird die Speicherebene für datenintensive Anwendungen unter Verwendung des lokal angeschlossenen Speichers106a ,106b ...106n gebaut, um durch die Fähigkeit, Datenverarbeitungsoperationen anstatt Daten weiterzugeben, große Dateien effizient zu unterstützen, die für datenintensive Anwendungen allgemein typisch sind. - In einer beispielhaften Ausführungsform führen die Datenverarbeitungsknoten
104a ,104b ...104n die datenintensive Klasse von Anwendungen aus und unterstützen diese, von denen die Datenverarbeitungsoperationen initiiert werden. In einer Ausführungsform umfasst die datenintensive Klasse von Anwendungen unter anderem Anwendungen, die große Datenverarbeitungsoperationen in Sätze kleinerer Datenverarbeitungsoperationen zerlegen, welche parallel verarbeitet werden können. Ein typisches Leistungsmerkmal bei datenintensiven Anwendungen besteht darin, dass eine Parallelverarbeitung möglich ist und ihre Bandbreitenanforderungen für den Datenzugriff Vorrang gegenüber anderen Ressourcen-Anforderungen besitzen. So unterstützen datenintensive Anwendungen beispielsweise den Vorgang des Zerlegens von (einer) Datenverarbeitungsoperation(en)in kleinere parallel verarbeitbare Datenverarbeitungsoperationen innerhalb eines partitionierten Datensatzes unter Verwendung von Zuordnungs- und Reduzierfunktionen über Schlüssel/Wert-Paare, die dann parallel verarbeitet und auf großen Datenverarbeitungsknoten104a ,104b ...104n in einem Datenverarbeitungs-Cluster102 ausgeführt werden können. - In einer beispielhaften Ausführungsform umfassen die datenintensiven Anwendungen auf Cloud-Computing beruhende Analyseanwendungen. So umfassen auf Cloud-Computing beruhende Analyseanwendungen unter anderem beispielsweise wissenschaftliche Anwendungen, die große Mengen sich kontinuierlich ändernder Daten, unter anderem bei Musterabgleichanwendungen für Satellitenbilder, Anwendungen zum Erkennen biologischer Funktionen anhand von Genomsequenzen, Anwendungen für anhand von Teleskopbildern abgeleiteten astronomischen Daten sowie für Gehirnmuster unter Verwendung der Daten der Magnetresonanz-Bilddarstellung (MR-Bilddarstellung), verarbeiten. In einer weiteren Ausführungsform umfassen die datenintensiven Anwendungen des Weiteren Internet-Datenverarbeitungsanwendungen wie beispielsweise Websuche-Anwendungen sowie Anwendungen zu Datenindexierung und Data-Mining.
- Bei
206 ordnet der Dateisystemmanager108 Daten für eine Datenverarbeitungsoperation wenigstens einem der reservierten Speicherzuordnungsbereiche zu. In einer Ausführungsform implementiert der Dateisystemmanager108 das Stripen von Daten innerhalb des Dateisystems, wobei große Dateien in Blöcke gleicher Größe unterteilt werden, und aufeinanderfolgende Blöcke reihum auf unterschiedliche Platten platziert werden. In einer beispielhaften Ausführungsform stript das Dateisystem mittels Wide-Striping reihum den zusammenhängenden Satz an Datenblöcken innerhalb des lokal angeschlossenen Speichers106a ,106b ...106n . Zu den Striping-Verfahren gehören beispielsweise unter anderem Wide-Striping, Narrow-Striping und No-Striping. - Bei
208 reserviert der Dateisystemmanager108 wenigstens einen zusätzlichen Speicherzuordnungsbereich so lange, bis eine Gesamtanzahl reservierter Speicherzuordnungsbereiche für einen Datenverarbeitungsknoten104a ,104b ...104n einem vordefinierten Schwellenwert entspricht, wenn die Gesamtanzahl der reservierten Speicherzuordnungsbereiche für den Datenverarbeitungsknoten104a ,104b ...104n kleiner als der vordefinierte Schwellenwert ist. In einer Ausführungsform reserviert der Dateisystemmanager108 wenigstens einen zusätzlichen Speicherzuordnungsbereich, der einen Satz von zusammenhängenden Datenblöcken auf einer einzelnen Speicherplatte des lokal angeschlossenen Speichers106a ,106b ...106n für einen Datenverarbeitungsknoten umfasst, so lange, bis eine Gesamtanzahl reservierter Speicherzuordnungsbereiche für den Knoten104a ,104b ...104n dem vordefinierten Schwellenwert entspricht. So reserviert der Dateisystemmanager108 beispielsweise einen zusätzlichen Speicherzuordnungsbereich, der einen zusammenhängenden Satz von Datenblöcken für einen Datenverarbeitungsknoten104a ,104b ...104n in dem Datenverarbeitungs-Cluster102 umfasst, wenn die Pool-Kardinalität für den Datenverarbeitungsknoten104a ,104b ...104n weniger als 10 beträgt. - Bei
210 sendet der Dateisystemmanager108 eine Datenverarbeitungsoperation an einen Datenverarbeitungsknoten104a ,104b ...104n in dem Datenverarbeitungs-Cluster102 zusammen mit Daten für die Datenverarbeitungsoperation, die dem lokal angeschlossenen Speicher106a ,106b ...106n des Datenverarbeitungsknotens104a ,104b ...104n zugeordnet ist. In einer Ausführungsform werden Datenverarbeitungsoperationen und Tasks an den Datenverarbeitungsknoten104a ,104b ...104n gesendet, wo die Daten für die Datenverarbeitungsoperation liegen. Durch das Senden von Datenverarbeitungs-Tasks an Daten wird beispielsweise der Netzaufwand verringert, wodurch Datenverarbeitungsoperationen schneller abgewickelt werden können. In einer beispielhaften Ausführungsform werden in dem Dateisystem Datenverarbeitungs-Tasks am selben Standort wie Daten platziert, indem unter Verwendung des Systemaufrufs ioctl des Dateisystems den Anwendungen Blockstandort-Informationen des Dateisystems übergeben werden. Dementsprechend verwendet der Dateisystemmanager108 Blockstandort-Informationen zum Senden der Datenverarbeitungs-Task an einen Datenverarbeitungsknoten104a ,104b ...104n mit dem lokal angeschlossenen Speicher106a ,106b ...106n , wo die der Datenverarbeitungs-Task zugehörigen Daten liegen. - Bei
212 repliziert der Dateisystemmanager108 jeden zusammenhängenden Satz an Datenblöcken, die dem lokal angeschlossenen Speicher106a ,106b ...106n des Datenverarbeitungsknotens104a ,104b ...104n zugeordnet sind, auf den lokal angeschlossenen Speicher106a ,106b ...106n von wenigstens einem zusätzlichen Datenverarbeitungsknoten104a ,104b ...104n in dem Datenverarbeitungs-Cluster102 . Datenintensive Anwendungen müssen beispielsweise in der Lage sein, sich nach Störungen in den zugrundeliegenden Produktkomponenten wiederherzustellen. Dementsprechend müssen datenintensive Anwendungen in der Lage sein, sich bei Auftreten von mehreren Knoten- und Plattenfehlern wiederherzustellen und fortzufahren, wobei Replizieren von Daten zwischen einer Vielzahl von Knoten erforderlich ist, so dass bei Auftreten eines Knoten- oder Plattenfehlers die Datenverarbeitung auf einem anderen Knoten neugestartet werden kann. Wenn in einer Ausführungsform ein Knoten mit einer Datenverarbeitungsoperation einen Fehler aufweist, wird die Datenverarbeitungsoperation auf einem zweiten Knoten erneut gestartet, wo der Datenverarbeitungsoperation zugehörige Daten repliziert sind. - Der Replikationsmechanismus kann je nach Dateisystem und den verwendeten Cluster-Komponenten variieren. In einer beispielhaften Ausführungsform verwendet das Dateisystem ein Zentral-(„single source”)Replikationsmodell, bei dem der Schreiber Kopien an alle Replikate sendet. In einer weiteren beispielhaften Ausführungsform wendet das Dateisystem Pipeline-Replikation an, bei der die Ausgangs-Bandbreite beim Schreiber nicht gemeinsam von mehreren Strömen genutzt wird und beim Schreiben von Daten in dem Knoten Schreibdaten sequenziell von einem Knoten zum nächsten Knoten in der Pipeline übertragen werden.
- Bei
214 verwendet der Dateisystemmanager108 einen einzelnen Datenblock des gemeinsam genutzten Speichersteilsystems als Blockzuordnungs-Granularität des Dateisystems zum Stripen von Daten, die für eine Datenzugriffsoperation von einem Datenverarbeitungsknoten104a ,104b ...104n in dem Datenverarbeitungs-Cluster102 in dem Dateisystem gespeichert werden sollen. In einer Ausführungsform verwendet der Dateisystemmanager108 einen einzelnen Datenblock des gemeinsam genutzten Speicherteilsystems114 , kleine Blöcke, als Blockzuordnungs-Granularität zum Zuordnen von Daten für herkömmliche Anwendungen. In einer beispielhaften Ausführungsform verwendet der Dateisystemmanager108 gleichzeitig ausführende Schreiber zum Schreiben in dieselbe Datei, wodurch das gemeinsame Nutzen von Schreibbandbreite von einer Vielzahl von Knoten für herkömmliche Anwendungen ermöglicht wird. - In einer beispielhaften Ausführungsform verwendet der Dateisystemmanager
108 einen einzelnen Datenblock des gemeinsam genutzten Speicherteilsystems114 für Datenzugriffsoperationen herkömmlicher Anwendungen zur wirksamen Cachespeicher-Verwaltung und zur Verringerung des Aufwandes für Vorabrufe, da Anwendungsdatensätze mehrere Blöcke auf unterschiedlichen Platten umfassen können. So können beispielsweise interne Datenzugriffsoperationen unter anderem eine Buchhaltungsoperation, eine Datenübertragungsoperation, eine Cachespeicher-Verwaltungsoperation und eine Prefetch-Operation umfassen. Dementsprechend verwendet der Dateisystemmanager108 für Plattenzugriffs- und Prefetch-Operationen, die für herkömmliche Anwendungen optimiert sind, eine kleine Blockgrößen-Granularität. Bei216 ordnet der Dateisystemmanager108 Daten für die Datenzugriffsoperation von einem Datenverarbeitungsknoten104a ,104b ...104n dem gemeinsam genutzten Speicherteilsystem114 zu. - Bei
218 verfolgt der Dateisystemmanager108 einen Ort eines jeden Datenblockes, der dem gemeinsam genutzten Speichersystem114 und dem lokal angeschlossenen Speicher106a ,106b ...106n zugeordnet ist, für jeden Datenverarbeitungsknoten104a ,104b ...104n in dem Datenverarbeitungs-Cluster102 . In einer Ausführungsform verwendet der Dateisystemmanager108 eine Zuordnungsübersicht zum Verfolgen des Ortes von Daten, die dem gemeinsam genutzten Speichersystem114 und dem lokal angeschlossenen Speicher106a ,106b ...106n zugeordnet sind, für jeden Datenverarbeitungsknoten104a ,104b ...104n in dem Datenverarbeitungs-Cluster102 . In einer Ausführungsform gewährt der Dateisystemmanager108 jedem Datenverarbeitungsknoten104a ,104b ...104n in dem Datenverarbeitungs-Cluster102 Zugriff auf die Zuordnungsübersicht. So verwendet ein Datenverarbeitungsknoten104a ,104b ...104n die Zuordnungsübersicht beispielsweise, um den Ort eines jeden Blockes zu bestimmen, der dem gemeinsam genutzten Speichersystem114 und dem lokal angeschlossenen Speicher106a ,106b ...106n zugeordnet ist. - In einer Ausführungsform wird die Zuordnungsübersicht in eine große Anzahl von sperrbaren Zuordnungsbereichen unterteilt, n Bereiche für n Datenverarbeitungs-Cluster
102 , um parallel ablaufende Aktualisierungen am Zuordnungs-Bitmap zu ermöglichen. In einer beispielhaften Ausführungsform enthält jeder Bereich in der Zuordnungsübersicht den Zuordnungsstatus des n-ten der Plattenblöcke auf jeder Platte in dem Cluster-Dateisystem102 und, jeder Datenverarbeitungsknoten104a ,104b ...104n besitzt zu jedem beliebigen Zeitpunkt x Bereiche und versucht unter Verwendung dieser Bereiche allen Zuordnungsaufforderungen nachzukommen. So kann das Dateisystem beispielsweise anhand des Bitmap-Layouts Plattenplatz zuordnen, der auf geeignete Weise zwischen allen Platten gestript wird, indem pro Mal jeweils nur auf einen einzelnen Zuordnungsbereich zugegriffen wird. Auf diese Weise werden Sperrkonflikte minimiert, da ein Datenverarbeitungsknoten104a ,104b ...104n Platz aus unterschiedlichen Bereichen zuordnen kann. -
3 veranschaulicht in Blockform ein Zuordnungsschema zum Stripen von Daten, die für eine Datenverarbeitungsoperation in einem Datenverarbeitungs-Cluster in dem Dateisystem gespeichert werden sollen, gemäß einer Ausführungsform. In einer Ausführungsform verwendet das Zuordnungsschema in Blockform einen zusammenhängenden Satz von Blöcken auf einer einzelnen Speicherplatte des lokal angeschlossenen Speichers106a ,106b ...106n als Blockzuordnungs-Granularität zum Zuordnen von Daten, die für eine Datenverarbeitungsoperation von einem Datenverarbeitungsknoten104a ,104b ...104 in dem Datenverarbeitungs-Cluster102 gespeichert werden sollen. - Es wird eine Vielzahl von Speicherplatten
302a ,302b ...302n des lokal angeschlossenen Speichers106a ,106b ...104n veranschaulicht. Eine Datei304 wird in eine Vielzahl von Datenblöcken fester Größe unterteilt. In einer beispielhaften Ausführungsform wird die Datei304 in eine Vielzahl von 1-MB-Datenblöcken unterteilt. Die Vielzahl von einzelnen 1-MB-Datenblöcken wird in eine Vielzahl von zusammenhängenden Datenblocksätzen gruppiert. So werden beispielsweise 64 zusammenhängende Datenblöcke mit fester Größe von 1 MB in eine Vielzahl von 64-MB-Datenblocksätzen für eine Nachbarschaft von 64 MB gruppiert. Reihum wird jeder einzelne 64-MB-Datenblocksatz einer einzelnen Platte des lokal angeschlossenen Speichers106a ,106b ...106n zugeordnet. - So wird beispielsweise der zusammenhängende Satz aus Datenblöcken
306a der einzelnen Speicherplatte302a des lokal angeschlossenen Speichers106a ,106b ...106n zugeordnet. Der zusammenhängende Satz aus Datenblöcken306a wird der einzelnen Speicherplatte302a des lokal angeschlossenen Speichers106a ,106b ...106n zugeordnet. Der zusammenhängende Satz aus Datenblöcken306b wird der einzelnen Speicherplatte302b des lokal angeschlossenen Speichers106a ,106b ...106n zugeordnet. Der zusammenhängende Satz aus Datenblöcken306c wird der einzelnen Speicherplatte302c des lokal angeschlossenen Speichers106a ,106b ...106n zugeordnet. Der zusammenhängende Satz aus Datenblöcken306n wird der einzelnen Speicherplatte302n des lokal angeschlossenen Speichers106a ,106b ...106n zugeordnet. - Der zusammenhängende Satz aus Datenblöcken
308a wird der einzelnen Speicherplatte302a des lokal angeschlossenen Speichers106a ,106b ...106n zugeordnet. Der zusammenhängende Satz aus Datenblöcken308b wird der einzelnen Speicherplatte302b des lokal angeschlossenen Speichers106a ,106b ...106n zugeordnet. Der zusammenhängende Satz aus Datenblöcken308c wird der einzelnen Speicherplatte308c des lokal angeschlossenen Speichers106a ,106b ...106n zugeordnet. Der zusammenhängende Satz aus Datenblöcken308n wird der einzelnen Speicherplatte302n des lokal angeschlossenen Speichers106a ,106b ...106n zugeordnet. - Der zusammenhängende Satz aus Datenblöcken
310a wird der einzelnen Speicherplatte302a des lokal angeschlossenen Speichers106a ,106b ...106n zugeordnet. Der zusammenhängende Satz aus Datenblöcken310b wird der einzelnen Speicherplatte302b des lokal angeschlossenen Speichers106a ,106b ...106n zugeordnet. Der zusammenhängende Satz aus Datenblöcken310c wird der einzelnen Speicherplatte302c des lokal angeschlossenen Speichers106a ,106b ...106n zugeordnet. Der zusammenhängende Satz aus Datenblöcken306n wird der einzelnen Speicherplatte310n des lokal angeschlossenen Speichers106a ,106b ...106n zugeordnet. -
4 veranschaulicht ein Zuordnungsschema in Blockform zum Stripen von Daten, die für eine Datenzugriffsoperation in einem Datenverarbeitungs-Cluster102 in dem Dateisystem gespeichert werden sollen, gemäß einer Ausführungsform. In einer beispielhaften Ausführungsform verwendet der Dateisystemmanager108 einen einzelnen Block auf einer einzelnen Speicherplatte des gemeinsam genutzten Speicherteilsystems114 als Blockzuordnungs-Granularität zum Zuordnen von Daten für Datenzugriffsoperationen, die für herkömmliche Anwendungen verwendet werden. Die Datenzugriffsoperationen umfassen beispielsweise interne Buchhaltungsoperationen, Datenübertragungsoperationen, Cachespeicher-Verwaltungsoperationen und Prefetch-Operationen, die für herkömmliche Anwendungen optimiert sind. Eine Datei404 wird in eine Vielzahl von Datenblöcken fester Größe unterteilt. In einer beispielhaften Ausführungsform wird die Datei404 in eine Vielzahl von 1-MB-Datenblöcken unterteilt. Reihum wird jeder einzelne 1-MB-Datenblocksatz einer einzelnen Platte des gemeinsam genutzten Speicherteilsystems114 zugeordnet. So wird beispielsweise Datenblock406a einer einzelnen Speicherplatte402a des gemeinsam genutzten Speicherteilsystems114 zugeordnet. Datenblock406a wird der Speicherplatte402a , Datenblock406b der Speicherplatte402b , Datenblock406c der Speicherplatte402c und Datenblock406n wird der Speicherplatte402n des gemeinsam genutzten Speicherteilsystems114 zugeordnet. Datenblock408a wird der Speicherplatte402a , Datenblock408b der Speicherplatte402b , Datenblock408c der Speicherplatte402c , und Datenblock408n wird der Speicherplatte402n des gemeinsam genutzten Speicherteilsystems114 zugeordnet. Datenblock410a wird der Speicherplatte402a , Datenblock410b der Speicherplatte402b , Datenblock410c der Speicherplatte402c und Datenblock410n wird der Speicherplatte402n des gemeinsam genutzten Speicherteilsystems114 zugeordnet. - Datenblock
412a wird der Speicherplatte402a , Datenblock412b der Speicherplatte402b , Datenblock412c der Speicherplatte402c und Datenblock412n wird der Speicherplatte402n des gemeinsam genutzten Speicherteilsystems114 zugeordnet. Datenblock414a wird der Speicherplatte402a , Datenblock414b der Speicherplatte402b , Datenblock414c der Speicherplatte402c und Datenblock414n wird der Speicherplatte402n des gemeinsam genutzten Speicherteilsystems114 zugeordnet. Datenblock416a wird der Speicherplatte402a , Datenblock416b der Speicherplatte402b , Datenblock416c der Speicherplatte402c , und Datenblock416n wird der Speicherplatte402n des gemeinsam genutzten Speicherteilsystems114 zugeordnet. -
5 veranschaulicht ein Blockschaltbild eines Systems, in dem ein Verfahren zum Optimieren eines Dateisystems für unterschiedliche Typen von Anwendungen in einem Datenverarbeitungs-Cluster unter Verwendung von dynamischer Blockgrößen-Granularität implementiert werden kann, gemäß einer Ausführungsform. Das System500 umfasst eine oder mehrere Client-Einheiten501 , die mit einem oder mehreren Server-Datenverarbeitungssystemen530 verbunden sind. Ein Server530 umfasst einen Bus502 oder einen anderen Übertragungsmechanismus zum Übertragen von Daten, sowie einen Prozessor (CPU)504 , der zum Verarbeiten von Daten mit dem Bus502 verbunden ist. Der Server530 umfasst darüber hinaus einen Hauptspeicher506 wie zum Beispiel einen Arbeitsspeicher (RAM) oder eine andere dynamische Speichereinheit, die zum Speichern von Daten und von durch den Prozessor504 auszuführenden Anweisungen mit dem Bus502 verbunden ist. Der Hauptspeicher506 kann auch zum Speichern von temporären Variablen oder anderen Zwischeninformationen während der Ausführung oder bei von dem Prozessor504 auszuführenden Anweisungen verwendet werden. - Das Server-Datenverarbeitungssystem
530 umfasst des Weiteren einen Nur-Lese-Speicher (ROM) oder eine andere statische Speichereinheit, die zum Speichern statischer Daten und von dem Prozessor504 auszuführender Anweisungen mit dem Bus502 verbunden ist. Es wird eine Speichereinheit510 wie beispielsweise eine Magnetplatte oder eine optische Platte bereitgestellt und zum Speichern von Daten und Anweisungen mit dem Bus502 verbunden. Der Bus502 kann beispielsweise zweiunddreißig Adresszeilen zum Adressieren von Videospeicher oder Hauptspeicher506 enthalten. Der Bus502 kann beispielsweise auch einen 32-Bit-Datenbus zum Übertragen von Daten zwischen und unter den Komponenten, so zum Beispiel der CPU504 , dem Hauptspeicher506 , dem Videospeicher und dem Speicher510 umfassen. Alternativ dazu können Multiplexdaten/Adress-Zeilen anstelle separater Daten- und Adresszeilen verwendet werden. - Zum Anzeigen von Informationen für einen Computernutzer kann der Server
530 über den Bus502 mit einer Anzeige512 verbunden sein. Eine Eingabeeinheit514 , die alphanumerische und andere Tasten umfasst, ist zum Übertragen von Informationen und Befehlsauswahlen an den Prozessor504 mit dem Bus502 verbunden. Ein weiterer Typ von Benutzereingabeeinheit umfasst eine Cursorsteuerung516 wie zum Beispiel eine Maus, einen Trackball oder Cursorrichtungstasten zum Übertragen von Richtungsinformationen und Befehlsauswahlen an den Prozessor504 sowie zum Steuern der Cursorbewegung auf der Anzeige512 . - Die Funktionen der Erfindung werden durch den Server
530 in Reaktion auf den Prozessor504 umgesetzt, der eine oder mehrere Sequenzen einer oder mehrerer in dem Hauptspeicher506 enthaltenen Anweisungen ausführt. Solche Anweisungen können von einem anderen von einem Computer lesbaren Medium wie beispielsweise der Speichereinheit510 in den Hauptspeicher506 gelesen werden. Die Ausführung der Sequenzen von in dem Hauptspeicher506 enthaltenen Anweisungen veranlasst den Prozessor504 zum Durchführen der hierin beschriebenen Schritte des Verfahrens. Es können ein oder auch mehrere Prozessoren in einer Multi-Processing-Anordnung zum Ausführen der Sequenzen der in dem Hauptspeicher506 enthaltenen Anweisungen verwendet werden. In alternativen Ausführungsformen kann anstelle von oder in Kombination mit Software-Anweisungen auch eine fest verdrahtete Schaltung zum Umsetzen der Erfindung verwendet werden. Dementsprechend sind die Ausführungsformen der Erfindung nicht auf irgendeine spezifische Kombination aus Hardware-Schaltung und Software beschränkt. - Es können unterschiedliche Formen von durch Computer lesbaren Medien am Übertragen einer oder mehrerer Sequenzen einer oder mehrerer Anweisungen an den Prozessor
504 zur Ausführung beteiligt sein. So können die Anweisungen beispielsweise anfänglich auf eine Magnetplatte eines fernen Computers übertragen werden. Der ferne Computer kann die Anweisungen in seinen dynamischen Speicher laden und sie über eine Telefonleitung unter Verwendung eines Modems senden. Ein lokal an den Server530 angeschlossener Modem kann die Daten auf der Telefonleitung empfangen und einen Infrarotsender zum Umwandeln der Daten in ein Infrarotsignal verwenden. Ein mit dem Bus502 verbundener Infrarotdetektor kann die in dem Infrarotsignal übertragenen Daten empfangen und die Daten auf dem Bus502 platzieren. Der Bus502 überträgt die Daten an den Hauptspeicher506 , von dem der Prozessor504 die Anweisungen abruft und ausführt. Die von dem Hauptspeicher empfangenen Anweisungen können optional auf der Speichereinheit510 entweder vor oder nach Ausführung durch den Prozessor504 gespeichert werden. - Der Server
530 umfasst darüber hinaus eine Datenübertragungsschnittstelle518 , die mit dem Bus502 verbunden ist. Die Datenübertragungsschnittstelle518 liefert eine 2-Wege-Datenübertragungsverbindung zu einer Netzwerkverbindung520 , die mit dem weltweiten Paketdatenübertragungsnetzwerk, mittlerweile weitläufig als Internet528 bezeichnet, verbunden ist. Das Internet528 verwendet elektrische, elektromagnetische oder optische Signale, die digitale Datenströme übertragen. Die Signale durch die verschiedenen Netzwerken und die Signale über die Netzwerkverbindung520 sowie über die Datenübertragungsschnittstelle518 , die die digitalen Daten zu und von dem Server530 übertragen, sind beispielhafte Formen von Daten übertragenden Trägerwellen. - In einer weiteren Ausführungsform des Servers
530 ist die Schnittstelle518 über eine Datenübertragungsverbindung520 mit einem Netz522 verbunden. Die Datenübertragungsschnittstelle518 kann beispielsweise eine ISDN-(Integrated Services Digital Network)Karte oder ein Modem sein, um einem entsprechenden Typ von Telefonleitung eine Datenübertragungsverbindung bereitzustellen, die einen Teil der Netzwerkverbindung520 umfassen kann. Als ein weiteres Beispiel kann die Datenübertragungsschnittstelle518 eine LAN-(Local Area Network)Karte sein, um einem kompatiblen lokalen Netz (LAN) eine Datenübertragungsverbindung bereitzustellen. In jeder beliebigen solcher Implementierungen sendet und empfängt die Datenübertragungsschnittstelle518 elektrische, elektromagnetische oder optische Signale, die digitale Datenströme übertragen, welche unterschiedliche Typen von Informationen darstellen. - Die Netzwerkverbindung
520 stellt Datenübertragung üblicher über ein oder mehrere Netze an andere Dateneinheiten bereit. So kann die Netzwerkverbindung520 beispielsweise eine Verbindung über das lokale Netz522 zu einem Host-Computer524 oder zu Datengeräten bereitstellen, die von einem Internet-Service-Provider (ISP)526 betrieben werden. Der ISP526 stellt im Gegenzug Datenübertragungsleistungen über das Internet528 bereit. Sowohl das lokale Netz522 als auch das Internet528 verwenden elektrische, elektromagnetische oder optische Signale, die digitale Datenströme übertragen. Die Signale über die verschiedenen Netzen und die Signale auf der Netzwerkverbindung520 und über der Datenübertragungsschnittstelle518 , die die digitalen Daten zu und von dem Server530 übertragen, sind beispielhafte Formen von Informationen übertragenden Trägerwellen. - Der Server
530 kann Nachrichten und Daten, unter anderem eMails und Programmcode, über das Netz, die Netzwerkverbindung520 und die Datenübertragungsschnittstelle518 senden/empfangen. Darüber hinaus kann die Datenübertragungsschnittstelle518 einen USB/Tuner umfassen, und bei der Netzwerkverbindung520 kann es sich um eine Antenne oder ein Kabel zum Verbinden des Servers530 mit einem Kabelbetreiber, Satellitenbetreiber oder anderem terrestrischen Übertragungssystem zum Empfangen von Nachrichten, Daten und Programmcodes von einer anderen Quelle handeln. - Die hierin beschriebenen beispielhaften Versionen der Erfindung können als Logikoperationen in einem verteilten Verarbeitungssystem wie beispielsweise dem die Server
530 umfassenden System500 implementiert werden. Die Logikoperationen der vorliegenden Erfindung können als Sequenz von Schritten, die in dem Server530 ausgeführt werden und als miteinander verbundene Module innerhalb des Systems500 implementiert sein. Die Implementierung hängt von der jeweiligen Wahl und möglicherweise auch von der Leistung des Systems500 ab, mit dem die Erfindung umgesetzt wird. Dementsprechend werden die Logikoperationen, die die beispielhaften Versionen der Erfindung ausmachen, zum Beispiel als Operationen, Schritte oder Module bezeichnet. - Ähnlich wie bei einem vorstehend beschriebenen Server
530 kann eine Client-Einheit531 einen Prozessor, einen Speicher, eine Speichereinheit, eine Anzeige, eine Eingabeeinheit und eine Datenübertragungsschnittstelle (beispielsweise eMail-Schnittstelle) zum Verbinden der Client-Einheit mit dem Internet528 , dem ISP526 oder dem lokalem Netz (LAN)522 zum Datenaustausch mit den Servern530 umfassen. - Das System
500 kann des Weiteren Computer (z. B. Personal Computer, Datenverarbeitungsknoten)505 umfassen, die auf gleiche Weise wie Client-Einheiten501 arbeiten, wobei ein Benutzer einen oder mehrere Computer505 zum Verwalten von Daten in dem Server530 verwenden kann. - Im Allgemeinen bezieht sich der Begriff „von einem Computer lesbares Medium” in seiner hierin verwendeten Form auf jedes beliebige Medium, das bei der Bereitstellung von Anweisungen zur Ausführung durch den Prozessor
504 beteiligt ist. Solch ein Medium kann auf vielerlei Weise ausgebildet sein, unter anderem als nichtflüchtiges Medium, flüchtiges Medium und Übertragungsmedium. Zu nichtflüchtigen Medien gehören beispielsweise optische oder magnetische Platten wie zum Beispiel die Speichereinheit510 . Zu flüchtigen Medien zählen dynamische Speicher wie zum Beispiel der Hauptspeicher506 . Übertragungsmedien beinhalten Koaxialkabel, Kupferkabel und Lichtwellenleiter einschließlich der den Bus502 bildenden Kabel. - Auf diese Weise wird das Optimieren eines Dateisystems für unterschiedliche Typen von Anwendungen in einem Datenverarbeitungs-Cluster unter Verwendung von dynamischer Blockgrößen-Granularität offenbart. Wie sich einem Fachmann erschließen wird, können Aspekte der vorliegenden Erfindung als System, Verfahren oder Computerprogrammprodukt umgesetzt sein. Ein Aspekt der Erfindung beinhaltet ein Computerprogrammprodukt zum Optimieren eines Dateisystems für unterschiedliche Typen von Anwendungen in einem Datenverarbeitungs-Cluster unter Verwendung dynamischer Blockgrößen-Granularität. Das Computerprogrammprodukt enthält ein von einem Computer lesbares Speichermedium mit einem darin enthaltenen von einem Computer lesbaren Programmcode.
- Das von einem Computer lesbare Speichermedium beinhaltet einen von einem Computer lesbaren Programmcode, der so konfiguriert ist, dass er eine vordefinierte Anzahl von Speicherzuordnungsbereichen für jeden Knoten in einem Cluster reservieren kann, wobei jeder Speicherzuordnungsbereich einen Satz aus zusammenhängenden Datenblöcken auf einer einzelnen Speicherplatte eines lokal angeschlossenen Speichers umfasst. Das von einem Computer lesbare Speichermedium enthält des Weiteren einen von einem Computer lesbaren Programmcode, der so konfiguriert ist, dass er einen zusammenhängenden Satz von Datenblöcken auf einer einzelnen Speicherplatte eines lokal angeschlossenen Speichers als Blockzuordnungs-Granularität eines Dateisystems zum Stripen von Daten, die für eine Datenverarbeitungsoperation in dem Cluster in dem Dateisystem gespeichert werden sollen, verwenden kann. Das von einem Computer lesbare Speichermedium enthält des Weiteren einen von einem Computer lesbaren Programmcode, der so konfiguriert ist, dass er einen einzelnen Datenblock eines gemeinsam genutzten Speicherteilsystems als Blockzuordnungs-Granularität eines Dateisystems zum Stripen von Daten verwenden kann, die für eine Datenzugriffsoperation in dem Cluster in dem Dateisystem gespeichert werden sollen.
- Dementsprechend können Aspekte der vorliegenden Erfindung als reine Hardware-Ausführungsform, reine Software-Ausführungsform (unter anderem Firmware, residente Software, Mikrocode, usw.) oder als eine Ausführungsform ausgebildet sein, die Software- und Hardware-Aspekte kombiniert, die hierin allesamt gemeinhin als „Schaltung”, „Modul” oder „System” bezeichnet werden können. Des Weiteren können Aspekte der vorliegenden Erfindung als Computerprogrammprodukt ausgebildet sein, das in einem oder mehreren von einem Computer lesbaren Medium/Medien mit einem darin enthaltenen, von einem Computer lesbaren Programmcode, enthalten ist.
- Es kann jede beliebige Kombination aus einem oder mehreren von einem Computer lesbaren Medium/Medien verwendet werden. Das von einem Computer lesbare Medium kann ein von einem Computer lesbares Signalmedium oder ein von einem Computer lesbares Speichermedium sein. Ein von einem Computer lesbares Speichermedium kann zum Beispiel unter anderem ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, solche Vorrichtung oder Einheit oder jede beliebige geeignete Kombination der vorstehend Genannten sein. Konkretere Beispiele (eine ergänzbare Liste) des von einem Computer lesbaren Speichermediums würden die Folgenden umfassen: eine elektrischer Verbindung mit einem oder zwei Leitungen, eine tragbare Computerdiskette, eine Festplatte, ein Arbeitsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein elektronisch löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Memory), ein Lichtwellenleiter, ein tragbarer CD-Nur-Lesespeicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder jede beliebige Kombination der vorstehend Genannten. Im Kontext dieses Dokumentes kann ein von einem Computer lesbares Speichermedium jegliches materielle Medium sein, das ein Programm zur Verwendung durch ein oder im Zusammenhang mit einem Befehlsausführungssystem, einer solchen Vorrichtung oder Einheit ein Programm enthalten oder speichern kann.
- Ein von einem Computer lesbares Signalmedium kann ein weitergegebenes Datensignal mit einem darin enthaltenen, von einem Computer lesbaren Programmcode, beispielsweise in Basisband oder als Teil einer Trägerwelle sein. Solch ein weitergegebenes Signal kann jede beliebige einer Reihe verschiedener Formen, unter anderem elektromagnetische, optische oder jede beliebige geeignete Kombination daraus beinhalten. Ein von einem Computer lesbares Signalmedium kann jegliches von einem Computer lesbare Medium sein, das kein von einem Computer lesbares Speichermedium ist und das ein Programm zur Verwendung durch oder im Zusammenhang mit einem Befehlsausführungssystem, solcher Vorrichtung oder Einheit ein Programm übertragen, weitergeben oder senden kann.
- Ein in einem von einem Computer lesbaren Medium enthaltener Programmcode kann unter Verwendung eines jeden beliebigen geeigneten Mediums, unter anderem drahtlos, drahtgebunden, Lichtwellenleiter, HF usw. oder einer jeden beliebigen geeigneten Kombination der vorstehend Genannten gesendet werden.
- Der Computerprogrammcode zum Ausführen von Operationen für Aspekte der vorliegenden Erfindung kann in jeder beliebigen Kombination aus einer oder mehreren Programmiersprachen, unter anderem einer objektorientierten Programmiersprache wie beispielsweise Java, Smalltalk, C++ oder Ähnlichen und herkömmlichen prozeduralen Programmiersprachen wie beispielsweise die ”C”-Programmiersprache oder ähnlichen Programmiersprachen, geschrieben werden. Der Programmcode kann gänzlich auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als ein Stand-alone-Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder gänzlich auf dem fernen Computer oder Server ausgeführt werden. In dem letzten Szenario kann der ferne Computer über jede beliebige Art von Netz, unter anderem ein lokales Netz (LAN) oder ein Weitverkehrsnetz (WAN), mit dem Computer des Benutzers verbunden sein, oder die Verbindung kann zu einem externen Computer (beispielsweise über das Internet unter Verwendung eines Internet-Service-Providers) hergestellt werden.
- Nachstehend werden Aspekte der vorliegenden Erfindung in Bezug auf die Veranschaulichungen der Ablaufpläne und/oder die Blockschaltbilder der Verfahren, Vorrichtungen (Systeme) und Computerprogrammprodukte gemäß Ausführungsformen der Erfindung beschrieben. Es wird offensichtlich sein, dass jeder Block der Veranschaulichungen der Ablaufpläne und/oder der Blockschaltbilder sowie Kombinationen aus Blöcken in den Veranschaulichungen der Ablaufpläne und/oder der Blockschaltbilder von Computerprogrammanweisungen umgesetzt werden können. Diese Computerprogrammanweisungen können einem Prozessor eines Universal-Computers, Spezial-Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung zur Herstellung einer Maschine bereitgestellt werden, und zwar so, dass mit den Anweisungen, die über den Prozessor des Computers oder anderen Datenverarbeitungsvorrichtungen ausgeführt werden, Mittel zur Implementierung der in dem Ablaufplan und/oder dem/den Block/Blöcken der Blockschaltbilder spezifizierten Funktionen/Schritte geschaffen werden.
- Diese Computerprogrammanweisungen können auch in einem von einem Computer lesbaren Medium gespeichert werden und leiten einen Computer, andere programmierbare Datenverarbeitungsvorrichtungen oder Einheiten an, auf eine bestimmte Weise zu funktionieren, so dass die in dem von einem Computer lesbaren Medium gespeicherten Anweisungen einen Herstellungsartikel produzieren, der die Anweisungen enthält, mit denen die/der in dem Ablaufplan und/oder dem/den Block oder Blöcken der Blockschaltbilder spezifizierten Funktion/Schritt implementiert wird.
- Die Computerprogrammanweisungen können auch auf einen Computer, andere programmierbare Datenverarbeitungsvorrichtungen oder andere Einheiten geladen werden, um eine Reihe von Arbeitsschritten zu veranlassen, die auf dem Computer, anderen programmierbaren Datenverarbeitungsvorrichtungen oder Einheiten auszuführen sind, um ein computerimplementiertes Verfahren so zu schaffen, dass die Anweisungen, die auf dem Computer oder anderen programmierbaren Vorrichtungen ausgeführt werden, Prozesse zum Implementieren der in dem Ablaufplan und/oder dem/den Block oder Blöcken des Blockschaltbildes spezifizierte Funktion/Schritt bereitstellen.
Claims (15)
- Verfahren zum Optimieren eines Dateisystems für unterschiedliche Typen von Anwendungen in einem Datenverarbeitungs-Cluster unter Verwendung von dynamischer Blockgrößen-Granularität, wobei das Verfahren Folgendes aufweist: Reservieren einer vordefinierten Anzahl von Speicherzuordnungsbereichen für jeden Knoten in einem Cluster, wobei jeder Speicherzuordnungsbereich einen Satz von zusammenhängenden Datenblöcken auf einer einzelnen Speicherplatte eines lokal angeschlossenen Speichers aufweist; Verwenden eines zusammenhängenden Satzes an Datenblöcken auf einer einzelnen Speicherplatte eines lokal angeschlossenen Speichers als Blockzuordnungs-Granularität eines Dateisystems zum Stripen von Daten, die für eine Datenverarbeitungsoperation in dem Cluster in dem Dateisystem gespeichert werden sollen, und Verwenden eines einzelnen Datenblockes eines gemeinsam genutzten Speicherteilsystems als die Blockzuordnungs-Granularität des Dateisystems zum Stripen von Daten, die für eine Datenzugriffsoperation in dem Cluster in dem Dateisystem gespeichert werden sollen.
- Verfahren nach Anspruch 1, weiterhin aufweisend: Zuordnen von Daten für eine Datenverarbeitungsoperation zu wenigstens einem der reservierten Speicherzuordnungsbereiche.
- Verfahren nach Anspruch 1 oder 2, weiterhin aufweisend: Reservieren, wenn eine Gesamtanzahl der reservierten Speicherzuordnungsbereiche für einen Knoten in dem Cluster kleiner als die vordefinierte Anzahl ist, von mindestens einem zusätzlichen Speicherzuordnungsbereich so lange, bis die Gesamtanzahl der reservierten Speicherzuordnungsbereiche für den Knoten der vordefinierten Zahl entspricht.
- Verfahren nach einem beliebigen der vorstehenden Ansprüche, weiterhin aufweisend: Senden einer Datenverarbeitungsoperation an einen Knoten in dem Cluster zusammen mit Daten für die Datenverarbeitungsoperation, die dem lokal angeschlossenen Speicher des Knotens zugeordnet ist.
- Verfahren nach einem beliebigen der vorstehenden Ansprüche, weiterhin aufweisend: Replizieren eines jeden zusammenhängenden Satzes von Datenblöcken, die einem lokalen Speicher des Knotens zugeordnet sind, auf einen lokal angeschlossenen Speicher eines zweiten Knotens in dem Cluster.
- Verfahren nach einem beliebigen der vorstehenden Ansprüche, weiterhin aufweisend: Zuordnen von Daten für eine Datenzugriffsoperation zu dem gemeinsam genutzten Speicherteilsystem.
- Verfahren nach einem beliebigen der vorstehenden Ansprüche, weiterhin aufweisend: Verfolgen eines Ortes eines jeden dem gemeinsam genutzten Speicherteilsystem und dem lokal angeschlossenen Speicher in dem Dateisystem zugeordneten Datenblockes.
- Verfahren nach einem beliebigen der vorstehenden Ansprüche, wobei die Datenzugriffsoperation aus der Gruppe bestehend aus einer Buchhaltungsoperation, einer Datenübertragungsoperation, einer Cachespeicher-Verwaltungsoperation und einer Prefetch-Operation ausgewählt wird.
- Verfahren nach Anspruch 6, weiterhin aufweisend: Neustarten, wenn ein Knoten mit einer Datenverarbeitungsoperation einen Fehler aufweist, der Datenverarbeitungsoperation auf einem zweiten Knoten, wo die der Datenverarbeitungsoperation zugehörigen Daten repliziert sind.
- Verfahren nach einem beliebigen der vorstehenden Ansprüche, wobei das Cluster Datenverarbeitungsleistungen für einen entfernt gelegenen Client hostet.
- System zum Optimieren eines Dateisystems für unterschiedliche Typen von Anwendungen in einem Datenverarbeitungs-Cluster unter Verwendung von dynamischer Blockgrößen-Granularität, wobei das System Folgendes aufweist: ein Datenverarbeitungs-Cluster, wobei der Datenverarbeitungs-Cluster Folgendes aufweist: eine Vielzahl von Knoten, wobei jeder der Vielzahl von Knoten einen lokal angeschlossenen Speicher aufweist, ein gemeinsam genutztes Speicherteilsystem, das mit jedem der Vielzahl von Knoten verbunden ist, und ein Dateisystemmanager, der mit dem gemeinsam genutzten Speicherteilsystem und jedem der Vielzahl von Knoten verbunden ist, wobei der Dateisystemmanager Folgendes ausführt: Reservieren einer vordefinierten Anzahl von Speicherzuordnungsbereichen für jeden der Vielzahl von Knoten in dem Datenverarbeitungs-Cluster, wobei jeder Speicherzuordnungsbereich einen Satz von zusammenhängenden Datenblöcken auf einer einzelnen Speicherplatte eines lokal angeschlossenen Speichers aufweist, Verwenden eines zusammenhängenden Satzes an Datenblöcken auf einer einzelnen Speicherplatte des lokal angeschlossenen Speichers als Blockzuordnungs-Granularität eines Dateisystems zum Stripen von Daten, die für eine Datenverarbeitungsoperation in dem Cluster in dem Dateisystem gespeichert werden sollen, und Verwenden eines einzelnen Datenblockes eines gemeinsam genutzten Speicherteilsystems als Blockzuordnungs-Granularität des Dateisystems zum Stripen von Daten, die für eine Datenzugriffsoperation in dem Cluster in dem Dateisystem gespeichert werden sollen.
- System nach Anspruch 11, wobei der Dateisystemmanager eine Datenverarbeitungsoperation, die dem lokal angeschlossenen Speicher des Knotens zugeordnet ist, zusammen mit Daten für die Datenverarbeitungsoperation an einen Knoten in dem Datenverarbeitungs-Cluster sendet.
- System nach Anspruch 11 oder 12, wobei der Dateisystemmanager wenigstens einen zusätzlichen Speicherzuordnungsbereich so lange reserviert, bis, wenn eine Gesamtanzahl der reservierten Speicherzuordnungsbereiche für den Knoten kleiner als die vordefinierte Anzahl ist, die Gesamtanzahl der reservierten Speicherzuordnungsbereiche für einen Knoten gleich der vordefinierten Anzahl ist.
- System nach einem beliebigen der Ansprüche 11 bis 13, wobei der Dateisystemmanager Folgendes ausführt: Replizieren eines jeden zusammenhängenden Satzes an Datenblöcken, die einem lokal angeschlossenen Speicher eines Knotens zugeordnet sind, zu einem lokal angeschlossenen Speicher eines zweiten Knotens in dem Datenverarbeitungs-Cluster, und Neustarten einer Datenverarbeitungsoperation auf einem zweiten Knoten, wo der Datenverarbeitungsoperation zugehörige Daten repliziert sind, wenn ein Knoten mit der Datenverarbeitungsoperation einen Fehler aufweist.
- Ein Computerprogrammcode umfassendes Computerprogramm, das auf einem von einem Computer lesbaren Medium gespeichert ist, um, wenn es in ein Computersystem geladen und darauf ausgeführt wird, das Computersystem zu veranlassen, alle Schritte des Verfahrens nach einem der Ansprüche 1 bis 10 auszuführen.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/760,476 | 2010-04-14 | ||
US12/760,476 US9021229B2 (en) | 2010-04-14 | 2010-04-14 | Optimizing a file system for different types of applications in a compute cluster using dynamic block size granularity |
PCT/EP2011/055496 WO2011128257A1 (en) | 2010-04-14 | 2011-04-08 | Optimizing a file system for different types of applications in a compute cluster using dynamic block size granularity |
Publications (1)
Publication Number | Publication Date |
---|---|
DE112011101317T5 true DE112011101317T5 (de) | 2013-01-31 |
Family
ID=44140786
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE112011101317T Withdrawn DE112011101317T5 (de) | 2010-04-14 | 2011-04-08 | Optimieren eines Dateisystems für unterschiedliche Typen von Anwendungen in einem Datenverarbeitungs-Cluster unter Verwendung von dynamischer Blockgrössen-Granularität |
Country Status (6)
Country | Link |
---|---|
US (1) | US9021229B2 (de) |
JP (1) | JP5643421B2 (de) |
CN (1) | CN102844734B (de) |
DE (1) | DE112011101317T5 (de) |
GB (1) | GB2492870B (de) |
WO (1) | WO2011128257A1 (de) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9323775B2 (en) | 2010-06-19 | 2016-04-26 | Mapr Technologies, Inc. | Map-reduce ready distributed file system |
US11726955B2 (en) | 2010-06-19 | 2023-08-15 | Hewlett Packard Enterprise Development Lp | Methods and apparatus for efficient container location database snapshot operation |
US9411517B2 (en) | 2010-08-30 | 2016-08-09 | Vmware, Inc. | System software interfaces for space-optimized block devices |
EP2740041B1 (de) * | 2011-08-02 | 2019-10-23 | Jadhav, Ajay | Cloud-basiertes verteiltes persistenz- und cachedatenmodell |
CN102426552B (zh) | 2011-10-31 | 2014-06-04 | 华为数字技术(成都)有限公司 | 存储系统服务质量控制方法、装置和系统 |
US8850133B1 (en) * | 2011-12-20 | 2014-09-30 | Emc Corporation | Using dynamic block sizes in data transfer operations |
US9405692B2 (en) * | 2012-03-21 | 2016-08-02 | Cloudera, Inc. | Data processing performance enhancement in a distributed file system |
EP2893466A4 (de) * | 2012-09-06 | 2016-06-08 | Hewlett Packard Development Co | Skalierbares dateisystem |
US9122398B2 (en) | 2012-10-31 | 2015-09-01 | International Business Machines Corporation | Generalized storage allocation for multiple architectures |
CN103793425B (zh) | 2012-10-31 | 2017-07-14 | 国际商业机器公司 | 用于分布式系统的数据处理方法及装置 |
CN104584627B (zh) * | 2013-08-23 | 2018-05-18 | 华为技术有限公司 | 一种网络资源控制方法、装置和系统 |
US9569447B2 (en) * | 2013-11-08 | 2017-02-14 | Texas Instruments Incorporated | File access method and system thereof |
JP6378364B2 (ja) | 2014-04-22 | 2018-08-22 | 華為技術有限公司Huawei Technologies Co.,Ltd. | ファイル管理方法およびファイルシステム |
DE102014210233A1 (de) * | 2014-05-28 | 2015-12-03 | Siemens Aktiengesellschaft | Teilen von Rechen-Ressourcen |
US9836419B2 (en) | 2014-09-15 | 2017-12-05 | Microsoft Technology Licensing, Llc | Efficient data movement within file system volumes |
US10298709B1 (en) * | 2014-12-31 | 2019-05-21 | EMC IP Holding Company LLC | Performance of Hadoop distributed file system operations in a non-native operating system |
CN106547055B (zh) * | 2015-09-23 | 2019-04-16 | 青岛海信宽带多媒体技术有限公司 | 一种光探测模组和光模块 |
KR20170048721A (ko) * | 2015-10-27 | 2017-05-10 | 삼성에스디에스 주식회사 | 분산 처리를 위한 대용량 파일의 블록화 방법 및 그 장치 |
CN106657182B (zh) | 2015-10-30 | 2020-10-27 | 阿里巴巴集团控股有限公司 | 云端文件处理方法和装置 |
US11106625B2 (en) | 2015-11-30 | 2021-08-31 | International Business Machines Corporation | Enabling a Hadoop file system with POSIX compliance |
US9733834B1 (en) | 2016-01-28 | 2017-08-15 | Weka.IO Ltd. | Congestion mitigation in a distributed storage system |
US10228855B2 (en) * | 2016-03-30 | 2019-03-12 | International Business Machines Corporation | Tuning memory across database clusters for distributed query stability |
CN108647228B (zh) * | 2018-03-28 | 2021-08-24 | 中国电力科学研究院有限公司 | 可见光通信大数据实时处理方法和系统 |
CN109669640B (zh) * | 2018-12-24 | 2023-05-23 | 浙江大华技术股份有限公司 | 一种数据存储方法、装置、电子设备及介质 |
US10963378B2 (en) | 2019-03-19 | 2021-03-30 | International Business Machines Corporation | Dynamic capacity allocation of stripes in cluster based storage systems |
KR20210017181A (ko) * | 2019-08-07 | 2021-02-17 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 컨트롤러 및 동작 방법 |
CN112650441B (zh) * | 2019-10-11 | 2022-11-04 | 杭州海康威视数字技术股份有限公司 | 条带缓存分配方法、装置、电子设备及存储介质 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5442752A (en) | 1992-01-24 | 1995-08-15 | International Business Machines Corporation | Data storage method for DASD arrays using striping based on file length |
JP4128206B2 (ja) | 1993-06-21 | 2008-07-30 | 株式会社日立製作所 | 計算機システムおよび二次記憶装置 |
US5526504A (en) * | 1993-12-15 | 1996-06-11 | Silicon Graphics, Inc. | Variable page size translation lookaside buffer |
WO1996025801A1 (en) | 1995-02-17 | 1996-08-22 | Trustus Pty. Ltd. | Method for partitioning a block of data into subblocks and for storing and communicating such subblocks |
US5678024A (en) | 1995-05-08 | 1997-10-14 | International Business Machines Corporation | Method and system for dynamic performance resource management within a computer based system |
JP3563907B2 (ja) | 1997-01-30 | 2004-09-08 | 富士通株式会社 | 並列計算機 |
JPH10283230A (ja) | 1997-03-31 | 1998-10-23 | Nec Corp | ファイルデータ格納装置およびプログラムを記録した機械読み取り可能な記録媒体 |
US7032119B2 (en) * | 2000-09-27 | 2006-04-18 | Amphus, Inc. | Dynamic power and workload management for multi-server system |
JP2002132548A (ja) | 2000-10-23 | 2002-05-10 | Toshiba Corp | 記憶装置および方法 |
AU2002236435A1 (en) | 2000-10-26 | 2002-05-21 | Prismedia Networks, Inc. | Method and apparatus for real-time parallel delivery of segments of a large payload file |
JP2004199535A (ja) | 2002-12-20 | 2004-07-15 | Hitachi Ltd | 計算機システムおよびそのストレージの管理方法 |
US20050039049A1 (en) * | 2003-08-14 | 2005-02-17 | International Business Machines Corporation | Method and apparatus for a multiple concurrent writer file system |
US7418568B2 (en) * | 2005-01-05 | 2008-08-26 | Sap Ag | Memory management technique |
US7694072B2 (en) * | 2005-09-22 | 2010-04-06 | Xyratex Technology Limited | System and method for flexible physical-logical mapping raid arrays |
US7734603B1 (en) | 2006-01-26 | 2010-06-08 | Netapp, Inc. | Content addressable storage array element |
US7945726B2 (en) * | 2006-05-08 | 2011-05-17 | Emc Corporation | Pre-allocation and hierarchical mapping of data blocks distributed from a first processor to a second processor for use in a file system |
JP2007328727A (ja) | 2006-06-09 | 2007-12-20 | Hitachi Ltd | 分散ファイル管理方法及び情報処理装置 |
US7945716B2 (en) * | 2007-09-27 | 2011-05-17 | Integrated Device Technology, Inc. | Serial buffer supporting virtual queue to physical memory mapping |
US8478715B2 (en) * | 2008-05-16 | 2013-07-02 | Microsoft Corporation | Extending OLAP navigation employing analytic workflows |
US8890880B2 (en) * | 2009-12-16 | 2014-11-18 | Intel Corporation | Graphics pipeline scheduling architecture utilizing performance counters |
-
2010
- 2010-04-14 US US12/760,476 patent/US9021229B2/en active Active
-
2011
- 2011-04-08 CN CN201180018635.9A patent/CN102844734B/zh active Active
- 2011-04-08 JP JP2013504205A patent/JP5643421B2/ja active Active
- 2011-04-08 DE DE112011101317T patent/DE112011101317T5/de not_active Withdrawn
- 2011-04-08 GB GB1210249.7A patent/GB2492870B/en active Active
- 2011-04-08 WO PCT/EP2011/055496 patent/WO2011128257A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
CN102844734A (zh) | 2012-12-26 |
GB201210249D0 (en) | 2012-07-25 |
US20110258378A1 (en) | 2011-10-20 |
CN102844734B (zh) | 2016-02-10 |
GB2492870B (en) | 2018-05-16 |
JP5643421B2 (ja) | 2014-12-17 |
JP2013527524A (ja) | 2013-06-27 |
WO2011128257A1 (en) | 2011-10-20 |
GB2492870A (en) | 2013-01-16 |
US9021229B2 (en) | 2015-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE112011101317T5 (de) | Optimieren eines Dateisystems für unterschiedliche Typen von Anwendungen in einem Datenverarbeitungs-Cluster unter Verwendung von dynamischer Blockgrössen-Granularität | |
DE112018000193B4 (de) | Daten sequenziell in Zonen in einem verstreuten Speichernetzwerk speichern | |
DE102016103359B4 (de) | Singleton-cachespeicher-verwaltungsprotokoll für hierarchische virtualisierte speichersysteme | |
DE112011104419B4 (de) | Bereichsmigration für gepaarte Speicherung | |
DE112014000254B4 (de) | Mehrstufiges Zwischenspeichern und Migrieren in unterschiedlichen Granularitäten | |
DE112017002941T5 (de) | Arbeitslastoptimierte Datendeduplizierung mittels Phantomfingerabdrücken | |
DE102012218269B4 (de) | Schnittstelle zur Verwaltung von Datenverschiebung in einem Speichersystem mit thin provisioning | |
DE102010044531B4 (de) | Autonome Speicherarchitektur | |
EP2880534B1 (de) | Hochverfügbares rechnersystem, arbeitsverfahren und dessen verwendung | |
DE102012219098A1 (de) | Verwaltung von Teildatensegmenten in Systemen mit doppeltem Cachespeicher | |
DE202009019149U1 (de) | Asynchron verteilte Speicherbereinigung für replizierte Speichercluster | |
DE102010044529B4 (de) | Autonomes speicher-sub-system mit hardwarebeschleuniger | |
DE202015009260U1 (de) | Effiziente Datenlesungen von verteilten Speichersystemen | |
DE102013211071A1 (de) | Mit geringem Mehraufwand verbundene Verbesserung der Zuverlässigkeit eines Journaling-Dateisystems unter Verwendung von Halbleiterspeicherung und Deduplizierung | |
DE112020003929B4 (de) | Verwaltung von metadaten von virtuellen speichern | |
DE112014002754T5 (de) | Effiziente Aufgabenplanung unter Verwendung eines Sperrmechanismus | |
DE112012004571T5 (de) | Unterstützen von unvollständigen Datensegmenten in Flash-Cache-Speichern | |
DE112018005121T5 (de) | Speichersystem unter verwendung von cloud-speicher als eine speicherbank | |
DE112017005782T5 (de) | Warteschlange für Speichervorgänge | |
DE102021115763A1 (de) | Identifizierung und klassifizierung der schreibstrompriorität | |
DE112018002955T5 (de) | Kognitive datei- und objektverwaltung für verteilte speicherumgebungen | |
DE112013000392T5 (de) | Volles Ausnutzen von Parallelprozessoren zum Verarbeiten von Daten | |
DE112018000900T5 (de) | Verarbeiten eines Befehls zum Freigeben von Speicherplatz in einem Computersystem | |
DE112020004840T5 (de) | Speicherbereinigung in datenspeichersystemen | |
DE112019005392T5 (de) | Steigern von datenleistung durch transferieren von daten zwischen speicherebenen unter verwendung von arbeitslastmerkmalen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R083 | Amendment of/additions to inventor(s) | ||
R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: G06F0003060000 Ipc: G06F0017300000 |
|
R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: G06F0003060000 Ipc: G06F0017300000 Effective date: 20130311 |
|
R082 | Change of representative |
Representative=s name: LIFETECH IP SPIES DANNER & PARTNER PATENTANWAE, DE Representative=s name: SPIES DANNER & PARTNER PATENTANWAELTE PARTNERS, DE Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE |
|
R016 | Response to examination communication | ||
R082 | Change of representative |
Representative=s name: LIFETECH IP SPIES DANNER & PARTNER PATENTANWAE, DE Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE |
|
R082 | Change of representative |
Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE |
|
R082 | Change of representative |
Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE |
|
R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: G06F0017300000 Ipc: G06F0016000000 |
|
R120 | Application withdrawn or ip right abandoned |