-
Hintergrund
-
Eine Anordnung von Speichergeräten kann zur Speicherung von Daten verwendet werden. In einigen Beispielen kann die Datenspeicherung durch die Anordnung von Speichergeräten in Speichervolumen partitioniert werden. Ein „Speichervolumen“ kann sich auf eine logische Speichereinheit (z.B. ein virtuelles Volumen mit einem virtuellen Adressbereich) beziehen, der Speicherplätze im physischen Speicher (z.B. Speichergerät(e) in einem Speicherarray oder Teilen davon) zur Speicherung einer Datensammlung zugewiesen werden können und die als Einheit verwaltet werden kann.
-
Figurenliste
-
Einige Implementierungen der vorliegenden Offenlegung werden im Hinblick auf die folgenden Zahlen beschrieben.
- ist ein Flussdiagramm eines Workload-Management-Prozesses, der die Berechnung einer operativen Metrik für einen Workload-Typ anhand einiger Beispiele umfasst.
- ist ein Blockdiagramm einer Anordnung, die nach einigen Beispielen Host-Systeme, Speichersysteme und eine Speichersystem-Workload-Management-Engine umfasst.
- und sind Darstellungen von Werten operativer Metriken über die Zeit für verschiedene Arten der Arbeitsbelastung, entsprechend einigen Beispielen.
- ist ein Plot, das die Auslastung der Fingerabdrücke für verschiedene Speichervolumen nach weiteren Beispielen zeigt.
- ist ein Blockdiagramm eines Speichermediums, auf dem maschinenlesbare Anweisungen nach einigen Beispielen gespeichert sind.
- ist ein Blockdiagramm eines Rechensystems nach einigen Beispielen.
-
Überall in den Zeichnungen bezeichnen identische Referenznummern ähnliche, aber nicht unbedingt identische Elemente. Die Abbildungen sind nicht notwendigerweise maßstabsgetreu, und die Größe einiger Teile kann zur besseren Veranschaulichung des gezeigten Beispiels übertrieben sein. Darüber hinaus enthalten die Zeichnungen Beispiele und/oder Implementierungen, die mit der Beschreibung übereinstimmen; die Beschreibung ist jedoch nicht auf die in den Zeichnungen enthaltenen Beispiele und/oder Implementierungen beschränkt.
-
Detaillierte Beschreibung
-
In der vorliegenden Offenlegung soll die Verwendung des Begriffs „a“, „an“ oder „der“ auch die Pluralformen einschließen, es sei denn, aus dem Kontext geht eindeutig etwas anderes hervor. Auch der Begriff „einschließt“, „einschließt“, „umfasst“, „umfasst“, „enthält“, „enthält“, „hat“ oder „hat“, wenn er in dieser Offenbarung verwendet wird, spezifiziert das Vorhandensein der angegebenen Elemente, schließt aber das Vorhandensein oder die Hinzufügung anderer Elemente nicht aus.
-
Ein „Speichersystem“ kann sich auf eine Plattform mit Hardware und maschinenlesbaren Anweisungen zur Implementierung der Datenspeicherung beziehen. Ein Speichersystem kann durch eine Kombination von Verarbeitungsressourcen, Speicherressourcen und Kommunikationsressourcen implementiert werden. Ein Speichersystem kann ein Speichergerät (oder mehrere Speichergeräte) enthalten oder Zugriff darauf haben. Ein „Speichergerät“ kann eine persistente Speicherung umfassen, die unter Verwendung nichtflüchtiger Speichergeräte implementiert wird, wie z.B. plattenbasierte Speichergeräte (z.B. Festplattenlaufwerk(e) (HDD(s)) o.ä.), Festkörperspeichergeräte (z.B. Festkörperlaufwerk(e) (SSD(s)) o.ä.) und so weiter.
-
Eine Verarbeitungsressource kann einen Prozessor, mehrere Prozessoren oder einen Teil (z.B. einen Kern oder mehrere Kerne) eines Prozessors umfassen. Eine Speicherressource kann ein Speicherbauelement oder mehrere Speicherbauelemente umfassen, z. B. einen dynamischen Speicher mit wahlfreiem Zugriff (DRAM), einen statischen Speicher mit wahlfreiem Zugriff (SRAM) usw. Ein Beispiel für eine Speicherressource ist ein Cache-Speicher zur temporären Speicherung von Daten, die in einem persistenten Speicher gehalten werden. Eine Kommunikationsressource kann einen Netzwerk-Schnittstellen-Controller (oder einen Teil davon) oder einen Port umfassen, der zur Kommunikation über ein Netzwerk verwendet wird. In weiteren Beispielen kann ein Speichersystem andere Ressourcen umfassen, einschließlich physischer Ressourcen und/oder virtueller Ressourcen.
-
Die Leistung und/oder Nutzung von Speichersystemen kann durch eine Reihe von Betriebskennzahlen ausgedrückt werden. Die Betriebsmetriken können Nutzungsmetriken umfassen, die die Nutzung des Speichersystems darstellen, und/oder Leistungsmetriken, die die Leistung des Speichersystems darstellen. Beispiele für Betriebskennzahlen sind eine oder mehrere Kombinationen der folgenden Kennzahlen: eine Eingabe/Ausgabe (E/A)-Zählung (die eine Anzahl von E/A-Anforderungen wie Lese- und Schreibanforderungen zählt), ein Verhältnis zwischen Lese- und Schreibanforderungen, ein Cache-Trefferprozentsatz (ein Prozentsatz der Anforderungen, die von einem Cache-Speicher erfüllt werden können), Prozessornutzung, Prozessorsättigung (die eine Menge eines Prozessors angibt, die aufgrund der Nutzung des Prozessors durch Arbeitslasten verbraucht wird), Cachesättigung (die eine Menge eines Cache angibt, die aufgrund der Nutzung des Cache durch Arbeitslasten verbraucht wird), persistente Speichersättigung (die eine Menge an persistentem Speicher angibt, die aufgrund der Nutzung des persistenten Speichers durch Workloads verbraucht wird), Portsättigung (die eine Bandbreite eines Ports angibt, die aufgrund der Nutzung des Ports durch Workloads verbraucht wird), Warteschlangentiefe (eine Menge einer Warteschlange, die Daten speichert), eine Größe einer E/A-Operation, ein Maß für die Auslastung eines Prozessors und so weiter.
-
Operationelle Metriken basieren auf Auslastungsmustern, die in einem Speichersystem (oder mehreren Speichersystemen) ausgeführt werden. Ein Workload-Muster bezieht sich auf eine Sammlung von Aktivitäten im Zusammenhang mit dem Zugriff (Lese- und/oder Schreibzugriff) auf das/die Speichersystem(e).
-
In einigen Beispielen können Auslastungsmuster für die jeweiligen Speichervolumen beobachtet werden, die von dem/den Speichersystem(en) bereitgestellt werden. Wie oben beschrieben, ist ein Speicher-Volume eine logische Speichereinheit (z.B. ein virtuelles Volume mit einem virtuellen Adressbereich), der Speicherplätze im physischen Speicher (z.B. Speichergerät(e) in Speicherarrays oder Teilen davon) zur Speicherung von Daten zugewiesen werden können. Speicher-Volumes können Host-System(en) präsentiert werden, die Daten der Speicher-Volumes lesen und schreiben können. Beispielsweise kann ein Speichervolumen von einem Speichersystem auf ein Host-System zur Verwendung durch das Host-System exportiert werden. Ganz allgemein kann ein Speichervolumen dem Hostsystem zur Verfügung gestellt werden, damit das Hostsystem auf die Daten im Speichervolumen zugreifen kann.
-
Ein „Host-System“ kann sich auf eine Plattform beziehen, die Hardware und maschinenlesbare Anweisungen enthält und die in der Lage ist, Anfragen für den Zugriff (Lesezugriff und/oder Schreibzugriff) auf Daten von Speichervolumen zu stellen. Beispielsweise kann ein Anwendungsprogramm (das ein Beispiel für maschinenlesbare Anweisungen ist) in einem Host-System laufen und Lese- und Schreibanforderungen für Daten von Speicher-Volumes ausgeben.
-
Ein Speichersystem speichert Daten, auf die eine Reihe von Anforderern (z. B. Programme oder andere Entitäten) zugreifen können, die Teil eines Host-Systems oder mehrerer Host-Systeme sein können. Die Anforderer, die auf Daten des Speichersystems zugreifen können, können dynamisch sein, und zwar in Bezug auf die Datenzugriffsmuster (z.B. Muster in Bezug auf die Art der angeforderten Daten, wie häufig Daten angefordert werden usw.) der Anforderer oder in Bezug darauf, welche Anforderer zu einem bestimmten Zeitpunkt auf das Speichersystem zugreifen. Infolgedessen können die Arbeitslasten, die das Speichersystem erfährt, ein heterogenes Arbeitslastmuster aufweisen, einschließlich sich ändernder Datenzugriffsmuster von verschiedenen Kombinationen von Anforderern zu verschiedenen Zeiten.
-
Zusätzlich werden Arbeitslasten von verschiedenen Anforderern, wie sie am Speichersystem beobachtet werden, miteinander verschachtelt. Mit anderen Worten, die Ein-/Ausgabe- (E/A-) Operationen (Lese- und/oder Schreiboperationen) von Workloads von mehreren Anforderern können im Speichersystem in einer verschachtelten Weise verarbeitet werden, wobei einige E/A-Operationen für einen ersten Anforderer vom Speichersystem zwischen E/A-Operationen für einen zweiten Anforderer verarbeitet werden können. Infolgedessen kann es schwierig sein, die Auswirkungen einzelner Arbeitslasten auf die Ressourcen des Speichersystems zu bestimmen. Eine „individuelle Arbeitslast“ (oder einfacher gesagt, eine „Arbeitslast“) kann sich auf eine Sammlung von Aktivitäten für einen entsprechenden Anforderer beziehen (z.B. ein Programm, ein Host-System, eine Anforderung von einem Programm oder Host-System usw.). So können unterschiedliche individuelle Arbeitsbelastungen auf Aktivitäten verschiedener Antragsteller oder sogar auf unterschiedliche Anfragen eines Antragstellers zurückzuführen sein.
-
Wenn eine Ressource (z. B. eine Verarbeitungsressource, eine Speicherressource und/oder eine Kommunikationsressource) eines Speichersystems so stark beansprucht wird, dass die Gesamtleistung der Ressource oder des Speichersystems darunter leidet, kann es für einen menschlichen Analysten oder einen Rechner oder ein Programm schwierig sein, festzustellen, welche Arbeitslasten (z. B. welche Arten von Arbeitslasten) die starke Beanspruchung der Ressource verursachen.
-
In Übereinstimmung mit einigen Implementierungen der vorliegenden Offenlegung werden operationale metrische Daten mehrerer Speichervolumina zu aggregierten operationalen metrischen Datengruppen zusammengefasst, die verschiedenen Arbeitslasttypen von Arbeitslasten für den Zugriff auf Daten eines Speichersystems entsprechen. „Betriebliche Metrik-Daten“ können sich auf gemessene oder abgeleitete Werte einer betrieblichen Metrik oder mehrerer betrieblicher Metriken beziehen. Eine „aggregierte operationale metrische Datengruppe“ bezieht sich auf aggregierte metrische Werte, die auf der Grundlage der aggregierten operationalen metrischen Daten einer entsprechenden Sammlung von Speichervolumen berechnet wurden. Eine erste aggregierte Betriebsmetrik-Datengruppe für eine erste Sammlung von Speichervolumina entspricht einem ersten Arbeitslasttyp der verschiedenen Arbeitslasttypen von Arbeitslasten, eine zweite aggregierte Betriebsmetrik-Datengruppe für eine zweite Sammlung von Speichervolumina entspricht einem zweiten Arbeitslasttyp der verschiedenen Arbeitslasttypen von Arbeitslasten, und so weiter. Beispielsweise kann jede aggregierte metrische Betriebsdatengruppe aggregierte metrische Werte in unterschiedlichen Intervallen enthalten, wie z. B. Zeitintervalle, räumliche Intervalle usw.
-
Nach der Berechnung der operationalen Metrik-Datengruppen wird eine operationale Metrik für jeden jeweiligen Workload-Typ der verschiedenen Workload-Typen berechnet, wobei sich die operationale Metrik auf eine Ressource des Speichersystems bezieht. Die Berechnung der Betriebskennzahl für den jeweiligen Workload-Typ umfasst die Eingabe aggregierter Betriebskennzahl-Daten der entsprechenden aggregierten Betriebskennzahl-Datengruppe der aggregierten Betriebskennzahl-Datengruppen in ein Modell, das auf der Systemebene des Speichersystems trainiert wurde. Ein Modell, das auf Systemebene trainiert wird, bezieht sich auf ein Modell, das unter Verwendung von für das Speichersystem gesammelten Trainingsdaten trainiert wird, ohne die Trainingsdaten nach verschiedenen Arbeitsbelastungstypen zu unterscheiden. Beispielsweise können Werte einer oder mehrerer Betriebskennzahlen für die Ressource(n) des Speichersystems über alle auf dem Speichersystem ausgeführten Arbeitsbelastungen hinweg gemessen oder abgeleitet werden, und diese über alle Arbeitsbelastungen hinweg gesammelten Werte der Betriebskennzahlen können als Teil der Schulungsdaten für das Training des Modells auf Systemebene verwendet werden.
-
Durch die Möglichkeit, ein auf der Systemebene des Speichersystems geschultes Modell zu verwenden, kann eine effizientere Methode zur Bestimmung von Betriebskennzahlen für verschiedene Workload-Typen erreicht werden. Durch die Möglichkeit, ein auf der Systemebene des Speichersystems trainiertes Modell zu verwenden, muss kein spezielles Modell erstellt werden, das auf Trainingsdaten basiert und zwischen verschiedenen Workload-Typen unterscheidet. Die Erstellung eines Modells, das speziell für die Unterscheidung verschiedener Workload-Typen geschult wurde, kann die Komplexität der Modellerstellung erhöhen. Beispielsweise kann die Entwicklung von Schulungsdaten für verschiedene Workload-Typen eine Herausforderung und zeitaufwändig sein. Durch die Eingabe aggregierter Betriebskennzahldaten einer bestimmten aggregierten Betriebskennzahldatengruppe in das auf Systemebene geschulte Modell ist das Modell in der Lage, Betriebskennzahldaten für einen Arbeitslasttyp zu erzeugen, der der bestimmten aggregierten Betriebskennzahldatengruppe entspricht.
-
Die aggregierten operationellen metrischen Daten für die jeweiligen Auslastungstypen haben einen ähnlichen „Maßstab“ wie die gesamte Systemauslastung (da sie auf einem Aggregat aus einer großen Anzahl operationeller metrischer Daten für Speichervolumen basieren). Infolgedessen ist die Leistung des Modells auf Systemebene wahrscheinlich besser, da das Modell auf Systemebene auf operationelle Metrikdaten (die aggregierten operationellen Metrikdaten) angewendet wird, die im Maßstab näher an den operationellen Metrikdaten auf Systemebene liegen, auf denen das Modell trainiert wurde.
-
Ein Administrator oder eine andere Entität (z. B. ein Rechner oder ein Programm) kann unter Umständen auf die für die verschiedenen Workload-Typen berechneten Betriebskennzahlen zugreifen, um schnell festzustellen, ob ein Problem (z. B. eine überlastete Ressource, eine leistungsschwache Ressource usw.) im Speichersystem vorhanden ist, das behoben werden soll. In weiteren Beispielen können die mit Hilfe des Modells berechneten Betriebskennzahlen für die verschiedenen Workload-Typen einem automatisierten System vorgelegt werden, um automatisch Maßnahmen als Reaktion auf ein Problem zu ergreifen, das auf der Grundlage der Betriebskennzahlen identifiziert wird.
-
ist ein Flussdiagramm eines Prozesses 100 nach einigen Implementierungen der vorliegenden Offenlegung. Der Prozess 100 kann von einem Computersystem durchgeführt werden, das einen Computer oder mehrere Computer umfassen kann.
-
Der Prozess 100 umfasst das Training (bei 102) eines Modells (eines maschinellen Lernmodells wie z.B. eines Regressionsmodells oder eines anderen Modelltyps) unter Verwendung von Trainingsdaten einschließlich betrieblicher Metrikdaten von Arbeitsbelastungen, die von mehreren Antragstellern initiiert wurden. Die Arbeitslasten umfassen Datenzugriffe (Lesezugriffe und/oder Schreibzugriffe) in einem Speichersystem. In einigen Beispielen enthalten die zum Training des Modells verwendeten Schulungsdaten betriebliche Metrikdaten auf Systemebene des Speichersystems. Bei den operationellen Metrikdaten auf Systemebene in den Schulungsdaten wird nicht zwischen verschiedenen Workload-Typen unterschieden.
-
Ein „maschinelles Lernmodell“ kann sich auf ein Modell beziehen, das angepasst werden kann, wenn weitere Trainingsdaten zur Verfügung gestellt werden, um das Modell zu trainieren. Die Anpassung des Modells auf der Grundlage von Trainingsdaten wird auch als „Lernen des Modells“ bezeichnet. Ein Regressionsmodell ist ein Modell, das mehrere interessierende Variablen in Beziehung setzt, wobei die Variablen eine Ausgangsvariable(n), wie z.B. eine betriebliche Metrik, die sich auf eine Leistung oder Nutzung einer Ressource des Speichersystems bezieht, und eine Eingangsvariable(n), wie z.B. betriebliche Metrikdaten, die in einem Host-System oder mehreren Host-Systemen gesammelt wurden, umfassen können. Beim Training eines Modells unter Verwendung von Trainingsdaten können verschiedene Techniken des maschinellen Lernens eingesetzt werden.
-
Obwohl im Prozess 100 auf „Speichersystem“ im Singularsinne Bezug genommen wird, wird darauf hingewiesen, dass der Prozess 100 auf einen Kontext anwendbar ist, der mehrere Speichersysteme umfasst.
-
Der Prozess 100 umfasst darüber hinaus die Aggregation (bei 104) operationeller metrischer Daten der mit dem Speichersystem verbundenen Speichervolumina. Bei der Aggregation werden die Betriebsmetrikdaten in aggregierte Betriebsmetrik-Datengruppen aggregiert, die verschiedenen Workload-Typen entsprechen. Das „Aggregieren“ einer Betriebskennzahl kann sich auf die Berechnung eines Wertes beziehen, der auf der Kombination von Werten der Betriebskennzahl basiert. Beispielsweise kann sich das Aggregieren der Betriebskennzahl auf eine oder mehrere der folgenden Kombinationen beziehen: Summieren der Werte der Betriebskennzahl, Mitteln der Werte der Betriebskennzahl, Berechnen eines Medians der Werte der Betriebskennzahl, Berechnen eines Maximums oder Minimums der Werte der Betriebskennzahl oder Anwenden eines anderen mathematischen Berechnungstyps auf die Werte der Betriebskennzahl.
-
Das Aggregieren einer Betriebskennzahl zu einer Datengruppe mit aggregierter Betriebskennzahl bezieht sich auf das Aggregieren von Werten der Betriebskennzahl, die mit einer entsprechenden Sammlung von Speichervolumen verbunden sind. Eine „Sammlung von Speichervolumen“ kann sich auf eine Sammlung beziehen, die ein einzelnes Speichervolumen oder mehrere Speichervolumen umfasst. Unterschiedliche aggregierte operationale metrische Datengruppen sind mit verschiedenen Sammlungen von Speichervolumen verbunden.
-
In einigen Beispielen können die aggregierten operationellen metrischen Datengruppen eine erste Gruppe von aggregierten operationellen metrischen Daten für eine erste Sammlung von Speichervolumina, auf die ein erster Anforderer zugreift, eine zweite Gruppe von aggregierten operationellen metrischen Daten für eine zweite Sammlung von Speichervolumina, auf die ein zweiter Anforderer zugreift, usw. enthalten.
-
In weiteren Beispielen umfassen die aggregierten operationellen metrischen Datengruppen eine erste Gruppe von aggregierten operationellen metrischen Daten für eine erste Sammlung von Speichervolumina, die komprimierte Daten speichern, und eine zweite Gruppe von aggregierten operationellen metrischen Daten für eine zweite Sammlung von Speichervolumina, die unkomprimierte Daten speichern.
-
In noch weiteren Beispielen umfassen die aggregierten operationellen metrischen Datengruppen eine erste Gruppe aggregierter operationeller metrischer Daten für eine erste Sammlung von Speichervolumina, die auf der Grundlage der den Speichervolumina über eine Vielzahl von Punkten (z.B. Zeitpunkte und/oder räumliche Punkte) zugewiesenen Workload-Fingerabdrücke gruppiert sind, eine zweite Gruppe aggregierter operationeller metrischer Daten für eine zweite Sammlung von Speichervolumina, die auf der Grundlage der den Speichervolumina über die Vielzahl von Punkten zugewiesenen Workload-Fingerabdrücke gruppiert sind, und so weiter. Workload-Fingerprints werden weiter unten diskutiert.
-
Im Allgemeinen können die verschiedenen Sammlungen von Speichervolumen unterschiedliche Arbeitslasttypen darstellen. Jede Sammlung von Speicherdatenträgern „repräsentiert“ einen Arbeitslasttyp in dem Sinne, dass die Arbeitslast(en), die in Bezug auf die Sammlung von Speicherdatenträgern durchgeführt wird (werden), ein gemeinsames Merkmal aufweist (aufweisen). Nach den vorstehenden Beispielen kann ein gemeinsames Merkmal ein Antragsteller sein, der Anfragen zur Erzeugung der Arbeitslast gestellt hat, oder ob die von der Sammlung von Speicherdatenträgern gespeicherten Daten komprimiert sind oder nicht, oder ein gemeinsamer Arbeitslast-Fingerabdruck.
-
Beispielsweise kann die erste Sammlung von Speicherdatenträgern, auf die der erste Antragsteller zugreift, einen ersten Workload-Typ darstellen, und die zweite Sammlung von Speicherdatenträgern, auf die der zweite Antragsteller zugreift, einen zweiten Workload-Typ darstellen. Als weiteres Beispiel kann die erste Sammlung von Speicher-Volumes, die komprimierte Daten speichert, einen ersten Workload-Typ darstellen, und die zweite Sammlung von Speicher-Volumes, die unkomprimierte Daten speichert, einen zweiten Workload-Typ darstellen. Als weiteres Beispiel kann die erste Sammlung von Speicher-Volumes, die auf der Grundlage der Workload-Fingerabdrücke gruppiert sind, einen ersten Workload-Typ repräsentieren, und die zweite Sammlung von Speicher-Volumes, die auf der Grundlage der Workload-Fingerabdrücke gruppiert sind, einen zweiten Workload-Typ repräsentieren.
-
Der Prozess 100 umfasst ferner die Eingabe (bei 106) der aggregierten operationellen metrischen Datengruppen in das Modell.
-
Als Reaktion auf die eingegebenen aggregierten operationalen Metrik-Datengruppen erzeugt das Modell (bei 108) eine operationale Metrik für jeden Workload-Typ der verschiedenen Workload-Typen, wobei sich die operationale Metrik auf eine oder mehrere Ressourcen des Speichersystems bezieht. Als Reaktion auf aggregierte Betriebsmetrikwerte einer ersten aggregierten Betriebsmetrik-Datengruppe, die in das Modell eingegeben wurde, erzeugt das Modell beispielsweise eine Betriebsmetrik für einen ersten Arbeitslasttyp. Die Betriebsmetrik kann eine beliebige oder eine Kombination der weiter oben aufgeführten Betriebsmetriken als Beispiele enthalten.
-
Der Prozess 100 umfasst ferner die Verwaltung (bei 110) der Ressourcennutzung der Ressource(n) des Speichersystems für einen Arbeitslasttyp auf der Grundlage der berechneten betrieblichen Metrik für die verschiedenen Arbeitslasttypen .
-
Die Verwaltung der Ressourcennutzung einer bestimmten Ressource für einen bestimmten Workload-Typ kann eine beliebige oder eine Kombination der folgenden Punkte umfassen: Drosselung der Nutzung der gegebenen Ressource durch die Arbeitslasten des gegebenen Arbeitslasttyps (z. B. durch Reduzierung einer Rate, mit der Datenanforderungen an ein Speichersystem für Daten einer Sammlung von Speichervolumes, die dem gegebenen Arbeitslasttyp entsprechen, übermittelt werden); Konfiguration einer Dienstgüte-Einstellung (QoS) für die Arbeitslasten des gegebenen Arbeitslasttyps, wobei die QoS-Einstellung eine Priorität der Arbeitslasten des gegebenen Arbeitslasttyps bei der Nutzung der gegebenen Ressource beeinflussen kann; Ändern einer Zuweisung der gegebenen Ressource zu den Arbeitslasten des gegebenen Arbeitslasttyps (z. B. durch Ändern einer Menge der Ressource, die zur Handhabung von Datenzugriffen auf die Daten durch Arbeitslasten des gegebenen Arbeitslasttyps zugewiesen ist); Migrieren von Daten der Arbeitslasten des gegebenen Arbeitslasttyps von einem ersten Satz von Speichergeräten zu einem anderen zweiten Satz von Speichergeräten; und so weiter.
-
ist ein Blockdiagramm einer Beispielanordnung, die eine Reihe von Host-Systemen 202-1 bis 202-N umfasst, wobei N ≥ 1. Obwohl in mehrere Host-Systeme dargestellt sind, wird darauf hingewiesen, dass in anderen Beispielen möglicherweise nur ein Host-System vorhanden ist.
-
Das Host-System 202-1 umfasst die Anwendungsprogramme 204-1 und die Speichervolumes 206-1, die dem Host-System 202-1 präsentiert werden. Das Hostsystem 202-N enthält ein Anwendungsprogramm 204-N und Speichervolumes 206-N, die dem Hostsystem 202-N präsentiert werden. Obwohl die Beispiele gemäß Anwendungsprogramme als Beispiele für Anforderer zeigen, die auf Speicherdatenträger zugreifen können, wird darauf hingewiesen, dass in anderen Beispielen verschiedene Arten von Anforderern auf Speicherdatenträger zugreifen können.
-
Wie oben diskutiert, sind die Speichervolumes 206-1 und 206-N logische Einheiten, die von den Anforderern in den Host-Systemen 202-1 bis 202-N genutzt werden können. Die zugrundeliegenden Daten, auf die über die Speichervolumes zugegriffen werden kann, werden von den Speichergeräten 208 eines Speichersystems 210 (oder mehrerer Speichersysteme 210) gespeichert. Die Speichergeräte 208 können mit plattenbasierten Speichergeräten, Festkörperspeichergeräten und/oder anderen Arten von persistenten Speichergeräten implementiert werden. Die Speichergeräte 208 können als ein Array (oder mehrere Arrays) von Speichergeräten angeordnet werden.
-
Obwohl die Speichergeräte 208 als Teil des Speichersystems 210 zeigt, können die Speichergeräte 208 in anderen Beispielen außerhalb des Speichersystems 210 liegen, aber von diesem aus zugänglich sein.
-
Das Speichersystem 210 umfasst Prozessoren 212 und Cache-Speicher 214. Die Prozessoren 212 können ein Datenzugriffsprogramm (in Form von maschinenlesbaren Befehlen) ausführen, das den Zugriff auf die in den Speichergeräten 208 gespeicherten Daten als Antwort auf die von einem Anforderer erhaltenen Anfragen verwaltet, die auf dem Zugriff auf ein Speichervolumen (oder mehrere Speichervolumen) durch den Anforderer basieren. Ein Cache-Speicher 214 kann zur Zwischenspeicherung von Daten verwendet werden, z.B. zum Schreiben von Daten, die auf die Speichergeräte 208 geschrieben werden sollen.
-
Das Speichersystem 210 umfasst außerdem verschiedene Ports 216. Ein „Port“ kann sich auf eine Kommunikationsschnittstelle beziehen, über die ein Hostsystem 202-i (i = 1 bis N) über ein Netzwerk 218 auf das Speichersystem 210 zugreifen kann. Beispiele für das Netzwerk 218 können eine beliebige oder eine Kombination der folgenden Elemente sein: ein Speicherbereichsnetzwerk (SAN), ein lokales Netzwerk (LAN), ein öffentliches Netzwerk wie das Internet und so weiter.
-
Jeder Port 216 verfügt über eine entsprechende Bandbreite, die für die Kommunikation von Daten als Antwort auf Zugriffsanfragen von Anfragern verwendet werden kann. Ein Port kann sich auf einen physischen Port oder einen logischen Port beziehen.
-
Obwohl nicht dargestellt, können die Host-Systeme 202-1 und 202-N jeweils auch Ports für die Kommunikation über das Netzwerk 218 enthalten.
-
Die Ports 216, die Prozessoren 210 und die Cache-Speicher 212 sind Beispiele für Ressourcen des Speichersystems 210, die zur Ausführung von Aufgaben im Zusammenhang mit dem Zugriff auf Speichervolumen (in Workloads) durch die jeweiligen Anforderer verwendet werden können.
-
Die Ports 216 sind Beispiele für Kommunikationsressourcen. Die Prozessoren 210 sind Beispiele für Verarbeitungsressourcen. Die Cache-Speicher 212 sind Beispiele für Speicherressourcen.
-
zeigt auch eine Speichersystem-Workload-Management-Engine 220, die einen Speichersystem-Workload-Management-Prozess wie den in gezeigten Prozess 100 ausführen kann.
-
Wie hier verwendet, kann sich eine „Maschine“ oder eine Hardware-Verarbeitungsschaltung auf eine Hardware-Verarbeitungsschaltung beziehen, die einen Mikroprozessor, einen Kern eines Mehrkern-Mikroprozessors, einen Mikrocontroller, eine programmierbare integrierte Schaltung, ein programmierbares Gate-Array, einen digitalen Signalprozessor oder eine andere Hardware-Verarbeitungsschaltung in beliebiger oder bestimmter Kombination enthalten kann. Alternativ kann sich ein „Motor“ auf eine Kombination aus einer Hardware-Verarbeitungsschaltung und maschinenlesbaren Anweisungen (Software und/oder Firmware) beziehen, die auf der Hardware-Verarbeitungsschaltung ausführbar sind.
-
Die Speichersystem-Workload-Management-Engine 220 kann Teil des Speichersystems 210 sein oder alternativ vom Speichersystem 210 getrennt und an das Netzwerk 218 gekoppelt werden. Ein Monitoring-Agent 222 (implementiert mit Hardware oder einer Kombination aus Hardware und maschinenlesbaren Befehlen) kann im Speichersystem 210 ausgeführt werden, um verschiedene Betriebskennzahlen des Speichersystems 210 zu erfassen.
-
Speicher-Volumes können durch entsprechende eindeutige Identifikatoren identifiziert werden, und E/A-Anforderungen, die auf ein Speicher-Volume gerichtet sind, werden durch Tracking-Einheiten verfolgt, die in den Host-Systemen 202-1 bis 202-N ausgeführt werden können. Die verfolgten E/A-Anforderungen und die damit verbundenen Merkmale der E/A-Anforderungen (z. B. eine E/A-Zahl einer Anzahl von E/A-Anforderungen, ein Verhältnis von Lese- zu Schreibanforderungen, eine E/A-Größe, eine Rate von E/A-Anforderungen usw.) können mit den jeweiligen eindeutigen Kennungen der Speicher-Volumes, auf die die E/A-Anforderungen abzielen, verknüpft werden. Infolgedessen kann der Monitoring-Agent 222 operative Metriken für jedes einzelne Speicher-Volume bestimmen, die anhand der eindeutigen Kennungen der Speicher-Volumes verfolgt werden.
-
Der Monitoring-Agent 222 kann die gesammelten Werte der Betriebskennzahlen 224 an die Workload Management Engine 220 des Speichersystems übertragen.
-
Die Speichersystem-Workload-Management-Engine 220 enthält eine Aggregationslogik für Betriebskennzahlen 230, die Werte einer Betriebskennzahl (die sich auf eine einzelne Betriebskennzahl oder mehrere Betriebskennzahlen beziehen kann) mehrerer Speichervolumes zu aggregierten Betriebskennzahl-Datengruppen aggregiert, die verschiedenen Workload-Typen von Workloads für den Zugriff auf Daten des Speichersystems 210 entsprechen. Die aggregierten Betriebsmetrik-Daten, die Teil der aggregierten Betriebsmetrik-Datengruppen sind, werden als Input für ein Modell 232 bereitgestellt, das auf einer ersten Skala (z. B. einer Systemebene des Speichersystems 210) trainiert wird, die sich von einer Skala für einen Workload-Typ unterscheidet. Ein Modell, das auf der Arbeitsbelastungstyp-Skala geschult wird, basiert auf Schulungsdaten, die zwischen Arbeitsbelastungstypen unterscheiden. Ein Modell, das auf der ersten Skala trainiert wird, berücksichtigt keine Trainingsdaten, die auf unterschiedlichen Arbeitsbelastungstypen basieren.
-
Auf der Grundlage der eingegebenen aggregierten operationellen Metrik-Datengruppen berechnet das Modell 232 eine operationelle Metrik für jeden Arbeitsbelastungstyp der verschiedenen Arbeitsbelastungstypen. Die berechnete betriebliche Metrik bezieht sich auf eine Ressource (die sich auf eine einzelne Ressource oder mehrere Ressourcen beziehen kann) des Speichersystems 210. Die Ressource kann beispielsweise eine Verarbeitungsressource, eine Speicherressource und/oder eine Kommunikationsressource als Beispiele enthalten. Die berechnete operationelle Metrik für jeden Arbeitslasttyp der verschiedenen Arbeitslasttypen wird einer Ressourcenverwaltungslogik 234 zur Verfügung gestellt, die die Ressourcenverwaltung einer Ressource des Speichersystems 210 durchführen kann. Die verwaltete Ressource kann eine Verarbeitungsressource, eine Speicherressource und/oder eine Kommunikationsressource als Beispiele enthalten.
-
Jede der betrieblichen metrischen Aggregationslogik 230 oder der Ressourcenverwaltungslogik 234 kann unter Verwendung eines Teils des Hardware-Verarbeitungsschaltkreises der Speichersystem-Workload-Management-Engine 220 implementiert werden oder alternativ dazu maschinenlesbare Anweisungen enthalten, die vom Hardware-Verarbeitungsschaltkreis der Speichersystem-Workload-Management-Engine 220 ausgeführt werden können.
-
In anderen Beispielen können die operative metrische Aggregationslogik 230 und/oder die Ressourcenverwaltungslogik 234 von der Speichersystem-Workload-Management-Engine 220 getrennt werden.
-
Das Modell 232 kann in einem persistenten Speicher (nicht abgebildet) gespeichert werden, der Teil der Workload-Management-Engine 220 des Speichersystems oder Teil des Speichersystems 210 sein kann. Das Modell 232 kann von der Speichersystem-Workload-Management-Engine 220 anhand von Trainingsdaten trainiert werden, oder alternativ kann ein Modell 232 von einem separaten System trainiert werden und nach dem Training wird das Modell 232 der Speichersystem-Workload-Management-Engine 220 zur Verfügung gestellt.
-
Die vom Modell 232 erzeugten berechneten Betriebskennzahlen können zusätzlich oder alternativ in Berichten 236 (oder anderen Informationen) bereitgestellt werden, die über das Netzwerk 218 an eine Benutzerkonsole 238 übertragen werden. Eine Benutzerkonsole kann sich auf ein elektronisches Gerät beziehen, z.B. einen Desktop-Computer, ein Notebook, einen Tablet-Computer, ein Smartphone usw. Die Benutzerkonsole 238 kann eine Benutzerschnittstelle (UI) 240 anzeigen, die einem Benutzer der Benutzerkonsole 238 Informationen eines Berichts von der Workload-Management-Engine 220 des Speichersystems präsentieren kann. Obwohl ein Beispiel zeigt, in dem die Speichersystem-Workload-Management-Engine 220 Berichte 236 an eine Benutzerkonsole 238 sendet, kann die Speichersystem-Workload-Management-Engine 220 in anderen Beispielen Berichte 236 an mehrere Benutzerkonsolen senden.
-
ist ein Plot 300, der die Prozessorauslastung (vertikale Achse des Plots) mit der Zeit (horizontale Achse des Plots 300) korreliert. Die in gezeigte Prozessorauslastung ist ein Beispiel für eine Betriebsmetrik, die anhand des Modells 232 von berechnet wird. Das Diagramm 300 kann in der Ul 240 der Benutzerkonsole 238 in angezeigt oder der Ressourcenverwaltungslogik 234 in zur Verfügung gestellt werden.
-
Im Beispiel von wird angenommen, dass eine erste Gruppe von aggregierten Betriebskennzahldaten durch die Aggregation von Betriebskennzahldaten für eine erste Sammlung von Speichervolumina erstellt wird, die komprimierte Daten speichert, und eine zweite Gruppe von aggregierten Betriebskennzahldaten durch die Aggregation von Betriebskennzahldaten für eine zweite Sammlung von Speichervolumina erstellt wird, die unkomprimierte Daten speichert. In der stellt ein erster Diagrammteil 302 die Prozessorauslastung für die erste Sammlung von Speichervolumes dar, die komprimierte Daten speichert, und ein zweiter Diagrammteil 304 die Prozessorauslastung für die zweite Sammlung von Speichervolumes, die unkomprimierte Daten speichert.
-
Wie in der Beispielgrafik 300 zu beobachten ist, sind die Spitzen 306 (des ersten Diagrammteils 302) in der Prozessorauslastung auf den Datenzugriff der ersten Sammlung von Speichervolumen zurückzuführen, die komprimierte Daten speichern. Beachten Sie, dass die Spitzen 308 (des zweiten Diagrammteils 304) bei der Prozessorauslastung für die zweite Sammlung von Speichervolumen, die unkomprimierte Daten speichern, im Allgemeinen der Form der Spitzen 306 des ersten Diagrammteils 302 folgen, so dass leicht festgestellt werden kann, dass die Spitzen 308 des zweiten Diagrammteils 304 auf die Spitzen 306 des ersten Diagrammteils 302 zurückzuführen sind.
-
So können Maßnahmen ergriffen werden, um ein Problem im Zusammenhang mit Speicher-Volumes, die komprimierte Daten speichern, zu lösen, z. B. durch Drosselung der Nutzung von Prozessoren 210 auf Speicher-Volumes, die komprimierte Daten speichern, oder durch Erhöhung der QoS-Einstellung für Speicher-Volumes, die komprimierte Daten speichern.
-
ist ein Diagramm 400, das ein anderes Beispiel zeigt, das die Prozessorauslastung mit der Zeit in Beziehung setzt. Das Diagramm 400 kann von der Speichersystem-Workload-Management-Engine 220 aus erzeugt und in der Ul 240 der Benutzerkonsole 238 aus angezeigt oder der Ressourcen-Management-Logik 234 aus zur Verfügung gestellt werden.
-
Die verschiedenen Diagrammteile 402, 404 und 406 des Diagramms 400 stellen Prozessorauslastungen von jeweils unterschiedlichen Sammlungen von Speichervolumen dar, auf die von verschiedenen Anforderern zugegriffen wird. Zum Beispiel stellt ein erster Diagrammteil 402 die Prozessorauslastung durch einen ersten Anforderer einer ersten Sammlung von Speichervolumen dar, ein zweiter Diagrammteil 404 die Prozessorauslastung durch einen zweiten Anforderer einer zweiten Sammlung von Speichervolumen und ein dritter Diagrammteil 406 die Prozessorauslastung durch einen dritten Anforderer einer dritten Sammlung von Speichervolumen.
-
Wie man anhand eines Vergleichs des ersten Diagrammteils 402 und des zweiten Diagrammteils 404 erkennen kann, ist die Prozessorauslastung aufgrund der Arbeitsbelastung durch den ersten Antragsteller relativ stabil, wobei kleine Abweichungen durch die Kurve 407 dargestellt werden. Der zweite Diagrammteil 402 enthält jedoch die Teile 408 und 410, die auf einen großen Anstieg der Prozessorauslastung aufgrund der Arbeitsbelastungen durch den zweiten Antragsteller hinweisen. So kann leicht festgestellt werden, dass die Arbeitslasten des zweiten Anforderers einen relativ starken Anstieg der Prozessorauslastung im Speichersystem bewirken.
-
Beispiele für Maßnahmen, die ergriffen werden können, sind die Drosselung der Nutzung von Prozessor 210 für Speichervolumen, auf die der zweite Anforderer zugreift, oder die Erhöhung einer QoS-Einstellung für Speichervolumen, auf die der zweite Anforderer zugreift.
-
Ein Plot ähnlich dem Plot 300 oder dem Plot 400 kann bereitgestellt werden, um die Prozessorauslastung mit der Zeit für mehrere Sammlungen von Speichervolumina zu korrelieren, die unter Verwendung von Workload-Fingerabdrücken geclustert wurden.
-
Ein „Workload-Fingerprint“ kann sich auf eine beliebige Darstellung eines Workload-Typs beziehen und wird auf der Grundlage einer Stichprobe operativer Metriken, die an einem bestimmten Punkt (z. B. Zeitpunkt, räumlicher Punkt usw.) in Verbindung mit dem Zugriff auf Daten eines Speichervolumens gesammelt wurden, zugewiesen. Basierend auf den Sammlungen von Workload-Fingerabdrücken, die den jeweiligen Speicherdatenträgern zugeordnet sind, gruppiert die Workload Management Engine 220 des Speichersystems die Speicherdatenträger in Cluster von Speicherdatenträgern. Beispielsweise werden ein erstes und ein zweites Speichervolumen auf der Grundlage einer ersten Sammlung von Workload-Fingerabdrücken, die dem ersten Speichervolumen zugeordnet sind, und einer zweiten Sammlung von Workload-Fingerabdrücken, die dem zweiten Speichervolumen zugeordnet sind, in einem bestimmten Cluster gruppiert. Bei der Gruppierung von Speichervolumes in Cluster können verschiedene Clustering-Techniken verwendet werden.
-
zeigt ein Diagramm 500, das von der Workload-Management-Engine 220 des Speichersystems erzeugt werden kann. In der Beispielgrafik 500 repräsentiert die horizontale Achse die Zeit und die vertikale Achse verschiedene Speichervolumina (Speichervolumina A, B, C und D in ). Jedem Speichervolumen werden entsprechende Workload-Fingerprints auf der Grundlage einer Sammlung von Betriebskennzahlen zugewiesen, die zu entsprechenden Zeitpunkten entlang der Zeitachse gesammelt wurden.
-
Gemäss bildet jede Zeile von Workload-Fingerprints einen Vektor von Workload-Fingerprints zu mehreren Zeitpunkten t1 bis t20. Jeder Workload-Fingerprint hat die Form eines numerischen Wertes, der in einer Zelle (einem rechteckigen Block) des Plots 500 enthalten ist. Zum Beispiel kann es eine bestimmte Anzahl (z.B. 8 oder eine andere Anzahl) von Workload-Fingerabdrücken geben, und ein Workload-Fingerabdruck kann aus der Anzahl der Workload-Fingerabdrücke ausgewählt werden, um sie zu einem bestimmten Zeitpunkt einem Speichervolumen zuzuordnen. Der ausgewählte Workload-Fingerprint basiert auf den Werten einer Sammlung von Betriebskennzahlen zum gegebenen Zeitpunkt.
-
Da sich die operativen Metriken im Laufe der Zeit in ihren Werten ändern, kann sich die einem Speichervolumen zugewiesene Arbeitslast Fingerabdrücke entsprechend ändern. Beispielsweise enthält der Vektor der Workload-Fingerabdrücke für Speichervolumen A eine Folge von „1“- und „0“-Werten. In ähnlicher Weise enthält der Vektor der Workload-Fingerabdrücke für Speichervolumen B eine Folge von „1“- und „0“-Werten. Für jedes der Speichervolumen C und D enthält der jeweilige Vektor der Fingerabdrücke der Arbeitsbelastung eine Sequenz von „7“-, „6“- und „5“-Werten.
-
In einigen Beispielen können die Fingerabdrücke des Arbeitsaufkommens mit Hilfe eines unbeaufsichtigten maschinellen Lernverfahrens erstellt werden, das über betriebliche Metriken durchgeführt wird, die aus Speichersystemen gesammelt werden, die an verschiedenen Standorten eingesetzt werden. Alternativ können die Workload-Fingerprints vorab zugewiesen werden, z. B. von einem Benutzer oder einer anderen Einheit.
-
Das Gesamtzeitintervall, über das der Vektor der Arbeitslast-Fingerabdrücke für jedes Speichervolumen gesammelt wird, kann von einer Entität, wie z. B. einem Benutzer, einem Rechner oder einem Programm, festgelegt werden. Das Gesamtzeitintervall kann z. B. 24 Stunden oder ein anderes Gesamtzeitintervall betragen.
-
Speichervolumina können als einander ähnlich betrachtet werden, wenn die ihnen zugewiesenen Vektoren der Arbeitsbelastung Fingerabdrücke eine gewisse spezifizierte Ähnlichkeit zueinander aufweisen. In einigen Beispielen kann die Workload-Management-Engine 220 des Speichersystems ein unbeaufsichtigtes maschinelles Lernverfahren verwenden, um die Speicher-Volumes auf der Grundlage ihrer jeweiligen Vektoren von Workload-Fingerabdrücken zu clustern. Beispielsweise kann eine auf Dichte basierende räumliche Clustering-Technik von Anwendungen mit Rauschen (DBSCAN) für das Clustering der Speicher-Volumes auf der Grundlage der jeweiligen Vektoren von Workload-Fingerabdrücken verwendet werden. Ausgehend von einer Menge von Punkten in einem Raum (der in diesem Fall Vektoren von Workload-Fingerabdrücken umfasst), gruppiert die DBSCAN-Technik die Workload-Fingerabdruck-Vektoren, die eng aneinander gepackt sind.
-
In anderen Beispielen können andere Clustering-Techniken eingesetzt werden, wie z.B. eine Affinitätsausbreitungs-Clustering-Technik oder eine andere Clustering-Technik.
-
Im Beispiel von würde die Ähnlichkeit der Workload-Fingerabdruck-Vektoren für die Speichervolumes A und B dazu führen, dass die Clustering-Technik die Speichervolumes A und B in einem ersten Cluster gruppiert, und die Ähnlichkeit der Workload-Fingerabdruck-Vektoren für die Speichervolumes C und D würde dazu führen, dass die Clustering-Technik die Speichervolumes C und D in einem zweiten Cluster gruppiert.
-
Jede Gruppe von Speicherdatenträgern, die mit der Workload-Fingerprint-Technik identifiziert wurde, kann als eine Sammlung von Speicherdatenträgern betrachtet werden, die dem jeweiligen Workload-Typ entspricht.
-
ist ein Blockdiagramm eines nicht-transitorischen maschinenlesbaren oder computerlesbaren Speichermediums 600, das maschinenlesbare Befehle speichert, die bei ihrer Ausführung ein Computersystem veranlassen, verschiedene Aufgaben auszuführen.
-
Die maschinenlesbaren Anweisungen umfassen die Aggregationsanweisungen 602 für metrische Betriebsdaten, um metrische Betriebsdaten mehrerer Speichervolumes zu aggregierten metrischen Betriebsdatengruppen zusammenzufassen, die verschiedenen Workload-Typen von Workloads für den Zugriff auf Daten eines Speichersystems entsprechen.
-
Die maschinenlesbaren Anweisungen enthalten ferner die Anweisung 604 zur Berechnung der Betriebsmetrik, um eine Betriebsmetrik für einen jeweiligen Auslastungstyp der verschiedenen Auslastungstypen zu berechnen, wobei sich die Betriebsmetrik auf eine Ressource des Speichersystems bezieht. Die Berechnung der Betriebsmetrik für den jeweiligen Workload-Typ umfasst die Eingabe aggregierter Betriebsmetrik-Daten einer jeweiligen aggregierten Betriebsmetrik-Datengruppe in ein Modell 606, das auf der Systemebene des Speichersystems trainiert wurde. Das Modell wird auf einer Speichersystem-Skala trainiert, die sich von einer Workload-Typ-Skala unterscheidet, wobei das auf der Speichersystem-Skala trainierte Modell Trainingsdaten verwendet, die nicht zwischen verschiedenen Workload-Typen unterscheiden.
-
In einigen Beispielen kann das Modell 606 ein Regressionsmodell oder eine andere Art von Modell enthalten.
-
Die berechnete operative Metrik bezieht sich auf eine beliebige oder eine Kombination aus einer Verarbeitungsressource des Speichersystems, einer Speicherressource des Speichersystems oder einer Kommunikationsressource des Speichersystems.
-
In einigen Beispielen können die maschinenlesbaren Anweisungen in einer Benutzeroberfläche (wie z. B. die Ul 240 in ) eine Darstellung der berechneten Betriebskennzahlen (z. B. in Form der Darstellung 300 oder 400 in oder ) einschließlich der berechneten Betriebskennzahl für den ersten Arbeitsbelastungstyp darstellen.
-
ist ein Blockdiagramm eines Computersystems 700, das als Computer oder als eine Sammlung von Computern implementiert werden kann. Das Computersystem 700 umfasst einen Hardware-Prozessor 702 (oder mehrere Hardware-Prozessoren). Ein Hardware-Prozessor kann einen Mikroprozessor, einen Kern eines Mehrkernmikroprozessors, einen Mikrocontroller, eine programmierbare integrierte Schaltung, ein programmierbares Gate-Array, einen digitalen Signalprozessor oder eine andere Hardware-Verarbeitungsschaltung enthalten.
-
Das Computersystem 700 enthält außerdem ein Speichermedium 704, das maschinenlesbare Anweisungen speichert, die auf dem Hardware-Prozessor 702 ausgeführt werden können, um verschiedene Aufgaben auszuführen. Maschinenlesbare Anweisungen, die auf einem Hardware-Prozessor ausführbar sind, können sich auf die Anweisungen beziehen, die auf einem einzelnen Hardware-Prozessor ausführbar sind, oder auf die Anweisungen, die auf mehreren Hardware-Prozessoren ausführbar sind.
-
Zu den maschinenlesbaren Anweisungen gehören die Aggregationsanweisungen 706 zur Aggregation operationeller metrischer Daten mehrerer Speichervolumes zu aggregierten operationellen metrischen Datengruppen, die verschiedenen Workload-Typen von Workloads für den Zugriff auf Daten eines Speichersystems entsprechen.
-
Die maschinenlesbaren Anweisungen enthalten ferner die aggregierte Eingabeinstruktion 708 für das operationelle metrische Modell, um die aggregierten operationellen metrischen Datengruppen in ein Modell einzugeben, das auf einer ersten Skala trainiert wurde, die sich von einer Skala vom Typ Arbeitsbelastungstyp unterscheidet.
-
Die maschinenlesbaren Anweisungen enthalten ferner Anweisungen zur Berechnung der Betriebsmetrik 710, um auf der Grundlage der Eingabe der aggregierten Gruppen von Betriebsmetriedaten in das Modell eine Betriebsmetrik für jeden Workload-Typ der verschiedenen Workload-Typen zu berechnen, wobei sich die Betriebsmetrik auf eine Ressource des Speichersystems bezieht.
-
Ein Speichermedium (z.B, 600 in 6 oder 704 in 7) kann eine beliebige oder eine Kombination der folgenden Elemente enthalten: eine Halbleiterspeichervorrichtung, wie z.B. einen dynamischen oder statischen Speicher mit wahlfreiem Zugriff (DRAM oder SRAM), einen löschbaren und programmierbaren Festwertspeicher (EPROM), einen elektrisch löschbaren und programmierbaren Festwertspeicher (EEPROM) und einen Flash-Speicher; eine Magnetplatte, wie z.B. eine Fest-, Floppy- und Wechselplatte; ein anderes Magnetmedium einschließlich Band; ein optisches Medium, wie z.B. eine Compact Disc (CD) oder eine digitale Videoplatte (DVD); oder eine andere Art von Speichervorrichtung. Beachten Sie, dass die oben erörterten Anweisungen auf einem computerlesbaren oder maschinenlesbaren Speichermedium oder alternativ auf mehreren computerlesbaren oder maschinenlesbaren Speichermedien bereitgestellt werden können, die in einem großen System mit möglicherweise mehreren Knoten verteilt sind. Ein solches computerlesbares oder maschinenlesbares Speichermedium bzw. solche Speichermedien wird (werden) als Teil eines Artikels (oder Herstellungsartikels) betrachtet. Ein Artikel oder Fertigungsgegenstand kann sich auf jede hergestellte Einzelkomponente oder mehrere Komponenten beziehen. Das Speichermedium bzw. die Speichermedien können sich entweder in der Maschine befinden, auf der die maschinenlesbaren Anweisungen ausgeführt werden, oder an einem entfernten Standort, von dem maschinenlesbare Anweisungen zur Ausführung über ein Netzwerk heruntergeladen werden können.
-
In der vorstehenden Beschreibung werden zahlreiche Einzelheiten dargelegt, um ein Verständnis des hier offengelegten Themas zu ermöglichen. Implementierungen können jedoch auch ohne einige dieser Details praktiziert werden. Andere Implementierungen können Modifikationen und Abweichungen von den oben besprochenen Details enthalten. Es ist beabsichtigt, dass die beigefügten Ansprüche solche Modifikationen und Abweichungen abdecken.