-
Datenspeicherungsadministratoren
verwenden seit langem Systemsicherungen bzw. Systembackups, um einen
Schutz von wertvollen Daten sicherzustellen. Backups wurden herkömmlicherweise während der
Abschaltung bzw. einem Herunterfahren anderer Anwendungen durchgeführt, ein
Prozess, der häufig
nachts oder außerhalb
der Geschäftszeiten
durchgeführt
wird. Der höchst
erwünschte
Nutzen von kontinuierlich verfügbaren Speicherungssystemen
ist für
derartige herkömmliche
Backup-Operationen nicht verfügbar.
-
Schnappschusstechniken
wurden entwickelt, um Backup-Operationen
zu ermöglichen,
die eine Unterbrechung anderer Operationen vermeiden. Ein Schnappschussbild
kann als eine Quelle des Backups verwendet werden. Ein Schnappschuss wird
allgemein durch ein Stilllegen von Anwendungen und Durchführen einer
Kopie genommen, die beinahe sofort erzeugt wird, sodass ein Benutzer
im Wesentlichen keine Verzögerung
bemerkt.
-
Ein
häufiger
Grund, um Informationen wiederherzustellen bzw. zurückzuspeichern,
ist ein Benutzerfehler, wie beispielsweise eine versehentliche Löschung oder
Modifikationen an einer Datei, die der Benutzer nachfolgend umkehren
möchte.
Schnappschusstechniken ermöglichen
die Fähigkeit,
eine gespeicherte Kopie der Daten in sofortiger Verfügbarkeit
für eine
schnelle und effiziente Datenlokalisierung und -wiederherstellung
zu halten.
-
Es
ist eine Aufgabe der vorliegenden Erfindung, ein Verfahren zum Schützen von
Daten, ein Speicherungssystem und ein Computersystem mit verbesserten
Charakteristika zu schaffen.
-
Diese
Aufgabe wird durch ein Verfahren gemäß Anspruch 1, ein Speicherungssystem
gemäß Anspruch
7 und ein Computersystem gemäß Anspruch
13 gelöst.
-
Gemäß einem
Ausführungsbeispiel
eines Datenspeicherungssystems umfasst ein Verfahren zum Schützen von
Daten ein Verteilen von Daten über
eine Mehrzahl von Schnappschüssen
einer Stamm-Logikeinheit (LUN = logical unit), wenn Daten der Stamm-LUN
von den Schnappschüssen
divergieren.
-
Ausführungsbeispiele
der Erfindung, die sich sowohl auf eine Struktur als auch ein Betriebsverfahren
beziehen, werden am besten durch Bezugnahme auf die folgende Beschreibung
und die zugehörigen Zeichnungen
ersichtlich.
-
Bevorzugte
Ausführungsbeispiele
der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf
die beiliegenden Zeichnungen näher
erläutert.
Es zeigen:
-
1A und 1B schematische
Blockdiagramme, die Datenstrukturen darstellen, die bei einem Speicherungssystem
zum Implementieren einer Schnappschussfunktionalität verwendet
werden, bei der eine Granularität
von Abbildungen eines Arrays die gleiche wie die Granularität ist, mit
der die Divergenz zwischen der Schnappschusskopie und den ursprünglichen
Daten innerhalb des Arrays aufgezeichnet ist;
-
2A und 2B schematische
Blockdiagramme, die Datenstrukturen darstellen, die bei einem Speicherungssystem
zum Implementieren einer Schnappschussfunktionalität verwendet
werden, bei der eine Granularität
von Abbildungen eines Arrays nicht die gleiche wie die Granularität ist, mit
der die Divergenz zwischen der Schnappschusskopie und den ursprünglichen
Daten innerhalb des Arrays aufgezeichnet ist;
-
3A und 3B schematische
Blockdiagramme, die Datenstrukturen zeigen, die bei einem Ausführungsbeispiel
eines Speicherungssystems verwendet werden, das eine Schnappschussfunktionalität implementiert,
bei der Daten über
eine Mehrzahl von Schnappschüssen
verteilt sind;
-
4A, 4B und 4C bildliche
Blockdiagramme sind, die ein Ausführungsbeispiel eines Speicherungssystems
zeigen, das eine Schnappschussfunktionalität durch ein Verteilen von Daten über eine
Mehrzahl von Schnappschüssen
verwaltet; und
-
5 ein
schematisches Blockdiagramm, das ein Ausführungsbeispiel eines Computersystems zu
einer Verwendung bei einem Speicherungssystem darstellt, das eine
Schnappschussfunktionalität durch
ein Verteilen von Daten über
eine Mehrzahl von Schnappschüssen
verwaltet.
-
Speicherungsvorrichtungen
können
auf eine Weise konfiguriert sein, die eine verbesserte Leistungsfähigkeit
und Zuverlässigkeit
ermöglicht.
Insbesondere verwenden Speicherungsvorrichtung in der Form von redundanten
Arrays von Laufwerken (RAID = Redundant Arrays of Independent Disks)
zwei oder mehr Speicherungslaufwerke in Kombination, um eine Fehlertoleranz
und Leistungsfähigkeit
zu erzielen. RAID-Speicherungsarrays
können
in zwei Typen gruppiert sein, einschließlich herkömmlicher und virtueller RAID-Speicherungsarraytypen.
Herkömmliche
Arrays sind durch eine feste Abbildung eines Adressraums von einem
Hostcomputer zu physischen Medien definiert. Folglich können bei
einem herkömmlichen
Array, die Adresse vorausgesetzt, bei der der Hostcomputer auf ein
spezielles Stück
von Daten zugreift, die Daten physisch auf dem tatsächlichen
Speicherungslaufwerk positioniert sein, die das RAID-Array bilden.
Bei einem virtuellen Array existiert zumindest eine Ebene einer
Umleitung, auch Virtualisation genannt, zwischen der Adres se, die
der Hostcomputer verwendet, um auf ein spezielles Stück von Daten
an dem Array zuzugreifen, und der tatsächlichen physischen Position
für diese
Daten auf den Speicherungslaufwerken, die das RAID-Array bilden.
Bei dem virtuellen Array, bei dem die spezifische Hostadresse für das Datenstück bekannt
ist, kann die tatsächliche
physische Position dieser Daten auf irgendeinem der Laufwerke in
dem Array sein. Die Umleitungsschicht, die bei dem virtuellen Array existiert,
wird durch ein Abbilden von hostbasierten Adressen zu der physischen
Position von Baten auf den Speicherungslaufwerken erzeugt.
-
Abbildungen
ermöglichen
eine virtuelle Arrayfunktionalität
und können
verwendet werden, um bei einer Fähigkeit
zu unterstützen,
Schnappschusskopien von gespeicherten Datenvolumen zu machen. Eine
Schnappschusskopie sichert Informationen, wobei eine Zeitpunkt-Kopie
eines ausgewählten
Datensatzes ermöglicht
wird. Bei einem herkömmlichen
Array wird eine Schnappschusskopie durch ein Unterbinden von Schreibvorgängen zu
dem Volumen, das kopiert wird, ein Bewahren des Volumenzustands
zu dem Zeitpunkt, gefolgt durch ein Kopieren jedes Stücks von
Daten von dem Volumen, das kopiert wird, zu dem neuen Adressraum
erzielt, der die Zeitpunkt-Kopie
darstellt. Erst nachdem jedes Datenstück von dem ursprünglichen
Volumen kopiert ist, werden Schreibvorgänge zu dem Volumen, das kopiert
wird, wieder aufgenommen. Abhängig
von der Schnappschussgröße, zum
Beispiel der Menge an kopierten Daten, kann der Prozess eine unannehmbare
Zeitdauer benötigen.
-
Bei
einem virtuellen Array kann der Schnappschussprozess stark vereinfacht
sein. Als ein Nebenprodukt einer Virtualisierung existieren bereits
Abbildungen von dem ursprünglichen
Volumen von Adressen zu den zugeordneten physischen Positionen.
Unter Verwendung der Virtualisierungsabbildungen kann eine Zeitpunkt-Kopie
einfach durch ein Kopieren der Abbildungen zu dem neuen Adressraum
erzeugt werden, der die Zeitpunkt-Kopie darstellt. Bei einer typischen
Imple mentierung sind sowohl die ursprüngliche Hostadresse als auch
die zugeordnete Schnappschusskopieadresse zu den gleichen physischen
Positionen auf den Speicherungsvorrichtungen abgebildet. Somit ist
ein Schnappschuss in der geringen Zeitdauer abgeschlossen, die benötigt wird,
um die Abbildungen zu kopieren. Die virtuellen Arrays ermöglichen
eine Schnappschussfunktionalität,
die viel schneller vonstatten geht, als die Operation des herkömmlichen
Arrays eines Kopierens aller Daten von einer physischen Position
zu einer anderen.
-
Die
Schnappschusstechnik eines virtuellen Arrays lässt jedoch das Problem der
nachfolgenden Datenmodifikation ungelöst. Eine Modifikation der ursprünglichen
Daten kann unter zwei Bedingungen auftreten. Bei einem ersten Zustand,
der in den schematischen Blockdiagrammen dargestellt ist, die in 1A und 1B gezeigt
sind, ist eine Granularität der
Abbildungen des Arrays die gleiche wie die Granularität, mit der
die Divergenz zwischen der Schnappschusskopie und den ursprünglichen
Daten innerhalb des Arrays aufgezeichnet ist. Eine Granularität kann zum
Beispiel als die größte des
zusammenhängenden
physischen Bereichs definiert sein, der durch einen Abbildungseintrag
definiert ist. Folglich entspricht bei dem Zustand 100,
der in 1A und 1B gezeigt
ist, die Granularität
einer Divergenz genau der Größe und Position
von Abbildungseinträgen.
-
1A zeigt
den Zustand 100 vor dem Schreiben von neuen Daten zu einem
Abbildungseintrag 1 102. Der Abbildungseintrag 1 102 zeigt
zu gespeicherten Daten 1 104. Ein Abbildungseintrag 2 106 zeigt
zu gespeicherten Daten 2 108. ein Schnappschusseintrag
1 110 zeigt ebenfalls zu den gespeicherten Daten 1 104.
Ein Schnappschusseintrag 2 112 zeigt ebenfalls zu den gespeicherten
Daten 2 106.
-
1B zeigt
den Zustand 120, nachdem neue Daten zu dem Abbildungseintrag
1 102 geschrieben werden. Bei dem virtuellen Array wird
der Schnappschuss durch ein Schreiben der modifizierten ursprünglichen
Daten zu einer neuen Position genommen, die bei dem darstellenden
Beispiel als gespeicherte Daten 3 122 etikettiert ist.
Die Schnappschusskopie, die als der Schnappschusseintrag 1 110 gezeigt
ist, zeigt weiter zu den ursprünglichen physischen
Daten bei der ursprünglichen
Position, die als die gespeicherten Daten 1 104 gezeigt
ist. Die ursprünglichen
Daten, die mit Abbildungseintrag 1 102 etikettiert sind,
werden verändert,
um zu der neuen physischen Position 122 zu zeigen. Somit
wird die Divergenz der Schnappschusskopie und der ursprünglichen
Daten durch ein Schreiben der neuen Daten in eine neue Position
erzielt.
-
Die
Technik ist funktionsfähig,
wenn die Granularität
der Abbildungen des Arrays die gleiche wie die Granularität einer
Divergenz ist. Bei einem alternativen Zustand, der in 2A und 2B gezeigt ist,
ist eine Schnappschussdivergenz bei dem Zustand 200 gezeigt,
wenn eine Divergenzgranularität und
eine Abbildungsgranularität
unterschiedlich sind. 2A zeigt den Zustand 200 vor
dem Schreiben neuer Daten zu dem Abbildungseintrag 1 202.
Der Abbildungseintrag 1 202 zeigt zu gespeicherten Daten
1 204. Ein Abbildungseintrag 2 206 zeigt zu gespeicherten
Daten 2 208. Ein Schnappschusseintrag 1 210 zeigt
zu Schnappschusszieldaten 214 und ein Schnappschusseintrag
2 212 zeigt zu Schnappschusszieldaten 216.
-
2B stellt
den Zustand 220 dar, nachdem neue Daten zu dem Abbildungseintrag
1 202 geschrieben werden. Bevor die Speicherungspositionen,
die die ursprünglichen
Daten halten, die als gespeicherte Daten 1 204 etikettiert
sind, geschrieben werden können,
wobei modifizierte gespeicherte Daten 1 222 gebildet werden,
werden die ursprünglichen
Daten von der ursprünglichen
Position in den gespeicherten Daten 1 204 zu einer anderen
physischen Position kopiert, die als ursprüngliche gespeicherte Daten
1 224 dargestellt ist, um eine geeignete Zeitpunkt-Kopie
beizubehalten. Die Schnappschusseinträge 1 210 und 2 212 zeigen
zu der neuen physischen Position, die nun die Schnappschusszieldaten 214 bzw.
die Schnappschusszieldaten 216 enthält. Nicht nur die ursprünglichen
Daten, die gespeicherten Daten 1 204, sondern alle ursprünglichen Daten,
die dem Schnappschuss zugeordnet sind, werden zu der neuen physischen
Position kopiert, sodass der Schnappschusseintrag 1 210 und
der Schnappschusseintrag 2 212 weiterhin zu einer vollständigen Zeitpunkt-Kopie
zeigen. Bei dem darstellenden Beispiel, das in 2B gezeigt
ist, werden die gespeicherten Daten 2 208 zu der neuen
physischen Position 226 kopiert. Um die ursprünglichen Daten
beizubehalten, wird ein Inhalt der physischen Speicherungspositionen
nicht modifiziert, bis die ursprünglichen
Daten kopiert sind. Eine Schwierigkeit der Schnappschussoperation
besteht darin, dass eine Modifikation eines Datenstücks das
Kopieren von viel mehr Daten bewirken kann, wobei möglicherweise
eine dramatische Erhöhung
der für
eine Datenmodifikation benötigten
Zeit bewirkt wird, verglichen mit einem System, das keine Schnappschüsse verwendet.
-
Ein
Beispiel einer Datenmodifikation, die eine dramatische Wirkung auf
eine Leistungsfähigkeit
aufweisen kann, ist eine Löschung
der ursprünglichen
Daten, wobei möglicherweise
bewirkt wird, dass zahlreiche Datenstücke in einer sehr kurzen Zeitperiode
kopiert werden. Das Problem verschlimmert sich, falls mehrere Schnappschüsse von
den gleichen Daten genommen werden. Bei einem herkömmlichen
System werden Daten, wenn eine Stamm-Logikeinheit (Stamm-LUN; LUN
= logical unit) gelöscht
wird, zu dem ersten Schnappschuss geschrieben und alle anderen Schnappschüsse zeigen
zu dem ersten. Falls der erste Schnappschuss dann gelöscht wird,
werden die Daten alle zu dem nächsten,
beispielsweise zweiten Schnappschuss umgeschrieben und alle verbleibenden
Schnappschüsse
werden dann zu dem zweiten Schnappschuss zeigen. Falls der zweite
Schnappschuss nachfolgend gelöscht
wird, dann wird die gleiche Operation erneut durchgeführt, wobei
alle Daten erneut zu nachfolgenden Schnappschüssen umgeschrieben werden.
Auf diese Weise können
alle Daten in einem gegebenen Schnappschuss zahlreiche Male kopiert
werden, abhängig
davon, wann spezielle Schnappschüsse
gelöscht
werden, wodurch Zeit und Ressourcen bei einem unproduktiven Kopieren verschwendet
werden.
-
Gemäß vielen
Ausführungsbeispielen
eines verbesserten Speicherungssystems und verbesserter Speicherungssystem-Handhabungstechniken wird,
wenn eine Divergenz auftritt, anstelle eines Kopierens aller Daten
zu einem Schnappschuss ein Abschnitt der Daten über mehrere Schnappschüsse verteilt.
Eine Datendivergenz kann zum Beispiel auftreten, wenn eine Stamm-Logikeinheit
(Stamm-LUN) gelöscht
wird. Unter Bezugnahme auf 3A und 3B zeigen
perspektivische Blockdiagramme eine Speicherungskonfiguration 300,
die einem Ausführungsbeispiel
eines Verfahrens zum Schützen
von Daten zugeordnet ist. Das Verfahren betrifft ein Verteilen von
Daten 302 über
eine Mehrzahl von Schnappschüssen 304A,
B, C und D einer Stamm-Logikeinheit (Stamm-LUN) 306, wenn
Daten der Stamm-LUN von den Schnappschüssen divergieren.
-
Verschiedene
Typen von Stamm-LUN-Datendivergenzzuständen können für eine Erfassung ausgewählt sein,
einschließlich
einer Löschung
einer Stamm-LUN, Datenschreiboperationen zu der Stamm-LUN und eines
Ausfalls der Stamm-LUN. Nach einer Erfassung der Divergenz der Stamm-LUN-Daten
können
die divergierten Daten in eine Mehrzahl von Abschnitten verteilt
werden und die verteilten Datenabschnitte zu der Mehrzahl von Schnappschüssen geschrieben
werden. Bei einigen Ausführungsbeispielen
können
die Daten über
die Mehrzahl von Schnappschüssen
in im Wesentlichen gleichen Anteilen verteilt werden.
-
Die
Anzahl von Schnappschüssen
kann mit der Zeit variieren. Auf eine Modifikation der Anzahl von
Schnappschüssen
hin können
die Daten im Wesentlichen gleichmäßig über die Mehrzahl von Schnappschüssen verteilt
werden. Daten werden nicht nur für
Zustände
einer mathematisch genauen Zuteilung von Daten im Wesentlichen oder
näherungsweise
gleichmäßig über den
Schnappschüssen verteilt,
sondern umfassen auch Situationen, bei denen eine exakte Genauigkeit
nicht möglich
oder erwünscht
ist. Zum Beispiel sind die Daten eventuell nicht gleichmäßig in eine
spezielle Anzahl von Schnappschüssen
bei einer speziellen Granularität von
Daten teilbar. Folglich können
die Daten zu zugeteilten Schnappschüssen in den Daten in einer
grob gleichmäßigen Verteilung
verteilt werden.
-
Die
Schnappschussdaten können
auf irgendwelchen geeigneten Medien gespeichert sein, einschließlich zum
Beispiel Magnetplatten, optischen Platten, Compact Disks (CD), CD-R,
CD-RW, Disketten, Bändern,
Bandkassetten und dergleichen.
-
Durch
ein Ansprechen auf eine Datendivergenz und ein Kopieren eines Abschnitts
der Daten zu jedem Schnappschuss variiert der spezielle Schnappschuss,
der irgendeinen speziellen Teil der Daten „besitzt", und falls ein einzelner Schnappschuss
gelöscht
wird, muss lediglich ein Abschnitt der Daten umkopiert werden. Vorteile
der Technik erhöhen
sich, wenn sich die Anzahl von Schnappschüssen erhöht. Zum Beispiel weist ein
System, das mit einem einzigen Schnappschuss konfiguriert ist, keinen
Vorteil auf, aber wenn sich die Anzahl von Schnappschüssen auf
zwei oder mehr erhöht,
ist eine Leistungsfähigkeit
verbessert.
-
Die
Zustände,
die in 3A und 3B dargestellt
sind, zeigen eine Stamm-LUN, die vier Schnappschüsse 304A, B, C und
D aufweist. Bei einer herkömmlichen
Praxis eines Speicherungssystems mit einer Schnappschussfähigkeit
werden dann, wenn eine Stamm-LUN gelöscht wird, alle Daten zu dem
nächsten
Schnappschuss kopiert und die verbleibenden drei Schnappschüsse zeigen
zu dem ersten Schnappschuss. Falls der erste Schnappschuss nachfolgend
gelöscht
wird, dann werden alle Daten zu dem zweiten Schnappschuss kopiert
und der verbleibende dritte und vierte Schnappschuss zeigen wiederum
zu dem zweiten Schnappschuss. In dem schlimmstmöglichen Fall werden Daten viermal kopiert.
-
Im
Gegensatz dazu reduziert die in 3A und 3B dargestellte
Technik ein Kopieren wesentlich als ein Ergebnis einer Datendivergenz. Wenn
eine Divergenz auftritt, zum Beispiel eine Löschung einer Stamm-LUN, kann
zum Beispiel anstelle eines Kopierens aller Daten zu dem ersten Schnappschuss 304A ein
Viertel der Daten zu jedem der Schnappschüsse 304A, B, C und
D kopiert werden. Falls ein Schnappschuss gelöscht wird, werden Daten korrekt
durch ein Umkopieren lediglich eines Viertels der Daten verwaltet
und die umkopierten Daten werden über den drei verbleibenden
Schnappschüssen
verteilt. Falls ein anderer Schnappschuss gelöscht werden soll, wird lediglich
ein Drittel der Daten umkopiert und die umkopierten Daten werden gleichmäßig über die
zwei verbleibenden Schnappschüsse
verteilt. Falls schließlich
einer der verbleibenden Schnappschüsse gelöscht wird, wird lediglich die
Hälfte
der Daten zu dem letzten verbleibenden Schnappschuss umkopiert.
Nach der Löschung der
ersten Stamm-LUN und der nachfolgenden Datenkopie wird folglich
schlimmstenfalls lediglich ¼+1/3+½ der Daten
bei nachfolgenden Schnappschusslöschungen
kopiert. Im Gegensatz dazu würde
die herkömmliche
Technik nach der anfänglichen Löschung der
Stamm-LUN möglicherweise
alle Daten dreimal kopieren.
-
Obwohl
das darstellende Beispiel ein Divergenzereignis als eine Löschung einer
Stamm-LUN beschreibt, ist die Technik gleichermaßen auf irgendeinen Umstand
anwendbar, der bewirkt, dass die Stamm-LUN und der Schnappschuss
divergieren. Divergenzereignisse umfassen ferner divergierende Schreibvorgänge zu der
Stamm-LUN sowie andere Ereignisse. Folglich kann die Technik bei
einem anderen Beispiel verwendet werden, um Daten zu verteilen,
wenn divergierende Schreibvorgänge
zu der Stamm-LUN gesendet werden. Somit kann ein divergierender
Schreibvorgang verwendet werden, um ursprüngliche Daten zu einem Schnappschuss
zu kopieren, und ein nächster
divergierender Schreibvorgang kann die kopierten Daten zu dem nächsten Schnappschuss
kopieren, usw., so dass einzelne Schnappschüsse im Wesentlichen gleiche
Abschnitte der divergierenden Daten „besitzen".
-
Zu
einer jeglichen gegebenen Zeit sind Daten im Wesentlichen gleichmäßig über lediglich
den existierenden Schnappschüssen
verteilt, wodurch die Kopierlast des Schnappschussverwaltungssystems
reduziert ist. Bei einem Beispiel, bei dem eine Stamm-LUN bereits
zwei existierende Schnappschüsse
aufweist, verwenden mit der Zeit die zwei Schnappschüsse alle
divergierten Daten von der Stamm-LUN gleichmäßig. Wenn ein dritter Schnappschuss
des Stamms genommen wird, muss der neue Schnappschuss nicht „bevorzugt" werden, um schließlich so
viele divergierte Daten wie die ursprünglichen zwei Schnappschüsse zu empfangen, weil
der dritte Schnappschuss keine divergierten Daten gemeinschaftlich
verwendet, die vorhergehend durch die zwei ursprünglichen Schnappschüsse empfangen
wurden. Somit werden zu der Zeit, zu der der dritte Schnappschuss
entsteht, die divergierenden Schreibvorgänge erst dann gleichmäßig über den
drei Schnappschüssen
verteilt. Ereignisse, die vor der Erzeugung des dritten Schnappschusses
auftreten, sind für
die aktuelle Verteilung irrelevant. Die Verteilungszuteilung ist
lediglich durch die Anzahl von Schnappschüssen bestimmt, die gegenwärtig existieren.
-
Das
Konzept eines Verteilens von Daten im Wesentlichen gleichmäßig über mehrere
Schnappschüsse
einer Stamm-LUN, wenn Daten der Stamm-LUN von den Schnappschüssen divergieren, ist
zu einer Verallgemeinerung irgendeines Grunds, Umstands oder einer
Bedingung in der Lage, der oder die in einer Divergenz zwischen
der Stamm-LUN und dem Schnappschuss resultiert. Die Technik kann
ferner für
irgendein geeignetes Speicherungsverfahren verallgemeinert werden,
das eine Schnappschussfunktionalität unterstützt, möglicherweise einschließlich verschiedener
Typen eines redundanten Arrays von Laufwerken (RAID), einschließlich eines
oder mehrerer von RAID0, RAID1, RAID2, RAID3, RAID4, RAID5, RAID6,
RAID7, RAID10, und dergleichen. Gleichermaßen kann die Technik für irgendwelche
geeigneten Speicherungsmedien verwendet werden, die eine Schnappschussfunktionalität unterstützen, vielleicht
einschließlich
verschiedener Magnetplatten, optischer Platten, Compact Disks (CD),
CD-R, CD-RW, Disketten,
Bändern,
Bandkassetten und dergleichen. Ebenfalls kann die Technik ferner
für irgendeinen
geeigneten Divergenzursprung, einen Zustand, ein Speicherungsverfahren oder
Medien verallgemeinert werden, die eine Schnappschussfunktionalität bei zukünftigen
Entwicklungen unterstützen.
-
Mit
Bezug auf 4A, 4B und 4C stellen
bildhafte Blockdiagramme ein Ausführungsbeispiel eines Speicherungssystems 400 dar,
das einen physischen Speicher 402 mit einem Basisvolumen 404 und
zumindest einen physischen Block 406A, B, C und D und einen
logischen Speicher 408 umfasst, der ein Schnappschussvolumen 410 und
einen Schnappschussindex 412 umfasst. Das Speicherungssystem 400 umfasst
ferner ein Schnappschuss-Teilsystem (ST-System) 414, das
zum Unterstützen
von Zeigern von dem Schnappschussvolumen zu ausgewählten der
physischen Blöcke
zu einem Zeitpunkt in der Lage ist. Das Schnappschuss-Teilsystem 414 definiert
eine Stamm-Logikeinheit (Stamm-LUN; LUN = logical unit) und verteilt Daten über eine
Mehrzahl von Schnappschüssen
der Stamm-LUN, wenn Daten der Stamm-LUN von den Schnappschüssen divergieren.
-
Bei
verschiedenen Ausführungsbeispielen können der
physische Speicher 402 und der logische Speicher 408 Schnappschussdaten
auf einem Medium speichern, das aus Magnetplatten, optischen Platten,
Compact Disks (CD), CD-R, CD-RW, Disketten, Bänder, Bandkassetten und dergleichen
ausgewählt
ist.
-
Das
Speicherungssystem 400 kann ferner einen oder mehrere Abbildungszeiger 416 in
dem Schnappschussvolumen 410, der zu Daten in dem physischen
Speicher 402 zeigt, und mehrere Schnappschusszeiger 418 umfassen,
die zum Zeigen zu Daten in dem Schnappschussindex 412 in
der Lage sind. Das Schnappschuss-Teilsystem 414 verteilt
divergierte Daten in eine Mehrzahl von Schnappschussabschnitten
in dem Schnappschussindex 412 und schreibt die verteilten
Datenabschnitte zu der Mehrzahl von Schnappschüssen.
-
Bei
einigen Ausführungsbeispielen
oder Zuständen
verteilt das Schnappschuss-Teilsystem Daten über die Mehrzahl von Schnappschüssen in
im Wesentlichen gleichen Anteilen. Das Schnappschuss-Teilsystem 414 kann
ferner konfiguriert sein, um Stamm-LUN-Datendivergenzzustände zu erfassen,
die aus denselben ausgewählt
sind, die eine Löschung
der Stamm-LUN, Datenschreiboperationen zu der Stamm-LUN, eine Auswahl
der Stamm-LUN und dergleichen umfassen.
-
Das
Schnappschuss-Teilsystem 414 kann ferner konfiguriert sein,
um die Anzahl von Schnappschüssen
mit der Zeit zu modifizieren und Daten im Wesentlichen gleichmäßig über die
Mehrzahl von Schnappschüssen
beginnend bei jeder Modifikation zu verteilen.
-
Das
Schnappschuss-Teilsystem 414 ermöglicht eine schnelle und effiziente
Fähigkeit,
um eine Zeitpunkt-Kopie von Speicherungsbehälterdaten zu erzeugen. Der
Schnappschuss friert eine Abbildung der Daten des Behälters ein,
die von anderen Schnappschüssen
isoliert werden kann und für
ein Backup, ein Archivieren, einen Datenschutz, ein Testen und eine
andere Manipulation verwendet werden kann, ohne die ursprünglichen
Daten zu beeinträchtigen.
Nachdem ein Schnappschuss genommen ist, können die ursprünglichen
Daten weiter aktualisiert und verwendet werden, während die
Schnappschusskopie den ausgewählten
Zeitpunkt beibehält.
-
Wenn
eine Duplikatkopie eines speziellen Zeitpunkts erwünscht ist,
weist das Schnappschuss-Teilsystem 414 eine Gewinnung eines
Datenschnappschusses zu dem ausgewählten Zeitpunkt an. Typischerweise
kann ein Schnappschuss-Teilsystem 414 mehrere
Schnappschüsse
gewinnen, was wiederholte Gewinnungen ermöglicht. Die Schnappschussfähigkeit vermeidet
etwas des Mehraufwands, der einem Datenspiegeln und -klonen zugeordnet
ist.
-
Mit
Bezug auf 5 stellt ein schematisches Blockdiagramm
ein Ausführungsbeispiel
eines Computersystems 500 zu einer Verwendung bei einem Speicherungssystem 502 mit
einem physischen Speicher 504, der ein Basisvolumen 506 und
zumindest einen physischen Block 508 umfasst, und einem logischen
Speicher 510 dar, der ein Schnappschussvolumen 512 und
einen Schnappschussindex 514 umfasst. Das Computersystem
umfasst ferner ein Schnappschuss-Teilsystem, das in einem Prozessor 516 ausführbar ist
und das Daten über
eine Mehrzahl von Schnappschüssen
einer Stamm-LUN 518 verteilt, wenn Daten der Stamm-LUN 518 von
den Schnappschüssen
divergieren.
-
Der
Prozessor 516 kann eine Abbildungslogik implementieren,
die das Basisvolumen 506 definiert und die physischen Blöcke 508 dem
Basisvolumen 506 zuteilt, und Zeiger von dem Schnappschussvolumen 512 zu
ausgewählten
physischen Blöcken 508 und
zu dem Schnappschussindex 514 erzeugt.
-
Ein
Prozessor 516, der eine Schnappschussverwaltungsfunktionalität ausführt, kann
in irgendeiner geeigneten Vorrichtung in einem Netzwerk positioniert
sein. Wie es dargestellt ist, kann der Prozessor 516 innerhalb
einer Speicherungssteuerung enthalten sein. Bei anderen Ausführungsbeispielen kann
ein Prozessor, der zum Ausführen
einer Schnappschussfunktionalität
in der Lage ist, in einem Host, einer geeigneten Steuervorrichtung
innerhalb eines Speicherungsarraynetzwerks (SAN = storage array
network), einem Netzwerkgerät,
das an einem Netzwerk angeschlossen ist, einer Array-Firmware oder
einer anderen Ausführungsebene
sein, die eine Zeitpunkt-Kopie durchführen kann.
-
Der
Prozess einer Datenverteilung zu einer Mehrzahl von Schnappschüssen kann
in verschiedenen Operationen implementiert sein, wie beispielsweise
programmierbaren Operatio nen, einschließlich Kopierer-vor-Schreiben-Operationen,
Kopieren-während-Schreiben-Operationen,
und dergleichen.
-
Der
Prozessor 516 kann ferner eine Abbildungslogik ausführen, die
einen oder mehrere Abbildungszeiger in dem Schnappschussvolumen 512, der
zu Daten in dem physischen Speicher 504 zeigt, und einen
oder mehrere Schnappschusszeiger erzeugt, die zum Zeigen zu Daten
in dem Schnappschussindex 514 in der Lage sind. Der Prozessor 516 kann
ferner eine Schnappschusslogik ausführen, die divergierte Daten
in eine Mehrzahl von Schnappschussabschnitten in dem Schnappschussindex 514 verteilt
und die verteilten Datenabschnitte zu den mehreren Schnappschüssen schreibt.
Daten können am
effizientesten über
die mehreren Schnappschüsse
in gleichen oder näherungsweise
gleichen Anteilen verteilt werden.
-
Der
Prozessor 516 kann eine oder mehrere Stamm-LUN-Datendivergenzzustände erfassen,
einschließlich
einer Löschung
einer Stamm-LUN, Datenschreiboperationen zu einer Stamm-LUN, eines Ausfalls
einer Stamm-LUN und dergleichen.
-
Der
Prozessor 516 kann eine Schnappschusshandhabungseinrichtung
ausführen,
die die Mehrzahl von Schnappschüssen
mit der Zeit modifiziert und Daten im Wesentlichen gleichmäßig unter der
Mehrzahl von Schnappschüssen
beginnend bei jeder Modifikation verteilt. Typischerweise teilt
das System eine spezielle maximale Anzahl von Schnappschüssen zu
und beginnt auf ausgewählte Ereignisse
hin Schnappschüsse
zu erzeugen, wie beispielsweise Zeitsteuerungsintervalle, Aktivierungssignale, überwachte
Zustände
und dergleichen. Die Anzahl von Schnappschüssen ist typischerweise auf
eine ausgewählte
Anzahl begrenzt, obwohl einige Implementierungen praktisch unbegrenzte
Schnappschüsse
unterstützen
können.
-
Der
physische Speicher 504 kann jegliche Speicherungsvorrichtungen
umfassen, die für
eine Schnappschussfunktionali tät
geeignet sind, und kann verschiedene Medien umfassen, wie beispielsweise
Magnetplatten, optische Platten, Compact Disks (CD), CD-R, CD-RW,
Disketten, Bänder
und Bandkassetten.
-
Die
verschiedenen Funktionen, Prozesse, Verfahren und Operationen, die
durch das System durchgeführt
oder ausgeführt
werden, können
als Programme implementiert sein, die auf verschiedenen Logiktypen,
Prozessoren, Steuerungen, zentrale Verarbeitungseinheiten, Mikroprozessoren,
Digitalsignalprozessoren, Zustandsmaschinen, programmierbaren Logikarrays
und dergleichen ausführbar sind.
Die Programme können
auf irgendeinem computerlesbaren Medium für eine Verwendung durch oder
in Verbindung mit irgendeinem computerbezogenen System oder Verfahren
gespeichert sein. Ein computerlesbares Medium ist eine elektronische, magnetische,
optische oder andere physische Vorrichtung oder Einrichtung, die
ein Computerprogramm für
eine Verwendung durch oder in Verbindung mit einem computerverwandten
System, Verfahren, Prozess oder einer Prozedur enthalten oder speichern
kann. Programme können
in einem computerlesbaren Medium für eine Verwendung durch oder
in Verbindung mit einem Anweisungsausführungssystem, einer Vorrichtung,
einer Komponente, einem Element oder einem Gerät ausgeführt sein, wie beispielsweise
einem System, das auf einem Computer oder Prozessor basiert, oder
einem anderen System, das Anweisungen von einem Anweisungsspeicher
oder einer Speicherung irgendeines geeigneten Typs abrufen kann.
Ein computerlesbares Medium kann irgendeine Struktur, Vorrichtung, Komponente,
ein Produkt oder eine andere Einrichtung sein, die das Programm
für eine
Verwendung durch oder in Verbindung mit dem Anweisungsausführungssystem,
dem Gerät
oder der Vorrichtung speichern, kommunizieren, ausbreiten oder transportieren
kann.
-
Die
darstellenden Blockdiagramme und Datenstrukturdiagramme zeigen Prozessschritte
oder -blöcke,
die Module, Segmente oder Abschnitte eines Codes darstellen können, die
einen oder mehrere ausführbare
Anweisungen zum Implementieren spezifischer logischer Funktionen
oder Schritte in dem Prozess umfassen. Obwohl die speziellen Beispiele
spezifische Prozessschritte oder Handlungen darstellen, sind viele
alternative Implementierungen möglich
und allgemein durch eine einfache Entwurfswahl vorzunehmen. Handlungen
und Schritte können in
einer unterschiedlichen Reihenfolge von der spezifischen Beschreibung
hierin ausgeführt
werden, basierend auf Erwägungen
einer Funktion, eines Zwecks, einer Konformität gegenüber einem Standard, einer Ursprungsstruktur
und dergleichen.
-
Während die
vorliegende Erfindung verschiedene Ausführungsbeispiele beschreibt,
ist klar, dass diese Ausführungsbeispiele
darstellend sind und den Anspruchsschutzbereich nicht begrenzen. Viele
Variationen, Modifikationen, Hinzufügungen und Verbesserungen der
verschiedenen Ausführungsbeispiele
sind möglich.
Zum Beispiel werden Durchschnittsfachleute auf dem Gebiet ohne weiteres
die notwendigen Schritte implementieren, um die Strukturen und Verfahren,
die hierin offenbart sind, bereitzustellen und es ist denselben
ersichtlich, dass die Prozessparameter, -materialien und -abmessungen
lediglich beispielsweise gegeben sind. Die Parameter, Materialien
und Abmessungen können
verändert
werden, um die erwünschte
Struktur sowie Modifikationen zu erreichen, die innerhalb des Schutzbereichs
der Ansprüche
liegen. Variationen und Modifikationen der hierin offenbarten Ausführungsbeispiele können ebenfalls
vorgenommen werden, während dieselben
innerhalb des Schutzbereichs der folgenden Ansprüche bleiben. Die darstellenden
Schnappschusstechniken zum Beispiel können in irgendwelchen Typen
von Speicherungssystemen implementiert werden, die für derartige
Techniken geeignet sind, einschließlich irgendwelcher geeigneter
Medien. Gleichermaßen
können
die darstellenden Techniken in irgendeiner geeigneten Speicherungssystemarchitektur
implementiert sein.