-
Technisches
Gebiet
-
Die
vorliegende Erfindung betrifft inkrementelles virtuelles Kopieren.
-
Grundlagen
-
Datenverarbeitungssysteme
beinhalten oftmals einen oder mehrere Hostcomputer ("Hosts") zur Verarbeitung
von Daten und zur Ausführung
von Anwendungsprogrammen, Einheiten mit Direktzugriffspeicher (DASDs)
zur Speicherung von Daten und eine Speichersteuereinheit zur Steuerung
der Datenübertragung
zwischen den Hosts und der DASD. Speichersteuereinheiten, die auch
als Steuereinheiten oder Speicherdirektoren (storage directors)
bezeichnet werden, verwalten den Zugriff auf einen Speicherbereich,
der aus zahlreichen in einer Schleifenarchitektur verbundenen Festplattenlaufwerken besteht,
die auch als Einheit mit Direktzugriffspeicher (DASD) bezeichnet
werden. Hosts können
durch die Speichersteuereinheit Ein-/Ausgabe- (E/A-) Anforderungen
an den Speicherbereich übertragen.
-
In
vielen Systemen können
Daten in einer Speichereinheit, beispielsweise einer DASD, in dieselbe
oder eine andere Speichereinheit kopiert werden, so dass der Zugriff
auf Datenträger
von zwei verschiedenen Einheiten bereitgestellt werden kann. Eine
Momentankopie (point-in-time copy) beinhaltet das physische Kopieren
aller Daten von Quellendatenträgern
(source volumes) in Zieldatenträger
(target volumes), so dass der Zieldatenträger eine Kopie der Daten von
einem bestimmten Zeitpunkt hat. Eine Momentankopie kann auch ausgeführt werden,
indem eine Kopie der Daten logisch erstellt wird und anschließend nur
bei Bedarf Daten kopiert werden, wodurch der physische Kopiervorgang
in der Tat verzögert
wird. Dieser logische Kopiervorgang wird ausgeführt, um den Zeitraum, während dessen
auf die Ziel- und Quellendatenträger
nicht zugegriffen werden kann, so kurz wie möglich zu halten.
-
Eine
Anzahl von Teilsystemen von Einheiten mit Direktzugriffspeicher
(DASD) können
Vorgänge einer "virtuellen Sofortkopie" ("instant virtual copy" operations) ausführen, die
auch als "schnelle
Replikationsfunktionen" ("fast replicate functions") bezeichnet werden.
Virtuelle Sofortkopiervorgänge
arbeiten mit der Änderung
von Metadaten, beispielsweise Beziehungstabellen oder Zeigern, um
ein Quellendatenobjekt sowohl als Original als auch als Kopie zu
behandeln. Auf die Kopieranforderung eines Hosts hin meldet das
Speicherteilsystem sofort die Erzeugung der Kopie, ohne eine physische
Kopie der Daten erstellt zu haben. Es wurde lediglich eine "virtuelle" Kopie erzeugt, und
das Fehlen einer zusätzlichen
physischen Kopie ist dem Host vollkommen unbekannt.
-
Wenn
das Speicherteilsystem zu einem späteren Zeitpunkt Aktualisierungen
am Original oder an der Kopie empfängt, werden die Aktualisierungen
getrennt gespeichert und erhalten lediglich einen Querverweis auf
das aktualisierte Datenobjekt.
-
An
dieser Stelle beginnen die Original- und die Kopiedatenobjekte voneinander
abzuweichen. Der anfängliche
Vorteil besteht darin, dass die virtuelle Sofortkopie fast unmittelbar
erfolgt, wobei sie viel schneller als ein normaler physischer Kopiervorgang ausgeführt wird. Dadurch werden der Host und das Speicherteilsystem
frei für
die Ausführung
anderer Tasks. Der Host oder das Speicherteilsystem können sogar
während
der Hintergrundverarbeitung oder zu einem anderen Zeitpunkt mit
der Erzeugung einer tatsächlichen
physischen Kopie des ursprünglichen
Datenobjekts fortfahren.
-
Ein
solcher virtueller Kopiervorgang ist als FlashCopyTM-Vorgang bekannt.
Ein FlashCopyTM-Vorgang beinhaltet die Einrichtung
einer logischen Momentanbeziehung (point-in-time relationship) zwischen
Quellen- und Zieldatenträgern
in denselben oder in verschiedenen Einheiten. Der FlashCopyTM-Vorgang
garantiert, dass eine Spur sich auf der Quellenplatte befindet,
bis sie in einer FlashCopyTM-Beziehung in
ihrer Position auf der Zielplatte festgeschrieben wird. Zum Verwalten
von Daten zu allen vorhandenen FlashCopyTM-Beziehungen im Teilsystem
wird eine Beziehungstabelle verwaltet. Während der Einrichtungsphase
einer FlashCopyTM-Beziehung wird ein Eintrag in der Quellen-
und der Zielbeziehungstabelle für
die Quelle und das Ziel aufgezeichnet, die an der eingerichteten
FlashCopyTM beteiligt sind. Jeder hinzugefügte Eintrag
enthält
alle notwendigen Daten bezüglich
der FlashCopyTM-Beziehung. Beide Einträge für die Beziehung
werden aus den Beziehungstabellen entfernt, wenn alle FlashCopyTM-Spuren aus dem Quellenspeicherbereich
physisch in die Zielspeicherbereiche kopiert wurden oder wenn ein Entnahmebefehl
(withdraw command) empfangen wird. In bestimmten Fällen bleibt
die Beziehung selbst dann bestehen, wenn alle Spuren vom Quellenspeicherbereich
in den Zielspeicherbereich kopiert wurden.
-
Die
Zielbeziehungstabelle enthält
außerdem eine
Bitmap, die kennzeichnet, welche an der FlashCopyTM-Beziehung
beteiligten Spuren noch nicht kopiert wurden und somit geschützte Spuren
sind. Jede Spur in der Zieleinheit wird durch ein Bit in der Bitmap dargestellt.
Das Zielbit wird gesetzt, wenn die entsprechende Spur als eine Zielspur
einer FlashCopyTM-Beziehung eingerichtet wird. Das Zielbit
wird zurückgesetzt,
wenn die entsprechende Spur aus der Quellenposition kopiert und
aufgrund von Schreibvorgängen
in der Quellen- oder der Zieleinheit oder eine Kopier-Task im Hintergrund
in die Zieleinheit ausgespeichert wurde.
-
US 6 092 066 (Ofek et al.)
beschreibt ein Verfahren und ein System zur Verringerung der zwischen
einer Quelle und einem Ziel übertragenen
Datenmenge. Zu diesem Zweck verwaltet das Verfahren eine erste Tabelle,
die die in der Quelle geänderten Blöcke kennzeichnet,
und eine zweite Tabelle, die die im Ziel geänderten Blöcke kennzeichnet. Diese Kennzeichnungen
werden sodann verknüpft,
um alle Datenblöcke
im Ziel zu kennzeichnen, die nicht entsprechende Blöcke in der
Quelle spiegeln.
-
Als
Teil der Einrichtung der logischen Momentanbeziehung während des
FlashCopyTM-Vorgangs müssen nach dem Stand der Technik
alle Spuren im Quellencachespeicher, die in der FlashCopyTM-Beziehung enthalten sind, in den physischen Quellendatenträger, z.B.
die Quellen-DASD, ausgespeichert werden, und alle in der FlashCopyTM enthaltenen Spuren im Zielcachespeicher
müssen
gelöscht werden.
-
Sobald
die logische Beziehung eingerichtet worden ist, können Hosts
einen direkten Zugriff auf Daten in den Quellen- und Zieldatenträgern haben, und
die Daten können
als Teil eines Hintergrundvorgangs kopiert werden. Ein Lesevorgang
einer Spur, die eine Spur in einer FlashCopyTM-Beziehung
ist und sich nicht im Cachespeicher befindet, löst eine Einspeicherungserfassung
(stage intercept) aus, wodurch veranlasst wird, dass die der angeforderten Zielspur
entsprechende Quellenspur in den Zielcachespeicher eingespeichert
wird, wenn die Quellenspur noch nicht hinüber kopiert wurde und bevor
der Zugriff auf die Spur aus dem Zielcachespeicher bereitgestellt
wird. Dadurch wird sichergestellt, dass das Ziel die Kopie aus der
Quelle hat, die zum Zeitpunkt des FlashCopyTM-Vorgangs
vorhanden war. Außerdem
lösen Ausspeicherungsvorgänge von Spuren
in der Quelleneinheit, die noch nicht hinüber kopiert wurden, eine Ausspeicherungserfassung
(destage intercept) aus, wodurch veranlasst wird, dass die Spuren
in der Quelleneinheit in die Zieleinheit kopiert werden.
-
Der
Grund für
die Entwicklung von virtuellen Sofortkopierverfahren bestand zumindest
teilweise darin, schnell eine Kopie von Daten zu erzeugen, ohne
im Vordergrund ablaufende Prozesse zu unterbrechen oder zu verlangsamen.
Virtuelle Sofortkopierverfahren, beispielsweise ein FlashCopyTM-Vorgang, stellen ein Hilfsmittel für Momentankopien
bereit. Virtuelle Sofortkopierverfahren können für eine Vielfalt von Anwendungen
verwendet werden, unter anderem für die Datensicherung, die Datenmigration, die
Datenerhebung, Prüfvorgänge usw.
Beispielsweise kann ein virtuelles Sofortkopierverfahren für die Erzeugung
einer physischen "Sicherungs"-Kopie der Quellendaten
verwendet werden, um die Wiederherstellung nach einer Panne zu unterstützen.
-
Obwohl
die virtuellen Sofortzeitkopierverfahren zum Kopieren großer Datenmengen
hilfreich sind, können
herkömmliche
Sofortkopierverfahren verbessert werden. Insbesondere besteht nach
dem Stand der Technik ein Bedarf an verbesserten virtuellen Sofortkopierverfahren,
die ein physisches Kopieren großer
Datenmengen vermeiden.
-
Beschreibung
der Erfindung
-
Die
vorliegende Erfindung wird durch die unabhängigen Ansprüche definiert.
Bevorzugte Ausführungsformen
werden in den abhängigen
Ansprüchen beschrieben.
-
Unter
einem ersten Aspekt stellt die vorliegende Ausführungsform ein Verfahren zur
Verringerung einer übertragenen
Datenmenge bereit, das Folgendes umfasst: verwalten eines ersten
Anzeigers für
jeden Quellendatenblock, um anzuzeigen, ob der Quellendatenblock
seit der letzten Übertragung
des Quellendatenblocks an den Zielspeicher im Quellenspeicher aktualisiert
wurde; Verwalten eines zweiten Anzeigers für jeden Zieldatenblock im Zielspeicher,
um anzuzeigen, ob der Zieldatenblock seit der Überschreibung des Zieldatenblocks
durch einen entsprechenden Quellendatenblock im Zielspeicher aktualisiert
wurde; und wenn Daten aus dem Quellenspeicher an den Zielspeicher übertragen
werden, Übertragen
jedes Quellendatenblocks, für
den ein erster Anzeiger gesetzt wurde, um anzuzeigen, dass der Quellendatenblock
aktualisiert wurde; und Übertragen
jedes Quellendatenblocks, der einem Zieldatenblock entspricht, für den ein
zweiter Anzeiger gesetzt wurde, um anzuzeigen, dass der Zieldatenblock aktualisiert
wurde.
-
Außerdem umfasst
das Verfahren vorzugsweise Folgendes: Verwalten eines dritten Anzeigers für jeden
Zieldatenblock, um anzuzeigen, ob ein entsprechender Quellendatenblock
oder der Zieldatenblock für
einen Speicherungsvorgang abgerufen werden muss.
-
Außerdem umfasst
das Verfahren vorzugsweise Folgendes: wenn ein Quellendatenblock
in den Zielspeicher kopiert wurde, Aktualisieren des dritten Anzeigers
für den
Zieldatenblock.
-
Außerdem umfasst
das Verfahren vorzugsweise Folgendes: Empfangen eines inkrementellen virtuellen
Kopiervorgangs; und Aktualisieren des dritten Anzeigers für jeden
Zieldatenblock auf der Grundlage des ersten Anzeigers für den Quellendatenblock
und des zweiten Anzeigers für
den dem Quellendatenblock entsprechenden Zieldatenblock, wobei das Übertragen
von Daten aus dem Quellenspeicher an den Zielspeicher das Übertragen
jedes Quellendatenblocks umfasst, für den ein dritter Anzeiger
anzeigt, dass der Quellendatenblock an den Zielspeicher übertragen
werden muss.
-
Außerdem umfasst
das Verfahren vorzugsweise Folgendes: nach der Einrichtung einer
inkrementellen virtuellen Kopierbeziehung Aktualisieren des dritten
Anzeigers für
jeden Zieldatenblock, um anzuzeigen, dass der dem Zieldatenblock
entsprechende Quellendatenblock für einen Einspeicherungsvorgang
aus dem Quellenspeicher abgerufen werden muss.
-
Außerdem umfasst
das Verfahren vorzugsweise Folgendes: nach der Übertragung von Daten aus dem
Quellenspeicher an den Zielspeicher Aktualisieren des ersten Anzeigers
für jeden
Quellendatenblock, um anzuzeigen, dass der Quellendatenblock seit
der letzten Übertragung
des Quellendatenblocks an den Zielspeicher im Quellenspeicher nicht
aktualisiert wurde.
-
Außerdem umfasst
das Verfahren vorzugsweise Folgendes: nach der Übertragung von Daten aus dem
Quellenspeicher an den Zielspeicher Aktualisieren des zweiten Anzeigers
für jeden
Zieldatenblock, um anzuzeigen, dass der Zieldatenblock seit der
letzten Übertragung.
des Quellendatenblocks an den Zielspeicher im Zielspeicher nicht
aktualisiert wurde.
-
Vorzugsweise
umfassen jeder Quellendatenblock und jeder Zieldatenblock eine Spur
eines Datenträgers.
-
Vorzugsweise
umfassen jeder Quellendatenblock und jeder Zieldatenblock einen
Sektor eines Datenträgers.
-
Außerdem umfasst
das Verfahren vorzugsweise Folgendes: Erzeugen einer inkrementellen
virtuellen Kopierbeziehung zwischen einem Quellenteil von Daten
und einem Zielteil von Daten, indem ein inkrementeller virtueller
Kopiervorgang zwischen dem Quellenteil von Daten und dem Zielteil
von Daten ausgeführt
wird, wobei der erste Anzeiger und der zweite Anzeiger für jeden
Quellendatenblock und jeden Zieldatenblock in den Quellen- bzw.
Zielteilen von Daten in der inkrementellen virtuellen Kopierbeziehung
verwaltet werden.
-
Außerdem umfasst
das Verfahren vorzugsweise Folgendes: Aktualisieren des ersten Anzeigers für jeden
Quellendatenblock, um anzuzeigen, dass der Quellendatenblock nicht
aktualisiert wurde; Aktualisieren des zweiten Anzeigers für jeden
Zieldatenblock, um anzuzeigen, dass der Zieldatenblock nicht aktualisiert
wurde; und Aktualisieren eines dritten Anzeigers für jeden
Zieldatenblock, um anzuzeigen, dass der Quellendatenblock an den
Zielspeicher übertragen
werden muss.
-
Außerdem umfasst
das Verfahren vorzugsweise Folgendes: wenn ein Quellendatenblock
aktualisiert wird, Aktualisieren des ersten Anzeigers für den Quellendatenblock,
um anzuzeigen, dass der Quellendatenblock aktualisiert wurde.
-
Außerdem umfasst
das Verfahren vorzugsweise Folgendes: wenn ein Zieldatenblock aktualisiert
wird, Aktualisieren des zweiten Anzeigers für den Zieldatenblock, um anzuzeigen,
dass der Zieldatenblock aktualisiert wurde.
-
Außerdem kann
ein gewerblich erzeugter Gegenstand zur Verringerung einer übertragenen Datenmenge
bereitgestellt werden, wobei der gewerblich erzeugte Gegenstand
Vorgänge
veranlasst, die Folgendes umfassen: Verwalten eines ersten Anzeigers
für jeden
Quellendatenblock, um anzuzeigen, ob der Quellendatenblock seit
der letzten Übertragung
des Quellendatenblocks an den Zielspeicher im Quellenspeicher aktualisiert
wurde; Verwalten eines zweiten Anzeigers für jeden Zieldatenblock im Zielspeicher,
um anzuzeigen, ob der Zieldatenblock seit der Überschreibung des Zieldatenblocks
durch einen entsprechenden Quellendatenblock im Zielspeicher aktualisiert
wurde; und wenn Daten aus dem Quellenspeicher an den Zielspeicher übertragen
werden, Übertragen
jedes Quellendatenblocks, für
den ein erster Anzeiger gesetzt wurde, um anzuzeigen, dass der Quellendatenblock
aktualisiert wurde; und Übertragen
jedes Quellendatenblocks, der einem Zieldatenblock entspricht, für den ein
zweiter Anzeiger gesetzt wurde, um anzuzeigen, dass der Zieldatenblock aktualisiert
wurde.
-
Der
gewerblich erzeugte Gegenstand umfasst vorzugsweise Vorgänge, die
außerdem
Folgendes umfassen: Verwalten eines dritten Anzeigers für jeden
Zieldatenblock, um anzuzeigen, ob ein entsprechender Quellendatenblock
oder der Zieldatenblock für
einen Einspeicherungsvorgang abgerufen werden muss.
-
Vorzugsweise
umfasst der gewerblich erzeugte Gegenstand Folgendes: wenn ein Quellendatenblock
in den Zielspeicher kopiert wurde, Aktualisieren des dritten Anzeigers
für den
Zieldatenblock.
-
Vorzugsweise
umfasst der gewerblich erzeugte Gegenstand Folgendes: Empfangen
eines inkrementellen virtuellen Kopiervorgangs; und Aktualisieren
des dritten Anzeigers für
jeden Zieldatenblock auf der Grundlage des ersten Anzeigers für den Quellendatenblock
und des zweiten Anzeigers für den
dem Quellendatenblock entsprechenden Zieldatenblock, wobei das Übertragen
von Daten aus dem Quellenspeicher an den Zielspeicher das Übertragen jedes
Quellendatenblocks umfasst, für
den ein dritter Anzeiger anzeigt, dass der Quellendatenblock an den
Zielspeicher übertragen
werden muss.
-
Vorzugsweise
umfasst der gewerblich erzeugte. Gegenstand Folgendes: nach dem
Einrichten einer inkrementellen virtuellen Kopierbeziehung Aktualisieren
des dritten Anzeigers für
jeden Zieldatenblock, um anzuzeigen, dass der dem Zieldatenblock
entsprechende Quellendatenblock für einen Einspeicherungsvorgang
aus dem Quellenspeicher abgerufen werden muss.
-
Vorzugsweise
umfasst der gewerblich erzeugte Gegenstand Folgendes: nach dem Übertragen
von Daten aus dem Quellenspeicher an den Zielspeicher Aktualisieren
des ersten Anzeigers für
jeden Quellendatenblock, um anzuzeigen, das der Quellendatenblock
seit der letzten Übertragung
des Quellendatenblocks an den Zielspeicher im Quellenspeicher nicht
aktualisiert wurde.
-
Vorzugsweise
umfasst der gewerblich erzeugte Gegenstand Folgendes: nach dem Übertragen
von Daten aus dem Quellenspeicher an den Zielspeicher Aktualisieren
des zweiten Anzeigers für
jeden Zieldatenblock, um anzuzeigen, dass der Zieldatenblock seit
der letzten Übertragung
des Quellendatenblocks an den Zielspeicher im Zielspeicher nicht aktualisiert
wurde.
-
Vorzugsweise
umfassen jeder Quellendatenblock und jeder Zieldatenblock eine Spur
eines Datenträgers.
-
Vorzugsweise
umfassen jeder Quellendatenblock und jeder Zieldatenblock einen
Sektor eines Datenträgers.
-
Vorzugsweise
umfasst der gewerblich erzeugte Gegenstand Folgendes: Erzeugen einer
inkrementellen virtuellen Kopierbeziehung zwischen einem Quellenteil
von Daten und einem Zielteil von Daten, indem ein inkrementeller
virtueller Kopiervorgang zwischen dem Quellenteil von Daten und
dem Zielteil von Daten ausgeführt
wird, wobei der erste Anzeiger und der zweite Anzeiger für jeden
Quellendatenblock und jeden Zieldatenblock in den Quellen- bzw.
Zielteilen von Daten in der inkrementellen virtuellen Kopierbeziehung
verwaltet werden.
-
Vorzugsweise
umfasst der gewerblich erzeugte Gegenstand Folgendes: Aktualisieren
des ersten Anzeigers für
jeden Quellendatenblock, um anzuzeigen, dass der Quellendatenblock
nicht aktualisiert wurde; Aktualisieren des zweiten Anzeigers für jeden
Zieldatenblock, um anzuzeigen, dass der Zieldatenblock nicht aktualisiert
wurde; und Aktualisieren eines dritten Anzeigers für jeden
Zieldatenblock, um anzuzeigen, dass der Quellendatenblock an den
Zielspeicher übertragen
werden muss.
-
Vorzugsweise
umfasst der gewerblich erzeugte Gegenstand Folgendes: wenn ein Quellendatenblock
aktualisiert wird, Aktualisieren des ersten Anzeigers für den Quellendatenblock,
um anzuzeigen, dass der Quellendatenblock aktualisiert wurde.
-
Vorzugsweise
umfasst der gewerblich erzeugte Gegenstand Folgendes: wenn ein Zieldatenblock
aktualisiert wurde, Aktualisieren des zweiten Anzeigers für den Zieldatenblock,
um anzuzeigen, dass der Zieldatenblock aktualisiert wurde.
-
Unter
einem zweiten Aspekt stellt die vorliegende Erfindung ein System
zur Verringerung einer übertragenen
Datenmenge bereit, das Folgendes umfasst: ein Mittel zum Verwalten
eines ersten Anzeigers für
jeden Quellendatenblock, um anzuzeigen, ob der Quellendatenblock
seit der letzten Übertragung
des Quellendatenblocks an den Zielspeicher im Quellenspeicher aktualisiert
wurde; ein Mittel zum Verwalten eines zweiten Anzeigers für jeden
Zieldatenblock im Zielspeicher, um anzuzeigen, ob der Zieldatenblock
seit der Überschreibung
des Zieldatenblocks durch einen entsprechenden Quellendatenblock
im Zielspeicher überschrieben
wurde; und ein Mittel, um bei einer Datenübertragung aus dem Quellenspeicher
an den Zielspeicher jeden Quellendatenblock zu übertragen, für den ein
erster Anzeiger gesetzt wurde, um anzuzeigen, dass der Quellendatenblock
aktualisiert wurde; und ein Mittel zum Übertragen jedes Quellendatenblocks,
der einem Zieldatenblock entspricht, für den ein zweiter Anzeiger
gesetzt wurde, um anzuzeigen, dass der Zieldatenblock aktualisiert
wurde.
-
Vorzugsweise
umfasst das System Folgendes: ein Mittel zum Verwalten eines dritten
Anzeigers für
jeden Zieldatenblock, um anzuzeigen, ob ein entsprechender Quellendatenblock
oder der Zieldatenblock für
einen Einspeicherungsvorgang abgerufen werden muss.
-
Vorzugsweise
umfasst das System Folgendes: ein Mittel zum Aktualisieren des dritten
Anzeigers für
den Zieldatenblock, wenn ein Quellendatenblock in den Zielspeicher
kopiert wurde.
-
Vorzugsweise
umfasst das System Folgendes: ein Mittel zum Empfangen eines inkrementellen virtuellen
Kopiervorgangs; und ein Mittel zum Aktualisieren des dritten Anzeigers
für jeden
Zieldatenblock auf der Grundlage des ersten Anzeigers für den Quellendatenblock
und des zweiten Anzeigers für den
dem Quellendatenblock entsprechenden Zieldatenblock, wobei das Übertragen
von Daten aus dem Quellenspeicher an den Zielspeicher das Übertragen jedes
Quellendatenblocks umfasst, für
den ein dritter Anzeiger anzeigt, dass der Quellendatenblock an den
Zielspeicher übertragen
werden muss.
-
Vorzugsweise
umfasst das System Folgendes: nach dem Einrichten einer inkrementellen
virtuellen Kopierbeziehung ein Mittel zum Aktualisieren des dritten
Anzeigers für
jeden Zieldatenblock, um anzuzeigen, dass der dem Zieldatenblock
entsprechende Quellendatenblock für einen Einspeicherungsvorgang
aus dem Quellenspeicher abgerufen werden muss.
-
Vorzugsweise
umfasst das System Folgendes: nach dem Übertragen von Daten aus dem
Quellenspeicher an den Zielspeicher ein Mittel zum Aktualisieren
des ersten Anzeigers für
jeden Quellendatenblock, um anzuzeigen, dass der Quellendatenblock
seit der letzten Übertragung
des Quellendatenblocks an den Zielspeicher im Quellenspeicher nicht aktualisiert
wurde.
-
Vorzugsweise
umfasst das System Folgendes: nach der Übertragung von Daten aus dem
Quellenspeicher an den Zielspeicher ein Mittel zum Aktualisieren
des zweiten Anzeigers für
jeden Zieldatenblock, um anzuzeigen, dass der Zieldatenblock seit der
letzten Übertragung
des Quellendatenblocks an den Zielspeicher im Zielspeicher nicht
aktualisiert wurde.
-
Vorzugsweise
umfassen jeder Quellendatenblock und jeder Zieldatenblock eine Spur
eines Datenträgers.
-
Vorzugsweise
umfassen jeder Quellendatenblock und jeder Zieldatenblock einen
Sektor eines Datenträgers.
-
Vorzugsweise
umfasst das System Folgendes: ein Mittel zum Erzeugen einer inkrementellen virtuellen
Kopierbeziehung zwischen einem Quellenteil von Daten und einem Zielteil
von Daten, indem ein inkrementeller virtueller Kopiervorgang zwischen dem
Quellenteil von Daten und dem Zielteil von Daten ausgeführt wird,
wobei der erste Anzeiger und der zweite Anzeiger für jeden
Quellendatenblock und jeden Zieldatenblock in den Quellen- bzw.
Zielteilen von Daten in der inkrementellen virtuellen Kopierbeziehung
verwaltet werden.
-
Vorzugsweise
umfasst das System Folgendes: ein Mittel zum Aktualisieren des ersten
Anzeigers für
jeden Quellendatenblock, um anzuzeigen, das der Quellendatenblock
nicht aktualisiert wurde; ein Mittel zum Aktualisieren des zweiten
Anzeigers für
jeden Zieldatenblock, um anzuzeigen, dass der Zieldatenblock nicht
aktualisiert wurde; und ein Mittel zum Aktualisieren eines dritten
Anzeigers für
jeden Zieldatenblock, um anzuzeigen, dass der Quellendatenblock
an den Zielspeicher übertragen
werden muss.
-
Vorzugsweise
umfasst das System Folgendes: wenn ein Quellendatenblock aktualisiert
wird, ein Mittel zum Aktualisieren des ersten Anzeigers für den Quellendatenblock,
um anzuzeigen, dass der Quellendatenblock aktualisiert wurde.
-
Vorzugsweise
umfasst das System Folgendes: wenn ein Zieldatenblock aktualisiert
wird, ein Mittel zum Aktualisieren des zweiten Anzeigers für den Zieldatenblock,
um anzuzeigen, dass der Zieldatenblock aktualisiert wurde.
-
Unter
einem dritten Aspekt stellt die vorliegende Erfindung ein Computerprogramm
bereit, dass einen Computerprogrammcode umfasst, der, wenn er in
ein Computersystem geladen und in diesem ausgeführt wird, dieses veranlasst,
die Schritte eines Verfahrens gemäß dem ersten Aspekt auszuführen. Bevorzugte
Merkmale des Computerprogramms umfassen einen Computerprogrammcode, der
den bevorzugten Verfahrensschritten des ersten Aspektes entspricht.
-
Folglich
werden vorzugsweise ein Verfahren, ein System und ein Programm zur
Verringerung einer übertragenen
Datenmenge bereitgestellt. Für
jeden Quellendatenblock wird ein erster Anzeiger verwaltet, um anzuzeigen,
ob der Quellendatenblock seit der letzten Übertragung des Quellendatenblocks
an den Zielspeicher im Quellenspeicher aktualisiert wurde. Für jeden
Zieldatenblock wird ein zweiter Anzeiger verwaltet, um anzuzeigen,
ob der Zieldatenblock seit der Überschreibung
des Zieldatenblocks durch einen entsprechenden Quellendatenblock
im Zielspeicher aktualisiert wurde. Wenn Daten aus dem Quellenspeicher
an den Zielspeicher übertragen
werden, werden jeder Quellendatenblock, für den ein erster Anzeiger gesetzt
wurde, um anzuzeigen, dass der Quellendatenblock aktualisiert wurde,
und jeder Quellendatenblock, der einem Zieldatenblock entspricht,
für den
ein zweiter Anzeiger gesetzt wurde, um anzuzeigen, dass der Zieldatenblock
aktualisiert wurde, übertragen.
-
Die
beschriebenen Ausführungen
der Erfindung stellen ein Verfahren, ein System und ein Programm
zum Erzeugen einer inkrementellen virtuellen Kopie bereit.
-
Kurze Beschreibung
der Zeichnungen
-
Nun
wird eine bevorzugte Ausführungsform der
vorliegenden Erfindung lediglich beispielhaft mit Bezugnahme auf
die begleitenden Zeichnungen beschrieben, in denen:
-
1A und 1B in
Blockschaltbildern eine Datenverarbeitungsumgebung gemäß bestimmten
Ausführungen
der Erfindung darstellen.
-
2 verschiedene
Strukturen gemäß bestimmten
Ausführungen
der Erfindung darstellt.
-
3 eine
Logik zum Aktualisieren von Strukturen gemäß bestimmten Ausführungen
der Erfindung darstellt.
-
4 eine
Logik zum Ausführen
eines inkrementellen virtuellen Kopiervorgangs gemäß bestimmten
Ausführungen
der Erfindung darstellt.
-
5 eine
Logik darstellt, die zur Verarbeitung eines Schreibvorgangs gemäß bestimmten
Ausführungen
der Erfindung im Schreibprozess realisiert wird.
-
6 eine
Logik darstellt, die zur Verarbeitung eines Lesevorgangs gemäß bestimmten
Ausführungen
der Erfindung im Leseprozess realisiert wird.
-
7 einen
Hintergrundkopierprozess gemäß bestimmten
Ausführungen
der Erfindung darstellt.
-
8 eine
Architektur eines Computersystems darstellt, das gemäß bestimmten
Ausführungen der
Erfindung verwendet werden kann.
-
Modus für die Erfindung
-
In
der folgenden Beschreibung wird auf die begleitenden Zeichnungen
Bezug genommen, die einen Teil hiervon bilden und verschiedene Ausführungen
der vorliegenden Erfindung darstellen. Es versteht sich von selbst,
dass andere Ausführungen
verwendet sowie strukturelle und funktionelle Änderungen vorgenommen werden
können,
ohne vom Anwendungsbereich der vorliegenden Erfindung abzuweichen.
-
Ausführungen
der vorliegenden Erfindung stellen einen inkrementellen virtuellen
Kopiervorgang bereit, der eine Verbesserung eines virtuellen Sofortkopiervorgangs
darstellt. Bei dem inkrementellen virtuellen Kopiervorgang werden
nur die Datenblöcke kopiert,
die seit dem letzten virtuellen Sofortkopiervorgang aus dem Quellenspeicher
in den Zielspeicher in den Quellen- und Zieldatenträgern aktualisiert wurden.
Ein inkrementeller virtueller Kopiervorgang verringert die Dauer
der Erzeugung einer physischen Kopie eines Quellendatenträgers und
setzt die Auswirkungen auf andere Anwendungen auf ein Minimum herab
(z.B. wird die Nutzung von Bandbreite für die physische Speicherung
zur Ausspeicherung von Daten auf ein Minimum herabgesetzt, wodurch
mehr Bandbreite für
Lesevorgänge
aus dem physischen Speicher ermöglicht
wird).
-
Die 1A und 1B stellen
in Blockschaltbildern eine Datenverarbeitungsumgebung gemäß bestimmten
Ausführungen
der Erfindung dar. Eine Speichersteuereinheit 100 empfängt Ein-/Ausgabe-
(EtA-) Anforderungen von Hosts 140a, b, ...l (wobei a,
b und l ein beliebige ganzzahliger Wert sein können) über ein Netz 190,
das auf Speichereinheiten 120, 130 gerichtet ist,
die so konfiguriert sind, dass sie Datenträger (z.B. symbolische Gerätenummern
(Logical Unit Numbers), Logikeinheiten usw.) 122a, b, ...n
bzw. 132a, b, ...m aufweisen, wobei m und n verschiedene
ganzzahlige Werte oder der gleiche ganzzahlige Wert sein können. In
bestimmten Ausführungen
kann der Zielspeicher 130 hinsichtlich der Größe größer als
oder gleich groß wie
der Quellenspeicher 120 sein.
-
Der
Quellenspeicher 120 enthält einen oder mehrere Datenträger 122a,
b, ...n, die in Speicherblöcke 150 unterteilt
werden können,
die Datenblöcke enthalten,
und die Speicherblöcke 150 sind
weiter unterteilt in Teilspeicherblöcke (150a bis 150p,
wobei a und p ein beliebiger ganzzahliger Wert sein können), die
Teildatenblöcke
enthalten. Ein Datenträger kann
ein beliebiges logisches oder physisches Speicherelement sein. In
bestimmten Ausführungen
sind die Datenblöcke
Inhalte von Spuren, während
die Teildatenblöcke
Inhalte von Sektoren von Spuren sind.
-
Der
Zielspeicher 130 verwaltet Kopien von allen oder von einer
Teilgruppe der Datenträger 122a, b,
...n des Quellenspeichers 120. Außerdem kann der Zielspeicher 130 beispielsweise
vom Host 140 geändert
werden. Der Zielspeicher 130 enthält einen oder mehrere Datenträger 132a,
b, ...m, die in Speicherblöcke 150 unterteilt
sein können,
die Datenblöcke enthalten,
und die Speicherblöcke 150 sind
weiter in Teilspeicherblöcke
(150a bis 150p, wobei a und p beliebige ganzzahlige
Werte sein können)
unterteilt, die Teildatenblöcke
enthalten. Ein Datenträger
kann ein beliebiges logisches oder physisches Speicherelement sein.
In bestimmten Ausführungen
sind die Datenblöcke
Spuren, während
die Teildatenblöcke
Sektoren von Spuren sind.
-
Zur
Erleichterung der Bezugnahme werden die Begriffe "Spuren" und "Sektoren" im Folgenden als
Beispiele für
Datenblöcke
und Teildatenblöcke verwendet,
jedoch soll die Verwendung dieser Begriffe Ausführungen der Erfindung nicht
auf Spuren und Sektoren begrenzen. Die Ausführungen der Erfindung können auf
einen beliebigen Typ von Speicher, Speicherblock oder Datenblock
angewandt werden, der auf eine beliebige Weise unterteilt ist. Obwohl Ausführungen
der Erfindung sich auf Datenblöcke beziehen,
können
alternative Ausführungen
der Erfindung außerdem
auf Teildatenblöcke
angewandt werden.
-
Die
Speichersteuereinheit 100 enthält einen Quellencachespeicher 124,
in dem Aktualisierungen an Spuren im Quellenspeicher 120 aufbewahrt
werden, bis sie in den Quellenspeicher 120 geschrieben werden
(d.h., die Spuren werden in den physischen Speicher ausgespeichert).
Die Speichersteuereinheit 100 enthält einen Zielcachespeicher 134,
in dem Aktualisierungen an Spuren im Zielspeicher 130 aufbewahrt
werden, bis sie in den Zielspeicher 130 geschrieben werden
(d.h., die Spuren werden in den physischen Speicher ausgespeichert).
Der Quellencachespeicher 124 und der Zielcachespeicher 134 können gesonderte
Speichereinheiten oder verschiedene Abschnitte ein und derselben
Speichereinheit umfassen. Der Quellencachespeicher 124 und
der Zielcachespeicher 134 werden zum Zwischenspeichern
von Lese- und Schreibdaten verwendet, die zwischen den Hosts 140a,
b, ...l, dem Quellenspeicher 120 und dem Zielspeicher 130 übertragen
werden. Obwohl die Cachespeicher 124 und 134 als Quellen-
bzw. Zielspeicher bezeichnet werden, da sie Quellen- oder Zieldatenblöcke in einer
Momentankopiebeziehung zwischenspeichern, können sie außerdem gleichzeitig Quellen-
und Zieldatenblöcke
in verschiedenen Momentankopiebeziehungen speichern.
-
Außerdem enthält die Speichersteuereinheit 100 einen
nichtflüchtigen
Speicher 118. Der nichtflüchtige Speicher 118 kann
beispielsweise ein batteriegesicherter flüchtiger Speicher sein, um eine
nichtflüchtige
Kopie von Datenaktualisierungen aufzubewahren.
-
Außerdem enthält die Speichersteuereinheit 100 einen
Systemspeicher 110, der in flüchtigen und/oder nichtflüchtigen
Einheiten realisiert werden kann. Der Systemspeicher 110 enthält einen
Leseprozess 112 zum Lesen von Daten, einen Schreibprozess 114 zum
Schreiben von Daten und einen inkrementellen virtuellen Kopierprozess 116.
Der Leseprozess 112 läuft
im Systemspeicher 110 ab, um Daten aus den Speichern 120 und 130 zu
lesen und in die Cachespeicher 124 bzw. 134 zu
schreiben. Der Schreibprozess 114 läuft im Systemspeicher 110 ab, um
Daten aus den Cachespeichern 124 und 134 zu lesen
in die Speicher 120 bzw. 130 zu schreiben. Der inkrementelle
virtuelle Kopierprozess 116 läuft im Systemspeicher 110 ab,
um einen inkrementellen virtuellen Kopiervorgang auszuführen, der
Daten aus dem Quellenspeicher 120 in den Zielspeicher 130 überträgt. In bestimmten
Ausführungen
der Erfindung können
mehrere inkrementelle virtuelle Kopierprozesse vorhanden sein. In
bestimmten Ausführungen
der Erfindung kann der inkrementelle virtuelle Kopierprozess anstelle
der oder zusätzlich
zu der Ausführung
in der Speichersteuereinheit 100 in einer anderen, mit
der Speichersteuereinheit 100 verbundenen Speichersteuereinheit
ausgeführt
werden. Der Systemspeicher 110 kann sich in von den Cachespeichern 124 und 134 gesonderten
Speichereinheiten befinden oder eine Speichereinheit mit einem oder beiden
Cachespeichern 124 und 134 gemeinsam nutzen.
-
Ausführungen
der Erfindungen können
auf die Übertragung
von Daten zwischen zwei beliebigen Speichermedien angewandt werden,
die hierin zur Erleichterung der Bezugnahme als Quellenspeicher und
Zielspeicher bezeichnet werden. Bestimmte Ausführungen der Erfindung können beispielsweise mit
zwei Speichermedien verwendet werden, die sich in einer einzigen
Speichersteuereinheit befinden, wie in 1A dargestellt
wird. Außerdem
können
bestimmte alternative Ausführungen
der Erfindung mit zwei Speichermedien verwendet werden, die sich
in verschiedenen Speichersteuereinheiten, an verschiedenen physischen
Standorten usw. befinden. Zur Erleichterung der Bezugnahme wird
ein Datenblock im Quellenspeicher außerdem als "Quellendatenblock" und ein Datenblock im Zielspeicher
als "Zieldatenblock" bezeichnet.
-
In
bestimmten Ausführungen
kann ein austauschbarer Speicher (anstelle von oder zusätzlich zu
einem Zielspeicher 130) verwendet werden, um Kopien des
gesamten oder eines Teils des Quellenspeichers 120 aufzubewahren,
und die Ausführungen
der Erfindung übertragen
Daten an den austauschbaren Speicher anstatt an den Zielspeicher. Der
austauschbare Speicher kann sich in der Speichersteuereinheit 100 befinden.
-
Die
Speichersteuereinheit 100 kann außerdem einen Prozessorkomplex
(nicht gezeigt) enthalten und eine beliebige Speichersteuereinheit
oder einen beliebigen, nach dem Stand der Technik bekannten Server
umfassen, beispielsweise einen Enterprise Storage Server (ESS),
eine Speichersteuereinheit 39907 usw. Die Hosts 140a, b,
...l können
eine beliebige nach dem Stand der Technik bekannte Datenverarbeitungseinheit
umfassen, beispielsweise einen Server, einen Großrechner, einen Arbeitsplatzrechner,
einen Personal Computer, einen Taschencomputer, eine Laptop-Fernsprecheinheit,
eine Netzanwendung usw. Die Speichersteuereinheit 100 und das(die)
Hostsystem(e) 140a, b, ...l tauschen Daten über ein
Netz 190 aus, das ein Speicherbereichnetz (Storage Area
Network, SAN), ein lokales Netz (LAN), ein überregionales Netz (WAN), das
Internet, ein Intranet usw. umfassen kann. Der Quellenspeicher 120 und
der Zielspeicher 130 können
jeweils eine Gruppe von Speichereinheiten umfassen, beispielsweise
Einheiten mit Direktzugriffspeicher (DASDs), ein JBOD-System (Just
a Bunch of Disks), ein RAID-System (Redundant Array of Independent Disks),
eine Virtualisierungseinheit (virtualization device) usw.
-
Obwohl 1A eine
einzige Speichersteuereinheit zeigt, würden Fachleute außerdem wissen, dass
mehrere Speichersteuereinheiten über
ein Netz (z.B. ein lokales Netz (LAN), ein überregionales Netz (WAN), das
Internet usw.) verbunden werden können und eine oder mehrere
Speichersteuereinheiten die Erfindung realisieren können.
-
Wenn
der Host 140 einen Datenblock im Quellenspeicher 120 aktualisieren
möchte,
schreibt er Daten in einen Speicherblock im Quellencachespeicher 124.
Schreibvorgänge ändern den Speicherblock
im Quellencachespeicher 124 synchron (d.h., der den Schreibvorgang
ausführende Host 140 wartet
auf die Ausführung
des Vorgangs), und anschließend
wird der Inhalt des Quellencachespeichers 124 in einem
Hintergrundprozess in den Quellenspeicher 120 geschrieben.
Ein Schreibvorgang kann Daten aktualisieren, neue Daten schreiben
oder dieselben Daten erneut schreiben. Das Schreiben von Daten aus
dem Quellencachespeicher 124 in den Quellenspeicher 120 wird
als Ausspeicherungsvorgang bezeichnet. Das Kopieren des gesamten
oder eines Teils des Datenblocks aus dem Quellenspeicher 120 in
den Quellencachespeicher 124 ist ein Einspeicherungsvorgang.
Ebenso können Daten
zwischen dem Zielspeicher 130 und dem Zielcachespeicher 134 ein-
und ausgespeichert werden. Außerdem
können
Daten aus dem Quellenspeicher 120 in den Zielcachespeicher 134 eingespeichert werden.
-
2 stellt
verschiedene Strukturen 200, 210 und 220 gemäß bestimmten
Ausführungen
der Erfindung dar. Der nichtflüchtige
Speicher 118 enthält eine
Zielkopierstruktur (target copy structure) 200. Die Zielkopierstruktur 200 kann
verwendet werden, um festzustellen, ob Daten aus dem Quellenspeicher 120 oder
dem Zielspeicher 130 in den Cachespeicher 124 bzw. 134 abgerufen
werden müssen
(d.h. für
einen Einspeicherungsvorgang). Außerdem kann die Zielkopierstruktur 200 verwendet
werden, um festzustellen, welche Datenblöcke im Quellenspeicher 120 in
den Zielspeicher 130 kopiert werden müssen. Die Zielkopierstruktur 200 enthält einen
Anzeiger (z.B. ein Bit) für
jeden Datenblock in beispielsweise einem Datenträger. Wenn ein Anzeiger auf
einen ersten Wert (z.B. eins) gesetzt wird, zeigt dies an, dass
der Datenblock für
einen Einspeicherungsvorgang aus dem Quellenspeicher 120 abgerufen
werden muss oder dass der Datenblock für einen inkrementellen virtuellen
Kopiervorgang in den Zielspeicher 130 kopiert werden muss.
Wenn ein Anzeiger auf einen zweiten Wert (z.B. null) gesetzt wird,
zeigt dies an, dass der Datenblock für einen Einspeicherungsvorgang
aus dem Zielspeicher 130 abgerufen werden muss oder dass
der Datenblock nicht für
einen inkrementellen virtuellen Kopiervorgang aus dem Quellenspeicher 120 in
den Zielspeicher 130 kopiert werden muss.
-
Eine
Struktur 210 zur Aufzeichnung von Quellenänderungen
(source change recording structure) wird zum Überwachen von Aktualisierungen von
Datenblöcken
in Teilen von Daten im Quellenspeicher 120 verwendet, für die eine
inkrementelle virtuelle Kopierbeziehung eingerichtet wurde. Die Struktur 210 zur
Aufzeichnung von Quellenänderungen
enthält
einen Anzeiger (z.B. ein Bit) für
jeden Datenblock im Quellenspeicher 120, der Teil der inkrementellen
virtuellen Kopierbeziehung ist. Wenn ein Anzeiger auf einen ersten
Wert (z.B. eins) gesetzt wird, zeigt dies an, dass der Datenblock
seit dem letzten inkrementellen virtuellen Kopiervorgang aktualisiert
wurde. Wenn ein Anzeiger auf einen zweiten Wert (z.B. null) gesetzt
wird, zeigt dies an, dass der Datenblock seit dem letzten inkrementellen
Kopiervorgang nicht aktualisiert wurde.
-
Eine
Struktur 220 zur Aufzeichnung von Zieländerungen (target change recording
structure) wird zum Überwachen
von Aktualisierungen von Datenblöcken
im Zielspeicher 130 verwendet, nachdem eine inkrementelle
virtuelle Kopierbeziehung eingerichtet wurde. Die Struktur 220 zur
Aufzeichnung von Zieländerungen
enthält
einen Anzeiger (z.B. ein Bit) für
jeden Datenblock im Zielspeicher 130, der Teil der inkrementellen
virtuellen Kopierbeziehung ist. Wenn ein Anzeiger auf einen ersten
Wert (z.B. eins) gesetzt wird, zeigt dies an, dass der Datenblock
seit dem letzten inkrementellen virtuellen Kopiervorgang aktualisiert
wurde. Wenn ein Anzeiger auf einen zweiten Wert (z.B. null) gesetzt
wird, zeigt dies an, dass der Datenblock seit dem letzten inkrementellen
Kopiervorgang nicht aktualisiert wurde.
-
In
bestimmten Ausführungen
der Erfindung umfasst jede Struktur 200, 210 und 220 eine
Bitmap, und jeder Anzeiger umfasst ein Bit. In jeder Struktur 200, 210 und 220 entspricht
der n-te Anzeiger dem n-ten Datenblock (z.B. entspricht der erste
Anzeiger in jeder Struktur 200, 210 und 220 dem
ersten Datenblock). Obwohl die Strukturen 200, 210 und 220 als drei
gesonderte Strukturen dargestellt wurden, können sie in einer beliebigen
Form verknüpft
werden, ohne vom Anwendungsbereich der Erfindung abzuweichen. In
bestimmten Ausführungen
der Erfindung gibt es für
jeden Datenträger
eine Kopie jeder Struktur. In bestimmten alternativen Ausführungen
der Erfindung gibt es für
alle Datenträger
eine einzige Kopie jeder Struktur.
-
3 stellt
die Logik dar, die im inkrementellen virtuellen Kopierprozess 116 realisiert
wird, um Strukturen gemäß bestimmten
Ausführungen
der Erfindung zu aktualisieren. Die Steuerung beginnt beim Block 300 mit
der anfänglichen
Einrichtung einer inkrementellen virtuellen Kopierbeziehung. Die
inkrementelle virtuelle Kopierbeziehung wird zwischen einem oder
mehreren Datenteilen (z.B. Quellendatenträgern) im Quellenspeicher 120 und
entsprechenden Datenteilen (z.B. Zieldatenträgern) im Zielspeicher 130 gebildet,
wenn ein inkrementeller virtueller Kopiervorgang zwischen den entsprechenden
Datenteilen ausgeführt
wird. Der erste inkrementelle virtuelle Kopiervorgang kann beispielsweise
einen oder mehrere Quellendatenträger in entsprechende Zieldatenträger kopieren.
Nachfolgende Kopiervorgänge machen
jedoch möglicherweise
inkrementelle Kopien, wodurch das erneute Kopieren von beliebigen Teilen
von Quellendatenträgern,
die seit dem letzten virtuellen Sofortkopiervorgang nicht geändert wurden,
vermieden wird.
-
Im
Block 310 aktualisiert der inkrementelle virtuelle Kopiervorgang 116 Anzeiger
in der Zielkopierstruktur 200, um anzuzeigen, dass alle
den Anzeigern entsprechenden Datenblöcke für einen Einspeicherungsvorgang
aus dem Quellenspeicher abgerufen werden müssen, und um anzuzeigen, dass alle
Datenblöcke
für einen
inkrementellen virtuellen Kopiervorgang oder einen physischen Kopiervorgang
aus dem Quellenspeicher in den Zielspeicher kopiert werden müssen. In
bestimmten Ausführungen
der Erfindung müssen
die Anzeiger in der Zielkopierstruktur 200 auf eins gesetzt
werden.
-
Im
Block 320 aktualisiert der inkrementelle virtuelle Kopierprozess 116 die
Anzeiger in der Struktur 210 zur Aufzeichnung von Quellenänderungen, um
anzuzeigen, dass die den Anzeigern entsprechenden Quellendatenblöcke seit
dem letzten inkrementellen virtuellen Kopiervorgang nicht aktualisiert wurden.
In bestimmten Ausführungen
der Erfindung werden alle Anzeiger in der Struktur 210 zur
Aufzeichnung von Quellenänderungen
auf null gesetzt. Im Block 330 aktualisiert der inkrementelle
virtuelle Kopierprozess 116 die Anzeiger in der Struktur 220 zur
Aufzeichnung von Zieländerungen,
um anzuzeigen, dass die den Anzeigern entsprechenden Zieldatenblöcke seit
dem letzten inkrementellen virtuellen Kopiervorgang nicht aktualisiert
wurden. In bestimmten Ausführungen
der Erfindung werden alle Anzeiger in der Struktur 220 zur
Aufzeichnung von Zieländerungen
auf null gesetzt.
-
4 veranschaulicht
die im inkrementellen virtuellen Kopierprozess 116 realisierte
Logik zur Ausführung
eines inkrementellen virtuellen Kopiervorgangs gemäß bestimmten
Ausführungen
der Erfindung. Die Steuerung beginnt beim Block 400 mit dem
Empfang eines inkrementellen virtuellen Kopiervorgangs durch den
inkrementellen virtuellen Kopierprozess 116. Ein inkrementeller
virtueller Kopiervorgang kann vom Host 140 ausgegeben werden.
Obwohl dies im Fluss von 4 nicht gezeigt wird, wurden
vor dem Empfang des inkrementellen virtuellen Kopiervorgangs möglicherweise
ein oder mehrere Datenblöcke
im Quellenspeicher 120 und/oder im Zielspeicher 130 beispielsweise
durch einen Benutzer am Host 140 aktualisiert.
-
Im
Block 410 aktualisiert der inkrementelle virtuelle Kopierprozess 116 Anzeiger
in der Zielkopierstruktur 200 mit den Anzeigern in den
Strukturen 210 bzw. 220 zur Aufzeichnung von Quellen-
bzw. Zieländerungen.
In bestimmten Ausführungen
der Erfindung wird die Struktur 210 zur Aufzeichnung von Quellenänderungen
unter Verwendung einer "ODER"-Verknüpfung mit
der Struktur 220 zur Aufzeichnung von Zieländerungen
verknüpft,
und das Ergebnis der "ODER"-Verknüpfung wird
mit der Zielkopierstruktur 200 "ODER-verknüpft".
-
Nachdem
die Zielkopierstruktur 200 aktualisiert wurde, aktualisiert
der inkrementelle virtuelle Kopierprozess 116 im Block 420 Anzeiger
in der Struktur 210 zur Aufzeichnung von Quellenänderungen,
um anzuzeigen, das die Quellendatenblöcke seit dem letzten inkrementellen
virtuellen Kopiervorgang nicht aktualisiert wurden. In bestimmten
Ausführungen
der Erfindung werden alle Anzeiger in der Struktur 210 zur
Aufzeichnung von Quellenänderungen
auf null gesetzt. Im Block 430 aktualisiert der inkrementelle
virtuelle Kopierprozess 116 die Anzeiger in der Struktur 220 zur
Aufzeichnung von Zieländerungen,
um anzuzeigen, dass die Zieldatenblöcke seit dem letzten inkrementellen
virtuellen Kopiervorgang nicht aktualisiert wurden. In bestimmten
Ausführungen
der Erfindung werden alle Anzeiger in der Struktur 220 zur
Aufzeichnung von Zieländerungen auf
null gesetzt.
-
5 veranschaulicht
die im Schreibprozess 114 realisierte Logik zur Verarbeitung
eines Schreibvorgangs gemäß bestimmten
Ausführungen der
Erfindung. Die Steuerung beginnt beim Block 500 mit dem
Empfang einer Anforderung zum Schreiben eines Datenblocks durch
den Schreibprozess 114. Im Block 520 stellt der
Schreibprozess 114 fest, ob der Datenblock sich in einer
inkrementellen virtuellen Kopierbeziehung befindet. Ist dies der
Fall, geht die Verarbeitung weiter zum Block 530, andernfalls
geht die Verarbeitung weiter zum Block 560. Im Block 530 stellt
der Schreibprozess 114 fest, ob der Datenblock sich im
Zielspeicher 130 befindet. Ist dies der Fall, geht die
Verarbeitung weiter zum Block 540, andernfalls geht die
Verarbeitung weiter zum Block 550.
-
Im
Block 540 wird der Anzeiger für den Datenblock in der Struktur 220 zur
Aufzeichnung von Zieländerungen
aktualisiert, um anzuzeigen, dass der Zieldatenblock seit dem letzten
inkrementellen virtuellen Kopiervorgang geändert wurde. In bestimmten
Ausführungen
der Erfindung wird der Anzeiger in der Struktur 220 zur
Aufzeichnung von Zieländerungen
auf eins gesetzt. Im Block 550 wird der Anzeiger für den Datenblock
in der Struktur 210 zur Aufzeichnung von Quellenänderungen
aktualisiert, um anzuzeigen, dass der Quellendatenblock seit dem
letzten inkrementellen virtuellen Kopiervorgang geändert wurde.
In bestimmten Ausführungen
der Erfindung wird der Anzeiger in der Struktur 210 zur
Aufzeichnung von Quellenänderungen
auf eins gesetzt. Im Block 560 wird der Schreibvorgang
durch den Schreibprozess 114 ausgeführt.
-
6 veranschaulicht
die im Leseprozess 112 realisierte Logik zur Verarbeitung
eines Lesevorgangs gemäß bestimmten
Ausführungen
der Erfindung. Die Steuerung beginnt beim Block 600 mit
dem Empfang einer Anforderung zum Lesen eines Datenblocks. Im Block 620 stellt
der Leseprozess 112 fest, ob der Datenblock ein Ziel in
einer inkrementellen virtuellen Kopierbeziehung ist. Ist dies der
Fall, geht die Verarbeitung weiter zum Block 630, andernfalls
geht die Verarbeitung weiter zum Block 660. Im Block 630 stellt
der Leseprozess fest, ob ein Anzeiger für den Datenblock in der Zielkopierstruktur
gesetzt ist, um anzuzeigen, dass Daten aus dem Quellenspeicher 120 gelesen
werden müssen.
Ist dies der Fall, geht die Verarbeitung weiter zum Block 640,
andernfalls geht die Verarbeitung weiter zum Block 650.
-
Im
Block 640 liest der Leseprozess 112 den Datenblock
aus dem Quellenspeicher 120 (d.h., er speichert diesen
ein). Im Block 650 liest der Leseprozess 112 den
Datenblock aus dem Zielspeicher 130 (d.h., er speichert
diesen ein). Im Block 660 führt der Leseprozess 112 einen
normalen Lesevorgang des Datenblocks aus.
-
7 veranschaulicht
einen Hintergrundkopierprozess gemäß bestimmten Ausführungen
der Erfindung. Die Steuerung beginnt beim Block 700 mit einer
Feststellung, dass es an der Zeit ist, einen Datenblock zu kopieren.
Im Block 710 wird festgestellt, ob der Anzeiger in der
Zielkopierstruktur 200 für den Datenblock anzeigt, dass
der Datenblock nicht kopiert wurde. Ist dies der Fall, geht die
Verarbeitung weiter zum Block 730, andernfalls geht die
Verarbeitung weiter zum Block 720. Im Block 720 kann
ein nächster
Datenblock verarbeitet werden, oder diese Logik endet, falls keine
weiteren Datenblöcke
verarbeitet werden müssen.
-
Im
Block 730 wird der Datenblock gemäß der Logik von 6 gelesen.
Im Block 740 wird der Datenblock in den Zielspeicher 130 ausgespeichert.
Im Block 750 wird ein Anzeiger in der Zielkopierstruktur 200 für den Datenblock
aktualisiert, um anzuzeigen, dass der Datenblock kopiert wurde.
In bestimmten Ausführungen
der Erfindung wird der Anzeiger in der Zielkopierstruktur 200 auf
null gesetzt.
-
Folglich
wird der inkrementelle virtuelle Kopiervorgang in bestimmten Ausführungen
der Erfindung durch die Überwachung
von Schreibvorgängen (d.h.
Aktualisierungen) und die Aufzeichnungen von Änderungen an Spuren für Datenträger ausgeführt, die
Teil einer virtuellen Sofortkopierbeziehung sind. Nach einem anfänglichen
virtuellen Sofortkopiervorgang können
Spuren, die auf einem Quellen- oder Zieldatenträger aktualisiert wurden, vom
Quellendatenträger
in den Zieldatenträger
kopiert werden, ohne den gesamten Quellendatenträger zu kopieren.
-
Enterprise
Storage Server, FlashCopy und 3990 sind eingetragene Warenzeichen
oder Warenzeichen nach bürgerlichem
Recht (common law marks) von International Business Machines Corporation
in den Vereinigten Staaten von Amerika und/oder anderen Ländern.
-
Zusätzliche Einzelheiten der Ausführung
-
Die
beschriebenen Verfahren für
inkrementelle virtuelle Kopiervorgänge können unter Verwendung von Standardprogrammierverfahren
und/oder technischen Verfahren zur Erzeugung von Software, Firmware,
Hardware oder einer beliebigen Kombination von diesen als ein Verfahren,
eine Vorrichtung oder ein gewerblich erzeugter Gegenstand realisiert werden.
Der hierin verwendete Begriff "gewerblich erzeugter
Gegenstand" bezieht
sich auf einen Code oder eine Logik, die in einer Hardwarelogik
(z.B. einem integrierten Schaltkreischip, einer programmierbaren
Schaltelementanordnung (Programmable Gate Array, PGA), einem anwendungsspezifischen integrierten
Schaltkreis (Application Specific Integrated Circuit, ASIC) usw.)
oder in einem computerlesbaren Medium, beispielsweise einem Magnetspeichermedium
(z.B. Festplattenlaufwerke, Disketten, Band usw.), einem optischen
Speicher (CD-ROMs, optische Platten usw.), flüchtigen und nichtflüchtigen Speichereinheiten
(z.B. EEPROMs, ROMs, PROMs, RAMs, DRAMs, SRAMs, Firmware, programmierbare
Logik usw.) realisiert werden. Ein Prozessor greift auf den Code
im computerlesbaren Medium zu und führt diesen aus. Auf den Code,
in dem bevorzugte Ausführungsformen
realisiert werden, kann außerdem
durch Übertragungsmedien
oder von einem Dateiserver über
ein Netz zugegriffen werden. In solchen Fällen kann der gewerblich erzeugte
Gegenstand, in dem der Code realisiert ist, ein Übertragungsmedium umfassen,
beispielsweise eine Netzübertragungsleitung,
ein drahtloses Übertragungsmedium,
Signalübertragung
per Satellit, Funkwellen, Infrarotsignale usw. Außerdem kann
der "gewerblich erzeugte
Gegenstand" eine
Kombination von Hardware- und Softwarekomponenten umfassen, in denen
der Code enthalten ist, verarbeitet und ausgeführt wird. Fachleute werden
selbstverständlich
erkennen, dass viele Änderungen
an dieser Konfiguration vorgenommen werden können, ohne vom Anwendungsbereich
der vorliegenden Erfindung abzuweichen, und dass der gewerblich
erzeugte Gegenstand ein beliebiges, nach dem Stand der Technik bekanntes
datentragendes Medium umfassen kann.
-
Die
Logik der 3 bis 7 beschreibt spezifische
Vorgänge,
die in einer bestimmten Reihenfolge stattfinden. In alternativen
Ausführungen können bestimmte
der Logikvorgänge
in einer anderen Reihenfolge ausgeführt, geändert oder entfernt werden.
Außerdem
können
Vorgänge
zu der oben beschriebenen Logik hinzugefügt werden und dennoch den beschriebenen
Ausführungen
entsprechen. Außerdem
können
die hierin beschriebenen Vorgänge
sequenziell stattfinden, oder bestimmte Vorgänge können parallel ausgeführt werden,
oder Vorgänge, die
gemäß der Beschreibung
von einem einzigen Prozess ausgeführt werden, können von
verteilten Prozessen ausgeführt
werden.
-
Die
dargestellte Logik der 3 bis 7 kann in
Form von Software, Hardware, einer programmierbaren oder nichtprogrammierbaren
Standardschaltkreislogik (gate array logic) oder als eine Kombination
von Hardware, Software oder einer Standardschaltkreislogik realisiert
werden.
-
8 veranschaulicht
eine Architektur eines Computersystems, das gemäß bestimmten Ausführungen
der Erfindung verwendet werden kann. Eine Speichersteuereinheit 100 und/oder
ein Host 140 können
die Computerarchitektur 800 realisieren. Die Computerarchitektur 800 kann
einen Prozessor 802 (z.B. einen Mikroprozessor), einen
Speicher 804 (z.B. eine flüchtige Speichereinheit) und
einen Speicher 810 (z.B. einen nichtflüchtigen Speicherbereich, beispielsweise
Magnetplattenlaufwerke, optische Plattenlaufwerke, ein Bandlaufwerk
usw.) beinhalten. Ein Betriebssystem 805 kann im Speicher 804 ausgeführt werden.
Der Speicher 810 kann eine interne Speichereinheit oder
einen verbundenen oder über ein
Netz zugänglichen
Speicher umfassen. Computerprogramme 806 im Speicher 810 können in
den Speicher 804 geladen und vom Prozessor 802 auf eine
nach dem Stand der Technik bekannte Weise ausgeführt werden. Außerdem beinhaltet
die Architektur eine Netzkarte 808, um den Datenaustausch mit
einem Netz zu ermöglichen.
Eine Eingabeeinheit 812 wird zur Übertragung einer Benutzereingabe
an den Prozessor 802 verwendet, dabei kann es sich um eine
Tastatur, eine Maus, einen elektronischen Stift, ein Mikrofon, einen
berührungsempfindlichen
Bildschirm oder einen beliebigen anderen nach dem Stand der Technik
bekannten Betätigungs-
oder Eingabemechanismus handeln. Eine Ausgabeeinheit 814 kann
Daten, die vom Prozessor 804 oder einer anderen Komponente,
z.B. einem Bildschirm, einem Drucker, einem Speicher usw. übertragenen
wurden, wiedergeben. Die Computerarchitektur 800 des Computersystems
kann weniger Komponenten als dargestellt, zusätzliche, hierin nicht gezeigte
Komponenten oder eine Kombination aus den dargestellten und zusätzlichen
Komponenten beinhalten.
-
Die
Computerarchitektur 800 kann eine beliebige nach dem Stand
der Technik bekannte Datenverarbeitungseinheit umfassen, beispielsweise
einen Großrechner,
einen Server, einen Personal Computer, einen Arbeitsplatzrechner,
einen Laptop-Computer, einen Taschencomputer, eine Fernsprecheinheit, eine
Netzanwendung, eine Virtualisierungseinheit, eine Speichersteuereinheit
usw. Jeder Prozessor 802 und jedes Betriebssystem 805,
die nach dem Stand der Technik bekannt sind, können verwendet werden.
-
Die
vorhergehende Beschreibung von Ausführungen der Erfindung dient
zur Veranschaulichung und Beschreibung. Sie soll nicht erschöpfend sein
oder die Erfindung auf die genaue beschriebene Form begrenzen. Viele Änderungen
sind unter dem Aspekt der obigen Lehre möglich. Es ist vorgesehen, dass
der Anwendungsbereich der Erfindung nicht durch diese ausführliche
Beschreibung, sondern durch die angehängten Ansprüche begrenzt wird. Die obigen
Angaben, Beispiele und Daten stellen eine vollständige Beschreibung der Herstellung
und Verwendung der Erfindung bereit. Da viele Ausführungen
der Erfindung ohne Abweichung vom Anwendungsbereich der Erfindung
möglich
sind, befindet sich die Erfindung in den im Folgenden angehängten Ansprüchen.