DE112012002762T5 - Replikationen von Datenobjekten von einem Quellserver auf einen Zielserver - Google Patents

Replikationen von Datenobjekten von einem Quellserver auf einen Zielserver Download PDF

Info

Publication number
DE112012002762T5
DE112012002762T5 DE112012002762.0T DE112012002762T DE112012002762T5 DE 112012002762 T5 DE112012002762 T5 DE 112012002762T5 DE 112012002762 T DE112012002762 T DE 112012002762T DE 112012002762 T5 DE112012002762 T5 DE 112012002762T5
Authority
DE
Germany
Prior art keywords
destination
server
objects
source
destination server
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.)
Pending
Application number
DE112012002762.0T
Other languages
English (en)
Inventor
Matthew J. Anglin
David M. Cannon
Colin S. Dawson
Barry Fruchtman
Mark A. Haye
Howard N. Martin
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 DE112012002762T5 publication Critical patent/DE112012002762T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation

Abstract

Datenobjekte werden von einem Quellspeicher, der durch einen Quellserver verwaltet wird, auf einen Zielspeicher repliziert, der durch einen Zielserver verwaltet wird. Auf dem Quellserver wird eine Quellliste von Objekten aufgebaut, die auf den Zielserver repliziert werden sollen. Der Zielserver wird abgefragt, um eine Liste von Objekten auf dem Zielserver zu empfangen. Eine Replikationsliste wird aufgebaut, die auf den Zielserver zu übertragende Objekte in der Quellliste angibt, die nicht in der Zielliste enthalten sind. Zu jedem Objekt in der Replikationsliste werden Daten des Objektes, die nicht bereits auf dem Zielspeicher vorhanden sind, an den Zielserver gesendet, und Metadaten über das Objekt werden an den Zielserver gesendet, um den Zielserver zu veranlassen, die Metadaten in einer Zielserver-Replikationsdatenbank in einem Eintrag zu dem Objekt aufzunehmen. Zu einer Quellserver-Replikationsdatenbank wird ein Eintrag für das Objekt hinzugefügt.

Description

  • HINTERGRUND DER ERFINDUNG
  • 1. Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft ein Computerprogrammprodukt, ein System und ein Verfahren zur Replikation von Datenobjekten von einem Quellserver auf einen Zielserver.
  • 2. Beschreibung des Stands der Technik
  • Die Datenreplikation dient dazu, zu mehreren Knoten gehörende Daten von einem Server auf einen anderen Server zu replizieren, sodass die Clients ihre Daten vom Replikationsort wiederherstellen können, wenn der Haupt-Quellserver ausfällt, auf den die Daten gesichert werden. Ein Speicher-Verwaltungsserver wie zum Beispiel Tivoli® Storage Manager (TSM) speichert Datenobjekte in einem oder mehreren Speicherpools und nutzt eine Datenbank, um Metadaten über die gespeicherten Objekte zu überwachen. (Tivoli ist eine weltweite Marke der International Business Machines Corporation.) Der Speicher-Verwaltungsserver kann die Datenobjekte zum Zweck der Notfallwiederherstellung auf einen entfernt angeordneten Speicherort replizieren. Zu einigen Verfahren, die zur Übertragung von Daten an einen entfernt angeordneten Speicherort verwendet werden, gehören das physische Transportieren von Bändern, die Kopien der Daten enthalten, vom Quellort zum Notfallwiederherstellungsort, das elektronische Übertragen der Daten (TSM-Export/-Import) oder das Verwenden der Hardwarereplikation des Plattenspeichers des Quellortes, um eine Spiegelung der Daten zu erzeugen. Zu verfügbaren Replikations-Hardwareeinheiten gehören VTL-Produkte (VTL = Virtual Tape Library, virtuelles Bandarchiv), die unter Verwendung von Deduplizierungshardware eine Replikation auf Blockebene durchführen.
  • Die Datendeduplizierung ist eine Komprimierungstechnik zum Beseitigen redundanter Daten, mit der die Speicherausnutzung verbessert wird. Die Deduplizierung verringert die erforderliche Speicherkapazität, da nur eine Kopie einer einzelnen Dateneinheit, die auch als „Datenblock” (Chunk) oder „Speicherbereich” (Extent) bezeichnet wird, gespeichert wird. Auf Platten beruhende Speichersysteme wie zum Beispiel ein Speicher-Verwaltungsserver und Virtual Tape Library (VTL) können die Deduplizierungstechnologie realisieren, um redundante Daten-Chunks zu erkennen und die Duplizierung verringern, indem die redundante Speicherung derartiger Datenblöcke vermieden wird.
  • Ein Deduplizierungssystem teilt eine Datei in eine Reihe von Datenblöcken bzw. Speicherbereichen auf. Das Deduplizierungssystem ermittelt, ob beliebige der Datenblöcke bereits gespeichert sind, und geht dann dazu über, nur diese nicht redundanten Datenblöcke zu speichern. Die Redundanz kann während des Speicherns von Datenblöcken in der Datei oder an den bereits im System gespeicherten Datenblöcken geprüft werden.
  • In der Technik besteht ein Bedarf an verbesserten Techniken zum Replizieren von Objekten von einem Server auf einen anderen.
  • KURZDARSTELLUNG
  • Bereitgestellt werden ein Computerprogrammprodukt, ein System und ein Verfahren zur Replikation von Datenobjekten von einem Quellspeicher, der durch einen Quellserver verwaltet wird, auf einen Zielspeicher, der durch einen Zielserver verwaltet wird. Auf dem Quellserver wird eine Quellliste von Objekten aufgebaut, die auf den Zielserver repliziert werden sollen. Der Zielserver wird abgefragt, um eine Liste von Objekten auf dem Zielserver zu empfangen. Eine Replikationsliste wird aufgebaut, die auf den Zielserver zu übertragende Objekte in der Quellliste angibt, die nicht in der Zielliste enthalten sind. Zu jedem Objekt in der Replikationsliste werden Daten des Objektes, die nicht bereits auf dem Zielspeicher vorhanden sind, an den Zielserver gesendet, und Metadaten über das Objekt werden an den Zielserver gesendet, um den Zielserver zu veranlassen, die Metadaten in einer Zielserver-Replikationsdatenbank in einem Eintrag zu dem Objekt aufzunehmen. Zu einer Quellserver-Replikationsdatenbank wird ein Eintrag für das Objekt hinzugefügt.
  • Bei einer weiteren Ausführungsform wird vom Quellserver eine Abfrage auf eine Zielliste von Objekten auf dem Zielserver empfangen. Die Zielliste der Objekte auf dem Zielserver wird an den Quellserver gesendet. Daten für Objekte, die im Zielspeicher gespeichert werden sollen, werden vom Quellserver empfangen. Metadaten zu den Daten, die zu den zu replizierenden Daten empfangen wurden, werden vom Quellserver empfangen. Zu jedem Objekt, zu dem Daten empfangen wurden, wird zu einer Zielserver-Replikationsdatenbank ein Eintrag hinzugefügt, der die zu dem Objekt empfangenen Metadaten aufweist.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 veranschaulicht eine Datenverarbeitungsumgebung, in der Ausführungsformen realisiert sind.
  • 2 veranschaulicht eine Ausführungsform von Objektinformationen.
  • 3 veranschaulicht eine Ausführungsform eines Eintrags in einer Quell-Replikationsdatenbank und einer Ziel-Replikationsdatenbank.
  • 4 veranschaulicht eine Ausführungsform eines Eintrags mit Datenblock-Speicherinformationen.
  • 5 veranschaulicht eine Ausführungsform eines Datenblock-Indexeintrags.
  • Die 6, 7a und 7b veranschaulichen eine Ausführungsform von Operationen zur Verarbeitung einer Replikationsanforderung.
  • 8 veranschaulicht eine Ausführungsform von Operationen, um Objekte unter Verwendung der Deduplizierung zu replizieren.
  • 9 veranschaulicht eine Realisierungsform eines Knotens in der Netzwerk-Datenverarbeitungsausführungsform.
  • 10 veranschaulicht eine Ausführungsform einer Cloud-Computing-Umgebung.
  • 11 veranschaulicht eine Ausführungsform von Abstraktionsmodellschichten einer Cloud-Computing-Umgebung.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Beschriebene Ausführungsformen replizieren Datenobjekte von einem Quellserver auf einen Zielserver in einer Weise, bei der die Übertragungsbandbreite optimaler genutzt wird, indem die Übertragung von Daten vermieden wird, die bereits auf dem Zielserver zur Verfügung stehen. Der Quellserver sendet ferner Metadaten über Objekte, die bereits auf dem Zielserver verfügbare Daten oder Datenblöcke aufweisen, um den Zielserver zu veranlassen, zu einer Replikationsdatenbank einen Eintrag für Objekte hinzuzufügen, die sich bereits auf dem Zielserver befinden, und um die Konsistenz von Daten und Metadaten zu gewährleisten. Die beschriebenen Ausführungsformen ermöglichen es dem Benutzer, Replikationskriterien bereitzustellen, um die Auswahl und Filterung von Objekten zu ermöglichen, die auf einer Objektebene repliziert werden sollen. Weitere Ausführungsformen nutzen ebenfalls die Deduplizierung, um das Übermitteln von Datenblöcken von gegenwärtig replizierten Objekten zu vermeiden, die bereits auf dem Zielserver gespeichert sind.
  • 1 veranschaulicht eine Ausführungsform einer Datenverarbeitungsumgebung 2, die einen Quellserver 4a und einen Zielserver 4b mit einem Quell-Replikationsmanager 6a bzw. einem Ziel-Replikationsmanager 6b aufweist, um die Daten für Objekte auf einem Quellspeicher 8a auf einen Zielspeicher 8b zu replizieren. Jede Servereinheit 4a, 4b kann als Quell- und Zielserver fungieren. Die Replikation kann im Auftrag eines Client-Knotens durchgeführt werden, der mit dem Quellserver 4a verbunden ist, um Objekte zu replizieren, die zu dem Client-Knoten gehören. Der Quellserver 4a und der Zielserver 4b verwalten in den Objektinformationen 10a bzw. 10b festgelegte Datenobjekte. Die Daten zu den Datenobjekten, die in Form getrennter Einheiten von Daten vorliegen können, die als „Datenblöcke” 12a, 12b bezeichnet werden, werden im Quellspeicher 8a bzw. Zielspeicher 8b verwaltet. Jeder Server 4a, 4b verwaltet Datenblock-Speicherinformationen 14a, 14b, die Speicherstellen im Speicher 8a, 8b angeben, an denen sich Datenblöcke von Datenobjekten befinden, die in den Objektinformationen 10a, 10b festgelegt sind. Die Objektinformationen 10a, 10b weisen Metadaten oder Einträge zu jedem festgelegten Datenobjekt auf, die aus einer sortierten Liste von Datenblöcken 12a, 12b von Daten bestehen, die jedem Objekt zugewiesen sind.
  • Der Quellserver 4a und der Zielserver 4b verwalten eine Quell-Replikationsdatenbank 16a bzw. eine Ziel-Replikationsdatenbank 16b, die Informationen über Datenobjekte auf dem Quellserver 4a aufweisen, die im Auftrag eines Client-Knotens auf den Zielserver 4b repliziert wurden. Der Quellserver 4a verwaltet und verwendet ferner eine Quellliste 30, die zu replizierende Objekte auf dem Quellserver 4a aufweist, die ein Replikationskriterium erfüllen wie zum Beispiel Client-Knoten, zu dem die Objekte gehören, Dateibereich auf dem Client-Knoten und Datentyp; eine Zielliste 32, die Objekte auf dem Zielserver 4b aufweist, die das Replikationskriterium erfüllen; einen Zielbestand 34 von Objekten im Zielserver 4b einschließlich einer eindeutigen Kennung oder eines eindeutigen Attributs zur eindeutigen Kennzeichnung der Objekte; und eine Replikationsliste 36 von Dateien in der Zielliste 30, die nicht in der Zielliste 32 enthalten sind und auf den Zielserver 4b replizieren werden sollen. Die Kriterien, die zum Aufbau des Zielbestands 34 verwendet werden, können weiter gefasst als die Replikationskriterien oder identisch mit diesen sein.
  • Eine Deduplizierungskomponente 24 stellt für den Quellserver 4a und den Zielserver 4b Deduplizierungsdienste bereit, um zu gewährleisten, dass auf dem empfangenden Server 4a, 4b bereits vorhandene Datenblockduplikate nicht erneut gesendet werden, wenn der Quellserver 4a oder der Zielserver 4b Objektdaten sendet. Die Deduplizierungskomponente 24 weist einen Deduplizierungsmanager 26 auf, um Deduplizierungsoperationen durchzuführen, und einen Datenblockindex 28 wie zum Beispiel einen Deduplizierungsindex, der Informationen über die Datenblöcke 12a, 12b bereitstellt, die Objekten zugewiesen wurden. Der Deduplizierungsmanager 26 gewährleistet, dass nur eine Kopie jedes Datenblocks im Quellspeicher 8a und Zielspeicher 8b beibehalten wird, wenn Datenobjekte zwischen dem Quellserver 4a und dem Zielserver 4b übertragen werden, obwohl ein Datenblock in einem Speicher 8a, 8b in mehreren Datenobjekten enthalten sein kann, die für den Server 4a, 4b festgelegt sind, der diesen Speicher verwaltet. Der Deduplizierungsmanager 26 kann außerdem Objektinformationen 10c verwalten, die Informationen über die Zuweisung von Datenblöcken zu Objekten auf dem Quellserver 4a und Zielserver 4b aufweisen.
  • Zur Durchführung der Deduplizierung kann der Quell-Replikationsmanager 6a oder eine andere Komponente nach dem Vorliegen eines neuen oder nicht geänderten Datenblocks in einem Datenobjekt aus einer Datenbank einen Hash-Wert zu dem Datenblock wie zum Beispiel die Datenblock-Speicherinformationen 14a, 4b empfangen. Bei einer alternativen Ausführungsform kann der Quell-Replikationsmanager 6a den Hash-Wert berechnen. Der Quell-Replikationsmanager 6a übermittelt den abgerufenen Hash-Wert für den Datenblock an den Deduplizierungsmanager 26, um zu ermitteln, ob der Datenblockindex 28 einen übereinstimmenden Hash-Wert aufweist. Wenn nicht, benachrichtigt der Deduplizierungsmanager 26 den Quell-Replikationsmanager 6a, dass der Datenblock neu ist, und der Quell-Replikationsmanager 6a sendet eine vollständige Kopie des neuen oder nicht geänderten Datenblocks in dem Datenobjekt zwecks Speicherung im Zielspeicher 8b an den Zielserver 4b. Wenn anderenfalls der Datenblockindex 28 eine übereinstimmende Kopie des Hash-Wertes aufweist, muss der Quell-Replikationsmanager 6a unter Umständen keine vollständige Kopie des Datenblocks übertragen. Stattdessen kann der Quell-Replikationsmanager 6a den Auszug für den Datenblock und seine Position im Objekt übertragen. Alternativ kann der Quell-Replikationsmanager 6a mit der Deduplizierungskomponente 24 interagieren, um zu ermitteln, ob er einen Datenblock an den Zielserver 4b senden muss.
  • Bei einer Ausführungsform der Duplizierung auf der Seite der Quelle kommuniziert der Quell-Replikationsmanager 6a Daten mit dem Deduplizierungsmanager 26, um zu ermitteln, ob Datenblöcke an den Zielserver 4b gesendet werden sollen, sodass nur neue Datenblöcke an den Zielserver 4b gesendet werden, die nicht bereits im Datenblockindex 28 als im Zielspeicher 8b vorhanden angegeben sind. Bei einer Ausführungsform der Deduplizierung auf der Seite des Ziels sendet der Quellserver 4a alle zu replizierenden Datenblöcke eines Datenobjektes an den Zielserver 4b, und der Ziel-Replikationsmanager 6b fordert die Deduplizierungskomponente 24 auf, zu ermitteln, welche Datenblöcke neue Datenblöcke sind, die im Zielspeicher 8b gespeichert werden sollen.
  • Der Quellserver 4a, Zielserver 4b und die Deduplizierungskomponente 24 können in getrennten Computereinheiten realisiert sein, die über ein Netzwerk wie zum Beispiel ein lokales Netzwerk (Local Area Network, LAN), Speichernetzwerk (Storage Area Network, SAN), Weitverkehrsnetzwerk (Wide Area Network, WAN) usw. Daten austauschen. Bei weiteren Ausführungsformen können der Quellserver 4a, Zielserver 4b und/oder die Deduplizierungskomponente 24 auf einem oder zwei Computersystemen realisiert sein. Wenn sich der Quellserver 4a, Zielserver 4b und/oder die Deduplizierungskomponente 24 im selben System befinden, können sie über einen Bus oder über den Hauptspeicher Daten austauschen.
  • Der Quellspeicher 8a und der Zielspeicher 8d können in einer oder mehreren nach dem Stand der Technik bekannten Speichereinheiten konfiguriert sein, zum Beispiel in untereinander verbundenen Festplattenlaufwerken (die z. B. als DASD, RAID, JBOD usw. konfiguriert sind), in Halbleiterspeichereinheiten (z. B. EEPROM (Electrically Erasable Programmable Read-Only Memory, elektrisch löschbarer und programmierbarer Nur-Lese-Speicher), in Flash-Speicher, in einem Flash-Laufwerk, in Storage-Class Memory (SCM)), in einem elektronischen Speicher, in Magnetbandmedien, in Bandkassetten usw.
  • Der Quell-Replikationsmanager 6a, Ziel-Replikationsmanager 6b und der Deduplizierungsmanager 26 können Softwareprogramme in einem Speicher aufweisen, die durch einen Prozessor ausgeführt werden. Bei einer alternativen Ausführungsform kann ein Teil oder die Gesamtheit der Programme 6a, 6b und 26 in einer Hardwarekomponente wie zum Beispiel in einer zweckgebundenen integrierten Schaltung wie zum Beispiel in einer anwendungsspezifischen integrierten Schaltung (Application Specific Integrated Circuit, ASIC), in einer Erweiterungskarte usw. realisiert sein.
  • Obwohl der Quell-Replikationsmanager 6a, Ziel-Replikationsmanager 6b und der Deduplizierungsmanager 26 als separate Komponenten gezeigt sind, können die von diesen Komponenten 6a, 6b und 26 durchgeführten Funktionen bei alternativen Realisierungsformen in einer einzigen Programmkomponente in einem einzigen Computersystem oder in mehr als zwei Programmkomponenten in mehr als zwei Computereinheiten realisiert sein. Beispielsweise kann die Deduplizierungskomponente 24 getrennt auf dem Quellserver 4a und dem Zielserver 4b oder als Teil von Komponenten des Quell-Replikationsmanagers 6a oder des Ziel-Replikationsmanagers 6b realisiert sein. Bei Ausführungsformen, bei denen die Deduplizierungskomponente 24 auf jedem Server 4a, 4b getrennt realisiert ist, kann jeder Server 4a, 4b seine eigene Deduplizierungskomponente 24 aufweisen und Objektinformationen 10c und den Datenblockindex 28 verwalten.
  • Der Quell-Replikationsmanager 6a und der Ziel-Replikationsmanager 6b können von Client-Knoten verwendet werden, um als Teil der Wiederherstellungsoperation Objekte wiederherzustellen.
  • 2 veranschaulicht eine Ausführungsform von Objektinformationen 50 zu einem Objekt, das in den Objektinformationen 10a, 10b, 10c verwaltet wird. Die Objektinformationen 50 zu einem Objekt weisen eine Kennung (ID) 52 des Objektes und Kennzeichnungsinformationen zu einem oder mehreren Datenblöcken 54a, 54b ... 54n von Daten auf, die im Objekt 52 zugewiesen sind. Die Objektinformationen 50 können eine sortierte Liste von Bezügen auf Datenblöcke (C1 ... Cn) verwalten, die die Reihenfolge 1 ... n angeben, in der die Datenblöcke in dem Datenobjekt vorkommen. Zu jedem Datenblock (Ci) verwalten die Objektinformationen 54i einen Auszug (di) des Datenblocks und eine Länge (li) des Datenblocks. Auf diese Weise stellen die Objektinformationen 50 einen Bezug auf die im Datenobjekt enthaltenen Datenblöcke, zum Beispiel Auszug und Länge, bereit, aber nicht die eigentlichen Daten. Der Auszug (d) kann berechnet werden, indem der Datenblock verarbeitet wird, um einen eindeutigen Wert für diesen Datenblock zu erzeugen. Beispielsweise kann der Auszug bei einer Ausführungsform einen kryptographischen Auszug MD5 (Message-Digest Algorithm 5) oder SHA-1 (Secure Hash Algorithm 1) aufweisen, der kryptographische Hash-Werte jedes Datenblocks in dem Datenobjekt berechnet.
  • 3 veranschaulicht eine Ausführungsform eines Eintrags 60 in der Quell-Replikationsdatenbank 16a und der Ziel-Replikationsdatenbank 16b zu jedem Objekt, das gegenwärtig vom Quellserver 4a auf den Zielserver 4b repliziert wird. Der Eintrag 60 weist eine Objektkennung (ID) 62; ein eindeutiges Objektattribut 64, das eine eindeutige Kennung des Objektes wie zum Beispiel eine Signatur, einen Hash-Wert oder eine eindeutige Namenskonvention bereitstellt; eine Serverkennung (ID) 66, aufweisend eine Kennung des Servers 4a, 4b, der das Objekt 62 verwaltet; eine Replikationsserverkennung 68 zur Kennzeichnung des anderen Servers 4a, 4b in der Replikationsbeziehung (beispielsweise weist ein Eintrag 60 in der Quell-Replikationsdatenbank 16a die Kennung des Zielservers 4b für Feld 68 auf, und einen Eintrag 60 in der Ziel-Replikationsdatenbank 16b weist die Kennung des Quellservers 4a für Feld 68 auf); eine Kennung 70 des replizierten Objektes, die die Kennung angibt, die dem Objekt auf dem Replikationsserver 68 zugewiesen ist; eine Serverknotenkennung (ID) 72, die für den Client-Knoten, zu dem das Objekt 60 gehört, die Kennung des Quellservers 4a bereitstellt; eine Kennung 74 des Quellservers 4a für den Dateibereich, die den Dateibereich einschließlich des Objektes 60 kennzeichnet; eine Replikationsserver-Knotenkennung 76, aufweisend die Kennung, die der Zielserver 4b, d. h. der Replikationsserver, dem Client-Knoten zuweist, zu dem das Objekt 60 gehört; eine Dateibereichskennung 78 des Replikationsservers, aufweisend eine Kennung, die der Zielserver 4b (Replikationsserver) dem Dateibereich zuweist, der das Objekt 60 aufweist; und eine Datentypkennung 80 auf, die einen Datentyp des Objektes 60 kennzeichnet.
  • Demzufolge weist jeder Server 4a, 4b bei bestimmten Ausführungsformen seine eigene Kennung für den Knoten 72 und 76 bzw. den Dateibereich 74 und 78 zu.
  • 4 veranschaulicht eine Ausführungsform eines Eintrags 81 mit Datenblock-Speicherinformationen, den der Quellserver 4a und der Zielserver 4b in ihren jeweiligen Datenblock-Speicherinformationen 14a, 14b zu jedem Datenblock 12a, 12b verwalten, der in dem jeweiligen, von ihnen verwalteten Speicher 8a, 8b verwaltet wird. Die Informationen 81 des Datenblock-Speichereintrags weisen eine Datenblockkennung 82 auf; eine Speicherposition 84 im Speicher 8a, 8b des gekennzeichneten Datenblocks wie zum Beispiel eine logische oder physische Adresse, die kennzeichnet, wo der Datenblock im Speicher 8a, 8b gespeichert ist; und einen Referenzzählwert 86, der die Anzahl von Objekten auf dem Quellserver 4a oder Zielserver 4b angibt, die den Datenblock referenzieren. Ein dereferenzierter Datenblock 12a, 12b, der in keinem Objekt referenziert wird, weist einen Referenzzählwert 86 von null auf und kann für eine Löschung infrage kommen, wenn im Speicher 8a, 8b Platz benötigt wird.
  • 5 veranschaulicht eine Ausführungsform eines Deduplizierungsindex-Eintrags 90, der durch den Deduplizierungsmanager 26 im Datenblockindex 28 zu jedem in den Speichern 8a, 8b gespeicherten Datenblock 12a, 12b verwaltet wird. Der Indexeintrag 90 weist eine Datenblockkennung (ID) 92 des Datenblocks im Speicher 8a, 8b, einen Hash-Wert 94, der aus dem durch die Datenblockkennung 92 angegebenen Datenblock berechnet wurde, und eine Länge 96 des Datenblocks auf. Beim Ermitteln, ob eine Kopie des Datenblocks 12a zum Zielserver 4b übertragen werden soll, kann der Quell-Replikationsmanager 14a den Hash-Wert und die Länge des Datenblocks der Deduplizierungskomponente 24 bereitstellen, und der Deduplizierungsmanager 26 kann ermitteln, ob ein Eintrag 30 im Datenblockindex 28 einen Hash-Wert 94 und eine Länge 96 aufweist, die den Werten des Datenblocks 12a entspricht, den der Quell-Replikationsmanager 6a gerade sendet, um zu ermitteln, ob der Quell-Replikationsmanager 6a den Datenblock 12a oder lediglich eine Kennung des Datenblocks 12a, z. B. den Auszug und die Länge, senden muss. Der Datenblockindex-Eintrag 90 kann ferner weitere Informationen aufweisen, um die Datenblöcke 12a, 12b den Speichern 8a, 8b zu verwalten.
  • Auf diese Weise werden die Teilkomponenten eines Datenobjektes, die hierin als Datenblöcke bezeichnet werden, getrennt von den Objekten gespeichert, in denen sie enthalten sind. Ein Datenblock 12a, 12b kann einen Speicherbereich aus Spuren, einen Block aus Daten oder eine beliebige andere definierbare Untereinheit von Daten aufweisen, die einem Objekt zugewiesen sein können. Diese Datenblöcke 12a, 12b können eine feste oder variable Länge aufweisen. Ein Objekt kann eine beliebige Gruppierung von Dateneinheiten wie zum Beispiel eine Datei, ein Objekt, eine Datenbank usw. aufweisen.
  • 6 veranschaulicht eine Ausführungsform von Operationen, die durch den Quell-Replikationsmanager 6a und den Ziel-Replikationsmanager 6b durchgeführt werden, um Objekte auf dem Quellserver 4a auf den Zielserver 4b zu replizieren. Die Steuerung beginnt damit, dass der Quell-Replikationsmanager 6a (bei Block 100) eine Replikationsanforderung empfängt, um Objekte auf der Grundlage eines oder mehrerer Kriterien, zum Beispiel der Client-Knoten, zu dem das Objekt gehört, der Dateibereich innerhalb des Client-Knotens, in dem sich das Objekt befindet, und eines Datentyps des Objektes zu replizieren. Als Reaktion auf die Anforderung validiert der Quell-Replikationsmanager 6A (bei Block 102) die Konfiguration des Zielservers 4b, um zu ermitteln, ob der Zielserver 4b eine Replikation unterstützt. Wenn (bei Block 104) der Zielserver 4b nicht validiert wurde, schlägt die Replikationsoperation fehl (bei Block 106). Wenn anderenfalls der Zielserver 4b replikationskompatibel ist, tauschen die Server 4a, 4b (bei Block 108) eindeutige Kennungen aus, wenn es sich um das erste Mal handelt, dass die Replikation zwischen den Servern 4a, 4b stattfindet. Die Server 4a, 4b können in den Replikationsdatenbanken 16a, 16b die eindeutigen Serverkennungen eines zur Replikation zur Verfügung stehenden Servers beibehalten.
  • Ein Administrator kann anfordern, dass zwischen dem Quellserver 4a und dem Zielserver 4b eine Synchronisierung durchgeführt wird, um die Quell-Replikationsdatenbank 16a und die Ziel-Replikationsdatenbank 16b zu aktualisieren, um widerzuspiegeln, dass Objekte repliziert wurden, die bereits in den Zielserver 4b importiert wurden, sodass zu den Objekten, die bereits auf dem Zielserver 4b vorhanden sind, keine redundante Replikation durchgeführt wird. Wenn (bei Block 109) eine Synchronisierung erforderlich ist, geht die Steuerung zu Block 110 über, um zu synchronisieren, anderenfalls, wenn eine Synchronisierung nicht angefordert oder erforderlich ist, geht die Steuerung (bei Block 130) zu 7a über, um eine Replikation durchzuführen.
  • Wenn (bei Block 109) eine Synchronisierung erforderlich ist, fragt der Quell-Replikationsmanager 6a (bei Block 110) den Zielserver 4b auf den Zielbestand 34 von Dateien auf dem Zielserver 4b ab, die ein erstes Kriterium (z. B. zu replizierender Client-Knoten) erfüllen. Nach dem Empfangen (bei Block 112) der Abfrage sendet der Ziel-Replikationsmanager 6b (bei Block 114) den Bestand 34 von Objekten auf dem Zielserver 4b an den Quellserver 4a, die das erste Kriterium erfüllen. Als Reaktion auf das Empfangen (bei Block 116) des Zielbestands 34 von Dateien ermittelt der Quell-Replikationsmanager 6a (bei Block 118) Objekte auf dem Quellserver 4a, die mit denen übereinstimmen, die im Zielbestand 34 aus dem Zielserver 4b aufgeführt sind. Ein eindeutiges Attribut 64 (3) der Objekte auf dem Quellserver 4a und Zielserver 4b kann verglichen werden, um zu ermitteln, ob das Ziel 4b Objekte aufweist, die mit denen auf der Quelle 4a übereinstimmen, zum Beispiel eine Signatur, ein eindeutiger Dateiname, ein Hash-Wert usw.
  • Der Quell-Replikationsmanager 6a sendet (bei Block 120) Metadaten für die ermittelten Objekte, die mit den im Bestand 36 aufgeführten übereinstimmen, an den Zielserver 4b. Der Quell-Replikationsmanager 6a fügt (bei Block 120) zur Quell-Replikationsdatenbank 16a für die ermittelten Objekte einen Eintrag 60 (3) einschließlich der Information hinzu, die beim Quell-Replikationsmanager 6a zur Verfügung stehen.
  • Als Reaktion auf das Empfangen (bei Block 124) der Metadaten fügt der Ziel-Replikationsmanager 6b (bei Block 126) zur Zielserver-Replikationsdatenbank 16b einen Eintrag 60 für jedes Objekt hinzu, zu dem Metadaten für die Objekte empfangen werden, die mit den im Bestand 36 aufgeführten übereinstimmen. Somit brauchen diejenigen Objekte, die der Zielserver 4b bereits aufweist, nicht als Teil der Replikation übertragen zu werden, und die Synchronisierung aktualisiert die Ziel-Replikationsdatenbank 16b, um diese Objekte als repliziert widerzuspiegeln. Der Ziel-Replikationsmanager 6b gibt (bei Block 128) eine Objektkennung des hinzugefügten Objektes an den Quell-Replikationsmanager 6a zurück, die in die Kennung 70 des replizierten Objektes in dem Eintrag 60 für das Objekt in der Quell-Replikationsdatenbank 16a aufgenommen wird. Der Ziel-Replikationsmanager 6b kann außerdem die Knotenkennung 76 des Replikationsservers und die Dateibereichskennung 78 des Replikationsservers an den Replikationsmanager 6a zurückgeben, die in den Eintrag für das Objekt in der Quellserver-Replikationsdatenbank 16a aufgenommen wird.
  • Nach dem Durchführen der Operationen zum Hinzufügen von Einträgen, um die Quell-Replikationsdatenbank 16a und die Ziel-Replikationsdatenbank 16b zu synchronisieren, sodass sie Einträge für alle Objekte aufweisen, die ein bestimmtes Kriterium erfüllen und bereits sowohl auf dem Quellserver 4a als auch dem Zielserver 4b vorliegen, geht die Steuerung (bei Block 130) zu Block 150 in 7a über, um die Replikation zu beginnen. Die Synchronisierungsoperationen aus 6 ermöglichen es Kunden, die Replikationsdatenbanken 16a, 16b zu synchronisieren, sodass auf dem Zielserver 4b vorliegende Objekte, die übereinstimmende Objekte auf dem Quellserver 4a aufweisen, erscheinen, als seien sie repliziert worden.
  • Die 7a und 7b veranschaulichen eine Ausführungsform von Operationen, die durch den Quell-Replikationsmanager 6a und den Ziel-Replikationsmanager 6b durchgeführt werden, um die Replikationsoperation durchzuführen. Nach dem Initialisieren (bei Block 150) der Replikation baut der Quell-Replikationsmanager 6a (bei Block 152) eine Quellliste 30 von Objekten auf dem Quellserver 4a auf, die auf den Zielserver 4b repliziert werden sollen und ein Replikationskriterium (z. B. Client-Knoten, Dateibereich, Datentyp) erfüllen, wobei die Replikationskriterien, die zur Ermittlung der zu replizierenden Dateien verwendet werden, weiter als die Kriterien gefasst sein können, die zur Ermittlung des Zielbestands 34 (z. B. nur Client-Knoten) auf dem Zielserver 4b verwendet werden. Der Quell-Replikationsmanager 6a fragt (bei Block 154) den Zielserver 4b ab, um eine Zielliste 32 von auf dem Zielserver 4b vorliegenden Objekten zu empfangen, die das zweite Kriterium erfüllen. Als Reaktion auf die Abfrage sendet der Ziel-Replikationsmanager 6b (bei Block 158) eine Zielliste 32 von auf dem Zielserver 4b vorliegenden Objekten an den Quellserver 4a, die die Replikationskriterien erfüllen. Nach dem Empfangen der Zielliste 32 baut der Quell-Replikationsmanager 6a (bei Block 160) eine Replikationsliste 63 auf, die Objekte auf der Quellliste 30 angibt, die nicht auf der Zielliste 32 enthalten sind, die zum Zielserver 4b zu übertragen sind.
  • Zu jedem Objekt in der Quellliste 30 führt der Quell-Replikationsmanager 6a (bei Block 162 bis 174) die Operationen bei Block 164 bis 172 durch, um das Objekt auf den Zielserver 4b zu replizieren. Die Schleife bei den Blöcken 162 bis 147 kann enden und zu Block 184 übergehen, nachdem alle Objekte in der Quellliste 30 verarbeitet wurden, oder sie kann nach dem Auftreten einer bestimmten anderen Bedingung enden. Wenn (bei Block 164) das Objekt auf der Replikationsliste 36 vorliegt, sendet der Quell-Replikationsmanager 6a Daten für das Objekt an den Ziel-Replikationsmanager 6b. Bei einer Ausführungsform kann der Quell-Replikationsmanager 6a nur Daten oder Datenblöcke 12a für das Objekt senden, das nicht bereits im Zielspeicher 8b vorliegt. Alternativ kann der Quell-Replikationsmanager 6a das gesamte Objekt unabhängig davon senden, ob der Zielspeicher 8b Datenblöcke 12b aufweist, die mit Datenblöcken in dem Objekt übereinstimmen, das gerade repliziert wird. Nach dem Senden von Daten für das zu replizierende Objekt (aus Block 168) oder wenn das Objekt nicht auf der Replikationsliste 36 vorliegt, wodurch angezeigt wird, dass der Zielserver 4b das Objekt bereits aufweist, sendet der Quell-Replikationsmanager 6a (bei Block 170) Metadaten über das Objekt wie zum Beispiel die Informationen im Eintrag 60 (3) an den Zielserver 4b. Der Quell-Replikationsmanager 6a fügt (bei Block 172) zur Quell-Replikationsdatenbank 16a für das Objekt einen Eintrag 60 hinzu, der die Informationen der in 3 gezeigten Felder enthält.
  • Nach dem Empfangen (bei Block 176) der Metadaten und Daten (falls bei Block 168 beliebige Daten für ein Objekt in der Replikationsliste 36 gesendet werden) speichert der Ziel-Replikationsmanager 6a (bei Block 178) beliebige, für das Objekt im Zielspeicher 8a empfangene Daten (Daten werden unter Umständen nicht empfangen, wenn der Zielspeicher 8b bereits Datenblöcke 12b zu dem Objekt aufweist) und fügt (bei Block 180) für das Objekt, zu dem Metadaten empfangen wurden, zur Zielserver-Replikationsdatenbank 16b einen Eintrag 60 hinzu, der die Kennungen 62, 70, 72, 74, 76 und 78 im Quellserver 4a und Zielserver 4b und weitere Informationen im Eintrag 60 (3) aufweist. Der Ziel-Replikationsmanager 6b kann ferner (bei Block 182) eine Kennung 70 des replizierten Objektes, eine Replikationsserver-Knotenkennung 76 und eine Replikationsserver-Dateibereichskennung 78 des auf dem Zielserver 4b hinzugefügten Objektes an den Quellserver 4a zurückgeben, die in den Eintrag für das Objekt in der Quell-Replikationsdatenbank 16a aufgenommen werden.
  • Nach dem Hinzufügen von Einträgen zur Quell-Replikationsdatenbank 16a und Ziel-Replikationsdatenbank 16b für alle zu replizierenden Objekte geht die Steuerung (bei Block 184) zu Block 168 in 7b über, bei dem der Quell-Replikationsmanager 6a (bei Block 186) zu löschende Objekte ermittelt, die auf der Zielliste 32, aber nicht auf der Quellliste 30 vorliegen, oder Objekte auf dem Zielserver 4b, die nicht Teil der der Replikation unterworfenen Objekte auf dem Quellserver 4a sind. Der Quell-Replikationsmanager 6a kommuniziert (bei Block 188) mit dem Zielserver 4b, um den Zielserver 4b zu veranlassen, die Objekte zu löschen, von denen ermittelt wurde, dass sie vom Zielserver 4b zu löschen sind. Als Reaktion auf die Kommunikation löscht der Ziel-Replikationsmanager 6b (bei Block 190) Einträge für Objekte, die aus der Zielserver-Replikationsdatenbank 16b zu löschen sind. Beliebige Datenblöcke 12b in gelöschten Objekten, die nicht durch beliebige andere Objekte referenziert werden, werden dereferenziert (bei Block 194). Beim Löschen eines Objektes wird der Referenzzählwert 86 in den Einträgen 82 (4) zu den Datenblöcken 12b in dem Objekt verringert, und beliebige Datenblöcke 82, die einen Referenzzählwert von null aufweisen, werden als dereferenziert angezeigt und kommen an einem bestimmten Punkt zur Beseitigung infrage.
  • 8 veranschaulicht eine Ausführungsform von Operationen, die durch den Quell-Replikationsmanager 6a und den Ziel-Replikationsmanager 6b durchgeführt werden, um Objekte unter Verwendung der Deduplizierung zu replizieren. Die Operationen aus 8 werden durchgeführt, wenn der Quell-Replikationsmanager 6a bei Block 168 in 7a Daten für das Objekt an den Zielserver 4b sendet. Nach dem Senden des Objektes ruft der Quell-Replikationsmanager 6a den Deduplizierungsmanager 26 auf, um (bei Block 202) zu sendende Datenblöcke in dem Objekt zu ermitteln, und verwendet anschließend die Deduplizierung (bei Block 204), um eine Menge von Datenblöcken 12a in dem Objekt zu ermitteln, die nicht im Zielspeicher 8b gespeichert sind. Der Deduplizierungsmanager 26 kann den Datenblockindex 28 verwenden, um diese Ermittlung durchzuführen. Der Deduplizierungsmanager 26 oder der Quell-Replikationsmanager 6a sendet (bei Block 206) die ermittelte Menge von Datenblöcken an den Zielserver 4b zur Speicherung im Zielspeicher 8b und sendet eine Liste von Datenblockkennungen wie zum Beispiel den Auszug (di) und die Länge (li) von Datenblöcken 12a in dem Objekt, die bereits im Zielspeicher 8b vorliegen. Nach dem Empfangen (bei Block 208) der Datenblöcke zu dem Datenobjekt speichert der Ziel-Replikationsmanager 6b (bei Block 210) die empfangenen Datenblöcke im Zielspeicher 8b. Der Ziel-Replikationsmanager 6b gibt (bei Block 212) im Eintrag 60 für das Objekt in der Zielserver-Replikationsdatenbank 16b Verknüpfungen zu den Datenblöcken in dem Objekt an, für das die Kennzeichnungsinformationen, z. B. Auszug (d1) und Länge (li), bereitgestellt werden, die bereits im Zielspeicher gespeichert sind, sowie Verknüpfungen zu Datenblöcken, die zum Zielspeicher 8b hinzugefügt wurden.
  • Bei beschriebenen Ausführungsformen kann der Quell-Replikationsmanager 6a Daten verschlüsseln, die gerade auf den Zielserver 4b übertragen werden, die auf dem Zielserver 4b entschlüsselt werden. Ferner ermöglicht es die Replikation auf der Objektebene dem Administrator/Benutzer, anzugeben, welche Datenobjekte repliziert werden sollen und eine inkrementelle Replikation nur derjenigen Datenblöcke von zu replizierenden Objekten vorzusehen, die nicht bereits auf dem Zielserver 4b und im Zielspeicher 8b gespeichert sind.
  • Bei bestimmten Ausführungsformen werden auf dem Quellserver 4a und auf dem Zielserver 4b eine getrennte Hardware und getrennte Betriebssysteme bereitgestellt, um eine Unabhängigkeit von der Hardware und von Betriebssystemen zu ermöglichen. Ferner können der Quellserver 4a und der Zielserver 4b mit heterogener Hardware und heterogenen Betriebssystemen realisiert sein.
  • Bei bestimmten Ausführungsformen kann der Zielserver 4b der Replikation einen Sofortbereitschaftsmodus (Hot-Standby-Modus) an einem in Bezug auf den Quellserver 4a entfernten Ort bereitstellen. Wenn der Quellserver 4a ausfällt, können Client-Operationen wie zum Beispiel Sicherung und Wiederherstellung auf den Zielserver 4b umgeleitet werden, der bereits zur Replikation betriebsbereit ist.
  • Bei weiteren Ausführungsformen können mehrere Quellserver 4a (z. B. in entfernt angeordneten Büros) auf einen einzigen Zielserver 4b repliziert werden (z. B. in einem zentralen Datenverarbeitungszentrum).
  • Weitere Ausführungsformen können logische Gruppierungen unterschiedlicher Mengen von Objekten bereitstellen, sodass unvollständige Gruppen von Objekten auf dem Zielserver 4b für den Client-Knoten nicht sichtbar sind, bis die Gruppe vollständig ist. Teilgruppen werden auf dem Zielserver 4b beibehalten, um das erneute Senden von Objekten zu verhindern. Zum Beispiel können Objekte, die eine logische Gruppe bilden, während der Replikation an den Zielserver 4b gesendet werden. In bestimmten Situationen könnten einige der Objekte in der Gruppe, wegen eines Fehlers oder weil der Prozess annulliert wird, nicht gesendet werden. In dieser Situation verbleiben Objekte, die repliziert wurden, auf dem Zielserver, und der Zielserver markiert die Gruppe als unvollständig, die nicht alle Objekte aufweist. Diese unvollständigen Gruppen werden dem Client-Knoten während der Wiederherstellung nicht verfügbar gemacht. Zu einem späteren Zeitpunkt, nachdem die Replikation die fehlenden Dateien übertragen hat, wird die Gruppe als vollständig markiert und dem Client-Knoten verfügbar gemacht.
  • Bei den beschriebenen Ausführungsformen versucht die Replikation zwischen Quelle und Ziel, den Datenumfang zu minimieren, der für Objekte übertragen wird, die an den Zielserver gesendet werden, indem auf der Objektebene eine Prüfung von Objekten durchgeführt wird, die bereits auf dem Zielserver 4b vorliegen, und anschließend beim Senden eines Objektes eine Deduplizierung durchgeführt wird, um das Senden von Datenblöcken für ein Datenobjekt zu vermeiden, das bereits auf dem Zielserver 4b zur Verfügung steht. Ferner sendet der Quell-Replikationsmanager 16a bei beschriebenen Ausführungsformen Metadaten über zu replizierende Objekte, die bereits auf dem Zielserver 4b gespeichert sind, an den Ziel-Replikationsmanager 16b, um den Ziel-Replikationsmanager 6b zu veranlassen, zur Ziel-Replikationsdatenbank 16b einen Eintrag für das zu replizierende und bereits auf dem Zielserver 4b vorliegende Objekt hinzuzufügen.
  • Cloud-Computing-Ausführungsformen
  • Die Cloud-Computing-Umgebung aus 1 kann Teil eines Cloud-Computing-Modells zur Bereitstellung von Diensten sein, um einen praktischen und bei Bedarf verfügbaren Netzwerkzugriff (On-Demand-Netzwerkzugriff) auf ein gemeinsam genutztes Reservoir konfigurierbarer Datenverarbeitungsressourcen (z. B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Arbeitsspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste) zu ermöglichen, die bei minimalem Verwaltungsaufwand oder minimaler Interaktion mit einem Anbieter des Dienstes schnell bereitgestellt und freigegeben werden können. Die Realisierung des Cloud-Computing wird unter Bezugnahme auf die 9 bis 1 beschrieben.
  • Dieses Cloud-Modell kann mindestens fünf Eigenschaften aufweisen, mindestens drei Dienstmodelle und mindestens vier Bereitstellungsmodelle.
  • Die Eigenschaften sind folgende:
    On-demand Self Service (Selbstzuweisung bei Bedarf): Ein Cloud-Nutzer kann einseitig Datenverarbeitungsfunktionen wie zum Beispiel Serverzeit und Netzwerkspeicher dem Bedarf entsprechend automatisch bereitstellen, ohne dass eine Interaktion von Menschen mit dem Anbieter des Dienstes erforderlich ist.
  • Broad Network Access (umfassender Netzwerkzugriff): Es stehen Funktionen über ein Netzwerk zur Verfügung, auf die der Zugriff über Standardmechanismen erfolgt, die die Verwendung heterogener Thin- oder Thick-Quellplattformen (z. B. Mobiltelefone, Notebook-Computer und PDAs) unterstützen.
  • Resource Pooling (Ressourcenbündelung): Die Datenverarbeitungsressourcen des Anbieters werden gebündelt, um mehrere Nutzer unter Verwendung eines Mehrfachnutzermodells mit unterschiedlichen physischen und virtuellen Ressourcen zu bedienen, die entsprechend dem Bedarf dynamisch zugewiesen und neu zugewiesen werden. Es besteht eine Art Ortsunabhängigkeit in der Weise, dass der Nutzer im Allgemeinen keine Kontrolle oder Kenntnis über den exakten Ort der bereitgestellten Ressourcen hat, aber möglicherweise in der Lage ist, den Ort auf einer höheren Abstraktionsebene (z. B. Land, Bundesstaat oder Datenverarbeitungszentrum) anzugeben.
  • Rapid Elasticity (rasche Elastizität): Funktionen können rasch und elastisch bereitgestellt werden, in einigen Fällen automatisch, um den Funktionsumfang schnell nach oben anzupassen, und schnell freigegeben werden, um den Funktionsumfang schnell nach unten anzupassen. Für den Nutzer entsteht oftmals der Eindruck, dass die zur Bereitstellung verfügbaren Funktionen unbegrenzt sind und jederzeit in jeder beliebigen Menge gekauft werden können.
  • Measured Service (bemessener Dienst): Cloud-Systeme steuern und optimieren automatisch die Ressourcenverwendung durch Nutzung einer Bemessungsfunktion auf einer bestimmten Abstraktionsebene, die für die Art des Dienstes geeignet ist (z. B. Speicher, Verarbeitung, Bandbreite und aktive Benutzerkonten). Die Ressourcennutzung kann überwacht, gesteuert und gemeldet werden, sodass Transparenz sowohl für den Anbieter als auch den Kunden des genutzten Dienstes besteht.
  • Die Dienstmodelle sind folgende:
    Software as a Service (SaaS) (Software als Dienst): Die dem Nutzer bereitgestellte Funktion besteht darin, die auf einer Cloud-Infrastruktur ausgeführten Anwendungen des Anbieters zu nutzen. Die Anwendungen sind von verschiedenen Quelleinheiten aus über eine Thin-Quellschnittstelle wie zum Beispiel über einen Web-Browser (z. B. auf dem Web beruhende eMail) zugänglich. Der Nutzer verwaltet oder steuert die unterlagerte Cloud-Infrastruktur einschließlich von Netzwerken, Servern, Betriebssystemen, Speicherplatz oder sogar einzelnen Anwendungsfunktionen nicht, abgesehen von der möglichen Ausnahme eingeschränkter benutzerspezifischer Konfigurationseinstellungen von Anwendungen.
  • Platform as a Service (PaaS) (Plattform als Dienst): Die dem Nutzer bereitgestellte Funktion besteht darin, auf der Cloud-Infrastruktur vom Kunden erzeugte oder erworbene Anwendungen bereitzustellen, die unter Verwendung von Programmiersprachen und Programmierwerkzeugen erzeugt wurden, die durch den Anbieter unterstützt werden. Der Nutzer verwaltet oder steuert die unterlagerte Cloud-Infrastruktur einschließlich von Netzwerken, Servern, Betriebssystemen, Speicherplatz oder sogar einzelnen Anwendungsfunktionen nicht, hat aber die Kontrolle über die bereitgestellten Anwendungen und möglicherweise über Konfigurationen der Hosting-Umgebung der Anwendungen.
  • Infrastructure as a Service (IaaS) (Infrastruktur als Dienst): Die dem Nutzer bereitgestellte Funktion besteht darin, Verarbeitung, Speicherplatz, Netzwerke und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Kunde beliebige Software bereitstellen und ausführen kann, zu der Betriebssysteme und Anwendungen gehören können. Der Nutzer verwaltet oder steuert die unterlagerte Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicherplatz sowie bereitgestellte Anwendungen und möglicherweise eine eingeschränkte Kontrolle über ausgewählte Vernetzungskomponenten (z. B. über Host-Firewalls).
  • Die Bereitstellungsmodelle sind folgende:
    Private Cloud: Die Cloud-Infrastruktur wird ausschließlich für ein Unternehmen betrieben. Sie kann durch das Unternehmen oder einen Dritten verwaltet werden und auf dem Firmengelände oder außerhalb davon vorhanden sein.
  • Community Cloud: Die Cloud-Infrastruktur wird von mehreren Unternehmen genutzt und unterstützt eine bestimmte Benutzergemeinschaft, die gemeinsame Interessen hat (z. B. eine Aufgabe, Sicherheitsanforderungen, Richtlinie und Gesichtspunkte im Zusammenhang mit der Einhaltung von Gesetzen und Vorschriften). Sie kann durch die Unternehmen oder einen Dritten verwaltet werden und auf dem Firmengelände oder außerhalb davon vorhanden sein.
  • Public Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Gruppe in einem Industriezweig zur Verfügung gestellt und ist Eigentum eines Unternehmens, das Cloud-Dienste verkauft.
  • Hybrid Cloud: Die Cloud-Infrastruktur ist eine Mischung aus zwei oder mehreren Clouds (Private Cloud, Community Cloud oder Public Cloud), die eigenständige Einheiten bleiben, aber über eine standardisierte oder proprietäre Technologie miteinander verbunden sind, die die Portierbarkeit von Daten und Anwendungen ermöglicht (z. B. Cloud-Zielgruppenverteilung (Cloud Bursting) zum Lastausgleich zwischen Clouds).
  • Eine Cloud-Datenverarbeitungsumgebung ist dienstorientiert, wobei der Schwerpunkt auf Zustandslosigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität liegt. Im Mittelpunkt des Cloud-Computing steht eine Infrastruktur, die ein Netzwerk aus untereinander verbundenen Knoten aufweist.
  • 9 veranschaulicht eine Ausführungsform eines Cloud-Computing-Knotens 300, der eine Realisierungsform des Quellservers 4a, Zielservers 4b und von Deduplizierungskomponenten 24 aufweisen kann, wobei die Komponenten in einem oder mehreren der Knoten 300 realisiert sein können. Der Cloud-Computing-Knoten 300 ist nur ein Beispiel eines geeigneten Cloud-Computing-Knotens und nicht dazu gedacht, eine beliebige Einschränkung hinsichtlich des Einsatzbereiches oder der Funktionalität von Ausführungsformen der hierin beschriebenen Erfindung nahezulegen. Ungeachtet dessen kann der Cloud-Computing-Knoten 300 realisiert werden und/oder eine beliebige der hierin oben dargelegten Funktionalitäten durchführen.
  • In dem Cloud-Computing-Knoten 300 liegt ein Computersystem/Server 302 vor, der in Verbindung mit zahlreichen anderen Mehrzweck- oder Spezial-Datenverarbeitungssystemumgebungen oder derartigen Konfigurationen betriebsfähig ist. Zu Beispielen wohlbekannter Datenverarbeitungssysteme, -umgebungen und/oder -konfigurationen, die zur Verwendung in Verbindung mit dem Computersystem/Server 302 geeignet sind, gehören, ohne darauf beschränkt zu sein, Personal-Computer-Systeme, Server-Computersysteme, Thin-Quellen, Thick-Quellen, Hand- oder Notebook-Einheiten, Multiprozessorsysteme, auf Mikroprozessoren beruhende Systeme, Set-Top-Boxen, programmierbare Einheiten der Konsumgüterelektronik, Netzwerk-PCs, Minicomputersysteme, Großrechnersysteme und verteilte Cloud-Computing-Umgebungen, zu denen beliebige der oben erwähnten Systeme oder Einheiten gehören, und dergleichen.
  • Das Computersystem/der Server 302 kann im allgemeinen Kontext von auf einem Computersystem ausführbaren Anweisungen beschrieben werden, wie zum Beispiel von Programmmodulen, die durch ein Computersystem ausgeführt werden. Programmmodule können im Allgemeinen Routinen, Programme, Objekte, Komponenten, Logik und Datenstrukturen usw. enthalten, die bestimmte Aufgaben durchführen oder bestimmte abstrakte Datentypen realisieren. Das Computersystem/der Server 302 kann in verteilten Cloud-Computing-Umgebungen praktisch umgesetzt werden, in denen Aufgaben durch entfernt angeordnete Verarbeitungseinheiten durchgeführt werden, die über ein Datenübertragungsnetzwerk verbunden sind. Bei einer verteilten Cloud-Computing-Umgebung können sich Programmmodule sowohl auf lokal als auch auf entfernt angeordneten Computersystem-Speichermedien befinden, zu denen Arbeitsspeichereinheiten gehören.
  • Wie in 9 gezeigt, ist das Computersystem/der Server 302 im Cloud-Computing-Knoten 300 in Form einer Mehrzweck-Datenverarbeitungseinheit gezeigt. Zu den Komponenten des Computersystems/des Servers 302 können, ohne darauf beschränkt zu sein, ein oder mehrere Prozessoren oder Verarbeitungseinheiten 304, ein Systemspeicher 306 und ein Bus 308 gehören, der verschiedene Systemkomponenten einschließlich des Systemspeichers 306 mit dem Prozessor 304 verbindet.
  • Der Bus 308 stellt eine oder mehrere von beliebigen verschiedenen Arten von Busstrukturen dar, zu denen ein Speicherbus oder eine Speichersteuereinheit, ein Peripheriebus, ein Accelerated Graphics Port und ein Prozessorbus oder lokaler Bus gehören, die eine beliebige einer Vielfalt von Busarchitekturen nutzen. Als Beispiel und nicht als Einschränkung gehören zu derartigen Architekturen der ISA-Bus (ISA = Industry Standard Architecture), der MCA-Bus (MCA = Micro Channel Architecture), EISA-Bus (EISA = Enhanced ISA), der lokale VESA-Bus (VESA = Video Electronics Standards Association), und der PCI-Bus (PCI = Peripheral Component Interconnect).
  • Das Computersystem/der Server 302 weist normalerweise eine Vielfalt von Medien auf, die von Computersystemen gelesen werden können. Derartige Medien können beliebige verfügbare Medien sein, auf die das Computersystem/der Server 302 zugreifen kann, und zu diesen Medien gehören sowohl flüchtige als auch nichtflüchtige Medien, Wechselmedien und nicht auswechselbare Medien.
  • Zum Systemspeicher 306 können für Computersysteme lesbare Medien in Form von flüchtigem Speicher wie zum Beispiel Direktzugriffsspeicher (Random Access Memory, RAM) 310 und/oder Cache-Zwischenspeicher 312 gehören. Das Computersystem/der Server 302 kann ferner andere auswechselbare/nicht auswechselbare, flüchtige/nichtflüchtige Computersystem-Speichermedien aufweisen. Lediglich als Beispiel kann das Speichersystem 313 zum Lesen von und Schreiben auf ein nicht auswechselbares, nichtflüchtiges magnetisches Medium (nicht gezeigt und normalerweise als „Festplatte” bezeichnet) bereitgestellt sein. Obwohl nicht gezeigt, können ein Magnetplattenlaufwerk zum Lesen von und Schreiben auf eine auswechselbare nichtflüchtige Magnetplatte (z. B. eine „Diskette”) und ein optisches Plattenlaufwerk zum Lesen von oder Schreiben auf eine auswechselbare nichtflüchtige optische Platte wie zum Beispiel eine CD-ROM, DVD-ROM oder ein anderes optisches Medium bereitgestellt sein. In einem derartigen Fall kann jede dieser Einheiten durch eine oder mehrere Datenmedienschnittstellen mit dem Bus 308 verbunden sein. Wie ferner abgebildet und nachfolgend beschrieben, kann der Speicher 306 mindestens ein Programmprodukt aufweisen, das eine Menge (z. B. mindestens eines) von Programmmodulen aufweist, die so gestaltet sind, dass sie die Funktionen von Ausführungsformen der Erfindung ausführen.
  • Das Programm/Dienstprogramm 314, das eine Menge (mindestens eines) von Programmmodulen 316 aufweist, kann zum Beispiel und nicht als Einschränkung im Speicher 306 sowie in einem Betriebssystem, in einem oder mehreren Anwendungsprogrammen oder in anderen Programmmodulen und Programmdaten gespeichert sein. Jedes des Betriebssystems, des einen oder der mehreren Anwendungsprogramme, der anderen Programmmodule und Programmdaten oder jede einer bestimmten Kombination davon kann eine Realisierungsform einer Vernetzungsumgebung aufweisen. Die Programmmodule 316 führen üblicherweise die Funktionen und/oder Methodiken an Ausführungsformen der Erfindung wie hierin beschrieben aus.
  • Das Computersystem/der Server 302 kann außerdem kommunizieren mit einer oder mehreren externen Einheiten 318 wie zum Beispiel mit einer Tastatur, einer Zeigeeinheit einer Anzeigeeinheit 320 usw.; mit einer oder mehreren Einheiten, die es einem Benutzer ermöglichen, mit dem Computersystem/Server 12 zu interagieren; und/oder mit beliebigen Einheiten (z. B. Netzwerkkarte, Modem usw.), die es dem Computersystem/Server 302 ermöglichen, mit einer oder mehreren anderen Datenverarbeitungseinheiten zu kommunizieren. Eine derartige Kommunikation kann über Eingabe/Ausgabe-Schnittstellen (E/A-Schnittstellen) 322 stattfinden. Darüber hinaus kann das Computersystem/der Server 302 über den Netzwerkadapter 324 mit einem oder mehreren Netzwerken kommunizieren, zum Beispiel mit einem lokalen Netzwerk (Local Area Network, LAN), einem allgemeinen Weitverkehrsnetzwerk (Wide Area Network, WAN) und oder mit einem öffentlichen Netzwerk (z. B. mit dem Internet). Wie abgebildet kommuniziert der Netzwerkadapter 324 über den Bus 308 mit den anderen Komponenten des Computersystems/Servers 302. Es sollte klar sein, dass, obwohl nicht abgebildet, andere Hardware- und/oder Softwarekomponenten in Verbindung mit dem Computersystem/Server 302 verwendet werden könnten. Zu Beispielen gehören, ohne darauf beschränkt zu sein: Mikrocode, Gerätetreiber, redundante Verarbeitungseinheiten, externe Festplatten-Arrays, RAID-Systeme (RAID = Redundant Array of Independent Disks), Bandlaufwerke, Speichersysteme zur Datenarchivierung usw.
  • Unter Bezugnahme auf 10 ist dort die veranschaulichende Cloud-Computing-Umgebung 350 abgebildet. Wie abgebildet weist die Cloud-Computing-Umgebung 350 einen oder mehrere Cloud-Computing-Knoten 300 auf, mit denen lokale Datenverarbeitungseinheiten wie zum Beispiel Personal Digital Assistant (PDA) oder Mobiltelefon 354A, Desktop-Computer 354B, Notebook-Computer 354C und/oder Automobil-Computersystem 354N kommunizieren können, die von Cloud-Nutzern verwendet werden. Die Knoten 300 können untereinander kommunizieren. Sie können physisch oder virtuell in einem oder mehreren Netzwerken wie zum Beispiel in einer hierin oben beschriebenen Private Cloud, Community Cloud, Public Cloud oder Hybrid Cloud oder in Kombination davon gruppiert sein (nicht gezeigt). Dies ermöglicht der Cloud-Computing-Umgebung 350, Infrastruktur, Plattformen und/oder Software als Dienste zu bieten, für die ein Cloud-Nutzer keine Ressourcen auf einer lokalen Datenverarbeitungseinheit zu verwalten braucht. Es versteht sich, dass die in 10 gezeigten Arten von Datenverarbeitungseinheiten 354A bis N als veranschaulichend gedacht sind und dass die Datenverarbeitungsknoten 300 und die Cloud-Computing-Umgebung 350 über eine beliebige Art von Netzwerk und/oder netzwerkadressierbarer Verbindung (z. B. unter Verwendung eines Web-Browsers) mit einer beliebigen Art von computergestützter Einheit kommunizieren können.
  • Ferner zeigt 10 eine einzelne Cloud. Zusätzlich zu der Cloud, die Kunden-/Produktionsdaten aufweist, können bestimmte Cloud-Ausführungsformen jedoch ein Bereitstellungsmodell bieten, das eine separate „Sicherungs”- oder „Datenschutz”-Cloud aufweist. Das Bereitstellen einer getrennten, von anderen Clouds verschiedenen, zusätzlichen Cloud als Datenschutz-Cloud, um ein beliebiges Primär-Cloud-Modell (Bereitstellen, Community, Hybrid usw.) von der Datenschutz-Cloud zu trennen, vermeidet einen einzelnen Ausfallpunkt und bietet ein höheres Maß an Schutz der Kundendaten in einer getrennten Sicherungs-Cloud.
  • Unter Bezugnahme auf 11 ist dort eine Menge von Funktionsabstraktionsschichten gezeigt, die von der Cloud-Computing-Umgebung 350 (12) bereitgestellt werden. Im Vorhinein sollte klar sein, dass die in 11 gezeigten Komponenten, Schichten und Funktionen nur zur Veranschaulichung gedacht und Ausführungsformen der Erfindung nicht auf diese beschränkt sind. Wie abgebildet werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
    Die Hardware- und Softwareschicht 360 weist Hardware- und Softwarekomponenten auf. Zu Beispielen von Hardwarekomponenten zählen Großrechner, bei einem Beispiel IBM® zSeries®-Systeme; auf der RISC-Architektur (RISC = Reduced Instruction Set Computer) beruhende Server, bei einem Beispiel IBM pSeries®-Systeme; IBM xSeries®-Systeme; IBM BladeCenter®-Systeme; Speichereinheiten; Netzwerke und Vernetzungskomponenten. Zu Beispielen von Softwarekomponenten zählen Netzwerk-Anwendungsserversoftware, bei einem Beispiel die Anwendungsserversoftware IBM WebSphere®; und Datenbanksoftware, bei einem Beispiel die Datenbanksoftware IBM DB2®. (IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere und DB2 sind weltweit in vielen juristischen Zuständigkeitsbereichen eingetragene Marken von International Business Machines Corporation.)
  • Die Virtualisierungsschicht 362 stellt eine Abstraktionsschicht bereit, von der aus die folgenden Beispiele virtueller Einheiten bereitgestellt werden können: virtuelle Server; virtueller Speicher; virtuelle Netzwerke einschließlich virtueller privater Netzwerke: virtuelle Anwendungen und Betriebssysteme; und virtuelle Quellen.
  • Bei einem Beispiel kann die Verwaltungsschicht 364 die nachfolgend beschriebenen Funktionen bereitstellen. Die Ressourcenbereitstellung stellt die dynamische Beschaffung von Datenverarbeitungsressourcen und von anderen Ressourcen bereit, die genutzt werden, um Aufgaben innerhalb der Cloud-Computing-Umgebung durchzuführen. Gebührenerfassung und Preisberechnung stellen eine Kostüberwachung bereit, während Ressourcen innerhalb der Cloud-Computing-Umgebung genutzt werden, sowie Abrechnung und Fakturierung des Verbrauchs dieser Ressourcen. Bei einem Beispiel können diese Ressourcen Anwendungssoftwarelizenzen aufweisen. Die Sicherheit stellt die Identitätsüberprüfung bei Cloud-Nutzern und Aufgaben sowie den Schutz für Daten und andere Ressourcen bereit. Das Benutzerportal bietet Nutzern und Systemadministratoren einen Zugang zur Cloud-Computing-Umgebung. Die Dienstgüteverwaltung (Service Level Management) stellt die Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, sodass die jeweils erforderliche Dienstgüte erreicht wird. Die Planung und Erfüllung von Dienstgütevereinbarungen (Service Level Agreement, SLA) stellt die Vorausplanung für und die Beschaffung von Cloud-Computing-Ressourcen bereit, für die auf der Grundlage eines SLA zukünftige Anforderungen erwartet werden.
  • Die Betriebslastschicht 366 stellt Beispiele von Funktionalitäten bereit, für die die Cloud-Computing-Umgebung genutzt werden kann. Zu Beispielen von Betriebslasten und Funktionen, die von dieser Ebene aus bereitgestellt werden können, gehören: Zuordnung und Navigation; Softwarebereitstellung und Verwaltung während des Lebenszyklus; Bereitstellung von Schulungen in virtuellen Schulungsräumen; Verarbeitung von Datenanalysen; Transaktionsverarbeitung; und die Replikationsdienste wie zum Beispiel in Bezug auf die 1 bis 8 oben beschrieben.
  • Die beschriebenen Operationen können unter Verwendung von Standard-Programmiertechniken oder Standard-Entwicklungstechniken zur Erzeugung von Software, Firmware, Hardware oder einer beliebigen Kombination davon als Verfahren, Vorrichtung oder Computerprogrammprodukt realisiert sein. Dementsprechend können Aspekte der Ausführungsformen die Form einer vollständig in Hardware realisierten Ausführungsform, einer vollständig in Software realisierten Ausführungsform (einschließlich Firmware, residenter Software, Mikrocode usw.) oder einer Ausführungsform annehmen, in der Software- und Hardwareaspekte miteinander kombiniert sind, die hierin allgemein als „Schaltung”, „Modul” oder „System” bezeichnet werden. Ferner können Aspekte der Ausführungsformen die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien verkörpert ist, auf denen computerlesbarer Programmcode verkörpert ist.
  • Es können beliebige Kombinationen eines oder mehrerer computerlesbarer Medien verwendet werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Zu computerlesbaren Speichermedien können beispielsweise, ohne darauf beschränkt zu sein, ein elektronisches, magnetisches, optisches oder elektromagnetisches System bzw. ein Infrarot- oder Halbleitersystem bzw. eine derartige Vorrichtung oder Einheit oder eine beliebige geeignete Kombination des Vorstehenden gehören. Zu den genaueren Beispielen (unvollständige Liste) computerlesbarer Speichermedien zählen unter anderem folgende: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Nur-Lese-Speicher in Form einer Compact Disc (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder eine beliebige geeignete Kombination des Vorstehenden. Im Kontext des vorliegenden Dokuments kann ein computerlesbares Speichermedium jedes beliebige vergegenständlichte Medium sein, das ein Programm enthalten oder speichern kann, das von oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Befehlsausführung genutzt werden kann.
  • Ein computerlesbares Signalmedium kann unter anderem ein im Basisband oder als Teil einer Trägerwelle übertragenes Datensignal mit darin verkörpertem computerlesbarem Programmcode aufweisen. Ein derartiges übertragenes Signal kann eine beliebige Vielfalt von Formen annehmen, einschließlich, ohne darauf beschränkt zu sein, einer elektromagnetischen oder optischen Form oder einer beliebigen geeigneten Kombination davon. Ein computerlesbares Signalmedium kann ein beliebiges computerlesbares Medium sein, bei dem es sich nicht um ein computerlesbares Speichermedium handelt und das ein Programm übertragen, senden oder transportieren kann, das von oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Befehlsausführung genutzt werden kann.
  • Auf einem computerlesbaren Medium verkörperter Programmcode kann unter Verwendung jedes beliebigen geeigneten Mediums, einschließlich, ohne darauf beschränkt zu sein, drahtloser, drahtgebundener Medien, Lichtwellenleitern, HF usw. oder unter Verwendung einer beliebigen geeigneten Kombination des Vorstehenden übertragen werden.
  • Computerprogrammcode zum Ausführen von Operationen bei Aspekten der vorliegenden Erfindung kann in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen, darunter in einer objektorientierten Programmiersprache wie Java, Smalltalk, C++ oder dergleichen und in herkömmlichen prozeduralen Programmiersprachen wie „C” oder ähnlichen Programmiersprachen geschrieben sein. Der Programmcode kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. Beim letztgenannten Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über eine beliebige Art von Netzwerk verbunden sein, unter anderem über ein lokales Netzwerk (LAN) oder über ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (beispielsweise über das Internet unter Nutzung eines Internet-Dienstanbieters (Internet Service Provider)).
  • Aspekte der vorliegenden Erfindung sind oben unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder und Kombinationen von Blöcken in den Ablaufplänen und/oder Blockschaltbildern durch Computerprogrammanweisungen realisiert werden kann bzw. können. Diese Computerprogrammanweisungen können einem Prozessor eines Mehrzweckcomputers, eines Spezialcomputers oder anderen programmierbaren Datenverarbeitungsvorrichtungen bereitgestellt werden, um eine Maschine zu erzeugen, sodass die Anweisungen, die über den Prozessor des Computers oder anderer programmierbarer Datenverarbeitungsvorrichtungen ausgeführt werden, Mittel zum Realisieren der in einem Block bzw. in den Blöcken des Ablaufplans und/oder des Blockschaltbildes angegebenen Funktionen/Aktionen schaffen.
  • Diese Computerprogrammanweisungen können ebenfalls in einem computerlesbaren Medium gespeichert sein, das einen Computer, andere programmierbare Datenverarbeitungsvorrichtungen oder andere Einheiten anweisen kann, in einer bestimmten Weise zu funktionieren, sodass die im computerlesbaren Medium gespeicherten Anweisungen ein Erzeugnis schaffen, das die Anweisungen aufweist, die die in einem Block bzw. in den Blöcken des Ablaufplans und/oder des Blockschaltbildes angegebene Funktion/Aktion realisieren.
  • Die Computerprogrammanweisungen können auch in einen Computer, in andere programmierbare Datenverarbeitungsvorrichtungen oder in andere Einheiten geladen werden, um zu bewirken, dass auf dem Computer, auf anderen programmierbaren Vorrichtungen oder anderen Einheiten eine Reihe von Arbeitsschritten ausgeführt wird, um einen mittels Computer realisierten Prozess zu schaffen, sodass die Anweisungen, die auf dem Computer oder auf anderen programmierbaren Vorrichtungen ausgeführt werden, Prozesse zur Realisierung der in einem Block bzw. in den Blöcken des Ablaufplans und/oder des Blockschaltbildes angegebenen Funktionen/Aktionen bereitstellen.
  • Die Begriffe „eine Ausführungsform”, „Ausführungsform”, „Ausführungsformen”, „die Ausführungsform”, „die Ausführungsformen”, „eine oder mehrere Ausführungsformen”, „einige Ausführungsformen” und „eine Ausführungsform” bedeuten „eine oder mehrere (aber nicht alle) Ausführungsformen der vorliegenden Erfindungen)”, sofern nicht ausdrücklich etwas anderes angegeben ist.
  • Die Begriffe „einschließlich”, „aufweisen/aufweisend”, „hat/haben” und Variationen davon bedeuten „einschließlich, ohne darauf beschränkt zu sein”, sofern nicht ausdrücklich etwas anderes angegeben ist.
  • Alle nummerierten Aufstellungen von Elementen schließen nicht stillschweigend ein, dass sich beliebige oder alle der Elemente gegenseitig ausschließen sofern nicht ausdrücklich etwas anderes angegeben ist.
  • Die Begriffe „ein/eine” und „der/die/das” bezeichnen „ein/eine oder mehrere”, sofern nicht ausdrücklich etwas anderes angegeben ist.
  • Einheiten, die in Verbindung untereinander stehen, brauchen nicht ununterbrochen miteinander in Verbindung zu stehen, sofern nicht ausdrücklich etwas anderes angegeben ist. Außerdem können untereinander in Verbindung stehende Einheiten über eine oder mehrere Vermittlereinheiten direkt oder indirekt miteinander kommunizieren.
  • Eine Beschreibung einer Ausführungsform, bei der mehreren Komponenten untereinander in Verbindung stehen, schließt nicht stillschweigend ein, dass alle diese Komponenten erforderlich sind. Vielmehr ist eine Vielfalt optionaler Komponenten beschrieben, um die große Vielfalt möglicher Ausführungsformen der vorliegenden Erfindung zu veranschaulichen.
  • Obwohl ferner Prozessschritte, Verfahrensschritte, Algorithmen und dergleichen in einer Reihenfolge beschrieben sein können, können derartige Prozesse, Verfahren und Algorithmen so gestaltet sein, dass sie in alternativen Reihenfolgen funktionieren. Anders ausgedrückt gibt ein möglicherweise beschriebener beliebiger Ablauf oder eine möglicherweise beschriebene beliebige Reihenfolge von Schritten nicht zwangsläufig ein Erfordernis an, dem zufolge die Schritte in dieser Reihenfolge durchgeführt werden müssen. Die hierin beschriebenen Schritte von Prozessen können in einer beliebigen praktisch durchführbaren Reihenfolge durchgeführt werden. Ferner können einige Schritte gleichzeitig durchgeführt werden.
  • Wenn hierin eine einzelne Einheit oder ein einzelner Gegenstand beschrieben ist, wird ohne Weiteres ersichtlich, dass mehr als eine Einheit/ein Gegenstand (unabhängig davon, ob sie zusammenarbeiten) anstelle einer einzelnen Einheit/eines einzelnen Gegenstands verwendet werden können. Ebenso wird, wenn hierin mehr als eine Einheit oder mehr als ein Gegenstand beschrieben ist (unabhängig davon, ob sie zusammenarbeiten), ohne Weiteres ersichtlich, dass eine einzelne Einheit oder ein einzelner Gegenstand oder eine andere Anzahl von Einheiten/Gegenständen anstelle der gezeigten Anzahl von Einheiten oder Programmen verwendet werden kann. Die Funktionalität und/oder die Merkmale einer Einheit können alternativ durch eine oder mehrere andere Einheiten verkörpert sein, die nicht ausdrücklich als diese Funktionalität/diese Merkmale aufweisend beschrieben sind. Daher brauchen andere Ausführungsformen der vorliegenden Erfindung die Einheit selbst nicht aufzuweisen.
  • Die veranschaulichten Operationen der 6, 7a, 7b und 8 zeigen bestimmte Ereignisse, die in einer bestimmten Reihenfolge auftreten. Bei alternativen Ausführungsformen können bestimmte Operationen in einer anderen Reihenfolge durchgeführt, verändert oder entfernt werden. Darüber hinaus können Schritte zu der oben beschriebenen Logik hinzugefügt werden, die dann immer noch den beschriebenen Ausführungsschritten entspricht. Ferner können hierin beschriebene Operationen der Reihe nach auftreten, oder bestimmte Operationen können parallel verarbeitet werden. Weiterhin können Operationen durch eine einzelne Verarbeitungseinheit oder durch verteilte Verarbeitungseinheiten durchgeführt werden.
  • Die vorstehende Beschreibung verschiedener Ausführungsformen der Erfindung wurde zur Veranschaulichung und Beschreibung vorgelegt. Sie ist nicht als erschöpfend oder als die Erfindung in der exakt offenbarten Form einschränkend gedacht. In Anbetracht der oben aufgeführten Lehren sind viele Veränderungen und Variationen möglich. Es ist nicht beabsichtigt, den Schutzbereich der Erfindung durch diese detaillierte Beschreibung einzuschränken, sondern vielmehr durch die hier beigefügten Ansprüche. Die obige ausführliche Beschreibung, die Beispiele und Daten stellen eine vollständige Beschreibung der Herstellung und der Verwendung des Aufbaus der Erfindung dar. Da viele Ausführungsformen der Erfindung geschaffen werden können, ohne vom Ideengehalt und Schutzbereich der Erfindung abzuweichen, ist die Erfindung in den hierin im Anschluss angefügten Ansprüchen niedergelegt.

Claims (36)

  1. Computerprogrammprodukt zum Replizieren von Objekten von einem Quellspeicher, der durch einen Quellserver verwaltet wird, auf einen Zielspeicher, der durch einen Zielserver verwaltet wird, wobei das Computerprogrammprodukt ein computerlesbares Speichermedium mit darin verkörpertem computerlesbarem Programmcode aufweist, der ausgeführt wird, um den Quellserver zu veranlassen Operationen durchzuführen, wobei die Operationen aufweisen: Aufbauen einer Quellliste von Objekten auf dem Quellserver, die auf den Zielserver repliziert werden sollen; Abfragen des Zielservers, um eine Liste von Objekten auf dem Zielserver zu empfangen; Aufbauen einer Replikationsliste, die auf den Zielserver zu übertragende Objekte in der Quellliste angibt, die nicht in der Zielliste enthalten sind; Durchführen bei jedem Objekt in der Replikationsliste: Senden von Daten an den Zielserver für das Objekt, das nicht bereits auf dem Zielspeicher vorhanden ist; Senden von Metadaten über das Objekt an den Zielserver, um den Zielserver zu veranlassen, die Metadaten in einem Eintrag für das Objekt in einer Zielserver-Replikationsdatenbank aufzunehmen; Hinzufügen eines Eintrags für das Objekt zu einer Quellserver-Replikationsdatenbank.
  2. Computerprogrammprodukt nach Anspruch 1, bei dem die Operationen ferner aufweisen: zu jedem Objekt in der Replikationsliste das Aufnehmen einer Kennung des Objektes auf dem Quellserver und einer Kennung des Objektes auf dem Zielserver in den Eintrag für das Objekt in der Quellserver-Replikationsdatenbank.
  3. Computerprogrammprodukt nach Anspruch 1, bei dem die Operationen ferner aufweisen: Durchführen bei jedem Objekt sowohl in der Quellliste als auch in der Zielliste: Senden von Metadaten für das Objekt an den Zielserver, um den Zielserver zu veranlassen, die Metadaten in einem Eintrag für das Objekt in der Zielserver-Replikationsdatenbank aufzunehmen; und Hinzufügen eines Eintrags für das Objekt zur Quellserver-Replikationsdatenbank.
  4. Computerprogrammprodukt nach Anspruch 1, bei dem jedes Objekt aus Datenblöcken besteht, wobei die Operationen, die bei jedem Objekt in der Replikationsliste durchgeführt werden, ferner aufweisen: Ermitteln von Datenblöcken in den Objekten; und Ermitteln einer ersten Menge von Datenblöcken in dem Objekt, die nicht auf dem Zielspeicher gespeichert sind, wobei das Senden der Daten für das Objekt an den Zielserver das Senden der ermittelten Menge von Datenblöcken an den Zielserver aufweist, die im Zielspeicher gespeichert werden sollen; und Ermitteln einer zweiten Menge von Datenblöcken in dem Objekt, die gegenwärtig auf dem Zielspeicher gespeichert sind; und Senden von Datenblockkennungen von Datenblöcken in der zweiten Menge von Datenblöcken an den Zielserver.
  5. Computerprogrammprodukt nach Anspruch 1, bei dem die Operationen ferner aufweisen: Abfragen des Zielservers auf einen Bestand von Objekten auf dem Zielserver, die ein erstes Kriterium erfüllen; Empfangen des Bestands der Objekte vom Zielserver; Ermitteln von Objekten im Quellserver, die mit den im Bestand vom Zielserver aufgeführten übereinstimmen; Senden von Metadaten für die ermittelten Objekte, die mit den im Bestand aufgeführten übereinstimmen, an den Zielserver, um den Zielserver zu veranlassen, die Metadaten in einem Eintrag für das Objekt in der Zielserver-Replikationsdatenbank aufzunehmen; und Hinzufügen eines Eintrags für das Objekt zur Quellserver-Replikationsdatenbank, wobei die aufgebaute Quellliste auf dem Quellserver zu replizierende Objekte aufweist, die ein zweites Kriterium erfüllen.
  6. Computerprogrammprodukt nach Anspruch 5, bei dem das erste Kriterium einen Client-Knoten aufweist, von dem die zu replizierenden Objekte stammen, und wobei das zweite Kriterium mindestens Eines aus Datentyp und Dateibereich von Objekten auf dem Client-Knoten aufweist.
  7. Computerprogrammprodukt nach Anspruch 1, bei dem die Operationen ferner aufweisen: Ermitteln von zu löschenden Objekten, die auf der Zielliste, aber nicht auf der Quellliste vorliegen; und Kommunizieren mit dem Zielserver, um den Zielserver zu veranlassen, die als zu löschen ermittelten Objekte vom Zielserver und aus dem Zielspeicher zu löschen.
  8. Computerprogrammprodukt nach Anspruch 1, bei dem der Quellserver und der Zielserver mindestens Eines aus getrennt und unabhängig voneinander arbeitender Hardware und getrennt und unabhängig voneinander arbeitenden Betriebssystemen bereitstellt; wobei der Zielserver einen sofortigen Bereitschaftsmodus (Hot-Standby-Modus) für den Quellserver; und heterogene Hardware und Betriebssysteme bereitstellt.
  9. Computerprogrammprodukt zum Replizieren von Objekten von einem Quellspeicher, der durch einen Quellserver verwaltet wird, auf einen Zielspeicher, der durch einen Zielserver verwaltet wird, wobei das Computerprogrammprodukt ein computerlesbares Speichermedium mit darin verkörpertem computerlesbarem Programmcode aufweist, der ausgeführt wird, um den Zielserver zu veranlassen Operationen durchzuführen, wobei die Operationen aufweisen: Empfangen einer Abfrage vom Quellserver nach einer Zielliste von Objekten auf dem Zielserver; Senden der Zielliste der Objekte auf dem Zielserver an den Quellserver; Empfangen von Daten für Objekte, die im Zielspeicher gespeichert werden sollen, vom Quellserver; Empfangen von Metadaten zu den Daten, die zu den zu replizierenden Daten empfangen wurden, vom Quellserver; Hinzufügen eines Eintrags zu einer Zielserver-Replikationsdatenbank für jedes Objekt, zu dem Daten empfangen wurden.
  10. Computerprogrammprodukt nach Anspruch 9, bei dem die Operationen ferner aufweisen: für den Eintrag zu jedem Objekt in der Zielserver-Replikationsliste das Aufnehmen einer Kennung des Objektes auf dem Quellserver und einer Kennung des Objektes auf dem Zielserver.
  11. Computerprogrammprodukt nach Anspruch 9, bei dem die Operationen ferner aufweisen: Empfangen von Metadaten vom Quellserver für jedes zu replizierende Objekt, das bereits im Zielspeicher gespeichert ist; und Hinzufügen eines Eintrags zur Zielserver-Replikationsdatenbank für jedes zu replizierende Objekt, das bereits im Zielspeicher gespeichert ist, einschließlich der zu dem Objekt empfangenen Metadaten.
  12. Computerprogrammprodukt nach Anspruch 9, bei dem jedes Objekt aus Datenblöcken besteht, wobei das Empfangen der Daten zu mindestens einem Objekt das Empfangen nur der Datenblöcke zu dem Objekt vom Quellserver aufweist, die nicht bereits im Zielspeicher gespeichert sind, wobei die Operationen ferner aufweisen: Empfangen einer Liste von Datenblöcken in dem gegenwärtig im Zielspeicher gespeicherten Objekt vom Quellserver; und bei jedem Objekt, bei dem weniger als alle Datenblöcke in dem Objekt vom Zielserver empfangen wurden, im Eintrag für das Objekt in der Zielserver-Replikationsdatenbank das Angeben von Verknüpfungen zu den Datenblöcken in der Liste von Datenblöcken, die bereits im Zielspeicher gespeichert sind.
  13. Computerprogrammprodukt nach Anspruch 9, bei dem die Operationen ferner aufweisen: Empfangen einer Abfrage vom Quellserver auf einen Bestand von Objekten auf dem Zielserver, die ein erstes Kriterium erfüllen; Senden des Bestands der Objekte auf dem Zielserver, die das erste Kriterium erfüllen, an den Quellserver; Empfangen von Metadaten zu Objekten auf dem Quellserver, die mit den im Bestand aufgeführten übereinstimmen; und Hinzufügen eines Eintrags zur Zielserver-Replikationsdatenbank für jedes Objekt, zu dem Metadaten für die Objekte empfangen werden, die mit den im Bestand aufgeführten übereinstimmen, wobei die Einträge die Metadaten zu dem Objekt aufweisen, wobei die Zielliste Objekte auf dem Zielserver aufweist, die ein zweites Kriterium erfüllen.
  14. Computerprogrammprodukt nach Anspruch 9, bei dem mehrere Quellserver auf den Zielserver repliziert werden.
  15. Computerprogrammprodukt nach Anspruch 9, bei dem die Operationen ferner aufweisen: Verwalten einer Gruppe von Objekten, die im Zielspeicher gespeichert sind; und Angegeben der Gruppe von Objekten als unvollständig als Reaktion auf das Ermitteln, dass nicht alle Objekte in der Gruppe auf dem Zielserver empfangen wurden, wobei die als unvollständig angegebene Gruppe von Objekten einem Client-Knoten während einer Wiederherstellungsoperation nicht verfügbar gemacht wird.
  16. Computerprogrammprodukt nach Anspruch 15, bei dem die Operationen ferner aufweisen: Empfangen von Objekten zu der Gruppe von Objekten, die als unvollständig angegeben ist; und Angeben der Gruppe von Objekten als vollständig als Reaktion darauf, dass alle Objekte in der Gruppe empfangen wurden, wobei Objekte in der Gruppe, die als vollständig angegeben sind, einem Client-Knoten während einer Wiederherstellungsoperationen verfügbar gemacht werden.
  17. System zum Replizieren von Objekten von einem Quellspeicher auf einen Zielspeicher, der durch einen Zielserver verwaltet wird, aufweisend: einen Prozessor; und ein computerlesbares Speichermedium, das Code aufweist, der durch den Prozessor ausgeführt wird, um Operationen durchzuführen, wobei die Operationen aufweisen: Aufbauen einer Quellliste von Objekten auf dem Quellspeicher, die auf den Zielserver repliziert werden sollen; Abfragen des Zielservers, um eine Liste von Objekten auf dem Zielserver zu empfangen; Aufbauen einer Replikationsliste, die auf den Zielserver zu übertragende Objekte in der Quellliste angibt, die nicht in der Zielliste enthalten sind; Durchführen bei jedem Objekt in der Replikationsliste: Senden von Daten an den Zielserver für das Objekt, das nicht bereits auf dem Zielspeicher vorhanden ist; Senden von Metadaten über das Objekt an den Zielserver, um den Zielserver zu veranlassen, die Metadaten in einem Eintrag für das Objekt in einer Zielserver-Replikationsdatenbank aufzunehmen; Hinzufügen eines Eintrags für das Objekt zu einer Quellserver-Replikationsdatenbank.
  18. System nach Anspruch 17, bei dem die Operationen ferner aufweisen: Durchführen bei jedem Objekt sowohl in der Quellliste als auch in der Zielliste: Senden von Metadaten für das Objekt an den Zielserver, um den Zielserver zu veranlassen, die Metadaten in einem Eintrag für das Objekt in der Zielserver-Replikationsdatenbank aufzunehmen; und Hinzufügen eines Eintrags für das Objekt zur Quellserver-Replikationsdatenbank.
  19. System nach Anspruch 17, bei dem jedes Objekt aus Datenblöcken besteht, wobei die Operationen, die bei jedem Objekt in der Replikationsliste durchgeführt werden, ferner aufweisen: Ermitteln von Datenblöcken in den Objekten; und Ermitteln einer ersten Menge von Datenblöcken in dem Objekt, die nicht auf dem Zielspeicher gespeichert sind, wobei das Senden der Daten für das Objekt an den Zielserver das Senden der ermittelten Menge von Datenblöcken an den Zielserver aufweist, die im Zielspeicher gespeichert werden sollen; und Ermitteln einer zweiten Menge von Datenblöcken in dem Objekt, die gegenwärtig auf dem Zielspeicher gespeichert sind; und Senden von Datenblockkennungen von Datenblöcken in der zweiten Menge von Datenblöcken an den Zielserver.
  20. System nach Anspruch 17, bei dem die Operationen ferner aufweisen: Abfragen des Zielservers nach einem Bestand von Objekten auf dem Zielserver, die ein erstes Kriterium erfüllen; Empfangen des Bestands der Objekte vom Zielserver; Ermitteln von Objekten im Quellserver, die mit den im Bestand vom Zielserver aufgeführten übereinstimmen; Senden von Metadaten für die ermittelten Objekte, die mit den im Bestand aufgeführten übereinstimmen, an den Zielserver, um den Zielserver zu veranlassen, die Metadaten in einem Eintrag für das Objekt in der Zielserver-Replikationsdatenbank aufzunehmen; und Hinzufügen eines Eintrags für das Objekt zur Quellserver-Replikationsdatenbank, wobei die aufgebaute Quellliste auf dem Quellserver zu replizierende Objekte aufweist, die ein zweites Kriterium erfüllen.
  21. System nach Anspruch 17, bei dem die Operationen ferner aufweisen: Ermitteln von zu löschenden Objekten, die auf der Zielliste, aber nicht auf der Quellliste vorliegen; und Kommunizieren mit dem Zielserver, um den Zielserver zu veranlassen, die als zu löschen ermittelten Objekte vom Zielserver und aus dem Zielspeicher zu löschen.
  22. System zum Replizieren von Objekten von einem Quellspeicher, der durch einen Quellserver verwaltet wird, auf einen Zielspeicher, aufweisend: einen Prozessor; und ein computerlesbares Speichermedium, das Code aufweist, der durch den Prozessor ausgeführt wird, um Operationen durchzuführen, wobei die Operationen aufweisen: Empfangen einer Abfrage vom Quellserver nach einer Zielliste von Objekten auf dem Zielserver; Senden der Zielliste der Objekte auf dem Zielserver an den Quellserver; Empfangen von Daten für Objekte, die im Zielspeicher gespeichert werden sollen, vom Quellserver; Empfangen von Metadaten zu den Daten, die zu den zu replizierenden Daten empfangen wurden, vom Quellserver; Hinzufügen eines Eintrags zu einer Zielserver-Replikationsdatenbank für jedes Objekt, zu dem Daten empfangen wurden.
  23. System nach Anspruch 22, bei dem die Operationen ferner aufweisen: Empfangen von Metadaten vom Quellserver für jedes zu replizierende Objekt, das bereits im Zielspeicher gespeichert ist; und Hinzufügen eines Eintrags zur Zielserver-Replikationsdatenbank für jedes zu replizierende Objekt, das bereits im Zielspeicher gespeichert ist, einschließlich der zu dem Objekt empfangenen Metadaten.
  24. System nach Anspruch 22, bei dem jedes Objekt aus Datenblöcken besteht, wobei das Empfangen der Daten zu mindestens einem Objekt das Empfangen nur der Datenblöcke zu dem Objekt vom Quellserver aufweist, die nicht bereits im Zielspeicher gespeichert sind, wobei die Operationen ferner aufweisen: Empfangen einer Liste von Datenblöcken in dem gegenwärtig im Zielspeicher gespeicherten Objekt vom Quellserver; und bei jedem Objekt, bei dem weniger als alle Datenblöcke in dem Objekt vom Zielserver empfangen wurden, im Eintrag für das Objekt in der Zielserver-Replikationsdatenbank das Angeben von Verknüpfungen zu den Datenblöcken in der Liste von Datenblöcken, die bereits im Zielspeicher gespeichert sind.
  25. System nach Anspruch 22, bei dem die Operationen ferner aufweisen: Empfangen einer Abfrage vom Quellserver nach einem Bestand von Objekten auf dem Zielserver, die ein erstes Kriterium erfüllen; Senden des Bestands der Objekte auf dem Zielserver, die das erste Kriterium erfüllen, an den Quellserver; Empfangen von Metadaten zu Objekten auf dem Quellserver, die mit den im Bestand aufgeführten übereinstimmen; und Hinzufügen eines Eintrags zur Zielserver-Replikationsdatenbank für jedes Objekt, zu dem Metadaten für die Objekte empfangen werden, die mit den im Bestand aufgeführten übereinstimmen, wobei die Einträge die Metadaten zu dem Objekt aufweisen, wobei die Zielliste Objekte auf den Zielserver aufweist, die ein zweites Kriterium erfüllen.
  26. System nach Anspruch 22, bei dem die Operationen ferner aufweisen: Verwalten einer Gruppe von Objekten, die im Zielspeicher gespeichert sind; und Angeben der Gruppe von Objekten als unvollständig als Reaktion auf das Ermitteln, dass nicht alle Objekte in der Gruppe auf dem Zielserver empfangen wurden, wobei die als unvollständig angegebene Gruppe von Objekten einem Client-Knoten während einer Wiederherstellungsoperation nicht verfügbar gemacht wird.
  27. Verfahren zum Replizieren von Objekten von einem Quellspeicher, der durch einen Quellserver verwaltet wird, auf einen Zielspeicher, der durch einen Zielserver verwaltet wird, aufweisend: Aufbauen einer Quellliste von Objekten auf dem Quellserver, die auf den Zielserver repliziert werden sollen; Abfragen des Zielservers, um eine Liste von Objekten auf dem Zielserver zu empfangen; Aufbauen einer Replikationsliste, die auf den Zielserver zu übertragende Objekte in der Quellliste angibt, die nicht in der Zielliste enthalten sind; Durchführen bei jedem Objekt in der Replikationsliste: Senden von Daten an den Zielserver für das Objekt, das nicht bereits auf dem Zielspeicher vorhanden ist; Senden von Metadaten über das Objekt an den Zielserver, um den Zielserver zu veranlassen, die Metadaten in einem Eintrag für das Objekt in einer Zielserver-Replikationsdatenbank aufzunehmen; Hinzufügen eines Eintrags für das Objekt zu einer Quellserver-Replikationsdatenbank.
  28. Verfahren nach Anspruch 27, ferner aufweisend: Durchführen bei jedem Objekt sowohl in der Quellliste als auch in der Zielliste: Senden von Metadaten für das Objekt an den Zielserver, um den Zielserver zu veranlassen, die Metadaten in einem Eintrag für das Objekt in der Zielserver-Replikationsdatenbank aufzunehmen; und Hinzufügen eines Eintrags für das Objekt zur Quellserver-Replikationsdatenbank.
  29. Verfahren nach Anspruch 27, bei dem jedes Objekt aus Datenblöcken besteht, wobei die Operationen, die bei jedem Objekt in der Replikationsliste durchgeführt werden, ferner aufweisen: Ermitteln von Datenblöcken in den Objekten; und Ermitteln einer ersten Menge von Datenblöcken in dem Objekt, die nicht auf dem Zielspeicher gespeichert sind, wobei das Senden der Daten für das Objekt an den Zielserver das Senden der ermittelten Menge von Datenblöcken an den Zielserver aufweist, die im Zielspeicher gespeichert werden sollen; und Ermitteln einer zweiten Menge von Datenblöcken in dem Objekt, die gegenwärtig auf dem Zielspeicher gespeichert sind; und Senden von Datenblockkennungen von Datenblöcken in der zweiten Menge von Datenblöcken an den Zielserver.
  30. Verfahren nach Anspruch 27, ferner aufweisend: Abfragen des Zielservers auf einen Bestand von Objekten auf dem Zielserver, die ein erstes Kriterium erfüllen; Empfangen des Bestands der Objekte vom Zielserver; Ermitteln von Objekten im Quellserver, die mit den im Bestand vom Zielserver aufgeführten übereinstimmen; Senden von Metadaten für die ermittelten Objekte, die mit den im Bestand aufgeführten übereinstimmen, an den Zielserver, um den Zielserver zu veranlassen, die Metadaten in einem Eintrag für das Objekt in der Zielserver-Replikationsdatenbank aufzunehmen; und Hinzufügen eines Eintrags für das Objekt zur Quellserver-Replikationsdatenbank, wobei die aufgebaute Quellliste auf dem Quellserver zu replizierende Objekte aufweist, die ein zweites Kriterium erfüllen.
  31. Verfahren nach Anspruch 27, ferner aufweisend: Ermitteln von zu löschenden Objekten, die auf der Zielliste, aber nicht auf der Quellliste vorliegen; und Kommunizieren mit dem Zielserver, um den Zielserver zu veranlassen, die als zu löschen ermittelten Objekte vom Zielserver und aus dem Zielspeicher zu löschen.
  32. Verfahren zum Replizieren von Objekten von einem Quellspeicher, der durch einen Quellserver verwaltet wird, auf einen Zielspeicher, der durch einen Zielserver verwaltet wird, aufweisend: Empfangen einer Abfrage vom Quellserver nach einer Zielliste von Objekten auf dem Zielserver; Senden der Zielliste der Objekte auf dem Zielserver an den Quellserver; Empfangen von Daten für Objekte, die im Zielspeicher gespeichert werden sollen, vom Quellserver; Empfangen von Metadaten zu den Daten, die zu den zu replizierenden Daten empfangen wurden, vom Quellserver; Hinzufügen eines Eintrags zu einer Zielserver-Replikationsdatenbank für jedes Objekt, zu dem Daten empfangen wurden.
  33. Verfahren nach Anspruch 32, ferner aufweisend: Empfangen von Metadaten vom Quellserver für jedes zu replizierende Objekt, das bereits im Zielspeicher gespeichert ist; und Hinzufügen eines Eintrags zur Zielserver-Replikationsdatenbank für jedes zu replizierende Objekt, das bereits im Zielspeicher gespeichert ist, einschließlich der zu dem Objekt empfangenen Metadaten.
  34. Verfahren nach Anspruch 32, bei dem jedes Objekt aus Datenblöcken besteht, wobei das Empfangen der Daten zu mindestens einem Objekt das Empfangen nur der Datenblöcke zu dem Objekt vom Quellserver aufweist, die nicht bereits im Zielspeicher gespeichert sind, ferner aufweisend: Empfangen einer Liste von Datenblöcken in dem gegenwärtig im Zielspeicher gespeicherten Objekt vom Quellserver; und bei jedem Objekt, bei dem weniger als alle Datenblöcke in dem Objekt vom Zielserver empfangen wurden, im Eintrag für das Objekt in der Zielserver-Replikationsdatenbank das Angeben von Verknüpfungen zu den Datenblöcken in der Liste von Datenblöcken, die bereits im Zielspeicher gespeichert sind.
  35. Verfahren nach Anspruch 32, ferner aufweisend: Empfangen einer Abfrage vom Quellserver nach einem Bestand von Objekten auf dem Zielserver, die ein erstes Kriterium erfüllen; Senden des Bestands der Objekte auf dem Zielserver, die das erste Kriterium erfüllen, an den Quellserver; Empfangen von Metadaten zu Objekten auf dem Quellserver, die mit den im Bestand aufgeführten übereinstimmen; und Hinzufügen eines Eintrags zur Zielserver-Replikationsdatenbank für jedes Objekt, zu dem Metadaten für die Objekte empfangen werden, die mit den im Bestand aufgeführten übereinstimmen, wobei die Einträge die Metadaten zu dem Objekt aufweisen, wobei die Zielliste Objekte auf den Zielserver aufweist, die ein zweites Kriterium erfüllen.
  36. Verfahren nach Anspruch 32, ferner aufweisend: Verwalten einer Gruppe von Objekten, die im Zielspeicher gespeichert sind; und Angeben der Gruppe von Objekten als unvollständig als Reaktion auf das Ermitteln, dass nicht alle Objekte in der Gruppe auf dem Zielserver empfangen wurden, wobei die als unvollständig angegebene Gruppe von Objekten einem Client-Knoten während einer Wiederherstellungsoperation nicht verfügbar gemacht wird.
DE112012002762.0T 2011-08-30 2012-08-28 Replikationen von Datenobjekten von einem Quellserver auf einen Zielserver Pending DE112012002762T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/221,670 2011-08-30
US13/221,670 US9910904B2 (en) 2011-08-30 2011-08-30 Replication of data objects from a source server to a target server
PCT/CA2012/050593 WO2013029173A1 (en) 2011-08-30 2012-08-28 Replication of data objects from a source server to a target server

Publications (1)

Publication Number Publication Date
DE112012002762T5 true DE112012002762T5 (de) 2014-04-10

Family

ID=47745090

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112012002762.0T Pending DE112012002762T5 (de) 2011-08-30 2012-08-28 Replikationen von Datenobjekten von einem Quellserver auf einen Zielserver

Country Status (6)

Country Link
US (4) US9910904B2 (de)
JP (2) JP5671656B2 (de)
CN (1) CN103765817B (de)
DE (1) DE112012002762T5 (de)
GB (1) GB2509023A (de)
WO (1) WO2013029173A1 (de)

Families Citing this family (186)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9378216B2 (en) * 2009-09-29 2016-06-28 Oracle America, Inc. Filesystem replication using a minimal filesystem metadata changelog
US9244967B2 (en) 2011-08-01 2016-01-26 Actifio, Inc. Incremental copy performance between data stores
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US9910904B2 (en) 2011-08-30 2018-03-06 International Business Machines Corporation Replication of data objects from a source server to a target server
US8868505B1 (en) * 2012-03-20 2014-10-21 Emc Corporation Systems and methods for protecting data in a network host environment
US9258262B2 (en) * 2012-04-30 2016-02-09 Racemi, Inc. Mailbox-based communications system for management communications spanning multiple data centers and firewalls
TW201401074A (zh) * 2012-06-26 2014-01-01 Quanta Comp Inc 軟體跨雲部署機制及系統
US9417796B2 (en) 2012-06-29 2016-08-16 M-Files Oy Method, a server, a system and a computer program product for copying data from a source server to a target server
US10037370B2 (en) * 2012-06-29 2018-07-31 M-Files Oy Method, a server, a system and a computer program product for copying data from a source server to a target server
US9563628B1 (en) * 2012-12-11 2017-02-07 EMC IP Holding Company LLC Method and system for deletion handling for incremental file migration
US8930311B1 (en) * 2012-12-14 2015-01-06 Netapp, Inc. Push-based piggyback system for source-driven logical replication in a storage environment
US11023487B2 (en) 2013-03-04 2021-06-01 Sap Se Data replication for cloud based in-memory databases
US9251008B2 (en) * 2013-03-14 2016-02-02 International Business Machines Corporation Client object replication between a first backup server and a second backup server
JP6083268B2 (ja) * 2013-03-14 2017-02-22 日本電気株式会社 レプリケーションシステム
US9805105B1 (en) * 2013-03-15 2017-10-31 EMC IP Holding Company LLC Automatically creating multiple replication sessions in response to a single replication command entered by a user
TW201437940A (zh) * 2013-03-30 2014-10-01 Ibm 提供一交易處理伺服器有效率之資料複製的方法、支援伺服器與電腦程式產品
US8849764B1 (en) 2013-06-13 2014-09-30 DataGravity, Inc. System and method of data intelligent storage
US10089192B2 (en) 2013-06-13 2018-10-02 Hytrust, Inc. Live restore for a data intelligent storage system
US9213706B2 (en) 2013-06-13 2015-12-15 DataGravity, Inc. Live restore for a data intelligent storage system
US10102079B2 (en) 2013-06-13 2018-10-16 Hytrust, Inc. Triggering discovery points based on change
US9639448B2 (en) * 2013-06-27 2017-05-02 Sap Se Multi-version systems for zero downtime upgrades
US9569455B1 (en) * 2013-06-28 2017-02-14 EMC IP Holding Company LLC Deduplicating container files
US9461969B2 (en) 2013-10-01 2016-10-04 Racemi, Inc. Migration of complex applications within a hybrid cloud environment
CN103595782A (zh) * 2013-11-11 2014-02-19 中安消技术有限公司 一种分布式存储系统及其下载文件的方法
CN104657396B (zh) * 2013-11-25 2020-04-24 腾讯科技(深圳)有限公司 数据迁移方法及装置
US20160253398A1 (en) * 2013-12-06 2016-09-01 Hewlett Packard Enterprise Development Lp Replicating metadata associated with a file
US20150227543A1 (en) * 2014-02-11 2015-08-13 Atlantis Computing, Inc. Method and apparatus for replication of files and file systems using a deduplication key space
US11016941B2 (en) 2014-02-28 2021-05-25 Red Hat, Inc. Delayed asynchronous file replication in a distributed file system
US10025808B2 (en) 2014-03-19 2018-07-17 Red Hat, Inc. Compacting change logs using file content location identifiers
US9986029B2 (en) * 2014-03-19 2018-05-29 Red Hat, Inc. File replication using file content location identifiers
US9965505B2 (en) 2014-03-19 2018-05-08 Red Hat, Inc. Identifying files in change logs using file content location identifiers
US10656864B2 (en) * 2014-03-20 2020-05-19 Pure Storage, Inc. Data replication within a flash storage array
US9606870B1 (en) 2014-03-31 2017-03-28 EMC IP Holding Company LLC Data reduction techniques in a flash-based key/value cluster storage
WO2015152935A1 (en) * 2014-04-04 2015-10-08 Hewlett-Packard Development Company, L.P. Storing and retrieving ciphertext in data storage
WO2015167603A1 (en) 2014-04-29 2015-11-05 Hewlett-Packard Development Company, L.P. Maintaining files in a retained file system
US9792187B2 (en) 2014-05-06 2017-10-17 Actifio, Inc. Facilitating test failover using a thin provisioned virtual machine created from a snapshot
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. Storage cluster
US11960371B2 (en) 2014-06-04 2024-04-16 Pure Storage, Inc. Message persistence in a zoned system
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US9396243B1 (en) * 2014-06-27 2016-07-19 Emc Corporation Hash-based replication using short hash handle and identity bit
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US9836245B2 (en) 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in a non-volatile solid-state storage
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US11886308B2 (en) 2014-07-02 2024-01-30 Pure Storage, Inc. Dual class of service for unified file and object messaging
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US9747229B1 (en) 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
US10853311B1 (en) 2014-07-03 2020-12-01 Pure Storage, Inc. Administration through files in a storage system
CN105279020A (zh) * 2014-07-03 2016-01-27 北京联嘉众赢网络技术有限公司 一种任务调度方法及系统
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US9483346B2 (en) 2014-08-07 2016-11-01 Pure Storage, Inc. Data rebuild on feedback from a queue in a non-volatile solid-state storage
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
CN105447033B (zh) 2014-08-28 2019-06-11 国际商业机器公司 在复制初始化中生成初始副本的方法和装置
US9753955B2 (en) 2014-09-16 2017-09-05 Commvault Systems, Inc. Fast deduplication data verification
US10025843B1 (en) 2014-09-24 2018-07-17 EMC IP Holding Company LLC Adjusting consistency groups during asynchronous replication
US20160100004A1 (en) * 2014-10-06 2016-04-07 International Business Machines Corporation Data replication across servers
JP6037469B2 (ja) * 2014-11-19 2016-12-07 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 情報管理システム、情報管理方法およびプログラム
US20160150012A1 (en) 2014-11-25 2016-05-26 Nimble Storage, Inc. Content-based replication of data between storage units
US9959274B2 (en) * 2014-12-19 2018-05-01 Amazon Technologies, Inc. Volume-level redundancy coding techniques for sequential transfer optimized storage devices
US9672264B2 (en) * 2015-01-26 2017-06-06 Netapp, Inc. Method and system for backup verification
US10158742B2 (en) 2015-02-18 2018-12-18 Actmobile Networks, Inc. Multi-stage acceleration system and method
US9940234B2 (en) 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US9672125B2 (en) 2015-04-10 2017-06-06 Pure Storage, Inc. Ability to partition an array into two or more logical arrays with independently running software
US9639274B2 (en) 2015-04-14 2017-05-02 Commvault Systems, Inc. Efficient deduplication database validation
WO2016185573A1 (ja) * 2015-05-20 2016-11-24 株式会社日立製作所 重複排除ストレージにおけるボリュームバックアップ・リストア方法
US9665534B2 (en) * 2015-05-27 2017-05-30 Red Hat Israel, Ltd. Memory deduplication support for remote direct memory access (RDMA)
US9300737B1 (en) * 2015-06-02 2016-03-29 Mylio, LLC Object replication using object device links and flags
US10846275B2 (en) 2015-06-26 2020-11-24 Pure Storage, Inc. Key management in a storage device
US10983732B2 (en) 2015-07-13 2021-04-20 Pure Storage, Inc. Method and system for accessing a file
US10255287B2 (en) * 2015-07-31 2019-04-09 Hiveio Inc. Method and apparatus for on-disk deduplication metadata for a deduplication file system
US10725708B2 (en) 2015-07-31 2020-07-28 International Business Machines Corporation Replication of versions of an object from a source storage to a target storage
US10108355B2 (en) 2015-09-01 2018-10-23 Pure Storage, Inc. Erase block state detection
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US10853266B2 (en) 2015-09-30 2020-12-01 Pure Storage, Inc. Hardware assisted data lookup methods
US10762069B2 (en) 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US20170123676A1 (en) * 2015-11-04 2017-05-04 HGST Netherlands B.V. Reference Block Aggregating into a Reference Set for Deduplication in Memory Management
EP3173985A1 (de) * 2015-11-25 2017-05-31 Thomson Licensing Verfahren und gerät zum erzeugen eines kombinierten kalenders
US9430163B1 (en) 2015-12-15 2016-08-30 International Business Machines Corporation Implementing synchronization for remote disk mirroring
US10007457B2 (en) 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
US10152527B1 (en) 2015-12-28 2018-12-11 EMC IP Holding Company LLC Increment resynchronization in hash-based replication
US10324635B1 (en) 2016-03-22 2019-06-18 EMC IP Holding Company LLC Adaptive compression for data replication in a storage system
US10310951B1 (en) 2016-03-22 2019-06-04 EMC IP Holding Company LLC Storage system asynchronous data replication cycle trigger with empty cycle detection
US10095428B1 (en) 2016-03-30 2018-10-09 EMC IP Holding Company LLC Live migration of a tree of replicas in a storage system
US9959063B1 (en) 2016-03-30 2018-05-01 EMC IP Holding Company LLC Parallel migration of multiple consistency groups in a storage system
US10565058B1 (en) 2016-03-30 2020-02-18 EMC IP Holding Company LLC Adaptive hash-based data replication in a storage system
US9959073B1 (en) 2016-03-30 2018-05-01 EMC IP Holding Company LLC Detection of host connectivity for data migration in a storage system
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
CN105871678B (zh) * 2016-06-02 2019-09-24 郭立峰 远程管理私有网络内终端设备的方法
US10747734B2 (en) 2016-06-22 2020-08-18 International Business Machines Corporation Data deduplication within distributed computing components
US11861188B2 (en) 2016-07-19 2024-01-02 Pure Storage, Inc. System having modular accelerators
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US10768819B2 (en) 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
US11604690B2 (en) 2016-07-24 2023-03-14 Pure Storage, Inc. Online failure span determination
US11734169B2 (en) 2016-07-26 2023-08-22 Pure Storage, Inc. Optimizing spool and memory space management
US10366004B2 (en) 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US11422719B2 (en) 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
US10356171B1 (en) * 2016-09-16 2019-07-16 Plesk International Gmbh Mail server migration with message synchronization
US9747039B1 (en) 2016-10-04 2017-08-29 Pure Storage, Inc. Reservations over multiple paths on NVMe over fabrics
US10541895B2 (en) * 2016-10-13 2020-01-21 General Electric Company Apparatus and method for determining key performance indicators
EP3309692A1 (de) * 2016-10-17 2018-04-18 Huawei Technologies Co., Ltd. Verfahren zur elastischen geografischen datenbankreplikation
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US10747402B2 (en) * 2016-12-20 2020-08-18 Sap Se Replication filters for data replication system
JP6540677B2 (ja) 2016-12-22 2019-07-10 日本電気株式会社 ストレージ装置、ストレージ装置のバックアップ方法、ストレージ装置のバックアップシステム及びストレージ装置の制御プログラム
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US11955187B2 (en) 2017-01-13 2024-04-09 Pure Storage, Inc. Refresh of differing capacity NAND
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US11223528B2 (en) * 2017-01-27 2022-01-11 Box. Inc. Management of cloud-based shared content using predictive cost modeling
US10909097B2 (en) 2017-02-05 2021-02-02 Veritas Technologies Llc Method and system for dependency analysis of workloads for orchestration
US11310137B2 (en) 2017-02-05 2022-04-19 Veritas Technologies Llc System and method to propagate information across a connected set of entities irrespective of the specific entity type
GB201704973D0 (en) * 2017-03-28 2017-05-10 Gb Gas Holdings Ltd Data replication system
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US11016667B1 (en) 2017-04-05 2021-05-25 Pure Storage, Inc. Efficient mapping for LUNs in storage memory with holes in address space
US10282127B2 (en) 2017-04-20 2019-05-07 Western Digital Technologies, Inc. Managing data in a storage system
US10141050B1 (en) 2017-04-27 2018-11-27 Pure Storage, Inc. Page writes for triple level cell flash memory
US10516645B1 (en) 2017-04-27 2019-12-24 Pure Storage, Inc. Address resolution broadcasting in a networked device
US10809928B2 (en) 2017-06-02 2020-10-20 Western Digital Technologies, Inc. Efficient data deduplication leveraging sequential chunks or auxiliary databases
US11782625B2 (en) 2017-06-11 2023-10-10 Pure Storage, Inc. Heterogeneity supportive resiliency groups
US10425473B1 (en) 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
US11403260B2 (en) * 2017-07-18 2022-08-02 Vmware, Inc. Hash-based data transfer in distributed deduplication storage systems
US10503608B2 (en) 2017-07-24 2019-12-10 Western Digital Technologies, Inc. Efficient management of reference blocks used in data deduplication
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
JP7208967B2 (ja) * 2017-09-29 2023-01-19 オラクル・インターナショナル・コーポレイション 異種ターゲットに対して使用するために分散型データソースからの変更データをキャプチャするためのシステムおよび方法
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10877884B2 (en) * 2018-01-09 2020-12-29 International Business Machines Corporation Copying and forwarding for concurrent copying garbage collection
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
JP7306665B2 (ja) * 2018-03-01 2023-07-11 Necソリューションイノベータ株式会社 ストレージ装置、データ移行方法、プログラム
CN110389856B (zh) * 2018-04-20 2023-07-11 伊姆西Ip控股有限责任公司 用于迁移数据的方法、设备和计算机可读介质
US11645261B2 (en) 2018-04-27 2023-05-09 Oracle International Corporation System and method for heterogeneous database replication from a remote server
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US10534708B1 (en) * 2018-06-25 2020-01-14 Microsoft Technology Licensing, Llc Shallow cache for content replication
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US20200134052A1 (en) * 2018-10-26 2020-04-30 EMC IP Holding Company LLC Decentralized distribution using an overlay network
US11556699B2 (en) * 2019-02-04 2023-01-17 Citrix Systems, Inc. Data migration across SaaS applications
US11809382B2 (en) 2019-04-01 2023-11-07 Nutanix, Inc. System and method for supporting versioned objects
US11226905B2 (en) 2019-04-01 2022-01-18 Nutanix, Inc. System and method for mapping objects to regions
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11853575B1 (en) * 2019-06-08 2023-12-26 Veritas Technologies Llc Method and system for data consistency across failure and recovery of infrastructure
US11079960B2 (en) * 2019-06-20 2021-08-03 Western Digital Technologies, Inc. Object storage system with priority meta object replication
US11074002B2 (en) 2019-06-20 2021-07-27 Western Digital Technologies, Inc. Object storage system with meta object replication
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
US11294871B2 (en) 2019-07-19 2022-04-05 Commvault Systems, Inc. Deduplication system without reference counting
US11893126B2 (en) 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
US11704334B2 (en) 2019-12-06 2023-07-18 Nutanix, Inc. System and method for hyperconvergence at the datacenter
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US11847331B2 (en) 2019-12-12 2023-12-19 Pure Storage, Inc. Budgeting open blocks of a storage unit based on power loss prevention
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
US11609777B2 (en) 2020-02-19 2023-03-21 Nutanix, Inc. System and method for multi-cluster storage
US11188432B2 (en) 2020-02-28 2021-11-30 Pure Storage, Inc. Data resiliency by partially deallocating data blocks of a storage device
US11531604B2 (en) 2020-02-28 2022-12-20 Veritas Technologies Llc Methods and systems for data resynchronization in a replication environment
US11429640B2 (en) 2020-02-28 2022-08-30 Veritas Technologies Llc Methods and systems for data resynchronization in a replication environment
US11928030B2 (en) 2020-03-31 2024-03-12 Veritas Technologies Llc Optimize backup from universal share
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US20210334284A1 (en) 2020-04-28 2021-10-28 Nutanix, Inc. System and method of querying objects on demand
US11487787B2 (en) * 2020-05-29 2022-11-01 Nutanix, Inc. System and method for near-synchronous replication for object store
US11669543B2 (en) * 2020-06-11 2023-06-06 EMC IP Holding Company LLC Object-level replication including bulk-mode replication in a data storage system
US11900164B2 (en) 2020-11-24 2024-02-13 Nutanix, Inc. Intelligent query planning for metric gateway
US11822370B2 (en) 2020-11-26 2023-11-21 Nutanix, Inc. Concurrent multiprotocol access to an object storage system
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective
CN113138722B (zh) * 2021-04-30 2024-01-12 北京百度网讯科技有限公司 用于分布式块存储系统的复制快照方法、系统和介质
US11829343B2 (en) 2021-06-30 2023-11-28 Syntio Ltd. Generating a business object
JP2023026232A (ja) 2021-08-13 2023-02-24 富士フイルム株式会社 情報処理装置、情報処理方法、及び情報処理プログラム
US11899572B2 (en) 2021-09-09 2024-02-13 Nutanix, Inc. Systems and methods for transparent swap-space virtualization
TWI802035B (zh) * 2021-10-06 2023-05-11 神雲科技股份有限公司 伺服器資料備援控制方法
US11748374B2 (en) * 2021-11-30 2023-09-05 Snowflake Inc. Replication group objects configuration in a network-based database system

Family Cites Families (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5170480A (en) 1989-09-25 1992-12-08 International Business Machines Corporation Concurrently applying redo records to backup database in a log sequence using single queue server per queue at a time
US6412017B1 (en) * 1996-07-01 2002-06-25 Microsoft Corporation Urgent replication facility
JPH11249874A (ja) * 1998-02-27 1999-09-17 Toshiba Corp コンピュータシステム、同システムにおける同期処理方法および記録媒体
US6463454B1 (en) * 1999-06-17 2002-10-08 International Business Machines Corporation System and method for integrated load distribution and resource management on internet environment
US6466980B1 (en) * 1999-06-17 2002-10-15 International Business Machines Corporation System and method for capacity shaping in an internet environment
US6978282B1 (en) 2001-09-04 2005-12-20 Emc Corporation Information replication system having automated replication storage
JP2003087491A (ja) 2001-09-14 2003-03-20 Ricoh Co Ltd 画像形成システム
EP1468547B1 (de) 2002-01-02 2013-06-26 Grape Technology Group, Inc. Kommunikationsunterstützungssystem und verfahren
US7043732B2 (en) 2002-04-29 2006-05-09 Sun Microsystems, Inc. Method and apparatus for managing remote data replication using CIM providers in a distributed computer system
US7426559B2 (en) 2002-05-09 2008-09-16 International Business Machines Corporation Method for sequential coordination of external database application events with asynchronous internal database events
US20040153473A1 (en) 2002-11-21 2004-08-05 Norman Hutchinson Method and system for synchronizing data in peer to peer networking environments
JP2004259079A (ja) 2003-02-27 2004-09-16 Hitachi Ltd データ処理システム
US7769722B1 (en) * 2006-12-08 2010-08-03 Emc Corporation Replication and restoration of multiple data storage object types in a data network
US7398285B2 (en) 2003-07-30 2008-07-08 International Business Machines Corporation Apparatus and system for asynchronous replication of a hierarchically-indexed data store
US7203712B2 (en) * 2004-02-26 2007-04-10 International Business Machines Corporation Algorithm to find LOB value in a relational table after key columns have been modified
JP2005267157A (ja) 2004-03-18 2005-09-29 Equos Research Co Ltd 情報同期装置及び情報処理装置
US7246258B2 (en) 2004-04-28 2007-07-17 Lenovo (Singapore) Pte. Ltd. Minimizing resynchronization time after backup system failures in an appliance-based business continuance architecture
US7275142B1 (en) * 2004-07-26 2007-09-25 Veritas Operating Corporation Storage layout and data replication
US7502961B2 (en) * 2004-09-09 2009-03-10 Microsoft Corporation Method, system, and apparatus for providing alert synthesis in a data protection system
US20060161449A1 (en) 2005-01-15 2006-07-20 Mckinney Sam A Automated real estate data replication
US20070027935A1 (en) 2005-07-28 2007-02-01 Haselton William R Backing up source files in their native file formats to a target storage
US7320059B1 (en) * 2005-08-26 2008-01-15 Emc Corporation Methods and apparatus for deleting content from a storage system
US7636704B2 (en) * 2005-08-26 2009-12-22 Emc Corporation Methods and apparatus for scheduling an action on a computer
US7350041B1 (en) * 2005-08-26 2008-03-25 Emc Corporation Methods and apparatus for managing the storage of content
US20070055835A1 (en) 2005-09-06 2007-03-08 Reldata, Inc. Incremental replication using snapshots
US7904425B2 (en) 2005-12-13 2011-03-08 International Business Machines Corporation Generating backup sets to a specific point in time
US7716180B2 (en) * 2005-12-29 2010-05-11 Amazon Technologies, Inc. Distributed storage system with web services client interface
US8589574B1 (en) * 2005-12-29 2013-11-19 Amazon Technologies, Inc. Dynamic application instance discovery and state management within a distributed system
US7788456B1 (en) 2006-02-16 2010-08-31 Network Appliance, Inc. Use of data images to allow release of unneeded data storage
WO2008023424A1 (fr) 2006-08-24 2008-02-28 Duaxes Corporation Système de gestion de communication et procédé de gestion de communication associé
US8706833B1 (en) 2006-12-08 2014-04-22 Emc Corporation Data storage server having common replication architecture for multiple storage object types
EP1933236A1 (de) 2006-12-12 2008-06-18 Ixiar Technologies Intelligente Archivierung von Entfernte Rechner(s) oder sonstigen Außenstellen, basiert auf Spiegelung oder Replikation(s) Software
US8782047B2 (en) 2009-10-30 2014-07-15 Hitachi Data Systems Corporation Fixed content storage within a partitioned content platform using namespaces
JP4930031B2 (ja) 2006-12-13 2012-05-09 富士通株式会社 制御装置及び制御システム
US20090063587A1 (en) * 2007-07-12 2009-03-05 Jakob Holger Method and system for function-specific time-configurable replication of data manipulating functions
CN100451976C (zh) 2007-07-23 2009-01-14 清华大学 基于海量数据分级存储系统的迁移管理方法
US8352431B1 (en) 2007-10-31 2013-01-08 Emc Corporation Fine-grain policy-based snapshots
US7769714B2 (en) 2007-11-06 2010-08-03 Oracle International Corporation Automatic error correction for replication and instantaneous instantiation
SE533007C2 (sv) 2008-10-24 2010-06-08 Ilt Productions Ab Distribuerad datalagring
US8306947B2 (en) 2008-10-30 2012-11-06 Hewlett-Packard Development Company, L.P. Replication of operations on objects distributed in a storage system
US9542409B2 (en) 2008-11-26 2017-01-10 Red Hat, Inc. Deduplicated file system
CN101414949B (zh) 2008-11-28 2011-05-18 阿里巴巴集团控股有限公司 一种链式数据传输方法、节点及系统
JP4502063B2 (ja) 2008-12-15 2010-07-14 株式会社日立製作所 データウェアハウスシステムとそこで用いられる問合せ処理方法及びそのためのデータ収集方法と装置及び課金システム
US9239767B2 (en) * 2008-12-22 2016-01-19 Rpx Clearinghouse Llc Selective database replication
US8898267B2 (en) 2009-01-19 2014-11-25 Netapp, Inc. Modifying information lifecycle management rules in a distributed system
US8286030B1 (en) 2009-02-09 2012-10-09 American Megatrends, Inc. Information lifecycle management assisted asynchronous replication
JP5339432B2 (ja) 2009-02-25 2013-11-13 日本電気株式会社 ストレージシステム
US8671072B1 (en) * 2009-09-14 2014-03-11 Netapp, Inc. System and method for hijacking inodes based on replication operations received in an arbitrary order
US9378216B2 (en) * 2009-09-29 2016-06-28 Oracle America, Inc. Filesystem replication using a minimal filesystem metadata changelog
US8886602B2 (en) * 2010-02-09 2014-11-11 Google Inc. Location assignment daemon (LAD) for a distributed storage system
US8239390B2 (en) * 2010-02-26 2012-08-07 International Business Machines Corporation Filtered remote journal
US20130024429A1 (en) 2010-04-29 2013-01-24 Hewlett-Packard Development Company, L.P. Multi-Jurisdiction Retention Scheduling For Record Management
US10296428B2 (en) 2010-05-17 2019-05-21 Veritas Technologies Llc Continuous replication in a distributed computer system environment
US8799222B2 (en) * 2010-12-17 2014-08-05 Symantec Corporation Host based software block level replication using metadata indicating changed data objects at source and secondary nodes
CN102063500A (zh) 2011-01-04 2011-05-18 北京凯铭风尚网络技术有限公司 一种数据迁移的方法及装置
US8538926B2 (en) * 2011-03-08 2013-09-17 Rackspace Us, Inc. Massively scalable object storage system for storing object replicas
US8918362B2 (en) * 2011-05-23 2014-12-23 Microsoft Corporation Replication processes in a distributed storage environment
US8838529B2 (en) 2011-08-30 2014-09-16 International Business Machines Corporation Applying replication rules to determine whether to replicate objects
US9910904B2 (en) 2011-08-30 2018-03-06 International Business Machines Corporation Replication of data objects from a source server to a target server
US9659080B1 (en) 2013-04-29 2017-05-23 Google Inc. Categorization for constraint-based placement of object replicas in a distributed storage system
US10157014B1 (en) 2013-12-16 2018-12-18 EMC IP Holding Company LLC Maintaining backup snapshots on deduplicated storage using continuous replication

Also Published As

Publication number Publication date
US10664493B2 (en) 2020-05-26
US20130054523A1 (en) 2013-02-28
CN103765817A (zh) 2014-04-30
JP5671656B2 (ja) 2015-02-18
GB201405324D0 (en) 2014-05-07
US20130054524A1 (en) 2013-02-28
US9910904B2 (en) 2018-03-06
JP5972327B2 (ja) 2016-08-17
CN103765817B (zh) 2017-01-25
US20180101588A1 (en) 2018-04-12
US10664492B2 (en) 2020-05-26
GB2509023A (en) 2014-06-18
JP2015015047A (ja) 2015-01-22
JP2014522044A (ja) 2014-08-28
US20180101587A1 (en) 2018-04-12
WO2013029173A1 (en) 2013-03-07
US9904717B2 (en) 2018-02-27

Similar Documents

Publication Publication Date Title
DE112012002762T5 (de) Replikationen von Datenobjekten von einem Quellserver auf einen Zielserver
DE112012005037B4 (de) Verwalten von redundanten unveränderlichen Dateien unter Verwendung von Deduplizierungen in Speicher-Clouds
DE112012005275T5 (de) Datenauswahl zur Sicherung von Datenspeichern
DE102013204186B4 (de) Ermitteln von Prioritäten für zwischengespeicherte Objekte zum Ordnen des Übertragens von Änderungen an zwischengespeicherten Objekten beruhend auf gemessener Netzwerkbandbreite
DE112016003120B4 (de) Umleiten einer Kopie beim Schreiben
DE112013001308T5 (de) Verwalten von mandantenspezifischen Datensätzen in einer mandantenfähigen Umgebung
DE102012219155A1 (de) Verschlüsseln von Datenobjekten zur Datensicherung
DE102012218329B4 (de) Verwalten von Funktionsübernahme-Operationen an einem Cluster von Computern
DE112019002584T5 (de) Wechseln zwischen vermittlerdiensten für ein speichersystem
DE112018000193T5 (de) Daten sequenziell in Zonen in einem verstreuten Speichernetzwerk speichern
JP2020525906A (ja) データベーステナントマイグレーションのシステム及び方法
DE112012005032T5 (de) Entfernen der Datenremanenz in deduplizierten Speicher-Clouds
DE102013208930A1 (de) Zusammenfassen von Einträgen in einem Deduplizierungs-lndex
DE112018004008B4 (de) Auf dateisysteminhalten beruhende sicherheit
DE202015009784U1 (de) Ressourcenmanagementsysteme
DE102013204508A1 (de) Dynamisches Neukonfigurieren eines Speichersystems
DE112012004318T5 (de) Verwendung eines virtuellen Laufwerks als Hot-Spare-Einheit für eine RAID-Gruppe
US8832030B1 (en) Sharepoint granular level recoveries
DE112019000421B4 (de) Arbeitslastverwaltung mit datenzugriffserkennung in einem datenverarbeitungscluster
DE112017005588T5 (de) Speichern und abrufen von eingeschränkten datensätzen in und aus einem cloud-netzwerk mit nichteingeschränkten datensätzen
DE112019001433T5 (de) Datenanonymisierung
DE102021109227A1 (de) Weiterleitung von speicheroperationsanfragen an speichersysteme unter verwendung der zugrunde liegenden datenträgerkennungen
DE102016119298A1 (de) Zeitpunktkopieren mit klonen von ketten
DE112017002497T5 (de) Systeme und verfahren zur aggregation von cloud-speicher
DE112011103367T5 (de) Replizieren von Daten

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0012240000

Ipc: H04L0041000000