DE112005001050T5 - Liefern eines alternativen Cachespeicherungsschemas auf der Speicherbereichnetzwerkebene - Google Patents

Liefern eines alternativen Cachespeicherungsschemas auf der Speicherbereichnetzwerkebene Download PDF

Info

Publication number
DE112005001050T5
DE112005001050T5 DE112005001050T DE112005001050T DE112005001050T5 DE 112005001050 T5 DE112005001050 T5 DE 112005001050T5 DE 112005001050 T DE112005001050 T DE 112005001050T DE 112005001050 T DE112005001050 T DE 112005001050T DE 112005001050 T5 DE112005001050 T5 DE 112005001050T5
Authority
DE
Germany
Prior art keywords
data
accesses
copy
resource
threshold
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.)
Ceased
Application number
DE112005001050T
Other languages
English (en)
Inventor
Ismail San Jose Ari
Richard H. San Carlos Henze
Melanie San Jose Gottwals
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.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of DE112005001050T5 publication Critical patent/DE112005001050T5/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass

Landscapes

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

Abstract

Ein Verfahren zum Liefern eines alternativen Cachespeicherungsschemas auf einer Speicherbereichnetzwerkebene, wobei das Verfahren folgende Schritte aufweist:
Bestimmen (292), dass die Anzahl von Zugriffen auf einen Teil von Daten, der der Speichervorrichtung zugeordnet ist, eine Schwelle überschreitet, die größer als ein Zugriff ist;
Zuordnen (294) einer Kopie des Teils von Daten zu einer Cachespeicherungsressource, die eine Hilfscachespeicherung für die Speichervorrichtung liefert, wobei die Hilfscachespeicherungsressource sich auf der Speicherbereichnetzwerk- (SAN-) Ebene befindet, wenn die Anzahl von Zugriffen auf den Teil von Daten die Schwelle überschreitet; und
bei nachfolgenden Zugriffen auf den Teil von Daten, Zugreifen (296) auf die Kopie des Teils von Daten anstatt eines Zugreifens auf den Teil von Daten.

Description

  • Technisches Gebiet
  • Ausführungsbeispiele der vorliegenden Erfindung beziehen sich auf ein Cachespeichern von Daten. Insbesondere beziehen sich Ausführungsbeispiele der vorliegenden Erfindung auf ein Liefern eines alternativen Cachespeicherungsschemas auf der Speicherbereichnetzwerkebene bezüglich des Cachespeicherungsschemas, das durch einen Primärcache für eine Speichervorrichtung geliefert wird.
  • Stand der Technik
  • Da die Verwendung von Computern immer weiter verbreitet wird, haben große Organisationen und/oder Unternehmen sich Computer von einer großen Vielzahl von Plattformen und/oder Modellen zugeschafft und diese Computer miteinander vernetzt. Computer von einer großen Vielzahl von Plattformen und/oder Modellen sind auch als heterogene Computer bekannt. Speicherbereichnetzwerke (SAN) wurden entwickelt, um eine Speicherung für die heterogenen Computer durch ein Bereitstellen eines Hochgeschwindigkeitsnetzwerks von gemeinschaftlich verwendeten Speichervorrichtungen zu liefern. Eine SAN-Architektur macht normalerweise alle Speichervorrichtungen für viele der Computer in einem großen Netzwerk verfügbar, wie z. B. diejenigen, die großen Organisationen und/oder Unternehmen zugeordnet sind. In diesem Fall kann die SAN-Architektur die Speichervorrichtungen in einem Pool zusammenfassen, um z. B. die Verwaltung der Speichervorrichtungen zu vereinfachen.
  • Verschiedene Verfahren zum Erhöhen der I/O-Raten zum Zugreifen auf Daten zwischen Computern und Speichervorrichtungen sind entwickelt worden. Häufig liefern Speichervorrichtungen unterschiedliche Pegel von Zugriffslatenzzeiten, Durchsatz, der als Eingabe-/Ausgabe- (I/O-) Raten ausgedrückt ist, und/oder Übertragungsraten zum Lesen von Daten von den Speichervorrichtungen und zum Schreiben von Daten in die Speichervorrichtungen. Speichervorrichtungen, wie z. B. Cachespeicher, Systemspeicher oder Festkörpervorrichtungen (SSD), die z. B. eine schnelle Zugriffslatenzzeit, einen schnellen Durchsatz, schnelle I/O-Raten und/oder Übertragungsraten liefern, (im Folgenden als „schnelle Speichervorrichtungen" bezeichnet) können verwendet werden, um Daten dauerhaft oder vorübergehend zu speichern, wenn dieselben zwischen Anwendungen, die auf Computern ablaufen, und Speichervorrichtungen übermittelt werden, die z. B. eine langsamere Zugriffslatenzzeit, einen langsameren Durchsatz, langsamere I/O-Raten und/oder Übertragungsraten liefern (im Folgenden als „langsamere Speichervorrichtungen" bezeichnet). Wenn eine Anwendung anfordert, Daten zu schreiben, können die Daten zuerst in schnellen Speichervorrichtungen gespeichert und dann später in den langsameren Speichervorrichtungen gespeichert werden. Wenn die Daten in die schnelle Speichervorrichtung geschrieben werden, wird der Anwendung mitgeteilt, dass die Daten gespeichert worden sind, und dieselbe muss deshalb nicht warten, bis die Daten tatsächlich auf der langsameren Speichervorrichtung gespeichert sind.
  • Viele dieser Verfahren wurden verwendet, um die Übermittlung von Daten zwischen Computern, wie z. B. Clients, und den Speichervorrichtungen über ein SAN zum Zweck eines Erhöhens von I/O-Raten zu beschleunigen.
  • Offenbarung der Erfindung
  • Ausführungsbeispiele der vorliegenden Erfindung beziehen sich auf Verfahren und Systeme zum Liefern eines alternativen Cachespeicherungsschemas auf der Speicherbereichnetzwerkebene. Bei einem Ausführungsbeispiel wird bestimmt, dass die Anzahl von Zugriffen auf einen Teil von Daten, der einer Speichervorrichtung zugeordnet ist, eine Schwelle überschreitet, die größer als ein Zugriff ist. Eine Kopie des Teils von Daten wird einer Cachespeicherungsressource zugeordnet, die eine Hilfscachespeicherung für die Speichervorrichtung liefert. Die Hilfscachespeicherungsressource befindet sich auf der Speicherbereichnetzwerkebene. Auf die Kopie des Teils von Daten wird anstelle des Teils von Daten für nachfolgende Zugriffe zugegriffen.
  • Kurze Beschreibung der Zeichnungen
  • Die beiliegenden Zeichnungen, die in dieser Beschreibung enthalten sind und einen Teil derselben bilden, veranschaulichen Ausführungsbeispiele der Erfindung und dienen zusammen mit der Beschreibung dazu, die Prinzipien der Erfindung zu erläutern:
  • 1 ist ein Blockdiagramm eines exemplarischen Systems zum Liefern eines alternativen Cachespeicherungsschemas auf der Speicherbereichnetzwerkebene gemäß Ausführungsbeispielen der vorliegenden Erfindung.
  • 2 zeigt ein Flussdiagramm 200 zum Liefern eines alternativen Cachespeicherungsschemas auf der Speichernetzwerkebene gemäß Ausführungsbeispielen der vorliegenden Erfindung.
  • 3 ist ein Graph, der die Anzahl von I/Os zeigt, die durch ein Liefern eines alternativen Cachespei cherungsschemas auf der Speicherbereichnetzwerkebene gemäß Ausführungsbeispielen der vorliegenden Erfindung eingespart werden können.
  • Die Zeichnungen, auf die in dieser Beschreibung Bezug genommen wird, sollten nicht so verstanden werden, dass dieselben maßstabsgetreu gezeichnet sind, es sei denn, darauf wird speziell hingewiesen.
  • Bester Ausführungsmodus der Erfindung
  • Es wird nun im Detail Bezug genommen auf verschiedene Ausführungsbeispiele der Erfindung, wobei Beispiele derselben in den beiliegenden Zeichnungen veranschaulicht sind. Obwohl die Erfindung im Zusammenhang mit diesen Ausführungsbeispielen beschrieben wird, sei drauf hingewiesen, dass dieselben die Erfindung nicht auf diese Ausführungsbeispiele beschränken sollen. Stattdessen soll die Erfindung Alternativen, Modifizierungen und Äquivalente abdecken, die innerhalb der Wesensart und des Schutzbereichs der Erfindung, wie derselbe durch die angehängten Ansprüche definiert ist, enthalten sein können. Außerdem werden in der folgenden Beschreibung der vorliegenden Erfindung zahlreiche spezifische Details dargelegt, um ein gründliches Verständnis der vorliegenden Erfindung zu liefern. In anderen Fällen wurden bekannte Verfahren, Prozeduren, Komponenten und Schaltungen nicht im Detail beschrieben, um Aspekte der vorliegenden Erfindung nicht unnötig unklar zu machen.
  • Überblick über das Liefern eines alternativen Cachespeicherungsschemas auf der Speichernetzwerkebene
  • 1 ist ein Blockdiagramm eines Systems zum Liefern eines alternativen Cachespeicherungsschemas auf der Speicherbereichnetzwerkebene gemäß einem Ausführungsbeispiel.
  • Die Blöcke in 1 können anders als dargestellt angeordnet werden und können zusätzliche oder weniger Merkmale als hier beschrieben implementieren.
  • Wie es in 1 dargestellt ist, übermitteln Anwendungen, die auf Computern, wie z. B. Clients 112, 114, 118, laufen, Daten an und/oder von Speichervorrichtungen 160, 170 über ein SAN 190. Daten 113, 115, 116, die den Clients 112, 114, 118 zugeordnet sind, können an Speichervorrichtungen 160, 170 gespeichert werden, was zu Daten 164, 174 führt. Ferner können die gespeicherten Daten 164, 174 jeweils in Primärcachespeichern 162, 172 cachegespeichert werden. Bei den Speichervorrichtungen 160, 170 kann es sich gemäß einem Ausführungsbeispiel um redundante Arrays von Laufwerken (RAIDs) handeln. Die Hilfscachespeicherressource 250 ist ein Teil des SAN 190 (z. B. „auf der SAN-Ebene") gemäß einem Ausführungsbeispiel. Die Primärcachespeicher 162, 172 können gemäß einem Ausführungsbeispiel Arraycachespeicher sein. 1 zeigt ferner eine Virtualisierungsvorrichtung 220, die ein Cachespeicherverwaltungsmodul (CMM) 222, ein alternatives Cachespeicherungsschema (ACS) 223, eine Ersetzungsbestimmung 224 und Metadaten 234, 244 umfasst.
  • Gemäß einem Ausführungsbeispiel ist die Virtualisierungsvorrichtung 220 eine „bandinterne" Virtualisierungsvorrichtung. Gemäß einem weiteren Ausführungsbeispiel kann es sich bei einem Virtualisierungssystem entweder um eine bandinterne Virtualisierungsvorrichtung oder ein bandexternes Virtualisierungssystem handeln. Bei einem bandexternen Virtualisierungssystem werden Metadaten über die Steuerung einer Virtualisierungsfunktionalität von einem Datenverkehr getrennt und durch einen Metadatenserver aufrechterhalten. Die Hardware, wie z. B. die Virtualisierungsvorrichtung 220 und Verbindungen 192, die die Computer, wie z. B. Clients 112, 114, 118, mit den Speichervorrichtungen 160, 170 in einem SAN 190 verbinden, wird als SAN-Struktur bezeichnet.
  • Die SAN-Struktur ermöglicht normalerweise eine Viele-zu-Viele-Konnektivität zwischen den Clients 112, 114, 118 und den Speichervorrichtungen 160, 170, die einem SAN 190 zugeordnet sind. Bei den Verbindungen 192 kann es sich gemäß einem Ausführungsbeispiel um Faserkanal (FC) und/oder Gigabitethernet (GigE) handeln.
  • Das CMM 222 liefert gemäß einem Ausführungsbeispiel ein alternatives Cachespeicherungsschema 223 zu demjenigen, das durch die Primärcachespeicher 162, 172, die den Speichervorrichtungen 160, 170 zugeordnet sind, geliefert wird. Zum Beispiel verwenden normalerweise die Cachespeicher 162, 172, die den relativ langsameren Speichervorrichtungen 160, 170 zugeordnet sind, ein Cachespeicherungsschema, das als „bedarfsbasierte Cachespeicherung" bekannt ist, bei dem Daten immer in den Cachespeicher 162, 172 geschrieben werden, wenn auf die Daten zum ersten Mal entweder durch ein Lesen der Daten oder ein Schreiben der Daten zugegriffen wird. Falls z. B. eine Anwendung an dem Client 112 anfordert, die Daten 164 von der Speichervorrichtung 160 zum ersten Mal zu lesen, werden die Daten 164 in dem Primärcachespeicher 162 gespeichert. Falls auf ähnliche Weise eine Anwendung an den Client 112 anfordert, die Daten 113 zum ersten Mal zu schreiben, werden die Daten 113 in dem Primärcachespeicher 162 gespeichert, wobei angenommen wird, dass die Speichervorrichtung 160 ausgewählt ist, dass die Daten 113 darauf geschrieben werden.
  • Im Gegensatz zu „bedarfsbasierter Cachespeicherung" liefert das CMM 222 gemäß einem Ausführungsbeispiel ein alternatives Cachespeicherungsschema 223, indem nicht gestattet wird, dass Daten in der Hilfscachespeicherressource 250 cachegespeichert werden, bis die Anzahl von Zugriffen auf die Daten eine Schwelle überschritten hat, die größer als ein Zugriff ist. Zum Beispiel kann das CMM 222 bestimmen, dass auf einen Teil von Daten, der einer Speichervorrichtung 160 zugeordnet ist, wie z. B. auf einen Teil von Daten A, mehr als einmal zugegriffen wurde. Das CMM 222 kann Teile von Daten 260 zu der Hilfscachespeicherressource 250 „migrieren", was zu Kopien von Teilen von Daten 270 führt. Zum Beispiel kann ein bestimmter Teil von Daten A zu der Hilfscachespeicherressource 250 „migriert" werden, z. B. indem eine Kopie A' des bestimmten Teils von Daten A der Hilfscachespeicherressource 250 in dem Fall zugeordnet wird, dass auf den Teil von Daten A mehr als einmal zugegriffen worden ist. Auf die Kopie A' wird gemäß einem weiteren Ausführungsbeispiel anstatt des Teils von Daten A bei nachfolgenden Anforderungen, auf den Teil von Daten A zuzugreifen, zugegriffen. Dabei können Entitäten, wie z. B. Anwendungen, die auf Clients 112, 114, 118 ablaufen, schnellere Zugriffszeiten und/oder größere I/O-Raten erfahren, wenn auf die Kopien der Teile von Daten 270, wie z. B. Kopie A', zugegriffen wird, als wenn auf die Teile von Daten 260, wie z. B. den Teil von Daten A, zugegriffen wird. Obwohl die Beschreibungen hier sich zur Vereinfachung auf ein Zugreifen auf die Teile von Daten 260 und/oder die Kopien der Teile von Daten 270 beziehen, kann auf einen beliebigen Teilsatz der Teile von Daten 260 und/oder der Kopien der Teile von Daten 270 zugegriffen werden.
  • Die Schwelle kann gemäß einem weitern Ausführungsbeispiel statisch sein. Zum Beispiel wird die Schwelle statisch auf eine vorbestimmte Anzahl von Zugriffen, wie z. B. drei, gesetzt und danach nie mehr modifiziert. Falls auf einen bestimmten Teil von Daten 260, wie z. B. den Teil von Daten A, drei Mal zugegriffen wird, dann kann dieser Teil von Daten A zu der Hilfscachespeicherressource 250 migriert werden. Falls dann auf einen weiteren Teil von Daten 260, wie z. B. den Teil von Daten B, drei Mal zugegriffen wird, kann der Teil von Daten B migriert werden.
  • Die Schwelle kann gemäß einem weiteren Ausführungsbeispiel eine dynamische Schwelle sein, die modifiziert wird, um sich im Lauf der Zeit an sich verändernde Umstände anzupassen. Zum Beispiel kann es sich bei der Schwelle um ein Kosten-Nutzen-Verhältnis handeln, wie z. B. die Kosten eines Migrierens von Teilen von Daten 260 gegenüber einem Nutzen, Kopien von Teilen von Daten 270 in der Hilfscachespeicherressource 250 resident zu lassen, gemäß einem Ausführungsbeispiel, das noch genauer beschrieben wird.
  • Die Speichervorrichtungen 160, 170 umfassen normalerweise eine Logik zum Erfassen, wenn eine Anwendung, die einem Client 112, 114, 118 zugeordnet ist, anfordert, auf Daten 164, 174, die in den Speichervorrichtungen 160, 170 gespeichert sind, auf eine sequentielle Weise zuzugreifen. Zum Beispiel kann die Speichervorrichtung 160, 170 Daten, die dieselbe in ihrem Cachespeicher 162, 172 hat, schneller an die Anwendung liefern, als dieselbe Daten 164, 174 liefern kann, die dieselbe mit ihren mechanischen Betätigungsvorrichtungen lesen muss. Falls deshalb eine Speichervorrichtung 160, 170 erfasst, dass eine Anwendung, die auf einem Client 112, 114, 118 abläuft, auf ihre Daten 164, 174 sequentiell zugreift, kann die Speichervorrichtung 160, 170 erwarten, dass die Anwendung fortfährt, auf die Daten 164, 174 sequentiell zuzugreifen, und zusätzliche Teile ihrer Daten 164, 174 „vorab abrufen" und die vorab abgerufenen Daten in ihrem Cachespeicher 162, 172 speichern. Deshalb liefern die Speichervorrichtungen 160, 170 optimale Übertragungsraten für sequentielle Zugriffe auf Daten 164, 174, die in diesen Speichervorrichtungen 160, 170 gespeichert sind. Für weitere Informationen über ein Verwenden von sequentiellen Zugriffen, um die Übertragungsraten zu optimieren, sei verwiesen auf „Maximizing Sequential Read Streams While Minimizing the Impact on Cache and Other Applications, US-Patent 625,3289 B1 von Bates u. a., dessen Inhalt hier aufgenommen ist.
  • Gemäß einem weiteren Ausführungsbeispiel liefert das CMM 222 ein alternatives Cachespeicherungsschema 223, indem nicht gestattet wird, dass Teile von Daten 260 in der Hilfscachespeicherressource 250 in dem Fall cachegespeichert werden, dass auf die Teile von Daten 260 an den Speichervorrichtungen 160, 170 sequentiell zugegriffen wird. Falls z. B. eine Anwendung, die auf dem Client 114 abläuft, auf einen Teil von Daten B zugreift, der in der Speichervorrichtung 160 gespeichert ist, kann das CMM 222 erfassen, dass auf den Teil von Daten B sequentiell zugegriffen wird. In diesem Fall kann es sein, dass das CMM 222 nicht zulässt, dass der Teil von Daten B in die Hilfscachespeicherressource 250 kopiert wird, somit fährt die Anwendung, die auf dem Client 114 abläuft, damit fort, auf den Teil von Daten B an der Speichervorrichtung 160 für nachfolgende Zugriffe zuzugreifen. Die optimalen Übertragungsraten, die durch die Speichervorrichtungen 160, 170 für sequentielle Zugriffe auf die Daten 164, 174 geliefert werden, werden weiterhin verwendet. Gemäß einem weiteren Ausführungsbeispiel werden sequentielle Zugriffe auf Teile von Daten 260 als ein Zugriff z. B. durch das CMM 222 bei der Bestimmung einer Zugriffsschwelle für diesen Teil von Daten gezählt, um ein Cachespeichern von Teilen von Daten 260 in der Hilfscachespeicherressource 250 zu vermeiden, auf die bei den Speichervorrichtungen 160, 170 sequentiell zugegriffen wird.
  • Die Primärcachespeicher 162, 172 cachespeichern Daten 164, 174 in Cachespeicherleitungen, die normalerweise eine Größe von 1 Kilobyte bis 16 Kilobyte aufweisen. Normalerweise ist es nicht praktisch, für bedarfsbasiertes Cachespeichern eine sehr große Cachespeicherleitung zu verwenden, da es keinen Mechanismus gibt, um Teile von Daten auszuwählen, die räumlich lokalisierte Zugriffsmuster enthalten. Deshalb würde es zu einer schlechten Ausnutzung der Cachespeicherressource führen, während Mehraufwand hinzugefügt wird, der einem Handhaben von Daten zugeordnet ist, auf die eventuell nicht zugegriffen wird. Gemäß einem weiteren Ausführungsbeispiel liefert das CMM 222 ein alternatives Cachespeicherungsschema 223 durch ein Cachespeichern von Teilen von Daten 260, die wesentlich größer als eine Cachespeicherleitung sind. Damit Teile von Daten 260 in der Hilfscachespeicherressource 250 cachegespeichert werden, werden die Teile von Daten 260 zu der Hilfscachespeicherressource 250 „migriert". Die Migration kann durch ein Auswählen von bestimmten Teilen von Daten 260, wie z. B. dem Teil von Daten A, ein Lesen des gesamten ausgewählten Teils von Daten A, ein Erzeugen einer Kopie A' des ausgewählten Teils von Daten A und ein Migrieren (z. B. durch „Zuordnen") der Kopie A' zu der Hilfscachespeicherressource 250 erreicht werden.
  • Gemäß einem Ausführungsbeispiel ist die Größe der Teile von Daten 260 groß genug, so dass die Speichervorrichtungen 160, 170 erfassen, dass auf die Teile von Daten 260 sequentiell zugegriffen wird, z. B. durch eine Anwendung, die auf einem Client 112, 114, 118 abläuft. Wie es hier bereits beschrieben ist, können die Speichervorrichtungen 160, 170, wie z. B. RAIDs, eine Logik aufweisen, die es denselben ermöglicht, optimale Übertragungsraten für Daten zu liefern, auf die sequentiell zugegriffen wird. Ein Migrieren von Teilen von Daten 260 zu der Hilfscachespeicherressource 250, wie dasselbe hier bereits beschrieben ist, kann die Fähigkeit der Speichervorrichtungen 160, 170 ausnutzen, Übertragungsraten für sequentielle Zugriffe zu optimieren. Um das Beispiel fortzuführen, kann die Migration des Teils von Daten A optimiert werden, wenn die Speichervorrichtung 160 erfasst, dass auf den Teil von Daten A sequentiell zugegriffen wird, wenn derselbe gelesen wird, um die Kopie A' zu erzeugen.
  • Gemäß einem Ausführungsbeispiel sind Teile von Daten 260 wesentlich größer als eine Cachespeicherleitung. Gemäß einem weiteren Ausführungsbeispiel weisen die Teile von Daten 160 zumindest 128K auf, um von optimalen Übertragungsraten z. B. aufgrund von Sequentiellzugriffserfassung zu profitieren, wie es hier bereits beschrieben ist.
  • Wenn ein bestimmter Teil von Daten 260, wie z. B. der Teil von Daten B, von der Speichervorrichtung 160 zu der Hilfscachespeicherressource 250 migriert wird, wird es anderen Entitäten, wie z. B. Anwendungen, die auf den Clients 112, 114, 118 ablaufen, nicht gestattet, auf die Daten 164, 174 in der Speichervorrichtung 160 zuzugreifen, um eine Konsistenz zu bewahren. Je größer die Teile von Daten 260 sind, desto länger dauert es, den Teil von Daten B zu der Hilfscachespeicherressource 250 zu migrieren, und desto länger müssen die anderen Entitäten warten. Deshalb können die Teile von Daten 260 groß genug sein, um zu ermöglichen, dass die Speichervorrichtungen 160, 170 sequentielle Zugriffe auf diese Teile von Daten 260 erfassen, jedoch gleichzeitig nicht so groß, dass für Entitäten, wie z. B. Anwendungen, eine erhebliche Wartezeit verursacht wird, die z. B. größer ist als eine normale Plattenzugriffs- und Übertragungszeit während einer Migrationsverarbeitung. Gemäß einem Ausführungsbeispiel ist die Größe der Teile von Daten 260 klein genug, um zu der Hilfscachespeicherressource migriert zu werden, ohne Entitäten zu stören, die auf die Daten 164, 174 zugreifen, die einer Speichervorrichtung 160, 170 zugeordnet sind. Gemäß einem weiteren Ausführungsbeispiel ist die Größe der Teile von Daten 260 geringer als 10 Megabyte.
  • Ein Liefern eines alternativen Cachespeicherungsschemas 223 führt dazu, dass die Primärcachespeicher 162, 172 und die Hilfscachespeicherressource 250 für unterschiedliche Typen von Zugriffen verwendet werden, wodurch die Primärcachespeicher 162, 172 und die Hilfscachespeicherressource 250 für die Typen von Zugriffsverhalten beeinflusst werden, für die jedes am besten geeignet ist, gemäß einem Ausführungsbeispiel. Zum Beispiel sind typische Speichervorrichtungen, die mechanische Betägigungsvorrichtungen und eine Logik zum Erfassen von sequentiellen Zugriffen aufweisen, relativ gut bei sequentiellen Zugriffen und relativ schlecht bei wahlfreien Zugriffen. Speichervorrichtungen, die keine mechanischen Betätigungsvorrichtungen aufweisen, sind relativ gut bei wahlfreien Zugriffen.
  • Deshalb werden gemäß einem Ausführungsbeispiel Daten, auf die sequentiell zugegriffen wird, bei den Speichervorrich tungen 160, 170 gespeichert, wodurch die Logik der Speichervorrichtungen 160, 170 zum Erfassen von sequentiellen Zugriffen verwendet wird. Ferner werden relativ kleine Datenmengen (z. B. von der Größe einer Cachespeicherleitung oder kleiner), auf die wahlfrei zugegriffen wird, die jedoch keine ausreichende Zugriffsaktivität innerhalb eines Teils von Daten gezeigt haben, die ausreichend ist, um eine Migration zu der Hilfscachespeicherressource 250 zu bewirken, bei den Speichervorrichtungen 160, 170, wie z. B. RAIDs, gespeichert und in den Primärcachespeichern 162, 172 cachegespeichert, wodurch die schlechte Leistung der Speichervorrichtungen 160, 170 während wahlfreien Zugriffen minimiert wird.
  • Im Gegensatz dazu können relativ große Datenmengen (z. B. Kopien von Teilen von Daten 170, die z. B. von etwa der Größe einer Cachespeicherleitung bis zu 10 Megabyte reichen), die eine ausreichende Aktivität bei ihren Zugriffsmustern aufweisen, bei den Hilfscachespeicherressourcen 250, wie z. B. SSDs, cachegespeichert werden, wobei die gute Leistung der Hilfscachespeicherressource 250, wenn wahlfreie Zugriffe durchgeführt werden, ausgenutzt wird, gemäß einem Ausführungsbeispiel. Gemäß einem Ausführungsbeispiel der Erfindung wird eine Exklusivität zwischen dem Inhalt der Kopien von Teilen von Daten 270, die der Hilfscachespeicherressource 250 zugeordnet sind, und den Teilen von Daten, die in den Primärcachespeichern 162, 172 cachegespeichert sind, gefördert.
  • VIRTUALISIERUNG
  • „Virtualisierung" ist ein Teil eines Lieferns einer Viele-zu-Viele-Konnektivität zwischen den Clients 112, 114, 118 und den Speichervorrichtungen 160, 170, so dass es physischen Entitäten, wie z. B. Clients, Anwendungen, Dateisystemen und Speichervorrichtungen, ermöglicht wird, die physischen Charakteristika anderer physischer Entitäten nicht zu kennen. Ferner ermöglicht eine Virtualisierung eine kontinuierliche Datenverfügbarkeit durch ein Bereitstellen von mehreren Wegen zu den Daten. Im Allgemeinen umfasst eine Virtualisierung die Neubenennung oder die Neuabbildung einer Entität, wie z. B. einer physischen Entität, auf eine andere Entität, wie z. B. eine Logikentität. Zum Beispiel können die physischen Entitäten, wie z. B. die Speichervorrichtungen 160, 170, in kleinere Stücke partitioniert werden oder zusammen zu einer logischen Entität gruppiert werden, die als logische Einheit bekannt ist und mit einer Logikeinheitnummer (LUN) identifiziert ist. Ferner können physische Entitäten gemäß LUNs gruppiert werden. Auch können einzelne LUNs einzelnen Entitäten zugeordnet werden, wie z. B. einem bestimmten Client, einer Anwendung, einem Dateisystem oder einer Speichervorrichtung.
  • LUNs können durch eine Virtualisierungsvorrichtung auf andere LUNs abgebildet oder „konfiguriert" werden. Zum Beispiel kann LUN X einer bestimmten Speichervorrichtung 160 zugewiesen werden, und LUN Y kann einer Speichervorrichtung 170 zugewiesen werden. Diese LUNs können durch die Virtualisierungsvorrichtung 220 zusammen konfiguriert werden oder „in einem Pool zusammengefasst" werden, um eine neue LUN, z. B. LUN Z, zu erzeugen. LUN Z kann dann durch die Virtualisierungsvorrichtung 220 auf eine bestimmte Anwendung abgebildet werden, die auf dem Client 114 abläuft. Daten von der Anwendung auf dem Client 114 werden nun in den Speichervorrichtungen 160 und 170 gespeichert.
  • Heute ist ein Konfigurieren von LUNs z. B. an einer herkömmlichen Virtualisierungsvorrichtung ein manueller Prozess, der durch einen Systemadministrator durchgeführt wird. Normalerweise verwendet der Systemadministrator eine bereits bestehende Kenntnis von Anwendungsanforderungen oder Profilierungssoftwarefolgen, um Speicherzugriffsmuster von Daten zu bestimmen. Dann kann der Systemadministrator die LUNs geeignet konfigurieren. Falls z. B. auf die Daten für eine bestimmte Anwendung häufig zugegriffen wird, kann der Systemadministrator die LUN für diese Anwendung zu einer Speichervorrichtung mit einem großen Cachespeicher konfigurieren. Falls im Gegensatz dazu die bestimmte Anwendung nicht häufig auf ihre Daten zugreift, kann der Systemadministrator ihre LUN zu einer Speichervorrichtung konfigurieren, die keinen Cachespeicher aufweist.
  • Bei einem weiteren Beispiel kann es sein, dass eine bestimmte Anwendung häufig auf ihre Daten zugreift, aber es kann sein, dass die Anwendung keine antwortzeitkritische Anwendung ist, es z. B. nicht notwendig ist, dass eine I/O-Operation rasch abgeschlossen wird. Es kann jedoch sein, dass eine andere Anwendung weniger häufig auf ihre Daten zugreift, aber eine zeitkritische Anwendung ist. Bei herkömmlichen Systemen ist das Verwalten dieser Anwendungen ein manueller Prozess, bei dem ein Systemadministrator z. B. die LUN für die zeitkritische Anwendung auf eine schnelle Speichervorrichtung abbildet, die eine schnelle Zugriffszeit auf ihre Daten liefern kann, und die LUN für die nicht-zeitkritische Anwendung auf eine langsamere Vorrichtung oder eine andere RAID-Konfiguration.
  • Die Kosten von SSDs nehmen kontinuierlich ab, und die Kosten für ein manuelles Konfigurieren von LUNs bleiben teuer. Das alternative Cachespeicherungsschema 223 lädt automatisch Arbeit von den Speichervorrichtungen 160, 170 zu einer Hilfscachespeicherressource 250, wie z. B. einer SSD, ab, ohne dass ein manuelles Eingreifen von einem Systemadministrator erforderlich ist. Gemäß einem Ausführungsbeispiel kann das alternative Cachespeicherungsschema 223 nur für ausgewählte LUNs aktiviert sein.
  • Die Virtualisierungsvorrichtung 220 kann Daten in ihrem Systemspeicher 132, 142 zusätzlich zu einem Virtualisieren z. B. durch ein „Poolbilden" von physischen Entitäten cachespeichern. Normalerweise weist eine Virtualisierungsvorrichtung 220 zumindest zwei Server 130, 140 auf. Die Virtualisierungsvorrichtung 220 kann Kopien von Daten, mit denen Anwendungen arbeiten, die auf den Clients 112, 114, 118 ablaufen, in dem Systemspeicher 132, 142 enthalten, der den beiden Servern 130, 140 zugeordnet ist. Zwei exakte Kopien der gleichen Daten können in dem Systemspeicher 132 und dem Systemspeicher 142 enthalten sein (auch als „Spiegeln" bekannt).
  • METADATEN
  • Im Allgemeinen sind Metadaten Daten, die Daten beschreiben, z. B. wo die Daten gespeichert sind und wie auf dieselben zugegriffen wird. Metadaten 234, 244, die der Funktionalität des CMM 222 zugeordnet sind, beschreiben, welche Teile der Daten 164, 174 zu der Hilfscachespeicherressource 250 migriert worden sind, und ermöglichen, dass die Virtualisierungsvorrichtung 220 auf die Daten von dem geeigneten Ort, entweder den Speichervorrichtungen 160, 170 oder der Hilfscachespeicherressource 250, zugreift, gemäß einem Ausführungsbeispiel. Die Metadaten 234, 244, die der Funktionalität des CMM 222 zugeordnet sind, beschreiben auch eine Statistik, die Teilen von Daten 260 zugeordnet ist, gemäß einem weiteren Ausführungsbeispiel. Zum Beispiel können in diesem Fall die Metadaten 234, 244 unter anderem zum Bestimmen verwendet werden, ob die Anzahl von Zugriffen auf die Teile von Daten 260 eine Schwelle erreicht hat. Die Metadaten 234, 244 können eine Statistik, die Kopien von Teilen von Daten 270 zugeordnet ist, zusätzlich zu oder anstelle von der Statistik beschreiben, die Teilen von Daten 260 zugeordnet ist, gemäß einem weiteren Ausführungsbeispiel. In diesem Fall können die Metadaten 234, 244 verwendet werden, um eine dynamische Schwelle unter Verwendung eines Kosten-Nutzen-Verhältnisses zu berechnen, wie es hier beschrieben wird.
  • Gemäß einem Ausführungsbeispiel werden die Metadaten 234, 244 in der Virtualisierungsvorrichtung 220 in Speichern 132, 142 gehalten und gespiegelt sowie in stabiler Speicherung gespeichert. Die speicherinterne Kopie liefert eine Hochgeschwindigkeitsantwort, während die stabile Kopie Zuverlässigkeit und Wiederherstellung nach Ausfällen garantiert. Zum Beispiel kann eine Kopie der Metadaten 234 in dem Systemspeicher 132 eines der Server 130 gespeichert sein, der der Virtualisierungsvorrichtung 220 zugeordnet ist, und eine exakte Kopie der Metadaten 244 kann in dem Systemspeicher 142 des anderen Servers 140 gehalten werden, der der Virtualisierungsvorrichtung 220 zugeordnet ist. Ein „Spiegeln" der Metadaten 234, 244 liefert eine verbesserte Verfügbarkeit und Fehlererholung der Metadaten 234, 244 gemäß einem Ausführungsbeispiel. Das „Spiegeln" der Metadaten 234, 244 umfasst keine übermäßige Mehraufwandmenge, da die Größe der Metadaten 234, 244 handhabbar ist.
  • DIE ERSETZUNGSBESTIMMUNG
  • Eine Ersetzungsbestimmung 224 wird gemäß einem Ausführungsbeispiel zum Bestimmen verwendet, welche Kopien der Teile von Daten 270 aus der Hilfscachespeicherressource 250 entfernt werden, um wertvollere Teile von Daten 270 vorzugsweise zu der Hilfscachespeicherressource 250 zu migrieren. Eine Ersetzungsbestimmung 224 kann eine bestehende Ersetzungsbestimmung verwenden, wie z. B. am wenigsten aktuell verwendet (LRU – least recently used), Adaptiversetzungscachespeicher (ARC – adaptive replacement cache) oder adaptives Cachespeichern unter Verwendung von mehreren Experten (ACME – adaptive caching using multiple experts), gemäß einem weiteren Ausführungsbeispiel.
  • Für eine Beschreibung von ACME sei verwiesen auf „ACME: adaptive caching using multiple experts" von I. Ari u. a., in Proceedings in Informatics, Bd. 14, S. 143–158, Carleton Scientific, 2002, dessen Inhalt hier aufgenommen ist. Für eine Beschreibung von ARC sei verwiesen auf „ARC: A self-tuning, low overhead replacement cache" von N. Megiddo u. a., in Proceedings of the 2003 Conference on File and Storage Technologies (FAST), S. 114–130, San Francisco, CA, März 2003, dessen Inhalt hier aufgenommen ist.
  • Gemäß einem weiteren Ausführungsbeispiel kann die Ersetzungsbestimmung 224 eine neue Ersetzungsbestimmung verwenden. Zum Beispiel kann die Ersetzungsbestimmung 224 ein Kosten-Nutzen-Verhältnis verwenden, wie es hier beschrieben ist, um zu bestimmen, welche Kopien von Teilen von Daten 270 aus der Hilfscachespeicherressource 250 entfernt werden. Gemäß einem weiteren Ausführungsbeispiel kann die Hilfscachespeicherressource 250 eine neue Ersetzungsbestimmung verwenden, wie z. B. das Kosten-Nutzen-Verhältnis, wie es hier bereits beschrieben ist, um eine bestehende Ersetzungsbestimmung zu vergrößern.
  • DYNAMISCHE SCHWELLEN
  • Wie bereits erwähnt, kann die Schwelle eine dynamische Schwelle sein, die eingestellt wird, um sich im Lauf der Zeit an sich verändernde Umstände anzupassen, gemäß einem weiteren Ausführungsbeispiel. Ferner kann es sich bei der Schwelle gemäß einem weiteren Ausführungsbeispiel um ein dynamisches Kosten-Nutzen-Verhältnis handeln. Zum Beispiel kann eine dynamische Schwelle zumindest teilweise auf Kosten eines Zuordnens einer Kopie eines Teils von Daten zu der Hilfscachespeicherressource basieren, die gegenüber einem Nutzen eines Ermöglichens gewichtet werden, dass eine Kopie eines anderen Teils von Daten weiterhin der Hilfscachespeicherressource zugeordnet ist, gemäß einem Ausführungsbeispiel.
  • Insbesondere bestehen Kosten, die einem Migrieren eines bestimmten Teils von Daten C zu der Hilfscachespeicherressource 250 zugeordnet sind, hinsichtlich der Systemressourcen, die für die Migration verwendet werden. Ferner kann es sein, dass, um einen Teil von Daten C zu der Hilfscachespeicherressource 250 zu migrieren, etwas, das sich bereits in der Hilfscachespeicherressource 250 befindet, wie z. B. entweder eine Kopie eines Teils von Daten A' oder D', aus der Hilfscachespeicherressource 250 entfernt werden muss.
  • Deshalb bleibt der Nutzen, der sich hätte ergeben können, wenn es einer Kopie A', D' ermöglicht würde, in der Hilfscachespeicherressource 250 zu bleiben, nicht länger bestehen, wenn die Kopie A', D' aus der Hilfscachespeicherressource 250 entfernt wird. Deshalb können gemäß einem Ausführungsbeispiel die Kosten eines Zuordnens eines Teils von Daten C gegenüber dem Nutzen eines Ermöglichens gewichtet werden, dass eine Kopie eines anderen Teils von Daten 270, wie z. B. A' oder D', weiterhin in der Hilfscachespeicherressource 250 bleibt. Ferner ändern sich Kosten und Nutzen im Laufe der Zeit und in Abhängigkeit von der Arbeitsbelastung, was zu einer dynamischen Schwelle führt, die angepasst werden kann, um diese sich verändernden Kosten und Nutzen widerzuspiegeln.
  • Durch ein dynamisches Anpassen der Schwelle können mehr Teile von Daten 260 migriert werden, wenn der Nutzen maximiert werden kann, und weniger Teile von Daten 260 werden migriert, wenn die Kosten den Nutzen übersteigen. Die folgende Tabelle 1 zeigt ein Muster von Pseudocode zum dynamischen Anpassen der Schwelle basierend auf einem Kosten-Nutzen-Verhältnis gemäß einem Ausführungsbeispiel. Tabelle 1: Musterpseudocode für eine dynamische Schwelle
    Figure 00180001
  • Wie es in Tabelle 1 gezeigt ist, ist in Zeile 4 „Gesamt-Treffer" die gesamte, z. B. kumulative Anzahl von „Treffern" (auch als „Zugriffe" bekannt) bei allen Kopien von Teilen von Daten 270 (A' und D'), die der Hilfscachespeicherressource 250 zugeordnet sind, gemäß einem Ausführungsbeispiel. Das CMM 22 kann beginnen, die „GesamtTreffer" für eine spezifische LUN zu akkumulieren, wenn die spezifische LUN aktiviert ist, gemäß einem weiteren Ausführungsbeispiel. Bei der „AnzahlVonMigriertenTeilenVonDaten" kann es sich um einen kumulativen Zählwert aller Teile von Daten 260 handeln, die zu der Hilfscachespeicherressource 250 „migriert" worden sind, gemäß einem Ausführungsbeispiel. Ein bestimmter Teil von Daten 260, wie z. B. der Teil von Daten A, kann so gezählt werden, dass derselbe zweimal zu der Hilfscachespeicherressource 250 migriert, falls derselbe migriert, ausgestoßen und erneut migriert wird, gemäß einem weiteren Ausführungsbeispiel.
  • Die „Metrik" wird durch ein Teilen von „GesamtTreffer", einem Nutzen, durch die „AnzahlVonMigriertenTeilenVonDaten", Kosten, in Zeile 4 gemäß einem Ausführungsbeispiel berechnet. Zum Beispiel wurden, wie es in 1 gezeigt ist, zwei Teile von Daten 260 zu der Hilfscachespeicherressource 250 migriert, was zu Kopien von Teilen von Daten A' und D' führt. Falls auf A' und D' 500 Mal zugegriffen wurde, oder dieselben 500 Mal „getroffen" wurden, dann beträgt „Metrik" 500/2, d. h. 250.
  • Die Codezeilen 6 bis 9 werden verwendet, um zu bestimmen, ob die „Metrik", die einem Cachespeichern von Kopien der Teile von Daten 270 zugeordnet ist, zunimmt oder abnimmt. Falls die „Metrik" zunimmt, wird die „Schwelle" um eine Konstante in Zeile 7 verringert, um mehr Teile von Daten 260 zu der Hilfscachespeicherressource 250 zu „migrieren", was dazu führt, dass mehr der Kopien von Teilen von Daten 270 der Hilfscachespeicherressource 250 zugeordnet werden. Falls jedoch die „Metrik" abnimmt, wird die „Schwelle" in Zeile 9 um eine Konstante erhöht, um die Migration von Teilen von Daten 260 zu der Hilfscachespeicherressource 250 zu verlangsamen. Ein Migrieren von mehr Teilen von Daten 260 kann dazu führen, dass mehr der Kopien von Teilen von Daten 270 aus der Hilfscachespeicherressource 250 entfernt werden.
  • BETRIEBSBEISPIELE
  • 2 zeigt ein Flussdiagramm 200 zum Liefern eines alternativen Cachespeicherungsschemas auf der Speichernetzwerkebene gemäß Ausführungsbeispielen der vorliegenden Erfindung. Obwohl spezifische Schritte in dem Flussdiagramm 200 offenbart sind, sind derartige Schritte beispielhaft. Das heißt, Ausführungsbeispiele der vorliegenden Erfindung sind gut dazu geeignet, verschiedene andere Schritte oder Variationen der Schritte, die in dem Flussdiagramm 200 aufgeführt sind, durchzuführen. Es sei darauf hingewiesen, dass die Schritte in dem Flussdiagramm 200 in einer Reihenfolge durchgeführt werden können, die sich von der präsentierten unterscheidet, und dass es sein kann, dass nicht alle Schritte in dem Flussdiagramm 200 durchgeführt werden. Alle Ausführungsbeispiele, die durch das Flussdiagramm 200 beschrieben werden, oder ein Teil derselben kann unter Verwendung von computerlesbaren und von Computern ausführbaren Anweisungen implementiert werden, die sich z. B. in von Computern verwendbaren Medien eines Computersystems oder einer ähnlichen Vorrichtung befinden.
  • Zu Veranschaulichungszwecken soll sich die Erörterung des Flussdiagramms 200 auf die Strukturen beziehen, die in 1 gezeigt sind. Für das folgende Betriebsbeispiel sei angenommen, dass die LUN für eine bestimmte Anwendung X aktiviert ist. Bei Schritt 292 überschreitet die Anzahl von Zugriffen auf einen Teil von Daten, der einer Speichervorrichtung zugeordnet ist, eine Schwelle, die größer als ein Zugriff ist, gemäß einem Ausführungsbeispiel. Zum Beispiel kann die Anwendung X, die auf dem Client 114 abläuft, Daten 115 in die Speichervorrichtung 160 schreiben. Infolgedessen kann ein Schreiben von Daten 115 dazu führen, dass ein Teil von Daten A in der Speichervorrichtung 160 gespeichert wird. Einige Zeit später kann es z. B. sein, dass die Anwendung X den Teil von Daten A lesen muss. Normalerweise sind die Daten 115 zu diesem Zeitpunkt aus dem Systemspeicher, der dem Client 114 zugeordnet ist, entfernt worden und sind für den Client 114 nicht mehr verfügbar. Die Anwendung X kann ihre Daten durch ein Zugreifen auf einen Teil von Daten A in der Speichervorrichtung 160 erhalten. Wenn die Anwendung X den Teil von Daten A verarbeitet, kann das CMM 222 bestimmen, dass auf den Teil von Daten A in der Speichervorrichtung 160 über eine Schwelle hinaus zugegriffen worden ist, bei der es sich bei diesem Betriebsbeispiel um einen Zugriff handelt.
  • Bei Schritt 294 wird eine Kopie des Teils von Daten einer Hilfscachespeicherressource zugeordnet, die ein Hilfscachespeichern für die Speichervorrichtung liefert, gemäß einem weiteren Ausführungsbeispiel. Zum Beispiel kann das CMM 222 den Teil von Daten A zu der Hilfscachespeicherressource 250 durch ein Zuordnen einer Kopie A' zu der Hilfscachespeicherressource 250 migrieren.
  • Eine Statistik, wie z. B. die Anzahl von Zugriffen auf den Teil von Daten A, kann in Metadaten 234, 244 gespeichert sein. Die Metadaten 234, 244 können beim Bestimmen verwendet werden, wann eine Schwelle für einen Abschnitt von Daten A überschritten worden ist und deshalb eine Kopie A' dieses Teils von Daten A der Hilfscachespeicherressource 250 zuzuordnen ist.
  • Bei Schritt 296 wird auf die Kopie des Teils von Daten in der Hilfscachespeicherressource anstatt auf den Teil von Daten in der Speichervorrichtung für nachfolgende Anforderungen zugegriffen, gemäß einem weiteren Ausführungsbeispiel. Zum Beispiel kann, wenn die Anwendung X weiterhin abläuft, die Anwendung X ihre Daten durch ein Zugreifen auf die Kopie A' in der Hilfscachespeicherressource 250 anstatt des Teils von Daten A in der Speichervorrichtung 160 verarbeiten. Die Anwendung X kann schneller ablaufen, weil die I/O-Rate zwischen der Hilfscachespeicherressource 250 und dem Client 114 schneller ist als die I/O-Rate zwischen der Speichervorrichtung 160 und dem Client 114, oder weil die Antwortzeit zu dem Client 114 der Hilfscachespeicherressource 250 schneller ist als die Antwortzeit der Speichervorrichtung 160.
  • Obwohl das im Vorhergehenden genannte Betriebsbeispiel angenommen hat, dass alles von dem Teil von Daten A von den Daten 115 stammte, existieren andere Möglichkeiten. Zum Beispiel kann der Teil von Daten A von einem Teilsatz der Daten 115, einem Teilsatz der Daten 113 und Daten 116 stammen, usw.
  • 3 ist ein Graph, der die Anzahl von I/Os zeigt, die bei der Speichervorrichtung verringert werden kann, die ein alternatives Cachespeicherungsschema auf der Speicherbereichnetzwerkebene liefert, gemäß Ausführungsbeispielen der vorliegenden Erfindung. Insbesondere zeigt 3 die Zeit in Sekunden über einem Platten-I/O-Zählwert in I/Os pro Sekunde, während die SPC-1-Vergleichspunktarbeitsbelastung des Speicherleistungskomitees ausgeführt wird, um auf Teile von Daten zuzugreifen. Zu Veranschaulichungszwecken sei angenommen, dass eine bestimmte LUN einer Anwendung, und nur einer Anwendung zugeordnet ist, die auf Teile von Daten 260 zugreift, was in 1 gezeigt ist. Ferner sei angenommen, dass diese LUN aktiviert ist.
  • Die SPC-1-Vergleichspunktarbeitsbelastung bei diesem Beispiel ist konfiguriert, um zu konstanten 1.200 I/Os 410 für die aktivierte LUN zu führen. Das CMM 222 ist etwa die ersten 1.200 Sekunden 402 lang, die die Arbeitsbelastung läuft, nicht aktiviert. Deshalb sammelt das CMM 222 keine Statistik über die Anfangsplatten-I/Os während der ersten 1.200 Sekunden 402 bezüglich Teilen von Daten 260. Nach in etwa den ersten 1.200 Sekunden 402 wird das CMM 222 aktiviert, und dasselbe beginnt, eine Statistik zu sammeln, wie oft auf Teile von Daten 260 zugegriffen wird. Die Statistik kann in Metadaten 234, 244 gespeichert werden.
  • Bei Schritt 292 überschreitet die Anzahl von Zugriffen auf einen Teil von Daten, der einer Speichervorrichtung zugeordnet ist, eine Schwelle, die größer als ein Zugriff ist, gemäß einem Ausführungsbeispiel. Wenn auf Teile von Daten 260 zugegriffen wird, bestimmt das CMM 222, dass auf die Teile von Daten 260 über eine bestimmte Schwelle hinaus zugegriffen worden ist. Zum Zweck eines Veranschaulichens diese Betriebsbeispiels von 3 soll es sich bei der Schwelle um eine statische Schwelle von 16 Zugriffen handeln, und die Größe der Teile von Daten 260 beträgt 128 Kilobyte.
  • Bei Schritt 294 wird eine Kopie des Teils von Daten einer Hilfscachespeicherressource zugeordnet, die ein Hilfscachespeichern für die Speichervorrichtung liefert, gemäß einem weiteren Ausführungsbeispiel. Zum Beispiel wird begonnen, Teile von Daten 260, auf die mehr als die Schwelle zugegriffen worden ist, zu der Hilfscachespeicherressource 250 zu migrieren (Bezugnahme auf Bezugszeichen 418), was dazu führt, dass Kopien von Teilen von Daten 270 der Hilfscachespeicherressource 250 zugeordnet werden. Migrations-I/Os 406 werden verwendet, um Teile von Daten 260 zu der Hilfscachespeicherressource 250 „zu migrieren".
  • Bei Schritt 296 wird auf die Kopie des Teils von Daten in der Hilfscachespeicherressource anstatt des Teils von Daten in der Speichervorrichtung für nachfolgende Anforderungen zugegriffen, gemäß einem weiteren Ausführungsbeispiel. Wenn Kopien von Teilen von Daten 270 der Hilfscachespeicherressource 250 zugeordnet sind, wird auf die Kopien der Teile von Daten 270 anstatt der Teile von Daten 260 zugegriffen, was zu einer Verringerung der Platten-I/Os 404 führt. Bei den Gesamt-Platten-I/Os 408 handelt es sich um die Gesamt zahl der verringerten Platten-I/Os 404 plus die Migrations-I/Os 406.
  • SCHLUSSFOLGERUNG
  • Durch ein Liefern eines alternativen Cachespeicherungsschemas 223 und einer Hilfscachespeicherressource 250 verringern Ausführungsbeispiele der vorliegenden Erfindung in hohem Maße die Arbeitsbelastung der Speichervorrichtungen 160, 170. Zum Beispiel zeigt 3, dass die I/O-Rate zu einer Speichervorrichtung 160, 170 um 58 % (etwa 700 I/Os pro Sekunde) von etwa 1.200 auf etwa 500 für eine LUN bei einem I/O-intensiven Anwendungsvergleichspunkt (412) verringert wurde. Ferner ist die Anzahl von Migrations-I/Os 406 extrem klein (etwa 100), führt jedoch zu einer großen Verringerung der I/Os 412 zu der Speichervorrichtung 160, 170 (z. B. etwa 700).
  • Durch ein Verringern der Arbeitsbelastung der Speichervorrichtungen 160, 170 verringern Ausführungsbeispiele der vorliegenden Erfindung die I/O-Rate zu den Speichervorrichtungen 160, 170, wodurch die Warteschlangenlänge und die Wartezeit für die Speichervorrichtungen 160, 170 verringert wird, was zu einer besseren Zugriffsleistung für die Daten 164, 174 in den Speichervorrichtungen 160, 170 führt.
  • Durch ein Verringern der Arbeitsbelastung der Speichervorrichtungen 160, 170 unter Verwendung von Ausführungsbeispielen der vorliegenden Erfindung erfahren die sequentiellen I/O-Ströme, die hauptsächlich durch die Speichervorrichtungen 160, 170 unterhalten werden, eine verringerte Konkurrenz, was zu effizienteren sequentiellen Zugriffen führt.
  • Durch ein Liefern einer statischen Schwelle verringern Ausführungsbeispiele der vorliegenden Erfindung die Arbeitsbelastung der Speichervorrichtungen 160, 170.
  • Durch ein Liefern einer dynamischen Schwelle verringern Ausführungsbeispiele der vorliegenden Erfindung nicht nur die Arbeitsbelastung der Speichervorrichtungen 160, 170, sondern können auch sich verändernde Bedürfnisse von Clients, Anwendungen usw. erfassen und sich an dieselben anpassen.
  • Ausführungsbeispiele der vorliegenden Erfindung sind einfach bei Vorläufersystemen zu implementieren. Zum Beispiel kann ein Cachespeicherverwaltungsmodul 222 ohne Weiteres in eine Virtualisierungsvorrichtung 220 eingebaut werden, ohne irgendwelche Veränderungen der Speichervorrichtungen 160, 170 oder der Clients 112, 114, 118 zu erfordern.
  • Ausführungsbeispiele der vorliegenden Erfindung führen zu einer Architektur, die skalierbar ist. Zum Beispiel ist es einfach, mehr Hilfscachespeicherressourcen 250, wie z. B. SSDs, zu einem System hinzuzufügen, wie z. B. demjenigen, das in 1 gezeigt ist. Die Hilfscachespeicherressourcen 250 können unabhängig von der Gesamtspeicherkapazität erhöht werden. Ausführungsbeispiele der vorliegenden Erfindung ermöglichen ein Verwenden von getrennten Hilfscachespeicherressourcen, wie z. B. SSDs, um die Cachespeicherkapazität zu erhöhen, die für relativ langsamere Speichervorrichtungen, wie z. B. RAIDs, verfügbar ist.
  • Durch ein Liefern eines alternativen Cachespeicherungsschemas liefern Ausführungsbeispiele der vorliegenden Erfindung ein Verringern der Menge an manuellem Eingreifen, das zur Handhabung von Speicherkonfigurationen erforderlich ist, wie z. B. Einrichten und Unterhalten der Hilfscachespeicherressourcen.
  • Ein Liefern eines alternativen Cachespeicherungsschemas 223 führt dazu, dass die Primärcachespeicher 162, 172 und die Hilfscachespeicherressource 250 für unterschiedliche Typen von Zugriffsverhalten verwendet werden, gemäß einem Ausführungsbeispiel. Zum Beispiel kann die Hilfscachespeicherres source 250 hauptsächlich für wahlfreie Zugriffe innerhalb relativ großer Teile von Daten 260 verwendet werden (z. B. Teile von Daten 260, die z. B. von etwa 128K bis zu 10 Megabyte reichen), wohingegen die Primärcachespeicher 162, 172 hauptsächlich für sequentielle Zugriffe und für ein wahlfreies Zugreifen auf relativ kleine Mengen von Daten 260 verwendet werden können, die z. B. die Größe einer Cachespeicherleitung aufweisen und die nicht zur Migration zu der Hilfscachespeicherressource 250 geeignet sind. Ein Liefern eines alternativen Cachespeicherungsschemas 223 führt zu einem Beeinflussen der Primärcachespeicher 162, 172 und der Hilfscachespeicherressource 250 für die Typen von Zugriffsverhalten, für die jedes am besten geeignet ist, gemäß einem Ausführungsbeispiel. Ferner führt ein Liefern eines alternativen Cachespeicherungsschemas 223 zu einem Optimieren der Verwendung von teuren Ressourcen, wie z. B. Cachespeicher 162, 174, Speichervorrichtungen 160, 170 und Virtualisierungsvorrichtungen 220. Zum Beispiel führt ein Liefern eines alternativen Cachespeicherungsschemas 223 zu einer erheblich verbesserten Leistung (Bezugnahme auf 3 und die zugehörige Beschreibung) unter dynamischen Arbeitsbelastungsbedingungen, während der Bedarf an einer manuellen Systemadministration und Neukonfiguration verringert wird.
  • ERWEITERUNGEN UND ALTERNATIVEN
  • Obwohl bestimmte Ausführungsbeispiele der vorliegenden Erfindung unter Verwendung einer SSD für die Hilfscachespeicherressource 250 beschrieben wurden, ist die vorliegenden Erfindung nicht auf eine SSD beschränkt. Zum Beispiel kann es sich bei der Hilfscachespeicherressource 250 unter anderem um ein Plattenarray, wie z. B. ein RAID, einen batteriegepufferten dynamischen Direktzugriffsspeicher (DRAM), einen Magnetdirektzugriffsspeicher (MRAM), Flash oder einen anderen Typ von Vorrichtung handeln, die verwendet werden kann, um Daten vorübergehend und/oder dauerhaft zu speichern.
  • Obwohl bestimmte Ausführungsbeispiele der vorliegenden Erfindung beschrieben wurden, wobei das CMM 222 in einer Vorrichtung, wie z. B. einer Virtualisierungsvorrichtung 220, implementiert war, kann sich das CMM 222 in einem beliebigen oder in einer Kombination von einer Vorrichtung 220, einem Strukturschalter, einem Plattenarray, wie z. B. den Speichervorrichtungen 160, 170, oder einem anderen Computer, wie z. B. den Clients 112, 114, 118, befinden. Zum Beispiel kann sich das CMM 222 in der Speichervorrichtung 160 anstatt der Vorrichtung 220 befinden. Bei einem zweiten Beispiel kann sich das CMM 222 in dem Client 114 anstatt der Vorrichtung 220 befinden. Bei einem dritten Beispiel kann sich ein Teil des CMM 222 in der Vorrichtung 220 befinden, und ein Teil des CMM 222 in der Speichervorrichtung 160, usw. Für den Fall, dass sich Teile des CMM 222 auf unterschiedlichen Vorrichtungen befinden, kann eine Steuerlogik verwendet werden, damit die verschiedenen Teile kommunizieren.
  • Obwohl bestimmte Ausführungsbeispiele der vorliegenden Erfindung mit einer Virtualisierungsvorrichtung beschrieben wurden, die eine Hilfscachespeicherressource verwaltet, können sich die hier genannten Ausführungsbeispiele auf eine Virtualisierungsvorrichtung beziehen, die mehr als eine Hilfscachespeicherressource verwaltet. In diesem Fall kann die Virtualisierungsvorrichtung Metadaten für alle Hilfscachespeicherressourcen unterhalten, die derselben zugeordnet sind.
  • Obwohl bestimmte Ausführungsbeispiele der vorliegenden Erfindung so beschrieben wurden, dass dieselben eine Hilfscachespeicherressource 250 nur für ein Cachespeichern von Kopien von Teilen von Daten 270 verwenden, kann die Hilfscachespeicherressource 250 auch zu anderen Zwecken zusätzlich zu einem Cachespeichern von Kopien von Teilen von Daten 270 verwendet werden.
  • Die hier beschriebenen Ausführungsbeispiele können mit einem Spiegeln der Kopien der Teile von Daten 270 verwendet werden. Zum Beispiel können zwei Kopien von A' und zwei Kopien von B' vorliegen. Diese gespiegelten Kopien können sich in einer Hilfscachespeicherressource oder in unterschiedlichen Hilfscachespeicherressourcen befinden.
  • Ausführungsbeispiele der vorliegenden Erfindung sind somit beschrieben. Obwohl die vorliegende Erfindung in bestimmten Ausführungsbeispielen beschrieben wurde, sei darauf hingewiesen, dass die vorliegende Erfindung nicht als durch solche Ausführungsbeispiele eingeschränkt aufgefasst werden sollte, sondern stattdessen gemäß den folgenden Ansprüchen aufgefasst werden sollte.
  • Zusammenfassung der Erfindung
  • Verfahren und Systeme zum Liefern eines alternativen Cachespeicherungsschemas auf der Speicherbereichnetzwerkebene sind beschrieben. Bei einem Ausführungsbeispiel wird bestimmt, dass die Anzahl von Zugriffen auf einen Teil von Daten, der einer Speichervorrichtung zugeordnet ist, eine Schwelle überschreitet, die größer als ein Zugriff ist. Eine Kopie des Teils von Daten wird einer Cachespeicherungsressource zugeordnet, die eine Hilfscachespeicherung für die Speichervorrichtung liefert. Die Hilfscachespeicherungsressource befindet sich auf der Speicherbereichnetzwerkebene. Auf die Kopie des Teils von Daten wird anstatt des Teils von Daten für nachfolgende Zugriffe zugegriffen.

Claims (10)

  1. Ein Verfahren zum Liefern eines alternativen Cachespeicherungsschemas auf einer Speicherbereichnetzwerkebene, wobei das Verfahren folgende Schritte aufweist: Bestimmen (292), dass die Anzahl von Zugriffen auf einen Teil von Daten, der der Speichervorrichtung zugeordnet ist, eine Schwelle überschreitet, die größer als ein Zugriff ist; Zuordnen (294) einer Kopie des Teils von Daten zu einer Cachespeicherungsressource, die eine Hilfscachespeicherung für die Speichervorrichtung liefert, wobei die Hilfscachespeicherungsressource sich auf der Speicherbereichnetzwerk- (SAN-) Ebene befindet, wenn die Anzahl von Zugriffen auf den Teil von Daten die Schwelle überschreitet; und bei nachfolgenden Zugriffen auf den Teil von Daten, Zugreifen (296) auf die Kopie des Teils von Daten anstatt eines Zugreifens auf den Teil von Daten.
  2. Das Verfahren gemäß Anspruch 1, bei dem die Größe des Teils von Daten wesentlich größer ist als die Größe einer Cachespeicherleitung, die dem Primärcachespeicher zugeordnet ist.
  3. Das Verfahren gemäß Anspruch 2, bei dem die Größe des Teils von Daten groß genug ist, so dass die Speichervorrichtung sequentielle Zugriffe auf den Teil von Daten erfasst.
  4. Das Verfahren gemäß Anspruch 1, bei dem die Größe des Teils von Daten klein genug ist, um zu der Hilfscache speicherressource migriert zu werden, ohne Daten zu stören, die der Speichervorrichtung zugeordnet sind.
  5. Das Verfahren gemäß Anspruch 1, wobei das Verfahren ferner folgende Schritte aufweist: Bestimmen, dass auf einen zweiten Teil von Daten sequentiell bei der Speichervorrichtung zugegriffen wird; und Nicht-Zuordnen einer Kopie des zweiten Teils von Daten zu der Hilfscachespeicherungsressource, weil auf den Teil von Daten sequentiell zugegriffen wird.
  6. Das Verfahren gemäß Anspruch 5, bei dem das Nicht-Zuordnen der Kopie des zweiten Teils von Daten zu der Hilfscachespeicherungsressource ferner folgenden Schritt aufweist: Zählen von sequentiellen Zugriffen auf den zweiten Teil von Daten als ein Zugriff.
  7. Das Verfahren gemäß Anspruch 1, bei dem die Schwelle eine dynamische Schwelle ist, die zumindest teilweise auf Kosten eines Zuordnens der Kopie des Teils von Daten zu der Hilfscachespeicherungsressource basiert, wobei die Kosten gegenüber einem Nutzen gewichtet werden, es einer Kopie eines anderen Teils von Daten zu ermöglichen, weiterhin der Hilfscachespeicherungsressource zugeordnet zu sein.
  8. Das Verfahren gemäß Anspruch 1, bei dem die Schwelle eine statische Schwelle ist, die auf einer vorbestimmten Anzahl von Zugriffen basiert, und wobei das Zuordnen einer Kopie des Teils von Daten zu einer Cachespeicherungsressource, die eine Hilfscachespeicherung für die Speichervorrichtung liefert, ferner folgenden Schritt aufweist: Zuordnen der Kopie des Teils von Daten zu der Hilfscachespeicherungsressource, wenn die Anzahl von Zugriffen auf den Teil von Daten die vorbestimmte Anzahl von Zugriffen überschreitet.
  9. Ein System zum Liefern eines alternativen Cachespeicherungsschemas auf der Speicherbereichnetzwerkebene, das folgende Merkmale aufweist: ein Cachespeicherverwaltungsmodul zum Bestimmen (292), dass die Anzahl von Zugriffen auf einen Teil von Daten, der der Speichervorrichtung zugeordnet ist, eine Schwelle überschreitet, die größer als ein Zugriff ist; wobei das Cachespeicherverwaltungsmodul bewirkt, dass eine Kopie des Teils von Daten einer Cachespeicherungsressource zugeordnet wird (294), die eine Hilfscachespeicherung für die Speichervorrichtung liefert, wobei die Hilfscachespeicherungsressource sich auf der Speicherbereichnetzwerk- (SAN-) Ebene befindet, wenn die Anzahl von Zugriffen auf den Teil von Daten die Schwelle überschreitet; und wobei bei nachfolgenden Zugriffen auf den Teil von Daten das Cachespeicherverwaltungsmodul bewirkt, dass auf die Kopie des Teils von Daten zugegriffen wird (296) anstatt eines Zugreifens auf den Teil von Daten.
  10. Ein computerverwendbares Medium, das einen computerlesbaren Programmcode aufweist, der darin ausgeführt ist, zum Bewirken, dass ein Computersystem ein Verfahren zum Liefern eines alternativen Cachespeicherungsschemas auf der Speicherbereichnetzwerkebene durchführt, wobei das Verfahren folgende Schritte aufweist: Bestimmen (292), dass die Anzahl von Zugriffen auf einen Teil von Daten, der der Speichervorrichtung zugeordnet ist, eine Schwelle überschreitet, die größer als ein Zugriff ist; Zuordnen (296) einer Kopie des Teils von Daten zu einer Cachespeicherungsressource, die eine Hilfscachespeicherung für die Speichervorrichtung liefert, wobei die Hilfscachespeicherungsressource sich auf der Speicherbereichnetzwerk- (SAN-) Ebene befindet, wenn die Anzahl von Zugriffen auf den Teil von Daten die Schwelle überschreitet; und bei nachfolgenden Zugriffen auf den Teil von Daten, Zugreifen (296) auf die Kopie des Teils von Daten anstatt eines Zugreifens auf den Teil von Daten.
DE112005001050T 2004-05-14 2005-05-13 Liefern eines alternativen Cachespeicherungsschemas auf der Speicherbereichnetzwerkebene Ceased DE112005001050T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/846,455 2004-05-14
US10/846,455 US8549226B2 (en) 2004-05-14 2004-05-14 Providing an alternative caching scheme at the storage area network level
PCT/US2005/016647 WO2005114428A2 (en) 2004-05-14 2005-05-13 Providing an alternative caching scheme at the storage area network level

Publications (1)

Publication Number Publication Date
DE112005001050T5 true DE112005001050T5 (de) 2007-05-10

Family

ID=35395650

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112005001050T Ceased DE112005001050T5 (de) 2004-05-14 2005-05-13 Liefern eines alternativen Cachespeicherungsschemas auf der Speicherbereichnetzwerkebene

Country Status (4)

Country Link
US (1) US8549226B2 (de)
JP (1) JP4435831B2 (de)
DE (1) DE112005001050T5 (de)
WO (1) WO2005114428A2 (de)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100342352C (zh) * 2005-03-14 2007-10-10 北京邦诺存储科技有限公司 一种可扩充的高速存储网络缓存系统
US20060248040A1 (en) * 2005-05-02 2006-11-02 Nokia Corporation System and method for adaptive remote file caching
US8688904B1 (en) * 2005-05-23 2014-04-01 Hewlett-Packard Development Company, L.P. Method for managing data storage
US7636801B1 (en) * 2005-06-20 2009-12-22 Symantec Operating Corporation Coordination of quality of service in a multi-layer virtualized storage environment
US8548948B2 (en) * 2006-04-11 2013-10-01 Oracle International Corporation Methods and apparatus for a fine grained file data storage system
JP4949804B2 (ja) * 2006-11-07 2012-06-13 株式会社日立製作所 統合管理計算機と記憶装置管理方法および計算機システム
JP4900807B2 (ja) * 2007-03-06 2012-03-21 株式会社日立製作所 ストレージシステム及びデータ管理方法
US8874854B2 (en) * 2007-07-30 2014-10-28 International Business Machines Corporation Method for selectively enabling and disabling read caching in a storage subsystem
KR20100039179A (ko) * 2008-10-07 2010-04-15 삼성전자주식회사 메모리 장치의 상태를 검사하는 메모리 시스템, 저장 장치,그리고 메모리 컨트롤러
US8327066B2 (en) 2008-09-30 2012-12-04 Samsung Electronics Co., Ltd. Method of managing a solid state drive, associated systems and implementations
KR101023883B1 (ko) * 2009-02-13 2011-03-22 (주)인디링스 고속 저장 장치를 캐쉬로 사용하는 스토리지 시스템
US8843648B2 (en) * 2009-05-26 2014-09-23 Microsoft Corporation External access and partner delegation
US8850041B2 (en) * 2009-05-26 2014-09-30 Microsoft Corporation Role based delegated administration model
JP4862067B2 (ja) * 2009-06-09 2012-01-25 株式会社日立製作所 キャッシュ制御装置及び方法
US8782340B2 (en) * 2010-12-06 2014-07-15 Xiotech Corporation Hot sheet upgrade facility
US8862845B2 (en) 2010-12-06 2014-10-14 Xiotech Corporation Application profiling in a data storage array
US8819236B2 (en) * 2010-12-16 2014-08-26 Microsoft Corporation Resource optimization for online services
US8868839B1 (en) * 2011-04-07 2014-10-21 Symantec Corporation Systems and methods for caching data blocks associated with frequently accessed files
US20130138884A1 (en) * 2011-11-30 2013-05-30 Hitachi, Ltd. Load distribution system
US8935476B2 (en) * 2012-01-17 2015-01-13 International Business Machines Corporation Managing caching of extents of tracks in a first cache, second cache and storage
US9798623B2 (en) * 2012-05-11 2017-10-24 Seagate Technology Llc Using cache to manage errors in primary storage
JP2014021718A (ja) * 2012-07-18 2014-02-03 Panasonic Corp 情報管理システム、機器、表示装置
WO2014126555A1 (en) * 2013-02-13 2014-08-21 Violin Memory, Inc. Mapping engine for a storage device
US9323463B2 (en) 2014-08-05 2016-04-26 Hitachi, Ltd. Storage system and cache control method
US10095625B2 (en) * 2015-06-19 2018-10-09 Hitachi, Ltd. Storage system and method for controlling cache
US10432723B2 (en) * 2015-09-03 2019-10-01 Toshiba Memory Corporation Storage server and storage system
US10496277B1 (en) * 2015-12-30 2019-12-03 EMC IP Holding Company LLC Method, apparatus and computer program product for storing data storage metrics
US11010092B2 (en) 2018-05-09 2021-05-18 Micron Technology, Inc. Prefetch signaling in memory system or sub-system
US10714159B2 (en) 2018-05-09 2020-07-14 Micron Technology, Inc. Indication in memory system or sub-system of latency associated with performing an access command
US10754578B2 (en) * 2018-05-09 2020-08-25 Micron Technology, Inc. Memory buffer management and bypass
US10942854B2 (en) 2018-05-09 2021-03-09 Micron Technology, Inc. Prefetch management for memory
US11445045B1 (en) * 2021-12-21 2022-09-13 Akamai Technologies, Inc. Systems and methods for preventing the caching of rarely requested objects
US11809361B1 (en) * 2022-07-15 2023-11-07 Micron Technology, Inc. Network data storage devices having external access control
US11983434B2 (en) 2022-07-15 2024-05-14 Micron Technology, Inc. Network-ready storage products with computational storage processors
US11947834B2 (en) 2022-07-15 2024-04-02 Micron Technology, Inc. Data storage devices with reduced buffering for storage access messages
US11775225B1 (en) 2022-07-15 2023-10-03 Micron Technology, Inc. Selective message processing by external processors for network data storage devices
US11868828B1 (en) 2022-07-15 2024-01-09 Micron Technology, Inc. Message routing in a network-ready storage product for internal and external processing
US11868827B1 (en) 2022-07-15 2024-01-09 Micron Technology, Inc. Network storage products with options for external processing
US11853819B1 (en) 2022-07-15 2023-12-26 Micron Technology, Inc. Message queues in network-ready storage products having computational storage processors
US12050945B2 (en) 2022-07-15 2024-07-30 Micron Technology, Inc. Storage products with connectors to operate external network interfaces

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03282649A (ja) 1990-03-30 1991-12-12 Hitachi Ltd キャッシュメモリ制御方式
US5625793A (en) 1991-04-15 1997-04-29 International Business Machines Corporation Automatic cache bypass for instructions exhibiting poor cache hit ratio
JP3194201B2 (ja) 1992-02-24 2001-07-30 株式会社日立製作所 キャッシュモード選択方法
JP2761156B2 (ja) 1992-06-30 1998-06-04 キヤノン株式会社 光起電力素子及びその製造方法、並びにそれを用いた発電装置
GB2273181A (en) * 1992-12-02 1994-06-08 Ibm Cache/non-cache access control.
JPH07134634A (ja) 1993-11-11 1995-05-23 Nec Corp ディスク装置
KR0146059B1 (ko) * 1995-04-11 1998-09-15 문정환 미참조 선인출 캐쉬를 이용한 명령어 선인출 방법 및 그 회로
JP3282649B2 (ja) 1995-05-19 2002-05-20 キヤノン株式会社 原稿読み取り装置
JPH09288244A (ja) 1996-04-22 1997-11-04 Canon Inc 光走査装置
JPH10154101A (ja) 1996-11-26 1998-06-09 Toshiba Corp データ記憶システム及び同システムに適用するキャッシュ制御方法
US5924116A (en) * 1997-04-02 1999-07-13 International Business Machines Corporation Collaborative caching of a requested object by a lower level node as a function of the caching status of the object at a higher level node
US6484239B1 (en) 1997-12-29 2002-11-19 Intel Corporation Prefetch queue
US6253289B1 (en) * 1998-05-29 2001-06-26 Compaq Computer Corporation Maximizing sequential read streams while minimizing the impact on cache and other applications
JP2000148584A (ja) 1998-11-10 2000-05-30 Matsushita Electric Ind Co Ltd プリフェッチ方法および装置
US6463509B1 (en) * 1999-01-26 2002-10-08 Motive Power, Inc. Preloading data in a cache memory according to user-specified preload criteria
US6513097B1 (en) * 1999-03-03 2003-01-28 International Business Machines Corporation Method and system for maintaining information about modified data in cache in a storage system for use during a system failure
EP1098249A1 (de) 1999-11-05 2001-05-09 Emc Corporation Cachespeichersegmentierung zur Bereitstellung von unterschiedlichen Betriebsniveaus
US20010049773A1 (en) * 2000-06-06 2001-12-06 Bhavsar Shyamkant R. Fabric cache
US6487638B2 (en) * 2001-01-26 2002-11-26 Dell Products, L.P. System and method for time weighted access frequency based caching for memory controllers
JP3690295B2 (ja) 2001-03-15 2005-08-31 日本電気株式会社 ディスクアレイ制御装置
US7472231B1 (en) * 2001-09-07 2008-12-30 Netapp, Inc. Storage area network data cache
JP2003228462A (ja) 2002-02-04 2003-08-15 E-Storage Networks Inc Sanキャッシュ装置
JP2004054845A (ja) 2002-07-24 2004-02-19 Sony Corp データ管理装置
US6981112B2 (en) * 2002-08-26 2005-12-27 International Business Machines Corporation Dynamic cache disable
US7051161B2 (en) * 2002-09-17 2006-05-23 Nokia Corporation Memory admission control based on object size or request frequency
JP2004110503A (ja) 2002-09-19 2004-04-08 Hitachi Ltd 記憶制御装置、記憶システム、記憶制御装置の制御方法、チャネル制御部、及びプログラム
WO2004031963A1 (ja) 2002-09-30 2004-04-15 Renesas Technology Corp. 半導体データプロセッサ
US20050108478A1 (en) * 2003-11-13 2005-05-19 International Business Machines Corporation Dynamic frequent instruction line cache
JP5233450B2 (ja) 2008-07-02 2013-07-10 株式会社明電舎 瞬低補償装置

Also Published As

Publication number Publication date
WO2005114428A3 (en) 2006-02-16
JP4435831B2 (ja) 2010-03-24
JP2007537548A (ja) 2007-12-20
US8549226B2 (en) 2013-10-01
WO2005114428A2 (en) 2005-12-01
US20060026229A1 (en) 2006-02-02

Similar Documents

Publication Publication Date Title
DE112005001050T5 (de) Liefern eines alternativen Cachespeicherungsschemas auf der Speicherbereichnetzwerkebene
DE102020103817B4 (de) Schwellwertanpassung der Warteschlangentiefe eines Speicherklassenspeichers
DE112014000254B4 (de) Mehrstufiges Zwischenspeichern und Migrieren in unterschiedlichen Granularitäten
DE112012004798B4 (de) Anpassung der Auslagerungsgeschwindigkeit auf Grundlage von Anforderungen an Lese- und Schreib-Antwortzeiten
DE112010004969B4 (de) Hybrides Speicherteilsystem und Verfahren zum Verwalten eines solchen
DE112012000953B4 (de) Dynamisches Beseitigen von Leistungsungleichgewicht zur Laufzeit
DE112012002615B4 (de) Vorabladen von Datenspuren und Paritätsdaten zur Verwendung zum Auslagern aktualisierter Spuren
DE112010003794B4 (de) Datenspeicherung unter Verwendung von Bitmaps
DE602005000926T2 (de) Speichersystem und Speicherauszugs-Erstellungsverfahren eines Speichersystems
DE112012001302B4 (de) Cachen von Daten in einem Speichersystem mit mehreren Cache-Speichern
DE112012004540B4 (de) Selektive Speicherplatzfreigabe eines Datenspeichers unter Verwendung von Vergleichs- und Verlagerungskennzahlen
DE112015000710T5 (de) Verteiltes Speichersystem
DE69626569T2 (de) Datenkompressionsverfahren und Struktur für eine Speichereinheit mit direktem Zugriff
DE112013005903T5 (de) Speichersystem und Speichersteuerungsverfahren
DE112011103290B4 (de) Intelligente Schreibcacheoperationen für sequenzielle Datenspuren
DE102005006176A1 (de) Transaktionsverarbeitungs-Systeme und -Verfahren, die einen Nicht-Platten-Dauerspeicher verwenden
DE112020002526T5 (de) Blockmodusumschaltung in datenspeichersystem
DE112016004527T5 (de) Implementieren eines Hardware-Beschleunigers für das Management eines Speicher-Schreibcachespeichers
DE10348326A1 (de) Permanentspeichervorrichtung, die an eine Kommunikationsverbindung angeschlossen ist
DE102016013577B4 (de) Systeme und Verfahren zum adaptiven Partitionieren in verteilten Cache-Speichern
DE202010017613U1 (de) Datenspeichervorrichtung mit host-gesteuerter Speicherbereinigung
DE102005031525A1 (de) Verfahren und System zur Steuerung eines Flashspeichers und Speichersystem
DE112013006565T5 (de) Speichervorrichtung
DE112006001636T5 (de) Technik zum Beschreiben eines nicht-flüchtigen Speichers
DE102012219098A1 (de) Verwaltung von Teildatensegmenten in Systemen mit doppeltem Cachespeicher

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R016 Response to examination communication
R006 Appeal filed
R008 Case pending at federal patent court
R081 Change of applicant/patentee

Owner name: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, HOU, US

Free format text: FORMER OWNER: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., HOUSTON, TEX., US

R082 Change of representative

Representative=s name: SCHOPPE, ZIMMERMANN, STOECKELER, ZINKLER, SCHE, DE

R003 Refusal decision now final
R011 All appeals rejected, refused or otherwise settled