DE112018005135T5 - Thin provisioning unter verwendung von speicherbänken auf cloud-grundlage - Google Patents

Thin provisioning unter verwendung von speicherbänken auf cloud-grundlage Download PDF

Info

Publication number
DE112018005135T5
DE112018005135T5 DE112018005135.8T DE112018005135T DE112018005135T5 DE 112018005135 T5 DE112018005135 T5 DE 112018005135T5 DE 112018005135 T DE112018005135 T DE 112018005135T DE 112018005135 T5 DE112018005135 T5 DE 112018005135T5
Authority
DE
Germany
Prior art keywords
cloud
storage
banks
local
memory
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
DE112018005135.8T
Other languages
English (en)
Inventor
Lokesh Gupta
Matthew Borlick
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 DE112018005135T5 publication Critical patent/DE112018005135T5/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/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/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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

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

Abstract

Ein durch einen Computer realisiertes Verfahren für ein Thin Provisioning unter Verwendung von Speicherbänken auf Cloud-Grundlage weist ein Ermitteln einer Gesamtmenge an ungenutztem physischem Speicherplatz für alle aus einer Mehrzahl von lokalen Speicherbänken, die einem Speicher-Controller zugehörig sind; ein Vergleichen der Gesamtmenge an ungenutztem physischem Speicherplatz mit einem ersten Schwellenwert; ein Erzeugen einer oder mehrerer Speicherbänke auf Cloud-Grundlage als Reaktion auf ein Ermitteln auf, dass die Gesamtmenge an ungenutztem physischem Speicherplatz kleiner als der erste Schwellenwert ist. Ein Erzeugen einer jeden der einen oder der mehreren Speicherbänke auf Cloud-Grundlage weist ein Zuordnen von Speicherplatz in einer oder mehreren entsprechenden Cloud-Speichereinheiten über eine Cloud-Schnittstelle; ein Abbilden des zugeordneten Speicherplatzes auf die entsprechenden virtuellen lokalen Adressen; und ein Gruppieren der virtuellen lokalen Adressen als eine virtuelle lokale Speicherbank auf, die dem Speicher-Controller zugehörig ist.

Description

  • HINTERGRUND
  • Speichernetzwerke wie z.B. Speicherbereichsnetzwerke (Storage Area Networks, SANs) werden dazu verwendet, verschiedene Arten von Datenspeichersystemen mit verschiedenen Arten von Servern (hier auch als „Host-Systeme“ bezeichnet) zu verbinden. Manche Server umfassen verschiedenartige Hardware wie z.B. Datenspeichermedien, Speicher-Controller, Arbeitsspeicher sowie die zugehörigen Stromversorgungssysteme, Kühlsysteme usw.
  • Speicher-Controller steuern den Zugriff auf Datenspeichermedien und Arbeitsspeicher als Reaktion auf Lese- und Schreibanforderungen. Die Speicher-Controller können die Daten im Einklang mit Datenspeichereinheiten wie RAID (Redundant Array of Independent Disks, redundante Anordnung von unabhängigen Festplatten), JBOD (Just a Bunch of Disks) und anderen Redundanz- und Sicherheitsniveaus steuern. Als ein Beispiel verfügt ein IBM® ESS (Enterprise Storage Server) wie z.B. eine DS8000-Serie über redundante Cluster von Computereinheiten, Cache, nichtflüchtigem Speicher (Non-Volatile Storage, NVS) usw.
  • KU RZDARSTELLU NG
  • Aspekte der vorliegenden Erfindung umfassen ein(e) durch einen Computer realisierte(s) Verfahren, Computerprogrammprodukt, Datenverarbeitungseinheit und System für ein Thin Provisioning unter Verwendung von Speicherbänken auf Cloud-Grundlage. Ein Beispielverfahren, das die vorliegende Erfindung enthält, weist ein Ermitteln einer Gesamtmenge an ungenutztem physischem Speicherplatz für alle aus einer Mehrzahl von lokalen Speicherbänken, die einem Speicher-Controller zugehörig sind; ein Vergleichen der Gesamtmenge an ungenutztem physischem Speicherplatz mit einem ersten Schwellenwert; ein Erzeugen einer oder mehrerer Speicherbänke auf Cloud-Grundlage als Reaktion auf ein Ermitteln auf, dass die Gesamtmenge an ungenutztem physischem Speicherplatz kleiner als der erste Schwellenwert ist. Ein Erzeugen einer jeden der einen oder der mehreren Speicherbänke auf Cloud-Grundlage weist ein Zuordnen von Speicherplatz in einer oder mehreren entsprechenden Cloud-Speichereinheiten über eine Cloud-Schnittstelle; ein Abbilden des zugeordneten Speicherplatzes auf die entsprechenden virtuellen lokalen Adressen; und ein Gruppieren der virtuellen lokalen Adressen als eine virtuelle lokale Speicherbank auf, die dem Speicher-Controller zugehörig ist.
  • Die obige Kurzdarstellung ist nicht dafür gedacht, jede veranschaulichte Ausführungsform bzw. jede Realisierung der vorliegenden Erfindung zu beschreiben.
  • Figurenliste
  • Unter der Voraussetzung, dass die Zeichnungen lediglich beispielhafte Ausführungsformen der vorliegenden Erfindung abbilden und daher nicht als Beschränkung des inhaltlichen Umfangs zu verstehen sind, werden die beispielhaften Ausführungsformen der vorliegenden Erfindung mit zusätzlicher Genauigkeit und Detailtreue anhand der beigefügten Zeichnungen beschrieben, bei denen:
    • 1 ein allgemeines Blockschaubild ist, das eine Beispiel-Netzwerkumgebung abbildet;
    • 2 ein allgemeines Blockschaubild ist, das ein Beispiel-Speichersystem abbildet;
    • 3 ein Blockschaubild eines Beispiel-Einheitenadapters ist;
    • 4 ein Ablaufplan ist, der ein Beispielverfahren für ein Thin Provisioning unter Verwendung von Speicherbänken auf Cloud-Grundlage darstellt.
  • Entsprechend der üblichen Praxis sind die verschiedenen beschriebenen Merkmale nicht maßstabsgetreu gezeichnet, sondern gezeichnet, um spezifische Merkmale besonders hervorzuheben, die für die beispielhaften Ausführungsformen der vorliegenden Erfindung relevant sind.
  • AUSFÜHRLICHE BESCHREIBUNG
  • In der folgenden ausführlichen Beschreibung wird auf die beigefügten Zeichnungen Bezug genommen, die einen Bestandteil hiervon bilden und in denen zum Zwecke der Veranschaulichung spezifische veranschaulichende Ausführungsformen der vorliegenden Erfindung gezeigt werden. Dabei sollte jedoch klar sein, dass auch andere Ausführungsformen der vorliegenden Erfindung verwendet werden können und dass logische, mechanische und elektrische Änderungen vorgenommen werden können. Darüber hinaus ist das in den Zeichnungsfiguren und der Beschreibung dargelegte Verfahren nicht als Beschränkung der Reihenfolge zu verstehen, in denen die einzelnen Schritte durchgeführt werden können. Die folgende ausführliche Beschreibung ist somit nicht in einem beschränkenden Sinne zu verstehen.
  • Wie hier verwendet, sind die Phrasen „mindestens ein“, „ein oder mehrere“ sowie „und/oder“ offene Ausdrücke, die sowohl eine konjunktive als auch eine disjunktive Funktion umfassen. Zum Beispiel bedeutet jeder der Ausdrücke „mindestens eines von A, B und C“, „mindestens eines von A, B oder C“, „ein oder mehrere von A, B und C“, „ein oder mehrere von A, B oder C“ und „A, B und/oder C“ nur A, nur B, nur C, A und B, A und C, B und C oder A, B und C. Zusätzlich bezieht sich der Begriff „ein“ auf eines oder mehrere des betreffenden Elements. Somit können die Begriffe „ein“, „ein oder mehrere“ und „mindestens ein“ hier austauschbar verwendet werden. Zu beachten ist ferner, dass die Begriffe „aufweisend“, „umfassend“ und „mit“ austauschbar verwendet werden können. Wie hier verwendet, bezieht sich der Begriff „automatisch“ und Abwandlungen davon auf jeden Prozess oder jede Operation, der bzw. die ohne wesentliche menschliche Eingabe auskommt, wenn der Prozess oder die Operation durchgeführt wird. Eine menschliche Eingabe gilt als wesentlich, wenn eine solche Eingabe festlegt oder steuert, wie oder wann der Prozess oder die Operation durchgeführt wird. Ein Prozess, der eine menschliche Eingabe verwendet, gilt auch dann als automatisch, wenn die Eingabe nicht festlegt oder steuert, wie oder wann der Prozess ausgeführt wird.
  • Wie hier verwendet, werden die Begriffe „ermitteln“, „berechnen“, „rechnen“ und Abwandlungen davon austauschbar verwendet und umfassen jede Art von Methodik, Prozess, mathematischer Operation oder Methode. Im Folgenden soll „in Verbindung“ oder „kommunikativ gekoppelt“ jede sowohl drahtlose als auch drahtgebundene elektrische Verbindung bedeuten, die zwei oder mehr Systemen, Komponenten, Modulen, Einheiten usw. gestattet, unter Verwendung eines beliebigen Protokolls oder Formats Daten, Signale oder andere Informationen auszutauschen. Des Weiteren müssen zwei kommunikativ gekoppelte Komponente nicht direkt miteinander verbunden sein, sondern können auch über andere zwischengelagerte Komponenten oder Einheiten miteinander verbunden sein.
  • 1 ist ein allgemeines Blockschaubild, das eine Beispiel-Netzwerkarchitektur 100 abbildet. Die Netzwerkarchitektur 100 wird lediglich als Beispiel und nicht als Beschränkung vorgelegt. Tatsächlich können die hier offenbarten Systeme und Verfahren zusätzlich zu der in 1 gezeigten Netzwerkarchitektur 100 auf eine breite Vielfalt von verschiedenen Netzwerkarchitekturen anwendbar sein.
  • Wie gezeigt, umfasst die Netzwerkarchitektur 100 einen oder mehrere Clients oder Client-Computer 102-1 bis 102-N, wobei N die Gesamtzahl von Client-Computern ist, und einen oder mehrere Hosts 106-1 bis 106-M, wobei M die Gesamtzahl von Hosts ist (hier auch als „Server-Computer“ 106, „Host-Systeme“ 106 oder „Host-Einheiten“ 106 bezeichnet). Obwohl in 1 fünf Clients 102 gezeigt werden, sollte klar sein, dass bei anderen Ausführungsformen auch eine andere Anzahl von Clients 102 verwendet werden kann. Zum Beispiel kann bei manchen Ausführungsformen nur ein Client 102 realisiert sein. Bei anderen Ausführungsformen werden mehr als fünf oder weniger als fünf Clients 102 verwendet. Obwohl in 1 vier Clients 106 gezeigt werden, sollte daher klar sein, dass jede geeignete Anzahl von Hosts 106 verwendet werden kann. Zum Beispiel wird bei manchen Ausführungsformen nur ein einziger Host 106 verwendet. Bei anderen Ausführungsformen der vorliegenden Erfindung können mehr als vier oder weniger als vier Speicher-Hosts 106 verwendet werden.
  • Jeder der Client-Computer 102 kann als ein Desktop Computer, tragbarer Computer, Laptop oder Notebook Computer, Netbook, Tablet Computer, Taschencomputer, Smartphone oder jede andere geeignete Art von elektronischer Einheit realisiert sein. Entsprechend kann jeder der Hosts 106 unter Verwendung eines beliebigen geeigneten Host-Computers oder Servers realisiert sein. Solche Server können IBM System z®- und IBM System i®-Server sowie UNIX-Server, Microsoft-Windows-Server und Linux-Plattformen umfassen, ohne jedoch darauf beschränkt zu sein.
  • Die Client-Computer 102 sind über ein Netzwerk 104 mit den Hosts 106 kommunikativ gekoppelt. Das Netzwerk 104 kann zum Beispiel ein lokales Netzwerk (Local Area Network, LAN), ein Weitverkehrsnetzwerk (Wide Area Network, WAN), das Internet, ein Intranet oder Ähnliches umfassen. Im Allgemeinen veranlassen die Client-Computer 102 Datenübertragungssitzungen, während die Server-Computer 106 auf Anforderungen von den Client-Computern 102 warten. Bei bestimmten Ausführungsformen der vorliegenden Erfindung können die Computer 102 und/oder die Server 106 mit einem oder mehreren internen oder externen, direkt verbundenen Speichersystemen 112 verbunden sein (z.B. Anordnungen von Festplattenlaufwerken, Halbleiterlaufwerken, Bandlaufwerken usw.). Diese Computer 102, 106 und direkt verbundenen Speichersystemen 112 können unter Verwendung von Protokollen wie ATA, SATA, SCSI, SAS, Fibre Channel oder Ähnlichem Daten austauschen.
  • Bei bestimmten Ausführungsformen der vorliegenden Erfindung kann die Netzwerkarchitektur 100 den Servern 106 nachgelagert ein Speichernetzwerk 108 wie z.B. ein Speicherbereichsnetzwerk (SAN) 108 oder ein LAN 108 umfassen (z.B. bei Verwendung eines mit einem Netzwerk verbundenen Speichers). In dem in 1 gezeigten Beispiel verbindet das Netzwerk 108 die Server 106 mit einem oder mehreren Speicherteilsystemen 110. Obwohl zu Veranschaulichungszwecken nur ein einziges Speicherteilsystem 110 gezeigt wird, sollte klar sein, dass bei anderen Ausführungsformen der vorliegenden Erfindung mehr als ein Speicherteilsystem 110 verwendet werden kann. Das Speicherteilsystem 110 verwaltet Verbindungen mit Anordnungen von Speichereinheiten 116. Die Anordnungen von Speichereinheiten 116 können Anordnungen von Festplattenlaufwerken und/oder Halbleiterlaufwerken umfassen. Um auf das Speicherteilsystem 110 zuzugreifen, kann ein Host-System 106 über physische Verbindungen von einem oder mehreren Anschlüssen in dem Host 106 zu einem oder mehreren Anschlüssen in dem Speicherteilsystem 110 Daten austauschen. Eine Verbindung kann durch einen Switch, eine Fabric, eine direkte Verbindung oder Ähnliches erfolgen. Bei bestimmten Ausführungsformen der vorliegenden Erfindung können die Server 106 und Speicherteilsysteme 110 unter Verwendung eines Netzwerkstandards wie Fibre Channel (FC) oder iSCSI Daten austauschen.
  • Bei herkömmlichen Systemen kann es schwierig und/oder teuer sein, zu ermitteln, wie viel Speicherkapazität bereitgestellt werden soll. Manche Systeme verwenden eine als Thin Provisioning bezeichnete Methode, die mehr logischen Speicherplatz als den verfügbaren physischen Speicherplatz bereitstellt. Wenn aufgrund der Zunahme der gespeicherten Daten mehr physischer Speicherplatz benötigt wird, werden zusätzliche Speicherlaufwerke konfiguriert und hinzugefügt, um die Kapazität zu erhöhen. Dies kann allerdings Ausfallzeiten, in denen Dienste nicht verfügbar sind, sowie zusätzliche Kosten für den Erwerb, die Konfiguration und Installation neuer Speicherlaufwerke verursachen. Dazu kommt, dass der neue Schreibvorgang fehlschlägt, wenn ein neuer Schreibvorgang stattfindet und kein physischer Platz mehr zur Verfügung steht, aber auch noch keine zusätzliche Kapazität hinzugefügt wurde. Wenn jedoch mehr Kapazität bereitgestellt wird als benötigt, bleibt der Platz ungenutzt und führt zu einer ineffizienten Nutzung von Speicherplatz und Kosten für die anfängliche Bereitstellung.
  • Obwohl Cloud-Speicherdienste existieren, die eine vergleichsweise kostengünstige Art einer Speicherung von Daten für grundlegende Erfordernisse wie z.B. die Archivierung bereitstellen können, stellen herkömmliche Verwendungen von Cloud-Speicherdiensten nicht dieselben Merkmale und Vorzüge eines Unternehmensspeichersystems mit lokal verbundenen Speicheranordnungen bereit, wie z.B. die oben erläuterten fortschrittlichen Verwaltungsmerkmale. Im Gegensatz zu herkömmlichen Unternehmensspeichersystemen und herkömmlichen Cloud-Speicherdiensten nutzen die hier beschriebenen Ausführungsformen der vorliegenden Erfindung die Verfügbarkeit von Cloud-Speicherlaufwerken, um Speicheranordnungen aus dem Cloud-Speicher auf eine Art und Weise zu erzeugen, bei welcher der Cloud-Speicher für das Unternehmensspeichersystem eine lokale Speicheranordnung zu sein scheint, was fortschrittliche Datenverwaltungsmerkmale für in der Cloud gespeicherte Daten ermöglicht sowie das Thin Provisioning nahtloser gestaltet (z.B. weniger Dienstunterbrechungen verursacht, wenn Kapazität benötigt/hinzugefügt wird), wie weiter unten ausführlicher beschrieben wird. Im Besonderen können die hier beschriebenen Ausführungsformen der vorliegenden Erfindung im Bedarfsfall Speicheranordnungen für den Speicher-Controller dynamisch hinzufügen und dabei dennoch dieselben Merkmale ermöglichen, die lokalen Speicheranordnungen für Daten zur Verfügung stehen, welche in virtuellen Cloud-Anordnungen gespeichert sind. Somit stellen die hier beschriebenen Ausführungsformen der vorliegenden Erfindung eine Lösung bereit, um Vorteile eines Unternehmensspeichersystems für Daten zu ermöglichen, die in Cloud-Speicherlaufwerken gespeichert sind, sowie um das Thin Provisioning nahtloser zu gestalten.
  • 2 ist ein allgemeines Blockschaubild eines Speichersystems 200. Das Speichersystem 200 umfasst eine oder mehrere Anordnungen von Speicherlaufwerken (z.B. Festplattenlaufwerke und/oder Halbleiterlaufwerke). Wie gezeigt, umfasst das Speichersystem 200 ein Speicherteilsystem 210, eine Mehrzahl von Switches 202 und eine Mehrzahl von Speicherlaufwerken 216 wie z.B. Festplattenlaufwerke und/oder Halbleiterlaufwerke (z.B. Laufwerke auf Grundlage eines Flash-Arbeitsspeichers). Das Speicherteilsystem 210 kann einem oder mehreren Hosts (z.B. Open-System- und/oder Mainframe-Servern) ermöglichen, auf Daten auf der Mehrzahl von Speicherlaufwerken 216 zuzugreifen.
  • Bei manchen Ausführungsformen der vorliegenden Erfindung umfasst das Speicherteilsystem 210 einen oder mehrere Speicher-Controller 222. In dem in 2 gezeigten Beispiel umfasst das Speicherteilsystem einen Speicher-Controller 222a und einen Speicher-Controller 222b. Obwohl hier zu Erläuterungszwecken nur zwei Speicher-Controller 226 gezeigt sind, sollte klar sein, dass bei anderen Ausführungsformen der vorliegenden Erfindung mehr als zwei Speicher-Controller verwendet werden können. Das Speicherteilsystem 210 aus 2 umfasst ferner Host-Adapter 224a, 224b und Einheitenadapter 226a, 226b, um das Speicherteilsystem 210 mit Host-Einheiten bzw. Speicherlaufwerken 204 zu verbinden. Mehrere Speicher-Controller 222a, 222b stellen eine Redundanz bereit, um dazu beizutragen sicherzustellen, dass Daten für die verbundenen Hosts verfügbar sind. Wenn somit ein Speicher-Controller (z.B. der Speicher-Controller 222a) ausfällt, kann der andere Speicher-Controller (z.B. 222b) die E/A-Last des ausgefallenen Speicher-Controllers übernehmen, um sicherzustellen, dass die Ein-/Ausgaben zwischen den Hosts und den Speicherlaufwerken 204 weitergehen. Dieser Prozess kann als eine „Funktionsübernahme“ bezeichnet werden.
  • Jeder Speicher-Controller 222 kann einen oder mehrere Prozessoren 228 bzw. Arbeitsspeicher 230 umfassen. Der Arbeitsspeicher 230 kann einen flüchtigen Arbeitsspeicher (z.B. einen RAM) sowie einen nichtflüchtigen Arbeitsspeicher umfassen (z.B. einen ROM, EPROM, EEPROM, Flash-Arbeitsspeicher usw.). Der flüchtige und der nichtflüchtige Arbeitsspeicher können Software-Module speichern, die in dem bzw. den Prozessor(en) 228 ausgeführt werden und für den Zugriff auf Daten auf den Speicherlaufwerken 204 verwendet werden. Die Speicher-Controller 222 können mindestens eine Instanz dieser Software-Module beherbergen. Diese Software-Module können alle Lese- und Schreibanforderungen an logische Datenträger auf den Speicherlaufwerken 204 verwalten.
  • Im Besonderen ist jeder Speicher-Controller 222 über einen entsprechenden Einheitenadapter 226 mit den Speicherlaufwerken 204 kommunikativ gekoppelt. Jeder Einheitenadapter 226 ist konfiguriert, um Eingabe/Ausgabe(E/A)-Zugriffe (hier auch als Datenzugriffsanforderungen oder Zugriffsanforderungen bezeichnet) auf die Speicherlaufwerke 216 zu verwalten. Zum Beispiel organisieren die Einheitenadapter 226 die Speicherlaufwerke 216 logisch und ermitteln, wo auf den Speicherlaufwerken 216 Daten gespeichert werden sollen. Die (auch als Plattenlaufwerksmodule (Disk Drive Modules, (DDMs)) bezeichneten Speicherlaufwerke 216 können Gruppen von unterschiedlichen Arten von Laufwerken mit unterschiedlichen Leistungsmerkmalen umfassen. Zum Beispiel können die Speicherlaufwerke 216 eine Kombination von (vergleichsweise) langsamen „Nearline“-Platten (z.B. mit einer Umdrehungsgeschwindigkeit von 7.200 Umdrehungen pro Minute (U/min)), SAS-Plattenlaufwerken (z.B. mit 10.000 oder 15.000 U/min) und vergleichsweise schnellen Halbleiterlaufwerken (SSDs) umfassen.
  • Die Einheitenadapter 226 sind über Switches 220 mit den Speicherlaufwerken 216 verbunden. Bei jedem der Switches 220 kann es sich um Fiber Switches handeln, welche die Speicherlaufwerke 216 über Lichtwellenleiterverbindungen mit den Einheitenadaptern verbinden. Die Einheitenadapter 226 gruppieren die Speicherlaufwerke 216 logisch in Anordnungsstandorte 234. Zu Veranschaulichungszwecken ist in 2 ein einziger Anordnungsstandort 234 dargestellt, der aus den Speicherlaufwerken 216 besteht. Dabei sollte jedoch klar sein, dass in anderen Ausführungsformen der vorliegenden Erfindung mehr als ein Anordnungsstandort enthalten sein kann, der aus den Speicherlaufwerken 216 besteht. Der Anordnungsstandort 234 kann als eine RAID-Anordnung 234 formatiert sein. Dabei sollte klar sein, dass jede Art von RAID-Anordnung (z.B. RAID 0, RAID 5, RAID 10 usw.) verwendet werden kann. Jede RAID-Anordnung wird auch als eine Speicherbank bezeichnet. Jede Speicherbank ist in eine Anzahl von gleich großen Partitionen unterteilt, die als Speicherbereiche bezeichnet werden. Die Größe eines jeden Speicherbereichs kann je nach der Realisierung variieren. Zum Beispiel kann die Größe eines jeden Speicherbereichs zumindest teilweise von der Speicherart des Speicherbereichs abhängig sein. Die Speicherart des Speicherbereichs (z.B. Festblock (FB) oder Count Key Data (CKD)) ist abhängig von der Art eines Hosts, der mit dem Speicherteilsystem verbunden ist (z.B. Open-Systems-Host oder Mainframe-Server). Die Speicherbereiche werden dann zu logischen Datenträgern gruppiert.
  • Das Speicherteilsystem 210 kann verschiedene Verwaltungsmerkmale und - funktionen ermöglichen, z.B. ohne darauf beschränkt zu sein, eine vollständige Plattenverschlüsselung, in einem nichtflüchtigen Speicher (NVS) enthaltene Algorithmen (z.B. für Schwellenwertüberwachung, Zwischenspeicherung, Auslagerung), Speicherpool-Striping (Rotation von Speicherbereichen), dynamische Datenträgererweiterung, dynamische Datenverlagerung, intelligentes Speichern im Schreib-Cache und adaptiver Mehrstrom-Vorablesezugriff. Ein Beispiel für ein Speichersystem 210 mit einer Architektur ähnlich der in 2 veranschaulichten ist das Unternehmensspeichersystem der IBM DS8000™-Serie. Das DS8000™ ist ein Speicherteilsystem mit einer hohen Leistung und Kapazität, das einen Platten- und Halbleiterspeicher bereitstellt, der für die Unterstützung eines kontinuierlichen Betriebs ausgelegt ist. Dessen ungeachtet sind die hier offenbarten Ausführungsformen der vorliegenden Erfindung nicht auf das Unternehmensspeichersystem der IBM DS8000™-Serie beschränkt, sondern können in jedem vergleichbaren oder analogen Speichersystem bzw. in jeder vergleichbaren oder analogen Gruppe von Speichersystemen realisiert sein, unabhängig von dem Hersteller, der Produktbezeichnung oder den Komponenten bzw. Komponentenbezeichnungen, die dem System zugehörig sind. Somit wird das IBM DS8000™ lediglich zu Beispielzwecken genannt und ist nicht als Beschränkung gedacht.
  • Bei der in 2 gezeigten Ausführungsform der vorliegenden Erfindung umfasst jeder der Einheitenadapter 226 zudem einen entsprechenden Netzwerkanschluss 232 wie z.B. einen Ethernet-Anschluss, der den Einheitenadapter 226 über ein Netzwerk wie z.B. das Internet mit den Cloud-Speichereinheiten 214 kommunikativ koppelt. In dem in 2 gezeigten Beispiel umfasst jeder Einheitenadapter 226 des Weiteren ein entsprechendes Cloud-Bereitstellungsmodul 232, das konfiguriert ist, um Cloud-Speichereinheiten 214 virtuellen RAID-Anordnungen zuzuordnen und in diesen zu gruppieren, so dass die Cloud-Speichereinheiten 214 für die Speicher-Controller 222 eine lokale RAID-Anordnung oder eine lokale Speicherbank zu sein scheinen. Auf diese Weise sind die Merkmale und Funktionen der Speicher-Controller 222, die für die lokalen Speicherbänke wie z.B. die RAID-Anordnung 234 verfügbar sind, auch für die Cloud-Speicherbank 214 verfügbar.
  • Wie weiter unten mit Blick auf die 3 und 4 ausführlicher beschrieben, ist das Cloud-Bereitstellungsmodul 232 konfiguriert, um eine Umwandlung zwischen Speicher-Controller-Befehlen und/oder E/A-Zugriffen und Cloud-Schnittstellenbefehlen und/oder E/A-Zugriffen vorzunehmen. Obwohl in diesem Beispiel ein Cloud-Bereitstellungsmodul 232 in den Einheitenadaptern 226 enthalten ist, sollte erwähnt werden, dass das Cloud-Bereitstellungsmodul 232 bei anderen Ausführungsformen der vorliegenden Erfindung in den Speicher-Controllern 222 enthalten sein kann. Im Besonderen umfasst bei manchen Ausführungsformen der vorliegenden Erfindung jeder Speicher-Controller 222 ein entsprechendes Cloud-Bereitstellungsmodul, das die Umwandlung für Befehle an den entsprechenden Einheitenadapter 226 vornimmt.
  • Somit ermöglichen die hier beschriebenen Ausführungsformen der vorliegenden Erfindung Vorteile gegenüber herkömmlichen Cloud-Speichersystemen. Zum Beispiel ermöglichen herkömmliche Cloud-Speichersysteme in der Regel eine vergleichsweise grundlegende Funktionalität wie Fernarchivierung, Sicherung und Wiederherstellung. Allerdings sind solche herkömmlichen Systeme nicht in der Lage, fortschrittliche Verwaltungsfunktionen für die in der Cloud gespeicherten Daten durchzuführen, z.B. die oben erwähnten Verwaltungsfunktionen (beispielsweise NVS-Algorithmen, z.B. für Schwellenwertüberwachung, Zwischenspeicherung und Auslagerung). Durch die Verwendung des weiter unten ausführlicher beschriebenen Cloud-Bereitstellungsmoduls 232 ermöglichen die hier beschriebenen Ausführungsformen somit die Durchführung von fortschrittlichen Verwaltungsmerkmalen für in Cloud-Speichereinheiten gespeicherte Daten, was für herkömmliche Cloud-Speichersysteme nicht verfügbar ist. Im Besonderen sind die Speicher-Controller 222 und Einheitenadapter 226 durch die Verwendung des Cloud-Bereitstellungsmoduls 232 in der Lage, auf die virtuellen RAID-Anordnungen oder Speicherbänke, die aus Cloud-Speicher bestehen, so zuzugreifen und sie zu nutzen, als ob die virtuellen RAID-Anordnungen kein entfernt angeordneter Speicher, sondern mit den Einheitenadaptern 226 verbundene lokale Laufwerke wären. Auf diese Weise sind die für lokale Laufwerke verfügbaren selben Verwaltungsmerkmale/-funktionen, wie die oben erwähnten , für den entfernt angeordneten Cloud-Speicher verfügbar, ohne dass der darunterliegende Code und/oder die Hardware geändert werden müssen, die der Realisierung dieser Verwaltungsmerkmale zugehörig sind.
  • Durch die Erzeugung von RAID-Anordnungen, die für das Speicherteilsystem 210 ein lokaler Speicher zu sein scheinen, stellen die hier beschriebenen Ausführungsformen darüber hinaus eine Lösung für ein Problem bereit, das darin besteht, ein nahtloseres Thin Provisioning zu ermöglichen. Im Besonderen ist das Cloud-Bereitstellungsmodul 232 konfiguriert, um die Menge an freiem Platz oder ungenutztem Speicherplatz in der Mehrzahl von Speichereinheiten der einen oder der mehreren RAI D-Anordnungen (z.B. Anordnung 234) in dem Speichersystem zu überwachen. Auf Grundlage der überwachten Menge an ungenutztem Speicherplatz kann das Cloud-Bereitstellungsmodul 232 eine oder mehrere Speicherbänke auf Cloud-Grundlage erzeugen, um die Kapazität des Speichersystems 200 zu erhöhen und zugleich dieselben Verwaltungsmerkmale für Daten in den Speicherbänken auf Cloud-Grundlage zu ermöglichen. Zusätzlich führt die Erzeugung und Hinzufügung der Speicherbänke auf Cloud-Grundlage zu weniger Dienstunterbrechungen, als dies beim Installieren und Konfigurieren zusätzlicher lokaler Speicheranordnungen der Fall ist.
  • 3 ist ein Blockschaubild einer Beispiel-Datenverarbeitungseinheit 300, die als ein Einheitenadapter wie z.B. die Einheitenadapter 226 oder als ein Speicher-Controller wie z.B. die Speicher-Controller 222 realisiert sein kann. Zu Erläuterungszwecken wird die Datenverarbeitungseinheit 300 hier in Bezug auf einen Einheitenadapter beschrieben. In dem in 3 gezeigten Beispiel umfasst der Einheitenadapter 300 einen Arbeitsspeicher 325, einen Speicher 335, eine Zwischenverbindung 340 (z. B. einen BUS), einen oder mehrere Prozessoren 305 (hier auch als CPU 305 bezeichnet), eine E/A-Einheitenschnittstelle 350 und einen Netzwerkadapter oder -anschluss 315.
  • Jede CPU 305 ruft in dem Arbeitsspeicher 325 und/oder dem Speicher 335 gespeicherte Programmieranweisungen ab und führt sie aus. Die Zwischenverbindung340 dient zum Verschieben von Daten wie z.B. Programmieranweisungen zwischen der CPU 305, der E/A-Einheitenschnittstelle 350, dem Speicher 335, dem Netzwerkadapter 315 und dem Arbeitsspeicher 325. Eine Zwischenverbindung340 kann unter Verwendung eines oder mehrerer Busse realisiert sein. Bei verschiedenen Ausführungsformen der vorliegenden Erfindung können die CPUs 305 eine einzige CPU, mehrere CPUs oder eine einzige CPU mit mehreren Verarbeitungskernen sein. Bei manchen Ausführungsformen der vorliegenden Erfindung kann ein Prozessor 305 ein digitaler Signalprozessor (DSP) sein. Der Arbeitsspeicher 325 ist im Allgemeinen in Form eines Direktzugriffsspeichers (z.B. eines statischen Direktzugriffsspeichers (Static Random Access Memory, SRAM), eines dynamischen Direktzugriffsspeichers (Dynamic Random Access Memory, DRAM) oder eines Flash-Speichers) enthalten. Der Speicher 335 ist im Allgemeinen in Form eines nichtflüchtigen Arbeitsspeichers wie z.B. eines Festplattenlaufwerks, einer Halbleitereinheit (Solid State Device, SSD), entfernbarer Speicherkarten, eines optischen Speichers oder von Flash-Speichereinheiten enthalten.
  • Bei manchen Ausführungsformen der vorliegenden Erfindung speichert der Arbeitsspeicher 325 Cloud-Bereitstellungsanweisungen 301, und der Speicher 335 speichert eine Abbildtabelle 307. Allerdings werden bei verschiedenen Ausführungsformen der vorliegenden Erfindung die Cloud-Bereitstellungsanweisungen 301 und die Abbildtabelle 307 teilweise in dem Arbeitsspeicher 325 und teilweise in dem Speicher 335 gespeichert, oder sie werden vollständig in dem Arbeitsspeicher 325 oder vollständig in dem Speicher 335 gespeichert.
  • Bei Ausführung durch die CPU 305 veranlassen die Cloud-Bereitstellungsanweisungen 301 die CPU 305, die Abbildtabelle 307 zu verwenden, um das weiter oben mit Bezug auf 2 erläuterte Cloud-Bereitstellungsmodul zu realisieren. Obwohl die Cloud-Bereitstellungsanweisungen 301 und die Abbildtabelle 307 als in einem Einheitenadapter 300 gespeichert und durch ihn ausgeführt/verwendet abgebildet sind, ist zu beachten, dass bei anderen Ausführungsformen die Cloud-Bereitstellungsanweisungen 301 und die Abbildtabelle 307 in einem Speicher-Controller wie z.B. dem in 2 gezeigten Speicher-Controller 222a und/oder dem Speicher-Controller 222b gespeichert und durch ihn ausgeführt/verwendet werden können. Die Cloud-Bereitstellungsanweisungen 301 veranlassen die CPU 305, Speicherplatz in Cloud-Speichereinheiten wie z.B. den in 2 abgebildeten Cloud-Speichereinheiten 214 zuzuweisen. Der Speicherplatz kann statisch oder nach Bedarf zugeordnet werden. Zum Beispiel kann der Speicherplatz im Vorhinein oder während der Laufzeit zugeordnet werden. Des Weiteren können die Cloud-Speicherbänke mit unterschiedlicher Speicherkapazität erzeugt werden.
  • Die Cloud-Bereitstellungsanweisungen 301 veranlassen die CPU 305 des Weiteren, den zugeordneten Speicher in eine oder mehrere virtuelle Speicherbänke zu gruppieren und eine Abbildung zwischen den Cloud-Speichereinheiten und der einen oder den mehreren virtuellen Speicherbänken in Abbildtabelle 307 zu speichern. Im Besonderen veranlassen die Cloud-Bereitstellungsanweisungen 301 die CPU 305 zur Erzeugung der Abbildtabelle 307, die den zugeordneten Speicherplatz auf entsprechende virtuelle lokale Adressen abbildet und die virtuellen lokalen Adressen gruppiert, um eine oder mehrere virtuelle lokale Speicherbänke oder RAID-Anordnungen zu erzeugen. Somit scheinen die virtuellen Speicherbänke von Cloud-Speicher für einen Speicher-Controller, der über die E/A-Einheitenschnittstellen 350 mit dem Einheitenadapter 300 kommunikativ gekoppelt ist, lokale, direkt verbundene Speicherbänke zu sein. Die E/A-Einheitenschnittstellen 350 koppeln außerdem den Einheitenadapter 300 kommunikativ mit lokalen Speicherbänken von Speichereinheiten wie z.B. Halbleiterlaufwerken und Nearline-Laufwerken (z.B. den oben erläuterten Speicherlaufwerken 216). Die E/A-Einheitenschnittstellen 350 können zum Beispiel Lichtwellenleiter-Anschlüsse umfassen. Wie hier verwendet, ist eine lokale Speicherbank eine Speicherbank oder eine RAID-Anordnung, die aus Speichereinheiten besteht, welche direkt und ohne ein dazwischenliegendes Weitverkehrsnetzwerk wie das Internet mit dem Einheitenadapter 300 verbunden sind.
  • Wenn ein E/A-Zugriff (z.B. eine Lese- oder Schreibanforderung) empfangen wird, veranlassen die Cloud-Umwandlungsanweisungen 301 die CPU 305, zu ermitteln, ob die Anforderung auf Daten gerichtet ist, die in einer virtuellen Speicherbank eines Cloud-Speichers gespeichert sind. Wenn die Anforderung auf Daten gerichtet ist, die in einer virtuellen Speicherbank eines Cloud-Speichers gespeichert sind, wandeln die Cloud-Bereitstellungsanweisungen 301 den (hier auch als eine Datenzugriffsanforderung oder Zugriffsanforderung bezeichneten) E/A-Zugriff für eine Übertragung über eine Cloud-Schnittstelle an die Cloud-Speichereinheit um. Zum Beispiel können die Cloud-Bereitstellungsanweisungen 301 den E/A-Zugriff unter Verwendung von Befehlen, eines Formats, einer Einheitenadresse usw. umwandeln, die durch die Cloud-Schnittstelle für den Zugriff auf die Cloud-Speichereinheiten verwendet werden. Wie hier verwendet, können die Begriffe E/A-Zugriff, Lese/Schreibzugriff und Datenzugriff austauschbar verwendet werden. Ohne darauf beschränkt zu sein, können beispielhafte Cloud-Schnittstellen den IBM® Cloud Manager oder die Amazon® Simple Storage Service(Amazon S3)-Schnittstelle umfassen. Wie weiter oben erläutert, machen die Cloud-Bereitstellungsanweisungen 301 den Cloud-Speicher somit ähnlich wie andere lokale Speichereinheiten auf transparente Art und Weise für einen Speicher-Controller verfügbar.
  • Wie weiter oben erläutert, veranlassen die Cloud-Bereitstellungsanweisungen 301 die CPU 305 außerdem zur dynamischen Erhöhung der Speicherkapazität, indem sie nach Bedarf eine oder mehrere Speicherbänke auf Cloud-Grundlage erzeugen, um ein nahtloseres Thin Provisioning zu ermöglichen. Das der Datenverarbeitungseinheit 300 zugehörige Speichersystem kann also mit weniger lokalem physischem Speicherplatz als logischem Speicherplatz bereitgestellt werden, und zusätzlicher physischer Speicherplatz kann durch Verwendung von Speicherbänken auf Cloud-Grundlage hinzugefügt werden, die lokale Speicherbänke zu sein scheinen, wie weiter oben erläutert wird. Zum Beispiel können die Cloud-Bereitstellungsanweisungen 301 konfiguriert sein, um die CPU 305 zu veranlassen, ein Verfahren für ein Thin Provisioning unter Verwendung von Speicherbänken auf Cloud-Grundlage durchzuführen, wie in Bezug auf 4 ausführlicher beschrieben wird.
  • Zusätzlich sind die Cloud-Bereitstellungsanweisungen 303 bei manchen Ausführungsformen der vorliegenden Erfindung konfiguriert, um die CPU 305 zu veranlassen, den Speicherbänken auf Cloud-Grundlage ein Dienstniveau zuzuweisen. Bei manchen derartigen Ausführungsformen der vorliegenden Erfindung gibt es drei solcher Dienstniveaus. Allerdings können bei anderen Ausführungsformen der vorliegenden Erfindung mehrere Dienstniveaus, zwei oder auch mehr als drei Dienstniveaus bereitgestellt werden. In diesem Beispiel werden drei Dienstniveaus verwendet, und die Auswahl des Dienstniveaus erfolgt auf Grundlage der Komprimierbarkeit der gespiegelten Daten, einer entsprechenden Eingabe/Ausgabe-Datenrate für die virtuellen lokalen Speicherbänke und einer Vereinbarung zum Dienstniveau (Service Level Agreement, SLA). Wenn eine Vereinbarung zum Dienstniveau zum Beispiel eine geringe Dienstgüte angibt, die E/A-Datenrate für die virtuelle lokale Speicherbank unter einem Schwellenwert liegt und die Daten, auf die zugegriffen wird, komprimierbar sind, wird ein erstes Dienstniveau ausgewählt. Eine geringe Dienstgüte kann jede Dienstgüte unterhalb eines vordefinierten Schwellenwerts für das Dienstniveau sein. Das erste Dienstniveau ist das niedrigste Dienstniveau aus den drei Optionen in diesem Beispiel. Es kann zum Beispiel höhere Latenzen und einen geringeren Durchsatz als die beiden anderen Dienstniveaus umfassen. Wenn die Vereinbarung zum Dienstniveau eine geringe Dienstgüte angibt, die E/A-Datenrate für die virtuelle lokale Speicherbank unter einem Schwellenwert liegt und die Daten nicht komprimierbar sind, wird das zweite Dienstniveau ausgewählt. Das zweite Dienstniveau weist einen höheren Durchsatz und/oder weniger Latenz auf als das erste Dienstniveau. Das letzte oder dritte Dienstniveau wird für alle anderen Daten verwendet (z.B. wenn die SLA ein Dienstniveau über dem vordefinierten Schwellenwert angibt und/oder die E/A-Datenrate über einem Schwellenwert liegt). Das dritte Dienstniveau weist einen höheren Durchsatz und/oder weniger Latenz als das erste und zweite Dienstniveau auf.
  • Indem verschiedene Dienstniveaus bereitgestellt werden, kann der Einheitenadapter 326 die virtuellen Speicherbänke von Cloud-Speicher nutzen, um bei der Erfüllung der Kundenanforderungen an Datenspeicherung und -zugriff eine größere Flexibilität bereitzustellen. Obwohl das erste, zweite und dritte Beispielniveau mit Blick auf Latenz und Durchsatz als unterschiedlich beschrieben werden, ist darauf hinzuweisen, dass zur Unterscheidung der Dienstniveaus auch andere Faktoren herangezogen werden können. Zum Beispiel weisen bei manchen Ausführungsformen der vorliegenden Erfindung die drei Dienstniveaus dieselbe Latenz und denselben Durchsatz, aber unterschiedliche Kosten- und Redundanzniveaus auf.
  • 4 ist ein Ablaufplan, der ein Verfahren 400 für ein Thin Provisioning unter Verwendung von Speicherbänken auf Cloud-Grundlage darstellt. Das Verfahren 400 kann durch einen Einheitenadapter wie z.B. die Einheitenadapter 226 oder durch einen Speicher-Controller wie z.B. die Speicher-Controller 222 realisiert sein. Zum Beispiel kann das Verfahren 400 durch eine CPU wie z.B. die CPU 305 in der Datenverarbeitungseinheit 300 realisiert sein, die Anweisungen wie z.B. die Cloud-Bereitstellungsanweisungen 301 ausführt. Dabei sollte klar sein, dass die Reihenfolge von Aktionen in dem Beispielverfahren 400 zu Erläuterungszwecken bereitgestellt wird und dass das Verfahren bei anderen Ausführungsformen der vorliegenden Erfindung in einer anderen Reihenfolge durchgeführt werden kann. Entsprechend versteht sich von selbst, dass bei anderen Ausführungsformen der vorliegenden Erfindung manche Aktionen weggelassen oder zusätzliche Aktionen hinzugefügt werden können.
  • In Block 402 wird eine Gesamtmenge an ungenutztem physischem Speicherplatz für alle aus der Mehrzahl von lokalen Speicherbänken ermittelt, die einem Speicher-Controller zugehörig sind. Dies lässt sich als die Differenz zwischen der Gesamtspeicherkapazität und der Gesamtmenge an ungenutztem Speicherplatz ermitteln.
  • In Block 404 wird die Gesamtmenge an ungenutztem physischem Speicherplatz mit einem ersten Schwellenwert verglichen. Bei manchen Ausführungsformen wird der erste Schwellenwert im Vorhinein festgelegt oder definiert. Zum Beispiel kann bei manchen Ausführungsformen der vorliegenden Erfindung der erste Schwellenwert als ein Prozentsatz der Gesamtspeicherkapazität definiert werden, z.B. 50 %, 70 % usw. Bei anderen Ausführungsformen der vorliegenden Erfindung kann der erste Schwellenwert als eine spezifische Speichermenge definiert werden, z.B. 10 Gigabytes (GB), 100 GB usw.
  • In Block 406 wird auf Grundlage des Vergleichs ermittelt, ob die Gesamtmenge an ungenutztem physischem Speicher kleiner als der erste Schwellenwert ist. Wenn die Gesamtmenge an ungenutztem physischem Speicherplatz kleiner als der erste Schwellenwert ist, werden in Block 408 eine oder mehrere Speicherbänke auf Cloud-Grundlage erzeugt. Jede Speicherbank auf Cloud-Grundlage weist Speicherplatz in einer oder mehreren Cloud-Speichereinheiten auf. Der Speicherplatz in der einen oder den mehreren Cloud-Speichereinheiten wird auf entsprechende virtuelle lokale Adressen abgebildet, die - wie oben erläutert - als eine virtuelle lokale Speicherbank gruppiert werden. Wie hier verwendet, handelt es sich bei Cloud-Speichereinheiten zudem um Speichereinheiten, auf die nicht über ein lokales Netzwerk oder eine direkte Datenübertragungsleitung, sondern über ein Weitverkehrsnetzwerk wie z.B. das Internet zugegriffen wird.
  • Ein Erzeugen der einen oder der mehreren neuen Speicherbänke auf Cloud-Grundlage umfasst ein Zuordnen von Speicherplatz in einer oder mehreren entsprechenden Cloud-Speichereinheiten über eine Cloud-Schnittstelle. Eine Cloud-Schnittstelle ist eine Schnittstelle, die konfiguriert ist, um einen Zugriff auf die Cloud-Speichereinheiten zu ermöglichen. Zum Beispiel kann die Cloud-Schnittstelle als eine Anwendungsprogrammschnittstelle (Application Programming Interface, API) realisiert sein. Beispiel-Cloud-Schnittstellen werden weiter oben erläutert. Ein Zuordnen des Cloud-Speicher kann ein Anfordern einer angegebenen Menge an Speicher über die Cloud-Schnittstelle umfassen.
  • Ein Erzeugen der neuen Speicherbänke auf Cloud-Grundlage umfasst des Weiteren ein Abbilden des zugeordneten Speicherplatzes auf entsprechende virtuelle lokale Adressen. Zum Beispiel weist bei manchen Ausführungsformen der vorliegenden Erfindung der Einheitenadapter oder Speicher-Controller den zugeordneten Speicherplatz entsprechenden virtuellen lokalen Adressen zu. Wie hier verwendet, ist eine virtuelle lokale Adresse eine Arbeitsspeicheradresse, die eine Adresse einer Speichereinheit zu sein scheint, welche über eine lokale Verbindung mit dem Einheitenadapter verbunden ist. Eine lokale Verbindung bezieht sich auf eine Verbindung, die nicht über ein Weitverkehrsnetzwerk oder ein entfernt angeordnetes Netzwerk wie beispielsweise das Internet hergestellt wird.
  • Ein Erzeugen der neuen Speicherbänke auf Cloud-Grundlage umfasst des Weiteren ein Gruppieren der virtuellen lokalen Adressen als virtuelle lokale Speicherbänke. Zum Beispiel ist der Einheitenadapter oder Speicher-Controller konfiguriert, um die virtuellen lokalen Adressen so zu gruppieren, dass sie als eine lokale RAID-Anordnung von Speichereinheiten direkt mit dem Einheitenadapter verbunden zu sein scheinen.
  • In Block 410 werden Daten in die neuen Speicherbänke auf Cloud-Grundlage geschrieben. Bei manchen Ausführungsformen der vorliegenden Erfindung kann ein Schreiben von Daten in die neuen Speicherbänke auf Cloud-Grundlage ein Umwandeln der Zugriffsanforderung in eine Cloud-Datenzugriffsanforderung umfassen, die für eine Anwendungsprogrammschnittstelle (API) konfiguriert ist, die der einen oder den mehreren Cloud-Speichereinheiten der einen oder der mehreren Speicherbänke auf Cloud-Grundlage entspricht und die Cloud-Datenzugriffsanforderungen über die Cloud-Schnittstelle an die eine oder die mehreren entsprechenden Cloud-Speichereinheiten überträgt.
  • Darüber hinaus weist bei manchen Ausführungsformen der vorliegenden Erfindung ein Schreiben der Daten in die neuen Speicherbänke auf Cloud-Grundlage ein Verschieben von Daten, die vor einem Erzeugen der einen oder der mehreren Speicherbänke auf Cloud-Grundlage in der Mehrzahl von lokalen Speicherbänken gespeichert werden, in die neuen Speicherbänke auf Cloud-Grundlage auf. Verschiedene Algorithmen können verwendet werden, um zu entscheiden, welche Daten in die Speicherbänke auf Cloud-Grundlage verschoben werden sollen. Zum Beispiel werden bei manchen Ausführungsformen der vorliegenden Erfindung Daten mit seltenem Zugriff verschoben, während Daten mit häufigem Zugriff in den lokalen Speicherbänken verbleiben. Bei manchen solchen Ausführungsformen werden neue Daten, die nach einem Erzeugen der einen oder der mehreren Speicherbänke auf Cloud-Grundlage geschrieben werden, in die Mehrzahl von lokalen Speicherbänken geschrieben.
  • Bei manchen Ausführungsformen der vorliegenden Erfindung weist ein Schreiben von Daten in die neuen Speicherbänke auf Cloud-Grundlage ein Speichern von neuen Daten, die nach einem Erzeugen der Speicherbänke auf Cloud-Grundlage geschrieben werden, in den neuen Speicherbänken auf Cloud-Grundlage auf. Somit werden bei manchen derartigen Ausführungsformen der vorliegenden Erfindung neue Daten nicht in die lokalen Speicherbänke, sondern in die Speicherbänke auf Cloud-Grundlage geschrieben. Daher müssen bei manchen derartigen Ausführungsformen der vorliegenden Erfindung in den lokalen Speicherbänken gespeicherte Daten nicht in die Speicherbänke auf Cloud-Grundlage verschoben werden.
  • In Block 412 wird ermittelt, ob eine Gesamtmenge an freiem Platz in der Mehrzahl von lokalen Speicherbänken nach dem Erzeugen der Speicherbänke auf Cloud-Grundlage größer als ein zweiter Schwellenwert ist. Bei manchen Ausführungsformen der vorliegenden Erfindung ist der zweite Schwellenwert vorgegeben. Zusätzlich ist der zweite Schwellenwert bei manchen Ausführungsformen der vorliegenden Erfindung gleich dem ersten Schwellenwert. Das heißt, dass bei manchen Ausführungsformen der vorliegenden Erfindung der zweite und erste Schwellenwert auf denselben Wert gesetzt werden. Bei anderen Ausführungsformen der vorliegenden Erfindung werden der erste und zweite Schwellenwert auf jeweils unterschiedliche Werte gesetzt. Im Besonderen entspricht bei manchen Ausführungsformen der vorliegenden Erfindung der zweite Schwellenwert mehr freiem oder ungenutztem Platz in den lokalen Speicherbänken als der erste Schwellenwert. Zum Beispiel kann der erste Schwellenwert bei manchen Ausführungsformen der vorliegenden Erfindung so gesetzt werden, dass er 75 % genutztem/25 % ungenutztem physischem Speicherplatz entspricht, während der zweite Schwellenwert so gesetzt wird, dass er 50 % genutztem/50 % ungenutztem Speicherplatz entspricht. Auf diese Weise kann der Speicher-Controller oder Einheitenadapter ein Hin- und Herwechseln zwischen der Verwendung der Speicherbänke auf Cloud-Grundlage verhindern, wenn sich die genutzten Daten um den ersten Schwellenwert bewegen.
  • Darüber hinaus bezieht sich die in Block 412 ermittelte Gesamtmenge an freiem Platz auf die Menge an freiem Platz, die verfügbar wäre, wenn die Speicherbänke auf Cloud-Grundlage nicht genutzt würden. Zum Beispiel kann die Gesamtmenge an freiem Platz ermittelt werden, in dem die Menge an genutztem Platz in den Speicherbänken auf Cloud-Grundlage von dem ungenutzten Platz in den lokalen Speicherbänken subtrahiert wird. Entsprechend kann die Gesamtmenge an freiem Platz in Block 412 ermittelt werden, indem eine Gesamtmenge an genutztem Speicherplatz für die Mehrzahl von lokalen Speicherbänken und die Speicherbänke auf Cloud-Grundlage ermittelt wird und anschließend eine Differenz zwischen der Gesamtkapazität der lokalen Speicherbänke (d.h. die Gesamtmenge an Speicherplatz für die lokalen Speicherbänke) und der Gesamtmenge des genutzten Speicherplatzes für die lokalen Speicherbänke und die Speicherbänke auf Cloud-Grundlage ermittelt wird.
  • Die Menge an ungenutztem oder freiem Platz nach der Erzeugung der Speicherbänke auf Cloud-Grundlage kann sich erhöhen, wenn Daten gelöscht werden. Zum Beispiel werden Daten häufig erzeugt und wachsen so im Laufe der Zeit an, bis ein Bereinigungsjob durchgeführt wird und nicht benötigte Daten gelöscht werden. Dies kann eine manuelle Löschung durch einen Benutzer sein. Es kann jedoch auch eine Funktion sein, die Teil der fortschrittlichen Verwaltungsmerkmale des Speichersystems ist, die sowohl für die lokalen Speicherbänke als auch für die Speicherbänke auf Cloud-Grundlage verfügbar sind, wie beispielsweise die oben erläuterten Merkmale. Indem die nicht benötigten Daten gelöscht werden, wird Speicherplatz verfügbar gemacht oder freigegeben.
  • Wenn in Block 412 ermittelt wird, dass der freie Gesamtplatz in den lokalen Speicherbänken größer als der zweite Schwellenwert ist, werden in Block 414 Daten von den Speicherbänken auf Cloud-Grundlage in die lokalen Speicherbänke verschoben. Wenn in Block 414 alle Daten von den Speicherbänken auf Cloud-Grundlage in die lokalen Speicherbänke zurückverschoben werden, können die Speicherbänke auf Cloud-Grundlage in Block 416 optional entfernt oder gelöscht werden. Ein Löschen der Speicherbänke auf Cloud-Grundlage umfasst, die Zuordnung des Speicherplatzes aufzuheben und entsprechende Einträge in der Abbildtabelle zu löschen. Auf diese Weise können die Speicherbänke auf Cloud-Grundlage entsprechend dem Speicherplatzbedarf dynamisch erzeugt und gelöscht werden.
  • Wie oben erwähnt, wird die Reihenfolge von Aktionen in dem Beispielverfahren 400 zu Erläuterungszwecken bereitgestellt, und bei anderen Ausführungsformen der vorliegenden Erfindung kann das Verfahren 400 in einer anderen Reihenfolge durchgeführt werden und/oder manche Aktionen können weggelassen oder zusätzliche Aktionen können hinzugefügt werden. Entsprechend versteht sich von selbst, dass bei anderen Ausführungsformen der vorliegenden Erfindung manche Aktionen weggelassen oder zusätzliche Aktionen hinzugefügt werden können. Bei manchen Ausführungsformen der vorliegenden Erfindung wird der Block 416 weggelassen. Bei solchen Ausführungsformen der vorliegenden Erfindung werden die Speicherbänke auf Cloud-Grundlage auch dann nicht gelöscht, wenn in einer oder mehreren der Speicherbänke auf Cloud-Grundlage keine Daten mehr verbleiben, nachdem Daten in eine oder mehrere der lokalen RAID-Anordnungen verlagert wurden. Zusätzlich sollte klar sein, dass die oben beschriebenen Handlungen nicht nacheinander durchgeführt werden müssen.
  • Bei den Ausführungsformen vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt mit einem beliebigen möglichen Grad an technischer Integration handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) umfassen, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert sind, um einen Prozessor dazu zu veranlassen, Aspekte von Ausführungsformen der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch eine Anweisungsausführungseinheit behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Compact-Disc-Nur-Lese-Speicher (CD-ROM), eine DVD (Digital Versatile Disc), ein Speicher-Stick, eine Diskette, eine mechanisch kodierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. durch ein Lichtwellenleiterkabel geleitete Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetzwerk und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten von Ausführungsformen der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction Set Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandseinstellende Daten, Konfigurationsdaten für eine integrierte Schaltung oder sowohl um Quellcode als auch um Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können 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 entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten 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 Weitverkehrsnetzwerk (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). Bei einigen Ausführungsformen der vorliegenden Erfindung können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, im Feld programmierbare Gatter-Anordnungen (FPGA, Field Programmable Gate Arrays) oder programmierbare Logikanordnungen (PLA, Programmable Logic Arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte von Ausführungsformen der vorliegenden Erfindung durchzuführen.
  • Aspekte von Ausführungsformen der vorliegenden Erfindung werden hier unter Bezugnahme auf Darstellungen von Ablaufplänen und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten 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 mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem 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 durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder angegebenen Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen durch einen Computer umgesetzten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
  • 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 von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. 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 Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • BEISPIELE
  • Beispiel 1 umfasst ein durch einen Computer realisiertes Verfahren für ein Thin Provisioning unter Verwendung von Speicherbänken auf Cloud-Grundlage. Das Verfahren weist ein Ermitteln einer Gesamtmenge an ungenutztem physischem Speicherplatz für alle aus einer Mehrzahl von lokalen Speicherbänken, die einem Speicher-Controller zugehörig sind; ein Vergleichen der Gesamtmenge an ungenutztem physischem Speicherplatz mit einem ersten Schwellenwert; und ein Erzeugen einer oder mehrerer Speicherbänke auf Cloud-Grundlage als Reaktion auf ein Ermitteln auf, dass die Gesamtmenge an ungenutztem physischem Speicherplatz kleiner als der erste Schwellenwert ist, wobei eine oder mehrere Speicherbänken auf Cloud-Grundlage erzeugt werden. Ein Erzeugen einer jeden der einen oder der mehreren Speicherbänke auf Cloud-Grundlage weist ein Zuordnen von Speicherplatz in einer oder mehreren entsprechenden Cloud-Speichereinheiten über eine Cloud-Schnittstelle; ein Abbilden des zugeordneten Speicherplatzes auf die entsprechenden virtuellen lokalen Adressen; und ein Gruppieren der virtuellen lokalen Adressen als eine virtuelle lokale Speicherbank auf, die dem Speicher-Controller zugehörig ist.
  • Beispiel 2 umfasst das Verfahren aus Beispiel 1, des Weiteren aufweisend ein Speichern von neuen Daten, die nach einem Erzeugen der einen oder der mehreren Speicherbänke auf Cloud-Grundlage geschrieben werden, in der einen oder den mehreren Speicherbänken auf Cloud-Grundlage.
  • Beispiel 3 umfasst das Verfahren aus einem beliebigen der Beispiele 1 und 2, des Weiteren aufweisend ein Verschieben von Daten, die vor einem Erzeugen der einen oder der mehreren Speicherbänke auf Cloud-Grundlage in der Mehrzahl von lokalen Speicherbänken gespeichert werden, in die eine oder die mehreren Speicherbänke auf Cloud-Grundlage; und ein Speichern neuer Daten, die nach einem Erzeugen der einen oder der mehreren Speicherbänke auf Cloud-Grundlage geschrieben werden, in der Mehrzahl von lokalen Speicherbänken.
  • Beispiel 4 umfasst das Verfahren aus einem beliebigen der Beispiele 1 bis 3, des Weiteren aufweisend ein Umwandeln von lokalen Datenzugriffsanforderungen für eine der Speicherbänke auf Cloud-Grundlage in Cloud-Datenzugriffsanforderungen, die für die Cloud-Schnittstelle konfiguriert sind; und ein Übertragen der Cloud-Datenzugriffsanforderungen über die Cloud-Schnittstelle an die eine oder die mehreren entsprechenden Cloud-Speichereinheiten.
  • Beispiel 5 umfasst das Verfahren aus einem beliebigen der Beispiele 1 bis 4, des Weiteren aufweisend ein Ermitteln einer Gesamtmenge an genutztem Speicherplatz für die Mehrzahl von lokalen Speicherbänken und die eine oder die mehreren Speicherbänke auf Cloud-Grundlage; ein Ermitteln einer Differenz zwischen einer Gesamtmenge an Speicherplatz für die Mehrzahl von lokalen Speicherbänken und der ermittelten Gesamtmenge an genutztem Speicherplatz; und ein Verschieben von Daten von der einen oder den mehreren Speicherbänken auf Cloud-Grundlage in die Mehrzahl von lokalen Speicherbänken als Reaktion auf ein Ermitteln, dass die Differenz größer als ein zweiter Schwellenwert ist.
  • Beispiel 6 umfasst das Verfahren aus Beispiel 5, wobei sich der erste Schwellenwert von dem zweiten Schwellenwert unterscheidet.
  • Beispiel 7 umfasst das Verfahren aus einem beliebigen der Beispiele 5 und 6, des Weiteren aufweisend ein Entfernen der einen oder der mehreren Speicherbänke auf Cloud-Grundlage, nachdem alle Daten von der einen oder den mehreren Speicherbänken auf Cloud-Grundlage in die Mehrzahl von lokalen Speicherbänken verschoben wurden.
  • Beispiel 8 umfasst ein Speichersystem. Das Speichersystem weist einen Host-Adapter mit einem oder mehreren Anschlüssen auf, die konfiguriert sind, um den Host-Adapter mit einer oder mehreren Host-Einheiten kommunikativ zu koppeln; einen Speicher-Controller, der einen Prozessor und einen Arbeitsspeicher aufweist, wobei der Speicher-Controller mit dem Host kommunikativ gekoppelt ist; und einen Einheitenadapter, der einen Prozessor und einen Arbeitsspeicher aufweist, wobei der Einheitenadapter mit dem Speicher-Controller kommunikativ gekoppelt ist. Der Einheitenadapter weist des Weiteren eine Mehrzahl von Anschlüssen, die mit einer Mehrzahl von lokalen Speicherlaufwerken kommunikativ gekoppelt sind, und mindestens einen Netzwerkanschluss auf, der über ein Netzwerk mit einer Mehrzahl von Cloud-Speichereinheiten kommunikativ gekoppelt ist. Entweder der Einheitenadapter oder der Speicher-Controller ist des Weiteren konfiguriert, um ein Cloud-Bereitstellungsmodul zu realisieren. Das Cloud-Bereitstellungsmodul ist konfiguriert, um eine oder mehrere Speicherbänke auf Cloud-Grundlage als Reaktion auf eine Ermittlung zu erzeugen, dass eine Gesamtmenge an ungenutztem physischem Speicherplatz auf der Mehrzahl von lokalen Speicherlaufwerken kleiner als ein erster vorgegebener Schwellenwert ist. Um eine jede der einen oder der mehreren Speicherbänke auf Cloud-Grundlage zu erzeugen, ist das Cloud-Bereitstellungsmodul konfiguriert, um Speicherplatz in einer oder mehreren entsprechenden Cloud-Speichereinheiten über eine Cloud-Schnittstelle zuzuordnen; den zugeordneten Speicherplatz entsprechenden virtuellen lokalen Adressen zuzuweisen; und die zugewiesenen virtuellen lokalen Adressen in einer entsprechenden virtuellen lokalen RAID-Anordnung zu organisieren, die dem Speicher-Controller zugehörig ist.
  • Beispiel 9 umfasst das Speichersystem aus Beispiel 8, wobei das Cloud-Bereitstellungsmodul des Weiteren konfiguriert ist, um neue Daten, die nach einem Erzeugen der einen oder der mehreren Speicherbänke auf Cloud-Grundlage geschrieben werden, in der einen oder den mehreren Speicherbänken auf Cloud-Grundlage zu speichern.
  • Beispiel 10 umfasst das Speichersystem aus einem beliebigen der Beispiele 8 und 9, wobei das Cloud-Bereitstellungsmodul des Weiteren konfiguriert ist, um Daten, die vor einem Erzeugen der einen oder der mehreren Speicherbänke auf Cloud-Grundlage auf der Mehrzahl von lokalen Speicherlaufwerken gespeichert werden, in die eine oder die mehreren Speicherbänke auf Cloud-Grundlage zu verschieben; und neue Daten, die nach einem Erzeugen der einen oder der mehreren Speicherbänke auf Cloud-Grundlage geschrieben werden, auf der Mehrzahl von lokalen Speicherlaufwerken zu speichern.
  • Beispiel 11 umfasst das Speichersystem aus einem beliebigen der Beispiele 8 bis 10, wobei das Cloud-Bereitstellungssystem des Weiteren konfiguriert ist, um lokale Datenzugriffsanforderungen für eine der Speicherbänke auf Cloud-Grundlage in Cloud-Datenzugriffsanforderungen umzuwandeln, die für die Cloud-Schnittstelle konfiguriert sind; und die Cloud-Datenzugriffsanforderungen über die Cloud-Schnittstelle an die eine oder die mehreren entsprechenden Cloud-Speichereinheiten zu übertragen.
  • Beispiel 12 umfasst das Speichersystem aus einem beliebigen der Beispiele 8 bis 11, wobei das Cloud-Bereitstellungssystem des Weiteren konfiguriert ist, um eine Gesamtmenge an genutztem Speicherplatz für die Mehrzahl von lokalen Speicherlaufwerken und die eine oder die mehreren Speicherbänke auf Cloud-Grundlage zu ermitteln; eine Differenz zwischen einer Gesamtmenge an Speicherplatz für die Mehrzahl von lokalen Speicherlaufwerken und der ermittelten Gesamtmenge an genutztem Speicherplatz zu ermitteln; und als Reaktion auf ein Ermitteln, dass die Differenz größer als ein zweiter vorgegebener Schwellenwert ist, Daten von der einen oder den mehreren Speicherbänken auf Cloud-Grundlage auf die Mehrzahl von lokalen Speicherlaufwerken zu verschieben.
  • Beispiel 13 umfasst das Speichersystem aus Beispiel 12, wobei sich der erste vorgegebene Schwellenwert von dem zweiten vorgegebenen Schwellenwert unterscheidet.
  • Beispiel 14 umfasst das Speichersystem aus einem beliebigen der Beispiele 12 und 13, wobei das Cloud-Bereitstellungssystem des Weiteren konfiguriert ist, um die eine oder die mehreren Speicherbänke auf Cloud-Grundlage zu entfernen, nachdem alle Daten von der einen oder den mehreren Speicherbänken auf Cloud-Grundlage auf die Mehrzahl von lokalen Speicherlaufwerken verschoben wurden.
  • Beispiel 15 umfasst ein Computerprogrammprodukt, aufweisend ein durch einen Computer lesbares Speichermedium mit einem darin gespeicherten, durch einen Computer lesbaren Programm. Das durch einen Computer lesbare Programm veranlasst bei Ausführung durch einen Prozessor den Prozessor, eine Gesamtmenge an ungenutztem physischem Speicherplatz für alle aus einer Mehrzahl von lokalen redundanten Anordnungen von unabhängigen Festplatten (RAID-Anordnungen) zu ermitteln, die einem Speicher-Controller zugehörig sind; die Gesamtmenge an ungenutztem physischem Speicherplatz mit einem ersten vorgegebenen Schwellenwert zu vergleichen; und eine oder mehrere Speicherbänke auf Cloud-Grundlage als Reaktion auf ein Ermitteln zu erzeugen, dass die Gesamtmenge an ungenutztem physischem Speicherplatz kleiner als der erste vorgegebene Schwellenwert ist. Zum Erzeugen einer jeden der einen oder der mehreren Speicherbänke auf Cloud-Grundlage ist das durch einen Computer lesbare Programm konfiguriert, um den Prozessor zu veranlassen, Speicherplatz in einer oder mehreren entsprechenden Cloud-Speichereinheiten über eine Cloud-Schnittstelle zuzuordnen; den zugeordneten Speicherplatz entsprechenden virtuellen lokalen Adressen zuzuweisen; und die zugewiesenen virtuellen lokalen Adressen in einer entsprechenden virtuellen lokalen RAID-Anordnung zu organisieren, die dem Speicher-Controller zugehörig ist.
  • Beispiel 16 umfasst das Computerprogrammprodukt aus Beispiel 15, wobei das durch einen Computer lesbare Programm des Weiteren konfiguriert ist, um den Prozessor zu veranlassen, neue Daten, die nach einem Erzeugen der einen oder der mehreren Speicherbänke auf Cloud-Grundlage geschrieben werden, in der einen oder den mehreren Speicherbänken auf Cloud-Grundlage zu speichern.
  • Beispiel 17 umfasst das Computerprogrammprodukt aus einem beliebigen der Beispiele 15 und 16, wobei das durch einen Computer lesbare Programm des Weiteren konfiguriert ist, um den Prozessor zu veranlassen, Daten, die vor einem Erzeugen der einen oder der mehreren Speicherbänke auf Cloud-Grundlage in der Mehrzahl von lokalen RAID-Anordnungen gespeichert werden, in die eine oder die mehreren Speicherbänke auf Cloud-Grundlage zu verschieben; und neue Daten, die nach einem Erzeugen der einen oder der mehreren Speicherbänke auf Cloud-Grundlage geschrieben werden, in der Mehrzahl von lokalen RAID-Anordnungen zu speichern.
  • Beispiel 18 umfasst das Computerprogrammprodukt aus einem beliebigen der Beispiele 15 bis 17, wobei das durch einen Computer lesbare Programm des Weiteren konfiguriert ist, um den Prozessor zu veranlassen, eine Gesamtmenge an genutztem Speicherplatz für die Mehrzahl von lokalen RAID-Anordnungen und die eine oder die mehreren Speicherbänke auf Cloud-Grundlage zu ermitteln; eine Differenz zwischen einer Gesamtmenge an Speicherplatz für die Mehrzahl von lokalen RAID-Anordnungen und der ermittelten Gesamtmenge an genutztem Speicherplatz zu ermitteln; und als Reaktion auf ein Ermitteln, dass die Differenz größer als ein zweiter vorgegebener Schwellenwert ist, Daten von der einen oder den mehreren Speicherbänken auf Cloud-Grundlage in die Mehrzahl von lokalen RAID-Anordnungen zu verschieben.
  • Beispiel 19 umfasst das Computerprogrammprodukt aus Beispiel 18, wobei das durch einen Computer lesbare Programm des Weiteren konfiguriert ist, um den Prozessor zu veranlassen, die eine oder die mehreren Speicherbänke auf Cloud-Grundlage zu entfernen, nachdem alle Daten von der einen oder den mehreren Speicherbänken auf Cloud-Grundlage in die Mehrzahl von lokalen RAID-Anordnungen verschoben wurden.
  • Beispiel 20 umfasst das Computerprogrammprodukt aus einem beliebigen der Beispiele 15 bis 19, wobei das durch einen Computer lesbare Programm des Weiteren konfiguriert ist, um den Prozessor zu veranlassen, lokale Datenzugriffsanforderungen für die eine oder die mehreren virtuellen lokalen RAID-Anordnungen entsprechend den Anforderungen einer Anwendungsprogrammschnittstelle (API) der Cloud-Schnittstelle in Cloud-Datenzugriffsanforderungen umzuwandeln.
  • Beispiel 21 umfasst eine Datenverarbeitungseinheit. Die Datenverarbeitungseinheit weist einen Netzwerkadapter, der konfiguriert ist, um die Datenverarbeitungseinheit über ein Netzwerk mit einer oder mehreren Cloud-Speichereinheiten kommunikativ zu koppeln; ein Speichermedium, das konfiguriert ist, um Daten zu speichern; und einen Prozessor auf, der mit dem Netzwerkadapter und dem Speichermedium kommunikativ gekoppelt ist. Der Prozessor ist konfiguriert, um eine Gesamtmenge an ungenutztem physischem Speicherplatz für alle aus einer Mehrzahl von lokalen Speicherbänken zu ermitteln; die Gesamtmenge an ungenutztem physischem Speicherplatz mit einem ersten Schwellenwert zu vergleichen; und eine oder mehrere Speicherbänke auf Cloud-Grundlage als Reaktion auf ein Ermitteln zu erzeugen, dass die Gesamtmenge an ungenutztem physischem Speicherplatz kleiner als der erste Schwellenwert ist. Um die eine oder die mehreren Speicherbänke auf Cloud-Grundlage zu erzeugen, ist der Prozessor konfiguriert, um Speicherplatz in einer oder mehreren Cloud-Speichereinheiten über eine Anwendungsprogrammschnittstelle (API) zuzuordnen, die der einen oder den mehreren Cloud-Speichereinheiten zugehörig ist; und eine Abbildtabelle zu erzeugen, die den zugeordneten Speicherplatz auf entsprechende virtuelle lokale Adressen abbildet und die virtuellen lokalen Adressen gruppiert, um eine entsprechende virtuelle lokale Speicherbank aus dem zugeordneten Speicherplatz in der einen oder den mehreren Cloud-Speichereinheiten zu bilden, wobei die Abbildtabelle in dem Speichermedium gespeichert ist.
  • Beispiel 22 umfasst die Datenverarbeitungseinheit aus Beispiel 21, wobei der Prozessor des Weiteren konfiguriert ist, um Daten, die vor einem Erzeugen der einen oder der mehreren Speicherbänke auf Cloud-Grundlage in der Mehrzahl von lokalen Speicherbänken gespeichert werden, in die eine oder die mehreren Speicherbänke auf Cloud-Grundlage zu verschieben; und neue Daten, die nach einem Erzeugen der einen oder der mehreren Speicherbänke auf Cloud-Grundlage geschrieben werden, in der Mehrzahl von lokalen Speicherbänken zu speichern.
  • Beispiel 23 umfasst die Datenverarbeitungseinheit aus einem beliebigen der Beispiele 21 und 22, wobei der Prozessor des Weiteren konfiguriert ist, um eine anschließende Gesamtmenge an ungenutztem Speicherplatz für die Mehrzahl von lokalen Speicherbänken zu ermitteln, nachdem die eine oder die mehreren Speicherbänke auf Cloud-Grundlage erzeugt wurden; eine Differenz zwischen der anschließenden Gesamtmenge an ungenutztem Speicherplatz und einer Gesamtmenge an genutztem Speicherplatz in der einen oder den mehreren Speicherbänken auf Cloud-Grundlage zu ermitteln; und Daten von der einen oder den mehreren Speicherbänken auf Cloud-Grundlage in die Mehrzahl von lokalen Speicherbänken als Reaktion auf ein Ermitteln zu verschieben, dass die Differenz größer als ein zweiter Schwellenwert ist.
  • Beispiel 24 umfasst die Datenverarbeitungseinheit aus Beispiel 23, wobei sich der erste Schwellenwert von dem zweiten Schwellenwert unterscheidet.
  • Beispiel 25 umfasst die Datenverarbeitungseinheit aus einem beliebigen der Beispiele 23 und 24, wobei der Prozessor des Weiteren konfiguriert ist, um die eine oder die mehreren Speicherbänke auf Cloud-Grundlage zu entfernen, nachdem alle Daten von der einen oder den mehreren Speicherbänken auf Cloud-Grundlage in die Mehrzahl von lokalen Speicherbänken verschoben wurden.
  • Obwohl hier spezifische Ausführungsformen der vorliegenden Erfindung veranschaulicht und beschrieben wurden, sollte für den Fachmann offensichtlich sein, dass anstelle der gezeigten spezifischen Ausführungsformen der vorliegenden Erfindung jede Anordnung verwendet werden kann, die zur Erfüllung desselben Zwecks dient. Es ist somit ausdrücklich beabsichtigt, dass diese Erfindung ausschließlich durch die Ansprüche und deren Entsprechungen beschränkt wird.

Claims (22)

  1. Durch einen Computer realisiertes Verfahren, aufweisend: ein Ermitteln einer Gesamtmenge an ungenutztem physischem Speicherplatz für alle aus einer Mehrzahl von lokalen Speicherbänken, die einem Speicher-Controller zugehörig sind; ein Vergleichen der Gesamtmenge an ungenutztem physischem Speicherplatz mit einem ersten Schwellenwert; als Reaktion auf ein Ermitteln, dass die Gesamtmenge an ungenutztem physischem Speicherplatz kleiner als der erste Schwellenwert ist, ein Erzeugen einer oder mehrerer Speicherbänke auf Cloud-Grundlage; wobei das Erzeugen einer jeden der einen oder der mehreren Speicherbänke auf Cloud-Grundlage aufweist: ein Zuordnen von Speicherplatz in einer oder mehreren entsprechenden Cloud-Speichereinheiten über eine Cloud-Schnittstelle; ein Abbilden des zugeordneten Speicherplatzes auf entsprechende virtuelle lokale Adressen; und ein Gruppieren der virtuellen lokalen Adressen als eine virtuelle lokale Speicherbank, die dem Speicher-Controller zugehörig ist.
  2. Durch einen Computer realisiertes Verfahren nach Anspruch 1, des Weiteren aufweisend ein Speichern von neuen Daten, die nach einem Erzeugen der einen oder der mehreren Speicherbänke auf Cloud-Grundlage geschrieben werden, in der einen oder den mehreren Speicherbänken auf Cloud-Grundlage.
  3. Durch einen Computer realisiertes Verfahren nach Anspruch 1, des Weiteren aufweisend: ein Verschieben von Daten, die vor einem Erzeugen der einen oder der mehreren Speicherbänke auf Cloud-Grundlage in der Mehrzahl von lokalen Speicherbänken gespeichert werden, in die eine oder die mehreren Speicherbänke auf Cloud-Grundlage; und ein Speichern von neuen Daten, die nach einem Erzeugen der einen oder der mehreren Speicherbänke auf Cloud-Grundlage geschrieben werden, in der Mehrzahl von lokalen Speicherbänken.
  4. Durch einen Computer realisiertes Verfahren nach Anspruch 1, des Weiteren aufweisend: ein Umwandeln von lokalen Datenzugriffsanforderungen für eine der Speicherbänke auf Cloud-Grundlage in Cloud-Datenzugriffsanforderungen, die für die Cloud-Schnittstelle konfiguriert sind; und ein Übertragen der Cloud-Datenzugriffsanforderungen über die Cloud-Schnittstelle an die eine oder die mehreren entsprechenden Cloud-Speichereinheiten.
  5. Durch einen Computer realisiertes Verfahren nach Anspruch 1, des Weiteren aufweisend: ein Ermitteln einer Gesamtmenge an ungenutztem physischem Speicherplatz für die Mehrzahl von lokalen Speicherbänken und die eine oder die mehreren Speicherbänke auf Cloud-Grundlage; ein Ermitteln einer Differenz zwischen einer Gesamtmenge an Speicherplatz für die Mehrzahl von lokalen Speicherbänken und der ermittelten Gesamtmenge an genutztem Speicherplatz; als Reaktion auf ein Ermitteln, dass die Differenz größer als ein zweiter Schwellenwert ist, ein Verschieben von Daten von der einen oder den mehreren Speicherbänken auf Cloud-Grundlage in die Mehrzahl von lokalen Speicherbänken.
  6. Durch einen Computer realisiertes Verfahren nach Anspruch 5, wobei sich der erste Schwellenwert von dem zweiten Schwellenwert unterscheidet.
  7. Durch einen Computer realisiertes Verfahren nach Anspruch 5, des Weiteren aufweisend ein Entfernen der einen oder der mehreren Speicherbänke auf Cloud-Grundlage, nachdem alle Daten von der einen oder den mehreren Speicherbänken auf Cloud-Grundlage in die Mehrzahl von lokalen Speicherbänken verschoben wurden.
  8. Speichersystem, aufweisend: einen Host-Adapter mit einem oder mehreren Anschlüssen, die konfiguriert sind, um den Host-Adapter mit einer oder mehreren Host-Einheiten kommunikativ zu koppeln; einen Speicher-Controller, der einen Prozessor und einen Arbeitsspeicher aufweist, wobei der Speicher-Controller mit dem Host kommunikativ gekoppelt ist; und einen Einheitenadapter, der einen Prozessor und einen Arbeitsspeicher aufweist, wobei der Einheitenadapter mit dem Speicher-Controller kommunikativ gekoppelt ist; wobei der Einheitenadapter des Weiteren eine Mehrzahl von Anschlüssen, die mit einer Mehrzahl von lokalen Speicherlaufwerken kommunikativ gekoppelt sind, und mindestens einen Netzwerkanschluss aufweist, der über ein Netzwerk mit einer Mehrzahl von Cloud-Speichereinheiten kommunikativ gekoppelt ist; wobei entweder der Einheitenadapter oder der Speicher-Controller des Weiteren konfiguriert ist, um ein Cloud-Bereitstellungsmodul zu realisieren, das konfiguriert ist, um: eine oder mehrere Speicherbänke auf Cloud-Grundlage als Reaktion auf eine Ermittlung zu erzeugen, dass eine Gesamtmenge an ungenutztem physischem Speicherplatz auf der Mehrzahl von lokalen Speicherlaufwerken kleiner als ein erster vorgegebener Schwellenwert ist; wobei, um eine jede der einen oder der mehreren Speicherbänke auf Cloud-Grundlage zu erzeugen, das Cloud-Bereitstellungsmodul konfiguriert ist, um: Speicherplatz in einer oder mehreren entsprechenden Cloud-Speichereinheiten über eine Cloud-Schnittstelle zuzuordnen; den zugeordneten Speicherplatz auf entsprechende virtuelle lokale Adressen abzubilden; und die virtuellen lokalen Adressen als eine virtuelle lokale Speicherbank zu gruppieren, die dem Speicher-Controller zugehörig ist.
  9. System nach Anspruch 8, wobei die virtuelle lokale Speicherbank eine virtuelle lokale RAID-Anordnung aufweist.
  10. System nach Anspruch 8, wobei das Cloud-Bereitstellungsmodul des Weiteren konfiguriert ist, um neue Daten, die nach einem Erzeugen der einen oder der mehreren Speicherbänke auf Cloud-Grundlage geschrieben werden, in der einen oder den mehreren Speicherbänken auf Cloud-Grundlage zu speichern.
  11. System nach Anspruch 8, wobei das Cloud-Bereitstellungsmodul des Weiteren konfiguriert ist, um: Daten, die vor einem Erzeugen der einen oder der mehreren Speicherbänke auf Cloud-Grundlage in der Mehrzahl von lokalen Speicherbänken gespeichert werden, in die eine oder die mehreren Speicherbänke auf Cloud-Grundlage zu verschieben; und neue Daten, die nach einem Erzeugen der einen oder der mehreren Speicherbänke auf Cloud-Grundlage geschrieben werden, in der Mehrzahl von lokalen Speicherbänken zu speichern.
  12. System nach Anspruch 8, wobei das Cloud-Bereitstellungsmodul des Weiteren konfiguriert ist, um: lokale Datenzugriffsanforderungen für eine der Speicherbänke auf Cloud-Grundlage in Cloud-Datenzugriffsanforderungen umzuwandeln, die für die Cloud-Schnittstelle konfiguriert sind; und die Cloud-Datenzugriffsanforderungen über die Cloud-Schnittstelle an die eine oder die mehreren entsprechenden Cloud-Speichereinheiten zu übertragen.
  13. System nach Anspruch 8, wobei das Cloud-Bereitstellungsmodul des Weiteren konfiguriert ist, um: eine Gesamtmenge an genutztem physischem Speicherplatz für die Mehrzahl von lokalen Speicherbänken und die eine oder die mehreren Speicherbänke auf Cloud-Grundlage zu ermitteln; eine Differenz zwischen einer Gesamtmenge an Speicherplatz für die Mehrzahl von lokalen Speicherbänken und der ermittelten Gesamtmenge an genutztem Speicherplatz zu ermitteln; als Reaktion auf ein Ermitteln, dass die Differenz größer als ein zweiter vorgegebener Schwellenwert ist, Daten von der einen oder den mehreren Speicherbänken auf Cloud-Grundlage auf die Mehrzahl von lokalen Speicherlaufwerken zu verschieben.
  14. System nach Anspruch 13, wobei sich der erste vorgegebene Schwellenwert von dem zweiten vorgegebenen Schwellenwert unterscheidet.
  15. System nach Anspruch 13, wobei das Cloud-Bereitstellungssystem des Weiteren konfiguriert ist, um die eine oder die mehreren Speicherbänke auf Cloud-Grundlage zu entfernen, nachdem alle Daten von der einen oder den mehreren Speicherbänken auf Cloud-Grundlage auf die Mehrzahl von lokalen Speicherlaufwerken verschoben wurden.
  16. Computerprogrammprodukt, aufweisend ein durch einen Computer lesbares Speichermedium mit darin enthaltenen Programmanweisungen, wobei das durch einen Computer lesbare Programm bei Ausführung durch einen Prozessor den Prozessor veranlasst: eine Gesamtmenge an ungenutztem physischem Speicherplatz für alle aus einer Mehrzahl von lokalen redundanten Anordnungen von unabhängigen Festplatten (RAID-Anordnungen) zu ermitteln, die einem Speicher-Controller zugehörig sind; die Gesamtmenge an ungenutztem physischem Speicherplatz mit einem ersten vorgegebenen Schwellenwert zu vergleichen; als Reaktion auf ein Ermitteln, dass die Gesamtmenge an ungenutztem physischem Speicherplatz kleiner als der erste vorgegebene Schwellenwert ist, eine oder mehrere Speicherbänke auf Cloud-Grundlage zu erzeugen; wobei, um eine jede der einen oder der mehreren Speicherbänke auf Cloud-Grundlage zu erzeugen, das durch einen Computer lesbare Programm konfiguriert ist, um: Speicherplatz in einer oder mehreren entsprechenden Cloud-Speichereinheiten über eine Cloud-Schnittstelle zuzuordnen; den zugeordneten Speicherplatz entsprechenden virtuellen lokalen Adressen zuzuweisen; und die zugewiesenen virtuellen lokalen Adressen in einer entsprechenden virtuellen lokalen RAID-Anordnung zu organisieren, die dem Speicher-Controller zugehörig ist.
  17. Computerprogrammprodukt nach Anspruch 16, wobei das durch einen Computer lesbare Programm des Weiteren konfiguriert ist, um den Prozessor zu veranlassen, neue Daten, die nach einem Erzeugen der einen oder der mehreren Speicherbänke auf Cloud-Grundlage geschrieben werden, in der einen oder den mehreren Speicherbänken auf Cloud-Grundlage zu speichern.
  18. Computerprogrammprodukt nach Anspruch 16, wobei das durch einen Computer lesbare Projekt des Weiteren konfiguriert ist, um den Prozessor zu veranlassen: Daten, die vor einem Erzeugen der einen oder der mehreren Speicherbänke auf Cloud-Grundlage in der Mehrzahl von lokalen RAID-Anordnungen gespeichert werden, in die eine oder die mehreren Speicherbänke auf Cloud-Grundlage zu verschieben; und neue Daten, die nach einem Erzeugen der einen oder der mehreren Speicherbänke auf Cloud-Grundlage geschrieben werden, in der Mehrzahl von lokalen RAID-Anordnungen zu speichern.
  19. Computerprogrammprodukt nach Anspruch 16, wobei das durch einen Computer lesbare Projekt des Weiteren konfiguriert ist, um den Prozessor zu veranlassen: eine Gesamtmenge an genutztem physischem Speicherplatz für die Mehrzahl von lokalen RAID-Anordnungen und die eine oder die mehreren Speicherbänke auf Cloud-Grundlage zu ermitteln; eine Differenz zwischen einer Gesamtmenge an Speicherplatz für die Mehrzahl von lokalen RAID-Anordnungen und der ermittelten Gesamtmenge an genutztem Speicherplatz zu ermitteln; als Reaktion auf ein Ermitteln, dass die Differenz größer als ein zweiter vorgegebener Schwellenwert ist, Daten von der einen oder den mehreren Speicherbänken auf Cloud-Grundlage in die Mehrzahl von lokalen RAID-Anordnungen zu verschieben.
  20. Computerprogrammprodukt nach Anspruch 19, wobei das durch einen Computer lesbare Programm des Weiteren konfiguriert ist, um den Prozessor zu veranlassen, die eine oder die mehreren Speicherbänke auf Cloud-Grundlage zu entfernen, nachdem alle Daten von der einen oder den mehreren Speicherbänken auf Cloud-Grundlage in die Mehrzahl von lokalen RAID-Anordnungen verschoben wurden.
  21. Computerprogrammprodukt nach Anspruch 15, wobei das durch einen Computer lesbare Programm des Weiteren konfiguriert ist, um den Prozessor zu veranlassen, lokale Datenzugriffsanforderungen für die eine oder die mehreren virtuellen lokalen RAID-Anordnungen entsprechend den Anforderungen einer Anwendungsprogrammschnittstelle (API) der Cloud-Schnittstelle in Cloud-Datenzugriffsanforderungen umzuwandeln.
  22. Datenverarbeitungseinheit, aufweisend: einen Netzwerkadapter, der konfiguriert ist, um die Datenverarbeitungseinheit über ein Netzwerk mit einer oder mehreren Cloud-Speichereinheiten kommunikativ zu koppeln; ein Speichermedium, das konfiguriert ist, um Daten zu speichern; und einen Prozessor, der mit dem Netzwerkadapter und dem Speichermedium kommunikativ gekoppelt ist, wobei der Prozessor konfiguriert ist, um: die Schritte eines Verfahrens nach einem beliebigen der Ansprüche 1 bis 7 durchzuführen.
DE112018005135.8T 2017-09-14 2018-08-20 Thin provisioning unter verwendung von speicherbänken auf cloud-grundlage Pending DE112018005135T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/704,712 2017-09-14
US15/704,712 US10372363B2 (en) 2017-09-14 2017-09-14 Thin provisioning using cloud based ranks
PCT/IB2018/056279 WO2019053533A1 (en) 2017-09-14 2018-08-20 FINE AND DYNAMIC ALLOCATION USING CLOUD RANKS

Publications (1)

Publication Number Publication Date
DE112018005135T5 true DE112018005135T5 (de) 2020-06-18

Family

ID=65631367

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112018005135.8T Pending DE112018005135T5 (de) 2017-09-14 2018-08-20 Thin provisioning unter verwendung von speicherbänken auf cloud-grundlage

Country Status (6)

Country Link
US (2) US10372363B2 (de)
JP (1) JP7135074B2 (de)
CN (1) CN111095189A (de)
DE (1) DE112018005135T5 (de)
GB (1) GB2580259B (de)
WO (1) WO2019053533A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10721304B2 (en) * 2017-09-14 2020-07-21 International Business Machines Corporation Storage system using cloud storage as a rank
US10372363B2 (en) 2017-09-14 2019-08-06 International Business Machines Corporation Thin provisioning using cloud based ranks
US11023179B2 (en) * 2018-11-18 2021-06-01 Pure Storage, Inc. Cloud-based storage system storage management
CN109542352B (zh) * 2018-11-22 2020-05-08 北京百度网讯科技有限公司 用于存储数据的方法和装置
US10949238B2 (en) * 2018-12-05 2021-03-16 Vmware, Inc. Decoupling compute and storage resources in cloud-based HCI (hyper-converged infrastructure)
US12019882B2 (en) * 2021-11-15 2024-06-25 VMware LLC Force provisioning virtual objects in degraded stretched clusters

Family Cites Families (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978892A (en) * 1996-05-03 1999-11-02 Digital Equipment Corporation Virtual memory allocation in a virtual address space having an inaccessible gap
US6269431B1 (en) 1998-08-13 2001-07-31 Emc Corporation Virtual storage and block level direct access of secondary storage for recovery of backup data
US7028158B1 (en) 2001-11-02 2006-04-11 Beatty And Company Computing, Inc. Storage virtualization engine
US6996741B1 (en) * 2001-11-15 2006-02-07 Xiotech Corporation System and method for redundant communication between redundant controllers
KR100525545B1 (ko) * 2003-06-25 2005-10-31 엘지이노텍 주식회사 질화물 반도체 발광소자 및 그 제조방법
US7225211B1 (en) 2003-12-31 2007-05-29 Veritas Operating Corporation Multi-class storage mechanism
US7590599B2 (en) 2006-12-22 2009-09-15 International Business Machines Corporation System and method of automatically maintaining and recycling software components
US7680982B2 (en) * 2007-02-20 2010-03-16 International Business Machines Corporation Preservation of cache data following failover
US8250215B2 (en) * 2008-08-12 2012-08-21 Sap Ag Method and system for intelligently leveraging cloud computing resources
US9870541B2 (en) 2008-11-26 2018-01-16 Red Hat, Inc. Service level backup using re-cloud network
US9614924B2 (en) 2008-12-22 2017-04-04 Ctera Networks Ltd. Storage device and method thereof for integrating network attached storage with cloud storage services
US8578076B2 (en) 2009-05-01 2013-11-05 Citrix Systems, Inc. Systems and methods for establishing a cloud bridge between virtual storage resources
US20100333116A1 (en) 2009-06-30 2010-12-30 Anand Prahlad Cloud gateway system for managing data storage to cloud storage sites
US8370312B1 (en) 2009-09-15 2013-02-05 Symantec Corporation Systems and methods for using cloud-based storage to optimize data-storage operations
CN101719106A (zh) 2009-12-11 2010-06-02 成都市华为赛门铁克科技有限公司 一种精简配置存储阵列的管理方法、装置和系统
US8555022B1 (en) * 2010-01-06 2013-10-08 Netapp, Inc. Assimilation of foreign LUNS into a network storage system
CN101791060A (zh) * 2010-01-14 2010-08-04 陈忆凤 适合甲壳类动物生长期的软质饲料生产工艺
US8341363B2 (en) 2010-05-03 2012-12-25 Panzura, Inc. Efficient cloud network attached storage
JP5343166B2 (ja) 2010-05-27 2013-11-13 株式会社日立製作所 通信ネットワークを介してリモートのファイルサーバにファイルを転送するローカルのファイルサーバ、及び、それらのファイルサーバを有するストレージシステム
US9229842B2 (en) * 2010-07-19 2016-01-05 Soasta, Inc. Active waterfall charts for continuous, real-time visualization of website performance data
US8832130B2 (en) * 2010-08-19 2014-09-09 Infosys Limited System and method for implementing on demand cloud database
US9128948B1 (en) 2010-09-15 2015-09-08 Symantec Corporation Integration of deduplicating backup server with cloud storage
CN102467408B (zh) 2010-11-12 2014-03-19 阿里巴巴集团控股有限公司 一种虚拟机数据的访问方法和设备
US8484416B2 (en) 2010-12-23 2013-07-09 Lsi Corporation High availability raid using low-cost direct attached raid controllers
US9645943B2 (en) * 2011-02-22 2017-05-09 Infinidat Ltd. Storage arrangement and method using a plurality of storage spaces which have separate control layers and separate mapping structures
US9432298B1 (en) 2011-12-09 2016-08-30 P4tents1, LLC System, method, and computer program product for improving memory systems
US8745327B1 (en) 2011-06-24 2014-06-03 Emc Corporation Methods, systems, and computer readable medium for controlling prioritization of tiering and spin down features in a data storage system
US8819230B2 (en) * 2011-11-05 2014-08-26 Zadara Storage, Ltd. Virtual private storage array service for cloud servers
US8612284B1 (en) 2011-11-09 2013-12-17 Parallels IP Holdings GmbH Quality of service differentiated cloud storage
US8959389B2 (en) 2011-11-23 2015-02-17 International Business Machines Corporation Use of a virtual drive as a hot spare for a raid group
JP2013114624A (ja) * 2011-11-30 2013-06-10 Hitachi Ltd ストレージシステム及びプール容量縮小の制御方法
US9285992B2 (en) 2011-12-16 2016-03-15 Netapp, Inc. System and method for optimally creating storage objects in a storage system
US9575690B2 (en) 2011-12-23 2017-02-21 Oracle International Corporation Sub-lun auto-tiering
US9098200B2 (en) 2012-02-10 2015-08-04 Hitachi, Ltd. Storage system with virtual volume having data arranged astride storage devices, and volume management method
US20130218919A1 (en) 2012-02-20 2013-08-22 Aleksey Solonchev Method and apparatus for managing content
US9021203B2 (en) 2012-05-07 2015-04-28 International Business Machines Corporation Enhancing tiering storage performance
CN102932415B (zh) * 2012-09-26 2015-04-15 东软集团股份有限公司 一种镜像文件存储方法及装置
CN102882885B (zh) 2012-10-17 2015-07-01 北京卓微天成科技咨询有限公司 一种提高云计算数据安全的方法及系统
US9268493B2 (en) 2012-11-28 2016-02-23 Dell Products L.P. Systems and methods for smart storage interconnection in a heterogeneous storage environment
US9003135B2 (en) 2013-01-15 2015-04-07 International Business Machines Corporation Efficient allocation and reclamation of thin-provisioned storage
US9021204B1 (en) 2013-02-27 2015-04-28 Symantec Corporation Techniques for managing data storage
TW201435612A (zh) * 2013-03-12 2014-09-16 Hon Hai Prec Ind Co Ltd 儲存空間擴展系統及方法
CN104052770A (zh) * 2013-03-13 2014-09-17 鸿富锦精密工业(深圳)有限公司 存储空间扩展系统及方法
CN103237054B (zh) * 2013-03-28 2016-12-28 东莞宇龙通信科技有限公司 一种存储照片或视频的方法、系统及移动终端
GB2513377A (en) 2013-04-25 2014-10-29 Ibm Controlling data storage in an array of storage devices
AU2013403767B2 (en) 2013-10-23 2017-03-30 Huawei Cloud Computing Technologies Co., Ltd. Cloud application disaster recovery method, system and device
CN104778129B (zh) * 2014-01-14 2021-08-27 中兴通讯股份有限公司 一种移动终端的虚拟存储的实现方法及装置
US9329780B2 (en) 2014-02-11 2016-05-03 International Business Machines Corporation Combining virtual mapping metadata and physical space mapping metadata
US9529773B2 (en) * 2014-05-02 2016-12-27 Cavium, Inc. Systems and methods for enabling access to extensible remote storage over a network as local storage via a logical storage controller
US10067722B2 (en) 2014-07-02 2018-09-04 Hedvig, Inc Storage system for provisioning and storing data to a virtual disk
US9881018B2 (en) 2014-08-14 2018-01-30 International Business Machines Corporation File management in thin provisioning storage environments
WO2016032904A1 (en) * 2014-08-27 2016-03-03 Mokhtarzada Holdings, Llc Method and system for expanding storage capacity of a drive using cloud storage systems
US9411539B2 (en) 2014-09-24 2016-08-09 International Business Machines Corporation Providing access information to a storage controller to determine a storage tier for storing data
US9740436B2 (en) * 2014-11-14 2017-08-22 International Business Machines Corporation Elastic file system management in storage cloud environments
US9552248B2 (en) 2014-12-11 2017-01-24 Pure Storage, Inc. Cloud alert to replica
US20160197834A1 (en) 2015-01-02 2016-07-07 Siegfried Luft Architecture and method for traffic engineering between diverse cloud providers
CN105827669B (zh) 2015-01-04 2019-06-11 中国移动通信集团江苏有限公司 一种终端虚拟存储的方法、设备和系统
WO2016134035A1 (en) 2015-02-17 2016-08-25 Coho Data, Inc. Virtualized application-layer space for data processing in data storage systems
WO2016167086A1 (ja) 2015-04-17 2016-10-20 日本電信電話株式会社 サーバ選択装置、サーバ選択方法及びサーバ選択プログラム
US10572393B2 (en) 2015-04-22 2020-02-25 ColorTokens, Inc. Object memory management unit
CN104820575B (zh) 2015-04-27 2017-08-15 西北工业大学 实现存储系统自动精简的方法
US9749193B1 (en) 2015-06-12 2017-08-29 EMC IP Holding Company LLC Rule-based systems for outcome-based data protection
US10579403B2 (en) 2015-06-29 2020-03-03 Vmware, Inc. Policy based provisioning of containers
US9712617B2 (en) 2015-07-06 2017-07-18 Infinidat Ltd. Flow control in remote replication
US9513968B1 (en) 2015-12-04 2016-12-06 International Business Machines Corporation Dynamic resource allocation based on data transferring to a tiered storage
US10013181B2 (en) * 2015-12-07 2018-07-03 International Business Machines Corporation Distributed storage of data in a local storage and a heterogeneous cloud
US10171585B2 (en) * 2015-12-07 2019-01-01 International Business Machines Corporation Method, system, and computer program product for distributed storage of data in a heterogeneous cloud
US10237343B1 (en) 2015-12-07 2019-03-19 EMC IP Holding Company LLC Sustaining backup service level objectives using dynamic resource allocation
US10592350B2 (en) * 2016-03-09 2020-03-17 Commvault Systems, Inc. Virtual server cloud file system for virtual machine restore to cloud operations
US10620834B2 (en) 2016-03-25 2020-04-14 Netapp, Inc. Managing storage space based on multiple dataset backup versions
US9665303B1 (en) 2016-10-12 2017-05-30 Divergent Storage Systems, Inc. Method and apparatus for storing information using an intelligent block storage controller
CN111417939A (zh) 2017-08-16 2020-07-14 慧与发展有限责任合伙企业 分布式文件系统中的分层存储
US10372363B2 (en) 2017-09-14 2019-08-06 International Business Machines Corporation Thin provisioning using cloud based ranks
US10581969B2 (en) 2017-09-14 2020-03-03 International Business Machines Corporation Storage system using cloud based ranks as replica storage
US10372371B2 (en) 2017-09-14 2019-08-06 International Business Machines Corporation Dynamic data relocation using cloud based ranks
US10721304B2 (en) 2017-09-14 2020-07-21 International Business Machines Corporation Storage system using cloud storage as a rank

Also Published As

Publication number Publication date
GB2580259B (en) 2022-02-23
GB2580259A (en) 2020-07-15
GB202004071D0 (en) 2020-05-06
CN111095189A (zh) 2020-05-01
US11086535B2 (en) 2021-08-10
US20190347024A1 (en) 2019-11-14
JP7135074B2 (ja) 2022-09-12
US20190079686A1 (en) 2019-03-14
WO2019053533A1 (en) 2019-03-21
US10372363B2 (en) 2019-08-06
JP2020533689A (ja) 2020-11-19

Similar Documents

Publication Publication Date Title
DE112018003524T5 (de) Dynamische datenverlagerung unter verwendung von speicherbänken auf cloud-grundlage
DE112018005135T5 (de) Thin provisioning unter verwendung von speicherbänken auf cloud-grundlage
DE112018000193B4 (de) Daten sequenziell in Zonen in einem verstreuten Speichernetzwerk speichern
DE112018005121T5 (de) Speichersystem unter verwendung von cloud-speicher als eine speicherbank
DE112011104419B4 (de) Bereichsmigration für gepaarte Speicherung
DE112018002951B4 (de) Verwenden eines spurformatcodes in einem cache-steuerblock für eine spur in einem cache, um lese- und schreibanforderungen in bezug auf die spur im cache zu verarbeiten
DE112012005275B4 (de) Datenauswahl zur Sicherung von Datenspeichern
DE112017000629T5 (de) Multi-Tenant-Arbeitsspeicherdienst für Architekturen mit Arbeitsspeicher-Pools
DE112013006643B4 (de) Speichersystem und steuerungsverfahren für speichersystem
DE112014006156B4 (de) Speichersystem und Datenmigrationsverfahren
DE112016003120T5 (de) Umleiten einer Kopie beim Schreiben
DE112018006769B4 (de) Erweiterte zwischenspeicherzuweisung basierend auf virtuellen knotenressourcen
DE112012004318T5 (de) Verwendung eines virtuellen Laufwerks als Hot-Spare-Einheit für eine RAID-Gruppe
DE112018003084T5 (de) Asynchrones lokales und entfernt angeordnetes erzeugen von konsistenten zeitpunkt-momentkopien in konsistenzgruppen
DE102016105589A1 (de) Anwenden von Firmware-Updates in einem System mit Null-Stillstandszeit durch wahlweise Abschalten und Einschalten von Hardware unter Verwenden einer Hypervisor-Schicht
DE102014116808B4 (de) Verfahren und System zum Realisieren einer dynamischen Virtualisierung eines SRIOV-fähigen SAS-Adapters
DE112013001421T5 (de) Auf Richtlinien beruhendes Verwalten von Speicherfunktionen in Datenreplikationsumgebungen
DE112012001162T5 (de) Defragmentierung von Datenspeicherpools
DE102012215918A1 (de) Spiegeln virtueller Maschinen von einem primären auf einen sekundären Host
DE112019000992T5 (de) Verwaltung virtueller Speicherlaufwerke in einem Datenspeichersystem
DE112018000900T5 (de) Verarbeiten eines Befehls zum Freigeben von Speicherplatz in einem Computersystem
DE102012108117A1 (de) Hochverfügbares Rechnersystem, Arbeitsverfahren und dessen Verwendung
DE102013205571B4 (de) Verfahren, Computerprogrammprodukt und Vorrichtung zum Migrieren von Datenträgern mit schlanker Speicherzuweisung in mehrschichtigen Speicherarchitekturen
DE112020000498T5 (de) Migrieren von daten aus einem grossen extent-pool in einen kleinen extent-pool
DE112021005233T5 (de) Verbesserte anwendungsleistung durch verwenden vonspeichersystemoptimierung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R084 Declaration of willingness to licence