DE112019005392T5 - Steigern von datenleistung durch transferieren von daten zwischen speicherebenen unter verwendung von arbeitslastmerkmalen - Google Patents

Steigern von datenleistung durch transferieren von daten zwischen speicherebenen unter verwendung von arbeitslastmerkmalen Download PDF

Info

Publication number
DE112019005392T5
DE112019005392T5 DE112019005392.2T DE112019005392T DE112019005392T5 DE 112019005392 T5 DE112019005392 T5 DE 112019005392T5 DE 112019005392 T DE112019005392 T DE 112019005392T DE 112019005392 T5 DE112019005392 T5 DE 112019005392T5
Authority
DE
Germany
Prior art keywords
data
level
suggestions
storage
memory
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.)
Pending
Application number
DE112019005392.2T
Other languages
English (en)
Inventor
Sandeep Ramesh Patil
Sasikanth Eda
Abhishek Jain
Digvijay Ukirde
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 DE112019005392T5 publication Critical patent/DE112019005392T5/de
Pending 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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]
    • 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/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Ein durch einen Computer umgesetztes Verfahren gemäß einer Ausführungsform umfasst: Empfangen von einem oder mehreren Vorschlägen, die einer Positionierung von Daten in einem Speicher entsprechen, wobei der eine oder die mehreren Vorschläge auf Datenarbeitslastmerkmalen beruhen. Der eine oder die mehreren Vorschläge werden verwendet, um Abschnitte von in einem aktuellen Speicher gespeicherten aktuellen Daten zu identifizieren, die dem einen oder den mehreren Vorschlägen entsprechen. Für jeden der identifizierten Abschnitte der in der ersten Ebene gespeicherten aktuellen Daten werden der eine oder die mehreren Vorschläge ferner verwendet, um zu bestimmen, ob der bestimmte identifizierte Abschnitt der aktuellen Daten zu der zweiten Ebene transferiert werden soll. Ferner werden in Reaktion auf das Bestimmen, mindestens einen der identifizierten Abschnitte der aktuellen Daten zu der zweiten Ebene zu transferieren, eine oder mehrere Anweisungen gesendet, um den mindestens einen der identifizierten Abschnitte der aktuellen Daten von der ersten Ebene zu der zweiten Ebene zu transferieren.

Description

  • HINTERGRUND
  • Die vorliegende Erfindung betrifft Datenspeichersysteme, und insbesondere betrifft diese Erfindung ein Verwenden von Datenarbeitslastmerkmalen, um das Information Lifecycle Management (Lebenszyklus-Management für Informationen) zu verbessern.
  • Informationen unterliegen in der Regel einer Anzahl von Operationen während der Zeit, in der sie im Speicher beibehalten werden. Zum Beispiel unterliegen Abschnitte von Daten, nachdem sie im Speicher gespeichert wurden (z.B. in den Speicher geschrieben wurden), einer Anzahl von Leseoperationen und/oder Modifizierungsoperationen. Verschiedene Abschnitte der Daten werden in der Regel im Lauf der Zeit zu verschiedenen Speicherorten im Speicher verschoben (z.B. neu geschrieben). Mit im Lauf der Zeit zunehmend größer werdenden Speicherkapazitäten und Datendurchsatzraten nimmt auch der Wunsch nach Speichersystemen zu, die diese Zugriffsoperationen in effizienter Weise ausführen können.
  • In Reaktion darauf setzen viele Speichersysteme ein Information Lifecycle Management (ILM) um. ILM ist ein umfassender Ansatz zum Verwalten des Flusses der in einem Informationssystem enthaltenen Daten und/oder Metadaten ab dem Erstellungszeitpunkt (z.B. erstmalige Speicherung) bis zum Löschzeitpunkt. Herkömmliche ILM-Konzepte waren jedoch nicht in der Lage, die Verteilung von Informationen in Cluster-Dateisystemen effektiv zu verwalten. Dies trifft insbesondere auf Cluster-Dateisysteme zu, in denen ein Daten-Striping über verschiedene Speicherabschnitte erfolgt.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Ein durch einen Computer umgesetztes Verfahren gemäß einer Ausführungsform umfasst: Empfangen von einem oder mehreren Vorschlägen, die einer Positionierung von Daten in einem Speicher entsprechen, wobei der eine oder die mehreren Vorschläge auf Datenarbeitslastmerkmalen beruhen. Der eine oder die mehreren Vorschläge werden verwendet, um Abschnitte von in einem aktuellen Speicher gespeicherten aktuellen Daten zu identifizieren, die dem einen oder den mehreren Vorschlägen entsprechen. Der aktuelle Speicher umfasst: eine erste Ebene mit zwei oder mehr gemeinsam genutzten Knoten und eine zweite Ebene mit mindestens einem Shared-Nothing-Knoten. Für jeden der identifizierten Abschnitte der in der ersten Ebene gespeicherten aktuellen Daten wird der eine bzw. werden die mehreren Vorschläge ferner verwendet, um zu bestimmen, ob der bestimmte identifizierte Abschnitt der aktuellen Daten zu der zweiten Ebene transferiert werden soll. Ferner werden in Reaktion auf das Bestimmen, mindestens einen der identifizierten Abschnitte der aktuellen Daten zu der zweiten Ebene zu transferieren, eine oder mehrere Anweisungen gesendet, um den mindestens einen der identifizierten Abschnitte der aktuellen Daten von der ersten Ebene zu der zweiten Ebene zu transferieren.
  • Ein Computerprogrammprodukt gemäß einer weiteren Ausführungsform enthält ein durch einen Computer lesbares Speichermedium mit darauf verkörperten Programmanweisungen. Die Programmanweisungen sind durch einen Prozessor lesbar und/oder ausführbar, um den Prozessor zu veranlassen, das vorgenannte Verfahren auszuführen.
  • Ein System gemäß einer weiteren Ausführungsform umfasst: einen Prozessor und Logik, die in den Prozessor integriert ist, durch den Prozessor ausführbar ist, oder in den Prozessor integriert und durch den Prozessor ausführbar ist. Ferner ist die Logik konfiguriert, um: das vorgenannte Verfahren auszuführen.
  • Ein durch einen Computer umgesetztes Verfahren gemäß noch einer weiteren Ausführungsform umfasst: ein Analysieren von Arbeitslastmerkmalen von Daten, die in einem Cluster-Dateisystem gespeichert sind. Das Cluster-Dateisystem ist in einem Speicher umgesetzt, der eine erste Ebene mit zwei oder mehr gemeinsam genutzten Knoten und eine zweite Ebene mit mindestens einem Shared-Nothing-Knoten umfasst. Des Weiteren sind die erste und die zweite Ebene in einem selben Namensbereich enthalten. Die analysierten Arbeitslastmerkmale werden zum Generieren von einem oder mehreren Vorschlägen verwendet, die einer Positionierung der Daten in dem Speicher entsprechen. Außerdem werden der eine oder die mehreren Vorschläge verwendet, um mindestens einige der Daten in dem Speicher zwischen der ersten und der zweiten Ebene zu transferieren.
  • Ein System gemäß einer weiteren Ausführungsform umfasst: einen Speicher, der eine erste Ebene mit zwei oder mehr gemeinsam genutzten Knoten und eine zweite Ebene mit mindestens einem Shared-Nothing-Knoten umfasst. Des Weiteren sind die erste und die zweite Ebene in einem selben Namensbereich enthalten. Das System umfasst auch einen Prozessor und Logik, die in den Prozessor integriert ist, durch den Prozessor ausführbar ist, oder in den Prozessor integriert und durch den Prozessor ausführbar ist. Die Logik ist konfiguriert, um: die Arbeitslastmerkmale von Daten, die in dem Speicher gespeichert sind, durch den Prozessor zu analysieren. Die analysierten Arbeitslastmerkmale werden ferner von dem Prozessor verwendet, um einen oder mehrere Vorschläge zu generieren, die einer Positionierung der Daten in dem Speicher entsprechen. Außerdem wird der eine bzw. werden die mehreren Vorschläge von dem Prozessor verwendet, um mindestens einige der Daten in dem Speicher zwischen der ersten und der zweiten Ebene zu transferieren.
  • Weitere Aspekte und Ausführungsformen der vorliegenden Erfindung, die in Verbindung mit den Zeichnungen beispielhaft die Grundgedanken der Erfindung veranschaulichen, werden aus der folgenden ausführlichen Beschreibung offenkundig.
  • Figurenliste
    • 1 veranschaulicht eine Netzwerkarchitektur gemäß einer Ausführungsform.
    • 2 zeigt eine repräsentative Hardware-Umgebung, die den Servern und/oder Clients von 1 gemäß einer Ausführungsform zugehörig sein kann.
    • 3 veranschaulicht ein Mehrebenen-Datenspeichersystem gemäß einer Ausführungsform.
    • 4 ist eine Teildarstellungsansicht eines Cluster-Dateisystems gemäß einer Ausführungsform.
    • 5A ist ein Ablaufplan eines Verfahrens gemäß einer Ausführungsform.
    • 5B ist ein Ablaufplan eines Verfahrens gemäß einer Ausführungsform .
    • 5C ist ein Ablaufplan eines Verfahrens gemäß einer Ausführungsform .
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die folgende Beschreibung wird zum Zweck einer Veranschaulichung der allgemeinen Grundgedanken der vorliegenden Erfindung angegeben und soll die hierin beanspruchten erfinderischen Konzepte keinesfalls einschränken. Ferner können bestimmte hierin beschriebene Merkmale in Kombination mit anderen beschriebenen Merkmalen in jeder der verschiedenen möglichen Kombinationen und Variationen verwendet werden.
  • Sofern hierin nicht speziell anders definiert, gilt für alle Begriffe die breitestmögliche Interpretation, einschließlich aus der Patentschrift implizierten Bedeutungen sowie Bedeutungen, die von einem Fachmann verstanden werden und/oder wie sie in Wörterbüchern, Abhandlungen usw. definiert sind.
  • Es ist auch anzumerken, dass die Singularformen „ein“, „eine“ und „der/die/das“, wie in der Patentschrift und den Ansprüchen im Anhang verwendet, Plural-Entsprechungen enthalten, sofern nicht anders angegeben. Es versteht sich des Weiteren, dass die Begriffe „weist auf“ und/oder „aufweisend“ bei Verwendung in dieser Patentschrift das Vorhandensein ausgewiesener Merkmale, Ganzzahlen, Schritte, Vorgänge, Elemente und/oder Komponenten angeben, das Vorhandensein oder die Hinzufügung von einem oder mehreren anderen Merkmalen, Ganzzahlen, Schritten, Vorgängen, Elementen, Komponenten und/oder Gruppen davon aber nicht ausschließen.
  • Die folgende Beschreibung offenbart mehrere bevorzugte Ausführungsformen von Systemen, Verfahren und Computerprogrammprodukten zum Erzielen von Frameworks, die sowohl Striping- als auch Nicht-Striping-Speicherkonfigurationen in einem einzigen (selben) Namensbereich unterstützen können. Außerdem sind einige der Ausführungsformen hierin fähig, ILM-Konzepte erheblich zu verbessern, um Daten zwischen verschiedenen Ebenen entsprechend zu positionieren oder zu migrieren, wobei einige mittels Sonderzweck-Hardware auf Grundlage von Datenarbeitslastmerkmalen sowie Vorschlägen und/oder davon abgeleiteten Datenmodellen ermöglicht werden, wie z.B. im Folgenden ausführlicher beschrieben wird.
  • In einer allgemeinen Ausführungsform umfasst ein durch einen Computer umgesetztes Verfahren: Empfangen von einem oder mehreren Vorschlägen, die einer Positionierung von Daten in einem Speicher entsprechen, wobei der eine oder die mehreren Vorschläge auf Datenarbeitslastmerkmalen beruhen. Der eine oder die mehreren Vorschläge werden verwendet, um Abschnitte von in einem aktuellen Speicher gespeicherten aktuellen Daten zu identifizieren, die dem einen oder den mehreren Vorschlägen entsprechen. Der aktuelle Speicher umfasst: eine erste Ebene mit zwei oder mehr gemeinsam genutzten Knoten und eine zweite Ebene mit mindestens einem Shared-Nothing-Knoten. Für jeden der identifizierten Abschnitte der aktuellen Daten, die in der ersten Ebene gespeichert sind, wird der bzw. werden die mehreren Vorschläge ferner verwendet, um zu bestimmen, ob der bestimmte identifizierte Abschnitt der aktuellen Daten zu der zweiten Ebene transferiert werden soll. Ferner werden in Reaktion auf das Bestimmen, mindestens einen der identifizierten Abschnitte der aktuellen Daten zu der zweiten Ebene zu transferieren, eine oder mehrere Anweisungen gesendet, um den mindestens einen der identifizierten Abschnitte der aktuellen Daten von der ersten Ebene zu der zweiten Ebene zu transferieren.
  • In einer weiteren allgemeinen Ausführungsform enthält ein Computerprogrammprodukt ein durch einen Computer lesbares Speichermedium mit darauf verkörperten Programmanweisungen. Die Programmanweisungen sind durch einen Prozessor lesbar und/oder ausführbar, um den Prozessor zu veranlassen, das vorgenannte Verfahren auszuführen.
  • In einer weiteren allgemeinen Ausführungsform umfasst ein System: einen Prozessor und Logik, die in den Prozessor integriert ist, durch den Prozessor ausführbar ist oder in den Prozessor integriert und durch den Prozessor ausführbar ist. Ferner ist die Logik konfiguriert, um: das vorgenannte Verfahren auszuführen.
  • In noch einer weiteren allgemeinen Ausführungsform umfasst ein durch einen Computer umgesetztes Verfahren: ein Analysieren von Arbeitslastmerkmalen von Daten, die in einem Cluster-Dateisystem gespeichert sind. Das Cluster-Dateisystem ist in einem Speicher umgesetzt, der eine erste Ebene mit zwei oder mehr gemeinsam genutzten Knoten und eine zweite Ebene mit mindestens einem Shared-Nothing-Knoten umfasst. Des Weiteren sind die erste und die zweite Ebene in einem selben Namensbereich enthalten. Die analysierten Arbeitslastmerkmale werden verwendet, um einen oder mehrere Vorschläge zu generieren, die einer Positionierung der Daten in dem Speicher entsprechen. Außerdem wird der eine bzw. werden die mehreren Vorschläge verwendet, um mindestens einige der Daten in dem Speicher zwischen der ersten und der zweiten Ebene zu transferieren.
  • In einer weiteren allgemeinen Ausführungsform umfasst ein System: einen Speicher, der eine erste Ebene mit zwei oder mehr gemeinsam genutzten Knoten und eine zweite Ebene mit mindestens einem Shared-Nothing-Knoten umfasst. Des Weiteren sind die erste und die zweite Ebene in einem selben Namensbereich enthalten. Das System umfasst auch einen Prozessor und Logik, die in den Prozessor integriert ist, durch den Prozessor ausführbar ist, oder in den Prozessor integriert und durch den Prozessor ausführbar ist. Die Logik ist konfiguriert, um: die Arbeitslastmerkmale von Daten, die in dem Speicher gespeichert sind, durch den Prozessor zu analysieren. Die analysierten Arbeitslastmerkmale werden ferner von dem Prozessor verwendet, um einen oder mehrere Vorschläge zu generieren, die einer Positionierung der Daten in dem Speicher entsprechen. Außerdem wird der eine bzw. werden die mehreren Vorschläge von dem Prozessor verwendet, um mindestens einige der Daten in dem Speicher zwischen der ersten und der zweiten Ebene zu transferieren.
  • 1 veranschaulicht eine Architektur 100 gemäß einer Ausführungsform. Wie in 1 gezeigt, wird eine Mehrzahl von entfernt angeordneten Netzwerken 102 bereitgestellt, die ein erstes entfernt angeordnetes Netzwerk 104 und ein zweites entfernt angeordnetes Netzwerk 106 umfassen. Ein Gateway 101 kann zwischen den entfernt angeordneten Netzwerken 102 und einem benachbarten Netzwerk 108 eingekoppelt werden. Im Kontext der vorliegenden Architektur 100 können die Netzwerke 104, 106 jeweils jede Form annehmen, einschließlich eines lokalen Netzwerks (LAN), eines Weitverkehrsnetzwerks (WAN) wie beispielsweise das Internet, ein öffentliches Fernsprechnetz (PSTN), ein internes Telefonnetz usw., sie sind aber nicht darauf beschränkt.
  • Im Betrieb dient das Gateway 101 als Zugangspunkt von den entfernt angeordneten Netzwerken 102 in das benachbarte Netzwerk 108. Dementsprechend kann das Gateway 101 wie ein Router funktionieren, der fähig ist, ein bestimmtes Datenpaket, das am Gateway 101 ankommt, und einen Schalter zu steuern, der den aktuellen Pfad in das und aus dem Gateway 101 für ein bestimmtes Paket liefert.
  • Ferner ist mindestens ein Datenserver 114 enthalten, der mit dem benachbarten Netzwerk 108 verbunden ist, und auf den von den entfernt angeordneten Netzwerken 102 über das Gateway 101 zugegriffen werden kann. Es ist anzumerken, dass der bzw. die Datenserver 114 jeden Typ einer Datenverarbeitungseinheit/Groupware enthalten kann bzw. können. Mit jedem Datenserver 114 ist eine Mehrzahl von Benutzereinheiten 116 verbunden. Die Benutzereinheiten 116 können auch direkt über eines der Netzwerke 104, 106, 108 verbunden werden. Derartige Benutzereinheiten 116 können einen Desktop-Computer, Laptop-Computer, Handheld-Computer, Drucker und/oder jeden anderen Typ von Logik umfassen. Es ist anzumerken, dass eine Benutzereinheit 111 in einer Ausführungsform auch direkt mit jedem der Netzwerke verbunden werden kann.
  • Eine Peripherie-Einheit 120 oder eine Reihe von Peripherie-Einheiten 120, z.B. Faxgeräte, Drucker, vernetzte und/oder lokale Speichereinheiten oder -systeme usw. können mit einem oder mehreren der Netzwerke 104, 106, 108 verbunden werden. Es ist anzumerken, dass Datenbanken und/oder zusätzliche Komponenten zusammen mit jedem Typ von Netzwerkelement verwendet oder in jeden Typ von Netzwerkelement integriert werden können, der mit den Netzwerken 104, 106, 108 verbunden ist. Im Kontext der vorliegenden Beschreibung kann ein Netzwerkelement sich auf jede Komponente eines Netzwerks beziehen.
  • Gemäß einigen Ansätzen können hierin beschriebene Verfahren und Systeme mit und/oder auf virtuellen Systemen und/oder Systemen umgesetzt werden, die ein oder mehrere andere Systeme emulieren, wie zum Beispiel ein UNIX-System, das eine IBM z/OS-Umgebung emuliert, ein UNIX-System, das virtuell eine MICROSOFT WINDOWS-Umgebung hostet, ein MICROSOFT WINDOWS-System, das eine IBM z/OS-Umgebung emuliert usw. Diese Virtualisierung und/oder Emulation kann in einigen Ausführungsformen unter Verwendung von VMWARE-Software verbessert werden.
  • In mehreren Ansätzen kann ein bzw. können mehrere Netzwerke 104, 106, 108 ein Cluster von Systemen darstellen, auf die allgemein als eine „Cloud“ verwiesen wird. Im Cloud Computing werden gemeinsam genutzte Ressourcen wie Verarbeitungsleistung, Peripherie-Einheiten, Software, Daten, Server usw. für jedes System in der Cloud in einer bedarfsgesteuerten Beziehung bereitgestellt, wodurch der Zugriff auf und die Verteilung von Diensten über viele Datenverarbeitungssysteme übergreifend ermöglicht wird. Zu Cloud Computing gehört in der Regel eine Internet-Verbindung zwischen den in der Cloud betriebenen Systemen, aber es können auch andere Techniken zum Verbinden der Systeme verwendet werden.
  • 2 zeigt gemäß einer Ausführungsform eine repräsentative Hardware-Umgebung mit einer Benutzereinheit 116 und/oder dem Server 114 von 1. Eine derartige Figur veranschaulicht eine typische Hardware-Konfiguration einer Workstation mit einer zentralen Verarbeitungseinheit 210, wie zum Beispiel ein Mikroprozessor, und einer Anzahl anderer Einheiten, die über einen Systembus 212 untereinander verbunden sind.
  • Die in 2 gezeigte Workstation umfasst einen Direktzugriffsspeicher (RAM) 214, Nur-Lese-Speicher (ROM) 216, einen Eingabe/Ausgabe- (E/A) Adapter 218 zum Verbinden von Peripherie-Einheiten, wie zum Beispiel Plattenspeichereinheiten 220, mit dem Bus 212, einen Benutzerschnittstellen-Adapter 222 zum Anschließen einer Tastatur 224, einer Maus 226, eines Lautsprechers 228, eines Mikrofons 232 und/oder anderer Benutzerschnittstellen-Einheiten, wie zum Beispiel ein Berührungsbildschirm, eine Digitalkamera (nicht gezeigt), an den Bus 212, einen Übertragungsadapter 234 zum Verbinden der Workstation mit einem Datenübertragungsnetzwerk 235 (z.B. ein Datenverarbeitungsnetzwerk) und einen Anzeigeadapter 236 zum Verbinden des Busses 212 mit einer Anzeigeeinheit 238.
  • Auf der Workstation kann sich ein Betriebssystem befinden wie zum Beispiel das Windows® Betriebssystem (OS) von Microsoft, ein MAC OS, ein UNIX OS usw. Es sollte klar sein, dass eine bevorzugte Ausführungsform auch auf anderen Plattformen und Betriebssystemen als den erwähnten umgesetzt werden kann. Eine bevorzugte Ausführungsform kann unter Verwendung von eXtensible Markup Language (XML), C und/oder C++-Sprache oder anderen Programmiersprachen zusammen mit einer objektorientierten Programmiermethodik geschrieben werden. Eine objektorientierte Programmierung (OOP), die immer häufiger zum Entwickeln von komplexen Anwendungen eingesetzt wird, kann verwendet werden.
  • Unter folgender Bezugnahme auf 3 wird ein Speichersystem 300 gemäß einer Ausführungsform gezeigt. Zu beachten ist, dass einige der in 3 gezeigten Elemente gemäß verschiedenen Ausführungsformen als Hardware und/oder Software umgesetzt werden können. Das Speichersystem 300 kann einen Speichersystem-Manager 312 für einen Datenaustausch mit einer Mehrzahl von Medien und/oder Laufwerken auf mindesten einer höheren Speicherebene 302 und mindestens einer niedrigeren Speicherebene 306 umfassen. Die höhere Speicherebene bzw. höheren Speicherebenen 302 kann bzw. können ein oder mehrere wahlfreie Zugriffs- und/oder Direktzugriffsmedien 304 umfassen, wie zum Beispiel Festplatten in Festplattenlaufwerken (HDDs), nicht flüchtiger Arbeitsspeicher (NVM), Solid-State-Speicher in Solid State-Drives (SSDs), Flash-Speicher, SSD-Arrays, Flash-Speicher-Arrays usw. und/oder andere hierin erwähnte oder im Stand der Technik bekannte. Die niedrigere Speicherebene bzw. niedrigeren Speicherebenen 306 kann bzw. können bevorzugt ein oder mehrere Speichermedien mit geringerer Leistung 308 umfassen, darunter Medien mit sequentiellem Zugriff wie Magnetband in Bandlaufwerken und/oder optische Medien, HDDs mit langsamerem Zugriff, SSDs mit langsamerem Zugriff usw. und/oder andere hierin erwähnte oder im Stand der Technik bekannte. Eine oder mehrere zusätzliche Ebenen 316 können je nach Wunsch eines Entwicklers des Systems 300 jede Kombination von Speichermedien umfassen. Ebenso kann jede der höheren Speicherebenen 302 und/oder der niedrigeren Speicherebenen 306 eine Kombination von Speichereinheiten und/oder Speichermedien umfassen.
  • Der Speichersystem-Manager 312 kann mit den Laufwerken und/oder Speichermedien 304, 308 auf der bzw. den höheren Speicherebenen 302 und der bzw. den niedrigeren Speicherebenen 306 über ein Netzwerk 310 Daten austauschen, wie zum Beispiel ein Speicherbereichsnetzwerk (SAN), wie in 3 gezeigt, oder einen anderen geeigneten Netzwerktyp. Der Speichersystem-Manager 312 kann auch mit einem oder mehreren Host-Systemen (nicht gezeigt) über eine Host-Schnittstelle 314 Daten austauschen, die Teil des Speichersystem-Managers 312 sein kann, aber nicht sein muss. Der Speichersystem-Manager 312 und/oder jede andere Komponente des Speichersystems 300 kann in Hardware und/oder Software umgesetzt werden und kann einen Prozessor (nicht gezeigt) zum Ausführen von Befehlen eines im Stand der Technik bekannten Typs nutzen, wie zum Beispiel eine Zentraleinheit (CPU), eine feldprogrammierbare Gatter-Anordnung (FPGA, field programmable gate array) oder eine anwendungsspezifische integrierte Schaltung (ASIC) usw. Selbstverständlich kann jede Anordnung eines Speichersystems verwendet werden, wie dem Fachmann beim Lesen der vorliegenden Beschreibung klar sein wird.
  • In weiteren Ausführungsformen kann das Speichersystem 300 jede Anzahl von Datenspeicherebenen umfassen und kann dieselben oder verschiedene Speichermedien innerhalb jeder Speicherebene enthalten. Zum Beispiel kann jede Datenspeicherebene denselben Typ von Speichermedien umfassen, wie beispielsweise HDDs, SSDs, Medien mit sequenziellem Zugriff (Band in Bandlaufwerken, optische Platte in optischen Plattenlaufwerken usw.), Medien mit Direktzugriff (CD-ROM, DVD-ROM usw.) oder jede Kombination von Medienspeichertypen. In einer derartigen Konfiguration kann eine höhere Speicherebene 302 eine Mehrheit von SSD-Speichermedien zum Speichern von Daten in einer Speicherumgebung mit höherer Leistung umfassen, und restliche Speicherebenen, darunter die niedrigere Speicherebene 306 und zusätzliche Speicherebenen 316 können jede Kombination von SSDs, HDDs, Bandlaufwerken usw. umfassen, um Daten in einer Speicherumgebung mit niedrigerer Leistung zu speichern. Auf diese Weise können Daten, auf die häufiger zugegriffen wird, Daten mit einer höheren Priorität, Daten, auf die schneller zugegriffen werden muss usw. auf der höheren Speicherebene 302 gespeichert werden, während Daten ohne eines dieser Attribute in den zusätzlichen Speicherebenen 316, einschließlich der niedrigeren Speicherebene 306 gespeichert werden können. Selbstverständlich kann der Fachmann nach dem Lesen der vorliegenden Beschreibung viele andere Kombinationen von Speichermedientypen für die Umsetzung in verschiedenen Speicherkonzepten gemäß den hierin vorgestellten Ausführungsformen entwickeln.
  • Gemäß einigen Ausführungsformen kann das Speichersystem (wie beispielsweise 300) Logik umfassen, die zum Empfangen einer Anforderung zum Öffnen eines Datensatzes konfiguriert ist, Logik, die konfiguriert ist, um zu bestimmen, ob der angeforderte Datensatz auf einer niedrigeren Speicherebene 306 eines Mehrebenen-Datenspeichersystems 300 in mehreren zugehörigen Abschnitten gespeichert ist, Logik, die konfiguriert ist, um jeden zugehörigen Abschnitt des angeforderten Datensatzes zu einer höheren Speicherebene 302 des Mehrebenen-Datenspeichersystems 300 zu verschieben, und Logik, die konfiguriert ist, um den angeforderten Datensatz auf der höheren Speicherebene 302 des Mehrebenen-Datenspeichersystems 300 aus den zugehörigen Abschnitten zusammenzusetzen.
  • Selbstverständlich kann diese Logik gemäß verschiedenen Ausführungsformen als Verfahren auf jeder Einheit und/oder jedem System oder als ein Computerprogrammprodukt umgesetzt werden.
  • Wie vorher erwähnt, setzen viele Speichersysteme ILM um, um den Fluss der in einem Informationssystem enthaltenen Daten und/oder Metadaten ab dem Erstellungszeitpunkt (z.B. erstmalige Speicherung) bis zum Löschzeitpunkt zu verwalten. Herkömmliche ILM-Konzepte waren jedoch nicht in der Lage, die Verteilung von Informationen in Cluster-Dateisystemen effektiv zu verwalten. Dies trifft insbesondere auf Cluster-Dateisysteme zu, in denen ein Daten-Striping über verschiedene Speicherabschnitte erfolgt. Während zum Beispiel ein Daten-Striping über verschiedene Speicherplatten einen erzielbaren Durchsatz erhöht, erhöht sich auch die Latenz in Situationen, die ein erneutes Abrufen jedes Fragments von der jeweiligen Platte erfordern, wie z.B. im Folgenden ausführlicher beschrieben wird.
  • Unter Bezugnahme auf 4 wird eine Darstellungsansicht eines Cluster-Dateisystems 400 gemäß einer Ausführungsform veranschaulicht. Als Option kann das vorliegende Cluster-Dateisystem 400 in Verbindung mit Merkmalen aus jeder anderen hierin aufgeführten Ausführungsform umgesetzt werden, wie beispielsweise diejenigen, die unter Bezugnahme auf die anderen Figuren wie beispielsweise 3 beschrieben werden. Ein derartiges Cluster-Dateisystem 400 und andere hierin dargestellte können jedoch in verschiedenen Anwendungen und/oder in Variationen verwendet werden, die in den hierin aufgeführten veranschaulichten Ausführungsformen speziell beschrieben sein können. Ferner kann das Cluster-Dateisystem 400 in jeder gewünschten Umgebung verwendet werden. Somit kann für 4 (und die anderen Figuren) davon ausgegangen werden, dass sie alle möglichen Variationen umfassen.
  • Wie gezeigt, umfasst das Cluster-Dateisystem 400 eine erste Ebene 402 und eine zweite Ebene 404. In bevorzugten Ansätzen sind die erste und die zweite Ebene 402, 404 in einem selben Namensbereich des Cluster-Dateisystems 400 enthalten. Dementsprechend können die erste und die zweite Ebene 402, 404 in einem selben abstrakten Container oder in einer Umgebung enthalten sein, die erstellt wurde, um eine logische Gruppierung von eindeutigen Kennungen oder Symbolen aufzunehmen, wie einem Fachmann z.B. nach dem Lesen der vorliegenden Beschreibung klar sein dürfte. Ferner wird eine erste Inodenstruktur, die der ersten Ebene 402 entspricht, bevorzugt von einer zweiten Inodenstruktur getrennt verwaltet, die der zweiten Ebene 404 entspricht. In einigen Ansätzen können die erste und die zweite Ebene 402, 404 jedoch jeweils einem eindeutigen Abschnitt einer kombinierten Inodenstruktur zugewiesen werden.
  • Unter spezieller Bezugnahme auf die erste Ebene 402 werden gemeinsam genutzte Knoten 406, 408 mit jeder einer Anzahl von verschiedenen Speicherkomponenten 410 verbunden, die jeden gewünschten Typ aufweisen können. Zum Beispiel können in verschiedenen Ansätzen eine oder mehrere der Speicherkomponenten 410 HDDs, SSDs, Magnetbandbibliotheken usw. und/oder Kombinationen davon umfassen. Somit kann ein bzw. können mehrere der gemeinsam genutzten Knoten 406, 408 tatsächlich ein gemeinsam genutzter Laufwerksknoten sein. Jeder der gemeinsam genutzten Knoten 406, 408 umfasst auch einen Controller 412 und einen Speicherabschnitt 414, der z.B. als Cache dienen kann. Beachtet werden sollte auch, dass je nach gewünschtem Ansatz jeder der Controller 412 jeden gewünschten Typ von Verarbeitungskomponente(n) umfassen oder tatsächlich daraus bestehen kann, wie beispielsweise ein Prozessor, ein Server, eine CPU usw.
  • Die zweite Ebene 404 umfasst ebenfalls eine Anzahl von verschiedenen Speicherkomponenten 416, von denen jede mit einem jeweiligen Shared-Nothing-Knoten 418 verbunden ist. Jeder der Shared-Nothing-Knoten 418 hat eine Shared-Nothing-Architektur, zu der eine verteilte Datenverarbeitungsarchitektur gehört, in der jeder der Knoten 418 unabhängig und in Bezug zueinander eigenständig ist. In einigen veranschaulichenden Ansätzen besteht kein einziger strittiger Punkt über die zweite Ebene 404. Dementsprechend teilen die Shared-Nothing-Knoten 418 Speicher- und/oder Datenverarbeitungsressourcen nicht zwischen sich auf, was z.B. einem Fachmann nach dem Lesen der vorliegenden Beschreibung klar sein dürfte.
  • Daraus folgt, dass die erste Ebene 402 zu einem Daten-Striping über die Speicherkomponenten 410 unter Verwendung der gemeinsam genutzten Knoten 406, 408 fähig ist, während die zweite Ebene 404 nicht zu einem Daten-Striping über die Speicherkomponenten 416 unter Verwendung der Shared-Nothing-Knoten 418 fähig ist. Wiederum ist jeder der gemeinsam genutzten Knoten 406, 408 mit jeder der verschiedenen Speicherkomponenten 410 verbunden, was ermöglicht, dass Daten durch einen der gemeinsam genutzten Knoten 406, 408 in die Speicherkomponenten 410 geschrieben und/oder aus diesen gelesen werden können. Wie dem Fachmann klar sein dürfte, ist Daten-Striping die Technik zum logischen Segmentieren von sequentiellen Daten, wie z.B. eine Datei, sodass aufeinanderfolgende Segmente auf verschiedenen physischen Speichereinheiten gespeichert werden. Striping ist nützlich, wenn eine Verarbeitungseinheit Daten schneller anfordert als eine einzelne Speichereinheit diese bereitstellen kann. Der Grund hierfür ist, dass eine Verbreitung von Segmenten über mehrere Einheiten, auf die gleichzeitig zugegriffen werden kann, den insgesamt erreichbaren Datendurchsatz erhöht. Daten-Striping ist ebenfalls ein nützlicher Prozess zum Ausgleichen von E/A-Lasten über ein Array von Speicherkomponenten. Ferner umfassen einige Daten-Striping-Prozesse ein Verschachteln von sequentiellen Datensegmenten auf Speichereinheiten in einem Roundrobin-Prinzip ab dem Beginn der Datensequenz.
  • Im Gegensatz dazu haben alle der Shared-Nothing-Knoten 418 eine Shared-Nothing-Architektur und können daher ein Daten-Striping nicht umsetzen. Stattdessen setzt jeder der Shared-Nothing-Knoten 418 einen Non-Striping-Modus der Daten um, wie z.B. ein allgemeines paralleles Dateisystem für einen Shared-Nothing-Cluster- (GPFS-SNC) Modus. Gemäß einem beispielhaften Ansatz, der die Erfindung keinesfalls einschränken soll, umfasst der GPFS-SNC-Modus ein skalierbares Dateisystem, das über einen bestimmten Cluster arbeitet. Es ist auch anzumerken, dass die Anzahl von Komponenten, die in der ersten und der zweiten Ebene 402, 404 enthalten sind, keinesfalls als einschränkend aufzufassen ist. Stattdessen kann jede gewünschte Anzahl von Knoten, Speicherkomponenten usw. abhängig vom gewünschten Ansatz umgesetzt werden.
  • Zwar sind Striping-Modi in einigen Situationen im Hinblick auf den durch sie bereitgestellten Parallelismus wünschenswert, doch bieten auch Non-Striping-Modi Vorteile. Zum Beispiel kann mit Non-Striping-Architekturen ein Ortsbezug erreicht werden, der es ermöglicht, dass Rechenaufgaben auf Knoten geplant werden, auf denen sich die Daten befinden. Metablöcke werden ebenfalls umgesetzt und ermöglichen, dass große und kleine Blockgrößen in demselben Dateisystem nebeneinander existieren, wodurch die Anforderungen von verschiedenen Anwendungstypen erfüllt werden. Eine Schreibaffinität, die es Anwendungen ermöglicht, das Layout von Dateien auf verschiedenen Knoten vorzugeben, um sowohl die Schreib- als auch Lese-Bandbreite zu maximieren, wird in einigen Ansätzen ebenfalls verwirklicht. Ferner kann eine Pipeline-Replikation verwendet werden, um die Nutzung von Netzwerkbandbreite für die Datenreplikation zu erhöhen, während eine verteilte Wiederherstellung verwendet werden kann, um die Auswirkung von Fehlern auf laufende Berechnungen zu reduzieren. Daraus folgt, dass ein Dateisystem wünschenswert ist, das sowohl Striping-Modi als auch Non-Striping-Modi effizient umsetzen kann.
  • Jeder der Shared-Nothing-Knoten 418 umfasst einen Controller 420, einen Speicherabschnitt 422 (der z.B. in einigen Fällen als Cache dienen kann) und eine Sonderzweck-Hardware 424. Mit der zunehmenden allgemeinen Nutzung von Daten und immer größeren Speicherkapazitäten verstärkt sich für das gesamte System jede Latenz, die einem Ausführen von Datenzugriffsoperationen zugehörig ist. Dies trifft insbesondere auf vorherige Cluster-Dateisysteme zu, in denen ein Daten-Striping über verschiedene Speicherabschnitte erfolgt. Während zum Beispiel Daten-Striping über verschiedene Speicherplatten einen erzielbaren Durchsatz erhöhen kann, erhöht sich auch die Latenz in Situationen, die ein erneutes Abrufen jedes Fragments aus ihren jeweiligen Speicherplätzen erfordern.
  • Um dieser Latenz entgegenzuwirken, setzen einige der hierin enthaltenen Ausführungsformen die Sonderzweck-Hardware 424 um. Die Sonderzweck-Hardware 424 ist bevorzugt fähig, die Geschwindigkeit zu erhöhen, mit der die Shared-Nothing-Knoten 418 in der zweiten Ebene 404 Datenoperationen ausführen können. Mit anderen Worten, die Sonderzweck-Hardware 424 erhöht effizient die Geschwindigkeit, mit der Datenübertragungen zwischen jedem der Shared-Nothing-Knoten 418 und der jeweiligen Speicherkomponente 416 ausgeführt werden, die damit verbunden ist. Dies ermöglicht, dass von den Speicherkomponenten 416 aus viel schneller auf Daten zugegriffen werden kann, wodurch die einem Ausführen von Leseoperationen, Schreiboperationen, erneuten Schreiboperationen usw. zugehörige Latenz beträchtlich reduziert wird.
  • Eine veranschaulichende Liste von Komponenten, die zum Ausbilden der Sonderzweck-Hardware 424 verwendet werden können, umfasst eine Grafikverarbeitungseinheit (GPU), einen SSD-Cache, eine ASIC, einen nicht flüchtigen Memory Express (NVMe) usw. und/oder Kombinationen davon, sie ist aber keinesfalls darauf beschränkt. Gemäß einem Beispiel, das die Erfindung keinesfalls einschränken soll, kann die Sonderzweck-Hardware 424 mit einer enthaltenen GPU verwendet werden, um die Entwicklung von Maschinenlernmodellen zu unterstützen, wie z.B. im Folgenden ausführlicher beschrieben wird. Des Weiteren kann jeder der Shared-Nothing-Knoten 418 abhängig vom gewünschten Ansatz dieselben, ähnliche oder verschiedene Komponenten der Sonderzweck-Hardware 424 umfassen. Zum Beispiel enthält in einigen Ansätzen jeder der Shared-Nothing-Knoten 418 Sonderzweck-Hardware 424 mit SSD-Cache, während in anderen Ansätzen einer der Shared-Nothing-Knoten 418 Sonderzweck-Hardware 424 mit SSD-Cache enthält und ein weiterer der Shared-Nothing-Knoten 418 Sonderzweck-Hardware 424 mit GPU enthält.
  • Ein Kommunikationspfad 426, der sich zwischen jedem der Shared-Nothing-Knoten 418 und der jeweiligen Speicherkomponente 416 erstreckt, die damit verbunden ist, ist ebenfalls fähig, in einigen Ansätzen Datenübertragungsgeschwindigkeiten zu beschleunigen. Gemäß einem Beispiel, das die Erfindung keinesfalls einschränken soll, dient ein Hochgeschwindigkeitsbus eines Peripheral Component Interconnect Express (PCle) als Kommunikationspfad 426, der den Shared-Nothing-Knoten 418 mit der jeweiligen Speicherkomponente verbindet. Des Weiteren kann die Sonderzweck-Hardware 424 in Kombination mit dem PCIe-Bus arbeiten, um den Datentransfer sogar noch weiter zu beschleunigen.
  • Unter weiterer Bezugnahme auf 4 sind sowohl die erste als auch die zweite Ebene 402, 404 mit einem Netzwerk 428 verbunden. Die erste und/oder die zweite Ebene 402, 404 können unter Verwendung einer drahtlosen Verbindung, z.B. WLAN, Bluetooth, ein Mobilfunknetzwerk usw., einer drahtgebundenen Verbindung, z.B. ein Kabel, eine Lichtwellenleiterverbindung, ein Draht usw. oder jedes anderen Typs von Verbindung mit dem Netzwerk 428 verbunden werden, wie dem Fachmann nach dem Lesen der vorliegenden Beschreibung klar sein dürfte. Des Weiteren kann das Netzwerk jeden Typ aufweisen, was z.B. vom gewünschten Ansatz abhängt. Zum Beispiel ist das Netzwerk 428 in einigen Ansätzen ein WAN, wie beispielsweise das Internet. Eine veranschaulichende Liste von anderen Netzwerktypen, die das Netzwerk 428 umsetzen kann, umfasst jedoch ein LAN, ein PSTN, ein SAN, ein internes Telefonnetz usw., sie ist aber nicht darauf beschränkt. Dementsprechend sind die erste und die zweite Ebene 402, 404 fähig, Daten untereinander auszutauschen ohne Berücksichtigung der Größe des zwischen ihnen liegenden Abstands, z.B. trotz einer Positionierung an verschiedenen geografischen Standorten.
  • Ein zentraler Controller 430 und ein Benutzer 432 (z.B. Administrator) sind ebenfalls mit dem Netzwerk 428 verbunden. Der zentrale Controller 430 wird in einigen Ansätzen zum Verwalten der Kommunikation zwischen der ersten und der zweiten Ebene 402, 404 verwendet. Der zentrale Controller 430 kann auch die Kommunikation zwischen dem Benutzer 432 und dem Cluster-Dateisystem 400 verwalten. Gemäß einigen Ansätzen empfängt der zentrale Controller 430 Daten, Operationsanforderungen, Befehle, Formatierungsanweisungen usw. von dem Benutzer 432 und leitet die entsprechenden Abschnitte an die erste und/oder die zweite Ebene 402, 404 weiter.
  • Mit im Lauf der Zeit immer größer werdenden Speicherkapazitäten und Datendurchsatzraten nimmt wiederum auch der Wunsch nach Speichersystemen zu, die Datenzugriffsoperationen in effizienter Weise ausführen können. Verschiedene der hierin enthaltenden Ausführungsformen sind fähig, diese erwünschte Verbesserung durch Umsetzen einer Speicherarchitektur zu erreichen, die ein effizientes Anwenden von Maschinenlern- und/oder Deep-Learning-Algorithmen erlaubt. Des Weiteren können Leistungsmerkmale, die für verschiedene Ebenen in einem Dateisystem spezifisch sind, intelligent zum weiteren Verbessern der Leistung in Echtzeit eingesetzt werden. Unter folgender Bezugnahme auf 5A wird zum Beispiel ein durch einen Computer umgesetztes Verfahren 500 gemäß einer Ausführungsform gezeigt. Das Verfahren 500 kann gemäß der vorliegenden Erfindung in jeder der unter anderem in 1 bis 4 dargestellten Umgebungen in verschiedenen Ausführungsformen ausgeführt werden. Natürlich können mehr oder weniger als die speziell in 5A beschriebenen Operationen im Verfahren 500 enthalten sein, wie dem Fachmann beim Durchlesen der vorliegenden Beschreibungen klar sein wird.
  • Jeder der Schritte des Verfahrens 500 kann von jeder geeigneten Komponente der Betriebsumgebung ausgeführt werden. Zum Beispiel kann jeder der Knoten 501, 502, 503, die im Ablaufplan des Verfahrens 500 gezeigt sind, einem oder mehreren Prozessoren entsprechen, die an einer anderen Stelle in einem Mehrebenen-Datenspeichersystem positioniert sind. Des Weiteren kann jeder des einen oder der mehreren Prozessoren bevorzugt so konfiguriert werden, dass sie miteinander in Datenaustausch stehen.
  • In verschiedenen Ausführungsformen kann das Verfahren 500 teilweise oder ganz von einem Controller, einem Prozessor, usw. oder irgendeiner anderen Einheit mit einem oder mehreren darin integrierten Prozessoren ausgeführt werden. Der Prozessor, z.B. Verarbeitungsschaltung(en), Chip(s) und oder Modul(e), die in Hardware und/oder Software umgesetzt sind und bevorzugt mindestens eine Hardware-Komponente haben, können in jeder Einheit verwendet werden, um einen oder mehrere Schritte des Verfahrens 500 auszuführen. Veranschaulichende Prozessoren umfassen eine Zentraleinheit (CPU), eine ASIC, ein feldprogrammierbares Gate-Array (FPGA) usw., Kombinationen davon oder irgendeine im Stand der Technik bekannte andere geeignete Datenverarbeitungseinheit.
  • Wie oben erwähnt, umfasst 5A verschiedene Knoten 501, 502, 503, von denen jeder einen oder mehreren Prozessoren, Controller, Computer usw. darstellt, die in einem Mehrebenen-Datenspeichersystem an einer verschiedenen Stelle positioniert sind. Zum Beispiel kann der Knoten 501 einen oder mehrere Prozessoren umfassen, die elektrisch mit einer Ebene eines Cluster-Dateisystems verbunden sind (siehe z.B. 412, 420 von 4 oben). Der Knoten 502 kann einen oder mehrere Prozessoren umfassen, die als zentraler Controller eines Cluster-Dateisystems dienen (siehe z.B. 430 von 4 oben). Ferner kann der Knoten 503 einen oder mehrere Prozessoren umfassen, die sich an einem Benutzerstandort befinden, wobei der Benutzerstandort mit dem einen oder den mehreren Prozessoren an jedem der Knoten 501 und 503 in Datenaustausch steht (z.B. über eine Netzwerkverbindung). Dementsprechend können Befehle, Daten, Anforderungen usw. abhängig vom Ansatz zwischen jedem der Knoten 501, 502, 503 gesendet werden. Des Weiteren ist anzumerken, dass die verschiedenen im Verfahren 500 enthaltenen Prozesse keinesfalls als einschränkend zu betrachten sind, was z.B. einem Fachmann nach dem Lesen der vorliegenden Beschreibung klar sein dürfte. Daten, die vom Knoten 502 an den Knoten 503 gesendet werden, kann zum Beispiel in einigen Ansätzen eine vom Knoten 503 an den Knoten 502 gesendete Anforderung vorangestellt werden.
  • Wie gezeigt, wird die Operation 504 des Verfahrens 500 durch den einen oder die mehreren Prozessoren am Knoten 501 ausgeführt. Wiederum ist anzumerken, dass der eine oder die mehreren Prozessoren am Knoten 501 elektrisch mit einer bestimmten Ebene eines Cluster-Dateisystems verbunden sind. Dementsprechend umfassen in einigen Ansätzen der eine oder die mehreren Prozessoren am Knoten 501 einen oder mehrere der Controller 412 in den gemeinsam genutzten Knoten 406, 408. In anderen Ansätzen umfassen der eine oder die mehreren Prozessoren am Knoten 501 einen oder mehrere der Controller 420 in den Shared-Nothing-Knoten 418. In noch weiteren Ansätzen kann der eine oder können die mehreren Prozessoren am Knoten 501 einen oder mehrere der Controller 412 in den gemeinsam genutzten Knoten 406, 408 und einen oder mehrere der Controller 420 in den Shared-Nothing-Knoten 418 darstellen. Mit anderen Worten, die von dem einen oder den mehreren Prozessoren am Knoten 501 ausgeführten Prozesse können je nach gegebenem Ansatz von jedem der Knoten 406, 408, 418 in jeder der Ebenen 402, 404 des Cluster-Dateisystems in 4 ausgeführt werden.
  • Unter weiterer Bezugnahme auf das Verfahren 500 umfasst die Operation 504 ein Sammeln von Datenarbeitslastmerkmalen, die den in einem Cluster-Dateisystem gespeicherten Daten entsprechen. Wie oben angemerkt, wird das Cluster-Dateisystem in einem Speicher umgesetzt, der eine erste Ebene mit zwei oder mehr gemeinsam genutzten Knoten und eine zweite Ebene mit mindestens einem Shared-Nothing-Knoten umfasst. In bevorzugten Ansätzen sind die erste und die zweite Ebene des Cluster-Dateisystems auch in einem selben Namensbereich enthalten.
  • Die gesammelten Datenarbeitslastmerkmale unterscheiden sich je nach gewünschtem Ansatz. Zum Beispiel umfasst eine veranschaulichende Liste von Datenarbeitslastmerkmalen, die in der Operation 504 gesammelt werden können, Lese- und/oder Schreibmuster, Dateitypen, denen die Daten entsprechen, einen bestimmten Abschnitt einer Datei, dem die Daten entsprechen (z.B. eine Kopfzeile, eine Fußzeile, ein Metadaten-Abschnitt usw.), sie ist aber nicht darauf beschränkt. Gemäß einigen Ansätzen kann ein durch Supervisor gestütztes Lernmodell verwendet werden, um die Datenarbeitslastmerkmale zu identifizieren, die in der Operation 504 gesammelt wurden, wie einem Fachmann nach dem Lesen der vorliegenden Beschreibung klar sein dürfte.
  • Eine Operation 506 umfasst ferner ein Senden der gesammelten Datenarbeitslastmerkmale an den Knoten 502. Je nach Ansatz können die Datenarbeitslastmerkmale, wenn sie gesammelt werden, in Batches einer vorbestimmten Größe, periodisch usw. an den Knoten 502 gesendet werden.
  • Des Weiteren umfasst eine Operation 508 ein Analysieren der Datenarbeitslastmerkmale. Der Prozess des Analysierens der Datenarbeitslastmerkmale ist je nach Anzahl und/oder Typ von empfangenen Arbeitslastmerkmalen verschieden. Zum Beispiel kann die Operation 508 in verschiedenen Ansätzen durch Analysieren der entsprechenden Datentypen, Datengrößen, verschiedenen Lese-/Schreibmuster, spezifischen Zugriffsmuster, vorgeschlagenen Framework-Schätzwerte, des Branchentyps und/oder der Arbeitslast ausgeführt werden, von denen aus das Cluster-Dateisystem verwendet wird usw.
  • Die analysierten Arbeitslastmerkmale werden anschließend zum Generieren von einem oder mehreren Vorschlägen und/oder Datenmodellen verwendet, die einer Positionierung von bestimmten Abschnitten von Daten in dem Speicher entsprechen. Siehe Operation 510. Zum Beispiel entsprechen die Vorschläge (die hierin auch als „Tipps“ bezeichnet werden) und/oder die Datenmodelle bestimmten Arbeitslasten. Die generierten Vorschläge werden in einigen Ansätzen sogar verwendet, um bestimmte Maschinenlern- und/oder Deep-Learning-Algorithmen zu identifizieren, die für die Situation relevant sind, z.B. auf Grundlage der identifizierten Arbeitslast. Diese Maschinenlern- und/oder Deep-Learning-Algorithmen können im Laufe der Zeit entwickelt werden, um die Daten zu beschreiben, die tatsächlich im Speicher enthalten sind, und/oder den Speicherort (z.B. Knoten), in dem die Daten gespeichert sind. Dementsprechend können die Maschinenlern- und/oder Deep-Learning-Algorithmen im Lauf der Zeit aktualisiert (z.B. verbessert) werden, indem die Datenarbeitslastmerkmale verwendet werden oder zumindest auf deren Grundlage aktualisiert werden.
  • Die generierten Vorschläge werden anschließend zur Genehmigung in Operation 512 an den Knoten 503 gesendet. Ein Benutzer (z.B. Administrator) hat am Knoten 503 die Möglichkeit, einige, keine oder alle der generierten Vorschläge zu akzeptieren. Der Benutzer hat am Knoten 503 auch die Möglichkeit, je nach Ansatz einen oder mehrere ergänzende Vorschläge und/oder Modelle vorzuschlagen. Dementsprechend umfasst eine Entscheidung 514 ein Bestimmen, ob die generierten Vorschläge akzeptiert wurden. In Reaktion auf das Bestimmen, dass die generierten Vorschläge nicht akzeptiert wurden, fährt das Verfahren 500 mit einer Operation 516 fort, wobei der Benutzer einen oder mehrere Vorschläge und/oder Datenmodelle anbietet, wie z.B. oben erwähnt. Die Vorschläge und/oder Datenmodelle können auf Maschinenlern- und/oder Deep-Learning-Algorithmen beruhen, die auf dem Cluster-Dateisystem ausgeführt werden, von dem die ursprünglichen Vorschläge generiert wurden.
  • Unter erneuter Bezugnahme auf die Entscheidung 514 springt das Verfahren 500 jedoch zu Operation 518 in Reaktion auf ein Bestimmen, dass die generierten Vorschläge akzeptiert wurden. Es sollte jedoch angemerkt werden, dass die Operation 516 für einige Ansätze ausgeführt werden kann, in denen die generierten Vorschläge akzeptiert wurden. Zum Beispiel kann der Benutzer einen oder mehrere Vorschläge und/oder Datenmodelle bereitstellen, um die generierten Vorschläge zu ergänzen.
  • Wie gezeigt, umfasst die Operation 518 ein Senden einer Antwort an den Knoten 502, die angibt, ob irgendwelche der generierten Vorschläge akzeptiert worden sind. Die Antwort kann auch einen oder mehrere Vorschläge und/oder Datenmodelle umfassen, wie oben erwähnt. In Reaktion auf ein Empfangen der Antwort vom Knoten 503 wird eine Operation 520 ausgeführt. An dieser Stelle umfasst die Operation 520 ein Verwenden des einen oder der mehreren genehmigten Vorschläge und/oder Datenmodelle, um mindestens einige der Daten in dem Speicher zwischen der ersten und der zweiten Ebene zu transferieren. Mit anderen Worten, die Operation 520 umfasst ein Anwenden der Vorschläge und/oder Datenmodelle zum Verwalten der Daten, die in dem Cluster-Dateisystem enthalten sind. In einigen Ansätzen können die Vorschläge und/oder Datenmodelle auch auf neue Daten angewendet werden, wenn diese empfangen werden, wie dies z.B. im Folgenden ausführlicher beschrieben wird (z.B. siehe 5C).
  • Unter folgender Bezugnahme auf 5B werden beispielhafte untergeordnete Prozesse zum Anwenden der Vorschläge und/oder Datenmodelle zum Verwalten der in einem vorab aufgefüllten Cluster-Dateisystem enthaltenen Daten gemäß einer Ausführungsform veranschaulicht, von denen einer oder mehrere in einigen Ansätzen zum Ausführen der Operation 520 von 5A verwendet werden können. Es sollte jedoch angemerkt werden, dass die untergeordneten Prozesse von 5B gemäß einer Ausführungsform veranschaulicht werden, die keinesfalls als Einschränkung der Erfindung aufgefasst werden soll. Obwohl 5A zum Beispiel angibt, dass die beispielhaften untergeordneten Prozesse, die in 5B enthalten sind, von einem oder mehreren Prozessoren am Knoten 502 ausgeführt werden, kann jeder bzw. können mehrere der untergeordneten Prozesse tatsächlich durch jeden der anderen Prozessoren in dem Cluster-Dateisystem ausgeführt werden. Dementsprechend kann jeder bzw. können mehrere der in 5B enthaltenen untergeordneten Prozesse von einem oder mehreren der Controller 412, 420 in 4 oben ausgeführt werden.
  • Unter fortgesetzter Bezugnahme auf 5B umfasst eine untergeordnete Operation 540 ein Empfangen von einem oder mehreren Vorschlägen und/oder Datenmodellen, die einer Positionierung von Daten im Speicher des Cluster-Dateisystems entsprechen. Wie oben angemerkt, umfasst das Cluster-Dateisystem einen Speicher, der eine erste Ebene mit zwei oder mehr gemeinsam genutzten Knoten darin und eine zweite Ebene mit mindestens einem Shared-Nothing-Knoten darin umfasst. Der bzw. das eine oder die mehreren Vorschläge und/oder Datenmodelle beruhen auch auf Datenarbeitslastmerkmalen. Während die Datenarbeitslastmerkmale bevorzugt von der Speicherumgebung abgeleitet werden, in der die Vorschläge und/oder Datenmodelle angewendet werden sollen, kann bzw. können in einigen Ansätzen einer bzw. ein oder mehrere der Vorschläge und/oder Datenmodelle unter Verwendung von anderen Informationen abgeleitet werden. Zum Beispiel kann ein oder können mehrere Datenmodelle unter Verwendung von Maschinenlern- und/oder Deep-Learning-Algorithmen verwendet werden, die auf einem ähnlichen Cluster-Dateisystem ausgeführt werden.
  • Der bzw. das eine oder die mehreren Vorschläge und/oder Datenmodelle, die in der untergeordneten Operation 540 empfangen wurden, werden ferner zum Identifizieren von bestimmten Abschnitten von aktuellen Daten verwendet, die im aktuellen Speicher gespeichert sind, für die prognostiziert wird, dass sie von einem Wechsel zu einer bestimmten der Ebenen profitieren. Siehe eine untergeordnete Operation 542. Zum Beispiel kann ein bestimmter Abschnitt von Daten identifiziert werden, der darin enthaltene Informationen aufweist und/oder diesen entspricht, durch die die Genauigkeit der vorhandenen Maschinenlern- und/oder Deep-Learning-Algorithmen verbessert würde. Dementsprechend kann es wünschenswert sein, mit dem identifizierten Abschnitt von Daten zu einem der Shared-Nothing-Knoten in der zweiten Ebene zu wechseln, sodass die darin enthaltene Sonderzweck-Hardware (z.B. eine GPU) dazu verwendet werden kann, die Aktualisierung der Algorithmen unter Verwendung von oder zumindest auf Grundlage von Datenarbeitslastmerkmalen zu unterstützen, die dem Abschnitt von Daten zugehörig sind. Gemäß einem weiteren Beispiel kann ein Abschnitt von Daten mit einem voraussichtlich bevorstehenden Datentransfer mit hoher Arbeitslast unter Verwendung der Vorschläge und/oder Datenmodelle identifiziert werden. Für diesen Abschnitt von Daten wird prognostiziert, dass er von einer Speicherung in der zweiten Ebene in Anbetracht des bevorstehenden Datentransfers mit hoher Arbeitslast profitiert. Die Prognose beruht sowohl auf der hohen Arbeitslast des erwarteten Datentransfers als auch auf der Konfiguration der Shared-Nothing-Knoten in der zweiten Ebene, die bevorzugt Sonderzweck-Hardware umfassen, die fähig ist, höhere Datentransferraten zu erzielen. Gemäß noch einem weiteren Beispiel kann ein Abschnitt von Daten identifiziert werden, der fähig ist, Informationen bereitzustellen, die für Maschinenlern- und/oder Deep-Learning-Algorithmen hilfreich sind. Somit kann der Abschnitt von Daten als mit Potenzial zum Verbessern eines benutzerdefinierten ILM-Konzepts bestimmt werden, das zum Verwalten der Positionierung von Daten in dem Cluster-Dateisystem verwendet wird, wie dem Fachmann z.B. nach dem Lesen der vorliegenden Beschreibung klar sein dürfte.
  • Für jeden der Abschnitte von aktuellen Daten, die in der untergeordneten Operation 542 identifiziert werden, wird eine aktuelle Bestimmung vorgenommen, ob der bestimmte Abschnitt von Daten auf eine andere Ebene im Speicher transferiert werden sollte. Siehe eine Entscheidung 544. Gemäß einigen Ansätzen kann ein Ausführen der Entscheidung 544 tatsächlich ein Ermitteln der bestimmten Konfigurationen der verschiedenen Ebenen im Speicher und deren Vergleichen mit den Prognosen umfassen, die unter Verwendung der Vorschläge und/oder Datenmodelle erstellt wurden. Zum Beispiel kann eine Bestimmung erfolgen, ob einer der Shared-Nothing-Knoten in der zweiten Ebene tatsächlich Sonderzweck-Hardware enthält. Des Weiteren kann für diejenigen Knoten, für die bestimmt wurde, dass sie Sonderzweck-Hardware aufweisen, eine weitere Bestimmung im Hinblick darauf erfolgen, welches Leistungsniveau die Sonderzweck-Hardware für den bestimmten Knoten erreichen kann, z.B. Fähigkeiten zu höheren Datentransferraten.
  • Ähnliche Bestimmungen können in Bezug auf die gemeinsam genutzten Knoten in der ersten Ebene vorgenommen werden. Obwohl die gemeinsam genutzten Knoten möglicherweise keine hinzugefügte Sonderzweck-Hardware enthalten, ermöglicht die Art und Weise, in der alle gemeinsam genutzten Knoten über die verschiedenen Speicherkomponenten miteinander verbunden sind, dass bestimmte Operationen parallel ausgeführt werden können, wodurch höhere Verarbeitungsraten erzielt werden als ein einzelner Shared-Nothing-Knoten möglicherweise erzielen kann. Daraus folgt, während für bestimmte Abschnitte von Daten prognostiziert werden kann, dass sie von einer Speicherung in der zweiten Ebene mit Shared-Nothing-Knoten hinsichtlich eines bevorstehenden Datentransfers mit hoher Arbeitslast profitieren könnten, dass für andere Abschnitte von Daten prognostiziert werden kann, dass sie von einer Speicherung in der ersten Ebene hinsichtlich eines bevorstehenden Datentransfers mit hoher Arbeitslast profitieren könnten, der dadurch von mehr als einer Verarbeitungskomponente parallel ausgeführt werden könnte.
  • Der Ablaufplan von 5B wird in der Fortsetzung mit einer untergeordneten Operation 546 in Reaktion auf eine Bestimmung gezeigt, dass ein bestimmter Abschnitt von Daten nicht zu einer anderen Ebene im Speicher transferiert werden sollte. Dabei umfasst die untergeordnete Operation 546 die Verwendung eines standardmäßigen ILM-Konzepts zum Verwalten der Positionierung des bestimmten Abschnitts von Daten in dem Cluster-Dateisystem. Wie oben angedeutet, automatisieren ILM-Konzepte die an der Datenspeicherung beteiligten Verwaltungsprozesse in der Regel durch Organisieren der Daten gemäß bestimmten Richtlinien und Automatisieren der Datenmigration von einer Ebene auf die andere auf Grundlage dieser Kriterien. Zum Beispiel werden neuere Daten und/oder Daten, auf die häufiger zugegriffen wird, bevorzugt auf Medien mit höherer Leistung gespeichert, während weniger kritische Daten auf Medien mit niedrigerer Leistung gespeichert werden. In einigen Ansätzen können Benutzer auch spezifische Speicherrichtlinien in bestimmten ILM-Konzepten angeben.
  • Unter erneuter Bezugnahme auf die Entscheidung 544 fährt der Ablaufplan mit einer untergeordneten Operation 548 in Reaktion auf eine Bestimmung fort, dass ein bestimmter Abschnitt von Daten zu einer anderen Ebene im Speicher transferiert werden sollte. Dabei umfasst die untergeordnete Operation 548 ein Vorbereiten der Quell- und Zielebeneninformationen, die dem Ausführen des Transfers zugehörig sind. Gemäß einem Beispiel umfasst ein Transferieren eines in der ersten Ebene gespeicherten Abschnitts von Daten zu der zweiten Ebene ein Vorbereiten von Informationen, die angeben, wo der Abschnitt von Daten aktuell im Speicher gespeichert ist (z.B. die logischen und/oder physischen Adressen, über die der Abschnitt von Daten mithilfe von Striping verteilt ist), eine Gesamtgröße des Abschnitts von Daten, dem Abschnitt von Daten zugehörige Metadaten, wobei der Abschnitt von Daten in der zweiten Ebene gespeichert wird (z.B. die logische und/oder physische Adresse) usw.
  • Ferner umfasst eine untergeordnete Operation 550 ein Senden von einer oder mehreren Anweisungen zum Transferieren (z.B. Migrieren) des bestimmten Abschnitts von Daten von der Quellenebene zur Zielebene. Die eine oder die mehreren Anweisungen können die logische Adresse eines beabsichtigten Speicherorts in der Zielebene oder alle anderen Informationen umfassen, die einem tatsächlichen Ausführen des Datentransfers zugehörig sind, was einem Fachmann nach dem Lesen der vorliegenden Beschreibung klar sein dürfte.
  • Es ist außerdem anzumerken, dass dieser Abschnitt von Daten bevorzugt auch auf die Ebene zurück transferiert wird, auf der er vorher gespeichert war. Dies trifft insbesondere auf Abschnitte von Daten zu, die von der ersten Ebene auf die zweite Ebene übertragen wurden. Wiederum stellt die Sonderzweck-Hardware, die in den Shared-Nothing-Knoten der zweiten Ebene enthalten ist, eine verbesserte Leistung bereit und wird daher bevorzugt für relevante Daten reserviert. Gemäß einem Beispiel wird bevorzugt, dass ein Abschnitt von Daten, der zu einem Shared-Nothing-Knoten der zweiten Ebene übertragen wurde, um einen laufenden Maschinenlern- und/oder Deep-Learning-Algorithmus zu aktualisieren, anschließend auf die erste Ebene zurück übertragen wird, wodurch die Verwendung der Sonderzweck-Hardware für eine zusätzliche Verarbeitung ermöglicht wird.
  • Diese untergeordneten Prozesse werden wiederum für jeden der in der untergeordneten Operation 542 identifizierten Abschnitte von Daten ausgeführt. Dementsprechend können ein beliebiger oder mehrere der in 5B enthaltenen untergeordneten Prozesse beliebig oft wiederholt werden, was z.B. davon abhängt, wie viele Abschnitte von Daten identifiziert wurden.
  • Wie oben erwähnt, werden die Vorschläge und/oder Datenmodelle, die unter Verwendung von einigen der hierin enthaltenen Ausführungsformen gebildet werden, bevorzugt auch zum Verwalten des Prozesses zum Speichern von im Speicher neu empfangenen Daten verwendet. Zum Beispiel können die Vorschläge und/oder Datenmodelle auf Daten angewendet werden, die von einem Benutzer, einer laufenden Anwendung, einem weiteren Dateisystem usw. empfangen wurden, um zu bestimmen, wo jeder Abschnitt der eingehenden Daten in einem Cluster-Dateisystem gespeichert werden soll. Dementsprechend veranschaulicht 5C einen Ablaufplan eines Verfahrens 570 gemäß einer Ausführungsform. Das Verfahren 570 kann gemäß der vorliegenden Erfindung in jeder der unter anderem in 1 bis 4 dargestellten Umgebungen in verschiedenen Ausführungsformen ausgeführt werden. Natürlich können mehr oder weniger als die speziell in 5C beschriebenen Operationen im Verfahren 570 enthalten sein, wie dem Fachmann beim Durchlesen der vorliegenden Beschreibungen klar sein wird.
  • Jeder der Schritte des Verfahrens 570 kann von jeder geeigneten Komponente der Betriebsumgebung ausgeführt werden. In verschiedenen Ausführungsformen kann das Verfahren 570 zum Beispiel teilweise oder ganz von einem Controller, einem Prozessor, usw. oder irgendeiner anderen Einheit mit einem oder mehreren darin integrierten Prozessoren ausgeführt werden. Der Prozessor, z.B. Verarbeitungsschaltung(en), Chip(s) und oder Modul(e), die in Hardware und/oder Software umgesetzt sind und bevorzugt mindestens eine Hardware-Komponente haben, können in jeder Einheit verwendet werden, um einen oder mehrere Schritte des Verfahrens 570 auszuführen. Veranschaulichende Prozessoren umfassen eine Zentraleinheit (CPU), eine ASIC, ein feldprogrammierbares Gate-Array (FPGA) usw., Kombinationen davon oder irgendeine im Stand der Technik bekannte andere geeignete Datenverarbeitungseinheit.
  • Wie in 5C gezeigt, umfasst eine Operation 572 des Verfahrens 570 ein Empfangen von neuen Daten. Abhängig vom Ansatz können die Daten kontinuierlich als Datenstrom in einem oder mehreren Paketen usw. empfangen werden. Des Weiteren umfasst eine Operation 574 die Verwendung von Vorschlägen und/oder Datenmodellen zum Identifizieren von entsprechenden Abschnitten der neu empfangenen Daten. Gemäß einem spezifischen Ansatz werden die Vorschläge und/oder Datenmodelle bevorzugt verwendet, um Abschnitte der neu empfangenen Daten zu identifizieren, für die prognostiziert wird, dass sie von einer Speicherung in einer bestimmten Ebene im Speicher profitieren.
  • Wie oben angemerkt, umfasst der Speicher eines Cluster-Dateisystems in der vorliegenden Ausführungsform eine erste Ebene mit zwei oder mehr gemeinsam genutzten Knoten und eine zweite Ebene mit mindestens einem Shared-Nothing-Knoten. Der bzw. das eine oder die mehreren Vorschläge und/oder Datenmodelle beruhen auch auf Datenarbeitslastmerkmalen. Während somit für bestimmte Abschnitte von Daten prognostiziert werden kann, dass sie von einer Speicherung in der zweiten Ebene mit Shared-Nothing-Knoten hinsichtlich eines bevorstehenden Datentransfers mit hoher Arbeitslast profitieren könnten, kann für andere Abschnitte von Daten prognostiziert werden, dass sie von einer Speicherung in der ersten Ebene hinsichtlich eines bevorstehenden Datentransfers mit hoher Arbeitslast profitieren könnten, der damit von mehr als einer Verarbeitungskomponente parallel ausgeführt werden könnte. Daraus folgt, dass ein beliebiger Ansatz oder mehrere der oben beschriebenen Ansätze in Bezug auf ein Ausführen der untergeordneten Operation 542 umgesetzt werden kann bzw. können, um beispielsweise abhängig vom Ansatz die Operation 572 auszuführen.
  • Des Weiteren wird für jeden der Abschnitte von neuen Daten, die in der Operation 574 identifiziert wurden, eine aktuelle Bestimmung vorgenommen, ob der bestimmte Abschnitt von Daten tatsächlich in einer spezifischen Ebene im Speicher gespeichert werden sollte. Siehe eine Entscheidung 576. Gemäß einigen Ansätzen kann ein Ausführen der Entscheidung 576 tatsächlich ein Ermitteln der bestimmten Konfigurationen der verschiedenen Ebenen im Speicher und deren Vergleichen mit jedem der identifizierten Abschnitte von neuen Daten umfassen. Zum Beispiel kann eine Bestimmung erfolgen, ob einer der Shared-Nothing-Knoten in der zweiten Ebene tatsächlich Sonderzweck-Hardware enthält. Des Weiteren kann für diejenigen Knoten mit Sonderzweck-Hardware eine weitere Bestimmung im Hinblick darauf erfolgen, welche Leistung die Sonderzweck-Hardware für den bestimmten Knoten erreichen kann, z.B. Fähigkeiten zu höheren Datentransferraten.
  • Ähnliche Bestimmungen können zum Beispiel auch gemäß irgendeinem der hierin beschriebenen Ansätze in Bezug auf die gemeinsam genutzten Knoten in der ersten Ebene vorgenommen werden. Obwohl die gemeinsam genutzten Knoten zum Beispiel möglicherweise keine hinzugefügte Sonderzweck-Hardware enthalten, ermöglicht die Art und Weise, in der alle gemeinsam genutzten Knoten über verschiedene Speicherkomponenten miteinander verbunden sind, dass bestimmte Operationen parallel ausgeführt werden können, wodurch höhere Verarbeitungsraten erzielt werden als ein einzelner Shared-Nothing-Knoten möglicherweise erzielen kann. Daraus folgt, während bestimmte Abschnitte von Daten von einer Speicherung in der zweiten Ebene mit Shared-Nothing-Knoten hinsichtlich eines bevorstehenden Datentransfers mit hoher Arbeitslast profitieren könnten, dass für andere Abschnitte von Daten prognostiziert werden kann, dass sie von einer Speicherung in der ersten Ebene hinsichtlich eines bevorstehenden Datentransfers mit hoher Arbeitslast profitieren könnten, der damit von mehr als einer Verarbeitungskomponente parallel ausgeführt werden könnte.
  • Das Verfahren 570 fährt mit einer Operation 578 in Reaktion auf eine Bestimmung fort, dass der bestimmte Abschnitt von neuen Daten tatsächlich nicht davon profitieren würde, wenn er in einer bestimmten der Ebenen im Speicher gespeichert würde. Dabei umfasst die Operation 578 die Verwendung eines standardmäßigen ILM-Konzepts zum Verwalten der Positionierung des bestimmten Abschnitts von neuen Daten in dem Cluster-Dateisystem. Gemäß einem Beispiel, das die Erfindung keinesfalls einschränken soll, kann ein standardmäßiges ILM-Konzept angeben, dass neue Daten bevorzugt als Standardwert auf der ersten Ebene mit einer Option gespeichert werden sollen, bestimmte Abschnitte von neuen Daten auf der zweiten Ebene zu speichern. Dies ermöglicht, dass die in der zweiten Ebene enthaltene Sonderzweck-Hardware für relevante Abschnitte von Daten reserviert wird, während ein Rest von Daten unter Verwendung der ersten Ebene verwaltet wird.
  • Unter erneuter Bezugnahme auf die Entscheidung 576 fährt der Ablaufplan jedoch mit einer untergeordneten Operation 580 in Reaktion auf eine Bestimmung fort, dass der bestimmte Abschnitt von neuen Daten davon profitieren könnte, wenn er in einer bestimmten Ebene im Speicher gespeichert würde. Dabei umfasst die untergeordnete Operation 580 ein Senden von einer oder mehreren Anweisungen, um den bestimmten identifizierten Abschnitt der neu empfangenen Daten in einer spezifischen Ebene zu speichern. Wiederum kann die eine bzw. können die mehreren Anweisungen die logische Adresse eines beabsichtigten Speicherorts für den Abschnitt von Daten oder alle anderen Informationen umfassen, was einem Fachmann nach dem Lesen der vorliegenden Beschreibung klar sein dürfte.
  • Gemäß einem Beispiel kann ein bestimmter Abschnitt von Daten als mit einem oder mit mehreren spezifischen Merkmalen identifiziert werden, die zum Aktualisieren eines laufenden Maschinenlern- und/oder Deep-Learning-Algorithmus verwendet werden können. Die eine bzw. die mehreren Anweisungen können dadurch veranlassen, dass dieser identifizierte Abschnitt von Daten in der zweiten Ebene gespeichert wird, z.B. dergestalt, dass eine darin enthaltene Sonderzweck-Hardware zum Verarbeiten der Daten auf Grundlage des bestimmten Ansatzes verwendet werden kann. Gemäß einem weiteren Beispiel wird eine Bestimmung vorgenommen, ob ein Abschnitt von neuen Daten, für den ein bevorstehender Datentransfer mit hoher Arbeitslast prognostiziert wird, von einer Speicherung in der zweiten Ebene profitieren würde. Insbesondere kann die Sonderzweck-Hardware in der zweiten Ebene ein höheres Leistungsniveau bereitstellen, das den erwarteten bevorstehenden Datentransfer mit hoher Arbeitslast ergänzt. Der Abschnitt von neuen Daten wird dadurch bevorzugt in der zweiten Ebene gespeichert.
  • Es ist jedoch auch anzumerken, dass Abschnitte von Daten, die in der zweiten Ebene gespeichert sind, letzten Endes in die erste Ebene transferiert werden können. Wiederum stellt die Sonderzweck-Hardware, die in den Shared-Nothing-Knoten der zweiten Ebene enthalten ist, eine verbesserte Leistung bereit und wird daher bevorzugt für relevante Daten reserviert. Zum Beispiel wird bevorzugt, dass ein Abschnitt von Daten auf einem Shared-Nothing-Knoten der zweiten Ebene verwendet wird, um einen laufenden Maschinenlern- und/oder Deep-Learning-Algorithmus zu aktualisieren, anschließend auf die erste Ebene zurück übertragen wird, wodurch die Verwendung der Sonderzweck-Hardware für eine zusätzliche Verarbeitung ermöglicht wird.
  • Diese untergeordneten Prozesse werden wiederum für jeden der in der Operation 574 identifizierten Abschnitte von neuen Daten ausgeführt. Dementsprechend kann ein beliebiger oder können mehrere der in 5C enthaltenen Prozesse beliebig oft wiederholt werden, was z.B. davon abhängt, wie viele Abschnitte von Daten identifiziert wurden und/oder von einer Menge von empfangenen neuen Daten.
  • Daraus folgt, dass verschiedene der hierin enthaltenen Ausführungsformen fähig sind, ein Framework zu schaffen, das sowohl Striping- als auch Nicht-Striping-Speicherkonfigurationen in einem einzigen (selben) Namensbereich unterstützen kann. Des Weiteren sind einige der Ausführungsformen hierin fähig, die Genauigkeit beträchtlich zu verbessern, mit der Maschinenlern- und/oder Deep-Learning-Algorithmen die interne Arbeitsweise eines bestimmten Dateisystems darstellen. Diese verbesserten Maschinenlern- und/oder Deep-Learning-Algorithmen sind wiederum fähig, ILM-Konzepte zu optimieren, um Daten zwischen verschiedenen Ebenen in dem Dateisystem entsprechend zu positionieren oder zu migrieren, wobei einige mit Sonderzweck-Hardware auf Grundlage von Datenarbeitslastmerkmalen sowie Vorschlägen und/oder davon abgeleiteten Datenmodellen ermöglicht werden. Des Weiteren werden die Inodenstrukturen, die zum Interagieren mit Ebenen verwendet werden, die Striping-Konzepte umsetzen, und diejenigen, die Non-Striping-Konzepte umsetzen, separat verwaltet. Dementsprechend werden die jeweilige Replikation und Zuverlässigkeiten getrennt konfiguriert und verwaltet.
  • Einige der hierin enthaltenen Ausführungsformen sind auch fähig, Vorschläge und/oder Datenmodelle auf Grundlage einer Analyse der Datenarbeitslastmerkmale zu generieren. Diese Analysen konzentrieren sich bevorzugt auf Datentypen, Datenmengen, Lese- und oder Schreibzugriffsmuster usw. Diese Vorschläge und/oder Datenmodelle sind dadurch in der Lage, die Daten zwischen verschiedenen Ebenen entsprechend zu migrieren, wobei einige mit Sonderzweck-Hardware ermöglicht werden. Neben der Migration sind die Vorschläge und/oder Datenmodelle auch fähig, die Entwicklung von Positionierungsregeln für neu erstellte Dateien, neu empfangene Daten usw. zu unterstützen.
  • Dies ist insbesondere wünschenswert im Vergleich mit den bei herkömmlichen Produkten festgestellten Unzulänglichkeiten. Zum Beispiel sahen sich herkömmliche Dateisysteme mit Herausforderungen in Bezug auf Latenz konfrontiert, die auf ein Daten-Striping über mehrere Platten zurückzuführen war, wodurch die Datenverarbeitungs-Infrastruktur veranlasst wurde, alle über die verschiedenen Platten gespeicherten Fragmente erneut aufzurufen, bevor die Daten für die eigentliche Verarbeitung verwendet werden konnten, beispielsweise durch Einbinden von Maschinenlern- und/oder Deep-Learning-Algorithmen.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann ein durch einen Computer lesbares Speichermedium (oder -medien) enthalten, auf dem durch einen Computer lesbare Programmanweisungen gespeichert sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch eine Einheit zum Ausführen von Anweisungen beibehalten und speichern kann. Das durch einen Computer lesbare Speichermedium kann zum Beispiel eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiter-Speichereinheit oder jede geeignete Kombination aus dem Vorgenannten sein, es ist aber nicht darauf beschränkt. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer CD-ROM, eine DVD, ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination des Vorgenannten. Ein durch einen Computer lesbares Speichermedium soll, wie hierin verwendet, nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder andere Übertragungsmedien ausbreiten (z.B. durch ein Lichtwellenleiterkabel geleitete Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetzwerk und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben sind, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In dem letzteren Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch jeden Typ von Netzwerk verbunden werden, darunter ein LAN oder ein WAN, oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, feldprogrammierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die computerlesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der computerlesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung werden hierin unter Bezugnahme auf Veranschaulichungen von Ablaufplänen und/oder Blockschaubildern von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es sollte klar sein, dass jeder Block der Ablaufplanveranschaulichungen und/oder der Blockschaubilder und Kombinationen von Blöcken in den Ablaufplanveranschaulichungen und/oder den Blockschaubildern mittels durch einen Computer lesbare Programmanweisungen umgesetzt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, sodass die über den Prozessor des Computers bzw. eine andere programmierbare Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegebenen Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, sodass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, die Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaubilder angegebenen Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Arbeitsschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen durch einen Computer umgesetzten Prozess zu erzeugen, sodass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegebenen Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und Blockschaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder den Blockschaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zum Umsetzen der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Umsetzungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt auftreten. Zum Beispiel können zwei nacheinander gezeigte Blöcke tatsächlich im Wesentlichen parallel ausgeführt werden, oder die Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden, was von der beteiligten Funktionalität abhängt. Es ist ferner anzumerken, dass jeder Block der Blockschaubilder und/oder der Ablaufplandarstellungen sowie Kombinationen von Blöcken in den Blockschaubildern und/oder der Ablaufplandarstellung durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die angegebenen Funktionen oder Handlungen durchführen oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • Des Weiteren kann ein System gemäß verschiedenen Ausführungsformen einen Prozessor und Logik enthalten, die in den Prozessor integriert und/oder von diesem ausführbar ist, wobei die Logik so konfiguriert ist, dass sie einen oder mehrere der hierin genannten Prozessschritte ausführt. Der Prozessor kann jede hierin beschriebene Konfiguration aufweisen, wie zum Beispiel einen diskreten Prozessor oder eine Verarbeitungsschaltung, die viele Komponenten umfasst wie beispielsweise Verarbeitungs-Hardware, Arbeitsspeicher, E/A-Schnittstellen usw. Mit „integriert“ ist gemeint, dass in den Prozessor Logik als Hardware-Logik eingebettet ist, wie beispielsweise eine anwendungsspezifische integrierte Schaltung (ASIC), ein FPGA usw. Mit „durch den Prozessor ausführbar“ ist gemeint, dass die Logik Hardware-Logik; Software-Logik wie zum Beispiel Firmware, Teil eines Betriebssystems, Teil eines Anwendungsprogramms usw.; oder eine Kombination aus Hardware und Software-Logik ist, auf die durch den Prozessor zugegriffen werden kann und die konfiguriert ist, um den Prozessor zu veranlassen, eine Funktionalität bei Ausführung durch den Prozessor auszuführen. Software-Logik kann auf einem lokalen und/oder entfernt angeordneten Arbeitsspeicher jedes Arbeitsspeichertyps gespeichert werden, wie im Stand der Technik bekannt. Jeder im Stand der Technik bekannte Prozessor kann verwendet werden, wie zum Beispiel ein Software-Prozessormodul und/oder ein Hardware-Prozessor wie eine ASIC, ein FPGA, eine Zentraleinheit (CPU), eine integrierte Schaltung (IC), eine Grafikverarbeitungseinheit (GPU) usw.
  • Es sollte klar sein, dass die verschiedenen Merkmale der vorstehend aufgeführten Systeme und/oder Methodiken auf jede Weise kombiniert werden können, wodurch eine Mehrzahl von Kombinationen aus den oben angegebenen Beschreibungen geschaffen wird.
  • Es sollte ferner klar sein, dass Ausführungsformen der vorliegenden Erfindung in der Form eines Dienstes bereitgestellt werden können, der für einen Kunden zum Bereitstellen von bedarfsgesteuertem Dienst eingerichtet wird.
  • Zwar wurden oben verschiedene Ausführungsformen beschrieben, doch sollte verstanden werden, dass sie nur zu Beispielzwecken und nicht zur Einschränkung dargestellt wurden. Daher soll die Tragweite und der Schutzumfang einer bevorzugten Ausführungsform durch keine der oben beschriebenen beispielhaften Ausführungsformen eingeschränkt werden, sondern nur in Übereinstimmung mit den folgenden Ansprüchen und deren Entsprechungen definiert werden.

Claims (9)

  1. Durch einen Computer umgesetztes Verfahren, aufweisend: Empfangen von einem oder mehreren Vorschlägen, die einer Positionierung von Daten in einem Speicher entsprechen, wobei der eine oder die mehreren Vorschläge auf Datenarbeitslastmerkmalen beruhen; Verwenden des einen oder der mehreren Vorschläge zum Identifizieren von Abschnitten von aktuellen Daten, die im aktuellen Speicher gespeichert sind, die dem einen oder den mehreren Vorschlägen entsprechen, wobei der aktuelle Speicher umfasst: eine erste Ebene, die zwei oder mehr gemeinsam genutzte Knoten aufweist, und eine zweite Ebene, die mindestens einen Shared-Nothing-Knoten aufweist; für jeden der identifizierten Abschnitte der in der ersten Ebene gespeicherten aktuellen Daten Verwenden des einen oder der mehreren Vorschläge, um zu bestimmen, ob der bestimmte identifizierte Abschnitt der aktuellen Daten zu der zweiten Ebene transferiert werden soll; und in Reaktion auf das Bestimmen, mindestens einen der identifizierten Abschnitte der aktuellen Daten zu der zweiten Ebene zu transferieren, Senden von einer oder mehreren Anweisungen, um den mindestens einen der identifizierten Abschnitte der aktuellen Daten von der ersten Ebene zu der zweiten Ebene zu transferieren.
  2. Durch einen Computer umgesetztes Verfahren nach Anspruch 1, wobei jeder des mindestens einen Shared-Nothing-Knotens in der zweiten Ebene Sonderzweck-Hardware umfasst.
  3. Durch einen Computer umgesetztes Verfahren nach Anspruch 2, wobei die Sonderzweck-Hardware aus der Gruppe ausgewählt wird, bestehend aus: einer Grafikverarbeitungseinheit, einem Solid-State-Drive-Cache, einer anwendungsspezifischen integrierten Schaltung und einem nicht flüchtigen Memory Express
  4. Durch einen Computer umgesetztes Verfahren nach Anspruch 1, wobei die erste Ebene so konfiguriert ist, dass ein Daten-Striping über die zwei oder mehr gemeinsam genutzten Knoten ausgeführt wird mit einer Vorgabe, dass die zweite Ebene nicht für ein Daten-Striping über zwei oder mehr des mindestens einen Shared-Nothing-Knotens konfiguriert ist.
  5. Durch einen Computer umgesetztes Verfahren nach Anspruch 1 wobei die erste und die zweite Ebene in einem selben Namensbereich enthalten sind.
  6. Durch einen Computer umgesetztes Verfahren nach Anspruch 1, aufweisend: Verwenden des einen oder der mehreren Vorschläge zum Identifizieren von Abschnitten von neu empfangenen Daten, die diesen entsprechen; für jeden der identifizierten Abschnitte der neu empfangenen Daten Verwenden des einen oder der mehreren Vorschläge, um zu bestimmen, ob der bestimmte identifizierte Abschnitt der neu empfangenen Daten in der zweiten Ebene gespeichert werden soll; in Reaktion auf das Bestimmen, den bestimmten identifizierten Abschnitt der neu empfangenen Daten in der zweiten Ebene zu speichern, Senden von einer oder mehreren Anweisungen, den bestimmten identifizierten Abschnitt der neu empfangenen Daten in der zweiten Ebene zu speichern; und in Reaktion auf das Bestimmen, den identifizierten Abschnitt der neu empfangenen Daten nicht in der zweiten Ebene zu speichern, Senden von einer oder mehreren Anweisungen, um den bestimmten identifizierten Abschnitt der neu empfangenen Daten in der ersten Ebene zu speichern.
  7. Durch einen Computer umgesetztes Verfahren nach Anspruch 1, wobei die Datenarbeitslastmerkmale unter Verwendung von Informationen generiert werden, die aus der Gruppe ausgewählt werden, bestehend aus: Lese- und/oder Schreibmustern, entsprechenden Dateitypen und entsprechenden Abschnitten einer Datei.
  8. System, das Mittel aufweist, die angepasst sind, um alle Schritte des Verfahrens gemäß jedem vorhergehenden Verfahrensanspruch auszuführen.
  9. Computerprogramm, das Anweisungen zum Ausführen aller Schritte des Verfahrens gemäß jedem vorhergehenden Verfahrensanspruch aufweist, wenn das Computerprogramm auf einem Computersystem ausgeführt wird.
DE112019005392.2T 2019-01-08 2019-12-16 Steigern von datenleistung durch transferieren von daten zwischen speicherebenen unter verwendung von arbeitslastmerkmalen Pending DE112019005392T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/242,955 US11656780B2 (en) 2019-01-08 2019-01-08 Increasing data performance by transferring data between storage tiers using workload characteristics
US16/242,955 2019-01-08
PCT/IB2019/060848 WO2020144514A1 (en) 2019-01-08 2019-12-16 Increasing data performance by transferring data between storage tiers using workload characteristics

Publications (1)

Publication Number Publication Date
DE112019005392T5 true DE112019005392T5 (de) 2021-07-15

Family

ID=71403531

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112019005392.2T Pending DE112019005392T5 (de) 2019-01-08 2019-12-16 Steigern von datenleistung durch transferieren von daten zwischen speicherebenen unter verwendung von arbeitslastmerkmalen

Country Status (6)

Country Link
US (2) US11656780B2 (de)
JP (1) JP7442523B2 (de)
CN (1) CN113272781A (de)
DE (1) DE112019005392T5 (de)
GB (1) GB2593408B (de)
WO (1) WO2020144514A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11687443B2 (en) * 2013-05-15 2023-06-27 EMC IP Holding Company LLC Tiered persistent memory allocation
CN115202563A (zh) * 2021-04-14 2022-10-18 戴尔产品有限公司 基于预测数据访问频率趋势模式在集群存储系统的存储层级之间的数据移动
CN116737056A (zh) * 2022-03-04 2023-09-12 戴尔产品有限公司 基于存储对象的输入/输出模式在集群存储系统的存储层级之间进行数据移动
CN117908804B (zh) * 2024-03-19 2024-05-28 中国空气动力研究与发展中心计算空气动力研究所 基于作业感知的文件条带化方法、装置、设备及介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8330647B2 (en) 2006-06-08 2012-12-11 Vista Research, Inc. Sensor suite and signal processing for border surveillance
US9134917B2 (en) * 2008-02-12 2015-09-15 Netapp, Inc. Hybrid media storage system architecture
US8700674B2 (en) * 2009-07-14 2014-04-15 Hewlett-Packard Development Company, L.P. Database storage architecture
US9191437B2 (en) 2009-12-09 2015-11-17 International Business Machines Corporation Optimizing data storage among a plurality of data storage repositories
US8819488B1 (en) 2011-06-15 2014-08-26 Amazon Technologies, Inc. Architecture for end-to-end testing of long-running, multi-stage asynchronous data processing services
US8548970B2 (en) 2011-07-06 2013-10-01 Iac Search & Media, Inc. Systems, computer-readable media, and methods of operating a target computer system to answer a query
US9626377B1 (en) * 2013-06-07 2017-04-18 EMC IP Holding Company LLC Cluster file system with metadata server for controlling movement of data between storage tiers
JP5991701B2 (ja) * 2014-10-28 2016-09-14 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ストレージ管理方法、ストレージ管理システム、コンピュータ・システムおよびプログラム
JP6511795B2 (ja) * 2014-12-18 2019-05-15 富士通株式会社 ストレージ管理装置、ストレージ管理方法、ストレージ管理プログラムおよびストレージシステム
US10203889B2 (en) 2016-04-01 2019-02-12 Salesforce.Com, Inc. Multi-tier file system with transparent holes
US10168915B2 (en) 2017-01-19 2019-01-01 International Business Machines Corporation Workload performance in a multi-tier storage environment

Also Published As

Publication number Publication date
GB202110460D0 (en) 2021-09-01
US20230176763A1 (en) 2023-06-08
WO2020144514A1 (en) 2020-07-16
JP2022515593A (ja) 2022-02-21
GB2593408B (en) 2022-03-02
GB2593408A (en) 2021-09-22
US20200218464A1 (en) 2020-07-09
CN113272781A (zh) 2021-08-17
JP7442523B2 (ja) 2024-03-04
US11656780B2 (en) 2023-05-23

Similar Documents

Publication Publication Date Title
DE112016003120B4 (de) Umleiten einer Kopie beim Schreiben
DE112019005392T5 (de) Steigern von datenleistung durch transferieren von daten zwischen speicherebenen unter verwendung von arbeitslastmerkmalen
DE112019000841T5 (de) Handhaben von E/A-Operationen in einem cloudbasierten Speichersystem
DE102016119298B4 (de) Zeitpunktkopieren mit klonen von ketten
DE112019005770T5 (de) Speicherverwaltung für ein cloudbasiertes Speichersystem
DE112019002948T5 (de) Feststellen einer optimalen speicherumgebung für datensätze und für das migrieren von datensätzen
DE102013204508A1 (de) Dynamisches Neukonfigurieren eines Speichersystems
DE112006001167T5 (de) Simulieren mehrerer virtueller Kanäle in Switching-Fabric-Netzwerken
DE112020003929B4 (de) Verwaltung von metadaten von virtuellen speichern
DE112013006646B4 (de) Computer, System und computerlesbares Ablagemedium zum Identifizieren von Arbeitslast und Dimensionierung von Puffern zum Zweck der Volumenreplikation
DE112018004138B4 (de) Asynchrone aktualisierung von metadatenspuren in reaktion auf einen mittels einer e/a-operation über eine busschnittstelle erzeugten cachetreffer
DE112021005636T5 (de) Migrieren von komplexen legacy-anwendungen
DE102021127254A1 (de) Inhaltssensitives Auswählen von Knoten zum Erstellen von Containern
DE112017005022T5 (de) Umladen der Bandverarbeitung auf Objektspeicher
DE112013000650T5 (de) Datenzwischenspeicherungsbereich
DE112020000498T5 (de) Migrieren von daten aus einem grossen extent-pool in einen kleinen extent-pool
DE112018005121T5 (de) Speichersystem unter verwendung von cloud-speicher als eine speicherbank
DE112019000421T5 (de) Arbeitslastverwaltung mit datenzugriffserkennung in einem datenverarbeitungscluster
DE112021001408T5 (de) Verwendung kohärent verbundener schnittstellen in einem netzwerkstapelrahmen
DE112020003312T5 (de) Speicherzuweisungserweiterung von mikrodiensten
DE112018002955T5 (de) Kognitive datei- und objektverwaltung für verteilte speicherumgebungen
DE112021001470T5 (de) Konfigurieren von datenverarbeitungsknoten in einer dreidimensionalen netztopologie
DE112018005135T5 (de) Thin provisioning unter verwendung von speicherbänken auf cloud-grundlage
DE112020003185T5 (de) Einstellung von block-pool-grössen in einem speichersystem
DE112017005772T5 (de) Zeitpunktgesteuerte sicherungen über einen speicher-controller in eine objektspeicher-cloud

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R084 Declaration of willingness to licence