DE102016221811B4 - Zuordnung von Ressourcen mit mehrschichtigem Speicher - Google Patents

Zuordnung von Ressourcen mit mehrschichtigem Speicher Download PDF

Info

Publication number
DE102016221811B4
DE102016221811B4 DE102016221811.5A DE102016221811A DE102016221811B4 DE 102016221811 B4 DE102016221811 B4 DE 102016221811B4 DE 102016221811 A DE102016221811 A DE 102016221811A DE 102016221811 B4 DE102016221811 B4 DE 102016221811B4
Authority
DE
Germany
Prior art keywords
program
data
computer
storage
layer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE102016221811.5A
Other languages
English (en)
Other versions
DE102016221811A1 (de
Inventor
Rahul M. Fiske
Akshat Mithal
Sandeep R. Patil
Subhojit Roy
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE102016221811A1 publication Critical patent/DE102016221811A1/de
Application granted granted Critical
Publication of DE102016221811B4 publication Critical patent/DE102016221811B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Verfahren zum Verwalten (400) von Ressourcen eines Datenverarbeitungssystems (100; 300), wobei das Verfahren aufweist:Feststellen (406), dass ein Satz von Daten an eine Speicherschicht (160; 220; 360) eines mehrschichtigen Speichersystems (150; 200; 350) übertragen wird, wobei das mehrschichtige Speichersystem Daten mit einem Computer (110A, 110B, 110C; 310) austauscht (152);Ermitteln (408) eines im Computer ausgeführten Programms (104A, 104B; 340A, 340B), wobei das Ermitteln des Programms darauf beruht, dass das Programm auf den Satz von Daten zugegriffen hat und der Satz von Daten an die Speicherschicht übertragen wird;Ermitteln (410) einer Ressource ausgehend von dem an die Speicherschicht übertragenen Satz von Daten, wobei die Ressource im Computer enthalten ist, wobei die Ressource zur Nutzung durch das Programm geeignet ist;Ermitteln (412) einer Modifikationsmenge der Ressource ausgehend von dem an die Speicherschicht übertragenen Satz von Daten und außerdem ausgehend von dem dynamischen Status der Ressourcen des Computers und/oder dem dynamischen Status der dem Programm zugeordneten Ressourcen des Computers; undModifizieren (412) einer Menge der dem Programm zugeordneten Ressource ausgehend von dem an die Speicherschicht übertragenen Satz von Daten unter Verwendung der Modifikationsmenge, wobei das Modifizieren ausgehend davon, dass mindestens eine der Ressourcen nicht für ein Zuordnen zum Programm verfügbar ist und dem Programm nicht gestattet wird, die Menge der dem Programm zugeordneten Ressource zu erhöhen, ein Feststellen aufweist, dass die Modifikationsmenge null ist, und ausgehend davon, dass die Modifikationsmenge null ist,kein Vornehmen einer Änderung an der Menge der dem Programm zugeordneten Ressource; undausgehend davon, dass die Modifikationsmenge null ist, Aussetzen (420) von mindestens einem aus dem in der Speicherschicht gespeicherten Satz von Daten und dem an die Speicherschicht übertragenen Satz von Daten im mehrschichtigen Speichersystem.

Description

  • HINTERGRUND
  • Die vorliegende Erfindung betrifft Datenverarbeitungssysteme unter Nutzung von mehrschichtigem Speicher. Im Besonderen betrifft die vorliegende Erfindung ein Verwalten der Zuordnung von Computer- und Speicher-Ressourcen in einem Datenverarbeitungssystem unter Nutzung von mehrschichtigem Speicher.
  • Zu einem mehrschichtigen Speichersystem gehören zwei oder mehr Speicherschichten, bei denen es sich jeweils um einen anderen Typ von Speichermedium handeln kann und die verschiedene Leistungsmerkmale habenkönnen. Eine bestimmte Speicherschicht kann eine höhere Leistungsfähigkeit als eine oder mehrere andere Speicherschichten haben. In Reaktion auf häufigere Zugriffe auf die Daten kann das Speichersystem Daten von einer Schicht mit geringerer Leistungsfähigkeit an eine Schicht mit höherer Leistungsfähigkeit übertragen. In Reaktion auf seltenere Zugriffe auf die Daten kann ein mehrschichtiges Speichersystem alternativ Daten von einer Schicht mit höherer Leistungsfähigkeit an eine Schicht mit geringerer Leistungsfähigkeit übertragen oder in der Schicht mit höherer Leistungsfähigkeit Speicherplatz für andere Daten zur Verfügung stellen.
  • In Reaktion auf ein Übertragen von Daten an eine Schicht mit höherer Leistungsfähigkeit kann ein Programm, das auf diese Daten zugreift, imstande sein, den Rechendurchsatz zu erhöhen. Ein Erhöhen des Rechendurchsatzes kann einem Erhöhen der dem Programm zugeordneten Ressourcen des Computers wie CPU oder Speicherkapazität entsprechen. Eine Ressourcen-Verwaltungsfunktion des Datenverarbeitungssystems kann ermitteln, welche Ressourcen geeignet sind, und kann diese Ressourcen zuordnen. Alternativ ist ein Programm, das auf Daten zugreift, die in einer Schicht mit geringerer Leistungsfähigkeit gespeichert sind oder an diese übertragen werden, in Verbindung mit dem leistungsschwächeren Zugriff auf die Daten möglicherweise außerstande, einige der diesem Programm zugeordneten Ressourcen des Computers in vollem Umfang zu nutzen. Da andere Programme solche Ressourcen nutzen können, kann eine Ressourcen-Verwaltungsfunktion des Datenverarbeitungssystems die Zuordnung von Ressourcen, die das Programm nicht in vollem Umfang nutzen kann, aufheben oder diese freigeben.
  • Um die Zuordnung von Ressourcen zu einem Programm in Relation zur Speicherstelle von Daten innerhalb des Speichersystems zu ändern, muss die Ressourcen-Verwaltungsfunktion Kenntnis davon haben, welche Daten an die oder aus den verschiedenen Schichten des Speichersystems übertragen werden. Es ist jedoch ein Merkmal von mehrschichtigen Speichersystemen, dass sie die momentane oder dynamische Speicherstelle und die Übertragung von Daten zwischen den Speicherschichten für auf diese Daten zugreifende Programme und für andere Komponenten des Computers oder Datenverarbeitungssystems transparent verwalten. Folglich besteht ein Bedarf an einem Informationsaustausch zwischen einem Speichersystem und einer Ressourcen-Verwaltungsfunktion des Datenverarbeitungssystems, an welche oder aus welcher Schicht bestimmte Daten übertragen werden, da das Speichersystem das Übertragen dieser Daten vorbereitet oder ausführt.
  • Ein Aspekt von Datenverarbeitungssystemen besteht darin, dass Programme in Bezug auf bestimmte Ressourcen eines Computers beschränkt werden können. Beschränkungen hinsichtlich dieser Ressourcen können ihrerseits die Möglichkeit eines Programms begrenzen, mit einer Häufigkeit auf Daten zuzugreifen, die diesen Daten, die in einer Schicht eines Speichersystems mit höherer Leistungsfähigkeit gespeichert werden, entspricht. Wenn ein Programm in Folge solcher Beschränkungen keinen leistungsstärkeren Zugriff auf Daten nutzen kann, die in einer Schicht mit höherer Leistungsfähigkeit gespeichert sind, kann das Speichersystem die Daten an eine Schicht mit geringerer Leistungsfähigkeit übertragen oder festlegen, andere Daten, auf die dieses Programm zugreift, nicht an eine Schicht mit höherer Leistungsfähigkeit zu übertragen.
  • Ein anderer Aspekt von mehrschichtigen Speichersystemen besteht jedoch darin, dass das Speichersystem keine Kenntnis von der Zuordnung von Computer-Ressourcen zu Programmen, die auf Daten im Speichersystem zugreifen, oder von der Nutzung dieser Ressourcen hat. Folglich besteht ein Bedarf, vom Computer oder einer Ressourcen-Verwaltungsfunktion des Datenverarbeitungssystems an das Speichersystem zu übermitteln, dass ein Programm keinen leistungsstärkeren Zugriff auf bestimmte Daten nutzen kann. Das Datenverarbeitungssystem oder das Speichersystem kann dabei festlegen, das Übertragen dieser bestimmten Daten an die Schicht mit höherer Leistungsfähigkeit auszusetzen oder diese Daten an eine Schicht mit geringerer Leistungsfähigkeit zu übertragen.
  • Die Druckschrift US 2014 / 0 122 695 A1 betrifft ein Verfahren zur Erleichterung elektronischer Kommunikationsdienste. Das Verfahren umfasst: Überwachen der Ausführung einer Anwendung auf einem Medienwiedergabegerät durch ein System mit einem Prozessor, einschließlich Identifizieren einer Aktivierungsinstanz der Anwendung; Bestimmen eines Pegels des Ressourcenverbrauchs innerhalb eines vorbestimmten und endlichen Bereichs von Netzwerkressourcen für die Aktivierungsinstanz der Anwendung, und Festlegen einer quantitativen oder qualitativen Verbrauchsrangfolge für die Aktivierungsinstanz; Speichern des Pegels des Ressourcenverbrauchs und Zuordnen des gespeicherten Pegels des Ressourcenverbrauchs zu der Aktivierungsinstanz der Anwendung; und Übertragen des Pegels des Ressourcenverbrauchs an ein Netzwerk, das Inhalte oder Dienste bereitstellt, die sich auf die Anwendung beziehen, als Reaktion auf die Bestimmung der Erfüllung eines vorbestimmten Kriteriums, das sich auf das Übertragen bezieht.
  • Die Druckschrift US 2012 / 0 198 151 A1 betrifft eine Speichervorrichtung, die umfasst: Speichereinheiten einer Mehrzahl von Arten mit unterschiedlicher Leistung; und einen Steuer-Controller, der jeden der Speichereinheiten verwaltet, die von den Speichereinheiten einer Mehrzahl von Arten jeweils mittels Speicher-Tiers einer Mehrzahl von unterschiedlichen Arten bereitgestellt werden, und der die Speicherbereiche in Seiteneinheiten virtuellen Volumes von irgendeinem Speicher-Tier unter den Speicher-Tiers einer Mehrzahl von Arten zuordnet, wobei der Steuer-Controller Nutzungsverhältnisse der Speicher-Tiers einer Mehrzahl von Arten verwaltet und die Speicherbereiche den virtuellen Volumes auf Grundlage des verwalteten Nutzungsverhältnisses zuordnet.
  • Die Druckschrift US 2013 / 0 111 129 A1 betrifft ein Speicherverwaltungsverfahren für ein Computersystem, in dem eine Speichervorrichtung, ein Host-Computer, der eine Anforderung zum Schreiben von Daten an die Speichervorrichtung ausgibt, und ein Verwaltungscomputer, der die Speichervorrichtung und den Host-Computer verwaltet, jeweils über ein Netzwerk miteinander verbunden sind. Die Speichervorrichtung umfasst: einen Speicher-Controller zum Verwalten von Speicherbereichen, die von Speichermedien einer Mehrzahl von Typen mit unterschiedlicher Leistung bereitgestellt werden, als Pools, und zum Zuordnen der Speicherbereiche in Seiteneinheiten zu einem virtuellen Datenträger aus einem beliebigen Speicher-Tier unter einer Mehrzahl von Typen von Speicher-Tier, die der Pool in Reaktion auf die Datenschreibanforderung vom Host-Computer umfasst. Das Speicherverwaltungsverfahren umfasst: einen ersten Schritt, in dem die Steuereinheit für spezifische Daten, die von dem Host Computer verwaltet werden, einen Bereich mit einer hohen Referenzierungsfrequenz unter den spezifischen Daten auf der Basis von Organisationsinformationen der spezifischen Daten spezifiziert; und einen zweiten Schritt, in dem die Steuereinheit eine Bewegung von einem bereits zugeordneten Speicher-Tier zu einem anderen Speicher-Tier mit einer höheren Leistung durchführt.
  • KURZDARSTELLUNG
  • Zu Merkmalen der vorliegenden Erfindung gehört ein Verfahren zum Verwalten von Ressourcen eines Datenverarbeitungssystems mit einem Computer, der Daten mit einem mehrschichtigen Speichersystem austauscht. Gemäß Aspekten des Verfahrens wird festgelegt, dass ein Satz von Daten an eine bestimmte Speicherschicht des Speichersystems übertragen wird. Das Verfahren beinhaltet Ermitteln eines im Computer ausgeführten Programms. Das Programm wird anhand des Zugreifens auf den Datensatz durch das Programm und des Übertragens des Datensatzes an die jeweilige Speicherschicht ermittelt.
  • Anhand des Datensatzes, der an die jeweilige Speicherschicht übertragen wird, wird eine Ressource des Computers ermittelt, die für eine Nutzung durch das Programm geeignet ist. Außerdem beinhaltet das Verfahren Ermitteln einer „Modifikationsmenge“ („modification amount“) der Ressource, die zum Modifizieren einer dem Programm zugeordneten Menge dieser Ressource verwendet wird. Das Ermitteln der Modifikationsmenge beruht auf Daten, die an die jeweilige Speicherschicht übertragen werden, und auf dem dynamischen Status der Ressourcen des Computers und/oder der dem Programm zugeordneten Ressourcen des Computers. Gemäß dem Verfahren wird die Menge der dem Programm zugeordneten Ressourcen unter Verwendung der Modifikationsmenge modifiziert. Die Modifizierung gleicht die Zuordnung von Ressourcen des Computers an verschiedene Programme aus, um die Nutzung der Ressourcen des Computers und die Gesamtleistung der Programme, des Computers und des Datenverarbeitungssystems zu verbessern. In einem Merkmal der Erfindung handelt es sich bei der Ressource um: ein Teil eines Prozessors und/oder ein Teil eines Co-Prozessors und/oder ein Teil eines Speichers, und/oder ein Teil eines Speichermediums und/oder ein Teil einer Netzwerk-Ressource.
  • Gemäß einigen Aspekten des Verfahrens handelt es sich bei der Modifikationsmenge um eine Menge der Ressource, die zum Zuordnen zu dem Programm verfügbar ist, und dementsprechend beinhaltet das Verfahren Zuordnen der Modifikationsmenge der Ressource zu dem Programm. Erhöhen der Menge der Ressource verbessert die Gesamtleistung des Programms, des Computers und des Datenverarbeitungssystems.
  • Gemäß anderen Aspekten des Verfahrens wird die Modifikationsmenge als eine ungenutzte Menge der dem Programm zugeordneten Ressource festgelegt. Die ungenutzte Menge beruht auf dem an die Speicherschicht übertragenen Satz von Daten. Dementsprechend beinhaltet das Verfahren Verringern der Menge der dem Programm zugeordneten Ressource um die Modifikationsmenge. Das Verringern der Menge der Ressource ermöglicht Zuordnen der ungenutzten Menge der Ressource zu anderen Programmen und verbessert die Nutzung der Computerressourcen und die Gesamtleistung der Programme, des Computers und des Datenverarbeitungssystems.
  • Unter einem anderen Aspekt des Verfahrens ist die Ressource möglicherweise nicht verfügbar, um dem Programm zugeordnet zu werden, oder dem Programm ist es möglicherweise nicht gestattet, die Zuordnung der Ressource zu diesem Programm zu erhöhen. Dementsprechend wird gemäß dem Verfahren festgestellt, dass die Modifikationsmenge null ist, und die Zuordnung der Ressource zu dem Programm wird nicht modifiziert. Ausgehend davon, dass die Modifikationsmenge null ist, beinhaltet das Verfahren außerdem Aussetzen des Übertragens des Datensatzes durch das Speichersystem an die Speicherschicht. Ein Aussetzen des Übertragens der Daten an die Speicherschicht mit höherer Leistungsfähigkeit ermöglicht dem Speichersystem, eine optimale Speicherstelle von Daten zu ermitteln, wodurch die Gesamtleistung des Speichersystems, des Computers und des Datenverarbeitungssystems verbessert wird.
  • Das Verfahren kann in einem Computerprogrammprodukt verkörpert werden, das einen Computer veranlasst, Aspekte des Verfahrens auszuführen. Ein Datenverarbeitungssystem kann so konfiguriert werden, dass es das Verfahren ausführt.
  • Die obige Kurzdarstellung soll nicht jede veranschaulichte Ausführungsform oder jede Implementierung der vorliegenden Offenbarung beschreiben.
  • Figurenliste
  • Die in der vorliegenden Patentanmeldung enthaltenen Zeichnungen sind in die Beschreibung aufgenommen und bilden einen Teil von dieser. Sie veranschaulichen Ausführungsformen der vorliegenden Offenbarung und dienen zusammen mit der Beschreibung zum Erläutern des Grundgedankens der Offenbarung. Die Zeichnungen veranschaulichen lediglich Beispiele von bestimmten Ausführungsformen und schränken die Offenbarung nicht ein.
    • 1 ist ein Blockschaltbild, das ein beispielhaftes Datenverarbeitungssystem veranschaulicht, das ein mehrschichtiges Speichersystem gemäß Merkmalen der Offenbarung enthält.
    • 2 ist ein Blockschaltbild, das ein beispielhaftes mehrschichtiges Speichersystem gemäß Merkmalen der Offenbarung veranschaulicht.
    • 3 ist ein Blockschaltbild, das beispielhafte Interaktionen eines Computers, eines mehrschichtigen Speichersystems und einer Verwaltungskonsole (management console) gemäß Merkmalen der Offenbarung veranschaulicht.
    • 4 veranschaulicht ein beispielhaftes Verfahren zum Verwalten von Ressourcen eines Datenverarbeitungssystems, das ein mehrschichtiges Speichersystem gemäß Merkmalen der Offenbarung enthält.
    • 5 ist ein Blockschaubild, das ein Computerprogrammprodukt veranschaulicht, das Verfahren und Strukturen der Offenbarung verkörpern kann.
  • Obwohl die Offenbarung für verschiedene Modifikationen und alternative Formen offen ist, wurden Einzelheiten davon beispielhaft in den Zeichnungen gezeigt und werden ausführlich beschrieben. Es versteht sich jedoch von selbst, dass die Erfindung die Offenbarung nicht auf die jeweiligen Ausführungsformen beschränken soll. Die Erfindung soll hingegen alle Modifikationen, Äquivalente und Alternativen abdecken, die innerhalb des Gedankens und Schutzumfangs der Offenbarung liegen.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Aspekte der vorliegenden Offenbarung betreffen Verwalten von Ressourcen eines Datenverarbeitungssystems, das einen Computer enthält, der mit einem mehrschichtigen Speichersystem Daten austauschen kann. Insbesondere betreffen bestimmte Aspekte Zuordnen von Ressourcen in einem Computer entsprechend Daten, die zwischen Schichten des Speichersystems übertragen werden. Andere Aspekte der Offenbarung betreffen Platzieren von Daten in Schichten des Speichersystems entsprechend der Verfügbarkeit oder Nutzung von einem Programm zugeordneten Ressourcen des Computers. Die vorliegende Offenbarung ist nicht unbedingt auf solche Anwendungen beschränkt, daher können verschiedene Aspekte der Offenbarung durch eine Erläuterung von verschiedenen Beispielen in diesem Zusammenhang ebenfalls von Interesse sein.
  • Zu einem mehrschichtigen Speichersystem gehören zwei oder mehr Speicherschichten, von denen jede aus einem anderen Typ von Speichermedium bestehen kann und die unterschiedliche Leistungsmerkmale haben können. Bei einer ersten Speicherschicht kann es sich um ein Speichermedium wie einen Flash-Speicher oder eine Halbleiterplatte (solid-state disk, SSD) handeln, das im Vergleich zu anderen Schichten, beispielsweise einer zweiten Schicht, die zum Beispiel eine rotierende Magnetplatte verwendet, eine höhere Leistungsfähigkeit hat. Dementsprechend kann ein Speichersystem Zugriffe auf in den verschiedenen Schichten gespeicherte Daten überwachen und auf der Grundlage dieses Überwachens Daten zwischen einer Schicht mit geringerer Leistungsfähigkeit und einer Schicht mit höherer Leistungsfähigkeit übertragen. Ein Übertragen der Daten an eine oder aus einer bestimmten Schicht kann in Reaktion auf häufigere oder seltenere Zugriffe auf die Daten, auf kürzlich erfolgte Zugriffe oder auf andere Maßeinheiten erfolgen, die mit Zugriffen auf die Daten oder den Verarbeitungsvorgängen des Speichersystems zusammenhängen.
  • In Reaktion auf ein Übertragen von Daten an eine Schicht mit höherer Leistungsfähigkeit kann ein Programm, das auf diese Daten zugreift, den Rechendurchsatz erhöhen, indem beispielsweise dem Programm zugeordnete Ressourcen des Computers wie CPU oder Speicher-Ressourcen erhöht werden. Um eine Zuordnung dieser Ressourcen zum Programm zu erhöhen, muss eine Ressourcen-Verwaltungsfunktion des Datenverarbeitungssystems, die die Ressourcen des Computers verwaltet, Kenntnis davon haben, dass die Daten an die Speicherschicht mit höherer Leistungsfähigkeit übertragen werden.
  • Alternativ kann das Speichersystem Daten von einer Schicht mit höherer Leistungsfähigkeit an eine Schicht mit geringerer Leistungsfähigkeit übertragen. Solche Übertragungsvorgänge können das Ergebnis von selteneren Zugriffen auf die jeweiligen Daten sein, was im Anschluss an ein Platzieren der Daten in der Schicht mit höherer Leistungsfähigkeit erfolgen kann. Das Speichersystem kann Daten aus einer Schicht mit höherer Leistungsfähigkeit übertragen, wenn diese Schicht mit höherer Leistungsfähigkeit in größerem Umfang genutzt wird, um beispielsweise in dieser Schicht Speicherplatz zum Speichern anderer Daten, auf die in jüngerer Zeit zugegriffen wurde, zur Verfügung zu stellen. Ein Speichersystem kann Daten aus Gründen, die mit anderen Mustern des Zugriffs auf die Daten oder mit dem dynamischen Status von Speichermedien innerhalb des Speichersystems zusammenhängen, aus einer Schicht mit höherer Leistungsfähigkeit übertragen.
  • Ein Programm, das auf Daten zugreift, die in einer bestimmten Schicht des Speichersystems gespeichert sind, ist möglicherweise nicht in der Lage, alle der diesem Programm zugeordneten Ressourcen des Computers wie CPU oder Speicher-Ressourcen zu nutzen. Das Programm ist möglicherweise außerstande, einen Teil der Ressourcen in Relation zu einem Zugreifen auf Daten, die in dieser bestimmten Schicht des Speichersystems gespeichert sind, zu nutzen. Da andere Programme solche Ressourcen nutzen können, kann eine Ressourcen-Verwaltungsfunktion des Datenverarbeitungssystems in Bezug auf die Schicht, in der die Daten gespeichert sind, die Zuordnung des Teils der Ressourcen, die das Programm nicht nutzen kann, aufheben. Es ist jedoch ein Merkmal von mehrschichtigen Speichersystemen, die Speicherstelle von Daten im Speicher für auf diese Daten zugreifende Programme oder andere Komponenten des Computers transparent zu verwalten, wie beispielsweise eine Ressourcen-Verwaltungsfunktion. Folglich besteht ein Bedarf, vom Speichersystem an eine Ressourcen-Verwaltungsfunktion des Datenverarbeitungssystems zu übermitteln, dass bestimmte Daten in bestimmten Schichten gespeichert sind oder an bestimmte Schichten des Speichersystems (z.B. Schichten mit höherer oder geringerer Leistungsfähigkeit) übertragen werden.
  • Ein weiterer Aspekt eines mehrschichtigen Speichersystems besteht darin, dass Speichermedien mit höherer Leistungsfähigkeit möglicherweise kostspieliger als Medien mit geringerer Leistungsfähigkeit sind. Dementsprechend kann die Speicherkapazität einer Schicht mit höherer Leistungsfähigkeit geringer als die Kapazität von anderen Schichten mit geringerer Leistungsfähigkeit sein. Programme, die auf Daten im Speichersystem zugreifen, können in Bezug auf bestimmte Ressourcen eines Computers eingeschränkt sein. Beschränkungen hinsichtlich dieser Ressourcen können das Programm wiederum auf eine Weise einschränken, dass es keinen leistungsfähigeren Zugriff auf Daten in einer Schicht mit höherer Leistungsfähigkeit nutzen kann. In einem solchen Fall kann das Speichersystem die Daten an eine Schicht mit geringerer Leistungsfähigkeit übertragen oder keine weiteren Daten, auf die dieses Programm zugreift, in die Schicht mit höherer Leistungsfähigkeit übertragen und dadurch in der Schicht mit höherer Leistungsfähigkeit Speicherplatz für andere Daten zur Verfügung stellen.
  • Ein Aspekt von einigen Datenverarbeitungssystemen besteht jedoch auch darin, dass das Speichersystem keine Kenntnis von der Zuordnung von Ressourcen des Computers oder der Nutzung dieser Ressourcen durch Programme hat, die auf Daten im Speichersystem zugreifen. Um dem Speichersystem zu ermöglichen, eine Platzierung von Daten in den verschiedenen Schichten zu festzulegen, besteht folglich ein Bedarf, von einer Ressourcen-Verwaltungsfunktion des Datenverarbeitungssystems an das Speichersystem zu übermitteln, dass ein Programm die Zugriffsleistung einer Schicht mit höherer Leistungsfähigkeit für bestimmte Daten nicht nutzen kann.
  • Verfahren zum Zuordnen von Computer-Ressourcen an ein Programm oder zum Aufheben der Zuordnung von Ressourcen zu einem Programm entsprechend der Speicherstelle von Daten in einem mehrschichtigen Speichersystem können eine höhere Leistung des Programms oder des gesamten Computersystems ermöglichen. Dementsprechend beinhaltet die vorliegende Offenbarung Verfahren zum Erhöhen oder Verringern von einem Programm zugeordneten Computer-Ressourcen in Relation zur Speicherstelle von Daten, auf die von diesem Programm zugegriffen wird, innerhalb der Schichten eines Speichersystems.
  • Auf ähnliche Weise können Verfahren zum Aussetzen des Übertragens von Daten zu oder des Speicherns von Daten in einer Schicht mit höherer Leistungsfähigkeit einem Speichersystem ermöglichen, die Platzierung von bestimmten Daten in den verschiedenen Schichten festzulegen, wenn ein Programm die Häufigkeit von Zugriffen auf Daten in dieser Schicht nicht nutzen kann. Entsprechend können andere Programme, die auf Daten im Speichersystem zugreifen, das Speichersystem selbst, der Computer oder das Datenverarbeitungssystem insgesamt eine höhere Leistungsfähigkeit realisieren. Dementsprechend beinhaltet die vorliegende Offenbarung Verfahren zum Aussetzen des Speicherns von bestimmten Daten in bestimmten oder des Übertragens von bestimmten Daten an bestimmte Schichten des Speichersystems in Bezug auf ein Programm, das Datenzugriffshäufigkeiten dieser Schichten nicht nutzen kann.
  • 1 veranschaulicht ein beispielhaftes Datenverarbeitungssystem 100 mit Computern und einem mehrschichtigen Speichersystem gemäß Merkmalen der Offenbarung. Ein Computer 110A enthält CPUs 112A und 112B und einen Speicher 120. Bei Ausführungsformen können nur eine einzige CPU oder eine Vielzahl von CPUs enthalten sein. Bei den CPUs kann es sich um einzelne Prozessoren, SMT-Prozessor-Threads (SMT - Simultaneous Multithreading) oder virtualisierte Formen von beliebigen von diesen handeln. Ein Computer kann nur einen Speicher oder eine Vielzahl von Speichern enthalten, und es kann sich um unterschiedliche Typen von Speichern handeln, wie beispielsweise Hauptspeicher, Cachespeicher oder Flash-Speicher. Bei den CPUs und beim Speicher (oder den Speichern) kann es sich um Ressourcen handeln, die einem im Computer ausgeführten Programm zugeordnet sein können.
  • Der Computer enthält Betriebssysteme (BS) 102A und 102B. Bei Ausführungsformen können nur ein einziges Betriebssystem oder eine Mehrzahl von Betriebssystemen enthalten sein, die größer als die in 1 gezeigte Anzahl ist. In einem partitionierten Computer können Betriebssysteme in Betriebssystempartitionen implementiert sein. Ein Betriebssystem kann ein oder mehrere Programme beinhalten, beispielsweise Programme 104A und 104B, die in Betriebssystemen 102A bzw. 102B enthalten sind. Die Programme können eine Vielfalt von Funktionen haben wie beispielsweise Anwendungen oder Verarbeitungsprozesse, Ressourcen-Verwaltungseinrichtungen, Speicherverwaltungseinrichtungen und virtuelle Speicherverwaltungseinrichtungen.
  • Der Computer 110A enthält außerdem einen Hypervisor 106. In Ausführungsformen kann ein Hypervisor physische Ressourcen eines Computers verwalten oder virtualisieren und diese Ressourcen Betriebssystemen oder anderen Programmen zuordnen. Beispielsweise kann ein Hypervisor Betriebssystemen im Computer CPUs oder Teile einer CPU (z.B. eine virtuelle CPU) zuordnen. In ähnlicher Weise kann ein Hypervisor Betriebssystemen im Computer Speicherbereiche zuordnen. Ein Hypervisor kann außerdem die Zuordnung von Speicher zu Betriebssystemen in einem Speichersystem oder einer Speichereinheit verwalten. Betriebssysteme können ihrerseits die Zuordnung von CPUs oder Speicher zu Programmen verwalten, die in diesen ausgeführt werden.
  • Der Computer 110A kann mit einem Speichersystem 150 Daten austauschen 152. Die Art und Weise des Datenaustauschs (152) zwischen dem Computer und dem Speichersystem kann mittels einer beliebigen aus einer Vielfalt von Verbindungsmechanismen erfolgen, darunter eine direkte Verbindung (z.B. ein E/A-Bus oder eine E/A-Verbindung), eine Verbindung durch einen anderen Computer oder eine Netzwerkverbindung.
  • Das Speichersystem 150 ist ein mehrschichtiges Speichersystem und enthält einen Schicht-eins-Speicher 160 (tier-one storage) und einen Schicht-zwei-Speicher (tiertwo storage) 170 auf. Bei einer Speicherschicht kann es sich ein beliebiges aus einer Vielfalt von Speichermedien oder -einheiten handeln, beispielsweise ein Flash-Speicher, ein SSD, ein Festplattenlaufwerk (oder eine Gruppe von Festplattenlaufwerken), ein optisches Laufwerk, ein Bandlaufwerk oder andere solche Speichereinheiten. Zur Veranschaulichung handelt es sich im beispielhaften Speichersystem 150 bei der Schicht-eins um ein SSD und bei der Schicht-zwei um ein Festplattenlaufwerk. Ein Speichersystem kann zusätzliche Schichten beinhalten (z.B. eine Schicht-drei, nicht gezeigt), und bei den zusätzlichen Schichten kann es sich um einen anderen Typ von Speicher als denjenigen von Schicht-eins oder Schicht-zwei handeln, beispielsweise einen optischen oder einen Bandspeicher.
  • In einem mehrschichtigen Speichersystem können einzelne Schichten unterschiedliche Eigenschaften (beispielweise Kapazität, Bandbreite oder Zugriffslatenzzeit) haben, und das Speichersystem kann Daten aufgrund dieser Eigenschaften in einer bestimmten Schicht speichern. Beispielsweise kann es sich bei einem Schicht-eins-Speicher um ein SSD (oder eine andere Form von Flash-Speicher) und bei einem Schicht-zwei-Speicher um ein oder mehrere Plattenlaufwerke handeln. Ein SSD hat möglicherweise eine kürzere Zugriffslatenzzeit als ein Plattenlaufwerk, und das Speichersystem kann dementsprechend Daten, auf die häufiger zugegriffen wird, im SSD-Speicher und Daten, auf die seltener zugegriffen wird, im Plattenlaufwerkspeicher speichern. In einigen Ausführungsformen kann ein Speichersystem Kopien von bestimmten Daten in mehreren Schichten speichern. Zum Beispiel kann ein Speichersystem in Schicht-eins eine Kopie von Daten speichern, die auch in Schicht-zwei gespeichert sind, und die Kopie während Zeiträumen, in denen häufig auf die Daten zugegriffen wird, in Schicht-eins speichern.
  • Speicher oder Medien in einem Speichersystem können in Form von „Speicherbereichen“ organisiert sein, die zum Beispiel einem bestimmten Bereich oder einer Gruppe von Bereichen eines Flash-Speichers oder SSD oder einem Plattenlaufwerk oder einer Teilgruppe der Sektoren von einem oder mehreren Plattenlaufwerken entsprechen. Zum Beispiel weist die Schicht-eins 160 des Speichersystems Speicherbereiche 166A, 166B und 166C auf, und die Schicht-zwei 170 weist Speicherbereiche 176A, 176B und 176C auf. Bei den Speicherbereichen der Schicht-eins kann es sich um Bereiche oder logische Plattenlaufwerke oder Sektoren von einem oder mehreren Plattenlaufwerken im Plattenspeicher der Schicht-zwei handeln.
  • Ein Speichersystem kann außerdem Speicherbereiche in „Datenträger“ organisieren. Beispielsweise beinhaltet ein Datenträger 162 des Speichersystems die Speicherbereiche 166A und 166B, und ein Datenträger 172 beinhaltet die Speicherbereiche 176A und 176B. Ein Datenträger kann Speicherbereiche einer einzelnen Speichereinheit (oder eines einzelnen Speichermediums) im Speichersystem oder Speicherbereiche von einer Vielzahl von Einheiten (oder Medien) umfassen. Zum Beispiel umfasst der Datenträger 162 lediglich Speicherbereiche in Schicht-eins, und der Datenträger 172 umfasst lediglich Speicherbereiche in Schicht-zwei, während ein Datenträger 174 Speicherbereiche sowohl in Schicht-eins als auch in Schicht-zwei umfasst. Datenträger und Speicherbereiche in jeder Schicht eines mehrschichtigen Speichersystems können die gleiche Größe haben, und die Größe eines Datenträgers oder eines Speicherbereichs kann unveränderbar oder variabel sein. Bei einem Speicherbereich kann es sich beispielsweise um eine feste Anzahl von Speicherblöcken und bei einem Datenträger kann es sich um eine feste Anzahl von Speicherbereichen handeln. Alternativ kann sich die Größe eines Speicherbereichs oder eines Datenträgers im Laufe des Betriebs des Speichersystems ändern.
  • Die Anzahl von Datenträgern oder Speicherbereichen in einer Schicht kann gleich der Anzahl von Datenträgern und Speicherbereichen in einer anderen Schicht sein. Alternativ kann sich die Anzahl von Speicherbereichen in Datenträgern einer Schicht von der Anzahl in einer anderen Schicht unterscheiden. Unterschiede zwischen Schichten hinsichtlich der Größe von Speicherbereichen oder hinsichtlich der Anzahl von Speicherbereichen in einem Datenträger können die Gesamtkapazität des Speichersystems, die Kapazität einer einzelnen Schicht oder die Kosten für das Medium, das diese Schicht bildet, betreffen. Eine kostengünstigere Speicherung in einer Schicht kann beispielsweise im Vergleich zu einer anderen Schicht, die vergleichsweise kostspieligere Speichermedien verwendet, die Voraussetzung für eine höhere Kapazität und mehr Speicherbereiche pro Datenträger schaffen. Die Anzahl von in jeder Schicht enthaltenen Speicherbereichen oder Datenträgern kann entsprechend der Kapazität des Speichers in dieser Schicht festgelegt werden.
  • Programme oder Betriebssysteme in einem Datenverarbeitungssystem können Speicher in einem Speichersystem gemeinsam nutzen. Bestimmte Datenträger (oder Speicherbereiche) der Speichereinheit können einem Programm und andere Datenträger (oder Speicherbereiche) der Speichereinheit können anderen Programmen (oder Betriebssystemen) zugeordnet werden. In einem partitionierten Computer können zum Beispiel mehrere Betriebssystemabbilder („virtuelle Maschinen“ oder „VMs“) auf dem Computer ausgeführt werden, und jede VM kann einem oder mehreren bestimmten Datenträgern im Speichersystem zugeordnet werden. Die VMs können Ressourcen des Computers, wie beispielsweise Prozessoren, Speicher oder Netzwerk-Ressourcen, gemeinsam nutzen, und die Menge dieser einer bestimmten VM zugeordneten Ressourcen kann die Häufigkeit festlegen, mit der diese VM (oder ein in einer VM ablaufendes Programm) auf Daten im Speichersystem zugreift.
  • Ein Aspekt von mehrschichtigen Speichersystemen besteht darin, dass das Speichersystem Daten (z.B. Speicherbereiche) in Relation zu Leistungsmerkmalen der Schichten oder von Zugriffen auf die Daten zwischen Schichten überträgt. In einigen Ausführungsformen kann ein Speichersystem dynamische Eigenschaften von im Speichersystem gespeicherten Daten wie etwa Häufigkeit oder Anzahl von Zugriffen auf bestimmte Datenträger oder Speicherbereiche, überwachen. Beispielsweise kann ein Speichersystem Zugriffe auf einen Speicherbereich überwachen und eine Zugriffshäufigkeit ermitteln oder es kann ermitteln, auf welchen Speicherbereich (oder welchen Datenträger) in einer Schicht des Speichersystems möglicherweise zuletzt zugegriffen wurde.
  • Ein Speichersystem kann festlegen, einen Speicherbereich (oder einen Datenträger) aufgrund der überwachten Eigenschaften in einer bestimmten Schicht zu speichern. Zum Beispiel kann ein bestimmter Speicherbereich eines Datenträgers im Vergleich zu Speicherbereichen anderer Datenträger eine größere (oder geringere) Zugriffshäufigkeit aufweisen. Das Speichersystem kann dementsprechend festlegen, diesen Speicherbereich oder alle Speicherbereiche des Datenträgers, der diesen Speicherbereich enthält, an eine Schicht mit höherer Leistungsfähigkeit zu übertragen (oder an eine Schicht mit geringerer Leistungsfähigkeit, wenn die Zugriffshäufigkeit vergleichsweise geringer ist).
  • Ein Netzwerk 130 im Datenverarbeitungssystem verbindet die Computer 110A, 110B, 110C, eine Verwaltungskonsole 140 und das Speichersystem 150 miteinander. Das Netzwerk kann Datenaustauschvorgänge zwischen den Computern, der Verwaltungskonsole und dem Speichersystem oder zwischen beliebigen von diesen ermöglichen. In Ausführungsformen können die Computer 110B und 110C in Struktur und Funktion ähnlich dem Computer 110A sein oder es kann sich um andere Typen von Computern handeln, die das Netzwerk gemeinsam nutzen. Die Computer 110A, 110B und 110C können Speicher im Speichersystem gemeinsam nutzen oder einfach als ein Netzwerk von Computern Daten austauschen. In einigen Ausführungsformen kann ein Computer wie 110A ausschließlich über ein Netzwerk, beispielsweise das Netzwerk 130, oder über eine andere Form von Verbindung mit dem Speichersystem, beispielsweise 152, auf das Speichersystem zugreifen.
  • Bei einer Verwaltungskonsole kann es sich um eine Komponente eines Computers handeln - beispielsweise eine Komponente des Computers 110A, 110B oder 110C. In einigen Ausführungsformen kann eine Verwaltungskonsole eine Komponente eines Speichersystems sein. Elemente oder Funktionen einer Verwaltungskonsole können über einen oder mehrere Computer und ein Speichersystem verteilt sein.
  • Eine Verwaltungskonsole kann als eine Ressourcen-Verwaltungsfunktion eines Datenverarbeitungssystems, beispielsweise des Datenverarbeitungssystems 100, ausgeführt werden oder eine solche verkörpern. Zum Beispiel kann eine Ressourcen-Verwaltungsfunktion im Computer 110A enthalten sein und Ressourcen des Computers verwalten. Die Verwaltungskonsole 140 kann in einem Computer (nicht gezeigt) enthalten sein, der Daten mit dem Computer 110A und mit dem Speichersystem 150 austauscht, und der Datenaustausch kann über das Netzwerk 130 erfolgen.
  • Die Verwaltungskonsole 140 weist ein Plug-in (Software-Erweiterung) 142 auf. In einer Ausführungsform kann eine Verwaltungskonsole oder ein Plug-in wie etwa das Plug-in 142, Konfigurationen oder Interaktionen von Computern oder Speichersystemen in einem Datenverarbeitungssystem verwalten. In Ausführungsformen der Offenbarung kann eine Verwaltungskonsole oder ein Plug-in bestimmte Funktionen zum Betreiben des Datenverarbeitungssystems ausführen - beispielsweise Überwachen der Arbeitsgänge von Hardware, Firmware oder Software in einem Computer oder Speichersystem -- oder den Datenaustausch zwischen Komponenten eines Datenverarbeitungssystems ermöglichen.
  • Ein Computer oder ein Speichersystem kann Dienstleistungs- oder Nutzungsinformationen an eine Verwaltungskonsole übertragen. Beispielsweise kann das Speichersystem 150 Informationen bezüglich Speicherbereichen oder Datenträgern im Speichersystem, auf die im Computer 110A ausgeführte Programme zugreifen, an die Verwaltungskonsole übermitteln. Die Verwaltungskonsole kann die Informationen analysieren und daraufhin Maßnahmen in Bezug auf den Computer 110A oder das Speichersystem in die Wege leiten. Die Verwaltungskonsole kann als Vermittlungseinrichtung fungieren und die Informationen oder die Ergebnisse einer Analyse der Informationen an den Computer 110A weiterleiten. Der Computer 110A kann seinerseits auf von der Verwaltungskonsole empfangene Informationen reagieren.
  • In ähnlicher Weise kann der Computer 110A Informationen zu Arbeitsgängen des Computers oder zu Programmen im Computer an die Verwaltungskonsole übermitteln. Die Verwaltungskonsole kann die Informationen analysieren und daraufhin Maßnahmen in Bezug auf den Computer oder das Speichersystem in die Wege leiten. Die Verwaltungskonsole kann als Vermittlungseinrichtung fungieren und die Informationen an das Speichersystem weiterleiten oder die Ergebnisse einer Analyse der Informationen an das Speichersystem weiterleiten. Das Speichersystem kann seinerseits auf von der Verwaltungskonsole empfangene Informationen reagieren.
  • 2 ist ein Blockschaltbild, das ein beispielhaftes mehrschichtiges Speichersystem gemäß Merkmalen der Offenbarung veranschaulicht. Das Speichersystem 200 enthält einen Schicht-eins-Speicher 220 und einen Schicht-zwei-Speicher 230. Schicht-eins enthält einen Datenträger 222, der seinerseits Speicherbereiche 224, 226 und 228 beinhaltet. Schicht-zwei enthält einen Datenträger 232, der seinerseits Speicherbereiche 234, 236 und 238 beinhaltet. Das Speichersystem enthält eine Schichtenverwaltungseinrichtung (tiering manager) 210. In Ausführungsformen kann eine Schichtenverwaltungseinrichtung die Ressourcen des Speichersystems und die Speicherstelle von Daten (z.B. Speicherbereiche oder Datenträger) in Schichten des Speichersystems verwalten. Eine Schichtenverwaltungseinrichtung kann mit einer Komponente eines Datenverarbeitungssystems Daten bezüglich Speicherbereichen, Datenträgern oder Schichten im Speichersystem austauschen. Bei einer solchen Komponente kann es sich um eine Verwaltungskonsole oder eine Komponente eines Computers handeln, die auf Daten im Speichersystem zugreift, beispielsweise eine Ressourcen-Verwaltungsfunktion.
  • Eine Schichtenverwaltungseinrichtung wie beispielsweise die Schichtenverwaltungseinrichtung 210 kann die Organisation von Speicherbereichen in Datenträger oder das Übertragen von Speicherbereichen von einer Schicht an eine andere Schicht verwalten oder ermöglichen. Beispielsweise kann sich der Speicherbereich 234 zu irgendeinem Zeitpunkt im Schicht-zwei-Speicher befinden. Aus verschiedenen Gründen kann die Schichtenverwaltungseinrichtung festlegen, dass der Speicherbereich 234 in den Schicht-eins-Speicher kopiert oder komplett in diesen übertragen werden muss. In ähnlicher Weise kann die Schichtenverwaltungseinrichtung festlegen, dass der Speicherbereich 226 in den Schicht-zwei-Speicher kopiert oder komplett in diesen übertragen werden muss. In einigen Ausführungsformen kann die Schichtenverwaltungseinrichtung festlegen, alle Speicherbereiche in einem Datenträger von einer Schicht in eine andere Schicht zu übertragen oder zu kopieren, und die Schichtenverwaltungseinrichtung kann festlegen, dies auf der Grundlage von Zugriffen auf einen oder eine Teilgruppe der in diesem Datenträger enthaltenen Speicherbereiche auszuführen.
  • In Ausführungsformen kann eine Schichtenverwaltungseinrichtung Zugriffe auf Speicherbereiche oder Datenträger überwachen und kann ein Zugriffsmuster (z.B. eine Zugriffshäufigkeit oder eine Latenzzeit zwischen Zugriffen) ermitteln. Anhand eines Musters aus Zugriffen auf einen Speicherbereich kann ein Speichersystem vorhersehen, dass das Programm auf andere im selben Datenträger enthaltene Speicherbereiche zugreifen wird. Dementsprechend kann eine Schichtenverwaltungseinrichtung einen Speicherbereich (oder Datenträger) aufgrund eines Zugriffsmusters aus einer Schicht mit geringerer Leistungsfähigkeit an eine Schicht mit höherer Leistungsfähigkeit übertragen (oder den Übertragungsvorgang vorbereiten). Alternativ kann eine Schichtenverwaltungseinrichtung einen Speicherbereich (oder Datenträger) aufgrund eines Zugriffsmusters aus einer Schicht mit höherer Leistungsfähigkeit an eine Schicht mit geringerer Leistungsfähigkeit übertragen (oder den Übertragungsvorgang vorbereiten). Eine Schichtenverwaltungseinrichtung kann außerdem festlegen, einen Speicherbereich aus einer Schicht des Speichersystems mit höherer Leistungsfähigkeit zu übertragen (oder den Übertragungsvorgang vorzubereiten), um in der Schicht mit höherer Leistungsfähigkeit Platz für andere Speicherbereiche oder Datenträger zu schaffen.
  • Das Speichersystem kann Speicherbereiche an verschiedene oder aus verschiedenen Schichten des Speichers auf eine Weise übertragen, die für den Computer oder für Komponenten des Computers oder Datenverarbeitungssystems, beispielsweise eine Ressourcen-Verwaltungsfunktion, transparent ist. Infolgedessen haben der Computer oder andere Komponenten des Computers oder Datenverarbeitungssystems möglicherweise keine Kenntnis davon, an welchem Ort bestimmte Datensätze (z.B. Speicherbereiche) zu einem bestimmten Zeitpunkt in den Schichten gespeichert sind. Mit einer solchen Kenntnis könnte ein Computer (oder beispielsweise eine Ressourcen-Verwaltungsfunktion) jedoch die Zuordnung bestimmter Ressourcen des Computers in Relation zu den Daten, die an diese oder aus dieser Schicht übertragen werden, dynamisch modifizieren.
  • Eine Maß für die Leistungsfähigkeit in einem Datenverarbeitungssystem sind zum Beispiel Ein/Ausgabe-Vorgänge pro Sekunde (I/O operations per second, IOPS) in Bezug auf im Speichersystem gespeicherte Daten. Ein Programm kann in Relation zu einer dem Programm zugeordneten Menge an CPU oder Speicher eine bestimmte Anzahl von IOPS ausführen. Wenn ein Programm auf Daten (z.B. Speicherbereiche) zugreift, die das Speichersystem an eine Schicht mit höherer Leistungsfähigkeit überträgt (z.B. in Relation zu der Anzahl oder der Häufigkeit von Zugriffen), kann ein Zuordnen von mehr CPUs oder Speicherkapazität dem Programm ermöglichen, die IOPS auf diese Daten zu erhöhen. Ein Erhöhen der IOPS kann wiederum zu einem höheren Verarbeitungsdurchsatz führen (z.B. die Geschwindigkeit, mit der das Programm oder der gesamte Computer Berechnungen ausführt).
  • Alternativ kann ein Zuordnen von mehr CPU oder Speicher zu dem Programm diesem ermöglichen, einen höheren Verarbeitungsdurchsatz durch einen Zugriff mit kürzerer Latenzzeit auf Daten in einer Schicht mit höherer Leistungsfähigkeit zu erreichen. In diesem Fall kann ein Zugriff mit kürzerer Latenzzeit vermeiden, dass das Programm auf das Ausführen eines Zugriffs auf die Daten warten muss, so dass das Programm dann zusätzliche Berechnungen ausführen kann und mehr CPU- oder Speicher-Ressourcen nutzen kann. Ebenso kann ein Zugriff auf Daten mit kürzerer Latenzzeit dem Programm ermöglichen, zusätzliche Netzwerk-Datenaustauschvorgänge auszuführen, und das Programm kann dann in der Lage sein, zusätzliche Netzwerk-Ressourcen (z.B. Netzwerkeinheiten oder Bandbreite) zu nutzen.
  • Andererseits kann ein Speichersystem Daten in Speicherbereichen mit geringerer Leistungsfähigkeit speichern oder an diese übertragen. Wenn sich Zugriffsmuster auf bestimmte Speicherbereiche ändern, müssen einige Speicherbereiche möglicherweise an die Schicht mit höherer Leistungsfähigkeit übertragen werden. Die Schicht mit höherer Leistungsfähigkeit hat jedoch möglicherweise eine begrenzte Speicherkapazität (z.B. eine Anzahl von Bytes), so dass das Speichersystem möglicherweise einige Speicherbereiche aus der Schicht mit höherer Leistungsfähigkeit auslagern muss, um Platz zum Speichern anderer Speicherbereiche zu schaffen. In einem solchen Fall ist ein Programm, das auf Speicherbereiche zugreift, die in eine Schicht mit geringerer Leistungsfähigkeit übertragen werden, möglicherweise nicht in der Lage, alle ihm zugeordneten Ressourcen des Computers zu nutzen, da die Daten nicht mehr in der Schicht mit höherer Leistungsfähigkeit gespeichert sind.
  • Das Übertragen eines Speicherbereichs in eine Schicht mit geringerer Leistungsfähigkeit kann beispielsweise die Latenzzeit beim Zugriff auf den Speicherbereich verlängern. Dementsprechend macht das Programm beim Zugreifen auf Daten im Speicherbereich möglicherweise längere Latenzperioden durch, und diese längeren Latenzperioden können dazu führen, dass das Programm einen Teil von CPU-Ressourcen nicht nutzen kann (z.B. weil das Programm während der Latenzperiode inaktiv ist). Da viele Programme CPU-Ressourcen gemeinsam nutzen können, kann der Computer oder können bestimmte Programme eine höhere Leistungsfähigkeit erreichen, indem sie den ungenutzten Teil von dem Programm zugeordneter CPU verringern (z.B. die Zuordnung aufheben) und diesen Teil sodann anderen Programmen zur Verfügung stellen.
  • Ein Systemadministrator kann einem Programm (oder Betriebssystem) in Reaktion auf erwartete oder vorhergesagte Verarbeitungsanforderungen dieses Programms oder in Relation zu bestimmten Zuordnungsrichtlinien (z.B. können einer bestimmten Anwendung Ressourcen entsprechend einer Verwaltungsrichtlinie zugeordnet werden) Ressourcen zuordnen oder deren Zuordnung aufheben. Ein Computer kann „lizensierte“ CPUs oder Speicher enthalten, indem der Systemadministrator einige, jedoch nicht unbedingt alle, der CPU- oder Speicher-Ressourcen im Computer lizensiert. Der Systemadministrator kann mehr oder weniger solcher Ressourcen entsprechend sich ändernden Verarbeitungsanforderungen des Computers oder von im Computer ausgeführten Anwendungen (z.B. Programmen) lizensieren.
  • Allerdings kann das Übertragen von Daten aus einer Schicht in eine andere hochdynamisch sein, in Sekundenbruchteilen erfolgen, wenn sich Zugriffsmuster auf die Daten ändern. Für eine Person als Administrator ist es gegebenenfalls praktisch nicht durchführbar, Ressourcen-Zuordnungen zum Computer (z.B. Lizensieren von CPUs) oder zu bestimmten Programmen in Reaktion auf solche dynamischen Änderungen von Zugriffsmustern oder auf den Rechenbedarf der vielen normalerweise in einem Computer ablaufenden Programme anzupassen (oder abzustimmen). Folglich gehört zu Aspekten der vorliegenden Offenbarung ein Übermitteln von Zugriffsmustern oder der Speicherstelle bzw. der vorhergesagten Speicherstelle von Daten in bestimmten Schichten von einem mehrschichtigen Speichersystem an eine Ressourcen-Verwaltungsfunktion eines Datenverarbeitungssystems oder Computers.
  • Solche Datenaustauschvorgänge können dem Datenverarbeitungssystem oder Computer ermöglichen, die Zuordnung von Programmen zugeordneten Computer-Ressourcen in Relation zu der sich ändernden Speicherstelle von Daten im Speichersystem oder zu sich änderndem Rechenbedarf automatisch zu modifizieren. Das Datenverarbeitungssystem kann einem Programm zugeordnete Ressourcen - wie zum Beispiel CPUs, Speicher oder Netzbandbreite - entsprechend der aktuellen oder vorhergesagten Speicherstelle von Daten, auf die vom Programm in einem Speichersystem zugegriffen wird, erhöhen oder verringern.
  • 3 ist ein Blockschaltbild, das beispielhafte Interaktionen eines Computers, eines mehrschichtigen Speichersystems und einer Verwaltungskonsole gemäß Merkmalen der Offenbarung veranschaulicht. Ein Datenverarbeitungssystem 300 enthält einen Computer 310, ein Speichersystem 350 und eine Verwaltungskonsole 340, die alle Daten untereinander austauschen. Das Speichersystem enthält zwei Speicherschichten: Schicht-eins 360 und Schicht-zwei 370. Zur Veranschaulichung der Offenbarung kann davon ausgegangen werden, dass es sich bei Schicht-eins um eine Schicht des Speichersystems mit im Vergleich zu Schicht-zwei höherer Leistungsfähigkeit handelt. Der Computer speichert Daten im Speichersystem, und die Verwaltungskonsole ist so konfiguriert, dass sie mit dem Computer und dem Speichersystem in Wechselwirkung steht.
  • Für Fachleute ist es offensichtlich, dass die Verwaltungskonsole 340 stellvertretend für eine beliebige Ausführungsform einer Verwaltungskonsole steht. Bei einer Verwaltungskonsole kann es sich zum Beispiel um ein Programm handeln, das im Computer 310 (z.B. ein Programm eines Betriebssystems oder eines Hypervisor), im Speichersystem 350 oder in einem anderen Element des Datenverarbeitungssystems 300 ausgeführt wird. Eine Verwaltungskonsole kann in einem anderen Computer enthalten sein, der mit dem Computer 310 oder dem Speichersystem 350 Daten austauscht. Die Verwaltungskonsole kann ein Plug-in-Modul (nicht gezeigt) enthalten.
  • Interaktionen oder Datenaustauschvorgänge (z.B. Übertragen von Informationen) zwischen der Verwaltungskonsole und dem Speichersystem oder zwischen dem Speichersystem und dem Computer können in Form von Nachrichten, Hardware-Signalen, Computerprogramm-Funktionsaufrufen oder anderen solchen Datenaustauschvorgängen entsprechend der Art und Weise, in der der Computer, das Speichersystem und die Verwaltungskonsole im Datenverarbeitungssystem konfiguriert sind, erfolgen. Zur Veranschaulichung bezieht sich „Verwaltungskonsole“ im Folgenden auf eine beliebige Funktion eines Datenverarbeitungssystems, unter anderem ein Plug-in, das gemäß Merkmalen der Offenbarung ausgeführt wird, um Informationen zwischen einem Speichersystem und einem Computer, der Daten in diesem Speichersystem speichert, zu übermitteln.
  • Der Computer beinhaltet Betriebssysteme 302A und 302B, und die Betriebssysteme 302A und 302B beinhalten Programme 304A bzw. 304B. In Ausführungsformen kann eine Mehrzahl von Programmen in einem bestimmten Betriebssystem ausgeführt werden. Die Betriebssysteme können die Zuordnung von Ressourcen des Speichersystems zu den Programmen verwalten und den Programmen Datenträger oder Speicherbereiche zuordnen. Die Betriebssysteme können das Speichersystem anweisen, die Übertragung von den Programmen zugeordneten Speicherbereichen oder Datenträgern zwischen den Schichten zu ermöglichen oder auszusetzen. Die Betriebssysteme können die Zuordnung von Ressourcen des Computers zu den Programmen verwalten.
  • Außerdem sind ein Hypervisor 306 sowie CPUs und Speicher (beides nicht gezeigt) in dem Computer enthalten, der in gewisser Hinsicht dem Computer 110 von 1 ähnlich sein kann. Der Hypervisor kann die Zuordnung von Ressourcen des Computers zu den Betriebssystemen verwalten wie etwa CPUs, Speicher oder Netzwerk-Ressourcen (z.B. physische oder virtualisierte Netzwerkeinheiten). Ein Hypervisor kann außerdem für Betriebssysteme oder Programme lizensierte CPUs oder lizensierten Speicher verwalten oder an deren Verwaltung beteiligt sein. Ein Systemadministrator kann Richtlinien erstellen, die festlegen, wie ein Hypervisor CPU- oder Speicherlizenzen eines Computers verwaltet.
  • In Ausführungsformen können ein Speichersystem, ein Computer oder eine Verwaltungskonsole eines Datenverarbeitungssystems miteinander in Wechselwirkung stehen, um Ressourcen des Computers oder im Speichersystem gespeicherte Daten gemäß dem Beispiel von 3 zu verwalten. In einer Ausführungsform kann das Speichersystem die Übertragung von Speicherbereichen zwischen Schichten im selbigen, beispielsweise zwischen Schicht-eins 360 und Schicht-zwei 370, überwachen. Das Speichersystem kann Zugriffsmuster ermitteln und ermitteln, welche bestimmten Speicherbereiche in Schicht-eins oder Schicht-zwei des Speichersystems gespeichert sind, oder es kann vorhersagen, welche Speicherbereiche wahrscheinlich an diese übertragen werden.
  • Um Aspekte der Offenbarung zu veranschaulichen, überträgt (320) das Speichersystem 350 Informationen an die Verwaltungskonsole 340. Die Informationen können beinhalten, welche Speicherbereiche gegenwärtig in Schicht-eins (oder Schicht-zwei) gespeichert sind oder von welchen vorhergesagt wurde, dass sie an diese übertragen werden, und sie können außerdem Informationen bezüglich der Anzahl oder der Häufigkeit von Zugriffen auf diese Speicherbereiche oder andere Aspekte von Zugriffsmustern beinhalten. Das Speichersystem kann zu einem oder mehreren bestimmten Zeitpunkten während Arbeitsgängen des Computers oder Speichersystems (z.B. Einschalten oder Zurücksetzen) Informationen übertragen oder kann solche Informationen periodisch übertragen. Die Häufigkeit, mit der das Speichersystem Informationen an die Verwaltungskonsole übertragen kann, kann als feststehender Wert eingerichtet werden, so dass er beispielsweise durchschnittlichen Zugriffs- oder Speicherbereichsübertragungs-Latenzzeiten entspricht, oder er kann verändert werden, wenn beispielsweise die Zugriffslatenzzeiten oder Übertragungsvorgänge von Speicherbereichen zunehmen oder abnehmen.
  • Die Verwaltungskonsole kann die Informationen empfangen und verarbeiten. Verarbeiten der Informationen kann Analysieren der Informationen beinhalten, um Tendenzen oder Speicherstellen von Daten im Zusammenhang mit dem Übertragen von Speicherbereichen zwischen Schichten zu ermitteln. Die Verwaltungskonsole kann zum Beispiel festlegen, dass bestimmte Speicherbereiche eines Datenträgers an Schicht-eins (oder Schicht-zwei) übertragen werden können, und zwar anhand anderer übertragener Speicherbereiche dieses Datenträgers oder anhand eines Hinweises (z.B. eines Zugriffsmusters) vom Speichersystem, der vorhersagt, dass diese bestimmten Speicherbereiche an Schicht-eins (oder Schicht-zwei) übertragen werden.
  • Um andere Aspekte der Offenbarung zu veranschaulichen, überträgt (321) die Verwaltungskonsole Informationen an den Computer, die die vom Speichersystem empfangenen (320) Informationen betreffen. Bei den Informationen kann es sich um die vom Speichersystem empfangenen Informationen, Informationen, die sich aus der Verarbeitung der empfangenen (320) Informationen durch die Verwaltungskonsole ergeben, oder eine Kombination aus beidem handeln. Der Computer oder eine Komponente des Computers empfängt (321) außerdem die Informationen von der Verwaltungskonsole. In einigen Ausführungsformen kann ein Speichersystem direkt Daten mit einem Computer austauschen, so dass das Übermitteln der Informationen an den Computer (320 und 321) eine einzige Interaktion zwischen dem Computer und dem Speichersystem ist, an der keine Verwaltungskonsole beteiligt ist, oder es bezieht eine im Computer oder im Speichersystem enthaltene Verwaltungskonsolenfunktion mit ein.
  • Der Computer 310 kann eine Ressourcen-Verwaltungsfunktion - zum Beispiel ein Programm eines Betriebssystems oder der Hypervisor - enthalten. Die Ressourcen-Verwaltungsfunktion kann die empfangenen (321) Informationen verwenden, um die Zuordnung von Ressourcen des Computers zu Programmen wie etwa 304A oder 304B zu modifizieren. Das Betriebssystem 302A kann zum Beispiel dem Programm 304A zugeordnete CPU-Ressourcen in Reaktion auf die oder in Relation zu den von der Verwaltungskonsole empfangenen Informationen erhöhen oder verringern. Der Hypervisor kann die empfangenen (321) Informationen empfangen oder verwenden, um die Zuordnung von Ressourcen des Computers zum Betriebssystem 302A oder 302B zu modifizieren. Der Hypervisor kann zum Beispiel zusätzliche CPUs oder Speicherkapazität in Relation zu Daten, die an eine Schicht mit höherer Leistungsfähigkeit übertragen werden, lizensieren oder kann in Relation zu Daten, die an eine Schicht mit geringerer Leistungsfähigkeit übertragen werden, Lizenzen für einige CPUs oder Speicher freigeben. Anschließend kann der Hypervisor die zusätzlich lizensierten CPUs oder Speicher dem Betriebssystem 302A oder 302B zuordnen.
  • Um den größer werdenden Rechendurchsatz zu veranschaulichen, kann das Programm 304A in Relation zu Daten, die an Schicht-eins übertragen werden, auf Speicherbereiche zugreifen, die in Schicht-eins gespeichert sind oder an diese übertragen werden. Für den Fall, dass sich Speicherbereiche in Schicht-eins befinden, kann das Programm 304A schneller (z.B. mit einer geringeren Zugriffslatenzzeit) auf diese Speicherbereiche zugreifen. Dementsprechend ist das Programm möglicherweise imstande, den Verarbeitungsdurchsatz zu erhöhen. Beispielsweise kann der Verarbeitungsdurchsatz des Programms mit der Anzahl von IOPS zusammenhängen, die das Programm in Bezug auf Daten im Speichersystem ausführen kann. Eine verringerte Zugriffslatenzzeit in Bezug auf in Schicht-eins 360 gespeicherte Daten kann dem Programm 304A ermöglichen, die Anzahl von IOPS auf diese Daten zu erhöhen und dementsprechend den Verarbeitungsdurchsatz zu steigern. In gleicher Weise kann eine verringerte Zugriffslatenzzeit in Bezug auf Daten in einer Schicht mit höherer Leistungsfähigkeit die Zeit, in der ein Programm andernfalls inaktiv ist, indem es beispielsweise auf das Ausführen eines Zugriffs wartet, entsprechend verkürzen. Folglich kann eine verkürzte Zugriffslatenzzeit in Bezug auf Daten in Schicht-eins dem Programm ermöglichen, sodann zuvor inaktive CPU-Ressourcen zu nutzen, um (zum Beispiel) zusätzliche Berechnungen oder zusätzliche Datenaustauschvorgänge im Netzwerk auszuführen.
  • Ein Zuordnen von mehr CPU-Ressourcen (z.B. Prozessor-Threads oder -kerne) oder Speicher-Ressourcen (z.B. zusätzliche fixierte virtuelle Speicherseiten) zum Programm kann außerdem zum Erhöhen des Verarbeitungsdurchsatzes in Relation auf das Zugreifen auf in einer Schicht mit höherer Leistungsfähigkeit gespeicherte Daten beitragen. Gemäß dem Beispiel kann eine Ressourcen-Verwaltungsfunktion des Computers 310 (z.B. das Betriebssystem 302A oder der Hypervisor) dementsprechend festlegen, dem Programm 304A in Bezug auf Daten, auf die vom Programm in Schicht-eins des Speichersystems zugegriffen wird, eine Menge einer bestimmten Ressource (z.B. CPUs, Speicher oder Netzwerk-Ressourcen) zuzuordnen. Wenn die Ressourcen für ein Zuordnen zum Programm 304A verfügbar sind, kann die Ressourcen-Verwaltungsfunktion die Zuordnung ausführen.
  • Ressourcen des Computers können entsprechend dem Status der Ressourcen, des Computers oder von Ressourcen, die einem Betriebssystem oder Programm zu dem Zeitpunkt zugeordnet sind, zu dem der Computer die Informationen empfängt (321), zum Zuordnen verfügbar sein. Für die Offenbarung kann der Status der verschiedenen Ressourcen oder des Computers zum Zeitpunkt des Empfangens der Informationen durch den Computer als der „dynamische Zuordnungsstatus“ der Ressourcen des Computers betrachtet werden. Eine Zuordnung von Computer-Ressourcen zu den Betriebssystemen (oder Programmen in einem Betriebssystem) kann gemäß Verwaltungsrichtlinien des Computers oder Datenverarbeitungssystems erfolgen.
  • Eine Zuordnung von Ressourcen (z.B. CPUs oder Speicher) kann von Lizensierungsrichtlinien oder von der Menge an Ressourcen abhängig sein, die zum Zeitpunkt des Empfangens der Informationen durch den Computer lizensiert werden. Beispielsweise kann die Zuordnung der Computer-Ressourcen zum Programm 304A durch eine Verwaltungsrichtlinie begrenzt sein, und zum Zeitpunkt des Empfangens der Informationen durch den Computer kann dem Programm 304A die maximale Menge einer Ressource innerhalb dieser Richtlinie zugeordnet sein. In anderen Fällen können Ressourcen des Computers zum Zeitpunkt des Empfangens der Informationen durch den Computer (oder eine Ressourcen-Verwaltungsfunktion) anderen Betriebssystemen oder Programmen zugeordnet sein. Beispielsweise können Ressourcen, die dem Programm 304A zum Zeitpunkt des Empfangens der Informationen (321) durch den Computer zugeordnet werden sollen, anderen Programmen (nicht gezeigt) innerhalb des Betriebssystems 302A oder dem Betriebssystem 302A zugeordnet werden. Folglich sind in einigen Fällen gemäß dem dynamischen Zuordnungsstatus dieser Ressourcen möglicherweise keine zusätzlichen Ressourcen für ein Zuordnen zum Programm verfügbar.
  • Dementsprechend kann eine Ressourcen-Verwaltungsfunktion im Computer 310 feststellen, dass das Programm 304A nicht mit einer höheren Häufigkeit auf bestimmte Daten (z.B. in Schicht-eins gespeicherte Speicherbereiche) zugreifen kann oder keinen Zugriff mit kürzerer Latenzzeit auf diese Daten in Relation zu den in Schicht-eins gespeicherten Daten nutzen kann. Gemäß Merkmalen der Offenbarung überträgt (322) der Computer in diesem Fall Informationen bezüglich der Speicherbereiche, auf die vom Programm 304A zugegriffen wird, an die Verwaltungskonsole. Die Informationen können anzeigen, dass das Programm nicht die Zugriffsleistung nutzen kann, die den im Speicher von Schicht-eins 360 gespeicherten Daten entspricht. Die Informationen können anzeigen, dass in Schicht-eins gespeicherte Daten an die Schicht-zwei 370 übertragen werden können oder dass Daten, die gegenwärtig nicht in einer Schicht-eins gespeichert sind, nicht an Schicht-eins übertragen werden müssen.
  • Die Verwaltungskonsole kann die Informationen empfangen (322) und verarbeiten. Zum Verarbeiten der Informationen kann gehören, dass die Verwaltungskonsole festlegt, dass das Speichersystem das Speichern der Daten (z.B. bestimmte Speicherbereiche oder Datenträger, die die Speicherbereiche enthalten), die in den Informationen in einer Schicht mit höherer Leistungsfähigkeit wie etwa Schicht-eins 360 enthalten sind, aussetzen muss. Dementsprechend überträgt (323) die Verwaltungskonsole Informationen bezüglich der vom Computer empfangenen (322) Daten an das Speichersystem. Bei den übertragenen (323) Informationen kann es sich um die empfangenen Informationen, um Informationen, die sich aus dem Verarbeiten der empfangenen Informationen durch die Verwaltungskonsole ergeben, oder um eine Kombination aus beidem handeln. Zu den an das Speichersystem übertragenen Informationen kann ein Befehl zum Aussetzen des Übertragens der Daten oder von Teilen der Daten (z.B. Speicherbereiche) an Schicht-eins oder zum Übertragen der Daten oder von Teilen davon aus Schicht-eins an Schicht-zwei (eine Schicht mit geringerer Leistungsfähigkeit) gehören.
  • In Reaktion auf empfangene (323) Informationen kann das Speichersystem das Übertragen eines in Schicht-zwei 370 gespeicherten Speicherbereichs an einen Speicher in Schicht-eins 360 aussetzen oder gegenwärtig in Schicht-eins gespeicherte Daten an Schicht-zwei übertragen. In einigen Ausführungsformen kann ein Speichersystem, beispielsweise 350, direkt Daten mit einem Computer, beispielsweise 310, austauschen, so dass es sich bei 322 und 323 um eine einzelne Interaktion zwischen dem Computer und dem Speichersystem handeln kann, an der keine Verwaltungskonsole beteiligt ist, oder es bezieht eine im Computer oder im Speichersystem enthaltene Verwaltungskonsolenfunktion mit ein.
  • In einem anderen Beispiel können vom Computer empfangene (321) Informationen anzeigen, dass Daten an eine Schicht mit geringerer Leistungsfähigkeit (z.B. von Schicht-eins an Schicht-zwei) übertragen werden. Das Programm 304A kann auf einen Speicherbereich zugreifen, von dem in den Informationen angezeigt wird, dass er in Schicht-zwei gespeichert oder an diese übertragen werden muss. Der an Schicht-zwei übertragene Speicherbereich kann sich zum Beispiel daraus ergeben, dass das Programm 304A mit einer geringeren Häufigkeit auf diese Daten zugreift. Alternativ ist das Speichersystem möglicherweise gemäß internen Anforderungen des Speichersystems 350 nicht imstande, den Speicherbereich in Schicht-eins zu speichern. Das Programm 304A kann dementsprechend mit einer geringeren Häufigkeit auf den Speicherbereich in Schicht-zwei zugreifen.
  • In Relation zum Zugreifen auf die Daten in der Schicht-zwei mit geringerer Leistungsfähigkeit ist das Programm 304A (zum Beispiel) möglicherweise nicht imstande, bestimmte ihm zugeordnete Ressourcen in vollem Umfang zu nutzen. Beispielsweise können dem Programm 304A zugeordnete Ressourcen nicht in vollem Umfang genutzt werden, weil das Programm nicht so viele IOPS auf in Schicht-zwei gespeicherte Daten ausführen kann. Ressourcen können aus anderen Gründen nicht in vollem Umfang genutzt werden (z.B. andere Rechen- oder E/A-Anforderungen im Computer), und die an Schicht-zwei übertragenen Daten können diese Unterauslastung anzeigen. In ähnlicher Weise können vom Computer empfangene (321) Informationen Zugriffsmuster auf bestimmte Daten (z.B. Speicherbereiche oder Datenträger) enthalten, und die Zugriffsmuster können anzeigen, dass ein bestimmtes Programm, das auf diese Daten zugreift, dem Programm zugeordnete Ressourcen nicht in vollem Umfang nutzen kann. Dementsprechend kann eine Ressourcen-Verwaltungsfunktion des Computers oder des Datenverarbeitungssystems festlegen, die Zuordnung dieser Ressourcen zum Programm zu verringern.
  • Ein Speichersystem wie beispielsweise dasjenige von 3 kann ein Übertragen von Daten an Schichten mit höherer Leistungsfähigkeit wieder aufnehmen, wenn sich Zugriffsmuster auf die Daten ändern. Beispielsweise kann ein Programm, das auf Daten (z.B. einen Speicherbereich oder einen Datenträger) im Speichersystem zugreift, im Anschluss an ein Übertragen dieser Daten an eine Schicht mit geringerer Leistungsfähigkeit durch das Speichersystem IOPS erhöhen. Wenn die Häufigkeit eines Zugriffs auf diese Daten beispielsweise über einen bestimmten Schwellenwert steigt, kann das Speichersystem ein Übertragen dieser Daten (z.B. ein oder mehrere Speicherbereiche) an Schichten des Speichersystems mit höherer Leistungsfähigkeit wieder aufnehmen. Alternativ kann der Computer oder eine Verwaltungskonsole Informationen an das Speichersystem übertragen, um das Speichersystem zu veranlassen oder diesem anzuzeigen, ein Übertragen dieser Daten (z.B. Speicherbereiche oder Datenträger) an Schichten mit höherer Leistungsfähigkeit wieder aufzunehmen.
  • In einer alternativen Ausführungsform kann eine Verwaltungskonsole Daten mit einem Computer austauschen, um Informationen bezüglich Ressourcen anzufordern oder anderweitig zu erhalten, die Programmen im Computer zugeordnet sind, die auf Daten in einem Speichersystem zugreifen. Außerdem kann eine Verwaltungskonsole Daten mit einem Speichersystem austauschen, die Zugriffe auf und Speicherstellen von Speicherbereichen im Speichersystem betreffen, und eine Verwaltungskonsole kann so vorgehen, dass sie den Programmen im Computer zugeordnete Ressourcen entsprechend den angeforderten oder erhaltenen Informationen erhöht oder verringert. In ähnlicher Weise kann eine Verwaltungskonsole so vorgehen, dass sie ein Übertragen von Speicherbereichen von einer Schicht des Speichers an eine andere entsprechend den angeforderten oder erhaltenen Informationen aussetzt.
  • 4 veranschaulicht ein beispielhaftes Verfahren 400 gemäß Aspekten der Offenbarung, um einem Programm zugeordnete Datenverarbeitungs-Ressourcen zu verwalten und um das Übertragen von Speicherbereichen aus Schichten eines mehrschichtigen Speichersystems mit geringerer Leitungsfähigkeit an Schichten mit höherer Leistungsfähigkeit zu verwalten. Um das Verfahren zu veranschaulichen, jedoch ohne Beschränkung von Ausführungsformen, wird ein beispielhaftes Speichersystem betrachtet, um darin gespeicherte Daten in Speicherbereiche zu organisieren. Es wird davon ausgegangen, dass das Speichersystem verschiedene Speicherbereiche in Datenträgern beinhaltet, und die Datenträger sind Programmen zugeordnet, die Daten im Speichersystem speichern. Die Veranschaulichung des beispielhaften Verfahrens 400, jedoch ohne Beschränken von Ausführungsformen, nimmt in der Offenbarung bei „Speicherbereichen“ sowohl auf beliebige Speicherbereiche im Speichersystem als auch auf Datenträger Bezug, die diese Speicherbereiche enthalten. Zur weiteren Veranschaulichung, jedoch ebenfalls ohne Beschränkung von Ausführungsformen, gehören zum beispielhaften Speichersystem ein Schicht-eins- (T1-) und ein Schicht-zwei- (T2-) Speicher, wobei davon ausgegangen wird, dass T1 im Vergleich zu T2 eine höhere Leistungsfähigkeit hat.
  • Gemäß der Darstellung wird das Verfahren 400 vom Speichersystem und einer Ressourcen-Verwaltungseinrichtung ausgeführt. Bei einer Ressourcen-Verwaltungseinrichtung kann es sich um eine beliebige Komponente oder eine Kombination von Komponenten in einem Datenverarbeitungssystem handeln, die ausgeführt werden, um Ressourcen des Datenverarbeitungssystems Programmen (z.B. Betriebssystemen oder im Computer oder einem Betriebssystem ausgeführten Programmen) zuzuordnen (oder deren Zuordnung aufzuheben). Bei einer Ressourcen-Verwaltungseinrichtung kann es sich um eine Komponente eines anderen Computers handeln, die Daten mit dem Computer austauscht, der Daten im Speichersystem speichert, wie beispielsweise ein Betriebssystem in einem anderen Computer (z.B. ein Sensorprogramm einer virtuellen Maschine oder ein Systemverwaltungsprogramm). Bei einer Ressourcen-Verwaltungseinrichtung kann es sich um einen Hypervisor, ein Betriebssystem oder eine Anwendung oder ein Programm im Computer oder im Speichersystem oder um eine Kombination aus beliebigen von diesen handeln. Eine Ressourcen-Verwaltungseinrichtung kann in einer Verwaltungskonsole oder in einem Programm (z.B. einem Plug-in) einer Verwaltungskonsole enthalten sein.
  • Für Fachleute ist es offensichtlich, dass eine Ressourcen-Verwaltungseinrichtung in einer Vielfalt von Komponenten eines Datenverarbeitungssystems oder in einer Kombination aus solchen Komponenten enthalten sein kann. Alternativ beinhaltet eine Ausführungsform möglicherweise keine Ressourcen-Verwaltungseinrichtung gemäß der Offenbarung. Die Veranschaulichung soll Ausführungsformen nicht beschränken, und eine einzelne Komponente eines Datenverarbeitungssystems - beispielsweise ein Computer, eine Verwaltungskonsole, das Speichersystem oder eine Funktion oder Komponente von diesen - kann das Verfahren ausführen.
  • Bei 402 überwacht das Speichersystem Zugriffe auf in Speicherschichten gespeicherte Speicherbereiche und analysiert bestimmte Maßzahlen wie beispielsweise die Häufigkeit oder Anzahl von Zugriffen auf verschiedene Speicherbereiche. Das Speichersystem kann die Maßzahlen verwenden, um Zugriffsmuster zu ermitteln. Als Teil der Analyse kann das Speichersystem feststellen, dass auf einen bestimmten Speicherbereich mit einer hohen Häufigkeit zugegriffen wird, und kann diesen Speicherbereich an T1 übertragen. Alternativ kann das Speichersystem in Relation zu bestimmten Maßzahlen feststellen, dass ein bestimmter Speicherbereich (oder beispielsweise andere Speicherbereiche in diesem Datenträger) in T1 gespeichert sein sollte oder wahrscheinlich dort gespeichert ist. Dementsprechend kann das Speichersystem die Übertragung des Speicherbereichs (der Speicherbereiche) an T1 vorbereiten oder einleiten. Im Folgenden umfasst „Übertragen“ eines Speicherbereichs an oder aus T1 (oder allgemein eine Schicht des Speichersystems), dass Übertragen des Speicherbereichs an oder aus T1 (oder allgemein eine Schicht des Speichersystems) vorhergesagt wird, der Speicherbereich zum Übertragen vorbereitet wird oder sich im Prozess des Übertragens befindet.
  • Ausgehend davon, dass die Anzahl von Zugriffen auf einen Speicherbereich einen Schwellenwert übersteigt, kann das Speichersystem feststellen, dass es sich bei einer Zugriffshäufigkeit um eine hohe Häufigkeit handelt. Bei dem Schwellenwert kann es sich um eine Anzahl von Zugriffen pro Sekunde oder eine Anzahl von Zugriffen auf einen Speicherbereich handeln, die ein Bruchteil einer Anzahl von Zugriffen auf eine Gruppe von Speicherbereichen ist. Der Schwellenwert kann ein feststehender oder ein veränderbarer Wert sein, beispielsweise in Relation zu einer sich ändernden Zugriffslatenzzeit oder Zugriffshäufigkeit auf Speicherbereiche. Alternativ kann das Speichersystem feststellen, dass es sich bei der Zugriffshäufigkeit um eine hohe Häufigkeit handelt oder dass bestimmte Speicherbereiche an T1 übertragen werden müssen, wenn das Speichersystem Zugriffe auf diesen Speicherbereich in eine Warteschlange stellen muss und die Warteschlange eine bestimmte Tiefe (oder Diensthäufigkeit) hat.
  • Bei 404 überträgt das Speichersystem Informationen aus der Überwachung oder der Analyse an die Ressourcen-Verwaltungseinrichtung. Die Informationen können Zugriffsmuster beinhalten oder bestimmte Speicherbereiche kennzeichnen, die sich in T1 (oder alternativ T2) befinden oder dorthin übertragen werden. Das Speichersystem kann 402 und 404 periodisch wiederholen, wenn sich Zugriffshäufigkeiten auf verschiedene Speicherbereiche ändern oder wenn Speicherbereiche an oder aus T1 oder T2 übertragen werden. Das Speichersystem kann 402 und 404 entsprechend einem festgelegten Zeitintervall oder einem durch den Benutzer abstimmbaren Zeitintervall wiederholen. In einigen Ausführungsformen kann das Speichersystem 402 und 404 in Reaktion auf Änderungen an bestimmten Status des Speichersystems oder von Speicherbereichen wiederholen. Bei solchen Status kann es sich zum Beispiel um ein Ansteigen der Häufigkeit, mit der Speicherbereiche an T1 übertragen werden, die Menge von verfügbarem Speicherplatz in T1 zu einem bestimmten Zeitpunkt oder Änderungen an der Konfiguration von Datenträgern im Speichersystem handeln.
  • Bei 406 analysiert die Ressourcen-Verwaltungseinrichtung die bei 404 empfangenen Informationen, um zu ermitteln, ob bestimmte Speicherbereiche in T1 gespeichert sind oder dorthin übertragen werden, und um die Speicherbereiche oder die die Speicherbereiche enthaltenden Datenträger zu ermitteln. Zu diesen können Speicherbereiche gehören, von denen die Ressourcen-Verwaltungseinrichtung gegenwärtig nicht weiß, dass sie im T1-Speicher gespeichert sind, oder von denen in früheren bei 404 empfangenen Informationen nicht berichtet wurde, dass sie im T1-Speicher gespeichert sind oder dorthin übertragen werden, die jedoch in den gegenwärtigen Informationen enthalten sind. Die Ressourcen-Verwaltungseinrichtung kann Informationen bezüglich Programmen im Computer haben, die auf Daten im Speichersystem zugreifen. Alternativ kann die Ressourcen-Verwaltungseinrichtung so konfiguriert sein, dass sie solche Informationen von einer Komponente des Datenverarbeitungssystems erhält, beispielsweise vom Computer oder einem Betriebssystem oder Hypervisor im Computer.
  • Wenn bei 404 von bestimmten Speicherbereichen festgestellt wird, dass sie in T1 gespeichert sind oder dorthin übertragen werden, ermittelt die Ressourcen-Verwaltungseinrichtung bei 408 Programme, die diese Speicherbereiche verwenden, oder Programme, die Speicherdatenträger verwenden, die einen oder mehrere dieser Speicherbereiche enthalten. Bei einem solchen Programm kann es sich um ein Programm, das in einem Betriebssystem (z.B. einer Auslastungspartition) abläuft, eine Instanz eines Betriebssystems in einer VM oder um ein beliebiges Programm handeln, das in einem Computer ausgeführt wird und Daten im Speichersystem speichert.
  • Bei 410 ermittelt die Ressourcen-Verwaltungseinrichtung, ob es zusätzliche Computer-Ressourcen gibt, die dem bei 408 ermittelten Programm zur Verfügung gestellt werden könnten. Der Computer kann dem Programm zum Beispiel zusätzliche CPUs (oder Kerne oder Threads einer CPU) zuordnen oder kann mehr CPU-Lizenzen aktivieren, um dem Programm mehr CPUs (oder Kerne oder Threads einer CPU) zur Verfügung zu stellen. In ähnlicher Weise kann ein Computer mehr Speicher zuordnen oder mehr Speicherlizenzen aktivieren, um dem Programm mehr Speicherkapazität zur Verfügung zu stellen. Ein Computer kann dem Programm mehr Netzwerkbandbreite zuordnen (z.B. eine weitere Netzwerkschnittstelle oder eine Verbindung in einem Netzwerk-Trunk zuweisen oder die Kapazität einer virtuellen Netzwerkschnittstelle erhöhen). Zusätzliche Ressourcen wie diese können dem Programm ermöglichen, die Anzahl oder Häufigkeit von Zugriffen oder die Anzahl von IOPS auf bei 406 ermittelte Speicherbereiche zu erhöhen. Erhöhen der Zugriffshäufigkeit oder von IOPS kann wiederum dazu führen, dass das Speichersystem die Übertragung von anderen Speicherbereichen als den bei 406 ermittelten Speicherbereichen an T1 vorbereitet oder einleitet, beispielsweise von anderen Speicherbereichen in demselben(denselben) Datenträger(n).
  • Wenn die Ressourcen-Verwaltungseinrichtung bei 410 feststellt, dass mehr Ressourcen verfügbar sind, ordnet die Ressourcen-Verwaltungseinrichtung diese Ressourcen bei 412 dem Programm zu. Bei 422 stellt die Ressourcen-Verwaltungseinrichtung fest, dass die Analyse der bei 404 empfangenen Informationen abgeschlossen ist. Alternativ kann die Ressourcen-Verwaltungseinrichtung bei 410 feststellen, dass keine zusätzlichen Ressourcen verfügbar sind. Zum Beispiel gestattet die CPU-Lizensierungsrichtlinie möglicherweise nicht das Lizensieren weiterer CPUs oder das Programm hat möglicherweise eine CPU-„Grenzmenge“ erreicht (z.B. eine maximale Menge an CPU-Ressourcen, die dem Programm gestattet ist). Dementsprechend weist die Ressourcen-Verwaltungseinrichtung das Speichersystem bei 420 an, das Speichern von bestimmten Speicherbereichen, auf die das Programm zugreift, in T1 oder das Übertragen dorthin auszusetzen.
  • In verschiedenen Ausführungsformen kann der Befehl bei 420 das Speichersystem so steuern, dass es das Speichern der bestimmten Speicherbereiche in oder das Übertragen von diesen an T1 aussetzt, oder er kann das Speichern von Speicherbereichen in einem bestimmten Datenträger (oder Datenträgern) in T1 oder das Übertragen von diesen an T1 aussetzen. Der Befehl kann ein Aussetzen des Überwachens von Zugriffen auf bestimmte Speicherbereiche oder auf Speicherbereiche in einem Datenträger beinhalten. Alternativ kann der Befehl das Speichersystem veranlassen, das Speichern der bestimmten Speicherbereiche oder von Speicherbereichen in einem Datenträger in oder das Übertragen von diesen an T1 auszusetzen, jedoch das Überwachen von Zugriffen auf diese Speicherbereiche fortzusetzen. Der Befehl kann außerdem ein Anweisen des Speichersystems beinhalten, gegenwärtig in T1 gespeicherte Speicherbereiche an T2 (d.h. an eine andere Schicht) zu übertragen.
  • Bei 420 kann das Speichersystem gemäß den bestimmten Aspekten des Befehls (z.B. Aussetzen des Übertragens, jedoch Fortsetzen des Überwachens, oder Aussetzen von beidem) das Speichern der Speicherbereiche in oder das Übertragen von diesen an T1 aussetzen oder das Überwachen von Zugriffen auf die Speicherbereiche aussetzen. Wenn die Speicherbereiche in T1 gespeichert sind, kann das Speichersystem diese außerdem an eine andere Schicht übertragen wie beispielsweise T2 (z.B. eine Schicht mit geringerer Leistungsfähigkeit). Anschließend kann die Ressourcen-Verwaltungseinrichtung das Speichersystem gemäß den bestimmten Aspekten des Befehls bei 420 anweisen, das Übertragen der Speicherbereiche an T1 wieder aufzunehmen oder das Überwachen von Zugriffen auf die Speicherbereiche wieder aufzunehmen. Anweisen des Speichersystems zum Wiederaufnehmen des Überwachens oder des Übertragens der Speicherbereiche an T1 kann in Reaktion darauf erfolgen, dass Ressourcen zum Zuordnen zu Programmen verfügbar werden, die diese Speicherbereiche verwenden. Anweisen des Speichersystems zum Wiederaufnehmen des Überwachens oder des Übertragens von Speicherbereichen an T1 kann in Reaktion darauf erfolgen, dass das Speichersystem 402 und 404 wiederholt und die Ressourcen-Verwaltungseinrichtung anschließend Informationen bezüglich verschiedener Speicherbereiche empfängt (404) und verarbeitet (406 bis 418).
  • Alternativ kann die Ressourcen-Verwaltungseinrichtung bei 406 feststellen, dass bestimmte Speicherbereiche nicht an T1 übertragen werden. Bei 414 kann die Ressourcen-Verwaltungseinrichtung ermitteln, ob stattdessen bestimmte Speicherbereiche in den bei 404 empfangenen Informationen aus T1 übertragen werden oder wurden. Von solchen Speicherbereichen kann in den zuvor bei 404 empfangenen Informationen angezeigt werden, dass sie in T1 gespeichert oder dorthin übertragen werden müssen, und von diesen wird in den anschließend bei 404 empfangenen Informationen nicht angezeigt, dass sie gegenwärtig in T1 gespeichert sind oder dorthin übertragen werden. Für bestimmte Speicherbereiche, die aus T1 übertragen wurden oder werden, ermittelt die Ressourcen-Verwaltungseinrichtung bei 416 Programme, die diese Speicherbereiche verwenden oder die Datenträger verwenden, die einen oder mehrere der Speicherbereiche enthalten.
  • Bei 418 ermittelt die Ressourcen-Verwaltungseinrichtung anhand bestimmter Speicherbereiche, die von dem bei 416 ermittelten Programm verwendet werden und die aus T1 übertragen werden oder wurden, ob das Programm Ressourcen des Computers, die diesem Programm zugeordnet wurden, in vollem Umfang nutzen kann. Wenn das Programm diese Ressourcen nicht in vollem Umfang nutzen kann, kann die Ressourcen-Verwaltungseinrichtung diese Ressourcen verringern. Zum Beispiel kann die Ressourcen-Verwaltungseinrichtung die Anzahl von dem Programm zugeordneten CPUs (oder CPU-Kernen oder Threads) verringern oder CPU-Lizenzen deaktivieren, um dem Programm zur Verfügung stehende CPUs zu verringern. Auf ähnliche Weise kann eine Ressourcen-Verwaltungseinrichtung dem Programm zugeordneten Speicher verringern oder Speicherlizenzen deaktivieren, die Speicher betreffen, deren Zuordnung zu dem Programm aufgehoben wurde. Eine Ressourcen-Verwaltungseinrichtung kann die Zuordnung von dem Programm zugeordneter Netzwerkbandbreite aufheben (z.B. eine Netzwerkschnittstelle oder eine Verbindung in einem Trunk entfernen oder die Kapazität einer virtuellen Netzwerkschnittstelle verringern). Nach dem Verringern der Ressourcen bei 418 stellt die Ressourcen-Verwaltungseinrichtung bei 422 fest, dass die Analyse der Speicherbereiche in den bei 404 empfangenen Informationen abgeschlossen ist.
  • Fachleute werden verstehen, das verschiedene alternative Ausführungsformen die Merkmale der durch das beispielhafte Verfahren 400 veranschaulichten Offenbarung verwenden können.
  • 5 zeigt einen Herstellungsgegenstand oder ein Computerprogrammprodukt 500, das eine Ausführungsform der Offenbarung ist. Das Computerprogrammprodukt 500 kann ein Aufzeichnungsmedium 502 enthalten, und das Aufzeichnungsmedium 502 kann Programmmodule 504, 506, 508 und 510 speichern, damit ein Computer die Aspekte der Offenbarung ausführen kann. Beim Aufzeichnungsmedium 502 kann es sich um eine CD-ROM, eine DVD, ein Band, eine Diskette, einen nichtflüchtigen oder Flash-Speicher, ein Speichermedium, auf das von einer Netzwerkverbindung zugegriffen wird, oder ein anderes ähnliches computerlesbares Medium handeln, das ein Programmprodukt enthalten kann.
  • Eine Folge von Programmbefehlen in den Programmmodulen 504, 506, 508 oder 510 oder eine Anordnung aus einem oder mehreren zusammenhängenden Modulen, die durch diese definiert werden, können einen Computer veranlassen, die Aspekte der Offenbarung zu implementieren, unter anderem, jedoch ohne darauf beschränkt zu sein, die Strukturen und Arbeitsgänge, die in der vorliegenden Offenbarung veranschaulicht und beschrieben werden.
  • Die vorliegende Offenbarung kann als System, Verfahren und/oder Computerprogrammprodukt mit jedem möglichen technischen Integrationsgrad verkörpert werden. Zum Computerprogrammprodukt können ein oder mehrere computerlesbare Speichermedien mit darin gespeicherten computerlesbaren Programmbefehlen gehören, um einen Prozessor zu veranlassen, Aspekte der vorliegenden Offenbarung auszuführen.
  • Beim computerlesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Befehle zum Verwenden durch eine Befehlsausführungseinheit speichern kann. Beim computerlesbaren Speichermedium kann es sich beispielsweise, ohne jedoch darauf beschränkt zu sein, um eine elektronische Speichereinheit, eine Magnetspeichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiter-Speichereinheit oder eine beliebige geeignete Kombination aus den vorgenannten handeln. Zu einer nichterschöpfenden Liste von spezifischeren Beispielen für das computerlesbare Speichermedium gehören die folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktdisk-Nur-Lese-Speicher (CD-ROM), eine DVD, ein Speicherstick, eine Diskette, eine mechanisch codierte Einheit wie Lochkarten oder erhabene Strukturen in einer Spur mit darauf aufzeichneten Befehlen und eine beliebige geeignete Kombination aus den vorgenannten. Ein computerlesbares Speichermedium, wie es hierin verwendet wird, ist nicht so auszulegen, als handele es sich dabei um transitorische Signale an sich wie Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, durch einen Hohlleiter oder andere Übertragungsmedien sich ausbreitende elektromagnetische Wellen (z.B. einen Lichtwellenleiter durchlaufende Lichtimpulse) oder durch eine Leitung übertragene elektrische Signale.
  • Die hierin beschriebenen computerlesbaren Programmbefehle können aus einem computerlesbaren Speichermedium über ein Netzwerk, zum Beispiel das Internet, ein lokales Netz, ein Weitverkehrsnetz und/oder ein drahtloses Netz in entsprechende Datenverarbeitungseinheiten oder in einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Zu dem Netzwerk können Kupferübertragungskabel, Lichtwellenleiter, eine drahtlose Übertragung, Router, Firewalls, Switches, Gateway-Computer und/oder Edge-Server gehören. Eine Netzwerkadapterkarte oder eine Netzwerkschnittstelle in jeder Datenverarbeitungseinheit empfängt computerlesbare Programmbefehle aus dem Netzwerk und leitet die computerlesbaren Programmbefehle zum Speichern in einem computerlesbaren Speichermedium in der jeweiligen Datenverarbeitungseinheit weiter.
  • Bei computerlesbaren Programmbefehlen zum Ausführen von Arbeitsgängen der vorliegenden Offenbarung kann es sich um Assembler-Befehle, Befehlssatzarchitektur- (ISA-) Befehle, Maschinenbefehle, maschinenabhängige Befehle, Mikrocode, Firmware-Befehle, Daten zur Zustandseinrichtung, Konfigurationsdaten für integrierte Schaltkreise oder einen Quellencode oder Objektcode handeln, der in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen, unter anderem in einer objektorientierten Programmiersprache wie Smalltalk, C++ oder dergleichen, und prozeduralen Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen geschrieben sein kann. Die computerlesbaren Programmbefehle können vollständig im Computer des Benutzers, teilweise im Computer des Benutzers, als eigenständiges Software-Paket, teilweise im Computer des Benutzers und teilweise in einem entfernt angeordneten Computer oder vollständig im entfernt angeordneten Computer oder Server ausgeführt werden. Im letzteren Szenario kann der entfernt angeordnete Computer durch einen beliebigen Typ von Netzwerk mit dem Computer des Benutzers verbunden sein, unter anderem durch ein lokales Netz (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer (zum Beispiel durch das Internet unter Verwendung eines Internet-Dienstanbieters) eingerichtet werden. In einigen Ausführungsformen können elektronische Schaltungsanordnungen, zum Beispiel eine programmierbare Logikschaltungsanordnung, vor Ort programmierbare Gate Arrays (FPGA) oder programmierbare logische Schaltungsanordnungen (PLA) die computerlesbaren Programmbefehle ausführen, indem sie Zustandsinformationen der computerlesbaren Programmbefehle zum Personalisieren der elektronischen Schaltungsanordnung verwenden, um Aspekte der vorliegenden Offenbarung auszuführen.
  • Aspekte der vorliegenden Offenbarung werden hierin unter Bezugnahme auf Ablaufplandarstellungen und/oder Blockschaltbilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Offenbarung beschrieben. Es versteht sich von selbst, dass jeder Block der Ablaufplandarstellungen und/oder Blockschaltbilder und Kombinationen von Blöcken in den Ablaufplandarstellungen und/oder Blockschaltbildern durch computerlesbare Programmbefehle implementiert werden können.
  • Diese computerlesbaren Programmbefehle können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die Befehle, die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel zum Implementieren der im Block oder in den Blöcken des Ablaufplans und/oder der Blockschaltbilder angegebenen Funktionen/Vorgänge erzeugen. Diese computerlesbaren Programmbefehle können auch in einem computerlesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass diese auf eine bestimmte Weise funktionieren, so dass das computerlesbare Speichermedium mit darin gespeicherten Befehlen einen Herstellungsgegenstand präsentiert, der Befehle enthält, die Aspekte der Funktion/des Vorgangs implementieren, die/der im Block oder in den Blöcken des Ablaufplans und/oder der Blockschaltbilder angegeben sind.
  • Die computerlesbaren Programmbefehle können auch in einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um den Computer, die andere programmierbare Vorrichtung oder die andere Einheit zu veranlassen, eine Reihe von Verarbeitungsschritten auszuführen, um einen in einem Computer implementierten Prozess zu erzeugen, so dass die Befehle, die im Computer oder in der anderen programmierbaren Vorrichtung oder der anderen Einheit ausgeführt werden, die im Block oder in den Blöcken des Ablaufplans und/oder der Blockschaltbilder angegebenen Funktionen/Vorgänge implementieren.
  • Der Ablaufplan und die Blockschaltbilder in den Figuren veranschaulichen die Architektur, die Funktionalität und die Funktionsweise von möglichen Implementierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Offenbarung. In dieser Hinsicht kann jeder Block im Ablaufplan oder in den Blockschaltbildern ein Modul, ein Segment oder einen Teil von Befehlen darstellen, der einen oder mehrere ausführbare Befehle zum Implementieren der angegebenen logischen Funktion(en) enthält. In einigen alternativen Implementierungen können die in den Blöcken angegebenen Funktionen außerhalb der in den Figuren angegebenen Reihenfolge auftreten. Beispielsweise können zwei nacheinander gezeigte Blöcke tatsächlich im Wesentlichen gleichzeitig ausgeführt werden oder die Blöcke können manchmal in Abhängigkeit von der beteiligten Funktionalität in der umgekehrten Reihenfolge ausgeführt werden. Außerdem sei darauf hingewiesen, dass jeder Block der Blockschaltbilder und/oder der Ablaufplandarstellung und Kombinationen von Blöcken in den Blockschaltbildern und/oder der Ablaufplandarstellung durch spezielle auf Hardware beruhende Systeme, welche die angegebenen Funktionen oder Vorgänge ausführen oder Kombinationen aus spezieller Hardware und Computerbefehlen ausführen, implementiert werden können.
  • Im Allgemeinen dienen die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Offenbarung der Veranschaulichung, sollen jedoch nicht erschöpfend oder auf die offenbarten Ausführungsformen beschränkt sein. Viele Modifikationen und Änderungen sind für Fachleute offensichtlich, ohne vom Schutzumfang und Gedanken der beschriebenen Ausführungsformen abzuweichen. Die hierin verwendete Terminologie wurde gewählt, um den Grundgedanken der Ausführungsformen, die praktische Anwendung oder die technische Verbesserung gegenüber auf dem Markt erhältlichen Technologien zu erläutern oder um anderen Fachleuten ein Verständnis der hierin offenbarten Ausführungsformen zu ermöglichen.

Claims (8)

  1. Verfahren zum Verwalten (400) von Ressourcen eines Datenverarbeitungssystems (100; 300), wobei das Verfahren aufweist: Feststellen (406), dass ein Satz von Daten an eine Speicherschicht (160; 220; 360) eines mehrschichtigen Speichersystems (150; 200; 350) übertragen wird, wobei das mehrschichtige Speichersystem Daten mit einem Computer (110A, 110B, 110C; 310) austauscht (152); Ermitteln (408) eines im Computer ausgeführten Programms (104A, 104B; 340A, 340B), wobei das Ermitteln des Programms darauf beruht, dass das Programm auf den Satz von Daten zugegriffen hat und der Satz von Daten an die Speicherschicht übertragen wird; Ermitteln (410) einer Ressource ausgehend von dem an die Speicherschicht übertragenen Satz von Daten, wobei die Ressource im Computer enthalten ist, wobei die Ressource zur Nutzung durch das Programm geeignet ist; Ermitteln (412) einer Modifikationsmenge der Ressource ausgehend von dem an die Speicherschicht übertragenen Satz von Daten und außerdem ausgehend von dem dynamischen Status der Ressourcen des Computers und/oder dem dynamischen Status der dem Programm zugeordneten Ressourcen des Computers; und Modifizieren (412) einer Menge der dem Programm zugeordneten Ressource ausgehend von dem an die Speicherschicht übertragenen Satz von Daten unter Verwendung der Modifikationsmenge, wobei das Modifizieren ausgehend davon, dass mindestens eine der Ressourcen nicht für ein Zuordnen zum Programm verfügbar ist und dem Programm nicht gestattet wird, die Menge der dem Programm zugeordneten Ressource zu erhöhen, ein Feststellen aufweist, dass die Modifikationsmenge null ist, und ausgehend davon, dass die Modifikationsmenge null ist, kein Vornehmen einer Änderung an der Menge der dem Programm zugeordneten Ressource; und ausgehend davon, dass die Modifikationsmenge null ist, Aussetzen (420) von mindestens einem aus dem in der Speicherschicht gespeicherten Satz von Daten und dem an die Speicherschicht übertragenen Satz von Daten im mehrschichtigen Speichersystem.
  2. System (100; 300) zum Verwalten von Ressourcen in einem Datenverarbeitungssystem, wobei das System aufweist: einen Computer (110A, 11 0B, 110C; 310); ein mehrschichtiges Speichersystem (150; 200; 350), das Daten mit dem Computer austauscht, wobei das System konfiguriert ist zum: Feststellen (406), dass ein Satz von Daten an eine Speicherschicht (160; 220; 260) des mehrschichtigen Speichersystems übertragen wird; Ermitteln (408) eines im Computer ausgeführten Programms (140A, 140B; 340A, 340B), wobei das System außerdem konfiguriert ist zum Ermitteln des Programms ausgehend davon, dass das Programm auf den Satz von Daten zugegriffen hat und der Satz von Daten an die Speicherschicht übertragen wird; Ermitteln (410) einer Ressource anhand des Satzes von Daten, der an die Speicherschicht übertragen wird, wobei die Ressource im Computer enthalten ist, wobei die Ressource zur Nutzung durch das Programm geeignet ist; Ermitteln (412) einer Modifikationsmenge der Ressource anhand des an die Speicherschicht übertragenen Satzes von Daten und außerdem anhand von dem dynamischen Status der Ressourcen des Computers und/oder dem dynamischen Status der dem Programm zugeordneten Ressourcen des Computers; und Modifizieren (412) einer Menge der dem Programm zugeordneten Ressource anhand des an die Speicherschicht übertragenen Satzes von Daten unter Verwendung der Modifikationsmenge, wobei das System außerdem so konfiguriert ist, dass es ausgehend davon, dass mindestens eine der Ressourcen nicht für ein Zuordnen zum Programm verfügbar ist und dem Programm nicht gestattet wird, die Menge der dem Programm zugeordneten Ressource zu erhöhen, feststellt, dass die Modifikationsmenge null ist, und wobei das System außerdem so konfiguriert ist, dass es ausgehend davon, dass die Modifikationsmenge null ist, keine Änderung an der dem Programm zugeordneten Menge der Ressource vornimmt; und ausgehend davon, dass die Modifikationsmenge null ist, Aussetzen (420) von mindestens einem aus dem in der Speicherschicht gespeicherten Satz von Daten und dem an die Speicherschicht übertragenen Satz von Daten im mehrschichtigen Speichersystem.
  3. Computerprogrammprodukt (500) zum Verwalten von Ressourcen in einem Datenverarbeitungssystem (100; 300), wobei das Computerprogrammprodukt ein computerlesbares Speichermedium (502) mit darin gespeicherten Programmbefehlen (504, 506, 508, 510) aufweist, wobei die Programmbefehle durch mindestens einen Prozessor ausführbar sind, um den mindestens einen Prozessor (112A, 112B) zu veranlassen: Festzustellen (406), dass ein Satz von Daten an eine Speicherschicht (160; 220; 360) eines mehrschichtigen Speichersystems (150; 200; 350) übertragen wird, wobei das mehrschichtige Speichersystem Daten mit einem Computer (110A, 110B, 110C; 310) austauscht (152); ein im Computer ausgeführtes Programm ausgehend davon zu ermitteln (408), dass das Programm auf den Satz von Daten zugegriffen hat und der Satz von Daten an die Speicherschicht übertragen wird; anhand des an die Speicherschicht übertragenen Satzes von Daten eine Ressource zu ermitteln (410), wobei die Ressource im Computer enthalten ist, wobei die Ressource zur Nutzung durch das Programm geeignet ist; anhand des an die Speicherschicht übertragenen Satzes von Daten und außerdem anhand von mindestens einem aus dem dynamischen Status der Ressourcen des Computers und dem dynamischen Status der dem Programm zugeordneten Ressourcen des Computers eine Modifikationsmenge der Ressource zu ermitteln (412); und anhand des an die Speicherschicht übertragenen Satzes von Daten eine Menge der dem Programm zugeordneten Ressource unter Verwendung der Modifikationsmenge zu modifizieren (412), wobei die Programmbefehle durch den mindestens einen Prozessor ausführbare Programmbefehle aufweisen, um den mindestens einen Prozessor zu veranlassen, ausgehend davon, dass mindestens eine der Ressourcen nicht für ein Zuordnen zum Programm verfügbar ist und dem Programm nicht gestattet wird, die Menge der dem Programm zugeordneten Ressource zu erhöhen, festzustellen, dass die Modifikationsmenge null ist, und wobei die Programmbefehle außerdem durch den mindestens einen Prozessor ausführbare Programmbefehle beinhalten, um den mindestens einen Prozessor zu veranlassen, aufgrund dessen, dass die Modifikationsmenge null ist, keine Änderung an der Menge der dem Programm zugeordneten Ressource vorzunehmen; und ausgehend davon, dass die Modifikationsmenge null ist, mindestens einen aus dem in der Speicherschicht gespeicherten Satz von Daten und dem an die Speicherschicht übertragenen Satz von Daten im mehrschichtigen Speichersystem auszusetzen (420).
  4. Verfahren nach Anspruch 1, wobei der Satz von Daten einen Speicherbereich (224, 226, 228, 234, 236, 238) eines Speichermediums aufweist.
  5. Verfahren nach Anspruch 1, wobei die Ressource einen Prozessor (112A, 112B) aufweist.
  6. Verfahren nach Anspruch 1, wobei die Ressource einen Teil eines Speichers (120) aufweist.
  7. Verfahren nach Anspruch 1, wobei das Speichersystem eine erste Schicht (160; 220; 360) und eine zweite Schicht aufweist, wobei in der ersten Schicht gespeicherte Daten eine höhere Zugriffsleistung als in der zweiten Schicht gespeicherte Daten haben und wobei der Satz von Daten, der an die Speicherschicht übertragen wird, den Satz von Daten aufweist, der aus der zweiten Schicht an die erste Schicht übertragen wird.
  8. Verfahren nach Anspruch 1, wobei das Speichersystem eine erste Schicht (160; 220; 360) und eine zweite Schichtaufweist (170; 230; 370), wobei in der ersten Schicht gespeicherte Daten eine höhere Zugriffsleistung als in der zweiten Schicht gespeicherte Daten haben, und wobei das Aussetzen des in der Speicherschicht gespeicherten Satzes von Daten das Aussetzen des Speicherns des Satzes von Daten in der ersten Speicherschicht aufweist.
DE102016221811.5A 2015-12-04 2016-11-08 Zuordnung von Ressourcen mit mehrschichtigem Speicher Active DE102016221811B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/959,076 2015-12-04
US14/959,076 US9513968B1 (en) 2015-12-04 2015-12-04 Dynamic resource allocation based on data transferring to a tiered storage

Publications (2)

Publication Number Publication Date
DE102016221811A1 DE102016221811A1 (de) 2017-06-08
DE102016221811B4 true DE102016221811B4 (de) 2023-04-20

Family

ID=57399873

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102016221811.5A Active DE102016221811B4 (de) 2015-12-04 2016-11-08 Zuordnung von Ressourcen mit mehrschichtigem Speicher

Country Status (2)

Country Link
US (4) US9513968B1 (de)
DE (1) DE102016221811B4 (de)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3140734B1 (de) 2014-05-09 2020-04-08 Nutanix, Inc. Mechanismus zur bereitstellung von externem zugriff auf eine gesicherte vernetzte virtualisierungsumgebung
US9513968B1 (en) 2015-12-04 2016-12-06 International Business Machines Corporation Dynamic resource allocation based on data transferring to a tiered storage
US11579861B2 (en) 2016-02-12 2023-02-14 Nutanix, Inc. Virtualized file server smart data ingestion
US11218418B2 (en) 2016-05-20 2022-01-04 Nutanix, Inc. Scalable leadership election in a multi-processing computing environment
US10728090B2 (en) 2016-12-02 2020-07-28 Nutanix, Inc. Configuring network segmentation for a virtualization environment
US11562034B2 (en) 2016-12-02 2023-01-24 Nutanix, Inc. Transparent referrals for distributed file servers
US10824455B2 (en) 2016-12-02 2020-11-03 Nutanix, Inc. Virtualized server systems and methods including load balancing for virtualized file servers
US11568073B2 (en) 2016-12-02 2023-01-31 Nutanix, Inc. Handling permissions for virtualized file servers
US11294777B2 (en) 2016-12-05 2022-04-05 Nutanix, Inc. Disaster recovery for distributed file servers, including metadata fixers
US11288239B2 (en) 2016-12-06 2022-03-29 Nutanix, Inc. Cloning virtualized file servers
US11281484B2 (en) 2016-12-06 2022-03-22 Nutanix, Inc. Virtualized server systems and methods including scaling of file system virtual machines
US10649860B2 (en) 2017-09-07 2020-05-12 International Business Machines Corporation Data archive tier of a tiered storage system
US10372363B2 (en) 2017-09-14 2019-08-06 International Business Machines Corporation Thin provisioning using cloud based ranks
US20190155511A1 (en) * 2017-11-17 2019-05-23 International Business Machines Corporation Policy-based optimization of cloud resources on tiered storage operations
US10725660B2 (en) 2017-11-17 2020-07-28 International Business Machines Corporation Policy-based optimization of cloud resources on tiered storage operations
DE112018004415B4 (de) * 2017-11-17 2023-03-09 International Business Machines Corporation Optimierung von cloud-ressourcen bei operationen in mehrstufigem speicher auf richtliniengrundlage
US11086826B2 (en) 2018-04-30 2021-08-10 Nutanix, Inc. Virtualized server systems and methods including domain joining techniques
US11194680B2 (en) 2018-07-20 2021-12-07 Nutanix, Inc. Two node clusters recovery on a failure
US11770447B2 (en) 2018-10-31 2023-09-26 Nutanix, Inc. Managing high-availability file servers
CN111459649B (zh) * 2019-01-21 2023-08-25 伊姆西Ip控股有限责任公司 管理计算资源的存储器的方法、设备和计算机可读介质
US20200241781A1 (en) 2019-01-29 2020-07-30 Dell Products L.P. Method and system for inline deduplication using erasure coding
US10901641B2 (en) 2019-01-29 2021-01-26 Dell Products L.P. Method and system for inline deduplication
US10764135B2 (en) 2019-01-29 2020-09-01 Dell Products L.P. Method and system for solution integration labeling
US10979312B2 (en) 2019-01-29 2021-04-13 Dell Products L.P. System and method to assign, monitor, and validate solution infrastructure deployment prerequisites in a customer data center
US10911307B2 (en) 2019-01-29 2021-02-02 Dell Products L.P. System and method for out of the box solution-level configuration and diagnostic logging and reporting
US10740023B1 (en) * 2019-01-29 2020-08-11 Dell Products L.P. System and method for dynamic application access-based mapping
US10972343B2 (en) 2019-01-29 2021-04-06 Dell Products L.P. System and method for device configuration update
US11442642B2 (en) 2019-01-29 2022-09-13 Dell Products L.P. Method and system for inline deduplication using erasure coding to minimize read and write operations
US10963345B2 (en) 2019-07-31 2021-03-30 Dell Products L.P. Method and system for a proactive health check and reconstruction of data
US11328071B2 (en) 2019-07-31 2022-05-10 Dell Products L.P. Method and system for identifying actor of a fraudulent action during legal hold and litigation
US11372730B2 (en) 2019-07-31 2022-06-28 Dell Products L.P. Method and system for offloading a continuous health-check and reconstruction of data in a non-accelerator pool
US11609820B2 (en) 2019-07-31 2023-03-21 Dell Products L.P. Method and system for redundant distribution and reconstruction of storage metadata
US11775193B2 (en) 2019-08-01 2023-10-03 Dell Products L.P. System and method for indirect data classification in a storage system operations
CN114424168A (zh) 2019-09-27 2022-04-29 英特尔公司 用于软件定义的硅安全性的系统、方法和装置
WO2021062242A1 (en) * 2019-09-27 2021-04-01 Intel Corporation Software defined silicon implementation and management
US11093341B1 (en) * 2020-02-25 2021-08-17 EMC IP Holding Company LLC Systems and methods of data auto-tiering using relativized discrepancy
US11301327B2 (en) 2020-03-06 2022-04-12 Dell Products L.P. Method and system for managing a spare persistent storage device and a spare node in a multi-node data cluster
US11281535B2 (en) 2020-03-06 2022-03-22 Dell Products L.P. Method and system for performing a checkpoint zone operation for a spare persistent storage
US11175842B2 (en) 2020-03-06 2021-11-16 Dell Products L.P. Method and system for performing data deduplication in a data pipeline
US11119858B1 (en) 2020-03-06 2021-09-14 Dell Products L.P. Method and system for performing a proactive copy operation for a spare persistent storage
US11416357B2 (en) 2020-03-06 2022-08-16 Dell Products L.P. Method and system for managing a spare fault domain in a multi-fault domain data cluster
US11768809B2 (en) 2020-05-08 2023-09-26 Nutanix, Inc. Managing incremental snapshots for fast leader node bring-up
US11418326B2 (en) 2020-05-21 2022-08-16 Dell Products L.P. Method and system for performing secure data transactions in a data cluster
US11977612B2 (en) 2020-07-07 2024-05-07 Intel Corporation Software defined silicon guardianship

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120198151A1 (en) 2011-02-02 2012-08-02 Hitachi, Ltd. Storage apparatus and data management method
US20130111129A1 (en) 2011-10-28 2013-05-02 Hitachi, Ltd. Computer system and storage management method
US20140122695A1 (en) 2012-10-31 2014-05-01 Rawllin International Inc. Dynamic resource allocation for network content delivery

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6359883B1 (en) * 1998-06-23 2002-03-19 The Kohl Group, Inc. Reducing the variability of the data rates of high-rate data streams in order to communicate such streams over a low-rate channel of fixed capacity
US6721789B1 (en) * 1999-10-06 2004-04-13 Sun Microsystems, Inc. Scheduling storage accesses for rate-guaranteed and non-rate-guaranteed requests
US7054943B1 (en) * 2000-04-28 2006-05-30 International Business Machines Corporation Method and apparatus for dynamically adjusting resources assigned to plurality of customers, for meeting service level agreements (slas) with minimal resources, and allowing common pools of resources to be used across plural customers on a demand basis
US7412492B1 (en) * 2001-09-12 2008-08-12 Vmware, Inc. Proportional share resource allocation with reduction of unproductive resource consumption
US7827283B2 (en) * 2003-02-19 2010-11-02 International Business Machines Corporation System for managing and controlling storage access requirements
US7480912B2 (en) * 2003-05-29 2009-01-20 International Business Machines Corporation Method for policy-based, autonomically allocated storage
US8346909B2 (en) * 2004-01-22 2013-01-01 International Business Machines Corporation Method for supporting transaction and parallel application workloads across multiple domains based on service level agreements
US20050188075A1 (en) * 2004-01-22 2005-08-25 International Business Machines Corporation System and method for supporting transaction and parallel services in a clustered system based on a service level agreement
US8854966B2 (en) * 2008-01-10 2014-10-07 Apple Inc. Apparatus and methods for network resource allocation
US8234682B2 (en) * 2008-09-11 2012-07-31 Nice Systems Ltd. System and method for central management of network and storage resources for a video surveillance system
US8548297B2 (en) * 2008-09-11 2013-10-01 Nice Systems Ltd. Method and system for utilizing storage in network video recorders
US8108612B2 (en) * 2009-05-15 2012-01-31 Microsoft Corporation Location updates for a distributed data store
US8103769B1 (en) * 2009-09-03 2012-01-24 Amazon Technologies, Inc. Dynamic isolation of shared resources
US9003157B1 (en) * 2010-06-30 2015-04-07 Emc Corporation Techniques for dynamic data storage configuration in accordance with an allocation policy
US8578108B2 (en) 2010-08-03 2013-11-05 International Business Machines Corporation Dynamic look-ahead extent migration for tiered storage architectures
US9722887B2 (en) * 2011-03-15 2017-08-01 Verizon Patent And Licensing Inc. Adaptive quality of service (QoS) based on application latency requirements
US9047017B1 (en) * 2011-12-20 2015-06-02 Emc Corporation Techniques for automated evaluation and movement of data between storage tiers
US9052830B1 (en) * 2011-06-30 2015-06-09 Emc Corporation Techniques for automated evaluation and movement of data between storage tiers for thin devices
JP5793196B2 (ja) 2011-09-13 2015-10-14 株式会社日立製作所 仮想ボリュームに割り当てられた要求性能に基づく制御を行うストレージシステムの管理システム及び管理方法
US8984221B2 (en) 2011-10-18 2015-03-17 Hitachi, Ltd. Method for assigning storage area and computer system using the same
US9054992B2 (en) * 2011-12-27 2015-06-09 Solidfire, Inc. Quality of service policy sets
WO2013103003A1 (ja) 2012-01-05 2013-07-11 株式会社日立製作所 計算機システムの管理装置及び管理方法
US8862744B2 (en) * 2012-02-14 2014-10-14 Telefonaktiebolaget L M Ericsson (Publ) Optimizing traffic load in a communications network
US9335948B1 (en) * 2012-03-27 2016-05-10 Emc Corporation Method and apparatus for enabling access to tiered shared storage using dynamic tier partitioning
US9026765B1 (en) * 2012-09-11 2015-05-05 Emc Corporation Performing write operations in a multi-tiered storage environment
US9898224B1 (en) * 2012-09-12 2018-02-20 EMC IP Holding Company LLC Automatic adjustment of capacity usage by data storage optimizer for data migration
US8949483B1 (en) * 2012-12-28 2015-02-03 Emc Corporation Techniques using I/O classifications in connection with determining data movements
US9251115B2 (en) * 2013-03-07 2016-02-02 Citrix Systems, Inc. Dynamic configuration in cloud computing environments
US9507887B1 (en) * 2013-03-13 2016-11-29 EMC IP Holding Company LLC Adaptive techniques for workload distribution across multiple storage tiers
US9753987B1 (en) * 2013-04-25 2017-09-05 EMC IP Holding Company LLC Identifying groups of similar data portions
CA2867589A1 (en) * 2013-10-15 2015-04-15 Coho Data Inc. Systems, methods and devices for implementing data management in a distributed data storage system
US10095800B1 (en) * 2013-12-16 2018-10-09 Amazon Technologies, Inc. Multi-tenant data store management
KR102060737B1 (ko) * 2013-12-27 2019-12-30 삼성전자주식회사 이동통신 시스템에서 QoS 서비스를 위한 QoS 스위칭 방법 및 장치
US9459809B1 (en) * 2014-06-30 2016-10-04 Emc Corporation Optimizing data location in data storage arrays
US10521124B1 (en) * 2014-09-26 2019-12-31 EMC IP Holding Company LLC Application-specific workload-based I/O performance management
US10001927B1 (en) * 2014-09-30 2018-06-19 EMC IP Holding Company LLC Techniques for optimizing I/O operations
US9946465B1 (en) * 2014-12-31 2018-04-17 EMC IP Holding Company LLC Adaptive learning techniques for determining expected service levels
US9626116B1 (en) * 2015-06-22 2017-04-18 EMC IP Holding Company LLC Distributed service level objective management in active-active environments
US9703664B1 (en) * 2015-06-24 2017-07-11 EMC IP Holding Company LLC Self adaptive workload classification and forecasting in multi-tiered storage system using ARIMA time series modeling
US9513968B1 (en) 2015-12-04 2016-12-06 International Business Machines Corporation Dynamic resource allocation based on data transferring to a tiered storage
US10254970B1 (en) * 2016-06-30 2019-04-09 EMC IP Holding Company LLC System, method and computer readable medium for obtaining consistent read performance for a plurality of flash drives or raid groups using workload and capacity limits

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120198151A1 (en) 2011-02-02 2012-08-02 Hitachi, Ltd. Storage apparatus and data management method
US20130111129A1 (en) 2011-10-28 2013-05-02 Hitachi, Ltd. Computer system and storage management method
US20140122695A1 (en) 2012-10-31 2014-05-01 Rawllin International Inc. Dynamic resource allocation for network content delivery

Also Published As

Publication number Publication date
US10592288B2 (en) 2020-03-17
US20190050260A1 (en) 2019-02-14
US9513968B1 (en) 2016-12-06
US20170160983A1 (en) 2017-06-08
US11194626B2 (en) 2021-12-07
US20200142745A1 (en) 2020-05-07
DE102016221811A1 (de) 2017-06-08
US10120720B2 (en) 2018-11-06

Similar Documents

Publication Publication Date Title
DE102016221811B4 (de) Zuordnung von Ressourcen mit mehrschichtigem Speicher
DE102015105884B4 (de) Rechenknoten und Verfahren zur Migration einer virtuellen Maschine, Rechenzentrummanager zur Migration virtueller Maschinen, Maschinenlesbares Speichermedium und Rechenvorrichtungen
DE60016283T2 (de) Arbeitsbelastungsverwaltung in einer rechnerumgebung
DE112011104419B4 (de) Bereichsmigration für gepaarte Speicherung
DE102004012056B4 (de) System und Verfahren zum Überwachen von Ressourcenausnutzung und Anwendungsleistungsfähigkeit
DE102020113346A1 (de) Bereitstellen von service-containern in einer adaptervorrichtung
DE112017004808T5 (de) Dynamische zuteilung virtueller cpu-kerne
DE112011101633T5 (de) Virtualisierung und dynamische Ressourcenzuweisung berücksichtigendes Neuordnen von Speicherebenen
DE112011100094T5 (de) Verfahren und System zum Abstrahieren eines auf nichtfunktionalen Anforderungen beruhenden Einsatzes von virtuellen Maschinen
DE112011100392T5 (de) Ressourcenaffinität durch dynamisches hinzufügen oder entfernen von warteschlangenpaaren für netzadapter mit software zur empfangsseitigen skalierung (rss)
DE102010001339A1 (de) Verwalten von Anforderungen von Betriebssystemen, die in virtuellen Maschinen ablaufen
DE112010003554T5 (de) Symmetrische Direktmigration von Virtuellen Maschinen
DE112018006769B4 (de) Erweiterte zwischenspeicherzuweisung basierend auf virtuellen knotenressourcen
DE112014002754T5 (de) Effiziente Aufgabenplanung unter Verwendung eines Sperrmechanismus
DE112013006646B4 (de) Computer, System und computerlesbares Ablagemedium zum Identifizieren von Arbeitslast und Dimensionierung von Puffern zum Zweck der Volumenreplikation
DE112019000421B4 (de) Arbeitslastverwaltung mit datenzugriffserkennung in einem datenverarbeitungscluster
DE112020004661T5 (de) Ermitteln einer optimalen Anzahl von Threads pro Kern in einem Mehrkern-Prozessorkomplex
DE112006001345T5 (de) Aufgabenzuweisung für Geräte mit derselben Konnektionsadresse
DE102014116808A1 (de) Realisieren einer dynamischen Virtualisierung eines Sriov-fähigen SAS-Adapters
DE102019102883A1 (de) Technologien zum Bewegen von Arbeitslasten zwischen Hardwarewarteschlangenmanagern
DE102010044529A1 (de) Autonome Subsystem-Architektur
DE112018005121T5 (de) Speichersystem unter verwendung von cloud-speicher als eine speicherbank
DE112020003929T5 (de) Verwaltung von metadaten von virtuellen speichern
DE112019005392T5 (de) Steigern von datenleistung durch transferieren von daten zwischen speicherebenen unter verwendung von arbeitslastmerkmalen
DE102022124530A1 (de) Speicherpoolmanagement

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final