DE112018000900T5 - Verarbeiten eines Befehls zum Freigeben von Speicherplatz in einem Computersystem - Google Patents

Verarbeiten eines Befehls zum Freigeben von Speicherplatz in einem Computersystem Download PDF

Info

Publication number
DE112018000900T5
DE112018000900T5 DE112018000900.9T DE112018000900T DE112018000900T5 DE 112018000900 T5 DE112018000900 T5 DE 112018000900T5 DE 112018000900 T DE112018000900 T DE 112018000900T DE 112018000900 T5 DE112018000900 T5 DE 112018000900T5
Authority
DE
Germany
Prior art keywords
consistency group
area
cache
memory
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112018000900.9T
Other languages
English (en)
Inventor
Matthew Ward
Carol Mellgren
Theresa Mary Brown
Joshua Crawford
Nicolas Marc Clayton
Gregory McBride
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112018000900T5 publication Critical patent/DE112018000900T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2064Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring while ensuring consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2071Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
    • G06F11/2074Asynchronous techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Abstract

Es werden ein Computerprogrammprodukt, ein System und ein Verfahren zum Verarbeiten eines Befehls zum Freigeben von Speicherplatz bereitgestellt, wenn Daten in einem Quellenspeicher in denen Zielspeicher gespiegelt werden. Ein Befehl zum Freigeben von Speicherplatz wird empfangen, um einen Freigabebereich freizugeben, während geänderte Daten in einer Konsistenzgruppe übertragen werden. Es wird ermittelt, ob eine Übertragungszeit um Übertragen verbleibender Konsistenzgruppendaten für den Freigabebereich, die nicht übertragen wurden, eine Antwortzeit zum Verarbeiten eines Befehls zum Freigeben von Speicherplatz überschreitet. Die verbleibenden Konsistenzgruppendaten im Freigabebereich werden in Reaktion auf Feststellen, dass die Übertragungszeit die Antwortzeit nicht überschreitet, in den Zielspeicher übertragen. Der Freigabebereich für den Befehl zum Freigeben von Speicherplatz wird in Reaktion auf Übertragen der Konsistenzgruppendaten im Freigabebereich in den Zielspeicher freigegeben.

Description

  • HINTERGRUND DER ERFINDUNG
  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft ein Computerprogrammprodukt, ein System und ein Verfahren zum Verarbeiten eines Befehls zum Freigeben von Speicherplatz in einem Datenverarbeitungssystem, wenn Daten in einem Quellenspeicher in einen Zielspeicher gespiegelt werden.
  • Beschreibung der technischen Zusammenhänge
  • Bei Speicherdatenträgern kann es sich um Datenträger mit „schlanker Speicherzuweisung“ („thin provisioned“) handeln, was bedeutet, dass dem Datenträger Speicherplatz zugewiesen ist, jedoch erst bei Bedarf zugeordnet wird. Zusätzliche Speicherbereiche können dem Datenträger bis zu einer bestimmten Bereichsgrenze zu einem Zeitpunkt zugeordnet werden, wenn erstmals in einen zugeordneten Speicherbereich geschrieben wird. Speicherbereiche, die zugeordnet sind, jedoch nicht für einen Datenträger mit „schlanker Speicherzuweisung“ verwendet werden, können freigegeben werden, um deren Zuordnung aufzuheben und sie zum Zuweisen zu anderen Datenträgern mit schlanker Speicherzuweisung zur Verfügung zu stellen.
  • Mit Daten in einem Datenträger mit schlanker Speicherzuweisung kann ein Spiegelkopiervorgang ausgeführt werden, beispielsweise ein asynchroner oder synchroner Spiegelkopiervorgang in einen sekundären Datenträger. Daten können in Konsistenzgruppen kopiert werden, um ein Spiegeln von geänderten Daten auf übereinstimmende Weise ab dem Zeitpunkt einer Konsistenzgruppe bereitzustellen.
  • Wenn in derzeitigen Systemen ein Befehl zum Freigeben von Speicherplatz empfangen wird, um Spuren innerhalb einer Konsistenzgruppe freizugeben, die in einen sekundären Datenträger gespiegelt wird, wird die Konsistenzgruppe aufgehoben, um ein Ausführen des Befehls zum Freigeben von Speicherplatz zu ermöglichen. Es kann eine neue Konsistenzgruppe gebildet werden, um ein Kopieren aller Daten vor der zuvor erstellten Konsistenzgruppe zu veranlassen, die keine Daten für die freigegebenen Spuren enthält.
  • Beschriebene Ausführungsformen stellen verbesserte technische Lösungen zum Optimieren einer Computertechnologie in Bezug auf Verarbeiten von Befehlen zum Freigeben von Speicherplatz bereit, um Speicherplatz auch in einer im Entstehen begriffenen Konsistenzgruppe freizugeben.
  • KURZDARSTELLUNG
  • Es werden ein Computerprogrammprodukt, ein System und ein Verfahren zum Verarbeiten eines Befehls zum Freigeben von Speicherplatz bereitgestellt, wenn Daten in einem Quellenspeicher in einen Zielspeicher gespiegelt werden. Es wird ein Befehl zum Freigeben von Speicherplatz empfangen, um einen Freigabebereich im Quellenspeicher freizugeben, während geänderte Daten in einer Konsistenzgruppe übertragen werden. Es wird ermittelt, ob eine Übertragungszeit zum Übertragen verbleibender Konsistenzgruppendaten in der Konsistenzgruppe für den Freigabebereich, die nicht übertragen wurden, eine Antwortzeit zum Verarbeiten eines Befehls zum Freigeben von Speicherplatz überschreitet. Die verbleibenden Konsistenzgruppendaten im Freigabebereich werden in Reaktion auf Feststellen, dass die Übertragungszeit die Antwortzeit nicht überschreitet, in den Zielspeicher übertragen. Der Freigabebereich für den Befehl zum Freigeben von Speicherplatz wird in Reaktion auf Übertragen der Konsistenzgruppendaten im Freigabebereich in den Zielspeicher freigegeben.
  • Beschriebene Ausführungsformen ermöglichen es, dass ein Bilden einer Konsistenzgruppe selbst nach Empfangen eines Befehls zum Freigeben von Speicherplatz fortgesetzt wird, indem ermittelt wird, ob die Übertragungszeit zum Übertragen der verbleibenden Konsistenzgruppendaten ein Antwortzeitziel zum Verarbeiten eines Befehls zum Freigeben von Speicherplatz überschreitet. Wenn die geschätzte Übertragungszeit kein Antwortzeitziel überschreitet, wird ermöglicht, dass das Bilden der Konsistenzgruppe fortgesetzt wird, und der Freigabebereich für den Befehl zum Freigeben von Speicherplatz wird nach Übertragen der Daten für die Konsistenzgruppe freigegeben, da das Übertragen innerhalb eines Antwortzeitziels erfolgen kann. Dadurch wird ermöglicht, dass das Bilden einer Konsistenzgruppe nach Empfangen des Befehls zum Freigeben von Speicherplatz ohne Unterbrechung fortgeführt werden kann, wenn die Zeit zum Ausführen des Bildens der Konsistenzgruppe nicht das Ausführen des Befehls zum Freigeben von Speicherplatz innerhalb eines Antwortzeitziels verhindert.
  • Vorzugsweise stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, wobei die Übertragungszeit eine Zeitspanne zum Übertragen der verbleibenden Konsistenzgruppendaten für den Freigabebereich unter Verwendung von verfügbarem Speicherbereich in einem Cachespeicher im Quellenspeicher aufweist. Das Übertragen der verbleibenden Konsistenzgruppendaten für den Freigabebereich in den Zielspeicher weist Verwenden des Cachespeichers zum Übertragen von zumindest einem Teil der verbleibenden Konsistenzgruppendaten für den Freigabebereich in Reaktion auf Feststellen auf, dass die Übertragungszeit die Antwortzeit nicht überschreitet. Der Freigabebereich wird in Reaktion auf Kopieren der verbleibenden Konsistenzgruppendaten für den Freigabebereich in den Cachespeicher und/oder den Zielspeicher freigegeben. Die verbleibenden Konsistenzgruppendaten für den Freigabebereich werden aus dem Cachespeicher in den Zielspeicher übertragen.
  • Vorzugsweise stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, wobei die Übertagungszeit zum Übertragen der Konsistenzgruppendaten ein Verwenden eines Cachespeichers zum Übertragen eines Teils der verbleibenden Konsistenzgruppendaten berücksichtigt und der Freigabereich in Reaktion auf Kopieren der Konsistenzgruppendaten in den Cachespeicher und den Zielspeicher freigegeben wird. Indem ein Cachespeicher zum Übertragen von Konsistenzgruppendaten verwendet wird und die Daten nach Speichern im Cachespeicher als übertragen angesehen werden, wird die Übertragungszeit verringert und folglich die Wahrscheinlichkeit erhöht, dass das Bilden der Konsistenzgruppe innerhalb des Antwortzeitziels durchgeführt werden kann, bevor der Freigabebereich freigegeben wird.
  • Vorzugsweise stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, wobei das Ermitteln der Übertragungszeit zum Übertragen der verbleibenden Konsistenzgruppendaten für den Freigabebereich unter Verwendung des verfügbaren Speicherbereichs im Cachespeicher Ermitteln eines ersten Teils der verbleibenden Konsistenzgruppendaten für den Freigabebereich, die während der Antwortzeit in den verfügbaren Speicherbereich im Cachespeicher übertragen werden können, und eines zweiten Teils der verbleibenden Konsistenzgruppendaten für den Freigabebereich aufweist, der die verbleibenden Konsistenzgruppendaten mit Ausnahme des ersten Teils der verbleibenden Konsistenzgruppendaten aufweist. Es wird ermittelt, ob eine Zeitspanne zum Übertragen des zweiten Teils der verbleibenden Konsistenzgruppendaten für den Freigabebereich in den Zielspeicher die Antwortzeit überschreitet. In einem solchen Fall weist die Übertragungszeit die Zeitspanne zum Übertragen des zweiten Teils der verbliebenden Konsistenzgruppendaten für den Freigabebereich auf überschreitet die Antwortzeit nicht.
  • Vorzugsweise stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, wobei sowohl der Cachespeicher als auch direktes Übertragen der verbleibenden Konsistenzgruppendaten in den Zielspeicher gleichzeitig verwendet werden können, um die Übertragungszeit weiter zu reduzieren. In dieser Ausführungsform weist die Übertragungszeit die Zeit zum direkten Übertragen der Daten in den Zielspeicher auf, was länger dauert als die Zeit zum Übertragen in einen lokalen Cachespeicher. Folglich beruht das Ermitteln, ob ein Ausführen der Konsistenzgruppe gestattet werden soll, auf der Zeit für direktes Übertragen der Daten in den Zielspeicher, wobei der Cachespeicher umgangen wird. Dieser Vorgang optimiert jedoch die Übertragungszeit, indem der Cachespeicher verwendet wird, um so viel wie möglich von den verbleibenden Konsistenzgruppendaten zu übertragen, um die Datenmenge, die direkt aus dem Netzwerk in den Zielspeicher übertragen wird, auf ein Minimum herabzusetzen, wodurch der schnellere Übertragungsweg, der Cachespeicher, gegenüber dem langsameren Übertragungsweg, der Übertragung in den Zielspeicher, dies Netzwerkübertragung und Latenzzeit mit sich bringen kann, maximal genutzt wird.
  • Vorzugsweise stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, wobei, wenn die Übertragungszeit die Antwortzeit nicht überschreitet, das Übertragen der verbleibenden Konsistenzgruppendaten für den Freigabebereich aufweist: Ermitteln des ersten Teils und des zweiten Teils zum Herabsetzen der Übertragungszeit auf ein Minimum, Kopieren des ersten Teils der verbleibenden Konsistenzgruppendaten in den Cachespeicher und Übertragen des zweiten Teils der verbleibenden Konsistenzgruppendaten für den Freigabebereich in den Zielspeicher.
  • Vorzugsweise stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, wobei Übertragungsvorgänge optimiert werden, um die Übertragungszeit auf ein Minimum herabzusetzen, indem ein erster Teil der verbleibenden Konsistenzgruppendaten in den Cachespeicher und ein zweiter Teil der verbleibenden Konsistenzgruppendaten in den Zielspeicher übertragen werden. Durch Verwenden von sowohl dem schneller verarbeitenden Cachespeicher als auch dem direkten Übertragen zum gleichzeitigen Übertragen der verbleibenden Konsistenzgruppendaten über zwei verschiedene Pfade wird die Übertragungszeit weiter verringert, um die Wahrscheinlichkeit zu erhöhen, dass das Übertragen der Daten für die Konsistenzgruppe innerhalb eines Antwortzeitziels abgeschlossen wird, damit das Verarbeitens des Befehls zum Freigeben von Speicherplatz und Freigebens des Freigabebereichs ausgeführt werden kann.
  • Vorzugsweise stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, wobei in Reaktion auf Ermitteln, dass eine Zeitspanne zum Übertragen der verbleibenden Konsistenzgruppendaten für den Freigabebereich die Antwortzeit überschreitet, ausgeführt wird: Ermitteln, ob eine Zeitspanne, seit der eine letzte Konsistenzgruppe ausgeführt und in den Zielspeicher kopiert wurde, kürzer als ein Zielzeitraum für den Wiederherstellungspunkt (recovery point objective time) ist; Aufheben der gerade gebildeten Konsistenzgruppe in Reaktion auf Ermitteln, dass die Zeitspanne, seit der die letzte Konsistenzgruppe ausgeführt wurde, kürzer als der Zielzeitraum für den Wiederherstellungspunkt ist; und Freigeben des Freigabebereichs für den Befehl zum Freigeben von Speicherplatz in Reaktion auf Aufheben der Konsistenzgruppe.
  • Vorzugsweise stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, wobei als zusätzliches Ziel eines Zielzeitraums für den Wiederherstellungspunkt berücksichtigt wird, bei dem es sich um die Forderung handelt, dass Konsistenzgruppen innerhalb einer bestimmten Zeitspanne gebildet werden müssen. Wenn die Übertragungszeit zum Übertragen der verbleibenden Konsistenzgruppendaten nicht innerhalb des Antwortzeitziels zum Ausführen des Befehls zum Freigeben von Speicherplatz ausgeführt werden kann, kann die Konsistenzgruppe aufgehoben werden, wenn eine Konsistenzgruppe als letzte innerhalb des Zielzeitraums für den Wiederherstellungspunkt erstellt wurde, da das Aufheben den Zielzeitraum für den Wiederherstellungspunkt nicht verzögert. In diesem Fall können beide Ziele erreicht werden, indem die Konsistenzgruppe aufgehoben und das Freigeben des Freigabebereichs innerhalb des Antwortzeitziels ermöglicht wird, um den Befehl zum Freigeben von Speicherplatz auszuführen.
  • Vorzugsweise stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, wobei Prioritäten für die Antwortzeit, einen Zielzeitraum für den Wiederherstellungspunkt und eine Cachespeichergrenze angegeben werden. Die Cachespeichergrenze gibt eine maximal zu verwendende Menge an Speicherplatz im Cachespeicher zum Übertragen von Daten für eine Konsistenzgruppe an. In Reaktion auf Ermitteln, dass die Übertragungszeit unter Verwendung eines ersten verfügbaren Speicherbereichs im Cachespeicher, wie er durch die Cachespeichergrenze festgelegt wird, die Antwortzeit überschreitet, und eine Zeitspanne, seit der eine letzte Konsistenzgruppe ausgeführt wurde, den Zielzeitraum für den Wiederherstellungspunkt überschreitet, werden die Prioritäten verwendet, um zu ermitteln, ob einer von folgenden Vorgängen ausgeführt werden muss: Aufheben der Konsistenzgruppe; Übertragen eines ersten Teils der verbleibenden Konsistenzgruppendaten für den Freigabebereich in den Zielspeicher unter Verwendung des ersten verfügbaren Speicherbereichs im Cachespeicher und Übertragen eines zweiten Teils der verbleibenden Konsistenzgruppendaten für den Freigabebereich, der die verbleibenden Konsistenzgruppendaten für den Freigabebereich mit Ausnahme des ersten Teils der verbleibenden Konsistenzgruppendaten aufweist, in den Zielspeicher; und Verwenden eines zweiten verfügbaren Speicherbereichs im Cachespeicher über die Cachespeichergrenze hinaus zum Übertragen des ersten Teils der verbleibenden Konsistenzgruppendaten für den Freigabebereich in den Cachespeicher.
  • Vorzugsweise stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, wobei das Computersystem Prioritäten für verschiedene Ziele vergibt, beispielsweise eine Antwortzeit für den Befehl zum Freigeben von Speicherplatz, eine Zielsetzung für den Wiederherstellungspunkt und eine Cachespeichergrenze eines maximal zu verwendenden Speicherbereichs im Cachespeicher zum Übertragen von Daten für eine Konsistenzgruppe. Zur Optimierung kann als Erstes ermittelt werden, welche Vorgabe gelockert werden kann, wenn die Übertragungszeit das Antwortzeitziel überschreitet und die Zeitspanne, seit der die letzte Konsistenzgruppe gebildet wurde, den Zielzeitraum für den Wiederherstellungspunkt überschreitet. In einem solchen Fall kann das Ziel mit der geringsten Priorität gelockert werden. Dies ermöglicht es dem Benutzer anzugeben, welches Ziel gelockert und welche beibehalten werden sollen, um Benutzerziele auszugleichen, wenn die verbleibende Konsistenzgruppe unter Verwendung der Cachespeichergrenze nicht innerhalb der erforderlichen Antwortzeit für den Befehl zum Freigeben von Speicherplatz übertragen werden kann. Dies optimiert das Bilden von Konsistenzgruppen, wenn ein Befehl zum Freigeben von Speicherplatz auf der Grundlage von vordefinierten Zielen, beispielsweise einer Antwortzeit, einer Zielsetzung für den Wiederherstellungspunkt und einer Cachespeichergrenze, verarbeitet wird.
  • Unter einem anderen Aspekt betrachtet stellt die vorliegende Erfindung ein System zum Verarbeiten eines Befehls zum Freigeben von Speicherplatz bereit, wenn Daten in einem Quellenspeicher in einen Zielspeicher gespiegelt werden, wobei das System aufweist: einen Prozessor; und ein durch einen Computer lesbares Speichermedium mit darin gespeicherten Programmanweisungen, wobei die Programmanweisungen durch den Prozessor ausgeführt werden können, um Arbeitsgänge zu veranlassen, wobei die Arbeitsgänge aufweisen: Empfangen eines Befehls zum Freigeben von Speicherplatz, um einen Freigabebereich im Quellenspeicher freizugeben, während geänderte Daten in einer Konsistenzgruppe übertragen werden; Ermitteln, ob eine Übertragungszeit zum Übertragen verbleibender Konsistenzgruppendaten in der Konsistenzgruppe für den Freigabebereich, die nicht übertragen wurden, eine Antwortzeit zum Verarbeiten eines Befehls zum Freigeben von Speicherplatz überschreitet; Übertragen der verbleibenden Konsistenzgruppendaten im Freigabebereich in den Zielspeicher in Reaktion auf Ermitteln, dass die Übertragungszeit die Antwortzeit nicht überschreitet; und Freigeben des Freigabebereichs für den Befehl zum Freigeben von Speicherplatz in Reaktion auf Übertragen der Konsistenzgruppendaten im Freigabebereich in den Zielspeicher.
  • Unter einem anderen Aspekt betrachtet stellt die vorliegende Erfindung ein Verfahren zum Verarbeiten eines Befehls zum Freigeben von Speicherplatz in einem Datenverarbeitungssystem bereit, wenn Daten in einem Quellenspeicher in einen Zielspeicher gespiegelt werden, wobei das Computerprogrammprodukt ein durch einen Computer lesbares Speichermedium mit darin gespeicherten Programmanweisungen aufweist, wobei die Programmanweisungen durch einen Prozessor ausgeführt werden können, um Arbeitsgänge zu veranlassen, wobei die Arbeitsgänge aufweisen: Empfangen eines Befehls zum Freigeben von Speicherplatz, um einen Freigabebereich im Quellenspeicher freizugeben, während geänderte Daten in einer Konsistenzgruppe übertragen werden; Ermitteln, ob eine Übertragungszeit zum Übertragen verbleibender Konsistenzgruppendaten in der Konsistenzgruppe für den Freigabebereich, die nicht übertragen wurden, eine Antwortzeit zum Verarbeiten eines Befehls zum Freigeben von Speicherplatz überschreitet; Übertragen der verbleibenden Konsistenzgruppendaten im Freigabebereich in den Zielspeicher in Reaktion auf Ermitteln, dass die Übertragungszeit die Antwortzeit nicht überschreitet; und Freigeben des Freigabebereichs für den Befehl zum Freigeben von Speicherplatz in Reaktion auf Übertragen der Konsistenzgruppendaten im Freigabebereich in den Zielspeicher.
  • Unter einem anderen Aspekt betrachtet stellt die vorliegende Erfindung ein Computerprogramm zum Verarbeiten eines Befehls zum Freigeben von Speicherplatz in einem Datenverarbeitungssystem bereit, wenn Daten in einem Quellenspeicher in einen Zielspeicher gespiegelt werden, aufweisend: Empfangen eines Befehls zum Freigeben von Speicherplatz, um einen Freigabebereich im Quellenspeicher freizugeben während geänderte Daten in einer Konsistenzgruppe übertragen werden; Ermitteln, ob eine Übertragungszeit zum Übertragen verbleibender Konsistenzgruppendaten in der Konsistenzgruppe für den Freigabebereich, die nicht übertragen wurden, eine Antwortzeit zum Verarbeiten eines Befehls zum Freigeben von Speicherplatz überschreitet; Übertragen der verbleibenden Konsistenzgruppendaten im Freigabebereich in den Zielspeicher in Reaktion auf Ermitteln, dass die Übertragungszeit die Antwortzeit nicht überschreitet; und Freigeben des Freigabebereichs für den Befehl zum Freigeben von Speicherplatz in Reaktion auf Übertragen der Konsistenzgruppendaten im Freigabebereich in den Zielspeicher.
  • Figurenliste
    • 1 veranschaulicht eine Ausführungsform einer Speicherumgebung.
    • 2 veranschaulicht eine Ausführungsform von Komponenten in einem ersten Speicherserver in der Speicherumgebung von 1.
    • 3 veranschaulicht eine Ausführungsform einer Spiegelkopie-Beziehung (mirror copy relationship).
    • 4 veranschaulicht eine Ausführungsform von Speicherfreigabezielen (space release objectives) in Bezug auf eine Konsistenzgruppe und einen Befehl zum Freigeben von Speicherplatz.
    • 5 veranschaulicht eine Ausführungsform von Arbeitsgängen zum Verarbeiten eines Befehls zum Freigeben von Speicherplatz in Bezug auf einen Freigabebereich in einer Konsistenzgruppe.
    • 6 veranschaulicht eine Ausführungsform von Arbeitsgängen zum Ermitteln einer Übertragungszeit zum Übertragen verbleibender Konsistenzgruppendaten in einer in Bearbeitung befindlichen Konsistenzgruppe in das zweite Speichersystem.
    • 7 veranschaulicht eine Ausführungsform von Arbeitsgängen zum Verwenden von Prioritäten von Speicherfreigabezielen zum Ermitteln eines zu lockernden Ziels, um den Befehl zum Freigeben von Speicherplatz zu verarbeiten.
    • 8 veranschaulicht eine Datenverarbeitungsumgebung, in der die Komponenten von 1 implementiert werden können.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Wenn ein Befehl zum Freigeben von Speicherplatz empfangen wird, um Freigabebereich freizugeben, der sich innerhalb einer im Entstehen begriffenen Konsistenzgruppe als Teil eines Spiegelvorgangs von Daten in ein zweites Speichersystem befindet, wird die Konsistenzgruppe nach derzeitigem Stand der Technik aufgehoben, um ein Ausführen des Befehls zum Freigeben von Speicherbereich zu ermöglichen. Beschriebene Ausführungsformen stellen Verbesserungen und Optimierungen an der Computertechnologie zum Verarbeiten von Befehlen zum Freigeben von Speicherplatz bereit, um Speicherplatz auch in einer Konsistenzgruppe freizugeben. Bei den beschriebenen Ausführungsformen wird ermittelt, ob eine Übertragungszeit zum Übertragen verbleibender Daten in der Konsistenzgruppe, die nicht übertragen wurden und die sich im Freigabebereich befinden, eine Antwortzeit zum Verarbeiten eines Befehls zum Freigeben von Speicherplatz überschreitet. Die verbleibenden Konsistenzgruppendaten für Spuren im Freigabebereich werden in Reaktion auf Feststellen übertragen, dass die Übertragungszeit die Antwortzeit nicht überschreitet, und der Befehl zum Freigeben von Speicherplatz wird nach Beenden des Übertragens ausgeführt. Auf diese Weise wird ermöglicht, dass das Bilden der Konsistenzgruppe ausgeführt wird, bevor mit dem Ausführen des Befehls zum Freigeben von Speicherplatz begonnen wird, der Speicherplatz in der Konsistenzgruppe freigeben wird.
  • Beschriebene Ausführungsformen stellen zusätzliche Optimierungen bereit, die einen Zielzeitraum für den Wiederherstellungspunkt, der eine Zeitspanne angibt, in der neue Konsistenzgruppen erstellt werden müssen, und eine Cachespeichergrenze berücksichtigen, die eine maximale Menge an Cachespeicher bereitstellt, die nach Empfangen des Befehls zum Freigeben von Speicherplatz für ein Übertragen von Konsistenzgruppendaten verwendet werden kann. Wenn die verbleibenden Konsistenzgruppendaten nicht unter Verwendung des Cachespeichers bis zur Cachespeichergrenze innerhalb der Antwortzeit übertragen werden können, stellen beschriebene Ausführungsformen Techniken bereit, um zu ermitteln, welche der Ziele, Antwortzeit, Zielzeitraum für den Wiederherstellungspunkt und/oder Cachespeichergrenze, gelockert werden können, um zu ermitteln, ob die Konsistenzgruppe aufgehoben werden muss oder ob ermöglicht werden kann, dass die Konsistenzgruppe ausgeführt werden kann, bevor mit dem Befehl zum Freigeben von Speicherplatz begonnen wird.
  • 1 veranschaulicht eine Ausführungsform einer Datenspeicherumgebung mit mindestens zwei Speichersystemen 1001 und 1002 , die jeweils Speicherserver 1021 bzw. 1022 enthalten, die einen Zugriff auf Datenträger 1041 und 1042 verwalten, die in Speichern 1061 und 1062 konfiguriert sind. Hostsysteme (nicht gezeigt) können Lese- und Schreibvorgänge in Bezug auf das erste Speichersystem 1001 über ein Speichernetzwerk 110 ausführen. Der erste Speicher 1061 kann einen Primärdatenträger aufweisen, an den Hosts Lese- und Schreibanforderungen richten. Der erste Speicherserver 1021 kann Daten in den Datenträgern 1041 in das zweite Speichersystem 1002 spiegeln, um Daten im zweiten Speicherserver 1022 in Konsistenzgruppen zu verwalten.
  • Wie hierin verwendet kann sich der Begriff „Speichersystem“ auf einen Speicherserver 1021 , 1022 und/oder den Speicher 1061 , 1062 beziehen, die vom Server verwaltet werden.
  • Die Speicher 1061 , 1062 können verschiedene Typen oder Kategorien von Speichereinheiten aufweisen, beispielsweise Magnetplattenlaufwerke (magnetic hard disk drives), eine aus Halbleiter-Komponenten bestehende Halbleiter-Speichereinheit (solid state storage device, SSD), einen elektrisch löschbaren programmierbaren Nur-Lese-Speicher (Electrically Erasable Programmable Read-Only Memory, EEPROM), einen Flashspeicher, eine Flash-Platte (flash disk), ein RAM-Laufwerk, einen Speicherklassenspeicher (storage-class memory, SCM) usw., einen Phasenwechselspeicher (Phase Change Memory, PCM), einen resistiven Direktzugriffsspeicher (resistive random access memory, RRAM), einen Spin-Transfer-Torque-Speicher (STM-RAM), einen Conductive-Bridging-RAM (CBRAM), ein Magnetplattenlaufwerk, eine optische Platte, einen Bandspeicher usw. Die Datenträger 1041 , 1042 können außerdem von einer Anordnung von Einheiten konfiguriert werden, beispielsweise Just a Bunch of Disks (JBOD), einer Einheit mit Direktzugriffspeicher (Direct Access Storage Device, DASD), einer redundanten Anordnung unabhängiger Platten (Redundant Array of Independent Disks, RAID), einer Virtualisierungseinheit usw. Außerdem können die Speicher 1061 , 1062 heterogene Speichereinheiten von verschiedenen Anbietern und verschiedene Typen von Speichereinheiten aufweisen, wie etwa einen ersten Typ von Speichereinheiten, z.B. Festplattenlaufwerke, mit einer geringeren Datenübertragungsgeschwindigkeit als ein zweiter Typ von Speichereinheiten, z.B. SSDs.
  • Das Speichernetzwerk 110, das von den Speichersystemen 1001 und 1002 zum Spiegeln von Daten verwendet wird, kann ein Speichernetzwerk wie etwa ein oder mehrere miteinander verbundene lokale Netze (Local Area Networks, LAN), Speicherbereichsnetzwerke (Storage Area Networks, SAN), ein Weitverkehrsnetz (Wide Area Network, WAN), ein Rechner-Rechner-Netzwerk (peer-to-peer network), ein drahtloses Netz usw. aufweisen.
  • 2 zeigt Komponenten des ersten Servers 1021 , unter anderem einen Prozessor 200 und einen Speicher 204, der Programme, die durch den Prozessor 200 ausgeführt werden, sowie einen Cachespeicher 206 zum Zwischenspeichern von Lese- und Schreibdaten für den ersten Speicher 1061 enthält. Ein Teil des Cachespeichers 206 kann auch verwendet werden, um Daten in einer Konsistenzgruppe zu übertragen, die von einem Befehl zum Freigeben von Speicherplatz betroffen sind.
  • Der Speicher 204 enthält ein Betriebssystem 208, das Datenträger 1041 formt und Datenträgerverzeichnisse 210 verwaltet, beispielsweise ein Datenträgerinhaltsverzeichnis (volume table of contents, VTOC), ein Dateizuordnungsverzeichnis (file allocation table) usw., um den konfigurierten Datenträgern 1041 Informationen bereitzustellen. Das Betriebssystem 208 verwaltet außerdem E/A-Anfragen aus den Hostsystemen in Bezug auf den Datenträger 1041 und verarbeitet einen Befehl zum Freigeben von Speicherplatz, um Speicherplatz freizugeben, der einem der Datenträger 1041 zugeordnet ist, so dass er anderen Datenträgern zur Verfügung steht. Außerdem kann das Betriebssystem 208 Datenträger 1041 , wie etwa Datenträger mit schlanker Speicherzuweisung, verwalten und dem bereitgestellten, aber nichtzugeordneten Speicherbereich zuordnen und Befehle zum Freigeben von Speicherplatze ausgeben, um Speicherbereich, der einem Datenträger mit schlanker Speicherzuweisung zugeordnet ist, freizugeben, um diesen zum Zuweisen zu anderen Datenträgern 1041 verfügbar zu machen.
  • Der Speicher 204 enthält eine Kopierverwaltungseinrichtung (copy manager) 212 zum Erzeugen und Verwalten von Spiegelbeziehungen 300 von Quellendaten in Datenträgern 1041 im ersten Speichersystem 1001 zu Zieldaten im zweiten Speichersystem 1002 als Teil von Konsistenzgruppen. Der Speicher 204 enthält außerdem Speicherfreigabeziele 400, die das Betriebssystem 208, die Kopierverwaltungseinrichtung 212 und/oder eine andere Komponente verwendet, um zu ermitteln, wie ein Befehl zum Freigeben von Speicherplatz verarbeitet werden muss, wenn der Freigabebereich Bereiche in einer Konsistenzgruppe enthält, die gerade in das zweite Speichersystem 1002 gespiegelt wird.
  • Der Server 1001 enthält einen oder mehrere Speicheradapter 214, um Daten mit Einheiten im ersten Speicher 1061 und einem oder mehreren Netzwerkadaptern 216 auszutauschen und Daten in Konsistenzgruppen in das zweite Speichersystem 1002 zu spiegeln.
  • 3 veranschaulicht ein Beispiel einer Spiegelbeziehung 300i , die enthalten kann: einen Spiegelkennzeichner (mirror identifier) 302, der die von der Kopierverwaltungseinrichtung 212 erzeugte Spiegelkopie kennzeichnet; Quellendaten 306, z.B. einen primären Datenträger 1041 im primären Speichersystem 1001 , aus dem Daten kopiert werden; Zieldaten 308, z.B. einen sekundären Datenträger 1042 , im sekundären Speichersystem 1002 , in das die Quellendaten kopiert werden; eine nichtsynchronisierte Datenstruktur (out-of-synch data structure) 310, beispielsweise eine Bitmap, die Spuren oder andere Dateneinheiten in den Quellendaten 306 anzeigt, die geändert wurden und in die Zieldaten 308 kopiert werden müssen; und eine Datenstruktur 312 zum Aufzeichnen von Änderungen (change recording data structure), beispielsweise eine Bitmap zum Aufzeichnen von Änderungen, die anzeigt, dass Quellenspuren 306, die aktualisiert oder geändert wurden, in die nächste zu bildende Konsistenzgruppe aufgenommen werden müssen.
  • Zum Erzeugen einer neuen Konsistenzgruppe wird die Datenstruktur 312 zum Aufzeichnen von Änderungen, die anzeigt, dass sich Daten änderten, die während eines Kopierens geänderter Daten für die aktuell im Entstehen begriffene Konsistenzgruppe aktualisiert wurden, mit der nichtsynchronisierten Datenstruktur 310 zusammengeführt, die geänderte Daten enthält, die für die aktuelle Konsistenzgruppe kopiert werden. Nach dem Zusammenführen wird die Datenstruktur 312 zur Aufzeichnung von Änderungen zurückgesetzt, um neue Aktualisierungen für eine nächste Konsistenzgruppe aufzuzeichnen, wobei die Daten, die in der nichtsynchronisierten Datenstruktur 310 als geändert angezeigt werden, in die Zieldaten 308 kopiert werden, um die aktuelle Konsistenzgruppe zu bilden.
  • 4 veranschaulicht eine Ausführungsform von Speicherfreigabezielen 400, unter anderem: eine Antwortzeit 402, die eine maximale Zeitspanne angibt, innerhalb derer der Befehl zum Freigeben von Speicherplatz ausgeführt werden muss; einen Zielzeitraum 404 für den Wiederherstellungspunkt, der eine maximale Zeitspanne zwischen zwei beliebigen Konsistenzgruppen angibt, so dass eine neue Konsistenzgruppe innerhalb des Zielzeitraums 404 für den Wiederherstellungspunkt erstellt werden muss; eine Cachespeichergrenze 406, die eine maximale Menge des Cachespeichers 206 angibt, die zum Speichern zu spiegelnder geänderter Daten verwendet werden kann, wie in der nicht synchronisierten Datenstruktur 310 angezeigt wird, die in das zweite Speichersystem 1002 kopiert werden, um die Zeit zum Ausführen des Kopierens der verbleibenden Konsistenzgruppendaten, die in der nichtsynchronisierten Datenstruktur 310 angezeigt werden, zu verringern; und Prioritäten 408, die eine Priorität von jedem der Ziele 402, 404 und 406 anzeigen.
  • 5 veranschaulicht eine Ausführungsform von Arbeitsgängen, die vom Betriebssystem 208 und/oder der Kopierverwaltungseinrichtung 212 ausgeführt werden, um einen Befehl zum Freigeben von Speicherplatz zu verarbeiten, wenn Konsistenzgruppen gebildet werden. Bei Empfangen (beim Block 500) eines Befehls zum Freigeben von Speicherplatz, um einen Freigabebereich im ersten Speicher 1061 freizugeben, wird ermittelt (beim Block 502), ob gerade eine Konsistenzgruppe in das zweite Speichersystem 1002 kopiert wird, so dass Daten, die in der nichtsynchronisierten Datenstruktur 310 angezeigt werden, die einen Teil des Freigabebereichs enthält, momentan kopiert werden. Wenn keine Konsistenzgruppe kopiert wird, die Spuren im Freigabebereich enthält, setzt die Kopierverwaltungseinrichtung 212 (beim Block 504) eine Markierung, um zu verhindern, dass eine Konsistenzgruppe, die den Freigabebereich enthält, in einen Bearbeitungszustand (in-progress state) eintritt, während dessen Daten kopiert werden, gibt den Freigabebereich frei (beim Block 506) und setzt anschließend (beim Block 508) die nichtsynchronisierte Datenstruktur 310 zurück, um jene Spuren, die den Freigabereich anzeigen, zu entfernen.
  • Wenn (beim Block 502) eine Konsistenzgruppe gerade kopiert wird, d.h., die nichtsynchronisierte Datenstruktur 310 zeigt an, dass Spuren des Freigabebereichs kopiert werden müssen, wird ermittelt (beim Block 510), ob es im Freigabebereich Spuren gibt, die in der nichtsynchronisierten Datenstruktur 310 als noch nicht kopiert angezeigt werden.
  • Wenn (beim Block 510) keine Freigabespuren, die in der nichtsynchronisierten Datenstruktur 310 angezeigt werden, noch nicht kopiert wurden, kann das Betriebssystem 208 die in der nichtsynchronisierten Datenstruktur 310 angezeigten Spuren als kopiert freigeben. Auf diese Weise werden die Spuren des Freigabebereichs erst freigegeben, wenn die Spuren des Freigabebereichs in einer Konsistenzgruppe in den zweiten Speicher 1062 kopiert worden sind. Wenn (beim Block 510) Spuren des Freigabebereichs in der nichtsynchronisierten Datenstruktur 310 als noch nicht kopiert angezeigt werden, ermittelt die Kopierverwaltungseinrichtung 212 oder eine andere Komponente (beim Block 512) eine Übertragungszeit zum Übertragen verbleibender Konsistenzgruppendaten in der nichtsynchronisierten Datenstruktur 310 für Spuren des Freigabebereichs, die als noch nicht kopiert angezeigt werden. Die verbleibenden Konsistenzgruppendaten können durch den Cachespeicher 206 und/oder direkt aus dem ersten Speicher 1061 durch die Speicheradapter 214, anschließend über die Netzwerkadapter 216 und von dort in das zweite Speichersystem 1002 kopiert werden, wobei der Cachespeicher 206 auf diese Weise umgangen wird. Hinsichtlich der Übertragungszeit kann ein gleichzeitiges Übertragen eines ersten Teils der verbleibenden Konsistenzgruppendaten in den Cachespeicher 206 und Übertragen eines zweiten Teils der verbleibenden Konsistenzgruppendaten, der die verbleibenden Konsistenzgruppendaten mit Ausnahme des ersten Teils aufweist, aus dem ersten Speicher 1061 direkt in das zweite Speichersystem 1002 eingerechnet werden, wobei der Cachespeicher 206 umgangen wird. Die Übertragungszeit kann die längere der Zeitspannen zum Übertragen des ersten Teils und des zweiten Teils der verbleibenden Konsistenzgruppendaten aufweisen.
  • Wenn (beim Block 514) die ermittelte Übertragungszeit das Antwortzeitziel 402 überschreitet, d.h., das Antwortzeitziel 402 nicht erfüllt werden kann, wird ermittelt (beim Block 518), ob eine Zeitspanne seit Ausführen der letzten Konsistenzgruppe länger ist als der Zielzeitraum 404 für den Wiederherstellungspunkt. Wenn die Zeitspanne länger ist, kann der Zielzeitraum 404 für den Wiederherstellungspunkt nicht gelockert werden und die Kopierverwaltungseinrichtung 212 und/oder andere Komponenten verwenden (beim Block 520) die Prioritäten 408 für die Antwortzeit 402, den Zielzeitraum 404 für den Wiederherstellungspunkt und eine Cachespeichergrenze 406, um zu ermitteln, welches Ziel gelockert werden kann, beispielsweise Aufheben der gerade kopierten Konsistenzgruppe oder Übertragen der verbleibenden Konsistenzgruppendaten für Spuren des Freigabebereichs unter Verwendung des Cachespeichers 206 bis zur Cachespeichergrenze 406 oder über die Cachespeichergrenze 406 hinaus. Wenn (beim Block 518) die Zeitspanne seit der letzten Konsistenzgruppe nicht länger als der Zielzeitraum 404 für den Wiederherstellungspunkt ist, was bedeutet, dass die Konsistenzgruppe aufgehoben werden kann und der Zielzeitraum 404 für den Wiederherstellungspunkt noch erfüllt wird, wird die in Bearbeitung befindliche Konsistenzgruppe aufgehoben (beim Block 522), der Freigabebereich freigegeben (beim Block 524) und die nichtsynchronisierte Datenstruktur 310 zurückgesetzt, um den Hinweis auf die Spuren im Freigabebereich zu entfernen. Die Kopierverwaltungseinrichtung 212 kann (beim Block 526) eine neue Konsistenzgruppe bilden, um den Zielzeitraum 404 für den Wiederherstellungspunkt zu erfüllen, wobei diese nicht den Freigabebereich enthält.
  • Die Ausführungsform von 5 ermöglicht ein Verarbeiten eines Befehls zum Freigeben von Speicherplatz nach Bilden einer Konsistenzgruppe, indem ermittelt wird, ob die verbleibenden Konsistenzgruppendaten, die sich im Freigabebereich befinden, mit verschiedenen Einschränkungen, beispielsweise einem Antwortzeitziel, einem Zielzeitraum für den Wiederherstellungspunkt, einer Cachespeichergrenze und einer Zielsetzung für den Wiederherstellungspunkt, in das zweite Speichersystem 1002 kopiert werden können. Dies vermeidet die Notwendigkeit, eine gerade gebildete Konsistenzgruppe aufzuheben, indem ermittelt wird, ob die Konsistenzgruppe ausgeführt werden kann und die verschiedenen Freigabebereichsziele erfüllt werden können. In weiteren Ausführungsformen können andere Ziele in Betracht gezogen werden.
  • 6 veranschaulicht eine Ausführungsform von Arbeitsgängen, die vom Betriebssystem 208 und/oder von der Kopierverwaltungseinrichtung ausgeführt werden, um den Arbeitsgang beim Block 512 in 5 auszuführen, um eine Zeitspanne zum Übertragen verbleibender Konsistenzgruppendaten in der nichtsynchronisierten Datenstruktur 310 für den Freigabebereich zu ermitteln, der noch nicht in das zweite Speichersystem 1002 übertragen wurde. Auf Einleiten des Ermittelns (beim Block 600) der Übertragungszeit hin ermittelt (beim Block 602) die Kopierverwaltungseinrichtung 212 eine erste Teilmenge der verbleibenden Konsistenzgruppendaten für Spuren des Freigabebereichs, die während der Antwortzeit 402 bis zur Cachespeichergrenze 406 in den verfügbaren Speicherbereich im Cachespeicher 206 übertragen werden können, wobei der erste Teil der verbleibenden Konsistenzgruppendaten im Cachespeicher ebenfalls aus dem Cachespeicher 206 in das zweite Speichersystem 1002 übertragen wird. Folglich können verbleibende Konsistenzgruppendaten, die in den Cachespeicher 206 übertragen werden, auch mit einer Cachespeicher-Übertragungsrate aus dem Cachespeicher 206 in das zweite Speichersystem 1002 übertragen werden. In einer Implementierung kann der erste Teil berechnet werden als (verfügbarer Speicherbereich im Cachespeicher 206 bis zur Cachespeichergrenze 406) + Antwortzeit 402 * (Cachespeicher-Übertragungsrate)). Auf diese Weise ist der erste Teil der verbleibenden Konsistenzgruppendaten, die in den Cachespeicher 206 übertragen werden, größer als die Cachespeichergrenze 406, da verbleibende Konsistenzgruppendaten auch gleichzeitig mit der Cachespeicher-Übertragungsrate aus dem Cachespeicher 206 in das zweite Speichersystem 1002 übertragen werden, wodurch Platz für weitere verbleibende Konsistenzgruppendaten geschaffen wird, die im Datenstrom in den Cachespeicher 206 übertragen werden müssen.
  • In einer alternativen Ausführungsform kann die erste Teilmenge der verbleibenden Konsistenzgruppendaten genau die Cachespeichergrenze 406 aufweisen.
  • Die Kopierverwaltungseinrichtung 212 ermittelt sodann (beim Block 604) eine Zeitspanne zum Übertragen eines zweiten Teils der verbleibenden Konsistenzgruppendaten für den Freigabebereich, der die verbleibenden Konsistenzgruppendaten mit Ausnahme des ersten Teils aufweist. Die Zeitspanne zum Übertragen des zweiten Teils kann eine Speicherübertragungsrate mal eine Menge an Bytes des zweiten Teils der verbleibenden Konsistenzgruppendaten aufweisen. Die Speicherübertragungsrate kann eine geschätzte Zeit zum Übertragen einer festgelegten Menge von Daten aus dem ersten Speicher 1061 an den Speicheradapter 214, an den Netzwerkadapter 216 und anschließend in das zweite Speichersystem 1002 aufweisen. Die Zeit zum Übertragen des zweiten Teils kann Multiplizieren einer Datenmenge des zweiten Teils mit der Speicherübertagungsrate aufweisen. Die Arbeitsgänge der Schritte 602 und 604 setzen die Übertragungszeit für den zweiten Teil folglich auf ein Minimum herab, indem die Menge, die innerhalb der Grenze der Antwortzeit 402 und der Cachespeichergrenze 406 über den Cachespeicher 206 übertragen werden kann, maximiert wird.
  • Wenn (beim Block 606) die Übertragungszeit für den zweiten Teil nicht kürzer als die Antwortzeit ist, kann das Antwortzeitziel 402 nicht erfüllt werden, und die Steuerung geht (beim Block 608) weiter zum Block 518 in 5, um zu ermitteln, ob die Konsistenzgruppe aufgehoben werden kann und der Zielzeitraum 404 für den Wiederherstellungspunkt noch erfüllt werden kann. Wenn (beim Block 606) die Zeit zum Übertragen des zweiten Teils der verbleibenden Konsistenzgruppendaten kürzer als die Antwortzeit ist, kann die Kopierverwaltungseinrichtung 212 (beim Block 610) den ersten Teil und den zweiten Teil anpassen, um die Übertragungszeit auf ein Minimum herabzusetzen, wobei die Cachespeichergrenze, die Cachespeicher-Übertragungsrate und die Speicherübertragungsrate berücksichtigt werden. Anschließend geht die Steuerung (beim Block 612) weiter zum Block 516 in 5, um den ersten und den zweiten Teil der verbleibenden Konsistenzgruppendaten in das zweite Speichersystem 1002 zu übertragen.
  • Bei der Ausführungsform von 6 wird bei der Übertragungszeit berücksichtigt, dass der erste und der zweite Teil der verbleibenden Konsistenzgruppendaten für die Spuren des Freigabebereichs über verschiedene Pfade gleichzeitig in den Cachespeicher 206 und direkt in das zweite Speichersystem 1002 übertragen werden können, um die Gesamtübertragungszeit zu optimieren, so dass sie innerhalb der für den Befehl zum Freigeben von Speicherplatz erforderlichen Antwortzeit liegt. Dies erhöht die Wahrscheinlichkeit, dass Daten für den Freigabebereich, von denen angezeigt wird, dass sie für die in Bearbeitung befindliche Konsistenzgruppe in die nichtsynchronisierte Datenstruktur 310 kopiert werden müssen, innerhalb eines Antwortzeitziels komplett übertragen werden, um zu ermöglichen, dass der Befehl zum Freigeben von Speicherplatz innerhalb des Antwortzeitziels 402 verarbeitet und ausgeführt wird sowie andere Speicherfreigabeziele erfüllt werden, beispielsweise ein Zielzeitraum 404 für den Wiederherstellungspunkt und eine Cachespeichergrenze 406.
  • 7 veranschaulicht eine Ausführungsform von Arbeitsgängen, die vom Betriebssystem 208 und/oder von der Kopierverwaltungseinrichtung ausgeführt werden, um den Arbeitsgang beim Block 520 in 5 zum Verwenden der Prioritäten 408 für die Speicherfreigabeziele 402, 404, 406 auszuführen, um zu ermitteln, welches Ziel gelockert werden kann, wie etwa Lockern des Antwortzeitziels 402, indem gestattet wird, dass ein Übertragen der verbleibenden Konsistenzgruppendaten für den Freigabebereich in den Cachespeicher 206 und das zweite Speichersystem 1002 länger dauert als die Antwortzeit 402, Lockern des Zielzeitraums 404 für den Wiederherstellungspunkt durch Aufheben der Konsistenzgruppe, selbst wenn eine Zeitspanne der zuletzt ausgeführten Konsistenzgruppe den Zielzeitraum 404 für den Wiederherstellungspunkt überschreitet, oder Lockern der Cachespeichergrenze 406, indem gestattet wird, dass die zum Zwischenspeichern von verbleibenden Konsistenzgruppendaten verwendete Menge des Cachespeichers 206 die Cachespeichergrenze 406 überschreitet. Auf Einleiten (beim Block 700) des Arbeitsgangs zum Verwenden der Prioritäten 408 hin ermittelt (beim Block 702) die Kopierverwaltungseinrichtung 212 und/oder das Betriebssystem 208, ob der Zielzeitraum 404 für den Wiederherstellungspunkt eine höchste Priorität hat. Wenn dies der Fall ist und wenn (beim Block 704) die Antwortzeit 402 die zweithöchste Priorität hat, wird die Cachespeichergrenze 406 gelockert, und es wird (beim Block 706) eine Mindestmenge an verfügbarem Speicherbereich im Cachespeicher 206 über die Cachespeichergrenze 406 hinaus ermittelt, die erforderlich ist, um einen ersten Teil der verbleibenden Konsistenzgruppendaten für den Freigabebereich durch den Cachespeicher 206 zu übertragen, so dass der verbleibende zweite Teil innerhalb der Antwortzeit 402 über die Adapter 214 und 216 direkt in das zweite Speichersystem 1002 übertragen werden kann, wobei der Cachespeicher 206 umgangen wird. Auf diese Weise wird die Cachespeichergrenze 406 gelockert, um die Größe des ersten Teils der verbleibenden Konsistenzgruppendaten für den Freigabebereich, der unter Verwendung des Cachespeichers 206 übertragen wird, zu erhöhen, wobei dieses Übertragen schneller erfolgt als das Übertragen des zweiten Teils unter Umgehen des Cachespeichers 206, da in den Cachespeicher 206 übertragene verbleibende Konsistenzgruppendaten als in das zweite Speichersystem 1002 übertragen angesehen werden und ihre Spuren auch im Freigabebereich freigegeben werden können. Durch Lockern der Cachespeichergrenze 406 wird folglich der erste Teil der verbleibenden Konsistenzgruppendaten vergrößert, und der zweite Teil, der die längere Zeitspanne zum Übertragen benötigt, wird verringert, wodurch auch die Übertragungszeit des zweiten Teils verkürzt wird.
  • Wenn (beim Block 704) die Cachespeichergrenze 406 die zweithöchste Priorität hat, wird das Antwortzeitziel 402 gelockert und die Kopierverwaltungseinrichtung 212 verwendet (beim Block 708) verfügbaren Speicherbereich im Cachespeicher 206 bis zur Cachespeichergrenze 406, um den ersten Teil der verbleibenden Konsistenzgruppendaten für den Freigabebereich in das zweite Speichersystem zu übertragen und den zweiten Teil der verbleibenden Konsistenzgruppendaten in einer Zeitspanne, die länger als die Antwortzeit 402 ist, in das zweite Speichersystem 1002 zu übertragen.
  • Wenn (beim Block 702) der Zielzeitraum 404 für den Wiederherstellungspunkt nicht die höchste Priorität hat und wenn (beim Block 710) die Cachespeichergrenze 406 die höchste Priorität hat und wenn (beim Block 712) die Antwortzeit 402 die zweithöchste Priorität hat, so hat der Zielzeitraum 404 für den Wiederherstellungspunkt die niedrigste Priorität, und die Zielsetzung 404 für den Wiederherstellungspunkt kann gelockert werden. Um die Zielsetzung 404 für den Wiederherstellungspunkt zu lockern, wird die gerade gebildete Konsistenzgruppe aufgehoben (beim Block 714), und anschließend kann der Freigabebereich freigegeben werden. Wenn (beim Block 712) der Zielzeitraum 404 für den Wiederherstellungspunkt die zweithöchste Priorität hat, geht die Steuerung weiter zum Block 708, um das Ziel der Cachespeichergrenze 406 zu lockern.
  • Wenn (vom Nein-Zweig von Block 710 ausgehend) die Antwortzeit die höchste Priorität hat und wenn (beim Block 716) die Cachespeichergrenze 406 die zweithöchste Priorität hat, geht die Steuerung weiter zum Block 714, um den Zielzeitraum 404 für den Wiederherstellungspunkt zu lockern und die Konsistenzgruppe aufzuheben. Wenn (beim Block 716) der Zielzeitraum 404 für den Wiederherstellungspunkt die zweihöchste Priorität ist, geht die Steuerung weiter zum Block 706, um die Cachespeichergrenze 406 zu lockern.
  • Bei der Ausführungsform von 7 ermittelt die Kopierverwaltungseinrichtung 212 und/oder eine andere Komponente, welches Ziel gelockert werden muss, um zu ermitteln, ob der verwendete Speicherbereich des Cachespeichers 206 über die Cachespeichergrenze 406 vergrößert werden, die Konsistenzgruppe aufgehoben und der Zielzeitraum 404 für den Wiederherstellungspunkt überschritten werden oder ob gestattet werden muss, dass die nichtsynchronisierte Datenstruktur 310 innerhalb der Cachespeichergrenze 406 geleert wird, indem zum Ausführen eine längere Zeitspanne als die Antwortzeit 402 in Anspruch genommen wird.
  • In den beschriebenen Ausführungsformen weist die Kopierverwaltungseinrichtung einen Spiegelkopiervorgang auf, beispielsweise ein asynchrones oder synchrones Spiegeln. In alternativen Ausführungsformen kann die Kopierverwaltungseinrichtung einen anderen Typ von Kopiervorgang aufweisen, zum Beispiel einen Momentankopiervorgang (point-in-time copy operation), wie etwa eine Snapshot-Kopie.
  • Die hierin verwendeten Bezugszeichen, z.B. i, werden verwendet, um eine veränderliche Anzahl von Exemplaren eines Elements zu bezeichnen, wobei sie den gleichen oder verschiedene Werte darstellen können und den gleichen oder einen anderen Wert darstellen können, wenn sie bei verschiedenen oder den gleichen Elementen in verschiedenen beschriebenen Exemplaren verwendet werden.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) beinhalten, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch eine Einheit zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffspeicher (SRAM), ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder gehobene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. ein Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs/Verarbeitungs-Einheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs/Verarbeitungs-Einheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Java, Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zum Umsetzen der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder angegebenen Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zum Ausführen der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • Die Rechenkomponenten von 1, darunter die Server 1021 , 1022 , können in einem oder mehreren Computersystemen implementiert werden wie etwa dem in 8 gezeigten Computersystem 802. Das Computersystem/der Server 802 kann im allgemeinen Kontext von durch ein Computersystem ausführbaren Anweisungen beschrieben werden, z.B. Programmmodulen, die durch ein Computersystem ausgeführt werden. Im Allgemeinen kann es sich bei Programmmodulen um Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen usw. handeln, die bestimmte Aufgaben ausführen oder bestimmte abstrakte Datentypen implementieren. Das Computersystem/der Server 802 kann in einer verteilten Cloud-Computing-Umgebung betrieben werden, in der Aufgaben durch entfernt angeordnete Verarbeitungseinheiten ausgeführt werden, die durch ein Datenübertragungsnetz miteinander verbunden sind. In einer verteilten Cloud-Computing-Umgebung können sich Programmmodule sowohl in Speichermedien des lokalen als auch des entfernt angeordneten Computersystems befinden, u.a. in Speichereinheiten.
  • Wie in 8 gezeigt wird das Computersystem/der Server 802 in Form einer Universaldatenverarbeitungseinheit gezeigt. Zu den Komponenten des Computersystems/Servers 802 können ein oder mehrere Prozessoren oder Verarbeitungseinheiten 804, ein Systemspeicher 806 und ein Bus 808 gehören, der verschiedene Systemkomponenten, u.a. einen Systemspeicher 806, mit dem Prozessor 804 verbindet, ohne auf diese beschränkt zu sein. Der Bus 808 stellt einen oder mehrere von beliebigen Typen von Busstrukturen dar, darunter ein Speicherbus oder eine Speichersteuereinheit, ein peripherer Bus, ein Accelerated Graphics Port und ein Prozessor oder ein lokaler Bus, wobei eine beliebige aus einer Vielfalt von Busarchitekturen verwenden wird. Beispielhaft und ohne Einschränkung gehören zu solchen Strukturen ein ISA-Bus (Industry Standard Architecture (ISA) bus, ein MCA-Bus (Micro Channel Architecture (MCA) bus), ein EISA-Bus (Enhanced ISA (EISA) bus), ein lokaler VESA-Bus (Video Electronics Standards Association (VESA) bus) und ein PCI-Bus (Peripheral Component Interconnects (PCI) bus).
  • Das Computersystem/der Server 802 enthält üblicherweise eine Vielfalt von durch das Computersystem lesbaren Medien. Bei solchen Medien kann es sich um beliebige Medien handeln, auf die das Computersystem/der Server 802 zugreifen kann, und dazu gehören sowohl flüchtige als auch nichtflüchtige Medien, austauschbare sowie nicht austauschbare Medien.
  • Der Systemspeicher 806 kann durch ein Computersystem lesbare Medien in Form von flüchtigem Speicher enthalten, z.B. einen Direktzugriffsspeicher (RAM) 810 und/oder einen Cachespeicher 812. Das Computersystem/der Server 802 kann außerdem andere austauschbare/nicht austauschbare, flüchtige/nichtflüchtige Computersystem-Speichermedien enthalten. Lediglich beispielhaft kann das Speichersystem 813 bereitgestellt werden, um aus nicht austauschbaren, nichtflüchtigen magnetischen Medien (nicht gezeigt und üblicherweise als „Festplattenlaufwerk“ bezeichnet) zu lesen und auf diese zu schreiben. Wenngleich nicht gezeigt, können ein Magnetplattenlaufwerk zum Lesen aus einer austauschbaren, nichtflüchtigen Magnetplatte (z.B. einer „Diskette“) und zum Schreiben auf diese sowie ein optisches Plattenlaufwerk zum Lesen aus einer austauschbaren, nichtflüchtigen optischen Platte, z.B. einer CD-ROM, DVD-ROM, und zum Schreiben auf diese oder andere optische Medien bereitgestellt werden. In solchen Fällen kann jede Einheit durch eine oder mehrere Datenmedienschnittstellen mit dem Bus 808 verbunden werden. Wie im Folgenden gezeigt und beschrieben wird, kann der Speicher 806 mindestens ein Programmprodukt mit einem Satz (z.B. mindestens einem) von Programmmodulen enthalten, die so konfiguriert sind, dass sie die Funktionen und Ausführungsformen der Erfindung ausführen.
  • Beispielsweise können ein Programm/Dienstprogramm (utility) 814 mit einem Satz (mindestens einem) von Programmmodulen 816 sowie ein Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten im Speicher 806 gespeichert sein, jedoch ohne auf diese beschränkt zu sein. Das Betriebssystem, ein oder mehrere Anwendungsprogramme, die anderen Programmmodule und Programmdaten und/oder eine Kombination aus diesen können eine Implementierung einer Vernetzungsumgebung enthalten. Die Komponenten des Computers 802 können in Form von Programmmodulen 816 implementiert werden, die im Allgemeinen die Funktionen und/oder Methodiken von Ausführungsformen der Erfindung ausführen, wie sie hierin beschrieben werden. Die Systeme von 1 können in einem oder mehreren Computersystemen 802 implementiert werden, wobei die Computersysteme bei Implementieren in mehreren Computersystemen 802 über ein Netzwerk Daten miteinander austauschen können.
  • Das Computersystem/der Server 802 kann außerdem mit einer oder mehreren externen Einheiten 818 Daten austauschen, z.B. mit einer Tastatur, einer Zeigereinheit, einer Anzeige 820 usw.; einer oder mehreren Einheiten, die es einem Benutzer ermöglichen, mit dem Computersystem/Server 802 zu interagieren; und/oder beliebigen Einheiten (z.B., einer Netzwerkkarte, einem Modem usw.), die es dem Computersystem/Server 802 ermöglichen, mit einer oder mehreren anderen Datenverarbeitungseinheiten Daten auszutauschen. Eine solche Kommunikation kann über Ein/Ausgabe- (E/A-) Schnittstellen 822 erfolgen. Darüber hinaus kann das Computersystem/der Server 802 über den Bus 808 mit einem oder mehreren Netzwerken, z.B. einem lokalen Netz (LAN), einem allgemeinen Weitverkehrsnetz (WAN) und/oder einem öffentlichen Netz (z.B. dem Internet) Daten austauschen. Wie gezeigt wird, tauscht ein Netzwerkadapter 824 über den Bus 808 mit den anderen Komponenten des Computersystems/Servers 802 Daten aus. Es versteht sich von selbst, dass andere Hardware- und/oder Software-Komponenten in Verbindung mit dem Computersystem/Server 802 verwendet werden könnten, auch wenn diese nicht gezeigt werden. Zu Beispielen gehören, ohne auf diese beschränkt zu sein: Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, externe Plattenlaufwerkanordnungen, RAID-Systeme, Bandlaufwerke und Speichersysteme zur Datenarchivierung usw.
  • Die Begriffe „eine Ausführungsform“, „Ausführungsform“, „Ausführungsformen“, „die Ausführungsform“, „eine oder mehrere Ausführungsformen“, „einige Ausführungsformen“ und „eine Ausführungsform“ bedeuten „eine oder mehrere (jedoch nicht alle) Ausführungsformen der vorliegenden Erfindung(en)“, sofern nicht ausdrücklich anderweitig angegeben.
  • Die Begriffe „enthaltend“, „aufweisend“, „mit“ und Abwandlungen davon bedeuten „einschließlich, jedoch ohne darauf beschränkt zu sein“, sofern nicht ausdrücklich anderweitig angegeben.
  • Die aufgezählte Auflistung von Elementen bedeutet nicht, dass sich alle oder einige der Elemente gegenseitig ausschließen, sofern nicht ausdrücklich anderweitig angegeben.
  • Die Begriffe „ein/e“ und „der/die/das“ bedeuten „ein/e oder mehrere“, sofern nicht ausdrücklich anderweitig angegeben.
  • Einheiten, die miteinander Daten austauschen, müssen nicht in ständigem Datenaustausch miteinander stehen, sofern nicht ausdrücklich anderweitig angegeben. Außerdem können Einheiten, die miteinander Daten austauschen, direkt oder indirekt über ein oder mehrere Vermittler Daten austauschen.
  • Eine Beschreibung einer Ausführungsform mit mehreren Komponenten, die miteinander Daten austauschen, bedeutet nicht, dass alle derartigen Komponenten benötigt werden. Im Gegenteil wird eine Vielfalt von optionalen Komponenten beschrieben, um die große Vielfalt möglicher Ausführungsformen der vorliegenden Erfindung zu veranschaulichen.
  • Wenn eine einzelne Einheit oder ein einzelner Artikel hierin beschrieben ist, ist ohne Weiteres ersichtlich, dass an Stelle einer einzelnen Einheit/eines einzelnen Artikels mehr als eine Einheit/ein Artikel (unabhängig davon, ob diese zusammenwirken) verwendet werden können. Gleichermaßen ist ohne Weiteres ersichtlich, dass, wenn hierin mehr als eine Einheit oder ein Artikel beschrieben sind (unabhängig davon, ob diese zusammenwirken), an Stelle der/des mehr als einen Einheit oder einen Artikels eine einzelne Einheit/ein einzelner Artikel verwendet werden können oder dass an Stelle der gezeigten Anzahl von Einheiten oder Programmen eine unterschiedliche Anzahl von Einheiten/Artikeln verwendet werden kann. Die Funktionalität und/oder die Merkmale einer Einheit können alternativ durch eine oder mehrere andere Einheiten ausgeführt werden, die nicht ausdrücklich als eine derartige Funktionalität/Merkmale aufweisend beschrieben sind. Folglich müssen andere Ausführungsformen der vorliegenden Erfindung nicht die Einheit selbst enthalten.
  • Die vorstehende Beschreibung verschiedener Ausführungsformen der Erfindung wurde zum Zwecke der Veranschaulichung und Beschreibung aufgeführt. Sie soll nicht erschöpfend sein oder die Erfindung auf die konkret beschriebene Form begrenzen. Angesichts der obigen Lehren sind viele Modifikationen und Abwandlungen möglich. Es ist beabsichtigt, dass der Umfang der Erfindung nicht durch diese ausführliche Beschreibung beschränkt wird, sondern durch die hierzu beigefügten Ansprüche. Die oben aufgeführte(n) Beschreibung, Beispiele und Daten stellen eine vollständige Beschreibung des Herstellens und Verwendens der Zusammensetzung der Erfindung bereit.

Claims (26)

  1. Computerprogrammprodukt zum Verarbeiten eines Befehls zum Freigeben von Speicherplatz, wenn Daten in einem Quellenspeicher in einen Zielspeicher gespiegelt werden, wobei das Computerprogrammprodukt ein durch einen Computer lesbares Speichermedium mit darin gespeicherten Programmanweisungen aufweist, wobei die Programmanweisungen durch einen Prozessor ausführbar sind, um Arbeitsgänge zu veranlassen, wobei die Arbeitsgänge aufweisen: Empfangen eines Befehls zum Freigeben von Speicherplatz, um einen Freigabebereich im Quellenspeicher freizugeben, während geänderte Daten in einer Konsistenzgruppe übertragen werden; Ermitteln, ob eine Übertragungszeit zum Übertragen verbleibender Konsistenzgruppendaten für den Freigabebereich, die nicht übertragen wurden, eine Antwortzeit zum Verarbeiten eines Befehls zum Freigeben von Speicherplatz überschreitet; Übertragen der verbleibenden Konsistenzgruppendaten im Freigabebereich in den Zielspeicher in Reaktion auf Feststellen, dass die Übertragungszeit die Antwortzeit nicht überschreitet; und Freigeben des Freigabebereichs für den Befehl zum Freigeben von Speicherplatz in Reaktion auf Übertragen der Konsistenzgruppendaten im Freigabebereich in den Zielspeicher.
  2. Computerprogrammprodukt nach Anspruch 1, wobei die Übertragungszeit eine Zeitspanne zum Übertragen der verbleibenden Konsistenzgruppendaten für den Freigabebereich unter Verwendung von verfügbarem Speicherbereich in einem Cachespeicher im Quellenspeicher aufweist, und wobei das Übertragen der verbleibenden Konsistenzgruppendaten für den Freigabebereich in den Zielspeicher aufweist: Verwenden des Cachespeichers zum Übertragen von mindestens einem Teil der verbleibenden Konsistenzgruppendaten für den Freigabebereich in Reaktion auf Feststellen, dass die Übertragungszeit die Antwortzeit nicht überschreitet, wobei das Freigeben des Freigabebereichs in Reaktion auf Kopieren der verbleibenden Konsistenzgruppendaten für den Freigabebereich zumindest in den Cachespeicher und/oder den Zielspeicher ausgeführt wird; und Übertragen der verbleibenden Konsistenzgruppendaten für den Freigabebereich aus dem Cachespeicher in den Zielspeicher.
  3. Computerprogramprodukt nach Anspruch 2, wobei das Ermitteln der Übertragungszeit zum Übertragen der verbleibenden Konsistenzgruppendaten für den Freigabebereich unter Verwendung des verfügbaren Speicherbereichs im Cachespeicher aufweist: Ermitteln eines ersten Teils der verbleibenden Konsistenzgruppendaten für den Freigabebereich, der während der Antwortzeit in den verfügbaren Speicherbereich im Cachespeicher übertragbar ist, und eines zweiten Teils der verbleibenden Konsistenzgruppendaten für den Freigabebereich, der die verbleibenden Konsistenzgruppendaten mit Ausnahme des ersten Teils der verbleibenden Konsistenzgruppendaten aufweist; und Ermitteln, ob eine Zeitspanne zum Übertragen des zweiten Teils der verbleibenden Konsistenzgruppendaten für den Freigabebereich in den Zielspeicher die Antwortzeit überschreitet, wobei die Übertragungszeit die Zeitspanne zum Übertragen des zweiten Teils der verbliebenden Konsistenzgruppendaten für den Freigabebereich aufweist überschreitet die Antwortzeit nicht.
  4. Computerprogrammprodukt nach Anspruch 3, wobei der erste Teil der verbleibenden Konsistenzgruppendaten für den Freigabebereich eine Datenmenge aufweist, die während der Antwortzeit in den Cachespeicher übertragbar ist, während verbleibende Konsistenzgruppendaten für den Freigabebereich, die in den Cachespeicher übertragen wurden, während der Antwortzeit aus dem Cachespeicher in den Zielspeicher übertragen werden, wobei der erste Teil der verbleibenden Konsistenzgruppendaten für den Freigabebereich von einer Cachespeichergrenze und einer Cachespeicher-Übertragungsrate aus dem Cachespeicher in den Zielspeicher während der Antwortzeit abhängig ist.
  5. Computerprogrammprodukt nach Anspruch 3, wobei, wenn die Übertragungszeit die Antwortzeit nicht überschreitet, das Übertragen der verbleibenden Konsistenzgruppendaten für den Freigabebereich aufweist: Ermitteln des ersten und des zweiten Teils, um die Übertragungszeit auf ein Minimum herabzusetzen; Kopieren des ersten Teils der verbleibenden Konsistenzgruppendaten in den Cachespeicher; und Übertagen des zweiten Teils der verbleibenden Konsistenzgruppendaten für den Freigabebereich in den Zielspeicher.
  6. Computerprogrammprodukt nach Anspruch 5, wobei sich der Quellenspeicher in einem ersten Speichersystem und der Zielspeicher in einem zweiten Speichersystem befindet, wobei das Übertragen des zweiten Teils der verbleibenden Konsistenzgruppendaten für den Freigabebereich Übertragen des zweiten Teils aus einem Speicheradapter im ersten Speichersystem an einen Netzwerkadapter im zweiten Speichersystem aufweist, ohne den Cachespeicher zu verwenden.
  7. Computerprogrammprodukt nach Anspruch 6, wobei die Zeitspanne zum Übertragen des zweiten Teils der verbleibenden Konsistenzgruppendaten für den Freigabebereich Dividieren einer Menge des zweiten Teils der verbleibenden Konsistenzgruppendaten für den Freigabebereich durch eine geschätzte Übertragungsrate aufweist, die eine geschätzte Zeit zum Zugreifen auf eine festgelegte Menge von Daten aus dem ersten Speichersystem und zum Übertragen durch den Speicheradapter und den Netzwerkadapter in das zweite Speichersystem aufweist.
  8. Computerprogrammprodukt nach Anspruch 1, wobei in Reaktion auf Feststellen, dass eine Zeitspanne zum Übertragen der verbleibenden Konsistenzgruppendaten für den Freigabebereich die Antwortzeit überschreitet, ausgeführt wird: Ermitteln, ob eine Zeitspanne, seit der eine letzte Konsistenzgruppe ausgeführt und in den Zielspeicher kopiert wurde, kürzer als ein Zielzeitraum für den Wiederherstellungspunkt ist; Aufheben der gerade gebildeten Konsistenzgruppe in Reaktion auf Feststellen, dass die Zeitspanne seit Ausführen der letzten Konsistenzgruppe kürzer als der Zielzeitraum für den Wiederherstellungspunkt ist; und Freigeben des Freigabebereichs für einen Befehl zum Freigeben von Speicherplatz in Reaktion auf Aufheben der Konsistenzgruppe.
  9. Computerprogrammprodukt nach Anspruch 1, wobei die Arbeitsgänge außerdem aufweisen: Anzeigen von Prioritäten für die Antwortzeit, einen Zielzeitraum für den Wiederherstellungspunkt und eine Cachespeichergrenze, wobei die Cachespeichergrenze eine maximale Menge an Speicherplatz im Cachespeicher anzeigt, der zum Übertragen von Daten für eine Konsistenzgruppe verwendbar ist; und in Reaktion auf Feststellen, dass die Übertragungszeit unter Verwendung eines ersten verfügbaren Speicherbereichs im Cachespeicher, wie er durch die Cachespeichergrenze festgelegt ist, die Antwortzeit überschreitet und eine Zeitspanne seit Ausführen einer letzten Konsistenzgruppe den Zielzeitraum für den Wiederherstellungspunkt überschreitet, Verwenden der Prioritäten zum Ermitteln, ob ausgeführt werden muss: Aufheben der Konsistenzgruppe; Übertragen eines ersten Teils der verbleibenden Konsistenzgruppendaten für den Freigabebereich in den Zielspeicher unter Verwendung des ersten verfügbaren Speicherbereichs im Cachespeicher und Übertragen eines zweiten Teils der verbleibenden Konsistenzgruppendaten für den Freigabebereich, der die verbleibenden Konsistenzgruppendaten für den Freigabebereich mit Ausnahme des ersten Teils der verbleibenden Konsistenzgruppendaten aufweist, in den Zielspeicher; und/oder Verwenden eines zweiten verfügbaren Speicherbereichs im Cachespeicher über die Cachespeichergrenze hinaus zum Übertragen des ersten Teils der verbleibenden Konsistenzgruppendaten für den Freigabebereich in den Cachespeicher.
  10. Computerprogrammprodukt nach Anspruch 9, wobei das Verwenden der Prioritäten aufweist: in Reaktion darauf, dass der Zielzeitraum für den Wiederherstellungspunkt eine höhere Priorität als die Cachespeichergrenze hat und die Cachespeichergrenze eine höhere Priorität als die Antwortzeit hat, Verwenden des ersten verfügbaren Speicherbereichs im Cachespeicher zum Übertragen des ersten Teils der verbleibenden Konsistenzgruppendaten für den Freigabebereich in den Zielspeicher und Übertragen des zweiten Teils der verbleibenden Konsistenzgruppendaten für den Freigabebereich in den Zielspeicher; und in Reaktion darauf, dass der Zielzeitraum für den Wiederherstellungspunkt eine höhere Priorität als die Antwortzeit hat und die Antwortzeit eine höhere Priorität als die Cachespeichergrenze hat, Verwenden des zweiten verfügbaren Speicherbereichs im Cachespeicher über die Cachespeichergrenze hinaus zum Übertragen des ersten Teils der verbleibenden Konsistenzgruppendaten für den Freigabebereich in den Cachespeicher.
  11. Computerprogrammprodukt nach Anspruch 9, wobei das Verwenden der Prioritäten aufweist: in Reaktion darauf, dass die Cachespeichergrenze eine höhere Priorität als der Zielzeitraum für den Wiederherstellungspunkt hat und der Zielzeitraum für den Wiederherstellungspunkt eine höhere Priorität als die Antwortzeit hat, Übertragen des ersten Teils der verbleibenden Konsistenzgruppendaten für den Freigabebereich unter Verwendung des ersten verfügbaren Speicherbereichs im Cachespeicher; und in Reaktion darauf, dass die Cachespeichergrenze eine höhere Priorität als die Antwortzeit hat und die Antwortzeit eine höhere Priorität als der Zielzeitraum für den Wiederherstellungspunkt hat, Fehlschlagen der Konsistenzgruppe und Ausführen des Freigebens des Freigabebereichs in Reaktion auf Fehlschlagen der Konsistenzgruppe.
  12. Computerprogrammprodukt nach Anspruch 9, wobei das Verwenden der Prioritäten aufweist: in Reaktion darauf, dass die Antwortzeit eine höhere Priorität als der Zielzeitraum für den Wiederherstellungspunkt hat und der Zielzeitraum für den Wiederherstellungspunkt eine höhere Priorität als die Cachespeichergrenze hat, Übertragen des ersten Teils der verbleibenden Konsistenzgruppendaten für den Freigabebereich in den zweiten verfügbaren Speicherbereich im Cachespeicher; und in Reaktion darauf, dass die Antwortzeit eine höhere Priorität als die Cachespeichergrenze hat und die Cachespeichergrenze eine höhere Priorität als der Zielzeitraum für den Wiederherstellungspunkt hat, Fehlschlagen der Konsistenzgruppe und Ausführen des Freigebens des Freigabebereichs in Reaktion auf Fehlschlagen der Konsistenzgruppe.
  13. Computerprogrammprodukt nach Anspruch 9, wobei das Verwenden der Prioritäten aufweist: in Reaktion darauf, dass die Cachespeichergrenze eine niedrigste der Prioritäten hat, Kopieren des ersten Teils der verbleibenden Konsistenzgruppendaten für den Freigabebereich in den Cachespeicher, wobei die Cachespeichergrenze überschritten wird, wobei der zweite Teil der verbleibenden Konsistenzgruppendaten für den Freigabebereich ; in Reaktion darauf, dass die Antwortzeit eine niedrigste der Prioritäten hat, Kopieren des ersten Teils der verbleibenden Konsistenzgruppendaten für den Freigabebereich innerhalb der Cachespeichergrenze in den Cachespeicher und Übertragen eines zweiten Teils der verbleibenden Konsistenzgruppendaten für den Freigabebereich, der die Cachespeichergrenze überschreitet, in den Zielspeicher; und in Reaktion darauf, dass der Zielzeitraum für den Wiederherstellungspunkt eine niedrigste der Prioritäten hat, Fehlschlagen der Konsistenzgruppe und Ausführen des Freigebens des Freigabebereichs in Reaktion auf Fehlschlagen der Konsistenzgruppe.
  14. System zum Verarbeiten eines Befehls zum Freigeben von Speicherplatz, wenn Daten in einem Quellenspeicher in einen Zielspeicher gespiegelt werden, wobei das System aufweist: einen Prozessor; und ein durch einen Computer lesbares Speichermedium mit darin gespeicherten Programmanweisungen, wobei die Programmanweisungen durch den Prozessor ausführbar sind, um Arbeitsgänge zu veranlassen, wobei die Arbeitsgänge aufweisen: Empfangen eines Befehls zum Freigeben von Speicherplatz, um einen Freigabebereich im Quellenspeicher freizugeben, während geänderte Daten in einer Konsistenzgruppe übertragen werden; Ermitteln, ob eine Übertragungszeit zum Übertragen verbleibender Konsistenzgruppendaten für den Freigabebereich, die nicht übertragen wurden, eine Antwortzeit zum Verarbeiten eines Befehls zum Freigeben von Speicherplatz überschreitet; Übertragen der verbleibenden Konsistenzgruppendaten im Freigabebereich in den Zielspeicher in Reaktion auf Feststellen, dass die Übertragungszeit die Antwortzeit nicht überschreitet; und Freigeben des Freigabebereichs für den Befehl zum Freigeben von Speicherplatz in Reaktion auf Übertragen der Konsistenzgruppendaten im Freigabebereich in den Zielspeicher.
  15. System nach Anspruch 14, wobei die Übertragungszeit eine Zeitspanne zum Übertragen der verbleibenden Konsistenzgruppendaten für den Freigabebereich unter Verwendung von verfügbarem Speicherbereich in einem Cachespeicher im Quellenspeicher aufweist, und wobei das Übertragen der verbleibenden Konsistenzgruppendaten für den Freigabebereich in den Zielspeicher aufweist: Verwenden des Cachespeichers zum Übertragen von mindestens einem Teil der verbleibenden Konsistenzgruppendaten für den Freigabebereich in Reaktion auf Feststellen, dass die Übertragungszeit die Antwortzeit nicht überschreitet, wobei das Freigeben des Freigabebereichs in Reaktion auf Kopieren der verbleibenden Konsistenzgruppendaten für den Freigabebereich zumindest in den Cachespeicher und/oder den Zielspeicher ausgeführt wird; und Übertragen der verbleibenden Konsistenzgruppendaten für den Freigabebereich aus dem Cachespeicher in den Zielspeicher.
  16. System nach Anspruch 15, wobei das Ermitteln der Übertragungszeit zum Übertragen der verbleibenden Konsistenzgruppendaten für den Freigabebereich unter Verwendung des verfügbaren Speicherbereichs im Cachespeicher aufweist: Ermitteln eines ersten Teils der verbleibenden Konsistenzgruppendaten für den Freigabebereich, der während der Antwortzeit in den verfügbaren Speicherbereich im Cachespeicher übertragbar ist, und eines zweiten Teils der verbleibenden Konsistenzgruppendaten für den Freigabebereich, der die verbleibenden Konsistenzgruppendaten mit Ausnahme des ersten Teils der verbleibenden Konsistenzgruppendaten aufweist; und Ermitteln, ob eine Zeitspanne zum Übertragen des zweiten Teils der verbleibenden Konsistenzgruppendaten für den Freigabebereich in den Zielspeicher die Antwortzeit überschreitet, wobei die Übertragungszeit die Zeitspanne zum Übertragen des zweiten Teils der verbleibenden Konsistenzgruppendaten für den Freigabebereich aufweist überschreitet die Antwortzeit nicht.
  17. System nach Anspruch 16, wobei, wenn die Übertragungszeit die Antwortzeit nicht überschreitet, das Übertragen der verbleibenden Konsistenzgruppendaten für den Freigabebereich aufweist: Ermitteln des ersten Teils und des zweiten Teils, um die Übertragungszeit auf ein Minimum herabzusetzen; Kopieren des ersten Teils der verbleibenden Konsistenzgruppendaten in den Cachespeicher; und Übertagen des zweiten Teils der verbleibenden Konsistenzgruppendaten für den Freigabebereich in den Zielspeicher.
  18. System nach Anspruch 14, wobei in Reaktion auf Feststellen, dass eine Zeitspanne zum Übertragen der verbleibenden Konsistenzgruppendaten für den Freigabebereich die Antwortzeit überschreitet, ausgeführt wird: Ermitteln, ob eine Zeitspanne, seit der eine letzte Konsistenzgruppe ausgeführt und in den Zielspeicher kopiert wurde, kürzer als ein Zielzeitraum für den Wiederherstellungspunkt ist; Aufheben der gerade gebildeten Konsistenzgruppe in Reaktion auf Feststellen, dass die Zeitspanne seit Ausführen einer letzten Konsistenzgruppe kürzer als der Zielzeitraum für den Wiederherstellungspunkt ist; und Freigeben des Freigabebereichs für einen Befehl zum Freigeben von Speicherplatz in Reaktion auf Aufheben der Konsistenzgruppe.
  19. System nach Anspruch 14, wobei die Arbeitsgänge außerdem aufweisen: Anzeigen von Prioritäten für die Antwortzeit, einen Zielzeitraum für den Wiederherstellungspunkt und eine Cachespeichergrenze, wobei die Cachespeichergrenze eine maximale Menge an Speicherplatz im Cachespeicher anzeigt, der zum Übertragen von Daten für eine Konsistenzgruppe verwendbar ist; und in Reaktion auf Feststellen, dass die Übertragungszeit unter Verwendung eines ersten verfügbaren Speicherbereichs im Cachespeicher, wie er durch die Cachespeichergrenze festgelegt ist, die Antwortzeit überschreitet und eine Zeitspanne seit Ausführen einer letzten Konsistenzgruppe den Zielzeitraum für den Wiederherstellungspunkt überschreitet, Verwenden der Prioritäten zum Ermitteln, ob ausgeführt werden muss: Aufheben der Konsistenzgruppe; Übertragen eines ersten Teils der verbleibenden Konsistenzgruppendaten für den Freigabebereich in den Zielspeicher unter Verwendung des ersten verfügbaren Speicherbereichs im Cachespeicher und Übertragen eines zweiten Teils der verbleibenden Konsistenzgruppendaten für den Freigabebereich, der die verbleibenden Konsistenzgruppendaten für den Freigabebereich mit Ausnahme des ersten Teils der verbleibenden Konsistenzgruppendaten aufweist, in den Zielspeicher; und/oder Verwenden eines zweiten verfügbaren Speicherbereichs im Cachespeicher über die Cachespeichergrenze hinaus zum Übertragen des ersten Teils der verbleibenden Konsistenzgruppendaten für den Freigabebereich in den Cachespeicher.
  20. Verfahren zum Verarbeiten eines Befehls zum Freigeben von Speicherplatz in einem Datenverarbeitungssystem, wenn Daten in einem Quellenspeicher in einen Zielspeicher gespiegelt werden, wobei das Computerprogrammprodukt ein durch einen Computer lesbares Speichermedium mit darin gespeicherten Programmanweisungen aufweist, wobei die Programmanweisungen durch einen Prozessor ausführbar sind, um Arbeitsgänge zu veranlassen, die aufweisen: Empfangen eines Befehls zum Freigeben von Speicherplatz, um einen Freigabebereich im Quellenspeicher freizugeben, während geänderte Daten in einer Konsistenzgruppe übertragen werden; Ermitteln, ob eine Übertragungszeit zum Übertragen verbleibender Konsistenzgruppendaten für den Freigabebereich, die nicht übertragen wurden, eine Antwortzeit zum Verarbeiten eines Befehls zum Freigeben von Speicherplatz überschreitet; Übertragen der verbleibenden Konsistenzgruppendaten im Freigabebereich in den Zielspeicher in Reaktion auf Feststellen, dass die Übertragungszeit die Antwortzeit nicht überschreitet; und Freigeben des Freigabebereichs für den Befehl zum Freigeben von Speicherplatz in Reaktion auf Übertragen der Konsistenzgruppendaten im Freigabebereich in den Zielspeicher.
  21. Verfahren nach Anspruch 20, wobei die Übertragungszeit eine Zeitspanne zum Übertragen der verbleibenden Konsistenzgruppendaten für den Freigabebereich unter Verwendung von verfügbarem Speicherbereich in einem Cachespeicher im Quellenspeicher aufweist, und wobei das Übertragen der verbleibenden Konsistenzgruppendaten für den Freigabebereich in den Zielspeicher aufweist: Verwenden des Cachespeichers zum Übertragen von mindestens einem Teil der verbleibenden Konsistenzgruppendaten für den Freigabebereich in Reaktion auf Feststellen, dass die Übertragungszeit die Antwortzeit nicht überschreitet, wobei das Freigeben des Freigabebereichs in Reaktion auf Kopieren der verbleibenden Konsistenzgruppendaten für den Freigabebereich zumindest in den Cachespeicher und/oder den Zielspeicher ausgeführt wird; und Übertragen der verbleibenden Konsistenzgruppendaten für den Freigabebereich aus dem Cachespeicher in den Zielspeicher.
  22. Verfahren nach Anspruch 21, wobei das Ermitteln der Übertragungszeit zum Übertragen der verbleibenden Konsistenzgruppendaten für den Freigabebereich unter Verwendung des verfügbaren Speicherbereichs im Cachespeicher aufweist: Ermitteln eines ersten Teils der verbleibenden Konsistenzgruppendaten für den Freigabebereich, der während der Antwortzeit in den verfügbaren Speicherbereich im Cachespeicher übertragbar ist, und eines zweiten Teils der verbleibenden Konsistenzgruppendaten für den Freigabebereich, der die verbleibenden Konsistenzgruppendaten mit Ausnahme des ersten Teils der verbleibenden Konsistenzgruppendaten aufweist; und Ermitteln, ob eine Zeitspanne zum Übertragen des zweiten Teils der verbleibenden Konsistenzgruppendaten für den Freigabebereich in den Zielspeicher die Antwortzeit überschreitet, wobei die Übertragungszeit die Zeitspanne zum Übertragen des zweiten Teils der verbleibenden Konsistenzgruppendaten für den Freigabebereich aufweist überschreitet die Antwortzeit nicht.
  23. Verfahren nach Anspruch 22, wobei, wenn die Übertragungszeit die Antwortzeit nicht überschreitet, das Übertragen der verbleibenden Konsistenzgruppendaten für den Freigabebereich aufweist: Ermitteln des ersten Teils und des zweiten Teils, um die Übertragungszeit auf ein Minimum herabzusetzen; Kopieren des ersten Teils der verbleibenden Konsistenzgruppendaten in den Cachespeicher; und Übertagen des zweiten Teils der verbleibenden Konsistenzgruppendaten für den Freigabebereich in den Zielspeicher.
  24. Verfahren nach Anspruch 20, wobei in Reaktion auf Feststellen, dass eine Zeitspanne zum Übertragen der verbleibenden Konsistenzgruppendaten für den Freigabebereich die Antwortzeit überschreitet, ausgeführt wird: Ermitteln, ob eine Zeitspanne, seit der eine letzte Konsistenzgruppe ausgeführt und in den Zielspeicher kopiert wurde, kürzer als ein Zielzeitraum für den Wiederherstellungspunkt ist; Aufheben der gerade gebildeten Konsistenzgruppe in Reaktion auf Feststellen, dass die Zeitspanne seit Ausführen der letzten Konsistenzgruppe kürzer als der Zielzeitraum für den Wiederherstellungspunkt ist; und Freigeben des Freigabebereichs für einen Befehl zum Freigeben von Speicherplatz in Reaktion auf Aufheben der Konsistenzgruppe.
  25. Verfahren nach Anspruch 20, das außerdem aufweist: Anzeigen von Prioritäten für die Antwortzeit, einen Zielzeitraum für den Wiederherstellungspunkt und eine Cachespeichergrenze, wobei die Cachespeichergrenze eine maximale Menge an Speicherplatz im Cachespeicher anzeigt, die zum Übertragen von Daten für eine Konsistenzgruppe verwendbar ist; und in Reaktion auf Feststellen, dass die Übertragungszeit unter Verwendung eines ersten verfügbaren Speicherbereichs im Cachespeicher, wie er durch die Cachespeichergrenze festgelegt ist, die Antwortzeit überschreitet und eine Zeitspanne seit Ausführen einer letzten Konsistenzgruppe den Zielzeitraum für den Wiederherstellungspunkt überschreitet, Verwenden der Prioritäten zum Ermitteln, ob ausgeführt werden muss: Aufheben der Konsistenzgruppe; Übertragen eines ersten Teils der verbleibenden Konsistenzgruppendaten für den Freigabebereich in den Zielspeicher unter Verwendung des ersten verfügbaren Speicherbereichs im Cachespeicher und Übertragen eines zweiten Teils der verbleibenden Konsistenzgruppendaten für den Freigabebereich, der die verbleibenden Konsistenzgruppendaten für den Freigabebereich mit Ausnahme des ersten Teils der verbleibenden Konsistenzgruppendaten aufweist, in den Zielspeicher; und/oder Verwenden eines zweiten verfügbaren Speicherbereichs im Cachespeicher über die Cachespeichergrenze hinaus zum Übertragen des ersten Teils der verbleibenden Konsistenzgruppendaten für den Freigabebereich in den Cachespeicher.
  26. Computerprogramm zum Verarbeiten eines Befehls zum Freigeben von Speicherplatz in einem Datenverarbeitungssystem, wenn Daten in einem Quellenspeicher in einen Zielspeicher gespiegelt werden, aufweisend: Empfangen eines Befehls zum Freigeben von Speicherplatz, um einen Freigabebereich im Quellenspeicher freizugeben, während geänderte Daten in einer Konsistenzgruppe übertragen werden; Ermitteln, ob eine Übertragungszeit zum Übertragen verbleibender Konsistenzgruppendaten in der Konsistenzgruppe für den Freigabebereich, die nicht übertragen wurden, eine Antwortzeit zum Verarbeiten eines Befehls zum Freigeben von Speicherplatz überschreitet; Übertragen der verbleibenden Konsistenzgruppendaten im Freigabebereich in den Zielspeicher in Reaktion auf Feststellen, dass die Übertragungszeit die Antwortzeit nicht überschreitet; und Freigeben des Freigabebereichs für den Befehl zum Freigeben von Speicherplatz in Reaktion auf Übertragen der Konsistenzgruppendaten im Freigabebereich in den Zielspeicher.
DE112018000900.9T 2017-05-24 2018-05-22 Verarbeiten eines Befehls zum Freigeben von Speicherplatz in einem Computersystem Pending DE112018000900T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/604,433 2017-05-24
US15/604,433 US10528256B2 (en) 2017-05-24 2017-05-24 Processing a space release command to free release space in a consistency group
PCT/IB2018/053609 WO2018215929A1 (en) 2017-05-24 2018-05-22 Processing a space release command in a computer system

Publications (1)

Publication Number Publication Date
DE112018000900T5 true DE112018000900T5 (de) 2019-10-31

Family

ID=64396414

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112018000900.9T Pending DE112018000900T5 (de) 2017-05-24 2018-05-22 Verarbeiten eines Befehls zum Freigeben von Speicherplatz in einem Computersystem

Country Status (5)

Country Link
US (2) US10528256B2 (de)
JP (1) JP7139358B2 (de)
DE (1) DE112018000900T5 (de)
GB (1) GB2577022B (de)
WO (1) WO2018215929A1 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10528256B2 (en) 2017-05-24 2020-01-07 International Business Machines Corporation Processing a space release command to free release space in a consistency group
CN110413200B (zh) * 2018-04-28 2023-06-09 伊姆西Ip控股有限责任公司 数据同步的方法、设备和计算机程序产品
US11644997B2 (en) 2020-08-06 2023-05-09 International Business Machines Corporation Releasing data storage tracks while maintaining logical corruption protection
US11575614B2 (en) 2021-03-31 2023-02-07 International Business Machines Corporation Managing input/output priority based on response time
CN113126923B (zh) * 2021-04-21 2022-05-27 山东英信计算机技术有限公司 分布式对象存储的追加上传方法、系统、设备及存储介质

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5935207A (en) 1996-06-03 1999-08-10 Webtv Networks, Inc. Method and apparatus for providing remote site administrators with user hits on mirrored web sites
AU2002366404A1 (en) 2001-12-14 2003-06-30 Koninklijke Philips Electronics N.V. Data processing system
US7246258B2 (en) 2004-04-28 2007-07-17 Lenovo (Singapore) Pte. Ltd. Minimizing resynchronization time after backup system failures in an appliance-based business continuance architecture
US7430646B2 (en) 2006-03-31 2008-09-30 Emc Corporation Planned switchover in connection with triangular asynchronous replication
JP5057366B2 (ja) 2006-10-30 2012-10-24 株式会社日立製作所 情報システム及び情報システムのデータ転送方法
WO2008101316A1 (en) 2007-02-22 2008-08-28 Mosaid Technologies Incorporated Apparatus and method for using a page buffer of a memory device as a temporary cache
US7873809B2 (en) 2007-03-29 2011-01-18 Hitachi, Ltd. Method and apparatus for de-duplication after mirror operation
US8392370B1 (en) * 2008-03-28 2013-03-05 Emc Corporation Managing data on data storage systems
US8214341B2 (en) 2008-03-31 2012-07-03 International Business Machines Corporation Determining when to apply writes received to data units being transferred to a secondary storage
WO2010075407A1 (en) 2008-12-22 2010-07-01 Google Inc. Asynchronous distributed de-duplication for replicated content addressable storage clusters
JP5104817B2 (ja) * 2009-06-30 2012-12-19 富士通株式会社 ストレージシステム、ストレージ制御装置及び方法
CN101866307A (zh) 2010-06-24 2010-10-20 杭州华三通信技术有限公司 一种基于镜像技术的数据存储方法及装置
US8392653B2 (en) * 2010-08-18 2013-03-05 International Business Machines Corporation Methods and systems for releasing and re-allocating storage segments in a storage volume
CN102012793B (zh) 2010-11-12 2013-01-23 浪潮(北京)电子信息产业有限公司 镜像实现方法和装置
US8706946B2 (en) 2011-02-11 2014-04-22 International Business Machines Corporation Extender storage pool system
JP5915378B2 (ja) * 2012-05-24 2016-05-11 富士通株式会社 ストレージ装置およびストレージ装置の制御方法
JP6011125B2 (ja) * 2012-08-02 2016-10-19 富士通株式会社 ストレージ装置及びストレージシステム
CN103631633B (zh) 2012-08-20 2017-04-12 中国电信股份有限公司 虚拟机全系统在线迁移方法、装置与系统
CN103729304B (zh) 2012-10-11 2017-03-15 腾讯科技(深圳)有限公司 数据处理方法及装置
US9311014B2 (en) 2012-11-29 2016-04-12 Infinidat Ltd. Storage system and methods of mapping addresses of snapshot families
US9417917B1 (en) 2012-12-14 2016-08-16 Amazon Technologies, Inc. Equitable resource allocation for storage object deletion
US10275276B2 (en) 2013-08-19 2019-04-30 International Business Machines Corporation Migrating jobs from a source server from which data is migrated to a target server to which the data is migrated
US9501240B2 (en) 2014-02-21 2016-11-22 International Business Machines Corporation Efficient free-space management of multi-target peer-to-peer remote copy (PPRC) modified sectors bitmap in bind segments
JP2015162091A (ja) * 2014-02-27 2015-09-07 富士通株式会社 記憶制御装置、ストレージシステム、記憶制御方法、および記憶制御プログラム
CN105955841B (zh) 2016-04-18 2018-09-21 华中科技大学 一种raid双控制器利用磁盘进行写缓存镜像的方法
US10482066B2 (en) * 2016-04-28 2019-11-19 Netapp Inc. Gransets for managing consistency groups of dispersed storage items
US10528256B2 (en) 2017-05-24 2020-01-07 International Business Machines Corporation Processing a space release command to free release space in a consistency group

Also Published As

Publication number Publication date
GB201918847D0 (en) 2020-02-05
US11079935B2 (en) 2021-08-03
GB2577022B (en) 2020-08-12
GB2577022A (en) 2020-03-11
JP2020521247A (ja) 2020-07-16
US20200050371A1 (en) 2020-02-13
JP7139358B2 (ja) 2022-09-20
US20180341405A1 (en) 2018-11-29
WO2018215929A1 (en) 2018-11-29
US10528256B2 (en) 2020-01-07

Similar Documents

Publication Publication Date Title
DE102016103359B4 (de) Singleton-cachespeicher-verwaltungsprotokoll für hierarchische virtualisierte speichersysteme
DE112016003120B4 (de) Umleiten einer Kopie beim Schreiben
DE112018000900T5 (de) Verarbeiten eines Befehls zum Freigeben von Speicherplatz in einem Computersystem
DE112018002951B4 (de) Verwenden eines spurformatcodes in einem cache-steuerblock für eine spur in einem cache, um lese- und schreibanforderungen in bezug auf die spur im cache zu verarbeiten
DE112011104419B4 (de) Bereichsmigration für gepaarte Speicherung
DE112013001421B4 (de) Auf Richtlinien beruhendes Verwalten von Speicherfunktionen in Datenreplikationsumgebungen
DE112010004931B4 (de) Mehrphasige Wiederherstellung von Dateisystemen mit Selektiver Bedarfsweiser Verfügbarkeit von Daten
DE112018003084T5 (de) Asynchrones lokales und entfernt angeordnetes erzeugen von konsistenten zeitpunkt-momentkopien in konsistenzgruppen
DE10062063B4 (de) Verfahren, System, Computerprogramm-Produkt und Speichervorrichtung zur Steuerung einer Warteschlange von Anforderungen unterschiedlicher Priorität
DE102016119298B4 (de) Zeitpunktkopieren mit klonen von ketten
DE112015000343T5 (de) Erstellen einer Wiederherstellungskopie von einer Quelldaten-Kopie in einem Repository, das Quelldaten an verschiedenen Zeitpunkten aufweist
DE112018003524T5 (de) Dynamische datenverlagerung unter verwendung von speicherbänken auf cloud-grundlage
DE112019000992T5 (de) Verwaltung virtueller Speicherlaufwerke in einem Datenspeichersystem
DE112012001162T5 (de) Defragmentierung von Datenspeicherpools
DE112018006769T5 (de) Erweiterte zwischenspeicherzuweisung basierend auf virtuellen knotenressourcen
DE112018005135T5 (de) Thin provisioning unter verwendung von speicherbänken auf cloud-grundlage
DE112015000222T5 (de) Zusammenführen von mehreren Zeitpunktkopien zu einer zusammengeführten Zeitpunktkopie
DE112018005121T5 (de) Speichersystem unter verwendung von cloud-speicher als eine speicherbank
DE112013000650T5 (de) Datenzwischenspeicherungsbereich
DE102021127254A1 (de) Inhaltssensitives Auswählen von Knoten zum Erstellen von Containern
DE112012000282T5 (de) Anwendungswiederherstellung in einem Dateisystem
DE112018005768B4 (de) Copy-source-to-target-verwaltung in einem datenspeichersystem
DE112017005772T5 (de) Zeitpunktgesteuerte sicherungen über einen speicher-controller in eine objektspeicher-cloud
DE112019005392T5 (de) Steigern von datenleistung durch transferieren von daten zwischen speicherebenen unter verwendung von arbeitslastmerkmalen
DE112018004138T5 (de) Asynchrone aktualisierung von metadatenspuren in reaktion auf einen mittels einer e/a-operation über eine busschnittstelle erzeugten cachetreffer

Legal Events

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

Free format text: PREVIOUS MAIN CLASS: G06F0009440000

Ipc: G06F0012020000

R084 Declaration of willingness to licence