DE19982999B4 - Computersystem und Verfahren zum Transferieren von Daten - Google Patents

Computersystem und Verfahren zum Transferieren von Daten Download PDF

Info

Publication number
DE19982999B4
DE19982999B4 DE19982999T DE19982999T DE19982999B4 DE 19982999 B4 DE19982999 B4 DE 19982999B4 DE 19982999 T DE19982999 T DE 19982999T DE 19982999 T DE19982999 T DE 19982999T DE 19982999 B4 DE19982999 B4 DE 19982999B4
Authority
DE
Germany
Prior art keywords
data
physical
backup
logical object
primary
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE19982999T
Other languages
English (en)
Other versions
DE19982999T1 (de
Inventor
Yuval Framingham Ofek
Zoran Newton Cakeljic
Haim Bitner
Sharon Galtzur
Ariel Ish-Shalom
Nadav Kedem
Samuel Krikler
Dan Boston Arnon
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EMC Corp
Original Assignee
EMC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by EMC Corp filed Critical EMC Corp
Publication of DE19982999T1 publication Critical patent/DE19982999T1/de
Application granted granted Critical
Publication of DE19982999B4 publication Critical patent/DE19982999B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1456Hardware arrangements for backup
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F2003/0697Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers device management, e.g. handlers, drivers, I/O schedulers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99955Archiving or backup

Abstract

Computersystem, umfassend:
eine Host-Domäne (88) mit einem Host-Computer (80);
eine Speicher-Domäne (89), die mit der Host-Domäne über eine oder mehrere Kommunikationsverbindungen gekoppelt ist, wobei die Speicher-Domäne umfasst:
eine Vielzahl von primären Speichereinrichtungen (82) für die Host-Domäne, wobei zumindest eine der primären Speichereinrichtungen (82) dazu bestimmt ist, dem Host-Computer (80) Speicher bereitzustellen;
eine sekundäre Speichereinrichtung (87, 83), um dem Host-Computer (80) Backup-Speicher bereitzustellen; und
ein Netzwerk (84), separat von jeder der einen oder mehreren Kommunikationsverbindungen, welche die Speicherdomäne (89) mit der Host-Domäne (88) verbinden, welches die Mehrzahl von primären Speichereinrichtungen (82) mit der sekundären Speichereinrichtung koppelt, um einer der primären Speichereinrichtungen Zugriff auf die sekundäre Speichereinrichtung über das Netzwerk zu gestatten, ohne jegliche der einen oder mehreren Kommunikationsverbindungen, welche die Speicherdomäne mit der Host-Domäne koppeln, zu verwenden, so dass eine Kommunikation zwischen der Mehrzahl von primären Speichereinrichtungen und der sekundären Speichereinrichtung über das Netzwerk simultan zu...

Description

  • 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 2022 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 2426 gespeichert. Obwohl in diesem bestimmten Beispiel dreiphysikalische Einrichtungen 2426 und drei Datenträger 2022 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 2426 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 20a20c, 21a21b und 22a22b aneinander angrenzende Speichersegmente innerhalb der jeweiligen physikalischen Einrichtungen 2426 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 2022 gebildet ist) in Aufforderungen, die der Vorgehensweise entsprechen, in der die Daten tatsächlich auf den physikalischen Einrichtungen 2426 gespeichert sind. In der Praxis kann die Array-Managementsoftware 23 als ein Teil eines vereinheitlichten Speichersystems implementiert werden, welches die physikalischen Einrichtungen 2426 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 2022 des Dateisystems in Segmente abgebildet werden, die auf physikalischen Einrichtungen 2426 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 20A20C, 21A21B und 22A22B 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 204206 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 204206 gespeichert ist (wenn die physikalischen Speichereinrichtungen Plattenlaufwerke sind).
  • 2C zeigt ein Beispiel eines logischen Objekts 27, welches sechs Datenblöcke oder logische Blockelemente 27a27f 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 27a27f 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 2426 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 3133 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 3133, 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 34a34d 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 4042 eine Spiegelgruppe 44. In der Spiegelgruppe 44 werden die gesamten Inhalte eines einzigen logischen Datenträgers (HV-A) auf drei verschiedene physikalische Einrichtungen 4042 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 4043, ein Paritätsredundanz-Verfahren. Indem bestimmten Beispiel wird die Paritätsinformation in Segmenten des Speichers auf zwei unterschiedlichen physikalischen Einrichtungen 4243, 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 76a76d 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 76a76d wird durch die Verwendung der Platten-Adapter 75a75d gesteuert. Die Platten-Adapter 75a75d 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 76a76d und das Schreiben darauf durch die Platten-Adapter 75a75d 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 76a76d 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 75a75d 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 75a75d 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 90a90e. 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 90a90e mit einem primären Speicherknoten 92a92c verbunden. In dieser Ausführungsform ist jeder primäre Speicherknoten 92a92c 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 90a90e mit den primären Speicherknoten 92a92c 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 92a92c zuzugreifen.
  • Jeder der primären Speicherknoten 92a92c 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 92a92c 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 9292c 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 92a92c 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 92a92c 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 130a130f (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 130a130f 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 132a132f 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 132a132f 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 132a132f (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 140142 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 154158 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 1316 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 172a172b 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 173a173g. 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 174a174g umfassen, die wiederum denjenigen der physikalischen Spuren 173a173m 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 174a174g 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 204206 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 204206 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 204206.
  • 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 204206 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 114a114d 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 410a410d enthalten, die anzeigen, dass die entsprechenden Datensegmente 411a411d 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 – 271a271e und 271b271f.
  • 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 272a272d 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 272a272d 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 150153 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 154158 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.

Claims (28)

  1. Computersystem, umfassend: eine Host-Domäne (88) mit einem Host-Computer (80); eine Speicher-Domäne (89), die mit der Host-Domäne über eine oder mehrere Kommunikationsverbindungen gekoppelt ist, wobei die Speicher-Domäne umfasst: eine Vielzahl von primären Speichereinrichtungen (82) für die Host-Domäne, wobei zumindest eine der primären Speichereinrichtungen (82) dazu bestimmt ist, dem Host-Computer (80) Speicher bereitzustellen; eine sekundäre Speichereinrichtung (87, 83), um dem Host-Computer (80) Backup-Speicher bereitzustellen; und ein Netzwerk (84), separat von jeder der einen oder mehreren Kommunikationsverbindungen, welche die Speicherdomäne (89) mit der Host-Domäne (88) verbinden, welches die Mehrzahl von primären Speichereinrichtungen (82) mit der sekundären Speichereinrichtung koppelt, um einer der primären Speichereinrichtungen Zugriff auf die sekundäre Speichereinrichtung über das Netzwerk zu gestatten, ohne jegliche der einen oder mehreren Kommunikationsverbindungen, welche die Speicherdomäne mit der Host-Domäne koppeln, zu verwenden, so dass eine Kommunikation zwischen der Mehrzahl von primären Speichereinrichtungen und der sekundären Speichereinrichtung über das Netzwerk simultan zu einer Kommunikation zwischen der Host-Domäne und der Speicherdomäne über die eine oder mehrere Kommunikationsverbindungen auftreten kann.
  2. Computersystem nach Anspruch 1, ferner umfassend eine zusätzliche primäre Speichereinrichtung (80), die direkt mit der sekundären Speichereinrichtung (87, 83) gekoppelt ist.
  3. Computersystem nach Anspruch 1, wobei wenigstens eine der primären Speichereinrichtungen ein gecachetes Plattenfeld (Cached Disk Array) ist.
  4. Computersystem nach Anspruch 1, wobei die sekundäre Speichereinrichtung (87, 83) eine Vielzahl von Ports, die mit dem Netz gekoppelt sind, zum parallelen Senden und Empfangen von Daten im Netz umfasst.
  5. Computersystem nach Anspruch 4, wobei die sekundäre Speichereinrichtung eine Vielzahl von Datenbewegern (271a, 271b, 271e, 271f) umfasst, die jeder mit einem der Ports gekoppelt sind.
  6. Computersystem nach Anspruch 1, dadurch gekennzeichnet, das es eine Vielzahl von Host-Computern beinhaltet, wobei die Vielzahl von Host-Computern heterogen ist.
  7. Computersystem nach Anspruch 1, ferner umfassend: eine Einrichtung zum Transferieren eines ersten logischen Objekts von einer der primären Speichereinrichtungen (82) direkt an die sekundäre Speichereinrichtung (87, 83) über eine erste Verbindung.
  8. Computersystem nach Anspruch 7, ferner umfassend: eine Einrichtung zum Transferieren eines zweiten logischen Objekts von einer der primären Speichereinrichtungen (82) direkt an die sekundäre Speichereinrichtung (87, 83) über eine zweite Verbindung.
  9. Computersystem nach Anspruch 1, ferner umfassend eine Einrichtung zum Bilden eines abstrakten Blocksatzes aus einem logischen Objekt, welches in einer der primären Speichereinrichtungen (82) gespeichert ist.
  10. Computersystem nach Anspruch 1, wobei die sekundäre Speichereinrichtung eine Band-Bibliothekseinheit (95) umfasst.
  11. Computersystem, umfassend: eine heterogene Vielzahl von Host-Computern (90); einschließlich eines ersten Host-Computers (90a), der eine erste Plattform umfasst und eines zweiten Host-Computers (90b), der eine zweite, zur ersten Plattform unterschiedliche Plattform umfasst, eine Vielzahl von primären Speichereinrichtungen (92) zum Empfangen und Speichern von Daten, wobei jede primäre Speichereinrichtung zu wenigstens einem der Host-Computer gehört; eine sekundäre Speichereinrichtung (95), die mit zumindest einigen der primären Speichereinrichtungen gekoppelt ist, wobei die sekundäre Speichereinrichtung (95) konfiguriert ist, um Backup-Daten von jedem der ersten und zweiten Host-Computer zu empfangen und um zu speichern, und einen einzelnen Backup-Controller (94), der zum Sichern von aus sowohl dem ersten als auch dem zweiten Host-Computern gespeicherten Daten auf der Mehrzahl von primären Speichereinrichtungen auf der zweiten Speichereinrichtung in der Lage ist, wobei die aus dem ersten Host-Computer auf der Mehrzahl von primären Speichereinrichtungen gespeicherten Daten ein erstes Format aufweisen, das von der ersten Plattform etabliert ist, und die aus dem zweiten Host-Computer auf der Mehrzahl von primären Speichereinrichtungen gespeicherten Daten ein zweites Format aufweisen, das von der zweiten Plattform etabliert worden ist.
  12. Computersystem nach Anspruch 11, wobei wenigstens eine der primären Speichereinrichtungen (82) ein gecachetes Plattenarray (Cached Disk Array) ist.
  13. Computersystem nach Anspruch 11, ferner umfassend eine Einrichtung zum Bilden eines abstrakten Blocksatzes aus einem logischen Objekt, welches in einer der primären Speichereinrichtungen (82) gespeichert ist.
  14. Computersystem nach Anspruch 11, wobei die sekundäre Speichereinrichtung eine Vielzahl von Ports zum parallelen Senden und Empfangen von Daten umfasst.
  15. Computersystem nach Anspruch 14, wobei die sekundäre Speichereinrichtung eine Vielzahl von Datenbewegern (271a, 271b, 271e, 271f), die jeder mit einem der Ports gekoppelt sind, umfasst.
  16. Computersystem nach Anspruch 11, ferner umfassend: eine Einrichtung zum Transferieren eines ersten logischen Objekts von einer der primären Speichereinrichtungen (82) direkt an die sekundäre Speichereinrichtung (87, 83) über eine erste Verbindung.
  17. Computersystem nach Anspruch 16, ferner umfassend: eine Einrichtung zum Transferieren eines zweiten logischen Objekts von einer der primären Speichereinrichtungen (82) direkt an die sekundäre Speichereinrichtung (87, 83) über eine zweite Verbindung.
  18. Computersystem nach Anspruch 11, wobei die sekundäre Speichereinrichtung eine Bandbibliothekseinheit (95) umfasst.
  19. Verfahren zum Transferieren von Daten von zumindest einem aus einer Vielzahl von primären Speicherelementen (82) an ein sekundäres Speicherelement (87, 83, 112, 113), wobei die Vielzahl an primären Speicherelementen (82) ein primäres Speicherelement (82, 111) umfasst, das als primärer Nicht-Backup-Speicher für einen Host-Computer (80, 110) dient, der vom primären Speicherelement (82, 111) separat und mit ihm gekoppelt ist und das Verfahren die folgenden Schritte umfasst: automatisches Herstellen (120) einer ersten Verbindung über ein Netzwerk (84) von einem ersten primären Speicherelement (82, 111) zu dem sekundären Speicherelement, über die ein erstes logisches Objekt an das sekundäre Speicherelement transferiert werden kann, wobei die erste Verbindung durch das erste primäre Speicherelement (82, 111), und/oder das sekundäre Speicherelement (87, 83, 112, 113) bestimmt wird; und Transferieren (124) des ersten logischen Objekts aus dem ersten der primären Speicherelement direkt an das sekundäre Speicherelement über die erste Verbindung.
  20. Verfahren nach Anspruch 19, ferner umfassend die folgenden Schritte: automatisches Herstellen einer zweiten Verbindung von einem zweiten der primären Speicherelemente über das Netzwerk zu dem sekundären Speicherelement zum Transferieren eines zweiten logischen Objekts an das sekundäre Speicherelement; und Transferieren des zweiten logischen Objekts aus dem zweiten der primären Speicherelemente direkt an das sekundäre Speicherelement über die zweite Verbindung.
  21. Verfahren nach Anspruch 20, wobei der Schritt des Transferierens des ersten logischen Objekts und der Schritt des Transferierens des zweiten logischen Objekts parallel ausgeführt werden.
  22. Verfahren nach Anspruch 20, 24, 25, wobei das erste logische Objekt und das zweite logische Objekt von heterogenen Betriebssystemen erzeugt wurden.
  23. Verfahren nach Anspruch 19, wobei der Schritt zum automatischen Herstellen einen Schritt des Herstellens eines Pfads durch ein Netz (84) umfasst.
  24. Verfahren nach Anspruch 19, wobei das sekundäre Speicherelement eine Bandbibliothekseinheit (113) umfasst.
  25. Verfahren nach Anspruch 19, wobei das sekundäre Speicherelement eine Vielzahl von Datenbewegern (271a, 271b, 271e, 271f) umfasst; und der Schritt des automatischen Herstellens einen Schritt des Auswählen wenigstens eines der Datenbeweger umfasst.
  26. Computersystem nach Anspruch 1, wobei das Netzwerk mit der Vielzahl von primären Speichereinrichtungen und mit der sekundären Speichereinrichtung gekoppelt ist, um einer der primären Speichereinrichtungen Zugriff auf die sekundäre Speichereinrichtung über das Netzwerk zu gestatten, ohne die Hostdomain zu involvieren.
  27. Computersystem nach Anspruch 11, wobei die sekundäre Speichereinrichtung dafür konfiguriert ist, die Backupdaten von zumindest einer der primären Speichereinrichtungen zu empfangen, ohne einen oder mehrere der Hostcomputer zu involvieren.
  28. Verfahren nach Anspruch 19, wobei der Schritt des Transferierens des ersten logischen Objektes ein Transferieren des ersten logischen Objektes aus dem ersten der primären Speicherelemente direkt an der sekundäre Speicherelement beinhaltet, ohne den Hostcomputer zu involvieren.
DE19982999T 1998-12-31 1999-12-13 Computersystem und Verfahren zum Transferieren von Daten Expired - Fee Related DE19982999B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/224,637 US7107395B1 (en) 1998-12-31 1998-12-31 Apparatus and methods for operating a computer storage system
US09/224,637 1998-12-31
PCT/US1999/029499 WO2000041093A2 (en) 1998-12-31 1999-12-13 Apparatus and method for performing backup from primary storage devices to one secondary storage device over a network

Publications (2)

Publication Number Publication Date
DE19982999T1 DE19982999T1 (de) 2001-08-09
DE19982999B4 true DE19982999B4 (de) 2008-11-06

Family

ID=22841523

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19982999T Expired - Fee Related DE19982999B4 (de) 1998-12-31 1999-12-13 Computersystem und Verfahren zum Transferieren von Daten

Country Status (5)

Country Link
US (2) US7107395B1 (de)
JP (2) JP2003518659A (de)
DE (1) DE19982999B4 (de)
GB (1) GB2348994B (de)
WO (1) WO2000041093A2 (de)

Families Citing this family (171)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6418478B1 (en) 1997-10-30 2002-07-09 Commvault Systems, Inc. Pipelined high speed data transfer mechanism
US7581077B2 (en) 1997-10-30 2009-08-25 Commvault Systems, Inc. Method and system for transferring data in a storage operation
US6654772B1 (en) * 1999-04-28 2003-11-25 Emc Corporation Multi-volume extent based file system
US7035880B1 (en) 1999-07-14 2006-04-25 Commvault Systems, Inc. Modular backup and retrieval system used in conjunction with a storage area network
US7389311B1 (en) 1999-07-15 2008-06-17 Commvault Systems, Inc. Modular backup and retrieval system
US7395282B1 (en) 1999-07-15 2008-07-01 Commvault Systems, Inc. Hierarchical backup and retrieval system
US7734591B1 (en) * 1999-08-16 2010-06-08 Netapp, Inc. Coherent device to device data replication
US6751658B1 (en) * 1999-10-18 2004-06-15 Apple Computer, Inc. Providing a reliable operating system for clients of a net-booted environment
TW454120B (en) * 1999-11-11 2001-09-11 Miralink Corp Flexible remote data mirroring
US7155481B2 (en) 2000-01-31 2006-12-26 Commvault Systems, Inc. Email attachment management in a computer system
US7003641B2 (en) 2000-01-31 2006-02-21 Commvault Systems, Inc. Logical view with granular access to exchange data managed by a modular data and storage management system
US6658436B2 (en) 2000-01-31 2003-12-02 Commvault Systems, Inc. Logical view and access to data managed by a modular data and storage management system
GB2372849B (en) * 2001-02-28 2003-05-07 3Com Corp Method for determining master or slave mode in a storage server subnet
US7603518B2 (en) 2005-12-19 2009-10-13 Commvault Systems, Inc. System and method for improved media identification in a storage device
US8346733B2 (en) 2006-12-22 2013-01-01 Commvault Systems, Inc. Systems and methods of media management, such as management of media to and from a media storage library
CN1421854A (zh) * 2001-11-28 2003-06-04 劲永国际股份有限公司 用于硬盘及固态盘上对资料加密保护资料安全性的方法
US7143307B1 (en) * 2002-03-15 2006-11-28 Network Appliance, Inc. Remote disaster recovery and data migration using virtual appliance migration
US7165258B1 (en) 2002-04-22 2007-01-16 Cisco Technology, Inc. SCSI-based storage area network having a SCSI router that routes traffic between SCSI and IP networks
US6944789B2 (en) * 2002-06-11 2005-09-13 Hitachi, Ltd. Method and apparatus for data backup and recovery
US7103727B2 (en) * 2002-07-30 2006-09-05 Hitachi, Ltd. Storage system for multi-site remote copy
GB2410106B (en) 2002-09-09 2006-09-13 Commvault Systems Inc Dynamic storage device pooling in a computer system
GB2409553B (en) 2002-09-16 2007-04-04 Commvault Systems Inc System and method for optimizing storage operations
JP2004110367A (ja) * 2002-09-18 2004-04-08 Hitachi Ltd 記憶装置システムの制御方法、記憶制御装置、および記憶装置システム
US7263593B2 (en) * 2002-11-25 2007-08-28 Hitachi, Ltd. Virtualization controller and data transfer control method
JP2004220450A (ja) * 2003-01-16 2004-08-05 Hitachi Ltd ストレージ装置、その導入方法、及びその導入プログラム
JP4060197B2 (ja) * 2003-01-28 2008-03-12 株式会社リコー 画像形成装置、制御方法及び該方法を実行するためのプログラムを格納したコンピュータ読み取り可能な記録媒体
US7236987B1 (en) 2003-02-28 2007-06-26 Sun Microsystems Inc. Systems and methods for providing a storage virtualization environment
US7383381B1 (en) 2003-02-28 2008-06-03 Sun Microsystems, Inc. Systems and methods for configuring a storage virtualization environment
US7290168B1 (en) 2003-02-28 2007-10-30 Sun Microsystems, Inc. Systems and methods for providing a multi-path network switch system
US7447939B1 (en) * 2003-02-28 2008-11-04 Sun Microsystems, Inc. Systems and methods for performing quiescence in a storage virtualization environment
US7526527B1 (en) * 2003-03-31 2009-04-28 Cisco Technology, Inc. Storage area network interconnect server
WO2004090789A2 (en) 2003-04-03 2004-10-21 Commvault Systems, Inc. System and method for extended media retention
AU2004227949B9 (en) 2003-04-03 2010-07-22 Commvault Systems, Inc. System and method for dynamically performing storage operations in a computer network
US7181476B2 (en) * 2003-04-30 2007-02-20 Oracle International Corporation Flashback database
US7454569B2 (en) 2003-06-25 2008-11-18 Commvault Systems, Inc. Hierarchical system and method for performing storage operations in a computer network
US8095511B2 (en) * 2003-06-30 2012-01-10 Microsoft Corporation Database data recovery system and method
CN100568352C (zh) * 2003-07-19 2009-12-09 汤姆森特许公司 用于处理数据库的方法
JP2005056200A (ja) * 2003-08-05 2005-03-03 Hitachi Ltd データ管理方法、ディスク記憶装置およびディスク記憶システム
JP4021823B2 (ja) * 2003-09-01 2007-12-12 株式会社日立製作所 リモートコピーシステム及びリモートコピーの方法
JP4386694B2 (ja) * 2003-09-16 2009-12-16 株式会社日立製作所 記憶システム及び記憶制御装置
JP4598387B2 (ja) * 2003-09-17 2010-12-15 株式会社日立製作所 記憶システム
US7219201B2 (en) * 2003-09-17 2007-05-15 Hitachi, Ltd. Remote storage disk control device and method for controlling the same
JP2005108098A (ja) * 2003-10-01 2005-04-21 Hitachi Ltd データi/o装置及びデータi/o装置の制御方法
JP4384470B2 (ja) * 2003-10-21 2009-12-16 株式会社日立製作所 記憶装置の管理方法
CA2544063C (en) 2003-11-13 2013-09-10 Commvault Systems, Inc. System and method for combining data streams in pilelined storage operations in a storage network
US7529782B2 (en) 2003-11-13 2009-05-05 Commvault Systems, Inc. System and method for performing a snapshot and for restoring data
WO2005050381A2 (en) 2003-11-13 2005-06-02 Commvault Systems, Inc. Systems and methods for performing storage operations using network attached storage
JP2005157521A (ja) 2003-11-21 2005-06-16 Hitachi Ltd 遠隔記憶装置の状態情報監視方法および記憶サブシステム
JP2005202893A (ja) * 2004-01-19 2005-07-28 Hitachi Ltd 記憶デバイス制御装置、ストレージシステム、プログラムを記録した記録媒体、情報処理装置、及びストレージシステムの制御方法
US8818950B2 (en) * 2004-01-22 2014-08-26 Symantec Corporation Method and apparatus for localized protected imaging of a file system
JP2005275494A (ja) * 2004-03-23 2005-10-06 Hitachi Ltd ストレージシステム及びストレージシステムのリモートコピー方法
JP4456909B2 (ja) * 2004-03-29 2010-04-28 株式会社日立製作所 バックアップ方法、ストレージシステム及びそのプログラム
JP4421385B2 (ja) * 2004-06-09 2010-02-24 株式会社日立製作所 計算機システム
US7353242B2 (en) 2004-07-09 2008-04-01 Hitachi, Ltd. File server for long term data archive
JP4646574B2 (ja) 2004-08-30 2011-03-09 株式会社日立製作所 データ処理システム
JP4377790B2 (ja) * 2004-09-30 2009-12-02 株式会社日立製作所 リモートコピーシステムおよびリモートコピー方法
US20060101439A1 (en) * 2004-10-25 2006-05-11 Microsoft Corporation Memory management in a managed code execution environment
JP2006127028A (ja) * 2004-10-27 2006-05-18 Hitachi Ltd 記憶システム及び記憶制御装置
US7765369B1 (en) 2004-11-05 2010-07-27 Commvault Systems, Inc. Method and system for selectively deleting stored data
US7490207B2 (en) 2004-11-08 2009-02-10 Commvault Systems, Inc. System and method for performing auxillary storage operations
US7444360B2 (en) * 2004-11-17 2008-10-28 International Business Machines Corporation Method, system, and program for storing and using metadata in multiple storage locations
US7535832B2 (en) * 2004-11-22 2009-05-19 International Business Machines Corporation Apparatus and method to set the signaling rate of a switch domain disposed within an information storage and retrieval system
US7590777B2 (en) * 2004-12-10 2009-09-15 International Business Machines Corporation Transferring data between system and storage in a shared buffer
US7512135B2 (en) * 2004-12-10 2009-03-31 International Business Machines Corporation Method for transferring data among a logical layer, physical layer, and storage device
US8918366B2 (en) 2005-02-07 2014-12-23 Mimosa Systems, Inc. Synthetic full copies of data and dynamic bulk-to-brick transformation
US8271436B2 (en) * 2005-02-07 2012-09-18 Mimosa Systems, Inc. Retro-fitting synthetic full copies of data
US8799206B2 (en) 2005-02-07 2014-08-05 Mimosa Systems, Inc. Dynamic bulk-to-brick transformation of data
US8812433B2 (en) 2005-02-07 2014-08-19 Mimosa Systems, Inc. Dynamic bulk-to-brick transformation of data
WO2006089092A2 (en) * 2005-02-16 2006-08-24 Ziyad Dahbour Hierarchal data management
US7818350B2 (en) 2005-02-28 2010-10-19 Yahoo! Inc. System and method for creating a collaborative playlist
US20070083380A1 (en) * 2005-10-10 2007-04-12 Yahoo! Inc. Data container and set of metadata for association with a media item and composite media items
US7661028B2 (en) 2005-12-19 2010-02-09 Commvault Systems, Inc. Rolling cache configuration for a data replication system
US7651593B2 (en) 2005-12-19 2010-01-26 Commvault Systems, Inc. Systems and methods for performing data replication
US8655850B2 (en) 2005-12-19 2014-02-18 Commvault Systems, Inc. Systems and methods for resynchronizing information
US7636743B2 (en) 2005-12-19 2009-12-22 Commvault Systems, Inc. Pathname translation in a data replication system
US7606844B2 (en) 2005-12-19 2009-10-20 Commvault Systems, Inc. System and method for performing replication copy storage operations
US7962709B2 (en) 2005-12-19 2011-06-14 Commvault Systems, Inc. Network redirector systems and methods for performing data replication
US7617262B2 (en) 2005-12-19 2009-11-10 Commvault Systems, Inc. Systems and methods for monitoring application data in a data replication system
JP4842720B2 (ja) * 2006-06-29 2011-12-21 株式会社日立製作所 ストレージシステム及びデータ複製方法
US8726242B2 (en) 2006-07-27 2014-05-13 Commvault Systems, Inc. Systems and methods for continuous data replication
US7539783B2 (en) 2006-09-22 2009-05-26 Commvault Systems, Inc. Systems and methods of media management, such as management of media to and from a media storage library, including removable media
US8312323B2 (en) 2006-12-22 2012-11-13 Commvault Systems, Inc. Systems and methods for remote monitoring in a computer network and reporting a failed migration operation without accessing the data being moved
US7831566B2 (en) 2006-12-22 2010-11-09 Commvault Systems, Inc. Systems and methods of hierarchical storage management, such as global management of storage operations
US8719809B2 (en) 2006-12-22 2014-05-06 Commvault Systems, Inc. Point in time rollback and un-installation of software
US7734954B2 (en) * 2007-01-03 2010-06-08 International Business Machines Corporation Method, computer program product, and system for providing a multi-tiered snapshot of virtual disks
US8290808B2 (en) 2007-03-09 2012-10-16 Commvault Systems, Inc. System and method for automating customer-validated statement of work for a data storage environment
JP2008276379A (ja) * 2007-04-26 2008-11-13 Hitachi Ltd 記憶システム及びパス切替え方法
US8706976B2 (en) 2007-08-30 2014-04-22 Commvault Systems, Inc. Parallel access virtual tape library and drives
US8140637B2 (en) * 2007-10-25 2012-03-20 Hewlett-Packard Development Company, L.P. Communicating chunks between devices
GB2466579B (en) 2007-10-25 2012-12-26 Hewlett Packard Development Co Data processing apparatus and method of deduplicating data
US8838541B2 (en) * 2007-10-25 2014-09-16 Hewlett-Packard Development Company, L.P. Data processing apparatus and method of processing data
US8484162B2 (en) 2008-06-24 2013-07-09 Commvault Systems, Inc. De-duplication systems and methods for application-specific data
US8615495B1 (en) * 2008-08-13 2013-12-24 Symantec Corporation Techniques for providing a differential backup from a storage image
US20100070466A1 (en) * 2008-09-15 2010-03-18 Anand Prahlad Data transfer techniques within data storage devices, such as network attached storage performing data migration
US8990161B1 (en) * 2008-09-30 2015-03-24 Emc Corporation System and method for single segment backup
US8204859B2 (en) 2008-12-10 2012-06-19 Commvault Systems, Inc. Systems and methods for managing replicated database data
US9495382B2 (en) 2008-12-10 2016-11-15 Commvault Systems, Inc. Systems and methods for performing discrete data replication
US8930306B1 (en) 2009-07-08 2015-01-06 Commvault Systems, Inc. Synchronized data deduplication
WO2011036015A1 (en) 2009-09-24 2011-03-31 International Business Machines Corporation Data storage using bitmaps
CN102511036B (zh) 2009-09-25 2015-09-30 国际商业机器公司 数据存储
US8527749B2 (en) * 2009-11-11 2013-09-03 International Business Machines Corporation User device, computer program product and computer system for system for secure network storage
US8504517B2 (en) 2010-03-29 2013-08-06 Commvault Systems, Inc. Systems and methods for selective data replication
US8504515B2 (en) 2010-03-30 2013-08-06 Commvault Systems, Inc. Stubbing systems and methods in a data replication environment
US8725698B2 (en) 2010-03-30 2014-05-13 Commvault Systems, Inc. Stub file prioritization in a data replication system
US8352422B2 (en) 2010-03-30 2013-01-08 Commvault Systems, Inc. Data restore systems and methods in a replication environment
US8489656B2 (en) 2010-05-28 2013-07-16 Commvault Systems, Inc. Systems and methods for performing data replication
US20120054315A1 (en) * 2010-08-31 2012-03-01 Cisco Technology, Inc. System and method for providing virtualized file system management for a memory card in a digital environment
US8578109B2 (en) 2010-09-30 2013-11-05 Commvault Systems, Inc. Systems and methods for retaining and using data block signatures in data protection operations
US8364652B2 (en) 2010-09-30 2013-01-29 Commvault Systems, Inc. Content aligned block-based deduplication
US9244779B2 (en) 2010-09-30 2016-01-26 Commvault Systems, Inc. Data recovery operations, such as recovery from modified network data management protocol data
US9020900B2 (en) 2010-12-14 2015-04-28 Commvault Systems, Inc. Distributed deduplicated storage system
US20120150818A1 (en) 2010-12-14 2012-06-14 Commvault Systems, Inc. Client-side repository in a networked deduplicated storage system
US9021198B1 (en) 2011-01-20 2015-04-28 Commvault Systems, Inc. System and method for sharing SAN storage
US8494674B2 (en) 2011-08-24 2013-07-23 International Business Machines Corporation Fast-access self-repairing tape library using mobile robots
CA2841104C (en) * 2011-09-07 2019-06-04 Orega Inc. File management sysyetm and file management method
US8972678B2 (en) 2011-12-21 2015-03-03 Emc Corporation Efficient backup replication
US9298715B2 (en) 2012-03-07 2016-03-29 Commvault Systems, Inc. Data storage system utilizing proxy device for storage operations
US9471578B2 (en) 2012-03-07 2016-10-18 Commvault Systems, Inc. Data storage system utilizing proxy device for storage operations
EP2712450A4 (de) 2012-03-30 2015-09-16 Commvault Systems Inc Informatonsverwaltung von daten mobiler vorrichtungen
US9342537B2 (en) 2012-04-23 2016-05-17 Commvault Systems, Inc. Integrated snapshot interface for a data storage system
US9218376B2 (en) 2012-06-13 2015-12-22 Commvault Systems, Inc. Intelligent data sourcing in a networked storage system
US10379988B2 (en) 2012-12-21 2019-08-13 Commvault Systems, Inc. Systems and methods for performance monitoring
US9069799B2 (en) 2012-12-27 2015-06-30 Commvault Systems, Inc. Restoration of centralized data storage manager, such as data storage manager in a hierarchical data storage system
US9430491B2 (en) 2013-01-11 2016-08-30 Commvault Systems, Inc. Request-based data synchronization management
US9633033B2 (en) 2013-01-11 2017-04-25 Commvault Systems, Inc. High availability distributed deduplicated storage system
US9886346B2 (en) 2013-01-11 2018-02-06 Commvault Systems, Inc. Single snapshot for multiple agents
US9263082B2 (en) 2013-01-30 2016-02-16 International Business Machines Corporation High density hybrid storage system
US20140244801A1 (en) * 2013-02-28 2014-08-28 Apple Inc. Network-based distribution system supporting transfer of application products
JP6005010B2 (ja) * 2013-08-12 2016-10-12 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 複数のテープメディアに1つのファイルをスパニングする方法、ストレージ・システム、およびプログラム
US9753812B2 (en) 2014-01-24 2017-09-05 Commvault Systems, Inc. Generating mapping information for single snapshot for multiple applications
US9495251B2 (en) 2014-01-24 2016-11-15 Commvault Systems, Inc. Snapshot readiness checking and reporting
US9639426B2 (en) 2014-01-24 2017-05-02 Commvault Systems, Inc. Single snapshot for multiple applications
US9632874B2 (en) 2014-01-24 2017-04-25 Commvault Systems, Inc. Database application backup in single snapshot for multiple applications
US10380072B2 (en) 2014-03-17 2019-08-13 Commvault Systems, Inc. Managing deletions from a deduplication database
US9852026B2 (en) 2014-08-06 2017-12-26 Commvault Systems, Inc. Efficient application recovery in an information management system based on a pseudo-storage-device driver
US11249858B2 (en) 2014-08-06 2022-02-15 Commvault Systems, Inc. Point-in-time backups of a production application made accessible over fibre channel and/or ISCSI as data sources to a remote application by representing the backups as pseudo-disks operating apart from the production application and its host
US10042716B2 (en) 2014-09-03 2018-08-07 Commvault Systems, Inc. Consolidated processing of storage-array commands using a forwarder media agent in conjunction with a snapshot-control media agent
US9774672B2 (en) 2014-09-03 2017-09-26 Commvault Systems, Inc. Consolidated processing of storage-array commands by a snapshot-control media agent
US9558078B2 (en) 2014-10-28 2017-01-31 Microsoft Technology Licensing, Llc Point in time database restore from storage snapshots
US9575673B2 (en) 2014-10-29 2017-02-21 Commvault Systems, Inc. Accessing a file system using tiered deduplication
US9648105B2 (en) 2014-11-14 2017-05-09 Commvault Systems, Inc. Unified snapshot storage management, using an enhanced storage manager and enhanced media agents
US9448731B2 (en) 2014-11-14 2016-09-20 Commvault Systems, Inc. Unified snapshot storage management
US9898213B2 (en) 2015-01-23 2018-02-20 Commvault Systems, Inc. Scalable auxiliary copy processing using media agent resources
US9904481B2 (en) 2015-01-23 2018-02-27 Commvault Systems, Inc. Scalable auxiliary copy processing in a storage management system using media agent resources
US9928144B2 (en) 2015-03-30 2018-03-27 Commvault Systems, Inc. Storage management of data using an open-archive architecture, including streamlined access to primary data originally stored on network-attached storage and archived to secondary storage
US10339106B2 (en) 2015-04-09 2019-07-02 Commvault Systems, Inc. Highly reusable deduplication database after disaster recovery
US20160350391A1 (en) 2015-05-26 2016-12-01 Commvault Systems, Inc. Replication using deduplicated secondary copy data
US9766825B2 (en) 2015-07-22 2017-09-19 Commvault Systems, Inc. Browse and restore for block-level backups
US10101913B2 (en) 2015-09-02 2018-10-16 Commvault Systems, Inc. Migrating data to disk without interrupting running backup operations
KR20170074264A (ko) * 2015-12-21 2017-06-30 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US20170193003A1 (en) 2015-12-30 2017-07-06 Commvault Systems, Inc. Redundant and robust distributed deduplication data storage system
US10296368B2 (en) 2016-03-09 2019-05-21 Commvault Systems, Inc. Hypervisor-independent block-level live browse for access to backed up virtual machine (VM) data and hypervisor-free file-level recovery (block-level pseudo-mount)
US10503753B2 (en) 2016-03-10 2019-12-10 Commvault Systems, Inc. Snapshot replication operations based on incremental block change tracking
CN107707337A (zh) * 2016-08-09 2018-02-16 联发科技股份有限公司 重排方法及其装置
US10740193B2 (en) 2017-02-27 2020-08-11 Commvault Systems, Inc. Hypervisor-independent reference copies of virtual machine payload data based on block-level pseudo-mount
US11010261B2 (en) 2017-03-31 2021-05-18 Commvault Systems, Inc. Dynamically allocating streams during restoration of data
US10664352B2 (en) 2017-06-14 2020-05-26 Commvault Systems, Inc. Live browsing of backed up data residing on cloned disks
US10742735B2 (en) 2017-12-12 2020-08-11 Commvault Systems, Inc. Enhanced network attached storage (NAS) services interfacing to cloud storage
US10732885B2 (en) 2018-02-14 2020-08-04 Commvault Systems, Inc. Block-level live browsing and private writable snapshots using an ISCSI server
US11010258B2 (en) 2018-11-27 2021-05-18 Commvault Systems, Inc. Generating backup copies through interoperability between components of a data storage management system and appliances for data storage and deduplication
US11698727B2 (en) 2018-12-14 2023-07-11 Commvault Systems, Inc. Performing secondary copy operations based on deduplication performance
US20200327017A1 (en) 2019-04-10 2020-10-15 Commvault Systems, Inc. Restore using deduplicated secondary copy data
US11494338B2 (en) * 2019-04-26 2022-11-08 International Business Machines Corporation Caching files in a directory
US11463264B2 (en) 2019-05-08 2022-10-04 Commvault Systems, Inc. Use of data block signatures for monitoring in an information management system
US11042318B2 (en) 2019-07-29 2021-06-22 Commvault Systems, Inc. Block-level data replication
US11327802B2 (en) * 2019-07-31 2022-05-10 Microsoft Technology Licensing, Llc System and method for exporting logical object metadata
US20210173811A1 (en) 2019-12-04 2021-06-10 Commvault Systems, Inc. Optimizing the restoration of deduplicated data stored in multi-node replicated file systems
US11687424B2 (en) 2020-05-28 2023-06-27 Commvault Systems, Inc. Automated media agent state management
US11803317B2 (en) * 2020-12-15 2023-10-31 International Business Machines Corporation Interrupted replicated write recognition
US11593223B1 (en) 2021-09-02 2023-02-28 Commvault Systems, Inc. Using resource pool administrative entities in a data storage management system to provide shared infrastructure to tenants
US11809285B2 (en) 2022-02-09 2023-11-07 Commvault Systems, Inc. Protecting a management database of a data storage management system to meet a recovery point objective (RPO)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0845906A2 (de) * 1996-12-02 1998-06-03 International Business Machines Corporation Geteiltes Ring Audio/Videoserversystem

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5283875A (en) * 1990-04-13 1994-02-01 Digital Equipment Corporation Method and apparatus for optimizing prefetch caching by reverse ordering of logical blocks
DE69126066T2 (de) 1990-06-29 1997-09-25 Oracle Corp Verfahren und Gerät zur Optimierung des Logbuchaufhebungsgebrauchs
US5544347A (en) * 1990-09-24 1996-08-06 Emc Corporation Data storage system controlled remote data mirroring with respectively maintained data indices
JPH05241933A (ja) * 1992-02-28 1993-09-21 Mitsubishi Electric Corp 分散データ管理システムのファイル保全方式
US5542909A (en) * 1992-06-12 1996-08-06 Camp; Gregory T. Water jet appliance
US5555371A (en) 1992-12-17 1996-09-10 International Business Machines Corporation Data backup copying with delayed directory updating and reduced numbers of DASD accesses at a back up site using a log structured array data storage
JP3130536B2 (ja) * 1993-01-21 2001-01-31 アップル コンピューター インコーポレーテッド 多数のネットワークされたコンピュータ記憶装置からデータを転送し記憶する装置ならびに方法
EP0706686B1 (de) 1993-07-01 1998-10-14 Legent Corporation Anordnung und verfahren zur verteilten datenverwaltung in vernetzten rechnersystemen
US5535381A (en) * 1993-07-22 1996-07-09 Data General Corporation Apparatus and method for copying and restoring disk files
US6154850A (en) * 1993-11-01 2000-11-28 Beaufort River, Inc. Data storage system and method
JPH07191899A (ja) * 1993-12-27 1995-07-28 Hitachi Ltd ファイル転送方法、データアクセス方法およびデータ書き込み方法
US5873103A (en) 1994-02-25 1999-02-16 Kodak Limited Data storage management for network interconnected processors using transferrable placeholders
US5673381A (en) * 1994-05-27 1997-09-30 Cheyenne Software International Sales Corp. System and parallel streaming and data stripping to back-up a network
US5493649A (en) 1994-06-21 1996-02-20 Microsoft Corporation Detecting corruption in a computer program at execution time using a checksum
US5799147A (en) 1994-10-19 1998-08-25 Shannon; John P. Computer recovery backup method
US5574906A (en) 1994-10-24 1996-11-12 International Business Machines Corporation System and method for reducing storage requirement in backup subsystems utilizing segmented compression and differencing
JP3371044B2 (ja) * 1994-12-28 2003-01-27 株式会社日立製作所 ディスクアレイのための領域割り当て方法およびディスクアレイアクセス方法
US5799304A (en) 1995-01-03 1998-08-25 Intel Corporation Information evaluation
US5680580A (en) * 1995-02-28 1997-10-21 International Business Machines Corporation Remote copy system for setting request interconnect bit in each adapter within storage controller and initiating request connect frame in response to the setting bit
US5765200A (en) * 1995-06-07 1998-06-09 International Business Machines Corporation Logical positioning within a storage device by a storage controller
US5953351A (en) 1995-09-15 1999-09-14 International Business Machines Corporation Method and apparatus for indicating uncorrectable data errors
JP3856855B2 (ja) 1995-10-06 2006-12-13 三菱電機株式会社 差分バックアップ方式
US5790775A (en) 1995-10-23 1998-08-04 Digital Equipment Corporation Host transparent storage controller failover/failback of SCSI targets and associated units
US5778395A (en) 1995-10-23 1998-07-07 Stac, Inc. System for backing up files from disk volumes on multiple nodes of a computer network
EP0812513B1 (de) 1995-12-01 2000-10-04 Koninklijke Philips Electronics N.V. Datenleseverfahren und -system für eine anzahl von verwendern
US5848241A (en) * 1996-01-11 1998-12-08 Openframe Corporation Ltd. Resource sharing facility functions as a controller for secondary storage device and is accessible to all computers via inter system links
US5852715A (en) * 1996-03-19 1998-12-22 Emc Corporation System for currently updating database by one host and reading the database by different host for the purpose of implementing decision support functions
US5819310A (en) 1996-05-24 1998-10-06 Emc Corporation Method and apparatus for reading data from mirrored logical volumes on physical disk drives
US5864837A (en) 1996-06-12 1999-01-26 Unisys Corporation Methods and apparatus for efficient caching in a distributed environment
US5835954A (en) 1996-09-12 1998-11-10 International Business Machines Corporation Target DASD controlled data migration move
US5926649A (en) 1996-10-23 1999-07-20 Industrial Technology Research Institute Media server for storage and retrieval of voluminous multimedia data
JP3563907B2 (ja) * 1997-01-30 2004-09-08 富士通株式会社 並列計算機
US5925119A (en) * 1997-03-28 1999-07-20 Quantum Corporation Computer architecture for automated storage library
US6073209A (en) * 1997-03-31 2000-06-06 Ark Research Corporation Data storage controller providing multiple hosts with access to multiple storage subsystems
US6000020A (en) * 1997-04-01 1999-12-07 Gadzoox Networks, Inc. Hierarchical storage management from a mirrored file system on a storage network segmented by a bridge
US5950230A (en) 1997-05-28 1999-09-07 International Business Machines Corporation RAID array configuration synchronization at power on
US6061822A (en) * 1997-06-23 2000-05-09 Micron Electronics, Inc. System and method for providing a fast and efficient comparison of cyclic redundancy check (CRC/checks sum) values of two mirrored disks
GB9721637D0 (en) 1997-10-14 1997-12-10 Int Computers Ltd Remote backup system
US6065062A (en) * 1997-12-10 2000-05-16 Cisco Systems, Inc. Backup peer pool for a routed computer network
US6349356B2 (en) * 1997-12-10 2002-02-19 International Business Machines Corporation Host-available device block map for optimized file retrieval from serpentine tape drives
US6085266A (en) * 1997-12-12 2000-07-04 Unisys Corporation System for unwrapping a single file from a compact disk for utilization by various computer platforms
US6052341A (en) * 1997-12-16 2000-04-18 International Business Machines Corporation Device element allocation manager and method for a multi-library system for multiple host connections
US6023710A (en) 1997-12-23 2000-02-08 Microsoft Corporation System and method for long-term administration of archival storage
US6047294A (en) 1998-03-31 2000-04-04 Emc Corp Logical restore from a physical backup in a computer storage system
US6157991A (en) 1998-04-01 2000-12-05 Emc Corporation Method and apparatus for asynchronously updating a mirror of a source device
US6189079B1 (en) * 1998-05-22 2001-02-13 International Business Machines Corporation Data copy between peer-to-peer controllers
US6282602B1 (en) * 1998-06-30 2001-08-28 Emc Corporation Method and apparatus for manipulating logical objects in a data storage system
US6329985B1 (en) * 1998-06-30 2001-12-11 Emc Corporation Method and apparatus for graphically displaying mapping of a logical object
US6393540B1 (en) * 1998-06-30 2002-05-21 Emc Corporation Moving a logical object from a set of source locations to a set of destination locations using a single command
US6141773A (en) 1998-06-30 2000-10-31 Emc Corporation Method and apparatus for undoing changes to computer memory
US6269431B1 (en) 1998-08-13 2001-07-31 Emc Corporation Virtual storage and block level direct access of secondary storage for recovery of backup data
US6385626B1 (en) * 1998-11-19 2002-05-07 Emc Corporation Method and apparatus for identifying changes to a logical object based on changes to the logical object at physical level
US6564219B1 (en) * 1998-11-19 2003-05-13 Emc Corporation Method and apparatus for obtaining an identifier for a logical unit of data in a database
TW522399B (en) * 1999-12-08 2003-03-01 Hitachi Ltd Semiconductor device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0845906A2 (de) * 1996-12-02 1998-06-03 International Business Machines Corporation Geteiltes Ring Audio/Videoserversystem

Also Published As

Publication number Publication date
GB2348994B (en) 2004-02-04
US20040098547A1 (en) 2004-05-20
WO2000041093A3 (en) 2002-09-19
WO2000041093A2 (en) 2000-07-13
GB0019609D0 (en) 2000-09-27
JP2007048301A (ja) 2007-02-22
GB2348994A (en) 2000-10-18
JP2003518659A (ja) 2003-06-10
WO2000041093A9 (en) 2001-09-07
US7107395B1 (en) 2006-09-12
DE19982999T1 (de) 2001-08-09

Similar Documents

Publication Publication Date Title
DE19982999B4 (de) Computersystem und Verfahren zum Transferieren von Daten
US6920537B2 (en) Apparatus and methods for copying, backing up and restoring logical objects in a computer storage system by transferring blocks out of order or in parallel
US6487561B1 (en) Apparatus and methods for copying, backing up, and restoring data using a backup segment size larger than the storage block size
US6397308B1 (en) Apparatus and method for differential backup and restoration of data in a computer storage system
DE69917333T2 (de) Übertragung einer Ressource von einem ersten Zwischenspeicher an einen zweiten Zwischenspeicher
DE60318687T2 (de) Herstellen einer gespiegelten kopie unter verwendung inkrementeller divergenz
DE60213867T2 (de) Vorrichtung zur verwaltung von datenreplikation
DE69636330T2 (de) Verfahren für On-line- und Echzeit-Datenmigration
DE60312746T2 (de) Wiederherstellung nach fehlern in datenverarbeitungsanlagen
DE60113586T2 (de) Übertragen von miteinander verbundenen Datenobjekten in einer verteilten Datenspeicherumgebung
DE602004010872T2 (de) Systeme und Verfahren zur Dateisicherung
DE112011100623B4 (de) Read-Other-Protokoll zur Aufrechterhaltung der Paritätskohärenz in einem Writeback-Datenspeichersystem mit verteilter Redundanz
DE60210211T2 (de) Redundante Datensicherungsvorrichtung und -Verfahren
DE60018872T2 (de) System und Methode für das Löschen von Datenbank-Aktualisierungsbilddateien nach Abschluss der dazugehörigen Transaktionen
DE602005004120T2 (de) System und verfahren zur übernahme von partnerbetriebsmitteln in verbindung mit coredump
DE602004005344T2 (de) Verfahren, system und programm zur handhabung eines failover zu einem fernspeicherort
DE602005000972T2 (de) Speichersystem und Datenverarbeitungssystem
DE60115839T2 (de) Verfahren und Gerät für die Erstellung von Mehrweg-Ein/Ausgaben unter Verwendung des Befehls "SCSI persistent reserve"
DE60317815T2 (de) Verfahren und system zur bereitstellung einer dauerhaften speicherung von benutzerdaten
DE602004006404T2 (de) Flashback-datenbank
DE10393771T5 (de) Schnelle Datensicherungsspeicherung und schnelle Datenwiederherstellung (FBSRD)
DE69833815T2 (de) Verbesserter Disk-Log mit verteiltem Schreibsystem
DE102004027672A1 (de) Speicherplattenarraysystem
DE19924900A1 (de) Verfahren und Vorrichtung für Katastrophen-Behebung von Dateisystemen
DE602004007925T2 (de) Verwalten einer beziehung zwischen einem zielvolumen und einem quellenvolumen

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8125 Change of the main classification

Ipc: G06F 1216

8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee