DE102013204508A1 - Dynamisches Neukonfigurieren eines Speichersystems - Google Patents

Dynamisches Neukonfigurieren eines Speichersystems Download PDF

Info

Publication number
DE102013204508A1
DE102013204508A1 DE201310204508 DE102013204508A DE102013204508A1 DE 102013204508 A1 DE102013204508 A1 DE 102013204508A1 DE 201310204508 DE201310204508 DE 201310204508 DE 102013204508 A DE102013204508 A DE 102013204508A DE 102013204508 A1 DE102013204508 A1 DE 102013204508A1
Authority
DE
Germany
Prior art keywords
storage
capacity
pool
pools
destination
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.)
Pending
Application number
DE201310204508
Other languages
English (en)
Inventor
Shu Yang
Hui Xiang Gu
Yao Ma
Jun Wei Zhang
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 DE102013204508A1 publication Critical patent/DE102013204508A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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
    • 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
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

In dieser Erfindung werden ein Verfahren und eine Vorrichtung zum dynamischen Neukonfigurieren eines Speichersystems bereitgestellt. Das Speichersystem weist eine Vielzahl von Speicher-Pools auf, wobei jeder der Speicher-Pools aus einer oder mehreren Speicherplatten besteht. Das Verfahren weist auf: Ermitteln von zu erweiternden Speicher-Pools aus der Vielzahl von Speicher-Pools als Ziel-Speicher-Pools; Ermitteln von aus anderen Speicher-Pools als den Ziel-Speicher-Pools in dem Speichersystem in die Ziel-Speicher-Pools zu verlagernden Quellspeicherplatten für die Ziel-Speicher-Pools; und Migrieren der Quellspeicherplatten in die entsprechenden Ziel-Speicher-Pools. Mit dem Verfahren und der Vorrichtung dieser Erfindung kann für Speicher-Pools in einem Speichersystem der Bedarf für eine Erweiterung der Kapazität vorhergesagt werden, und Speicher-Ressourcen in dem Speichersystem können automatisch und genau neu zugeordnet werden.

Description

  • HINTERGRUND
  • Die vorliegende Erfindung betrifft das Gebiet der Datenspeicherung und konkret das Zuordnen und Anpassen von Speicher-Ressourcen in einem Massenspeichersystem.
  • Bei Cloud-Speicher handelt es sich um eine auf Datenspeicherung und -verwaltung gerichtete Cloud-Computing-Technologie, die mit Hilfe von Cluster-Anwendungen, Rastertechniken oder verteilten Dateisystemen und anderen Funktionen eine große Anzahl verschiedener Arten von Speichereinheiten in einem Netzwerk durch Anwendungssoftware zusammenfasst und diese zusammenwirkend betreibt sowie gemeinsame Datenspeicherungs- und Dienstzugriffsfunktionen bereitstellt. Cloud-Speicher ermöglicht es, Endbenutzern flexiblere und effizientere Speicher-Ressourcen bereitzustellen.
  • Bei Cloud-Speicher stellt ein transparentes Zuordnen/Zurückgewinnen von dynamischen Ressourcen (z. B. Datenträgern) zu/von einem Speicher-Pool eine wichtige Technik dar. Derzeit können die meisten Speicheranbieter Speicher-Pools auf der Grundlage von Speichervirtualisierungsprodukten anbieten. Die Funktionen dieser aktuellen Speicherprodukte sind jedoch durch die Speicher-Pool-Kapazität eingeschränkt. Wenn die Ressourcen eines Speicher-Pools nahezu vollständig ausgelastet sind, wäre es unmöglich, einen Datenträger in dem Speicher-Pool zu erweitern, bzw. würde ein Datenträger mit Thin-Provisioning offline gehen, während es in anderen, zu derselben Speicher-Cloud gehörenden Speicher-Pools noch genügend Platz gibt.
  • Angenommen, es gibt wie in 13 gezeigt zwei SVC-Speicher-Pools in einer Speicher-Cloud, Pool A mit einer Kapazität von 100 GB und Pool B mit einer Kapazität von 50 GB. Pool A umfasst zwei Datenträger, einen Fat-Datenträger mit 50 GB und einen Datenträger mit Thin-Provisioning mit 60 GB, wobei in dem Datenträger mit Thin-Provisioning ein tatsächlicher Speicherplatz von 20 GB genutzt wird. Pool A wird nahezu voll genutzt (70 GB verwendet, wie in 13 gezeigt), während Pool B überhaupt nicht verwendet wird. Obwohl ein Benutzer der Speicher-Cloud in dem gesamten Speichersystem einen freien Platz von mindestens 30 GB erkennen kann, wird er bei einem Versuch, den Fat-Datenträger von Pool A auf über 80 GB zu erweitern, eine Fehlermeldung erhalten, da die aktuelle Speicher-Cloud keine automatische Speicher-Pool-übergreifende Kapazitätsmobilität unterstützt, oder der Fat-Datenträger auf lediglich 80 GB erweitert wird, aber der Datenträger mit Thin-Provisioning offline geht, da es keinen weiteren Platz zum Unterbringen von neu hinzugefügten Daten gibt, während der Platz aus Pool B noch immer unberührt ist.
  • Um die oben genannten Probleme anzugehen, müssen Benutzer nach dem Stand der Technik einige der Datenträger manuell von anderen Speicher-Pools entfernen und einem Speicher-Pool hinzufügen, der erweitert werden muss, oder einen zu erweiternden Datenträger manuell in einen anderen verfügbaren Speicher-Pool migrieren. Diese Verfahren weisen jedoch eine geringe Effizienz und hohe Kosten auf, da die Benutzer weder erkennen können, wie viele und welche Datenträger in welchem Speicher-Pool an einen anderen Platz verlagert werden sollten, noch, in welchen bestimmten Speicher-Pool ein Datenträger verlagert werden sollte. Ein falsches Verlagern/Migrieren von Datenträgern würde sowohl für Ziel- als auch für Quell-Speicher-Pools zu einer Einbuße an Leistungsfähigkeit führen.
  • Deshalb ist ein Verfahren höchst erwünscht, das in der Lage ist, die Kapazitätsauslastung eines Speichersystems zu überwachen und eine Mobilitätsrichtlinie für Speicher-Ressourcen automatisch und genau festzulegen.
  • KURZDARSTELLUNG
  • Eine Aufgabe dieser Erfindung ist es, den Bedarf für eine Erweiterung der Kapazität eines Speichersystems vorherzusagen und dadurch Ressourcen in dem Speichersystem automatisch und genau neu zuzuordnen.
  • Zu diesem Zweck überwachen ein Verfahren und eine Einheit dieser Erfindung die Kapazitätsauslastung jedes Speicher-Pools in einem Speichersystem, ermitteln Ziel-Speicher-Pools, deren Kapazität gemäß der Wachstumstendenz deren Kapazitätsauslastung zu erweitern ist, entwickeln dann für die Ziel-Speicher-Pools eine Mobilitätsrichtlinie für Speicher-Ressourcen und führen schließlich die Mobilitätsrichtlinie aus, um Quellspeicherplatten aus Quell-Speicher-Pools zu Ziel-Speicher-Pools zu verlagern.
  • Gemäß einem ersten Aspekt dieser Erfindung wird ein Verfahren zum dynamischen Neukonfigurieren eines Speichersystems bereitgestellt, wobei das Speichersystem eine Vielzahl von Speicher-Pools aufweist, jeder der Speicher-Pools aus einer oder mehreren Speicherplatten besteht und das Verfahren aufweist:
    Ermitteln von zu erweiternden Speicher-Pools aus der Vielzahl von Speicher-Pools als Ziel-Speicher-Pools; Ermitteln von aus anderen Speicher-Pools als den Ziel-Speicher-Pools in dem Speichersystem in die Ziel-Speicher-Pools zu verlagernden Quellspeicherplatten für die Ziel-Speicher-Pools; und Migrieren der Quellspeicherplatten in die entsprechenden Ziel-Speicher-Pools.
  • Gemäß einem zweiten Aspekt dieser Erfindung wird eine Vorrichtung zum dynamischen Neu konfigurieren eines Speichersystems bereitgestellt, wobei das Speichersystem eine Vielzahl von Speicher-Pools aufweist, jeder der Speicher-Pools aus einer oder mehreren Speicherplatten besteht und die Vorrichtung aufweist: eine Ziel-Speicher-Pool-Ermittlungseinheit, die so konfiguriert ist, dass sie aus der Vielzahl von Speicher-Pools zu erweiternde Speicher-Pools als Ziel-Speicher-Pools ermittelt; eine Quellspeicherplatten-Ermittlungseinheit, die so konfiguriert ist, dass sie für die von der Ziel-Speicher-Pool-Ermittlungseinheit ermittelten Ziel-Speicher-Pools aus anderen Speicher-Pools als den Ziel-Speicher-Pools in dem Speichersystem in die Ziel-Speicher-Pools zu verlagernde Quellspeicherplatten ermittelt; und eine Quellspeicherplatten-Migrationseinheit, die so konfiguriert ist, dass sie die Quellspeicherplatten in die entsprechenden Ziel-Speicher-Pools migriert.
  • Gemäß einem dritten Aspekt dieser Erfindung wird ein Speichersystem bereitgestellt, wobei das Speichersystem aufweist: eine Vielzahl von Speicherplatten, wobei einige oder alle der Speicherplatten zwei oder mehr Speicher-Pools zugeordnet sind; und die Vorrichtung zum dynamischen Neukonfigurieren gemäß dem zweiten Aspekt dieser Erfindung.
  • Mit dem Verfahren und der Vorrichtung dieser Erfindung kann für Speicher-Pools in einem Speichersystem der Bedarf für eine Erweiterung der Kapazität vorhergesagt werden, und Speicher-Ressourcen in dem Speichersystem können automatisch und genau neu zugeordnet werden.
  • Mit dem Verfahren und der Vorrichtung dieser Erfindung ist es auch möglich, die Wachstumstendenz der jeweiligen Kapazitätsauslastung von Ziel- und Quell-Speicher-Pools zu berücksichtigen, um Speicher-Ressourcen angemessener zuzuordnen.
  • Mit dem Verfahren und der Vorrichtung dieser Erfindung ist es auch möglich, die Auswirkung auf die jeweilige SLV (Vereinbarung zum Dienstumfang) von Ziel- und Quell-Speicher-Pools zu berücksichtigen, um Speicher-Ressourcen angemessener zuzuordnen.
  • KURZE BESCHREIBUNG DER VERSCHIEDENEN ANSICHTEN DER ZEICHNUNGEN
  • Die oben genannten und weitere Aufgaben, Eigenschaften und Vorteile der vorliegenden Offenbarung werden durch die ausführlichere Beschreibung einiger Ausführungsformen der vorliegenden Offenbarung in den beigefügten Zeichnungen besser ersichtlich, wobei sich derselbe Verweis allgemein auf dieselben Komponenten in den Ausführungsformen der vorliegenden Offenbarung bezieht.
  • 1 zeigt einen Cloud-Computing-Knoten gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 2 zeigt eine Cloud-Computing-Umgebung gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 3 zeigt Abstraktionsmodellschichten gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 4 zeigt schematisch ein Schaubild eines Speichersystems gemäß einer Ausführungsform dieser Erfindung,
  • 5 ist ein Ablaufplan, der ein Verfahren zum dynamischen Neukonfigurieren eines Speichersystems gemäß einer Ausführungsform dieser Erfindung veranschaulicht.
  • 6 ist ein Ablaufplan, der einen Prozess zum Ermitteln von Ziel-Speicher-Pools gemäß einer Ausführungsform dieser Erfindung veranschaulicht.
  • 7 ist ein Ablaufplan, der einen Prozess zum Ermitteln von Quellspeicherplatten gemäß einer Ausführungsform dieser Erfindung veranschaulicht.
  • 8 ist ein Ablaufplan, der einen Prozess zum Berechnen einer erwarteten Erweiterungskapazität eines Ziel-Speicher-Pools gemäß einer Ausführungsform dieser Erfindung veranschaulicht.
  • 9A und 9B zeigen eine erwartete Erweiterungskapazität, die beruhend auf einem vorher festgelegten Schwellwert für die Kapazitätsaufbrauchzeit nach der Erweiterung berechnet wird, und 9C zeigt eine erwartete Erweiterungskapazität, die beruhend auf einem vorher festgelegten Schwellwert für die verbleibende Kapazität nach der Erweiterung berechnet wird.
  • 10 ist ein Ablaufplan, der einen Prozess des Erstellens einer Liste von in Frage kommenden Quellspeicherplatten gemäß einer Ausführungsform dieser Erfindung veranschaulicht.
  • 11 ist ein Ablaufplan, der einen Prozess zum Auswählen einer Quellspeicherplatte gemäß einer Ausführungsform dieser Erfindung veranschaulicht.
  • 12 ist ein Funktionsblockschaubild, das eine Vorrichtung zum dynamischen Neuzuordnen gemäß einer Ausführungsform dieser Erfindung zeigt.
  • 13 veranschaulicht schematisch ein Beispiel einer fehlgeschlagenen Kapazitätserweiterung eines Speichersystems nach dem Stand der Technik.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Einige vorzuziehende Ausführungsformen werden unter Bezugnahme auf die beigefügten Zeichnungen ausführlicher beschrieben, in denen die vorzuziehenden Ausführungsformen der vorliegenden Offenbarung veranschaulicht sind. Die vorliegende Offenbarung kann jedoch auf verschiedene Weisen umgesetzt werden und ist somit nicht als auf die hierin dargelegten Ausführungsformen beschränkt anzusehen. Im Gegenteil, diese Ausführungsformen werden zum Zwecke eines gründlichen und vollständigen Verständnisses der vorliegenden Offenbarung bereitgestellt und um den Umfang der vorliegenden Offenbarung einem Fachmann vollständig zu vermitteln.
  • Es sei von vornherein klargestellt, dass das Umsetzen der hierin angeführten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist, obwohl diese Offenbarung eine ausführliche Beschreibung von Cloud-Computing enthält. Stattdessen können Ausführungsformen der vorliegenden Erfindung gemeinsam mit jeder beliebigen Art von jetzt bekannter oder später erfundener Datenverarbeitungsumgebung umgesetzt werden.
  • Cloud-Computing ist ein Servicebereitstellungsmodell zum Ermöglichen eines problemlosen bedarfsgesteuerten Netzwerkzugriffs auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungsressourcen (z. B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Hauptspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste), die mit minimalem Verwaltungsaufwand bzw. minimaler Interaktion mit einem Anbieter des Service schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften enthalten, mindestens drei Dienstmodelle und mindestens vier Implementierungsmodelle.
  • Bei den Eigenschaften handelt es sich um die folgenden:
  • On-Demand Self-Service: Ein Cloud-Nutzer kann einseitig automatisch nach Bedarf für Datenverarbeitungsfunktionen wie Serverzeit und Netzwerkspeicher sorgen, ohne dass eine menschliche Interaktion mit dem Anbieter der Dienste erforderlich ist.
  • Broad Network Access: Es sind Funktionen über ein Netzwerk verfügbar, auf die durch Standardmechanismen zugegriffen wird, welche die Verwendung durch heterogene Thin- oder Thick-Client-Plattformen (z. B. Mobiltelefone, Laptops und PDAs) unterstützen.
  • Resource-Pooling: Die Datenverarbeitungsressourcen des Anbieters werden zusammengeschlossen, um mehreren Nutzern unter Verwendung eines Multi-Tenant-Modells zu dienen, wobei verschiedene physische und virtuelle Ressourcen dynamisch nach Bedarf zugewiesen und neu zugewiesen werden. Es gibt eine gefühlte Standortunabhängigkeit, da der Nutzer allgemein keine Kontrolle bzw. Kenntnis über den genauen Standort der bereitgestellten Ressourcen hat, aber in der Lage sein kann, einen Standort auf einer höheren Abstraktionsebene festzulegen (z. B. Land, Staat oder Rechenzentrum).
  • Rapid Elasticity: Funktionen können für eine schnelle horizontale Skalierung (scale out) schnell und elastisch bereitgestellt werden, in einigen Fällen auch automatisch, und für ein schnelles Scale-in schnell freigegeben werden. Für den Nutzer erscheinen die für das Bereitstellen verfügbaren Funktionen häufig unbegrenzt und sie können jederzeit in jeder beliebigen Menge gekauft werden.
  • Measured Service: Cloud-Systeme steuern und optimieren die Verwendung von Ressourcen automatisch, indem sie eine Messfunktion auf einer gewissen Abstraktionsebene nutzen, die für die Art von Dienst geeignet ist (z. B. Speicher, Verarbeitung, Bandbreite sowie aktive Benutzerkonten). Der Ressourcen-Verbrauch kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Nutzer des verwendeten Dienstes Transparenz geschaffen wird.
  • Bei den Dienstmodellen handelt es sich um die folgenden:
  • Software as a Service (SaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, die in einer Cloud-Infrastruktur laufenden Anwendungen des Anbieters zu verwenden. Die Anwendungen sind über eine Thin-Client-Schnittstelle wie einen Web-Browser (z. B. auf dem Web beruhende E-Mail) von verschiedenen Client-Einheiten zugänglich. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter das Netzwerk, Server, Betriebssysteme, Speicher bzw. sogar einzelne Anwendungsfunktionen, mit der möglichen Ausnahme von eingeschränkten benutzerspezifischen Anwendungskonfigurationseinstellungen.
  • Platform as a Service (PaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, durch einen Nutzer erstellte bzw. erhaltene Anwendungen, die unter Verwendung von durch den Anbieter unterstützten Programmiersprachen und Tools erstellt wurden, in der Cloud-Infrastruktur einzusetzen. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter Netzwerke, Server, Betriebssysteme bzw. Speicher, hat aber die Kontrolle über die eingesetzten Anwendungen und möglicherweise über Konfigurationen des Application Hosting Environment.
  • Infrastructure as a Service (IaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, das Verarbeiten, Speicher, Netzwerke und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Nutzer in der Lage ist, beliebige Software einzusetzen und auszuführen, zu der Betriebssysteme und Anwendungen gehören können. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicher, eingesetzte Anwendungen und möglicherweise eine eingeschränkte Kontrolle über ausgewählte Netzwerkkomponenten (z. B. Host-Firewalls).
  • Bei den Einsatzmodellen handelt es sich um die folgenden:
  • Private Cloud: Die Cloud-Infrastruktur wird einzig und allein für eine Organisation betrieben. Sie kann durch die Organisation oder einen Dritten verwaltet werden und kann sich in den eigenen Räumen oder in fremden Räumen befinden.
  • Community Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine spezielle Benutzergemeinschaft, die gemeinsame Angelegenheiten haben (z. B. Mission, Sicherheitsanforderungen, Richtlinien sowie Überlegungen bezüglich der Einhaltung von Vorschriften). Sie kann durch die Organisationen oder einen Dritten verwaltet werden und kann in den eigenen Räumen oder fremden Räumen stehen.
  • Public Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt und sie gehört einer Cloud-Dienste verkaufenden Organisation.
  • Hybrid Cloud: Die Cloud-Infrastruktur ist eine Zusammensetzung aus zwei oder mehreren Clouds (privat, Benutzergemeinschaft oder öffentlich), die zwar einzelne Einheiten bleiben, aber durch eine standardisierte oder proprietäre Technologie miteinander verbunden sind, die Daten- und Anwendungsportierbarkeit ermöglicht (z. B. Cloud-Zielgruppenverteilung für den Lastenausgleich zwischen Clouds).
  • Eine Cloud-Computing-Umgebung ist dienstorientiert mit Fokus auf Statusunabhängigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität. Im Herzen von Cloud-Computing liegt eine Infrastruktur, die ein Netzwerk aus zusammengeschalteten Knoten aufweist.
  • Unter Bezugnahme auf 1 ist eine schematische Abbildung eines Beispiels eines Cloud-Computing-Knotens gezeigt. Der Cloud-Computing-Knoten 10 ist lediglich ein Beispiel eines geeigneten Cloud-Computing-Knotens und soll keinerlei Einschränkungen für den Umfang der Verwendung oder Funktionalität von Ausführungsformen der hierin beschriebenen Erfindung andeuten. Trotzdem kann eine beliebige vorstehend dargelegte Funktionalität in dem Cloud-Computing-Knoten 10 umgesetzt und/oder von diesem durchgeführt werden.
  • In dem Cloud-Computing-Knoten 10 gibt es ein Computersystem/einen Server 12, das/der mit zahlreichen anderen Universal- bzw. Spezial-Datenverarbeitungssystem-Umgebungen bzw. Konfigurationen betriebsfähig ist. Zu Beispielen für allgemein bekannte Datenverarbeitungssysteme, Umgebungen und/oder Konfigurationen, die zur Verwendung mit dem Computersystem/Server 12 geeignet sein können, gehören Personal-Computer-Systeme, Server-Computersysteme, Thin Clients, Thick Clients, Handheld- bzw. Laptop-Geräte, Multiprozessorsysteme, auf Mikroprozessoren beruhende Systeme, Set-Top-Boxen, programmierbare Verbraucherelektronik, Netzwerk-PCs, Minicomputersysteme, Mainframe-Computersysteme sowie verteile Cloud-Computing-Umgebungen, die irgendeine(s) der obigen Systeme bzw. Einheiten enthalten, u. ä., aber nicht darauf beschränkt.
  • Das Computersystem/der Server 12 kann in dem allgemeinen Kontext von durch Computersysteme ausführbaren Instruktionen, z. B. durch Programmmodule, beschrieben werden, die von einem Computersystem ausgeführt werden. Allgemein können zu Programmmodulen Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen und so weiter gehören, die bestimmte Aufgaben durchführen bzw. bestimmte abstrakte Datenarten umsetzen. Das Computersystem/der Server 12 kann in verteilten Cloud-Computing-Umgebungen ausgeführt werden, wo Aufgaben durch ferne Verarbeitungseinheiten durchgeführt werden, die über ein Datenübertragungsnetzwerk verbunden sind. In einer verteilten Cloud-Computing-Umgebung können sich Programmmodule sowohl in lokalen als auch in fernen Computersystem-Speichermedien befinden, darunter Hauptspeichereinheiten.
  • Wie in 1 gezeigt ist, ist das Computersystem/der Server 12 in dem Cloud-Computing-Knoten 10 in Form einer Universal-Datenverarbeitungseinheit gezeigt. Die Komponenten des Computersystems/Servers 12 können einen oder mehrere Prozessoren oder Verarbeitungseinheiten 16, einen Systemspeicher 28 und einen Bus 18 aufweisen, der verschiedene Systemkomponenten, darunter den Systemspeicher 28, mit dem Prozessor 16 verbindet, sind aber nicht darauf beschränkt.
  • Der Bus 18 stellt eine oder mehrere einer beliebigen von mehreren Arten von Busstrukturen dar, darunter einen Speicherbus oder eine Speichersteuereinheit, einen Peripheriebus, einen beschleunigten Grafikanschluss und einen Prozessor- oder lokalen Bus, die eine beliebige aus einer Vielfalt von Busarchitekturen verwenden. Zu derartigen Architekturen gehören als Beispiel und nicht als Einschränkung ein ISA-Bus (Industry Standard Architecture), ein MCA-Bus (Micro Channel Architecture), ein EISA-Bus (Enhanced ISA), ein VESA-Lokalbus (Video Electronics Standards Association) sowie ein PCI-Bus (Peripheral Component Interconnect).
  • Das Computersystem/der Server 12 enthält üblicherweise eine Vielfalt von durch ein Computersystem lesbaren Medien. Bei derartigen Medien kann es sich um jedes beliebige Medium handeln, auf welches das Computersystem/der Server 12 zugreifen kann, und es beinhaltet sowohl flüchtige als auch nichtflüchtige Medien, austauschbare und nicht austauschbare Medien.
  • Der Systemspeicher 28 kann durch ein Computersystem lesbare Medien in Form eines nichtflüchtigen Speichers wie einen Direktzugriffsspeicher (RAM) 30 und/oder den Cachespeicher 32 enthalten. Das Computersystem/der Server 12 kann ferner andere austauschbare/nicht austauschbare, flüchtige/nichfflüchtige Computersystem-Speichermedien enthalten. Als Beispiel kann das Speichersystem 34 zum Lesen von und zum Schreiben auf ein nicht austauschbares, nichtflüchtiges magnetisches Medium bereitgestellt werden (das nicht gezeigt ist und üblicherweise „Festplattenlaufwerk” genannt wird). Es können auch ein Magnetplattenlaufwerk zum Lesen von und Schreiben auf eine austauschbare, nichfflüchtige Magnetplatte (z. B. eine „Floppy-Diskette”) und ein optisches Plattenlaufwerk zum Lesen von oder Schreiben auf eine austauschbare, nichfflüchtige optische Platte wie eine CD-ROM, DVD-ROM oder ein anderes optisches Medium bereitgestellt werden, auch wenn diese nicht gezeigt sind. In derartigen Fällen können sie jeweils über ein oder mehrere Datenmedienschnittstellen mit dem Bus 18 verbunden sein. Wie nachfolgend weiter abgebildet und beschrieben wird, kann der Speicher 28 mindestens ein Programmprodukt enthalten, das einen Satz von Programmmodulen (z. B. mindestens eins) aufweist, die so konfiguriert sind, dass sie die Funktionen von Ausführungsformen der Erfindung ausführen.
  • Als Beispiel und nicht als Einschränkung können das Programm/Dienstprogramm 40 mit einem Satz von Programmmodulen 42 (mindestens eins) sowie ein Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten in dem Speicher 28 gespeichert sein. Jedes der Betriebssysteme, ein oder mehrere Anwendungsprogramme, andere Programmmodule und die Programmdaten oder eine beliebige Kombination daraus können eine Umsetzung einer Netzwerkumgebung enthalten. Die Programmmodule 42 führen allgemein die hierin beschriebenen Funktionen und/oder Methodiken von Ausführungsformen der Erfindung aus.
  • Das Computersystem/der Server 12 kann auch mit einer oder mehreren externen Einheiten 14 wie einer Tastatur, einer Zeigeeinheit, einer Anzeige 24 usw., einer oder mehreren Einheiten, die es einem Benutzer ermöglichen, mit dem Computersystem/Server 12 Daten auszutauschen, und/oder beliebigen Einheiten (z. B. Netzwerkkarten, Modems usw.) Daten austauschen, die es dem Computersystem/Server 12 ermöglichen, mit einer oder mehreren anderen Datenverarbeitungseinheiten Daten auszutauschen Ein derartiger Datenaustausch kann über die Eingabe/Ausgabe-(E/A-)Schnittstellen 22 erfolgen. Außerdem kann das Computersystem/der Server 12 über den Netzwerkadapter 20 mit einem oder mehreren Netzwerken Daten austauschen, wie zum Beispiel einem lokalen Netzwerk (LAN), einem allgemeinen Weitverkehrsnetz (WAN) und/oder einem öffentlichen Netzwerk (z. B. dem Internet). Wie abgebildet ist, tauscht der Netzwerkadapter 20 mit den anderen Komponenten des Computersystems/Servers 12 über den Bus 18 Daten aus. Es sollte klar sein, dass andere Hardware- und/oder Software-Komponenten in Verbindung mit dem Computersystem/Server 12 verwendet werden könnten, auch wenn diese nicht gezeigt sind. Zu Beispielen gehören folgende, ohne auf diese beschränkt zu sein: Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, externe Festplattenlaufwerk-Arrays, RAID-Systeme, Bandlaufwerke und Speichersysteme zur Datenarchivierung usw.
  • Unter Bezugnahme auf 2 ist die veranschaulichende Cloud-Computing-Umgebung 50 abgebildet. Wie gezeigt ist, weist die Cloud-Computing-Umgebung 50 einen oder mehrere Cloud-Computing-Knoten 10 auf, mit denen von Cloud-Nutzer verwendete lokale Datenverarbeitungseinheiten wie der elektronische Assistent (PDA, personal digital assistant) oder das Mobiltelefon 54A, der Desktop-Computer 54B, der Laptop-Computer 54C und/oder das Automobil-Computer-System 54N Daten austauschen können. Die Knoten 10 können miteinander Daten austauschen. Sie können physisch oder virtuell in ein oder mehrere Netzwerke wie private, Benutzergemeinschafts-, öffentliche oder hybride Clouds gruppiert werden (nicht gezeigt), wie vorstehend beschrieben wurde, oder in eine Kombination daraus. Dies ermöglicht es der Cloud-Computing-Umgebung 50, Infrastruktur, Plattformen und/oder Software als Dienst anzubieten, für die ein Cloud-Nutzer keine Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es sei darauf hingewiesen, dass die Arten von in 2 gezeigten Datenverarbeitungseinheiten 54A bis N lediglich veranschaulichend sein sollen und dass die Datenverarbeitungsknoten 10 und die Cloud-Computing-Umgebung 50 über eine beliebige Art Netzwerk und/oder über eine beliebige Art von über ein Netzwerk aufrufbarer Verbindung (z. B. unter Verwendung eines Web-Browsers) mit einer beliebigen Art von computergestützter Einheit Daten austauschen können.
  • Unter Bezugnahme auf 3 wird ein Satz von funktionalen Abstraktionsschichten gezeigt, die durch die Cloud-Computing-Umgebung 50 (2) bereitgestellt werden. Es sollte von vornherein klar sein, dass die in 3 gezeigten Komponenten, Schichten und Funktionen lediglich veranschaulichend sein sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie abgebildet ist, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
    Die Hardware- und Software-Schicht 60 enthält Hardware- und Software-Komponenten. Zu Beispielen für Hardware-Komponenten gehören Mainframe-Computer, in einem Beispiel IBM® zSeries®-Systeme, auf der RISC-(Reduced Instruction Set Computer)Architektur beruhende Server, in einem Beispiel IBM pSeries®-Systeme, IBM xSeries®-Systeme, IBM BladeCenter®-Systeme, Speichereinheiten, Netzwerke sowie Netzwerkkomponenten. Zu Beispielen für Software-Komponenten gehören Netzwerk-Anwendungsserver-Software, in einem Beispiel IBM WebSphere®-Anwendungsserver-Software, sowie Datenbank-Software, in einem Beispiel IBM DB2®-Datenbank-Software. (IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere sowie DB2 sind Marken von International Business Machines Corporation, die in vielen Jurisdiktionen weltweit eingetragen sind).
  • Die Virtualisierungsschicht 62 stellt eine Abstraktionsschicht bereit, aus der die folgenden Beispiele für virtuelle Einheiten bereitgestellt werden können: virtuelle Server, virtueller Speicher, virtuelle Netzwerke, darunter virtuelle private Netzwerke, virtuelle Anwendungen und Betriebssysteme sowie virtuelle Clients.
  • In einem Beispiel kann die Verwaltungsschicht 64 die nachfolgend beschriebenen Funktionen bereitstellen. Die Bereitstellung von Ressourcen stellt die dynamische Beschaffung von Datenverarbeitungsressourcen sowie anderen Ressourcen bereit, die zum Durchführen von Aufgaben innerhalb der Cloud-Computing-Umgebung verwendet werden. Das Messen und die Preisfindung stellen die Kostenverfolgung beim Verwenden von Ressourcen innerhalb der Cloud-Computing-Umgebung sowie die Rechnungsstellung für den Verbrauch dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Anwendungs-Software-Lizenzen aufweisen. Die Sicherheit stellt die Identitätsüberprüfung für Cloud-Nutzer und Aufgaben sowie Schutz für Daten und andere Ressourcen bereit. Das Benutzerportal stellt Nutzern und Systemadministratoren den Zugang zu der Cloud-Computing-Umgebung bereit. Die Verwaltung des Dienstumfangs stellt die Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, so dass die benötigten Dienstziele erreicht werden. Das Planen und Erfüllen von Vereinbarungen zum Dienstumfang (SLA, Service Level Agreements) stellt die Anordnung vorab und die Beschaffung von Cloud-Computing-Ressourcen, für die eine zukünftige Anforderung vorausgesehen wird, gemäß einem SLA bereit.
  • Die Arbeitslastschicht 66 stellt Beispiele für die Funktionalität bereit, für welche die Cloud-Computing-Umgebung verwendet werden kann. Zu Beispielen für Arbeitslasten und Funktionen, die von dieser Schicht bereitgestellt werden können, gehören: Abbildung und Navigation, Software-Entwicklung und Lebenszyklusverwaltung, Bereitstellung von Ausbildung in virtuellen Klassenzimmern, Datenanalytikverarbeitung, Transaktionsverarbeitung.
  • Um beispielsweise Speicher-Ressourcen in einem Speichersystem automatisch und genau neu zuzuordnen, überwachen das Verfahren und die Einheit dieser Erfindung wie oben beschrieben die Kapazitätsauslastung jedes Speicher-Pools in dem Speichersystem, ermitteln Ziel-Speicher-Pools, die gemäß der Wachstumstendenz deren Kapazitätsauslastung zu erweitern sind, entwickeln dann für die Ziel-Speicher-Pools eine Mobilitätsrichtlinie für Speicher-Ressourcen und führen schließlich die Mobilitätsrichtlinie aus, um Quellspeicherplatten von Quell-Speicher-Pools zu Ziel-Speicher-Pools zu verlagern. Die Funktionen dieser Erfindung können in den Arbeitslastschichten 66 aus 3 enthalten sein.
  • Ausführungsformen dieser Erfindung werden nachfolgend unter Bezugnahme auf die 4 bis 12 ausführlich beschrieben. 4 zeigt schematisch ein Speichersystem 4000 gemäß einer Ausführungsform dieser Erfindung. Bei dem Speichersystem 4000 handelt es sich zum Beispiel um ein Cloud-Speichersystem. Wie in 4 gezeigt, weist das Speichersystem 4000 eine Vielzahl von Speicher-Pools wie einen Speicher-Pool 0 bis einen Speicher-Pool N auf, wobei N eine ganze Zahl größer oder gleich 1 ist. Jeder Speicher-Pool kann aus einer oder mehreren Speicherplatten bestehen. Der Speicher-Pool 0 kann zum Beispiel aus einer Platte 00, einer Platte 01, ..., einer Platte 0M0 bestehen, wobei M00 (d. h., der Speicher-Pool besteht aus lediglich einer Speicherplatte) oder eine ganze Zahl größer oder gleich 1 betragen kann. Verschiedene Speicher-Pools können aus einer verschiedenen Anzahl von Speicherplatten bestehen. Die Anzahl von in dem Speicher-Pool 1 enthaltenen Speicherplatten (M1 + 1) kann sich von der Anzahl von in dem Speicher-Pool 2 enthaltenen Speicherplatten (M2 + 1) unterscheiden. Hierin handelt es sich bei Speicherplatten üblicherweise um auf RAID beruhende logische Datenträger, die dem Speichersystem auf Speichereinheiten auf einer niedrigen Ebene bereitgestellt werden.
  • Verschiedene Speicherplatten in verschiedenen Speicher-Pools können verschiedene Nennkapazitäten aufweisen. Die Nennkapazität der Platte 00 in dem Speicher-Pool 0 kann zum Beispiel 100 GB betragen, während die Platte 01 eine Nennkapazität von 150 GB aufweisen kann. Vor dem Neuzuordnen von Speicher-Ressourcen wird die Summe der Nennkapazität jeder Speicherplatte in einem Speicher-Pool als ursprüngliche Speicher-Pool-Kapazität Original_Pool_Capacity des Speicher-Pools bezeichnet.
  • Das Speichersystem 4000 kann ferner die ungenutzten Speicherplatten U0 bis Uk aufweisen, die keinem Speicher-Pool zugeordnet wurden. Man beachte, dass das in 4 gezeigte Speichersystem 4000 möglicherweise lediglich ein Beispiel von für diese Erfindung anwendbaren Massenspeichersystemen darstellt und folglich andere Speichersysteme mit unterschiedlichen Anordnungen als der des Speichersystems 4000 in der Praxis verwendet werden können.
  • 5 ist ein allgemeiner Ablaufplan, der ein Verfahren 500 zum dynamischen Konfigurieren eines Speichersystems gemäß einer Ausführungsform dieser Erfindung veranschaulicht. Zunächst einmal ist es notwendig, zu ermitteln, welche Speicher-Pools aus einer Vielzahl von Speicher-Pools (zum Beispiel der in 4 gezeigten Speicher-Pools 0 bis N) des Speichersystems (zum Beispiel des in 4 gezeigten Speichersystems 4000) erweitert werden müssen (Schritt 501). Einer einfachen Beschreibung halber wird ein in einem Speichersystem eine Kapazitätserweiterung auslösender Speicher-Pool in dieser Beschreibung als Ziel-Speicher-Pool bezeichnet, während ein Speicher-Pool, aus dem einige Speicherplatten in einen Ziel-Speicher-Pool verlagert werden, Quell-Speicher-Pool genannt wird, und eine Speicherplatte, die in einen Ziel-Speicher-Pool verlagert wird, Quellspeicherplatte genannt wird.
  • 6 veranschaulicht insbesondere einen Prozess 600 einer konkreten Umsetzung des Schritts 501, wobei eine Tendenzvorhersage der Speicher-Ressourcen-Auslastung für das genaue Neuzuordnen von Speicher-Ressourcen verwendet wird. In Schritt 601 wird die Kapazitätsauslastung (z. B. die genutzte Kapazität Space_Used) jedes Speicher-Pools in dem Speichersystem 4000 überwacht (zum Beispiel periodisch oder in Echtzeit) und in einer Verlaufsdatentabelle des entsprechenden Speicher-Pools aufgezeichnet. Danach wird für jeden Speicher-Pool beruhend auf den erfassten Verlaufsdaten eine Funktion der genutzten Kapazität im Zeitverlauf, d. h. eine Kapazitätsauslastungsfunktion, erstellt (Schritt 603). In einem Beispiel kann eine Bibliothek von Tendenzvorhersagemodellen im Voraus erstellt werden, die mehrere Tendenzvorhersagemodelle wie zum Beispiel lineare Funktionsmodelle, Potenzfunktionsmodelle, logarithmische Funktionsmodelle, Polynom-Funktions-Modelle usw. aufweisen kann. Dann wird aus der Bibliothek von Tendenzvorhersagemodellen entsprechend den erfassten Verlaufsdaten ein optimal für die Verlaufsdaten passendes Tendenzvorhersagemodell ausgewählt. Dann wird unter Verwendung des für den entsprechenden Speicher-Pool und die erfassten Verlaufsdaten ausgewählten Tendenzvorhersagemodells eine Kapazitätsauslastungsfunktion Capacity_Used (t) für den Speicher-Pool erstellt.
  • Als nächstes wird in Schritt 605 unter Verwendung der Funktion Capacity_Used (t) eine Zeit bis zum Aufbrauchen der ursprünglichen Speicher-Pool-Kapazität, d. h. eine Kapazitätsaufbrauchzeit T_End ab einem aktuellen Zeitpunkt berechnet. Des Weiteren wird unter Verwendung der in Schritt 601 erfassten Kapazitätsauslastung des Speicher-Pools eine verbleibende Kapazität Space_Remained des Speicher-Pools berechnet. Eine verbleibende Kapazität Space_Remained kann zum Beispiel durch Subtrahieren einer genutzten Kapazität von der ursprünglichen Speicher-Pool-Kapazität des Speicher-Pools berechnet werden.
  • Als nächstes wird in Schritt 607 eine Kapazitätsaufbrauchzeit T_End mit einem für den Speicher-Pool vorbestimmten, vorher festgelegten Schwellwert für die Kapazitätsaufbrauchzeit T_Set verglichen, während die verbleibende Kapazität Space_Remained mit einem für den Speicher-Pool vorbestimmten, vorher festgelegten Schwellwert für die verbleibende Kapazität Space_Set verglichen wird. Wenn das Ergebnis des Vergleichens in Schritt 607 zeigt, dass T_End ≤ T_Set oder Space_Remained ≤ Space_Set sind, wird der Speicher-Pool als Ziel-Speicher-Pool ermittelt, was anzeigt, dass der Speicher-Pool einen Kapazitätserweiterungsvorgang auslöst (Schritt 609).
  • Der vorher festgelegte Schwellwert für die Kapazitätsaufbrauchzeit und der vorher festgelegte Schwellwert für die verbleibende Kapazität können von Benutzern nach Bedarf im Voraus festgelegt werden. Für verschiedene Speicher-Pools ist es auch möglich, verschiedene vorher festgelegte Schwellwerte für die Kapazitätsaufbrauchzeit und verschiedene vorher festgelegte Schwellwerte für die verbleibende Kapazität festzulegen. Für einen Speicher-Pool können der vorher festgelegte Schwellwert für die Kapazitätsaufbrauchzeit zum Beispiel auf 7 Tage und der vorher festgelegte Schwellwert für die verbleibende Kapazität auf 1 TB festgelegt werden. Anders ausgedrückt, ein Kapazitätserweiterungsvorgang wird ausgelöst, wenn die Kapazität des Speicher-Pools innerhalb von 7 Tagen aufgebraucht würde oder er eine verbleibende Kapazität von weniger als 1 TB aufweist.
  • Obwohl die Bedingung zum Auslösen eines Kapazitätserweiterungsvorgangs in der in 6 gezeigten Ausführungsform in Bezug sowohl auf die Kapazitätsaufbrauchzeit als auch die verbleibende Kapazität beschrieben wurde, sei angemerkt, dass in anderen Ausführungsformen jedoch beruhend auf einem Vergleichen entweder der Kapazitätsaufbrauchzeit oder der verbleibenden Kapazität mit einem entsprechenden Schwellwert ermittelt werden kann, ob ein bestimmter Speicher-Pool ein Ziel-Speicher-Pool ist.
  • Die Schritte 601 bis 609 werden für sämtliche Speicher-Pools in dem Speichersystem 4000 ausgeführt, so dass eine Liste festgelegt wird, die sämtliche eine Kapazitätserweiterung erfordernde Ziel-Speicher-Pools kennzeichnet, d. h. eine Liste von Ziel-Speicher-Pools. In einer Ausführungsform kann der Prozess 600 ferner einen Schritt des Sortierens der Liste von Ziel-Speicher-Pools gemäß deren Prioritäten aufweisen. Zunächst wird ein Prioritätsfaktor p_factor eines Ziel-Speicher-Pools berechnet (Schritt 611). Gemäß der folgenden Gleichung (1) werden die Kapazitätsaufbrauchzeit und die verbleibende Kapazität des Speicher-Pools mit dem vorher festgelegten Schwellwert für die Kapazitätsaufbrauchzeit und dem vorher festgelegten Schwellwert für die verbleibende Kapazität normalisiert: std(T_End) = T_End/T_Set std(Space_Remained) = Space_Remained/Space_Set (1)
  • Unter Verwendung der folgenden Gleichung (2) wird ein Prioritätsfaktor p_factor des Ziel-Speicher-Pools berechnet:
    Figure 00190001
  • Je kleiner der Prioritätsfaktor p_factor ist, desto dringender erfordert der Speicher-Pool eine Kapazitätserweiterung. Somit kann an einer geeigneten Position in der Liste von Ziel-Speicher-Pools ein Ziel-Speicher-Pool gemäß dessen Prioritätsfaktor p_factor eingefügt werden (Schritt 613). Ein Beispiel einer Liste von Ziel-Speicher-Pools ist in der folgenden Tabelle 1 gezeigt. Tabelle 1: Beispiel einer Liste von Ziel-Speicher-Pools, sortiert nach Prioritätsfaktoren
    Priorität Speicher-Pool T_End (Tag) T_Set (Tag) Space_Remained (GB) Space_Set (GB) p_factor
    1 Pool 5 3 7 487 500 1,06
    2 Pool 8 5 7 513 500 1,25
    3 Pool 2 2 5 160 100 1,33
    4 Pool 1 3 6 73 50 1,54
    5 Pool 3 10 7 558 600 1,70
    6 Pool 0 7 7 620 400 1,84
  • Obwohl in der obigen Ausführungsform beschrieben wurde, dass die Ausführungsreihenfolge der Kapazitätserweiterung von Ziel-Speicher-Pools in Bezug auf beruhend auf den Gleichungen (1) und (2) berechnete Prioritätsfaktoren ermittelt wird, sei angemerkt, dass ein Fachmann verstehen kann, dass die Ausführungsreihenfolge auch auf andere Arten ermittelt werden kann. Anstatt der Kapazitätsaufbrauchzeit und der verbleibenden Kapazität kann der Prioritätsfaktor zum Beispiel beruhend auf der Wichtigkeit von in dem Speicher-Pool gespeicherten Daten berechnet werden. Als weiteres Beispiel können die Kapazitätsaufbrauchzeit und die verbleibende Kapazität beim Berechnen des Prioritätsfaktors beruhend auf der Kapazitätsaufbrauchzeit und der verbleibenden Kapazität auf andere Arten normalisiert werden.
  • Zurück zu 5: Nach dem Ermitteln in Schritt 501 sämtlicher Ziel-Speicher-Pools, deren Kapazität zu erweitern ist, fährt das Verfahren 500 mit Schritt 502 fort, in dem für jeden der ermittelten Speicher-Pools eine Mobilitätsrichtlinie für Speicher-Ressourcen für den Ziel-Speicher-Pool entwickelt wird, das heißt, das Berechnen, um wie viel Kapazität der Ziel-Speicher-Pool erweitert werden muss, und schließlich das Ermitteln, welche Speicherplatte oder -platten in dem Speichersystem in den Ziel-Speicher-Pool verlagert werden sollten.
  • 7 ist ein Ablaufplan, der einen Prozess 700 zum Ermitteln von Quellspeicherplatten gemäß einer Ausführungsform dieser Erfindung veranschaulicht. Der Prozess 700 zum Ermitteln von Quellspeicherplatten beginnt mit dem Berechnen einer erwarteten Erweiterungskapazität eines Ziel-Speicher-Pools (Schritt 701). 8 veranschaulicht insbesondere eine konkrete Umsetzung 800 des Schritts 701, in der eine erwartete Erweiterungskapazität eines Ziel-Speicher-Pools beruhend sowohl auf der Kapazitätsaufbrauchzeit als auch auf der verbleibenden Kapazität des Ziel-Speicher-Pools ermittelt wird.
  • In einer Ausführungsform werden ein vorher festgelegter Schwellwert für die Kapazitätsaufbrauchzeit nach der Erweiterung T_threshold und ein vorher festgelegter Schwellwert für die verbleibende Kapazität nach der Erweiterung Space_threshold eines Ziel-Speicher-Pools im Voraus von Benutzern festgelegt. Der vorher festgelegte Schwellwert für die Kapazitätsaufbrauchzeit nach der Erweiterung T_threshold stellt den kürzesten Zeitraum dar, in dem ein Ziel-Speicher-Pool nach dessen Kapazitätserweiterung verwendet werden kann, und der vorher festgelegte Schwellwert für die verbleibende Kapazität nach der Erweiterung Space_threshold stellt die kleinste verfügbare Kapazität des Ziel-Speicher-Pools nach der Kapazitätserweiterung dar. Das heißt, die beiden Bedingungen in der folgenden Gleichung (3) sollten nach der Kapazitätserweiterung gleichzeitig erfüllt sein: T_end ≥ T_threshold Space_Remained ≥ Space_threshold (3)
  • In einem Beispiel können T_threshold und Space_threshold auf 2 Mal T_Set bzw. Space_Set festgelegt werden, also zum Beispiel kann T_threshold auf 14 Tage und Space_threshold auf 2 TB festgelegt werden.
  • In Schritt 801 wird eine erste Erweiterungskapazität Cap1 beruhend auf der Kapazitätsaufbrauchzeit eines Ziel-Speicher-Pools berechnet. In einer Ausführungsform kann die in Schritt 603 erstellte Kapazitätsauslastungsfunktion Capacity_used (t) zum Berechnen einer Gesamtkapazität Capacity_T_Expanded des Ziel-Speicher-Pools verwendet werden, wenn die Kapazitätsaufbrauchzeit T_end gleich dem vorher festgelegten Schwellwert für die Kapazitätsaufbrauchzeit nach der Erweiterung T_threshold ist. Das heißt, dass die erwartete Gesamtkapazität eines Ziel-Speicher-Pools nach der Erweiterung wie in 9A gezeigt capacity_T_Expanded = Capacity_Used (t0 + T_threshold) ist, wobei t0 eine aktuelle Zeit darstellt. Wie in der folgenden Gleichung (4) und in 9B gezeigt ist, wird die erste Erweiterungskapazität Cap1 durch Subtrahieren der ursprünglichen Speicher-Pool-Kapazität der Zielspeichereinheit von der erwarteten Gesamtkapazität nach der Erweiterung capacity_T_Expanded berechnet: Cap1 = Capacity_T_Expanded – Original_Pool_Capacity (4)
  • Als nächstes wird in Schritt 803 eine zweite Erweiterungskapazität Cap2 des Ziel-Speicher-Pools beruhend auf der verbleibenden Kapazität des Ziel-Speicher-Pools berechnet. In einer Ausführungsform wird eine erwartete Gesamtkapazität nach der Erweiterung der Zielspeichereinheit Capacity_Space_Expanded durch Addieren des vorher festgelegten Schwellwerts für die verbleibende Kapazität nach der Erweiterung Space_threshold mit der genutzten Kapazität Space_used ermittelt. Wie in der folgenden Gleichung (5) und in 9C gezeigt ist, wird die zweite Erweiterungskapazität Cap2 durch Subtrahieren der ursprünglichen Speicher-Pool-Kapazität Original_Pool_Capacity der Zielspeichereinheit von der erwarteten Gesamtkapazität nach der Erweiterung capacity_Space_Expanded berechnet: Cap2 = Capacity_Space_Expanded – Original_Pool_Capacity (5)
  • Schließlich wird in Schritt 805 die größere der ersten Erweiterungskapazität Cap1 und der zweiten Erweiterungskapazität Cap2 als erwartete Erweiterungskapazität des Ziel-Speicher-Pools verwendet, Claimed_Space = Max(Cap1, Cap2).
  • Nach dem Ermitteln der erwarteten Erweiterungskapazität eines Ziel-Speicher-Pools in dem in 8 gezeigten Prozess 800 kehrt der Fluss zu 7 zurück, um mit dem Ermitteln fortzufahren, welche Speicherplatte oder -platten die erwartete Erweiterungskapazität erfüllen und zum Migrieren in den Ziel-Speicher-Pool geeignet sind. In einer in 7 gezeigten Ausführungsform wird bei dem Auswählen der Quellspeicherplatte ein Kennwert-Übereinstimmungsgrad des Ziel-Speicher-Pools und einer Quellspeicherplatte berücksichtigt, um die Leistungsfähigkeit und die Zuverlässigkeit eines Ziel-Speicher-Pools vor einer offensichtlichen Schwankung auf Grund der Migration von Quellspeicherplatten zu schützen.
  • Insbesondere wird in Schritt 703 ein Speicherkennwert MD(target_pool) eines Ziel-Speicher-Pools berechnet. Der Speicherkennwert eines Ziel-Speicher-Pools ist definiert als eine gewichtete Summe von Speicherkennwerten MU(Mk) sämtlicher in dem Ziel-Speicher-Pool enthaltenen Speicherplatten, d. h.,
    Figure 00220001
    wobei dk die Speicherkennwertgewichtung der entsprechenden Speicherplatte in dem Speicher-Pool darstellt, der für den Speicherkennwert MU(Mk) der Speicherplatte und dessen Leistungsfähigkeit in dem Speicher-Pool relevant ist, und
    Figure 00230001
    Der Speicherkennwert jeder Speicherplatte beruht zum Beispiel auf einem oder mehreren der Folgenden: der RAID-Klasse der Speicherplatte, der RAID-Größe, der Redundanz des Speichernetzwerks (SAN, Storage Area Network), dem Ansteuertyp, der Schnittstelle, der Drehzahl (UpM, Umdrehungen pro Minute) und/oder der Cachespeichergröße.
  • In einer Ausführungsform werden Speicherkennwerte für sämtliche Speicherplatten in dem Speicher 4000 berechnet. Dann wird der Speicherkennwert eines Ziel-Speicher-Pools MD (target_pool) wie oben beschrieben beruhend auf den Speicherkennwerten der in dem Ziel-Speicher-Pool enthaltenen Speicherplatten berechnet. Danach werden Speicherplatten des Speichersystems 4000 als in Frage kommende Quellspeicherplatten ausgewählt, die Speicherkennwerte aufweisen, die mit dem Speicherkennwert des Ziel-Speicher-Pools übereinstimmen (Schritt 705).
  • 10 veranschaulicht einen Prozess 1000 des Erstellens einer Liste von in Frage kommenden Quellspeicherplatten gemäß einer Ausführungsform dieser Erfindung. Der Prozess 1000 beginnt mit Schritt 1010, in dem der Speicherkennwert jeder Speicherplatte, die in keinem Ziel-Speicher-Pool in dem Speichersystem 4000 enthalten ist, erfasst wird, ausgeschlossen Speicherplatten, die in irgendeinem Ziel-Speicher-Pool enthalten sind.
  • Als nächstes wird beruhend auf dem erfassten Speicherkennwert, der Nennkapazität und der genutzten Kapazität jeder Speicherplatte und dem Speicherkennwert eines Ziel-Speicher-Pools ein Übereinstimmungsgrad Match_Degree zwischen einer Speicherplatte und dem Ziel-Speicher-Pool berechnet (Schritt 1015). In einer Ausführungsform ist der Übereinstimmungsgrad Match_Degree definiert als:
    Figure 00230002
    wobei:
  • TC
    die Nennkapazität der Speicherplatte darstellt;
    CS
    die erwartete Erweiterungskapazität des Ziel-Speicher-Pools Claimed_Space darstellt (siehe Schritt 701 aus 7 und Schritt 805 aus 8);
    UC
    eine genutzte Kapazität der Speicherplatte darstellt;
    UD
    den Absolutwert der Kennwertdifferenz zwischen der Speicherplatte und dem Ziel-Speicher-Pool darstellt, d. h. den Absolutwert von (MD(target_pool) – MU(Mj));
    MD
    den Speicherkennwert MD(target_pool) des Ziel-Speicher-Pools darstellt; und
    dTC, dUC und UD
    Gewichtungen von entsprechenden Elementen in der obigen Gleichung darstellen, und ΣdTC + dUC + dUD = 1.
  • Das erste Element aus Gleichung (6) ist für die Nennkapazität der Speicherplatte relevant, die sich auf den Grad der Speicherplatte bezieht, die erwartete Erweiterungskapazität eines Ziel-Speicher-Pools zu erfüllen; anders ausgedrückt, ob eine Quellspeicherplatte oder mehrere Quellspeicherplatten verlagert werden sollen, um den Kapazitätserweiterungsbedarf des Ziel-Speicher-Pools zu erfüllen. Das zweite Element aus Gleichung (6) ist für die in der Speicherplatte verwendete Kapazität relevant, die den Verwaltungsaufwand für das Bereinigen von auf der Speicherplatte vor deren Migration in den Ziel-Speicher-Pool gespeicherten Daten bestimmt. Offensichtlich ist es umso besser, je kleiner der Wert dieses Elements ist. Das dritte Element aus Gleichung (6) ist für die Kennwertdifferenz zwischen der Speicherplatte und dem Ziel-Speicher-Pool relevant, die eine optimale Übereinstimmung davon in Bezug auf Leistungsfähigkeit, Redundanz und andere natürliche Kennwerte ermittelt. Die Werte von dTC, dUC und dUD können von Benutzern nach Bedarf angepasst werden, um die Beziehungen der oben genannten drei Elemente festzulegen.
  • Obwohl es in der Gleichung (6) als Beispiel beschrieben wurde, einen Übereinstimmungsgrad in Bezug auf drei Aspekte der Nennkapazität, der genutzten Kapazität und der Kennwertdifferenz von einem Ziel-Speicher-Pool einer Speicherplatte zu berechnen, sei angemerkt, dass in anderen Ausführungsformen lediglich ein oder zwei Aspekte berücksichtigt werden können; zum Beispiel können ein oder zwei der Elemente dTC, dUC und dUD auf null gesetzt werden. Alternativ oder zusätzlich können andere Leistungsfähigkeitsaspekte einer Speicherplatte und eines Ziel-Speicher-Pools verwendet werden.
  • Als nächstes fährt der Prozess 1000 mit Schritt 1020 fort, in dem Speicherplatten, die gemäß Gleichung (6) berechnete Übereinstimmungsgrade aufweisen und eine vorbestimmte Bedingung erfüllen, als in Frage kommende Quellspeicherplatten ausgewählt werden; hierin lautet die vorbestimmte Bedingung zum Beispiel, dass sie einen Übereinstimmungsgrad haben müssen, der höher als ein vorbestimmter Schwellwert ist. Im Falle von mehreren in Frage kommenden Quellspeicherplatten werden diese schließlich in einer Liste von in Frage kommenden Quellspeicherplatten sortiert (Schritt 1030). Man beachte, dass die Schritte 1020 und 1030 nicht unbedingt benötigt werden. In einigen Ausführungsformen können sämtliche Speicherplatten, die in keinem Ziel-Speicher-Pool enthalten sind, als in Frage kommende Quellspeicherplatten ermittelt werden. In einigen Ausführungsformen gibt es lediglich eine in Frage kommende Quellspeicherplatte, und es wird kein Sortiervorgang benötigt.
  • Nach dem Ermitteln der Liste von in Frage kommenden Quellspeicherplatten kehrt der Fluss zu 7 zurück und fährt mit Schritt 707 fort, in dem aus der Liste von in Frage kommenden Quellspeicherplatten Quellspeicherplatten ermittelt werden, die letztendlich in den Ziel-Speicher-Pool migriert werden.
  • 11 veranschaulicht einen Beispielprozess 1100 des Auswählens von Quellspeicherplatten gemäß einer Ausführungsform dieser Erfindung. In Schritt 1110 wird aus der Liste von in Frage kommenden Quellspeicherplatten eine in Frage kommende Quellspeicherplatte mit dem höchsten Übereinstimmungsgrad ausgewählt. Dann wird ermittelt, ob die in Frage kommende Quellspeicherplatte zu irgendeinem Speicher-Pool in dem Speichersystem 4000 gehört (Schritt 1120). Wenn ermittelt wird, dass die in Frage kommende Quellspeicherplatte zu keinem Speicher-Pool gehört, wie es bei einer beliebigen der nicht verwendeten Speicherplatten U0 bis Uk wie in 4 gezeigt der Fall ist, wird die in Frage kommende Quellspeicherplatte direkt als in den Ziel-Speicher-Pool zu migrierende Quellspeicherplatte ermittelt und aus der Liste von in Frage kommenden Quellspeicherplatten entfernt (Schritt 1150).
  • Wenn ermittelt wird, dass die in Frage kommende Quellspeicherplatte zu einem bestimmten Speicher-Pool gehört, fährt der Fluss mit Schritt 1130 fort, in dem ermittelt wird, ob das Migrieren der in Frage kommenden Quellspeicherplatte aus dem Quell-Speicher-Pool, zu dem sie gehört, möglicherweise einen Kapazitätserweiterungsvorgang des Quell-Speicher-Pools auslöst. Dies kann zum Beispiel unter Bezugnahme auf den in 6 gezeigten Prozess 600 durchgeführt werden.
  • Wenn ermittelt wird, dass das Migrieren der in Frage kommenden Quellspeicherplatte möglicherweise zu einem Bedarf für eine Kapazitätserweiterung des Quell-Speicher-Pools führt, zeigt dies an, dass diese in Frage kommende Quellspeicherplatte nicht als Quellspeicherplatte geeignet ist, und folglich wird sie von der Liste von in Frage kommenden Quellspeicherplatten entfernt (Schritt 1140). Der Fluss kehrt zu Schritt 1110 zurück, und die Schritte 1120 bis 1160 werden für eine nächste in Frage kommende Quellspeicherplatte mit dem höchsten Übereinstimmungsgrad aus der Liste von in Frage kommenden Quellspeicherplatten ausgewählt.
  • Wenn in Schritt 1130 ermittelt wird, dass das Migrieren der in Frage kommenden Quellspeicherplatte keinen Kapazitätserweiterungsvorgang des Quell-Speicher-Pools auslöst, wird die in Frage kommende Quellspeicherplatte als eine Quellspeicherplatte ermittelt, die in den Ziel-Speicher-Pool verlagert werden wird, und sie wird von der Liste von in Frage kommenden Quellspeicherplatten entfernt (Schritt 1150). Als nächstes wird in Schritt 1160 ermittelt, ob die Nennkapazität der in Frage kommenden Quellspeicherplatte die erwartete Erweiterungskapazität des Ziel-Speicher-Pools erfüllen kann (siehe Schritt 701 aus 7 und Schritt 805 aus
  • 8). Wenn ermittelt wird, dass die in Frage kommende Quellspeicherplatte die erwartete Erweiterungskapazität des Ziel-Speicher-Pools erfüllen kann, endet der Quellspeicherplatten-Auswahlprozess 1100. Wenn in Schritt 1160 ermittelt wird, dass das Hineinverlagern der in Frage kommenden Quellspeicherplatte die erwartete Erweiterungskapazität des Ziel-Speicher-Pools noch nicht erfüllen kann, kehrt der Fluss zu Schritt 1110 zurück und fährt mit dem Auswählen anderer geeigneter Quellspeicherplatten fort, so dass die erwartete Erweiterungskapazität des Ziel-Speicher-Pools erfüllt werden kann. Anders ausgedrückt, es wird möglicherweise mehr als eine Quellspeicherplatte für einen Ziel-Speicher-Pool ermittelt.
  • Nachfolgend werden die in 10 und 11 gezeigten Prozesse 1000 und 1100 ausführlich mit einem Beispiel beschrieben. Angenommen, es gibt insgesamt 11 Speicherplatten MDisk0 bis MDisk10 in einem Speichersystem wie in Tabelle 2 gezeigt, in der die 9 Speicherplatten MDisk0 bis MDisk8 jeweils einem von 5 Speicher-Pools Pool0 bis Pool4 zugeordnet und die Speicherplatten MDisk9 und MDisk10 ungenutzt sind. Die Nennkapazität jeder Speicherplatte ist in der dritten Spalte der Tabelle 2 aufgeführt. Tabelle 2: Merkmal und Speicherkennwerte von Speicherplatten
    Speicherplatte Speicher-Pool, zu der sie gehört Nennkapazität (GB) Speicherkennwert MU
    MDisk0 Pool0 100 100
    MDisk1 Pool1 150 95
    MDisk2 Pool1 150 85
    MDisk3 Pool2 200 90
    MDisk4 Pool2 100 100
    MDisk5 Pool3 200 70
    MDisk6 Pool4 200 50
    MDisk7 Pool4 200 60
    MDisk8 Pool4 200 90
    MDisk9 nicht genutzt 150 70
    MDisk10 nicht genutzt 300 85
  • Wie in Schritt 1010 aus 10 beschrieben, kann ein Speicherkennwert MU jeder Speicherplatte beruhend auf der RAID-Klasse, der RAID-Größe, der SAN-Redundanz, dem Ansteuertyp, der Schnittstelle, der Drehzahl und der Cachespeichergröße der Speicherplatte wie in der vierten Spalte der Tabelle 2 gezeigt berechnet werden.
  • Angenommen, von Pool0, Pool1 und Pool4 wurde eine Kapazitätserweiterung ausgelöst (siehe 6). Gemäß Gleichung (2) wird für jeden der Ziel-Speicher-Pools Pool0, Pool1 und Pool4 ein Prioritätsfaktor p_factor berechnet, und dann werden Pool0, Pool1 und Pool4 nach den Prioritätsfaktoren sortiert (siehe Schritt 613 aus 6). Angenommen, Pool liegt vor Pool0, der wiederum vor Pool4 liegt, wie in Tabelle 3 gezeigt ist. Ferner werden wie in Schritt 805 aus 8 und in Schritt 703 aus 7 beschrieben für jeden der Ziel-Speicher-Pools Pool0, Pool1 und Pool4 eine erwartete Erweiterungskapazität und ein Speicherkennwert berechnet. Tabelle 3: Erwartete Erweiterungskapazität und Speicherkennwerte von Ziel-Speicher-Pools
    Priorität Ziel-Speicher-Pool Enthaltene Speicherplatten Ursprungliche SpeicherPool-Kapazität (GB) Erwartete Erweiterungskapazität (GB) Speicherkennwert MD
    1 Pool1 MDisk1 MDisk2 300 100 90
    2 Pool0 MDisk0 100 50 100
    3 Pool4 MDisk6 MDisk7 MDisk8 600 200 70
  • Die Kapazitätserweiterung wird gemäß der durch die Prioritätsfaktoren angegebenen Reihenfolge ausgeführt. Nachfolgend wird eine Beschreibung mit Pool1 als Beispiel angeführt. Da Pool0 und Pool4 ebenfalls auf eine Kapazitätserweiterung warten, ist ausgeschlossen, dass die darin enthaltenen Speicherplatten MDisk0, MDisk6 bis MDisk8 als für Pool1 in Frage kommende Quellspeicherplatten dienen. Übereinstimmungsgrade zwischen den Speicherplatten MDisk3 bis MDisk5 von Pool2, MDisk9 und MDisk10, die in dem Speichersystem ungenutzt sind, und dem Ziel-Speicher-Pool Pool werden durch Gleichung (6) berechnet (siehe Schritt 705 aus 7 und Schritt 1015 aus 10), wie in Tabelle 4 gezeigt ist. Tabelle 4: Liste von in Frage kommenden Quellspeicherplatten, sortiert nach Übereinstimmungsgrad
    Speicherplatte Ziel-Speicher-Pool Quell-SpeicherPool Nennkapazität (GB) Genutzte Kapazität (GB) Kennwertdifferenz von ZielSpeicherPool Übereinstimmungsgrad
    MDisk4 Pool1 Pool2 100 10 10 0,115
    MDisk9 Pool1 nicht genutzt 150 0 20 0,387
    MDisk3 Pool1 Pool2 200 50 0 0,652
    MDisk5 Pool1 Pool2 200 50 20 0,689
    MDisk10 Pool1 nicht genutzt 300 0 5 1,266
  • Als nächstes werden gemäß dem in 11 gezeigten Prozess 1100 Quellspeicherplatten ermittelt, die in den Ziel-Speicher-Pool Pool1 verlagert werden. Zuerst wird aus der Liste von in Frage kommenden Quellspeicherplatten eine Speicherplatte mit dem höchsten Übereinstimmungsgrad ausgewählt, in diesem Beispiel MDisk4 aus Pool2. Wenn MDisk4 in keinem Speicher-Pool enthalten ist, wird sie direkt in den Ziel-Speicher-Pool Pool1 verlagert. Da MDisk4 in diesem Beispiel Pool2 zugeordnet wurde, geht der Prozess 1100 zu Schritt 1130 über.
  • In Schritt 1130 wird ermittelt, ob das Migrieren von MDisk4 aus Pool2 möglicherweise über den in 6 gezeigten Prozess 600 eine Kapazitätserweiterung auslöst. Wenn ermittelt wird, dass das Migrieren von MDisk4 aus Pool2 möglicherweise zu einer Kapazitätserweiterung von Pool2 führt, wird MDisk4 aus der Liste von in Frage kommenden Quellspeicherplatten aus Tabelle 4 entfernt und eine nächste Speicherplatte mit dem höchsten Übereinstimmungsgrad zum Analysieren ausgewählt, d. h. MDisk9.
  • In diesem Beispiel wird angenommen, dass das Migrieren von MDisk4 Pool2 nicht dazu veranlassen wird, eine Kapazitätserweiterung auszulösen. Dann wird ermittelt, ob die Nennkapazität von MDisk4 die erwartete Erweiterungskapazität von Pool1 erfüllen kann. Wie in Tabelle 3 gezeigt, beträgt die erwartete Erweiterungskapazität von Pool1 100 GB, und die Nennkapazität von MDisk4 beträgt wie in Tabelle 4 gezeigt 100 GB. Das heißt, dass MDisk4 die erwartete Erweiterungskapazität von Pool1 erfüllen kann, und folglich wird MDisk4 als Quellspeicherplatte von Pool1 ermittelt.
  • Gemäß der durch den Prioritätsfaktor angegebenen Reihenfolge kann der Prozess 1100 aus 11 für jeden Ziel-Speicher-Pool ausgeführt werden, um eine Migrationsrichtlinie für Speicher-Ressourcen für das gesamte Speichersystem 4000 festzulegen, zum Beispiel eine Migrationstabelle mit einer Priorität, Ziel-Speicher-Pools, Quell-Speicher-Pools und Quellspeicherplatten. Dann kehrt der Fluss zu 5 zurück. Das Verfahren 500 fährt mit Schritt 503 fort, in dem die Quellspeicherplatten aus Quell-Speicher-Pools gemäß der in der Bereinigungstabelle (mitigation table) angegebenen Priorität in entsprechende Ziel-Speicher-Pools migriert werden, und das Neuzuordnen von Ressourcen für das gesamte Speichersystem 4000 wird beendet.
  • 12 zeigt ein Funktionsblockschaubild, das eine Vorrichtung zum dynamischen Neukonfigurieren 1200 gemäß einer Ausführungsform dieser Erfindung zeigt. Die Funktionsmodule der Vorrichtung zum dynamischen Neukonfigurieren 1200 können in Hardware, in Software oder in einer Kombination aus Hardware und Software umgesetzt werden, um den Grundgedanken dieser Erfindung zu realisieren. Ein Fachmann kann verstehen, dass die in 12 gezeigten Funktionsmodule kombiniert oder in Teilmodule unterteilt werden können, um den Grundgedanken dieser Erfindung zu realisieren. Somit kann die Beschreibung hierin jede beliebige Kombination, Unterteilung oder weitere Definition von hierin beschriebenen Funktionsmodulen unterstützen.
  • Die Vorrichtung zum dynamischen Neukonfigurieren 1200 kann Speicher-Ressourcen in einem Speichersystem dynamisch neu konfigurieren. Das Speichersystem kann eine Vielzahl von Speicher-Pools aufweisen, die jeweils aus einer oder mehreren Speicherplatten bestehen. Die Vorrichtung zum dynamischen Neukonfigurieren 1200 weist die Ziel-Speicher-Pool-Ermittlungseinheit 1210, die Quellspeicherplatten-Ermittlungseinheit 1250 und die Quellspeicherplatten-Migrationseinheit 1290 auf.
  • Die Ziel-Speicher-Pool-Ermittlungseinheit 1210 ist so konfiguriert, dass sie aus der Vielzahl von Speicher-Pools zu erweiternde Speicher-Pools als Ziel-Speicher-Pools ermittelt. Die Quellspeicherplatten-Ermittlungseinheit 1250 ist so konfiguriert, dass sie für jeden Ziel-Speicher-Pool in den Ziel-Speicher-Pool zu verlagernde Quellspeicherplatten ermittelt. Die Quellspeicherplatten-Migrationseinheit 1290 ist so konfiguriert, dass sie Quellspeicherplatten in entsprechende Ziel-Speicher-Pools migriert.
  • In einer Ausführungsform kann die Ziel-Speicher-Pool-Ermittlungseinheit 1210 die Ziel-Speicher-Pool-Ermittlungsausführungseinheit 1215 aufweisen. Wenn die Kapazitätsaufbrauchzeit eines Speicher-Pools unter einem vorher festgelegten Schwellwert für die Kapazitätsaufbrauchzeit liegt, wird er in einem Beispiel durch die Ziel-Speicher-Pool-Ermittlungsausführungseinheit 1215 als Ziel-Speicher-Pool ermittelt. Wenn die verbleibende Kapazität eines Speicher-Pools unter einem vorher festgelegten Schwellwert für die verbleibende Kapazität liegt, wird er in einem anderen Beispiel durch die Ziel-Speicher-Pool-Ermittlungsausführungseinheit 1215 als Ziel-Speicher-Pool ermittelt. Wenn die Kapazitätsaufbrauchzeit eines Speicher-Pools unter einem vorher festgelegten Schwellwert für die Kapazitätsaufbrauchzeit liegt oder seine verbleibende Kapazität unter einem vorher festgelegten Schwellwert für die verbleibende Kapazität liegt, wird er in noch einem weiteren Beispiel durch die Ziel-Speicher-Pool-Ermittlungsausführungseinheit 1215 als Ziel-Speicher-Pool ermittelt. Verschiedene Speicher-Pools können verschiedene vorher festgelegte Schwellwerte für die Kapazitätsaufbrauchzeit und verschiedene vorher festgelegte Schwellwerte für die verbleibende Kapazität aufweisen.
  • In einer Ausführungsform kann die Ziel-Speicher-Pool-Ermittlungseinheit 1210 ferner die Kapazitätsdaten-Erfassungseinheit 1211, die Kapazitätsauslastungsfunktion-Erstellungseinheit 1212 und die Kapazitätsaufbrauchzeit-Berechnungseinheit 1213 aufweisen. Für jeden Speicher-Pool aus der Vielzahl von Speicher-Pools kann die Kapazitätsdaten-Erfassungseinheit 1211 Kapazitätsverlaufsdaten erfassen. Beruhend auf den durch die Kapazitätsdaten-Erfassungseinheit 1211 erfassten Kapazitätsverlaufsdaten kann die Kapazitätsauslastungsfunktion-Erstellungseinheit 1212 eine Kapazitätsauslastungsfunktion erstellen. In einer Ausführungsform kann es sich bei der Kapazitätsauslastungsfunktion entweder um eine lineare Funktion, eine Potenzfunktion, eine logarithmische Funktion oder eine Polynomfunktion handeln. Unter Verwendung der durch die Kapazitätsauslastungsfunktion-Erstellungseinheit 1212 erstellten Kapazitätsauslastungsfunktion kann die Kapazitätsaufbrauchzeit-Berechnungseinheit 1213 die Kapazitätsaufbrauchzeit des Speicher-Pools berechnen.
  • In einer anderen Ausführungsform kann die Ziel-Speicher-Pool-Ermittlungseinheit 1210 ferner die Prioritätsfaktor-Berechnungseinheit 1216 und die Ziel-Speicher-Pool-Sortiereinheit 1217 aufweisen. Die Prioritätsfaktor-Berechnungseinheit 1216 kann für jeden der Ziel-Speicher-Pools dessen Prioritätsfaktor berechnen. In einer Ausführungsform kann der Prioritätsfaktor als Summe aus Quadraten einer normalisierten Kapazitätsaufbrauchzeit und einer normalisierten verbleibenden Kapazität berechnet werden. Die normalisierte Kapazitätsaufbrauchzeit ist ein Verhältnis zwischen einer Kapazitätsaufbrauchzeit und einem vorher festgelegten Schwellwert für die Kapazitätsaufbrauchzeit, und die normalisierte verbleibende Kapazität ist ein Verhältnis zwischen einer verbleibenden Kapazität und einem vorher festgelegten Schwellwert für die verbleibende Kapazität. Die Ziel-Speicher-Pool-Sortiereinheit 1217 kann sämtliche von der Ziel-Speicher-Pool-Ermittlungsausführungseinheit 1215 ermittelten Ziel-Speicher-Pools gemäß von der Prioritätsfaktor-Berechnungseinheit 1216 berechneten Prioritätsfaktoren sortieren. Das Ermitteln von Quellspeicherplatten kann in einer Reihenfolge ausgeführt werden, die gemäß von der Prioritätsfaktor-Berechnungseinheit 1216 berechneten Prioritätsfaktoren ermittelt wurde.
  • In einer Ausführungsform kann die Quellspeicherplatten-Ermittlungseinheit 1250 die Ermittlungseinheit für die erwartete Erweiterungskapazität 1251, die Ziel-Speicher-Pool-Kennwert-Berechnungseinheit 1261, die Auswahleinheit für in Frage kommende Quellspeicherplatten 1271 und die Quellspeicherplatten-Auswahleinheit 1281 aufweisen.
  • Die Ermittlungseinheit für die erwartete Erweiterungskapazität 1251 kann die durch die Ziel-Speicher-Pool-Ermittlungseinheit 1210 ermittelte erwartete Erweiterungskapazität eines Ziel-Speicher-Pools berechnen. In einer Ausführungsform kann die Ermittlungseinheit für die erwartete Erweiterungskapazität 1251 aufweisen: die erste Erweiterungskapazität-Berechnungseinheit 1252, die so konfiguriert ist, dass sie beruhend auf der Kapazitätsaufbrauchzeit des Ziel-Speicher-Pools eine erste Erweiterungskapazität eines Ziel-Speicher-Pools berechnet; die zweite Erweiterungskapazität-Berechnungseinheit 1253, die so konfiguriert ist, dass sie beruhend auf der verbleibenden Kapazität des Ziel-Speicher-Pools eine zweite Erweiterungskapazität eines Ziel-Speicher-Pools berechnet; und eine Vergleichseinheit für die erwartete Erweiterungskapazität 1254, die so konfiguriert ist, dass sie die von der ersten Erweiterungskapazität-Berechnungseinheit 1252 berechnete erste Erweiterungskapazität und die von der zweiten Erweiterungskapazität-Berechnungseinheit 1253 berechnete zweite Erweiterungskapazität vergleicht und die größere davon als erwartete Erweiterungskapazität des Ziel-Speicher-Pools ermittelt.
  • In noch einer weiteren Ausführungsform kann die erste Erweiterungskapazität-Berechnungseinheit 1252 ferner eine erste Kapazitätsberechnungs-Teileinheit aufweisen, die so konfiguriert ist, dass sie einen vorher festgelegten Schwellwert für die Kapazitätsaufbrauchzeit nach der Erweiterung für einen Ziel-Speicher-Pool festlegt; eine zweite Kapazitätsberechnungs-Teileinheit, die so konfiguriert ist, dass sie die Gesamtkapazität des Ziel-Speicher-Pools ermittelt, wenn die Kapazitätsaufbrauchzeit des Ziel-Speicher-Pools gleich ist wie der vorher festgelegte Schwellwert für die Kapazitätsaufbrauchzeit nach der Erweiterung des Ziel-Speicher-Pools; und eine dritte Kapazitätsberechnungs-Teileinheit, die so konfiguriert ist, dass sie die erste Erweiterungskapazität des Ziel-Speicher-Pools durch Subtrahieren der ursprünglichen Speicher-Pool-Kapazität des Ziel-Speicher-Pools von der ermittelten Gesamtkapazität berechnet.
  • In noch einer weiteren Ausführungsform kann die zweite Erweiterungskapazität-Berechnungseinheit 1253 ferner aufweisen: eine vierte Kapazitätsberechnungs-Teileinheit, die so konfiguriert ist, dass sie einen vorher festgelegten Schwellwert für die verbleibende Kapazität nach der Erweiterung für einen Ziel-Speicher-Pool festlegt; eine fünfte Kapazitätsberechnungs-Teileinheit, die so konfiguriert ist, dass sie eine Summe aus dem vorher festgelegten Schwellwert für die verbleibende Kapazität nach der Erweiterung und einer genutzten Kapazität als Gesamtkapazität des Ziel-Speicher-Pools berechnet; und eine sechste Kapazitätsberechnungs-Teileinheit, die so konfiguriert ist, dass sie die zweite Erweiterungskapazität des Ziel-Speicher-Pools durch Subtrahieren der ursprünglichen Speicher-Pool-Kapazität des Ziel-Speicher-Pools von der ermittelten Gesamtkapazität berechnet.
  • Die Ziel-Speicher-Pool-Kennwert-Berechnungseinheit 1261 kann einen Speicherkennwert für einen Ziel-Speicher-Pool berechnen. In einer Ausführungsform kann die Ziel-Speicher-Pool-Kennwert-Berechnungseinheit 1261 ferner aufweisen: eine erste Kennwert-Berechnungsteileinheit, die so konfiguriert ist, dass sie Speicherkennwerte von in einem Ziel-Speicher-Pool enthaltenen Speicherplatten berechnet; eine zweite Kennwert-Berechnungsteileinheit, die so konfiguriert ist, dass sie Speicherkennwertgewichtungen von in dem Ziel-Speicher-Pool enthaltenen Speicherplatten berechnet; und eine dritte Kennwert-Berechnungsteileinheit, die so konfiguriert ist, dass sie eine Summe aus Produkten der Speicherkennwerte und der Speicherkennwertgewichtungen als Speicherkennwert des Ziel-Speicher-Pools berechnet. In einer Ausführungsform beruht der Speicherkennwert jeder Speicherplatte auf einem oder mehreren der Folgenden: der RAID-Klasse, der RAID-Größe, der Redundanz des Speichernetzwerks (SAN, Storage Area Network), dem Ansteuertyp, der Schnittstelle, der Drehzahl (UpM, Umdrehungen pro Minute) und/oder der Cachespeichergröße der Speicherplatte.
  • Die Auswahleinheit für in Frage kommende Quellspeicherplatten 1271 kann Speicherplatten des Speichersystems auswählen, deren Kennwerte mit denen eines Ziel-Speicher-Pools übereinstimmen, und diese zu einer Liste von in Frage kommenden Quellspeicherplatten hinzufügen. In einer Ausführungsform kann die Auswahleinheit für in Frage kommende Quellspeicherplatten 1271 aufweisen: die erste Übereinstimmungsgrad-Berechnungsteileinheit 1272, die so konfiguriert ist, dass sie Speicherkennwerte von Speicherplatten berechnet, die in keinem Ziel-Speicher-Pool enthalten sind; die zweite Übereinstimmungsgrad-Berechnungsteileinheit 1273, die so konfiguriert ist, dass sie beruhend auf der Nennkapazität, der genutzten Kapazität und dem Speicherkennwert der Quellspeicherplatte einen Übereinstimmungsgrad zwischen einer Speicherplatte und einem Ziel-Speicher-Pool und den Speicherkennwert des Ziel-Speicher-Pools berechnet; und die Übereinstimmungsgrad-Vergleichseinheit 1274, die so konfiguriert ist, dass sie Speicherplatten, deren durch die zweite Übereinstimmungsgrad-Berechnungsteileinheit 1273 berechnete Übereinstimmungsgrade eine vorbestimmte Bedingung erfüllen, als in Frage kommende Quellspeicherplatten auswählt. In einer Ausführungsform kann die vorbestimmte Bedingung einen Übereinstimmungsgrad erfordern, der über einem vorbestimmten Schwellwert liegt.
  • Die Quellspeicherplatten-Auswahleinheit 1281 kann beruhend auf der von der Ermittlungseinheit für die erwartete Erweiterungskapazität 1251 berechneten erwarteten Erweiterungskapazität aus einer Liste von in Frage kommenden Quellspeicherplatten Quellspeicherplatten ermitteln, die in einen Ziel-Speicher-Pool zu verlagern sind. In einer Ausführungsform kann die Quellspeicherplatten-Auswahleinheit 1281 aufweisen: eine erste Quellspeicherplatten-Ermittlungsteileinheit, die so konfiguriert ist, dass sie aus der Liste von in Frage kommenden Quellspeicherplatten eine in Frage kommende Quellspeicherplatte mit dem höchsten Übereinstimmungsgrad auswählt; eine zweite Quellspeicherplatten-Ermittlungsteileinheit, die so konfiguriert ist, dass sie ermittelt, ob die in Frage kommende Quellspeicherplatte mit dem höchsten Übereinstimmungsgrad zu irgendeinem Speicher-Pool gehört; eine dritte Quellspeicherplatten-Ermittlungsteileinheit, die so konfiguriert ist, dass sie die in Frage kommende Quellspeicherplatte mit dem höchsten Übereinstimmungsgrad als in einen Ziel-Speicher-Pool zu verlagernde Quellspeicherplatte auswählt und die in Frage kommende Quellspeicherplatte mit dem höchsten Übereinstimmungsgrad aus der Liste von in Frage kommenden Quellspeicherplatten entfernt, wenn ermittelt wird, dass die in Frage kommende Quellspeicherplatte mit dem höchsten Übereinstimmungsgrad zu keinem Speicher-Pool gehört; eine vierte Quellspeicherplatten-Ermittlungsteileinheit, die so konfiguriert ist, dass sie die folgenden Arbeitsschritte ausführt, wenn ermittelt wird, dass die in Frage kommende Quellspeicherplatte mit dem höchsten Übereinstimmungsgrad zu einem Speicher-Pool gehört: Ermitteln, ob das Herausverlagern der in Frage kommenden Quellspeicherplatte mit dem höchsten Übereinstimmungsgrad eine Kapazitätserweiterung des Speicher-Pools, zu dem sie gehört, auslösen wird, wenn ermittelt wird, dass das Herausverlagern der in Frage kommenden Quellspeicherplatte mit dem höchsten Übereinstimmungsgrad eine Kapazitätserweiterung des Speicher-Pools, zu dem sie gehört, auslösen wird, Entfernen der in Frage kommenden Quellspeicherplatte mit dem höchsten Übereinstimmungsgrad aus der Liste von in Frage kommenden Quellspeicherplatten, und, wenn ermittelt wird, dass das Herausverlagern der in Frage kommenden Quellspeicherplatte mit dem höchsten Übereinstimmungsgrad keine Kapazitätserweiterung des Speicher-Pools, zu dem sie gehört, auslösen wird, Auswählen der in Frage kommenden Quellspeicherplatte mit dem höchsten Übereinstimmungsgrad als in den Ziel-Speicher-Pool zu verlagernde Quellspeicherplatte, und Entfernen dieser aus der Liste von in Frage kommenden Quellspeicherplatten; und eine fünfte Quellspeicherplatten-Ermittlungsteileinheit, die so konfiguriert ist, dass sie ermittelt, ob die ermittelte Quellspeicherplatte die berechnete erwartete Erweiterungskapazität des Ziel-Speicher-Pools erfüllt.
  • Mit dem Verfahren und der Vorrichtung dieser Erfindung kann für Speicher-Pools in einem Speichersystem der Bedarf für eine Erweiterung der Kapazität vorhergesagt werden, und Speicher-Ressourcen in dem Speichersystem können automatisch und genau neu zugeordnet werden.
  • Mit dem Verfahren und der Vorrichtung dieser Erfindung ist es auch möglich, die Wachstumstendenzen der Kapazitätsauslastung eines Ziel-Speicher-Pools und eines Quell-Speicher-Pools zu berücksichtigen, um Speicher-Ressourcen angemessener zuzuordnen.
  • Mit dem Verfahren und der Vorrichtung dieser Erfindung ist es auch möglich, Auswirkungen auf die Leistungsfähigkeit eines Ziel-Speicher-Pools und eines Quell-Speicher-Pools zu berücksichtigen, um Speicher-Ressourcen angemessener zuzuordnen.
  • Der Fachmann wird verstehen, dass Aspekte der vorliegenden Erfindung als System, Verfahren oder Computerprogrammprodukt ausgeführt werden können. Entsprechend können Aspekte der vorliegenden Erfindung die Form einer vollständigen Hardware-Ausführungsform, einer vollständigen Software-Ausführungsform (darunter Firmware, im Speicher befindliche Software, Mikrocode, usw.) oder einer Software- und Hardware-Aspekte kombinierenden Ausführungsform annehmen, die hierin alle allgemein als „Schaltkreis”, „Modul” oder „System” bezeichnet sein können. Des Weiteren können Aspekte der vorliegenden Erfindung die Form eines auf einem oder mehreren durch einen Computer lesbaren Medien enthaltenen Computerprogrammprodukts annehmen, die durch einen Computer lesbaren Programmcode enthalten.
  • Es kann jede Kombination aus einem oder mehreren durch einen Computer lesbaren Medien verwendet werden. Bei dem durch einen Computer lesbaren Medium kann es sich um ein durch einen Computer lesbares Signalmedium oder ein durch einen Computer lesbares Speichermedium handeln. Bei einem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, eine derartige Vorrichtung oder Einheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu konkreteren Beispielen (eine nicht erschöpfende Liste) des durch einen Computer lesbaren Speichermediums gehören die folgenden: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine mobile Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein Lichtwellenleiter, ein mobiler Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder jede geeignete Kombination daraus. In dem Kontext dieses Dokuments kann es sich bei einem durch einen Computer lesbaren Speichermedium um jedes beliebige physische Medium handeln, das ein Programm enthalten bzw. speichern kann, das von oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Ausführung von Anweisungen verwendet wird. Ein durch einen Computer lesbares Signalmedium kann ein weitergeleitetes Datensignal mit darin enthaltenem durch einen Computer lesbarem Programmcode beinhalten, zum Beispiel im Basisband oder als Teil einer Trägerwelle. Ein derartiges weitergeleitetes Signal kann eine beliebige Form aus einer Vielfalt an Formen annehmen, darunter elektromagnetische, optische bzw. jede geeignete Kombination daraus, jedoch nicht auf diese beschränkt. Bei einem durch einen Computer lesbaren Signalmedium kann es sich um ein beliebiges durch einen Computer lesbares Medium handeln, das kein durch einen Computer lesbares Speichermedium ist und das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder Einheit zum Ausführen von Anweisungen übertragen, weiterleiten bzw. transportieren kann. Auf einem durch einen Computer lesbaren Medium enthaltener Programmcode kann unter Verwendung eines beliebigen geeigneten Mediums übertragen werden, darunter drahtlos, drahtgebunden, Lichtwellenleiter-Kabel, HF usw. oder jede geeignete Kombination daraus, jedoch nicht auf diese beschränkt.
  • Computerprogrammcode für das Ausführen von Arbeitsschritten für Aspekte der vorliegenden Erfindung kann in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Java, Smalltalk, C++ o. ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C” oder ähnliche Programmiersprachen. Der Programmcode kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden.
  • In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters).
  • Aspekte der vorliegenden Erfindung werden nachfolgend unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern durch Computerprogrammanweisungen ausgeführt werden können. Diese Computerprogrammanweisungen können dem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen.
  • Diese Computerprogrammanweisungen können auch auf einem durch einen Computer lesbaren Medium gespeichert sein, das einen Computer oder eine andere programmierbare Datenverarbeitungsvorrichtung bzw. andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass die auf dem durch einen Computer lesbaren Medium gespeicherten Anweisungen ein Herstellungsprodukt herstellen, darunter Anweisungen, welche die/den in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder angegebene(n) Funktion/Schritt umsetzen.
  • Die Computerprogrammanweisungen können auch auf einen Computer oder eine andere programmierbare Datenverarbeitungsvorrichtung bzw. andere Einheiten geladen werden, um das Ausführen einer Folge von Prozessschritten auf dem Computer, der anderen programmierbaren Vorrichtung bzw. den anderen Einheiten zu veranlassen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer oder einer anderen programmierbaren Vorrichtung ausgeführten Anweisungen Verfahren zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder angegebenen Funktionen/Schritte erzeugen.
  • Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil eines Codes darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. Es sei auch angemerkt, dass in einigen alternativen Ausführungen die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden können. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder durch Kombinationen aus Spezial-Hardware und Computeranweisungen.
  • Die hierin verwendete Terminologie dient lediglich dem Zweck des Beschreibens bestimmter Ausführungsformen und soll die Erfindung nicht einschränken. Die Verwendung der Singularform „ein”, „eine” bzw. „der”, „die”, „das” hierin soll ebenfalls die Pluralformen einschließen, es sei denn, etwas anderes ergibt sich deutlich aus dem Zusammenhang. Es wird ferner darauf hingewiesen, dass die Begriffe „aufweisen” und/oder „aufweisend”, wenn sie in dieser Beschreibung verwendet werden, das Vorhandensein von aufgeführten Eigenschaften, ganzen Zahlen, Schritten, Operationen, Elementen und/oder Komponenten angeben, jedoch nicht das Vorhandensein oder das Hinzufügen einer oder mehrerer anderer Eigenschaften, ganzer Zahlen, Schritte, Operationen, Elemente, Komponenten und/oder Gruppen hiervon ausschließen.
  • Die in den nachfolgenden Ansprüchen etwa vorhandenen, entsprechenden Strukturen, Materialien, Schritte und Entsprechungen aller Mittel oder Step-plus-function-Elemente verstehen sich dahingehend, dass sie jede beliebige Struktur, jedes beliebige Material bzw. jeden beliebigen Schritt zur Durchführung der Funktion in Kombination mit anderen beanspruchten Elementen nach Maßgabe der konkreten Beanspruchung aufweisen. Die Beschreibung der vorliegenden Erfindung wurde zum Zwecke der Veranschaulichung und Beschreibung aufgeführt, soll jedoch nicht gesamthaft stehen für bzw. begrenzt sein auf die Erfindung in der beschriebenen Form. Für Fachleute werden viele Abänderungen und Abweichungen ersichtlich sein, ohne von dem Umfang und dem Gedanken der Erfindung abzuweichen. Die Ausführungsform wurde gewählt und beschrieben, um die Grundgedanken der Erfindung und die praktische Anwendung bestmöglich zu erläutern und um es einem Fachmann zu ermöglichen, die Erfindung für verschiedene Ausführungsformen mit verschiedenen Abänderungen, die für eine bestimmte vorgesehene Verwendung geeignet sind, zu verstehen.

Claims (15)

  1. Verfahren zum dynamischen Neukonfigurieren eines Speichersystems, wobei das Speichersystem eine Vielzahl von Speicher-Pools aufweist, wobei jeder der Speicher-Pools aus einer oder mehreren Speicherplatten besteht und das Verfahren aufweist: Ermitteln von zu erweiternden Speicher-Pools aus der Vielzahl von Speicher-Pools als Ziel-Speicher-Pools; Ermitteln von aus anderen Speicher-Pools als den Ziel-Speicher-Pools in dem Speichersystem in die Ziel-Speicher-Pools zu verlagernden Quellspeicherplatten für die Ziel-Speicher-Pools; und Migrieren der Quellspeicherplatten in die entsprechenden Ziel-Speicher-Pools.
  2. Verfahren nach Anspruch 1, wobei das Ermitteln der zu erweiternden Speicher-Pools als Ziel-Speicher-Pools aufweist: Festlegen des Speicher-Pools als Ziel-Speicher-Pool, wenn die Kapazitätsaufbrauchzeit eines Speicher-Pools unter einem vorher festgelegten Schwellwert für die Kapazitätsaufbrauchzeit liegt; und/oder Ermitteln des Speicher-Pools als Ziel-Speicher-Pool, wenn die verbleibende Kapazität eines Speicher-Pools unter einem vorher festgelegten Schwellwert für die verbleibende Kapazität liegt.
  3. Verfahren nach einem der Ansprüche 1 oder 2, wobei das Ermitteln der zu erweiternden Speicher-Pools als Ziel-Speicher-Pools ferner aufweist: Berechnen eines Prioritätsfaktors für jeden der Ziel-Speicher-Pools; Sortieren der Ziel-Speicher-Pools gemäß den Prioritätsfaktoren, so dass der Vorgang des Ermittelns der Quellspeicherplatten in einer Reihenfolge ausgeführt wird, die beruhend auf den Prioritätsfaktoren ermittelt wurde.
  4. Verfahren nach Anspruch 3, wobei der Prioritätsfaktor als Summe aus dem Quadrat einer normalisierten Kapazitätsaufbrauchzeit und dem Quadrat einer normalisierten verbleibenden Kapazität berechnet wird, wobei die normalisierte Kapazitätsaufbrauchzeit ein Verhältnis zwischen einer Kapazitätsaufbrauchzeit und einem vorher festgelegten Schwellwert für die Kapazitätsaufbrauchzeit darstellt, und die normalisierte verbleibende Kapazität ein Verhältnis zwischen einer verbleibenden Kapazität und einem vorher festgelegten Schwellwert für die verbleibende Kapazität darstellt.
  5. Verfahren nach einem der Ansprüche 1 oder 2, wobei das Ermitteln von in die entsprechenden Ziel-Speicher-Pools zu verlagernden Quellspeicherplatten aufweist: Berechnen einer erwarteten Erweiterungskapazität eines Ziel-Speicher-Pools; Berechnen eines Speicherkennwerts des Ziel-Speicher-Pools; Auswählen einer/von Speicherplatte(n) des Speichersystems, deren Kennwert(e) mit denen des Ziel-Speicher-Pools übereinstimmt/übereinstimmen, und Hinzufügen der Speicherplatte(n) zu einer Liste von in Frage kommenden Quellspeicherplatten; und Ermitteln einer/von in den Ziel-Speicher-Pool zu verlagernden Quellspeicherplatten) aus der Liste von in Frage kommenden Quellspeicherplatten beruhend auf der berechneten erwarteten Erweiterungskapazität.
  6. Verfahren nach Anspruch 5, wobei das Berechnen einer erwarteten Erweiterungskapazität eines Ziel-Speicher-Pools aufweist: Berechnen einer ersten Erweiterungskapazität des Ziel-Speicher-Pools beruhend auf der Kapazitätsaufbrauchzeit des Ziel-Speicher-Pools; Berechnen einer zweiten Erweiterungskapazität des Ziel-Speicher-Pools beruhend auf der verbleibenden Kapazität des Ziel-Speicher-Pools; und Vergleichen der ersten Erweiterungskapazität und der zweiten Erweiterungskapazität und Auswählen der größeren davon als erwartete Erweiterungskapazität des Ziel-Speicher-Pools.
  7. Verfahren nach Anspruch 6, wobei das Berechnen einer ersten Erweiterungskapazität des Ziel-Speicher-Pools aufweist: Festlegen eines vorher festgelegten Schwellwerts für die Kapazitätsaufbrauchzeit nach der Erweiterung für den Ziel-Speicher-Pool; Ermitteln einer Gesamtkapazität des Ziel-Speicher-Pools, wenn die Kapazitätsaufbrauchzeit des Ziel-Speicher-Pools gleich ist wie der vorher festgelegte Schwellwert für die Kapazitätsaufbrauchzeit nach der Erweiterung; und Berechnen der ersten Erweiterungskapazität des Ziel-Speicher-Pools durch Subtrahieren einer ursprünglichen Speicher-Pool-Kapazität des Ziel-Speicher-Pools von der ermittelten Gesamtkapazität.
  8. Verfahren nach Anspruch 6, wobei das Berechnen einer zweiten Erweiterungskapazität des Ziel-Speicher-Pools aufweist: Festlegen eines vorher festgelegten Schwellwerts für die verbleibende Kapazität nach der Erweiterung für den Ziel-Speicher-Pool; Berechnen einer Summe aus dem vorher festgelegten Schwellwert für die verbleibende Kapazität nach der Erweiterung und einer genutzten Kapazität als Gesamtkapazität des Ziel-Speicher-Pools; und Berechnen der zweiten Erweiterungskapazität des Ziel-Speicher-Pools durch Subtrahieren einer ursprünglichen Speicher-Pool-Kapazität des Ziel-Speicher-Pools von der ermittelten Gesamtkapazität.
  9. Verfahren nach Anspruch 5, wobei das Berechnen eines Speicherkennwerts des Ziel-Speicher-Pools aufweist: Berechnen von Speicherkennwerten von in dem Ziel-Speicher-Pool enthaltenen Speicherplatten; Ermitteln von Speicherkennwertgewichtungen der in dem Ziel-Speicher-Pool enthaltenen Speicherplatten; und Berechnen einer Summe aus Produkten der Speicherkennwerte und der Speicherkennwertgewichtungen als Speicherkennwert des Ziel-Speicher-Pools.
  10. Verfahren nach Anspruch 5, wobei das Auswählen einer/von Speicherplatte(n) des Speichersystems, deren Kennwert(e) mit denen des Ziel-Speicher-Pools übereinstimmt/übereinstimmen, zum Hinzufügen von (einer) Speicherplatte(n) zu einer Liste von in Frage kommenden Quellspeicherplatten aufweist: Berechnen von Speicherkennwerten von Speicherplatten in dem Speichersystem, die in keinem Ziel-Speicher-Pool enthalten sind; Berechnen eines Übereinstimmungsgrads zwischen einer entsprechenden Speicherplatte und dem Ziel-Speicher-Pool beruhend auf einer Nennkapazität, der genutzten Kapazität und dem Speicherkennwert der Speicherplatte und dem Speicherkennwert des Ziel-Speicher-Pools; und Auswählen einer/von Speicherplatte(n) mit (einem) Übereinstimmungsgrad(en), der/die eine vorbestimmte Bedingung erfüllt/erfüllen, als in Frage kommende Quellspeicherplatte(n).
  11. Verfahren nach Anspruch 10, wobei das Ermitteln einer/von in den Ziel-Speicher-Pool zu verlagernden Quellspeicherplatte(n) aus der Liste von in Frage kommenden Quellspeicherplatten aufweist: a) Auswählen einer in Frage kommende Quellspeicherplatte mit dem höchsten Übereinstimmungsgrad aus der Liste von in Frage kommenden Quellspeicherplatten; b) Ermitteln, ob die in Frage kommende Quellspeicherplatte mit dem höchsten Übereinstimmungsgrad zu irgendeinem Speicher-Pool gehört; c) wenn ermittelt wird, dass die in Frage kommende Quellspeicherplatte mit dem höchsten Übereinstimmungsgrad zu keinem Speicher-Pool gehört, Auswählen der in Frage kommenden Quellspeicherplatte mit dem höchsten Übereinstimmungsgrad als in den Ziel-Speicher-Pool zu verlagernde Quellspeicherplatte und Entfernen der in Frage kommenden Quellspeicherplatte mit dem höchsten Übereinstimmungsgrad aus der Liste von in Frage kommenden Quellspeicherplatten; d) wenn ermittelt wird, dass die in Frage kommende Quellspeicherplatte mit dem höchsten Übereinstimmungsgrad zu einem Speicher-Pool gehört: Ermitteln, ob das Herausverlagern der in Frage kommenden Quellspeicherplatte mit dem höchsten Übereinstimmungsgrad eine Kapazitätserweiterung des Speicher-Pools, zu dem sie gehört, auslöst; wenn ermittelt wird, dass das Herausverlagern der in Frage kommenden Quellspeicherplatte mit dem höchsten Übereinstimmungsgrad eine Kapazitätserweiterung des Speicher-Pools, zu dem sie gehört, auslöst, Entfernen der in Frage kommenden Quellspeicherplatte mit dem höchsten Übereinstimmungsgrad aus der Liste von in Frage kommenden Quellspeicherplatten; und wenn ermittelt wird, dass das Herausverlagern der in Frage kommenden Quellspeicherplatte mit dem höchsten Übereinstimmungsgrad keine Kapazitätserweiterung des Speicher-Pools, zu dem sie gehört, auslöst, Auswählen der in Frage kommenden Quellspeicherplatte mit dem höchsten Übereinstimmungsgrad als in den Ziel-Speicher-Pool zu verlagernde Quellspeicherplatte und Entfernen dieser aus der Liste von in Frage kommenden Quellspeicherplatten; e) Ermitteln, ob die ermittelte Quellspeicherplatte die berechnete erwartete Erweiterungskapazität des Ziel-Speicher-Pools erfüllt; und f) falls ermittelt wird, dass die ermittelte Quellspeicherplatte die berechnete erwartete Erweiterungskapazität des Ziel-Speicher-Pools nicht erfüllt, Wiederholen der obigen Schritte a) bis f).
  12. Verfahren nach einem der Ansprüche 2, 4, 6 und 7, wobei die Kapazitätsaufbrauchzeit durch die folgenden Schritte berechnet wird: Erfassen von Kapazitätsverlaufsdaten eines Speicher-Pools; Erstellen einer Kapazitätsauslastungsfunktion beruhend auf den erfassten Kapazitätsverlaufsdaten; Berechnen der Kapazitätsaufbrauchzeit des Speicher-Pools unter Verwendung der erstellten Kapazitätsauslastungsfunktion.
  13. Vorrichtung zum dynamischen Neukonfigurieren eines Speichersystems, wobei das Speichersystem eine Vielzahl von Speicher-Pools aufweist, die jeweils aus einer oder mehreren Speicherplatten bestehen, wobei die Vorrichtung aufweist: eine Ziel-Speicher-Pool-Ermittlungseinheit, die so konfiguriert ist, dass sie aus der Vielzahl von Speicher-Pools zu erweiternde Speicher-Pools als Ziel-Speicher-Pools ermittelt; eine Quellspeicherplatten-Ermittlungseinheit, die so konfiguriert ist, dass sie für die durch die Ziel-Speicher-Pool-Ermittlungseinheit ermittelten Ziel-Speicher-Pools Quellspeicherplatten ermittelt, die aus anderen Speicher-Pools als den Ziel-Speicher-Pools in die Ziel-Speicher-Pools zu verlagern sind; und eine Quellspeicherplatten-Migrationseinheit, die so konfiguriert ist, dass sie die von der Quellspeicherplatten-Ermittlungseinheit ermittelten Quellspeicherplatten in die entsprechenden Ziel-Speicher-Pools migriert.
  14. Vorrichtung nach Anspruch 13, wobei die Ziel-Speicher-Pool-Ermittlungseinheit ferner aufweist: eine Prioritätsfaktor-Berechnungseinheit, die so konfiguriert ist, dass sie für jeden der Ziel-Speicher-Pools einen Prioritätsfaktor berechnet; und eine Ziel-Speicher-Pool-Sortiereinheit, die so konfiguriert ist, dass sie die Ziel-Speicher-Pools gemäß den von der Prioritätsfaktor-Berechnungseinheit berechneten Prioritätsfaktoren sortiert, wobei die Quellspeicherplatten-Ermittlungseinheit in Ziel-Speicher-Pools zu verlagernde Quellspeicherplatten in einer Reihenfolge ermittelt, die von der Ziel-Speicher-Pool-Sortiereinheit ermittelt wurde.
  15. Speichersystem, aufweisend: eine Vielzahl von Speicherplatten, wobei einige oder alle der Speicherplatten zwei oder mehr Speicher-Pools zugeordnet sind; und die Vorrichtung zum dynamischen Neukonfigurieren nach einem der Ansprüche 13 oder 14.
DE201310204508 2012-03-29 2013-03-15 Dynamisches Neukonfigurieren eines Speichersystems Pending DE102013204508A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201210088217.3A CN103365781B (zh) 2012-03-29 2012-03-29 用于动态地重新配置存储系统的方法和设备
CN201210088217.3 2012-03-29

Publications (1)

Publication Number Publication Date
DE102013204508A1 true DE102013204508A1 (de) 2013-10-02

Family

ID=49154918

Family Applications (1)

Application Number Title Priority Date Filing Date
DE201310204508 Pending DE102013204508A1 (de) 2012-03-29 2013-03-15 Dynamisches Neukonfigurieren eines Speichersystems

Country Status (3)

Country Link
US (2) US9229849B2 (de)
CN (1) CN103365781B (de)
DE (1) DE102013204508A1 (de)

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103365781B (zh) 2012-03-29 2016-05-04 国际商业机器公司 用于动态地重新配置存储系统的方法和设备
US9053002B2 (en) * 2013-11-12 2015-06-09 International Business Machines Corporation Thick and thin data volume management
CN103634379B (zh) * 2013-11-13 2017-02-01 华为技术有限公司 一种分布式存储空间的管理方法和分布式存储系统
CN104657082A (zh) * 2013-11-18 2015-05-27 英业达科技有限公司 电脑装置及其存储器管理方法
US20160306555A1 (en) * 2013-12-20 2016-10-20 Sinchan Banerjee Storage capacity regression
CN103744622B (zh) * 2014-01-10 2017-10-13 浪潮电子信息产业股份有限公司 一种实现存储系统自动精简配置异步全额分配的方法
CN103970641A (zh) * 2014-05-15 2014-08-06 浪潮电子信息产业股份有限公司 一种基于容量预测技术的设备扩容方法
CN104035887B (zh) * 2014-05-22 2017-10-31 中国科学院计算技术研究所 一种基于精简配置系统的块设备缓存装置及其方法
CN105320461B (zh) * 2014-07-01 2018-04-03 先智云端数据股份有限公司 用于软件定义储存系统的自适应快速反应控制系统
CN104202371B (zh) * 2014-08-20 2017-11-03 浙江宇视科技有限公司 一种基于iSCSI块直存的跨设备扩容方法和装置
CN104331330B (zh) * 2014-10-27 2018-05-01 华为技术有限公司 资源池生成方法以及装置
CN105701028B (zh) 2014-11-28 2018-10-09 国际商业机器公司 分布式存储系统中的磁盘管理方法和设备
CN104484130A (zh) * 2014-12-04 2015-04-01 北京同有飞骥科技股份有限公司 一种横向扩展存储系统的构建方法
CN104484134B (zh) * 2014-12-23 2019-01-11 北京华胜天成科技股份有限公司 分布式存储的磁盘分配方法及装置
US9971525B2 (en) * 2015-02-26 2018-05-15 Red Hat, Inc. Peer to peer volume extension in a shared storage environment
US10715460B2 (en) * 2015-03-09 2020-07-14 Amazon Technologies, Inc. Opportunistic resource migration to optimize resource placement
US9813500B2 (en) 2015-06-12 2017-11-07 Cisco Technology, Inc. Allocating cloud storage based on storage attributes
US10467096B2 (en) * 2015-07-31 2019-11-05 Pure Storage, Inc. Securely storing data in a dispersed storage network
CN106502578B (zh) * 2015-09-06 2019-06-11 中兴通讯股份有限公司 容量变更建议方法及装置
US10162547B1 (en) * 2015-09-16 2018-12-25 Marvell International Ltd. Memory expansion in a linking process
CN105224470A (zh) * 2015-09-30 2016-01-06 汉柏科技有限公司 一种基于精简配置的存储空间分配方法及装置
US10379742B2 (en) 2015-12-28 2019-08-13 Netapp, Inc. Storage zone set membership
US10514984B2 (en) 2016-02-26 2019-12-24 Netapp, Inc. Risk based rebuild of data objects in an erasure coded storage system
US10055317B2 (en) * 2016-03-22 2018-08-21 Netapp, Inc. Deferred, bulk maintenance in a distributed storage system
CN107436727A (zh) * 2016-05-26 2017-12-05 中兴通讯股份有限公司 精简卷的存储空间管理方法和装置
CN106354438A (zh) * 2016-09-28 2017-01-25 郑州云海信息技术有限公司 一种存储池容量可用时间的预测方法和装置
US10248320B2 (en) 2016-10-28 2019-04-02 International Business Machines Corporation Workload-aware thin-provisioning storage-allocation system
US10754556B2 (en) 2017-06-27 2020-08-25 International Business Machines Corporation Prioritization of virtual volumes to take offline in a thin provisioning system
US10592293B2 (en) 2017-08-31 2020-03-17 Cisco Technology, Inc. Tenant-specific policy generation and enforcement within containers
CN107577431A (zh) * 2017-09-07 2018-01-12 郑州云海信息技术有限公司 一种存储池构建方法及装置
US10795598B1 (en) 2017-12-07 2020-10-06 Pure Storage, Inc. Volume migration for storage systems synchronously replicating a dataset
US20190317682A1 (en) * 2018-04-11 2019-10-17 EMC IP Holding Company LLC Metrics driven expansion of capacity in solid state storage systems
US11163460B2 (en) * 2018-06-07 2021-11-02 Karim Jean Yaghmour Dynamically-reconfigurable storage device
CN110196752A (zh) * 2018-06-07 2019-09-03 腾讯科技(深圳)有限公司 数据处理方法、装置及存储介质
US10911367B2 (en) * 2018-06-27 2021-02-02 Oracle International Corporation Computerized methods and systems for managing cloud computer services
US11121981B1 (en) 2018-06-29 2021-09-14 Amazon Technologies, Inc. Optimistically granting permission to host computing resources
CN110737402B (zh) * 2018-07-20 2023-12-08 伊姆西Ip控股有限责任公司 管理存储系统的方法、设备和计算机存储介质
CN111813322B (zh) * 2019-04-11 2023-06-13 杭州海康威视系统技术有限公司 存储池的创建方法、装置、设备及存储介质
CN110377228A (zh) * 2019-06-19 2019-10-25 深圳壹账通智能科技有限公司 区块链节点的自动扩容方法、装置、运维终端及存储介质
US11163476B2 (en) * 2019-10-04 2021-11-02 International Business Machines Corporation Dynamic rebalancing of free space between storage pools
CN112748864B (zh) * 2019-10-31 2024-04-19 伊姆西Ip控股有限责任公司 分配存储盘的方法、电子设备和计算机程序产品
CN110989930B (zh) * 2019-11-22 2023-07-18 浪潮(北京)电子信息产业有限公司 一种池空间数据处理方法、装置、设备及存储介质
CN112130767B (zh) * 2020-09-18 2023-01-10 苏州浪潮智能科技有限公司 一种存储池使用容量确定方法、装置、设备及介质
TWI764483B (zh) * 2020-12-29 2022-05-11 華南商業銀行股份有限公司 利用外部空間的可用空間擴充方法
CN112799596A (zh) * 2021-02-03 2021-05-14 联想(北京)有限公司 一种存储资源的扩容控制方法、装置及电子设备
CN113407112B (zh) * 2021-05-11 2023-02-10 浙江大华技术股份有限公司 扩容方法、电子设备及计算机可读存储介质
CN114285729B (zh) * 2021-11-29 2023-08-25 苏州浪潮智能科技有限公司 分布式集群管理节点部署方法、装置、设备及存储介质
CN114461138B (zh) * 2021-12-24 2024-06-07 天翼云科技有限公司 存储资源的调度方法、装置、电子设备及可读存储介质
CN116521052A (zh) * 2022-01-21 2023-08-01 戴尔产品有限公司 用于扩展存储系统的方法、电子设备和计算机程序产品
TWI831159B (zh) * 2022-03-22 2024-02-01 新加坡商鴻運科股份有限公司 存儲擴容方法及裝置、存儲介質與電子設備
CN116339644B (zh) * 2023-05-26 2023-08-11 苏州浪潮智能科技有限公司 一种独立磁盘冗余阵列创建方法、装置、设备及介质
CN116610270B (zh) * 2023-07-21 2023-10-03 湖南马栏山视频先进技术研究院有限公司 一种视频处理的存算分离方法及视频存算分离系统

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7921262B1 (en) 2003-12-18 2011-04-05 Symantec Operating Corporation System and method for dynamic storage device expansion support in a storage virtualization environment
US8010498B2 (en) 2005-04-08 2011-08-30 Microsoft Corporation Virtually infinite reliable storage across multiple storage devices and storage services
JP4699808B2 (ja) * 2005-06-02 2011-06-15 株式会社日立製作所 ストレージシステム及び構成変更方法
US7721044B1 (en) 2005-10-20 2010-05-18 American Megatrends, Inc. Expanding the storage capacity of a virtualized data storage system
JP2007280089A (ja) * 2006-04-07 2007-10-25 Hitachi Ltd 容量拡張ボリュームの移行方法
JP4940738B2 (ja) * 2006-04-12 2012-05-30 株式会社日立製作所 記憶領域動的割当方法
JP4990066B2 (ja) * 2007-08-21 2012-08-01 株式会社日立製作所 論理ボリュームのペアを利用したデータ保存の方式を変更する機能を備えたストレージシステム
JP4412509B2 (ja) * 2007-10-05 2010-02-10 日本電気株式会社 ストレージシステムの容量拡張制御方法
US8135906B2 (en) 2008-05-15 2012-03-13 Lsi Corporation Online storage capacity expansion of a raid storage system
WO2010005421A2 (en) 2008-07-07 2010-01-14 Hewlett-Packard Development Company, L.P. Dynamically expanding storage capacity of a storage volume
US20110167435A1 (en) 2009-08-03 2011-07-07 Chin Fang Systems and methods for remote storage management
CN101808119A (zh) * 2010-03-04 2010-08-18 杭州华三通信技术有限公司 一种多存储阵列负载均衡的方法和设备
US8707091B2 (en) 2010-03-15 2014-04-22 Cleversafe, Inc. Failsafe directory file system in a dispersed storage network
US20110238737A1 (en) 2010-03-26 2011-09-29 Nec Laboratories America, Inc. Decentralized cloud storage
US8812653B2 (en) * 2010-08-05 2014-08-19 Novell, Inc. Autonomous intelligent workload management
US20120102291A1 (en) * 2010-10-26 2012-04-26 Dell Products, Lp System and Method for Storage Allocation in a Cloud Environment
US8719627B2 (en) * 2011-05-20 2014-05-06 Microsoft Corporation Cross-cloud computing for capacity management and disaster recovery
CN103365781B (zh) 2012-03-29 2016-05-04 国际商业机器公司 用于动态地重新配置存储系统的方法和设备

Also Published As

Publication number Publication date
US9229849B2 (en) 2016-01-05
CN103365781A (zh) 2013-10-23
CN103365781B (zh) 2016-05-04
US20160077763A1 (en) 2016-03-17
US9389798B2 (en) 2016-07-12
US20130297905A1 (en) 2013-11-07

Similar Documents

Publication Publication Date Title
DE102013204508A1 (de) Dynamisches Neukonfigurieren eines Speichersystems
DE112012004336B4 (de) System, Verfahren und Programmprodukt für kostenbewusste Auswahl von Vorlagen zum Bereitstellen von gemeinsam genutzten Ressourcen
DE112012003505B4 (de) Automatisierte Auswahl von Funktionen zum Verringern der Speicherkapazität auf der Grundlage von Leistungsanforderungen
DE112016003120B4 (de) Umleiten einer Kopie beim Schreiben
DE112012004318T5 (de) Verwendung eines virtuellen Laufwerks als Hot-Spare-Einheit für eine RAID-Gruppe
DE112019000421B4 (de) Arbeitslastverwaltung mit datenzugriffserkennung in einem datenverarbeitungscluster
DE102013204186A1 (de) Ermitteln von Prioritäten für zwischengespeicherte Objekte zum Ordnen des Übertragens von Änderungen an zwischengespeicherten Objekten beruhend auf gemessener Netzwerkbandbreite
DE112012002941T5 (de) Anwendungsressourcenverwalter über eine Cloud
DE112012004238T5 (de) Auf Erkennung beruhende Identifizierung und Migration von leicht in eine Cloud verlagerbaren Anwendungen
DE102016119298B4 (de) Zeitpunktkopieren mit klonen von ketten
DE112013001889T5 (de) Dynamische Zuweisung einer Arbeitslast über eine Vielzahl von Clouds hinweg
DE112021006130T5 (de) Automatisierte orchestrierung von containern durch bewerten von mikrodiensten
DE102013205572A1 (de) Verwenden von softwarekomponenten-metadaten zum bereitstellen von virtuellen maschinen in einer vernetzten datenverarbeitungsumgebung
DE112013004805T5 (de) Unterstützen eines koordinierten Zugriffs auf einen gemeinsam genutzten Speicher eines Dateisystems unter Verwendung einer automatischen Ausrichtung eines Protokolls für einen parallelen Dateizugriff und einer Metadatenverwaltung
DE112020002189T5 (de) Container-basierte anwendungen
DE112013006646B4 (de) Computer, System und computerlesbares Ablagemedium zum Identifizieren von Arbeitslast und Dimensionierung von Puffern zum Zweck der Volumenreplikation
DE112017005022T5 (de) Umladen der Bandverarbeitung auf Objektspeicher
DE112020005323T5 (de) Elastische ausführung von machine-learning-arbeitslasten unter verwendung einer anwendungsbasierten profilierung
DE112020003825T5 (de) Entsprechung zwischen externen Operationen und Containern sowie Mutationsereignissen
DE112021000390T5 (de) Anpassen der leistung eines datenverarbeitungssystems
DE112021005586T5 (de) Automatisches skalieren einer abfrage-steuerungsroutine für arbeitslasten im bereich big data auf unternehmensebene
DE112021004119T5 (de) Speicherabstufung innerhalb einer vereinheitlichten speicherumgebung
DE112020005306T5 (de) Implementierung von arbeitslasten in einer multi-cloud-umgebung
DE112018004415B4 (de) Optimierung von cloud-ressourcen bei operationen in mehrstufigem speicher auf richtliniengrundlage
DE102014116744B4 (de) Management von Informationstechnologieressourcen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication