DE102012218269A1 - 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
DE102012218269A1
DE102012218269A1 DE102012218269A DE102012218269A DE102012218269A1 DE 102012218269 A1 DE102012218269 A1 DE 102012218269A1 DE 102012218269 A DE102012218269 A DE 102012218269A DE 102012218269 A DE102012218269 A DE 102012218269A DE 102012218269 A1 DE102012218269 A1 DE 102012218269A1
Authority
DE
Germany
Prior art keywords
logical
thin
source
thin provisioning
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.)
Granted
Application number
DE102012218269A
Other languages
English (en)
Other versions
DE102012218269B4 (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/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/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/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

Eine Datenverarbeitungseinheit empfängt eine Anforderung zum Kopieren eines logischen Quellenblocks einer logischen Quelleneinheit mit Thin Provisioning in einen logischen Zielblock einer logischen Zieleinheit mit Thin Provisioning, wobei in logischen Einheiten mit Thin Provisioning physischer Speicherplatz in Reaktion auf eine Schreiboperation, die ausgeführt wird, zugeordnet 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 ein Zuordnen von jeglichem physischen Speicherplatz für den logischen Zielblock in der logischen Zieleinheit mit Thin Provisioning vermieden wird.

Description

  • STAND DER TECHNIK
  • 1. 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).
  • 2. 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 Nummer) 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.
  • KURZDARSTELLUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Bereitgestellt werden ein Verfahren, ein System, ein Computerprogrammprodukt und ein Netzwerk, in dem eine Datenverarbeitungseinheit eine Anforderung empfängt, 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.
  • In weiteren Ausführungsformen 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.
  • In noch weiteren Ausführungsformen 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.
  • In noch weiteren Ausführungsformen 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.
  • In bestimmten Ausführungsformen 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.
  • In weiteren Ausführungsformen 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.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 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 enthaften 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-API 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 Rostspeicher 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 konventtionellen 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 Biockschemas 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 Mag netplattenlaufwerk, 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.
  • Die Begriffe „eine Ausführungsform”, „Ausführungsform, „Ausführungsformen”, „die Ausführungsform”, „die Ausführungsformen”, „eine oder mehrere Ausführungsformen”, „einige Ausführungsformen” und „eine bestimmte Ausführungsform” bedeuten „eine oder mehrere (aber nicht alle) Ausführungsformen der vorliegenden Erfindung(en)”, es sei denn, dies wird ausdrücklich anders angegeben.
  • Die Begriffe „einschließlich”, „umfassend”, „mit” und Variationen davon bedeuten „einschließlich, aber nicht darauf beschränkt”, es sei denn, dies wird ausdrücklich anders angegeben.
  • Die nummerierte Auflistung von Elementen bedeutet nicht, dass sich irgendwelche oder alle der Elemente gegenseitig ausschließen, es sei denn, dies wird ausdrücklich anders angegeben.
  • Die Begriffe „ein”, „eine” oder „der/die/das” bedeuten „ein oder mehrere”, es sei denn, dies wird ausdrücklich anders angegeben.
  • Einheiten, die miteinander in Verbindung stehen, müssen nicht in kontinuierlicher Verbindung miteinander stehen, es sei denn, dies wird ausdrücklich anders angegeben. Außerdem können Einheiten, die miteinander in Verbindung stehen, direkt oder indirekt über einen oder mehrere Vermittler Daten austauschen.
  • Eine Beschreibung einer Ausführungsform mit mehreren miteinander in Verbindung stehenden Komponenten bedeutet nicht, dass alle derartigen Komponenten erforderlich sind. Es wird im Gegenteil eine Reihe von optionalen Komponenten beschrieben, um eine große Bandbreite möglicher Ausführungsformen der vorliegenden Erfindung zu veranschaulichen.
  • Des Weiteren können, obwohl Prozessschritte, Verfahrensschritte, Algorithmen und Ähnliches gegebenenfalls der Reihenfolge nach beschrieben werden, derartige Prozesse, Verfahren und Algorithmen so konfiguriert sein, dass sie in anderer Reihenfolge arbeiten. Mit anderen Worten, jede Abfolge oder Reihenfolge von Schritten, die beschrieben worden sein kann, gibt nicht notwendigerweise eine Anforderung an, dass die Schritte in dieser Reihenfolge ausgeführt werden müssen. Die hierin beschriebenen Prozessschritte können in jeder praktikablen Reihenfolge ausgeführt werden. Des Weiteren können einige Schritte gleichzeitig ausgeführt werden.
  • Wenn eine einzelne Einheit oder ein einzelner Artikel hierin beschrieben wird, ist problemlos ersichtlich, dass mehr als eine Einheit/ein Artikel, (gleichgültig, ob sie zusammenwirken oder nicht), anstelle einer einzelnen Einheit/eines einzelnen Artikels verwendet werden können. In ähnlicher Weise, wenn mehr als eine Einheit oder ein Artikel hierin beschrieben werden, (gleichgültig, ob sie zusammenwirken oder nicht), ist problemlos ersichtlich, dass eine einzelne Einheit/ein einzelner Artikel anstelle der mehr als einen Einheit oder des mehr als einen Artikels oder eine andere Anzahl von Einheiten/Artikeln anstelle der gezeigten Anzahl von Einheiten oder Programmen verwendet werden kann. Die Funktionalität und/oder die Merkmale einer Einheit können alternativ in einer oder mehreren Einheiten integriert sein, die nicht ausdrücklich so beschrieben wurden, dass sie derartige Funktionalität/Merkmale haben. Somit müssen andere Ausführungsformen der vorliegenden Erfindung die Einheit selbst nicht enthalten.
  • Zumindest bestimmte Operationen, die in den Figuren veranschaulicht worden sein können, zeigen bestimmte Ereignisse, die in einer bestimmten Reihenfolge auftreten. In alternativen Ausführungsformen können bestimmte Operationen in einer anderen Reihenfolge ausgeführt, geändert oder entfernt werden. Außerdem können zu der oben beschriebenen Logik Schritte hinzugefügt werden und immer noch mit den beschriebenen Ausführungsformen konform sein. Des Weiteren können hierin beschriebene Operationen nacheinander auftreten, oder bestimmte Operationen können parallel verarbeitet werden. Außerdem können Operationen von einer einzelnen Verarbeitungseinheit oder von verteilten Verarbeitungseinheiten ausgeführt werden.
  • Die vorhergehende Beschreibung von verschiedenen Ausführungsformen der Erfindung wurde zu Veranschaulichungs- und Beschreibungszwecken vorgelegt. Sie ist nicht dazu bestimmt, erschöpfend zu sein oder die Erfindung auf die konkrete offenbarte Form zu beschränken. Im Hinblick auf die vorgenannte Lehre sind viele Modifizierungen und Variationen möglich. Bezweckt ist, dass der Umfang der Erfindung nicht durch diese detaillierte Beschreibung, sondern durch die daran angehängten Ansprüche beschränkt wird. Die obigen Darlegungen, die Beispiele und Daten stellen eine vollständige Beschreibung des Erzeugnisses und der Verwendung der Zusammensetzung der Erfindung bereit. Da viele Ausführungsformen der Erfindung erstellt werden können, ohne vom Erfindungsgedanken und -umfang abzuweichen, liegt die Erfindung in den im Anschluss angegebenen Ansprüchen vor.

Claims (10)

  1. Verfahren, das Folgendes umfasst: Empfangen, von einer Datenverarbeitungseinheit, einer Anforderung zum Kopieren eines logischen Quellenblocks einer logischen Quelleneinheit mit Thin Provisioning in einen logischen Zielblock einer logischen Zieleinheit mit Thin Provisioning, wobei in logischen Einheiten mit Thin Provisioning physischer Speicherplatz 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, durch die Datenverarbeitungseinheit, von Metadaten, die eine Entsprechung 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.
  2. Verfahren nach Anspruch 1, wobei das Verfahren des Weiteren umfasst: Bereitstellen, durch eine in der Datenverarbeitungseinheit ausgeführte Speicherverwaltungsanwendung, einer Anwendungsprogrammierschnittstelle, 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.
  3. Verfahren nach Anspruch 1, wobei das Verfahren des Weiteren umfasst: Bereitstellen, durch eine in der Datenverarbeitungseinheit 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.
  4. Verfahren nach Anspruch 1, wobei eine Anwendungsprogrammierschnittstelle 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.
  5. Verfahren nach Anspruch 1, wobei das Verfahren des Weiteren umfasst: physisches Kopieren 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.
  6. Verfahren nach Anspruch 1, 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 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.
  7. System, das Folgendes umfasst: einen Speicher; und einen Prozessor, der mit dem Speicher verbunden ist, wobei der Prozessor Operationen ausführt, wobei die Operationen umfassen: Empfangen einer Anforderung zum Kopieren eines logischen Quellenblocks einer logischen Quelleneinheit mit Thin Provisioning in einen logischen Zielblock einer logischen Zieleinheit mit Thin Provisioning, wobei in logischen Einheiten mit Thin Provisioning physischer Speicherplatz 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 von Metadaten, die eine Entsprechung 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.
  8. Computerprogrammprodukt, das von einem Computer ausführbare Anweisungen umfasst, um die Verfahrensschritte des Verfahrens nach irgendeinem der Ansprüche 1 bis 6 auszuführen.
  9. Netzwerk, das Folgendes umfasst: eine Datenverarbeitungseinheit; und eine Vielzahl von physischen Speichereinheiten, 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 umfassen: Empfangen einer Anforderung zum Kopieren eines logischen Quellenblocks einer logischen Quelleneinheit mit Thin Provisioning in einen logischen Zielblock einer logischen Zieleinheit mit Thin Provisioning, wobei in logischen Einheiten mit Thin Provisioning physischer Speicherplatz 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 von Metadaten, die eine Entsprechung 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.
  10. Netzwerk nach Anspruch 9, 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 2011-10-17
US13/274,684 US8935499B2 (en) 2011-10-17 2011-10-17 Interface for management of data movement in a thin provisioned storage system

Publications (2)

Publication Number Publication Date
DE102012218269A1 true DE102012218269A1 (de) 2013-04-18
DE102012218269B4 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 (13)

* 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
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

Family Cites Families (10)

* 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
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
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
JP4958739B2 (ja) * 2007-11-09 2012-06-20 株式会社日立製作所 障害の発生した記憶装置に記憶されているデータを修復するストレージシステム
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
US8566362B2 (en) * 2009-01-23 2013-10-22 Nasuni Corporation Method and system for versioned file system using structured data representations
US8935499B2 (en) 2011-10-17 2015-01-13 International Business Machines Corporation Interface for management of data movement in a thin provisioned storage system

Also Published As

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

Similar Documents

Publication Publication Date Title
DE102012218269A1 (de) Schnittstelle zur Verwaltung von Datenverschiebung in einem Speichersystem mit thin provisioning
DE112016003120B4 (de) Umleiten einer Kopie beim Schreiben
US10409781B2 (en) Multi-regime caching in a virtual file system for cloud-based shared content
DE112012005037B4 (de) Verwalten von redundanten unveränderlichen Dateien unter Verwendung von Deduplizierungen in Speicher-Clouds
DE112012003505B4 (de) Automatisierte Auswahl von Funktionen zum Verringern der Speicherkapazität auf der Grundlage von Leistungsanforderungen
DE112011101109B4 (de) Übertragung von Map/Reduce-Daten auf der Grundlage eines Speichernetzwerkes oder eines Speichernetzwerk-Dateisystems
DE102004038649B4 (de) Dauerspeichervorrichtung für Sicherungsprozess-Prüfpunktzustände
DE112017000629T5 (de) Multi-Tenant-Arbeitsspeicherdienst für Architekturen mit Arbeitsspeicher-Pools
DE102013204186B4 (de) Ermitteln von Prioritäten für zwischengespeicherte Objekte zum Ordnen des Übertragens von Änderungen an zwischengespeicherten Objekten beruhend auf gemessener Netzwerkbandbreite
DE102013215535A1 (de) Sicherung oder wiederherstellung von daten mit hilfe eines hauptspeichers und nichtflüchtiger speichermedien
DE112011102487T5 (de) Zuordnen von logischen zu physischen Adressen in Halbleiterspeichereinheiten aufweisenden Speichersystemen
DE112020003929B4 (de) Verwaltung von metadaten von virtuellen speichern
DE102013215009A1 (de) Verfahren und System zur Optimierung der Datenübertragung
DE112012001162T5 (de) Defragmentierung von Datenspeicherpools
DE102021108572A1 (de) Containerisierte anwendungsmanifeste und virtuelle persistente volumes
DE102013209528A1 (de) Benutzergesteuerte Replikation in einem System für synchronisierte Objektreplikationen
DE102012221813A1 (de) Verfahren zur optimierung der speicherzuordnung in einer virtuellen arbeitsplatzumgebung
DE112017005588T5 (de) Speichern und abrufen von eingeschränkten datensätzen in und aus einem cloud-netzwerk mit nichteingeschränkten datensätzen
DE102021125179A1 (de) Erzeugen und bereitstellen von containerabbildern
DE102014116808A1 (de) Realisieren einer dynamischen Virtualisierung eines Sriov-fähigen SAS-Adapters
DE112010003794T5 (de) Datenspeicherung unter Verwendung von Bitmaps
DE112020004840B4 (de) Speicherbereinigung in datenspeichersystemen
DE102021109227A1 (de) Weiterleitung von speicheroperationsanfragen an speichersysteme unter verwendung der zugrunde liegenden datenträgerkennungen
DE112017005022T5 (de) Umladen der Bandverarbeitung auf Objektspeicher
DE102018204427A1 (de) Simulieren mehrerer Speichergeräte mit einem einzelnen Speichergerät, das mit einem Rechengerät gekoppelt ist

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