DE112016003120B4 - Redirect a copy on write - Google Patents
Redirect a copy on write Download PDFInfo
- Publication number
- DE112016003120B4 DE112016003120B4 DE112016003120.3T DE112016003120T DE112016003120B4 DE 112016003120 B4 DE112016003120 B4 DE 112016003120B4 DE 112016003120 T DE112016003120 T DE 112016003120T DE 112016003120 B4 DE112016003120 B4 DE 112016003120B4
- Authority
- DE
- Germany
- Prior art keywords
- volume
- point
- time copy
- snapshot
- copy
- 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
Links
- 238000003860 storage Methods 0.000 claims abstract description 133
- 230000004044 response Effects 0.000 claims abstract description 14
- 238000000034 method Methods 0.000 claims description 65
- 238000012545 processing Methods 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 19
- 230000006870 function Effects 0.000 description 42
- 230000008569 process Effects 0.000 description 33
- 238000004422 calculation algorithm Methods 0.000 description 27
- 238000010586 diagram Methods 0.000 description 24
- 238000013507 mapping Methods 0.000 description 15
- 238000007726 management method Methods 0.000 description 10
- 101100400452 Caenorhabditis elegans map-2 gene Proteins 0.000 description 7
- 238000013459 approach Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 230000001419 dependent effect Effects 0.000 description 6
- 230000002354 daily effect Effects 0.000 description 4
- 238000011084 recovery Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000004140 cleaning Methods 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000011144 upstream manufacturing Methods 0.000 description 3
- 101150064138 MAP1 gene Proteins 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000004883 computer application Methods 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 238000005201 scrubbing Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 102100028379 Methionine aminopeptidase 1 Human genes 0.000 description 1
- 101710161855 Methionine aminopeptidase 1 Proteins 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000009172 bursting Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 241000894007 species Species 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Retry When Errors Occur (AREA)
Abstract
System zum Verwalten von Speicherdatenträger-Volumen in einer Kaskade von Zeitpunktkopien, wobei die Kaskade ein Quellendatenträger-Volumen, ein Momentaufnahme-Zeitpunktkopie-Volumen und eine Klon-Zeitpunktkopie-Volumen aufweist, wobei das Momentaufnahme-Zeitpunktkopie-Volumen eine Momentaufnahme-Kopie des Quellendatenträger-Volumens ist und das Klon-Zeitpunktkopie-Volumen eine Klon-Kopie des Momentaufnahme-Zeitpunktkopie-Volumens ist, wobei jedes Volumen eine virtuelle logische Sicht (vdisk) aufweist, wobei das System aufweist:eine Austausch-Komponente, um die virtuelle logische Sicht des Quellendatenträger-Volumens gegen die virtuelle logische Sicht des Momentaufnahme-Datenträger-Volumens auszutauschen;als Reaktion auf eine nach dem Austauschen empfangene E/A-Anforderung, einen ersten Datenwert in einer Basiseinheit des physischen Quelldatenträger-Volumens mit einem zweiten Datenwert zu überschreiben, eine E/A-Komponente, um:den zweiten Datenwert in eine entsprechende Basiseinheit des physischen Momentaufnahme-Zeitpunktkopie-Volumens zu schreiben; undals Reaktion darauf, dass eine entsprechende Basiseinheit des Klon-Zeitpunktkopie-Volumens nicht den ersten Datenwert aufweist, Kopieren des ersten Datenwerts in die entsprechende Basiseinheit des Klon-Zeitpunktkopie-Volumens.A system for managing storage volume volumes in a cascade of point-in-time copies, the cascade comprising a source volume, a snapshot point-in-time copy volume, and a clone point-in-time copy volume, the snapshot point-in-time copy volume being a snapshot copy of the source volume volume and the clone point-in-time copy volume is a clone copy of the snapshot point-in-time copy volume, each volume having a virtual logical view (vdisk), the system comprising:an exchange component to convert the virtual logical view of the source volume -swap the volume for the virtual logical view of the snapshot volume;in response to an I/O request received after the swap to overwrite a first data value in a base unit of the source physical volume with a second data value, an I/O A component to:put the second data value into a corresponding base unit de s write snapshot-point-in-time copy physical volume; andin response to a corresponding base unit of the clone point-in-time copy volume not having the first data value, copying the first data value to the corresponding base unit of the clone point-in-time copy volume.
Description
TECHNISCHES GEBIETTECHNICAL AREA
Die vorliegende Erfindung betrifft das Gebiet der Computer-Speichersysteme und insbesondere Speichersysteme mit erweiterten Funktionen, die eine Funktion zum Erstellen einer Zeitpunktkopie (PIT-Kopie) bereitstellen.The present invention relates to the field of computer storage systems, and more particularly to storage systems with enhanced functions that provide a point-in-time (PIT) copy function.
STAND DER TECHNIKSTATE OF THE ART
Auf dem Gebiet der Computer-Speichersysteme gibt es einen wachsenden Bedarf an etwas, das im Laufe der Zeit auch als „erweiterte Funktionen“ beschrieben wurde. Solche Funktionen gehen über die einfachen Eingabe-/Ausgabe-(E/A-)Funktionen von herkömmlichen Speichercontroller-Systemen hinaus. Erweiterte Funktionen sind in der Technik bekannt und hängen von der Steuerung von Metadaten ab, die verwendet werden, um Zustandsdaten über die in dem System gespeicherten realen oder „Benutzer“-Daten festzuhalten. Die bei Verwendung von erweiterten Funktionen vorhandenen Bearbeitungsmöglichkeiten ermöglichen es, verschiedene Aktionen schnell auf virtuelle Abbilder von Daten anzuwenden, während die realen Daten nach wie vor zur Verwendung durch Benutzeranwendungen zur Verfügung stehen. Eine solche bekannte erweiterte Funktion ist eine Zeitpunktkopie. Ein Beispiel für eine Zeitpunktkopie ist eine FlashCopy® von IBM®. IBM und FlashCopy sind Warenzeichen der International Business Machines Corporation, die weltweit in vielen Ländern eingetragen sind.In the field of computer storage systems, there is a growing need for what has also been described as "enhanced functionality" over time. Such functions go beyond the simple input/output (I/O) functions of traditional storage controller systems. Advanced functionality is known in the art and depends on the control of metadata used to maintain state information about the real or "user" data stored in the system. The editing capabilities available when using advanced features allow various actions to be applied quickly to virtual images of data while the real data is still available for use by user applications. One such known extended function is a point-in-time copy. An example of a point-in-time copy is a FlashCopy® from IBM®. IBM and FlashCopy are trademarks of International Business Machines Corporation, registered in many countries around the world.
Eine Zeitpunktkopie ist eine auf verschiedenen Speichereinheiten unterstützte Funktion, die es ermöglicht, nahezu sofortige Zeitpunktkopien von ganzen logischen Datenträgern oder Datensätzen zu erstellen. Durch die zeitpunktgesteuerte Funktion lassen sich Kopien der Daten des ganzen Datenträgers erstellen, wobei die Kopien unverzüglich für einen Schreib- oder Lesezugriff zur Verfügung stehen. Die Kopie kann mit standardmäßigen Sicherungswerkzeugen verwendet werden, die in einer Datenverarbeitungsumgebung zur Verfügung stehen, um Sicherungskopien auf Band zu erstellen.A point-in-time copy is a feature supported on various storage devices that allows near-instantaneous point-in-time copies of entire logical volumes or data sets to be created. The point-in-time function allows copies of the data of the entire data carrier to be made, with the copies being immediately available for write or read access. The copy can be used with standard backup tools available in a data processing environment to create backup copies on tape.
Eine „Momentaufnahme“ („Snapshot“) ist eine geläufige Industriebezeichnung, welche die Fähigkeit bezeichnet, den Zustand einer Speichereinheit in einem bestimmten Augenblick zu erfassen und diese Momentaufnahme als Anhaltspunkt für die Wiederherstellung der Speichereinheit in dem Fall, dass diese ausfällt, aufzubewahren. Eine Momentaufnahme erstellt in erster Linie eine Zeitpunktkopie der Daten. Üblicherweise wird eine Momentaufnahme-Kopie sofort erstellt und zur Verwendung durch andere Anwendungen wie zum Beispiel Datenschutz, Datenanalyse und Berichterstellung sowie Datenreplikationsanwendungen zur Verfügung gestellt. Die ursprüngliche Kopie der Daten steht den Anwendungen ohne Unterbrechung weiterhin zur Verfügung, während die Momentaufnahme-Kopie verwendet wird, um andere Funktionen an den Daten auszuführen. Eine Momentaufnahme ist eine Zeitpunktkopie, die von der primären Platte abhängig ist. Eine Momentaufnahme kann zum Beispiel mit Hilfe eines Kopieren-beim-Schreiben-Verfahrens realisiert werden, bei dem aktuell vorhandene Daten in einem Bereich auf der primären Platte auf den Sicherungsdatenträger geschrieben werden, wenn eine Schreiboperation in den Bereich auf der primären Platte durchgeführt wird. Somit enthält der Sicherungsdatenträger im Gegensatz zu einer vollständigen Kopie der primären Platte Daten, die auf der primären Platte überschrieben wurden. Diese Art von Sicherungskopie hat üblicherweise einen Datenträger mit Thin Provisioning zur Folge, was den in Anspruch genommenen Speicherplatz verringert. Eine Reihe von Momentaufnahme-Kopien kann zusammen in einer Kaskade angeordnet werden, um die primäre Platte zu unterschiedlichen Zeitpunkten darzustellen. Damit wieder eine vollständige Kopie der primären Platte zusammengesetzt werden kann, bleiben die Momentaufnahme-Kopien üblicherweise jedoch von der primären Platte abhängig. Folglich ist eine Momentaufnahme eine Zeitpunktkopie, bei der das Ziel nur die geänderten Daten speichert, die notwendig sind, um die Zeitpunktkopie der Quelle darzustellen. Daten werden nur auf die Zielplatte kopiert, wenn sie an der Quelle geändert werden. Die Zielplatte ist im Allgemeinen immer von einigen der Daten auf der Quellenplatte abhängig, um die Zeitpunktkopie darzustellen.A "snapshot" is a common industry term denoting the ability to capture the state of a storage device at a given instant and retain that snapshot as a guide to recovering the storage device in the event that it fails. A snapshot primarily creates a point-in-time copy of the data. Typically, a snapshot copy is created immediately and made available for use by other applications such as data protection, data analysis and reporting, and data replication applications. The original copy of the data continues to be available to applications without interruption while the snapshot copy is used to perform other functions on the data. A snapshot is a point-in-time copy that depends on the primary disk. A snapshot can be implemented, for example, using a copy-on-write technique in which current data in an area on the primary disk is written to the backup volume when a write operation is performed to the area on the primary disk. Thus, unlike a complete copy of the primary disk, the backup disk contains data that has been overwritten on the primary disk. This type of backup typically results in a thin-provisioned volume, which reduces the amount of disk space consumed. A number of snapshot copies can be cascaded together to represent the primary disk at different points in time. However, in order for a complete copy of the primary disk to be reassembled, the snapshot copies usually remain dependent on the primary disk. Thus, a snapshot is a point-in-time copy in which the target stores only the changed data necessary to represent the source's point-in-time copy. Data is only copied to the target disk if it changes at the source. The target disk generally always depends on some of the data on the source disk to represent the point-in-time copy.
Im Gegensatz dazu ist ein „Klon“ eine Zeitpunktkopie, die von der primären Platte unabhängig ist. Ein Klon kann zum Beispiel erzeugt werden, indem ein Kopiervorgang im Hintergrund, bei dem die Bereiche einer Platte der Reihe nach auf den Sicherungsdatenträger kopiert werden, sowie ein Kopieren-beim-Schreiben-Verfahren ausgeführt wird, um Bereiche der primären Platte sofort zu kopieren, die aufgrund einer Schreiboperation gleich überschrieben werden und die von dem Kopiervorgang im Hintergrund noch nicht verarbeitet worden sind. Ein Klon wird üblicherweise verwendet, wenn eine Kopie benötigt wird und eine Eingabe/Ausgabe (E/A) in die Kopie beziehungsweise aus der Kopie die E/A auf den beziehungsweise von dem primären Datenträger in keiner Weise beeinträchtigen darf. Ein Klon kann auch verwendet werden, wenn sich die Verfügbarkeit für die Quelle nicht auf die Kopie auswirken soll. Ein Klon kann auch in einer Kaskade verwendet werden.In contrast, a "clone" is a point-in-time copy that is independent of the primary disk. For example, a clone can be created using a background copy process that copies sections of a disk to the backup volume in order, and a copy-as-write method to copy sections of the primary disk immediately which are about to be overwritten as a result of a write operation and which have not yet been processed by the copy process in the background. A clone is typically used when a copy is needed and input/output (I/O) to or from the copy must not affect I/O to or from the primary disk in any way. A clone can also be used when you don't want availability for the source to affect the copy. A clone can also be used in a cascade.
Folglich ist ein Klon eine PIT-Kopie, bei der die Zielplatte eine vollständige Kopie der Daten speichert, die sich auf der Quellenplatte befanden, als die Zeitpunktkopie gestartet wurde. Wenn der Kopiervorgang der Daten von der Quelle an das Ziel abgeschlossen ist, ist die Zielplatte von der Quelle unabhängig.Thus, a clone is a PIT copy where the target disk stores a complete copy of the data chert that were on the source disk when the point-in-time copy started. When the data copying process from the source to the target is complete, the target disk is independent of the source.
KURZDARSTELLUNG DER ERFINDUNGSUMMARY OF THE INVENTION
Die vorliegende Erfindung wird durch die Patentansprüche definiert.The present invention is defined by the claims.
Von einem ersten Beispiel aus betrachtet wird ein System zum Verwalten von Speicherdatenträger-Volumen in einer Kaskade von Zeitpunktkopien beispielhaft beschrieben, wobei die Kaskade ein Quellendatenträger-Volumen, ein Momentaufnahme-Zeitpunktkopie-Volumen und ein Klon-Zeitpunktkopie-Volumen aufweist, wobei das Momentaufnahme-Zeitpunktkopie-Volumen eine Momentaufnahme-Kopie des Quellendatenträger-Volumens ist und das Klon-Zeitpunktkopie-Volumen eine Klon-Kopie des Momentaufnahme-Zeitpunktkopie-Volumens ist, wobei jedes Volumen eine virtuelle logische Sicht (vdisk) hat, wobei das System aufweist: eine Austausch-Komponente, um die virtuelle logische Sicht des Quellendatenträger-Volumens gegen virtuelle logische Sicht des Momentaufnahme-Datenträger-Volumens auszutauschen; als Reaktion auf eine E/A-Anforderung, einen ersten Datenwert in einer Basiseinheit des physischen Quellendatenträger-Volumens mit einem zweiten Datenwert zu überschreiben, eine E/A-Komponente, um: den zweiten Datenwert in eine entsprechende Basiseinheit des physischen Momentaufnahme-Zeitpunktkopie-Volumens zu schreiben; und als Reaktion auf eine entsprechende Basiseinheit des Klon-Zeitpunktkopie-Volumens, das nicht den ersten Datenwert aufweist, den ersten Datenwert in die entsprechende Basiseinheit des Klon-Zeitpunktkopie-Volumens zu kopieren.Considered from a first example, a system for managing storage volume volumes in a cascade of point-in-time copies is described by way of example, the cascade comprising a source volume, a snapshot point-in-time copy volume and a clone point-in-time copy volume, the snapshot point-in-time copy volume is a snapshot copy of the source disk volume and the clone point-in-time copy volume is a clone copy of the snapshot point-in-time copy volume, each volume having a virtual logical view (vdisk), the system comprising: an interchange - component to swap virtual logical view of source disk volume with virtual logical view of snapshot disk volume; in response to an I/O request to overwrite a first data value in a base unit of the source physical volume volume with a second data value, an I/O component to: convert the second data value to a corresponding base unit of the snapshot point-in-time physical volume; to write volumes; and in response to a corresponding base unit of the clone point-in-time copy volume not having the first data value, copy the first data value to the corresponding base unit of the clone point-in-time copy volume.
Von einem weiteren Beispiel aus betrachtet wird ein Verfahren zum Verwalten von Speicherdatenträger-Volumen in einer Kaskade von Zeitpunktkopie-Volumen beispielhaft beschrieben, wobei die Kaskade ein Quellendatenträger-Volumen, ein Momentaufnahme-Zeitpunktkopie-Volumen und ein Klon-Zeitpunktkopie-Volumen aufweist, wobei das Momentaufnahme-Zeitpunktkopie-Volumen eine Momentaufnahme-Kopie des Quellendatenträger-Volumens ist und das Klon-Zeitpunktkopie-Volumen eine Klon-Kopie des Momentaufnahme-Zeitpunktkopie-Volumens ist, wobei jedes Volumen eine virtuelle logische Sicht (vdisk) hat, wobei das Verfahren aufweist: Austauschen der virtuellen logischen Sicht des Quellendatenträger-Volumens gegen die virtuelle logische Sicht des Momentaufnahme-Datenträger-Volumens; als Reaktion auf eine E/A-Anforderung, einen ersten Datenwert in einer Basiseinheit des physischen Quellendatenträger-Volumens mit einem zweiten Datenwert zu überschreiben: Schreiben des zweiten Datenwerts in eine entsprechende Basiseinheit des Momentaufnahme-Zeitpunktkopie-Volumens; und als Reaktion auf eine entsprechende Basiseinheit des Klon-Zeitpunktkopie-Volumens, das nicht den ersten Datenwert aufweist, Kopieren des ersten Datenwerts in die entsprechende Basiseinheit des Klon-Zeitpunktkopie-Volumens.Viewed from another example, a method for managing storage volume volumes in a cascade of point-in-time copy volumes is exemplified, the cascade having a source volume, a snapshot point-in-time copy volume, and a clone point-in-time copy volume, wherein the the snapshot point-in-time copy volume is a snapshot copy of the source disk volume and the clone point-in-time copy volume is a clone copy of the snapshot point-in-time copy volume, each volume having a virtual logical view (vdisk), the method comprising: swapping the virtual logical view of the source volume with the virtual logical view of the snapshot volume; in response to an I/O request to overwrite a first data value in a base unit of the source physical volume volume with a second data value: writing the second data value in a corresponding base unit of the snapshot point-in-time copy volume; and in response to a corresponding base unit of the clone point-in-time copy volume not having the first data value, copying the first data value to the corresponding base unit of the clone point-in-time copy volume.
Von einem weiteren Beispiel aus betrachtet wird ein Computerprogrammprodukt zum Verwalten von Speicherdatenträger-Volumen in einer Kaskade von Zeitpunktkopien beispielhaft beschrieben, wobei die Kaskade ein Quellendatenträger-Volumen, ein Momentaufnahme-Zeitpunktkopie-Volumen und ein Klon-Zeitpunktkopie-Volumen aufweist, wobei das Momentaufnahme-Zeitpunktkopie-Volumen eine Momentaufnahme-Kopie des Quellendatenträger-Volumens ist und das Klon-Zeitpunktkopie-Volumen eine Klon-Kopie des Momentaufnahme-Zeitpunktkopie-Volumens ist, wobei jedes Volumen eine virtuelle logische Sicht (vdisk) hat, wobei das Computerprogrammprodukt ein von einem Computer lesbares Speichermedium aufweist, das von einer Verarbeitungsschaltung gelesen werden kann und Anweisungen zur Ausführung durch die Verarbeitungsschaltung speichert, um ein Verfahren zur Durchführung der erfindungsgemäßen Schritte durchzuführen.Viewed from another example, a computer program product for managing storage volume volumes in a cascade of point-in-time copies is described by way of example, the cascade having a source volume, a snapshot point-in-time copy volume, and a clone point-in-time copy volume, the snapshot point-in-time copy volume is a snapshot copy of the source disk volume and the clone point-in-time copy volume is a clone copy of the snapshot point-in-time copy volume, each volume having a virtual logical view (vdisk), the computer program product being a computer comprises a readable storage medium readable by a processing circuit and storing instructions for execution by the processing circuit to perform a method of performing the steps of the invention.
Von einem weiteren Beispiel aus betrachtet wird ein Computerprogramm beispielhaft beschrieben, das auf einem von einem Computer lesbaren Datenträger gespeichert ist und in den internen Speicher eines digitalen Computers geladen werden kann, wobei das Computerprogramm Teile von Software-Code aufweist, wenn das Programm auf einem Computer ausgeführt wird, um die erfindungsgemäßen Schritte durchzuführen.Viewed from a further example, a computer program is described by way of example, stored on a computer-readable medium and loadable into the internal memory of a digital computer, the computer program comprising portions of software code when the program runs on a computer is executed to carry out the steps of the invention.
Figurenlistecharacter list
Die vorliegende Erfindung wird nun lediglich beispielhalber und mit Bezug auf bevorzugte Ausführungsformen beschrieben, die in den folgenden Figuren dargestellt sind:
-
1 zeigt einen Sicherungsprozess nach dem Stand der Technik, bei dem ein Speichercontroller und zwei Speicherplatten verwendet werden und bei dem eine bevorzugte Ausführungsform der vorliegenden Erfindung realisiert werden kann; -
2 zeigt ein Beispiel einer aus drei Speicherdatenträger-Volumen bestehenden Kaskade von Zeitpunktkopien nach dem Stand der Technik, welche über Zeitpunktkopie-Zuordnungen verbunden sind, und in der eine bevorzugte Ausführungsform der vorliegenden Erfindung realisiert werden kann; - die
3a bis3e zeigen Zeitpunktkopie-Zuordnungen, die dem Stand der Technik entsprechen und bei denen eine bevorzugte Ausführungsform der vorliegenden Erfindung realisiert werden kann; -
4 zeigt eine beispielhafte Kaskade einer Zuordnung, die dem Stand der Technik entspricht und bei der eine bevorzugte Ausführungsform der vorliegenden Erfindung realisiert werden kann; - die
5a ,5b ,5c zeigen Beziehungen, die beim Schreiben von Daten in eine Kopie-Kaskade verwendet werden; -
6 zeigt ein Verfahren, das dazu dient, auf einen Quellendatenträger G in einer Kaskade von Zeitpunktkopien zu schreiben; -
7 zeigt die Anfangsdaten einer Quellenplatte; -
8 zeigt in dem Verfahren verwendete Zuordnungen gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung, wobei jeweilige vdisks und pdisks gezeigt sind; -
9 zeigt die Komponenten eines Schreibsystems; -
10 zeigt ein Computersystem/einen Server in einem Cloud-Computing-Knoten in Form einer Universal-Datenverarbeitungseinheit, das beziehungsweise der dem Stand der Technik entspricht und in dem eine bevorzugte Ausführungsform der vorliegenden Erfindung realisiert werden kann; -
11 zeigt eine der Veranschaulichung dienende Cloud-Computing-Umgebung, die dem Stand der Technik entspricht und in der eine bevorzugte Ausführungsform der vorliegenden Erfindung realisiert werden kann; -
12 zeigt einen Satz von funktionalen Abstraktionsebenen nach dem Stand der Technik, die von der Cloud-Computing-Umgebung von11 bereitgestellt werden, und in dem eine bevorzugte Ausführungsform der vorliegenden Erfindung realisiert werden kann; und -
13 zeigt ein Informationsverarbeitungssystem nach dem Stand der Technik, bei dem es sich um ein vereinfachtes Beispiel eines Computersystems handelt, das die hier beschriebenen Datenverarbeitungsoperationen durchführen kann und in dem eine bevorzugte Ausführungsform der vorliegenden Erfindung realisiert werden kann.
-
1 Figure 12 shows a prior art backup process using a storage controller and two storage disks and in which a preferred embodiment of the present invention may be implemented; -
2 Figure 12 shows an example of a prior art example of a cascade of point-in-time copies consisting of three storage volume volumes linked by point-in-time copies and in which a preferred embodiment of the present invention may be implemented; - the
3a until3e Figure 12 shows point-in-time copy allocations which are known in the art and in which a preferred embodiment of the present invention may be practiced; -
4 Figure 12 shows an exemplary cascade of mapping, which is known in the art and in which a preferred embodiment of the present invention may be implemented; - the
5a ,5b ,5c show relationships used when writing data to a copy cascade; -
6 Figure 12 shows a method for writing to a source volume G in a cascade of point-in-time copies; -
7 shows the initial data of a source disk; -
8th Figure 12 shows mappings used in the method according to a preferred embodiment of the present invention, showing respective vdisks and pdisks; -
9 shows the components of a writing system; -
10 Figure 1 shows a computer system/server in a cloud computing node in the form of a general purpose computing unit, which is prior art and in which a preferred embodiment of the present invention may be implemented; -
11 Figure 1 shows an illustrative cloud computing environment, which is known in the art and in which a preferred embodiment of the present invention may be implemented; -
12 shows a set of prior art functional abstraction layers used by the cloud computing environment of11 are provided and in which a preferred embodiment of the present invention may be implemented; and -
13 Figure 1 shows a prior art information processing system which is a simplified example of a computer system capable of performing the data processing operations described herein and in which a preferred embodiment of the present invention may be practiced.
AUSFÜHRLICHE BESCHREIBUNGDETAILED DESCRIPTION
Es ist auch möglich, eine Zeitpunktkopie in kaskadierten Implementierungen zu verwenden, bei denen eine Zielplatte zu einem späteren Zeitpunkt die Quellenplatte für eine weitere Zeitpunktkopie wird - oder umgekehrt. Eine kaskadierte Konfiguration von Speicherdatenträgern ist in der
Die US-Patentschrift Nummer
Die US-Patentschrift Nummer US 8,688,937 B2 (John P. Agombar u.a. „Method for Optimizing Cleaning of Maps in FlashCopy Cascades Containing Incremental Maps“, 1. April 2014), die in ihrer Gesamtheit durch Bezugnahme Bestandteil hiervon ist, offenbart ein Verfahren zur Optimierung der Bereinigung von Zuordnungen in Kaskaden von Zeitpunktkopien einschließlich der Feststellung, ob eine Zielplatte einer Zuordnung Daten enthält, welche einer nachgeordneten Platte von einer vorgeordneten Platte in einer Kaskade nicht zur Verfügung stehen, und erkennt, ob die nachgeordnete Platte über eine Kopie der Daten verfügt.US Patent Number US 8,688,937 B2 (John P. Agombar et al. "Method for Optimizing Cleaning of Maps in FlashCopy Cascades Containing Incremental Maps", April 1, 2014), which is incorporated herein by reference in its entirety, discloses a method for optimization cleaning up allocations in cascaded point-in-time copies including determining whether a target disk of an allocation contains data that is not available to a downstream disk from an upstream disk in a cascade and whether the downstream disk has a copy of the data.
Die US-Patentschrift Nummer
Die US-Patentschrift Nummer
Wenn eine Zeitpunktkopie-Operation eingeleitet wird, wird zwischen dem Quellendatenträger-Volumen und dem Zieldatenträger-Volumen eine Zeitpunktbeziehung hergestellt. Folglich ist eine Zeitpunktbeziehung eine „Zuordnung“ des Zeitpunkt-Quellendatenträger-Volumens und des Zeitpunkt-Zieldatenträger-Volumens. Diese Zuordnung gestattet es, eine Zeitpunktkopie dieses Quellendatenträger-Volumens auf das zugehörige Zieldatenträger-Volumen zu kopieren. Die Zeitpunktbeziehung besteht zwischen diesem Datenträgerpaar ab dem Zeitpunkt, zu dem eine zeitpunktgesteuerte Operation eingeleitet wird, bis zu dem Zeitpunkt, zu dem die Speichereinheit alle Daten von dem Quellendatenträger-Volumen auf das Zieldatenträger-Volumen kopiert, oder aber bis die Zeitpunktbeziehung gelöscht wird. Ferner handelt es sich bei einer kaskadierten zeitpunktgesteuerten Konfiguration um eine Konfiguration, bei der die Quellenplatte einer Zuordnung die Zielplatte einer anderen Zuordnung ist. Es kann beispielsweise eine mit der Quellenplatte A und der Zielplatte B definierte Zuordnung und eine andere mit der Quellenplatte B und der Zielplatte C definierte Zuordnung geben. Die Kaskade würde die drei Platten A, B und C und die beiden Zuordnungen beinhalten. Sobald die Kopien erstellt wurden, stehen die Kopien sowohl für den Lese- als auch den Schreibzugriff sofort zur Verfügung.When a point-in-time copy operation is initiated, a point-in-time relationship is established between the source volume and the target volume. Thus, a point-in-time relationship is a "mapping" of the point-in-time source volume and the point-in-time target volume. This association allows a point-in-time copy of that source volume to be copied to the associated target volume. The point-in-time relationship exists between this volume pair from the time a point-in-time operation is initiated until the storage unit copies all data from the source volume to the target volume, or until the point-in-time relationship is deleted. Furthermore, a cascaded point-in-time configuration is one in which the source disk of one map is the target disk of another map. For example, there may be one map defined with source disk A and target disk B and another map defined with source disk B and target disk C. The cascade would include the three panels A, B and C and the two assignments. Once the copies are made, the copies are immediately available for both read and write access.
Wenn die Daten physisch kopiert werden, kopiert ein Hintergrundprozess Spuren (oder Basiseinheiten) von dem Quellendatenträger-Volumen auf das Zieldatenträger-Volumen. Die Zeitdauer, die für die Fertigstellung der Hintergrundkopie notwendig ist, hängt unter anderen Faktoren beispielsweise ab von: der Menge an Daten, die gerade kopiert werden; der Anzahl der Kopiervorgänge im Hintergrund, die gerade stattfinden, und den anderen Aktivitäten, die auf dem Speichersystem gerade stattfinden.When the data is physically copied, a background process copies tracks (or base units) from the source disk volume to the target disk volume. The amount of time required for the background copy to complete depends, among other factors, on, for example: the amount of data being copied; the number of background copies that are taking place; and the other activities that are taking place on the storage system.
Wenn eine zeitpunktgesteuerte Operation Daten von einem Quellendatenträger-Volumen auf ein Zieldatenträger-Volumen kopiert, kann dieses Quellendatenträger-Volumen zur selben Zeit an mehr als einer Zeitpunktbeziehung beteiligt sein (was als Multiple-Relationship-Zeitpunkt bezeichnet wird). Das heißt, die zeitpunktgesteuerte Multiple-Relationship-Funktion gestattet es, dass ein Quellendatenträger-Volumen mehrere Ziele gleichzeitig hat. Wenn eine Spur auf einem Volumen keine Zielspur einer bestehenden Zeitpunktbeziehung ist, kann sie das Ziel in einer neuen Zeitpunktbeziehung werden.When a point-in-time operation copies data from a source volume to a target volume, that source volume can be involved in more than one point-in-time relationship at the same time (referred to as a multiple-relationship point-in-time). That is, the point-in-time multiple relationship feature allows a source volume to have multiple destinations at the same time. If a track on a volume is not the target track of an existing point-in-time relationship, it can become the target in a new point-in-time relationship.
Wenn beispielsweise mehrere Kopien derselben Daten benötigt werden, ermöglicht diese zeitpunktgesteuerte Multiple-Relationship-Funktion somit, dass ein einzelnes Quellendatenträger-Volumen mehrfach auf verschiedene Zieldatenträger-Volumen kopiert wird, sobald ein Zeitpunkt-Datenträger-Volumen festgelegt worden ist. Nehmen wir beispielsweise an, dass ein Zeitpunkt verwendet wird, um das Volumen A auf das Volumen B zu kopieren. Sobald diese Zeitpunktbeziehung hergestellt worden ist, kann das Volumen A auf das Volumen C kopiert werden. Nachdem dann diese Beziehung hergestellt worden ist, kann das Volumen A auf das Volumen D kopiert werden, und so weiter. Zudem sind mehrere Sitzungen innerhalb eines einzelnen Volumens möglich.Thus, for example, if multiple copies of the same data are required, this point-in-time multiple relationship feature allows a single source volume to be copied multiple times to different target volumes once a point-in-time volume has been specified. For example, suppose a point in time is used to copy volume A to volume B. Once this point in time relationship has been established, volume A can be copied to volume C. Then, having established this relationship, volume A can be copied onto volume D, and so on. Multiple sessions are also possible within a single volume.
Eine Kaskade kann verwendet werden, um mehrere Zeitpunktkopien einer einzelnen Datenquelle zu realisieren. Bei einer Datenquelle P und Zeitpunktkopien von P, die zu den Zeitpunkten t1, t2 und t3 erstellt werden, wird dann beispielsweise zum Zeitpunkt t1 eine Zeitpunktkopie unter Verwendung des Datenziels T1 erstellt, was folgende Kaskade ergibt: P→T1. Zum Zeitpunkt t2 wird dann eine zweite Zeitpunktkopie unter Verwendung des Datenziels T2 erstellt, und dies ergibt die Kaskade: P→T2→T1. T1 wird praktisch als eine Kopie von T2 angelegt, das in diesem Augenblick identisch mit P ist, und T2 ist eine Kopie von P. Eine von T2 gehaltene Bitmap, die seine Unterschiede zu P beschreibt, beschreibt auch korrekt seinen Unterschied zu T1. Aktualisierungen an P erfordern lediglich eine Kopieroperation, um von P nach T2 zu kopieren. Umgekehrt erfordern Aktualisierungen an T2 zwei Kopieroperationen: von P nach T2 und von T2 nach T1. Dies ist deshalb so, weil an der Mitte einer Kette vorgenommene Aktualisierungen eine Kopie an die Beziehungen auf beiden Seiten erzwingen. Das Hinzufügen einer dritten Sicherung T3 zum Zeitpunkt t3 erzeugt die Kaskade: P→T3→T2→T1.A cascade can be used to implement multiple point-in-time copies of a single data source. For example, given a data source P and point-in-time copies of P made at times t1, t2, and t3, a point-in-time copy is made at time t1 using data target T1, resulting in the following cascade: P→T1. At time t2, a second time-in-time copy is then made using data target T2, and this gives the cascade: P→T2→T1. T1 is effectively laid out as a copy of T2, which is at that moment identical to P, and T2 is a copy of P. A bitmap held by T2 that describes its differences from P also correctly describes its difference from T1. Updates to P only require a copy operation to copy from P to T2. Conversely, updates to T2 require two copy operations: from P to T2 and from T2 to T1. This is because updates made to the middle of a chain force a copy to the relationships on both sides. the hin adding a third fuse T3 at time t3 creates the cascade: P→T3→T2→T1.
Diese Technik hat viele Vorteile. Sie führt jedoch auch Abhängigkeiten zwischen den Datenzielen ein, die es bei einer herkömmlichen Implementierung mit mehreren Zielen möglicherweise nicht gibt. Eine Nebenwirkung dieser Ziel-Abhängigkeit kann in einer Notwendigkeit bestehen, ein Ziel zu „bereinigen“, wenn eine Zeitpunktkopie angehalten oder fertiggestellt wird. Wenn beispielsweise eine Zeitpunktkopie P→T2 angehalten wird, werden alle Daten auf T2, die von T1 benötigt werden, üblicherweise von T2 nach T1 kopiert, bevor das Ziel T2 aus der Kaskade entfernt werden kann. In vielen Situationen stellt dies kein Problem dar, da der Benutzer gegebenenfalls möchte, dass T1 zum Zeitpunkt t1 eine vollständige Kopie von P speichert, was bedeutet, dass der Sicherungsprozess P→T1 ein Klon ist. Wenn es jedoch bei dem Vorhaben P→T1 lediglich darum geht, zum Zeitpunkt t1 eine Momentaufnahme von P zu erstellen, kann dieser extra Kopiervorgang von T2 nach T1 dem Benutzer Probleme bereiten. Wenn das Datenziel T1 darüber hinaus mit Thin-Provisioning bereitgestellt wurde (was auch als platzsparend bezeichnet wird), können die durch das vorstehende Verhalten verursachten Probleme dazu führen, dass T1 unnötig Speicher zugeordnet wird. In manchen Anwendungen kann dadurch die Möglichkeit des Benutzers, Momentaufnahmen und Klone beizubehalten und deren Sicherungen zu verwalten, eingeschränkt werden.This technique has many advantages. However, it also introduces dependencies between data targets that may not exist in a traditional multi-target implementation. A side effect of this goal dependency may be a need to "clean up" a goal when a point-in-time copy is stopped or completed. For example, when a point-in-time copy P→T2 is halted, any data on T2 needed by T1 is usually copied from T2 to T1 before target T2 can be removed from the cascade. In many situations this is not a problem since the user may want T1 to save a full copy of P at time t1, which means that the backup process P→T1 is a clone. However, if the intention P→T1 is simply to take a snapshot of P at time t1, this extra copying process from T2 to T1 can cause problems for the user. Additionally, if the data target T1 was thin-provisioned (also known as space-efficient), the problems caused by the above behavior may result in T1 being allocated storage unnecessarily. In some applications, this can limit the user's ability to retain snapshots and clones and manage their backups.
Es sind mehrere Techniken vorhanden, die - mit unterschiedlichem Erfolg - versuchen, die Menge an Daten zu verringern, welche bei einer Bereinigung von einem Volumen auf ein anderes Volumen, wie zum Beispiel von T2 nach T1, kopiert wird. Jedoch können viele derartige Lösungen zu einer drastischen Erhöhung der Menge an Metadaten führen, die verwendet werden, um den Inhalt der verschiedenen Datenziele zu erfassen.Several techniques exist that attempt, with varying degrees of success, to reduce the amount of data copied from one volume to another volume, such as from T2 to T1, in a sweep. However, many such solutions can result in a dramatic increase in the amount of metadata used to capture the content of the various data targets.
Das Erstellen von mehreren Ziel-Zeitpunktkopie-Volumen bietet, wenn es mittels einer Vorgehensweise realisiert wird, bei der eine Kaskade verwendet wird, große Skalierbarkeit in Bezug auf die Anzahl der Kopien, während es dem Benutzer gleichzeitig die Möglichkeit einräumt, Kopien von Kopien zu erstellen. Jedoch führt die Zeitsteuerung mit mehreren Zielen, wenn dabei eine Vorgehensweise zur Anwendung kommt, bei der eine Kaskade verwendet wird, das nicht wünschenswerte Konzept ein, dass eine zeitpunktgesteuerte Zuordnung „bereinigt“ werden muss, bevor sie aus einer Kaskade entfernt werden kann. Der Bereinigungsprozess stellt sicher, dass keine Platte in der Kaskade von der Zielplatte der Zuordnung abhängig ist, welche entfernt wird. Es kann sehr lange dauern, bis der Bereinigungsprozess abgeschlossen ist.Creating multiple target point-in-time copy volumes, when implemented using an approach using cascade, offers great scalability in terms of the number of copies while allowing the user the ability to create copies of copies . However, multi-target timing, when applied to an approach that uses a cascade, introduces the undesirable concept that a timing assignment must be "cleaned up" before it can be removed from a cascade. The cleanup process ensures that no disk in the cascade is dependent on the target disk of the map being removed. It can take a long time for the cleanup process to complete.
Darüber hinaus kann die Zeitpunktsteuerung platzsparende Datenträger verwenden. Das Merkmal in Form der zeitpunktgesteuerten, platzsparenden (space-efficient, SE) Vorgehensweise ordnet Speicherplatz „nach Bedarf“ zu, indem es Speicherplatz auf einem Zieldatenträger-Volumen nur in Anspruch nimmt, wenn es tatsächlich Spuren (oder Basiseinheiten) von dem Quellendatenträger-Volumen auf das Zieldatenträger-Volumen kopiert. Ohne platzsparende Volumen macht es die zeitpunktgesteuerte Funktion erforderlich, dass der gesamte Speicherplatz auf einem Zieldatenträger-Volumen selbst dann zugeordnet wird und zur Verfügung steht, wenn keine Daten dorthin kopiert werden. Mit platzsparenden Volumen verwendet die Zeitpunktsteuerung jedoch nur die Anzahl von Spuren (oder Basiseinheiten), die notwendig sind, um die Daten, die während der Lebensdauer der Zeitpunktbeziehung geändert werden, zu schreiben, so dass die Zuordnung von Speicherplatz „nach Bedarf“ erfolgt. Da platzsparende Zeitpunkt-Datenträger-Volumen kein Zieldatenträger-Volumen erforderlich machen, das genau so groß ist wie das Quellendatenträger-Volumen, erhöht das Merkmal in Form der zeitpunktgesteuerten, platzsparenden Vorgehensweise das Potenzial für eine wirksamere Nutzung des Systemspeichers.In addition, the point-in-time control can use space-saving data carriers. The point-in-time, space-efficient (SE) approach feature allocates space "as needed" by consuming space on a target disk volume only when it actually has tracks (or base units) from the source disk volume copied to the target disk volume. Without space-efficient volumes, the point-in-time feature requires that all of the space on a target disk volume be allocated and available even when no data is being copied to it. With space-efficient volumes, however, the point-in-time controller uses only the number of tracks (or base units) necessary to write the data that will change during the lifetime of the point-in-time relationship, so the allocation of storage space is done "as needed". Because space-efficient point-in-time disk volumes do not require a target disk volume that is exactly the same size as the source disk volume, the point-in-time, space-efficient approach feature increases the potential for more efficient use of system memory.
Das Attribut der Speicherplatzeffizienz kann für das Zieldatenträger-Volumen während des Prozesses der Volumen-Erzeugung angegeben werden. Ein platzsparendes Volumen kann von jedem beliebigen Speicherbereichspool erzeugt werden, der bereits platzsparenden Speicher erzeugt hat. Solange die platzsparenden Quellen- und Zieldatenträger-Volumen erzeugt wurden und zur Verfügung stehen, können sie ausgewählt werden, wenn die Zeitpunktbeziehung hergestellt wird.The disk space efficiency attribute can be specified for the target disk volume during the volume creation process. A space-efficient volume can be spawned from any extent pool that has already spawned space-efficient storage. As long as the space-efficient source and target disk volumes have been created and are available, they can be selected when the point-in-time relationship is established.
Wie vorstehend beschrieben wurde, erhöht das Merkmal in Form der zeitpunktgesteuerten, platzsparenden Vorgehensweise somit das Potenzial für eine wirksamere Nutzung des Systemspeichers. Kombiniert man jedoch die Zeitsteuerung mit mehreren Zielen mit platzsparenden Volumen, ergibt sich für den Bereinigungsprozess ein weiteres Problem. Das heißt, man betrachte die Situation, in der ein Kunde eine tägliche Sicherungskopie hat, wobei der Kunde zum Beispiel jeden Tag eine neue platzsparende Kopie dieser Sicherung erstellt. Eine Kaskade und die Zeitsteuerung mit mehreren Zielen sowie platzsparende Volumen ermöglichen diese Konfiguration. Zu berücksichtigen ist auch, dass die zeitpunktgesteuerte Zuordnung inkrementell erfolgt, um die für die abschließende Durchführung der täglichen Sicherung benötigte Zeit zu verringern. Das Problem mit dem Bereinigungsprozess in diesem Szenario besteht darin, dass der Bereinigungsprozess alle Daten von der täglichen Sicherung in die neueste platzsparende Kopie kopieren muss. Da die tägliche Kopie jedoch eine vollständige Kopie ist, erfordert dies, dass die gesamte platzsparende Kopie zugeordnet wird. Bei diesem Szenario wird die Nutzung des platzsparenden Volumens folglich durch die kaskadierte Vorgehensweise bei der Bereinigung „unterbrochen“.Thus, as described above, the point-in-time, space-saving approach feature increases the potential for more efficient use of system memory. However, combining timing with multiple targets with space-efficient volumes introduces another problem for the cleanup process. That is, consider the situation where a customer has a daily backup copy, the customer making a new space-efficient copy of that backup every day, for example. Cascade and multi-destination scheduling and space-saving volumes enable this configuration. It is also important to note that the point-in-time allocation is incremental to reduce the time required to complete the daily backup. The problem with the cleanup process in this scenario is that the cleanup process needs to copy all the data from the daily backup to the latest space-efficient copy. Because the daily However, if the copy is a full copy, this requires the entire space-efficient copy to be allocated. In this scenario, the use of the space-saving volume is consequently “interrupted” by the cascaded approach to cleaning.
Lösungen nach dem Stand der Technik zeigen, wie man viele Zeitpunktkopien eines einzelnen Volumens erstellt, wobei die Kosten von der Anzahl dieser Kopien unabhängig sind. Eine Verkettung von zusammengehörenden Zeitpunktkopien ist zulässig. Ein solcher Algorithmus optimiert den standardmäßigen Kopieren-beim-Schreiben-Algorithmus, erfordert aber dennoch eine zusätzliche E/A, die von einer ROW-Implementierung nicht benötigt würde. Diese E/A kommt in Form der geteilten Schreiboperation, die erforderlich ist, um das neueste Zeitpunktabbild beizubehalten.Prior art solutions show how to make many point-in-time copies of a single volume, the cost being independent of the number of those copies. A concatenation of related point in time copies is permitted. Such an algorithm optimizes the standard copy-on-write algorithm, but still requires additional I/O that would not be required by a ROW implementation. This I/O comes in the form of the split write required to maintain the most recent point-in-time image.
Es würde einen Vorteil darstellen, wenn man einen Algorithmus hätte, der die Flexibilität von Lösungen nach dem Stand der Technik bei der Bereitstellung von Zeitpunktkopie-Abbildern über mehrere Speicherpools hinweg vorsähe, gleichzeitig aber auch die E/A-Effizienz beim Schreiben von ROW-Algorithmen für Momentaufnahmen böte, bei denen sich der gesamte Speicher in einem Pool befindet.It would be an advantage to have an algorithm that provided the flexibility of prior art solutions in providing point-in-time copy images across multiple storage pools, while also providing the I/O efficiency in writing ROW algorithms for snapshots where all storage is in one pool.
Bei manchen Speichercontrollern hat ein Benutzer die Möglichkeit, mehr als ein Ziel für eine bestimmte Quelle zu konfigurieren. Dafür gibt es mehrere Anwendungen. Verschiedene Experimente könnten beispielsweise an jedem der Ziele durchgeführt werden. Oder die Ziele könnten zu verschiedenen Zeiten (z.B. an verschiedenen Wochentagen) verwendet werden und ermöglichen einen zeitbezogenen Zugriff auf die Platte, eventuell zu dem Zweck, eine bestimmte Beschädigung von Daten zu beheben, wie sie von einem Virus verursacht werden könnte.Some storage controllers allow a user to configure more than one destination for a given source. There are several applications for this. For example, different experiments could be performed on each of the targets. Or, the targets could be used at different times (e.g., different days of the week) and allow time-related access to the disk, perhaps for the purpose of repairing specific data corruption such as might be caused by a virus.
In der Ausführungsform von
Beim Erstellen einer Zeitpunktkopie wird eine Verbindung zwischen den beiden Platten 10 und 12 hergestellt, welche von der Zuordnung 14 angegeben wird. Daten können nun im Hintergrund unter der zusätzlichen Voraussetzung hinüber kopiert werden, dass jedweder Zugriff auf die vdisk2 (als die Zielplatte 12) sofort bewirken kann, dass die relevanten Teile des Abbilds der vdisk1 hinüber kopiert werden, und dass auch jedweder Zugriff auf die vdisk1, der zu einer Änderung des von dieser Platte 10 gespeicherten Abbilds führen würde, ebenfalls bewirkt, dass die nicht geänderten Daten sofort hinüber auf die Zielplatte 12 kopiert werden, bevor die Änderung vorgenommen wird. Für einen außenstehenden Benutzer speichert die vdisk2 auf diese Weise die Zeitpunktkopie der vdisk1, obgleich Daten unter den vorstehend beschriebenen Umständen nur physisch hinüber kopiert werden können.When creating a point-in-time copy, a connection is established between the two
Ein Speicherdatenträger-Volumen, welches das Zieldatenträger-Volumen eines Sicherungsprozesses wie zum Beispiel einer Zeitpunktkopie-Funktion ist, kann auch das Quellendatenträger-Volumen eines weiteren Sicherungsprozesses sein, so dass auf diese Weise eine Kaskade von Speicherdatenträger-Volumen erzeugt wird.A storage volume that is the target volume of a backup process such as a point-in-time copy function can also be the source volume of another backup process, thus creating a cascade of storage volume volumes.
In der Zeitpunktkopie-Kaskade von A→B→C, bei der A 10, B 12 und C 16 die Platten in der Kaskade sind, wie in
Beim Erzeugen einer Kaskade werden die neuen Zuordnungen und die neuen Speicherdatenträger-Volumen in die Kaskade eingefügt, nicht an das Ende der Kaskade angefügt. In der in
Der Speichercontroller 8 kann so betrieben werden, dass die Platten und die Zuordnungen so angeordnet werden, dass Klone und Momentaufnahmen in verschiedene Abhängigkeitsketten oder -kaskaden getrennt werden. Wie nachstehend ausführlicher beschrieben wird, besteht ein Merkmal des Trennens von Klonen und Momentaufnahmen in verschiedene Kaskaden darin, dass Bereinigungsoperationen, die durch das Beenden einer Kopieroperation verursacht werden, verringert oder ganz vermieden werden.The
Die
In dem in
Nachfolgende Sicherungsprozesse entweder als Momentaufnahmen oder Klone von P verlängern die Länge der Klon- und/oder der Momentaufnahmeketten, ohne die Anzahl der Kanten zu erhöhen, die P verlassen, und folglich erhöhen sie auch nicht die Anzahl der Bereinigungsoperation-E/As in Verbindung mit einer Schreiboperation auf P. Der Graph von
Unter der Voraussetzung, dass die Momentaufnahmen in Bezug auf die anderen Momentaufnahmen in der richtigen Reihenfolge sind und die Klone in Bezug auf andere Klone in der richtigen Reihenfolge sind, kann die Reihenfolge, in der die verschiedenen Arten angeordnet werden, eine beliebige Permutation von S1, S2, S3, C1, C2, C3 sein. Die Startreihenfolge könnte beispielsweise S1, C1, S2, S3, C2, C3 sein. Diese Kaskaden können als einen Baum bildende Kaskaden mit einem Wurzelknoten P, wie in
Gemäß der jeweiligen Zeitpunktkopie-Funktion mit mehreren Ziel-Zeitpunktkopien würden Schreiboperationen auf eine Platte in einem Abhängigkeitsgraphen zu einer Leseoperation, geteilten Schreiboperationen sowie einer Schreiboperation eines Clients führen, um die anderen Abbilder auf den Platten beizubehalten. Beispielsweise kann eine Schreiboperation eines Clients (oder eines Hosts) auf P in dem vorstehenden Abhängigkeitsgraphen führen zu 1) einer Leseoperation, das heißt, einer Leseoperation von P, wenn die Daten von S3 oder C3 benötigt werden, da sich der Speicherplatz, in den geschrieben wird, auf P befindet, 2) einer geteilten Schreiboperation, das heißt, a) einer Schreiboperation auf S3 der Daten, die von P gelesen wurden, wenn S3 von P abhängig ist, und b) einer Schreiboperation auf C3 der Daten, die von P gelesen wurden, wenn C3 von P abhängig ist (die parallel zu dem zweiten Vorgang durchgeführt werden kann), und 3) einer Client-Schreiboperation, das heißt, der Client schreibt selbst auf P. Infolge dieser Bereinigungsoperationen für jede Schreiboperation auf P sind die Datenträger-Volumen S3 und C3 jeweils unabhängig von jedweden Basiseinheiten, die seit dem Start dieser Sicherungsläufe geändert wurden.According to the respective point-in-time copy function with multiple target point-in-time copies, writes to a disk in a dependency graph would result in a read, split writes, and a client write to preserve the other images on the disks. For example, a client (or host) write to P in the preceding dependency graph may result in 1) a read, that is, a read from P when the data is needed from S3 or C3, since the memory space to be written to is located on P, 2) a split write operation, that is, a) a write operation on S3 of the data read from P if S3 depends on P, and b) a write operation on C3 of the data read from P have been read if C3 is dependent on P (which can be performed in parallel with the second operation), and 3) a client write, i.e. the client writes to P itself. As a result of these cleanup operations for each write to P, the volumes are -Volumes S3 and C3 are each independent of any base units that have changed since the start of these backup runs.
Ein Merkmal des Trennens von Klonen und Momentaufnahmen in verschiedene Kaskaden besteht darin, das Beenden von unnötigen Sicherungsläufen zu vereinfachen, um die mit dem Anhalten selbst verbundene Bereinigung zu verringern oder ganz zu vermeiden. Wenn beispielsweise die Zuordnung 4 in dem Abhängigkeitsgraphen von
Umgekehrt können, wenn eine Momentaufnahme angehalten wird, alle Momentaufnahmen und Klone der Ziel-Momentaufnahme-Platte aufgrund der Trennung von den Klon-Kaskaden ohne Weiteres angehalten werden, ohne dass das Anhalten eine zusätzliche Bereinigung zur Folge hat. Wenn ein Klon angehalten wird, können außerdem auch alle Momentaufnahmen der Ziel-Klon-Platte angehalten werden. Dieser Ansatz kann gewählt werden, da eine Momentaufnahme üblicherweise von ihrer Quelle abhängig ist. Wenn die Klon-Quelle einer Momentaufnahme gelöscht wird, ist die davon abhängige Momentaufnahme somit wahrscheinlich von geringem oder überhaupt keinem Nutzen. Indem man Klone und Momentaufnahmen in verschiedene Kaskaden trennt, können auf diese Weise zusätzliche Bereinigungsoperationen verringert oder ganz vermieden werden.Conversely, if a snapshot is paused, all snapshots and clones of the target snapshot disk can be paused easily due to the separation from the clone cascades, with no additional cleanup resulting from the pause. In addition, when a clone is paused, all snapshots of the target clone disk can also be paused. This approach can be taken because a snapshot is typically dependent on its source. Thus, if a snapshot's clone source is deleted, the snapshot that is dependent on it is likely to be of little or no use. By separating clones and snapshots into different cascades, additional cleanup operations can be reduced or eliminated in this way.
Wenn nun beispielsweise festgestellt wird, dass die Platte P beschädigt ist und der Administrator die Platte P anhand einer vorhandenen Platte wie zum Beispiel der Platte S1 wiederherstellen möchte, wird eine Zuordnung 8, S1→P, erstellt und gestartet, welche die Kaskade S1→P (
Bei dem System ist es auch möglich, dass eine Platte in derselben Kaskade oder in getrennten Kaskaden mehrfach vorhanden ist. Als Beispiel werden S3, S2 und S1 als Momentaufnahmen von P erzeugt. S1 enthält die ursprünglichen Daten des Benutzers, wohingegen S3 und S2 weitere Momentaufnahmen enthalten, auf denen zwei verschiedene Simulationen ausgeführt worden sind. Der Benutzer stellt möglicherweise fest, dass das Ergebnis der Simulation auf S2 vorteilhaft ist und entscheidet sich dafür, P anhand von S2 wiederherzustellen. Das System ermöglicht dem Benutzer, eine neue Zuordnung S2→P zu starten, während er die nicht geänderte Sicherung der ursprünglichen Daten in S1 nach wie vor beibehalten kann.It is also possible with the system for a panel to be present multiple times in the same cascade or in separate cascades. As an example, S3, S2, and S1 are created as snapshots of P. S1 contains the user's original data, while S3 and S2 contain other snapshots on which two different simulations have been run. The user may find that the outcome of the simulation on S2 is favorable and decide to recover P from S2. The system allows the user to start a new mapping S2→P while still retaining the unmodified backup of the original data in S1.
Je öfter eine Platte jedoch in einer Kaskade erscheint, desto mehr E/A-Operationen sind gegebenenfalls auf der Ebene der Zeitpunktkopie (Bereinigungs-E/As) erforderlich, bevor eine E/A, die ihren Ursprung am Host hat, wieder auf dem Host abgeschlossen werden kann. Alternativ kann ein Administrator einfach eine Zuordnung 14 erstellen und in der entgegengesetzten Richtung starten, um eine Zuordnung rückgängig zu machen.However, the more times a disk appears in a cascade, the more I/O operations may be required at the point-in-time copy (scavenge I/O) level before an I/O that originated on the host is returned to the host can be completed. Alternatively, an administrator can simply create an
Wie zudem in
Mit Bezug auf das Beispiel von
Die
Es gibt zwei bedeutende Algorithmen, die für die Umsetzung von zeitpunktgesteuerten Lösungen verwendet werden; es sind dies die Algorithmen „Redirect-on-write“ (ROW) und „Copy-on-write“ (COW). Einzelheiten über diese beiden Algorithmen findet man in vielen offen zugänglichen Quellen.There are two major algorithms used to implement point-in-time solutions; these are the algorithms “redirect-on-write” (ROW) and “copy-on-write” (COW). Details about these two algorithms can be found in many open sources.
Sowohl ROW als auch COW haben Vorteile und Nachteile für den Implementierer und letzten Endes den Benutzer des resultierenden Produkts. ROW kann in Bezug auf E/A-Mehraufwand beim Schreiben wirksamer sein, da die vorhandenen Daten vor der Übernahme der Schreibdaten nicht verschoben werden müssen, sondern die neuen Schreibdaten stattdessen in einen neuen Bereich geschrieben werden. Es ist auch der Fall, dass viele erweiterte Funktionen wie zum Beispiel Zurücksetzen/Wiederherstellen in ROW-Umgebungen einfacher sind. Ein Nachteil von ROW gegenüber COW besteht darin, dass die Daten für alle Abbilder gewöhnlich aus ein und demselben Speicherpool stammen müssen. Das bedeutet, dass ROW oft optimal für die Momentaufnahme-Version einer Zeitpunktkopie ist. Hingegen machen es die Klon- und Sicherungsfälle oftmals erforderlich, dass sich die Zeitpunktkopie in einem getrennten Speicherpool befindet, was COW zum besseren Algorithmus macht.Both ROW and COW have advantages and disadvantages for the implementer and last Ultimately, the user of the resulting product. ROW can be more efficient in terms of write I/O overhead because the existing data does not need to be moved before committing the write data, but instead the new write data is written to a new area. It is also the case that many advanced functions such as reset/restore are easier in ROW environments. A disadvantage of ROW over COW is that the data for all images must usually come from the same storage pool. This means that ROW is often optimal for the snapshot version of a point-in-time copy. On the other hand, the clone and backup cases often require the point-in-time copy to be in a separate storage pool, making COW the better algorithm.
Der ROW-Algorithmus hat nicht den doppelten Schreibnachteil von COW. Neue Schreiboperationen auf das ursprüngliche Datenträger-Volumen werden an einen anderen Speicherplatz umgeleitet, der für eine Momentaufnahme vorgesehen ist. Der Vorteil des Umleitens der Schreiboperation besteht darin, dass nur eine Schreiboperation stattfindet, wohingegen beim Kopieren-beim-Schreiben-Verfahren zwei Schreiboperationen stattfinden (eine, um ursprüngliche Daten in den Speicherplatz zu kopieren, die andere, um geänderte Daten zu kopieren). Bei ROW enthält die ursprüngliche Kopie die Zeitpunkt-Daten, das heißt, die Momentaufnahme, und die geänderten Daten befinden sich in dem Momentaufnahme-Speicher. Wenn eine Momentaufnahme gelöscht wird, müssen die Daten aus dem Momentaufnahme-Speicher nach einem Datenabgleich wieder auf den ursprünglichen Datenträger geschrieben werden. Da mehrere Momentaufnahmen erstellt werden, wird der Zugriff auf die ursprünglichen Daten, das Erfassen der Daten in Momentaufnahmen und auf dem ursprünglichen Datenträger-Volumen sowie der Datenabgleich nach dem Löschen einer Momentaufnahme weiter erschwert. Die Momentaufnahme basiert auf der ursprünglichen Kopie der Daten und der ursprüngliche Datensatz kann schnell fragmentiert werden.The ROW algorithm does not have the double write disadvantage of COW. New write operations to the original disk volume are redirected to another storage space designated for a snapshot. The advantage of redirecting the write operation is that only one write operation takes place, whereas with the copy-on-write method, two write operations take place (one to copy original data to memory space, the other to copy changed data). With ROW, the original copy contains the point-in-time data, that is, the snapshot, and the changed data resides in the snapshot store. If a snapshot is deleted, the data from the snapshot storage must be written back to the original volume after a data reconciliation. Because multiple snapshots are taken, accessing the original data, capturing the data in snapshots and on the original disk volume, and reconciling data after a snapshot is deleted is further complicated. The snapshot is based on the original copy of the data, and the original dataset can quickly become fragmented.
Wenn man eine gemischte Konfiguration hat, bei der COW für Klon-Zeitpunktkopien und ROW für Momentaufnahme-Zeitpunktkopien verwendet wird, bringt dies in der Praxis seine eigenen Komplikationen mit sich, so dass üblicherweise ein Algorithmus für beide Arten von Zeitpunktkopien von COW verwendet wird. Die höhere Komplexität bei der einen wird durch die geringere Komplexität bei der anderen ausgeglichen.In practice, having a mixed configuration using COW for clone point-in-time copies and ROW for snapshot point-in-time copies introduces its own complications, so commonly one algorithm is used for both types of point-in-time copies of COW. The higher complexity of one is offset by the lower complexity of the other.
Vorteilhafterweise stellt diese Erfindung eine Möglichkeit dar, den ROW- und den COW-Algorithmus zu einem neuen Algorithmus zusammenzufassen, der bei der Erstellung von Momentaufnahmen verwendet werden kann. Dieser neue Algorithmus verfügt über die E/A-Vorteile beim Schreiben von ROW, wenn er in einem Speicherpool arbeitet, während er gleichzeitig den COW-Algorithmus einsetzt, der bei Bedarf die Verwendung von mehreren Speicherschichten erlaubt.Advantageously, this invention provides a way to combine the ROW and COW algorithms into a new algorithm that can be used in snapshot creation. This new algorithm has the I/O advantages of writing ROW when working in a memory pool, while at the same time using the COW algorithm, which allows the use of multiple layers of memory if necessary.
Vorteilhafterweise funktioniert die Erfindung in der Weise, dass die Host-Ansicht der Daten von den physischen Einheiten getrennt wird, die zur Speicherung der Daten verwendet werden. Das heißt, ein Datenträger-Volumen besteht aus einer vdisk, die dem Hostsystem übergeben wird, und einer pdisk, bei der es sich um den eigentlichen Speicher handelt, der zur Aufnahme der Daten verwendet wird.Advantageously, the invention operates by separating the host's view of the data from the physical devices used to store the data. That is, a disk volume consists of a vdisk, which is given to the host system, and a pdisk, which is the actual storage used to hold the data.
Das Verfahren beginnt im Schritt 601. Im Schritt 605 kopiert eine Kopie-Komponente 905 das Quellendatenträger-Volumen 705, um eine Momentaufnahme-Zeitpunktkopie 765 zu erstellen. Die Momentaufnahme-Zeitpunktkopie 765 weist eine virtuelle logische Sicht (vdisk) S1 759 und eine physische Platte S1p 761 auf. Im Schritt 710 ordnet eine Zuordnungs-Komponente 910 die Datenträger-Volumen in einer Kopie-Kaskade zu, um die Map 8-1 805 bereitzustellen.The method begins at
Im Schritt 615 stellt eine Austausch-Komponente 906 fest, ob das Zeitpunktkopie-Datenträger-Volumen 765 ein Datenträger-Volumen 765 für Momentaufnahme-Zeitpunktkopien ist. Wie in der Map 8-2 810 gezeigt ist, tauscht 890 die Austausch-Komponente 906 die beiden vdisk-Ansichten, die Köpfe G 755 und S1 759, aus, da das Zeitpunktkopie-Datenträger-Volumen 765 ein Datenträger-Volumen 765 für Momentaufnahme-Zeitpunktkopien ist. Die Zuordnungs-Komponente 910 ordnet den Austausch 890 zu, um die Map 8-2a 810 bereitzustellen. Die Map 8-2a 810 ist in der Map 8-2b 820 ausführlicher gezeigt. Der Inhalt von S1p 761 stellt eine Verbindung zu denselben Speicherplätzen wie Gp 757 her, da keine Schreiboperationen in den Inhalt von S1 p 761 vorgenommen wurden. Die Daten, die einem Host für G 755 übergeben werden, sind die Daten [A, B]; und die Daten, die einem Host für S1 759 übergeben werden, sind die Daten [A, B]. In diesem Zustand ist die Ansicht des Hosts für E/A unverändert und S1 765 ist das Abbild des Zeitpunktkopie-Datenträger-Volumens von G 705. Die Schreib-E/A auf G 705 ordnet für diese E/A neuen Speicherbereich zu und entspricht daher der E/A-Leistung des standardmäßigen ROW-Algorithmus. Da sowohl G 705 als auch S1 765 aus demselben Speicherpool bereitgestellt werden, sind die wesentlichen Eigenschaften der Datenträger-Volumen aus der Verwaltungsperspektive des Benutzers unverändert.In
Im Schritt 625 empfängt eine E/A-Komponente 915 eine Schreibanforderung, Daten „C“ in die erste Basiseinheit von G 755 zu schreiben. Die Zuordnungs-Komponente 910 ordnet die Schreiboperation zu, um die Map 8-4 825 zu erstellen. Da die Köpfe G 755 und S1 759 bereits ausgetauscht wurden, wird die Schreiboperation auf G 705 an S1 p-0 umgeleitet. Im Schritt 630 verwendet die E/A-Komponente einen COW-Algorithmus, um festzustellen, ob zuerst in einen weiteren Speicherplatz einer Basiseinheit geschrieben werden muss. In der Konfiguration der Map 8-4 825 gibt es keine nachgeordneten Kopie-Datenträger-Volumen und somit werden die Daten „C“ im Schritt 640 auf S1 p-0 geschrieben. Das Verfahren endet im Schritt 699.In
Vorteilhafterweise wurde das ROW-Verhalten im Fall einer Momentaufnahme-Zeitpunktkopie erreicht, ohne den am Punkt einer Schreiboperation verwendeten COW-Algorithmus zu ändern.Advantageously, the ROW behavior in the case of a snapshot point-in-time copy was achieved without changing the COW algorithm used at the point of a write operation.
In einer alternativen Ausführungsform gibt es bereits eine Momentaufnahme-Zeitpunktkopie 765. Im Schritt 605 kopiert eine Kopie-Komponente 905 das Datenträger-Volumen 765 für Momentaufnahme-Zeitpunktkopien, um eine Klon-Zeitpunktkopie 770 zu erstellen. Die Klon-Zeitpunktkopie 770 weist eine virtuelle logische Sicht (vdisk) C1 772 und eine physische Platte C1p 774 auf. Im Schritt 710 ordnet die Zuordnungs-Komponente 910 die Datenträger-Volumen in einer Kopie-Kaskade zu, um eine Map 8-5a 834 bereitzustellen. Im Schritt 615 stellt die Austausch-Komponente 906 fest, ob das Zeitpunktkopie-Datenträger-Volumen 770 ein Datenträger-Volumen 770 für Momentaufnahme-Zeitpunktkopien ist. Das Zeitpunktkopie-Datenträger-Volumen 770 ist jedoch kein Datenträger-Volumen 770 für Momentaufnahme-Zeitpunktkopien, so dass im Schritt 615 einem „NEIN“-Austritt gefolgt wird; anders ausgedrückt, dem Schritt 620 wird nicht gefolgt. Der Inhalt der C1p 774 stellt eine Verbindung zu denselben Speicherplätzen wie S1p 761 her, die wiederum eine Verbindung zu denselben Speicherplätzen wie Gp 757 herstellen, da Schreiboperationen weder in den Inhalt von S1 p 761 noch auf C1 p 774 vorgenommen wurden. Die Daten, die einem Host für G 755 übergeben werden, sind die Daten [A, B]; die Daten, die einem Host für S1 759 übergeben werden, sind die Daten [A, B]; und die Daten, die einem Host für C1 772 übergeben werden, sind ebenfalls die Daten [A, B].In an alternative embodiment, a snapshot-point-in-
Im Schritt 625 empfängt die E/A-Komponente 915 eine Schreibanforderung, Daten „C“ in die erste Basiseinheit von G 755 zu schreiben. Die Zuordnungs-Komponente 910 ordnet die Schreiboperation zu, um die Map 8-5b 836 zu erstellen. Da die Köpfe G 755 und S1 759 bereits ausgetauscht wurden, wird die Schreiboperation auf G 705 an S1 p-0 umgeleitet. Im Schritt 630 verwendet die E/A-Komponente einen COW-Algorithmus, um festzustellen, ob in einen Speicherplatz einer weiteren Basiseinheit zuerst geschrieben werden soll. In der Konfiguration der Map 8-5b 836 gibt es nachgeordnete Kopie-Datenträger-Volumen und somit wird dem „JA“-Austritt zum Schritt 635 gefolgt. Im Schritt 635 werden die Daten „A“ von Gp-0 nach C1 p-0 kopiert 838. Im Schritt 640 werden die Daten „C“ dann auf S1 p-0 geschrieben. Das Verfahren endet am Schritt 699. Vorteilhafterweise wurde das COW-Verhalten im Fall einer Klon-Zeitpunktkopie erreicht, ohne den am Punkt einer Schreiboperation verwendeten COW-Algorithmus zu ändern.In
In noch einer alternativen Ausführungsform gibt es bereits eine Momentaufnahme-Zeitpunktkopie 765. Im Schritt 605 kopiert eine Kopie-Komponente 905 das G / S1p-Zeitpunktkopie-Datenträger-Volumen 765, um eine neue Momentaufnahme-Zeitpunktkopie zu erstellen. Die neue Momentaufnahme-Zeitpunktkopie weist eine virtuelle logische Sicht (vdisk) S2 773 und eine physische Platte S2p 777 auf. Im Schritt 615 stellt die Austausch-Komponente 906 fest, ob das neue Zeitpunktkopie-Datenträger-Volumen ein Datenträger-Volumen für Momentaufnahme-Zeitpunktkopien ist. Da das neue Zeitpunktkopie-Datenträger-Volumen ein Datenträger-Volumen für Momentaufnahme-Zeitpunktkopien ist, wird im Schritt 615 dem „JA“-Austritt gefolgt. Im Schritt 620 tauscht die Austausch-Komponente 906 die beiden vdisk-Ansichten, die Köpfe G 755 und S2 773, aus. Die Zuordnungs-Komponente 910 ordnet den Austausch zu, um die Map 8-6 841 bereitzustellen. Der Inhalt der S2p 777 stellt eine Verbindung zu denselben Speicherplätzen wie Gp 757 her, da weder in den Inhalt von S1p 761 noch S2p 777 Schreiboperationen vorgenommen wurden. Die Daten, die einem Host für G 755 übergeben werden, sind die Daten [A, B], die Daten, die einem Host für S2 759 übergeben werden, sind die Daten [A, B]; und die Daten, die einem Host für S2 773 übergeben werden, sind die Daten [A, B]. In diesem Zustand ist die Ansicht des Hosts für E/A unverändert und S2 ist das Abbild des Zeitpunktkopie-Datenträger-Volumens von G 705. Die Schreib-E/A auf G 705 ordnet für diese E/A neuen Speicherbereich zu und entspricht daher der E/A-Leistung des standardmäßigen ROW-Algorithmus. Da sowohl G 705, S1 765 als auch S2 aus demselben Speicherpool bereitgestellt werden, sind die wesentlichen Eigenschaften des Datenträger-Volumens aus der Verwaltungsperspektive des Benutzers unverändert. Die E/A-Verarbeitung kann mit Hilfe der Schritte 625, 630, 640 fortgesetzt werden. Das Verfahren endet im Schritt 699.In yet another alternative embodiment, a snapshot point-in-
Für einen Fachmann wird es offensichtlich sein, dass weitere Momentaufnahme-Zeitpunktkopien erstellt werden können, wobei der Produktions-Datenträger G 705 E/A immer in einer ROW-Weise verarbeitet.It will be apparent to one skilled in the art that further snapshot-point-in-time copies can be made with the
Vorteilhafterweise ist der vdisk-Teil für die Host-E/A und die Verarbeitung von Zeitpunktkopien zuständig, während der pdisk-Teil die Daten speichert. Vorteilhafterweise wird gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung eine Teilung zwischen dem logischen Abbild, das von dem Host übergeben und von dem Zeitpunktkopie-Algorithmus verwaltet wird, und dem physischen Speicher, der verwendet wird, um die Daten aufzunehmen, eingeführt. Jedes Speicherdatenträger-Volumen weist einen „vdisk“-Teil und einen „pdisk“-Teil auf. Der vdisk-Teil wird als der „Host“-Teil betrachtet. Der vdisk-Teil ist für die Host-E/A und die Verarbeitung von Zeitpunktkopien zuständig und die pdisk speichert die Daten. Vorteilhafterweise kann das System auf Anforderung des Benutzers immer aktualisierende Wiederherstellungsoperationen durchführen und im Hintergrund Ordnung bei abgebrochenen Wiederherstellungsoperationen schaffen.Advantageously, the vdisk portion is responsible for host I/O and point-in-time copy processing, while the pdisk portion stores the data. Advantageously, according to a preferred embodiment of the present invention, a partition is introduced between the logical image provided by the host and managed by the point-in-time copy algorithm and the physical memory used to hold the data. Each storage disk volume has a "vdisk" part and a "pdisk" part. The vdisk part is considered the "host" part. The vdisk part is responsible for host I/O and point-in-time copy processing and the pdisk stores the data. Advantageously, the system can always perform roll-forward restore operations at the user's request and clean up behind-the-scenes restore operations that have been aborted.
Aspekte der vorliegenden Erfindung werden mit Bezug auf Darstellungen in Ablaufplänen und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Darstellungen in den Ablaufplänen und/oder der Blockschaubilder sowie Kombinationen aus Blöcken in den Darstellungen der Ablaufpläne und/oder den Blockschaubildern mittels Anweisungen eines Computerprogramms realisiert werden können.Aspects of the present invention are described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It is to be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, may be implemented by computer program instructions.
Diese Anweisungen eines Computerprogramms können einem Prozessor eines Mehrzweckcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die Anweisungen, die über den Prozessor des Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel zur Ausführung der Funktionen/Vorgänge erzeugen, die in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegeben sind.These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable computing device to produce a machine such that the instructions, executed via the processor of the computer or other programmable computing device, provide a means for executing the Create functions/acts specified in the block or blocks of the flowcharts and/or block diagrams.
In einer alternativen Ausführungsform kann die vorliegende Erfindung in einer Cloud-Computing-Umgebung realisiert werden. Es versteht sich im Voraus, dass diese Offenbarung zwar eine ausführliche Beschreibung des Cloud-Computing beinhaltet, die Umsetzung der hier aufgezeigten Lehren jedoch nicht auf eine Cloud-Computing-Umgebung beschränkt ist. Vielmehr können Ausführungsformen der vorliegenden Erfindung in Verbindung mit einer beliebigen anderen Art einer Datenverarbeitungsumgebung, die zum gegenwärtigen Zeitpunkt bereits bekannt ist oder zu einem späteren Zeitpunkt entwickelt werden wird, eingesetzt werden.In an alternate embodiment, the present invention may be implemented in a cloud computing environment. It is understood in advance that while this disclosure includes a detailed description of cloud computing, implementation of the teachings presented herein is not limited to a cloud computing environment. Rather, embodiments of the present invention may be used in conjunction with any other type of computing environment now known or later developed.
Cloud-Computing ist ein Modell zur Bereitstellung von Diensten, um einen mühelosen, bedarfsweisen Zugriff über das Netzwerk auf einen gemeinsam genutzten Bestand an konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerken, Netzwerkbandbreite, Servern, Rechenleistung, Hauptspeicher, Massenspeicher, Anwendungen, virtuellen Maschinen und Diensten) zu ermöglichen, die schnell bereitgestellt und mit äußerst geringem Verwaltungsaufwand oder minimalem Dialogverkehr mit einem Anbieter des Dienstes freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Besonderheiten, mindestens drei Dienst-Modelle und mindestens vier Implementierungsmodelle beinhalten.Cloud computing is a service delivery model for providing easy, on-demand access over the network to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing power, memory, storage, applications, virtual machines, and services). that can be deployed quickly and released with very little administrative effort or interaction with a provider of the service. This cloud model can include at least five features, at least three service models and at least four implementation models.
Die Besonderheiten sind wie folgt:
- Selbstbedienung nach Bedarf: Ein Cloud-Nutzer kann einseitig Datenverarbeitungsfunktionen wie zum Beispiel Serverzeit und Netzwerkspeicher nach Bedarf automatisch bereitstellen, ohne dass eine Person mit dem Anbieter des Dienstes in Dialogverkehr treten muss.
- Umfassender Netzwerkzugriff: Funktionen stehen über ein Netzwerk zur Verfügung und der Zugriff auf die Funktionen erfolgt über standardmäßige Mechanismen, welche die Nutzung durch heterogene Thin-Client- oder Thick-Client-Plattformen (z.B. Mobiltelefone, Laptops und persönliche digitale Assistenten (PDAs)) unterstützen.
- On-demand self-service: A cloud user can unilaterally automatically provision computing capabilities such as server time and network storage as needed, without requiring a human interaction with the service provider.
- Extensive network access: Functions are available over a network and access to the functions is via standard mechanisms, allowing for use by heterogeneous thin-client or thick-cli ent platforms (e.g. mobile phones, laptops and personal digital assistants (PDAs)).
Gemeinsame Nutzung physischer Ressourcen: Die Datenverarbeitungsressourcen des Anbieters werden unter Verwendung eines Modells mit mehreren Mandanten (Multi-Tenant-Modell) zusammengeführt, um mehrere Nutzer zu bedienen, wobei verschiedene physische und virtuelle Ressourcen entsprechend dem Bedarf dynamisch zugewiesen und neu zugewiesen werden. Man hat ein Gefühl der Standort-Unabhängigkeit, da der Nutzer im Allgemeinen keine Kontrolle über den genauen Standort der bereitgestellten Ressourcen hat oder den genauen Standort nicht kennt, diesen gegebenenfalls aber auf einer höheren Abstraktionsebene (z.B. Land, Staat/Bundesland oder Rechenzentrum) angeben kann.Sharing of physical resources: The provider's computing resources are aggregated using a multi-tenant model to serve multiple users, dynamically allocating and reallocating various physical and virtual resources according to need. There is a sense of location independence as the user generally has no control over the exact location of the deployed resources or does not know the exact location but can specify it at a higher level of abstraction (e.g. country, state/state or data center) if necessary .
Unverzügliche Anpassbarkeit an den Ressourcenbedarf: Funktionen können schnell und elastisch bereitgestellt werden, in manchen Fällen automatisch, um eine schnelle horizontale Skalierbarkeit zu ermöglichen, und sie können schnell freigegeben werden, um eine schnelle vertikale Skalierbarkeit zu ermöglichen. Dem Nutzer erscheinen die zur Versorgung vorhandenen Funktionen oftmals unerschöpflich und sie können jederzeit in jeder beliebigen Menge erworben werden.Instantaneous adaptability to resource demands: Capabilities can be deployed quickly and elastically, in some cases automatically, to enable fast horizontal scalability, and they can be quickly released to allow fast vertical scalability. The functions available for supply often seem inexhaustible to the user and they can be purchased at any time in any quantity.
Messung der Service-Nutzung: Cloud-Systeme steuern und optimieren die Nutzung der Ressourcen automatisch, indem sie auf einer bestimmten Abstraktionsebene, die für die Art des Dienstes (z.B. Speicherkapazität, Rechenleistung, Bandbreite und aktive Benutzerkonten) geeignet ist, eine Zählerfunktion vorteilhaft einsetzen. Die Nutzung der Ressourcen kann überwacht, gesteuert und gemeldet werden, was Transparenz sowohl für den Anbieter als auch den Nutzer des in Anspruch genommenen Dienstes schafft.Service Utilization Metering: Cloud systems automatically control and optimize resource usage by leveraging a counter function at some level of abstraction appropriate to the nature of the service (e.g., storage capacity, processing power, bandwidth, and active user accounts). The use of the resources can be monitored, controlled and reported, which creates transparency for both the provider and the user of the service used.
Die Dienst-Modelle sind wie folgt:
- Software as a Service (SaaS): Die dem Nutzer zur Verfügung gestellte Funktion besteht in der Nutzung der Anwendungen des Anbieters, die in einer Cloud-Infrastruktur ausgeführt werden. Auf die Anwendungen kann von verschiedenen Client-Einheiten über eine Thin-Client-Schnittstelle wie zum Beispiel einen Webbrowser (z.B. webbasierte E-Mail) zugegriffen werden. Der Nutzer verwaltet oder steuert die zugrunde liegende Cloud-Infrastruktur einschließlich des Netzwerks, der Server, der Betriebssysteme, des Speichers oder selbst einzelner Anwendungsfunktionen nicht, wobei es die mögliche Ausnahme in Form von eingeschränkten benutzerspezifischen Einstellungen bei der Konfiguration der Anwendung gibt.
- Software as a Service (SaaS): The function made available to the user consists in the use of the provider's applications running on a cloud infrastructure. The applications can be accessed from various client devices via a thin client interface such as a web browser (eg, web-based email). The user does not manage or control the underlying cloud infrastructure including the network, servers, operating systems, storage or even individual application functions, with the possible exception in the form of limited user-specific settings when configuring the application.
Platform as a Service (PaaS): Die dem Nutzer zur Verfügung gestellte Funktion besteht darin, auf der Cloud-Infrastruktur vom Nutzer erzeugte oder erworbene Anwendungen zu implementieren, die mittels Programmiersprachen und Werkzeugen, die von dem Anbieter unterstützt werden, erzeugt wurden. Der Nutzer verwaltet oder steuert die zugrunde liegende Cloud-Infrastruktur einschließlich der Netzwerke, der Server, der Betriebssysteme oder des Speichers nicht, hat aber die Kontrolle über die implementierten Anwendungen und möglicherweise über Konfigurationen der Umgebung, in der Anwendungen gehostet werden (Application Hosting Environment).Platform as a Service (PaaS): The function made available to the user consists in implementing on the cloud infrastructure applications created or purchased by the user, generated using programming languages and tools supported by the provider. The user does not manage or control the underlying cloud infrastructure including networks, servers, operating systems or storage, but has control over the deployed applications and possibly over configurations of the environment in which applications are hosted (Application Hosting Environment) .
Infrastructure as a Service (IaaS): Die dem Nutzer zur Verfügung gestellte Funktion besteht in der Bereitstellung von Rechenleistung, Speicherkapazität, Netzwerken und anderen grundlegenden Datenverarbeitungsressourcen, auf denen der Kunde beliebige Software, zu der Betriebssysteme und Anwendungen gehören können, implementieren und ausführen kann. Der Nutzer verwaltet oder steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Massenspeicher, implementierte Anwendungen und möglicherweise eine eingeschränkte Kontrolle über ausgewählte Komponenten für den Netzwerkbetrieb (z.B. Zugangsschutzsysteme für den Hostrechner).Infrastructure as a Service (IaaS): The function made available to the user is the provision of computing power, storage capacity, networks and other basic computing resources on which the customer can implement and run any software, which may include operating systems and applications. The user does not manage or control the underlying cloud infrastructure, but has control over operating systems, storage, implemented applications and possibly limited control over selected components for network operations (e.g. access protection systems for the host computer).
Die Implementierungsmodelle sind wie folgt:
- Private Cloud: Die Cloud-Infrastruktur wird ausschließlich für eine Organisation betrieben. Sie kann von der Organisation oder einem Dritten verwaltet werden und kann sich auf dem Betriebsgelände oder außerhalb des Betriebsgeländes befinden. Gemeinschafts-Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine bestimmte Gemeinschaft, die gemeinsame Interessen (z.B. Aufgaben, Sicherheitsanforderungen, Richtlinien und Anforderungen an die Einhaltung der Richtlinien (Compliance-Anforderungen)) hat. Sie kann von den Organisationen oder einem Dritten verwaltet werden und kann sich auf dem Betriebsgelände oder außerhalb des Betriebsgeländes befinden.
- Private cloud: The cloud infrastructure is operated exclusively for one organization. It may be managed by the organization or a third party and may be located on or off premises. Community Cloud: Cloud infrastructure is shared by multiple organizations and supports a specific community that has common interests (eg, mission, security requirements, policies, and compliance requirements). It may be managed by the organizations or a third party and may be located on-site or off-site.
Öffentliche Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt und gehört einer Organisation, die Cloud-Dienste verkauft.Public Cloud: The cloud infrastructure is made available to the general public or a large industry group and is owned by an organization that sells cloud services.
Hybride Cloud: Die Cloud-Infrastruktur setzt sich aus zwei oder mehr Clouds (privaten, Gemeinschafts- oder öffentlichen Clouds) zusammen, die individuelle Entitäten bleiben, jedoch durch eine standardisierte oder firmeneigene Technologie miteinander verbunden sind, die die Portierbarkeit von Daten und Anwendungen ermöglicht (z.B. den kombinierten Einsatz von privaten und öffentlichen Clouds (Cloud-Bursting) für einen Lastausgleich zwischen den Clouds).Hybrid cloud: Cloud infrastructure is composed of two or more clouds (private, community, or public clouds) that remain individual entities but are interconnected by standardized or proprietary technology that enables portability of data and applications ( eg the com Binary use of private and public clouds (cloud bursting) for load balancing between the clouds).
Eine Cloud-Computing-Umgebung ist dienstorientiert, wobei der Schwerpunkt auf Zustandslosigkeit, loser Kopplung, Modularität und semantischer Interoperabilität liegt. Das Kernstück des Cloud-Computing bildet eine Infrastruktur, die ein Netzwerk aus untereinander verbundenen Knoten aufweist.A cloud computing environment is service-oriented, with an emphasis on statelessness, loose coupling, modularity, and semantic interoperability. At the heart of cloud computing is an infrastructure that includes a network of interconnected nodes.
Nun Bezug nehmend auf
Im Cloud-Computing-Knoten 1000 gibt es ein Computersystem/einen Server 1012, das beziehungsweise der mit zahlreichen anderen Umgebungen oder Konfigurationen eines Datenverarbeitungssystems für allgemeine oder spezielle Anwendungen betrieben werden kann. Zu Beispielen für bekannte Datenverarbeitungssysteme, -umgebungen und/oder -konfigurationen, die gegebenenfalls zur Verwendung mit dem Computersystem/Server 1012 geeignet sind, gehören, ohne auf diese beschränkt zu sein, Personal-Computer-Systeme, Server-Computersysteme, Thin-Clients, Thick-Clients, tragbare oder Laptop-Einheiten, Mehrprozessorsysteme, auf einem Mikroprozessor beruhende Systeme, Aufsatzgeräte (Set-Top-Boxen), programmierbare Unterhaltungselektronik, Netzwerk-PCs, Minicomputersysteme, Mainframe-Computersysteme und verteilte Cloud-Computing-Umgebungen, die beliebige der vorstehenden Systeme oder Einheiten enthalten, und dergleichen.Within
Das Computersystem/der Server 1012 kann in dem allgemeinen Kontext von Anweisungen, die von einem Computersystem ausgeführt werden können, wie zum Beispiel Programmmodulen, die von einem Computersystem ausgeführt werden, beschrieben werden. Im Allgemeinen können Programmmodule Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen und so weiter enthalten, die bestimmte Aufgaben durchführen oder bestimmte abstrakte Datentypen realisieren. Das Computersystem/der Server 1012 kann in verteilten Cloud-Computing-Umgebungen betrieben werden, in denen Aufgaben von fernen Verarbeitungseinheiten durchgeführt werden, die über ein Datenübertragungsnetzwerk miteinander verbunden sind. In einer verteilten Cloud-Computing-Umgebung können sich Programmmodule sowohl in lokalen als auch in fernen Speichermedien eines Computersystems, darunter auch in Hauptspeichereinheiten, befinden.Computer system/
Wie in
Das Computersystem/der Server 1012 enthält üblicherweise viele verschiedene Datenträger, die von einem Computersystem gelesen werden können. Solche Datenträger können jedwede verfügbaren Datenträger sein, auf die von dem Computersystem/Server 1012 zugegriffen werden kann, und sie beinhalten sowohl flüchtige als auch nicht flüchtige Datenträger sowie auswechselbare und nicht auswechselbare Datenträger.Computer system/
Der Systemspeicher 1028 kann von einem Computersystem lesbare Datenträger in Form von flüchtigem Hauptspeicher, wie beispielsweise einem Direktzugriffsspeicher (RAM) 1030 und/oder einem Cachespeicher 1032, einschließen. Das Computersystem/der Server 1012 kann darüber hinaus weitere auswechselbare/nicht auswechselbare und flüchtige/nicht flüchtige Speichermedien eines Computersystems enthalten. Lediglich als Beispiel kann das Speichersystem 1034 für Leseoperationen von und für Schreiboperationen auf einen nicht auswechselbaren, nicht flüchtigen Magnetdatenträger (nicht gezeigt und üblicherweise als „Festplattenlaufwerk“ bezeichnet) bereitgestellt werden. Obgleich nicht gezeigt, können ein Magnetplattenlaufwerk für Leseoperationen von und Schreiboperationen auf eine auswechselbare, nicht flüchtige Magnetplatte (z.B. eine „Diskette“) und ein optisches Plattenlaufwerk für Leseoperationen von oder Schreiboperationen auf eine auswechselbare, nicht flüchtige optische Platte, wie zum Beispiel ein CD-ROM, ein DVD-ROM, oder andere optische Datenträger bereitgestellt werden. In diesen Fällen kann jedes Speichermedium über eine oder mehrere Datenträger-Schnittstellen mit dem Bus 1018 verbunden werden. Wie weiter gezeigt und nachstehend beschrieben wird, kann der Systemspeicher 1028 mindestens ein Programmprodukt enthalten, das über einen Satz (z.B. mindestens einen Satz) von Programmmodulen verfügt, die so konfiguriert sind, dass sie die Funktionen von Ausführungsformen der Erfindung ausführen.
Das Programm/Dienstprogramm 1040, das über einen Satz (mindestens einen Satz) von Programmmodulen 1042 verfügt, kann als Beispiel, das nicht als Einschränkung zu verstehen ist, im Systemspeicher 1028 abgelegt werden, ebenso ein Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten. Das Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten oder eine Kombination daraus können jeweils eine Ausführungsart einer Netzwerkumgebung beinhalten. Die Programmmodule 1042 führen im Allgemeinen die Funktionen und/oder die methodischen Vorgehensweisen von den hier beschriebenen Ausführungsformen der Erfindung aus.By way of non-limiting example, the program/
Das Computersystem/der Server 1012 kann auch mit einer oder mehreren externen Einheiten 1014 wie zum Beispiel einer Tastatur, einem Zeigegerät, einem Bildschirm 1024 usw.; mit einer oder mehreren Einheiten, die einem Benutzer den Dialogverkehr mit dem Computersystem/Server 1012 ermöglichen; und/oder beliebigen Einheiten (z.B. Netzwerkkarte, Modem usw.), die dem Computersystem/Server 1012 den Datenaustausch mit einer oder mehreren anderen Datenverarbeitungseinheiten ermöglichen, Daten austauschen. Ein solcher Datenaustausch kann über Eingabe-/Ausgabe-(E/A-)Schnittstellen 1022 erfolgen. Weiterhin kann das Computersystem/der Server 1012 mit einem oder mehreren Netzwerken wie zum Beispiel einem lokalen Netz (LAN), einem allgemeinen Weitverkehrsnetz (WAN) und/oder einem öffentlichen Netz (z.B. dem Internet) über den Netzwerkadapter 1020 Daten austauschen. Wie gezeigt ist, tauscht der Netzwerkadapter 1020 mit den anderen Komponenten des Computersystems/Servers 1012 über den Bus 1018 Daten aus. Es sollte sich verstehen, dass auch andere Hardware- und/oder Software-Komponenten in Verbindung mit dem Computersystem/Server 1012 verwendet werden könnten, obgleich diese nicht gezeigt sind. Zu Beispielen gehören, ohne darauf beschränkt zu sein: Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten und externe Anordnungen von Festplattenlaufwerken, RAID-Systeme, Bandlaufwerke sowie Speichersysteme zur Datenarchivierung usw.The computer system/
- Die Hardware- und Software-
Ebene 121 enthält Hardware- und Software-Komponenten. Zu Beispielen für Hardware-Komponenten gehören Mainframe-Computer 1202, in einem Beispiel Systeme der zSeries® von IBM®;Server 1204, die auf der RISC-Architektur (RISC = Reduced Instruction Set Computer) beruhen, in einem Beispiel Systeme der pSeries® von IBM;Systeme 1206 der xSeries® von IBM; BladeCenter®-Systeme 1208 von IBM;Speichereinheiten 1210; Netzwerke und Komponenten fürden Netzwerkbetrieb 1212. Zu Beispielen für Software-Komponenten gehören eine Netzwerk-Anwendungsserversoftware 1214, in einem Beispiel die Anwendungsserversoftware WebSphere® von IBM; und eine Datenbank-Software, in einem Beispiel die Datenbank-Software 1216 DB2® von IBM. IBM, zSeries, pSeries, xSeries, BladeCenter, i2, Analysts Notebook, Tivoli, Netcool, WebSphere und DB2 sind Warenzeichen der International Business Machines Corporation, die bei vielen Markenämtern weltweit eingetragen sind.
- The hardware and
software layer 121 contains hardware and software components. Examples of hardware components includemainframe computers 1202, in one example IBM® zSeries® systems; Reduced Instruction Set Computer (RISC) architecture basedservers 1204, in one example IBM pSeries® systems;system teme 1206 of IBM's xSeries®;IBM 1208 BladeCenter® systems;storage units 1210; Networks andNetworking Components 1212. Examples of software components include networkapplication server software 1214, in one example IBM's WebSphere® application server software; and database software, in one example IBM's 1216 DB2® database software. IBM, zSeries, pSeries, xSeries, BladeCenter, i2, Analysts Notebook, Tivoli, Netcool, WebSphere and DB2 are trademarks of International Business Machines Corporation, registered with many trademark offices worldwide.
Die Virtualisierungsebene 123 stellt eine Abstraktionsebene bereit, von der die folgenden Beispiele für virtuelle Entitäten bereitgestellt werden können: virtuelle Server 1222; virtueller Speicher 1224; virtuelle Netzwerke 1226 einschließlich virtueller privater Netzwerke; virtuelle Anwendungen und Betriebssysteme 1228; und virtuelle Clients 1230.The
In einem Beispiel kann die Verwaltungsebene 125 die nachstehend beschriebenen Funktionen bereitstellen. Die Ressourcenbereitstellung 1242 ermöglicht die dynamische Beschaffung von Datenverarbeitungsressourcen und anderen Ressourcen, die verwendet werden, um Aufgaben in der Cloud-Computing-Umgebung durchzuführen. Die Erfassung von Verbrauchswerten und die Preisermittlung 1244 ermöglichen die Überwachung von Kosten bei der Nutzung von Ressourcen in der Cloud-Computing-Umgebung sowie die Abrechnung oder Inrechnungstellung für die Inanspruchnahme dieser Ressourcen. In einem Beispiel können diese Ressourcen Lizenzen für Anwendungssoftware aufweisen. Die Funktion „Sicherheit“ ermöglicht die Überprüfung der Identität für Nutzer der Cloud und für Aufgaben sowie den Schutz für Daten und andere Ressourcen. Das Benutzerportal 1246 ermöglicht sowohl Nutzern als auch Systemadministratoren den Zugang zu der Cloud-Computing-Umgebung. Die Verwaltung der Dienstgüte 1248 ermöglicht die Zuweisung und die Verwaltung von Ressourcen für das Cloud-Computing in der Weise, dass der jeweils erforderlichen Dienstgüte entsprochen wird. Die Planung und die Erfüllung der Dienstgütevereinbarung (Service Level Agreement (SLA)) 1250 ermöglicht eine Vorab-Festlegung für und die Beschaffung von Ressourcen für das Cloud-Computing, bei denen ein zukünftiges Erfordernis gemäß einer SLA vorweggenommen wird.In one example,
Die Arbeitslast-Ebene 127 gibt Beispiele für Funktionen, für die die Cloud-Computing-Umgebung genutzt werden kann. Zu Beispielen für Arbeitslasten und Funktionen, die von dieser Ebene bereitgestellt werden können, gehören: Zuordnung und Navigation 1262; Software-Entwicklung und Verwaltung des Lebenszyklus 1264; Bereitstellung des Unterrichts im virtuellen Klassenzimmer 1266; Verarbeitung zum Zweck der Datenanalyse 1268, Transaktionsverarbeitung 1270; und die Verarbeitung 1272 einer bevorzugten Ausführungsform der vorliegenden Erfindung durch das Wiederherstellungssystem 900. Alternativ kann die Verarbeitung 1252 durch das Wiederherstellungssystem 900 auf der Verwaltungsebene 125 durchgeführt werden.The
Die ExpressCard 1355 ist ein Einschub, der Hot-Plug-fähige Einheiten mit dem Informationsverarbeitungssystem verbindet. Die ExpressCard 1355 unterstützt sowohl PCI Express- als auch USB-Anschlussmöglichkeiten, da sie mit der Southbridge 1335 über den Universal Serial Bus (USB) und auch den PCI Express-Bus verbunden ist. Die Southbridge 1335 enthält den USB-Controller 1340, der Einheiten, die über USB angeschlossen sind, USB-Anschlussmöglichkeiten bereitstellt. Zu diesen Einheiten gehören eine Webcam (Kamera) 1350, ein Infrarot-(IR-)Empfänger 1348, eine Tastatur und ein Trackpad 1344 sowie eine Bluetooth-Einheit 1346, die drahtlose Personal Area Networks (PANs) ermöglicht. Der USB-Controller 1340 stellt auch verschiedenen anderen über USB angeschlossenen Einheiten 1342, wie zum Beispiel einer Maus, einer auswechselbaren, nicht flüchtigen Speichereinheit 1345, Modems, Netzwerkkarten, ISDN-Anschlüssen, Telefaxgeräten, Druckern, USB-Hubs und vielen anderen Arten von Einheiten, die über USB angeschlossen sind, USB-Anschlussmöglichkeiten bereit. Zwar ist die auswechselbare, nicht flüchtige Speichereinheit 1345 als eine über USB angeschlossene Einheit gezeigt, doch könnte die auswechselbare, nicht flüchtige Speichereinheit 1345 auch über eine andere Schnittstelle wie zum Beispiel eine Firewire-Schnittstelle usw. angeschlossen sein.The
Die Wireless Local Area Network-(LAN-)Einheit 1375 ist über den PCI- oder PCI Express-Bus 1372 mit der Southbridge 1335 verbunden. Die LAN-Einheit 1375 führt üblicherweise eines der drahtlosen Modulationsverfahren nach den IEEE .802.11-Normen aus, die alle dasselbe Protokoll verwenden, um zwischen dem Informationsverarbeitungssystem 1300 und einem weiteren Computersystem oder einer weiteren Einheit drahtlos Daten auszutauschen. Die optische Speichereinheit 1390 ist mit der Southbridge 1335 über den Serial ATA-(SATA)-Bus 1388 verbunden. Die Serial ATA-Adapter und -Einheiten tauschen über eine serielle Hochgeschwindigkeitsverbindung Daten aus. Der Serial ATA-Bus verbindet die Southbridge 1335 auch mit anderen Formen von Speichereinheiten wie zum Beispiel Festplattenlaufwerken. Eine Audioschaltung 1360, wie zum Beispiel eine Soundkarte, ist über einen Bus 1358 mit der Southbridge 1335 verbunden. Die Audioschaltung 1360 stellt auch Funktionalität wie zum Beispiel einen Audioeingang und optischen digitalen Audio-Eingangsanschluss 1362, einen optischen digitalen Ausgangs- und Kopfhöreranschluss 1364, interne Lautsprecher 1366 und ein internes Mikrofon 1368 bereit. Der Ethernet-Controller 1370 ist mit der Southbridge 1335 über einen Bus wie zum Beispiel den PCI- oder PCI Express-Bus verbunden. Der Ethernet-Controller 1370 verbindet das Informationsverarbeitungssystem 1300 mit einem Computernetzwerk wie zum Beispiel einem Local Area Network (LAN), dem Internet und anderen öffentlichen und privaten Computernetzwerken.The wireless local area network (LAN)
Zwar zeigt
Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann ein von einem Computer lesbares Speichermedium (oder Speichermedien) beinhalten, auf dem sich von einem Computer lesbare Programmanweisungen befinden, um einen Prozessor zu veranlassen, Aspekte der vorliegenden Erfindung umzusetzen.The present invention can be a system, a method and/or a computer program product. The computer program product may include a computer-readable storage medium (or storage media) having on it computer-readable program instructions for causing a processor to implement aspects of the present invention.
Das von einem Computer lesbare Speichermedium kann eine physisch greifbare Einheit sein, die Anweisungen zur Verwendung durch eine Anweisungsausführungseinheit aufnehmen und speichern kann. Das von einem Computer lesbare Speichermedium kann zum Beispiel, ohne darauf beschränkt zu sein, eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiter-Speichereinheit oder eine beliebige geeignete Kombination des Vorstehenden sein. Eine Liste mit genaueren Beispielen für das von einem Computer lesbare Speichermedium, die keinen Anspruch auf Vollständigkeit erhebt, beinhaltet die folgenden Beispiele: eine tragbare Computerdiskette, eine Festplatte, einen Direktzugriffsspeicher (RAM), einen Nur-Lese-Speicher (ROM), einen löschbaren programmierbaren Nur-Lese-Speicher (EPROM oder Flashspeicher), einen statischen Direktzugriffsspeicher (SRAM), einen tragbaren Compact-Disk-Nur-Lese-Speicher (CD-ROM), eine digitale, vielseitig verwendbare Disk (DVD), einen Speicherstick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhöhte Strukturen in einer Rille mit darauf aufgezeichneten Anweisungen sowie jede beliebige geeignete Kombination des Vorstehenden. Ein von einem Computer lesbares Speichermedium in der hier verwendeten Weise ist nicht so auszulegen, dass es sich dabei um kurzzeitige Signale an sich, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich über einen Wellenleiter oder andere Übertragungsmedien ausbreiten (z.B. Lichtimpulse, die durch ein Lichtwellenleiterkabel geleitet werden), oder elektrische Signale, die über ein Kabel übertragen werden, handelt.The computer-readable storage medium may be a tangible device that can receive and store instructions for use by an instruction execution device. The memory readable by a computer medium can be, for example but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer-readable storage media includes the following: portable computer disk, hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disc read only memory (CD-ROM), digital versatile disc (DVD), memory stick, a Floppy disk, a mechanically encoded device such as punch cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer-readable storage medium, as used herein, should not be construed as transient signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating via a waveguide or other transmission media (e.g. pulses of light transmitted through a fiber optic cable), or electrical signals transmitted over a cable.
Von einem Computer lesbare Programmanweisungen, die hier beschrieben sind, können von einem Speichermedium, das von einem Computer gelesen werden kann, auf entsprechende Rechen-/Verarbeitungseinheiten oder über ein Netzwerk, zum Beispiel das Internet, ein lokales Netz, ein Weitverkehrsnetz und/oder ein drahtloses Netz, auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenleiter, drahtlose Übertragung, Router, Firewalls, Vermittlungsstellen (Switches), Gateway-Rechner und/oder Edge-Server aufweisen. Eine Netzadapterkarte oder Netzschnittstelle in jeder Rechen-/Verarbeitungseinheit empfängt von einem Computer lesbare Programmanweisungen von dem Netzwerk und leitet die von einem Computer lesbaren Programmanweisungen weiter, um sie in einem von einem Computer lesbaren Speichermedium in der jeweiligen Rechen-/Verarbeitungseinheit zu speichern.Computer-readable program instructions described herein may be downloaded from a computer-readable storage medium to appropriate computing/processing devices or over a network, such as the Internet, a local area network, a wide area network, and/or a wireless network, downloaded to an external computer or storage device. The network may include copper transmission cabling, fiber optics, wireless transmission, routers, firewalls, switches, gateway computers, and/or edge servers. A network adapter card or network interface in each computing/processing unit receives computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium in the respective computing/processing unit.
Bei den von einem Computer lesbaren Programmanweisungen zur Durchführung von Operationen der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, Befehlssatzarchitektur-(ISA-)Anweisungen, Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, Zustandseinstellungsdaten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen einschließlich einer objektorientierten Programmiersprache, wie beispielsweise Java@, Smalltalk, C++ oder dergleichen, sowie in herkömmlichen prozeduralen Programmiersprachen wie beispielsweise der Programmiersprache „C“ oder in ähnlichen Programmiersprachen geschrieben sind. Die von einem Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. Im letzteren Szenario kann der ferne Computer mit dem Computer des Benutzers über jede beliebige Art eines Netzwerks einschließlich eines lokalen Netzes (LAN) oder eines Weitverkehrsnetzes (WAN) verbunden sein oder die Verbindung kann zu einem externen Computer (zum Beispiel über das Internet mittels eines Internet-Dienstanbieters) hergestellt werden. In manchen Ausführungsformen können elektronische Schaltungen, zu denen beispielsweise programmierbare Logikschaltkreise, kundenprogrammierbare Universalschaltkreise (FPGA) oder programmierbare logische Anordnungen (PLA) gehören, die von einem Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der von einem Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung umzusetzen. Java und alle auf Java beruhenden Warenzeichen und Logos sind Warenzeichen oder eingetragene Warenzeichen von Oracle und/oder von Tochterfirmen von Oracle.The computer-readable program instructions for performing operations of the present invention may be assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state setting data, or either source code or object code Written in any combination of one or more programming languages, including an object-oriented programming language such as Java@, Smalltalk, C++ or the like, as well as conventional procedural programming languages such as the "C" programming language or similar programming languages. The computer-readable program instructions may run entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on the remote computer or server. In the latter scenario, the remote computer can be connected to the user's computer over any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection can be to an external computer (for example, over the Internet using an Internet service provider) are established. In some embodiments, electronic circuits, including, for example, programmable logic circuits, general purpose field programmable circuits (FPGA), or programmable logic arrays (PLA), that execute computer-readable program instructions by using state information of the computer-readable program instructions to run the electronic circuits to personalize to implement aspects of the present invention. Java and all Java-based trademarks and logos are trademarks or registered trademarks of Oracle and/or its affiliated companies.
Die von einem Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder auf eine andere Einheit geladen werden, um die Durchführung einer Reihe von Betriebsschritten auf dem Computer, einer anderen programmierbaren Vorrichtung oder auf einer anderen Einheit zu bewirken, um einen von einem Computer ausgeführten Prozess zu erzeugen, so dass die Anweisungen, die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführt werden, die Funktionen/Vorgänge ausführen, die in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegeben sind.The computer-readable program instructions may also be loaded onto a computer, other programmable data processing device, or other device to cause a series of operational steps to be performed on the computer, other programmable device, or other device to perform one of a computer-executed process such that the instructions executed on the computer, other programmable device, or other entity perform the functions/acts specified in the block or blocks of the flowchart diagrams and/or block diagrams .
Die Ablaufpläne und die Blockschaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und die Betriebsweise von möglichen Ausführungsarten von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In dieser Hinsicht kann jeder Block in den Ablaufplänen oder in den Blockschaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, das beziehungsweise der eine oder mehrere ausführbare Anweisungen zur Ausführung der angegebenen logischen Funktion(en) aufweist. In manchen alternativen Ausführungsarten treten die in dem Block angegebenen Funktionen gegebenenfalls nicht in der in den Figuren angegebenen Reihenfolge auf. In Abhängigkeit von der mit ihnen verbundenen Funktionalität können beispielsweise zwei Blöcke, die als aufeinanderfolgende Blöcke dargestellt sind, tatsächlich weitgehend gleichzeitig ausgeführt werden oder die Blöcke können zuweilen in der umgekehrten Reihenfolge ausgeführt werden. Man wird auch feststellen, dass jeder Block der Blockschaubilder und/oder der Darstellung in den Ablaufplänen sowie Kombinationen aus Blöcken in den Blockschaubildern und/oder der Darstellung in den Ablaufplänen von Systemen, die auf Spezial-Hardware beruhen und die angegebenen Funktionen oder Vorgänge oder Kombinationen aus Anweisungen von Spezial-Hardware und Computer-Anweisungen durchführen, realisiert werden können. In einer alternativen Ausführungsform kann die vorliegende Erfindung in einem Computerprogramm (oder einer Computeranwendung), das auf einem Datenträger gespeichert ist, der mit Hardware verbunden ist, realisiert werden, um das Problem zu lösen.The flowchart diagrams and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and Computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, comprising one or more executable instructions for performing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, depending on the functionality associated with them, two blocks illustrated as consecutive blocks may actually be executed substantially concurrently, or the blocks may at times be executed in the reverse order. It will also be noted that each block of the block diagram and/or flowchart illustration, and combination of blocks in the block diagram and/or flowchart illustration, represents systems that rely on special purpose hardware and perform the specified functions or operations or combinations from instructions of special hardware and computer instructions can be realized. In an alternative embodiment, the present invention can be implemented in a computer program (or a computer application) stored on a data carrier connected to hardware to solve the problem.
Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann ein von einem Computer lesbares Speichermedium (oder Speichermedien) beinhalten, auf dem sich von einem Computer lesbare Programmanweisungen befinden, um einen Prozessor zu veranlassen, Aspekte der vorliegenden Erfindung umsetzen.The present invention can be a system, a method and/or a computer program product. The computer program product may include a computer-readable storage medium (or storage media) having on it computer-readable program instructions for causing a processor to implement aspects of the present invention.
Aspekte der vorliegenden Erfindung werden hier mit Bezug auf Darstellungen in Ablaufplänen und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Darstellungen in den Ablaufplänen und/oder der Blockschaubilder sowie Kombinationen aus Blöcken in den Darstellungen der Ablaufpläne und/oder den Blockschaubildern von Programmanweisungen, die von einem Computer gelesen werden können, realisiert werden können.Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, may be implemented by computer-readable program instructions.
Diese von einem Computer lesbaren Programmanweisungen können einem Prozessor eines Mehrzweckcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die Anweisungen, die über den Prozessor des Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel zur Ausführung der Funktionen/Vorgänge erzeugen, die in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegeben sind. Diese von einem Computer lesbaren Programmanweisungen können auch in einem von einem Computer lesbaren Speichermedium gespeichert werden, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten anweisen kann, auf eine bestimmte Art und Weise zu funktionieren, so dass das von dem Computer lesbare Speichermedium, das über darin gespeicherte Anweisungen verfügt, einen Herstellungsgegenstand aufweist, der Anweisungen enthält, die Aspekte der Funktion/des Vorgangs umsetzen, welche beziehungsweise welcher in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegeben ist.These computer-readable program instructions may be provided to a processor of a general purpose computer, special-purpose computer, or other programmable computing device to create a machine such that the instructions, executed by the processor of the computer or other programmable computing device, provide a means for generate execution of the functions/acts specified in the block or blocks of the flowchart diagrams and/or block diagrams. These computer-readable program instructions may also be stored on a computer-readable storage medium that may instruct a computer, programmable computing device, and/or other device to operate in a particular manner such that the computer-readable storage medium , having instructions stored therein, comprises an article of manufacture that includes instructions that implement aspects of the function/process identified in the flowchart block or blocks and/or block diagrams.
Die von einem Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder auf eine andere Einheit geladen werden, um die Durchführung einer Reihe von Betriebsschritten auf dem Computer, einer anderen programmierbaren Vorrichtung oder auf einer anderen Einheit zu bewirken, um einen von einem Computer ausgeführten Prozess zu erzeugen, so dass die Anweisungen, die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführt werden, die Funktionen/Vorgänge ausführen, die in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegeben sind.The computer-readable program instructions may also be loaded onto a computer, other programmable data processing device, or other device to cause a series of operational steps to be performed on the computer, other programmable device, or other device to perform one of a computer-executed process such that the instructions executed on the computer, other programmable device, or other entity perform the functions/acts specified in the block or blocks of the flowchart diagrams and/or block diagrams .
Die Ablaufpläne und die Blockschaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und die Betriebsweise von möglichen Ausführungsarten von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In dieser Hinsicht kann jeder Block in den Ablaufplänen oder in den Blockschaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, das beziehungsweise der eine oder mehrere ausführbare Anweisungen zur Ausführung der angegebenen logischen Funktion(en) aufweist. In manchen alternativen Ausführungsarten treten die in dem Block angegebenen Funktionen gegebenenfalls nicht in der in den Figuren angegebenen Reihenfolge auf. In Abhängigkeit von der mit ihnen verbundenen Funktionalität können beispielsweise zwei Blöcke, die als aufeinanderfolgende Blöcke dargestellt sind, tatsächlich weitgehend gleichzeitig ausgeführt werden oder die Blöcke können zuweilen in der umgekehrten Reihenfolge ausgeführt werden. Man wird auch feststellen, dass jeder Block der Blockschaubilder und/oder der Darstellung in den Ablaufplänen sowie Kombinationen aus Blöcken in den Blockschaubildern und/oder der Darstellung in den Ablaufplänen von Systemen, die auf Spezial-Hardware beruhen und die angegebenen Funktionen oder Vorgänge oder Kombinationen aus Anweisungen von Spezial-Hardware und Computer-Anweisungen durchführen, realisiert werden können.The flowchart diagrams and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, comprising one or more executable instructions for performing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, depending on the functionality associated with them, two blocks illustrated as consecutive blocks may actually be executed substantially concurrently, or the blocks may at times be executed in the reverse order. It will also be noted that each block of the block diagram the and/or flowchart representations, and combinations of blocks in the block diagrams and/or the flowchart representations, of systems that rely on special purpose hardware and perform specified functions or operations or combinations of special purpose hardware instructions and computer Carry out instructions, can be realized.
Um Zweifel auszuschließen, sind die Begriffe „umfasst“ beziehungsweise „umfassen“, die hier in der gesamten Beschreibung und in den Ansprüchen verwendet werden, nicht in der Bedeutung von „bestehen nur aus ...“ auszulegen.For the avoidance of doubt, the terms "comprising" and "comprising" as used throughout this specification and claims should not be construed to mean "consist only of...".
Claims (10)
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/859,385 US9940041B2 (en) | 2015-09-21 | 2015-09-21 | Copy-redirect on write |
US14/859,385 | 2015-09-21 | ||
PCT/IB2016/055040 WO2017051270A1 (en) | 2015-09-21 | 2016-08-24 | Copy-redirect on write |
Publications (2)
Publication Number | Publication Date |
---|---|
DE112016003120T5 DE112016003120T5 (en) | 2018-04-05 |
DE112016003120B4 true DE112016003120B4 (en) | 2023-01-19 |
Family
ID=58282625
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE112016003120.3T Active DE112016003120B4 (en) | 2015-09-21 | 2016-08-24 | Redirect a copy on write |
Country Status (6)
Country | Link |
---|---|
US (2) | US9940041B2 (en) |
JP (1) | JP6722277B2 (en) |
CN (1) | CN107924293B (en) |
DE (1) | DE112016003120B4 (en) |
GB (1) | GB2558478B (en) |
WO (1) | WO2017051270A1 (en) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10929431B2 (en) * | 2015-08-28 | 2021-02-23 | Hewlett Packard Enterprise Development Lp | Collision handling during an asynchronous replication |
US9747171B2 (en) | 2015-09-16 | 2017-08-29 | International Business Machines Corporation | Point-in-time copy restore |
US9940041B2 (en) | 2015-09-21 | 2018-04-10 | International Business Machines Corporation | Copy-redirect on write |
US10789192B2 (en) * | 2016-02-29 | 2020-09-29 | Renesas Electronics America Inc. | System and method for programming data transfer within a microcontroller |
US20190050163A1 (en) * | 2017-08-14 | 2019-02-14 | Seagate Technology Llc | Using snap space knowledge in tiering decisions |
CN108733514B (en) * | 2018-05-24 | 2022-07-08 | 郑州云海信息技术有限公司 | Method, system and equipment for realizing snapshot between heterogeneous storages |
CN109032507B (en) * | 2018-06-28 | 2021-11-19 | 郑州云海信息技术有限公司 | Method, system and related assembly for generating source volume storage snapshot |
US10671486B2 (en) | 2018-07-25 | 2020-06-02 | International Business Machines Corporation | Flashcopy tracking for storage optimization |
CN109324929B (en) * | 2018-09-17 | 2021-11-09 | 郑州云海信息技术有限公司 | Snapshot creating method, device and equipment and readable storage medium |
CN109597707B (en) * | 2018-10-25 | 2024-04-23 | 平安科技(深圳)有限公司 | Clone volume data copying method, device and computer readable storage medium |
CN109460319A (en) * | 2018-11-01 | 2019-03-12 | 郑州云海信息技术有限公司 | A kind of creation method, device, system, equipment and the storage medium of writeable snapshot |
US10649952B1 (en) * | 2019-01-23 | 2020-05-12 | Cohesity, Inc. | Using a secondary storage system to maintain functionality of a database during database migration |
US11429318B2 (en) * | 2019-07-30 | 2022-08-30 | EMC IP Holding Company LLC | Redirect-on-write snapshot mechanism with delayed data movement |
US11467775B2 (en) | 2019-10-15 | 2022-10-11 | Hewlett Packard Enterprise Development Lp | Virtual persistent volumes for containerized applications |
CN110781133B (en) * | 2019-10-25 | 2023-03-21 | 深信服科技股份有限公司 | ROW snapshot method, system, equipment and computer readable storage medium |
CN110795389B (en) * | 2019-10-28 | 2022-09-30 | 深信服科技股份有限公司 | Storage snapshot based copying method, user equipment, storage medium and device |
CN110968645B (en) * | 2019-12-03 | 2023-05-12 | 携程旅游网络技术(上海)有限公司 | Data read-write method, system, equipment and storage medium of distributed system |
CN111124756A (en) * | 2019-12-18 | 2020-05-08 | 浪潮(北京)电子信息产业有限公司 | A method, apparatus, device and medium for displaying a snapshot relationship |
US12135885B2 (en) * | 2020-01-31 | 2024-11-05 | Hewlett Packard Enterprise Development Lp | Virtual storage policies for virtual persistent volumes |
CN111338850A (en) * | 2020-02-25 | 2020-06-26 | 上海英方软件股份有限公司 | Method and system for improving backup efficiency based on COW mode multi-snapshot |
CN111399774B (en) * | 2020-03-09 | 2021-09-14 | 星辰天合(北京)数据科技有限公司 | Data processing method and device based on snapshot under distributed storage system |
US11429495B2 (en) * | 2020-03-16 | 2022-08-30 | International Business Machines Corporation | Data recovery mechanisms in deduplication-enabled storage facilities |
US11687267B2 (en) | 2020-04-14 | 2023-06-27 | Hewlett Packard Enterprise Development Lp | Containerized application manifests and virtual persistent volumes |
US11693573B2 (en) | 2020-06-18 | 2023-07-04 | Hewlett Packard Enterprise Development Lp | Relaying storage operation requests to storage systems using underlying volume identifiers |
US11960773B2 (en) * | 2020-07-31 | 2024-04-16 | Hewlett Packard Enterprise Development Lp | Modifying virtual persistent volumes based on analysis of performance metrics |
CN112416245B (en) * | 2020-09-18 | 2023-02-24 | 济南浪潮数据技术有限公司 | Storage volume management method based on multi-architecture container cloud platform and related components |
US11467735B2 (en) * | 2020-12-01 | 2022-10-11 | International Business Machines Corporation | I/O operations in log structured arrays |
CN113448774B (en) * | 2021-06-04 | 2023-01-24 | 山东英信计算机技术有限公司 | Method, system, device and medium for optimizing copy-on-write storage snapshot management |
CN114116303A (en) * | 2021-10-24 | 2022-03-01 | 郑州云海信息技术有限公司 | A snapshot-based data adjustment method, system, storage medium and device |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7386695B2 (en) | 2004-12-23 | 2008-06-10 | International Business Machines Corporation | Storage system with multiple copy targeting |
WO2011110542A1 (en) | 2010-03-11 | 2011-09-15 | International Business Machines Corporation | Buffer disk in flashcopy cascade |
US8533411B2 (en) | 2010-03-11 | 2013-09-10 | International Business Machines Corporation | Multiple backup processes |
US8549242B2 (en) | 2010-04-21 | 2013-10-01 | International Business Machines Corporation | Volume swapping of point-in-time read-only target volumes |
US8793453B2 (en) | 2010-05-25 | 2014-07-29 | International Business Machines Corporation | Multiple cascaded backup process |
US8868860B2 (en) | 2011-09-23 | 2014-10-21 | International Business Machines Corporation | Restore in cascaded copy environment |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100349139C (en) * | 2004-02-19 | 2007-11-14 | 华为技术有限公司 | Method for writing data on source film in pistolgraph process |
US7404051B2 (en) | 2005-04-18 | 2008-07-22 | Hitachi, Ltd. | Method for replicating snapshot volumes between storage systems |
CN101140536B (en) * | 2007-05-21 | 2012-09-05 | 中兴通讯股份有限公司 | Snapshot system supporting cascades snapshot and snapshot processing method thereof |
WO2010042109A1 (en) | 2008-10-07 | 2010-04-15 | Hewlett-Packard Development Company, L.P. | Creating snapshots of data using a selected one of different snapshot algorithms |
US8868869B2 (en) | 2011-08-08 | 2014-10-21 | International Business Machines Corporation | Enhanced copy-on-write operation for solid state drives |
US8719523B2 (en) | 2011-10-03 | 2014-05-06 | International Business Machines Corporation | Maintaining multiple target copies |
US9304946B2 (en) | 2012-06-25 | 2016-04-05 | Empire Technology Development Llc | Hardware-base accelerator for managing copy-on-write of multi-level caches utilizing block copy-on-write differential update table |
US9940041B2 (en) | 2015-09-21 | 2018-04-10 | International Business Machines Corporation | Copy-redirect on write |
-
2015
- 2015-09-21 US US14/859,385 patent/US9940041B2/en active Active
-
2016
- 2016-08-24 CN CN201680051606.5A patent/CN107924293B/en active Active
- 2016-08-24 GB GB1806312.3A patent/GB2558478B/en active Active
- 2016-08-24 JP JP2018511112A patent/JP6722277B2/en active Active
- 2016-08-24 WO PCT/IB2016/055040 patent/WO2017051270A1/en active Application Filing
- 2016-08-24 DE DE112016003120.3T patent/DE112016003120B4/en active Active
-
2018
- 2018-01-29 US US15/882,107 patent/US10209910B2/en not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7386695B2 (en) | 2004-12-23 | 2008-06-10 | International Business Machines Corporation | Storage system with multiple copy targeting |
WO2011110542A1 (en) | 2010-03-11 | 2011-09-15 | International Business Machines Corporation | Buffer disk in flashcopy cascade |
US8533411B2 (en) | 2010-03-11 | 2013-09-10 | International Business Machines Corporation | Multiple backup processes |
US8549242B2 (en) | 2010-04-21 | 2013-10-01 | International Business Machines Corporation | Volume swapping of point-in-time read-only target volumes |
US8793453B2 (en) | 2010-05-25 | 2014-07-29 | International Business Machines Corporation | Multiple cascaded backup process |
US8868860B2 (en) | 2011-09-23 | 2014-10-21 | International Business Machines Corporation | Restore in cascaded copy environment |
Non-Patent Citations (1)
Title |
---|
IBM TXSeries for Multiplatforms / 8.1.0. 19.4.2021<https://www.ibm.com/docs/en/txseries/8.1.0?topic=sfs-physical-logical-volumes>(recherchiert am 11.8.2022) |
Also Published As
Publication number | Publication date |
---|---|
GB201806312D0 (en) | 2018-05-30 |
DE112016003120T5 (en) | 2018-04-05 |
GB2558478A (en) | 2018-07-11 |
JP6722277B2 (en) | 2020-07-15 |
US10209910B2 (en) | 2019-02-19 |
GB2558478B (en) | 2019-01-23 |
US9940041B2 (en) | 2018-04-10 |
US20180165027A1 (en) | 2018-06-14 |
WO2017051270A1 (en) | 2017-03-30 |
CN107924293A (en) | 2018-04-17 |
JP2018531445A (en) | 2018-10-25 |
CN107924293B (en) | 2021-05-11 |
US20170083250A1 (en) | 2017-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE112016003120B4 (en) | Redirect a copy on write | |
DE112012005037B4 (en) | Manage redundant immutable files using deduplications in storage clouds | |
DE112012003505B4 (en) | Automated selection of features to reduce storage capacity based on performance requirements | |
DE112013001889B4 (en) | Dynamically allocate a workload across a variety of clouds | |
DE112021005636T5 (en) | MIGRATE COMPLEX LEGACY APPLICATIONS | |
DE102016119298B4 (en) | POINT-IN-TIME COPYING WITH CHAIN CLONING | |
DE112010004160T5 (en) | Port virtual images between platforms | |
DE112012004318T5 (en) | Use a virtual disk as a hot spare for a RAID group | |
DE112012005032T5 (en) | Remove data remanence in deduplicated storage clouds | |
DE102021127254A1 (en) | Content-aware selecting nodes to create containers | |
DE102012215219A1 (en) | Determine distributions of virtual machine image patterns in a networked computing environment | |
DE112017005588T5 (en) | SAVING AND RECALLING RESTRICTED DATA SETS IN AND OUT OF A CLOUD NETWORK WITH NON-RESTRICTED DATA SETS | |
DE112020000912T5 (en) | MANAGING SOFTWARE PROGRAMS | |
DE102021130358B4 (en) | I/O OPERATIONS IN LOG-STRUCTURED ARRAYS | |
DE112021001408T5 (en) | USING COHERENTLY LINKED INTERFACES IN A NETWORK STACK FRAMEWORK | |
DE112023000995T5 (en) | INTELLIGENT LAYER CONTROL OF REDUNDANT CONTENT IN CONTAINER IMAGES | |
DE112019000756T5 (en) | Data migration in a hierarchical storage management system | |
DE112021005848T5 (en) | COORDINATING REQUESTS TRANSFORMED INTO A SCALABLE APPLICATION | |
DE112018004138T5 (en) | ASYNCHRONOUS UPDATE OF METADATA TRACKS IN RESPONSE TO A MECHANISM GENERATED BY AN I / O OPERATION THROUGH A BUS INTERFACE | |
DE112017005022T5 (en) | Reload the tape processing to object storage | |
DE112022004045T5 (en) | MANAGING PROPRIETARY STRUCTURED OBJECTS | |
DE112017005772T5 (en) | TIME-CONTROLLED FUSES THROUGH A MEMORY CONTROLLER INTO AN OBJECT MEMORY CLOUD | |
DE112021005881T5 (en) | INLINE DATA PACKET TRANSFORMATIONS | |
DE112021002893T5 (en) | INTELLIGENT BACKUP AND RECOVERY TO A CONTAINERIZED ENVIRONMENT | |
DE112019000402T5 (en) | CHRONOLOGICALLY ORDERED OUT-OF-PLACE UPDATE KEY VALUE STORAGE SYSTEM |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R083 | Amendment of/additions to inventor(s) | ||
R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: G06F0009450000 Ipc: G06F0008400000 |
|
R016 | Response to examination communication | ||
R016 | Response to examination communication | ||
R018 | Grant decision by examination section/examining division | ||
R084 | Declaration of willingness to licence | ||
R020 | Patent grant now final |