DE112019000303T5 - Datenspeichersystem, das die datenverlagerung auf grundlage von zeitlicher nähe von zugriffen durchführt - Google Patents

Datenspeichersystem, das die datenverlagerung auf grundlage von zeitlicher nähe von zugriffen durchführt Download PDF

Info

Publication number
DE112019000303T5
DE112019000303T5 DE112019000303.8T DE112019000303T DE112019000303T5 DE 112019000303 T5 DE112019000303 T5 DE 112019000303T5 DE 112019000303 T DE112019000303 T DE 112019000303T DE 112019000303 T5 DE112019000303 T5 DE 112019000303T5
Authority
DE
Germany
Prior art keywords
data
access
storage
storage device
service window
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE112019000303.8T
Other languages
English (en)
Other versions
DE112019000303B4 (de
Inventor
Sergio Reyes
Chase Twichell Brian
Yijie Zhang
Kipling Ingram Samuel
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 DE112019000303T5 publication Critical patent/DE112019000303T5/de
Application granted granted Critical
Publication of DE112019000303B4 publication Critical patent/DE112019000303B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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
    • 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/0653Monitoring storage devices or systems
    • 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/0689Disk arrays, e.g. RAID, JBOD

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 Datenspeichersystem umfasst erste und zweite Speichergeräte, auf die über erste bzw. zweite Hardware-Kanäle zugegriffen wird. Ein Speicher-Controller empfängt eine erste Zugriffsanforderung, die einen Zugriff auf erste Daten anfordert, und eine zweite Zugriffsanforderung, die einen Zugriff auf zweite Daten anfordert, wobei sowohl auf die ersten Daten als auch auf die zweiten Daten über den ersten Hardware-Kanal zugegriffen wird. In Reaktion auf das Erkennen des Empfangs der ersten und zweiten Zugriffsanforderung innerhalb desselben Dienstfensters, das einen Bereich zeitlicher Nähe definiert, verzeichnet der Speicher-Controller eine Verknüpfung von Kennungen der ersten Daten und zweiten Daten, die von der ersten bzw. zweiten Zugriffsanforderung angefordert wurden. Der Speicher-Controller migriert danach die zweiten Daten, auf die durch die zweite Zugriffsanforderung zugegriffen wurde, von dem ersten Speichergerät auf das zweite Speichergerät auf Grundlage der aufgezeichneten Verknüpfung, so dass die ersten und zweiten Daten für den Zugriff über verschiedene Hardware-Kanäle verfügbar sind.

Description

  • HINTERGRUND DER ERFINDUNG
  • Diese Veröffentlichung bezieht sich auf die Datenverarbeitung und Datenspeicherung, und insbesondere auf die effiziente Verteilung von Daten auf die Speichergeräte eines Datenspeichersystems. Noch spezieller bezieht sich die Offenlegung auf die Verlagerung von Daten zwischen Datenspeichergeräten auf Grundlage der zeitlichen Nähe von Zugriffen auf die Daten.
  • Datenspeichersysteme versuchen im Allgemeinen, eine Zugriffslatenz zu verringern und eine Zunahme eines Eingabe/Ausgabe (E/A)-Durchsatzes zu erhöhen, indem sie Engpässe beim Datenzugriff verringern. In einigen Implementierungen versuchen Datenspeichersysteme beispielsweise, die Zugriffslatenz zu verbessern und den Durchsatz zu erhöhen, indem sie Daten „horizontal“ auf mehrere verschiedene Peer-Speichergeräte verteilen, die ein Speicherarray bilden (z. B. ein Redundant Array of Independent Disks (RAID)). In einigen Implementierungen versuchen Datenspeichersysteme alternativ oder zusätzlich, die Zugriffslatenz zu verbessern und den Durchsatz zu erhöhen, indem sie die Daten „vertikal“ auf mehrere Ebenen von Speichergeräten mit unterschiedlichen Zugriffslatenzen auf Grundlage der Häufigkeit des Zugriffs auf die Daten verteilen.
  • Die vorliegende Veröffentlichung erkennt jedoch an, dass selbst in Datenspeichersystemen, die Daten „horizontal“ und/oder „vertikal“ verteilen, immer noch Leistungsfähigkeitsengpässe aufgrund der zeitlichen Nähe von Zugriffen auf verschiedene Daten entstehen können, die sich auf demselben Speichergerät befinden oder auf welche über einen gemeinsamen Controller zugegriffen wird.
  • ZUSAMMENFASSUNG
  • Die vorliegende Offenlegung verbessert Leistungsengpässe, die aufgrund der zeitlichen Nähe von Zugriffen auf Daten entstehen können, die sich auf demselben Speichergerät befinden und/oder dem Zugriff über einen gemeinsamen Controller unterliegen.
  • In mindestens einer Ausführungsform umfasst ein Datenspeichersystem mindestens ein erstes und zweites Speichergerät, auf das über erste bzw. zweite Hardware-Kanäle zugegriffen wird. Ein Speicher-Controller des Datenspeichersystems empfängt eine erste Zugriffsanforderung, die einen Zugriff auf erste Daten anfordert, und eine zweite Zugriffsanforderung, die einen Zugriff auf zweite Daten anfordert, wobei sowohl auf die ersten Daten als auch auf die zweiten Daten über den ersten Hardware-Kanal zugegriffen wird. In Reaktion auf das Erkennen des Empfangs der ersten und zweiten Zugriffsanforderung innerhalb desselben Dienstfensters, das einen Bereich zeitlicher Nähe definiert, zeichnet der Speicher-Controller eine Verknüpfung von Kennungen der ersten Daten und zweiten Daten auf, die von der ersten bzw. zweiten Zugriffsanforderung angefordert wurden. Der Speicher-Controller migriert anschließend die zweiten Daten, auf die durch die zweite Zugriffsanforderung zugegriffen wurde, von dem ersten Speichergerät auf das zweite Speichergerät auf der Grundlage der aufgezeichneten Verknüpfung, so dass die ersten und zweiten Daten für den Zugriff über verschiedene Hardware-Kanäle verfügbar sind.
  • Figurenliste
    • 1 ist ein übergeordnetes Blockdiagramm einer Datenverarbeitungsumgebung gemäß einer Ausführungsform;
    • 2 ist ein übergeordnetes logisches Flussdiagramm eines beispielhaften Prozesses zur Aufzeichnung von Zielen zeitlich benachbarter Zugriffe gemäß einer Ausführungsform;
    • 3 veranschaulicht eine beispielhafte Zugriffsdatenstruktur, in der Ziele von zeitlich nahe beieinander liegenden Zugriffsanforderungen durch den Prozess aus 2 gemäß einer Ausführungsform aufgezeichnet werden; und
    • 4 ist ein übergeordnetes logisches Flussdiagramm eines beispielhaften Prozesses zur Verteilung von Daten, auf welche in einem Datenspeichersystem zeitnah zugegriffen wird, gemäß einer Ausführungsform.
  • DETAILLIERTE BESCHREIBUNG
  • Unter Bezugnahme auf die Figuren und insbesondere auf 1 wird ein übergeordnetes Blockdiagramm einer beispielhaften Datenverarbeitungsumgebung 100 veranschaulicht, die ein Datenspeichersystem 120 umfasst, wie es ferner hier beschrieben wird. Wie gezeigt, umfasst die Datenverarbeitungsumgebung 100 einen oder mehrere Hosts, wie z.B. ein Prozessorsystem 102 mit einem oder mehreren Prozessoren 104, die Anweisungen und Daten verarbeiten. Ein Prozessorsystem 102 kann zusätzlich einen lokalen Speicher 106 (z.B. einen dynamischen Speicher mit wahlfreiem Zugriff (DRAM) oder Platten) umfassen, der Programmcode, Operanden und/oder Ausführungsergebnisse der von Prozessor(en) 104 ausgeführten Prozesse speichern kann. In verschiedenen Ausführungsformen kann ein Prozessorsystem 102 z.B. ein mobiles Rechengerät (wie ein Smartphone oder Tablet), ein Laptop- oder Desktop-Personalcomputersystem, ein Server-Computersystem (wie einer der Server der POWER-Serie, die bei der International Business Machines Corporation erhältlich sind) oder ein Großrechner-Computersystem sein. Ein Prozessorsystem 102 kann auch ein eingebettetes Prozessorsystem sein, das verschiedene Prozessoren wie ARM, POWER, Intel x86 oder jeden anderen Prozessor in Kombination mit Speicher-Caches, Speicher-Controllern, lokalen Speichern, E/A-Bus-Hubs usw. verwendet.
  • Jedes Prozessorsystem 102 umfasst ferner einen oder mehrere Ein-/Ausgabe (E/A)-Adapter 108, die jeweils direkt (d.h. ohne zwischengeschaltetes Gerät) oder indirekt (d.h. über mindestens ein zwischengeschaltetes Gerät) mit einem oder mehreren Datenspeichersystemen 120 über einen E/A-Kanal 110 gekoppelt werden können. In einigen Ausführungsformen kann ein Datenspeichersystem 120 in ein Prozessorsystem 102 integriert sein. In verschiedenen Ausführungsformen kann der E/A-Kanal 110 ein beliebiges oder eine Kombination bekannter oder zukünftig entwickelter Kommunikationsprotokolle verwenden, einschließlich z.B. Fibre Channel (FC), FC over Ethernet (FCoE), Internet Small Computer System Interface (iSCSI), InfiniBand, Transport Control Protocol/Internet Protocol (TCP/IP), Peripheral Component Interconnect Express (PCle) usw. E/A-Anforderungen (Operationsanforderung), die über den E/A-Kanal 110 übermittelt werden, umfassen z.B. Leseanforderungen, mit denen ein Prozessorsystem 102 Daten vom Datenspeichersystem 120 anfordert, Schreibanforderungen, mit denen ein Prozessorsystem 102 die Speicherung von Daten im Datenspeichersystem 120 anfordert, und offene Anforderungen, mit denen ein Prozessorsystem 102 das Öffnen eines Dateisystemobjekts (z.B. einer Datei) anfordert.
  • In der veranschaulichen Ausführungsform umfasst das Datenspeichersystem 120 eine oder mehrere Schnittstellenkarten 122, über die das Datenspeichersystem 120 E/A-Anforderungen von Hosts über E/A-Kanäle 110 empfängt und beantwortet. Jede Schnittstellenkarte 122 ist mit einem oder mehreren Redundant Array of Inexpensive Disks (RAID)-Controllern 124 gekoppelt, die Fehlertoleranz und Lastausgleich bereitstellen. Jeder der RAID-Controller 124 ist wiederum (z. B. über einen PCIe-Bus) mit einem oder mehreren nichtflüchtigen Speichergeräten 126a-126d gekoppelt, die eine oder mehrere Typen von Speichergeräten umfassen können, einschließlich nichtflüchtiger Speicher (z. B. Flash-Speicher), Festplatten, Bandlaufwerke usw. Jeder der RAID-Controller 124, der vorzugsweise mit einem entsprechenden Controller-Speicher 125 gekoppelt ist oder einen entsprechenden Controller-Speicher 125 enthält, verteilt die Extents der Dateisystemobjekte auf die Speichergeräte 126, um einen guten E/A-Durchsatz und eine niedrige Latenz zu erreichen.
  • In der dargestellten Ausführungsform wird der Gesamtbetrieb des Datenspeichersystems 120 durch redundante System-Management-Controller (SMCs) 123 verwaltet, die mit Schnittstellenkarten 122 und RAID-Controllern 124 gekoppelt sind. In verschiedenen Ausführungsformen kann der System-Management-Controller 123 unter Verwendung von Hardware oder Hardware, die Firmware und/oder Software ausführt, implementiert werden.
  • Diejenigen, die sich auf diesem Gebiet auskennen, werden unter Bezugnahme auf 1 leicht erkennen, dass die Datenverarbeitungsumgebung 100 mehrere Hardware-Kanäle umfasst, die aufgrund der inhärenten Latenzen und Durchsatzbeschränkungen dieser Hardware-Kanäle potenziell Engpässe für Datenzugriffsanforderungen bilden können. Im Allgemeinen können diese mehrfachen Hardware-Kanäle im gegebenen Beispiel mindestens E/A-Adapter 108, Schnittstellenkarte 122, RAID-Controller 124 und Speichergeräte 126 umfassen. Die inhärenten Latenzen und Durchsatzbegrenzungen dieser Hardware-Kanäle haben die Wirkung, dass zeitlich nahe beieinander liegende Zugriffsanforderungen unter Verwendung eines gemeinsamen Satzes von Hardware-Kanälen serialisiert werden, so dass die später empfangene Zugriffsanforderung mit einer Latenz bedient werden kann, die den inhärenten Latenzen aller Hardware-Kanäle entspricht, die von der Zugriffsanforderung durchlaufen werden, zuzüglich der Wartezeiten, die durch Warteschlangenverzögerungen entstehen, wenn die Zugriffsanforderung auf den Abschluss der unmittelbar vorangehenden Zugriffsanforderung wartet. Im Allgemeinen wird bei Datenspeichersystemen 120 einschließlich Speichergeräten 126 wie Festplatten und Bandlaufwerken der größte Anteil an der Latenz einer Zugriffsanforderung die Suchzeit des Speichergerätes 126 sein, die beispielsweise 2 bis 10 ms betragen kann.
  • Unter Bezugnahme auf 2 wird nun ein übergeordnetes logisches Flussdiagramm eines beispielhaften Prozesses zur Aufzeichnung von Zielen zeitlich nahe beieinander liegender Zugriffsanforderungen gemäß einer Ausführungsform dargestellt. Der veranschaulichte Prozess kann z.B. von einem RAID-Controller 124 und/oder einem SMC 123 in verschiedenen Ausführungsformen (die einzeln oder gemeinsam als „Speicher-Controller“ bezeichnet werden können) ausgeführt werden. In der folgenden Beschreibung wird der Prozess der Einfachheit halber als von einem RAID-Controller 124 ausgeführt beschrieben. In verschiedenen Ausführungsformen kann der veranschaulichte Prozess vollständig in Hardware oder auf einer Hardware-Plattform implementiert werden, die so konfiguriert ist, dass sie den Prozess durch die Ausführung von Firmware und/oder Software ausführt. Die folgende detaillierte Beschreibung dient lediglich der Veranschaulichung und ist nicht dazu gedacht, Ausführungsformen und/oder die Anwendung oder den Gebrauch von Ausführungsformen einzuschränken. Darüber hinaus besteht keine Absicht, durch ausdrückliche oder implizite Informationen, die in den vorangegangenen Abschnitten „Hintergrund“ oder „Zusammenfassung“ oder im Abschnitt „Ausführliche Beschreibung“ dargestellt sind, gebunden zu sein.
  • Der Prozess aus 2 beginnt bei Block 200 und geht dann weiter zu Block 202, der einen RAID-Controller 124 veranschaulicht, der auf den Empfang einer Zugriffsanforderung wartet, z.B. auf eine Lese-, Schreib- oder Offen-Anforderung. Die Zugriffsanforderung kennzeichnet in der Regel den Initiator der Anforderung (z. B. durch eine IP-Adresse (Internet Protocol), eine MAC-Adresse (Media Access Control) oder eine andere Kennung des Prozessorsystems 102 und/oder die Arbeitslast, die die Zugriffsanforderung initiiert hat) und gibt ein Zieldateisystemobjekt an, auf das die Anforderung zugreifen soll. Abhängig von der Konfiguration des Datenspeichersystems 120 kann das Zieldateisystemobjekt dem Initiator über eine Logikschnittstelle präsentiert werden, z. B. ein Speichervolumen, das eine oder mehrere Llogikeinheiten (LUNs) umfasst. Unabhängig davon, wie das Zieldateisystemobjekt dem Initiator präsentiert wird, wird das Zieldateisystemobjekt physisch innerhalb eines oder mehrerer Speichergeräte 126 in einem oder mehreren Extents gespeichert, von denen jedes aus einem oder mehreren fortlaufenden Blöcken physischen Speichers gebildet wird.
  • Wenn bei Block 202 keine Zugriffsanforderung empfangen wird, setzt der Prozess seine Iteration fort, bis RAID-Controller 124 eine Zugriffsanforderung empfängt. In Reaktion auf den Empfang einer Zugriffsanforderung ermittelt RAID-Controller 124 in Block 204, ob die Zugriffsanforderung innerhalb eines Dienstfensters einer oder mehrerer anderer vorangegangener Zugriffsanforderungen empfangen wird, die auf unterschiedliche Extents abzielen und über denselben Hardware-Kanal bedient werden. In einer bevorzugten Ausführungsform ist das Dienstfenster eines Hardware-Kanals eine konfigurierbare Dauer, die einen Bereich der zeitlichen Nähe von Zugriffsanforderungen definiert. In einigen Ausführungsformen kann das Dienstfenster eines Hardware-Kanals zum Beispiel automatisch durch ein Betriebssystem oder eine Speichersystem-Software oder alternativ oder zusätzlich manuell durch einen Speicheradministrator konfiguriert werden. Im Falle von Datenspeichersystemen 120 einschließlich Speichergeräten 126 mit einer Latenz, die einer Suchzeit unterliegt (z.B. Festplatten, Bandlaufwerke usw.), hat das Dienstfenster für einen bestimmten Hardware-Kanal vorzugsweise einen Mindestwert, der gleich der Suchzeit des zugrundeliegenden Speichergeräts 126 ist. Wenn also eine Zugriffsanforderung einen Zugriff auf einen oder mehrere Extents anfordert, die auf einem Festplattenspeichergerät 126 mit einer Suchzeit von 2 ms gespeichert sind, kann das Dienstfenster für Zugriffe, die von diesem Festplattenspeichergerät aus bedient werden, z.B. so konfiguriert werden, dass es zwischen 2 und 5 ms liegt. Wenn das Dienstfenster für ein Festplatten-Speichergerät 126 so konfiguriert ist, dass es 3 ms beträgt, ermittelt RAID-Controller 124 dementsprechend im Block 204, ob eine Zugriffsanforderung, die einen Zugriff auf einen auf einem Festplatten-Speichergerät 126 (z.B. Speichergerät 126a) gespeicherten Extent anfordert, im Block 202 innerhalb von 3 ms nach einer anderen Zugriffsanforderung empfangen wird, die auf einen anderen, auf demselben Speichergerät 126a gespeicherten Extent abzielt.
  • In Reaktion darauf, dass RAID-Controller 124 bei Block 204 feststellt, dass die Zugriffsanforderung nicht im Dienstfenster einer anderen Zugriffsanforderung empfangen wurde, die über denselben Hardware-Kanal bedient wird, geht der Prozess zu Block 214 über, der nachfolgend beschrieben wird. In Reaktion darauf, dass RAID-Controller 124 bei Block 204 feststellt, dass die Zugriffsanforderung im Dienstfenster einer oder mehrerer vorangegangener Zugriffsanforderungen empfangen wurde, die auf unterschiedliche Extents abzielen und über denselben Hardware-Kanal bedient werden, geht der Prozess von 2 jedoch zu Block 206 und folgenden Blöcken über. Block 206 und folgende Blöcke veranschaulichen RAID-Controller 124, der eine oder mehrere Verknüpfungen zwischen der Kennung eines Extents, auf den die aktuelle Zugriffsanforderung abzielt, und der/den Kennung(en) des/der anderen Extents, auf den/die andere(n) Speicherzugriffsanforderung(en) abzielen, im Dienstfenster desselben Hardware-Kanals aufzeichnet.
  • Unter Bezugnahme auf 3 wird nun eine beispielhafte Zugriffsdatenstruktur 300 veranschaulicht, in der Ziel-Extents von zeitlich nahe beieinander liegenden Zugriffsanforderungen in Block 206 von 2 gemäß einer Ausführungsform aufgezeichnet werden können. In dem dargestellten Beispiel behält RAID-Controller 124 die Zugriffsdatenstruktur 300 in seinem verknüpften Controller-Speicher 125 bei.
  • In der dargestellten Ausführungsform umfasst die Zugriffsdatenstruktur 300, die die Form einer Tabelle oder einer anderen geeigneten Datenstruktur haben kann, eine Vielzahl von Einträgen 302. Jeder Eintrag 302 umfasst ein Extent-Paar-Feld 304 zum Speichern eines Paares von Extent-Kennungen, ein Zählerfeld 306 zum Angeben einer Zählung einer Anzahl von Speicherzugriffsanforderungspaaren, die auf die identifizierten Extents innerhalb des betreffenden Dienstfensters abzielen, und ein Kandidaten-Speichergerät-Feld 308 zum Kennzeichnen eines Kandidaten-Speichergeräts 126, zu dem eines der beiden identifizierten Extents migriert werden kann, um die Zugriffslatenz zu verbessern.
  • In Anbetracht dieser beispielhaften Zugriffsdatenstruktur 300 ermittelt RAID-Controller 124 in Block 206 der 2, ob die Zugriffsdatenstruktur 300 bereits einen Eintrag 302 umfasst, der eine Verknüpfung zwischen der Kennung des von der aktuellen Zugriffsanforderung angeforderten Extents und einer Kennung des Ziel-Extents der anderen Speicherzugriffsanforderung, die in das Dienstfenster desselben Hardware-Kanals fällt, verknüpft. Wenn dies der Fall ist, kann RAID-Controller 124 einfach das Zählerfeld 306 des entsprechenden Eintrags 302 inkrementieren, wie in Block 212 gezeigt. Wenn RAID-Controller 124 jedoch in Block 206 feststellt, dass innerhalb der Zugriffsdatenstruktur 300 kein passender Eintrag 302 bereits vorhanden ist, weist RAID-Controller 124 einen neuen Eintrag 302 zu und zeichnet im Feld 304 des Extent-Paares eine Verknüpfung zwischen der Kennung des von der aktuellen Zugriffsanforderung angeforderten Extents und einer Kennung des Ziel-Extents der anderen Speicherzugriffsanforderung auf, die in das Dienstfenster desselben Hardware-Kanals fällt (Block 208). Darüber hinaus ermittelt der RAID-Controller 124 eine Kennung eines Kandidaten-Speichergeräts 126, falls vorhanden, und zeichnet diese in Feld 308 auf, in das der Ziel-Extent der aktuellen Zugriffsanforderung migriert werden kann, um die Latenz des Ziel-Extents zu verringern (Block 210). Darüber hinaus erhöht RAID-Controller 124 den Zählwert von Zählerfeld 306, zum Beispiel von 0 auf 1 (Block 212). Der Prozess von 2 verläuft dann von Block 212 bis Block 214.
  • Block 214 veranschaulicht, wie RAID-Controller 124 die aktuelle Speicherzugriffsanforderung bedient, indem er den Typ des Zugriffs auf den durch die Zugriffsanforderung angeforderten Ziel-Extent (z. B. Lesen, Schreiben, Öffnen usw.) bereitstellt. Nach Block 214 kehrt der Prozess von 2 zu Block 202 und folgenden Blöcken zurück, die beschrieben wurden.
  • 3 veranschaulicht ein spezifisches Beispiel dafür, wie RAID Controller 124 die Zugriffsdatenstruktur 300 in einem Betriebsszenario auffüllen kann. In diesem Beispiel empfängt RAID-Controller 124 innerhalb eines Dienstfensters fünf verschiedene Zugriffsanfragen, die jeweils auf einen der Extents E1, ..., E5 abzielen, die alle auf Speichergerät 126a gespeichert sind. Diese Abfolge von Zugriffsanforderungen lässt sich wie folgt darstellen:
    • R1(A(E1))
    • R2(A(E2))
    • R3(A(E3))
    • R4(A(E4))
    • R5(A(E5))
  • In Reaktion auf den Empfang dieser Abfolge von Zugriffsanforderungen zeichnet RAID-Controller 124 eine Verknüpfung zwischen den Kennungen jedes Paares von Extents, auf die die Abfolge von Zugriffsanforderungen abzielt, innerhalb der Extent-Paar-Felder 304 der Einträge 302 auf, wie in 3 dargestellt. RAID-Controller 124 aktualisiert auch das Zählfeld 306 jedes solchen Eintrags 302 auf den Wert 1, unter der Annahme, dass dies das erste Mal ist, dass diese Extent-Paare seit der letzten Initialisierung der Zählfelder 306 aufgezeichnet wurden. Darüber hinaus bezeichnet RAID-Controller 124 Kandidaten-Speichergeräte, falls vorhanden, zu denen verschiedene der Ziel-Extents migriert werden können, um die Latenz zu verbessern. In diesem Beispiel bezeichnet RAID-Controller 124 mit der Kennung B das Speichergerät 126b als Kandidaten-Speichergerät für Extent E2, mit der Kennung C das Speichergerät 126c als Kandidaten-Speichergerät für Extent E3 und mit der Kennung D das Speichergerät 126d als Kandidaten-Speichergerät für Extent E4. Es ist zu beachten, dass der RAID-Controller 124 zumindest anfänglich kein Kandidaten-Speichergerät für den Extent E5 angibt, da die Migration des Extents E5 vom Speichergerät 126a die Gesamtlatenz nicht verbessern würde, wenn weiterhin in zeitlicher Nähe zu den Extents E2 - E4 auf den Extent E5 zugegriffen wird.
  • Es ist zu beachten, dass, nachdem RAID-Controller 124 ein Kandidaten-Speichergerät bestimmt hat, zu dem ein Extent eines Extent-Paares migriert werden kann (oder auf eine anfängliche Bestimmung verzichtet), RAID-Controller 124 vorzugsweise so konfiguriert ist, dass er den bestimmten Kandidaten (oder die Bestimmung eines Kandidaten-Speichergeräts) auf der Grundlage beobachteter Zugriffshäufigkeiten verschiedener Extent-Paare aktualisiert. Wenn man beispielsweise annimmt, dass auf Extent E2 tendenziell innerhalb desselben Dienstfensters wie auf Extent E1 weniger als auf Extent E5 innerhalb desselben Dienstfensters wie auf Extent E1 zugegriffen wird, aktualisiert RAID-Controller 124 vorzugsweise die Bezeichnung der Kandidaten-Speichergeräte in den Kandidaten-Speichergeräte-Feldern 308, um Speichergerät 126b als den designierten Kandidaten für Extent E5 zu bestimmen und das Kandidaten-Speichergerätefeld 308 für den Eintrag 302 für das Extent-Paar E1:E2 zu löschen.
  • Unter Bezugnahme auf 4 ist nun ein übergeordnetes logisches Flussdiagramm eines beispielhaften Prozesses zur Verteilung von Daten, auf welche in einem Datenspeichersystem zeitnah zugegriffen wird, gemäß einer Ausführungsform dargestellt. Zum einfacheren Verständnis wird der Prozess von 4 im Folgenden unter Bezugnahme auf einen RAID-Controller 124 beschrieben, der Extents zwischen Speichergeräten 126 migriert; es sollte jedoch berücksichtigt werden, dass der Prozess auch auf die Verteilung von Daten, auf welche zeitnah zugegriffen wird, über andere Hardware-Kanäle angewendet werden kann.
  • Der Prozess von 4 beginnt bei Block 400 und setzt sich dann fort bis Block 402, der veranschaulicht, wie RAID-Controller 124 feststellt, ob ein minimales Migrationsintervall (z.B. 4 Stunden, 8 Stunden, 1 Tag usw.) seit der letzten Ausführung einer Extent-Migration zwischen Speichergeräten 126 verstrichen ist oder nicht. Falls nicht, iteriert der Prozess einfach bei Block 402. Wenn RAID-Controller 124 jedoch in Block 402 feststellt, dass das minimale Migrationsintervall verstrichen ist, kann RAID-Controller 124 ferner optional in Block 404 ermitteln, ob ein Zählwert im Zählerfeld 306 eines der Einträge 302 (oder einer Schwellenanzahl von Einträgen 302) einen Migrationsschwellenwert erfüllt (z. B. größer oder gleich). Die in Block 404 veranschaulichte optionale Feststellung stellt sicher, dass die Migration von Extents zwischen Speichergerät 126 erst dann ausgeführt wird, wenn die Häufigkeit der zeitlichen Nähe von Zugriffen auf Extents ausreichend ist, um den Overhead des Migrationsprozesses zu rechtfertigen.
  • In Reaktion darauf, dass RAID-Controller 124 bei Block 404 feststellt, dass die Migrationsschwelle nicht erfüllt wurde, kehrt der Prozess zu Block 402 zurück. Wenn jedoch RAID-Controller 124 bei Block 404 feststellt, dass die Migrationsschwelle erfüllt wurde, migriert RAID-Controller 124 die Extents zwischen Speichergeräten 126 gemäß der Verteilung, die durch Kandidaten-Speichergeräte-Felder 308 der Zugriffsdatenstruktur 300 (Block 406) angegeben wird. Als Ergebnis der Migration sind Extents, auf die in enger zeitlicher Nähe häufig zugegriffen wird, danach über verschiedene Hardware-Kanäle (z. B. Speichergeräte 126) zugänglich. Der Fachmann wird der dessen gewahr sein, dass während der in Block 406 dargestellten Migration ein Speicher-Controller, wie z.B. RAID-Controller 124, zusätzlich Daten auf der Grundlage anderer Metriken wie Extent-Zugriffsfrequenz (Wärme), Lastausgleich usw. migrieren kann. Nach der Migration in Block 406 initialisiert RAID-Controller 124 die Zugriffsdatenstruktur 300 neu, indem er beispielsweise die Extent-Paar-Felder 304 und die Felder 308 des Kandidatengeräts löscht und die Zählerfelder 306 auf null zurücksetzt (Block 408). Der Prozess kehrt dann zu Block 402 zurück, der beschrieben wurde.
  • Wie bereits beschrieben, umfasst ein Datenspeichersystem in mindestens einer Ausführungsform mindestens ein erstes und ein zweites Speichergerät, auf die über einen ersten bzw. zweiten Hardware-Kanal zugegriffen wird. Ein Speicher-Controller des Datenspeichersystems empfängt eine erste Zugriffsanforderung, die einen Zugriff auf erste Daten anfordert, und eine zweite Zugriffsanforderung, die einen Zugriff auf zweite Daten anfordert, wobei sowohl auf die ersten Daten als auch auf die zweiten Daten über den ersten Hardware-Kanal zugegriffen wird. In Reaktion auf das Erkennen des Empfangs der ersten und zweiten Zugriffsanforderung innerhalb desselben Dienstfensters, das einen Bereich zeitlicher Nähe definiert, zeichnet der Speicher-Controller eine Verknüpfung von Kennungen der ersten Daten und zweiten Daten auf, die von der ersten bzw. zweiten Zugriffsanforderung angefordert wurden. Der Speicher-Controller migriert danach die zweiten Daten, auf die durch die zweite Zugriffsanforderung zugegriffen wurde, von dem ersten Speichergerät zu dem zweiten Speichergerät auf Grundlage der aufgezeichneten Verknüpfung, so dass die ersten und zweiten Daten für den Zugriff über verschiedene Hardware-Kanäle verfügbar sind.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann ein oder mehrere computerlesbare Speichermedien, die computerlesbare Programmanweisungen enthalten, um einen Prozessor zur Ausführung von Aspekten der vorliegenden Erfindung zu veranlassen, umfassen.
  • Das computerlesbare Speichermedium kann ein greifbares Gerät sein, das Anweisungen zur Verwendung durch ein Anweisungsausführungsgerät aufbewahren und speichern kann. Das computerlesbare Speichermedium kann zum Beispiel ein elektronisches Speichergerät, ein magnetisches Speichergerät, ein optisches Speichergerät, ein elektromagnetisches Speichergerät, ein Halbleiterspeichergerät oder eine geeignete Kombination der vorgenannten sein, ist aber nicht darauf beschränkt. Eine nicht erschöpfende Liste von spezifischeren Beispielen des computerlesbaren Speichermediums umfasst das Folgende: eine tragbare Computerdiskette, eine Festplatte, einen Speicher mit wahlfreiem Zugriff (RAM), einen Nur-Lese-Speicher (ROM), einen löschbaren programmierbaren Nur-Lese-Speicher (EPROM oder Flash-Speicher), einen statischen Speicher mit wahlfreiem Zugriff (SRAM), einen tragbaren Nur-Lese-Speicher für Compact Discs (CD-ROM), eine digitale vielseitige Platte (DVD), einen Speicherstick, eine Diskette, ein mechanisch codiertes Gerät wie Lochkarten oder erhabene Strukturen in einer Nut, auf denen Befehle aufgezeichnet sind, und jede geeignete Kombination der vorstehenden Elemente. Ein hier verwendetes computerlesbares Speichermedium sollte nicht so ausgelegt werden, dass es sich dabei per se um vergängliche Signale handelt wie beispielsweise Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Hohlleiter oder andere Übertragungsmedien ausbreiten (z. B. Lichtimpulse, die ein Lichtwellenleiterkabel durchlaufen) oder elektrische Signale, die durch eine Leitung übertragen werden.
  • Die hierin beschriebenen computerlesbaren Programmanweisungen können von einem computerlesbaren Speichermedium oder über ein Netzwerk, z.B. das Internet, ein lokales Netzwerk, ein Weitverkehrsnetzwerk und/oder ein drahtloses Netzwerk, auf die entsprechenden Rechengeräte/Verarbeitungsgeräte heruntergeladen werden. Das Netzwerk kann Kupfer-Übertragungskabel, optische Übertragungsfasern, drahtlose Übertragung, Router, Firewalls, Switches, Gateway-Computer und/oder Edge-Server umfassen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jedem Rechengerät/Verarbeitungsgerät empfängt computerlesbare Programmanweisungen aus dem Netzwerk und leitet die computerlesbaren Programmanweisungen zur Speicherung in einem computerlesbaren Speichermedium innerhalb des jeweiligen Rechengerätes/Verarbeitungsgerätes weiter.
  • Bei computerlesbaren Programmanweisungen zur Ausführung von Betriebsanweisungen der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandsetzende Daten oder entweder um Quellcode oder Objektcode handeln, die in einer beliebigen Kombination einer oder mehrerer Programmiersprachen, einschließlich einer objektorientierten Programmiersprache wie Smalltalk, C++ oder dergleichen, und herkömmlicher prozeduraler Programmiersprachen, wie der Programmiersprache „C“ oder ähnlicher Programmiersprachen, geschrieben sind. Die computerlesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem Remote-Computer oder vollständig auf dem Remote-Computer oder Server ausgeführt werden. Im letzteren Fall kann der Remote-Computer mit dem Computer des Benutzers über jede Art von Netzwerk verbunden sein, einschließlich eines lokalen Netzwerks (LAN) oder eines Weitverkehrsnetzwerks (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet mit Hilfe eines Internet Service Providers). In einigen Ausführungsformen können elektronische Schaltungen, die z.B. programmierbare Logikschaltungen, feldprogrammierbare Gatterfelder (FPGA) oder programmierbare Logikfelder (PLA) umfassen, die computerlesbaren Programmanweisungen ausführen, indem sie die Zustandsinformationen der computerlesbaren Programmanweisungen zur Personalisierung der elektronischen Schaltung nutzen, um Aspekte der vorliegenden Erfindung auszuführen.
  • Aspekte der vorliegenden Erfindung werden hierin unter Bezugnahme auf Flussdiagrammabbildungen und/oder Blockdiagramme von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird vorausgesetzt, dass jeder Block der Flussdiagrammabbildungen und/oder Blockdiagramme und Kombinationen von Blöcken in den Flussdiagrammabbildungen und/oder Blockdiagrammen durch computerlesbare Programmanweisungen implementiert werden kann.
  • Diese computerlesbaren Programmanweisungen können einem Prozessor eines Allzweck-Computers, eines Spezial-Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung zur Verfügung gestellt werden, um eine Maschine zu erzeugen, so dass die Anweisungen, die über den Prozessor des Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, Mittel zur Implementierung der im Flussdiagramm- und/oder Blockdiagramm-Block oder in den Blockdiagrammen angegebenen Funktionen/Aktionen zu schaffen. Diese computerlesbaren Programmanweisungen können auch in einem computerlesbaren Speichermedium gespeichert werden, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Vorrichtungen anweisen kann, in einer bestimmten Weise zu funktionieren, so dass das computerlesbare Speichermedium, in dem Anweisungen gespeichert sind, einen Herstellungsgegenstand umfasst, der Anweisungen umfasst, die Aspekte der im Flussdiagramm und/oder im Blockdiagrammblock oder in den Blockdiagrammblöcken spezifizierten Funktion/Handlung implementieren.
  • Die computerlesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder ein anderes Gerät geladen werden, um eine Reihe von Betriebsanweisungen auf dem Computer, einer anderen programmierbaren Vorrichtung oder einem anderen Gerät auszuführen, um einen computerimplementierten Prozess zu erzeugen, so dass die Anweisungen, die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einem anderen Gerät ausgeführt werden, die Funktionen/Handlungen implementieren, die in dem Flussdiagramm und/oder dem Block oder den Blöcken des Blockdiagramms spezifiziert sind.
  • Das Flussdiagramm und die Blockdiagramme in den Figuren veranschaulichen die Architektur, Funktionalität und Funktionsweise möglicher Implementierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In dieser Hinsicht kann jeder Block in dem Flussdiagramm oder den Blockdiagrammen ein Modul, ein Segment oder einen Teil von Befehlen darstellen, das/der einen oder mehrere ausführbare Befehle zur Implementierung der angegebenen logischen Funktion(en) umfasst. In einigen alternativen Implementierungen können die im Block vermerkten Funktionen außerhalb der in den Figuren angegebenen Reihenfolge auftreten. So können z.B. zwei nacheinander dargestellte Blöcke im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal in umgekehrter Reihenfolge ausgeführt werden, je nach der betreffenden Funktionalität. Es ist zu beachten, dass jeder Block der Blockdiagramme und/oder der veranschaulichenden Flussdiagrammdarstellung sowie Kombinationen von Blöcken in den Blockdiagrammen und/oder der veranschaulichenden Flussdiagrammdarstellung durch auf Spezial-Hardware basierende Systeme implementiert werden kann, die die angegebenen Funktionen oder Handlungen ausführen oder Kombinationen von Spezial-Hardware und Computerbefehlen ausführen.
  • Während die vorliegende Erfindung insbesondere in Bezug auf eine oder mehrere bevorzugte Ausführungsformen wie beschrieben gezeigt wurde, wird es von den Fachleuten verstanden werden, dass darin verschiedene Form- und Detailänderungen vorgenommen werden können, ohne vom Geist und Umfang der Erfindung abzuweichen. Obwohl zum Beispiel Aspekte in Bezug auf ein Datenspeichersystem beschrieben wurden, das einen Flash-Controller umfasst, der bestimmte Funktionen steuert, sollte verstanden werden, dass die vorliegende Erfindung alternativ als ein Programmprodukt implementiert werden kann, das ein Speichergerät zur Speicherung von Programmcode umfasst, der von einem Prozessor verarbeitet werden kann, um solche Funktionen auszuführen oder ausführen zu lassen. Wie hier verwendet, ist ein „Speichergerät“ speziell so definiert, dass es nur satzungsgemäße Herstellungsgegenstände umfasst und Signalmedien per se, vorübergehende verbreitende Signale per se und Energie per se ausschließt.
  • Die oben beschriebenen Figuren und die schriftliche Beschreibung spezifischer Strukturen und Funktionen unten werden nicht dargestellt, um den Umfang dessen, was die Anmelder erfunden haben, oder den Umfang der beigefügten Ansprüche einzuschränken. Vielmehr werden die Figuren und die schriftliche Beschreibung bereitgestellt, um jeden Fachmann zu lehren, die Erfindungen, für die Patentschutz beantragt wird, zu machen und zu benutzen. Fachkundige Personen werden verstehen, dass nicht alle Merkmale einer kommerziellen Ausführungsform der Erfindungen aus Gründen der Klarheit und des Verständnisses beschrieben oder gezeigt werden. Fachkundige Personen werden auch verstehen, dass die Entwicklung einer tatsächlichen kommerziellen Ausführungsform, die Aspekte der gegenwärtigen Erfindungen enthält, zahlreiche implementierungsspezifische Entscheidungen erfordern wird, um das Endziel des Entwicklers für die kommerzielle Ausführungsform zu erreichen. Solche implementierungsspezifischen Entscheidungen können die Einhaltung systembedingter, geschäftlicher, staatlicher und anderer Einschränkungen umfassen, die je nach spezifischer Implementierung, Standort und von Zeit zu Zeit variieren können, und sind wahrscheinlich nicht darauf beschränkt. Auch wenn die Bemühungen eines Entwicklers im absoluten Sinne komplex und zeitaufwendig sein mögen, so wären solche Bemühungen für Fachleute, die von dieser Offenlegung profitieren, dennoch ein Routineunternehmen. Es muss verstanden werden, dass die hier offengelegten und gelehrten Erfindungen zahlreichen und verschiedenen Modifikationen und alternativen Formen zugänglich sind. Schließlich ist die Verwendung eines Begriffs im Singular, wie z.B., aber nicht beschränkt auf „ein“, nicht als Begrenzung der Anzahl der Gegenstände gedacht.

Claims (19)

  1. Verfahren zur Verwaltung einer Datenmigration in einem Datenspeichersystem, das mindestens ein erstes und ein zweites Speichergerät enthält, auf die über erste bzw. zweite Hardware-Kanäle zugegriffen wird, wobei das Verfahren umfasst: ein Speicher-Controller des Datenspeichersystems empfängt eine erste Zugriffsanforderung, die einen Zugriff auf erste Daten anfordert, und eine zweite Zugriffsanforderung, die einen Zugriff auf zweite Daten anfordert, wobei sowohl auf die ersten Daten als auch auf die zweiten Daten über den ersten Hardware-Kanal zugegriffen wird; in Reaktion auf das Erkennen des Empfangs der ersten und zweiten Zugriffsanforderung innerhalb desselben Dienstfensters, das einen Bereich zeitlicher Nähe definiert, zeichnet der Speicher-Controller eine Verknüpfung von Kennungen der ersten Daten und zweiten Daten auf, die von der ersten bzw. zweiten Zugriffsanforderung angefordert wurden; und der Speicher-Controller migriert anschließend die zweiten Daten, auf die durch die zweite Zugriffsanforderung zugegriffen wird, von dem ersten Speichergerät auf das zweite Speichergerät auf Grundlage der aufgezeichneten Verknüpfung, so dass die ersten und zweiten Daten für den Zugriff über verschiedene Hardware-Kanäle verfügbar sind.
  2. Verfahren nach Anspruch 1, wobei: das Migrieren umfasst, dass der Speicher-Controller die zweiten Daten nur in Reaktion auf die Feststellung migriert, dass eine Anzahl von Paaren von Zugriffsanforderungen auf die ersten und zweiten Daten, die innerhalb eines Dienstfensters empfangen werden, einen Migrationsschwellenwert erfüllt.
  3. Verfahren nach Anspruch 1, wobei: der erste Hardware-Kanal eine Zugriffslatenz aufweist; und das Dienstfenster mindestens so lang ist wie die Zugriffslatenz des ersten Hardware-Kanals.
  4. Verfahren nach Anspruch 1, wobei: das Dienstfenster mindestens gleich lang ist wie eine Suchzeit des ersten Speichergeräts.
  5. Verfahren nach Anspruch 1, wobei das Aufzeichnen umfasst: Aufzeichnen der Verknüpfung von Kennungen der ersten und zweiten Daten in einer Zugriffsdatenstruktur; und Aufzeichnen einer Kennung des zweiten Speichergeräts in der Zugriffsdatenstruktur als ein Kandidaten-Speichergerät, auf das die zweiten Daten migriert werden können.
  6. Verfahren nach Anspruch 5, und ferner umfassend: Aktualisieren des Kandidaten-Speichergerätes, auf das die zweiten Daten migriert werden können, auf Grundlage einer Zugriffshäufigkeit von mindestens einem aus einem Satz, der die ersten Daten und die zweiten Daten enthält.
  7. Datenspeichersystem, umfassend: einen Speicher-Controller, der zur Ausführung des Folgenden konfiguriert ist: der Speicher-Controller des Datenspeichersystems empfängt eine erste Zugriffsanforderung, die einen Zugriff auf erste Daten anfordert, und eine zweite Zugriffsanforderung, die einen Zugriff auf zweite Daten anfordert, wobei sowohl auf die ersten Daten als auch auf die zweiten Daten über den ersten Hardware-Kanal zugegriffen wird; in Reaktion auf das Erkennen des Empfangs der ersten und zweiten Zugriffsanforderung innerhalb desselben Dienstfensters, das einen Bereich zeitlicher Nähe definiert, zeichnet der Speicher-Controller eine Verknüpfung von Kennungen der ersten Daten und zweiten Daten auf, die von der ersten bzw. zweiten Zugriffsanforderung angefordert wurden; und der Speicher-Controller migriert anschließend die zweiten Daten, auf die durch die zweite Zugriffsanforderung zugegriffen wird, von dem ersten Speichergerät auf das zweite Speichergerät auf Grundlage der aufgezeichneten Verknüpfung, so dass die ersten und zweiten Daten für den Zugriff über verschiedene Hardware-Kanäle verfügbar sind.
  8. Datenspeichersystem nach Anspruch 7, wobei: das Migrieren umfasst, dass der Speicher-Controller die zweiten Daten nur in Reaktion auf die Feststellung migriert, dass eine Anzahl von Paaren von Zugriffsanforderungen auf die ersten und zweiten Daten, die innerhalb eines Dienstfensters empfangen werden, einen Migrationsschwellenwert erfüllen.
  9. Datenspeichersystem von Anspruch 7, wobei: der erste Hardware-Kanal eine Zugriffslatenz aufweist; und das Dienstfenster mindestens so lang ist wie die Zugriffslatenz des ersten Hardware-Kanals.
  10. Datenspeichersystem nach Anspruch 7, wobei: das Dienstfenster mindestens gleich lang ist wie eine Suchzeit des ersten Speichergeräts.
  11. Datenspeichersystem nach Anspruch 7, wobei das Aufzeichnen umfasst: Aufzeichnen der Verknüpfung von Kennungen der ersten und zweiten Daten in einer Zugriffsdatenstruktur; und Aufzeichnen einer Kennung des zweiten Speichergeräts in der Zugriffsdatenstruktur als ein Kandidaten-Speichergerät, auf das die zweiten Daten migriert werden können.
  12. Datenspeichersystem nach Anspruch 11, wobei der Speicher-Controller ferner zur Ausführung des Folgenden konfiguriert ist: Aktualisieren des Kandidaten-Speichergeräts, auf das die zweiten Daten migriert werden können, auf Grundlage der Zugriffshäufigkeit von mindestens einem aus einem Satz, der die ersten Daten und die zweiten Daten enthält.
  13. Datenspeichersystem nach Anspruch 7, und ferner umfassend das erste und das zweite Speichergerät.
  14. Computerprogrammprodukt, wobei das Computerprogrammprodukt ein computerlesbares Speichermedium mit darin enthaltenen Programmanweisungen umfasst, wobei die Programmanweisungen durch einen Speicher-Controller ausführbar sind, um den Speicher-Controller zur Ausführung des Folgenden zu veranlassen: der Speicher-Controller des Datenspeichersystems empfängt eine erste Zugriffsanforderung, die einen Zugriff auf erste Daten anfordert, und eine zweite Zugriffsanforderung, die einen Zugriff auf zweite Daten anfordert, wobei sowohl auf die ersten Daten als auch auf die zweiten Daten über den ersten Hardware-Kanal zugegriffen wird; in Reaktion auf das Erkennen des Empfangs der ersten und zweiten Zugriffsanforderung innerhalb desselben Dienstfensters, das einen Bereich zeitlicher Nähe definiert, zeichnet der Speicher-Controller eine Verknüpfung von Kennungen der ersten Daten und zweiten Daten auf, die von der ersten bzw. zweiten Zugriffsanforderung angefordert wurden; und der Speicher-Controller migriert anschließend die zweiten Daten, auf die durch die zweite Zugriffsanforderung zugegriffen wird, von dem ersten Speichergerät auf das zweite Speichergerät auf Grundlage der aufgezeichneten Verknüpfung, so dass die ersten und zweiten Daten für den Zugriff über verschiedene Hardware-Kanäle verfügbar sind.
  15. Computerprogrammprodukt nach Anspruch 14, wobei das Migrieren umfasst, dass der Speicher-Controller die zweiten Daten nur in Reaktion auf die Feststellung migriert, dass eine Anzahl von Paaren von Zugriffsanforderungen auf die ersten und zweiten Daten, die innerhalb eines Dienstfensters empfangen werden, einen Migrationsschwellenwert erfüllen.
  16. Computerprogrammprodukt nach Anspruch 14, wobei: der erste Hardware-Kanal eine Zugriffslatenz aufweist; und das Dienstfenster mindestens so lang ist wie die Zugriffslatenz des ersten Hardware-Kanals.
  17. Computerprogrammprodukt nach Anspruch 14, wobei: das Dienstfenster mindestens gleich lang ist wie eine Suchzeit des ersten Speichergeräts.
  18. Computerprogrammprodukt nach Anspruch 14, wobei: Aufzeichnen der Verknüpfung von Kennungen der ersten und zweiten Daten in einer Zugriffsdatenstruktur; und Aufzeichnen einer Kennung des zweiten Speichergeräts in der Zugriffsdatenstruktur als ein Kandidaten-Speichergerät, auf das die zweiten Daten migriert werden können.
  19. Computerprogrammprodukt nach Anspruch 18, wobei die Ausführung der Programmanweisungen durch den Speicher-Controller diesen ferner zur Ausführung des Folgenden veranlasst: Aktualisieren des Kandidaten-Speichergeräts, auf das die zweiten Daten migriert werden können, auf Grundlage der Zugriffshäufigkeit von mindestens einem aus einem Satz, der die ersten Daten und die zweiten Daten enthält.
DE112019000303.8T 2018-02-21 2019-01-29 Datenspeichersystem, das die datenverlagerung auf grundlage von zeitlicher nähe von zugriffen durchführt Active DE112019000303B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/901,549 US10481823B2 (en) 2018-02-21 2018-02-21 Data storage system performing data relocation based on temporal proximity of accesses
US15/901,549 2018-02-21
PCT/IB2019/050696 WO2019162779A1 (en) 2018-02-21 2019-01-29 Data storage system performing data relocation based on temporal proximity of accesses

Publications (2)

Publication Number Publication Date
DE112019000303T5 true DE112019000303T5 (de) 2020-10-22
DE112019000303B4 DE112019000303B4 (de) 2022-03-03

Family

ID=67617918

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112019000303.8T Active DE112019000303B4 (de) 2018-02-21 2019-01-29 Datenspeichersystem, das die datenverlagerung auf grundlage von zeitlicher nähe von zugriffen durchführt

Country Status (6)

Country Link
US (1) US10481823B2 (de)
JP (1) JP7139433B2 (de)
CN (1) CN111684405B (de)
DE (1) DE112019000303B4 (de)
GB (1) GB2585285B (de)
WO (1) WO2019162779A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109725835B (zh) * 2017-10-27 2022-04-29 伊姆西Ip控股有限责任公司 用于管理盘阵列的方法、设备和计算机程序产品
CN111290713B (zh) * 2020-01-22 2023-11-03 恩亿科(北京)数据科技有限公司 一种数据存储方法、装置、电子设备及存储介质
CN115145716B (zh) * 2021-03-30 2024-07-26 中移(苏州)软件技术有限公司 数据分配方法及装置、存储介质

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5426736A (en) 1993-05-26 1995-06-20 Digital Equipment Corporation Method and apparatus for processing input/output commands in a storage system having a command queue
US6820171B1 (en) 2000-06-30 2004-11-16 Lsi Logic Corporation Methods and structures for an extensible RAID storage architecture
JP2003216348A (ja) 2001-11-14 2003-07-31 Hitachi Ltd 記憶装置の管理方法および管理装置
US7558197B1 (en) 2002-01-17 2009-07-07 Juniper Networks, Inc. Dequeuing and congestion control systems and methods
JP4391265B2 (ja) * 2004-02-26 2009-12-24 株式会社日立製作所 ストレージサブシステムおよび性能チューニング方法
US7124143B2 (en) 2004-05-10 2006-10-17 Hitachi, Ltd. Data migration in storage system
US20060036579A1 (en) 2004-08-10 2006-02-16 Byrd Stephen A Apparatus, system, and method for associating resources using a time based algorithm
US7546601B2 (en) 2004-08-10 2009-06-09 International Business Machines Corporation Apparatus, system, and method for automatically discovering and grouping resources used by a business process
JP4413899B2 (ja) * 2006-08-11 2010-02-10 株式会社東芝 ディスクアレイサブシステム及びプログラム
CN101118477A (zh) * 2007-08-24 2008-02-06 成都索贝数码科技股份有限公司 一种提高磁盘数据访问效率的方法
JP2009223442A (ja) 2008-03-13 2009-10-01 Hitachi Ltd ストレージシステム
KR101606453B1 (ko) * 2009-05-13 2016-04-01 삼성전자주식회사 비휘발성 데이터 저장 장치의 읽기 및 쓰기 성능 향상 방법
BR112012001470A2 (pt) 2009-07-22 2021-03-30 Sumitomo Electric Industries, Ltd. Aparelho de controle de tráfego e sistema de comunicação de dados incluindo o mesmo
CN102073375B (zh) 2009-11-24 2013-02-13 联想(北京)有限公司 便携终端的显示输出方法及便携终端
US8527699B2 (en) * 2011-04-25 2013-09-03 Pivot3, Inc. Method and system for distributed RAID implementation
US9304714B2 (en) * 2012-04-20 2016-04-05 Violin Memory Inc LUN management with distributed RAID controllers
US9229657B1 (en) 2012-11-01 2016-01-05 Quantcast Corporation Redistributing data in a distributed storage system based on attributes of the data
US9262344B2 (en) * 2013-12-17 2016-02-16 International Business Machines Corporation Local locking in a bi-directional synchronous mirroring environment
CN105940386B (zh) 2014-01-30 2019-12-17 慧与发展有限责任合伙企业 用于在存储器之间移动数据的方法、系统和介质
JP2015207123A (ja) * 2014-04-18 2015-11-19 富士通株式会社 ストレージ装置、ストレージ制御方法およびストレージ制御プログラム
US9665432B2 (en) * 2014-08-07 2017-05-30 Microsoft Technology Licensing, Llc Safe data access following storage failure
CN105549904B (zh) 2015-12-08 2019-01-08 华为技术有限公司 一种应用于存储系统中的数据迁移方法及存储设备
CN106453571A (zh) 2016-10-19 2017-02-22 广东欧珀移动通信有限公司 一种数据迁移的方法及终端

Also Published As

Publication number Publication date
GB202012718D0 (en) 2020-09-30
WO2019162779A1 (en) 2019-08-29
DE112019000303B4 (de) 2022-03-03
JP2021514502A (ja) 2021-06-10
JP7139433B2 (ja) 2022-09-20
GB2585285B (en) 2021-08-04
CN111684405A (zh) 2020-09-18
US10481823B2 (en) 2019-11-19
GB2585285A (en) 2021-01-06
CN111684405B (zh) 2024-04-16
US20190258421A1 (en) 2019-08-22

Similar Documents

Publication Publication Date Title
DE112011101633B4 (de) Virtualisierung und dynamische Ressourcenzuweisung berücksichtigendes Neuordnen von Speicherebenen
DE112019000303B4 (de) Datenspeichersystem, das die datenverlagerung auf grundlage von zeitlicher nähe von zugriffen durchführt
DE102016221811A1 (de) Zuordnung von Ressourcen mit mehrschichtigem Speicher
DE112020005323B4 (de) Elastische ausführung von machine-learning-arbeitslasten unter verwendung einer anwendungsbasierten profilierung
DE112020004661B4 (de) Ermitteln einer optimalen Anzahl von Threads pro Kern in einem Mehrkern-Prozessorkomplex
DE112011100094T5 (de) Verfahren und System zum Abstrahieren eines auf nichtfunktionalen Anforderungen beruhenden Einsatzes von virtuellen Maschinen
DE112019000421B4 (de) Arbeitslastverwaltung mit datenzugriffserkennung in einem datenverarbeitungscluster
DE112018004138B4 (de) Asynchrone aktualisierung von metadatenspuren in reaktion auf einen mittels einer e/a-operation über eine busschnittstelle erzeugten cachetreffer
DE102012208751A1 (de) Datensicherheit für eine Datenbank in einer Mehrknotenumgebung
DE102016222861A1 (de) Transparentes, sicheres Durchführen von Abrufvorgängen
DE112021004473B4 (de) Lastausgleich auf speicherebene
DE112017005063T5 (de) Verwalten eines Speichers mit niedrigstem Kohärenzpunkt (LPC) mithilfe eines Dienstschichtadapters
DE102012223167A1 (de) Gemeinsame Nutzung von Artefakten zwischen kollaborativen Systemen
DE112018000900T5 (de) Verarbeiten eines Befehls zum Freigeben von Speicherplatz in einem Computersystem
DE112018005135T5 (de) Thin provisioning unter verwendung von speicherbänken auf cloud-grundlage
DE112020004116T5 (de) Dynamisches abändern der parallelität einer aufgabe in einer pipeline
DE112020000498T5 (de) Migrieren von daten aus einem grossen extent-pool in einen kleinen extent-pool
DE112017005772T5 (de) Zeitpunktgesteuerte sicherungen über einen speicher-controller in eine objektspeicher-cloud
DE112018005359T5 (de) Verhindern eines Beibehaltens von Datensatzsperren durch Transaktionen mit langer Laufzeit
DE112018005768T5 (de) Copy-source-to-target-verwaltung in einem datenspeichersystem
DE102019103279A1 (de) Techniken zur informationsgraphenkomprimierung
DE112016003598T5 (de) Gleichzeitige Massenverarbeitung von baumbasierten Datenstrukturen
DE112018004415B4 (de) Optimierung von cloud-ressourcen bei operationen in mehrstufigem speicher auf richtliniengrundlage
DE112020000843T5 (de) Ausführen mehrerer datenanforderungen von mehrkernprozessoren
DE102013100054A1 (de) Verlagern von zusammengehörigen Ressourcenpartitionen

Legal Events

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

Free format text: PREVIOUS MAIN CLASS: G06F0003060000

Ipc: G06F0015160000

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