-
GEBIET DER ERFINDUNG
-
Diese
Erfindung betrifft ein Computersystem und ein Verfahren zum Transferieren
von Daten.
-
DISKUSSION DES VERWANDTEN SACHSTANDES
-
Im
Grunde genommen stützen
sich sämtliche
Computeranwendungen (oder Programme) auf eine Speicherung. Diese
Speicherung kann sowohl zum Speichern des Computercodes als auch
zum Speichern von Daten, die von dem Code manipuliert werden, verwendet
werden (der Ausdruck "Daten" bezieht sich auf
irgendeine Information, einschließlich Formatierungsinformation,
eines ausführbaren Codes
und Daten zur Manipulation von einem Anwendungsprogramm).
-
Die
Speichertechnologie hat sich in eine Vielfalt von unterschiedlichen
Richtungen entwickelt. Demzufolge ist eine breite Vielfalt von Speichersystemen
verfügbar.
Für die
Person, die die Computeranwendung schreibt, ist es deshalb unpraktisch
geworden, auch verantwortlich für
eine ausführliche
Kontrolle darüber
zu sein, wie die Daten auf dem Speichersystem gespeichert werden.
-
Wegen
dieses Grunds (und anderen Gründen)
laufen Anwendungsprogramme typischerweise auf einem Betriebssystem
(z. B. Unix, Windows, MS DOS, Linux und den vielen Abwandlungen
davon). Wiederum kann jedoch das Betriebssystem mit einer Vielfalt
von Speichersystemen verwendet werden.
-
Es
würde höchst ineffizient
sein, das Betriebssystem oder die Anwendungsprogramme jedesmal dann
zu ändern,
wenn eine Änderung
an einem physikalischen Speicher durchgeführt wird. Infolgedessen haben
sich verschiedene Abstraktionsebenen entwickelt, um zu veranschaulichen,
wie Daten tatsächlich
in dem Speichersystem gespeichert werden
-
1 zeigt
eine Vorgehensweise zur Veranschaulichung der Abstraktionsebenen.
Auf der oberen Ebene 10 kann das Anwendungsprogramm annehmen,
dass Daten in einer Weise gespeichert werden, die wenig damit zu
tun hat, wie Daten auf der physikalischen Einrichtung plaziert werden.
Zum Beispiel kann die Anwendung das Speichersystem so betrachten,
dass es eine Anzahl von Verzeichnissen (Directories) und Datendateien
(Daten-Files) innerhalb der Verzeichnisse enthält. somit wird in einer Anwendung,
die zur Verwendung in dem Unix-Betriebssystem
geschrieben ist, die Anwendung annehmen, dass Dateien gemäß der Unix-Verzeichnisstruktur (einschließlich hierarchischen
Verzeichnissen und Dateien, die sich in den Verzeichnissen befinden)
gespeichert werden. Diese angenommene Organisation der physikalischen
Speicherung kann wenig damit zu tun haben, wie diese Daten tatsächlich auf
den tatsächlichen
Speichereinrichtungen gespeichert werden. Diese Ansicht läßt sich
als "logische Ansicht" betrachten, weil
die Trennung zwischen der logischen Ansicht von Daten von der Anwendungsebene von
irgendeiner Ansicht, wie die Daten physikalisch gespeichert werden,
abgeschieden ist. Eine logische Einheit, beispielsweise eine Datei,
eine Datenbank oder irgendeine andere Konstruktion, kann auf der
logischen Ebene als "logisches
Objekt" bezeichnet werden.
-
Die
Anwendungsebene 10 ist mit der Dateisystemebene 12 gekoppelt.
Die Dateisystemebene betrifft die Tatsache, wie Dateien auf Disks
(Platten) gespeichert sind und wie alles effizient und zuverlässig arbeiten
gelassen wird. Somit kann die Dateisystemebene zum Speichern einer
Verzeichnisstruktur und zum Aufbrechen von Dateien in einzelne Datenblöcke zur
Speicherung auf ein physikalisches Speichersystem hin verantwortlich
sein. Zum Beispiel weist in den meisten Implementierungen von Unix jede
Datei einen zugehörigen
I-Knoten auf. Dieser Knoten kann eine Abrechnungs- und Schutzfunktion und
zusätzlich
einen Satz von Zeigern auf Datenblöcke enthalten.
-
Relativ
früh bei
der Entwicklung von Computersystemen wurden Plattenlaufwerke (Disk-Drives) eine
grundlegende Einrichtung zur Speicherung. Demzufolge sind Computerbetriebssysteme
unter der Annahme entwickelt worden, dass ein Speicher sich auf
eine Eingabe/Ausgabe ("I/O") in ein/aus einem
Plattenlaufwerk stützen
wird. Das Dateisystem 12 kann deshalb ein oder mehrere "Datenträger" annehmen, die einer
physikalischen Speichereinheit wie einem Plattenlaufwerk (oder irgendeiner
anderen Einheit zur Speicherung) entsprechen, wobei Daten in Blöcken auf
dem Plattenlaufwerk gespeichert sind.
-
Die
Anforderung, dass eine Speicherung zur Verwendung von Anwendungen
verfügbar
gemacht wird, hat sämtliche
Rekorde gebrochen. Infolgedessen können eine Anzahl von getrennten
physikalischen Einrichtungen erforderlich sein, um den Gesamtspeicherbedarf,
der für
ein System benötigt wird,
bereitzustellen. Zusätzlich
werden Speichersysteme oft geändert
oder neu konfiguriert.
-
Um
das Betriebssystem von irgendwelchen Änderungen innerhalb des physikalischen
Datenspeichersystems zu isolieren, wird oft irgendein Mechanismus
verwendet, um eine standardmäßige (Datenträger) Ansicht
des physikalischen Speichers auf ein tatsächliches physikalisches Speichersystem
flexibel abzubilden. Der Manager des logischen Datenträgers (Logical
Volume Manager, "LVM") 14 in 1 kann
dazu beitragen, diese Funktion zu erreichen, indem die Dateisystemansicht
der Datenspeicherung in eine Zwischenschicht abgebildet wird.
-
Schließlich tritt
das tatsächliche
Lesen und Schreiben (und das potentielle zusätzliche Abbilden auf physikalische
Speichereinrichtungen) des tatsächlichen
Speichers innerhalb der physikalischen Speichersystemebene 16 auf,
wie in 1 dargestellt. Somit kann zum
Beispiel der Manager des logischen Datenträgers die Dateisystemebenen-Ansicht von
Daten in Datenträgergrößen entsprechend
zu festen physikalischen Speichersegmentgrößen zur Speicherung auf einer
physikalischen Einrichtung (z. B. Blockgrößen) abbilden. Die Ebene des
physikalischen Speichersystems kann dann die Datenträger auf
der Ebene des Managers für
logische Datenträger
auf physikalische Speichersegmente (z. B. Hyper-Datenträger, die nachstehend diskutiert
werden) abbilden.
-
Manager
für logische
Datenträger
sind zur Verwendung mit dem HP-UX von HP und die VERITAS Betriebssysteme
als Beispiele implementiert werden. Die Symmetrix-Produktreihe von
Speichersystemen, die von EMC Corporation aus Hopkinton, Massachusetts,
erhältlich
ist, ist ein System, welches Hyper-Datenträger auf physikalische Einrichtungen abbilden
kann (die Symmetrix-Produktreihe von integrierten cached Disk-Arrays (Cache-Plattenfeldern) wird
in zahlreichen Veröffentlichungen
von der EMC Corporation, einschließlich der Bedienungsanleitung des
Symmetrix-Modells 55xx, p-n200-810-550, ref.f, Februar 1996 beschrieben).
-
In
den oben Beispielen tritt die Abbildung der Anwendungsebenendaten
in eine tatsächliche
physikalische Speicherung über
vier Ebenen auf: von der Anwendungsebene auf die Dateisystemebene;
von der Dateisystemebene auf die LVM Ebene; von der LVM Ebene auf
die physikalische Speichersystemebene; und von der physikalischen
Speichersystemebene auf die tatsächlichen
physikalischen Speichereinrichtungen. Mehr oder weniger Abbildungsebenen können durchgeführt werden.
In einigen Systemen wird zum Beispiel nur eine Abbildungsebene ausgeführt, z.
B. eine Abbildung von der Anwendungsebene direkt auf physikalische
Speichereinrichtungen. In einigen Systemen wird die Abbildungsstufe
auf der LVM Ebene weggelassen. In ähnlicher Weise wird in einigen
Systemen keine Abbildung auf der physikalischen Speicherebene durchgeführt (z.
B. Daten werden direkt auf tatsächlichen
Einrichtungen entsprechend dem Format der vorangehenden Ebene und ohne
irgendeine weitere Abbildung auf physikalische Speicherkomponenten
gespeichert).
-
2A zeigt ein Beispiel der Abbildung, die von dem
Manager 14 für
logische Datenträger
und dem physikalischen Speichersystem 16 durchgeführt werden
können,
um Daten auf tatsächlichen
physikalischen Einrichtungen zu speichern. Die Ansicht des Anwendungs/Dateisystems
des Speichersystems erwägt
drei getrennte Speichereinrichtungen – Datenträger A20, Datenträger B21
und Datenträger
C22. Soweit es die Dateisystemebene 12 betrifft, kann das System
aus drei getrennten Speichereinrichtungen 20–22 bestehen.
Jede getrennte Speichereinrichtung kann als ein "virtueller Datenträger" oder eine "virtuelle Platte" angesehen werden. Dies spiegelt wieder, dass
die Ansicht der Speichereinrichtungsstruktur durch das Betriebssystem
dem tatsächlichen
physikalischen Speichersystem, das die Struktur implementiert (somit "virtuell"), nicht entsprechen
kann. Im Gegensatz zu der Anwendungsebene 10 hin ist die Perspektive
des Dateisystems 12, als ob das Dateisystem 12 es
mit rohen physikalischen Einrichtungen oder Datenträgern zu
tun hat.
-
Hinsichtlich
der Dateiensystemebene können
die virtuellen Datenträger
in "Partitionen" aufgeteilt werden,
die kontinuierliche Speichersegmente sind. Diese Partitionen sind
tatsächlich "virtuelle" Partitionen, weil
die Partition tatsächlich über ein Vielfalt
von physikalischen Speichersegmenten (z. B. Hyper-Datenträgern) gespeichert
werden kann.
-
In 2A werden die Daten physikalisch auf den physikalischen
Speichereinrichtungen 24–26 gespeichert. Obwohl
in diesem bestimmten Beispiel dreiphysikalische Einrichtungen 24–26 und
drei Datenträger 20–22 vorhanden
sind, gibt es keine Eins-zu-Eins-Abbildung der virtuellen Datenträger auf
physikalische Einrichtungen. In diesem bestimmten Beispiel werden
die Daten im Datenträger
A20 tatsächlich
auf den physikalischen Einrichtungen 24–26 gespeichert, wie
mit 20a, 20b und 20c angedeutet. In diesem
Beispiel wird der Datenträger
B vollständig
auf der physikalischen Einrichtung 24 gespeichert, wie
mit 22a, 22b angedeutet. Schließlich wird
der Datenträger
C auf der physikalischen Einrichtung 24 und der physikalischen
Einrichtung 26 gespeichert, wie bei 21a, 21b angedeutet.
-
In
diesem bestimmten Beispiel stellen die Boxen 20a–20c, 21a–21b und 22a–22b aneinander angrenzende
Speichersegmente innerhalb der jeweiligen physikalischen Einrichtungen 24–26 dar.
Diese aneinander angrenzenden Speichersegmente können, müssen aber nicht, von der gleichen
Größe sein. Die
Speichersegmente können
als "Hyper-Datenträger" bezeichnet werden
und entsprechen Segmenten einer physikalischen Speicherung, die
als Komponenten verwendet werden können, wenn ein virtueller Datenträger zur
Verwendung von dem Dateisystem konstruiert wird. Ein Hyper-Datenträger kann
aus einer Anzahl von "Datenblöcken" gebildet sein. Ein Datenblock
ist eine Speichereinheit (z. B. ein 512 Byte Block), der auf einmal
in die physikalische Speichereinrichtung geschrieben oder aus dieser
gelesen wird.
-
Eine
Array-Managementsoftware, die auf einem Allzweckprozessor (oder
irgendeinem anderen Mechanismus wie eine kundenspezifische Hardwareschaltung) 23 läuft, übersetzt
Aufforderungen von einem Host-Computer (nicht gezeigt) (der unter der
Annahme der logischen Datenträger-Struktur 20–22 gebildet
ist) in Aufforderungen, die der Vorgehensweise entsprechen, in der
die Daten tatsächlich auf
den physikalischen Einrichtungen 24–26 gespeichert sind.
In der Praxis kann die Array-Managementsoftware 23 als
ein Teil eines vereinheitlichten Speichersystems implementiert werden,
welches die physikalischen Einrichtungen 24–26 umfaßt, kann
auf einem Host-Computer implementiert werden oder kann in irgendeiner
anderen Weise durchgeführt
werden.
-
In 2A führt
die Array-Managementsoftware 23 die Funktionen sowohl des
logischen Datenträger-Managers 14 (wenn
vorhanden) als auch der physikalischen Speicherebene 16 aus,
indem die virtuellen Datenträger 20–22 des
Dateisystems in Segmente abgebildet werden, die auf physikalischen
Einrichtungen 24–26 gespeichert
werden können.
Die Array-Managementsoftware 23 führt auch
die Funktionen der physikalischen Speichersystemebene 16 aus,
indem bestimmt wird, wo die Hyper-Datenträger 20A–20C, 21A–21B und 22A–22B zu
speichern sind.
-
Die
physikalischen Speichereinrichtungen, die in dem Beispiel der 2A gezeigt sind, sind Plattenlaufwerke (Disk-Drives). Ein Disk-Drive
(Plattenlaufwerk) kann eine oder mehrere Platten eines Aufzeichnungsmaterials
(wie ein magnetisches Aufzeichnungsmedium oder ein optisches Aufzeichnungsmedium)
umfassen. Information wird für
Speicherzwecke in dieses Speichermedium geschrieben und daraus gelesen.
Das Aufzeichnungsmedium ist typischerweise in der Form einer Platte,
die sich dreht. Die Platte umfaßt
allgemein eine Anzahl von Spuren (Tracks), auf denen die Information
aufgezeichnet wird und von denen die Information gelesen wird. Jede
Spur kann mehr als einen "Datenblock" umfassen. Ein Datenblock
ist eine Dateneinheit, die als eine einzelne Einheit gelesen werden
kann. Ein Datenblock kann ein 512 Byte Block von Daten, ein 8k Segment
auf einer 32k Spur oder irgendeine andere Struktur sein. In diesen
Beispielen ist die Größe des Blocks
festgelegt. In anderen Fällen
kann der Block eine variable Größe aufweisen,
beispielsweise eine CKD Aufzeichnung. In einem Plattenlaufwerk, welches
mehrere Platten umfaßt,
werden die Platten herkömmlicherweise
so gestapelt, dass entsprechende Spuren jeder Platte übereinander
liegen. In diesem Fall umfaßt
die Spezifikation einer einzelnen Spur, auf der Information innerhalb
des Plattenlaufwerks gespeichert ist, nicht nur eine Spezifikation
einer einzelnen Spur auf einer Platte, sondern auch auf welcher
der mehreren Platten die Information gespeichert wird.
-
Um
einen einzelnen Datenblock zu identifizieren, kann eine Adresse
eine Spezifikation der Platte (die aus mehreren "Verdrahtungsfeldern" ("Platters") bestehen kann),
eine Spezifikation der Spur innerhalb der Platte (oder einen "Zylinder"), eine Spezifikation
des Kopf (oder welche der Verdrahtungsfelder die "Platte" umfassen) und eine
Spezifikation des bestimmten Datenblocks innerhalb der Spur umfassen.
Die Spezifikation der Position des Datenblocks innerhalb der Spur
kann zum Beispiel als ein Versatz (Offset) adressiert werden, z.
B. dies ist der dritte Datenblock, der auf der Spur erscheint. Somit
kann eine Adresse ddcccch:Versatz einen Block – Platte dd, Zylinder cccc,
Kopf h und den spezifizierten Versatz spezifizieren. Die physikalischen
Speichereinrichtungen zur Verwendung mit der vorliegenden Erfindung können jedoch
in irgendeiner anderen Geometrie, adressiert in irgendeiner anderen
Weise gebildet werden oder sogar einen unterschiedlichen Typ von Speichermechanismus
bilden.
-
2B zeigt ein Beispiel einer Abbildung zwischen
der oberen Abstraktionsebene – der
Anwendungsebene – auf
die tatsächliche
physikalische Speicherebene. Eine Anwendungsebenen-Datei 200 umfaßt eine
visuelle Information. Diese Information ist in der Form einer herkömmlichen
Datei und umfaßt
eine Reihe von Bits.
-
Wenn
die Anwendungsebenen-Datei auf einen physikalischen Speicher abgebildet
wird, dann kann die Anwendungsebenen- Datei in Segmente der einzelnen Bits,
z. B. Segment 203, umgewandelt werden. Somit wird ein Segment
der Anwendungsebenen-Datei 203 (zum Beispiel gemäß der unter
Bezugnahme auf 1 beschriebenen allgemeinen
Abbildungsstruktur) auf tatsächliche
physikalische Speichereinrichtungen 204–206 abgebildet. In
diesem Beispiel wird das erste Segment von Bits in 203 in
der Anwendungsebenen-Datei 200 auf eine physikalische Speichereinrichtung 204 hin,
an einem Abschnitt 208 der physikalischen Speichereinrichtung 204,
abgebildet. Wie in 2B gezeigt können die einzelnen
Segmente von Bits in der Anwendungsebenen-Datei 200 irgendwo
unter einer Vielzahl von tatsächlichen
physikalischen Speichereinrichtungen abgebildet werden. Die Granularität der Segmente von
Bits (z. B. Segment 203) können einer Ebene einer Vielfalt
von unterschiedlichen Ebenen entsprechen. Zum Beispiel kann die
Granularität
der Segmente ein 512 Byte Datenblock sein. In einer anderen Ausführungsform
kann die Granularität
der Datenmenge entsprechen, die in einer Spur der physikalischen
Speichereinrichtung 204–206 gespeichert ist
(wenn die physikalischen Speichereinrichtungen Plattenlaufwerke
sind).
-
2C zeigt ein Beispiel eines logischen Objekts 27,
welches sechs Datenblöcke
oder logische Blockelemente 27a–27f umfaßt. Das
logische Objekt selbst kann irgendeine Datenstruktur oder eine Sammlung
von Daten sein. Zum Beispiel könnte das
logische Objekt eine Datenbanktabelle, ein Abschnitt einer Dateisystem-Datei
oder eine vollständige
Dateisystem-Datei oder irgendein anderes identifizierbares logisches
Objekt sein. Jeder der Datenblöcke 27a–27f kann
ein Datenblock mit einer festen Größe oder ein Datenblock mit
einer sich veränderlichen
Größe wie eine
CKD Aufzeichnung sein.
-
In
dem Beispiel der 2C wird das logische Objekt
auf einer physikalischen Speichereinrichtung 28 gespeichert.
In diesem Beispiel umfaßt
die Speichereinrichtung eine Anzahl von Spalten, die jeweils eine
Spur einer Platte darstellen.
-
Jede
Zeile der physikalischen Speichereinrichtung stellt einen physikalischen
Datenwert oder ein Blockelement innerhalb der jeweiligen Spalte/Spur
dar. Zum Beispiel speichert die Zeile 28a, Spalte 28b einen
Datenblock, der dem logischen Blockelement 27b entspricht.
Die Spur 28b würde physikalische
Datenblöcke
speichern, die die Inhalte der logischen Blockelemente 27a und 27b aufweisen.
Wie sich der 2C entnehmen läßt, können die
logischen Blockelemente in irgendeiner Reihenfolge auf den physikalischen
Einrichtungen gespeichert werden.
-
Während die
physikalische Speichereinrichtung 28 als ein kontinuierliches
Feld (Array) dargestellt ist, muß dies nicht notwendigerweise
der Fall sein. Zum Beispiel kann jede der Spuren, wie eine Spalte 28b,
auf einem anderen Plattenlaufwerk gespeichert werden oder Teil eines
anderen Hyperdatenträgers
sein.
-
In
einem System mit einem Feld von physikalischen Plattenlaufwerken,
beispielsweise die Plattenlaufwerke 24–26 der 2A, führt
jede Einrichtung typischerweise eine Fehlererfassung und/oder eine
Korrektur für
die Daten aus, die auf der bestimmten physikalischen Einrichtung
gespeichert sind. Jedes einzelne physikalische Plattenlaufwerk erfaßt entsprechend,
wenn es keine gültigen
Daten zum Bereitstellen erfaßt
und, soweit möglich,
korrigiert sie die Fehler. Sogar dann, wenn eine Fehlerkorrektur
für Daten
zugelassen wird, die auf der physikalischen Einrichtung gespeichert
sind, würde
jedoch ein katastrophaler Ausfall der Einrichtungen zu einem nicht wiederherstellbaren
Verlust von Daten führen.
-
Demzufolge
sind Speichersysteme entwickelt worden, die eine redundante Speicherkapazität umfassen.
Eine Vielzahl von Vorgehensweisen zum Speichern von Daten auf den
Platten in einer Weise, die eine Wiederherstellung erlauben würde, sind
entwickelt worden. Eine Anzahl derartiger Verfahren werden allgemein
in dem RAID Buch, A Source Book For Disk Array Technology, veröffentlicht
von dem RAID Advisory Board, St. Peter, Minnesota (5. Ausgabe, 1996)
beschrieben. Diese Systeme umfassen "RAID" Speichersysteme.
RAID steht für
Redundant Array of Independent Disks (redundantes Feld von unabhängigen Platten).
-
3A zeigt eine Technik zum Speichern von redundanter
Information in einem RAID System. Unter dieser Technik umfassen
eine Vielzahl von physikalischen Einrichtungen 31–33 identische
Kopien der Daten. Somit können
die Daten M1 auf einen Abschnitt 31a der physikalischen
Einrichtung 31, einen Abschnitt 32a der physikalischen
Einrichtung 32 und einen Abschnitt 33a der physikalischen
Einrichtung 33 "gespiegelt" werden. In diesem
Fall können die
zusammengefaßten
Abschnitte der physikalischen Platte, die die duplizierten Daten 31a, 32a und 33a speichern,
als eine "Spiegelgruppe" bezeichnet werden.
Die Anzahl von Plätzen,
auf die Daten M1 gespiegelt werden, wird allgemein in Abhängigkeit von
dem gewünschten
Sicherheitsgrad gegenüber einem
nicht wiederherstellbaren Verlust von Daten gewählt.
-
In
einer Spiegelgruppe sind die Kopien "verbunden". Das heißt, irgendeine Aktualisierung
an einem Spiegel verursacht eine Aktualisierung an jedem anderen
Spiegel in der Gruppe.
-
3A zeigt drei physikalische Einrichtungen 31–33,
die in nächster
Nähe, zum
Beispiel innerhalb einer einzelnen Speichersystemeinheit, angeordnet
zu sein scheinen. Sehr empfindliche Daten können jedoch eine oder mehrere
der physikalischen Einrichtungen, die die gespiegelten Daten halten,
an einer entfernten Einrichtung angeordnet sein.
-
"RAID 1" ist ein Beispiel
einer Datenredundanz durch eine Spiegelung von Daten. In einer RAID 1
Architektur können
eine Anzahl von verschiedenen Mechanismen verwendet werden, um zu
bestimmen, wie auf Daten zuzugreifen ist und wie diese zu aktualisieren
sind, um zum Beispiel das Betriebsverhalten des Speichersystems
zu verbessern. In jedem Fall weist eine RAID 1 Architektur sicherlich
die Fähigkeit
zum Wiederherstellen von verlorenen Daten auf. Unglücklicherweise
multipliziert die RAID 1 Architektur die Kasten der physikalischen
Speicherung um die Anzahl von "Spiegeln", die in der Spiegelgruppe
enthalten sind.
-
3B zeigt eine Lösung, die weniger hinzugefügten Speicher
benötigt.
In der 3B werden Daten an den Stellen 34a–34d gespeichert.
In diesem bestimmten Beispiel umfaßt die physikalische Einrichtung 33 Paritätsinformation
P1 bei 35a, 35b. Die Paritätsinformation wird durch eine
einfache Exklusiv-ODER-Verknüpfung
("XOR") der entsprechenden
Datenbits erzeugt. Somit würde
die Paritätsinformation
P1 durch eine XOR-Verknüpfung
der entsprechenden Bits der Daten D1 und der Daten D2 erzeugt werden.
-
Eine
Vielfalt von Mechanismen sind bekannt, um die Paritätsinformation
auf den physikalischen Einrichtungen zu verteilen. In dem in 3B gezeigten Beispiel wird sämtliche Paritätsinformation
auf einer einzelnen physikalischen Einrichtung 33 gespeichert.
In anderen Fällen
kann die Paritätsinformation über die
physikalischen Einrichtungen verteilt werden.
-
4 zeigt
das Konzept, dass innerhalb eines gegebenen Plattenfelds keine Notwendigkeit
besteht, dass sämtliche
Daten der gleichen Redundanzregel folgen. In 4 bilden
eine erste Gruppe von Speichersegmenten auf den physikalischen Einrichtungen 40–42 eine
Spiegelgruppe 44. In der Spiegelgruppe 44 werden
die gesamten Inhalte eines einzigen logischen Datenträgers (HV-A)
auf drei verschiedene physikalische Einrichtungen 40–42 gespiegelt.
-
In 4 wird
ein einzelner virtueller Datenträger
auf der vierten physikalischen Einrichtung 43 ohne irgendeine
Redundanzinformation, wie bei 46 angedeutet, gespeichert.
-
Schließlich implementiert
eine letzte Gruppe von Datensegmenten 45, aus sämtlichen
vier physikalischen Einrichtungen 40–43, ein Paritätsredundanz-Verfahren.
Indem bestimmten Beispiel wird die Paritätsinformation in Segmenten
des Speichers auf zwei unterschiedlichen physikalischen Einrichtungen 42–43,
wie bei 47a und 47b angedeutet, gespeichert.
-
Das
Speichersystem der 4 enthält redundante Information,
die eine Wiederherstellung von Fehlern erlaubt, einschließlich einer
Verwendung eines Spiegels von Daten, die sich an einer entfernten Einrichtung
befinden, die ebenfalls eine Wiederherstellung von einem katastrophalen
Ausfall ermöglicht.
-
5 zeigt
ein System für
eine zusätzliche Sicherungskopie
(Backup), die gemäß bestimmter Aspekte
der vorliegenden Erfindung verwendet oder angepaßt werden kann. In 5 führt ein
Computer oder Client 50 seine Operationen unter Verwendung eines
Speichersystems 52 aus. Der Client 50 kann irgendein
herkömmliches
Rechensystem, beispielsweise ein Netzclient, der von Sun Microsystems
erhältlich
ist und der das solare Betriebssystem (eine Version von Unix) laufen
läßt, ein
HP Client, der HP-UX (ein Hewlett-Packard Client, der eine Hewlett-Packard-Version
des Unix Betriebssystems laufen läßt) oder ein IBM Client, der
das AIX Betriebssystem (eine IBM Version von Unix) oder irgendeine anderes
System mit einem zugehörigen
Betriebssystem laufen läßt, sein.
Das Speichersystem 52 kann irgendein herkömmliches
Speichersystem, einschließlich
ein voranstehend beschriebenes Symmetrix-Speichersystem, sein. Der
Client 50 kann mit vielen anderen Einrichtungen überein Netz 56 verbunden
sein.
-
Das
Backup-Speichersystem 54 ist auch an dem Netz 56 angebracht.
Das Backup-Speichersystem 54 umfaßt eine Backup-Speichereinrichtung
(die Plattenlaufwerke, ein Bandspeicher oder irgendein anderer Speichermechanismus
sein kann), zusammen mit einem System, um Daten in den Speicher
zu plazieren und die Daten aus dem Speicher zurückzuholen.
-
Um
ein Backup auszuführen,
kopiert der Client 50 Daten von dem Speichersystem 52 über das Netz 56 in
das Backup-Speichersystem 54.
Dieser Prozeß kann
mit näheren
Einzelheiten unter Bezugnahme auf 1 erläutert werden.
Das Speichersystem 52 kann den tatsächlichen physikalischen Speicher 16 der 1 entsprechen.
Damit der Client 50 die Backup-Daten über das Netz 56 an
das Backup-Speichersystem schreibt, wandelt der Client 50 zunächst die
Backup-Daten in Dateidaten um – d.
h. holt die Daten aus der physikalischen Speichersystemebene 16 und
wandelt die Daten in ein Anwendungsebenenformat (z. B. eine Datei)
durch die Ebene 14 des Managers für logische Datenträger, die Dateisystemebene 12 und
die Anwendungsebene 11 um. Somit kann eine tatsächliche
Datendatei über das
Netz 56 an die Backup-Speichereinrichtung 54 kommuniziert
werden. Wenn die Backup-Speichereinrichtung 54 die
Datendatei empfängt,
kann das Backup-Speichersystem 54 die Datendatei der Anwendungsebene 10 nehmen,
diese in ihr Format der geeigneten Dateisystemebene für das Backup-Speichersystem
umwandeln, das dann über
die Ebene des Managers 14 der logischen Datenträger und
in einen physikalischen Speicher 16 hinein umgewandelt
werden kann.
-
Diese
Form von Datensicherung von Daten kann als "logisches-logisches" Backup bezeichnet werden. Das heißt, die
logischen Daten werden auf der Backup-Speichereinrichtung 54 gesichert.
Die zu sichernden Daten werden unabhängig von der Vorgehensweise,
mit der sie physikalisch auf dem Speichersystem 52 auf
der Ebene 16 des physikalischen Speichersystems gespeichert
werden, unabhängig von
dem Mechanismus der Dateisystemebene auf dem Clienten 50 und
unabhängig
davon, wie Daten in der Backup-Speichereinrichtung 54 gespeichert
werden, dargeboten.
-
Die
EDM (EMC Data Manager) Produktreihe kann ein logisches-logisches Backup über ein
Netz ausführen,
wie in zahlreichen Veröffentlichungen
beschrieben, die von EMC verfügbar
sind, einschließlich
des EDM Benutzerhandbuchs (Netz) "Basic EDM Manual".
-
6 zeigt
eine Ausführungsform
eines alternativen Aufbaus zur Sicherung von Daten, die auch gemäß der vorliegenden
Erfindung verwendet werden kann. In der Ausführungsform der 6 wird eine
direkte Verbindung 60 zwischen dem Speichersystem 52 und
dem Backup-Speichersystem 54 hergestellt. In dieser Ausführungsform
kann das Backup-Speichersystem
ein System sein, wie allgemein in EMC Data Manager: Symmetrix Connect
User Guide, P/N 200-113-591, Rev. C., Dezember 1997, erhältlich von
der EMC Corporation aus Hopkinton, Massachusetts, beschrieben ist.
Die direkte Verbindung 60 kann ein Hochgeschwindigkeits-Datenkanal, wie
ein SCSI Kabel, oder ein oder mehrere Faserkanal-Kabel sein. In
diesem System kann einem Benutzer erlaubt werden, Daten über das
Netz 56 oder die direkte Verbindung 60 zu sichern.
-
Während das
Verfahren und die Vorrichtung der vorliegenden Erfindung unter Bezugnahme
auf die Systeme und Konzepte, die voranstehend und in der Diskussion
des verwandten Sachstandes beschrieben wurden, beschrieben werden
können,
ist dies nicht als einschränkend
zu verstehen. Die vorliegende Erfindung hat eine breitere Anwendung.
Bestimmte Aspekte der Erfindung können auf irgendein Speichersystem
angewendet werden. Demzufolge ist die Erfindung nur durch die nachstehend
aufgeführten
Ansprüche
beschränkt.
-
Unabhängig davon,
ob der Wiederherstellungs- und Backup-Prozeß auf einer logischen Ebene
oder auf einer physikalischen Ebene durchgeführt wird, erfordern Backups
in dem Stand der Technik das Kopieren der gesamten Datei (oder in
einigen Fällen
sogar mehr, wie eine gesamte Partition) für den Backup. Verfahren zur
Sicherung (zum Backup) und zum Wiederherstellen von Daten auf dem
System der 6 sind in einer gleichzeitig
anhängigen und
gemeinsam angemeldeten U.S. Patentanmeldung No. 09/052,579 mit dem
Titel "Logical Restore From
A Physical Backup In A Computer Storage System", eingereicht am 31. Mai 1998 im Namen
von John Deshayes und Madhav Mutalik als Erfinder, beschrieben,
die hier durch Bezugnahme in ihrer Gesamtheit Teil der vorliegenden
Anmeldung ist.
-
7 zeigt
ein Speichersystem, welches als ein Speichersystem 52 der 6 verwendet
werden kann. Der Client kann mit der Speichereinrichtung unter Verwendung
eines Kanals oder Busses 71 verbunden sein. Der Kanal zur
Kommunikation mit dem Clienten 50 kann irgendeine geeignete
Verbindung wie eine Small Computer System Interface ("SCSI", Schnittstelle für ein kleines
Computersystem) oder eine Enterprise Systems Connection Architecture ("ESCON", Unternehmenssystem-Verbindungsarchitektur)
sein. Während
nur ein Kommunikationskanal 71 in das Speichersystem 70 hinein
in 7 gezeigt ist, können andere Kanäle enthalten
sein (während das
Verfahren und die Vorrichtung der vorliegenden Erfindung unter Bezugnahme
auf das Speichersystem der 6 und
dem physikalischen Speichersystem (und zugehörigen Merkmalen und Verfahren)
der 7 beschrieben werden kann, ist dies nicht als einschränkend zu
verstehen. Die vorliegende Erfindung weist eine breitere Anwendung
auf. Bestimmte Aspekte der Erfindung können auf irgendein Speichersystem
angewendet werden).
-
Innerhalb
des Speichersystems 70 befindet sich ein Host-Adapter 72.
In dieser bestimmten Ausführungsform
ist der Host-Adapter 72 für das Verwalten und Übersetzen
von Lese- und Schreib-Aufforderungen
von dem Host-Computer (z. B. dem Clienten 52 oder dem Backup-Speichersystem 54),
die auf die virtuelle Plattenstruktur (z. B. von der Ebene des Dateisystems
oder der Ebene des Managers der logischen Datenträger) gestützt sind,
in ein oder mehrere Aufforderungen entsprechend der Tatsache, wie Daten
auf den tatsächlichen
physikalischen Speichereinrichtungen 76a–76d des
Speichersysteme 70 gespeichert sind, verantwortlich. Somit
implementiert in dieser Ausführungsform
der Host-Adapter 72 wenigstens
einige der Funktionen der Array Management-Software 23 der 2. Der Host-Adapter 72 kann in
irgendeiner Anzahl von Vorgehensweisen implementiert werden, einschließlich der
Verwendung eines Allzweck-Prozessors
oder einer kundenspezifischen Hardware-Implementierung. Zusätzlich können mehrere Host-Adapter eingebaut
werden, um die Bereitstellung von zusätzlichen I/O Kanälen für das Speichersystem 70 zu
ermöglichen.
-
Der
Host-Adapter 72 kommuniziert mit den anderen Komponenten
des Speichersystems 70 unter Verwendung eines Busses 73.
Der Bus 73 kann irgendein geeignetes Kommunikationselement,
einschließlich
der Verwendung von SCSI, ESCON und anderen Bus-Protokollen, sein.
-
Ein
Zugriff auf die physikalischen Speichereinrichtungen 76a–76d wird
durch die Verwendung der Platten-Adapter 75a–75d gesteuert.
Die Platten-Adapter 75a–75d können unter
Verwendung eines Allzweckprozessors oder eines kundenspezifischen
Hardware-Designs ebenfalls implementiert werden. In der in 7 dargestellten
Ausführungsform
ist ein Platten-Adapter für
jede physikalische Speichereinrichtung vorgesehen. Ein Platten-Adapter
kann natürlich
mehr als eine daran angebrachte Speichereinrichtung aufweisen. Zusätzlich können Platten-Adapter
sekundäre
Verbindungen zu den physikalischen Speichereinrichtungen eines anderen Plattenadapters
aufweisen. Dies ermöglicht
eine Wiederherstellung von einem Ausfall eines Plattenadapters durch
Verschieben seiner Funktionen an den zweiten Platten-Adapter.
-
In
der Ausführungsform
der 7 wird das Lesen von der physikalischen Speichereinrichtung 76a–76d und
das Schreiben darauf durch die Platten-Adapter 75a–75d durch
die Verwendung eines Cache-Speichers 74 ermöglicht.
Der Cache-Speicher 74 kann ein Speicher mit wahlfreiem
Zugriff sein, der eine größere Geschwindigkeit
als die Plattenlaufwerke aufweist. Wenn beim Lesen von Daten die
Daten vorübergehend
in dem Cache-Speicher gespeichert werden, kann die Leseaufforderung schneller
durch Nehmen der Daten aus dem Cache-Speicher 74 erfüllt werden.
in ähnlicher
Weise, wenn Daten geschrieben werden, können die Daten, die geschrieben
werden sollen, in dem Cache-Speicher gespeichert werden. Die anderen
Komponenten des Systems können
fortschreiten, während
die Daten von dem Cache an die anwendbare physikalische Speichereinrichtung
geschrieben werden.
-
Irgendeiner
einer Vielfalt von Mechanismen kann zum Implementieren und Managen
des Cache-Speichers verwendet werden. Ein Beispiel eines derartigen
Mechanismus ist in dem
U.S. Patent
Nr. 5,537,568 mit dem Titel "System for dynamically controlling cache
menager maintaining cache index and controlling sequential data
access", erteilt
am 16. Juli 1996, enthalten. In ähnlicher
Weise können
Schreibvorgänge
durch den Cache-Speicher unter Verwendung irgendeiner Vielzahl von
Mechanismen und Strategien erzielt werden. Ein Mechanismus zum Schreiben
aus dem Cache besteht darin, die Daten, die in den Cache geschrieben
werden sollen, zu speichern und ein "Schreibvorgang anhängig" Bit zu markieren. Wenn das Schreibvorgang
anhängig
Bit festgestellt wird, können
die betreffenden Daten an die Platte geschrieben werden. Diese Technik
ist allgemein in dem
U.S. Patent
Nr. 5,341,493 mit dem Titel "Disk storage system with write preservation
during power failure",
erteilt am 23. August 1994, allgemein beschrieben.
-
Der
Cache kann in mehr als ein Gebiet aufgeteilt werden. Zum Beispiel
kann der Cache ein Gebiet 74a zum Speichern von Daten umfassen,
die aus den physikalischen Speichereinrichtungen 76a–76d gelesen
oder dort eingeschrieben werden. Der Cache kann ferner ein "Mailbox" Gebiet 74b (Postkasten-Gebiet)
enthalten. Das Mailbox-Gebiet 74b kann verwendet werden,
um Kommunikationen unter den Disk-Adaptern 75a–75d und
mit dem Host-Adapter 72 zu ermöglichen. Zum Beispiel kann
jeder Disk-Adapter sein eigenes Gebiet innerhalb der Mailbox 74b aufweisen.
Jeder der Disk-Adapter 75a–75d kann Information
aus dem anwendbaren Mailbox-Gebiet 74b verschicken oder
lesen, um einen Status und andere Information zu kommunizieren.
-
Ein
entfernter Adapter
78 kann ebenfalls an dem Bus
73 des
Speichersystems
70 angebracht werden. Der entfernte Adapter
kann zur Kommunikation mit entfernten Dateneinrichtungen ("RDF"), zum Beispiel für eine Verbindung
mit einer anderen Dateneinrichtung zum Führen einer Spiegelredundanzgruppe
verwendet werden. Eine Form von RDF Verbindung und ein Verfahren
einer Implementierung ist in verschiedenen Veröffentlichungen beschrieben, die
von der EMC Corporation verfügbar
sind, einschließlich
des SYMMETRIX Remote Data Facility Product Manual, P/N 200-999-554,
rev. B, Juni 1995. RDF Ausführungsformen
sind auch in dem
U.S. Patent
Nr. 5,544,347 (Yanai) beschrieben, das hier durch Bezugnahme
in seiner Gesamtheit Teil der vorliegenden Anmeldung ist. Es sei
jedoch darauf hingewiesen, dass die vorliegende Erfindung nicht
auf die Verwendung des RDF oder auf ein System, welches SYMMETRIX
Platten-Felder verwendet, beschränkt ist
und mit irgendeiner anderen Art von zahlreichen anderen Arten von
Speichersystemen verwendet werden kann.
-
Ein
Service-Prozessor 77 kann mit dem Bus 73 des Speichersystems 70 gekoppelt
sein. Der Service-Prozessor 77 kann eine Anzeige, eine
Tastatur und andere Eingabe/Ausgabe- (I/O)-Einrichtungen umfassen, um einen
Betreiber in die Lage zu versetzen, den Service-Prozessor 77 zum
Konfigurieren der Komponenten des Speichersystems 70 und
zum Durchführen
oder Initiieren von Diagnose- und Wartungseinrichtungen zu verwenden.
-
EP 0 845 906 A2 lehrt
ein System aus Servern und Datenträgern, bei denen eine Mehrzahl
von audiovisuellen Servern gleichermaßen Zugriffe auf einen Pool
von Festplattenanordnungen haben, die mit einer gemeinsamen Schleifenarchitektur
miteinander verbunden sind. Jeder der Server kann einen entsprechenden
Datenstrom aus den Schleifenverbindungen über eine Breitbandverbindung
zu den vorgesehen audiovisuellen Vorrichtungen liefern. Des weiteren
ist ein Archivierungsserver vorgesehen, der ebenfalls auf die gemeinsame
Speicherschleife und ein Archivspeichersystem zugreifen kann.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Es
ist die Aufgabe der vorliegenden Erfindung, einen Ansatz bereitzustellen,
mit dem die Sicherheit eines Datenarchivierungssystems weiter verbessert
werden kann. Diese Aufgabe wird durch die unabhängigen Patentansprüche gelöst.
-
Gemäß einer
Ausführungsform
der vorliegenden Erfindung ist ein Computersystem offenbart. Gemäß dieser
Ausführungsform
umfasst das Computersystem eine Host-Domäne, die wenigstens einen Host-Computer
aufweist. Das Computersystem umfasst auch eine Speicher-Domäne, die
mit der Host-Domäne
gekoppelt ist und eine Vielzahl von primären Speichereinrichtungen,
eine sekundäre
Speichereinrichtung und ein geschaltetes Netz, welches mit den primären Speicherknoten
und mit dem sekundären
Speicherknoten gekoppelt ist, umfasst.
-
Gemäß einer
anderen Ausführungsform
der vorliegenden Erfindung wird ein Computersystem offenbart, welches
eine Vielzahl von Host-Computern umfasst, wobei jeder der Host-Computer eine andere Plattform
bildet. Das Computersystem umfasst ferner eine Vielzahl von primären Speichereinrichtungen, die
jeweils wenigstens einem der Host-Computer zugeordnet ist. Das System
umfasst auch eine sekundäre
Speichereinrichtung, die mit einer Vielzahl der primären Speichereinrichtungen
gekoppelt ist, wobei die zweite Speichereinrichtung konfiguriert
ist, um Backup-Daten von jedem der Host-Computer zu empfangen.
-
Gemäß einer
anderen Ausführungsform
der vorliegenden Erfindung wird ein Verfahren zum Transferieren
von Daten von einem primären
Speicherknoten an einen sekundären
Speicherknoten offenbart. Gemäß dieser
Ausführungsform
wird eine Verbindung automatisch von einem der primären Speicherelemente
zu einem sekundären
Speicherelement hergestellt, um Daten an das sekundäre Speicherelement
zu transferieren. Daten werden von dem primären Speicherelement direkt
zu dem sekundären Speicherelement über die
erste Verbindung transferiert.
-
Gemäß einer
anderen Ausführungsform
der Erfindung ist ein Verfahren zum Senden einer Kopie von Daten
von einem Speicherelement eines Computersystems offenbart. Gemäß dieser
Ausführungsform
werden die Daten zunächst
in einen abstrakten Blocksatz formuliert. Der abstrakte Blocksatz
wird übertragen.
In diesen und anderen Ausführungsformen
können
die Schritte zum Formulieren und Übertragen sequentiell oder
gleichzeitig ausgeführt
werden.
-
Gemäß einer
anderen Ausführungsform
der vorliegenden Erfindung ist ein Verfahren zum Speichern eines
logischen Objekts offenbart. Gemäß dieser
Ausführungsform
wird das logische Objekt in einen abstrakten Blocksatz formuliert
und gespeichert.
-
Gemäß einer
anderen Ausführungsform
der vorliegenden Erfindung ist eine Speichereinrichtung offenbart.
Gemäß dieser
Ausführungsform
umfaßt die
Speichereinrichtung einen Speicher und eine Einrichtung zum Übertragen
eines abstrakten Blocksatzes von dem Speicher.
-
Gemäß einer
anderen Ausführungsform
der vorliegenden Erfindung ist ein Sekundärspeichersystem offenbart.
Gemäß dieser
Ausführungsform
umfaßt
das Sekundärspeichersystem
ein sekundäres Speichermedium
und eine Einrichtung zum Speichern eines abstrakten Blocksatzes
auf dem sekundären
Speichermedium.
-
Gemäß einer
anderen Ausführungsform
der vorliegenden Erfindung wird ein von einem Computer lesbares
Medium offenbart, welches ein logisches Objekt speichert. Gemäß dieser
Ausführungsform umfaßt das Medium
eine Vielzahl von Datenblöcken, die
jeweils auf dem lesbaren Medium einen Abschnitt von Daten von dem
logischen Objekt speichern, und ein Metadaten-Segment, das auf dem
lesbaren Medium gespeichert ist, um die Reihenfolge von Datenblöcken in
dem logischen Objekt zu identifizieren.
-
Gemäß einer
anderen Ausführungsform
der vorlegenden Erfindung ist ein Verfahren zum Erzeugen eines Backups
(einer Sicherungskopie) für
ein logisches Objekt offenbart. Gemäß dieser Ausführungsform
werden Datenblöcke
des logischen Objekts, die sich seit einem früheren Zeitpunkt geändert haben,
identifiziert. Die identifizierten Datenblöcke werden als ein differentieller
abstrakter Blocksatz gespeichert.
-
Gemäß einer
anderen Ausführungsform
der vorliegenden Erfindung wird eine Speichereinrichtung offenbart.
Gemäß dieser
Ausführungsform
umfaßt
die Speichereinrichtung einen Speicher, eine Einrichtung zum Identifizieren
von Datenblöcken,
die sich seit einem früheren
Zeitpunkt geändert
haben, und eine Einrichtung zum übertragen
eines differentiellen abstrakten Blocksatzes von dem Speicher.
-
Gemäß einer
anderen Ausführungsform
der Erfindung ist ein Verfahren zum Bilden eines aktualisierten
abstrakten Blocksatzes offenbart. Gemäß dieser Ausführungsform
wird ein vollständiger
abstrakter Blocksatz bereitgestellt. Ein differentieller abstrakter
Blocksatz wird ebenfalls bereitgestellt. Der vollständig abstrakte
Blocksatz und der differentielle abstrakte Blocksatz werden kombiniert,
um den aktualisierten abstrakten Blocksatz zu bilden.
-
Gemäß einer
anderen Ausführungsform
der Erfindung wird ein Verfahren zum Bilden einer aktualisierten
Sicherungskopie (eines Backups) eines logischen Objekts offenbart.
Gemäß dieser
Ausführungsform
wird eine erste Sicherungskopie (Backup) des logischen Objekts bereitgestellt.
Eine differentielle Sicherungskopie (Backup) des logischen Objekts wird
ebenfalls bereitgestellt, wobei der differentielle Backup eine Vielzahl
von Backup-Datenblöcken
umfaßt,
die sich geändert
haben, seitdem der erste Backup gebildet wurde. Die Backup-Datenblöcke werden
zu dem ersten Backup hinzugefügt
und Metadaten, die eine Reihenfolge von Datenblöcken in dem aktualisierten
Backup identifizieren, werden hinzugefügt.
-
Gemäß einer
anderen Ausführungsform
der vorliegenden Erfindung ist eine Sekundärspeichereinrichtung offenbart
Gemäß dieser
Ausführungsform
umfaßt
die Speichereinrichtung ein Sekundärspeichermedium und eine Steuereinrichtung,
die programmiert ist, um einen ersten Backup und einen differentiellen
abstrakten Blocksatz zu kombinieren, um einen vollständigen abstrakten
Blocksatz zu bilden.
-
Gemäß einer
anderen Ausführungsform
der vorliegenden Erfindung ist ein Verfahren zum Kopieren eines
logischen Objekts offenbart. Gemäß dieser Ausführungsform
werden ein Satz von Speichersegmenten einer Computerspeichereinrichtung
identifiziert, wobei jedes der identifizierten Segmente Daten von
wenigstens einem physikalischen Block eines logischen Objekts umfassen.
Die identifizierten Speichersegmente werden kopiert. Gemäß dieser
Ausführungsform
umfaßt
wenigstens eines der kopierten Speichersegmente eine Vielzahl der
physikalischen Datenblöcke.
Somit ist die Größe des Speichersegments
nicht notwendigerweise die gleiche wie die Größe von einzelnen physikalischen
Datenblöcken.
-
Gemäß einer
anderen Ausführungsform
der vorliegenden Erfindung ist ein Verfahren zum Erzeugen eines
Backups eines logischen Objekts offenbart. Gemäß dieser Ausführungsform
wird ein Satz von Backup-Segmenten empfangen, wobei jedes Backup-Segment
wenigstens einen physikalischen Block eines logischen Objekts umfaßt. Die
empfangenen Speicherelemente werden gespeichert, wobei wenigstens
eines der Speicherelemente eine Vielzahl der physikalischen Datenblöcke umfaßt.
-
Gemäß einer
anderen Ausführungsform
der Erfindung wird ein vom Computer lesbares Medium, welches eine
Backup-Kopie eines logischen Objekts speichert, offenbart. Gemäß dieser
Ausführungsform werden
eine Vielzahl von Datensegmenten auf dem lesbaren Medium gespeichert,
wobei jedes Datensegment wenigstens einen Datenblock des logischen Objekts
umfaßt,
und wobei wenigstens eines der Datensegmente eine Vielzahl der logischen
Datenblöcke
umfaßt.
Diese Ausführungsform
umfaßt
ferner ein Metadaten-Segment, das auf dem lesbaren Medium gespeichert
ist, um Datenblöcke
des logischen Objekts in den Datensegmenten zu identifizieren. In dieser
Ausführungsform
kann das Datensegment zum Beispiel eine Spur mit einer Vielzahl
von Blöcken
fester Größe sein.
-
Gemäß einer
anderen Ausführungsform
der vorliegenden Erfindung wird ein Computerspeichersystem offenbart.
Gemäß dieser
Ausführungsform umfaßt das System
eine Computerspeichereinrichtung, die eine Vielzahl von physikalischen
Speichersegmenten umfaßt
(die, in einer Ausführungsform, eine
Spur ist), die jeweils wenigstens einen Datenblock speichern. Das
System umfaßt
ferner eine Einrichtung zum Identifizieren eines Satzes von Speicherelementen,
wobei jedes Speicherelement des Satzes wenigstens einen physikalischen
Block eines logischen Objekts umfaßt, und eine Einrichtung zum Übertragen
der identifizierten Speicherelemente.
-
Gemäß einer
anderen Ausführungsform
der vorliegenden Erfindung wird ein Verfahren zur Erstellung einer
Sicherungskopie (eines Backups) eines logischen Objekts zu einem
festen Zeitpunkt offenbart. Gemäß dieser
Ausführungsform
wird ein Satz von Speichersegmenten, die logische Datenblöcke des logischen
Objekts umfassen, identifiziert. Diese Speicherelemente werden an
eine Backup-Speichereinrichtung
kopiert, und zwar außerhalb
der Reihenfolge der Reihenfolge der Speichersegmente oder der logischen
Datenblöcke,
die in dem logischen Objekt erscheinen. Wenn während des Kopierschritts ein Speicherelement,
welches einen physikalischen Block des logischen Objekts umfaßt, modifiziert
werden muß,
wird für
dieses Speichersegment sofort eine Sicherungskopie (ein Backup)
erstellt. In diesen und anderen Ausführungsformen können (müssen aber
nicht) die Speicherelemente in der Größe der Größe der Datenblöcke entsprechen.
-
Gemäß einer
anderen Ausführungsform
der vorliegenden Erfindung wird ein Computerspeichersystem offenbart.
Gemäß dieser
Ausführungsform umfaßt das System
eine Computerspeichereinrichtung, die eine Vielzahl von Speichersegmenten
umfaßt.
Das System umfaßt
ferner eine Einrichtung zum Identifizieren eines Satzes der Speichersegmente, der
logische Objekte, logische Datenblöcke umfaßt; eine Einrichtung zum Kopieren
der identifizierten Speichersegmente, und zwar außerhalb
der Reihenfolge von der Reihenfolge von logischen Datenblöcken und
dem logischen Objekt; und eine Einrichtung zum sofortigen Kopieren
von Speichersegmenten an die Backup-Speichereinrichtung, wenn ein
Versuch durchgeführt
wird, einen physikalischen Block des Speichersegments zu modifizieren.
-
Gemäß einer
anderen Ausführungsform
der vorliegenden Erfindung wird ein Verfahren zum Kopieren eines
logischen Objekts an eine primäre
Speichereinrichtung offenbart. Gemäß dieser Ausführungsform
wird eine Kopie des logischen Objekts bereitgestellt. Physikalische
Blöcke
des Speichers in der primären
Speichereinrichtung werden zum Speichern des logischen Objekts zugeordnet.
Eine Karte der Datenblöcke
der Kopie des logischen Objekts an die physikalischen Blöcke der
primären
Speichereinrichtung wird erzeugt. Die Datenblöcke werden an die physikalischen
Blöcke,
auf Grundlage der Karte, kopiert.
-
Gemäß einer
anderen Ausführungsform
der vorliegenden Erfindung wird ein Verfahren zum Kopieren eines
logischen Objekts an eine primäre
Speichereinrichtung offenbart. Gemäß dieser Ausführungsform
wird eine abstrakte Blocksatzkopie des logischen Objekts bereitgestellt.
Physikalische Blöcke des
Speichers werden in der primären
Speichereinrichtung zum Speichern des logischen Objekts zugewiesen.
Die Datenblöcke
der Kopie des logischen Objekts werden auf die physikalischen Blöcke der
primären
Speichereinrichtung abgebildet und die Datenblöcke werden auf die physikalischen
Blöcke
auf Grundlage der Abbildung kopiert.
-
Gemäß einer
anderen Ausführungsform
der vorliegenden Erfindung wird eine Computer-Speichereinrichtung
offenbart. Gemäß dieser
Ausführungsform
umfaßt
die Einrichtung einen Speicher, der eine Vielzahl von physikalischen
Datenblöcken
umfaßt. Die
Einrichtung umfaßt
ferner eine Einrichtung zum Speichern der Datenblöcke eines
abstrakten Blocksatzes an die physikalischen Datenblöcke auf
Grundlage einer Abbildung der Datenblöcke auf einen Satz der physikalischen
Datenblöcke.
-
Gemäß einer
anderen Ausführungsform
der vorliegenden Erfindung wird ein Verfahren zum Kopieren eines
logischen Objekts offenbart. Gemäß dieser
Ausführungsform
wird ein Satz von Speichersegmenten, der die logischen Datenblöcke umfaßt, identifiziert.
Die Speichersegmente können
den logischen Datenblöcken
entsprechen oder können
von einer unterschiedlichen Größe sein.
Die identifizierten Speichersegmente werden an eine zweite Speichereinrichtung
kopiert, und zwar außerhalb
der Reihenfolge von der Reihenfolge der logischen Datenblöcke in dem
logischen Objekt.
-
Gemäß einer
anderen Ausführungsform
der vorliegenden Erfindung wird ein Verfahren zum Kopieren eines
logischen Objekts offenbart. Gemäß dieser
Ausführungsform
wird ein Satz von Speichersegmenten, der die logischen Datenblöcke des
logischen Objekts umfaßt,
identifiziert. Die identifizierten Speichersegmente werden an eine
zweite Computerspeichereinrichtung parallel kopiert. Metadaten werden
bereitgestellt, um die Reihenfolge von Daten, die in den identifizierten
Speichersegmenten in dem logischen Objekt gespeichert werden, zu
identifizieren.
-
Gemäße einer
anderen Ausführungsform der
vorliegenden Erfindung wird ein Verfahren zum Erstellen einer Sicherungskopie
(eines Backups) eines logischen Objekts, welches eine Vielzahl von
logischen Blöcken
umfaßt,
offenbart. Gemäß dieser Ausführungsform
ist ein erstes und ein zweites Backup-Medium vorgesehen. In einer
Ausführungsform handelt
es sich bei jedem Backup-Medium um ein digitales Speicherband. Logische
Blöcke
werden an das erste und das zweite Backup-Medium parallel geschrieben.
-
Gemäß einer
anderen Ausführungsform
der vorliegenden Erfindung wird eine sekundäre Speichereinrichtung offenbart.
Gemäß dieser
Ausführungsform
umfaßt
die sekundäre
Speichereinrichtung eine Vielzahl von Speicherkomponenten und eine
Einrichtung zum Schreiben von Abschnitten eines abstrakten Blocksatzes
an die Speicherkomponenten parallel.
-
Gemäß einer
anderen Ausführungsform
der vorliegenden Erfindung wird ein Verfahren zum Wiederherstellen
eines logischen Objekts offenbart. Gemäß dieser Ausführungsform
werden ein erster und ein zweiter Abschnitt einer Kopie des logischen
Objekts bereitgestellt. Datenblöcke,
die in dem ersten Abschnitt gespeichert werden, und Datenblöcke, die in
dem zweiten Abschnitt gespeichert werden, werden parallel gelesen.
Das logische Objekt wird aus den gelesenen Datenblöcken wiederhergestellt.
-
Gemäß einer
anderen Ausführungsform
der vorliegenden Erfindung wird eine sekundäre Speichereinrichtung offenbart.
Gemäß dieser
Ausführungsform
umfaßt
die sekundäre
Speichereinrichtung eine Einrichtung zum Lesen von Daten aus einer Vielzahl
von Speicherkomponenten parallel und eine Einrichtung zum Bereitstellen
der gelesenen Daten an einer anderen Einrichtung als ein abstrakter Blocksatz.
-
Jede
der voranstehend offenbarten Erfindungen und jede Ausführungsform
kann getrennt und unabhängig
nützlich
und angewendet werden oder kann in Kombination angewendet werden.
Eine Beschreibung eines Aspekts der Erfindungen ist nicht dafür vorgesehen,
um bezüglich
der anderen Aspekte der Erfindungen beschränkend zu sein.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
In
den Zeichnungen zeigen:
-
1 ein
Beispiel einer Umwandlung von Anwendungsebenen-Daten auf eine Speicherung in einem
physikalischen System und umgekehrt;
-
2A ein Beispiel des Zusammenhangs zwischen logischen
Datenträgern
und physikalischen Speichereinrichtungen;
-
2B ein Beispiel einer Abbildung einer logischen
Datei auf ein physikalisches Speichersystem;
-
2C ein anderes Beispiel einer Abbildung eines
logischen Objekts auf eine physikalische Speichereinrichtung;
-
3A ein Beispiel einer Spiegelung auf verschiedene
physikalische Speichereinrichtungen;
-
3B ein Beispiel einer redundanten Paritätsinformation
auf physikalischen Speichereinrichtungen;
-
4 ein
Beispiel von mehreren Redundanzgruppen innerhalb eines einzelnen
Felds von Speichereinrichtungen;
-
5 ein
Beispiel eines Backup-Speichersystems;
-
6 eine
Ausführungsform
eines Backup-Speichersystems, welches einen Mechanismus für einen
direkten Backup von Daten auf dem primären Speichersystem umfaßt;
-
7 ein
Beispiel eines Speichersystems;
-
8 ein
Beispiel eines Computerspeichersystems, welches so strukturiert
ist, dass es eine Unternehmens-Host-Domäne und eine
Unternehmens-Speicher-Domäne
oder ein Netz aufweist, gemäß einer
Ausführungsform
der vorliegenden Erfindung;
-
9 ein
anderes Beispiel eines Computersystems mit einer Unternehmens-Host-Domäne und einer
Unternehmens-Speicher-Domäne,
gemäß einer
Ausführungsform
der vorliegenden Erfindung;
-
10 eine Ausführungsform
eines Verfahrens zum Kopieren oder zum Erstellen einer Sicherungskopie
(eines Backups) eines logischen Objekts;
-
11A ein Beispiel von einigen Komponenten eines
Computersystems, welches eine Host-Domäne und eine Speicher-Domäne umfaßt, gemäß einer
Ausführungsform
der vorliegenden Erfindung;
-
11B eine andere Ausführungsform von Komponenten
eines Computersystems, welches in eine Host-Domäne und eine Speicher-Domäne aufgeteilt
ist, gemäß einer
Ausführungsform
der vorliegenden Erfindung;
-
12 eine Ausführungsform
eines Verfahrens zum Kopieren oder zum Erstellen einer Sicherungskopie
(eines Backups) von Daten in einem Computerspeichersystem;
-
13 ein Beispiel einer Abbildung eines logischen
Objekts auf eine physikalische Speichereinrichtung und die Bildung
eines abstrakten Blocksatzes zum Kopieren oder zum Erstellen eines
Backups, gemäß einer
Ausführungsform
der vorliegenden Erfindung;
-
14 eine Ausführungsform
eines Verfahrens zum Bilden eines abstrakten Blocksatzes;
-
15 eine Ausführungsform
eines Verfahrens zum Kopieren oder Wiederherstellen eines logischen
Objekts aus einem abstrakten Blocksatz;
-
16 ein Beispiel zum Kombinieren von zwei Formen
von Metadaten für
ein logisches Objekt in eine Neuabbildungstabelle zum Wiederherstellen des
logischen Objekts auf ein neues Gebiet des Speichers;
-
17 ein Beispiel einer Speicherung eines logischen
Objekts über
ein Computersystem und die Bildung eines abstrakten Blocksatzes
unter Verwendung von physikalischen Backup-Segementen, die einer
Spurgröße entsprechen,
gemäß einer
Ausführungsform
der vorliegenden Erfindung;
-
18 ein Beispiel einer Ausführungsform von Metadaten für einen
abstrakten Blocksatz, der eine physikalische Backupsegment-Granularität aufweist,
die größer als
die Größe eines
Datenblocks ist;
-
19 eine Ausführungsform
eines Verfahrens zum Erstellen einer Sicherungskopie (eines Backups)
eines logischen Objekts, während
Aktualisierungen für
das logische Objekt während
des Backups verhindert werden,
-
20 ein Beispiel eines Systems, welches Markierungen
für physikalische
Backupsegmente umfaßt,
wobei eine Vermeidung einer Aktualisierung von Information innerhalb
eines logischen Objekts während
eines Backup-Prozesses ermöglicht
wird, gemäß einer
Ausführungsform
der vorliegenden Erfindung;
-
21 eine Ausführungsform
eines Verfahrens zum Ausführen
eines differentiellen Backups;
-
22 eine Ausführungsform
zum Verfolgen von Änderungen
auf der physikalischen Ebene eines Systems, und zum Umwandeln dieser Änderungen
in eine logische Information;
-
23 ein Beispiel zum Ausführen eines differentiellen
Backups auf einem logischen Objekt, gemäß einer Ausführungsform
der vorliegenden Erfindung;
-
24 ein Beispiel zum Bilden von vollständigen und
differentiellen logischen Backup-Objekten für ein Backup eines logischen
Objekts, gemäß einer Ausführungsform
der vorliegenden Erfindung;
-
25 ein Beispiel zum Kombinieren eines abstrakten
Blocksatzes und eines differentiellen abstrakten Blocksatzes in
einen einzelnen vollständigen abstrakten
Blocksatz, gemäß einer
Ausführungsform der
vorliegenden Erfindung;
-
26 eine Ausführungsform
eines Verfahrens zum Kombinieren von differentiellen abstrakten Blocksätzen mit
einem vollständigen
abstrakten Blocksatz, um einen neuen vollständigen abstrakten Blocksatz
zu erzeugen;
-
27 ein Beispiel eines Systems zum Erstellen einer
Sicherungskopie von Daten auf einem primären Speicherknoten, unter Verwendung
eines sekundären
Speicherknotens, gemäß einer
Ausführungsform
der vorliegenden Erfindung;
-
28 eine Ausführungsform
eines Zustandsdiagramms für
jeden synchronen Transfer von Daten für eine Kopierung oder ein Backup;
-
29 eine Ausführungsform
eines Zustandsdiagramms für
eine asynchrone Wiederherstellung eines gesicherten (Backup) logischen
Objekts;
-
30 eine Ausführungsform
eines Systems und eines Datenflusses innerhalb eines Systems zum
Senden einer Kopie von Backup-Information von einem primären Speicherknoten;
-
31 eine Ausführungsform
eines Verfahrens zum Senden von Daten von einem primären Speicherknoten;
-
32 eine Ausführungsform
eines Aufbaus und eines Datenflusses für eine Steuerung zum Schreiben
von Information an ein Backup-Medium; und
-
33 ein Beispiel eines Bandmediums, welches mit
Backup-Abstraktblocksätzen beschrieben
ist.
-
AUSFÜHRLICHE
BESCHREIBUNG
-
Die
Architekturen, die in 5 und 6 dargestellt
sind, können
so angesehen werden, dass sie sich auf ein Netzmodell zur Speicherung
oder ein "Netz-zentriertes" System fokussieren.
In einem derartigen System ist der zentrale Punkt eines Datentransfers
einer Bewegung von logischen Daten über ein Netz. Ferner sind das
Speichersystem 52 und das Backup-Speichersystem 54 typischerweise
einer Architektur mit einem einzelnen Clienten oder Host 50 zugeordnet.
-
Ein
alternatives Modell richtet sich auf eine Trennung der Clienten-
oder Host-Domäne
und der Speicher-Domäne.
-
8 zeigt
ein Beispiel eines Systems, welches die Host-Domäne
von der Speicher-Domäne abtrennt.
In 8 sind eine Anzahl von Host-Computern 80 in
einer Unternehmens-Host Domäne 80a enthalten.
Bei den Host-Computern kann es sich um irgendeinen Typ von Computer,
Betriebssystem und Datenmanagement-Anwendungen handeln. Zum Beispiel
kann ein Host-Computer 80 ein Hewlett Packard 9000 Computersystem,
auf dem ein HP-UX Betriebssystem läuft, sein. Ein anderer Host-Computer 80 kann
eine Sun Spark Station, auf der ein Solaris Betriebssystem läuft, sein.
Die Kombination eines Host-Betriebssystems
und einer Managementanwendung für
anwendbare Daten wird als eine "Plattform" bezeichnet. Jeder
der Host-Computer 80 bildet eine
andere Plattform, die mit dem Speichernetz 89 gekoppelt
ist.
-
Die
Host-Computer 80 in der Unternehmens-Host-Domäne 88 können über ein
Netz verbunden sein. Dieses Netz kann Vermittlungs- bzw. Schaltknoten 81 umfassen,
obwohl irgendeine andere Form von Netz verwendet werden kann.
-
In
der Ausführungsform
der 8 sind die Host-Computer 80 mit dem Unternehmens-Speicher 89 über ein
Netz oder direkt mit primären
Speicherknoten 82 gekoppelt. Ein primärer Speicherknoten ist eine
Speichereinrichtung, die eine beträchtliche Datenmenge zur Verwendung
von dem Host 80 speichern kann. Zum Beispiel kann ein Symmetrix
System, beispielsweise das voranstehend unter Bezugnahme auf 7 beschriebene,
als ein primärer Speicherknoten
verwendet werden, obwohl dies nicht als einschränkend angesehen wird.
-
In
der Ausführungsform
der 8 ist jeder Host-Computer mit einem Untersatz
von primären Speicherknoten 82 zur
Verwendung als ein Hauptspeicher für diesen Host-Computer gekoppelt.
Zum Beispiel ist der Host-Computer 80a direkt mit einem primären Speicherknoten 82a gekoppelt.
Der Host-Computer 80a kann sich auf einen primären Speicherknoten 82a für die meisten
seiner Speicher-intensiven Funktionen, beispielsweise zum Zugreifen
auf eine sehr große
Datenbank, verlassen.
-
Die
primären
Speicherknoten 82 können auch über ein
Netz zusammengekoppelt werden. In dem Beispiel der 8 umfaßt das Netz
Verbindungen 85 und ein Vermittlungs- oder Schaltnetz 84.
Das Schaltnetz 84 kann zum Beispiel ein Faserkanal-Netz
sein. Die Verbindung 85 kann eine RDF Verbindung über eine
ESCON Leitung sein.
-
Das
Netz zwischen primären
Speicherknoten kann zwei verschiedenen Zwecken dienen. Das Netz
kann einen Transfer von Daten zwischen primären Speicherknoten erlauben.
Zum Beispiel kann eine Datenbank, die gerade von einem Host 80a manipuliert
und in einem primären
Speicherknoten 82a gespeichert ist, an den primären Speicherknoten 82b zur
Verwendung von einem Host 80b übertragen werden. Durch Übertragen
der Datenbank über
das Unternehmens-Speichernetz (unter Verwendung der Verbindung 85 oder
dem Schaltnetz 84) können
die Computerressourcen des Hosts 80a, 80b und
die verfügbare
Bandbreite in dem Unternehmens-Host-Domänennetz erhalten werden.
-
Das
Unternehmens-Speichernetz 89 kann auch einen sekundären Speicherknoten 87 umfassen.
Der sekundäre
Speicherknoten kann für
Backup-Funktionen, ein hierarchisches Speichermanagement virtuelle
Platten und andere Funktionen verwendet werden. Somit kann der sekundäre Speicherknoten 87 mit
einer Bandspeichereinheit 83 gekoppelt werden. Der sekundäre Speicherknoten 87 würde einen
ausgefeilten Transfer von Daten von den primären Speicherknoten 82 an
die Bänder,
die in der Bandspeichereinheit 83 gespeichert sind, koordinieren
(andere Ausführungsformen
können
zusätzliche oder
alternative Medien für
eine sekundäre
Speicherung verwenden).
-
9 zeigt
eine Ausführungsform
eines Computernetzes, welches gemäß einem Aspekt einer Ausführungsform
der vorliegenden Erfindung konstruiert ist. In dieser Ausführungsform
ist eine Unternehmens-Host-Domäne 97 vorgesehen.
Die Unternehmens-Host-Domäne 97 umfaßt eine
Vielzahl von Host-Computern 90a–90e. Die Host-Computer können verschiedene
Plattformen und verschiedene entsprechende Mechanismen zum Zugreifen
auf und zum Speichern von Daten in dem Speicher umfassen. Zum Beispiel
ist ein Host-Computer 90a ein Hewlett Packard HP 9000 Computer.
Der Host-Computer 90c ist eine Sun Spark Station, auf der
ein Solaris Betriebssystem laufen kann. Die Host-Computer können untereinander über ein
Netz 96 kommunizieren. Ein derartiges Netz kann eines von
vielen Computernetzen sein, welches zum Verbinden von Computern
bekannt und angewendet wird.
-
In
der Ausführungsform
der 9 ist jeder Host-Computer 90a–90e mit
einem primären
Speicherknoten 92a–92c verbunden.
In dieser Ausführungsform
ist jeder primäre
Speicherknoten 92a–92c ein
iteratives Cache-Plattenfeld (Iterative Cached Disk Array), wie
das Symmetrix Speichersystem, beispielsweise dasjenige, welches
voranstehend unter Bezugnahme auf 7 beschrieben
wurde, obwohl dies nicht als beschränkend beabsichtigt ist. Somit
ist zum Beispiel der Host-Computer 90a vorwiegend mit dem
Speicherknoten 92a gekoppelt. In ähnlicher Weise verwendet der
Host-Computer 90b den primären Speicherknoten 92b als
eine primäre
Quelle von seinen Daten.
-
In
der Ausführungsform
der 9 ist der Host-Computer 90a mit dem primären Speicherknoten 92a über einen Hochgeschwindigkeits-Faserkanal 91a verbunden.
Der Host 90b ist jedoch mit dem primären Speicherknoten 92a über eine
standardmäßige SCSI
Verbindung verbunden. Jeder der Hosts 90a und 90b ist
mit dem gleichen primären
Speicherknoten 92a gekoppelt. Andere Mechanismen könnten verwendet
werden, um die Host-Computer 90a–90e mit den primären Speicherknoten 92a–92c zu
verbinden. Zum Beispiel könnte
ein vollständiges geschaltetes
Netz für
irgendeinen der Host-Computer verwendet werden, um auf irgendeinen
der primären
Speicherknoten 92a–92c zuzugreifen.
-
Jeder
der primären
Speicherknoten
92a–
92c kann
auch unter Verwendung eines Netzes zusammengekoppelt werden. In
dem Beispiel der
9 ist die einzige Verbindung
unter den primären
Speicherknoten eine Verbindung
93g für eine ESCON entfernte Dateneinrichtung
(ESCON "RDF", ESCON Remote Data
Facility). Eine derartige Verbindung kann zum Transferieren von
Daten oder zum Aufrechterhalten eines Spiegels von Daten entweder
On-Line oder als ein periodisch aktualisierter Spiegel verwendet
werden. Eine derartige Verbindung kann, wie in dem
U.S. Patent Nr. 5,544,347 (Yanai)
beschrieben, implementiert werden, welches hier durch Bezugnahme
in seiner Gesamtheit Teil der vorliegenden Anmeldung ist. Jeder
der primären
Speicherknoten
92a–
92c kann unter
Verwendung irgendeines anderen Mechanismus zusammengekoppelt werden.
Zum Beispiel könnte
eine RDF Verbindung verwendet werden, um vollständig jeden der primären Speicherknoten
92–
92c zu
verbinden. In einer Alternative kann ein Schaltnetz verwendet werden,
unter der Annahme, dass das Netz von einer ausreichend hohen Geschwindigkeit
ist, um die Datenoperationen zwischen den primären Speicherknoten
92a–
92c zu
unterstützen.
-
Das
Speichernetz 98 in der Ausführungsform der 9 umfaßt ferner
einen sekundären
Speicherknoten 94. Der sekundäre Speicherknoten wird für Backup-(und
andere)Funktionen verwendet, zum Beispiel zum Speichern und Wiederherstellen
von Information in eine und aus einer Bandbibliothek 95.
-
In
der Ausführungsform
der 9 ist jeder der primären Speicherknoten mit dem
sekundären Speicherknoten 94 verbunden
oder (über
ein Netz) verbindbar. In diesem Beispiel sind die primären Speicherknoten 92b und 92c mit
dem sekundären Speicherknoten 94 gekoppelt,
der jeweils eine RDF Verbindung (93c bzw. 93d)
verwendet, die wie voranstehend beschrieben implementiert werden
können.
-
Der
primäre
Speicherknoten 92a ist (zusammen mit anderen primären Speicherknoten,
die nicht gezeigt sind) mit dem sekundären Speicherknoten 94 über ein
geschaltetes Netz verbunden, welches jedem der Systeme ermöglichen
wird, auf den sekundären
Speicherknoten 94 zuzugreifen.
-
Unter
Verwendung einer RDF (oder einer anderen) Verbindung, die einen
Hochgeschwindigkeits-Datentransfer über lange Entfernungen erlaubt, können die
primären
Speicherknoten 92a–92c und die
sekundäre
Speichereinrichtung 94 physikalisch in großen entfernten
Abständen
angeordnet werden.
-
Natürlich können andere
Topologien und andere Mechanismen verwendet werden, ohne von dem
Umfang der Erfindung abzuweichen.
-
Viele
der Anwendungen für
Computer konzentrieren sich nun mehr und mehr auf einen Speicher
als auf die Fähigkeit
des Systems, Berechnungen auszuführen.
Zum Beispiel ist ein Zugriff auf sehr große Datenbanken eine extrem
wichtige und wertvolle Anwendung für Computer.
-
In
der Vergangenheit hat sich das Hauptaugenmerk von Computersystemen
auf das Verbinden von Host-Computern, die jeweils ihren eigenen
zugehörigen
Speicher aufweisen, oder auf die Bereitstellung eines Netzzugriffes
auf einen einzelnen Speicher konzentriert. Dieser Hauptaugenmerk
fordert Host-Computer und Netz-Ressourcen.
-
In
einem Speicherungs-zentrierten Modell wird jedoch die Speicherkomponente
des Computersystems auf einen Status von gleicher Wichtigkeit angehoben.
In einem derartigen Modell können
die Speicherkomponenten des Systems untereinander mit einer geringeren
Einbindung von der Host-Domäne
in Wechselwirkung treten. Zum Beispiel kann es wünschenswert sein, eine Spiegelung über einen oder
mehrere primäre
Speicherknoten zu ermöglichen.
In ähnlicher
Weise kann es sein, dass Datenobjekte nicht von einem primären Speicherknoten
an einen anderen primären
Speicherknoten kopiert werden müssen.
Wenn zusätzliche
Backup-Ebenen wünschenswert
sind, können
die primären
Speicherknoten Daten auch an einen sekundären Speicherknoten für Backup-Zwecke
transferieren. Die primären
Speicherknoten können
entsprechend Daten von den sekundären Speicherknoten zur Wiederherstellung
empfangen. In einem Speicherungs-zentrierten Modell
können
einige oder alle Ressourcen-intensiven
Funktionen in einem derartigen System aus der Host-Domäne herausbewegt
werden. Bestimmte Ausführungsformen,
die diesem Modell folgen, können
Host-Domänen-Ressourcen
erhalten, eine Skalierbarkeit eines Speichers erhöhen (durch
eine Hinzufügung
zu der Speicher-Domäne
ohne eine starke Berücksichtigung
irgendeiner Einwirkung auf die Hostdomänen-Ressourcen) und eine Abhängigkeit von
den bestimmten Plattformen der Hosts in der Host-Domäne verringern.
-
10 zeigt auf einer sehr grundlegenden Ebene wie
Daten in einem derartigen System bewegt werden. In einem Schritt 100 werden
die physikalischen Elemente (z. B. Datenblöcke), für die eine Kopie, ein Backup
oder eine Wiederherstellung durchgeführt werden müssen, identifiziert.
In einem Schritt 102 werden diese physikalischen Elemente
transferiert.
-
Zum
Beispiel werden für
eine Kopie die physikalischen Elemente, die kopiert werden sollen,
in einem Schritt 100 identifiziert. Zusätzlich wird der Ort, wohin
die Elemente kopiert werden sollen, identifiziert. Für eine Kopie
zwischen primären
Speicherknoten kann dies eine Identifikation der Kopie von Orten
und die Orte, an die kopiert wurde, umfassen. Für ein Backup (eine Sicherungskopie)
beinhaltet das die Identifizierung der Kopie von Orten und kann
so einfach wie eine Bestimmung sein, welches Band oder welches andere
Backup-Speicherelement die Backup-Daten empfangen wird.
-
Für eine Kopie
zwischen primären
Speicherknoten werden die physikalischen Elemente von der identifizierten
Kopie von Orten an die identifizierte Kopie an Orten transferiert.
Für ein
Backup werden die physikalischen Elemente auf Bänder kopiert (obwohl Bezugnahme
auf Bänder
als ein sekundärer Speicher
gemacht wird, ist dies nicht als einschränkend beabsichtigt. Irgendein
anderes Speichermedium kann verwendet werden).
-
Der
Schritt 100 kann jedoch extrem kompliziert sein. In vielen
Fällen
ist es nicht wünschenswert, die
gesamten Inhalte eines primären
Speicherknotens zu kopieren. Anstelle davon kann es sein, dass nur
ein Untersatz der physikalischen Elemente in dem primären Speicherknoten
kopiert werden müssen.
Es sei beispielsweise das Erstellen einer Sicherungskopie (eines
Backups) einer Datenbank betrachtet, die in einem Speicherknoten 92a der 9 gespeichert
ist. Diese Datenbank kann nur einen kleinen Teil der gesamten Daten
belegen, die in der primären
Speichereinrichtung 92a gespeichert sind – in der
Tat kann ein extrem großes
Segment von Daten vorhanden sein, auf welches hauptsächlich von
dem Host-Computer 90b zugegriffen werden kann, dessen Host 90a noch
nicht einmal in der Lage für
einen Lesevorgang ist (weil er eine andere Plattform als der Host-Computer 90a ist).
-
Kurz
zusammengefaßt
kann es wünschenswert
sein, ein Backup für
ein logisches Objekt zu erstellen, welches innerhalb eines primären Speicherknotens
gespeichert ist. In diesem Fall erfordert der Schritt 100 eine
Abbildung des logischen Objekts auf die physikalischen Elemente
in dem primären
Speicherknoten 92a, um die physikalischen Elemente zu identifizieren,
die von 92a kopiert werden müssen. Wie voranstehend unter
Bezugnahme auf 2C beschrieben, können diese
physikalischen Elemente an getrennten Stellen innerhalb der primären Speichereinrichtung
angeordnet sein.
-
Der
Schritt 102 kann in ähnlicher
Weise kompliziert sein. Selbst nachdem sämtliche physikalischen Elemente
in der primären
Speichereinrichtung identifiziert worden sind, ist ein einfaches
Transferieren der physikalischen Elemente unzureichend. Der Zusammenhang
zwischen den physikalischen Elementen muß für das logische Objekt, welches
kopiert wird oder ein Backup durchläuft und von dem Host-Computer
gelesen werden soll, der mit dem empfangenden primären Speicherknoten
gekoppelt ist, unter Umständen
aufrechterhalten werden. Ein Mechanismus zur Verwendung einer Abbildung
eines logischen Objekts auf physikalische Elemente und eine Aufrechterhaltung
des logischen Zusammenhangs zwischen diesen physikalischen Elementen wird
nachstehend diskutiert. Dies ist bezüglich anderen Aspekten der
vorliegenden Erfindung nicht als einschränkend beabsichtigt.
-
In
jedem Fall kann es unter einem Speicher-zentrierten Modell für eine Computerspeicherung
wünschenswert
sein, zu ermöglichen,
dass soviel von dem Datentransferprozeß (z. B. demjenigen, der in 10 gezeigt ist) wie möglich innerhalb des Speichernetzes
ausgeführt
wird – und
ohne Ressourcen von der Host-Domäne
zu fordern. Demzufolge können
die primären
Speicherknoten und die sekundären
Speicherknoten in dem Netz eine ausreichende Intelligenz umfassen,
um Aspekte des Datentransferprozesses zu behandeln. Zum Beispiel
können
die primären
Speicherknoten minimal in der Lage sein, den Transfer von identifizierten
physikalischen Elementen in einem logischen Objekt zu managen, selbst
wenn diese physikalischen Elemente an getrennten Stellen innerhalb
der primären
Speichereinrichtung gespeichert werden. In einem Speicher-zentrierten
Modell eines Computersystems kann es wünschenswert sein, einige (oder
soviel wie möglich,
in einigen Fällen)
der Datentransferfunktionen zu bewegen, so dass sie unter Verwendung
von Ressourcen zwischen primären
und sekundären
Speicherknoten innerhalb der Speicher-Domäne ausgeführt werden.
-
Das
Computersystem kann eine Speichermanagement-Anwendung ("SMAPP", Storage Management
Application) zum Managen einer Manipulation einer Speicherung innerhalb
der Speicher-Domäne
umfassen. Die SMAPP kann unter Verwendung von Software auf den Host-Computern,
primären
Speicherknoten, einer getrennten Speicher-Steuereinrichtung oder
in irgendeiner Kombination von diesen implementiert werden, wie
nachstehend unter Bezugnahme auf die 11A und
B nachstehend beschrieben wird.
-
Die
Speichermanagement-Anwendung kann unter Verwendung von drei primären Komponenten implementiert
werden – einer
Managementkomponente, einer Serverkomponente und einer Clientenkomponente.
-
Die
Managementkomponente steuert eine Konfiguration des Backups, der
Steuerung und der Überwachung
der Backup- und Kopier-Prozesse in der Speicher-Domäne. Die
Managementkomponente verfolgt ebenfalls den Ort von Kopien von logischen Objekten
in dem Speichersystem einschließlich
zum Beispiel davon, welches Band oder Bänder Backups von jedem bestimmten
logischen Objekt enthalten.
-
Die
Serverkomponente steuert die Hardwarefunktionen des Speicherprozesses,
wie die Vorgänge
zum Anbringen und Herausnehmen von Bändern, das Öffnen und Schließen, das
Lesen und Schreiben von Bändern
und anderen Speichermedien.
-
Die
Clientenkomponente der SMAPP behandelt eine Manipulation und Identifikation
des Backups oder der Kopie – von
der Quelle. Zum Beispiel ist die Clientenkomponente zum Identifizieren
des anwendbaren logischen Objekts (z. B. Dateisystem, Datei oder
Datenbank) und zum Bestimmen, welche physikalischen Elemente der
Betriebssystemebene (oder der Ebene des Managers für logische
Datenträger) beteiligt
sind (wie voranstehend beschrieben, kann eine zusätzliche
Schicht zum Abbilden innerhalb der Speicher-Domäne an dem primären Speicherelement
von 111 ausgeführt
werden. Wenn zum Beispiel das primäre Speicherelement 111 ein
Symmetrix Produkt, wie voranstehend beschrieben, ist, können die
identifizierten physikalischen Spuren neu innerhalb des primären Speicherelements 111 abgebildet werden).
-
11A zeigt ein Beispiel eines Abschnitts eines
Computersystems mit einer Host-Domäne und einer Speicher-Domäne. In dem
Beispiel ist nur ein Host 110 in der Host Domäne gezeigt.
Zusätzlich
sind nur drei Komponenten in der Speicher-Domäne gezeigt. Diese sind das
primäre
Speicherelement 111 (welches zum Beispiel ein Symmetrix
Plattenarray sein kann), ein sekundäres Speicherelement 112 und eine
Bandbibliothekseinheit 113. Wie voranstehend beschrieben
können
zusätzliche
Speicherelemente enthalten sein, die über ein Netz zusammengekoppelt
sind. Der Einfachkeit halber zeigt das Beispiel der 11A nur ein Element von jeder der drei unterschiedlichen
Speicherebenen- Host,
primäres
Speicherelement und sekundäres
Speicherelement.
-
In
dem Beispiel der 11A ist eine Speicherung-Managementanwendung
("SMAPP") 114 vorwiegend
ein Resident auf dem Host-Computer 110. Somit würde der
Host-Computer eine Anwendungsprogrammier-Schnittstelle ("API", Application Programming
Interface) umfassen, die ein Management von Kopier-, Backup- und
Wiederherstellungs-(und anderen)Operationen ermöglichen würde. Zusätzlich umfaßt die Speicher-Managementanwendung 114 auf
dem Host 110 eine Server-Komponente 115b. Wiederum
würde der
Host eine API umfassen, die ein Management- von Server-Operationen
ermöglicht.
Schließlich
umfaßt
die Speicher-Managementanwendung 114 in
diesem Beispiel eine Clientenkomponente 115c. Die Clientenkomponente würde zum
Identifizieren und Manipulieren von logischen Objekten und zum Identifizieren
(gesehen von dem Betriebssystem oder von der Managementebene für logische
Datenträger)
der physikalischen Elemente, die das logische Objekt umfassen, verantwortlich
sein.
-
Zur
Vereinfachung wird der Betrieb zum Ausführen eines Backups aus dem
primären
Speicherelement 110 an das sekundäre Speicherelement 112 beschrieben.
Ein ähnlicher
Prozeß würde für den Aufbau
von Spiegelungs- oder Kopierfunktionen zwischen primären Speicherelementen
in einem Netz zutreffen.
-
In
diesem Beispiel umfaßt
das primäre
Speicherelement eine SMAPP Schnittstelle 116a. In ähnlicher
Weise umfaßt
das sekundäre
Speicherelement 112 eine SMAPP Schnittstelle 116b.
Das Kopieren eines logischen Objekts von dem primären Speicherelement 111 an
das sekundäre
Speicherelement 112 in der in 11a gezeigten
Ausführungsform
kann wie folgt fortschreiten. Zunächst wird eine "virtuelle Schaltung" oder "Verbindung" zwischen dem primären Speicherelement 111 und
dem sekundären
Speicherelement 112 aufgebaut. Dies kann eine virtuelle Schaltung
sein, die über
ein Netz eingerichtet wird, die das primäre Speicherelement mit dem
sekundären
Speicherelement 112 koppelt (einschließlich einer einzelnen RDF Verbindung
zwischen dem primären
Speicherelement 111 und dem sekundären Speicher 112,
zum Beispiel). Zusätzlich
zu der Herstellung einer physikalischen Verbindung zwischen den Knoten
identifiziert die virtuelle Schaltung eine Session zum Kopieren
einer Serie von Daten (die z. B. das logische Objekt umfassen) über die
identifizierte Verbindung.
-
Somit
kann die Managementkomponente 115a auf der SMAPP auf dem
Host-Computer 110 eine Backup-Session durch Anweisen des
primären Speicherelements
zum Herstellen einer virtuellen Schaltung mit dem sekundären Speicherelement 112 beginnen.
Die tatsächliche
Herstellung der virtuellen Schaltung kann dann von der SMAPP Schnittstelle 116a des
primären
Speicherelements 111 in Kombination mit der SMAPP Schnittstelle 116 des
sekundären
Speicherelements 112 ausgeführt werden.
-
Die
Klientenkomponente 115c des Host-Computers 110 identifiziert
ein logisches Objekt für
ein Backup. Die Klientenkomponente 115c bildet dann dieses
logische Objekt auf einen Satz von physikalischen Elementen des
Betriebssystems (oder einer Managerebene für logische Datenträger) ab.
Diese Abbildung wird in einem Schritt ausgeführt. Die Clientenkomponente 115c des
Hosts 110 kann dann die Elemente zum Kopieren an das primäre Speicherelement 111,
wie über
die SMAPP Schnittstelle 116a kommuniziert, identifizieren.
-
Die
Serverkomponente 115b des Hosts 110 würde die
geeigneten Bänder
in der Bandbibliothekseinheit 113 identifizieren und anbringen.
In diesem bestimmten Beispiel führt
die Serverkomponente 115b diese Befehle aus, indem sie
sie an die SMAPP Schnittstelle 116 des sekundären Speicherelement 112 über die
SMAPP Schnittstelle 116a des primären Speicherelements 111 leitet,
das dann die Bänder
anbringt.
-
Das
tatsächliche
Betriebsverhalten des Backup-Prozesses kann ohne weitere Steuerung
von dem Host 110 der Hast-Domäne (außer in einigen Ausführungsformen
das Überwachen
des Prozesses und das Managen der Backup-Medien, z. B. das Steuern
eines Auswechselns von Bändern
in einem Bandlaufwerk) fortschreiten. Das primäre Speicherelement 111 kann
die identifizierten physikalischen Segmente an das sekundäre Speicherelement 112 kopieren.
-
11B zeigt einen alternativen Aufbau zur Steuerung
der Speicher-Domäne
eines Computersystems gemäß der vorliegenden
Erfindung. In diesem Beispiel ist eine Speichernetz-Steuereinrichtung 118a mit
dem Host 110, dem primären
Speicherelement 111 und dem sekundären Speicherelement 112 über ein
Netz 119 verbunden. Dieses Netz kann zum Beispiel dem TCP/IP
Protokoll folgen. Die Speichernetz-Steuereinrichtung 118a kann
irgendeine Hardware oder eine Hardware und Softwarekombination sein,
die in der Lage ist, die erforderlichen Funktionen auszuführen. Zum
Beispiel kann die Speichernetz-Steuereinrichtung 118a ein
Computer sein, auf dem ein Windows NT Betriebssystem läuft, mit
einer geeigneten Anwendungssoftware zur Ausführung der SMAPP Funktionen.
-
In
diesem Beispiel ist ein wesentlicher Abschnitt der SMAPP Software
auf der Speichernetz-Steuereinrichtung 118a resident. Somit
umfaßt die
SMAPP 118b der Speichernetz-Steuereinrichtung 118a eine
Managementkomponente und eine Serverkomponente. Somit kann ein Management
der Hardware und der Medien durch die Speichernetz-Steuereinrichtung 118a,
unabhängig
von dem Host-Computer 110 ausgeführt werden.
-
In
diesem Beispiel umfaßt
der Hast 110 eine SMAPP 117, um Clientenfunktionen
auszuführen. Somit
wird eine Abbildung der logischen in die physikalische Welt noch
in der Host-Domäne
von dem Host-Computer 110 ausgeführt. Da die Clientenkomponente
SMAPP 117 zum Identifizieren von logischen Objekten und
zum Ausführen
einer Abbildung von der logischen in die physikalische Welt verantwortlich
ist, kann dies eine sinnvolle Anordnung sein. Die Abbildung von
der logischen in die physikalische Welt hängt von der bestimmten Host-Plattform ab und
der Host weist notwendigerweise Elemente auf, die in der Lage sind,
die erforderliche Abbildung auszuführen.
-
In
den anderen Ausführungsformen
kann die Clientenkomponente jedoch in der Speichernetz-Steuereinrichtung 118a oder
in einer getrennten Einrichtung, die in der Lage ist, eine Abbildung
von der logischen in die physikalische Welt für eine oder mehrere Plattformen
auszuführen,
enthalten sein. Unabhängig
davon, wo dies durchgeführt
wird, kann die Identifikationen und der Transfer von Daten für Kopier-
oder Backup-Zwecke vollständig
getrennt von der Host-Domäne
ausgeführt
werden. In vielen Systemen ist es jedoch effizienter, die Speicherabbildungs-Mechanismen
(Clientenkomponente) auf dem Host-Computer zu verwenden.
-
Andere
Anordnungen der SMAPP Software sind möglich. Zum Beispiel können die
Komponenten der SMAPP Software über
die primären
Speicherelemente in der Speicher-Domäne, das sekundäre Speicherelement
oder Elemente in der Host-Domäne oder
irgendeiner Kombination davon verteilt werden.
-
12 zeigt eine Ausführungsform eines Verfahrens
zum Transferieren eines logischen Objekts gemäß einem System wie demjenigen,
das in den 11A und 11B gezeigt
ist. In einem Schritt 120 wird eine virtuelle Schaltung
hergestellt. Wie voranstehend beschrieben kann dies einer Herstellung
einer physikalischen Verbindung zwischen dem Element, von dem kopiert
werden soll (z. B. einem primären
Speicherelement), zu dem Speicherelement, auf das kopiert wird (z.
B. ein sekundäres Speicherelement),
entsprechen. Zusätzlich
entspricht dieser Schritt 120 einer Herstellung einer Session
zum Ausführen
der Kopierung über
die Verbindung. Wie voranstehend beschrieben kann die Herstellung
und das Managen der virtuellen Schaltung durch eine SMAPP Komponente
ausgeführt
werden, die auf einem Host-Computer, der Speichernetz-Steuereinrichtung
oder irgendeiner anderen Einrichtung resident ist.
-
In
einem Schritt 121 wird das logische Objekt abgebildet,
um die physikalischen Elemente zu identifizieren, von denen kopiert
werden soll. zum Ausführen
eines Backups würde
dies der Abbildung eines identifizierten logischen Objekts auf der
Anwendungsebene auf einen Satz von physikalischen Elementen auf
der Speicherebene entsprechen.
-
Zum
Wiederherstellen von einem Band würde dies der Identifikation
der logischen Orte der Segmente des Speichers auf dem Band entsprechen. Wenn
das Band eine logische Bitdatei enthält, ist dieser Schritt unproblematisch.
Keine tatsächliche
Abbildung muß stattfinden.
In anderen Umständen,
wie bei den abstrakten Blocksätzen,
die nachstehend beschrieben werden, kann eine Tabelle oder eine
andere Struktur die Abbildung von Abschnitten der physikalischen
Elemente auf ihre Reihenfolge in dem logischen Objekt identifizieren.
Die tatsächliche
Meldung der logischen Ebene auf die physikalische Ebene kann zur
Zeit des Backups ausgeführt
und gespeichert werden.
-
In
einem Schritt 122 wird eine Aktualisierung von physikalischen
Elementen verhindert. Wenn zum Beispiel für eine Datenbank ein Backup
(eine Sicherungskopie) von einem primären Speicherelement auf ein
Band erstellt wird, sollten Aktualisierungen des logischen Objekts
verhindert werden, so dass der Backup einem einzelnen Zeitpunkt
entsprechen kann. Wenn natürlich
der Kopiervorgang von einem Backup-Band auf ein primäres Speicherelement
ist, ist das Einfrieren einer Aktualisierung der physikalischen
Elemente relativ einfach – auf
das Band wird nicht geschrieben, während von ihm bei der Wiederherstellung
gelesen wird. In einer Ausführungsform kann
ein Verfahren zum gleichzeitigen Kopieren, welches nachstehend beschrieben
wird, verwendet werden, um die Aktualisierung von physikalischen
Elementen während
des Kopierprozesses zu verhindern.
-
In
einem Schritt 123 wird ein Kopieren – auf den – Speicher gemanagt. Für ein Backup
von einem primären
Speicherelement auf ein Band kann dies das Anbringen und Abnehmen
der geeigneten Bänder,
so wie das Verwalten der Bandbibliothek, der Kataloginformation,
sowie das Schreiben von geeigneten Bandanfangsblöcken (Headers) und Endblöcken (Treibers),
entsprechen. Wenn die Information gerade an ein anderes primäres Speicherelement
kopiert wird, kann dies einem Managen der empfangenen physikalischen
Elemente des primären
Speicherelements, auf das kopiert wird, entsprechen. Zusätzlich kann
dies das Aufbauen eines geeigneten Speichergebiets zum Empfangender
Information beinhalten.
-
In
einem Schritt 124 werden die tatsächlichen physikalischen Elemente
kapiert. Der Kopiervorgang kann in der geeigneten Reihenfolge für das logische
Objekt ausgeführt
werden, wie wenn eine gewöhnliche
Datendatei auf der Anwendungsebene zwischen zwei Host-Computern
gesendet wird. Im Hinblick auf ein Backup ist ein derartiges System
in der U.S. Patentanmeldung Nr. 09/107,679 beschrieben, die hier
in ihrer Gesamtheit Teil der vorliegenden Anmeldung ist. In einer
alternativen Ausführungsform können die
physikalischen Datenblöcke
außerhalb der
Reihenfolge kopiert werden, zusammen mit geeigneten Metadaten, die
die richtige Ordnung bzw. Reihenfolge der physikalischen Elemente
indem logischen Objekt identifizieren. Eine Ausführungsform dieses Typs von
System wird nachstehend beschrieben.
-
In
einem Schritt 125 werden die physikalischen Elemente des
logischen Objekts, in dem Speicher, aus dem kopiert werden soll,
aufgetaut – wobei Aktualisierungen
des logischen Objekts zugelassen werden. Der Backup (die Sicherungskopie)
ist vollständig
und die physikalischen Elemente können aufgetaut werden.
-
Schließlich kann
in einem Schritt 126 die virtuelle Schaltung geschlossen
werden.
-
Übersetzung
des logischen Objekts in abstrakte Blocksätze
-
Wie
voranstehend beschrieben gibt es wenigstens zwei verschiedene Vorgehensweisen
zum Weiterleiten von Datenblöcken
eines logischen Objekts an ein Speicherelement – ein Transferieren der Blöcke in der
Reihenfolge wie ein logisches Objekt (wie dies über ein Netz zwischen Host-Computern durchgeführt wird)
oder eine echte physikalische Kopie (die den logischen Zusammenhang
unter den Daten nicht beibehalten kann). Jede dieser Möglichkeiten
weist Vorteile und Nachteile auf. Zum Beispiel erhält das Kopieren
jedes Datenblocks eines logischen Objekts in der Reihenfolge den
Zusammenhang zwischen den Datenblöcken. Andererseits kann ein
Kopieren der Blöcke
in der Reihenfolge zu Verzögerungen
führen,
da die Speicherelemente sequentiell die Datenblöcke wiederherstellen oder die
Datenblöcke zum
Schreiben, als ein Teil des Kopierprozesses, sortieren. Anderseits
kann ein reines Kopieren von physikalischen Elementen unnötig langsam
sein, wenn nicht verwendete physikalische Elemente kopiert werden.
Zusätzlich
kann der logische Zusammenhang zwischen den Datenblöcken, die
kopiert werden, verlorengehen.
-
Eine
Alternative besteht darin, eine Struktur mit abstrakten Blocksätzen zu
verwenden, wie nachstehend mit näheren
Einzelheiten beschrieben wird. Dieser Typ von Struktur ist nicht
nur in der Speichernetzarchitektur nützlich, die voranstehend beschrieben
wurde, sondern weist eine größere Anwendbarkeit
auf. Zum Beispiel kann das Konzept mit abstrakten Blocksätzen in
irgendeinem System verwendet werden, wo logische Objekte von einem
Speicherelement an ein anderes Speicherelement kopiert werden. Der
abstrakte Blocksatz kann auch zu einem bestimmten Vorteil verwendet
werden, wenn er zum Erstellen eines Backups oder zum Wiederherstellen von
Daten aus einer sekundären
Speichereinrichtung, beispielsweise einem Bandlaufwerk, verwendet wird.
-
Der
abstrakte Blocksatz erlaubt eine Speicherung der Datenblöcke in irgendeiner
Reihenfolge (Ordnung). Der abstrakte Blocksatz umfaßt Information über die
Reihenfolge von diesen Elementen.
-
13 zeigt ein Beispiel eines abstrakten Blocksatzes.
Aus der Anwendungsperspektive umfaßt ein logisches Objekt 130 eine
Anzahl von Datenblöcken 130a–130f (gewöhnlicherweise
kann ein logisches Objekt wesentlich mehr Datenblöcke umfassen,
wobei 13 nur zur Illustration vorgesehen ist).
Die Datenblöcke
weisen einen logischen Zusammenhang oder eine logische Ordnung (eine
Reihenfolge) auf, wie mit den Kennungen A–F in dem logischen Objekt 130 dargestellt.
-
Das
logische Objekt wird in einem physikalischen Speicher 131 gespeichert,
wie allgemein unter Bezugnahme auf 2C voranstehend
beschrieben. Jede Spalte kann als eine Spur angesehen werden (obwohl
dies nicht als beschränkend
angesehen wird) und jede Zeile kann als eine Zeile von Blöcken innerhalb
der Spuren angesehen werden. Wie in den 2C und 13 gezeigt,
können
die logischen Datenblöcke überall über den
physikalischen Speicher 131 verstreut sein.
-
Ein
abstrakter Blocksatz 132 kann aus den Datenblöcken 130a–130f konstruiert
werden. In dem abstrakten Blocksatz 132 werden die Datenblöcke nicht
notwendigerweise in der gleichen Ordnung (Reihenfolge) gespeichert,
so wie sie in dem logischen Objekt erscheinen. In diesem Beispiel
sind sie in einer wahlfreien oder pseudo-wahlfreien Ordnung (als
ein praktischer Aspekt kann die Reihenfolge der Datenblöcke die
Vorgehensweise reflektieren, mit der die Datenblöcke in einen physikalischen
Speicher 131 gespeichert werden. Wenn zum Beispiel die Datenblöcke A und
B auf einer Spur gespeichert werden, würden sie wahrscheinlich von
einem abstrakten Blocksatz 132 gelesen oder dorthin in
der Reihenfolge geschrieben, in der sie auf der gleichen Spur auftreten.
Der abstrakte Blocksatz 132, der in 13 auftritt,
ist nur zur Illustration vorgesehen).
-
Weil
die logischen Datenblöcke
nicht in der Reihenfolge in dem abstrakten Blocksatz 132 sind, kann
es nicht möglich
sein, das logische Objekt bei nur gegebenen Datenblöcken 132a–132f zu
rekonstruieren.
-
Dementsprechend
umfaßt
der abstrakte Blocksatz 132 Metadaten 133. Die
Metadaten sind irgendeine aufgezeichnete Information, die einen
Mechanismus zum Rekonstruierender Ordnung von logischen Datenblöcken, so
wie sie in dem logischen Objekt 130 erscheinen, bereitstellt.
-
In
dem Beispiel der 13 umfassen die Metadaten 133 eine
Einreihung der logischen Blockelemente (die Spalte, die mit LBEL
gekennzeichnet ist) mit dem Ort des physikalischen Elements. Somit weist
das logische Blockelement 1 Metadaten entsprechend zu der Adresse
von demjenigen logischen Datenblock in den physikalischen Speicher 131 – die physikalische
Elementadresse – auf.
Unter Verwendung bei 133 dargestellten Metadaten würde jeder der
gespeicherten Datenblöcke 132a–132f in
dem gespeicherten abstrakten Blocksatz 132 eine Kennung
mit der entsprechenden physikalischen Adresse enthalten müssen. Zum
Lokalisieren des ersten logischen Datenblocks 130a des
logischen Objekts 130 könnte
man somit zum Beispiel die Metadaten 133 untersuchen und
bestimmen, dass der erste abstrakte Blocksatz (wie in der ersten
Spalte der Metadaten 133 gezeigt) eine physikalische Adresse ADDR-A
aufweist. Dieser Datenblock könnte
dann in dem abstrakten Blocksatz 132 durch Untersuchen der
physikalischen Adressen der Datenblöcke 132a–132f (der
physikalischen Adressen, die innerhalb der Datenblöcke 132a–f erscheinen)
gefunden werden, bis der geeignete Block gefunden wird.
-
Natürlich gibt
es eine Vielfalt von anderen Formaten, die für die Metadaten verwendet werden könnten. Beispielsweise
könnte eine
andere Kennung als die physikalische Adresse verwendet werden. Alternativ
könnten
die Metadaten 133 lediglich die Reihenfolge der logischen
Blockelemente in dem abstrakten Blocksatz 132 beschreiben
In diesem Fall könnte
die zweite Spalte der ersten Zeile der Metadaten 133 anzeigen,
dass der erste logische Datenblock (entsprechend A) als der sechste
Block in dem abstrakten Blocksatz 132 gespeichert wird.
-
Für jede dieser
Alternativen wird die erste Spalte der Metadaten 133 nicht
benötigt.
Die Ordnung bzw. Reihenfolge der Elemente in der zweiten Spalte
entspricht ihrem Ort innerhalb des logischen Objekts 130;
die Adresse für
das erste logische Blockelement erscheint als erstes in der Tabelle,
die Adresse für
den zweiten logischen Datenblock erscheint als zweiter Eintrag in
der zweiten Spalte, etc.
-
Metadaten 134 illustrieren
eine andere Vorgehensweise zum Speichern der Metadaten, die zu dem
logischen Block 132 gehören.
In dieser Tabelle von Metadaten entspricht eine erste Spalte der
Einreihung von Datenblöcken,
so wie sie in dem abstrakten Blocksatz erscheinen (wie voranstehend
nicht nötig,
da die Reihenfolge, in der die Zeilen erscheinen, diese Information
impliziert – die
erste Zeile ist der erste Block im abstrakten Blocksatz). Die zweite Spalte
zeigt die Position des Datenblocks innerhalb des logischen Objekts 130 an.
Somit entspricht der erste Eintrag in der ersten Zeile der Metadaten 134 dem
Datenblock 132a des abstrakten Blocksatzes 132.
Dies ist der zweite Datenblock 130b des logischen Objekts 130.
Demzufolge weist die zweite Spalte eine "2" auf,
was anzeigt, dass dieser Datenblock 132a der zweite Datenblock
des logischen Objekts 130 ist. Die letzte Spalte der Metadaten 134 stellt
die physikalische Adresse für
den betreffenden Datenblock in dem physikalischen Speicher 131 bereit.
-
Unter
Verwendung der bei 134 gezeigten Metadaten wurde keine
Notwendigkeit bestehen, die physikalische Adresse des Datenblocks
(oder eines anderen Tags (Kennzeichen)) mit den Datenblöcken wie
mit dem abstrakten Blocksatz 132 gespeichert zu speichern.
-
Wie
oben ist die Verwendung der Metadaten 134 nicht strikt
erforderlich, um die physikalische Adresse innerhalb des physikalischen
Speichers 131 des betreffenden Datenblocks zu speichern.
Dies kann jedoch eine nützliche
Information zum Einbau in den Metadaten 134 sein. In vielen
Fällen
werden Wiederherstellungen auf die gleichen Speicherstellen durchgeführt, aus
denen die Information für
eine Backup-Kopie geholt wurde. In diesem Fall ist es einfacher,
auf diese Adressen in dem physikalischen Speicher 131 zurückzugreifen – diese
Information war nicht verfügbar.
Ansonsten kann ein Schritt für eine
Abbildung von einer logischen auf eine physikalische Ebene gefordert
werden, um wiederum zu bestimmen, wo die geeigneten Adressen für die wiederhergestellten
Datenblöcke
sind.
-
Andere
Formate von Metadaten können
verwendet werden. Zum Beispiel können
die Metadaten anstelle für
einzelne Blöcke
für Ausmaße (Sequenzen
von Blöcken)
nachverfolgt werden.
-
14 zeigt eine Ausführungsform eines Verfahrens
zum Kopieren eines logischen Objekts an einen/aus einem abstrakten
Blocksatz wie voranstehend beschrieben. In einem Schritt 140 wird
das logische Objekt identifiziert. Wie voranstehend beschrieben
kann das logische Objekt irgendeine logische Einheit sein, beispielsweise
eine Datenbank, ein Segment einer Datenbank, eine Datei oder ein
Dateisystem.
-
In
einem Schritt 141 werden die logischen Blockelemente oder
logischen Datenblöcke
des logischen Objekts identifiziert. Dies kann wie allgemein voranstehend
beschrieben vor sich gehen.
-
Im
Schritt 142 werden die logischen Blockelemente auf physikalische
Backup-Segmente abgebildet. Die physikalischen Backup-Segmente können den
physikalischen Elementen entsprechen, die die logischen Datenblöcke speichern.
Für den
Fall, dass der abstrakte Blocksatz Metadaten der in Tabelle 133 dargestellten
Form enthalten sollen, kann der Abbildungsschritt 142 ein
Formulieren dieser Information in irgendeinem Format, in dem die
Metadaten gespeichert sind, umfassen.
-
Wie
voranstehend beschrieben können
die Schritte 140–142 von
einer Clientenkomponente einer Speicher-Managementanwendung ausgeführt werden.
In einigen Systemen kann dies die Ressourcen eines Host-Computers
erfordern.
-
Der
Rest des Kopierprozesses kann ohne wesentliche Beteiligung der Clientenkomponente
der Speicher-Managementanwendung
voranschreiten.
-
In
einem Schritt 144 wird bestimmt, ob sämtliche physikalischen Backup-Segmente
kopiert worden sind. Wenn dem so ist, dann ist der Kopierprozeß im Schritt 145 abgeschlossen.
-
Wenn
nicht sämtliche
physikalischen Backup-Segmente kopiert worden sind, dann wird das nächste verfügbare Backup-Segment
im Schritt 146 kopiert. Wie voranstehend beschrieben, muß dieser Kopiervorgang
nicht in der Reihenfolge ausgeführt werden,
die in dem logischen Objekt erscheint, welches im Schritt 140 identifiziert
wird.
-
Für den Fall,
dass die Metadaten gerade gespeichert werden, wie in der Tabelle 134 der 13 gezeigt, dann können die Metadaten aktualisiert
werden, nachdem das betreffende Backup-Segment in das Medium kopiert
worden ist, welches den abstrakten Blocksatz hält. Für diese Form von Metadaten (aber
nicht für
die Form, die bei 133 der 13 gezeigt
ist), kann dies nicht auftreten, bis das betreffende Backup-Segment
in das Medium kopiert wird, welches den abstrakten Blocksatz speichert,
weil bis zu dieser Zeit die Reihenfolge (Ordnung) des Auftretens für das betreffende
physikalische Backup-Segment nicht
bekannt ist.
-
15 zeigt eine Ausführungsform eines Verfahrens
zum Wiederherstellen (Auslesen) eines abstrakten Blocksatzes auf
ein Speichersystem, beispielsweise den primären Speicherknoten, der voranstehend
beschrieben wurde.
-
In
einem Schritt 150 werden die Metadaten für den abstrakten
Blocksatz ausgelesen. Dies kann in der Form einer Karte für den abstrakten
Blocksatz sein, beispielsweise diejenige, die bei 134 in 13 dargestellt ist, oder kann ein Satz von Kennungen sein,
die den einzelnen Datenblöcken
zugewiesen sind, die in dem abstrakten Blocksatz gespeichert sind,
beispielsweise in der Tabelle 133 der 13.
-
In
einem Schritt 151 wird ein Speicher in der Ziel-Speichereinrichtung
zum Empfangen des logischen Objekts zugeordnet. Die Größe und Konfiguration
des Speichers, der zum Empfangen des logischen Objekts benötigt wird,
kann aus den Metadaten für
den abstrakten Blocksatz bestimmt werden. Somit werden die Metadaten
eine ausreichend Information umfassen, um die Charakteristiken des
benötigten
Speichers zu bestimmen. Zum Beispiel kann für den Fall, dass der abstrakte
Blocksatz die Verwendung von Blöcken
fester Größe anzeigt,
die Gesamtgröße von Blöcken (mit
fester Größe), die
zum Speichern des logischen Objekts benötigt werden, durch die Anzahl
von Einträgen
oder eine Metadatentabelle bestimmt werden oder kann getrennt als
ein Teil der Metadaten für
den abstrakten Blocksatz gespeichert werden.
-
In
einem Schritt 152 werden Blind-Metadaten (Dummy-Metadaten)
für den
neu zugewiesenen physikalischen Speicher für das logische Objekt, welches
wiederhergestellt werden soll, erzeugt. Das Ergebnis kann eine neue
Tabelle sein, beispielsweise diejenige, die bei 133 in 13 gezeigt ist.
-
In
einem Schritt 153 wird eine Neu-Abbildungstabelle erzeugt.
Die Neu-Abbildungstabelle spezifiziert eine Entsprechung zwischen
den Datenblöcken
des abstrakten Blocksatzes als Quelle der Daten und den zugeordneten
Datenblöcken
in dem physikalischen Speicher. Ein Beispiel einer Neu-Abbildungstabelle
ist unter Bezugnahme auf 16 beschrieben.
Obwohl in einer tabellenartigen Form dargestellt, können die
Daten in anderen Formen und Formaten gespeichert werden.
-
In
einem Schritt 154 wird bestimmt, ob sämtliche physikalischen Backup-Segmente
wiederhergestellt worden sind. Wenn dem so ist, dann ist die Wiederherstellung
in einem Schritt 155 abgeschlossen.
-
Wenn
nicht, wird in einem Schritt 156 das nächste physikalische Backup-Segment
zurückgeholt.
In einem Schritt 157 wird der Ort und der neu zugeordnete
Speicher zum Empfangen des logischen Objekts bestimmt. Dies kann
durch Untersuchen der Neu-Abbildungstabelle, die im Schritt 153 erzeugt wird,
durchgeführt
werden. Zusätzlich
muß die
Zurückholung
von Segmenten, die im Schritt 156 durchgeführt wird,
nicht in irgendeiner spezifischen Reihenfolge sein. Die Neu-Abbildungstabelle
ermöglicht eine
Wiederherstellung des gesamten logischen Objekts, selbst wenn die
Datenblöcke
in einer zufälligen Reihenfolge
bereitgestellt werden.
-
In
einem Schritt 158 werden die Daten aus dem physikalischen
Backup auf die geeigneten Stellen wiederhergestellt. Die Schritte 154–158 werden dann
fortgesetzt, bis sämtliche
Datenblöcke
richtig wiederhergestellt worden sind.
-
16 zeigt ein Beispiel der Erzeugung einer Neu-Abbildungstabelle.
Natürlich
sind viele Änderungen
der Erzeugung der Neu-Abbildungstabelle möglich, und zwar in Abhängigkeit
davon, wie die Metadaten formuliert und für die abstrakten Blocksätze gespeichert
sind.
-
In 16 sind Metadaten 160 für den abstrakten
Blocksatz vorgesehen, der als die Quelle für die Wiederherstellung dient.
Diese Tabelle entspricht den Metadaten 133 der 13.
-
16 zeigt auch Dummy-Metadaten 161 für den zugeordneten
Speicher, der die wiederhergestellten logischen Blöcke des
wiederhergestellten logischen Objekts empfangen wird. In dieser
Ausführungsform
ist das Format das gleiche wie dasjenige für die Metadaten 160,
mit dem Unterschied, dass andere Adressen (potentiell auf einem
vollständig
anderen Speicherelement) bereitgestellt werden. Somit sollte für die erste
Zeile in den Metadaten 161 der erste logische Datenblock
an der physikalischen Stelle gespeichert werden, die bei ADDR-AA
spezifiziert wird.
-
Ein
einfaches Zusammenfassen dieser zwei Tabellen kann zu der Neu-Abbildungstabelle 162 führen. Die
Neu-Abbildungstabelle 162 spezifiziert den physikalischen
Ort aus den Daten in dem abstrakten Blocksatz und der Zielstelle
für diesen
logischen Datenblock.
-
Natürlich können andere
Formate zu anderen Tabellen führen.
Zum Beispiel würde
es möglich sein,
nicht irgendwelche physikalischen Adressen in der Neu-Abbildungstabelle 162 zu
spezifizieren. Die Neu-Abbildungstabelle könnte einfach die sequentielle
Stelle in dem abstrakten Blocksatz, von dem gerade wiederhergestellt
wird, auf die physikalische Adresse, oder die sequentielle Stelle
auf dem empfangenden Speicherelement abbilden.
-
In
anderen Ausführungsformen
kann jeder Eintrag in der Metadaten-Neuabbildungstabelle Ausmaßen in den
physikalischen Speichern entsprechen, aus denen und auf die wiederhergestellt
wird.
-
Granularität des physikalischen Backup-Segments
-
In
der Diskussion bezüglich
der 13–16 wurde
angenommen, dass der Backup, die Kopie und die Wiederherstellung
auf der Datenblockebene ausgeführt
wurde. Somit entsprach des physikalische Backup-Segment größenmäßig der
Größe eines
Datenblocks. Diejenigen Datenblöcke,
die Teil des logischen Objekts sind, und nur diese Datenblöcke, wurden
für ein
Backup kopiert und wurden wiederhergestellt.
-
Eine
Granularität
der physikalischen Backup-Segmente muß jedoch nicht der Granularität der Datenblöcke entsprechen.
Zum Beispiel kann eine Spur eine Anzahl von physikalischen Datenblöcken speichern.
In einigen Fällen
sind nicht alle der Datenblöcke
innerhalb einer Spur notwendigerweise ein Teil des gleichen logischen
Objekts. Somit können
in einer Spur, die vier Datenblöcke
speichert, nur zwei von diesen Datenblöcken ein Teil eines logischen
Objekts sein, wobei die anderen zwei Datenblöcke nicht verwendet werden
oder ein Teil eines anderen logischen Objekts sind. Die Erstellung
eines Backups von Daten in einem logischen Objekt kann jedoch auf der
Spurebene anstelle auf der physikalischen Datenblockebene ausgeführt werden.
Dieses Ergebnis würde
ein abstrakter Blocksatz sein, der einige Datenblöcke umfaßt, die
nicht ein Teil des logischen Objekts sind.
-
Somit
entspricht in dem vorangehenden Beispiel die Größe des physikalischen Backup-Segments
der Größe einer
Spur. Die tatsächlichen
physikalischen Datenblöcke,
die die Daten eines logischen Objekts speichern können, sind
kleiner, z. B. vier Datenblöcke
pro physikalischem Backup-Segment einer Spur.
-
17 zeigt das Konzept einer Größe des physikalischen Segments
(hier einer Spur), die größer als
die Größe der physikalischen
Datenblöcke
ist. In dem Beispiel der 17 ist
ein logisches Objekt 170 auf einer physikalischen Einrichtung
gespeichert, die Spuren umfaßt.
Jede Spur hält
(in diesem Beispiel) bis zu drei Datenblöcke.
-
Auf
der Anwendungsebene wird das logische Objekt 170 als eine
kontinuierliche Datei angesehen. Diese Datei kann in eine Anzahl
von logischen Datenblöcken
unterteilt werden, wie in 17 als
vertikale Stäbe
innerhalb des logischen Objekts 170 gezeigt.
-
Auf
der Dateisystemebene hält
ein Dateisystemabbild 171 diese Daten in jedem der logischen Datenblöcke von 170.
Wie in dem Dateisystem-Abbild 171 gezeigt, kann die Reihenfolge
der logischen Datenblöcke
auf der Dateisystemebene unter Umständen der Reihenfolge ihres
Auftretens innerhalb des logischen Objekts 170 nicht entsprechen.
Wie voranstehend beschrieben, bildet ein Abbildungsprozeß die logischen
Datenblöcke
auf geeignete Stellen bzw. Orte innerhalb des Dateisystem-Abbilds 171 ab.
-
Das
Dateisystem-Abbild 171 kann auf einen logischen Datenträger einer
Hyperdatenträger-Ebene 172a–172b abgebildet
werden.
-
Die
logischen Datenträger 172a–b werden auf
einer physikalischen Speichereinrichtung in Hyperdatenträgern 173n und 173o dann
gespeichert. Wie in 17 gezeigt können die
Hyperdatenträger physikalisch
unter Umständen
nicht benachbart sein (natürlich,
wie voranstehend beschrieben, sind andere Techniken zum Abbilden
der logischen Datenblöcke
des logischen Objekts 170 auf die physikalische Speichereinrichtung
möglich
und innerhalb des Umfangs der vorliegenden Erfindungen).
-
Der
erste Hyperdatenträger 173n speichert Daten über sieben
Spuren 173a–173g.
Diese Spuren können,
müssen
aber nicht, angrenzende Segmente des Speichers sein.
-
In
diesem Beispiel enthält
die gesamte Spur 173b physikalische Datenblöcke, die
ein Teil des logischen Objekts 170 sind (unter der Annahme,
dass nur drei Datenblöcke
pro Spur gespeichert werden). Die Spur 173d umfaßt jedoch
nur einen Datenblock, der ein Teil des logischen Objekts 170 ist – die anderen
Datenblöcke
in der Spur 173d werden entweder nicht verwendet oder enthalten
Daten, die zu einem anderen logischen Objekt gehören. Zusätzlich enthalten einige der
Spuren innerhalb des Hyperdatenträgers 173n keinerlei
Daten von dem logischen Objekt 170, z. B. Spuren 173a, 173c und 173f.
Der Hyperdatenträger 173o enthält in ähnlicher
Weise einige Spuren, die Daten aus dem logischen Objekt umfassen,
und einige Spuren, die dies nicht tun.
-
Wenn
man annimmt, dass die Granularität des
physikalischen Backup-Segments gewählt ist, um die Spurgröße in diesem
Beispiel zu sein, würden die
physikalischen Segmente, die ein Teil eines Backup-Prozesses sein
würden,
Spuren 173b, 173d, 173e, 173g, 173i und 173k umfassen.
Diese Spuren bilden den physikalischen Backup-Segmentsatz (hier einen "Spursatz"), der kopiert werden
würde,
wenn eine Sicherungskopie (ein Backup) für das logische Objekt erstellt
wird. Da in dem Beispiel der 17 die
Granularität
des physikalischen Backup-Segments in Spuren ist, wird dies als
ein Spursatz bezeichnet.
-
Somit
würde der
Spursatz für
ein Backup eines logischen Objekts 170 Spuren 174a–174g umfassen,
die wiederum denjenigen der physikalischen Spuren 173a–173m entsprechen,
die Datenblöcke aus
dem logischen Objekt 170 umfassen.
-
Der
Backup-Prozeß unter
Verwendung einer Größe für das physikalische
Backup-Segment, die sich von der Datenblockgröße unterscheidet, kann allgemein
wie unter Bezugnahme auf 14 beschrieben,
voranschreiten. Im Schritt 142 umfaßt jedoch die Identifikation
der physikalischen Backup-Segmente nicht lediglich die Identifikation
der logischen Blockelemente, sondern die Verwendung der identifizierten
logischen Blockelemente und deren physikalischen Datenblock-Stellen,
um den physikalischen Backup-Segmentsatz zu bestimmen, z. B. den
Spursatz 174a–174g der 17.
-
Zusätzlich würde das
Kopieren der verfügbaren
Backup-Segmente im Schritt 146 das Kopieren des Segments
mit der größeren Granularität (z. B. eine
vollständige
Spur anstelle lediglich der bestimmten physikalischen Datenblöcke auf
der Spur) beinhalten. Wie in 14 können die
physikalischen Backup-Segmente
(z. B. Spuren) in irgendeiner Reihenfolge kopiert werden.
-
Zurückkehrend
zur 17 kann eine Signaturspur 175 des
abstrakten Blocksatzes gespeichert werden. Diese Signaturspur umfaßt die Metadaten für den abstrakten
Blocksatz. In dieser Ausführungsform
kann eine Spezifikation der Metadaten für den abstrakten Blocksatz
eine Spezifikation der bestimmten Datenblöcke in dem abstrakten Blocksatz
und deren Stelle innerhalb des logischen Objekts 170 umfassen.
-
18 zeigt ein Beispiel von Metadaten 180 für einen
abstrakten Blocksatz, der eine physikalische Granularität aufweist,
die größer als
die Größe des physikalischen
Datenblocks ist. In diesem Beispiel wird die Stelle jedes Datenblocks
spezifiziert. Die erste Spalte ist eine Spezifikation des Datenblocks
innerhalb des logischen Objekts – z. B. erster, zweiter, dritter,
vierter Datenblock.
-
Die
zweite Spalte der Metadaten 180 spezifiziert die physikalische
Adresse von diesem logischen Objekt. In diesem Beispiel umfaßt diese
physikalische Adresse eine Spezifikation, wo innerhalb des physikalischen
Backup-Segments
der anwendbare Datenblock angeordnet ist. Zum Beispiel kann diese Information
als ein Versatz (Offset) innerhalb des physikalischen Backup-Segments
enthalten sein. Somit umfaßt
eine Adresse von dd:cccc:h:Versatz eine Spezifikation des physikalischen
Backup-Segments (dd:cccc:h), die in diesem Beispiel eine Spur und
eine Stelle innerhalb dieses physikalischen Backup-Segments (der
Spur) spezifiziert, und einen Versatz (Offset) spezifiziert. Zum
Beispiel entspricht die erste Zeile von Metadaten 180 dem
ersten logischen Datenblock in dem logischen Objekt. Es kann auch
passieren, dass dies als der erste Datenblock in der spezifizierten
Adresse für
das physikalische Backup-Segment auftritt, z. B. als ein Versatz
von dem Anfang des physikalischen Backup-Segments (hier einer Spur)
von lediglich Null. Die zweite Zeile der Metadaten 180 spezifiziert
die gleiche Adresse, weist aber einen Versatz von 1 auf – dies ist
ein Datenblock, der in diesem physikalischen Backup-Segment (Spur)
auftritt, der unmittelbar dem Datenblock folgt, der dem ersten logischen
Datenblock des logischen Objekts entspricht.
-
In
diesem Beispiel kann angenommen werden, dass die Spur, die die ersten
zwei logischen Datenblöcke
(erste zwei Zeilen von Metadaten 180) umfaßt, einen
zusätzlichen
Raum innerhalb der Spur aufweist, aber dass diese zusätzlichen
Datenblöcke in
der Spur nicht ein Teil des logischen Objekts sind. Demzufolge gibt
es in der Metadatentabelle 180, die einen entsprechenden
logischen Datenblock für
diesen Abschnitt der Spur spezifiziert, keinen Eintrag (in einer
alternativen Ausführungsform
könnte
natürlich ein
Eintrag gebildet werden, der anzeigt, dass dieser Abschnitt der
Spur in diesem abstrakten Blocksatz nicht verwendet wird).
-
Wie
voranstehend unter Bezugnahme auf 13 beschrieben,
können
viele andere Formen und Formate zum Speichern von Metadaten angewendet
werden.
-
Eine
Wiederherstellung (oder eine Kopierung) aus einem abstrakten Blocksatz,
der eine Granularität
des physikalischen Backup-Segments aufweist, die größer als
die Blockgröße ist,
kann wie allgemein voranstehend unter Bezugnahme auf 15 beschrieben, vor sich gehen. Im Schritt 157 werden jedoch
die Stellen der logischen Datenblöcke innerhalb des Backup-Segments
identifiziert – einschließlich einer
Bestimmung, ob irgendwelche Abschnitte dieses Backup-Segments weggelassen
werden können.
Im Schritt 158 werden nur diejenigen Datenblöcke, die
tatsächlich
in dem logischen Objekt verwendet werden, wiederhergestellt.
-
Ein
Auswählen
einer physikalischen Backup-Granularität, die größer als die Größe des Datenblocks
ist, kann einen Transfer von mehr Speicher als für den Fall erfordern, bei dem
die physikalische Backup-Segment-Größe die gleiche wie der Datenblock
ist – einige
nicht verwendete Datenblöcke
sind als Teil des Kopier- oder Backup-Prozesses enthalten.
-
Eine
größere physikalische
Granularitäts-Größe kann
jedoch zu gewissen Vorteilen führen.
Zum Beispiel wird weniger Overhead (Zusatz) in dem Kopierprozeß benötigt – weniger
Segmente zum Kopieren müssen
spezifiziert werden. Zusätzlich können andere
Ressourcen erhalten werden. Wenn zum Beispiel ein hoher Speicherbedarf
zum Speichern von Information, die die physikalischen Backup-Segmente
identifizieren, die kopiert werden sollen, verwendet wird, wird
weniger derartiger Speicher benötigt.
Für den
Fall, dass verhindert wird, dass die physikalischen Datenblöcke der
logischen Objekte während
eines Kopier- oder Backup-Prozesses aktualisiert werden, kann dies
durch Schützen
der Aktualisierungen auf der Ebene des physikalischen Backup-Segments
anstelle auf der Ebene des Datenblocks durchgeführt werden – was wiederum weniger Overhead
erfordert. In einigen Systemen kann dies die Komplexität einer
Vermeidung von Aktualisierungen verringern. Einige Ausführungsformen
der Erfindung, die eine andere physikalische Backup-Granularität als eine
Datenblockgröße verwenden,
erzielen einige oder sämtliche
dieser Vorteile, in Abhängigkeit von
dem Kontext und dem System, mit dem es implementiert wird. Es ist
nicht beabsichtigt, dass irgendeiner dieser Vorteile den Umfang
der Erfindung beschränkt,
die durch die nachstehenden Ansprüche definiert ist.
-
Gleichzeitige Kopie oder Schnappschuß-Einrichtung
-
Wie
unter Bezugnahme auf 12 voranstehend beschrieben
wurde, werden bestimmmte Systeme, die einen oder mehrere Aspekte
der vorliegenden Erfindung verkörpern,
ein Kopieren oder das Erstellen eines Backups eines logischen Objekts
zur einem spezifizierten Zeitpunkt ermöglichen. Um dies zu tun, müssen Aktualisierungen
des logischen Objekts während
des Kopier- oder Backup-Prozesses verhindert werden. Es gibt vielerlei
Vorgehensweisen, dies zu tun, einschließlich die Anwendung, die das
logische Objekt verwendet, Off-Line zu nehmen, bis der Backup-Prozeß abgeschlossen
ist. Während bestimmte
Ausführungsformen
der Erfindung diese und andere Techniken verwenden werden, kann
es vorteilhaft sein, eine Verarbeitung während des Backups fortsetzen
zu können.
-
19 zeigt eine Ausführungsform eines Verfahrens
zum Ausführen
eines Backups, während Aktualisierungen
für diejenigen
physikalischen Datenblöcke
verhindert werden, die ein Teil des logischen Objekts sind, für das gerade
eine Backup-Kopie erstellt wird.
-
In
einem Schritt 159 wird das logische Objekt (oder System
unter Verwendung des logischen Objekts) ruhig gestellt. Es gibt
zwei Vorgehensweisen, das System ruhig zu stellen. Eine Vorgehensweise besteht
darin, die Anwendung Off-Line zu nehmen und das logische Objekt
Off-Line (in einem Zustand außerhalb)
zu aktualisieren. Dies verhindert irgendwelche weiteren Aktualisierungen
(oder Lesevorgänge)
für das
oder auf das betreffende logische Objekt. Die Anwendung Off-Line
zu nehmen, kann unerwünscht
sein – nämlich zu
einem Verlust von Zeit und der Systemverfügbarkeit führen.
-
Eine
alternative Vorgehensweise zum Ruhigstellen eines Systems besteht
darin, die Anwendung in einen On-Line Backup-Modus zu bringen. Wenn die Anwendung
zum Beispiel eine Oracle-Datenbank gerade verwendet, können Schreibvorgänge zu der Datenbank
in einem Re-Do Log (einer Neubearbeitungs-Liste) gespeichert werden, anstelle
dass tatsächlich
die Daten an das physikalische Speichersystem geschrieben werden.
Wenn die Anwendung zurück
auf den On-Line Modus gebracht wird, können dann die Aktualisierungen
für das
logische Objekt, die in dem Re-Do Log gespeichert sind, auf die gegenwärtige Kopie
des logischen Objekts angewendet werden.
-
In
einem Schritt 192 werden diejenigen physikalischen Backup-Segmente, die Daten
von dem logischen Objekt enthalten, für einen Kopiervorgang markiert.
Dies kann in einer Anzahl von Vorgehensweisen durchgeführt werden.
Zum Beispiel kann ein Bit jedem potentiellen physikalischen Backup-Segment
in dem System zugeordnet werden. Das Bit kann auf eine "Eins" eingestellt werden,
wenn das entsprechende physikalische Backup-Segment ein Teil eines
logischen Objekts ist, welches kopiert werden soll. Natürlich können die
Verfahren zum Identifizieren der physikalischen Backup-Segmente,
die ein Teil des abstrakten Blocksatzes sind, der gerade kopiert
wird, verwendet werden. Als lediglich ein Beispiel könnte eine
Liste der physikalischen Backup-Segmente geführt werden.
-
20 zeigt ein Beispiel eines Systems, bei dem Bits
mit physikalischen Backup-Segmenten assoziiert werden. In dem Beispiel
der 20 ist die physikalische Backup-Segment-Größe eine
Spur des physikalischen Speichers 28, beispielsweise eine Spalte 28b.
Ein logisches Objekt 27 wird über dem physikalischen Speicher 28 gespeichert.
Eine Reihe von Bits 29 wird den Spuren des physikalischen
Speichers 28 zugewiesen. Eine Eins wird für die diejenigen
Spuren (physikalischen Segmente, für die ein Backup erstellt wurde)
gesetzt, die ein Teil des Spursatzes für das logische Objekt sind.
Somit wird das zweite Bit des Bitsatzes 29 auf Eins gesetzt,
was die Tatsache reflektiert, dass die Spur 28b in dem
Spursatz für
das logische Objekt 27 enthalten ist. Wenn die physikalische
Backup-Segment-Granularität
ein Datenblock wäre,
könnte
ein Bit mit jedem Datenblock zugewiesen werden – bei einem höheren Overhead.
-
Zurückkehrend
zur 19 kann die Anwendung, die
das logische Objekt verwendet, auf den aktiven Zustand zurückgebracht
werden. Dies kann zum Beispiel den Schritt zum Zurückbringen
der Anwendung auf einen On-Line Modus von einem Off-Line Modus beinhalten.
Wenn die Anwendung in einem On-Line Backup-Modus gehalten wurde,
können
irgendwelche Elemente in dem Re-Do Log auf ein Aktualisieren des
logischen Objekts angewendet werden.
-
Ein
Versuch zum Schreiben an ein physikalisches Backup-Segment, welches
in diesem Satz von Segmenten enthalten ist, für die eine Backup-Kopie erstellt
werden soll, wird jedoch sofort abgebrochen. Bevor der Schreibvorgang
stattfindet, wird dieses Segment kopiert oder es wird eine Backup-Kopie
dafür erstellt,
z. B. gemäß der voranstehend
beschriebenen dargestellten Ausführungsform.
-
In
einem Schritt 194 wird bestimmt, ob ein Treffer auf ein
physikalisches Backup Segment vorhanden ist, welches in dem Backup-Segmentsatz
in dem abstrakten Blocksatz enthalten ist. Wenn dem so ist, dann
wird dieses Segment außerhalb
der Reihe – und
bevor die Aktualisierung durchgeführt wird – kopiert. Nachdem das Segment
kopiert worden ist, kann die Markierung dieses Segments entfernt
werden – weitere
Aktualisierungen können
für dieses Segment
zugelassen werden. Nachdem die Markierung für das Segment entfernt worden
ist, kann die Aktualisierung ausgeführt werden. Die Verarbeitung wird
dann im Schritt 194 für
den Fall fortgesetzt, dass zusätzliche
Treffer für
(Schreibversuche auf) ein physikalisches Backup-Segment vorhanden sind, welches in dem
abstrakten Blocksatz enthalten ist.
-
Die
Kopierung des Segments kann direkt an das Ziel (das empfangende
primäre
Speicherelement oder das empfangende sekundäre Speicherelement wie ein
Band) auftreten oder kann in einen Cache-Speicher zur späteren Kopierung
an die Zielstelle des abstrakten Blocksatzes sein.
-
Wenn
keine anstehenden Treffer auf die physikalischen Backup-Segmente des logischen
Objekts vorhanden sind, die für
eine Kopierung zurückbleiben,
dann kann eine Verarbeitung in einem Schritt 196 fortgesetzt
werden. In diesem Schritt wird bestimmt, ob sämtliche physikalischen Backup-Segmente
kopiert worden sind. Wenn dem so ist, dann ist die Formulierung
des abstrakten Blocksatzes abgeschlossen und die Verarbeitung kann
im Schritt 197 beendet werden.
-
Wenn
zusätzliche
Kopiervorgänge
durchgeführt
werden müssen,
dann kann das nächste
verfügbare
physikalische Backup-Segment in einem Schritt 198 kopiert
werden. Wenn abstrakte Blocksätze
verwendet werden, die den physikalischen Backup-Segmenten ermöglichen in irgendeiner Reihenfolge
enthalten zu sein, kann sich die Auswahl des nächsten Segments auf irgendein
Segment, welches als nächstes
verfügbar
ist, unabhängig
von der Reihenfolge, konzentrieren.
-
Nachdem
das Segment kopiert worden ist, wird wie zuvor die Markierung entfernt.
Demzufolge können
irgendwelche ankommenden Schreibvorgänge auf dieses Segment, die
auftreten, nachdem das Segment kopiert worden ist, ausgeführt werden – sogar
wenn der Backup-Prozeß mit
anderen physikalischen Backup-Segmenten fortgesetzt wird.
-
In
Situationen, bei denen die physikalische Backup-Segment-Granularität größer als
die physikalische Datenblockgröße ist,
kann ein Schreibvorgang an ein physikalisches Backup-Segment auftreten,
welches nicht einem Schreibvorgang auf ein logisches Objekt entspricht.
Zum Beispiel sei ein physikalisches Backup-Segment betrachtet, welches
einen physikalischen Datenblock, der das logische Objekt ist, für das gerade
eine Backup-Kopie erstellt wird, und drei andere physikalische Datenblöcke, die zu
anderen logischen Objekten gehören,
aufweist. Ein Schreibvorgang an einen der physikalischen Datenblöcke, die
einem anderen logischen Objekt entsprechen, würden ein Backup des physikalischen Datensegments
triggern, obwohl das logische Objekt, für das gerade eine Sicherungskopie
erstellt wird, gerade nicht aktualisiert wird.
-
Eine
Alternative zum Behandeln eines derartigen Umstands besteht darin,
jeden Schreibvorgang an ein markiertes physikalisches Backup-Segment zu
untersuchen, um zu bestimmen, ob der Schreibvorgang an einen physikalischen
Datenblock ist, der ein Teil des logischen Objekts ist. Während dieses Verfahren
in einigen Ausführungsformen
der vorliegenden Erfindung verwendet werden kann, kann es zu einer
starken Overhead-Einschränkung
für den Fall
von Schreibvorgängen
auf physikalische Backup-Segmente führen.
-
In
einer alternativen Ausführungsform
werden die physikalischen Backup-Segmente gleich behandelt, unabhängig davon,
ob ein Schreibvorgang an einen physikalischen Datenblock in dem
logischen Objekt, welches gerade kopiert wird, oder den physikalischen
Datenblock in einem anderen logischen Objekt auftritt oder nicht.
Der Overhead, der zu dieser Alternative gehört, kann nicht groß sein,
insbesondere wenn in einem System implementiert, bei dem die kopierten
physikalischen Backup-Segmente gerade in einem abstrakten Blocksatz
gespeichert werden, der ermöglicht,
dass physikalische Backup-Segmente in irgendeiner Reihenfolge transferiert werden.
-
In
den meisten Fällen
wird es am einfachsten sein, Aktualisierungen auf Abschnitte des
physikalischen Speichers auf Grundlage der Granularität des physikalischen
Backup-Segments
zu markieren und zu verhindern – z.
B. unter Verwendung von Spuren auf einer Platte für eine physikalische
Backup-Segment-Größe und auch
zum Markieren und Verhindern von vorzeitigen Aktualisierungen auf
das gespeicherte logische Objekt. Andere Alternativen können implementiert
werden. Als lediglich ein Beispiel könnten in einem Plattensystem
Spuren als physikalische Backup-Segmente verwendet werden, aber eine
Verhinderung von Aktualisierungen auf der Datenblockebene (anstelle
auf der Spurebene) markiert und verfolgt werden.
-
Differentielle Backups
-
Systeme ähnliche
wie 5 und 6 erstellen herkömmlicherweise
ein Backup eines gesamten logischen Konstrukts oder Elements ("logischen Objekts"), welches von dem
Benutzer spezifiziert wird. Zum Beispiel kann ein Benutzer eine
Partition spezifizieren, für
die ein Backup erstellt werden soll. Wenn dies durchgeführt wird,
wird die gesamte Partition in das Backup-Speichersystem kopiert.
In ähnlicher
Weise kann der Benutzer eine Datenbank oder eine Datei spezifizieren,
für die
ein Backup erstellt werden soll. In diesem Fall wird die gesamte Datenbank
oder die Datei an das Backup-Speichersystem kopiert.
-
Dies
kann einen beträchtlichen
Zeitbetrag erfordern, der ultimativ unnötig ist. Zum Beispiel kann für eine extrem
große
Datei zu einem Zeitpunkt ein Backup erstellt werden. Ein zweiter
Backup kann dann zu einer späteren
Zeit ausgeführt
werden. Ein sehr geringer Teil der Datei hat sich unter Umständen zwischen
den zwei Backups geändert.
Das Erzeugen eines neuen Backups der vollständigen Datei kann deshalb verschwenderisch
sein.
-
21 zeigt eine Ausführungsform der vorliegenden
Erfindung zum Erzeugen eines differentiellen Backups. Ein differentieller
Backup ist ein Backup nur eines Abschnitts oder Teils eines logischen
Objekts auf Grundlage dessen, was sich während eines Betriebs des Computersystems
geändert
hat.
-
In
einem Schritt 470 wird ein Backup des Grads Null ausgeführt. Ein
Backup des Grads Null ist ein vollständiger Backup des logischen
Konstrukts. Zum Beispiel wird bei einem Backup des Grade Null einer
Datei ein Backup der gesamten Datei erstellt. Ein Backup des Grads
Null einer (virtuellen) Partition beinhaltet ein Backup dieser gesamten
Partition. Somit kann ein Backup des Grads Null verwendet werden,
um das logische Objekt ohne irgendeine weitere Information wiederherzustellen.
-
In
einem Schritt 472 verfolgt das System Änderungen in den Daten von
dem letzten Backup des Grads Null. zum Beispiel können unter
Bezugnahme auf die 2B die Segmente, die irgendwelche
geänderten
Daten enthalten haben, verfolgt werden. Wenn die Segmente 1, 3 und
5 Daten enthalten, die geändert
wurden, könnte
ein entsprechendes Bit oder eine andere Aufzeichnung eingestellt
werden, die anzeigt, dass sich diese Segmente geändert haben (und nicht die
anderen). Wie nachstehend noch vollständig beschrieben wird, können die
Segmente dadurch definiert werden, wie die Daten physikalisch gespeichert
werden (z. B. durch Speicherblöcke)
anstelle auf Grundlage von Logikebeneninformation, und können (müssen aber
nicht) der Granularität
des physikalischen Backup-Segments von abstrakten Blocksätzen oder
der Granularität
von physikalischen Segmenten, die markiert sind, um Aktualisierungen zu
verhindern, entsprechen.
-
In
einem Schritt 474 wird für diejenigen Datensegmente,
die sich geändert
haben, ein Backup erstellt. Durch ein Erstellen eines Backups nur
für geänderte Datensegmente,
anstelle für
die gesamte Datei, kann die Erzeugung des Backups viel schneller
ausgeführt
werden. Eine Ausführungsform
eines Verfahrens zum Speichern und Wiederherstellen von Dateien
unter Verwendung von Aufzeichnungen von eben geänderten Datensegmenten wird
nachstehend diskutiert. Dieser Backup kann als ein "differentieller Backup" bezeichnet werden,
weil für
weniger als die gesamten logischen Datenblöcke ein Backup erstellt wird,
z. B. für
einige Datensegmente, die sich nicht geändert haben, wird kein Backup
erstellt.
-
In
einem Schritt 476 wird bestimmt, ob ein neuer Backup des
Grads Null erzeugt werden soll. Wenn nicht, dann setzt das System
eine Verfolgung von Änderungen
von dem letzten Backup des Grads Null im Schritt 472 fort.
In dieser Ausführungsform zeichnet
der differentielle Backup, der im Schritt 474 erzeugt wurde,
deshalb immer geänderte
Daten von dem letzten Backups des Grads Null – nicht von dem letzten differentiellen
Backup auf. Eine alternative Ausführungsform besteht darin, Änderungen
von dem letzten differentiellen Backup zu verfolgen.
-
Wenn
ein neuer Backup des Grads Null erzeugt werden soll, in einem Schritt 478,
dann wird die Verfolgung von geänderten
Daten zurückgesetzt. Dies
kann zum Beispiel durch Zurücksetzen
von "Änderungsbits", die den Datensegmenten
zugeordnet sind, was nachstehend beschrieben wird, ausgeführt werden.
Während
dies durchgeführt
wird, kann das System Off-Line
genommen werden oder in einen Backup-Modus gebracht werden, um sicherzustellen, dass
sich die Daten nicht ändern,
während
die Änderungsbits
gerade zurückgesetzt
sind (und der Backup des Grads Null ausgeführt wird). Wenn ein neuer Backup
des Grads Null ausgeführt
wird, werden weitere Änderungen
von diesem Backup des Grads Null anstelle von einem früheren ausgeführt.
-
In
einer anderen Ausführungsform
kann ein Zurücksetzen
einer Verfolgung von geänderten
Daten nach dem Schritt 474 zum Erstellen eines Backups
von geänderten
Datensegmenten ausgeführt werden.
In diesem Fall verfolgt jeder differentielle Backup Änderungen
nur von dem letzten differentiellen Backup. Wie nachstehend diskutiert,
zum Wiederherstellen von Daten, wenn dies durchgeführt wird,
müssen
mehrere differentielle Backup-Dateien untersucht werden und nicht
lediglich der eine differentielle Backup, der zu der interessierenden
Zeit ausgeführt
wurde.
-
Der
vollständige
oder Backup des Grads Null kann wie voranstehend beschrieben ausgeführt werden.
Zum Beispiel kann ein abstrakter Blocksatz erzeugt werden, unter
Verwendung von physikalischen Backup-Segmenten, die in irgendeiner
Reihenfolge gespeichert sind, zusammen mit Metadaten als der Grad
des Backups.
-
Der
Schritt 472 kann entweder auf der logischen oder der physikalischen
Ebene ausgeführt werden.
Auf der logischen Ebene kann der Client 50 die Segmente
verfolgen, die geänderte
Daten enthalten. Auf der physikalischen Ebene kann das Speichersystem 54 verfolgen,
welche Segmente von Daten sich geändert haben. In jedem Fall
können
die Segmente von Daten physikalischen Segmenten von Daten entsprechen,
die auf dem Speichersystem gespeichert sind, anstelle von Einheiten
von Daten (z. B. Dateien innerhalb einer Partition), die auf der
logischen Ebene bestimmt werden und zu einem logischen Konstrukt
gehören.
-
Das
physikalische Segment kann ein 512 Byte Block sein, der an die physikalische
Speichereinrichtung zu einer Zeit geschrieben oder daraus gelesen
wird. In einer anderen Ausführungsform
kann die Granularität
des physikalischen Segments die Datenmenge sein, die in einer Spur
der physikalischen Speichereinrichtungen gespeichert sind, die verwendet
werden (insbesondere, wenn die physikalischen Speichereinrichtungen
Plattenlaufwerke sind). Die Größe davon
kann von dem bestimmten Format zum Speichern von Daten in einem
betreffenden Betriebssystem abhängen.
Zum Beispiel kann in einer Umgebung mit einer festen Blockarchitektur
die Spur 32 Kilobytes (64 SCSI Blöcke) sein. Auf IBM Main Frames,
die ein Zähl-Schlüssel-Daten-("CKD", Count-Key-Data)-System
implementieren, kann die Segmentgröße die Größe einer CKD Spur sein. Wie voranstehend
kann, muß aber
nicht, die Granularität der
physikalischen Segmente, für
die Änderungen aufgezeichnet
werden, der physikalischen Backup-Segment-Größe entsprechen oder der Granularität, bei der
Aktualisierungen während
des Kopier- oder Backup-Prozesses verhindert werden. In vielen Fällen wird
es am effizientesten sein, die gleiche Granularität für jede von
diesen Funktionen zu verwenden, z. B. unter Verwendung einer physikalischen Spur
auf einer Platte für
die Granularität
des gesamten Systems.
-
In
bestimmten Ausführungsformen
können die
geänderten
Segmente auf der Ebene des physikalischen Speichers verfolgt werden.
Immer dann, wenn ein physikalisches Segment auf eine physikalische
Speichereinrichtung geschrieben wird, kann somit die Tatsache, dass
sich das Segment geändert hat,
aufgezeichnet werden. Dies kann unter Verwendung eines einzelnen
Bits durchgeführt
werden, welches jedem physikalischen Segment zugeordnet ist. Wenn
das System initiiert wird, werden sämtliche Bits auf Null (z. B.)
gesetzt. Wenn ein physikalisches Segment geändert (oder geschrieben) wird,
kann das zugehörige
Bit gesetzt werden.
-
Somit
können,
wiederum unter Bezugnahme auf 2B,
Datenänderungen
auf der Ebene der tatsächlichen
physikalischen Speichereinrichtungen 204–206 verfolgt
werden. Wenn die Daten in einem der Datensegmente geändert werden,
kann ein Bit gesetzt (oder irgendein anderer Mechanismus verwendet)
werden, um zu verfolgen, dass sich dieses Segment geändert hat.
Wenn zum Beispiel Daten innerhalb des ersten Segments der Anwendungsdatei auf
der Anwendungsebene, z. B. 203a, geändert werden, werden die Daten
in der tatsächlichen
physikalischen Speichereinrichtung bei 208 modifiziert.
Ein Bit (oder ein anderer Mechanismus), der zu dem Datensegment 208 gehört, wird
gesetzt werden, wenn dieser Schreibvorgang ausgeführt wird.
-
2 zeigt ein Beispiel eines Systems, welches
ein Bit umfaßt,
das physikalischen Speichersegmenten zugewiesen ist. Zum Beispiel
umfaßt eine
physikalische Speichereinrichtung 201a sechs physikalische
Segmente. Eine zugehörige
physikalische Bitmaske 412 stellt ein Bit für jedes
physikalische Segment ein, welches sich geändert hat. In diesem Beispiel
haben sich Segmente 114a und 114b geändert. Demzufolge
sind die zugehörigen
Bits 412a und 412b der physikalischen Bitmaske 412 auf Eins
gesetzt worden. Auf eine Anfrage hin kann die physikalische Bitmaske
gelesen und an einen Clienten (z. B. einen Clienten 50 des
in 5 dargestellten Systems) ausgegeben werden.
-
Die
tatsächlichen
physikalischen Speichereinrichtungen 204–206 können, müssen aber
nicht, irgendeine Vorstellung davon haben, was auf der Anwendungsebene
durchgeführt
wird. In dieser Ausführungsform
müssen
die physikalischen Speichereinrichtungen nur wissen, dass Daten
innerhalb des betreffenden Datensegments (z. B. 208) gerade
modifiziert werden (während
viele der hier beschriebenen Ausführungsformen Bitmasken zum
Darstellen von Änderungen
in den Daten, z. B. eine physikalische Bitmaske oder eine logische
Bitmaske, verwenden, können
andere Mechanismen (wobei Listen nur ein Beispiel davon sind) verwendet
werden).
-
In
der voranstehend beschriebenen Ausführungsform werden die Änderungen
von Datensegmenten auf der physikalischen Speicherebene verfolgt
(obwohl in alternativen Ausführungsformen
die Änderungen
auf irgendeiner der anderen Ebenen, z. B. der Anwendungsebene, der
Dateisystemebene, der logischen Datenträgerebene oder der Ebene des Managers
für lokale
Datenträger
verfolgt werden könnten,
wie unter Bezugnahme auf 1 dargestellt
und diskutiert).
-
In
einer Ausführungsform
zum Ausführen
eines "differentiellen" Backups werden Daten über die Änderungen
auf der physikalischen Ebene umgewandelt, so dass sie Änderungen
auf der logischen (z. B. Anwendungsdatei) Ebene entsprechen. Der differentielle
Backup speichert darin die Daten auf der logischen Ebene.
-
22 zeigt eine Vorgehensweise zum Verfolgen von Änderungen
auf der physikalischen Ebene und zum Umwandeln von diesen auf die
logische Ebene. In der Ausführungsform
gehört
eine Bitmaske 412, 413 und 414 zu jeder
tatsächlichen
Speichereinrichtung 204–206.
-
Wenn
Daten an ein Datensegment geschrieben werden, wird ein entsprechendes
Bit und die entsprechende physikalische Bitmaske von Null auf Eins geändert. Demzufolge
zeigen zu irgendeinem Zeitpunkt die physikalischen Bitmasken sämtliche
Daten an, die sich seit dem letzten Backup geändert haben. Wie voranstehend
beschrieben, können
die tatsächlichen
physikalischen Speichereinrichtungen 204–206 unter
Umständen
nicht wissen, wie dies den logischen Objekten auf der Anwendungsebene
entspricht. In der Tat haben die tatsächlichen physikalischen Speichereinrichtungen
keinerlei Möglichkeit
zu bestimmen, welche Datensegmente einander zugeordnet sind. Wie
in 22 angedeutet, haben sich in dieser Ausführungsform
die Datensegmente 114a–114d geändert. Demzufolge
sind entsprechende Bits 412a, 412b, 412c, 412d in
den Bitmasken 412, 113 und 114 auf Eins
gesetzt worden (andere Datensegmente in den tatsächlichen physikalischen Speichereinrichtungen
können
sich auch geändert haben,
sind aber in 11 nicht gezeigt).
-
Eine
logische Bitmaske 410 wird konstruiert, die anzeigt, welche
Datensegmente innerhalb der Datei der Anwendungsebene modifiziert
worden sind. Somit können
logische Bitmasken 410 Einträge 410a–410d enthalten,
die anzeigen, dass die entsprechenden Datensegmente 411a–411d geändert werden
sind (in einer alternativen Ausführungsform können die
Segmentänderungen
auf der logischen Ebene verfolgt werden, obwohl die Segmentgröße einen
physikalischen Speicherbetrag, beispielsweise einer Block- oder
Spurgröße, entspricht).
-
Die
logische Bitmaske 410 kann unter Verwendung einer Abbildung 202 konstruiert
werden. Insbesondere kann die Abbildung 202 das Anwendungsebenenobjekt
auf eine Gruppe von Datenblöcken
in dem tatsächlichen
physikalischen Speicher umwandeln (da dies zum Speichern der Anwendungsebenen-Datei
in dem physikalischen Speicher als allererstes durchgeführt werden
muß).
Somit kann die Abbildung 202 unter Verwendung desgleichen
Mechanismus zum Abbilden von Anwendungsebenen Daten in physikalische
Speichereinrichtungen (durch z. B. Ebenen 10, 12, 14 und 14 der 1) ausgeführt werden.
Die physikalischen Bitmasken, die zu diesen Datensegmenten auf dem
tatsächlichen
physikalischen Speicher gehören,
können
dann untersucht werden. Eine logische Bitmaske kann konstruiert
werden, indem jeder Eintrag in der logischen Bitmaske auf eine Eins
nur dann gesetzt wird, wenn die tatsächliche physikalische Speichereinrichtung
anzeigt, dass sich dieses Datensegment geändert hat.
-
23 zeigt eine Ausführungsform des Verfahrens zum
Ausführen
eines differentiellen Backups eines abstrakten Blocksatzes. In dieser
Ausführungsform
wird der beeinträchtigte
Speicher in den tatsächlichen
physikalischen Speichereinrichtungen zunächst in einem Schritt 231 ruhig
gestellt. Die Ruhigstellung des Speichers stellt sicher, dass keine
zusätzlichen
Daten innerhalb der Anwendungsebenen-Datei modifiziert werden. Eine
Ruhigstellung kann, wie allgemein voranstehend beschrieben, ausgeführt werden,
z. B. indem die Anwendung Off-Line genommen wird oder die Anwendung
in einen On-Line Backup-Modus gebracht wird.
-
In
einem Schritt 232 wird eine Abbildung von der logischen
auf eine physikalische Ebene ausgeführt, um zu bestimmen, welche
physikalischen Datensegmente innerhalb der physikalischen Speichereinrichtung
von Interesse sind. Der Schritt 232 kann wie allgemein
voranstehend beschrieben, ausgeführt werden,
d. h., unter Verwendung der Anwendung, des Dateisystems und des
Managers für
logische Datenträger
(soweit vorhanden und zusätzlichen
Abbildungsebenen, wenn vorhanden) zum Abbilden sämtlicher Datensegmente innerhalb
der Anwendungsdatei auf einen physikalischen Speicher hin. Wie voranstehend
beschrieben, kann diese Abbildung das Objekt den ganzen Weg herunter
auf den tatsächlichen physikalischen
Speicher abbilden. In anderen Ausführungsformen kann ein zusätzlicher
Grad einer Abbildung auftreten, bevor die tatsächlichen physikalischen Einrichtungen,
die die Daten speichern, erreicht werden; zum Beispiel in einem
Symmetrix Produkt wie voranstehend beschrieben, kann das Symmetrix
Produkt etwas anbieten, was eine Einrichtung mit drei Datenträgerspeichern
zu sein scheint. Dieses Symmetrix Produkt könnte Änderungsdaten auf Grundlage
dieses Satzes mit drei Datenträgern
anbieten. Andererseits kann die Art, mit der die Daten tatsächlich physikalisch
innerhalb des Symmetrix Produkts gespeichert sind, nicht diesem
Satz mit drei Datenträgern,
der an der Anwendungs- oder Betriebssystemebene bereitgestellt wird,
entsprechen. Somit kann ein zusätzlicher
Grad einer Abbildung für beide
Datensegmente und Bitmasken innerhalb der Speichereinrichtung ausgeführt werden).
-
Die
Granularität,
mit der die Änderungen
von Daten verfolgt wird, kann auf die Größe der Datenblöcke oder
einer anderen Granularität,
beispielsweise der Größe von physikalischen
Backup-Segmenten, gestützt
sein. Zum Beispiel können Änderungsdaten entsprechend
zu den physikalischen Spuren verfolgt werden, wenn die physikalische
Datenblockgröße kleiner
als eine gesamte Spur ist.
-
In
einem Schritt 233 werden die physikalischen Datensegmente,
die sich seit der Markierung der letzten Zeit geändert haben, identifiziert.
Dies wird durchgeführt,
indem die physikalischen Bitmasken, die zu den physikalischen Speichereinrichtungen
gehören,
untersucht werden. Jeder Eintrag, der geänderte Daten in der physikalischen
Bitmaske markiert, die einem physikalischen Backup-Segment innerhalb
der Anwendung entspricht, die einen physikalischen Datenblock in
dem betreffenden logischen Objekt umfaßt, entspricht Daten, die sich
geändert haben
können.
In einem Schritt 232 kann eine logische Bitmaske, beispielsweise
die logische Bitmaske 410 der 22,
konstruiert werden.
-
In
einem Schritt 234 wird ein differentieller abstrakter Blocksatz
erzeugt. Dieser Schritt beinhaltet das Kopieren nur von denjenigen
physikalischen Backup-Segmenten, die geänderte Daten enthalten können. In
einer Ausführungsform,
wie für
die abstrakten Blocksätze
oben, kann der abstrakte Blocksatz die physikalischen Backup-Segmente
in irgendeiner Reihenfolge aufzeichnen.
-
Demzufolge
werden in einem Schritt 234 Metadaten für den differentiellen abstrakten
Blocksatz ebenfalls gespeichert. Diese Metadaten zeichnen ausreichende
Information auf, um die betreffende Stelle der physikalischen Datenblöcke, die
in dem differentiellen abstrakten Blocksatz innerhalb des logischen
Objekts gespeichert sind, welches gerade kopiert wird oder für das gerade
ein Backup erstellt wird, zu identifizieren.
-
Schließlich wird
in einem Schritt 236 die Anwendung auf den aktiven Modus
zurückgebracht. Das
heißt,
dem System wird erlaubt, eine Aktualisierung der physikalischen
Datenblöcke
auf den tatsächlichen
physikalischen Speichereinrichtungen fortzusetzen.
-
Wie
voranstehend beschrieben, vor der Rückkehr des Systems auf den
aktiven Modus, können
die Bits, die den Datensegmenten auf der tatsächlichen physikalischen Speichereinrichtung,
für die
ein Backup durchgeführt
wurde, entsprechen, auf Null zurückgesetzt
werden. Dies wird nur dann durchgeführt, wenn die differentiellen
Backups gerade bezüglich
des letzten differentiellen Backups durchgeführt werden. Ansonsten können die
Bits nur nach der Konstruktion des realen (oder zusammengefaßten, wie
nachstehend beschrieben) Backups des Grads Null zurückgesetzt
werden.
-
24 zeigt ein Beispiel einer Erzeugung eines differentiellen
abstrakten Blocksatzes gemäß dem Verfahren
der 23. Das logische Objekt 240 umfaßt fünf physikalische
Datenblöcke
(der Einfachkeit halber wird angenommen, dass die Größe des physikalischen
Backup-Segments und des physikalischen Datenblocks in 24 die gleichen sind. Wie voranstehend kann jedoch
die Größe des physikalischen
Backup-Segments eine Größe sein,
die größer als
die physikalischen Datenblöcke
ist).
-
An
einem früheren
Zeitpunkt wurde ein abstrakter Blocksatz 242 gebildet.
Wie voranstehend speichert der abstrakte Blocksatz jeden der logischen
Datenblöcke
des logischen Objekts 240, aber in irgendeiner Reihenfolge.
Der abstrakte Blocksatz 242 kann Metadaten umfassen, die
die Stellen bzw. Orte der Datenblöcke innerhalb des logischen
Objekts spezifizieren.
-
Nachdem
der abstrakte Blocksatz 242 gebildet wurde, können zusätzliche Änderungen
an den Daten innerhalb des logischen Objekts 240 durchgeführt werden.
In diesem Beispiel reflektiert die logische Bitmaske 241 diese Änderung.
Insbesondere zeigt die logische Bitmaske 241 an, dass die
zweiten und letzten logischen Datenblöcke innerhalb des logischen
Objekts 240 geändert
worden sind.
-
Der
differentielle abstrakte Blocksatz 243 speichert diejenigen
Datenblöcke,
die sich geändert haben
(den zweiten und den fünften).
Wie voranstehend beschrieben, können
diese in irgendeiner Reihenfolge gespeichert werden. Der differentielle
abstrakte Blocksatz kann Metadaten für den differentiellen abstrakten
Blocksatz enthalten. In dem Beispiel der 24 sind
die Metadaten in dem gleichen allgemeinen Format wie die Metadaten
für den
vollständigen
abstrakten Blocksatz 242. Die Metadaten umfassen jedoch
eine Extraspalte, die spezifiziert, welche der logischen Blöcke seit
dem letzten Backup geändert
worden sind (in diesem Beispiel wiederum der zweite und der fünfte).
-
Um
ein logisches Objekt aus einem vollständigen abstrakten Blocksatz-Backup
und einem differentiellen abstrakten Blocksatz wiederherzustellen, können die
beiden kombiniert oder zusammengefaßt werden. In der Tat können ein
abstrakter Blocksatz und ein oder mehrere differentielle abstrakte
Blocksätze
zu irgendeinem Zeitpunkt Off-Line zusammengefaßt werden. Dies erlaubt die
Bildung eines synthetischen vollständigen abstrakten Blocksatzes,
der den Zustand des logischen Objekts zu dem Zeitpunkt reflektiert,
zu dem der differentielle abstrakte Blocksatz gebildet wurde.
-
25 zeigt ein Beispiel dieses Zusammenfassungsprozesses,
unter Verwendung des Beispiels der 24.
Wie ersehen werden kann, sind die ursprünglichen Datenblöcke 242a–b des gesamten
abstrakten Blocksatzes 242 in dem differentiellen abstrakten
Blocksatz 243 aktualisiert worden. Demzufolge sind in dem
zusammengefaßten
abstrakten Blocksatz 253 diese Datenblöcke durch die aktualisierte Version
ersetzt worden.
-
26 zeigt eine Ausführungsform eines Verfahrens
zum Ausführen
dieses Zusammenfassungsprozesses. In der Ausführungsform der 26 können
ein oder mehrere differentielle abstrakte Blocksätze vorhanden sein. Mehr als ein
differentieller abstrakter Blocksatz kann vorhanden sein, wenn zum
Beispiel differentielle abstrakte Blocksätze gebildet werden, die Änderungen
reflektieren, seitdem der letzte differentielle abstrakte Blocksatz
erzeugt wurde (anstelle dass differentielle abstrakte Blocksätze gebildet
werden, um sämtliche Änderungen
seit dem letzten vollständigen
Backup zu reflektieren). Natürlich
wird dieses Verfahren mit nur einem differentiellen abstrakten Blocksatz
genauso arbeiten.
-
In
einem Schritt 260 wird der jüngere vollständige oder
differentielle abstrakte Blocksatz gewählt. Natürlich wird diese Auswahl von
denjenigen logischen Objekten durchgeführt, die vor der Ziel-Wiederherstellungszeit
aufgezeichnet wurden (differentielle abstrakte Blocksätze, die
jünger
als die Ziel-Wiederherstellungszeit sind, reflektieren jüngere Daten
als wiederhergestellt werden sollten). In einem Schritt 261 werden
sämtliche
logische Datenblöcke, die
nicht in dem zusammengefaßten
abstrakten Blocksatz sind, an den zusammengefaßten abstrakten Blocksatz angehängt.
-
Unter
Bezugnahme auf 25 ist der erste abstrakte
Blocksatz der im Schritt 260 gewählt wird, der differentielle
abstrakte Blocksatz 243. Da noch keine Blöcke in dem
zusammengefaßten
abstrakten Blocksatz vorhanden sind, werden die zwei Datenblöcke des
differentiellen abstrakten Blocksatzes 243 zu dem zusammengefaßten abstrakten
Blocksatz 253 – entsprechend
zu den ersten zwei Datenblöcken 253a–b hinzugefügt.
-
In
einem Schritt 262 wird bestimmt, ob sämtliche der differentiellen
und vollständigen
abstrakten Blocksätze
untersucht worden sind. Wenn nicht, dann geht die Verarbeitung zu
einem Schritt 260.
-
Zurückkehrend
zu dem Beispiel der 25 ist der nächste abstrakte
Blocksatz, der gewählt
werden soll, der vollständige
abstrakte Blocksatz 242. In einem Schritt 261 können diejenigen
logischen Datenblöcke,
die bereits in dem zusammengefaßten LBO
sind, hinzugefügt
werden. Dies entspricht jedem anderen Datenblock außer 242a und 242b.
-
Sobald
sämtliche
abstrakten Blocksätze
untersucht worden sind, wird die Verarbeitung an diesem Punkt in
einem Schritt 263 fortgesetzt. Im Schritt 263 werden
die Metadaten für
den zusammengefaßten
abstrakten Blocksatz erzeugt. Unter Verwendung des Beispiels der 25 und 24 können die
Metadaten von dem gleichen Format sein – die physikalische Adresse
der logischen Blockelemente hat sich nicht geändert. Demzufolge sind die
Metadaten die gleichen. In anderen Ausführungsformen zum Formatieren
von Metadaten kann die Metadaten-Tabelle entsprechend ihrem Format
aktualisiert werden.
-
Der
zusammengefaßte
abstrakte Blocksatz kann zum Kopieren und Wiederherstellen in der
gleichen Weise wie ein ursprünglicher
abstrakter Blocksatz der Ebene oder des Grads Null verwendet werden.
-
Transfers von primären an sekundäre Speicherknoten,
Beispiel von einem sekundären
Speicherknoten
-
Wie
voranstehend unter Bezugnahme auf die 11A und 11B beschrieben, beinhaltet ein Aspekt der Speichersysteme
einen Transfer von Daten von primären Speicherelementen oder
Knoten an sekundäre
Speicherelemente oder Knoten.
-
27 zeigt ein Beispiel eines besonders vorteilhaften
Mechanismus zum Transferieren von Daten von einem primären Speicherknoten
an einen sekundären
Speicherknoten zur Speicherung auf einem Band. Diese beispielhafte
Ausführungsform
und die Komponenten aus 27 sind
sowohl im Hinblick auf die voranstehend beschriebenen anderen Erfindungen
(obwohl in bezug auf diese Erfindungen nicht beschränkend) nützlich sowie
für Systeme,
die unabhängig
von diesen Erfindungen implementiert werden, nützlich.
-
27 umfaßt
einen primären
Speicherknoten 270. Dies kann zum Beispiel ein Symmetrix
Speichersystem wie voranstehend beschrieben sein. In einem derartigen
System kann ein Host-Adapter 270 zur
Kommunikation mit einem Host vorgesehen sein. Platten-Adapter können eine
Schnittstelle mit den Platten bereitstellen. Ein entfernter Adapter 270c kann
Kommunikationen mit entfernten Einrichtungen behandeln, entweder über eine
SCSI Verbindung, eine ESCON Verbindung, einen Faser-Kanal, ein geschaltetes
Netz oder irgendeinen anderen Kommunikationskanal. Zusätzlich kann
ein Cache 270b zum Cachen von empfangenen und gesendeten
Daten vorgesehen werden.
-
27 zeigt auch einen sekundären Speicherknoten 271.
In dieser Ausführungsform
weisen die sekundären
Speicherknoten eine Vielzahl von Datenbewegungselementen 271a, 271b, 271d und 271f auf.
In dieser Ausführungsform
sind die Datenbewegungselemente in Paaren angeordnet – ein Paar
aus einem vorderen Ende und einem hinteren Ende. Zum Beispiel kann
der Daten-Beweger 271a ein Vorderenden-Datenbeweger sein – hauptsächlich verantwortlich
zum Empfangen von Daten von einem primären Speicherknoten. Der Vorderenden-Datenbeweger 271a kann
mit einem Hinterenden-Datenbeweger 271 gepaart werden.
Der Hinterenden-Datenbeweger ist zum Bewegen von Daten von dem sekundären Speicherknoten
an die Backup-Medien verantwortlich.
-
Wie
in 27 gezeigt, können
mehr als ein Paar der Vorderenden- und Hinterenden-Datenbeweger
für einen
parallelen Transfer von Daten bereitgestellt werden. In diesem Beispiel
sind zwei Paare gezeigt – 271a–271e und 271b–271f.
-
Das
tatsächliche
Backup-Medium in dem Beispiel der 27 ist
eine Bandbibliothek 272 (andere Backup-Medien können in
anderen Ausführungsformen
verwendet werden). Die Bandbibliothek kann eine Vielzahl von Bandlaufwerken 272a–d umfassen,
wobei jedes von diesen Daten von einem Band lesen und Daten darauf
schreiben kann (und die einen geeigneten Kommunikationsadapter,
z. B. einen SCSI Adapter, enthalten können). Die Bandbibliothek 272 kann
auch Roboter-Einrichtungen 271f umfassen,
die Bänder
aus einer Bandbibliothek 272g wählen und diese Bänder in
die Laufwerke 272a–272d einlegen
können.
Eine Roboter-Schnittstelle 272c kann den Wählprozeß steuern.
-
Zurückkehrend
zu dem sekundären
Speicherknoten 271 kann der sekundäre Speicherknoten eine interne
Speichereinrichtung 271c umfassen, um von dem Vorderenden-Datenbeweger
(z. B. 271a) empfangene Daten zu puffern, bevor sie von
dem Hinterenden-Datenbeweger (z. B. 271e) während eines
Backups auf Band geschrieben werden (oder umgekehrt, um Daten während einer
Wiederherstellung zu puffern, indem die Daten in dem internen Speicher 271c (von
einem Hinterenden-Datenbeweger 271e) angeordnet werden
und die Daten an den primären
Speicherknoten weitergeleitet werden (von dem Vorderenden-Datenbeweger 271a).
-
Die
Datenbeweger 271a, 271b, 271e und 271f können Intel-gestützte Personalcomputer
sein, auf denen eine Software läuft,
die den Datenbewegern ermöglicht,
Daten von dem primären
Speicherknoten an die Band-Bibliothekseinheit während eines Backups und umgekehrt
während
einer Wiederherstellung zu transferieren.
-
Wie
voranstehend beschrieben sind die Datenbeweger in Paaren konfiguriert,
z. B. Vorderenden-Datenbeweger 271a und Hinterenden-Datenbeweger 271e.
Jedes Paar von Datenbewegern kann verwendet werden, um einen oder
mehrere virtuelle Schaltungen oder Ströme zu definieren.
-
Der
Vorderenden-Datenbeweger (z. B. 271a) kann mit dem primären Speicherknoten 270 unter Verwendung
einer Vielfalt von Verbindungen verbunden werden. Zum Beispiel werden
in dem Beispiel der 27 zwei ESCON Kabel verwendet,
um jeden Vorderenden-Datenbeweger mit den Ports eines entfernten
Adapters eines einzelnen primären
Speicherknotens (z. B. einer Symmetrix Speichereinrichtung) zu verbinden.
-
In
dem Beispiel der 27 sind die Hinterenden-Datenbeweger 271e, 271f mit
der Band-Bibliothekseinheit 272 unter Verwendung von SCSI
Kabeln verbunden. In diesem Beispiel geht jede SCSI Verbindung zu
einer einzelnen Lese/Schreib-Ansteuereinheit 272a–272d der
Bandbibliothek 272. Natürlich können die
SCSI Verbindungen über
eine Prioritätsverkettung
verbunden werden, was ermöglicht,
dass mehr als eine Ansteuereinheit mit jedem Hinterenden-Datenbeweger-Port
verbunden wird. Andere Verbindungen können verwendet werden, einschließlich anderer
Strecken oder sogar eines geschalteten Netzes.
-
Der
interne Speicherungsspeicher 71c kann selbst ein iteratives
gecachetes Plattenfeld sein, wie Symmetrix. Somit kann ein Symmetrix
Produkt als ein interner Cache-Speicher zur Bewegung von Daten von
dem vorderen Ende an das hintere Ende enthalten sein. Die interne
Speichereinrichtung 271c kann einen Service-Prozessor umfassen,
wie einen Laptop-Personalcomputer
zur lokalen Steuerung der internen Speichereinrichtung 271c.
Die interne Speichereinrichtung kann auch das Betriebssystem und Anwendungsprogramme,
die auf den Datenbewegern 271a, 271b, 271e, 271f und
der Steuerstation 271g laufen, speichern.
-
Die
Steuerstation 271g kann eine Intel-Maschine sein, auf der
irgendein Betriebssystem einer Anzahl von Betriebssystemen läuft, beispielsweise SCO
UNIX. Die Steuerstation 271g kann auch eine Tastatur und
einen Bildschirm für
einen lokalen Betrieb der Steuerstation 271g umfassen.
-
Die
Steuerstation 271g steuert einen Betrieb der Datenbeweger 271a, 271b, 271e und 271f.
Die Steuerstation 271g umfaßt eine Steuereinrichtungs-Software 271b,
um diese Funktion auszuführen.
Die Steuereinrichtung 271b wird auch für eine Systemkonfiguration
und ein Überwachungssystem für das Betriebsverhalten
verwendet. Die Steuerstation 271g umfaßt eine Datenbank 271i (die
in der Alternative auf dem internen Speicher 271c gespeichert
werden kann). Die Datenbank 271i speichert Information
für sämtliche
anstehenden Backup-Ströme oder
Sessions, die Inhalte von Bändern
in der Band-Bibliothekseinheit
und andere Steuerinformation zum Managen des Backup-Prozesses und
der Backup-Medien.
-
Die
Steuerstation 271g kann auch eine Schnittstelle 271j umfassen,
um die Roboter-Einrichtungen von 272c, 272f der
Band-Bibliothekseinheit 272 zu manipulieren und steuern.
-
Wie
voranstehend beschrieben, kann der primäre Speicherknoten 270 als
eine Schnittstelle zwischen Host-Verbindern (z. B. Host-Computern,
die mit dem Host-Adapter 270a verbunden sind) und einem
sekundären
Speicherknoten 271 verwendet werden. In diesen Ausführungsformen
und wenn die Speichermanagement-Anwendung
hauptsächlich auf
dem Host-Computer resident ist, kann der primäre Speicherknoten 270 verwendet
werden, um Befehle von dem Host-Computer an den sekundären Speicherknoten 271 zu
leiten. Derartige Befehle können
Befehle, die sich auf das Anbringen und Entfernen von Bändern, das
Lesen und Schreiben von Band-Headern (Anfangsblöcken) und Endblöcken (Trailern)
richten, und andere Befehle umfassen.
-
Der
primäre
Speicherknoten 270 kann einfach geeignete Befehle an den
sekundären
Speicherknoten 271 leiten. In einer Alternative kann der
primäre
Speicherknoten 270 einige Funktionen auf Grundlage von
diesen Befehlen ausführen,
beispielsweise eine Formatüberprüfung.
-
Wie
voranstehend beschrieben, kann der Backup-Wiederherstellungsprozeß ausgeführt werden
indem ein virtueller Kanal zwischen einem primären Speicherknoten 270 und
der Bandbibliothek 272 durch den sekundären Speicherknoten 271 hergestellt
wird. Wie voranstehend beschrieben, kann dies ein Formulieren einer
Verbindung durch ein Netz zwischen dem primären Speicherknoten 270 und
dem sekundären
Speicherknoten 271 beinhalten. Dies kann auch eine Herstellung
einer Verbindung mit einem Bandlaufwerk 272a und anwendbaren
Bändern 272g beinhalten.
-
28 zeigt ein Beispiel eines Zustandsdiagramms
für einen
sekundären
Speicherknoten, wie den Knoten 271, zum Herstellen und
Aufrechterhalten eines virtuellen Kanals. In einem Zustand 280 wird
eine Backup-Steuerstrom-Session (oder ein virtueller Kanal) von
der Speichermanagement-Anwendung (z. B. auf dem Host-Computer) angefordert. Eine
Herstellung des virtuellen Kanals kann ein Auswählen eines geeigneten Paars
von Vorderenden- und Hinterenden-Datenbewegern, z. B. des Vorderenenden-Datenbewegers 271a und
des Hinterenden-Datenbewegers 271e,
beinhalten.
-
Eine
Funktion, die von der Speichermanagement-Anwendung ausgeführt werden
soll, kann das öffnen
eines Bands erfordern. Das Ergebnis würde sein, den sekundären Speicherknoten 271 in
den Zustand 281 zu bringen – Virtuellkanal-Beginn des Bands.
Dieser Übergang
würde das
Anbringen des geeigneten Bands, unter Verwendung von ähnlichen Techniken,
wie diejenigen, die im Stand der Technik bekannt sind, beinhalten.
Am Beginn des Bandzustands 281 können die Band-Anfangsblöcke und Endblöcke gelesen
oder geschrieben werden, und zwar als Teil des Bandmanagement-Prozesses.
-
Wenn
es Zeit ist, Information auf dem Band aufzuzeichnen, geht der sekundäre Speicherknoten 271 (oder
wenigstens die anwendbaren Datenbeweger innerhalb des sekundären Speicherknotens)
in den Virtuellkanal-Schreibzustand 282 über Wenn
er in diesem Zustand ist, wird der Aufzeichnungsteil eines Backups
ausgeführt,
beispielsweise das Schreiben von einem oder mehreren abstrakten
Blocksätzen
oder Abschnitten eines abstrakten Blocksatzes auf ein Band.
-
Wenn
das Ende eines Bands festgestellt wird, dann gehen die anwendbaren
Datenbeweger in dem sekundären
Speicherknoten 271 in das Virtuellkanal-Ende des Bandzustands 284 über. In
diesem Zustand kann die anwendbare Kataloginformation gelesen und
ein geeigneter Band-Endblock geschrieben werden. Wenn das Ende des
Bands festgestellt wird (oder das Ende der Daten), muß der betreffende Virtuellkanal
dieses Band schließen,
wobei die Datenbeweger und der sekundäre Speicherknoten auf den Anfangszustand
gebracht werden, als der Kanal gebildet wurde – nämlich auf den Zustand 280.
-
Wenn
während
des Schreibens von dem Zustand 282 ein Fehler festgestellt
wird, kann der virtuelle Kanal in einen Fehlerzustand 283 übergehen. Das
Band kann geschlossen werden (wobei eine Rückkehr auf den Zustand 280 durchgeführt wird), eine
Fehlerauflistung (ein Fehler-Log) wird erzeugt und ein Systembetreiber
wird benachrichtigt.
-
Wie
voranstehend diskutiert, ist die Speichermanagement-Anwendung verantwortlich,
um geeignete Befehle zum Ändern
des Zustands des sekundären
Speicherknotens 271 auszugeben. Die Speichermanagement-Anwendung
kann auf dem Host-Computer, den primären Speicherknoten, einer getrennten
Netzspeicherungs-Steuereinrichtung oder
sogar auf dem sekundären
Knoten 271 resident sein.
-
29 zeigt ein Zustandsdiagramm für den sekundären Speicherknoten 271 zum
Wiederherstellen von Information von dem Band. Das Zustandsdiagramm
beginnt im Zustand 291, wo eine Aufforderung zum Öffnen eines
virtuellen Kanals empfangen worden ist. Die Speichermanagement-Anwendung behandelt
das Öffnen
von Bändern,
zum Beispiel durch Anfordern des Öffnens eines Bands für den Backup-Kanalstrom.
Dies führt
zu dem Übergang
in den Virtuellkanal-Beginn des Bandzustands 292. Wie zuvor
kann dies Lesevorgänge
für den
Band-Anfangsblock und -Endblock (Trailer) sowie das Lesen von Metadaten
eines abstrakten Blocksatzes für
Systeme, die abstrakte Blocksätze
verwenden, umfassen.
-
Das
tatsächliche
Lesen von Daten kann unter Verwendung eines Bandlese-Befehls gesteuert werden,
was den sekundären
Speicherknoten 271 veranlaßt, in den Virtuellkanal-Lesezustand 293 überzugehen.
Am Ende des Bands (oder der Daten) oder bei einem Log-Out (Aus-Loggen)
kann der sekundäre
Knoten auf das Virtuellkanal-Ende des Bandzustands 292 zurückkehren.
Das Band kann dann geschlossen werden, wobei der sekundäre Speicherknoten 271 auf
den Virtuellkanal-Öffnungszustand
zurückgeführt wird.
-
Wenn
ein Fehler während
eines Lesevorgangs angetroffen wird, kann der Knoten 271 In
den Fehlerzustand 294 übergehen, ähnlich wie
der Fehlerzustand, der voranstehend unter Bezugnahme auf 28 beschrieben wurde. Wenn ein Fehler auftritt, kann
das Band geschlossen werden, eine Fehleraufzeichnung (ein Fehler-Log)
kann erzeugt werden und der Systembetreiber kann benachrichtigt
werden.
-
Sowohl
für ein
Backup als auch eine Wiederherstellung kann die Katalogisierung
und die Identifikation von Bändern
von der Speichermanagement-Anwendung behandelt werden, so wie dies
für andere
Mechanismen zum Formatieren von Daten durchgeführt wird, die auf einem Speichersystem
gespeichert sind. Die Steuerstation 271g des sekundären Speicherknotens 271 unterstützt die
Identifikation und die Anbringung und Entfernung der geeigneten Bänder unter
Verwendung der Steuerstations-Datenbank 271i.
-
Die
Backup- und Wiederherstellungszustands-Diagramme der 28 und 29 bilden beispielhafte
Ausführungsformen,
um das System (z. B. den primären
Speicherknoten und/oder den sekundären Speicherknoten) in einen
asynchronen Transferzustand zu bringen. Innbesondere gehen die Knoten
der Speicherdomäne
in einen Zustand über, bei
dem Daten unabhängig
von einer Steuerung von irgendeinem Host-Computer oder einem Host-Domänenelement
transferiert werden, selbst wenn ein großer Teil des Speichermanagement-Anwendungsprozesses
(und der Software) gerade auf dem Host- Computer ausgeführt wird.
-
Bestimmte
Ausführungsformen
dieser Facette der Erfindung ermöglichen
den Vorteil einer unabhängigen
Steuerung und eines Transfers einer Kopierung, eines Backups und
einer Wiederherstellung. In bestimmten Ausführungsformen der Erfindung kann
dies die Abhängigkeit
von bestimmten Host-Plattformen
unterstützen
und Host-Ressourcen konservieren. Bestimmte Ausführungsformen dieses Aspekts
der Erfindung ermöglichen
auch eine erhöhte
Skalierbarkeit – wobei
eine Hinzufügung
von Speicher mit einer geringeren Abhängigkeit von einer Host-Konfiguration
erlaubt wird.
-
Eine Ausführungsform des Datentransfers
-
30 zeigt eine Ausführungsform einer Architektur
für einen
primären
Speicherknoten, der einen Transfer von Daten an einen sekundären Speicherknoten
oder an einen anderen primären
Speicherknoten ermöglicht.
Diese Ausführungsform
(genauso wie andere) kann verwendet werden, um ein oder mehrere
der obigen Erfindungen zu implementieren.
-
30 zeigt einen primären Speicherknoten 300.
Der primäre
Speicherknoten 300 umfaßt einen entfernten Adapter 301,
wie allgemein unter Bezugnahme auf 7 beschrieben.
Der primäre
Speicher 300 umfaßt
auch einen Platten-Adapter 305, der auch wie allgemein
unter Bezugnahme auf 7 beschrieben konfiguriert
ist.
-
Daten
werden unter einer Vielzahl von Platten innerhalb des primären Speicherknotens 300 gespeichert,
wobei eine davon in 30 gezeigt ist – die Platte 306.
-
Die
Platte 306 kann Schutzbits umfassen, wie voranstehend unter
Bezugnahme auf 20 beschrieben. Diese Schutzbits
können
verwendet werden, um zu kopierende Spuren zu bezeichnen – und auch
Spuren, die bevor sie kopiert werden, nicht aktualisiert werden
sollten. Die Schutzbits 307 können in einer Ausführungsform
auf einem Zylinder-Header (Anfangsblock) für die Platteneinrichtung 306 gespeichert
werden. Die Platteneinrichtung 306 kann auch eine physikalische
Bitmaske (nicht gezeigt) umfassen, wie allgemein voranstehend unter
Bezugnahme auf 22 beschrieben. Andere Mechanismen
können
verwendet werden, um eine Markierung oder eine Aufzeichnung darüber bereitzustellen,
welche Spuren geschützt
sind.
-
In
der Ausführungsform
der 30 empfängt der Platten-Adapter 305 Befehle
von der Speichermanagement-Anwendung darüber, welche physikalischen
Backup-Elemente (hier, welche der Spuren 308a–e) ein
Teil des Backup-Prozesses sind. Der Platten-Adapter kann dann die
Schutzbits zu der Zeit schreiben, zu der ein Backup initiiert wird.
-
Diejenigen
physikalischen Backup-Elemente (z. B. Spuren 308a, 308b und 308e),
die als ein Teil eines Backup-Prozesses bestimmt wurden, können dann
an eine Seitendatei 303 in einem Cache 302 des
primären
Speicherknotens 300 kopiert werden. Somit kann die Seitendatei 303 die
bestimmten Spuren 308a, 308b und 308e für eine Kopierung
an einen anderen Speicherknoten empfangen. Die Seitendatei kann
deshalb Kopien 303a–c
von diesen Spuren enthalten.
-
Zusätzlich kann
der Platten-Adapter 305 an eine Anforderungswarteschlange
eine Aufforderung schicken, dass die physikalischen Backup-Segmente,
die an die Seitendatei 303 kopiert worden sind, an einen
anderen Knoten transferiert werden. Somit können Aufforderungen 304a–c in der
Aufforderungsschlange 304, die diesen physikalischen Backup-Segmenten in der
Seitendatei 303 entsprechen, verschickt werden.
-
Der
entfernte Adapter 301 kann Aufforderungen aus der Schlange
aufnehmen und transferiert Kopien der anwendbaren Spur an den empfangenden
Speicherknoten, z. B. einen sekundären Speicherknoten.
-
Die
anwendbaren Speicher-Backup-Segmente, die in der Seitendatei 303 gehalten
werden, können
ein Teil von mehr als einer Kopie eines Backup-Prozesses sein, der
gerade ausgeführt
wird. Zum Beispiel kann mehr als ein abstrakter Blocksatz in dem
Prozeß vorhanden
sein, bei dem ein Backup über
mehr als einen virtuellen Kanal, der mit dem entfernten Adapter 301 verbunden
ist, erstellt wird. In diesem Fall können die betreffenden Metadaten
für den
abstrakten Blocksatz verwendet werden, um einen spezifischen abstrakten
Blocksatz und einen virtuellen Kanal für den Kopier- oder Backup-Prozeß zu identifizieren.
-
In
einer alternativen Ausführungsform
kann der empfangende Speicherknoten physikalische Backup-Segmente
auf Grundlage des abstrakten Blocksatzes, zudem sie gehören, klassifizieren.
Zum Beispiel könnten
die voranstehend beschriebenen Vorderenden-Datenbeweger physikalische
Backup-Segmente,
die Spuren entsprechen, einschließlich einer physikalischen
Adresse für
die Spur, empfangen. Der Vorderenden-Datenbeweger kann Kenntnis über die
Metadaten für den
abstrakten Block besitzen, der von der Speichermangement-Anwendung formuliert
wurde (die sämtliche
physikalischen Orte für
das betreffende logische Objekt, für das gerade ein Backup erstellt
wird, identifiziert hat). Dies würde
dem Vorderenden-Datenbeweger erlauben, das physikalische Backup-Segment auf Grundlage
seiner physikalischen Adresse zu klassifizieren.
-
Natürlich könnte eine
Vielfalt von alternativen Strukturen und Verfahren für einen
Transfer durch eine Seitendatei verwendet werden. Lediglich als
ein Beispiel könnten
die physikalischen Backup-Segmente getrennte Seitendateien für jeden
abstrakten Blocksatz (oder eine andere Struktur) sortiert werden,
der gerade kopiert wird oder für
den gerade ein Backup erstellt wird. Zusätzlich könnten Seitendateien verwendet
werden, um Segmente von Daten für einen
Transfer zu sammeln. Zum Beispiel könnte eine Seitendatei erzeugt
werden, die wenigstens zehn Megabits von Daten vor einem Transfer
durch den entfernten Adapter 301 an einen sekundären oder
anderen Speicherknoten umfaßt.
-
31 zeigt eine Ausführungsform eines Verfahrens
zur Verwendung der in 30 gezeigten Struktur. In einem
Schritt 310 werden die Schutzbits (307 der 30) für
physikalische Backup-Segmente, die gerade kopiert werden, markiert.
Wie voranstehend beschrieben, kann dies ein Markieren der Bits für mehr als
ein logisches Backup-Objekt umfassen.
-
Zusätzlich können Metadaten
für das
anwendbare logische Objekt an den empfangenden Speicherknoten, z.
B. den sekundären
Speicherknoten, transferiert werden. Wenn somit die Metadaten in
der Form sind, die bei 133 in 13 gezeigt
sind, können
diese Metadaten spezifiziert werden und den Backup-Prozeß vorantreiben.
Diese Metadaten können – oder können nicht – während eine
Backups für einen
Einbau in das logische Backup-Objekt umformuliert werden, beispielsweise eine
Umformulierung in die Form, die bei 134 in 13 gezeigt ist. In jedem Fall können diese
Metadaten von dem Platten-Adapter 305, dem entfernten Adapter 301 und/oder
dem empfangenden Speicherknoten verwendet werden, um die betreffenden
physikalischen Segmente, die zu dem logischen Objekt gehören, welches
gerade kopiert wird oder für
das gerade ein Backup erstellt wird, zu akkumulieren und organisieren.
-
In
einem Schritt 311 werden die geschützten Segmente an eine Seitendatei
in einem Cache transferiert. Wenn dies durchgeführt wird, werden Aufforderungen
für den
Transfer der physikalischen Backup-Segmente in einer Aufforderungsschlange
gelogged. Wie voranstehend beschrieben, kann dies durch einen Platten-Adapter
des primären
Speicherknotens ausgeführt
werden. Zu diesem Zeitpunkt kann der Platten-Adapter 305 auch
das anwendbare Schutzbit der Schutzbits 307 der Platteneinrichtung 306 zurücksetzen,
wobei zukünftige
Aktualisierungen der Daten zugelassen werden.
-
Die
Segmente in der Seitendatei können
an einen anderen Speicherknoten durch den entfernten Adapter 301 transferiert
werden, beispielsweise einen Transfer an einen sekundären Speicherknoten. Dies
würde durch
Lesen von Aufforderungen durch einen Transfer von den Aufforderungsschlangen 304 durchgeführt.
-
Nach
dem Transfer (z. B. nachdem der Transfer bestätigt worden ist) können die
betreffenden Einträge
für das
Segment in der Aufforderungsschlange in der Seitendatei entfernt
werden. Natürlich
kann dies einfach dadurch ausgeführt
werden, dass der Speicher als nicht verwendet zugeordnet wird.
-
32 zeigt ein Beispiel des Datenflusses in einem
Backup-Prozeß durch
einen sekundären
Speicherknoten 320. In dieser Ausführungsform werden die Daten
zu Anfang von dem Vorderenden-Prozessor 322 empfangen.
Der Vorderenden- Prozessor kann
wie allgemein voranstehend unter Bezugnahme auf 27 beschrieben ausgebildet sein.
-
Der
Vorderenden-Prozessor 322 speichert die empfangenen physikalischen
Backup-Segmente in einem internen Speicher 323 in Dateien,
die zu der betreffenden Einheit gehören, für die gerade ein Backup erstellt
wird. Wenn zum Beispiel gerade ein Backup für einen abstrakten Blocksatz
LBO #1 erstellt wird, dann werden die physikalischen Segmente in
einer Datei 324 gespeichert, die zu dem abstrakten Blocksatz
gehört.
Wenn mehr als ein abstrakter Blocksatz gerade gleichzeitig über einen
virtuellen Kanal übertragen
wird, kann der Vorderenden-Prozessor
die betreffenden physikalischen Datensegmente in die geeignete Datei,
z. B. Dateien 324 und 325, sortieren.
-
Wenn
eine Datei eine bestimmte Schwellengröße erreicht, z. B. zehn Megabits,
kann der Vorderenden-Prozessor 322 den Hinterenden-Prozessor 326 darüber informieren,
dass ein Segment des abstrakten Blocksatzes zum Kopieren auf Band
bereit ist. Der Hinterenden-Datenbeweger 326 kann dann
diesen Teil des abstrakten Blocksatzes von dem internen Speicher 323 an
die Band-Bibliothekseinheit 321 kopieren.
-
Für den Fall,
dass der interne Speicher 322 ein iteratives gecachetes
Plattenfeld ist, wie Symmetrix, können die physikalischen Backup-Segmente von
der anwendbaren Datei 324, 325 von dem Hinterenden-Datenbeweger 326 in
umgekehrter Silo-Reihenfolge
(zuletzt-herein-zuerst-heraus) kopiert werden. Dies kann durchgeführt werden,
um die Möglichkeit
zu erhöhen,
dass die Daten von einem Cache innerhalb des internen Speichers 323 und nicht
von der Platte innerhalb des internen Speichers 323 kopiert
werden.
-
Wie
voranstehend beschrieben, kann über einen
virtuellen Kanal für
mehr als einen abstrakten Blocksatz zu einer Zeit ein Backup erstellt
werden. Zusätzlich
können
die Segmente eines abstrakten Blocksatzes in Stücken mit fester Größe geschrieben werden.
Wenn zum Beispiel eine Akkumulationsdatei 324, 325 physikalische
Backup-Segmente akkumuliert, bis eine Schwellengröße (zum
Beispiel 10 Meg) erreicht wird, dann kann der abstrakte Blocksatz
in verschachtelten Segmenten eines Bands gespeichert werden. Die
Steuereinrichtung und die Steuerstation (271a und 271g)
können
eine Datenbank für diese
Information führen.
Zusätzlich
kann die anwendbare Information an geeignete Header (Anfangsblöcke) und
Trailer (Endblöcke)
auf dem Band geschrieben werden.
-
33 zeigt ein Beispiel eines Bands, welches Backup-Information enthält, die
von einer Einrichtung gemäß einer
Ausführungsform
der vorliegenden Erfindung geschrieben wird.
-
In 33 weist das Band einen Anfangsabschnitt 330 und
einen Endabschnitt 332 auf. Der Anfangsabschnitt 330 umfaßt den gewöhnlichen Band-Header 330a und
vielleicht einen speziellen Band-Header für den sekundären Speicherknoten 330b.
Nach den Band-Headern 330a, 330b umfaßt das Band
verschachtelte Segmente von abstrakten Blocksätzen (einschließlich von
Metadaten) 338, die mit Dateimarken getrennt sind. Zum
Beispiel können die
verschachtelten Segmente eine Aufzeichnung 331 enthalten,
die eine Reihe von Kopien von physikalischen Backup-Segmenten 331b enthält. Ein
Segment-Header 331a und ein Segment-Trailer 331c können diesen
Teil des abstrakten Blocksatzes identifizieren und von anderen Teilen
des Bands trennen.
-
Verschachtelt
mit dem Abschnitt des abstrakten Blocksatzes, der die Datenblöcke 331 enthält, können andere
Aufzeichnungen für
physikalische Backup-Segmente von anderen abstrakten Blocksätzen und
andere abstrakte Blocksätze
sein. Zusätzlich kann
eine Aufzeichnung 333 geschrieben werden, die Metadaten
von abstrakten Blocksätzen
enthält. Diese
Metadaten 333a können
irgendeine der voranstehend beschriebenen Formen oder andere Formate
aufweisen. Als ein Teil der Segment-Headerinformation 331a und 333a kann
der betreffende abstrakte Blocksatz zum Beispiel unter Verwendung
eines Identifizierers für
abstrakte Blocksätze,
der in einzigartiger Weise jedem abstrakten Blocksatz zugewiesen
ist, identifiziert werden. Dies erlaubt eine Identifikation und
Koordination der Aufzeichnungen, die auf dem betreffenden Band 330, 332 verschachtelt
sind.
-
Am
Ende des Bands 332 kann ein Bandverzeichnis 334 geschrieben
werden. In ähnlicher
Weise kann eine Server-Bandtrailer-Information 335 geschrieben
werden. Am Ende des Bands kann ein Bandkatalog 336 und
ein Bandtrailer für
die sekundäre
Speichereinrichtung, die das Ende des Bands 332 markiert,
geschrieben werden.
-
Unter
Verwendung einer Datenbank von Bändern
kann die betreffende Information aus einem Backup-Band zurückgeholt
werden. Weil abstrakte Blocksätze
Datenblöcke
umfassen können,
die in irgendeiner Reihenfolge geschrieben werden, kann ein Wiederherstellungsprozeß die Abschnitte
eines abstrakten Blocksatzes, die gerade wiederhergestellt werden,
in irgendeiner Reihenfolge effizient wiederherstellen und schreiben.
Dies versetzt die Speichermanagement Anwendung in die Lage, jedes
der Bänder
zu identifizieren, die Abschnitte eines abstrakten Blocksatzes umfassen,
und diese Bänder
nur einmal anzubringen (und sämtliche
betreffenden Abschnitte davon zu lesen). Natürlich kann das erste Band,
welches angebracht werden soll, das Band sein, welches die Metadaten-Aufzeichnungen für den abstrakten
Blocksatz umfaßt,
der gerade wiederhergestellt wird. Deshalb kann es auch bevorzugt
sein, die Metadaten an einem Ende von sämtlichen Segmenten eines abstrakten
Blocksatzes, der auf das Band die Metadaten haltend geschrieben
wird, aufzuzeichnen – wobei
das Lesen von Metadaten an dem Beginnprozeß einfacher gemacht wird. Dies
ermöglicht
eine Bildung der geeigneten Abbildungstabelle, die voranstehend
beschrieben wurde, damit der Wiederherstellungsprozeß unabhängig von
der Reihenfolge fortschreitet, in der Datenblöcke wiederhergestellt werden.
-
Wegen
der voranstehend beschriebenen Gründe kann das Lesen und Wiederherstellen
von Datenblöcken
innerhalb eines abstrakten Blocksatzes in irgendeiner Reihenfolge
durchgeführt
werden. Wenn Bänder
verwendet werden und als eine Komponente des sekundären Speicherelements,
können infolgedessen
die Bänder
in irgendeiner Reihenfolge sowohl zum Speichern als auch zum Wiederherstellen
von Daten angebracht und entfernt werden. Wenn mehr als ein Bandlaufwerk
in dem sekundären Speicherelement
vorhanden ist, ist infolgedessen in den voranstehend beschriebenen
Ausführungsformen
gezeigt, dass Datenblöcke
während
eines Backups und eines Lesevorgangs während einer Wiederherstellung
und mit einer parallelen Verwendung von mehreren Laufwerken geschrieben
werden können.
-
Unter
Bezugnahme auf 14 kann das parallele Schreiben
von Daten wie folgt ausgeführt
werden. In diesem Beispiel kann das Aktualisieren von Metadaten
(Schritt 147) vollständig
vorher ausgeführt werden.
In diesem Beispiel können
die Metadaten die physikalischen Adressen der Daten, die gerade
in einem primären
Speicherelement gelesen werden, sein. Demzufolge können sämtliche
Metadaten vor dem tatsächlichen
Backup-Prozeß bestimmt
werden. Da dies der Fall ist, können
die Schritte 144, 146 und 147 parallel
ausgeführt
werden. Das heißt,
nachdem die physikalischen Backup-Segmente alle identifiziert und
die Metadaten bestimmt (z. B. im Schritt 142) worden sind,
können
sämtliche
Datenblöcke
parallel gelesen und an mehrere Bänder parallel geschrieben werden.
In einer Ausführungsform
kann das letzte Band (welches zufällig gewählt wird) die Metadaten am
Ende sämtlicher
Datenblöcke,
die ein Teil eines abstrakten Blocksatzes auf diesem Band sind,
speichern.
-
Ein
Beispiel eines parallelen Wiederherstellungs- oder Zurückholungsbetriebs
kann unter Bezugnahme auf 15 beschrieben
werden. Wie voranstehend beschrieben, wird in den Schritten 150–153 die
Abbildung für
die Wiederherstellung des logischen Objekts bestimmt. Wenn diese
Wiederherstellung gerade von einem Band kommt, können die Metadaten für den abstrakten
Blocksatz vorher zurückgeholt
bzw. wiederhergestellt werden. Wie voranstehend beschrieben, nachdem
dies durchgeführt worden
ist, können
die abstrakten Blocksätze
in irgendeiner Reihenfolge wiederhergestellt werden. Demzufolge
können
die abstrakten Blocksätze
auch parallel unter Verwendung von mehreren Bandlaufwerken für eine Wiederherstellung
zurückgeholt
werden. In diesem Fall können
die Schritte 154–158 unter
Verwendung von mehreren Bändern
(oder anderen Medien) zum Zurückholen
von Datenblöcken
des abstrakten Blocksatzes, der gerade wiederhergestellt wird, parallel
ausgeführt
werden.
-
In
den Ausführungsformen,
die virtuelle Kanäle
verwenden, kann ein separater virtueller Kanal für jeden Pfad der parallelen
Pfade für
einen Transfer von Daten hergestellt werden. Zum Beispiel kann ein getrennter
virtueller Kanal für
jedes Bandlaufwerk hergestellt werden. In einer anderen Ausführungsform
kann ein einzelner virtueller Kanal hergestellt werden, aber mehreren
Bandlaufwerken ermöglicht werden,
Daten in diesen virtuellen Kanal zu kanalisieren. Dies kann besonders
vorteilhaft sein, wenn die Geschwindigkeit zum Lesen von Daten aus
dem Bandlaufwerk langsamer als die Möglichkeit zum Transferieren
von Daten von dem sekundären
Speicherknoten an den primären
Speicherknoten ist. Das Zulassen eines parallelen Lesevorgangs von
Bandlaufwerken ermöglicht,
dass die Geschwindigkeit der Wiederherstellung sich der Fähigkeit
der Verbindungen zum Transferieren von Daten und dem primären Speicherelement
zum Empfangen dieser Daten annähert.
-
Während viele
der obigen Ausführungsformen
in bezug auf Backup- und Wiederherstellungsoperationen zwischen
einem primären
Speicherelement und einem sekundären
Speicherelement beschrieben worden sind, weisen viele Aspekte der
Erfindung eine viel breitere Anwendung auf. Lediglich als ein Beispiel
kann ein abstrakter Blocksatz für
irgendeinen Transfer von Daten verwendet werden. Als anderes Beispiel
kann die Anwendung eines sekundären
Speicherknotens größer als
einfach für Backup-
und Wiederherstellungsoperationen sein. Derartige Speicherknoten
können
auch für
hierarchische Speichermanagement-Anwendungen, einen Betrieb von
virtuellen Platten und anderen Anwendungen verwendet werden.
-
Die
verschiedenen voranstehend beschriebenen Verfahren können als
Software auf einer Floppy-Disk, einer Kompakt-Disk oder irgendeiner
anderen Speichereinrichtung zur Verwendung beim Programmieren oder
Steuern eines Computers implementiert werden. Der Computer kann
ein Allzweckcomputer, wie eine Workstation, ein Main-Frame oder
ein Personalcomputer, sein, der die Schritte des offenbarten Prozesses
ausführt
oder Äquivalente
zu den offenbarten Blockdiagrammen implementiert. Die Software kann
auf einer Diskette als ein vollständiges System oder als Verbesserungen
für ein
existierendes System enthalten sein, wobei dem System ermöglicht wird,
die hier beschriebenen Verfahren auszuführen.
-
Nachdem
somit wenigstens illustrative Ausführungsformen der Erfindung
beschrieben worden sind, werden verschiedene Modifikationen und
Verbesserungen für
den Durchschnittsfachmann leicht naheliegen und es ist beabsichtigt,
dass diese innerhalb des Umfangs der Erfindung sind. Demzufolge
ist die voranstehende Beschreibung nur beispielhaft und nicht als
Einschränkung
gedacht. Die Erfindung ist nur wie mit den folgenden Ansprüchen und
deren Äquivalenten
definiert beschränkt.