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 PDF

Info

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
Application number
DE112011101317T
Other languages
English (en)
Inventor
Renu Tewari
Rajagopal Ananthanarayanan
Prasenjit Sarkar
Prashant Pandey
Himabindu Pucha
Mansi Ajit Shah
Karan Gupta
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112011101317T5 publication Critical patent/DE112011101317T5/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Abstract

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. Eine beispielhafte Ausführungsform aufweist Reservieren einer vordefinierten Anzahl von Speicherzuordnungsbereichen für jeden Knoten in einem Cluster, wobei jeder Speicherzuordnungsbereich einen Satz an zusammenhängenden Datenblöcken auf einer einzelnen Speicherplatte eines lokal angeschlossenen Speichers aufweist; Verwenden eines zusammenhängenden Satzes von Datenblöcken auf einer einzelnen Speicherplatte eines lokal angeschlossenen Speichers als Blockzuordnungs-Granularität 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 Speichersystems als Blockzuordnungs-Granularität zum Stripen von Daten, die für eine Datenzugriffsoperation in dem Cluster in dem Dateisystem gespeichert werden sollen.

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-Cluster 102 umfasst eine Vielzahl von Datenverarbeitungsknoten 104a, 104b...104, auch als Anwendungsknoten bekannt. In einer beispielhaften Ausführungsform umfasst der Datenverarbeitungs-Cluster 102 Hardware-Architektur, die auf Tausende von Datenverarbeitungsknoten 104a, 104b...104n skalieren kann.
  • Jeder Datenverarbeitungsknoten 104a, 104b...104n ist mit dem lokal angeschlossenen Speicher 106a, 106b...106n verbunden. So kann der lokal angeschlossene Speicher 106a, 106b...106n beispielsweise physisch intern in einem Datenverarbeitungsknoten 104a, 104b...104n und/oder physisch extern in direkter Verbindung über eine Platteneinheit angeordnet sein. In einer Ausführungsform umfasst der lokal angeschlossene Speicher 106a, 106b...106n eine Speichereinheit, die über einen Schnittstellenstandard direkt mit den Datenverarbeitungsknoten 104a, 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 Datenverarbeitungsknoten 104a, 104b...104n als lokal angeschlossenen Speicher 106a, 106b...106n vier SATA-(Serial Advanced Technology Attachment)Laufwerke über 750 Gigabyte (GB). Der Datenverarbeitungs-Cluster 102 umfasst einen Dateisystemmanager 108, der so konfiguriert ist, dass er ein Dateisystem des Datenverarbeitungs-Cluster 102 verwalten kann. So können Dateisysteme des Datenverarbeitungs-Cluster 102 beispielsweise unter anderem ein General Parallel File SystemTM (GPFSTM) von IBM umfassen. In einer beispielhaften Ausführungsform ist der Dateisystemmanager 108 als Software ausgeführt und kann von einem Stand-alone-Knoten in dem Datenverarbeitungs-Cluster 102 betrieben werden.
  • Der Datenverarbeitungs-Cluster 102 umfasst des Weiteren ein gemeinsam genutztes Speicherteilsystem 114. Das gemeinsam genutzte Speicherteilsystem 114 kann beispielsweise unter anderem eine Speicherbereichsnetz-Einheit (Storage Area Network, SAN) umfassen. Das gemeinsam genutzte Speicherteilsystem 114 ist mit einer Speicherschaltung 112 verbunden. Die Datenverarbeitungsknoten 104a, 104b...106 sind für den Zugriff auf das gemeinsam genutzte Speicherteilsystem 114 mit der Speicherschaltung 112 verbunden. Für ein Verwalten des Dateisystems des Datenverarbeitungs-Cluster 102 unter Verwendung des gemeinsam genutzten Speicherteilsystems 114 ist der Dateisystemmanager 108 mit der Speicherschaltung 112 verbunden. Das gemeinsam genutzte Speicherteilsystem 114 ist so konfiguriert, dass den Datenverarbeitungsknoten 104a, 104b...104n ein gleichzeitiger Zugriff auf dieselben Daten ermöglicht werden kann. Das gemeinsam genutzte Speicherteilsystem 114 ermöglicht das gemeinsame Nutzen von Schreibbandbreite zwischen den Datenverarbeitungsknoten 104a, 104b...104n. In einer Ausführungsform ist das gemeinsam genutzte Speicherteilsystem 114 so ausgelegt, dass es die zugrundeliegenden Datenschutzverfahren zur Umgehung von Hardware-Fehlern verwenden kann. So kann das gemeinsam genutzte Speicherteilsystem 114 zur Gewährleistung von Datenschutz beispielsweise RAID-(Redundant Array of Inexpensive Disks)Verfahren anwenden.
  • Der Datenverarbeitungs-Cluster 102 umfasst des Weiteren ein Vermittlungsnetz 110. Das Vermittlungsnetz 110 ist so konfiguriert, dass es Komponenten innerhalb des Dateisystems miteinander verbinden kann. In einer Ausführungsform ist das Vermittlungsnetz 110 so konfiguriert, dass es die Datenverarbeitungsknoten 104a, 104b...104n und den Dateisystemmanager 108 miteinander verbinden kann. In einer beispielhaften Ausführungsform handelt es sich bei dem Vermittlungsnetz 110 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 Vermittlungsnetz 110 des Weiteren so konfiguriert, dass es einem Client-Knoten 118 über das Netz 116 Zugriff ermöglicht. So umfasst das Netz 116 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 Client 118. So ermöglicht der Datenverarbeitungs-Cluster 102 beispielsweise Cloud-Datenverarbeitungsdienste zum Hosten von Daten und Datenverarbeitungsdiensten an einem Datenstandort für ferne Clients. In einer beispielhaften Ausführungsform ist der Datenverarbeitungs-Cluster 102 so konfiguriert, dass er das Ausführen von Datenanalyse-Anwendungen und das Speichern von den Datenanalyse-Anwendungen zugehörigen Daten über das Netz 116 fern für einen Client(s) 118 hosten kann. Dementsprechend ermöglicht der Datenverarbeitungs-Cluster 102 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 Verfahrens 200 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. Bei 202 reserviert der Dateisystemmanager 108 eine vordefinierte Anzahl von Speicherzuordnungsbereichen, die für jeden Datenverarbeitungsknoten 104a, 104b...104n in dem Cluster 102 einen Satz von zusammenhängenden Datenblöcken auf einer einzelnen Speicherplatte des lokal angeschlossenen Speichers 106a, 106b...106n umfassen. In einer Ausführungsform führt der Dateisystemmanager 108 frühzeitig einen Prefetch bzw. Vorabruf an einem Pool aus zusammenhängenden Speicherzuordnungsbereichen für jeden Datenverarbeitungsknoten 104a, 104b...104n in dem Datenverarbeitungs-Cluster 102 durch. Das frühzeitige Vorabrufen eines Pool aus zusammenhängenden Speicherzuordnungsbereichen verhindert beispielsweise Netzlatenz und daraus resultierende Auswirkungen auf die Anwendungsleistung. Dementsprechend besitzt jeder Datenverarbeitungsknoten 104a, 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-Cluster 102 zehn (10). Das Dateisystem ruft beispielsweise vorab einen Pool aus zehn Speicherzuordnungsbereichen, die einen zusammenhängenden Satz aus Datenblöcken umfassen, für jeden Datenverarbeitungsknoten 104a, 104b...104n in dem Datenverarbeitungs-Cluster 102 ab. In anderen Ausführungsformen kann sich die Anzahl an Speicherzuordnungsbereichen für jeden Knoten 104a, 104b...104n in dem Cluster 102 unter anderem zwischen 5 und 200 Speicherzuordnungsbereichen bewegen.
  • Die vordefinierte Anzahl reservierter Speicherzuordnungsbereiche kann für jeden Datenverarbeitungsknoten 104a, 104b...104n in dem Cluster 102 in Abhängigkeit davon, wie dicht die Datenblöcke benachbart sind, von dem Typ der in dem Cluster 102 unterstützten Anwendung, dem verwendeten Dateisystem und den Leistungsanforderungen der Anwendungen in dem Datenverarbeitungs-Cluster 102 in unterschiedlichen Bereichen liegen.
  • Bei 204 verwendet der Dateisystemmanager 108 einen zusammenhängenden Satz aus Datenblöcken auf einer einzelnen Speicherplatte des lokal angeschlossenen Speichers 106a, 106b...106n als Blockzuordnungs-Granularität eines Dateisystems zum Stripen von Daten, die für eine Datenverarbeitungsoperation von einem Datenverarbeitungsknoten 104a, 104b...104n in dem Datenverarbeitungs-Cluster 102 in dem Dateisystem gespeichert werden sollen. In einer Ausführungsform verwendet der Dateisystemmanager 108 den zusammenhängenden Satz aus Datenblöcken auf einer einzelnen Speicherplatte des lokal angeschlossenen Speichers 106a, 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 Datenverarbeitungsknoten 104a, 104b...104n in dem Datenverarbeitungs-Cluster 102 gespeichert werden sollen. So verwendet der Dateisystemmanager 108 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 Speicher 106a, 106b...106n eines jeden Datenverarbeitungsknotens 104a, 104b...104n in dem Datenverarbeitungs-Cluster 102 als ein gemeinsam genutztes Speicherteilsystem. Der lokal angeschlossene Speicher 106a, 106b...106n wird beispielsweise aufgrund der niedrigen Kosten des lokal angeschlossenen Speichers 106a, 106b...106n und der Bandbreitenbeschränkungen des gemeinsam genutzten Speicherteilsystems 114 zum Speichern von Daten für Datenverarbeitungsoperationen verwendet. Die Speicherebene für datenintensive Anwendungen wird beispielsweise aus Produktkomponenten und lokal angeschlossenen Speichern 106a, 106b hergestellt, um Speicherkosten zu verringern und den Datenverarbeitungs-Cluster 102 bis auf Tausende von Datenverarbeitungsknoten 104a, 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 Speichers 106a, 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 Datenverarbeitungsknoten 104a, 104b...104n in einem Datenverarbeitungs-Cluster 102 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 Dateisystemmanager 108 Daten für eine Datenverarbeitungsoperation wenigstens einem der reservierten Speicherzuordnungsbereiche zu. In einer Ausführungsform implementiert der Dateisystemmanager 108 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 Speichers 106a, 106b...106n. Zu den Striping-Verfahren gehören beispielsweise unter anderem Wide-Striping, Narrow-Striping und No-Striping.
  • Bei 208 reserviert der Dateisystemmanager 108 wenigstens einen zusätzlichen Speicherzuordnungsbereich so lange, bis eine Gesamtanzahl reservierter Speicherzuordnungsbereiche für einen Datenverarbeitungsknoten 104a, 104b...104n einem vordefinierten Schwellenwert entspricht, wenn die Gesamtanzahl der reservierten Speicherzuordnungsbereiche für den Datenverarbeitungsknoten 104a, 104b...104n kleiner als der vordefinierte Schwellenwert ist. In einer Ausführungsform reserviert der Dateisystemmanager 108 wenigstens einen zusätzlichen Speicherzuordnungsbereich, der einen Satz von zusammenhängenden Datenblöcken auf einer einzelnen Speicherplatte des lokal angeschlossenen Speichers 106a, 106b...106n für einen Datenverarbeitungsknoten umfasst, so lange, bis eine Gesamtanzahl reservierter Speicherzuordnungsbereiche für den Knoten 104a, 104b...104n dem vordefinierten Schwellenwert entspricht. So reserviert der Dateisystemmanager 108 beispielsweise einen zusätzlichen Speicherzuordnungsbereich, der einen zusammenhängenden Satz von Datenblöcken für einen Datenverarbeitungsknoten 104a, 104b...104n in dem Datenverarbeitungs-Cluster 102 umfasst, wenn die Pool-Kardinalität für den Datenverarbeitungsknoten 104a, 104b...104n weniger als 10 beträgt.
  • Bei 210 sendet der Dateisystemmanager 108 eine Datenverarbeitungsoperation an einen Datenverarbeitungsknoten 104a, 104b...104n in dem Datenverarbeitungs-Cluster 102 zusammen mit Daten für die Datenverarbeitungsoperation, die dem lokal angeschlossenen Speicher 106a, 106b...106n des Datenverarbeitungsknotens 104a, 104b...104n zugeordnet ist. In einer Ausführungsform werden Datenverarbeitungsoperationen und Tasks an den Datenverarbeitungsknoten 104a, 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 Dateisystemmanager 108 Blockstandort-Informationen zum Senden der Datenverarbeitungs-Task an einen Datenverarbeitungsknoten 104a, 104b...104n mit dem lokal angeschlossenen Speicher 106a, 106b...106n, wo die der Datenverarbeitungs-Task zugehörigen Daten liegen.
  • Bei 212 repliziert der Dateisystemmanager 108 jeden zusammenhängenden Satz an Datenblöcken, die dem lokal angeschlossenen Speicher 106a, 106b...106n des Datenverarbeitungsknotens 104a, 104b...104n zugeordnet sind, auf den lokal angeschlossenen Speicher 106a, 106b...106n von wenigstens einem zusätzlichen Datenverarbeitungsknoten 104a, 104b...104n in dem Datenverarbeitungs-Cluster 102. 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 Dateisystemmanager 108 einen einzelnen Datenblock des gemeinsam genutzten Speichersteilsystems als Blockzuordnungs-Granularität des Dateisystems zum Stripen von Daten, die für eine Datenzugriffsoperation von einem Datenverarbeitungsknoten 104a, 104b...104n in dem Datenverarbeitungs-Cluster 102 in dem Dateisystem gespeichert werden sollen. In einer Ausführungsform verwendet der Dateisystemmanager 108 einen einzelnen Datenblock des gemeinsam genutzten Speicherteilsystems 114, kleine Blöcke, als Blockzuordnungs-Granularität zum Zuordnen von Daten für herkömmliche Anwendungen. In einer beispielhaften Ausführungsform verwendet der Dateisystemmanager 108 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 Speicherteilsystems 114 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 Dateisystemmanager 108 für Plattenzugriffs- und Prefetch-Operationen, die für herkömmliche Anwendungen optimiert sind, eine kleine Blockgrößen-Granularität. Bei 216 ordnet der Dateisystemmanager 108 Daten für die Datenzugriffsoperation von einem Datenverarbeitungsknoten 104a, 104b...104n dem gemeinsam genutzten Speicherteilsystem 114 zu.
  • Bei 218 verfolgt der Dateisystemmanager 108 einen Ort eines jeden Datenblockes, der dem gemeinsam genutzten Speichersystem 114 und dem lokal angeschlossenen Speicher 106a, 106b...106n zugeordnet ist, für jeden Datenverarbeitungsknoten 104a, 104b...104n in dem Datenverarbeitungs-Cluster 102. In einer Ausführungsform verwendet der Dateisystemmanager 108 eine Zuordnungsübersicht zum Verfolgen des Ortes von Daten, die dem gemeinsam genutzten Speichersystem 114 und dem lokal angeschlossenen Speicher 106a, 106b...106n zugeordnet sind, für jeden Datenverarbeitungsknoten 104a, 104b...104n in dem Datenverarbeitungs-Cluster 102. In einer Ausführungsform gewährt der Dateisystemmanager 108 jedem Datenverarbeitungsknoten 104a, 104b...104n in dem Datenverarbeitungs-Cluster 102 Zugriff auf die Zuordnungsübersicht. So verwendet ein Datenverarbeitungsknoten 104a, 104b...104n die Zuordnungsübersicht beispielsweise, um den Ort eines jeden Blockes zu bestimmen, der dem gemeinsam genutzten Speichersystem 114 und dem lokal angeschlossenen Speicher 106a, 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-Dateisystem 102 und, jeder Datenverarbeitungsknoten 104a, 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 Datenverarbeitungsknoten 104a, 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 Speichers 106a, 106b...106n als Blockzuordnungs-Granularität zum Zuordnen von Daten, die für eine Datenverarbeitungsoperation von einem Datenverarbeitungsknoten 104a, 104b...104 in dem Datenverarbeitungs-Cluster 102 gespeichert werden sollen.
  • Es wird eine Vielzahl von Speicherplatten 302a, 302b...302n des lokal angeschlossenen Speichers 106a, 106b...104n veranschaulicht. Eine Datei 304 wird in eine Vielzahl von Datenblöcken fester Größe unterteilt. In einer beispielhaften Ausführungsform wird die Datei 304 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 Speichers 106a, 106b...106n zugeordnet.
  • So wird beispielsweise der zusammenhängende Satz aus Datenblöcken 306a der einzelnen Speicherplatte 302a des lokal angeschlossenen Speichers 106a, 106b...106n zugeordnet. Der zusammenhängende Satz aus Datenblöcken 306a wird der einzelnen Speicherplatte 302a des lokal angeschlossenen Speichers 106a, 106b...106n zugeordnet. Der zusammenhängende Satz aus Datenblöcken 306b wird der einzelnen Speicherplatte 302b des lokal angeschlossenen Speichers 106a, 106b...106n zugeordnet. Der zusammenhängende Satz aus Datenblöcken 306c wird der einzelnen Speicherplatte 302c des lokal angeschlossenen Speichers 106a, 106b...106n zugeordnet. Der zusammenhängende Satz aus Datenblöcken 306n wird der einzelnen Speicherplatte 302n des lokal angeschlossenen Speichers 106a, 106b...106n zugeordnet.
  • Der zusammenhängende Satz aus Datenblöcken 308a wird der einzelnen Speicherplatte 302a des lokal angeschlossenen Speichers 106a, 106b...106n zugeordnet. Der zusammenhängende Satz aus Datenblöcken 308b wird der einzelnen Speicherplatte 302b des lokal angeschlossenen Speichers 106a, 106b...106n zugeordnet. Der zusammenhängende Satz aus Datenblöcken 308c wird der einzelnen Speicherplatte 308c des lokal angeschlossenen Speichers 106a, 106b...106n zugeordnet. Der zusammenhängende Satz aus Datenblöcken 308n wird der einzelnen Speicherplatte 302n des lokal angeschlossenen Speichers 106a, 106b...106n zugeordnet.
  • Der zusammenhängende Satz aus Datenblöcken 310a wird der einzelnen Speicherplatte 302a des lokal angeschlossenen Speichers 106a, 106b...106n zugeordnet. Der zusammenhängende Satz aus Datenblöcken 310b wird der einzelnen Speicherplatte 302b des lokal angeschlossenen Speichers 106a, 106b...106n zugeordnet. Der zusammenhängende Satz aus Datenblöcken 310c wird der einzelnen Speicherplatte 302c des lokal angeschlossenen Speichers 106a, 106b...106n zugeordnet. Der zusammenhängende Satz aus Datenblöcken 306n wird der einzelnen Speicherplatte 310n des lokal angeschlossenen Speichers 106a, 106b...106n zugeordnet.
  • 4 veranschaulicht ein Zuordnungsschema in Blockform zum Stripen von Daten, die für eine Datenzugriffsoperation in einem Datenverarbeitungs-Cluster 102 in dem Dateisystem gespeichert werden sollen, gemäß einer Ausführungsform. In einer beispielhaften Ausführungsform verwendet der Dateisystemmanager 108 einen einzelnen Block auf einer einzelnen Speicherplatte des gemeinsam genutzten Speicherteilsystems 114 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 Datei 404 wird in eine Vielzahl von Datenblöcken fester Größe unterteilt. In einer beispielhaften Ausführungsform wird die Datei 404 in eine Vielzahl von 1-MB-Datenblöcken unterteilt. Reihum wird jeder einzelne 1-MB-Datenblocksatz einer einzelnen Platte des gemeinsam genutzten Speicherteilsystems 114 zugeordnet. So wird beispielsweise Datenblock 406a einer einzelnen Speicherplatte 402a des gemeinsam genutzten Speicherteilsystems 114 zugeordnet. Datenblock 406a wird der Speicherplatte 402a, Datenblock 406b der Speicherplatte 402b, Datenblock 406c der Speicherplatte 402c und Datenblock 406n wird der Speicherplatte 402n des gemeinsam genutzten Speicherteilsystems 114 zugeordnet. Datenblock 408a wird der Speicherplatte 402a, Datenblock 408b der Speicherplatte 402b, Datenblock 408c der Speicherplatte 402c, und Datenblock 408n wird der Speicherplatte 402n des gemeinsam genutzten Speicherteilsystems 114 zugeordnet. Datenblock 410a wird der Speicherplatte 402a, Datenblock 410b der Speicherplatte 402b, Datenblock 410c der Speicherplatte 402c und Datenblock 410n wird der Speicherplatte 402n des gemeinsam genutzten Speicherteilsystems 114 zugeordnet.
  • Datenblock 412a wird der Speicherplatte 402a, Datenblock 412b der Speicherplatte 402b, Datenblock 412c der Speicherplatte 402c und Datenblock 412n wird der Speicherplatte 402n des gemeinsam genutzten Speicherteilsystems 114 zugeordnet. Datenblock 414a wird der Speicherplatte 402a, Datenblock 414b der Speicherplatte 402b, Datenblock 414c der Speicherplatte 402c und Datenblock 414n wird der Speicherplatte 402n des gemeinsam genutzten Speicherteilsystems 114 zugeordnet. Datenblock 416a wird der Speicherplatte 402a, Datenblock 416b der Speicherplatte 402b, Datenblock 416c der Speicherplatte 402c, und Datenblock 416n wird der Speicherplatte 402n des gemeinsam genutzten Speicherteilsystems 114 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 System 500 umfasst eine oder mehrere Client-Einheiten 501, die mit einem oder mehreren Server-Datenverarbeitungssystemen 530 verbunden sind. Ein Server 530 umfasst einen Bus 502 oder einen anderen Übertragungsmechanismus zum Übertragen von Daten, sowie einen Prozessor (CPU) 504, der zum Verarbeiten von Daten mit dem Bus 502 verbunden ist. Der Server 530 umfasst darüber hinaus einen Hauptspeicher 506 wie zum Beispiel einen Arbeitsspeicher (RAM) oder eine andere dynamische Speichereinheit, die zum Speichern von Daten und von durch den Prozessor 504 auszuführenden Anweisungen mit dem Bus 502 verbunden ist. Der Hauptspeicher 506 kann auch zum Speichern von temporären Variablen oder anderen Zwischeninformationen während der Ausführung oder bei von dem Prozessor 504 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 Prozessor 504 auszuführender Anweisungen mit dem Bus 502 verbunden ist. Es wird eine Speichereinheit 510 wie beispielsweise eine Magnetplatte oder eine optische Platte bereitgestellt und zum Speichern von Daten und Anweisungen mit dem Bus 502 verbunden. Der Bus 502 kann beispielsweise zweiunddreißig Adresszeilen zum Adressieren von Videospeicher oder Hauptspeicher 506 enthalten. Der Bus 502 kann beispielsweise auch einen 32-Bit-Datenbus zum Übertragen von Daten zwischen und unter den Komponenten, so zum Beispiel der CPU 504, dem Hauptspeicher 506, dem Videospeicher und dem Speicher 510 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 Bus 502 mit einer Anzeige 512 verbunden sein. Eine Eingabeeinheit 514, die alphanumerische und andere Tasten umfasst, ist zum Übertragen von Informationen und Befehlsauswahlen an den Prozessor 504 mit dem Bus 502 verbunden. Ein weiterer Typ von Benutzereingabeeinheit umfasst eine Cursorsteuerung 516 wie zum Beispiel eine Maus, einen Trackball oder Cursorrichtungstasten zum Übertragen von Richtungsinformationen und Befehlsauswahlen an den Prozessor 504 sowie zum Steuern der Cursorbewegung auf der Anzeige 512.
  • Die Funktionen der Erfindung werden durch den Server 530 in Reaktion auf den Prozessor 504 umgesetzt, der eine oder mehrere Sequenzen einer oder mehrerer in dem Hauptspeicher 506 enthaltenen Anweisungen ausführt. Solche Anweisungen können von einem anderen von einem Computer lesbaren Medium wie beispielsweise der Speichereinheit 510 in den Hauptspeicher 506 gelesen werden. Die Ausführung der Sequenzen von in dem Hauptspeicher 506 enthaltenen Anweisungen veranlasst den Prozessor 504 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 Hauptspeicher 506 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 Server 530 angeschlossener Modem kann die Daten auf der Telefonleitung empfangen und einen Infrarotsender zum Umwandeln der Daten in ein Infrarotsignal verwenden. Ein mit dem Bus 502 verbundener Infrarotdetektor kann die in dem Infrarotsignal übertragenen Daten empfangen und die Daten auf dem Bus 502 platzieren. Der Bus 502 überträgt die Daten an den Hauptspeicher 506, von dem der Prozessor 504 die Anweisungen abruft und ausführt. Die von dem Hauptspeicher empfangenen Anweisungen können optional auf der Speichereinheit 510 entweder vor oder nach Ausführung durch den Prozessor 504 gespeichert werden.
  • Der Server 530 umfasst darüber hinaus eine Datenübertragungsschnittstelle 518, die mit dem Bus 502 verbunden ist. Die Datenübertragungsschnittstelle 518 liefert eine 2-Wege-Datenübertragungsverbindung zu einer Netzwerkverbindung 520, die mit dem weltweiten Paketdatenübertragungsnetzwerk, mittlerweile weitläufig als Internet 528 bezeichnet, verbunden ist. Das Internet 528 verwendet elektrische, elektromagnetische oder optische Signale, die digitale Datenströme übertragen. Die Signale durch die verschiedenen Netzwerken und die Signale über die Netzwerkverbindung 520 sowie über die Datenübertragungsschnittstelle 518, die die digitalen Daten zu und von dem Server 530 übertragen, sind beispielhafte Formen von Daten übertragenden Trägerwellen.
  • In einer weiteren Ausführungsform des Servers 530 ist die Schnittstelle 518 über eine Datenübertragungsverbindung 520 mit einem Netz 522 verbunden. Die Datenübertragungsschnittstelle 518 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 Netzwerkverbindung 520 umfassen kann. Als ein weiteres Beispiel kann die Datenübertragungsschnittstelle 518 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übertragungsschnittstelle 518 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 Netzwerkverbindung 520 beispielsweise eine Verbindung über das lokale Netz 522 zu einem Host-Computer 524 oder zu Datengeräten bereitstellen, die von einem Internet-Service-Provider (ISP) 526 betrieben werden. Der ISP 526 stellt im Gegenzug Datenübertragungsleistungen über das Internet 528 bereit. Sowohl das lokale Netz 522 als auch das Internet 528 verwenden elektrische, elektromagnetische oder optische Signale, die digitale Datenströme übertragen. Die Signale über die verschiedenen Netzen und die Signale auf der Netzwerkverbindung 520 und über der Datenübertragungsschnittstelle 518, die die digitalen Daten zu und von dem Server 530 ü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 Netzwerkverbindung 520 und die Datenübertragungsschnittstelle 518 senden/empfangen. Darüber hinaus kann die Datenübertragungsschnittstelle 518 einen USB/Tuner umfassen, und bei der Netzwerkverbindung 520 kann es sich um eine Antenne oder ein Kabel zum Verbinden des Servers 530 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 System 500 implementiert werden. Die Logikoperationen der vorliegenden Erfindung können als Sequenz von Schritten, die in dem Server 530 ausgeführt werden und als miteinander verbundene Module innerhalb des Systems 500 implementiert sein. Die Implementierung hängt von der jeweiligen Wahl und möglicherweise auch von der Leistung des Systems 500 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-Einheit 531 einen Prozessor, einen Speicher, eine Speichereinheit, eine Anzeige, eine Eingabeeinheit und eine Datenübertragungsschnittstelle (beispielsweise eMail-Schnittstelle) zum Verbinden der Client-Einheit mit dem Internet 528, dem ISP 526 oder dem lokalem Netz (LAN) 522 zum Datenaustausch mit den Servern 530 umfassen.
  • Das System 500 kann des Weiteren Computer (z. B. Personal Computer, Datenverarbeitungsknoten) 505 umfassen, die auf gleiche Weise wie Client-Einheiten 501 arbeiten, wobei ein Benutzer einen oder mehrere Computer 505 zum Verwalten von Daten in dem Server 530 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 Speichereinheit 510. Zu flüchtigen Medien zählen dynamische Speicher wie zum Beispiel der Hauptspeicher 506. Übertragungsmedien beinhalten Koaxialkabel, Kupferkabel und Lichtwellenleiter einschließlich der den Bus 502 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)

  1. 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.
  2. Verfahren nach Anspruch 1, weiterhin aufweisend: Zuordnen von Daten für eine Datenverarbeitungsoperation zu wenigstens einem der reservierten Speicherzuordnungsbereiche.
  3. 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.
  4. 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.
  5. 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.
  6. Verfahren nach einem beliebigen der vorstehenden Ansprüche, weiterhin aufweisend: Zuordnen von Daten für eine Datenzugriffsoperation zu dem gemeinsam genutzten Speicherteilsystem.
  7. 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.
  8. 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.
  9. 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.
  10. Verfahren nach einem beliebigen der vorstehenden Ansprüche, wobei das Cluster Datenverarbeitungsleistungen für einen entfernt gelegenen Client hostet.
  11. 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.
  12. 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.
  13. 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.
  14. 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.
  15. 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.
DE112011101317T 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 Withdrawn DE112011101317T5 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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