-
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
-
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.