DE112010003262B4 - Synchronisierung replizierter sequenzieller Zugriffsspeicherkomponenten - Google Patents

Synchronisierung replizierter sequenzieller Zugriffsspeicherkomponenten Download PDF

Info

Publication number
DE112010003262B4
DE112010003262B4 DE112010003262.9T DE112010003262T DE112010003262B4 DE 112010003262 B4 DE112010003262 B4 DE 112010003262B4 DE 112010003262 T DE112010003262 T DE 112010003262T DE 112010003262 B4 DE112010003262 B4 DE 112010003262B4
Authority
DE
Germany
Prior art keywords
rst
replicated
instance
entry
source
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.)
Active
Application number
DE112010003262.9T
Other languages
English (en)
Other versions
DE112010003262T5 (de
Inventor
Elena Drobchenko
Gil Elyahu Paz
Shay Haim Akirav
Samuel Krikler
Dan Melamed
Aharon LAZAR
Itay Maoz
Yariv BACHAR
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112010003262T5 publication Critical patent/DE112010003262T5/de
Application granted granted Critical
Publication of DE112010003262B4 publication Critical patent/DE112010003262B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)

Abstract

Verschiedene Ausführungsformen zur Synchronisierung von Quell- und replizierten Instanzen von sequenziellen Zugriffsspeicherkomponenten in einer Computerumgebung durch eine Prozessorvorrichtung werden angegeben. Eine Replizierungs-Synchronisierungs-Tabelle (RST) wird für die Quellinstanz konfiguriert. Die RST ist zur Aufzeichnung von verdichteten Informationen für einen Trunkierungs- und/oder einen Löschvorgang ausgebildet, der auf der Quellinstanz angewandt wird. Die RST der Quellinstanz wird an einer Quellkomponente mit den verdichteten Informationen aktualisiert. Die aktualisierte RST wird von der Quellinstanz an die replizierte Instanz übertragen. Basierend auf der RST der Quellinstanz und der RST der replizierten Instanz werden repräsentative Daten einer letzten Position auf der Quellkomponente, von der Daten an die replizierte Komponente übertragen werden sollten, um eine Vollsynchronisierung zu erreichen, bestimmt.

Description

  • Hintergrund der Erfindung
  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich im Allgemeinen auf Computer und genauer auf Ausführungsformen einer Vorrichtung, eines Verfahrens und eines Computerprogrammproduktes zur Synchronisierung von replizierten sequenziellen Zugriffsspeicherkomponenten in einer Computerumgebung.
  • Beschreibung des Standes der Technik
  • Sequenzielle Zugriffsspeicherkomponenten werden in einer Vielzahl von Computerumgebungen gefunden. Eine typische sequenzielle Zugriffsspeicherkomponente ist die magnetische Bandkassette, die durch ein magnetisches Bandlaufwerk verwendet wird. Mehrere Bandlaufwerke können in einem Bandarchiv zusammen mit mehreren Slots als Halterung für die Bandkassetten, einem Vakuumleser zur Identifizierung der Bandkassetten und einem automatisierten Verfahren (das heißt ein Roboter) zum Laden der Kassetten in Bandlaufwerke und Slots befinden. In letzter Zeit wurden ferner virtuelle Bandarchive eingeführt. Solche Datenspeichersysteme nutzen Speicherkomponenten (normalerweise direkte Zugriffsspeicher wie zum Beispiel Disk-Arrays) um virtuell Bandarchive oder Bandlaufwerke darzustellen. Beide Arten der Technologien werden üblicherweise für Backup- und Wiederherstellungszwecke verwendet. Virtuelle Bandarchive, die existierende Backupsoftware und existierende Backup- und Wiederherstellungsprozesse integrieren, ermöglichen typischerweise schnellere Backup- und Wiederherstellungsbetriebsarten.
  • Beispielsweise offenbart US 5,608,865 A einen Integritäts-Servercomputer zur ökonomischen Sicherung der Daten eines Servers eines Computer-Netzwerks, sowie zur Bereitstellung von „hot-standby-access” auf aktuelle Kopien der Daten eines ausgefallenen Servers. Sobald die Daten des Servers erzeugt oder verändert werden, werden sie auf den Integritäts-Server kopiert. Wenn einer der Server ausfällt, springt der Integritäts-Server für den ausgefallenen Server ein, indem er das Datenangebot des ausgefallenen Servers für Clients des Netzwerks übernimmt.
  • Weiter offenbart US 2005/0216788 A1 einen schnellen Backup-Speicher und ein Verfahren zur schnellen Wiederherstellung von Daten in einer Anlage, bevorzugt mit einem SAN, welche mit einem Netzwerk mit Servern und Workstations gekoppelt ist, welche sowohl in einem Speichermodus als auch in einem Wiederherstellungsmodus operieren. An das Netzwerk sind ein primärer Speicher, ein Magazin und ein Backup-Appliance-Computer BA gekoppelt. Der BA betreibt ein Wiederherstellungs-Computer-Programm welches mit mindestens einem Computer assoziiert ist. Solange er im Speichermodus ist, werden Daten aus dem primären Speicher für ein Backup bezogen, indem Schnappschüsse aufgenommen werden und die bezogenen Daten in das Magazin im Block-Format gespeichert werden. Im Wiederherstellungsmodus werden Backup-Daten aus dem Magazin bezogen und in den primären Speicher eingepflegt, entweder im Block- oder im Daten-Format.
  • Zusammenfassung der Erfindung
  • Sequenzielle Zugriffsspeicherkomponenten in Computerumgebungen werden durch die folgenden Charakteristiken charakterisiert. Die Komponenten speichern Datenblöcke mit unterschiedlichen Größen, die Nutzerschreibvorgängen entsprechen können. Die Position innerhalb der Daten solch einer Komponente wird in Bezug auf diese Datenblöcke angegeben. Die Terminologie „Datenende” (EOD, End of Data) bezieht sich hier auf die Position direkt hinter dem letzten Block der Daten, die auf die Komponente geschrieben sind. Solche Komponenten ermöglichen das Setzen einer Position (kleiner oder gleich dem EOD) und dann das Lesen oder Schreiben der Datenblöcke sequenziell von dieser Position fortschreitend hin zum EOD (das heißt hin zu den späteren Blöcken). Wenn eine Position gleich dem EOD gesetzt wird und ein neuer Datenblock auf dieser Position geschrieben wird, wird der Wert des EOD um 1 erhöht. Wenn eine Position gesetzt wird, die kleiner als der EOD ist, und ein neuer Datenblock auf dieser Position geschrieben wird, wird der Datenblock, der sich zuvor an dieser Position befunden hat, und alle nachfolgenden Datenblöcke ungültig gemacht, und der EOD-Wert wird so gesetzt, dass er um 1 größer ist als die Position des neu geschriebenen Blocks.
  • Um die Datenzugänglichkeit und die Fehlertoleranzfähigkeiten zu erhöhen, kann es vorteilhaft sein, dass die Daten der sequenziellen Zugriffsspeicherkomponenten auf Remote-Systeme repliziert werden, die sich oft an geografisch entfernten Orten befinden. Zum Beispiel können virtuelle Bandkassetten auf virtuelle Remote-Bandsysteme repliziert werden. Es ist für eine solche Replizierung vorteilhaft, dass die replizierten Speichereinheiten synchronisiert mit der Quellinstanz der Speicherkomponente gehalten werden, was eine Modifizierung des Dateninhalts erlaubt (während die replizierten Instanzen nur ein Lesen der Dateninhalte ermöglichen). Synchronisierte Komponenten werden so definiert, dass sie identische Nutzerdaten umfassen. Eine solche Synchronisierung kann in einfacher Weise durch wiederholte Übertragung des gesamten Dateninhaltes der Quellinstanz implementiert werden. Es ist allerdings wünschenswert, dass dieser Prozess effizienter gemacht wird, sodass nur die minimalen (das heißt notwendigen und ausreichenden) Daten übertragen werden, die für die Synchronisierung nötig sind, wodurch die benötigte Bandbreite für die Übertragung der Daten minimiert wird und die Verarbeitungsanforderungen sowohl des Quell- als auch des Zielsystemes reduziert werden. Die Terminologie „minimale Daten, die zur Synchronisierung benötigt werden”, wie sie hier in der folgenden Beschreibung und dem beanspruchten Gegenstand diskutiert wird, ist dazu bestimmt, sich auf modifizierte und hinzugefügte Daten verglichen mit den Daten, die sich in den replizierten Instanzen befinden, zu beziehen.
  • Angesichts dessen besteht bei Anwesenheit einer Quellinstanz einer sequenziellen Zugriffsspeicherkomponente und mehrerer replizierter Instanzen dieser Komponente und bei Anwesenheit fortlaufender Modifizierungen dieser Daten, die sich in der Quellinstanz der Komponente befinden, ein Bedürfnis für eine effiziente Berechnung für jede replizierte Instanz der minimalen Daten, die für eine Übertragung von der Quellinstanz benötigt werden, um die Synchronisierung der replizierten Instanz mit der Quellinstanz aufrechtzuerhalten. Darüber hinaus ist es vorteilhaft, dass der Quellinstanz die Synchronisierungsstatus der replizierten Instanzen nicht bewusst sind und dass den replizierten Instanzen die Synchronisierungszustände der jeweils anderen nicht bewusst sind, um eine komplette Unabhängigkeit zwischen der Quellinstanz und den replizierten Instanzen und zwischen den replizierten Instanz untereinander zu ermöglichen. Es ist auch zu beachten, dass die Quellinstanz entlang der Zeitachse unter der Voraussetzung, dass zu jedem gegebenen Zeitpunkt es nur eine einzige Quellinstanz gibt, in unterschiedlichen physikalischen Systemen angeordnet sein kann (das heißt eine replizierte Instanz kann die Quellinstanz werden).
  • Demnach werden verschiedene Ausführungsformen für die Synchronisierung der Quelle und der replizierten Instanzen der sequenziellen Zugriffsspeicherkomponenten in einer Computerumgebung durch eine Prozessorvorrichtung bereitgestellt, um diese Probleme effizient zu adressieren. Diese Ausführungsformen streben danach, die Bandbreite für Datenübertragungen für Synchronisierungen zu minimieren, die Verarbeitungsanforderung sowohl an den Quell- als auch den Zielsystemen zu reduzieren, komplette Datenintegrität zuzusichern und eine komplette Unabhängigkeit zwischen der Quelle und den replizierten Instanzen zu ermöglichen, während die spezifischen Eigenschaften sequenziellen Zugriffsspeicherkomponenten genutzt werden.
  • In einer solchen Ausführungsform ist eine Replizierungs-Synchronisierungs-Tabelle (RST) lediglich als Beispiel für die Quellinstanz ausgebildet. Die RST ist dazu ausgebildet, verdichtete Informationen eines Trunkierungs- und/oder Löschvorgangs, der an der Quellinstanz angewendet wird, aufzuzeichnen. Die RST der Quellinstanz wird an einer Quellkomponente mit den verdichteten Informationen aktualisiert. Die aktualisierte RST wird von der Quellinstanz an die replizierte Instanz übertragen. Basierend auf der RST der Quelliristanz und der RST der replizierten Instanz werden Daten bestimmt, die repräsentativ für eine letzte Position auf der Quellkomponente sind, von der die Daten an eine replizierte Komponente übertragen werden sollen, um eine volle Synchronisierung zu erreichen. Die repräsentativen Daten der letzten Position werden von der replizierten Instanz an die Quellinstanz übertragen. Basierend auf den repräsentativen Daten für die letzte Position wird die replizierte Instanz mit der Quellinstanz synchronisiert, während die RST der replizierten Instanz mit den repräsentativen Daten der letzten Position aktualisiert wird, um einen Synchronisierungsstatus wiederzugeben.
  • Zusätzliche beispielhafte System- und Computerprodukt-Ausführungsformen werden bereitgestellt und liefern damit verbundene Vorteile.
  • Kurze Beschreibung der Zeichnungen
  • Ausführungsformen der vorliegenden Erfindung werden nun lediglich als Beispiel mit Bezugnahme auf die angehängten Zeichnungen beschrieben, in denen:
  • 1 eine beispielhafte Computerumgebung darstellt, in der Aspekte der vorliegenden Erfindung implementiert werden können;
  • 2 eine beispielhafte Struktur eines Eintrags innerhalb einer Replizierungs-Synchronisierungs-Tabelle (RST) darstellt;
  • 3 ein beispielhaftes Verfahren zur Synchronisierung einer Quelle und replizierter Instanzen von sequenziellen Zugriffsspeicherkomponenten darstellt;
  • 4 ein beispielhaftes Verfahren zur Aktualisierung der RST an der Quellkomponente darstellt;
  • 5 ein beispielhaftes Verfahren zur Aktualisierung der RST an der Quelle und einer replizierten Komponente darstellt, wobei repräsentative Daten für die letzte Position bestimmt werden und die RST an der replizierten Komponente aktualisiert wird und eine Synchronisierung zwischen der replizierten Komponente und der Quellkomponente stattfindet;
  • 6 ein beispielhaftes Verfahren zur Berechnung der letzten Position an der Quellkomponente zur Synchronisierung mit der replizierten Komponente darstellt; und
  • 7 eine beispielhafte Computervorrichtung darstellt, die eine Prozessvorrichtung in einer Computerumgebung wie der in 1 gezeigten Computerumgebung umfasst.
  • Detaillierte Beschreibung
  • In 1 ist eine beispielhafte Architektur 10 von Datenspeichersystemen (zum Beispiel virtuelle Bandsysteme) in einer Computerumgebung abgebildet. Die Architektur 10 bietet Speicherdienste für die lokalen Hosts 18 und 20 repliziert Daten auf Remote-Datenspeichersysteme wie gezeigt. Ein lokaler Speichersystemserver 12 in Verbindung mit einer Plattenspeichervorrichtung 14 ist mit den lokalen Hosts 18 und 20 über ein Netzwerk verbunden, das Komponenten wie einen Fiber Channel Switch 16 umfasst. Der Fiber Channel Switch 16 ist dazu fähig, zum Beispiel Befehle für Bandvorrichtungen auszuführen (wie zum Beispiel Befehle einer Schnittstelle für kleine Computersysteme (SCSI, Small Computer Systems Interface)). Der lokale Speichersystemserver 12 ist über ein Netzwerk 22 mit einem Remote-Speichersystemserver verbunden. Der Remote-Server 24 kommuniziert mit einer lokal verbundenen Plattenspeichervorrichtung 26 und mit lokal verbundenen Hosts 30 und 32 über ein anderes Netzwerk und Netzwerkkomponente 28 wie zum Beispiel Fiber Channel Switch 28. Der Fachmann wird verstehen, dass das Netzwerk 22 eine Vielzahl von Netzwerktopologien umfassen kann, wie zum Beispiel ein Wide Area Network (WAN), ein Local Area Network (LAN), ein Storage Area Network (SAN) und andere Konfigurationen. In ähnlicher Weise können die Switches 16 und 28 andere Arten von Netzwerkvorrichtungen sein.
  • Die Architektur 10 bietet wie zuvor beschrieben wurde, lokale Speichervorrichtungen für lokale Hosts und bietet eine Replizierung von Daten auf den Remote-Datenspeichersystemen (wie durch die Datenreplizierungsfunktionalität durch Pfeil 34 angegeben). Wie beschrieben werden wird, können verschiedene Ausführungsformen der vorliegenden Erfindung und des beanspruchten Gegenstandes in Architekturen wie Architektur 10 implementiert werden.
  • Es gibt mehrere Hauptansätze für Datenreplizierung, die zur Ausgestaltung und Implementierung der Replizierungsmechanismen für Speichersysteme wie zum Beispiel durch Architektur 10 dargestellt, verwendet werden können. Allerdings ist jeder momentan im Stand der Technik bekannte Ansatz nicht spezifisch dazu ausgebildet, die spezifischen Charakteristiken von sequenziellen Zugriffsspeicherkomponenten effizient zu nutzen. Ein solcher Ansatz ist die Verwendung mathematisch starker Digests (zum Beispiel die MD- und SHA-Hashfunktionensätze), um Datensegmente basierend auf ihren Inhalten zu identifizieren. Eine Bandbreitenreduzierung kann durch den Austausch solcher Digest-Werte der zwischen den Quell- und Zielsystemen zu replizierenden Daten erreicht werden. Allerdings würde die Verwendung solch eines Ansatzes den Replizierungsprozess einer Wahrscheinlichkeit ungleich 0 aussetzen, dass eine Inkonsistenz zwischen der Quelle und den replizierten Kopien der Daten wegen des Vertrauens eher auf die Digest-Werte als auf die wirklichen Werte besteht. Außerdem würde dieser Ansatz die Berechnung und wahrscheinliche Speicherung solcher starken Digest-Werte für alle gespeicherten Daten mit sich bringen und daher im erheblichen Maße zusätzliche Verarbeitungs- und Speicherressourcen erfordern.
  • Die Plattenreplizierung basiert im Allgemeinen auf fortlaufenden Schreibvorgängen von der Quellkomponente auf ihre Zielkomponenten. Synchrone Replizierung bedeutet dabei, dass ein Schreibvorgang auf der Quellkomponente nur dann als komplett angesehen wird, wenn er von allen Zielkomponenten bestätigt wurde. Dieser Ansatz garantiert eine komplette Konsistenz zwischen der Quelle und den Zielkomponenten. Allerdings hat er typischerweise einen signifikanten Effekt auf eine Reduzierung der Performance. Asynchrone Replizierung bedeutet, dass ein Schreibvorgang an der Quellkomponente als komplett angesehen wird, sobald der lokale Vorgang komplett ist. Die Replizierung der Schreibvorgänge wird asynchron im Hintergrund durchgeführt. Dieser Ansatz verbessert die Performance, allerdings können die letzten Schreibvorgänge im Falle eines Ausfalls der Quellkomponente verloren gehen. Ein signifikanter Nachteil dieses Ansatzes rührt von der Tatsache her, dass es die Quellkomponente ist, die die Synchronisierung der Zielkomponenten nachverfolgt. Die Quellkomponente empfängt Bestätigungen für Schreibvorgänge, die durch die Zielkomponenten empfangen wurden, und kann nicht mit der Replizierung der nächsten Schreibvorgänge fortführen, bis alle Bestätigungen empfangen wurden. Daher kann eine Fehlfunktion einer oder mehrerer Zielkomponenten die Fähigkeit zur Synchronisierung des gesamten Satzes der Zielkomponenten beeinträchtigen.
  • In den nachfolgend dargestellten Ausführungsformen, die auch asynchrone Funktionalitäten implementieren, sind es die Zielkomponenten die ihren Synchronisierungsstatus wieder wie der Quellkomponente berechnen, wodurch eine Unabhängigkeit zwischen den Synchronisierungsstatus jeder der Zielkomponenten erreicht wird. Der Plattenreplizierungsansatz, der gegenwärtig im Stand der Technik bekannt ist, repliziert alle Schreibvorgänge, die auf der Quellkomponente erzeugt werden (wahrscheinlich in Datenblöcken zusammengefasst) auf die Zielkomponenten. Im Gegensatz dazu ermöglichen die durch die dargestellten Ausführungsformen bereitgestellten Mechanismen, die spezifisch für die speziellen Eigenschaften von sequenziellen Zugriffsspeicherkomponenten ausgebildet sind, eine Übertragung von Schreibvorgängen (die wahrscheinlich mehrere Datenblöcke betreffen), die auf der Quellkomponente erzeugt wurden, die irrelevant werden (vor der Übertragung) im Kontext von spezifischen Zielkomponenten zu vermeiden.
  • Im Allgemeinen basiert die Replizierung von Transaktionsdaten darauf, dass das Quellsystem die Aktualisierungen protokolliert und dann die protokollierten Daten an die Zielsysteme repliziert. Die Zielsysteme bestätigen den Empfang der replizierten Aktualisierungen, wodurch es erlaubt wird, mit der Replizierung von nachfolgenden Aktualisierungen fortzufahren. Es gibt also Protokolle, die die Durchführung von Aktualisierungen auf einer Dateneinheit eher über mehrere Speichersysteme als über ein einziges Speichersystem ermöglichen. Verfahren in dieser Klasse werden im Allgemeinen innerhalb von Datenbanksystemen verwendet. Allerdings kann es im Zusammenhang mit sequenziellen Zugriffsspeichersystemen, die nicht transaktionell sein können, vorkommen, dass es keine Protokollierung von Aktualisierungen, die repliziert werden sollen, gibt, wodurch dieser Ansatz unanwendbar wird. Ferner können zusätzliche nichtrelevante Blöcke repliziert werden, da solche Protokollierungen von Aktualisierungen typischerweise mit Dateneinheiten assoziiert sind, die größer oder in anderer Hinsicht anders sind als die Dateneinheiten, die repliziert werden sollen, wodurch die Netzwerkbandbreite und die Speicherressourcen, die für die Replizierung verwendet werden, erhöht werden. Im Allgemeinen sind all diese Ansätze nicht für sequenzielle Zugriffsspeicherkomponenten ausgebildet. Im Gegensatz dazu nutzen die dargestellten Ausführungsformen das spezifische Verhalten und die Eigenschaften von sequenziellen Zugriffsspeicherkomponenten, um die Effizienz des Replizierungsprozesses zu unterstützen, wodurch sowohl die Netzwerkbandbreite als auch die Anforderungen an Verarbeitungsressourcen reduziert werden, die komplette Datenintegrität gesichert wird und eine komplette Unabhängigkeit zwischen der Quelle und den replizierten Instanzen ermöglicht wird.
  • Die dargestellten Ausführungsformen bieten einen neuen Ansatz zur Replizierung und Synchronisierung von sequenziellen Zugriffsspeicherkomponenten, die spezifisch für die speziellen Charakteristiken von sequenziellen Zugriffsspeicherkomponenten ausgebildet sind, wodurch sowohl die Netzwerkbandbreite und die Verarbeitungsressourcen, die für die Replizierungs- und Synchronisierungsprozesse solcher Komponenten verwendet werden, reduziert werden, und wodurch existierende Ansätze für die Replizierung solcher Komponenten verbessert werden.
  • Innerhalb der folgenden Beschreibung und des beanspruchten Gegenstandes wird die folgende Terminologie beschrieben, die zu sequenziellen Zugriffsspeicherkomponenten gehört. Ein „Schreibvorgang” ist dazu gedacht, sich auf das Schreiben eines Blockes von Nutzerdaten innerhalb der sequenziellen Zugriffsspeicherkomponente zu beziehen. Ein „Trunkierungsvorgang” ist dazu gedacht, sich auf einen Schreibvorgang zu beziehen, der durchgeführt wird, wenn die gegenwärtige Position innerhalb der sequenziellen Zugriffsspeicherkomponente vor ihren EOD gesetzt wird. Ein Trunkierungsvorgang invalidiert den Datenblock, der zuvor auf dieser Position gespeichert war und alle darauf folgenden Datenblöcke. Ein „Löschvorgang” wird durchgeführt, wenn die gegenwärtige Position innerhalb der sequenziellen Zugriffsspeicherkomponente vor ihrem EOD gesetzt wird und ist dazu gedacht, sich auf die Löschung des Datenblocks, der sich an dieser Position befindet, und aller darauf folgenden Datenblöcke zu beziehen.
  • Wie im Folgenden offensichtlich werden wird, sehen die dargestellten Ausführungsformen die Pflege einer Datenstruktur vor, die hier als eine Replizierungs-Synchronisierungs-Tabelle (RST) bezeichnet wird, die hochkompakte Informationen über die Trunkierungs- und Löschvorgänge aufzeichnen, die auf dieser Instanz angewendet wurden. Zur Synchronisierung einer replizierten Instanz wird die RST der Quellinstanz, die in ihrer Größe sehr kompakt ist, an die replizierten Instanzen übertragen und eine effiziente Berechnung basierend auf den RSTs sowohl der Quelle als auch der replizierten Instanzen wird verwendet, und die minimal benötigten Daten für die Synchronisierung (was die Position auf der Quellkomponente ist, für die die Datenübertragung gestartet werden soll) wird durch die replizierte Instanz bestimmt. Diese hochkompakten Informationen werden dann zurück zur Quellinstanz übertragen, die konsequenter Weise nur die minimalen Daten an die replizierte Instanz überträgt, die für ihre Synchronisierung benötigt werden. Beim Empfang dieser Daten wird die replizierte Komponente mit der Quellkomponente synchronisiert, während auch ihre RST so aktualisiert wird, dass sie ihren neuen Synchronisierungsstatus wiedergibt.
  • Wenn die replizierte Komponente mit der Quellkomponente synchronisiert wird, während ihre RST aktualisiert wird, wie es ferner beschrieben werden wird (zum Beispiel Schritte 94 und 96 in 4 unten), wird ein Positionsfeld eines angehängten Eintrags der RST untersucht, um zu bestimmen, ob der Positionsfeldwert feiner oder gleich zu dem des letzten existierenden Eintrags in der RST ist. Wenn dies so ist, werden alle existierenden Einträge in der RST, deren Positionsfeldwert größer oder gleich zu dem des angehängten Eintrages ist (außer der angehängte Eintrag selber), entfernt. Nachdem der Synchronisierungsprozess zwischen der Quelle und den replizierten Komponenten komplett ist, sind Einträge der Quell-RST und der replizierten RST identisch.
  • Vorteile, die durch Mechanismen der dargestellten Ausführungsformen bereitgestellt werden, umfassen das Folgende: Dadurch, dass die Mechanismen der dargestellten Ausführungsformen spezifisch dazu ausgebildet sind, die spezifischen Eigenschaften von sequenziellen Zugriffsspeicherkomponenten zu nutzen, minimieren sie effizient die Netzwerkbandbreite und die Verarbeitungsressourcen sowohl an den Quell- als auch an den Zielsystemen, die für die Replizierung und die Synchronisierung von sequenziellen Zugriffsspeicherkomponenten verwendet werden. Die in den dargestellten Ausführungsformen angegebenen Mechanismen benötigen sehr wenig Speicher, Verarbeitungs- und Netzwerkressourcen für ihren eigenen Betrieb. Die Ausführungsformen stellen die komplette Datenintegrität zwischen der Quelle und den replizierten Instanzen der sequenziellen Zugriffsspeicherkomponente sicher und ermöglichen eine komplette Unabhängigkeit zwischen den Synchronisierungsstatus jeder der replizierten Komponenten, da es die repliziertem Komponenten sind, die ihren Synchronisierungsstatus vis-à-vis der Quellkomponente in einer asynchronen Art berechnen. Die Mechanismen sind in effizienter Weise fehlertolerant hinsichtlich von Fehlern während des Synchronisierungsprozesses. Wenn sie nach einem Fehler neu gestartet wird, wird die Synchronisierung von dem Fehlerpunkt aus starten. Die Mechanismen ermöglichen eine effiziente Handhabung von Modifizierungen der Daten auf der Quellkomponente während ihrer Replizierung durch die Durchführung der Resynchronisierung des Replizierungsprozesses. Schlussendlich sind die Mechanismen für jeden Typ und jede Implementierung von sequenziellen Zugriffsspeicherkomponenten anwendbar.
  • Jede Instanz, Quelle und Replizierte einer sequenziellen Zugriffsspeicherkomponente verwaltet ihre gegenwärtige Datenendposition (EOD, End of Data) und eine Replizierungs-Synchronisierungstabelle (RST), die Informationen hinsichtlich von Trunkierungs- und Löschvorgängen aufzeichnet, die auf dieser Instanz angewandt werden. In einer Ausführungsform besteht ein Eintrag in der RST aus den folgenden Feldern. Zuerst identifiziert ein Vorgangs-Identifizierungswert eindeutig den Vorgang im Kontext einer bestimmten Speicherkomponente (es gibt keine zwei Vorgänge mit demselben Identifizierungswert). Für einen neuen Vorgang kann dieser Authentifizierungswert durch Erhöhung einer Identifizierungsvariablen erzeugt werden, die mit der Speicherkomponente assoziiert ist. Mit diesen Identifizierungswerten, die nie wieder verwendet werden, und ihren assoziierten Variablen werden genug Bits zugeordnet, um eine kontinuierliche Ausführung bei einer vorbestimmten Ausführungsrate und Zeitlänge zu ermöglichen.
  • Ein zusätzliches Feld ist für einen Wert ausgebildet, der die Position innerhalb der Komponente wiedergibt, oder auch Positionswert. Die Position wird hinsichtlich der Datenblöcke spezifiziert, die sich innerhalb der Komponente befinden, die gemeinsam durch Nutzer-Schreibvorgänge erzeugt werden und mit ihnen assoziiert sind. Dieser Festpunkt innerhalb des Eintrags spezifiziert die Position innerhalb der Komponente, an der der Trunkierungs- oder Löschvorgang angewandt wurde (wodurch auch die Datenblöcke, die auf diesen Ort folgen, ungültig gemacht werden und gelöscht werden). Schließlich wird ein eindeutiger Systemidentifizierungswert konfiguriert. Das System mit diesem Bezugspunkt ist jenes, das die relevante Speicherkomponente beinhaltet. Die eindeutige Systemidentifizierung kann in einigen Ausführungsformen wegen der Tatsache notwendig sein, dass eine Komponente zwischen Systemen integriert werden kann.
  • In 2 ist ein Blockdiagramm einer beispielhaften Datenstruktur 50 eines Eintrages in der RST abgebildet. Die Datenstruktur umfasst ein Vorgang-Identifizierungs(ID)-Wertfeld 52 für einen Vorgangs-ID-Wert, eine Position innerhalb des Vorrichtungsfeldes 54 für einen Positionswert und ein eindeutiges System-ID-Wertfeld 56 für einen System-ID-Wert.
  • Die darauf folgende 3 beschreibt ein beispielhaftes Verfahren 60 zur Synchronisierung von Quell- und replizierten Instanzen von sequenziellen Zugriffsspeicherkomponenten in einer Computerumgebung durch eine Prozessvorrichtung. Ein Fachmann wird erkennen, dass verschiedene Schritte des Verfahrens 60 in unterschiedlichen Arten implementiert werden können, um eine bestimmte Anwendung zu ermöglichen. Zusätzlich dazu kann das beschriebene Verfahren durch verschiedene Mittel implementiert werden, wie zum Beispiel Hardware, Software, Firmware oder eine Kombination davon, die auf der Speicherumgebung ausgeführt werden kann oder in anderer Weise mit dieser assoziiert ist. Zum Beispiel kann das Verfahren teilweise oder ganz als ein Computerprogrammprodukt implementiert sein, das ein computerlesbares Speichermedium umfasst mit darin gespeicherten computerlesbaren Programmcodeteilen. Das computerlesbare Speichermedium kann Plattenlaufwerke, Flash-Memory, Digital Versatile Discs (DVDs), Compact Discs (CDs) und andere Arten von Speichermedien umfassen.
  • Das Verfahren 60 beginnt (Schritt 62) mit der Konfigurierung einer RST für eine Quellinstanz bei einer Quellspeicherkomponente (Schritt 64). Beim Empfang eines Vorgangs, für den bestimmt wird, dass er ein Lösch- und/oder ein Trunkierungsvorgang ist wie weiter unten beschrieben werden wird, wird die RST der Quellinstanz an der Quellkomponente durch Hinzufügung eines neuen Eintrags in die RST aktualisiert (Schritt 66). Dieser Prozess wird weiter unten im Detail beschrieben. Als nächster Schritt wird die aktualisierte RST von der Quellinstanz an die replizierte Instanz übertragen (Schritt 68). Rasierend auf der RST der Quelle und der replizierten Instanzen wird eine letzte Position auf der Quellkomponente bestimmt, von der Daten an die replizierte Komponente übertragen werden sollen, um eine volle Synchronisierung zu erreichen (Schritt 70). Dieser Bestimmungsschritt wird im Detail weiter unten beschrieben werden. Daten, die diese letzte Position repräsentieren, werden dann von der replizierten Instanz an die Quellinstanz übertragen (Schritt 72). Basierend auf diesen Daten wird die replizierte Instanz mit der Quellinstanz synchronisiert, während die RST der replizierten Instanz mit den Daten aktualisiert wird, um einen Synchronisierungsstatus wiederzugeben (Schritt 74). Das Verfahren 60 endet dann (Schritt 76).
  • Unter spezifischer Bezugnahme auf Schritt 66 im Verfahren 60 wird ein beispielhaftes Verfahren zur Aktualisierung der RST an der Quellkomponente nun detaillierter beschrieben. Als Ausgangspunkt wird ein Eintrag für jeden Trunkierungs- und Löschvorgang der Tabelle hinzugefügt. Es wird bestimmt, dass ein Löschvorgang ein Trunkierungsvorgang ist, wenn die Position, die er anwendet, kleiner als EOD ist. Die Position, die ein nicht leerer Löschvorgang anwendet, muss auch kleiner als EOD sein. Bei Anwendung eines Trunkierungs- oder Löschvorgangs auf der Quellkomponente wird ein Eintrag erzeugt. Die Position innerhalb der Komponente, auf die der Vorgang angewendet wird, wird als die Position in dem Eintrag des Vorgangs gesetzt. Der System-ID-Wert des Systems, das die Quellkomponente umfasst, wird als die System-ID in dem Eintrag des Vorgangs gesetzt. Der erzeugte Eintrag wird an die Replizierungs-Synchronisierungs-Tabelle der Quellinstanz angehängt.
  • Wenn der Positionsfeldwert des angehängten Eintrags kleiner oder gleich dem des letzten existierenden Eintrags in der Tabelle ist, dann werden all die existierenden Einträge in der Tabelle, deren Positionsfeldwert größer oder gleich dem des angehängten Eintrags ist (außer für den angehängten Eintrag), von der Tabelle entfernt. Dies ist möglich, da die Vorgänge und Nutzerdaten, die durch die entfernten Einträge repräsentiert werden, durch den Vorgang und Nutzerdaten, die durch den angehängten Eintrag repräsentiert werden, nichtig gemacht wurden.
  • In 4 ist ein beispielhaftes Verfahren 80 zur Aktualisierung der RST der Quellinstanz auf der Quellkomponente abgebildet. Das Verfahren 80 beginnt (Schritt 82) mit der Betrachtung von Eigenschaften eines neuen Vorgangs auf der Quellkomponente (zum Beispiel Lese-, Schreib-, Trunkierungsvorgang) im Hinblick auf den EOD (Blöcke 84 und 86), was zu der Entscheidung 88 führt, ob entweder der neue Vorgang ein Schreib- oder ein Löschvorgang ist und ob die Position, auf die er angewendet wird, kleiner als EOD ist. Wenn dies nicht der Fall ist, endet das Verfahren 80 (Schritt 98). Wenn dies allerdings der Fall ist, dann geht das Verfahren 80 in Schritt 90 über, wo ein neuer RST-Eintrag erzeugt wird. Obwohl dies nicht spezifisch in Entscheidung 82, wie sie dargestellt ist, angegeben ist, sollte beachtet werden, dass zusätzlich ein RST-Eintrag erzeugt werden wird, wenn eine replizierte Instanz den ersten Schreibbefehl als die neue Quellinstanz empfängt (sogar wenn der erste Schreibbefehl an der EOD positioniert ist).
  • Der erzeugte RST-Eintrag wird dann an die RST angehängt (Schritt 92). Als folgender Schritt fragt die Entscheidung 94, ob der Positionsfeldwert des angehängten Eintrages kleiner oder gleich des letzten existierenden Eintrages in der RST ist. Wenn dies nicht der Fall ist, dann endet das Verfahren 80 (wiederum Schritt 98). Wenn dies so ist, dann werden alle existierenden Einträge, deren Positionsfeldwert größer oder gleich dem des angehängten Eintrags ist (außer des angehängten Eintrags selber) entfernt (Schritt 96). Das Verfahren 80 endet dann (wiederum Schritt 98).
  • Die verschiedenen Prozesse werden nun nachfolgend detailreicher beschrieben unter Bezugnahme auf die Schritte 6874 des Verfahrens 60 (wiederum 3). Synchronisierung zwischen der Quell- und der replizierten Komponente kann entweder durch die replizierte Komponente oder durch die Quellkomponente initiiert werden (zum Beispiel basierend auf dem Betrag der angewandten Vorgänge). Die Quellkomponente überträgt ihre Replizierungs-Synchronisierungs-Tabelle an jede replizierte Komponente, die synchronisiert werden soll. Als folgender Schritt empfängt die replizierte Komponente die Replizierungs-Synchronisierungs-Tabelle der Quellkomponente und führt die folgenden Berechnungen durch, um die letzte Position auf der Quellkomponente zu bestimmen, von der die Daten an die Zielkomponente übertragen werden sollen, um eine volle Synchronisierung zu erreichen.
  • Unter spezifischer Bezugnahme auf diese Berechnung als Ausgangspunkt befindet sich der als Es bezeichnete Eintrag in der Replizierungs-Synchronisierungs-Tabelle der Quellkomponente, der den maximalen Vorgangs-ID-Wert unter all den Einträgen in der Tabelle hat, die einen identischen Eintrag (das heißt deren Feldwerte identisch sind) in der Replizierungs-Synchronisierungs-Tabelle der replizierten Komponente haben. Es wird angenommen, dass Er der Eintrag ist, der identisch mit Es in der Replizierungs-Synchronisierungs-Tabelle der replizierten Komponente ist. Es ist zu beachten, dass die Inhalte der RSTs sowohl der Quelle als auch der replizierten Komponenten identisch sind mit Es und Er. Es wird angenommen, dass Es' und Er' die Einträge sind, die jeweils unmittelbar auf Es und Er in den RSTs der Quelle und der replizierten Komponenten folgen. Wenn Es und Es' existieren, dann ist die Position auf der Quellkomponente, von der die Datenübertragung starten soll, das Minimum zwischen dem Positionswert von Es', dem Wert von EOD der replizierten Komponente und dem Positionswert von Er', wenn er existiert. Wenn Es existiert und Es nicht existiert, dann ist die Position auf der Quellkomponente, von der die Datenübertragung starten soll, das Minimum zwischen dem Wert von EOD der replizierten Komponente und dem Positionswert von Er', wenn er existiert. Wenn Es nicht existiert, dann ist die Position auf der Quellkomponente, von der die Datenübertragung starten soll, 0.
  • Als folgender Schritt wird die Position auf der Quellkomponente, von der die Datenübertragung starten soll, an die Quellkomponente übertragen. Die Quellkomponente empfängt diese Position, lokalisiert die Position, liest die Daten und möglicherweise Metadaten (wenn sie existieren) von dieser Position und überträgt die Daten/Metadaten an die replizierte Komponente. Das Lesen und Übertragen der Daten auf der Quellkomponente (startend an der Position, die von der replizierten Komponente empfangen wurde) kann parallel zueinander durchgeführt werden, sodass mehrere Datensegmente auf der Quellkomponente gelesen und parallel an die replizierte Komponente übertragen werden. Wenn während dieses Prozesses die Daten der Quellkomponente modifiziert werden, dann kann die Quellkomponente die Prozedur zur Synchronisierung neu starten.
  • Die replizierte Komponente empfängt die Daten umfassend die Metadaten, wenn sie existieren, die durch die Quellkomponente übertragen wurden und aktualisiert ihre Daten (wiederum umfassend jegliche existierenden Metadaten) und die Replizierungs-Synchronisierungs-Tabelle wie folgt. Als Ausgangspunkt werden die empfangenen Daten beim Empfang im ständigen Speicher geschrieben (die Daten können auf eine nicht-sequenzielle Art empfangen werden). Wenn Metadaten existieren, obwohl sie möglicherweise in einer nicht-sequenziellen Art empfangen werden, werden die Metadaten sequenziell in den ständigen Speicher geschrieben, nachdem ihre assoziierten Datensegmente schon in den ständigen Speicher geschrieben wurden. Wenn ein sequenzielles Datensegment in den ständigen Speicher geschrieben wurde, wird der EOD-Wert demnach erweitert. Sobald der EOD die Position eines Eintrages in der Replizierungs-Synchronisierungs-Tabelle der Quellkomponente erreicht oder übersteigt, welcher noch nicht in der Replizierungs-Synchronisierungs-Tabelle der replizierten Komponente existiert (dies ist notwendigerweise der erste solcher Einträge in der Quellkomponententabelle, da der EOD sequenziell erweitert wird), wird dieser Eintrag zur Replizierungs-Synchronisierungs-Tabelle der replizierten Komponente hinzugefügt, sodass alle ihre Feldwerte identisch zu jenen sind, die in der Replizierungs-Synchronisierungs-Tabelle der Quellkomponente auftauchen.
  • Wenn der Positionsfeldwert des angehängten Eintrags kleiner oder gleich zu dem des letzten existierenden Eintrags in der Tabelle ist, dann werden alle existierenden Einträge in der Tabelle, deren Positionsfeldwert größer oder gleich dem des angehängten Eintrages ist (außer für den angehängten Eintrag) von der Tabelle entfernt. Dies ist möglich, da die Vorgänge und Nutzerdaten, die durch die entfernten Einträge repräsentiert werden, durch den Vorgang und die Nutzerdaten, die durch den angehängten Eintrag repräsentiert werden, unnötig gemacht wurden. Bei Vervollständigung dieses Prozesses sind die Inhalt der Replizierungs-Synchronisierungs-Tabellen sowohl der Quell- als auch der replizierten Komponenten identisch und ihre EOD-Werte sind auch identisch. Die empfangenen Daten und Metadaten (so sie existieren) können unter Verwendung mathematischer Digests, wie zum Beispiel CRC, verifiziert werden. Dieser Prozess ist fehlertolerant gegenüber Fehlern während des Synchronisierungsprozesses. Bei einem Neustart nach einem Fehler wird die Synchronisierung an dem Fehlerpunkt starten.
  • In 5 wird der Synchronisierungsprozess zwischen der Quell- und den replizierten Speicherkomponenten 102 und 104 jeweils im Lichte der vorhergehenden Beschreibung in einem Blockdiagramm 100 dargestellt. Wie im Prozess 106 gezeigt wird, wird die aktualisierte Quell-Replizierungs-Synchronisierungs-Tabelle von der Quellkomponente 102 an die replizierte Komponente 104 übertragen. Beim Prozess 108 bestimmt die replizierte Komponente 104 die letzte Position auf der Quellkomponente 102, von der die Daten an die replizierte Komponente 104 übertragen werden sollen, um eine volle Synchronisierung zu erreichen. Die kompakten Daten, die repräsentativ für diese letzte Position sind, werden dann zurück zur Quellkomponente 102 wie im Prozess 110 indiziert übertragen. Die Daten werden von dieser letzten Position wie im Prozess 112 indiziert lokalisiert und gelesen. Im folgenden Schritt werden die Daten von der Synchronisierungsposition an die replizierte Komponente 104 wie in Prozess 114 indiziert übertragen. Die Daten der replizierten Komponente 104 werden aktualisiert, sobald die replizierte Komponente 104 mit der Quellkomponente 102 synchronisiert wird, während die RST der replizierten Komponente 104 aktualisiert wird, um den neuen Synchronisierungsstatus wie in Prozess 116 indiziert wiederzugeben.
  • In 6 wird ein Flussdiagramm eines beispielhaften Verfahrens 120 zur Berechnung der letzten Position auf der Quellkomponente für Synchronisierungszwecke dargestellt. Das Verfahren 120 beginnt (Schritt 122) mit einer Betrachtung der RST-Informationen der replizierten Vorrichtung 124 und der RST-Informationen der Quellvorrichtung 126 und geht in Schritt 128 über, indem der Eintrag, der als Es bezeichnet wird, in der Replizierungs-Synchronisierungs-Tabelle der Quellkomponente lokalisiert wird, der den maximalen Operations-ID der unter all den Einträgen in dieser Tabelle hat, die einen identischen Eintrag (das heißt deren Feldwerte identisch sind) in der Replizierungs-Synchronisierungs-Tabelle der replizierten Komponente haben. Er wird als der Eintrag bezeichnet, der identisch mit Es in der Replizierungs-Synchronisierungs-Tabelle der replizierten Komponente ist. Es ist wiederum zu beachten, dass die Inhalte der RSTs sowohl der Quellen als auch der replizierten Komponenten bis Es und Er identisch sind. Es' und Er' werden als die Einträge bezeichnet, die jeweils unmittelbar auf Es und Er in den RSTs der Quell- und der replizierten Komponenten folgen.
  • Wenn Es und Es' existieren (Entscheidungen 130 und 134), dann wird die Position auf der Quellkomponente, von der die Datenübertragung starten soll (hierin als „P” bezeichnet), als das Minimum zwischen dem Positionswert Es', dem Wert von EOD der replizierten Komponente und dem Positionswert von Er', wenn er existiert (Entscheidung 142, Schritt 146) berechnet. Wenn Er' nicht existiert, dann wird P als das Minimum zwischen dem Positionswert von Es' und dem Wert von EOD der replizierten Komponente (Entscheidung 142, Schritt 145) berechnet. Wenn Es existiert und Es' nicht existiert (Entscheidung 130, Entscheidung 134), dann wird P als das Minimum zwischen dem Wert von EOD der replizierten Komponente und dem Positionswert von Er', wenn er existiert (Entscheidung 136, Schritt 140), berechnet. Wenn Er' nicht existiert, dann wird P als der EOD-Wert der replizierten Komponente berechnet (Entscheidung 136, Schritt 138). Wenn Es nicht existiert (Entscheidung 130), dann wird als 0 berechnet (Schritt 132). Als folgender Schritt wird die Position auf der Quellkomponente, von der die Datenübertragung starten soll, an die Quellkomponente übertragen (Schritt 148). Das Verfahren 120 endet dann (Schritt 150).
  • 7 gibt hiernach ein Beispiel eines Teiles der in 1 abgebildeten Computerumgebung 10 an, in der die Mechanismen der vorhergehenden Ausführungsformen implementiert werden können. Es sollte allerdings erkannt werden, dass 7 lediglich beispielhaft ist und nicht dazu gedacht ist, irgendwelche Begrenzungen im Hinblick auf bestimmte Architekturen, in denen die beispielhaften Aspekte der verschiedenen Ausführungsformen implementiert werden können, auszusagen oder zu implizieren. Viele Modifizierungen der in 7 abgebildeten Architektur können durchgeführt werden ohne von dem Umfang und dem Geiste der vorliegenden Beschreibung und dem beanspruchten Gegenstand abzuweichen.
  • 7 stellt einen Teil 200 einer beispielhaften Computerumgebung dar, die dazu benutzt werden kann, Ausführungsformen der vorliegenden Erfindung zu implementieren. Ein Computer 202 umfasst einen Prozessor 204 und einen Speicher 206, wie zum Beispiel einen Random Access Memory (RAM). In einer Ausführungsform kann der Speichersystemserver 12 (1) Komponenten umfassen, die denen des Computers 202 ähnlich sind. Der Computer 202 ist operativ mit einem Display 219 verbunden, das dem Nutzer auf einer grafischen Benutzerschnittstelle 218 Bilder wie zum Beispiel Fenster darstellen kann. Der Computer 202 kann mit anderen Vorrichtungen, wie zum Beispiel einer Tastatur 216, einer Mausvorrichtung 220, einem Drucker 228 usw. verbunden sein. Fachleute werden natürlich erkennen, dass irgendeine Kombination der oben genannten Komponenten oder irgendeine Anzahl von verschiedenen Komponenten, Peripherie und anderen Vorrichtungen mit dem Computer 202 genutzt werden können.
  • Im Allgemeinen wird der Computer 202 unter Steuerung eines Betriebssystems (OS, Operating System) 208 gesteuert (zum Beispiel Z/OS,OS/2, Linux, Unix, Windows, MAC OS), das in dem Speicher 206 gespeichert ist, und verbindet sich mit dem Nutzer, um Eingaben und Befehle zu akzeptieren und Ergebnisse zum Beispiel über ein grafisches Nutzerschnittstellen (GUI, Graphical User Interface)-Modul 232 darzustellen. In einer Ausführungsform der vorliegenden Erfindung vereinfacht das OS 208 die Backup-Mechanismen, Obwohl das GUI-Modul 232 als ein separates Modul abgebildet ist, können die Instruktionen, die die GUI-Funktionen durchführen, in dem Betriebssystem 208, dem Computerprogramm/Anwendungsprogramm 210 angeordnet oder verteilt sein oder mit Spezialspeicher und Prozessoren implementiert sein. Das OS 208 umfasst ein Synchronisierungsmodul 240, das zur Ausführung von verschiedenen Prozessen und Mechanismen in den zuvor beschriebenen beispielhaften Verfahren ausgebildet sein kann.
  • Der Computer 202 implementiert auch einen Compiler 212, der es ermöglicht, dass ein Anwendungsprogramm 210, das in einer Programmiersprache wie zum Beispiel COBOL, PL/1, C, C++, JAVA, Ada, BASIC, VISUAL BASIC oder irgendeiner anderen Programmiersprache geschrieben wird, in einen Code übersetzt wird, der durch den Prozessor 204 lesbar ist. Nach Vollendung greift das Computerprogramm 210 auf die in den Speicher 206 des Computers 202 gespeicherten Daten zu und manipuliert sie unter Verwendung der Beziehung und der Logik, die unter Verwendung des Compilers 212 erzeugt wurde.
  • Eine Anzahl von Einträgen 214 in einer Replizierungs-Synchronisierungs-Tabelle (RST) 242 werden wie zuvor beschrieben im Speicher 206 gespeichert. Der Computer 202 umfasst optional eine externe Datenkommunikationsvorrichtung 230 wie zum Beispiel ein Modem, eine Satellitenverbindung, eine Ethernetkarte, eine drahtlose Verbindung oder eine andere Vorrichtung zur Kommunikation mit anderen Computern, zum Beispiel über das Internet oder ein anderes Netzwerk.
  • Die Datenspeichervorrichtung 222 ist eine Direktzugriff-Speichervorrichtung (DASD, Direct Access Storage Device) 222, die einen oder mehrere primäre Datenträger mit einer Vielzahl von Datensätzen umfasst. Die DASD 222 kann eine Vielzahl von Speichermedien wie zum Beispiel Festplattenlaufwerke (HDDs), Bänder und Ähnliches umfassen. Die Datenspeichervorrichtung 236 kann auch eine Vielzahl von Speichermedien in ähnlicher Weise wie Vorrichtung 222 umfassen. Die Vorrichtung 236 kann als eine Backupvorrichtung 236 zur Speicherung von Backupversionen der Vielzahl von Datensätzen, die primär auf der Vorrichtung 222 gespeichert sind, bezeichnet werden. Wie der Fachmann erkennen wird, müssen die Vorrichtungen 222 und 236 nicht in derselben Maschine lokalisiert sein. Die Vorrichtungen 222 können an verschiedenen geografischen Regionen lokalisiert sein und über eine Netzwerkverbindung wie zum Beispiel Ethernet miteinander verbunden sein. Die Vorrichtungen 222 und 236 können einen oder mehrere Datenträger umfassen mit einer entsprechenden Datenträgerinhaltstabelle (VTOC, Volume Table of Contents) für jeden Datenträger.
  • In einer Ausführungsform implementieren die Funktionen das Betriebssystem 208, das Computerprogramm 210 und den Compiler 212 ebenso wie die Einträge 214 in der RST 242 greifbar in einem computerlesbaren Medium, zum Beispiel Datenspeichervorrichtung 222, ausgeführt sind, was eine oder mehrere feste oder entfernbare Datenspeichervorrichtungen wie zum Beispiel ein ZIP-Drive, eine Diskette 224, eine Festplatte, DVD/CD-ROM, digitales Band etc. umfassen kann, die generisch als Diskette 224 dargestellt sind. Ferner umfasst das Betriebssystem 208 und das Computerprogramm 210 Instruktionen, wie, wenn sie durch den Computer 202 gelesen und ausgeführt werden, den Computer 202 zur Ausführung der notwendigen Schritte veranlassen, die die vorliegende Erfindung implementieren und/oder nutzen. Die Instruktionen des Computerprogrammes 210 und/oder des Betriebssystems 208 können greifbar in dem Speicher 206 ausgeführt sein und/oder über die Datenkommunikationsvorrichtung 230 übertragen oder auf sie zugegriffen werden. Die Begriffe „Fertigprodukt”, „Programmspeichervorrichtung” und „Computerprogrammprodukt” sind als solche wie sie hier verwendet werden dazu gedacht, ein Computerprogramm zu umfassen, auf das von irgendeiner computerlesbaren Vorrichtung oder Medien zugegriffen werden kann oder durch sie ausführbar ist.
  • Ausführungsformen der vorliegenden Erfindung kennen ein oder mehrere assoziierte Software-Anwendungsprogramme 210 umfassen, die zum Beispiel Funktionen zum Management eines verteilten Computersystems umfassen, das ein Netzwerk von Computervorrichtungen, wie zum Beispiel ein Storage Area Network (SAN) umfasst. Demnach kann der Prozessor 204 ein Storage Management Prozessor (SMP) umfassen. Das Programm 210 kann innerhalb eines einzelnen Computers 202 oder als Teil eines verteilten Computersystems, das ein Netzwerk von Computervorrichtungen umfasst, ausgeführt werden. Das Netzwerk kann einen oder mehrere Computer umfassen, die über ein Local Area Network und/oder eine Internetverbindung (die öffentlich oder sicher sein kann, zum Beispiel über eine Virtual Private Network(VPN)-Verbindung), oder über ein Fiber Channel SAN oder andere bekannte Netzwerkarten miteinander verbunden sind, wie es durch einen Fachmann verstanden werden wird. (Es ist zu beachten, dass ein Fiber Channel SAN typischerweise nur für Computer zur Kommunikation mit Speichersystemen verwendet wird und nicht miteinander).
  • Ein Fachmann wird erkennen, dass Aspekte der vorliegenden Erfindung als ein System, ein Verfahren oder ein Computerprogrammprodukt ausgeführt werden können. Demnach können Aspekte der vorliegenden Erfindung die Form einer ganzheitlichen Hardware-Ausführungsform, einer ganzheitlichen Software-Ausführungsform (umfassend Firmware, Residence Software, Microcode, etc.) oder eine Ausführungsform, die Software- und Hardwareaspekte kombiniert, annehmen, die alle im Allgemeinen hier als eine „Schaltung”, „Modul” oder „System” bezeichnet werden. Ferner können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammproduktes annehmen, das in einem oder mehreren computerlesbaren Medium/Medien mit computerlesbarem Programmcode, der darauf ausgebildet ist, annehmen.
  • Jegliche Kombination eines oder mehreren computerlesbarer Medien kann verwendet werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Ein computerlesbares Speichermedium kann zum Beispiel aber ohne Beschränkung ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, Apparat oder Vorrichtung oder irgendeine passende Kombination der vorhergehenden sein. Spezifischere Beispiele (eine nicht erschöpfende Liste) des computerlesbaren Speichermediums, können die folgenden umfassen: Eine elektrische Verbindung mit einem oder mehreren Drähten, eine tragbare Computerdiskette, eine Festplatte, ein Random Access Memory (RAM), ein Read Only Memory (ROM), ein Erasable Programmable Read Only Memory (EPROM oder Flash-Memory), eine Glasfaser, eine tragbare Compact Disc Read Only Memory (CD-ROM), eine optische Speichervorrichtung, eine magnetische Speichervorrichtung oder irgendeine passende Kombination der vorhergehenden. In dem Kontext dieses Dokumentes kann ein computerlesbares Speichermedium irgendein greifbares Medium sein, das ein Programm zur Nutzung durch oder in Verbindung mit einem Instruktions-Ausführungs-System, Apparat oder Vorrichtung umfassen oder speichern kann.
  • Der auf einem computerlesbaren Medium ausgeführte Programmcode kann unter Verwendung eines passenden Mediums übertragen werden, umfassend aber nicht begrenzt auf kabellos, kabelgebunden, optische Glasfaser, RF, usw. oder irgendeine Kombination der vorhergehenden. Der Computerprogrammcode zur Ausführung der Operationen für Aspekte der vorliegenden Erfindung kann in irgendeiner Kombination einer oder mehrerer Programmiersprachen geschrieben sein, was eine objektorientierte Programmiersprache wie zum Beispiel Java, Smalltalk, C++ oder Ähnliches und konventionelle prozessorientierte Programmiersprachen wie zum Beispiel die C-Programmiersprache oder ähnliche Programmiersprachen umfasst. Der Programmcode kann ganz auf dem Nutzer-Computer, teilweise auf dem Nutzer-Computer, als ein Stand Alone-Softwarepaket, teilweise auf dem Nutzer-Computer und teilweise auf einem Remote-Computer oder ganz auf dem Remote-Computer oder Server ausgeführt werden. Im letzteren Szenario kann der Remote-Computer mit dem Nutzer-Computer über irgendeine Netzwerkart miteinander verbunden sein, was ein Local Area Network (LAN) oder ein Wide Area Network (WAN) umfasst, oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Service-Providers).
  • Aspekte der Erfindung werden weiter unten mit Bezugnahme auf Flussdiagrammdarstellungen und/oder Blockdiagramme des Verfahrens, des Apparates (der Systeme) und der Computerprogrammprodukte nach Ausführungsformen der Erfindung beschrieben. Es wird verstanden werden, dass jeder der Flussdiagrammdarstellungen und/oder der Blockdiagramme und Kombinationen der Blöcke in den Flussdiagrammdarstellungen oder der Blockdiagramme durch Computerprogramminstruktionen implementiert werden kann. Diese Computerprogramminstruktionen können einen Prozessor eines Mehrzweckcomputers, eines Spezialcomputers oder anderen Datenverarbeitungseinrichtungen zur Herstellung einer Maschine zur Verfügung gestellt werden, sodass die Instruktionen, die durch den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungseinrichtungen ausgeführt werden, Mittel zur Implementierung der Funktionen/Handlungen implementieren, die in dem Flussdiagramm und/oder Blockdiagramm, Block oder Blöcken spezifiziert sind.
  • Diese Computerprogramminstruktionen können auch auf einem computerlesbaren Medium gespeichert sein, das einen Computer oder eine andere programmierbare Datenverarbeitungseinrichtung oder andere Vorrichtung dazu veranlassen kann, in einer bestimmten Art zu funktionieren, sodass die auf dem computerlesbaren Medium gespeicherten Instruktionen ein Fertigprodukt herstellen, das Instruktionen umfasst, die die Funktion/Handlung implementiert, die in dem Flussdiagramm und/oder Blockdiagramm, Block oder Blöcken spezifiziert sind. Die Computerprogramminstruktionen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungseinrichtung oder eine andere Vorrichtung geladen werden, um eine Serie von Betriebsschritten auszulösen, die auf dem Computer, der anderen programmierbaren Einrichtung oder der anderen Vorrichtung ausgeführt werden, um einen computerimplementierten Prozess herzustellen, sodass die Instruktionen, die auf dem Computer oder der anderen programmierbaren Einrichtung ausgeführt werden, Prozesse zur Implementierung der Funktionen/Handlungen bereitstellen, die in dem Flussdiagramm und/oder Blockdiagramm, Block oder Blöcken spezifiziert sind.
  • Das Flussdiagramm und die Blockdiagramme in den obigen Figuren illustrieren die Architektur, Funktionalität und Betriebsweise von möglichen Implementierungen des Systemes, des Verfahrens und der Computerprogrammprodukte nach verschiedenen Ausführungsformen der vorliegenden Erfindung. In dieser Hinsicht kann jeder Block in dem Flussdiagramm oder den Blockdiagrammen ein Modul, Segment oder Codeteil darstellen, der eine oder mehrere ausführbare Instruktionen zur Implementierung der spezifischen logischen Funktion/en umfasst. Es sollte auch beachtet werden, dass in einigen alternativen Implementierungen die Funktionen, die in dem Block angegeben sind, außerhalb der in den Figuren angegebenen Ordnungen auftreten. Zum Beispiel können zwei nacheinander dargestellte Blöcke in der Tat im Wesentlichen gleichzeitig ausgeführt werden oder die Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden, was von der involvierten Funktionalität abhängt. Es sollte auch beachtet werden, dass jeder Block der Blockdiagramme und/oder der Flussdiagrammdarstellung und Kombinationen der Blöcke in den Blockdiagrammen und/oder der Flussdiagrammdarstellung durch spezial hardwarebasierte Systeme, die die spezifizierten Funktionen oder Handlungen durchführen, oder Kombinationen von Spezial-Hardware und Computerinstruktionen implementiert werden kann.
  • Während eine oder mehrere Ausführungsformen der vorliegenden Erfindung im Detail dargestellt wurden, wird der Fachmann erkennen, dass Modifizierungen und Anpassungen dieser Ausführungsformen ohne vom Bereich der vorliegenden Erfindung wie sie in den folgenden Ansprüchen fortgesetzt wird, abzuweichen, durchgeführt werden können.

Claims (33)

  1. Verfahren zur Synchronisierung von Quell- und replizierter Instanzen von sequenziellen Zugriffsspeicherkomponenten in einer Computerumgebung durch eine Prozessorvorrichtung, umfassend: Konfiguration einer Replizierungs-Synchronisierungs-Tabelle (RST) für die Quellinstanz, wobei die RST zur Aufzeichnung verdichteter Informationen eines Trunkierungs- und eines Löschvorganges, der auf der Quellinstanz angewandt wird, ausgebildet ist; Aktualisierung der RST der Quellinstanz an einer Quellkomponente mit den verdichteten Informationen; und Bestimmung basierend auf der RST der Quellinstanz und der RST der replizierten Instanz von repräsentativen Daten für eine letzte Position auf der Quellkomponente, von der Daten an eine replizierte Komponente übertragen werden sollten, um eine volle Synchronisierung zu erreichen, wobei die Konfiguration der RST der Quellinstanz eine Verwaltung einer gegenwärtigen Datenendposition (EOD) für jede der Quell- und replizierten Instanzen umfasst, wobei die Aktualisierung der RST der Quellinstanz an der Quellkomponente mit den verdichteten Informationen Folgendes umfasst: Erzeugung eines neuen Eintrages der RST der Quellinstanz für den Trunkierungs- und/oder den Löschvorgang; wenn ein Schreibvorgang auf eine Position angewandt wird, die kleiner als die gegenwärtige EOD-Postion für die Quellinstanz ist, Bestimmung, dass der Schreibvorgang der Trunkierungsvorgang ist; Anhängen des neuen Eintrages an die RST der Quellinstanz, und wenn ein erster Positionswert basierend auf dem neuen Eintrag entweder kleiner oder gleich einem zweiten Positionswert basierend auf einem letzten existierenden Eintrag ist, Entfernen aller existierenden Einträge mit Positionswerten, die entweder größer oder gleich dem ersten Positionswert sind, wobei die Bestimmung der repräsentativen Daten der letzten Position auf der Quellkomponente, von der die Daten an die replizierte Komponente übertragen werden sollten, um die volle Synchronisierung zu erreichen, basierend auf der RST der Quellinstanz und der RST der replizierten Instanz Folgendes umfasst: Lokalisierung eines eindeutigen Eintrages in der RST der Quellinstanz an der Quellkomponente mit einem maximalen Vorgangs-Identifizierungs-Wertes von allen Einträgen in der RST mit identischen Einträgen in der RST der replizierten Instanz an der replizierten Komponente, wenn sowohl der eindeutige Eintrag als auch ein nachfolgender Eintrag in der RST der Quellinstanz existiert und ein nachfolgender Eintrag eines identischen Eintrages des eindeutigen Eintrages in der RST der replizierten Instanz existiert, Berechnung der letzten Position als ein erster Minimumwert zwischen einem Positionswert des nachfolgenden Eintrages in der RST der Quellinstanz, der gegenwärtigen EOD-Position der replizierten Instanz und einem Positionswert des nachfolgenden Eintrages des identischen Eintrages des eindeutigen Eintrages in der RST der replizierten Instanz.
  2. Verfahren nach Anspruch 1, ferner umfassend: eine Synchronisierung der replizierten Instanz basierend auf den repräsentativen Daten für die letzte Position mit der Quellinstanz während der Aktualisierung der RST der replizierten Instanz mit den repräsentativen Daten der letzten Position, um einen Synchronisierungsstatus wiederzugeben,
  3. Verfahren nach Anspruch 2, ferner umfassend: nachfolgend auf die Aktualisierung der RST der Quellinstanz an der Quellkomponente mit den verdichteten Informationen Übertragung der aktualisierten RST von der Quellinstanz an die replizierte Instanz, und nachfolgend auch die Bestimmung der repräsentativen Daten für die letzte Position auf der Quellkomponente, Übertragung der repräsentativen Daten für die letzte Position von der replizierten Instanz an die Quellinstanz.
  4. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Konfiguration der RST für die Quellinstanz die Konfiguration eines Eintrages in der RST umfasst, für jeden eines Vorgangs-Identifizierungs-Wertes, eines Positionswertes und eines eindeutigen System-Identifizierungs-Wertes umfasst.
  5. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Erzeugung des neuen Eintrages ferner die Ausführung zumindest eines der folgenden Schritte umfasst: Setzen des ersten Positionswertes auf eine Position in dem neuen Eintrag; und Setzen eines neuen eindeutigen System-Identifizierungs-Wertes eines Generators des neuen Eintrages als eine System-Identifizierung in dem neuen Eintrag.
  6. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Bestimmung ferner die Berechnung der letzten Position als einen zweiten Minimumwert zwischen dem Positionswert des nachfolgenden Eintrages in der RST der Quellinstanz und der gegenwärtigen EOD-Position der replizierten Instanz umfasst, wenn der nachfolgende Eintrag in der RST des identischen Eintrags in der replizierten Instanz nicht existiert.
  7. Verfahren nach Anspruch 6, wobei die Bestimmung ferner die Berechnung der letzten Position als einen dritten Minimumwert zwischen der gegenwärtigen EOD-Position der replizierten Instanz und dem Positionswert des nachfolgenden Eintrages des identischen Eintrages des eindeutigen Eintrages In der RST der replizierten Instanz umfasst, wenn der eindeutige Eintrag existiert und der nachfolgende Eintrag in der RST der Quellinstanz nicht existiert und der nachfolgende Eintrag des identischen Eintrages des eindeutigen Eintrages in der RST der replizierten Instanz existiert.
  8. Verfahren nach Anspruch 7, wobei die Bestimmung ferner eine Berechnung der letzten Position als die gegenwärtige EOD-Position der replizierten Instanz umfasst, wenn der eindeutige Eintrag existiert und jeder der nachfolgenden Einträge in der RST der Quellinstanz und der nachfolgenden Einträge der identischen Einträge des eindeutigen Eintrages in der RST der replizierten Instanz nicht existiert.
  9. Verfahren nach Anspruch 8, wobei die Bestimmung ferner eine Berechnung der letzten Position als 0 umfasst, wenn der eindeutige Eintrag nicht existiert.
  10. Verfahren nach Anspruch 1, 2 oder 3, wobei die Synchronisierung der replizierten Instanz mit der Quellinstanz während der Aktualisierung der RST der replizierten Instanz mit den repräsentativen Daten der letzten Position, um den Synchronisierungsstatus wiederzugeben, die Durchführung zumindest eines der folgenden Schritte umfasst: Schreiben der repräsentativen Daten für die letzte Position auf einen ständigen Speicherort, und Erweitern der gegenwärtigen EOD-Position für die replizierte Instanz.
  11. Verfahren nach Anspruch 10, wobei die Synchronisierung der replizierten Instanz mit der Quellinstanz während der Aktualisierung der RST der replizierten Instanz mit den repräsentativen Daten der letzten Position, um den Synchronisierungsstatus wiederzugeben, ferner eine Verifizierung der repräsentativen Daten der letzten Position unter Verwendung eines mathematischen Digests umfasst.
  12. Verfahren nach Anspruch 10, wobei die Synchronisierung der replizierten Instanz mit der Quellinstanz während der Aktualisierung der RST der replizierten Instanz mit den repräsentativen Daten der letzten Position, um den Synchronisierungsstatus wiederzugeben, ferner die Durchführung zumindest eines der folgenden Schritte umfasst: wenn die gegenwärtige EOD-Position für die replizierte Instanz keinen ersten Positionswert der Quellinstanz überschreitet, Anhängen eines neuen Eintrags an die RST der replizierten Instanz, sodass sowohl ein Vorgangs-Identifizierungs-Wert, ein Positionswert als auch ein eindeutiger System-Identifizierungs-Wert für den neuen Eintrag der RST der replizierten Instanz mit dem neuen Eintrag der RST der Quellinstanz übereinstimmt, und warm der erste Positionswert der Quellinstanz entweder kleiner oder gleich dem zweiten Positionswert ist, Entfernen aller Einträge von der RST der replizierten Instanz mit Positionswerten, die entweder größer oder gleich dem ersten Positionswert sind.
  13. System zur Synchronisierung von Quell- und replizierten Instanzen von sequenziellen Zugriffsspeicherkomponenten in einer Computerumgebung umfassend: einen Prozessor, der in der Computerumgebung ausführbar ist, wobei der Prozessor für Folgendes ausgebildet ist: Konfiguration einer Replizierungs-Synchronisierungs-Tabelle (RST) für die Quellinstanz, wobei die RST zur Aufzeichnung verdichteter Informationen für einen Trunkierungs- und/oder einen Löschvorgang ausgebildet ist, der auf der Quellinstanz angewandt wurde, Verwalten einer gegenwärtigen Datenendposition (EOD) sowohl für die Quell- als auch für die replizierten Instanzen, Aktualisierung der RST der Quellinstanz an einer Quellkomponente mit den verdichteten Informationen, Erzeugung eines neuen Eintrags der RST der Quellinstanz für den Trunkierungs- und/oder den Löschvorgang, Bestimmung, wenn ein Schreibvorgang auf eine Position angewandt Wird, die kleiner als die gegenwärtige EOD-Position für die Quellinstanz ist, dass der Schreibvorgang der Trunkierungsvorgang ist, Anhängen des neuen Eintrages an die RST der Quellinstanz, wenn ein erster Positionswert basierend auf dem neuen Eintrag entweder kleiner oder gleich einem zweiten Positionswert basierend auf einem letzten existierenden Eintrag ist, Entfernen aller existierenden Einträge mit Positionswerten, die entweder größer oder gleich dem ersten Positionswert sind, Übertragung der aktualisierten RST von der Quellinstanz an die replizierte Instanz, Bestimmung basierend auf der RST der Quellinstanz und der RST der replizierten Instanz von repräsentativen Daten einer letzten Position auf der Quellinstanz, von der Daten an eine replizierte Komponente übertragen werden sollten, um eine volle Synchronisierung zu erreichen, Lokalisierung eines eindeutigen Eintrages in der RST der Quellinstanz an der Quellkomponente mit einem maximalen Vorgange-Identifizierungs-Wertes von allen Einträgen in der RST mit identischen Einträgen in der RST der replizierten Instanz an der replizierten Komponente, wenn sowohl der eindeutige Eintrag als auch ein darauf folgender Eintrag in der RST der Quellinstanz existiert und ein darauf folgender Eintrag eines identischen Eintrages des eindeutigen Eintrages in der RST der replizierten Instanz existiert, Berechnung der letzten Position als ein erster Minimumwert zwischen einem Positionswert des nachfolgenden Eintrages in der RST der Quellinstanz, der gegenwärtigen EOD-Position der replizierten Instanz und einen Positionswert des nachfolgenden Eintrages des identischen Eintrages des eindeutigen Eintrages in der RST der replizierten Instanz, Übertragung der repräsentativen Daten der letzten Position von der replizierten Instanz an die Quellinstanz, und Synchronisierung der replizierten Instanz mit der Quellinstanz basierend auf den repräsentativen Daten der letzten Position während der Aktualisierung der RST der replizierten Instanz mit den repräsentativen Daten der letzten Position, um einen Synchronisierungsstatus wiederzugeben,
  14. System nach Anspruch 13, wobei der Prozessor ferner dazu ausgebildet ist, nachfolgend auf die Konfiguration der RST für die Quellinstanz einen Eintrag in der RST zu konfigurieren, um Felder sowohl für einen Vorgangs-Identifizierungs-Wert, einen Positionswert als auch einen eindeutigen System-Identifizierungs-Wert zu umfassen.
  15. System nach Anspruch 13 oder 14, wobei der Prozessor ferner nachfolgend auf die Erzeugung des neuen Eintrages zur Ausführung zumindest eines der vorliegenden Schritte ausgebildet ist: Setzen des ersten Positionswerts auf eine Position in dem neuen Eintrag, und Setzen eines neuen eindeutigen System-Identifizierungs-Wertes eines Generators des neuen Eintrages als eine Systemidentifizierung in dem neuen Eintrag.
  16. System nach Anspruch 13, 14 oder 15, wobei der Prozessor ferner nachfolgend auf die Bestimmung, ob der nachfolgende Eintrag in der RST des identischen Eintrages der replizierten Instanz nicht existiert, dazu ausgebildet ist, die letzte Position als einen zweiten Minimalwert zwischen dem Positionswert des nachfolgenden Eintrages in der RST der Quellinstanz und der gegenwärtigen EOD-Position der replizierten Instanz zu berechnen.
  17. System nach Anspruch 13, 14 oder 15, wobei der Prozessor ferner nachfolgend auf die Bestimmung, ob der eindeutige Eintrag existiert und der nachfolgende Eintrag in der RST der Quellinstanz nicht existiert und der nachfolgende Eintrag des identischen Eintrages des eindeutigen Eintrages in der RST der replizierten Instanz existiert, zur Berechnung der letzten Position als ein dritter Minimalwert zwischen der gegenwärtigen EOD-Position der replizierten Instanz und dem Positionswert des nachfolgenden Eintrages des identischen Eintrages des eindeutigen Eintrages in der RST der replizierten Instanz ausgebildet ist.
  18. System nach Anspruch 16, wobei der Prozessor nachfolgend auf die Bestimmung, ob der eindeutige Eintrag existiert und sowohl der nachfolgende Eintrag in der RST der Quellinstanz als auch der nachfolgende Eintrag des identischen Eintrages des eindeutigen Eintrages in der RST der replizierten Instanz nicht existiert, dazu ausgebildet ist, die letzte Position als die gegenwärtige EOD-Position der replizierten Instanz zu berechnen.
  19. System nach Anspruch 18, wobei der Prozessor ferner nachfolgend auf die Bestimmung, ob der eindeutige Eintrag nicht existiert, zur Berechnung der letzten Position als 0 ausgebildet ist.
  20. System nach Anspruch 15, wobei der Prozessor ferner nachfolgend auf die Synchronisierung der replizierten Instanz mit der Quellinstanz während der Aktualisierung der RST der replizierten Instanz mit den repräsentativen Daten der letzten Position, um den Synchronisierungsstatus wiederzugeben, zur Ausführung zumindest eines der folgenden Schritte ausgebildet ist: Schreiben der repräsentativen Daten der letzten Position an einen ständigen Speicherort, und Erweitern der gegenwärtigen EOD-Position für die replizierte Instanz.
  21. System nach Anspruch 20, wobei der Prozessor nachfolgend auf die Synchronisierung der replizierten Instanz mit der Quellinstanz während der Aktualisierung der RST der replizierten Instanz mit den repräsentativen Daten der letzten Position, um den Synchronisierungsstatus wiederzugeben, ferner zur Verifizierung der repräsentativen Daten der letzten Position unter Verwendung eines mathematischen Digests ausgebildet ist.
  22. System nach Anspruch 20, wobei der Prozessor ferner nachfolgend auf die Synchronisierung der replizierten Instanz mit der Quellinstanz während des Updates der RST mit der replizierten Instanz mit den repräsentativen Daten der letzten Position, um den Synchronisierungsstatus wiederzugeben, für die Durchführung zumindest eines der folgenden Schritte ausgebildet ist: wenn die gegenwärtige EOD-Position für die replizierte Instanz den ersten Positionswert der Quellinstanz überschreitet, Anhängen des neuen Eintrages an die RST der replizierten Instanz, sodass sowohl der Vorgangs-Identifizierungs-Wert, der Positionswert und der eindeutige System-Identifizierungs-Wert für den neuen Eintrag der RST der replizierten Instanz mit dem neuen Eintrag der RST der Quellinstanz übereinstimmt, und wenn der erste Positionswert der Quellinstanz entweder kleiner oder gleich dem zweiten Positionswert ist, Entfernen aller Einträge von der RST der replizierten Instanz mit Positionswerten, die entweder größer oder gleich dem ersten Positionswert sind.
  23. Computerprogrammprodukt zur Synchronisierung von Quell- und replizierten Instanzen von sequenziellen Zugriffsspeicherkomponenten in einer Computerumgebung durch eine Prozessorvorrichtung, wobei das Computerprogrammprodukt ein computerlesbares Speichermedium mit darauf gespeicherten computerlesbaren Programmcodeteilen umfasst, wobei die computerlesbaren Programmcodeteile Folgendes umfassen: einen ersten ausführbaren Teil zur Konfiguration einer Replizierungs-Synchronisierungs-Tabelle (RST) für die Quellinstanz, wobei die RST zum Aufzeichnen verdichteter Informationen für einen Trunkierungs- und/oder einen Löschvorgang, der auf der Quellinstanz angewandt wird, ausgebildet ist; einen zweiten ausführbaren Teil zur Aktualisierung der RST der Quellinstanz an einer Quellkomponente mit den verdichteten Informationen; einen dritten ausführbaren Teil zur Übertragung der aktualisierten RST von der Quellinstanz an die replizierte Instanz; einen vierten ausführbaren Teil zur Bestimmung von repräsentativen Daten einer letzten Position auf der Quellkomponente, von der Daten an eine replizierte Komponente übertragen werden sollten, um eine Vollsynchronisierung zu erreichen, basierend auf der RST der Quellinstanz und der RST der replizierten Instanz; einen fünften ausführbaren Teil zur Übertragung der repräsentativen Daten der letzten Position von der replizierten Instanz an die Quellinstanz; einen sechsten ausführbaren Teil zur Synchronisierung der replizierten Instanz mit der Quellinstanz während der Aktualisierung der RST der replizierten Instanz mit den repräsentativen Daten der letzten Position, um einen synchronen Status wiederzugeben, basierend auf den repräsentativen Daten der letzten Position, einen siebten ausführbaren Teil, um nachfolgend auf die Konfiguration der RST der Quellinstanz eine gegenwärtige Datenendposition (EOD) sowohl für die Quell- als auch für die replizierten Instanzen zu verwalten, einen achten ausführbaren Teil, um nachfolgend auf die Aktualisierung der RST der Quellinstanz an der Quellkomponente mit den verdichteten Informationen Folgendes durchzuführen: Erzeugung eines neuen Eintrags der RST der Quellinstanz für den Trunkierungs- und/oder den Löschvorgang, Bestimmung, wenn ein Schreibvorgang auf eine Position angewandt wird, die kleiner als die gegenwärtige EOD-Position für die Quellinstanz ist, dass der Schreibvorgang der Trunkierungsvorgang ist, Anhängen des neuen Eintrages an die RST der Quellinstanz, und wenn ein erster Positionswert basierend auf dem neuen Eintrag entweder kleiner oder gleich einem zweiten Positionswert basierend auf einem letzten existierenden Eintrag ist, Entfernen aller existierenden Einträge mit Positionswerten, die entweder größer oder gleich dem ersten Positionswert sind, einen neunten Teil, um nachfolgend auf die Bestimmung der repräsentativen Daten der letzten Position auf der Quellkomponente, von der die Daten an die replizierte Komponente übertragen werden sollten, um die volle Synchronisierung zu erreichen, die auf der RST der Quellinstanz und der RST der replizierten Instanz basiert, folgende Schritte durchzuführen: Lokalisierung eines eindeutigen Eintrages in der RST der Quellinstanz an der Quellkomponente mit einem maximalen Vorgangs-Identifizierungs-Wertes von allen Einträgen in der RST mit identischen Einträgen in der RST der replizierten Instanz an der replizierten Komponente, wenn sowohl der eindeutige Eintrag als auch ein darauf folgender Eintrag in der RST der Quellinstanz existiert und ein darauf folgender Eintrag eines identischen Eintrages des eindeutigen Eintrages in der RST der replizierten Instanz existiert, Berechnung der letzten Position als ein erster Minimumwert zwischen einem Positionswert des nachfolgenden Eintrages in der RST der Quellinstanz, der gegenwärtigen EOD-Position der replizierten Instanz und einen Positionswert des nachfolgenden Eintrages des identischen Eintrages des eindeutigen Eintrages in der RST der replizierten Instanz.
  24. Computerprogrammprodukt nach Anspruch 23, ferner umfassend einen zehnten ausführbaren Teil, um nachfolgend auf die Konfiguration der RST für die Quellinstanz einen Eintrag in der RST zu konfigurieren, um Felder sowohl für einen Vorgangs-Identifizierungs-Wert, einen Positionswert als auch einen eindeutige. System-Identifizierungs-Wert zu umfassen.
  25. Computerprogrammprodukt nach Anspruch 24 mit einem elften ausführbaren Teil, um nachfolgend auf die Erzeugung des neuen Eintrages zumindest einen der vorliegenden Schritte auszuführen: Setzen des ersten Positionswerts auf eine Position in dem neuen Eintrag, und Setzen eines neuen eindeutigen System-Identifizierungs-Wertes eines Generators des neuen Eintrages als eine Systemidentifizierung in dem neuen Eintrag.
  26. Computerprogrammprodukt nach Anspruch 24, ferner umfassend einen elften ausführbaren Teil, um nachfolgend auf die Bestimmung, ob der nachfolgende Eintrag in der RST des identischen Eintrages der replizierten Instanz nicht existiert, dazu ausgebildet ist, die letzte Position als einen zweiten Minimalwert zwischen dem Positionswert des nachfolgenden Eintrages in der RST der Quellinstanz und der gegenwärtigen EOD-Position der replizierten Instanz zu berechnen.
  27. Computerprogrammprodukt nach Anspruch 26, ferner umfassend einen zwölften ausführbaren Teil, um nachfolgend auf die Bestimmung, ob der eindeutige Eintrag existiert und der nachfolgende Eintrag in der RST der Quellinstanz nicht existiert und der nachfolgende Eintrag des identischen Eintrages des eindeutigen Eintrages in der RST der replizierten Instanz existiert, die letzte Position als einen dritten Minimalwert zwischen der gegenwärtigen EOD-Position der replizierten Instanz und dem Positionswert des nachfolgenden Eintrages des identischen Eintrages des eindeutigen Eintrages in der RST der replizierten Instanz zu berechnen.
  28. Computerprogrammprodukt nach Anspruch 27, ferner umfassend einen dreizehnten ausführbaren Teil, um zu bestimmen, ob der eindeutige Eintrag existiert und sowohl der nachfolgende Eintrag in der RST der Quellinstanz als auch der nachfolgende Eintrag des identischen Eintrages des eindeutigen Eintrages in der RST der replizierten Instanz nicht existiert, und um die letzte Position als die gegenwärtige EOD-Position der replizierten Instanz zu berechnen.
  29. Computerprogrammprodukt nach Anspruch 28, ferner umfassend einen vierzehnten ausführbaren Teil, um nachfolgend auf die Bestimmung, ob der eindeutige Eintrag nicht existiert, die letzte Position als 0 zu berechnen.
  30. Computerprogrammprodukt nach Anspruch 24, ferner umfassend einen elften ausführbaren Teil, um nachfolgend auf die Synchronisierung der replizierten Instanz mit der Quellinstanz während der Aktualisierung der RST der replizierten Instanz mit den repräsentativen Daten der letzten Position, um den Synchronisierungsstatus wiederzugeben, zumindest einen der folgenden Schritte auszuführen: Schreiben der repräsentativen Daten der letzten Position an einen ständigen Speicherort, und Erweitern der gegenwärtigen EOD-Position für die replizierte Instanz.
  31. Computerprogrammprodukt nach Anspruch 30, ferner umfassend einen zwölften ausführbaren Teil, um nachfolgend auf die Synchronisierung der replizierten Instanz mit der Quellinstanz während der Aktualisierung der RST der replizierten Instanz mit den repräsentativen Daten der letzten Position, um den Synchronisierungsstatus wiederzugeben, die repräsentativen Daten der letzten Position unter Verwendung eines mathematischen Digests zu verifizieren.
  32. Computerprogrammprodukt nach Anspruch 30, ferner umfassend einen zwölften ausführbaren Teil, um nachfolgend auf die Synchronisierung der replizierten Instanz mit der Quellinstanz während des Updates der RST mit der replizierten Instanz mit den repräsentativen Daten der letzten Position, um den Synchronisierungsstatus wiederzugeben, zumindest einen der folgenden Schritte durchzuführen: wenn die gegenwärtige EOD-Position für die replizierte Instanz den ersten Positionswert der Quellinstanz überschreitet, Anhängen des neuen Eintrages an die RST der replizierten Instanz, sodass sowohl der Vorgangs-Identifizierungs-Wert, der Positionswert und der eindeutige System-Identifizierungs-Wert für den neuen Eintrag der RST der replizierten Instanz mit dem neuen Eintrag der RST der Quellinstanz übereinstimmt, und wenn der erste Positionswert der Quellinstanz entweder kleiner oder gleich dem zweiten Positionswert ist, Entfernen aller Einträge von der RST der replizierten Instanz mit Positionswerten, die entweder größer oder gleich dem ersten Positionswert sind.
  33. Computerprogramm umfassend Programmcodemittel zur Durchführung aller Verfahrensschritte der Ansprüche 1 bis 12, wenn das Programm auf einem Computer ausgeführt wird.
DE112010003262.9T 2009-08-11 2010-07-28 Synchronisierung replizierter sequenzieller Zugriffsspeicherkomponenten Active DE112010003262B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/539,066 2009-08-11
US12/539,066 US8296536B2 (en) 2009-08-11 2009-08-11 Synchronization of replicated sequential access storage components
PCT/EP2010/060960 WO2011018338A1 (en) 2009-08-11 2010-07-28 Synchronization of replicated sequential access storage components

Publications (2)

Publication Number Publication Date
DE112010003262T5 DE112010003262T5 (de) 2013-01-10
DE112010003262B4 true DE112010003262B4 (de) 2014-05-15

Family

ID=43003401

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112010003262.9T Active DE112010003262B4 (de) 2009-08-11 2010-07-28 Synchronisierung replizierter sequenzieller Zugriffsspeicherkomponenten

Country Status (5)

Country Link
US (3) US8296536B2 (de)
CN (1) CN102483711B (de)
DE (1) DE112010003262B4 (de)
GB (1) GB2484835B (de)
WO (1) WO2011018338A1 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8671308B2 (en) 2011-05-02 2014-03-11 International Business Machines Corporation Optimizing disaster recovery systems during takeover operations
US8850139B2 (en) * 2011-05-11 2014-09-30 International Business Machines Corporation Changing ownership of cartridges
US9715507B2 (en) 2013-03-28 2017-07-25 Ctera Networks, Ltd. Techniques for reconciling metadata and data in a cloud storage system without service interruption
US9607068B2 (en) * 2013-10-18 2017-03-28 Sybase, Inc. Parallel truncation point management for log based replication
US9542468B2 (en) * 2014-03-24 2017-01-10 Hitachi, Ltd. Database management system and method for controlling synchronization between databases
JP5963324B2 (ja) * 2014-08-11 2016-08-03 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 仮想シーケンシャルアクセスボリュームのデータのコピー方法、システム
US10083216B2 (en) 2015-05-08 2018-09-25 International Business Machines Corporation Idling individually specified objects during data replication
US11669546B2 (en) * 2015-06-30 2023-06-06 Pure Storage, Inc. Synchronizing replicated data in a storage network
US10846115B1 (en) * 2015-08-10 2020-11-24 Amazon Technologies, Inc. Techniques for managing virtual instance data in multitenant environments
US10168920B2 (en) * 2015-08-21 2019-01-01 International Business Machines Corporation Duplexing file system data
US10496672B2 (en) * 2015-12-30 2019-12-03 EMC IP Holding Company LLC Creating replicas at user-defined points in time
US11914883B2 (en) 2022-03-04 2024-02-27 International Business Machines Corporation Copy from LTFS to disk

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5608865A (en) * 1995-03-14 1997-03-04 Network Integrity, Inc. Stand-in Computer file server providing fast recovery from computer file server failures
US20050216788A1 (en) * 2002-11-20 2005-09-29 Filesx Ltd. Fast backup storage and fast recovery of data (FBSRD)

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5583995A (en) 1995-01-30 1996-12-10 Mrj, Inc. Apparatus and method for data storage and retrieval using bandwidth allocation
US5819020A (en) * 1995-10-16 1998-10-06 Network Specialists, Inc. Real time backup system
US5870759A (en) 1996-10-09 1999-02-09 Oracle Corporation System for synchronizing data between computers using a before-image of data
EP1244221A1 (de) 2001-03-23 2002-09-25 Sun Microsystems, Inc. Verfahren und System zur Entfernung von Redundanzdaten
US20040193952A1 (en) * 2003-03-27 2004-09-30 Charumathy Narayanan Consistency unit replication in application-defined systems
CN100502389C (zh) * 2004-06-28 2009-06-17 上海理工大学 一种基于ogsa规范的网格计算过程表示系统及其实现方法
US7752387B2 (en) 2006-03-21 2010-07-06 International Business Machines Corporation Offloading firmware update tasks from RAID adapter to distributed service processors in switched drive connection network enclosure
US8301589B2 (en) 2006-05-10 2012-10-30 Sybase, Inc. System and method for assignment of unique identifiers in a distributed environment
US7921077B2 (en) 2006-06-29 2011-04-05 Netapp, Inc. System and method for managing data deduplication of storage systems utilizing persistent consistency point images
US7504969B2 (en) 2006-07-11 2009-03-17 Data Domain, Inc. Locality-based stream segmentation for data deduplication
US7827137B2 (en) 2007-04-19 2010-11-02 Emc Corporation Seeding replication
US8204866B2 (en) 2007-05-18 2012-06-19 Microsoft Corporation Leveraging constraints for deduplication
US8074103B2 (en) 2007-10-19 2011-12-06 Oracle International Corporation Data corruption diagnostic engine
US7870105B2 (en) 2007-11-20 2011-01-11 Hitachi, Ltd. Methods and apparatus for deduplication in storage system
US20090132534A1 (en) 2007-11-21 2009-05-21 Inventec Corporation Remote replication synchronizing/accessing system and method thereof
US7539710B1 (en) 2008-04-11 2009-05-26 International Business Machines Corporation Method of and system for deduplicating backed up data in a client-server environment

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5608865A (en) * 1995-03-14 1997-03-04 Network Integrity, Inc. Stand-in Computer file server providing fast recovery from computer file server failures
US20050216788A1 (en) * 2002-11-20 2005-09-29 Filesx Ltd. Fast backup storage and fast recovery of data (FBSRD)

Also Published As

Publication number Publication date
US8706994B2 (en) 2014-04-22
US20110040942A1 (en) 2011-02-17
GB2484835A (en) 2012-04-25
WO2011018338A1 (en) 2011-02-17
CN102483711A (zh) 2012-05-30
US20130132343A1 (en) 2013-05-23
GB2484835B (en) 2016-10-19
US20120215999A1 (en) 2012-08-23
GB201119247D0 (en) 2011-12-21
CN102483711B (zh) 2015-01-28
US8533412B2 (en) 2013-09-10
US8296536B2 (en) 2012-10-23
DE112010003262T5 (de) 2013-01-10

Similar Documents

Publication Publication Date Title
DE112010003262B4 (de) Synchronisierung replizierter sequenzieller Zugriffsspeicherkomponenten
DE60317383T2 (de) Datenwiederherstellungsvorrichtung unter Verwendung von Journaldaten und Identifikationsinformation
DE102013205069B4 (de) Erhöhte effizienz bei inline-deduplizierungen
DE112018003084B4 (de) Asynchrones lokales und entfernt angeordnetes erzeugen von konsistenten zeitpunkt-momentkopien in konsistenzgruppen
DE60312746T2 (de) Wiederherstellung nach fehlern in datenverarbeitungsanlagen
DE112013001905B4 (de) Erhöhte Inline-Deduplizierungseffizienz
DE602005002532T2 (de) Cluster-datenbank mit ferndatenspiegelung
DE112020003423T5 (de) Architektur von virtuellem speichersystem
DE102013209528A1 (de) Benutzergesteuerte Replikation in einem System für synchronisierte Objektreplikationen
DE19924822A1 (de) Verfahren und Vorrichtung für Katastrophen-Behebung von Dateisystemen
DE112013000900B4 (de) Bewahren von Redundanz in Datendeduplizierungssystemen unter Verwendung eines Anzeigers
DE112018003585B4 (de) Verfahren, Computerprogrammprodukt und Speicherbandlaufwerk-Hardwareeinheit zum Verbessern der Deduplizierung eines Bandlaufwerkspeichers
DE112018004008B4 (de) Auf dateisysteminhalten beruhende sicherheit
DE112008002947T5 (de) System zum automatischen Abschatten verschlüsselter Daten und von Dateiverzeichnisstrukturen
DE112012001267T5 (de) Verfahren, Systeme und Computerprogrammprodukte zur abgestimmten Notfallwiederherstellung
DE112011103666T5 (de) Speicherverwaltung in Cluster-Datenverarbeitungssystemen
DE19924900A1 (de) Verfahren und Vorrichtung für Katastrophen-Behebung von Dateisystemen
DE10112941A1 (de) System und Verfahren für das parallele Lesen von primären und sekundären Sicherungen zur Wiederherstellung mehrerer gemeinsam benutzter Datenbankdateien
DE102013208930A1 (de) Zusammenfassen von Einträgen in einem Deduplizierungs-lndex
DE112012004937T5 (de) Fingerabdruckbasierte Datendeduplizierung
DE112012003695T5 (de) Aufrechterhalten mehrerer Zielkopien
DE102009031923A1 (de) Verfahren zum Verwalten von Datenobjekten
DE112011103367T5 (de) Replizieren von Daten
DE102013201174A1 (de) Online-Überprüfung einer Standby-Datenbank in physischen Replikationsumgebungen mit Protokollversand
DE112014000251T5 (de) Echtzeitklassifizierung von Daten in Datenkomprimierungsdomänen

Legal Events

Date Code Title Description
R163 Identified publications notified
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final
R020 Patent grant now final

Effective date: 20150217