[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

DE102012218269B4 - Schnittstelle zur Verwaltung von Datenverschiebung in einem Speichersystem mit thin provisioning - Google Patents

Schnittstelle zur Verwaltung von Datenverschiebung in einem Speichersystem mit thin provisioning Download PDF

Info

Publication number
DE102012218269B4
DE102012218269B4 DE102012218269.1A DE102012218269A DE102012218269B4 DE 102012218269 B4 DE102012218269 B4 DE 102012218269B4 DE 102012218269 A DE102012218269 A DE 102012218269A DE 102012218269 B4 DE102012218269 B4 DE 102012218269B4
Authority
DE
Germany
Prior art keywords
logical
unit
source
target
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE102012218269.1A
Other languages
English (en)
Other versions
DE102012218269A1 (de
Inventor
Gaurav Chhaunker
Roy Subhojit
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 DE102012218269A1 publication Critical patent/DE102012218269A1/de
Application granted granted Critical
Publication of DE102012218269B4 publication Critical patent/DE102012218269B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/065Replication 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/0608Saving storage space on 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/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Verfahren (600) zur Verwaltung von Datenverschiebung (518) in einem Speichersystem (100; 400; 500; 700) mit Thin Provisioning (511), wobei das Verfahren das Folgendes umfasst:Empfangen (606), durch eine Datenverarbeitungseinheit (102), einer Anforderung (204) zum Kopieren eines logischen Quellenblocks einer logischen Quelleneinheit (206; 512) mit Thin Provisioning (511) in einen logischen Zielblock einer logischen Zieleinheit (208; 516) mit Thin Provisioning (511), wobei in logischen Einheiten mit Thin Provisioning physischer Speicherplatz (522) in Reaktion auf eine Schreiboperation, die ausgeführt wird, zugeordnet wird, nicht aber während der Erstellung der logischen Einheiten mit Thin Provisioning; undErzeugen (608), durch die Datenverarbeitungseinheit, von Metadaten (214), die eine Entsprechung (216) zwischen dem logischen Quellenblock und dem logischen Zielblock speichern, wobei ein Zuordnen von jeglichem physischen Speicherplatz für den logischen Zielblock in der logischen Zieleinheit mit Thin Provisioning vermieden wird,wobei eine Anwendungsprogrammierschnittstelle (302) bereitgestellt wird, die eine virtuelle Datenverschiebung von der logischen Quelleneinheit mit Thin Provisioning in die logische Zieleinheit mit Thin Provisioning gestattet, ohne tatsächlich irgendeine physische Verschiebung von Daten von der logischen Quelleneinheit mit Thin Provisioning in die logische Zieleinheit mit Thin Provisioning auszuführen, um Merkmale von Thin-Provisioning-Systemen zu nutzen, um Zuordnungen zwischen virtuellen und physischen Blöcken bereitzustellen.

Description

  • STAND DER TECHNIK
  • Gebiet
  • Die Offenbarung betrifft ein Verfahren, ein System und ein Erzeugnis für eine Schnittstelle für die Verwaltung von Datenverschiebung in einem Speichersystem mit Thin Provisioning (schlanker Speicherzuweisung).
  • Stand der Technik
  • Ein Speichersystem kann aus einer Speicher-Steuereinheit bestehen, die eine Vielzahl von physischen Speichereinheiten steuert. Die Vielzahl von physischen Speichereinheiten kann Festplatten, Solid-State-Disks, Bänder usw. enthalten. Die Speicher-Steuereinheit kann die Vielzahl von physischen Speichereinheiten in eine Vielzahl von logischen Speichereinheiten konfigurieren, die eine Vielzahl von Speicherdatenträgern umfassen.
  • In einem Speichersystem ist eine logische Einheitennummer oder LUN (Logical Unit Number) eine Nummer, die zum Kennzeichnen einer logischen Einheit verwendet wird. Eine logische Einheit ist eine logische Speichereinheit, die von einem Speicherprotokoll adressiert wird, wie beispielsweise Small Computer System Interface (SCSI), Fibre Channel, Internet Small Computer System Interface (iSCSI) usw., die in dem Speichersystem verwendet werden können.
  • Datenverschiebungsoperationen innerhalb des Speichersystems können aus einer Reihe von Gründen auftreten, einschließlich dem Verschieben einer Datei von einem Dateisystem in ein anderes, dem Defragmentieren eines Dateisystems, dem Ausrichten von Blöcken usw. Zu Datenverschiebungsoperationen kann das Verschieben von Daten von einer logischen Quelleneinheit (LUN) in eine Ziel-LUN gehören. Beim Kopieren von Daten von einer Quellen-LUN in eine Ziel-LUN müssen die Daten möglicherweise zuerst von der Quellen-LUN in den Host-Speicher kopiert werden, und dann können die Daten in das gewünschte Ziel auf der Ziel-LUN geschrieben werden, indem die Daten vom Host-Speicher in die Ziel-LUN kopiert werden.
  • Thin-Provisioning-Mechanismen können auf Speichersysteme angewendet werden. Ein Speichersystem, das Thin Provisioning verwendet, kann als Speichersystem mit Thin Provisioning bezeichnet werden. Durch Thin Provisioning wird Speicher zugeordnet (z.B. physische Plattenblöcke oder andere gleichwertige Elemente mit Speicherkapazität), wenn Anwendungsdaten tatsächlich in einen Speicherdatenträger geschrieben werden, der an einen Host angeschlossen ist. Dies ist der Unterschied zum herkömmlichen Speicherdatenträger mit Full Provisioning, bei dem die Kapazität des Speicherdatenträgers zum Zeitpunkt der Erstellung des Speicherdatenträgers vollständig zugeordnet wird. Wenn Speicherdatenträger mit Full Provisioning verwendet werden, besitzt der Host, an den der Speicherdatenträger mit Full Provisioning angeschlossen ist, über die volle Speicherkapazität, und dies nimmt im Back-End-System zusätzlichen Speicher in Anspruch.
  • Ein Speicherdatenträger, der Thin Provisioning unterstützt, wird als ein platzsparender Speicherdatenträger bezeichnet. Zu dem Zeitpunkt, zu dem der platzsparende Speicherdatenträger erstellt wird, wird der Speicherdatenträger so erstellt, als ob die Bereitstellung der vom Benutzer angeforderten vollen Kapazität möglich sei, da aber die tatsächliche Zuordnung von Speicherplatz erst mit dem ersten Host-Schreibvorgang stattfindet, ist diese Kapazität eine virtuelle Kapazität. Alle Eingabe/Ausgabe- (E/A-) Aktivitäten, die vom Speichersystem ausgeführt werden, um bei Bedarf Speicherplatz zuzuordnen, sind für den Host vollkommen transparent.
  • Die US 2010/0191783 A1 betrifft eine Schnittstelle zwischen einem bestehenden lokalen Dateisystem und einem Datenspeicher (z.B. einem „Einmal-Schreiben“-Speicher). Die Schnittstelle erzeugt ein „versioniertes“ Dateisystem und exportiert dieses in den Datenspeicher. Der Zustand des lokalen Dateisystems zu einem bestimmten Zeitpunkt kann mit Hilfe des versionierten Dateisystems bestimmt werden. Vorzugsweise besteht das versionierte Dateisystem aus einem Satz strukturierter Datenrepräsentationen (wie z.B. XML), die Metadaten umfassen, die mit den aktuellen Dateisystemdaten verknüpft sind. Im Betrieb erstellt die Schnittstelle strukturierte Datenrepräsentationen, die den Versionen des lokalen Dateisystems entsprechen, sowie die eigentlichen Dateisystemdaten, die diese strukturierten Datenrepräsentationen darstellen, und exportiert sie in den Datenspeicher. Ein mit der Schnittstelle verknüpfter Cache speichert kürzlich verwendete Daten und Metadaten sowie alle Schreibdaten und Metadaten, die darauf warten, in den Datenspeicher übertragen zu werden. Vor der Übertragung können eine oder mehrere Datentransformationen, wie Komprimierung, Verschlüsselung, Deduplizierung und ähnliches, auf die Daten und Metadaten angewendet werden. Der Datenspeicher umfasst jede Art von Back-End-Speichergerät, System oder Architektur. In einer Ausführungsform umfasst der Datenspeicher einen oder mehrere Anbieter von Cloud-Storage-Diensten. Je nach Bedarf wird dann eine bestimmte strukturierte Datenrepräsentation verwendet, um eine zugehörige Version des Dateisystems abzurufen. Auf diese Weise erfordert das versionierte Dateisystem nur einmaliges Schreibverhalten des Datenspeichers, um seinen vollständigen Zustand zu jedem Zeitpunkt zu erhalten. Der Cache ermöglicht eine nahezu sofortige Wiederherstellung des Dateisystems auf einer Bedarfsbasis. Wenn sich die Schnittstelle vor einem generischen Datenspeicher befindet, verwandelt die Schnittstelle diesen Datenspeicher in ein „versioniertes Dateisystem“ („VFS“). Ein Inhaltskontrollsystem (CCS) wird zur Konfiguration und Verwaltung der Schnittstelle verwendet.
  • Die US 5,835,954 A betrifft unterbrechungsfreie Datenmigrationen, die von einem Quell-DASD (Direct Access Storage Device) zum Ziel-DASD in einem Daten-Subsystem durchgeführt werden. Sowohl Quell- als auch Ziel-DASDs bestehen aus einem Cache und einem nichtflüchtigen Speicher (NVS). In Bezug auf den Host arbeitet das Ziel-DASD im Allgemeinen als Quelle und verwaltet Anfragen für den Zugriff auf die Quell-DASD-Daten durch die Ausgabe von E/A-Anforderungen an das Quell-DASD. Zuerst initiiert der Ziel-DASD einen Hintergrund-Datentransfer, bei dem die Daten vom Quell-DASD auf den Ziel-DASD kopiert werden, wobei der Ziel-DASD darauf vorbereitet wird, den Quell-DASD zu ersetzen. Der Datentransfer beinhaltet das Kopieren von Datenelementen direkt vom Cache des Quell-DASD in den Cache des Ziel-DASD sowie das Kopieren von Datenelementen vom NVS des Quell-DASD in den NVS des Ziel-DASD. Während des Datentransfers im Hintergrund kann der Host immer noch Datenzugriffsoperationen, wie z.B. Lesen und Schreiben, mit dem Ziel-DASD durchführen. Für Daten, die bereits vom Quell-DASD auf den Ziel-DASD kopiert wurden, liest der Host diese Daten vom Ziel-DASD. Host-Anforderungen zum Lesen von Daten, die noch nicht auf den Quell-DASD kopiert wurden, führen zu einem Staging der Daten vom Quell-DASD auf den Ziel-DASD. Bei Host-Schreibanforderungen müssen die Daten in den Ziel-DASD geschrieben werden, wenn keine Quelldaten zum Abschluss des Schreibvorgangs benötigt werden. Um Host-Schreibanforderungen zu erfüllen, die Daten erfordern, die noch nicht vom Quell-DASD kopiert wurden, werden die Daten vom Quell-DASD auf den Ziel-DASD kopiert.
  • Die US 7,685,399 B2 betrifft ein Verfahren zum Verschieben der Daten zwischen den Speicheradressen in einem Computersystem, bei dem Daten, die durch Speicheradressen referenziert werden, im physischen Speicher gespeichert werden. Das Verfahren umfasst das Bereitstellen eines Übersetzungsmechanismus zum Abbilden jeweiliger Seiten von aneinandergrenzenden Speicheradressen auf entsprechende Stellen im physikalischen Speicher gemäß einer spezifizierten Abbildung, wobei eine erste Seite von Speicheradressen auf eine erste Stelle im physikalischen Speicher und eine zweite Seite von Speicheradressen auf eine zweite Stelle im physikalischen Speicher abgebildet wird; und Ändern der spezifizierten Abbildung des Übersetzungsmechanismus auf eine neue Abbildung, bei der die zweite Seite von Speicheradressen auf die erste Stelle im physischen Speicher abgebildet wird, wodurch die an der ersten Stelle gespeicherten Daten effektiv von der ersten Seite von Speicheradressen auf die zweite Seite von Speicheradressen verschoben werden, ohne die Daten zwischen Stellen im physischen Speicher zu verschieben.
  • Die US 7,904,681 B1 betrifft ein Verfahren und ein System, die eine Datenmigration von einem logischen Quell-Datenvolumen zu einem logischen Ziel-Datenvolumen in der Signalkommunikation mit dem logischen Quell-Datenvolumen mit minimaler Unterbrechung der Zugänglichkeit dieser Daten ermöglichen. Die Kohärenz der Daten auf dem logischen Quell--Datenvolumen und dem logischen Ziel-Datenvolumen wird bestätigt. Eine Zuordnung einer ersten Pseudoname wird zu einem Identifikator des logischen Quell--Datenvolumens und eine Zuordnung einer zweiten Pseudoname zu einem Identifikator des logischen Ziel Quell--Informationen, die spezifisch für den von ihm identifizierten Logical-Volume sind. Der erste Pseudoname wird dann dem Ziel-Logical-Volume-Bezeichner zugeordnet.
  • Die US 2009/0125680 A1 betrifft Zuordnungsinformationen, die angeben, welche physikalischen Bereiche welchen virtuellen Bereichen für ein virtuelles Volumen, dessen Kapazität dynamisch erweitert wird, zugeordnet wurden. Die US 2009/0125680 A1 betrifft ferner Informationen zur Verwaltung physikalischer Bereiche, die angeben, welche physikalischen Bereiche welchen virtuellen Bereichen zugeordnet wurden. Die Verwaltungsinformationen für physikalische Bereiche werden referenziert, um festzustellen, ob ein physikalischer Bereich mit geringer Zuverlässigkeit, d.h. ein physikalischer Bereich, dessen Zuverlässigkeit durch das Auftreten eines Fehlers in einem bestimmten physischen Speichergerät verringert wurde und der zu einer RAID-Gruppe gehört, die dieses bestimmte physische Speichergerät umfasst, einem virtuellen Bereich zugewiesen wurde oder nicht. Ein Datenwiederherstellungsprozess wird nicht für einen physikalischen Bereich mit geringer Zuverlässigkeit durchgeführt, der nicht einem virtuellen Bereich zugeordnet wurde, sondern ein Datenwiederherstellungsprozess wird für einen physikalischen Bereich mit geringer Zuverlässigkeit durchgeführt, der einem virtuellen Bereich zugeordnet wurde.
  • KURZDARSTELLUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Bereitgestellt werden ein Verfahren nach Anspruch 1, 2 oder 10, ein System nach Anspruch 14, 15 oder 16, ein Computerprogrammprodukt nach Anspruch 17 und ein Netzwerk nach Anspruch 18.
  • In einem Beispiel empfängt eine Datenverarbeitungseinheit eine Anforderung, einen logischen Quellenblock einer logischen Quelleneinheit mit Thin Provisioning in einen logischen Zielblock einer logischen Zieleinheit mit Thin Provisioning zu kopieren, wobei in den logischen Einheiten mit Thin Provisioning physischer Speicherplatz zugeordnet wird in Reaktion auf eine Schreiboperation, die durchgeführt wird, nicht aber während der Erstellung der logischen Einheiten mit Thin Provisioning. Die Datenverarbeitungseinheit erzeugt Metadaten, die eine Entsprechung zwischen dem logischen Quellenblock und dem logischen Zielblock speichern, wobei die Zuordnung von jeglichem physischen Speicherplatz für den logischen Zielblock in der logischen Zieleinheit mit Thin Provisioning vermieden wird.
  • Im weiteren Beispiel stellt eine Speicherverwaltungsanwendung, die in der Datenverarbeitungseinheit ausgeführt wird, eine Anwendungsprogrammierschnittstelle bereit, um physischen Speicher neu zuzuordnen, der aktuell dem logischen Quellenblock der logischen Quelleneinheit mit Thin Provisioning zugeordnet ist, der dem logischen Zielblock der logischen Zieleinheit mit Thin Provisioning zugeordnet werden soll, ohne Daten physisch aus dem logischen Quellenblock mit Thin Provisioning in die logische Einheit mit Thin Provisioning zu verschieben.
  • Im noch weiteren Beispiel stellt eine Speicherverwaltungsanwendung, die in der Datenverarbeitungseinheit ausgeführt wird, eine Anwendungsprogrammierschnittstelle bereit, um physischen Speicher zu tauschen, der aktuell dem logischen Quellenblock der logischen Quelleneinheit mit Thin Provisioning zugeordnet ist, der mit physischem Speicher getauscht werden soll, der einem logischen Zielblock der logischen Zieleinheit mit Thin Provisioning zugeordnet ist, wobei bei der Ausführung der Anwendungsprogrammierschnittstelle der Austausch atomar ausgeführt wird.
  • Im noch weiteren Beispiel wird eine Anwendungsprogrammierschnittstelle bereitgestellt, die eine virtuelle Datenverschiebung aus der logischen Quelleneinheit mit Thin Provisioning in die logische Zieleinheit mit Thin Provisioning gestattet, ohne tatsächlich irgendeine physische Verschiebung von Daten aus der logischen Quelleneinheit mit Thin Provisioning in die logische Zieleinheit mit Thin Provisioning vorzunehmen, um Merkmale von Thin-Provisioning-Systemen für die Bereitstellung von Zuordnungen zwischen virtuellen und physischen Blöcken zu nutzen.
  • Im noch weiteren Beispiel werden Daten, die im logischen Quellenblock gespeichert sind, als Reaktion auf eine Rekonfiguration der logischen Quelleneinheit mit Thin Provisioning oder der logischen Zieleinheit mit Thin Provisioning als mit Full Provisioning physisch in den logischen Zielblock kopiert.
  • Im weiteren Beispiel sind die logische Quelleneinheit mit Thin Provisioning und die logische Zieleinheit mit Thin Provisioning logische Darstellungen von Speicher, der in einer oder mehreren physischen Speichereinheiten verwaltet wird, die mit der Datenverarbeitungseinheit verbunden sind. Der logische Quellenblock ist eine logische Unterteilung der logischen Quelleneinheit mit Thin Provisioning. Der logische Zielblock ist eine logische Unterteilung der logischen Zieleinheit mit Thin Provisioning.
  • In bestimmten Ausführungsformen ist das Netzwerk so konfiguriert, dass es eine Cloud-Computing-Umgebung bereitstellt, in dem die Datenverarbeitungseinheit einen Datenverarbeitungs- und Speicherdienst bereitstellt.
  • Figurenliste
  • Im Folgenden wird auf die Zeichnungen Bezug genommen, in denen gleiche Bezugszeichen durchgängig für entsprechende Teile stehen:
    • 1 veranschaulicht ein Blockschema einer Datenverarbeitungsumgebung, die eine Datenverarbeitungseinheit enthält, die gemäß bestimmten Ausführungsformen über ein Netzwerk mit einer Vielzahl von physischen Speichereinheiten verbunden ist;
    • 2 veranschaulicht ein Blockschema, das eine Zuordnung von beispielhaften virtuellen Datenverschiebungsoperationen gemäß bestimmten Ausführungsformen zeigt;
    • 3 veranschaulicht ein Blockschema, das beispielhafte Anwendungsprogrammierschnittstellen gemäß bestimmten Ausführungsformen zeigt;
    • 4 veranschaulicht ein Blockschema, das eine Datenverschiebung über mehrere Schichten mit Hilfe mehrerer Ressourcen gemäß bestimmten Ausführungsformen zeigt;
    • 5 veranschaulicht ein Blockschema, das zeigt, wie eine Datenverschiebung mit Hilfe einer Neuzuordnungs- (Remap-) Anwendungsprogrammierschnittstelle gemäß bestimmten Ausführungsformen vermieden wird;
    • 6 veranschaulicht ein Ablaufdiagramm, das bestimmte Operationen gemäß bestimmten Ausführungsformen zeigt; und
    • 7 veranschaulicht ein Blockschema eines Datenverarbeitungssystems, das bestimmte Elemente zeigt, die in der Datenverarbeitungseinheit von 1 gemäß bestimmten Ausführungsformen enthalten sein können.
  • AUSFÜHRLICHE BESCHREIBUNG
  • In der folgenden Beschreibung wird auf die begleitenden Zeichnungen Bezug genommen, die einen Bestandteil hiervon bilden, und die mehrere Ausführungsformen veranschaulichen. Es versteht sich von selbst, dass andere Ausführungsformen verwendet und strukturelle und funktionsfähige Änderungen vorgenommen werden dürfen.
  • Datenverschiebung in Speichersystemen
  • Wenn einige oder alle Datenverschiebungen in Speichersystemen vermieden werden, können erhebliche Leistungsverbesserungen eintreten. In Umgebungen von Unternehmensspeichersystemen können Mechanismen für die intelligente Verwaltung von Daten und die Vermeidung unnötiger Betriebskosten für Datenverschiebungen die Leistung des Speichersystems erheblich verbessern. Mit der explosionsartigen Zunahme von Daten, wie beispielsweise digitalen Fotos, digitalen Videos usw., sind zudem die Speicherleistung und Reduzierung von Speicheranforderungen zu wichtigen Faktoren bei der Auswahl eines Speicheranbieters geworden, und die Benutzer können bevorzugt Speicheranbieter wählen, die Speichersysteme bereitstellen, die unnötige Datenverschiebungen vermeiden und auch die Verschwendung von Speicherplatz vermeiden.
  • Es sollte erwähnt werden, dass, wenn die Datenreplikation in einem Rechenzentrum aktiviert ist, jeder Schreibvorgang auf die replizierten Datenträger eventuell über eine teure Netzwerkverbindung in ein fernes Speichersystem repliziert werden muss. Wenn daher die Datenverschiebung reduziert wird, führt dies auch zu Einsparungen von Bandbreite über die Datenreplikationsverbindung.
  • Bestimmte Systeme führen Kopiervorgänge aus, wie z.B. eine dateisystemübergreifende Verschiebung von Dateien usw., indem Daten aus dem Speichersystem in den Host-Speicher eingelesen und die Daten auf einen neuen Speicherplatz zurück in das Speichersystem geschrieben werden. In bestimmten Fällen kann es eine erhebliche Menge Zeit in Anspruch nehmen, diese Operationen auszuführen, und es kann wertvolle Bandbreite für das Lesen und Schreiben der Daten verschwendet werden, weil mehr Daten über die Replikationsverbindung gesendet werden müssen.
  • Virtuelle Datenverschiebung in Thin-Provisioning-Systemen
  • Bestimmte Ausführungsformen nutzen die Fähigkeit der Thin-Provisioning-Systeme, physischen Speicher zu virtuellem Adressspeicherplatz zuzuordnen, indem eine Anwendungsprogrammierschnittelle (API) bereitgestellt wird, die eine virtuelle Datenverschiebung von einer logischen Quellenblockadresse einer logischen Quelleneinheit zu einem logischen Zielblock einer logischen Zieleinheit gestattet, ohne tatsächlich irgendeine physische Verschiebung von Daten von der logischen Quelleneinheit in die logische Zieleinheit auszuführen.
  • Beispielhafte Ausführungsformen
  • 1 veranschaulicht ein Blockschema einer Datenverarbeitungsumgebung 100, die eine Datenverarbeitungseinheit 102 enthält, die gemäß bestimmten Ausführungsformen über ein Netzwerk 106 mit einer Vielzahl von physischen Speichereinheiten 104a ... 104n verbunden ist.
  • Die Datenverarbeitungseinheit 102 kann jede geeignete Datenverarbeitungseinheit umfassen, einschließlich denjenigen, die auf dem Fachgebiet derzeit bekannt sind wie zum Beispiel ein Personal Computer, eine Workstation, ein Server, ein Mainframe, ein Handheld-Computer, ein Palmtop-Computer, ein Telefongerät, eine Netzwerkeinheit, ein Blade-Computer, ein Server usw. Die physischen Speichereinheiten 104a ... 104n können alle geeigneten Speichereinheiten umfassen wie zum Beispiel Festplatten, Solid-State-Disks, lineare Speichereinheiten usw. Die Datenverarbeitungseinheit 102 und die physischen Speichereinheiten 104a ... 104n können über das Netzwerk 106 Daten austauschen, wobei das Netzwerk 106 jedes geeignete Netzwerk umfassen kann wie zum Beispiel das Internet, ein Speicherbereichsnetz, ein Weitverkehrsnetz, ein lokales Netz usw. In bestimmten Ausführungsformen kann die Datenverarbeitungseinheit 102 in einer Cloud-Computing-Umgebung implementiert sein und für Benutzer Verarbeitungs- und Speicherdienste bereitstellen.
  • Die Datenverarbeitungseinheit 102 führt eine Speicherverwaltungsanwendung 108 aus, die die Vielzahl von Speichereinheiten 104a ... 104n steuert. In bestimmten Ausführungsformen kann die Speicherverwaltungsanwendung 108 oder irgendeine andere Anwendung die Vielzahl der physischen Speichereinheiten 104a ... 104n zu einer Vielzahl von logischen Einheiten mit Thin Provisioning (LUN) 112a, 112b, ..., 112m zugeordnet (Bezugszeichen 110) haben. Die logischen Einheiten mit Thin Provisioning 112a ... 112m können platzsparende Speicherdatenträger umfassen, und diese platzsparenden Speicherdatenträger sparen Speicherplatz, wenn Speicherplatz nur eventuell oder vorübergehend gebraucht wird. Ohne die Verwendung von platzsparenden Speicherdatenträgern nehmen Zielspeicherdatenträger dieselbe physische Kapazität in Anspruch wie Quellenspeicherdatenträger. Wenn ein normaler Speicherdatenträger erstellt wird, belegt er die definierte Kapazität auf den physischen Laufwerken. Ein platzsparender Speicherdatenträger belegt keine physische Kapazität bei der ursprünglichen Erstellung. Speicherplatz wird zugeordnet, wenn Daten tatsächlich auf den platzsparenden Speicherdatenträger geschrieben werden, wodurch eine Bereitstellung der Kapazität des Zielspeicherdatenträgers mit Thin Provisioning ermöglicht wird (mit anderen Worten, kleiner als mit der vollen Kapazität des Quellenspeicherdatenträgers). Daher kann ein Administrator zunächst weniger Speicherkapazität bereitstellen, was helfen kann, die Menge an physischem Speicher zu verringern, die von vielen Installationen benötigt wird.
  • Die Speicherverwaltungsanwendung 108, die in der Datenverarbeitungseinheit 102 ausgeführt wird, kann in bestimmten Ausführungsformen eine oder mehrere Anwendungsprogrammierschnittstellen (API) 114 implementieren. Die Anwendungsprogrammierschnittstellen 114 können das Verschieben von Daten von einer logischen Quelleneinheit mit Thin Provisioning in eine logische Zieleinheit mit Thin Provisioning gestatten, ohne die in einer oder mehreren physischen Speichereinheiten gespeicherten Daten physisch zu kopieren.
  • 2 veranschaulicht ein Blockschema 200, das beispielhafte virtuelle Datenverschiebungsoperationen 202 gemäß bestimmten Ausführungsformen zeigt. Die in 2 veranschaulichten beispielhaften virtuellen Datenverschiebungsoperationen können durch die Speicherverwaltungsanwendung 108 erfolgen, die in der Datenverarbeitungseinheit 102 ausgeführt wird.
  • Die Speicherverwaltungsanwendung 108 kann einen Befehl 204 empfangen, einen oder mehrere logische Blöcke aus einer logischen Quelleneinheit mit Thin Provisioning 206 in eine logische Zieleinheit mit Thin Provisioning 208 zu kopieren. Die Quelleneinheit mit Thin Provisioning 206 kann eine Vielzahl von logischen Blöcken umfassen, die in logischen Blockadressen 210a, 210b, ..., 210m gespeichert sind, und der logische Zieldatenträger mit Thin Provisioning 208 kann eine Vielzahl von logischen Blöcken umfassen, die in logischen Blockadressen 212a, 212b, ..., 212n gespeichert sind. Zum Beispiel werden die logischen Blockadressen LBA-S1, LBA-S2, LBA-SM der logischen Quelleneinheit mit Thin Provisioning 206 jeweils mit den Bezugszeichen 210a, 210b, 210m angezeigt, und die logischen Blockadressen LBA-T1, LBA-T2, LBA-TN der logischen Zieleinheiten mit Thin Provisioning 208 werden jeweils mit den Bezugszeichen 212a, 212b, 212n gezeigt.
  • In bestimmten beispielhaften Ausführungsformen empfängt die Speicherverwaltungsanwendung 108 einen Befehl 204, unter LBA S2 210b gespeicherte Blöcke der logischen Quelleneinheit mit Thin Provisioning nach LBA-T1 212a der logischen Einheit mit Thin Provisioning zu kopieren. In Reaktion darauf verwendet die Speicherverwaltungsanwendung 108 die Anwendungsprogrammierschnittstelle 114, um die Metadaten 214 zu erzeugen. In den Metadaten 214 kann ein Zeiger 216 eine Entsprechung zwischen LBA-S2 der logischen Quelleneinheit mit Thin Provisioning (mit Bezugszeichen 218 gezeigt) und LBA-T1 der logischen Zieleinheit mit Thin Provisioning (mit Bezugszeichen 220 gezeigt) bereitstellen. Aus der logischen Quelleneinheit mit Thin Provisioning 206 werden keine Datenblöcke physisch in die logische Zieleinheit mit Thin Provisioning 208 kopiert. Der Zeiger 216 gibt an, dass Daten, die in LBA-T1 220 der logischen Zieleinheit mit Thin Provisioning kopiert werden sollten, (die tatsächlich aber nicht kopiert wurden), tatsächlich in LBA-S2 218 der logischen Quelleneinheit mit Thin Provisioning gespeichert sind. Wenn eine Leseanforderung für Daten empfangen wird, die nach LBA-T1 212a der logischen Zieleinheit mit Thin Provisioning 208 kopiert werden sollten, werden die Daten von der Speicherverwaltungsanwendung 108 aus LBA-S1 210a der logischen Quelleneinheit mit Thin Provisioning nach der Verarbeitung der Metadaten 214 bereitgestellt, die den Zeiger 216 enthalten.
  • 3 veranschaulicht ein Blockschema 300, das beispielhafte Anwendungsprogrammierschnittstellen 302 gemäß bestimmten Ausführungsformen zeigt. Die beispielhaften Anwendungsprogrammierschnittstellen 302 können Beispiele für die in den 1 und 2 gezeigten Anwendungsprogrammierschnittstellen 114 sein.
  • In 3 sind zwei verschiedene Anwendungsprogrammierschnittstellen (API) gezeigt. Eine erste Anwendungsprogrammierschnittstelle ist die Remap-API (Neuzuordnungs-API) 304, und die zweite Anwendungsprogrammierschnittstelle ist die Swap-API (Tausch-API) 306.
  • Die Remap-API 304 gestattet, dass physischer Speicher, der aktuell einer logischen Quellenblockadresse (sourceLBA-Parameter 310) einer logischen Quelleneinheit (sourceLUN-Parameter 308) zugeordnet ist, der angegebenen logischen Zielblockadresse (targetLBA-Parameter 314) der logischen Zieleinheit (targetLUN-Parameter 312) zugeordnet wird, ohne eine Lese- oder Schreiboperation für die Daten durch die Anwendung zu verursachen. Die logische Darstellung der Remap-API 304 ist wie folgt (wobei der size-Parameter 316 die Größe des zuzuordnenden Blocks ist):
    • remap(sourceLun, sourceLBA, targetLUN, targetLBA, size).
  • Die Swap-API 306 gestattet, dass physischer Speicher, der einer logischen Quellenblockadresse (sourceLBA-Parameter 320) einer logischen Quelleneinheit (sourceLUN-Parameter 318) zugewiesen ist, virtuell mit dem physischen Speicher atomar getauscht wird, der einer logischen Zielblockadresse (targetLBA-Parameter 324) einer logischen Zieleinheit (targetLUN-Parameter 322) für eine angegebene Größe (size-Parameter 326) zugewiesen ist. Die logische Darstellung der Swap-AP! 306 ist wie folgt:
    • swap(sourceLun, sourceLBA, targetLUN, targetLBA, size)
  • In bestimmten Ausführungsformen können die logische Quelleneinheit und die logische Zieleinheit verschiedene logische Einheiten sein. In bestimmten anderen Ausführungsformen können die Remap- und die Swap-API für logische Blockadressen verwendet werden, die sich innerhalb derselben logischen Einheit befinden. Die logischen Quellen- und Zieleinheiten sind jedoch Teil desselben Speicher-Array.
  • In Fällen, in denen Datenreplikation auf dem zugrunde liegenden Speicher-Array konfiguriert ist, können die beispielhaften APIs 302 so angewendet werden, dass die Verschiebeoperationen ausgeführt werden können, ohne Daten über die Replikationsverknüpfung zum fernen Speicher zu verschieben, wodurch erhebliche Mengen an Replikationsbandbreite eingespart werden. Dieselbe von den APIs 302 bereitgestellte Fähigkeit kann von einem Speicher eingesetzt werden, der als protokollstrukturiertes Array konfiguriert ist.
  • Unter Verwendung der oben genannten API 302 können Anwendungen wie beispielsweise Dateisysteme physischen Speicher, der aktuell zu einer Quellen-LUN zugeordnet ist, einer Ziel-LUN neu zuordnen, wodurch bestimmte Dateisystemoperationen ohne eine tatsächliche Datenverschiebung ausgeführt werden können.
  • Eine Veranschaulichung dessen, wie die APIs 302 physische Datenverschiebungen einsparen, ist im Folgenden gezeigt:
    • Das Dateisystem (F1) über LUN=LUN1 hat eine Datei /a, die sich auf LBA = LBA1 befindet und die Größe 4 K aufweist.
  • Diese Datei (Datei /a) muss in ein anderes Dateisystem (F2) verschoben werden, das über LUN=LUN2 auf demselben Platten-Array erstellt wurde.
  • F2 legt fest, dass für die zu verschiebende Datei die neue LBA = L2 ist. Dies wird auf der Grundlage der Verfügbarkeit von freien Blöcken auf F2 festgelegt.
  • Im Fall von Full Provisioning werden die Dateidaten mit der Größe 4 K von {LUN1, LBA1} [d.h. von LBA1 auf LUN1] auf {LUN2, LBA2} kopiert, wenn der Befehl „move /f1/a/f2/a“ ausgeführt wird, weil diese Verschiebeoperation eine dateisystemübergreifende Verschiebung zur Folge hat.
  • Im Fall von Thin Provisioning kann jedoch unter Verwendung der APIs 302 diese Dateiverschiebung (über zwei getrennte Dateisysteme) durch Aufrufen der Remap-API 304 wie folgt erreicht werden:
    • remap(LUN1, LBA1, LUN2, LBA2, 4k).
  • Es ist anzumerken, dass eine „move“- (Verschiebe-) Operation (Verschiebung einer einzelnen Datei) intern einen oder mehrere Remap- (Neuzuordnungs-) Aufrufe verursachen kann, was von der Dateigröße und der Größe der Zuordnungseinheit der Ziel- und Quellendateisysteme abhängt. Der oben genannte API-Aufruf wird intern von dem Platten-Array mit Thin Provisioning so interpretiert, den bisher zu {LUN1, LBA1} zugeordneten physischen Speicher, der {LUN2, LBA2} zugeordnet werden soll, neu zuzuordnen, wodurch die Notwendigkeit entfällt, Daten physisch von LUN1 nach LUN2 zu kopieren.
  • (6) Das Dateisystem F2 kann jetzt auf dieselbe Datei mit reduziertem Aufwand zugreifen, indem die für den Kopiervorgang benötigte Zeit vermieden wird. Das Vorgenannte ist möglich, weil in Speicher-Arrays mit Thin Provisioning virtuelle LBAs physischem Speicher nach Bedarf zugeordnet werden, und daher ist es möglich, physischen Speicher zu einer neuen LBA bei und nach Bedarf neu zuzuordnen. Auf ähnliche Weise können die vorgenannten APIs 302 von jeder Anwendung aufgerufen werden, wenn eine Datenverschiebung über LUNs übergreifend erforderlich ist, die sich auf demselben Platten-Array befinden, die Thin Provisioning unterstützt. Die Anwendung kann ein Dateisystem oder eine Datenbank auf einem Host sein. Es ist ebenfalls anzumerken, dass die APIs 302 einschließlich der Remap-API 304 in Form eines beispielhaften SCSI-Befehls verfügbar sein können, den ein Betriebssystem oder andere Anwendungen ausführen können. In bestimmten Ausführungsformen kann der Name eines beispielhaften SCSI-Befehls REMAP lauten und alle Parameter, die in der Remap-API 304 erwähnt wurden, oder andere gleichwertige Parameter enthalten.
  • 4 veranschaulicht ein Blockschema 400, das eine Datenbewegung über mehrere Schichten unter Verwendung mehrerer Ressourcen gemäß bestimmten Ausführungsformen zeigt. Wenn ein Host 402 eine Datei 404, die sich in einem Dateisystem 406 befindet, in ein anderes Dateisystem 410 kopiert und Full Provisioning 411 verwendet wird, werden die Daten in 4 innerhalb des Speicher-Array dateisystemübergreifend verschoben, d.h. kopiert, wobei Ressourcen wie Netzwerkbandbreite usw. verwendet werden, um die Datei 404 auf den Speicherplatz 408 zu kopieren.
  • In 4 ist zu sehen, dass Daten physisch von der logischen Blockadresse 413 der logischen Einheit 412 auf die logische Blockadresse 414 der logischen Einheit 416 verschoben werden. Die Datenverschiebung über mehrere Schichten unter Verwendung mehrerer Ressourcen wird durch das Bezugszeichen 418 im Speicher-Array 420 gezeigt.
  • 5 veranschaulicht ein Blockschema 500, das zeigt, wie die Datenverschiebung unter Verwendung der Remap-Anwendungsprogrammierschnittstelle 304 gemäß bestimmten Ausführungsformen vermieden wird. Wenn in 5 ein Host 502 eine Anforderung verarbeitet, eine Datei 504, die sich in einem Dateisystem 506 befindet, in ein anderes Dateisystem 510 zu kopieren und Thin Provisioning 511 verwendet wird, werden die Daten nicht dateisystemübergreifend innerhalb des Speicher-Array verschoben. Stattdessen ist aus dem Blockschema 500 ersichtlich, dass durch die Verwendung der Remap-API 304 praktisch keine Datenverschiebung vorhanden ist, ausgenommen die Aktualisierung der Zeiger in den Dateisystem-Metadaten. Dies führt zu einer erheblichen Leistungsverbesserung und einer optimaleren Nutzung der Ressourcen in einem Speicherbereichsnetz .
  • In 5 ist zu sehen, dass die Daten nicht physisch von der logischen Blockadresse 513 der logischen Einheit 512 nach der logischen Blockadresse 514 der logischen Einheit 516 verschoben werden. Das Vermeiden einer Datenverschiebung über mehrere Schichten unter Verwendung mehrerer Ressourcen wird mit dem Bezugszeichen 518 im Speicher-Array 520 gezeigt. Es ist zu sehen, dass die Remap-API 304 verursacht, dass die logische Zielblockadresse 514 und die logische Quellenblockadresse 513 auf denselben physischen Speicherplatz 522 im physischen Speicher 524 zeigen.
  • 6 veranschaulicht ein Ablaufdiagramm 600, das bestimmte Operationen gemäß bestimmten Ausführungsformen zeigt. Die in 6 gezeigten Operationen können von der Speicherverwaltungsanwendung 108 implementiert werden, die in der Datenverarbeitungseinheit 102 ausgeführt wird.
  • Die Steuerung beginnt bei Block 602, in dem die Speicherverwaltungsanwendung 108, die in der Datenverarbeitungseinheit 102 ausgeführt wird, eine Anwendungsprogrammierschnittstelle bereitstellt, (z.B. die in 3 gezeigte Remap-API 304), um physischen Speicher neu zuzuordnen, der aktuell einem logischen Quellenblock einer logischen Quelleneinheit mit Thin Provisioning zugeordnet ist, der einem logischen Zielblock einer logischen Zieleinheit mit Thin Provisioning zugeordnet werden soll, ohne Daten physisch von der logischen Quelleneinheit mit Thin Provisioning in die logische Zieleinheit mit Thin Provisioning zu verschieben,
  • Parallel zur Ausführung von Block 602 stellt die Speicherverwaltungsanwendung 108, die in der Datenverarbeitungseinheit 102 ausgeführt wird, (an Block 604) eine Anwendungsprogrammierschnittstelle bereit (z.B. die in 3 gezeigte Swap-API 306), um physischen Speicher zu tauschen, der aktuell einem logischen Quellenblock einer logischen Quelleneinheit mit Thin Provisioning zugewiesen ist und mit dem physischen Speicher, der einem logischen Zielblock einer logischen Zieleinheit mit Thin Provisioning zugewiesen ist, getauscht werden soll, wobei die Ausführung der Anwendungsprogrammierschnittstelle den Austausch atomar ausführt.
  • Nachdem Verstreichen einer gewissen Zeit fährt die Steuerung entweder von Block 602 oder von Block 604 aus mit Block 606 fort. An Block 606 empfängt die Datenverarbeitungseinheit 102 eine Aufforderung, einen logischen Quellenblock einer logischen Quelleneinheit mit Thin Provisioning 206 in einen logischen Zielblock einer logischen Zieleinheit mit Thin Provisioning 208 zu kopieren, wobei in logischen Einheiten mit Thin Provisioning physischer Speicherplatz in Reaktion auf eine gerade durchgeführte Schreiboperation zugeordnet wird, nicht aber während der Erstellung von logischen Einheiten mit Thin Provisioning
  • Die Datenverarbeitungseinheit 102 erzeugt (am Block 608) die Metadaten 214, die eine Entsprechung 216 zwischen dem logischen Quellenblock und dem logischen Zielblock speichern, wobei die Zuordnung von jeglichem physischem Speicherplatz für den logischen Zielblock in der logischen Zieleinheit mit Thin Provisioning vermieden wird.
  • Vom Block 608 aus kann die Steuerung parallel zum Block 610 oder Block 612 fortfahren. Am Block 610 werden die im logischen Quellenblock gespeicherten Daten als Reaktion auf eine Rekonfiguration der logischen Quelleneinheit mit Thin Provisioning oder der logischen Zieleinheit mit Thin Provisioning als mit Full Provisioning physisch in den logischen Zielblock kopiert.
  • Am Block 612 führt die Speicherverwaltungsanwendung 108 eine Leseoperation des logischen Zielblocks aus, indem sie auf den logischen Quellenblock von der Entsprechung 216 aus zugreift, die in den Metadaten 214 verwaltet wird.
  • Bestimmte in 1 bis 6 gezeigte Ausführungsformen stellen sicher, das in Thin-Provisioning-Systemen bestimmte Operationen, die ansonsten (innerhalb desselben Platten-Array) zu einer physischen Datenverschiebung von einer logischen Einheit in eine andere geführt haben könnten, durch Neuzuordnungs- und Tausch-Operationen über Zeiger ersetzt werden, wobei die physische Datenverschiebung von logischen Quellen- in logische Zieleinheiten vermieden wird.
  • In Full-Provisioning-Systemen kann jede Operation zur Datenverschiebung von einer logischen Einheit in eine andere dazu führen, dass Daten aus der Quellen-LUN in den Hostspeicher ausgelesen und danach zurück in die Ziel-LUN geschrieben werden. Dies umfasst die Nutzung von Bandbreite. Bestimmte Ausführungsformen stellen sicher, dass in Thin-Provisioning-Systemen eine Anzahl von Operationen vermieden wird, die anderenfalls zu einer Datenverschiebung mit intensiver Bandbreitennutzung geführt hätten, woraus sich eine verbesserte Ressourcen-Auslastung und eine verbesserte Leistung ergeben.
  • In Full-Provisioning-Systemen führt eine Operation zur Datenverschiebung auf einem Platten-Array dazu, dass neue Daten für einen fernen Standort repliziert werden, wenn Datenreplikation für das Platten-Array konfiguriert ist. Bestimmte Ausführungsformen sparen Netzbandbreite, indem sie sicherstellen, dass Schreiboperationen minimal gehalten werden. Eine Reduzierung der Datenverschiebung über das Netzwerk und reduzierte Lese- und Schreibvorgänge auf Platten stellen einen verringerten Energieverbrauch sicher und damit umweltfreundlichere Rechenzentren und erhebliche Kosteneinsparungen.
  • Weitere Ausführungsformdetails
  • Die beschriebenen Operationen können als ein Verfahren, eine Vorrichtung oder ein Computerprogrammprodukt unter Verwendung von standardmäßigen Programmier- und/oder Konstruktionstechniken implementiert werden, um Software, Firmware, Hardware oder irgendeine Kombination davon zu erzeugen. Dementsprechend können Aspekte der Ausführungsformen die Form einer gänzlichen Hardware-Ausführungsform, einer gänzlichen Software-Ausführungsform (darunter Firmware, residente Software, Mikrocode usw.) oder einer Ausführungsform annehmen, die Software- und Hardware-Aspekte kombiniert, auf die insgesamt hierin als „Schaltung“, „Modul“ oder „System“ Bezug genommen werden kann. Des Weiteren können Aspekte der Ausführungsformen die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien mit dort integriertem computerlesbarem Programmcode integriert ist.
  • Jede Kombination von einem oder mehreren computerlesbaren Medien kann verwendet werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Ein computerlesbares Speichermedium kann zum Beispiel, aber nicht darauf beschränkt, ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem oder eine entsprechende Vorrichtung oder Einheit oder jede geeignete Kombination des Vorgenannten sein. Spezifischere Beispiele (nicht erschöpfende Liste) für das computerlesbare Speichermedium würden Folgendes umfassen: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, eine Festplatte, einen Arbeitsspeicher (RAM), einen Nur-Lese-Speicher (ROM), einen löschbaren programmierbaren Nur-Lese-Speicher (EPROM- oder Flash-Speicher), einen Lichtwellenleiter, einen tragbaren CD-Nur-Lese-Speicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder jede geeignete Kombination des Vorgenannten. Im Kontext dieses Dokuments kann ein computerlesbares Speichermedium jedes materielle Medium sein, das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zum Ausführen von Befehlen enthalten oder speichern kann.
  • Ein computerlesbares Signalmedium kann ein verbreitetes Datensignal mit einem darin integrierten computerlesbaren Programmcode sein, zum Beispiel im Basisband oder als Teil einer Trägerwelle. Ein solches verbreitetes Signal kann jede von einer Reihe von Formen annehmen, darunter, aber nicht darauf beschränkt, elektromagnetisch, optisch oder jede geeignete Kombination davon. Ein computerlesbares Signalmedium kann jedes computerlesbare Medium sein, das kein computerlesbares Speichermedium ist, und das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zum Ausführen von Befehlen übertragen, verbreiten oder transportieren kann.
  • In ein computerlesbares Medium integrierter Programmcode kann unter Verwendung jedes geeigneten Mediums übertragen werden, darunter, aber nicht darauf beschränkt, drahtlos, über Festnetz, Lichtwellenleiterkabel, Funk usw. oder jede geeignete Kombination des Vorgenannten.
  • Computerprogrammcode zum Ausführen von Operationen von Aspekten der vorliegenden Erfindung kann in jeder Kombination von einer oder mehreren Programmiersprachen geschrieben sein, unter anderem einer objektorientierten Programmiersprache wie Java (Java ist eine Marke oder eingetragene Marke von Oracle und/oder dessen angeschlossenen Unternehmen.), Smalltalk, C++ oder Ähnlichem und konventionellen prozeduralen Programmiersprachen wie der Programmiersprache „C“ oder ähnlichen Programmiersprachen. Der Programmcode kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. In letzterem Szenario kann der ferne Computer über jeden Typ von Netzwerk mit dem Computer des Benutzers verbunden sein, darunter ein lokales Netz (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Diensteanbieters).
  • Aspekte der vorliegenden Erfindung werden im Folgenden unter Bezugnahme auf die Ablaufdiagrammdarstellungen und/oder Blockschemata von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich von selbst, dass jeder Block der Ablaufdiagrammdarstellungen und/oder Blockschemata und Kombinationen von Blöcken in den Ablaufdiagrammdarstellungen und/oder Blockschemata mittels Computerprogrammanweisungen implementiert werden können. Diese Computerprogrammanweisungen können für einen Prozessor eines Mehrzweckcomputers, eines Computers für besondere Zwecke oder andere Vorrichtungen zum Verarbeiten von programmierbaren Daten zum Erzeugen einer Maschine bereitgestellt werden, so dass die Anweisungen, die über den Prozessor des Computers oder andere Vorrichtungen zum Verarbeiten von programmierbaren Daten ausgeführt werden, Mittel zum Implementieren der Funktionen/Handlungen erstellen, die in dem Block oder den Blöcken des Ablaufdiagramms und/oder des Blockschemas angegeben sind.
  • Diese Computerprogrammanweisungen können auch in einem computerlesbaren Medium gespeichert werden, das einen Computer, eine andere Vorrichtung zum Verarbeiten von programmierbaren Daten oder andere Einheiten anweisen kann, auf eine bestimmte Weise zu funktionieren, so dass die in einem computerlesbaren Medium gespeicherten Anweisungen einen Fertigungsartikel erzeugen, der Anweisungen enthält, die die im Block oder in den Blöcken des Ablaufdiagramms und/oder des Blockschemas angegebenen Funktionen/Handlungen implementieren.
  • Die Computerprogrammanweisungen können auch in einen Computer, andere Vorrichtungen zum Verarbeiten von programmierbaren Daten oder andere Einheiten geladen werden, um zu veranlassen, dass eine Reihe von Operationsschritten auf dem Computer, anderen programmierbaren Vorrichtungen oder anderen Einheiten ausgeführt wird, um einen computerimplementierten Prozess zu erzeugen, so dass die Anweisungen, die auf dem Computer oder anderen programmierbaren Vorrichtungen ausgeführt werden, Prozesse zum Implementieren der Funktionen/Handlungen bereitstellen, die in dem Block oder den Blöcken des Ablaufdiagramms und/oder des Blockschemas angegeben sind.
  • 7 veranschaulicht ein Blockschema, das bestimmte Elemente zeigt, die gemäß bestimmten Ausführungsformen in der Datenverarbeitungseinheit 102 enthalten sein können. Das System 700 kann die Datenverarbeitungseinheit 102 umfassen und kann eine Schaltung 702 enthalten, die in bestimmten Ausführungsformen mindestens einen Prozessor 704 enthalten kann. Das System 700 kann auch einen Speicher 706 (z.B. eine flüchtige Speichereinheit) und einen Speicher 708 enthalten. Der Speicher 708 kann eine nichtflüchtige Speichereinheit (z.B. EEPROM, ROM, PROM, RAM, DRAM, SRAM, Flash, Firmware, programmierbare Logik usw.), ein Magnetplattenlaufwerk, ein optisches Plattenlaufwerk, ein Bandlaufwerk usw. enthalten. Der Speicher 708 kann eine interne Speichereinheit, eine angeschlossene Speichereinheit und/oder eine Netzzugriffsspeichereinheit umfassen. Das System 700 kann eine Programmlogik 710 mit dem Code 712 enthalten, der in den Speicher 706 geladen und von dem Prozessor 704 oder der Schaltung 702 ausgeführt werden kann. In bestimmten Ausführungsformen kann die Programmlogik 710 mit dem Code 712 im Speicher 708 gespeichert sein. In bestimmten anderen Ausführungsformen kann die Programmlogik 710 in der Schaltung 702 implementiert sein. Daher kann die Programmlogik 710, obwohl 7 die Programmlogik 710 getrennt von den anderen Elementen zeigt, im Speicher 706 und/oder in der Schaltung 702 implementiert sein.
  • Bestimmte Ausführungsformen können auf ein Verfahren zur Implementierung von Datenverarbeitungsanweisungen in ein Datenverarbeitungssystem durch eine Person oder einen automatischen integrierten computerlesbaren Code ausgerichtet sein, wobei der Code in Kombination mit dem Datenverarbeitungssystem fähig ist, die Operationen der beschriebenen Ausführungsformen auszuführen.

Claims (19)

  1. Verfahren (600) zur Verwaltung von Datenverschiebung (518) in einem Speichersystem (100; 400; 500; 700) mit Thin Provisioning (511), wobei das Verfahren das Folgendes umfasst: Empfangen (606), durch eine Datenverarbeitungseinheit (102), einer Anforderung (204) zum Kopieren eines logischen Quellenblocks einer logischen Quelleneinheit (206; 512) mit Thin Provisioning (511) in einen logischen Zielblock einer logischen Zieleinheit (208; 516) mit Thin Provisioning (511), wobei in logischen Einheiten mit Thin Provisioning physischer Speicherplatz (522) in Reaktion auf eine Schreiboperation, die ausgeführt wird, zugeordnet wird, nicht aber während der Erstellung der logischen Einheiten mit Thin Provisioning; und Erzeugen (608), durch die Datenverarbeitungseinheit, von Metadaten (214), die eine Entsprechung (216) zwischen dem logischen Quellenblock und dem logischen Zielblock speichern, wobei ein Zuordnen von jeglichem physischen Speicherplatz für den logischen Zielblock in der logischen Zieleinheit mit Thin Provisioning vermieden wird, wobei eine Anwendungsprogrammierschnittstelle (302) bereitgestellt wird, die eine virtuelle Datenverschiebung von der logischen Quelleneinheit mit Thin Provisioning in die logische Zieleinheit mit Thin Provisioning gestattet, ohne tatsächlich irgendeine physische Verschiebung von Daten von der logischen Quelleneinheit mit Thin Provisioning in die logische Zieleinheit mit Thin Provisioning auszuführen, um Merkmale von Thin-Provisioning-Systemen zu nutzen, um Zuordnungen zwischen virtuellen und physischen Blöcken bereitzustellen.
  2. Verfahren (600), das Folgendes umfasst: Erzeugen (608), durch eine Datenverarbeitungseinheit (102), von Metadaten (214), die eine Entsprechung zwischen einem logischen Quellenblock einer logischen Quelleneinheit (206; 512) mit Thin Provisioning (511) und dem logischen Zielblock einer logischen Zieleinheit (208; 516) mit Thin Provisioning (511) speichern, ohne Daten aus der logischen Quelleneinheit mit Thin Provisioning in die logische Zieleinheit mit Thin Provisioning physisch zu verschieben, wobei eine Anwendungsprogrammierschnittstelle (304) verwendet wird, um physischen Speicher neu zuzuordnen, wobei die Anwendungsprogrammierschnittstelle Parameter aufweist, die eine logische Quelleneinheitennummer (308), eine logische Quellenblockadresse (310), eine logische Zieleinheitennummer (312), eine logische Ziellogikblockadresse (314) und einen size-Parameter (316) beinhalten; und in Reaktion auf eine Rekonfiguration der logischen Quelleneinheit mit Thin Provisioning und der logischen Zieleinheit mit Thin Provisioning als mit Full Provisioning (411), physisches Kopieren (610) von Daten, die im logischen Quellenblock der logischen Quelleneinheit mit Thin Provisioning gespeichert sind, die jetzt eine logische Quelleneinheit (412) mit Full Provisioning (411) ist, in den logischen Zielblock der logischen Zieleinheit (416) mit Thin Provisioning, die jetzt eine logische Zieleinheit mit Full Provisioning (411) ist.
  3. Verfahren nach Anspruch 1, wobei das Verfahren des Weiteren umfasst: Bereitstellen (602), durch eine in der Datenverarbeitungseinheit ausgeführte Speicherverwaltungsanwendung, einer Anwendungsprogrammierschnittstelle (304), um physischen Speicher neu zuzuordnen, der aktuell dem logischen Quellenblock der logischen Quelleneinheit mit Thin Provisioning zugeordnet ist, der dem logischen Zielblock der logischen Zieleinheit mit Thin Provisioning zugeordnet werden soll, ohne Daten aus der logischen Quelleneinheit mit Thin Provisioning in die logische Zieleinheit mit Thin Provisioning physisch zu verschieben.
  4. Verfahren nach Anspruch 1 oder 2, wobei das Verfahren des Weiteren umfasst: Bereitstellen (604), durch eine in der Datenverarbeitungseinheit (306) ausgeführte Speicherverwaltungsanwendung, einer Anwendungsprogrammierschnittstelle, um physischen Speicher zu tauschen, der aktuell dem logischen Quellenblock der logischen Quelleneinheit mit Thin Provisioning zugewiesen ist, der mit dem physischen Speicher getauscht werden soll, der einem logischen Zielblock der logischen Zieleinheit mit Thin Provisioning zugewiesen ist, wobei durch das Ausführen der Anwendungsprogrammierschnittstelle der Austausch atomar ausgeführt wird.
  5. Verfahren nach Anspruch 2, wobei eine Anwendungsprogrammierschnittstelle (302) bereitgestellt wird, die eine virtuelle Datenverschiebung von der logischen Quelleneinheit mit Thin Provisioning in die logische Zieleinheit mit Thin Provisioning gestattet, ohne tatsächlich irgendeine physische Verschiebung von Daten von der logischen Quelleneinheit mit Thin Provisioning in die logische Zieleinheit mit Thin Provisioning auszuführen, um Merkmale von Thin-Provisioning-Systemen zu nutzen, um Zuordnungen zwischen virtuellen und physischen Blöcken bereitzustellen.
  6. Verfahren nach einem der Ansprüche 1, 3, oder 4 ohne Rückbezug auf Anspruch 2, wobei das Verfahren des Weiteren umfasst: physisches Kopieren (610) von Daten, die im logischen Quellenblock gespeichert sind, in den logischen Zielblock in Reaktion auf eine Rekonfiguration der logischen Quelleneinheit mit Thin Provisioning oder der logischen Zieleinheit mit Thin Provisioning als mit Full Provisioning (411).
  7. Verfahren nach einem der Ansprüche 1 bis 6, wobei: die logische Quelleneinheit mit Thin Provisioning und die logische Zieleinheit mit Thin Provisioning logische Darstellungen von Speicher sind, der in einer oder mehreren Speichereinheiten (104a,104n; 420; 520) verwaltet wird, die mit der Datenverarbeitungseinheit verbunden sind; und der logischen Quellenblock eine logische Unterteilung der logischen Quelleneinheit mit Thin Provisioning ist; und der logischen Zielblock eine logische Unterteilung der logischen Zieleinheit mit Thin Provisioning ist.
  8. Verfahren nach Anspruch 2, wobei das Verfahren ferner umfasst: Ausführen (612) einer Leseoperation des logischen Zielblocks der logischen Zieleinheit mit Thin Provisioning durch Zugreifen auf den logischen Quellenblock der logischen Quelleneinheit mit Thin Provisioning von der Entsprechung aus, die in den Metadaten verwaltet wird.
  9. Verfahren nach Anspruch 2, wobei die Anwendungsprogrammierschnittstelle gestattet, dass physischer Speicher, der aktuell der logischen Quellenblockadresse der logischen Quelleneinheit zugeordnet ist, einer angegebenen logischen Zielblockadresse der logischen der Zieleinheit zugeordnet wird, ohne eine Lese- oder Schreiboperation für die Daten durch die Anwendung zu verursachen, und wobei der size-Parameter in der Anwendungsprogrammierschnittstelle einer Größe eines Blocks entspricht, der zugeordnet wird.
  10. Verfahren (600), das Folgendes umfasst: Empfangen (608), durch eine Datenverarbeitungseinheit (102), einer Anforderung (204) zum Kopieren eines logischen Quellenblocks einer logischen Quelleneinheit (206; 512) mit Thin Provisioning (511) in einen logischen Zielblock einer logischen Zieleinheit (208; 516) mit Thin Provisioning (511), wobei in logischen Einheiten mit Thin Provisioning physischer Speicherplatz (522) in Reaktion auf eine Schreiboperation, die ausgeführt wird, zugeordnet wird, nicht aber während der Erstellung der logischen Einheiten mit Thin Provisioning; Erzeugen (608), durch die Datenverarbeitungseinheit, von Metadaten (214), die eine Entsprechung (216) über einen Zeiger (216) zwischen dem logischen Quellenblock und dem logischen Zielblock speichern, ohne Daten aus der logischen Quelleneinheit mit Thin Provisioning in die logischen Zieleinheit mit Thin Provisioning physisch zu verschieben; Ausführen (612) einer Leseoperation des logischen Zielblocks durch Zugreifen auf den logischen Quellenblock von der Entsprechung aus, die in den Metadaten verwaltet wird; und physisches Kopieren (610) von Daten, die im logischen Quellenblock gespeichert sind, in den logischen Zielblock in Reaktion auf eine Rekonfiguration der logischen Quelleneinheit mit Thin Provisioning oder der logischen Zieleinheit mit Thin Provisioning als mit Full Provisioning (411).
  11. Verfahren nach Anspruch 10, wobei das Verfahren des Weiteren umfasst: Bereitstellen (602), durch eine in der Datenverarbeitungseinheit ausgeführte Speicherverwaltungsanwendung, einer Anwendungsprogrammierschnittstelle (304), um physischen Speicher neu zuzuordnen, der aktuell dem logischen Quellenblock der logischen Quelleneinheit mit Thin Provisioning zugeordnet ist, der dem logischen Zielblock der logischen Zieleinheit mit Thin Provisioning zugeordnet werden soll, ohne Daten aus der logischen Quelleneinheit mit Thin Provisioning in die logische Zieleinheit mit Thin Provisioning physisch zu verschieben, wobei die Anwendungsprogrammierschnittstelle Parameter aufweist, die eine logische Quelleneinheitennummer (308), eine logische Quellenblockadresse (310), eine logische Zieleinheitennummer (312), eine logische Ziellogikblockadresse (314) und einen size-Parameter (316) beinhalten.
  12. Verfahren nach Anspruch 10, wobei das Verfahren des Weiteren umfasst: Bereitstellen (604), durch eine in der Datenverarbeitungseinheit (306) ausgeführte Speicherverwaltungsanwendung, einer Anwendungsprogrammierschnittstelle, um physischen Speicher zu tauschen, der aktuell dem logischen Quellenblock der logischen Quelleneinheit mit Thin Provisioning zugewiesen ist, der mit dem physischen Speicher getauscht werden soll, der einem logischen Zielblock der logischen Zieleinheit mit Thin Provisioning zugewiesen ist, wobei durch das Ausführen der Anwendungsprogrammierschnittstelle der Austausch atomar ausgeführt wird, wobei die Anwendungsprogrammierschnittstelle Parameter aufweist, die eine logische Quelleneinheitennummer (318), eine logische Quellenblockadresse (320), eine logische Zieleinheitennummer (322), eine logische Ziellogikblockadresse (324) und einen size-Parameter (326) beinhalten.
  13. Verfahren nach Anspruch 10, wobei eine Anwendungsprogrammierschnittstelle (302) bereitgestellt wird, die eine virtuelle Datenverschiebung von der logischen Quelleneinheit mit Thin Provisioning in die logische Zieleinheit mit Thin Provisioning gestattet, ohne tatsächlich irgendeine physische Verschiebung von Daten von der logischen Quelleneinheit mit Thin Provisioning in die logische Zieleinheit mit Thin Provisioning auszuführen, um Merkmale von Thin-Provisioning-Systemen zu nutzen, um Zuordnungen zwischen virtuellen und physischen Blöcken bereitzustellen, wobei die Anwendungsprogrammierschnittstelle Parameter aufweist, die eine logische Quelleneinheitennummer (308; 318), eine logische Quellenblockadresse (310; 410), eine logische Zieleinheitennummer (312; 322), eine logische Ziellogikblockadresse (314; 324) und einen size-Parameter (316; 326) beinhalten.
  14. System (100; 400; 500; 700), das Folgendes umfasst: einen Speicher (706); und einen Prozessor (704), der mit dem Speicher verbunden ist, wobei der Prozessor Operationen ausführt, wobei die Operationen umfassen: Empfangen (606) einer Anforderung (204) zum Kopieren eines logischen Quellenblocks einer logischen Quelleneinheit (206; 512) mit Thin Provisioning (511) in einen logischen Zielblock einer logischen Zieleinheit (206; 512) mit Thin Provisioning (511), wobei in logischen Einheiten mit Thin Provisioning physischer Speicherplatz (522) in Reaktion auf eine Schreiboperation, die ausgeführt wird, zugeordnet wird, nicht aber während der Erstellung der logischen Einheiten mit Thin Provisioning; und Erzeugen (608) von Metadaten (214), die eine Entsprechung (216) zwischen dem logischen Quellenblock und dem logischen Zielblock speichern, wobei ein Zuordnen von jeglichem physischen Speicherplatz für den logischen Zielblock in der logischen Zieleinheit mit Thin Provisioning vermieden wird, wobei eine Anwendungsprogrammierschnittstelle (302) bereitgestellt wird, die eine virtuelle Datenverschiebung von der logischen Quelleneinheit mit Thin Provisioning in die logische Zieleinheit mit Thin Provisioning gestattet, ohne tatsächlich irgendeine physische Verschiebung von Daten von der logischen Quelleneinheit mit Thin Provisioning in die logische Zieleinheit mit Thin Provisioning auszuführen, um Merkmale von Thin-Provisioning-Systemen zu nutzen, um Zuordnungen zwischen virtuellen und physischen Blöcken bereitzustellen.
  15. System (100; 400; 500; 700), das Folgendes umfasst: einen Speicher (706); und einen Prozessor (704), der mit dem Speicher verbunden ist, wobei der Prozessor Operationen ausführt, wobei die Operationen umfassen: Erzeugen (608) von Metadaten (214), die eine Entsprechung zwischen einem logischen Quellenblock einer logischen Quelleneinheit (206; 512) mit Thin Provisioning (511) und einem logischen Zielblock einer logischen Zieleinheit (208; 516) mit Thin Provisioning (511) speichern, ohne Daten aus der logischen Quelleneinheit mit Thin Provisioning in die logische Zieleinheit mit Thin Provisioning physisch zu verschieben, wobei eine Anwendungsprogrammierschnittstelle (304) verwendet wird, um physischen Speicher neu zuzuordnen, wobei die Anwendungsprogrammierschnittstelle Parameter aufweist, die eine logische Quelleneinheitennummer (308), eine logische Quellenblockadresse (310), eine logische Zieleinheitennummer (312), eine logische Ziellogikblockadresse (314) und einen size-Parameter (316) beinhalten; und in Reaktion auf eine Rekonfiguration der logischen Quelleneinheit mit Thin Provisioning und der logischen Zieleinheit mit Thin Provisioning als mit Full Provisioning (411), physisches Kopieren (610), von Daten die im logischen Quellenblock der logischen Quelleneinheit mit Thin Provisioning gespeichert sind, die jetzt eine logische Quelleneinheit (412) mit Full Provisioning (411) ist, in den logischen Zielblock der logischen Zieleinheit mit Thin Provisioning, die jetzt eine logische Zieleinheit (416) mit Full Provisioning (411) ist.
  16. System (100; 400; 500; 700), das Folgendes umfasst: einen Speicher (706); und einen Prozessor (704), der mit dem Speicher verbunden ist, wobei der Prozessor Operationen ausführt, wobei die Operationen umfassen: Empfangen (608) einer Anforderung (204) zum Kopieren eines logischen Quellenblocks einer logischen Quelleneinheit (206; 512) mit Thin Provisioning (511) in einen logischen Zielblock einer logischen Zieleinheit (208; 516) mit Thin Provisioning (511), wobei in logischen Einheiten mit Thin Provisioning physischer Speicherplatz (522) in Reaktion auf eine Schreiboperation, die ausgeführt wird, zugeordnet wird, nicht aber während der Erstellung der logischen Einheiten mit Thin Provisioning; Erzeugen (608) von Metadaten (214), die eine Entsprechung (216) über einen Zeiger (216) zwischen dem logischen Quellenblock und dem logischen Zielblock speichern, ohne Daten aus der logischen Quelleneinheit mit Thin Provisioning in die logischen Zieleinheit mit Thin Provisioning physisch zu verschieben; Ausführen (612) einer Leseoperation des logischen Zielblocks durch Zugreifen auf den logischen Quellenblock von der Entsprechung aus, die in den Metadaten verwaltet wird; und physisches Kopieren (610) von Daten, die im logischen Quellenblock gespeichert sind, in den logischen Zielblock in Reaktion auf eine Rekonfiguration der logischen Quelleneinheit mit Thin Provisioning oder der logischen Zieleinheit mit Thin Provisioning als mit Full Provisioning (411).
  17. Computerprogrammprodukt, das von einem Computer ausführbare Anweisungen umfasst, um die Verfahrensschritte des Verfahrens nach irgendeinem der Ansprüche 1 bis 13 auszuführen.
  18. Netzwerk zum Verarbeiten von Daten, das Folgendes umfasst: eine Datenverarbeitungseinheit (102); und eine Vielzahl von physischen Speichereinheiten (104a,104n; 420; 520), die mit der Datenverarbeitungseinheit verbunden sind, wobei die Datenverarbeitungseinheit Daten steuert, die in der Vielzahl von physischen Speichereinheiten gespeichert sind, und wobei die Datenverarbeitungseinheit Datenverarbeitungs- und -speicherdienste für Benutzer über das Netzwerk durch Ausführen von Operationen bereitstellt, die das Verfahren nach einem der Ansprüche 1 bis 13 umfassen.
  19. Netzwerk nach Anspruch 18, wobei das Netzwerk so konfiguriert ist, dass es eine Cloud-Computing-Umgebung bereitstellt, in der die Datenverarbeitungseinheit die Datenverarbeitungs- und -speicherdienste bereitstellt.
DE102012218269.1A 2011-10-17 2012-10-08 Schnittstelle zur Verwaltung von Datenverschiebung in einem Speichersystem mit thin provisioning Active DE102012218269B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/274,684 US8935499B2 (en) 2011-10-17 2011-10-17 Interface for management of data movement in a thin provisioned storage system
US13/274,684 2011-10-17

Publications (2)

Publication Number Publication Date
DE102012218269A1 DE102012218269A1 (de) 2013-04-18
DE102012218269B4 true DE102012218269B4 (de) 2020-09-10

Family

ID=47324656

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102012218269.1A Active DE102012218269B4 (de) 2011-10-17 2012-10-08 Schnittstelle zur Verwaltung von Datenverschiebung in einem Speichersystem mit thin provisioning

Country Status (3)

Country Link
US (2) US8935499B2 (de)
DE (1) DE102012218269B4 (de)
GB (1) GB2496261B (de)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8935499B2 (en) 2011-10-17 2015-01-13 International Business Machines Corporation Interface for management of data movement in a thin provisioned storage system
CN104516929B (zh) * 2013-09-27 2019-07-19 伊姆西公司 用于文件系统的方法和装置
US9965216B1 (en) * 2014-09-26 2018-05-08 EMC IP Holding Company LLC Targetless snapshots
US9804778B2 (en) 2015-01-30 2017-10-31 International Business Machines Corporation Preallocating storage space for an application operation in a space efficient volume
US9798494B2 (en) 2015-01-30 2017-10-24 International Business Machines Corporation Preallocating storage space for an application operation in a space efficient volume
CN105991779B (zh) * 2015-02-02 2019-07-05 中国移动通信集团公司 一种物联网短距离通信的方法、装置及中间件
US9946604B1 (en) * 2015-02-04 2018-04-17 Tintri Inc. Optimized remote cloning
US9880755B2 (en) 2015-02-25 2018-01-30 Western Digital Technologies, Inc. System and method for copy on write on an SSD
US10394491B2 (en) 2016-04-14 2019-08-27 International Business Machines Corporation Efficient asynchronous mirror copy of thin-provisioned volumes
US20220335009A1 (en) * 2016-06-03 2022-10-20 Pure Storage, Inc. Converting Storage Resources to Distributed Persistent Storage for Containerized Applications
US10430121B2 (en) * 2016-08-22 2019-10-01 International Business Machines Corporation Efficient asynchronous mirror copy of fully provisioned volumes to thin-provisioned volumes
US10489344B1 (en) * 2018-12-28 2019-11-26 Nasuni Corporation Cloud-native global file system with direct-to-cloud migration
US10824513B1 (en) * 2019-04-30 2020-11-03 EMC IP Holding Company LLC Processing input/output operations while snapshot and extent copy operations are in progress for a logical storage volume
US20220398199A1 (en) * 2021-06-15 2022-12-15 Vmware, Inc. User-space remote memory paging

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5835954A (en) * 1996-09-12 1998-11-10 International Business Machines Corporation Target DASD controlled data migration move
US20090125680A1 (en) * 2007-11-09 2009-05-14 Hitachi, Ltd. Storage System for Restoring Data Stored in Failed Storage Device
US7685399B2 (en) * 2007-01-07 2010-03-23 International Business Machines Corporation Method, system, and computer program products for data movement within processor storage
US20100191783A1 (en) * 2009-01-23 2010-07-29 Nasuni Corporation Method and system for interfacing to cloud storage
US7904681B1 (en) * 2006-06-30 2011-03-08 Emc Corporation Methods and systems for migrating data with minimal disruption

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7162600B2 (en) 2005-03-29 2007-01-09 Hitachi, Ltd. Data copying method and apparatus in a thin provisioned system
US7640410B2 (en) 2005-09-29 2009-12-29 International Business Machines Corporation Instant copy of data through pointers interchanging
US8224782B2 (en) 2008-09-29 2012-07-17 Hitachi, Ltd. System and method for chunk based tiered storage volume migration
US20100082715A1 (en) 2008-09-30 2010-04-01 Karl Dohm Reduced-Resource Block Thin Provisioning
US8935499B2 (en) 2011-10-17 2015-01-13 International Business Machines Corporation Interface for management of data movement in a thin provisioned storage system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5835954A (en) * 1996-09-12 1998-11-10 International Business Machines Corporation Target DASD controlled data migration move
US7904681B1 (en) * 2006-06-30 2011-03-08 Emc Corporation Methods and systems for migrating data with minimal disruption
US7685399B2 (en) * 2007-01-07 2010-03-23 International Business Machines Corporation Method, system, and computer program products for data movement within processor storage
US20090125680A1 (en) * 2007-11-09 2009-05-14 Hitachi, Ltd. Storage System for Restoring Data Stored in Failed Storage Device
US20100191783A1 (en) * 2009-01-23 2010-07-29 Nasuni Corporation Method and system for interfacing to cloud storage

Also Published As

Publication number Publication date
GB2496261B (en) 2014-09-24
US20130097399A1 (en) 2013-04-18
GB2496261A (en) 2013-05-08
GB201218309D0 (en) 2012-11-28
US20150089136A1 (en) 2015-03-26
DE102012218269A1 (de) 2013-04-18
US8935499B2 (en) 2015-01-13
US9256382B2 (en) 2016-02-09

Similar Documents

Publication Publication Date Title
DE102012218269B4 (de) Schnittstelle zur Verwaltung von Datenverschiebung in einem Speichersystem mit thin provisioning
DE112014000254B4 (de) Mehrstufiges Zwischenspeichern und Migrieren in unterschiedlichen Granularitäten
DE112017002941B4 (de) Arbeitslastoptimierte Datendeduplizierung mittels Phantomfingerabdrücken
DE112011102487B4 (de) Zuordnen von logischen zu physischen Adressen in Halbleiterspeichereinheiten aufweisenden Speichersystemen
DE112011104419B4 (de) Bereichsmigration für gepaarte Speicherung
DE112012005271B4 (de) Bandlaufwerksystem-Server
DE69127752T2 (de) System zur freigabe des raumes gelöschter dateien für ein dynamisch abbildendes virtuelles datenspeichersubsystem
DE60313783T2 (de) Bewegen von daten zwischen speichereinheiten
DE102020120553A1 (de) Virtuell persistente volumes für containerisierte anwendungen
DE112017000629T5 (de) Multi-Tenant-Arbeitsspeicherdienst für Architekturen mit Arbeitsspeicher-Pools
DE102021108572A1 (de) Containerisierte anwendungsmanifeste und virtuelle persistente volumes
DE202009019149U1 (de) Asynchron verteilte Speicherbereinigung für replizierte Speichercluster
DE102013209528A1 (de) Benutzergesteuerte Replikation in einem System für synchronisierte Objektreplikationen
DE112013006655T5 (de) Speichervorrichtung und Verfahren zum Steuern der Speichervorrichtung
DE202010017665U1 (de) Datenverteilung bei einer Datenspeichervorrichtung mit Flash-Speicherchips
DE112018003524T5 (de) Dynamische datenverlagerung unter verwendung von speicherbänken auf cloud-grundlage
DE112012001162T5 (de) Defragmentierung von Datenspeicherpools
DE112011101317T5 (de) Optimieren eines Dateisystems für unterschiedliche Typen von Anwendungen in einem Datenverarbeitungs-Cluster unter Verwendung von dynamischer Blockgrössen-Granularität
DE102021109502A1 (de) Ändern virtueller persistenter volumes auf der grundlage der analyse von leistungskennzahlen
DE112020003929B4 (de) Verwaltung von metadaten von virtuellen speichern
DE102021125179A1 (de) Erzeugen und bereitstellen von containerabbildern
DE102013215009A1 (de) Verfahren und System zur Optimierung der Datenübertragung
DE102021109227A1 (de) Weiterleitung von speicheroperationsanfragen an speichersysteme unter verwendung der zugrunde liegenden datenträgerkennungen
DE69803923T2 (de) Dasd dateisystemkopierverfahren für einen datenprozessor unter verwendung einer datenspeicherungsuntersystemschnappschussmöglichkeit
DE112018005121T5 (de) Speichersystem unter verwendung von cloud-speicher als eine speicherbank

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0012000000

Ipc: G06F0012080000

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final