DE112018003524T5 - Dynamische datenverlagerung unter verwendung von speicherbänken auf cloud-grundlage - Google Patents

Dynamische datenverlagerung unter verwendung von speicherbänken auf cloud-grundlage Download PDF

Info

Publication number
DE112018003524T5
DE112018003524T5 DE112018003524.7T DE112018003524T DE112018003524T5 DE 112018003524 T5 DE112018003524 T5 DE 112018003524T5 DE 112018003524 T DE112018003524 T DE 112018003524T DE 112018003524 T5 DE112018003524 T5 DE 112018003524T5
Authority
DE
Germany
Prior art keywords
storage
cloud
data
banks
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
DE112018003524.7T
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 DE112018003524T5 publication Critical patent/DE112018003524T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data

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)
  • Debugging And Monitoring (AREA)

Abstract

Ein Beispielverfahren für eine dynamische Datenverlagerung unter Verwendung von Speicherbänken auf Cloud-Grundlage weist ein Überwachen von Zugriffen auf Daten, die in einer Mehrzahl von lokalen Speicherbänken eines Unternehmensspeichersystems gespeichert sind; ein Identifizieren von Daten, auf die während einer vorbestimmten Zeitspanne nicht zugegriffen wurde, auf Grundlage der überwachten Zugriffe; und ein Verschieben der Daten, auf die während der vorbestimmten Zeitspanne nicht zugegriffen wurde, in eine oder mehrere Speicherbänke auf Cloud-Grundlage des Unternehmensspeichersystems auf, wobei jede Speicherbank auf Cloud-Grundlage Speicherplatz in einer oder mehreren Cloud-Speichereinheiten aufweist, wobei der Speicherplatz in der einen oder den mehreren Cloud-Speichereinheiten auf entsprechende virtuelle lokale Adressen abgebildet wird, die als eine virtuelle lokale Speicherbank gruppiert werden.

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.
  • KURZDARSTELLUNG
  • Aspekte der vorliegenden Erfindung können ein(e) durch einen Computer realisierte(s) Verfahren, Computerprogrammprodukt, Datenverarbeitungseinheit und System für eine dynamische Datenverlagerung unter Verwendung von Speicherbänken auf Cloud-Grundlage umfassen. Ein Beispielverfahren, das die vorliegende Erfindung umfasst, weist ein Überwachen von Zugriffen auf Daten, die in einer Mehrzahl von lokalen Speicherbänken eines Unternehmensspeichersystems gespeichert sind; ein Identifizieren von Daten, auf die während einer vorbestimmten Zeitspanne nicht zugegriffen wurde, auf Grundlage der überwachten Zugriffe; und ein Verschieben der Daten, auf die während der vorbestimmten Zeitspanne nicht zugegriffen wurde, in eine oder mehrere Speicherbänke auf Cloud-Grundlage des Unternehmensspeichersystems auf, wobei jede Speicherbank auf Cloud-Grundlage Speicherplatz in einer oder mehreren Cloud-Speichereinheiten aufweist, wobei der Speicherplatz in der einen oder den mehreren Cloud-Speichereinheiten auf entsprechende virtuelle lokale Adressen abgebildet wird, die als eine virtuelle lokale Speicherbank gruppiert werden.
  • 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 einer dynamischen Datenverlagerung abbildet.
  • 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 ausführlicher beschrieben wird.
  • 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 der vorliegenden Erfindung auch andere Anzahlen von Clients 102 verwendet werden können. Zum Beispiel kann bei manchen Ausführungsformen nur ein Client 102 realisiert sein. Bei anderen Ausführungsformen der vorliegenden Erfindung 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 der vorliegenden Erfindung 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. Zusätzlich ist in dem in 1 gezeigten Beispiel das Speicherteilsystem 110 konfiguriert, um eine Verbindung mit Speicheranordnungen aus dem Cloud-Speicher so herzustellen und diese so zu erzeugen, dass der Cloud-Speicher eine lokale Speicheranordnung zu sein scheint, was fortschrittliche Datenverwaltungsmerkmale ermöglicht, wie weiter unten ausführlicher beschrieben wird.
  • Zusätzlich können in herkömmlichen Systemen kalte Daten (z.B. Daten, auf die nicht häufig zugegriffen wird) auf verhältnismäßig langsameren (z.B. sich drehenden Platten) platziert werden, während Daten, auf die häufiger zugegriffen wird, auf schnelleren Medien (z.B. Halbleiterplatten) untergebracht werden können. Wenn die als kalte Daten eingestuften Daten zunehmen und altern, ignorieren herkömmliche Systeme die kalten Daten so lange, bis mehr Plattenspeicherplatz benötigt wird, und dann wird zusätzlicher Speicherplatz hinzugefügt, was ein teurer und zeitaufwändiger Vorgang sein kann. Wenn die Menge an kalten Daten daraufhin abnimmt, steht mehr Speicherplatz zur Verfügung, als benötigt wird. Indem die Erzeugung von Speicherbänken auf Cloud-Grundlage ermöglicht wird, die für das Unternehmensspeichersystem lokale Speicherbänke zu sein scheinen, ermöglichen die hier beschriebenen Ausführungsformen der vorliegenden Erfindung eine effiziente Verlagerung von Daten, wie weiter unten ausführlicher beschrieben wird. Im Besonderen wird eine zusätzliche Kategorie von Daten auf Grundlage von Datenzugriffen erzeugt. Diese zusätzliche Kategorie wird so definiert, dass sie Daten umfasst, auf die während eines längeren Zeitraums nicht zugegriffen wurde. Diese neue Kategorie von Daten kann dann in die Speicherbänke auf Cloud-Grundlage verschoben oder verlagert werden, wie weiter unten ausführlicher beschrieben wird. Somit werden neue Speicherbänke (d.h. Speicherbänke auf Cloud-Grundlage) nach Bedarf erzeugt und können gelöscht werden, wenn sie nicht benötigt werden, was Speicherplatz für verhältnismäßig schnellere lokale Speicherplätze schafft und zugleich die fortschrittlichen Verwaltungsmerkmale ermöglicht, die für eine Fernspeicherung üblicherweise nicht verfügbar sind.
  • Um auf ein 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 können die Server 106 und Speicherteilsysteme 110 unter Verwendung eines Netzwerkstandards wie Fibre Channel (FC) oder iSCSI Daten austauschen.
  • 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 hierzu 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 Verlagerungsmodul 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 2226 eine lokale RAID-Anordnung oder eine lokale Speicherbank zu sein scheinen. Auf diese Weise sind die Merkmale und Funktionen der Speicher-Controller 226, 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 Verlagerungsmodul 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 Verlagerungsmodul 232 in den Einheitenadaptern 226 enthalten ist, sollte erwähnt werden, dass das Verlagerungsmodul 232 bei anderen Ausführungsformen in den Speicher-Controllern 222 enthalten sein kann. Im Besonderen umfasst bei manchen Ausführungsformen jeder Speicher-Controller 222 ein entsprechendes Verlagerungsmodul, 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 weiter unten ausführlicher beschriebene Verwendung des Verlagerungsmoduls 232 ermöglichen die hier beschriebenen Ausführungsformen der vorliegenden Erfindung somit die Durchführung fortschrittlicher Verwaltungsmerkmale 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 Verlagerungsmoduls 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 Verwaltungsmerkmale/-funktionen, wie die oben erwähnten, auch 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 virtuellen 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, eine effiziente Datenverlagerung zu ermöglichen. Im Besonderen ist das Verlagerungsmodul 232 konfiguriert, um Datenzugriffe auf Daten in der Mehrzahl von Speichereinheiten einer oder mehrerer RAID-Anordnungen (z.B. Anordnung 234) in dem Speichersystem zu überwachen.
  • Auf Grundlage der überwachten Zugriffe kann das Verlagerungsmodul 232 eine Mehrzahl von Kategorien von Daten identifizieren. Zum Beispiel identifiziert das Verlagerungsmodul 232 bei manchen Ausführungsformen eine heiße Datenkategorie, eine kalte Datenkategorie und eine sehr kalte Datenkategorie. Die heiße Datenkategorie entspricht Daten, bei denen innerhalb eines ersten Zeitraums Datenzugriffe erfolgt sind. Die kalte Datenkategorie entspricht Daten, bei denen zwar innerhalb des ersten Zeitraums kein Datenzugriff erfolgt ist, jedoch innerhalb eines zweiten Zeitraums, der länger bzw. größer als der erste Zeitraum ist, ein Datenzugriff erfolgt ist. Die sehr kalte Datenkategorie entspricht Daten, bei denen innerhalb des ersten oder des zweiten Zeitraums kein Datenzugriff erfolgt ist. Anders ausgedrückt ist bei Daten in der sehr kalten Datenkategorie für mehr als den zweiten Zeitraum kein Datenzugriff erfolgt. Wie weiter unten ausführlicher beschrieben, ist das Verlagerungsmodul 232 konfiguriert, um Daten in der sehr kalten Datenkategorie in eine oder mehrere der Speicherbänke auf Cloud-Grundlage zu verschieben. Somit kann das Verlagerungsmodul 232 konfiguriert sein, um die Speicherbänke auf Cloud-Grundlage zu erzeugen, wenn in einer bestehenden Speicherbank auf Cloud-Grundlage des Speichersystems 200 Speicherplatz nicht verfügbar 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 Zwischenverbindung 340 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. Die Zwischenverbindung 340 kann unter Verwendung eines oder mehrerer Busse realisiert sein. Bei verschiedenen Ausführungsformen 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 Verlagerungsanweisungen 301, und der Speicher 335 speichert eine Abbildtabelle 307. Allerdings werden bei verschiedenen Ausführungsformen der vorliegenden Erfindung die Verlagerungsanweisungen 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 Verlagerungsanweisungen 301 die CPU 305, die Abbildtabelle 307 zu verwenden, um das weiter oben in Bezug auf 2 erläuterte Verlagerungsmodul zu realisieren. Obwohl die Verlagerungsanweisungen 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 der vorliegenden Erfindung die Verlagerungsanweisungen 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 Verlagerungsanweisungen 301 veranlassen die CPU 305, Speicherplatz in Cloud-Speichereinheiten wie z.B. den in 2 abgebildeten Cloud-Speichereinheiten 214 zuzuordnen. 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 Verlagerungsanweisungen 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 der Abbildtabelle 307 zu speichern. Im Besonderen veranlassen die Verlagerungsanweisungen 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 RAID-Anordnung, die aus Speichereinheiten besteht, die 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 Verlagerungsanweisungen 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 Verlagerungsanweisungen 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 Verlagerungsanweisungen 301 den Cloud-Speicher somit ähnlich wie andere lokale Speichereinheiten auf transparente Art und Weise für einen Speicher-Controller verfügbar.
  • Zusätzlich veranlassen die Verlagerungsanweisungen 301 die CPU 305, Daten, auf die nicht häufig zugegriffen wird, dynamisch zu verlagern, um eine Effizienz des Speichersystems zu verbessern. Im Besonderen veranlassen die Verlagerungsanweisungen 301 die CPU 305, Daten, auf die für mehr als eine vorbestimmte Zeitspanne nicht zugegriffen wurde, dynamisch in Speicherbänke auf Cloud-Grundlage zu verlagern. Zum Beispiel können die Verlagerungsanweisungen 301 konfiguriert sein, um die CPU 305 zu veranlassen, die in Bezug auf 4 ausführlicher beschriebene dynamische Verlagerung durchzuführen.
  • Zusätzlich sind die Verlagerungsanweisungen 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 als das erste Dienstniveau auf. 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 einer dynamischen Datenverlagerung abbildet. 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 Verlagerungsanweisungen 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 werden Zugriffe auf Daten überwacht, die in einer Mehrzahl von lokalen Speicherbänken eines Unternehmensspeichersystems gespeichert sind. Zum Beispiel können der Einheitenadapter und/oder Speicher-Controller konfiguriert sein, um die Anzahl von Zugriffen auf Daten zu zählen sowie den Zeitpunkt zu erfassen, zu dem die Datenzugriffe stattfinden. In Block 404 werden Daten identifiziert, auf die für mehr als eine vorbestimmte Zeitspanne nicht zugegriffen wurde. Bei manchen Ausführungsformen der vorliegenden Erfindung ist die vorbestimmte Zeitspanne eine angegebene Anzahl von Wochen. Bei anderen Ausführungsformen der vorliegenden Erfindung ist die vorbestimmte Zeitspanne eine angegebene Anzahl von Tagen. Bei anderen Ausführungsformen der vorliegenden Erfindung werden andere Zeiträume verwendet.
  • Bei manchen Ausführungsformen der vorliegenden Erfindung werden die in der Mehrzahl von lokalen Speicherbänken oder RAID-Anordnungen gespeicherten Daten auf Grundlage der überwachten Datenzugriffe in eine Mehrzahl von Kategorien eingeteilt. Bei manchen derartigen Ausführungsformen der vorliegenden Erfindung werden zum Beispiel drei Kategorien von Daten verwendet, wie weiter oben erläutert wird. Bei anderen Ausführungsformen der vorliegenden Erfindung werden vier oder mehr Kategorien verwendet. Jede der Kategorien kann durch die Häufigkeit der Datenzugriffe definiert werden. So sind bei manchen Ausführungsformen zum Beispiel die Daten mit dem häufigsten Zugriff (bzw. die heißen Daten) jene Daten, auf die innerhalb eines ersten, kürzesten Zeitraums zugegriffen wird. Entsprechend werden Daten, auf die nicht innerhalb des ersten, kürzesten Zeitraums zugegriffen wird, sondern auf die innerhalb eines zweiten Zeitraums zugegriffen wird, der länger als der erste Zeitraum ist, einer zweiten Kategorie (z.B. kalte Daten) zugeteilt. Somit können die unterschiedlichen Kategorien von Daten durch verschiedene Zeiträume definiert werden. Bei anderen Ausführungsformen können die verschiedenen Kategorien anhand der Anzahl von Zugriffen definiert werden, die innerhalb einer bestimmten Zeitspanne erfolgen. Unabhängig davon, wie die verschiedenen Kategorien definiert werden, umfasst ein Identifizieren der Daten, auf die während der vorbestimmten Zeitspanne nicht zugegriffen wurde, ein Identifizieren der Daten, auf die am seltensten zugegriffen wird. Wenn zum Beispiel mehrere Zeiträume verwendet werden, um eine Mehrzahl von Kategorien zu definieren, ist die in Block 404 verwendete vorbestimmte Zeitspanne der längste Zeitraum.
  • In Block 406 werden die Daten, auf die innerhalb der vorbestimmten Zeitspanne nicht zugegriffen wurde, in eine oder mehrere Speicherbänke auf Cloud-Grundlage des Unternehmensspeichersystems verschoben. 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.
  • Ein Verschieben der Daten in eine Speicherbank auf Cloud-Grundlage kann ein Erzeugen der Speicherbank auf Cloud-Grundlage umfassen. Als Reaktion auf ein Ermitteln, dass eine Speicherbank auf Cloud-Grundlage mit ausreichendem Speicherplatz für die in Block 404 identifizierten Daten nicht verfügbar ist (wenn die bestehenden Speicherbänke auf Cloud-Grundlage z.B. nicht genug Speicherplatz aufweisen oder momentan keine Speicherbänke auf Cloud-Grundlage vorhanden sind), kann der Einheitenadapter oder Speicher-Controller zum Beispiel eine oder mehrere neue Speicherbänke auf Cloud-Grundlage erzeugen. Ein Erzeugen einer oder mehrerer neuer 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. Dieser Speicherplatz kann statisch angefordert werden, bevor er benötigt wird, oder er kann dynamisch angefordert werden, sobald Speicherplatz benötigt wird. 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 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, die ü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.
  • Darüber hinaus umfasst bei manchen Ausführungsformen der vorliegenden Erfindung ein Verschieben der in Block 404 identifizierten Daten ein Warten mit dem Verschieben der Daten, bis eine vorbestimmte Bedingung erfüllt ist. Bei manchen derartigen Ausführungsformen der vorliegenden Erfindung umfasst ein Verschieben der in Block 404 identifizierten Daten zum Beispiel ein Ermitteln der Größe der in Block 404 identifizierten Daten und ein Verschieben der Daten als Reaktion auf ein Ermitteln, dass die Größe der Daten einen vorbestimmten Größenschwellenwert übersteigt. So kann der Größenschwellenwert bei manchen Ausführungsformen zum Beispiel auf 1 Gigabyte, 10 Gigabyte oder 100 Gigabyte usw. gesetzt sein. Bei anderen Ausführungsformen wird die Größe als eine Funktion von Bereichsgrößen in der einen oder den mehreren RAID-Anordnungen bestimmt.
  • Bei anderen Ausführungsformen der vorliegenden Erfindung sind der Einheitenadapter oder Speicher-Controller konfiguriert, um auf Grundlage der Menge an verfügbarem Speicherplatz in der einen oder den mehreren lokalen RAID-Anordnungen mit dem Verschieben der in Block 404 identifizierten Daten zu warten. Bei manchen derartigen Ausführungsformen der vorliegenden Erfindung umfasst ein Verschieben der in Block 404 identifizierten Daten zum Beispiel ein Ermitteln der Menge an verfügbarem Speicherplatz, der in der Mehrzahl von lokalen Speicherbänken noch verbleibt, und ein Vergleichen der Menge an verfügbarem Speicherplatz mit einem vorbestimmten Schwellenwert für den verfügbaren Speicherplatz. Sobald der verfügbare Speicherplatz in der Mehrzahl von lokalen Speicherbänken unter den Schwellenwert fällt, weist der Einheitenadapter oder Speicher-Controller an, dass die Daten in die Speicherbänke auf Cloud-Grundlage verschoben werden.
  • In Block 408 wird ermittelt, ob eine Datenzugriffsanforderung für mindestens einen Teil der Daten in den Speicherbänken auf Cloud-Grundlage empfangen wurde. Eine Datenzugriffsanforderung für Daten in den Speicherbänken auf Cloud-Grundlage umfasst eine Zugriffsanforderung, die auf die entsprechenden virtuellen lokalen Adressen für mindestens einen Teil der Daten gerichtet ist, die in Block 406 in die Speicherbänke auf Cloud-Grundlage verschoben wurden. Der Einheitenadapter oder Speicher-Controller ist konfiguriert, um die Zugriffsanforderung in eine Cloud-Datenzugriffsanforderung umzuwandeln, 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.
  • Wenn für mindestens einen Teil der Daten, die in die Speicherbänke auf Cloud-Grundlage verschoben wurden, keine Datenzugriffsanforderung empfangen wurde, springt das Verfahren 400 so lange zu Block 408 zurück, bis eine Datenzugriffsanforderung empfangen wird. Wenn für mindestens einen Teil der Daten, die in die Speicherbänke auf Cloud-Grundlage verschoben wurden, eine Datenzugriffsanforderung empfangen wird, werden die angeforderten Daten in Block 410 auf ein oder mehrere Speicherlaufwerke einer oder mehrerer lokaler RAID-Anordnungen verlagert.
  • In Block 412 wird ermittelt, ob in den Speicherbänken auf Cloud-Grundlage noch Daten verbleiben. Wenn in einer der Speicherbänke auf Cloud-Grundlage noch Daten verbleiben, springt das Verfahren 400 zu Block 408 zurück. Wenn in einer oder mehreren der Speicherbänke auf Cloud-Grundlage keine Daten mehr verbleiben, werden die entsprechenden Speicherbänke auf Cloud-Grundlage, in denen keine Daten mehr gespeichert sind, in Block 414 gelöscht. Ein Löschen der Speicherbänke auf Cloud-Grundlage umfasst ein Aufheben der Zuordnung des Speicherplatzes und ein Löschen entsprechender Einträge in der Abbildtabelle. 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 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. Zum Beispiel werden bei manchen Ausführungsformen der vorliegenden Erfindung die Blöcke 412 und 414 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 Handlungen nicht nacheinander durchgeführt werden müssen. Zum Beispiel kann das in den Blöcken 402 und 404 beschriebene Überwachen und Identifizieren gleichzeitig stattfinden oder sich mit den anderen Handlungen überschneiden, die bei dem Verfahren 400 beschrieben werden.
  • 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 sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaubilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaubilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaubildern 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 Blockschaubilder 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 Blockschaubilder 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 Blockschaubilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und die Blockschaubilder 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 Blockschaubildern 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 Blockschaubilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaubildern 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 eine dynamische Datenverlagerung. Das Verfahren weist ein Überwachen von Zugriffen auf Daten, die in einer Mehrzahl von lokalen Speicherbänken eines Unternehmensspeichersystems gespeichert sind; ein Identifizieren von Daten, auf die während einer vorbestimmten Zeitspanne nicht zugegriffen wurde, auf Grundlage der überwachten Zugriffe; und ein Verschieben der Daten, auf die während der vorbestimmten Zeitspanne nicht zugegriffen wurde, in eine oder mehrere Speicherbänke auf Cloud-Grundlage des Unternehmensspeichersystems auf, wobei jede Speicherbank auf Cloud-Grundlage Speicherplatz in einer oder mehreren Cloud-Speichereinheiten aufweist, wobei der Speicherplatz in der einen oder den mehreren Cloud-Speichereinheiten auf entsprechende virtuelle lokale Adressen abgebildet wird, die als eine virtuelle lokale Speicherbank gruppiert werden.
  • Beispiel 2 umfasst das durch einen Computer realisierte Verfahren aus Beispiel 1, des Weiteren aufweisend als Reaktion auf eine Zugriffsanforderung, die auf die entsprechenden virtuellen lokalen Adressen für mindestens einen Teil der Daten gerichtet ist, ein Umwandeln der Zugriffsanforderung in eine Cloud-Datenzugriffsanforderung, 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 ein Verlagern des mindestens einen Teils der verschobenen Daten von der einen oder den mehreren Speicherbänken auf Cloud-Grundlage in mindestens eine aus der Mehrzahl von lokalen Speicherbänken.
  • Beispiel 3 umfasst das durch einen Computer realisierte Verfahren aus Beispiel 2, des Weiteren aufweisend ein Ermitteln, dass alle verschobenen Daten in mindestens eine aus der Mehrzahl von lokalen Speicherbänken verlagert wurden; und ein Löschen der einen oder der mehreren Speicherbänke auf Cloud-Grundlage.
  • Beispiel 4 umfasst das durch einen Computer realisierte Verfahren aus einem beliebigen der Beispiele 1 bis 3, wobei die vorbestimmte Zeitspanne entweder eine vorbestimmte Anzahl von Wochen oder eine vorbestimmte Anzahl von Tagen aufweist.
  • Beispiel 5 umfasst das durch einen Computer realisierte Verfahren aus einem beliebigen der Beispiele 1 bis 4, wobei ein Verschieben der Daten als Reaktion auf ein Ermitteln, dass eine Speicherbank auf Cloud-Grundlage mit ausreichendem Speicherplatz nicht verfügbar ist, ein Erzeugen einer oder mehrerer neuer Speicherbänke auf Cloud-Grundlage aufweist. Ein Erzeugen einer jeden der einen oder der mehreren neuen 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 entsprechende virtuelle lokale Adressen; und ein Gruppieren der virtuellen lokalen Adressen als eine virtuelle lokale Speicherbank auf.
  • Beispiel 6 umfasst das durch einen Computer realisierte Verfahren aus einem beliebigen der Beispiele 1 bis 5, wobei ein Verschieben der Daten als Reaktion auf ein Ermitteln, dass die Größe der Daten, auf die während der vorbestimmten Zeitspanne nicht zugegriffen wurde, einen vorbestimmten Größenschwellenwert übersteigt, ein Verschieben der Daten aufweist, auf die während der vorbestimmten Zeitspanne nicht zugegriffen wurde.
  • Beispiel 7 umfasst das durch einen Computer realisierte Verfahren aus einem beliebigen der Beispiele 1 bis 5, wobei ein Verschieben der Daten als Reaktion auf ein Ermitteln, dass ein verfügbarer Speicherplatz in der Mehrzahl von lokalen Speicherbänken kleiner als ein vorbestimmter Speicherplatz-Schwellenwert ist, ein Verschieben der Daten, auf die während einer vorbestimmten Zeitspanne nicht zugegriffen wurde, in die eine oder die mehreren Speicherbänke auf Cloud-Grundlage aufweist.
  • 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 Datenverlagerungsmodul zu realisieren. Das Datenverlagerungsmodul ist konfiguriert, um Zugriffe auf Daten zu überwachen, die in einer Mehrzahl von lokalen redundanten Anordnungen von unabhängigen Festplatten (RAID-Anordnungen) eines Unternehmensspeichersystems gespeichert sind; auf Grundlage der überwachten Zugriffe Daten zu identifizieren, auf die während einer vorbestimmten Zeitspanne nicht zugegriffen wurde; und die Daten, auf die während der vorbestimmten Zeitspanne nicht zugegriffen wurde, in eine oder mehrere RAID-Anordnungen auf Cloud-Grundlage des Unternehmensspeichersystems zu verschieben, wobei jede RAID-Anordnung auf Cloud-Grundlage Speicherplatz in einer oder mehreren Cloud-Speichereinheiten aufweist, wobei der Speicherplatz in der einen oder den mehreren Cloud-Speichereinheiten auf entsprechende virtuelle lokale Adressen abgebildet wird, die als eine virtuelle lokale RAID-Anordnung gruppiert werden.
  • Beispiel 9 umfasst das Speichersystem aus Beispiel 8, wobei das Verlagerungsmodul des Weiteren konfiguriert ist, um als Reaktion auf eine Zugriffsanforderung, die auf die entsprechenden virtuellen lokalen Adressen für mindestens einen Teil der Daten gerichtet ist, den mindestens einen Teil der verschobenen Daten von der einen oder den mehreren Speicherbänken auf Cloud-Grundlage in die mindestens eine aus der Mehrzahl von lokalen Speicherbänken zu verlagern.
  • Beispiel 10 umfasst das Speichersystem aus Beispiel 9, wobei das Verlagerungsmodul des Weiteren konfiguriert ist, um die eine oder die mehreren Speicherbänke auf Cloud-Grundlage als Reaktion auf ein Ermitteln zu löschen, dass alle verschobenen Daten in mindestens eine aus der Mehrzahl von lokalen Speicherbänken verlagert wurden.
  • Beispiel 11 umfasst das Speichersystem aus einem beliebigen der Beispiele 8 bis 10, wobei das Verlagerungsmodul konfiguriert ist, um die Daten zu verschieben, indem als Reaktion auf ein Ermitteln, dass eine Speicherbank auf Cloud-Grundlage mit ausreichendem Speicherplatz nicht verfügbar ist, eine oder mehrere neue Speicherbänke auf Cloud-Grundlage erzeugt werden. Das Verlagerungsmodul ist konfiguriert, um eine jede der einen oder der mehreren neuen Speicherbänke auf Cloud-Grundlage zu erzeugen, indem Speicherplatz in einer oder mehreren entsprechenden Cloud-Speichereinheiten über eine Cloud-Schnittstelle zugeordnet wird; der zugeordnete Speicherplatz auf die entsprechenden virtuellen lokalen Adressen abgebildet wird; und die virtuellen lokalen Adressen als eine virtuelle lokale Speicherbank gruppiert werden.
  • Beispiel 12 umfasst das Speichersystem aus einem beliebigen der Beispiele 8 bis 11, wobei das Verlagerungsmodul konfiguriert ist, um die Daten, auf die während einer vorbestimmten Zeitspanne nicht zugegriffen wurde, als Reaktion auf ein Ermitteln zu verschieben, dass die Größe der Daten, auf die während der vorbestimmten Zeitspanne nicht zugegriffen wurde, einen vorbestimmten Größenschwellenwert übersteigt.
  • Beispiel 13 umfasst das Speichersystem aus einem beliebigen der Beispiele 8 bis 12, wobei das Verlagerungsmodul konfiguriert ist, um als Reaktion auf ein Ermitteln, dass ein verfügbarer Speicherplatz in der Mehrzahl von lokalen Speicherbänken kleiner als ein vorbestimmter Speicherplatz-Schwellenwert ist, die Daten, auf die während einer vorbestimmten Zeitspanne nicht zugegriffen wurde, in die eine oder die mehreren Speicherbänke auf Cloud-Grundlage zu verschieben.
  • Beispiel 14 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, Zugriffe auf Daten zu überwachen, die in einer Mehrzahl von lokalen redundanten Anordnungen von unabhängigen Festplatten (RAID-Anordnungen) eines Unternehmensspeichersystems gespeichert sind; auf Grundlage der überwachten Zugriffe Daten zu identifizieren, auf die während einer vorbestimmten Zeitspanne nicht zugegriffen wurde; und die Daten, auf die während der vorbestimmten Zeitspanne nicht zugegriffen wurde, in eine oder mehrere RAID-Anordnungen auf Cloud-Grundlage des Unternehmensspeichersystems zu verschieben, wobei jede RAID-Anordnung auf Cloud-Grundlage Speicherplatz in einer oder mehreren Cloud-Speichereinheiten aufweist, wobei der Speicherplatz in der einen oder den mehreren Cloud-Speichereinheiten auf entsprechende virtuelle lokale Adressen abgebildet wird, die als eine virtuelle lokale RAID-Anordnung gruppiert werden.
  • Beispiel 15 umfasst das Computerprogrammprodukt aus Beispiel 14, wobei das durch einen Computer lesbare Programm des Weiteren konfiguriert ist, um den Prozessor zu veranlassen, als Reaktion auf eine Zugriffsanforderung, die auf die entsprechenden virtuellen lokalen Adressen für mindestens einen Teil der Daten gerichtet ist, die Zugriffsanforderung in eine Cloud-Datenzugriffsanforderung umzuwandeln, 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 den mindestens einen Teil der verschobenen Daten von der einen oder den mehreren Speicherbänken auf Cloud-Grundlage in mindestens eine aus der Mehrzahl von lokalen Speicherbänken zu verlagern.
  • Beispiel 16 umfasst das Computerprogrammprodukt aus Beispiel 15, 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 als Reaktion auf ein Ermitteln zu löschen, dass alle verschobenen Daten in mindestens eine aus der Mehrzahl von lokalen Speicherbänken verlagert wurden.
  • Beispiel 17 umfasst Computerprogrammprodukt aus einem beliebigen der Beispiele 14 bis 16, wobei das durch einen Computer lesbare Programm des Weiteren konfiguriert ist, um den Prozessor zu veranlassen, die Daten zu verschieben, indem als Reaktion auf ein Ermitteln, dass eine Speicherbank auf Cloud-Grundlage mit ausreichendem Speicherplatz nicht verfügbar ist, eine oder mehrere neue Speicherbänke auf Cloud-Grundlage erzeugt werden. Das Verlagerungsmodul ist konfiguriert, um eine jede der einen oder der mehreren neuen Speicherbänke auf Cloud-Grundlage zu erzeugen, indem Speicherplatz in einer oder mehreren entsprechenden Cloud-Speichereinheiten über eine Cloud-Schnittstelle zugeordnet wird; der zugeordnete Speicherplatz auf die entsprechenden virtuellen lokalen Adressen abgebildet wird; und die virtuellen lokalen Adressen als eine virtuelle lokale Speicherbank gruppiert werden.
  • Beispiel 18 umfasst das Computerprogrammprodukt aus einem beliebigen der Beispiele 14 bis 17, wobei das durch einen Computer lesbare Programm des Weiteren konfiguriert ist, um den Prozessor zu veranlassen, die Daten, auf die während einer vorbestimmten Zeitspanne nicht zugegriffen wurde, als Reaktion auf ein Ermitteln zu verschieben, dass die Größe der Daten, auf die während der vorbestimmten Zeitspanne nicht zugegriffen wurde, einen vorbestimmten Größenschwellenwert übersteigt.
  • Beispiel 19 umfasst das Computerprogrammprodukt aus einem beliebigen der Beispiele 14 bis 18, wobei das durch einen Computer lesbare Programm des Weiteren konfiguriert ist, um den Prozessor zu veranlassen, als Reaktion auf ein Ermitteln, dass ein verfügbarer Speicherplatz in der Mehrzahl von lokalen Speicherbänken kleiner als ein vorbestimmter Speicherplatz-Schwellenwert ist, die Daten, auf die während einer vorbestimmten Zeitspanne nicht zugegriffen wurde, in die eine oder die mehreren Speicherbänke auf Cloud-Grundlage zu verschieben.
  • Beispiel 20 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 Zugriffe auf Daten zu überwachen, die in einer Mehrzahl von lokalen Speicherbänken eines Unternehmensspeichersystems gespeichert sind; auf Grundlage der überwachten Zugriffe Daten zu identifizieren, auf die während einer vorbestimmten Zeitspanne nicht zugegriffen wurde; und die Daten, auf die während der vorbestimmten Zeitspanne nicht zugegriffen wurde, in eine oder mehrere Speicherbänke auf Cloud-Grundlage des Unternehmensspeichersystems zu verschieben, wobei jede Speicherbank auf Cloud-Grundlage Speicherplatz in einer oder mehreren Cloud-Speichereinheiten aufweist, wobei der Speicherplatz in der einen oder den mehreren Cloud-Speichereinheiten auf entsprechende virtuelle lokale Adressen abgebildet wird, die als eine virtuelle lokale Speicherbank gruppiert werden.
  • Beispiel 21 umfasst die Datenverarbeitungseinheit aus Beispiel 20, wobei der Prozessor des Weiteren konfiguriert ist, um als Reaktion auf eine Zugriffsanforderung, die auf die entsprechenden virtuellen lokalen Adressen für mindestens einen Teil der Daten gerichtet ist, die Zugriffsanforderung in eine Cloud-Datenzugriffsanforderung umzuwandeln, 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 den mindestens einen Teil der verschobenen Daten von der einen oder den mehreren Speicherbänken auf Cloud-Grundlage in mindestens eine aus der Mehrzahl von lokalen Speicherbänken zu verlagern.
  • Beispiel 22 umfasst die Datenverarbeitungseinheit aus Beispiel 21, wobei der Prozessor des Weiteren konfiguriert ist, um die eine oder die mehreren Speicherbänke auf Cloud-Grundlage als Reaktion auf ein Ermitteln zu löschen, dass alle verschobenen Daten in mindestens eine aus der Mehrzahl von lokalen Speicherbänken verlagert wurden.
  • Beispiel 23 umfasst die Datenverarbeitungseinheit aus einem beliebigen der Beispiele 20 bis 22, wobei der Prozessor des Weiteren konfiguriert ist, um die Daten zu verschieben, indem als Reaktion auf ein Ermitteln, dass eine Speicherbank auf Cloud-Grundlage mit ausreichendem Speicherplatz nicht verfügbar ist, eine oder mehrere neue Speicherbänke auf Cloud-Grundlage erzeugt werden. Der Prozessor ist konfiguriert, um eine jede der einen oder der mehreren neuen Speicherbänke auf Cloud-Grundlage zu erzeugen, indem Speicherplatz in einer oder mehreren entsprechenden Cloud-Speichereinheiten über eine Anwendungsprogrammschnittstelle (API) zugeordnet wird, die der entsprechenden einen oder den entsprechenden mehreren Cloud-Speichereinheiten zugehörig ist; und eine Abbildtabelle erzeugt wird, die den zugeordneten Speicherplatz auf entsprechende virtuelle lokale Adressen abgebildet und die virtuellen lokalen Adressen als eine virtuelle lokale Speicherbank gruppiert.
  • Beispiel 24 umfasst die Datenverarbeitungseinheit aus einem beliebigen der Beispiele 20 bis 23, wobei der Prozessor des Weiteren konfiguriert ist, um die Daten, auf die während einer vorbestimmten Zeitspanne nicht zugegriffen wurde, als Reaktion auf ein Ermitteln zu verschieben, dass die Größe der Daten, auf die während der vorbestimmten Zeitspanne nicht zugegriffen wurde, einen vorbestimmten Größenschwellenwert übersteigt.
  • Beispiel 25 umfasst die Datenverarbeitungseinheit aus einem beliebigen der Beispiele 20 bis 24, wobei der Prozessor konfiguriert ist, um als Reaktion auf ein Ermitteln, dass ein verfügbarer Speicherplatz in der Mehrzahl von lokalen Speicherbänken kleiner als ein vorbestimmter Speicherplatz-Schwellenwert ist, die Daten, auf die während einer vorbestimmten Zeitspanne nicht zugegriffen wurde, in die eine oder die mehreren Speicherbänke auf Cloud-Grundlage zu verschieben.
  • 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 (11)

  1. Durch einen Computer realisiertes Verfahren für eine dynamische Datenverlagerung, wobei das Verfahren aufweist: ein Überwachen von Zugriffen auf Daten, die in einer Mehrzahl von lokalen Speicherbänken eines Unternehmensspeichersystems gespeichert sind; auf Grundlage der überwachten Zugriffe ein Ermitteln von Daten, auf die während einer vorbestimmten Zeitspanne nicht zugegriffen wurde; und ein Verschieben der Daten, auf die während der vorbestimmten Zeitspanne nicht zugegriffen wurde, in eine oder mehrere Speicherbänke auf Cloud-Grundlage des Unternehmensspeichersystems, wobei jede Speicherbank auf Cloud-Grundlage Speicherplatz in einer oder mehreren Cloud-Speichereinheiten aufweist, wobei der Speicherplatz in der einen oder den mehreren Cloud-Speichereinheiten auf entsprechende virtuelle lokale Adressen abgebildet wird, die als eine virtuelle lokale Speicherbank gruppiert werden.
  2. Verfahren nach Anspruch 1, des Weiteren aufweisend: als Reaktion auf eine Zugriffsanforderung, die auf die entsprechenden virtuellen lokalen Adressen für mindestens einen Teil der Daten gerichtet ist, ein Umwandeln der Zugriffsanforderung in eine Cloud-Datenzugriffsanforderung, die für eine Anwendungsprogrammschnittstelle (Application Programming Interface, API) konfiguriert ist, die der einen oder den mehreren Cloud-Speichereinheiten der einen oder der mehreren Speicherbänke auf Cloud-Grundlage entspricht; und ein Verlagern des mindestens einen Teils der verschobenen Daten von der einen oder den mehreren Speicherbänken auf Cloud-Grundlage in mindestens eine aus der Mehrzahl von lokalen Speicherbänken.
  3. Verfahren nach Anspruch 2, des Weiteren aufweisend: ein Ermitteln, dass alle verschobenen Daten in mindestens eine aus der Mehrzahl von lokalen Speicherbänken verlagert wurden; und ein Löschen der einen oder der mehreren Speicherbänke auf Cloud-Grundlage.
  4. Verfahren nach Anspruch 1, wobei die vorbestimmte Zeitspanne entweder eine vorbestimmte Anzahl von Wochen oder eine vorbestimmte Anzahl von Tagen aufweist.
  5. Verfahren nach Anspruch 1, wobei ein Verschieben der Daten aufweist: als Reaktion auf ein Ermitteln, dass eine Speicherbank auf Cloud-Grundlage mit ausreichendem Speicherplatz nicht verfügbar ist, ein Erzeugen einer oder mehrerer neuer Speicherbänke auf Cloud-Grundlage; wobei ein Erzeugen einer jeden der einen oder der mehreren neuen 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.
  6. Verfahren nach Anspruch 1, wobei ein Verschieben der Daten als Reaktion auf ein Ermitteln, dass die Größe der Daten, auf die während der vorbestimmten Zeitspanne nicht zugegriffen wurde, einen vorbestimmten Größenschwellenwert übersteigt, ein Verschieben der Daten aufweist, auf die während der vorbestimmten Zeitspanne nicht zugegriffen wurde.
  7. Verfahren nach Anspruch 1, wobei ein Verschieben der Daten als Reaktion auf ein Ermitteln, dass ein verfügbarer Speicherplatz in der Mehrzahl von lokalen Speicherbänken kleiner als ein vorbestimmter Speicherplatz-Schwellenwert ist, ein Verschieben der Daten, auf die während einer vorbestimmten Zeitspanne nicht zugegriffen wurde, in die eine oder die mehreren Speicherbänke auf Cloud-Grundlage aufweist.
  8. Verfahren nach Anspruch 1, wobei die Speicherbänke RAID-Anordnungen aufweisen.
  9. 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 der Einheitenadapter oder der Speicher-Controller des Weiteren konfiguriert ist, um ein Datenverlagerungsmodul zu realisieren, das konfiguriert ist, um die Schritte eines Verfahrens nach einem beliebigen der Ansprüche 1 bis 8 durchzuführen.
  10. 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, die Schritte des Verfahrens nach einem beliebigen der Ansprüche 1 bis 8 durchzuführen.
  11. 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 des Verfahrens nach einem beliebigen der Ansprüche 1 bis 8 durchzuführen.
DE112018003524.7T 2017-09-14 2018-08-20 Dynamische datenverlagerung unter verwendung von speicherbänken auf cloud-grundlage Pending DE112018003524T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/704,775 2017-09-14
US15/704,775 US10372371B2 (en) 2017-09-14 2017-09-14 Dynamic data relocation using cloud based ranks
PCT/IB2018/056280 WO2019053534A1 (en) 2017-09-14 2018-08-20 DYNAMIC DATA TRANSLATION USING CLOUD LEVELS

Publications (1)

Publication Number Publication Date
DE112018003524T5 true DE112018003524T5 (de) 2020-04-09

Family

ID=65631054

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112018003524.7T Pending DE112018003524T5 (de) 2017-09-14 2018-08-20 Dynamische datenverlagerung unter verwendung von speicherbänken auf cloud-grundlage

Country Status (6)

Country Link
US (2) US10372371B2 (de)
JP (1) JP7116381B2 (de)
CN (1) CN111095188B (de)
DE (1) DE112018003524T5 (de)
GB (1) GB2580263B (de)
WO (1) WO2019053534A1 (de)

Families Citing this family (11)

* 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
CN109819061B (zh) * 2018-09-11 2021-09-21 华为技术有限公司 一种在云系统中处理云服务的方法、装置和设备
CN109947373B (zh) * 2019-03-28 2022-05-13 北京大道云行科技有限公司 一种数据处理方法和装置
JP7477143B2 (ja) 2020-03-12 2024-05-01 Necソリューションイノベータ株式会社 ストレージ制御装置、ストレージ制御方法、ストレージシステム、プログラム、及び記録媒体
CN111475117B (zh) * 2020-04-09 2024-01-23 南京信息职业技术学院 一种聚合云存储QoS控制方法及系统
CN111741107B (zh) * 2020-06-19 2023-08-04 北京星辰天合科技股份有限公司 基于文件存储系统的分层方法及装置、电子设备
CN111741106A (zh) * 2020-06-19 2020-10-02 星辰天合(北京)数据科技有限公司 基于文件存储系统的文件归档方法及装置、电子设备
US11461335B1 (en) * 2021-04-09 2022-10-04 Snowflake Inc. Optimized processing of data in different formats
US11100111B1 (en) 2021-04-09 2021-08-24 Snowflake Inc. Real-time streaming data ingestion into database tables
CN113949713A (zh) * 2021-10-15 2022-01-18 佳缘科技股份有限公司 一种基于数据漂移的动态存储方法、存储介质和计算机设备

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US7225211B1 (en) * 2003-12-31 2007-05-29 Veritas Operating Corporation Multi-class storage mechanism
US8795210B2 (en) * 2006-07-11 2014-08-05 American Medical Innovations, L.L.C. System and method for a low profile vibrating plate
US7590599B2 (en) * 2006-12-22 2009-09-15 International Business Machines Corporation System and method of automatically maintaining and recycling software components
US8250215B2 (en) * 2008-08-12 2012-08-21 Sap Ag Method and system for intelligently leveraging cloud computing resources
US8769049B2 (en) 2009-04-24 2014-07-01 Microsoft Corporation Intelligent tiers of backup data
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
US8516137B2 (en) 2009-11-16 2013-08-20 Microsoft Corporation Managing virtual hard drives as blobs
WO2011063034A1 (en) * 2009-11-17 2011-05-26 Rtp, Llc Systems and methods for augmented reality
CN101719106A (zh) 2009-12-11 2010-06-02 成都市华为赛门铁克科技有限公司 一种精简配置存储阵列的管理方法、装置和系统
US8122282B2 (en) * 2010-03-12 2012-02-21 International Business Machines Corporation Starting virtual instances within a cloud computing environment
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
US8484416B2 (en) 2010-12-23 2013-07-09 Lsi Corporation High availability raid using low-cost direct attached raid controllers
WO2012114338A1 (en) 2011-02-22 2012-08-30 Infinidat Ltd. Cloud storage arrangement and method of operating thereof
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
JP2013026350A (ja) * 2011-07-19 2013-02-04 Sony Corp 光発振装置及び記録装置
US9781205B2 (en) 2011-09-12 2017-10-03 Microsoft Technology Licensing, Llc Coordination engine for cloud selection
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
US9830271B2 (en) 2012-07-25 2017-11-28 Vmware, Inc. Transparent virtualization of cloud storage
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
TW201435612A (zh) 2013-03-12 2014-09-16 Hon Hai Prec Ind Co Ltd 儲存空間擴展系統及方法
GB2513377A (en) 2013-04-25 2014-10-29 Ibm Controlling data storage in an array of storage devices
CN117215971A (zh) * 2013-10-21 2023-12-12 Flc环球有限公司 最终级高速缓存系统和对应的方法
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
US9342346B2 (en) * 2014-07-27 2016-05-17 Strato Scale Ltd. Live migration of virtual machines that use externalized memory pages
US9881018B2 (en) 2014-08-14 2018-01-30 International Business Machines Corporation File management in thin provisioning storage environments
US9646010B2 (en) 2014-08-27 2017-05-09 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
WO2016132572A1 (ja) 2015-02-19 2016-08-25 Necソリューションイノベータ株式会社 データ配置装置及びデータ配置方法
CN104820575B (zh) 2015-04-27 2017-08-15 西北工业大学 实现存储系统自动精简的方法
US10579403B2 (en) 2015-06-29 2020-03-03 Vmware, Inc. Policy based provisioning of containers
US10198447B2 (en) 2015-09-14 2019-02-05 Komprise Inc. Electronic file migration system and various methods of transparent data migration management
US10237343B1 (en) * 2015-12-07 2019-03-19 EMC IP Holding Company LLC Sustaining backup service level objectives using dynamic resource allocation
US10013181B2 (en) 2015-12-07 2018-07-03 International Business Machines Corporation Distributed storage of data in a local storage and a heterogeneous cloud
JP6708948B2 (ja) 2016-01-21 2020-06-10 日本電気株式会社 ブロックストレージ
US9665303B1 (en) 2016-10-12 2017-05-30 Divergent Storage Systems, Inc. Method and apparatus for storing information using an intelligent block storage controller

Also Published As

Publication number Publication date
CN111095188A (zh) 2020-05-01
GB2580263A (en) 2020-07-15
GB2580263B (en) 2021-11-17
GB202004106D0 (en) 2020-05-06
US20190347032A1 (en) 2019-11-14
US20190079693A1 (en) 2019-03-14
JP2020533694A (ja) 2020-11-19
US10372371B2 (en) 2019-08-06
CN111095188B (zh) 2023-12-15
WO2019053534A1 (en) 2019-03-21
JP7116381B2 (ja) 2022-08-10

Similar Documents

Publication Publication Date Title
DE112018003524T5 (de) Dynamische datenverlagerung unter verwendung von speicherbänken auf cloud-grundlage
DE112011104419B4 (de) Bereichsmigration für gepaarte Speicherung
DE112018005121T5 (de) Speichersystem unter verwendung von cloud-speicher als eine speicherbank
DE112018005135T5 (de) Thin provisioning unter verwendung von speicherbänken auf cloud-grundlage
DE112014000254B4 (de) Mehrstufiges Zwischenspeichern und Migrieren in unterschiedlichen Granularitäten
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
DE112019002948T5 (de) Feststellen einer optimalen speicherumgebung für datensätze und für das migrieren von datensätzen
DE102012218269B4 (de) Schnittstelle zur Verwaltung von Datenverschiebung in einem Speichersystem mit thin provisioning
DE112012004318T5 (de) Verwendung eines virtuellen Laufwerks als Hot-Spare-Einheit für eine RAID-Gruppe
DE202010017667U1 (de) Datenspeichervorrichtung mit Flash-Speicherchips
DE202010017613U1 (de) Datenspeichervorrichtung mit host-gesteuerter Speicherbereinigung
DE112012001162T5 (de) Defragmentierung von Datenspeicherpools
DE112014006156T5 (de) Datenmigrationsverfahren eines Speichersystems
DE112019000992T5 (de) Verwaltung virtueller Speicherlaufwerke in einem Datenspeichersystem
DE102014116808A1 (de) Realisieren einer dynamischen Virtualisierung eines Sriov-fähigen SAS-Adapters
DE112018006769T5 (de) Erweiterte zwischenspeicherzuweisung basierend auf virtuellen knotenressourcen
DE102013205571B4 (de) Verfahren, Computerprogrammprodukt und Vorrichtung zum Migrieren von Datenträgern mit schlanker Speicherzuweisung in mehrschichtigen Speicherarchitekturen
DE112014002754T5 (de) Effiziente Aufgabenplanung unter Verwendung eines Sperrmechanismus
DE112013006634T5 (de) Computersystem und Computersystemsteuerverfahren
DE112018000900T5 (de) Verarbeiten eines Befehls zum Freigeben von Speicherplatz in einem Computersystem
DE112019005392T5 (de) Steigern von datenleistung durch transferieren von daten zwischen speicherebenen unter verwendung von arbeitslastmerkmalen
DE112021005233T5 (de) Verbesserte anwendungsleistung durch verwenden vonspeichersystemoptimierung
DE102019102643A1 (de) Neuartige SSD-Architektur für eine FPGA-basierte Beschleunigung

Legal Events

Date Code Title Description
R012 Request for examination validly filed