-
TECHNISCHES ANWENDUNGSGEBIET
-
Diese Erfindung betrifft die Datenspeicherung und insbesondere die Migration von Daten zwischen Datenspeichereinheiten.
-
HINTERGRUND
-
Datenspeichereinheiten können unterschiedliche Leistungsvermögen und Kostenpunkte aufweisen. Ein Cache-Speicher kann zum Beispiel schnell auf Daten zugreifen und diese speichern, ist jedoch relativ teuer. Festplattenlaufwerke können (auf Grund der Suchzeiten) längere Zugriffszeiten aufweisen und relativ preiswert sein. Bei Flash-Speichern handelt es sich um nichtflüchtige sequenzielle Halbleiterspeicher, die somit keine Datenübertragung mit DMA (direct memory access, Direktspeicherzugriff) unterstützen. Folglich können Flash-Speicher, wie den Fachleuten bekannt ist, als SSD (Solid State Drive, Halbleiterdatenträger) angeordnet werden. SSD-Flash-Speicher weisen eine niedrige Latenzzeit, jedoch keine hohe Bandbreite auf und liegen somit, wie die Fachleute wissen, leistungstechnisch und kostentechnisch zwischen Festplattenlaufwerken und Cache-Speicher.
-
Steuereinheiten für Datenspeichersysteme (auch Speichersteuereinheiten und Speicher-Server genannt) steuern üblicherweise den Zugriff auf Datenspeichermedien und Speicher als Reaktion auf Lese- und Schreibanforderungen. Die Speichersteuereinheiten können die Daten an Cache-Speicher, nichtflüchtige Speicher, SSD-Flash-Speicher sowie Datenspeichereinheiten wie RAID (redundant array of independent disks, redundante Anordnung unabhängiger Festplatten), JBOD (just a bunch of disks, nur ein Haufen Festplatten) und andere Festplattenlaufwerks-Redundanzstufen leiten.
-
Ein IBM® ESS (Enterprise Storage Server) wie der DS8000 weist zum Beispiel redundante Gruppen von Recheneinheiten, Cache-Speichern, nichtflüchtige Speicher usw. auf, die auf Host-Rechner reagieren und Daten virtuell speichern, wobei sie die tatsächlichen Daten zum anschließenden Abrufen verfolgen. Die Daten werden üblicherweise so gespeichert, wie durch die Steuereinheit angewiesen, damit sie für die anfordernde Einheit verfügbar sind oder verfügbar gemacht werden, wobei Datenarten, die voraussichtlich sofort wieder benötigt werden, zum Beispiel bei hoher Aktivität, in dem schnelleren Datenspeicher gespeichert und der Großteil der Daten in dem langsameren Datenspeicher gespeichert werden. In einem Beispiel handelt es sich bei den langsameren Datenspeichern um Festplattenlaufwerke und bei den schnelleren Datenspeichern um SSD-Flash-Speicher.
-
Daten können in unterschiedlichen Dateneinheiten mit konstanten oder variablen Größen angeordnet werden. In einem Beispiel werden Daten in „reservierte Speicherbereiche” (extents) genannten Dateneinheiten angeordnet. In einem anderen Beispiel werden Daten in „Datenreihen” (data sets) genannten Dateneinheiten angeordnet. In einem weiteren Beispiel werden Daten in „Sektoren” (sectors) genannten Speichereinheiten angeordnet. Ein weiteres Beispiel betrifft die Adressierung und wird „LUN”s für logische Einheiten (logical units) genannt. Fachleute kennen noch weitere Beispiele. Folglich wird hierin der allgemeine Begriff „Gruppe” bzw. „Gruppen” verwendet.
-
Druckschrift
US 2003/0140207 A1 offenbart eine Speichereinrichtung, die mehrere Speichereinheiten mit unterschiedlichen Zugriffsgeschwindigkeiten aufweist. Dabei werden die Daten, auf die am häufigsten zugegriffen wird, in der schnellsten Speichereinheit gespeichert, und die übrigen Daten abhängig von ihrer Zugriffshäufigkeit auf die übrigen Speichereinheiten verteilt. Zudem ist eine Steuereinrichtung vorgesehen, die in einer Zugriffstabelle die auf einen Datenblock getätigten Zugriffe pro Zeiteinheit listet. Hierbei kann die Zugriffstabelle Einträge für die in unterschiedlichen Zeitintervallen auf einen Datenblock getätigten Zugriffe aufweisen.
-
Druckschrift
US 2008/0059718 A1 offenbart ein Speichersystem, das mehrere Speichereinheiten mit unterschiedlichen Zugriffsgeschwindigkeiten bzw. unterschiedlichen Speicherkapazitäten aufweist. Mittels einer Zugriffstabelle wird die Zugriffshäufigkeit auf die jeweiligen Dateien gelistet, und zwar getrennt für unterschiedliche Zeitintervalle. Anschließend wird die Migration der Dateien abhängig von der ermittelten Zugriffshäufigkeit vorgenommen.
-
ZUSAMMENFASSUNG
-
Verfahren, Steuereinheiten für Datenspeicher, Datenspeichersysteme und Rechnerprogrammprodukte werden nach dem erstmaligen Anordnen von Daten in den verschiedenen Datenspeichereinheiten zur Migration der Daten angewiesen.
-
In einer Ausführungsform wird ein Verfahren zur Migration von Daten eines Datenspeichersystems dargestellt, das zumindest einen ersten Datenspeicher mit höherer Geschwindigkeit, zumindest einen zweiten Datenspeicher mit langsamerer Geschwindigkeit und eine Steuereinheit zur Steuerung der Speicherzugriffe umfasst, wobei das Verfahren die folgenden Schritte umfasst: Überwachen der angezeigten E/A-Aktivität für jede einzelne Datengruppe und Überwachen des Auftretens von E/R-Aktivität in einem Zeitintervall durch die Steuereinheit; Identifizieren mindestens einer Gruppe der Daten durch die Steuereinheit, die in jedem einer Vielzahl von Zeitintervallen mindestens eine angezeigte E/A-Aktivität hatten, welche während einer Folge mehrerer Zeitintervalle auftraten, wobei die E/A-Aktivität bezogen auf den langsameren Datenspeicher ist, von dem Daten zu migrieren sind, wobei die Zeit für jedes der mehreren Intervalle so gewählt wird, dass hohe E/A-Aktivität voraussichtlich in einem Intervall enthalten ist, wobei das Identifizieren unter Anwendung eines gleitenden Durchschnitts der Zeitintervalle erfolgt, bei dem die neuere E/A-Aktivität durch eine exponentielle Gewichtung stärker gewichtet wird als ältere E/A-Aktivität; Klassifizieren der mindestens einen identifizierten Datengruppe für den schnelleren Datenspeicher durch die Steuereinheit; und Migration der mindestens einen klassifizierten Datengruppe von dem langsamen Datenspeicher in den schnellen Datenspeicher durch die Steuereinheit.
-
In einer weiteren Ausführungsform umfasst der gleitende Durchschnitt Folgendes: P = (1 – W)*P_last = W*S, wobei: P = aktueller Wert des exponentiell gewichteten gleitenden Durchschnitts;
P_last = letzter vorheriger Wert von P;
W = Gewichtung jedes Intervalls; und
S = 1 wenn innerhalb des Intervalls eine E/A-Aktivität auftrat, 0 wenn es keine E/A-Aktivität gab.
-
In einer anderen Ausführungsform haben die Intervalle im Wesentlichen die gleiche Länge.
-
In einer weiteren Ausführungsform beträgt die Länge der Intervalle im Wesentlichen eine Stunde.
-
In einer anderen Ausführungsform umfassen die überwachten Intervallfolgen mindestens eine Gruppe von aufeinanderfolgenden Intervallen.
-
In einer weiteren Ausführungsform überspringen die überwachten Intervallfolgen mindestens eine Zeitspanne.
-
In einer anderen Ausführungsform aktualisiert der Schritt des Identifizierens eine überwachte Intervallfolge einer Datengruppe als Reaktion auf einen E/A-Zugriff auf die Datengruppe.
-
In einer anderen Ausführungsform wird eine Steuereinheit für ein Datenspeichersystem bereitgestellt, das zumindest einen ersten Datenspeicher mit höherer Geschwindigkeit und zumindest einen zweiten Datenspeicher mit langsamerer Geschwindigkeit umfasst, wobei die Steuereinheit Folgendes umfasst: mindestens einen Rechnerprozessor, der so konfiguriert ist, dass er das Datenspeichersystem steuern kann; und mindestens einen Speicher, der so konfiguriert ist, dass er ein durch einen Rechner lesbares Programm speichern kann, das, wenn es auf dem zumindest einen Rechnerprozessor ausgeführt wird, bewirkt, dass das Datenspeichersystem die folgenden Schritte ausführt: Überwachen der angezeigten E/A-Aktivität für jede einzelne Datengruppe und Überwachen des Auftretens von E/A-Aktivität in einem Zeitintervall durch die Steuereinheit; Identifizieren mindestens einer Gruppe der Daten durch die Steuereinheit, die in jedem einer Vielzahl von Zeitintervallen mindestens eine angezeigte E/A-Aktivität hatten, welche während einer Folge mehrerer Zeitintervalle auftraten, wobei die E/A-Aktivität bezogen auf den langsameren Datenspeicher ist, von dem Daten zu migrieren sind, wobei die Zeit für jedes der mehreren Intervalle so gewählt wird, dass hohe E/A-Aktivität voraussichtlich in einem Intervall enthalten ist, wobei das Identifizieren unter Anwendung eines gleitenden Durchschnitts der Zeitintervalle erfolgt, bei dem die neuere E/A-Aktivität durch eine exponentielle Gewichtung stärker gewichtet wird als ältere E/A-Aktivität; Klassifizieren der mindestens einen identifizierten Datengruppe für den schnelleren Datenspeicher durch die Steuereinheit; und Migration der mindestens einen klassifizierten Datengruppe von dem langsamen Datenspeicher in den schnellen Datenspeicher durch die Steuereinheit.
-
In noch einer anderen Ausführungsform umfasst ein Datenspeichersystem mindestens eine erste Datenspeichereinheit, die so konfiguriert ist, dass sie Daten speichern kann und eine höhere Geschwindigkeit hat; mindestens eine zweite Datenspeichereinheit, die so konfiguriert ist, dass sie Daten speichern kann und eine langsamere Geschwindigkeit als die erste Datenspeichereinheit aufweist; und eine Steuereinheit, die so konfiguriert ist, dass sie die folgenden Schritte ausführt. Überwachen der angezeigten E/A-Aktivität für jede einzelne Datengruppe und Überwachen des Auftretens von E/A-Aktivität in einem Zeitintervall durch die Steuereinheit; Identifizieren mindestens einer Gruppe der Daten durch die Steuereinheit, die in jedem einer Vielzahl von Zeitintervallen mindestens eine angezeigte E/A-Aktivität hatten, welche während einer Folge mehrerer Zeitintervalle auftraten, wobei die E/A-Aktivität bezogen auf den langsameren Datenspeicher ist, von dem Daten zu migrieren sind, wobei die Zeit für jedes der mehreren Intervalle so gewählt wird, dass hohe E/A-Aktivität voraussichtlich in einem Intervall enthalten ist, wobei das Identifizieren unter Anwendung eines gleitenden Durchschnitts der Zeitintervalle erfolgt, bei dem die neuere E/A-Aktivität durch eine exponentielle Gewichtung stärker gewichtet wird als ältere E/A-Aktivität; Klassifizieren der mindestens einen identifizierten Datengruppe für den schnelleren Datenspeicher durch die Steuereinheit; und Migration der mindestens einen klassifizierten Datengruppe von dem langsamen Datenspeicher in den schnellen Datenspeicher durch die Steuereinheit.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Ausführungsformen der Erfindung werden nun lediglich beispielhaft, unter Bezugnahme auf die beigefügten Zeichnungen beschrieben. Es zeigen:
-
1 ein Blockschaltbild eines beispielhaften Datenspeichersystems, das die vorliegende Erfindung umsetzen kann;
-
2 eine grafische Darstellung der E/A des Datenspeichersystems aus 1;
-
3 ein Funktionsschaubild von funktionalen Operationen des Datenspeichersystems aus 1;
-
4 eine Tabelle, die E/A-Aktivitäten von Datengruppen in Bezug auf das Speichersystem aus 1 darstellt; und
-
5 einen Ablaufplan, der ein beispielhaftes Verfahren zum Betreiben des Datenspeichersystems aus den 1 und 2 darstellt.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Diese Erfindung wird in der folgenden Beschreibung in bevorzugten Ausführungsformen unter Bezugnahme auf die Figuren beschrieben, in denen gleiche Zahlen dieselben oder ähnliche Elemente darstellen. Obwohl diese Erfindung im Sinne der besten Funktionsweise zur Erreichung der Ziele dieser Erfindung beschrieben wird, werden Fachleute verstehen, dass Abwandlungen hinsichtlich dieser Lehren vorgenommen werden können, ohne von dem Gedanken bzw. dem Umfang der Erfindung abzuweichen.
-
Unter Bezugnahme auf 1 umfasst ein Datenspeichersystem 100 eine Steuereinheit 105, die eine Gruppe 110 und eine andere Gruppe 120 aufweist. Die Gruppe 110 umfasst eine Funktionseinheit (complex) 130, die mindestens die Teilsystemsteuerung 132, einen lokalen nichtflüchtigen Datenspeicher 134, und einen lokalen Cache-Datenspeicher 136 umfasst. Gleichermaßen umfasst die Gruppe 120 eine Funktionseinheit (complex) 140, die mindestens die Teilsystemsteuerung 142, einen lokalen nichtflüchtigen Datenspeicher 144 und einen lokalen Cache-Datenspeicher 146 umfasst. In jeder Gruppe der Steuereinheit 105 kann die Teilsystemsteuerung vollständig von der restlichen Funktionseinheit (complex) getrennt oder teilweise durch den lokalen nichtflüchtigen Speicher und/oder den lokalen Cache-Datenspeicher verkörpert sein. Des Weiteren können der Cache-Datenspeicher und der nichtflüchtige Speicher verschiedene Bereiche eines Speichersystems umfassen. Die Teilsystemsteuerung 132, 142 umfasst einen oder mehrere Rechnerprozessoren, die zum Steuern des Datenspeichersystems konfiguriert sind, und den/die Speicher 133, 143, der/die so konfiguriert ist/sind, dass sie Informationen und durch einen Rechner lesbare Programmdaten zum Steuern des Rechnerprozessors/der Rechnerprozessoren speichern können. Hierin kann „Rechnerprozessor” bzw. „Steuerung” jede(n) beliebigen) geeignete(n) Logik, programmierbare Logik, Mikroprozessor sowie zugehörige oder interne Speicher zur Reaktion auf Programmanweisungen umfassen, und der zugehörige oder interne Speicher kann feste oder wiederbeschreibbare Speicher oder Datenspeichereinheiten umfassen. Die Programmdaten können der Teilsystemsteuerung bzw. dem Speicher von einem Host-Rechner oder über ein Datenspeicherlaufwerk bzw. eine Anordnung von Festplatten, durch Eingabe von einer Diskette oder optischen Platte, durch Einlesen von einer Kassette, durch eine Web-Benutzeroberfläche bzw. andere Netzwerkverbindung oder durch jedes andere geeignete Mittel zugeführt werden. Die Programmdaten können somit ein oder mehrere Programmprodukte umfassen, die ein durch einen Rechner verwendbares Medium umfassen, das von einem Rechner verwendbaren, physisch darauf enthaltenen Programmcode zum Steuern der Gruppe 110 und/oder zum Steuern der Gruppe 120 oder ähnlicher Arten von Systemen oder Einheiten enthält.
-
Der nichtflüchtige Datenspeicher 134, 144 kann ein batteriegepuffertes Speichersystem, das Daten selbst im Falls eines Stromausfalls schützt, oder einen anderen geeigneten nichtflüchtigen Speicher umfassen. Der Cache-Datenspeicher 136, 146 kann jedes beliebige geeignete Speichersystem umfassen und flüchtig sein und somit potenziell Daten verlieren, wenn der Strom abgeschaltet wird.
-
Die Host-Adapter 150, 154 können einen oder mehrere Fibre-Channel-Anschlüsse, einen oder mehrere FICON-Anschlüsse, einen oder mehrere ESCON-Anschlüsse, einen oder mehrere SCSI-Anschlüsse oder andere geeignete Anschlüsse umfassen. Jeder Host-Adapter ist so konfiguriert, dass er mit einem Host-System und sowohl mit der Gruppe 110 als auch mit der Gruppe 120 Daten austauschen kann, so dass jede Gruppe E/A von jedem beliebigen Host-Adapter verarbeiten kann.
-
Die Einheiten-Adapter 160, 164 können Datenübertragungsverbindungen für den Datenaustausch mit dem Datenspeicher 170 umfassen. Die Datenübertragungsverbindungen können serielle Anschlüsse wie RS-232 oder RS-422, Ethernet-Anschlüsse, SCSI-Anschlüsse, ESCON-Anschlüsse, FICON-Anschlüsse, ein lokales Netzwerk (LAN), ein privates Weitverkehrsnetz (WAN), ein öffentliches Weitverkehrsnetz, ein Speichernetzwerk (Storage Area Network, (SAN)), das Übertragungssteuerungsprotokoll/Internetprotokoll (Transmission Control Protocol/Internet Protocol (TCP/IP)), das Internet sowie Kombinationen aus diesen umfassen.
-
Ein Beispiel eines Datenspeicher-Subsystems 100 umfasst einen IBM® Enterprise Storage Server, IBM® Modell DS 8000 oder ein anderes vergleichbares System.
-
Wie oben erläutert, umtasst der Datenspeicher 170 den Datenspeicher 180, der eine höhere Geschwindigkeit aufweist, und andere Datenspeicher 182. Ein Beispiel für andere Datenspeicher 182 umfasst Festplattenlaufwerke, die RAID-Protokolle (Redundant Array of Independent Disks, redundante Anordnung unabhängiger Festplatten) einsetzen oder JBOD (Just a Bunch of Disks, nur ein Haufen Festplatten) umfassen können. Ein Beispiel des schnelleren Datenspeichers 180 umfasst einen als SSD (Solid State Drive, Halbleiterdatenträger) angeordneten Flash-Speicher. Der Flash-Speicher kann auch so angeordnet sein, dass er Redundanz bietet, also beispielsweise als RAID-Anordnung. Der Geschwindigkeitsunterschied zwischen dem Hochgeschwindigkeits-Datenspeicher und dem anderen Datenspeicher ist relativ.
-
In einer Alternative kann der schnellere Datenspeicher Hochgeschwindigkeits-Speichereinheiten wie RAMs (Random Access Memory, Direktzugriffsspeicher) umfassen, und bei den anderen Datenspeichern kann es sich um Flash-Speicher handeln.
-
In einer anderen Alternative kann die Steuereinheit ein Verarbeitungssystem mit einer Gruppe umfassen, die geeignete Redundanzen aufweist.
-
Unter Bezugnahme auf 2, reagiert das Speichersystem 100 auf einen oder mehrere Host-Rechner 200 und führt E/A-Zugriffe 203 aus, um Daten virtuell zu speichern, wobei die eigentlichen Daten verfolgt werden, um sie anschließend abrufen zu können. Die Daten werden üblicherweise wie durch die Steuereinheit 105 angewiesen gespeichert, damit sie für den anfordernden Host-Rechner verfügbar sind oder verfügbar gemacht werden. Die Daten können über die Übertragungsleitungen 204 in dem Hochgeschwindigkeits-Datenspeicher 180 gespeichert und daraus abgerufen und über die Übertragungsleitungen 205 in dem anderen Datenspeicher 182 gespeichert und daraus abgerufen werden. Daten können anfangs auf der Grundlage einer Schätzung des zukünftigen Zugriffs gespeichert werden, wobei Datenarten, die voraussichtlich sofort wieder benötigt werden, wie im Falle von hoher Aktivität, in dem schnelleren Datenspeicher 180 gespeichert werden und der Großteil der Daten in dem langsameren Datenspeicher 182 gespeichert werden. In dem schnelleren Datenspeicher 180 gespeicherte Daten, auf die nicht wie geschätzt zugegriffen wird oder auf die nicht mehr zugegriffen wird, können beispielsweise unter Verwendung eines LRU-Algorithmus (least recently used, am längsten ungenutzt) in den langsameren Datenspeicher 182 migriert werden. Die Daten können entweder durch die Steuereinheit 105 über die Übertragungsleitungen 204 und 205 oder alternativ direkt zwischen dem schnelleren Speicher 180 und dem anderen Speicher 182 durch die Steuereinheit 105 gesteuert migriert werden.
-
Wie oben erläutert, können Daten in unterschiedlichen Dateneinheiten mit konstanten oder variablen Größen angeordnet werden. In einem Beispiel werden Daten in „reservierte Speicherbereiche” (extents) genannten. Dateneinheiten angeordnet. In einem anderen Beispiel werden Daten in „Datenreihen” (data sets) genannten Dateneinheiten angeordnet. In einem weiteren Beispiel werden Daten in „Sektoren” (sectors) genannten Speichereinheiten angeordnet. Ein weiteres Beispiel betrifft die Adressierung und wird „LUN”s für logische Einheiten (logical units) genannt. Fachleute kennen noch weitere Beispiele. Folglich wird hierin der allgemeine Begriff „Gruppe” bzw. „Gruppen” verwendet.
-
Unter Bezugnahme auf die 1, 2, 3, 4 und 5 ist die Steuereinheit 105 so konfiguriert, dass sie das Migrieren von Daten in dem Datenspeichersystem 100 von dem anderen Datenspeicher 182 zu dem schnelleren Datenspeicher 180 steuert. Üblicherweise werden Daten in umgekehrter Richtung von dem schnelleren Datenspeicher 180 zu dem anderen Datenspeicher 182 migriert, um zum Beispiel neue Daten in dem schnelleren Datenspeicher aufzunehmen. In der vorliegenden Erfindung stellt die Steuereinheit 105 eine Identifizierung von Daten bereit, die voraussichtlich am ehesten aus dem schnelleren Datenspeicher 180 Nutzen ziehen können. Die Größe des Datenelements kann, wie bereits erläutert, flexibel oder fest sein, und jedes Datenelement wird hierin Datengruppe genannt. In den meisten Fällen ist die Aktivität von kleineren Dateneinheiten wie reservierten Speicherbereichen (extents) (mit zum Beispiel 1 GB) tendenziell kurzlebig; folglich können selbst auf eine hohe Aktivität lange Ruhezeiten folgen. Andererseits stellen Daten, die eine Ausnahme dieser Regel sind, üblicherweise einen großen Teil der Gesamt-E/A dar.
-
Die Steuereinheit 105 ist so konfiguriert, dass sie die E/A-Aktivität 203, 205 in Bezug auf Datengruppen anzeigt, wobei die E/A mit Bezug zu in dem langsameren Datenspeicher 182 gespeicherten Datengruppen von besonderem Interesse ist. Das heißt, dass die E/A-Aktivität Bezug zu dem Datenspeicher hat, von dem Daten zu migrieren bzw. zu befördern sind. Die Steuereinheit 105 betrachtet Zeitintervalle und zeigt mindestens eine in einem Zeitintervall angezeigte E/A-Aktivität an. Die Länge jedes der mehreren Intervalle wird so gewählt, dass hohe E/A-Aktivität voraussichtlich in einem Intervall enthalten ist. Hohe Aktivität außer der einen E/A-Aktivität innerhalb desselben Intervalls wird ignoriert. Die Intervalle können durch einen Intervallzeitgeber 225 gemessen werden und zum Beispiel eine Stunde umfassen. Eine Möglichkeit der Funktionsweise des Intervallzeitgebers 225 besteht darin, die Stunden seit dem ersten IML des Systems zu zählen. Man kann zum Beispiel einen Zeitversatz für die Dauer des ersten IML von der Systemuhr abziehen und dann den Stundenwert des Ergebnisses entnehmen.
-
Die angezeigte E/A-Aktivität kann man durch Überwachung eines E/A-Aktivitäts-Protokolls 220 ermitteln, und sie ist im Besonderen die in Schritt 300 erkannte E/A-Aktivität des anderen Datenspeichers 182. Wenn das E/A-Aktivitäts-Protokoll 220 sowohl die E/A des schnelleren Datenspeichers 180 als auch des anderen Datenspeichers 182 berücksichtigt, wird die E/A-Aktivität des anderen Datenspeichers 182 entnommen und in Schritt 303 überwacht. Die angezeigte E/A-Aktivität kann eine E/A-Aktivität umfassen, die ein bestimmtes Ergebnis wie zum Beispiel das Lesen oder Aktualisieren von Daten hat. Ferner kann die angezeigte E/A-Aktivität für jede Datengruppe, die von Interesse ist, überwacht werden. Das heißt, ein Nutzer kann es wünschen, dass eine bestimmte Datengruppe nicht in den schnelleren Speicher migriert wird, sobald sie sich in dem anderen Datenspeicher befindet, und die Datengruppe muss nicht überwacht werden. Wie oben erläutert, kann es sich bei der Datengruppe um jede beliebige Dateneinheit handeln. Es ist möglich, dass verschiedene Arten von Dateneinheiten als einzelne Gruppen angesehen werden, wobei reservierte Speicherbereiche (extents) für eine Datenart die überwachte Gruppe darstellen, während für eine andere Datenart Datensätze überwacht werden.
-
Wie oben erläutert, ist nur die erste E/A-Aktivität in einem Intervall in Bezug auf eine Datengruppe von Interesse, und der Schritt 310 stellt diese Informationen bereit. Wenn die E/A-Aktivität für die überwachte Gruppe nicht die erste E/A-Aktivität in dem aktuellen Intervall ist, kehrt der Prozess zu den Schritten 300 und 303 zurück.
-
Wenn die E/A-Aktivität für die überwachte Gruppe die erste E/A-Aktivität in dem aktuellen Intervall ist, wird dies in Schritt 313 zum Beispiel in einem E/A-Aktivitäts-Journal 221 angegeben. Jede der Datengruppen des anderen Datenspeichers 182 mit E/A-Aktivität kann in dem E/A-Aktivitäts-Journal 221 aufgeführt werden 240, und wenn eine Datengruppe des anderen Datenspeichers 182 ohne E/A-Aktivität geruht hat und dann darauf zugegriffen wird, wird dies zu dem E/A-Aktivitäts-Journal hinzugefügt. Alternativ können alle sich momentan in dem anderen Datenspeicher 182 befindlichen Datengruppen in dem E/A-Aktivitäts-Journal 221 als Datengruppen aufgeführt werden 240. Als weitere Alternative kann eine Aktivität, darunter E/A-Aktivitäten und andere Nicht-E/A-Aktivitäten, in dem Aktivitäts-Journal aufgeführt und die E/A-Aktivität daraus entnommen werden.
-
Eine Art und Weise des Anzeigens, dass in dem letzten Intervall eine E/A-Aktivität stattfand und diese die einzige oder erste E/A-Aktivität in dem Intervall ist, besteht darin, die Intervalle zum Beispiel anhand von Nummern zu verfolgen und die Intervallnummer der aktuellen E/A-Aktivität, „C” genannt, mit der Intervallnummer der letzten E/A 242 „L” zu vergleichen. Wenn das aktuelle Intervall „C” größer als „L” ist, ist die E/A-Aktivität die einzige oder erste E/A-Aktivität für die Datengruppe. In Spalte 243 wird die E/A-Aktivität für das aktuelle Intervall verfolgt, und alle Datengruppen werden in dieser Spalte zu Beginn eines Intervalls auf ”0” zurückgesetzt, welches dann das aktuelle Intervall wird. Die erste E/A-Aktivität für eine Datengruppe in dem Intervall wird angezeigt, indem für diese Datengruppe in Spalte 243 eine „1” eingetragen und die Spalte 242 auf das aktuelle Intervall festgelegt wird.
-
Alternativ muss eine E/A-Aktivität in mehr als einem Intervall in einer kurzen Zeitdauer, die mehr als ein Intervall überspannt, auftreten, bevor die Informationen in das E/A-Aktivitäts-Journal 221 eingetragen werden. In einem Beispiel wird die E/A-Aktivität eingetragen, wenn das aktuelle Intervall die Bedingung C > L, wie oben erläutert, erfüllt und wenn C ≤ L + 3 ist, was bedeutet, dass die E/A-Aktivität auch in mindestens einem der 3 Intervalle vor dem aktuellen Intervall aufgetreten sein muss. Dies zeigt an, dass die E/A-Aktivität nicht nur ein einzelner Aufruf oder eine einzelne hohe E/A-Aktivität, sondern dauerhaft ist, so dass voraussichtlich mehr E/A-Aktivität auftreten wird.
-
Das Anzeigen von E/A-Aktivität in Schritt 313 aktualisiert das E/A-Aktivitäts-Journal 221 in dem Aktualisierungsprozess 227.
-
Wenn der Intervallzeitgeber 225 das Ende des aktuellen Intervalls anzeigt, setzt der Schritt 305 alle Einträge in Spalte 243 des E/A-Aktivitäts-Journals 221 auf „0” zurück, und das nächste Intervall wird das aktuelle Intervall.
-
Die neueste E/A-Aktivität alleine reicht nicht aus, um eine Datengruppe von dem anderen Datenspeicher 182 in den schnelleren Datenspeicher 180 zu befördern. Das Identifizieren einer Datengruppe geht zum Beispiel zusätzlich mit dem Aktualisieren einer überwachten Folge von Intervallen einer Datengruppe in dem Prozess 227 in Schritt 315 einher.
-
Die identifizierte E/A-Aktivität muss zum Beispiel in jeder der Vielzahl von Zeitintervallen auftreten, welche während einer Folge mehrerer Zeitintervalle auftraten. Die Gesamtzahl der überwachten Folgen von Intervallen wäre zum Beispiel eine Binärzahl an Intervallen wie zum Beispiel 256 Intervalle. Wenn ein Intervall eine einstündige Zeitspanne umfasst, wären 256 Stunden ungefähr eineinhalb Wochen.
-
In einer Ausführungsform umfassen die überwachten Intervallfolgen mindestens eine Gruppe von aufeinanderfolgenden Intervallen.
-
In einer weiteren Ausführungsform überspringen die überwachten Intervallfolgen mindestens eine Zeitspanne. Als ein Beispiel werden Wochenenden übersprungen. Als weiteres Beispiel werden Nächte übersprungen. Fachleute können sich für andere Möglichkeiten entscheiden, die für eine bestimmte Situation geeignet sind.
-
In einer anderen Ausführungsform umfasst das Identifizieren einer zu migrierenden Datengruppe das Identifizieren der E/A-Aktivität unter Zuhilfenahme eines gleitenden Durchschnitts der Intervalle in Schritt 315, der in dem Aktualisierungsprozess 227 ebenfalls in dem E/A-Aktivitäts-Journal aktualisiert wird. Somit wird die E/A-Aktivität für jedes der Intervalle in chronologischer Reihenfolge mit in den Durchschnitt aufgenommen. In einem Beispiel gewichtet der gleitende Durchschnitt jedes Intervall gleich, wobei das älteste Intervall von dem gleitenden Durchschnitt ausgeschlossen und durch die E/A-Aktivität des neuesten Intervalls ersetzt wird. Das macht die Verfolgung von „0” bzw. „1” für jedes Intervall und für jede Datengruppe in dem E/A-Aktivitäts-Journal 221 erforderlich.
-
In noch einer weiteren Ausführungsform wird der gleitende Durchschnitt so gewichtet, dass neuere E/A-Aktivität stärker gewichtet wird.
-
Eine Art, die neuere E/A-Aktivität stärker zu gewichten, ist die exponentielle Gewichtung. Bei einem exponentiellen gleitenden Durchschnitt besteht die Wirkung darin, die ältesten Eintrage auf nahezu Null herabzusetzen und sie dadurch in ihrer Wirkung aus dem Durchschnitt auszuschließen. In einem Beispiel wird das letzte Intervall zum Beispiel mit 1/256 gewichtet und zu einem exponentiell verringerten Wert des unmittelbar vorhergehenden Wertes des gleitenden Durchschnitts addiert, wobei der gleitende Durchschnitt durch Multiplikation mit 255/256 verringert wird. Der 256ste älteste Eintrag wurde somit durch die Multiplikation um das 255-Fache verringert.
-
In einer weiteren Ausführungsform umfasst der gleitende Durchschnitt Folgendes: P = (1 – W)*P_last = W*S, wobei: P = gegenwärtiger Wert des exponentiell gewichteten gleitenden Durchschnitts;
P_last = letzter vorheriger Wert von P;
W = Gewichtung jedes Intervalls; und
S = „1” wenn innerhalb des Intervalls eine E/A-Aktivität auftrat, „0” wenn es keine E/A-Aktivität gab.
-
Somit wird in Spalte 244 des E/A-Aktivitäts-Journals 221 für jede der Datengruppen lediglich der aktuelle Wert „P” des gleitenden Durchschnitts beibehalten, und „P” wird in der nächsten Berechnung des gleitenden Durchschnitts zu „P_last”.
-
In einer Alternative kann der aktuelle Wert „P” des gleitenden. Durchschnitts, wenn, wie oben erläutert, C ≤ L + 3 ist, was bedeutet, dass die E/A-Aktivität auch in mindestens einem der 3 vorhergehenden Intervalle und in dem letzten Intervall aufgetreten sein muss, dadurch ermittelt werden, dass der gleitende Durchschnitt für jedes der 4 Intervalle einzeln neu berechnet wird. In einer anderen Alternative wird die E/A-Aktivität „0” bzw. „1” der neuesten Intervalle gemittelt und mit der Gewichtung der letzten Intervalle multipliziert, wie zum Beispiel n/256, und die dem vorhergehenden gleitenden Durchschnitt zugeordnete Gewichtung lautet (1 – n)/256.
-
Wenn vor der letzten Aktualisierung des E/A-Aktivitäts-Journals 221, das mehrere „0”-Einträge umfasst, mehrere inaktive Intervalle auftraten, kann der Aktualisierungsvorgang vereinfacht werden; anstatt eine vollständige Berechnung der Formel für jedes Intervall zu verwenden, ist die Berechnung W*S gleich „0”, wodurch die Formel für die „0”-Intervalle auf P = (1 – W)*P_last vereinfacht wird, und die Gesamtintervalle werden geschätzt, indem man P = P*(1 – W) verwendet, und die Wiederholungen des Vorgangs können durch Faktorenzerlegung vereinfacht bzw. für Binärzahlen Näherungen durchgeführt werden. Zum Beispiel könnten 128 Wiederholungen von „0” auf 4 Wiederholungen von P = P*X, vereinfacht werden, wobei X = (1 – W)**32 ist.
-
Die Klassifizierung einer Datengruppe für den schnelleren Datenspeicher beruht auf Migrationskriterien 228 bzw. der Stufe von „dauerhafter” E/R-Aktivität in Schritt 317, die EVA-Aktivität über eine Folge von mehreren Zeitintervallen umfassen, und setzt den gleitenden Durchschnitt als Gütefaktor für die Bewertung dahingehend ein, welche Datengruppe bzw. Datengruppen am meisten aus dem schnelleren Datenspeicher 180 Nutzen ziehen würden. In einem Beispiel kann die Klassifizierung für den schnelleren Datenspeicher einen Schwellwert des gleitenden Durchschnitts umfassen. Der Schwellwert kann zum Beispiel auf einen Wert von „0,2” festgelegt werden, wodurch angezeigt wird, dass es über die Gesamtzahl von Intervallen gesehen im Wesentlichen E/A-Aktivität gab, welche die festgelegten Kriterien in Bezug auf Dauerhaftigkeit in mindestens 20% der Intervalle erfüllt. Alternativ würde eine vorbestimmte Anzahl von Datengruppen, die dann den höchsten gleitenden Durchschnitt haben, periodisch für den schnelleren Datenspeicher klassifiziert.
-
Die Steuereinheit 105 identifiziert die Datengruppe bzw. Datengruppen, welche die Migrationskriterien 228 in Schritt 317 erfüllen und klassifiziert die Datengruppe bzw. Datengruppen für die Migration in Schritt 319 ein. Für die Datengruppe bzw. Datengruppen, welche die Kriterien 228 nicht erfüllen, bleibt der gleitende Durchschnitt in Spalte 244 eingetragen, und der Prozess kehrt zu den Schritten 300 und 303 zurück.
-
Für die Datengruppe bzw. Datengruppen, die in Schritt 319 für die Migration klassifiziert werden, migriert 229 die Steuereinheit 105 in Schritt 321 die Datengruppe bzw. Datengruppen von dem anderen Datenspeicher 182 in den schnelleren Datenspeicher 180. Um Platz für die migrierten Daten zu schaffen, ist es wahrscheinlich, dass andere Datengruppen von dem schnelleren Datenspeicher 180 in den anderen Datenspeicher 182 migriert werden, was durch jeden beliebigen geeigneten Algorithmus wie einem LRU-Algorithmus ermittelt werden kann. Die Daten können entweder durch die Steuereinheit 105 über die Übertragungsleitungen 204 und 205 oder alternativ direkt zwischen dem schnelleren Speicher 180 und dem anderen Speicher 182 unter Steuerung durch die Steuereinheit 105 migriert werden.
-
Somit werden Datengruppen, die über eine Folge von mehreren Zeitintervallen eine dauerhafte F/A-Aktivität aufweisen, von dem anderen Datenspeicher 182 in den schnelleren Datenspeicher 180 migriert. Nach dem Migrieren verweilen die Datengruppe bzw. Datengruppen, die migriert wurden, nicht länger in dem anderen Datenspeicher 182 und werden in Schritt 325 aus dem E/A-Aktivitäts-Journal 221 gelöscht, und der Prozess kehrt zu den Schritten 300 und 303 zurück.
-
Die Ausführungen können mit Software, Firmware, Mikrocode, Hardware bzw. jeder beliebigen Kombination daraus erfolgen. Die Ausführung kann die Form von Code bzw. Logik, die in einem Medium wie dem Speicher 133, 143, dem Speicher 134, 144, 180, 182 und/oder den Schaltungen 132, 142 realisiert sind, annehmen, wobei das Medium Hardware-Logik (z. B. einen Chip mit integriertem Schaltkreis, eine programmierbare Gatter-Anordnung [PGA], eine anwendungsspezifische integrierte Schaltung [ASIC] oder eine andere Schaltung, Logik oder Einheit), oder ein durch einen Rechner lesbares Speichermedium wie ein magnetisches Speichermedium (z. B. ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, Halbleiter- oder Festkörperspeicher, Magnetband, eine auswechselbare Rechnerdiskette, Direktzugriffsspeicher [RAM], Nur-Lese-Speicher [ROM], eine starre Magnetplatte und eine optische Platte, eine Kompaktspeicherplatte – Nur-Lese-Speicher [CD-ROM], eine Kompaktspeicherplatte – Lesen/Schreiben [CD-R/W] und DVD) umfassen kann.
-
Fachleute werden verstehen, dass man in Bezug auf die oben erläuterten Verfahren Änderungen vornehmen kann, darunter Änderungen der Reihenfolge der Schritte. Ferner werden Fachleute verstehen, dass andere spezifische Komponentenanordnungen als die hierin dargestellten verwendet werden können.
-
Obgleich die bevorzugten Ausführungsformen der vorliegenden Erfindung ausführlich beschrieben wurden, sollte klar sein, dass ein Fachmann Abänderungen und Anpassungen dieser Ausführungsformen in Betracht ziehen kann, ohne von dem in den folgenden Ansprüchen festgelegten Umfang der vorliegenden Erfindung abzuweichen.