-
GEBIET DER ERFINDUNG
-
Die vorliegende Erfindung betrifft im Allgemeinen Computer und insbesondere Verfahren, Computersysteme und Computerprogrammprodukte zum Replizieren von Daten, vor allem in einem Deduplizierungssystem.
-
HINTERGRUND DER ERFINDUNG
-
Replikationsmodelle sind normalerweise entweder synchron oder asynchron in Bezug darauf, wie und wann eine Replikation ausgeführt wird. In dem synchronen Modell werden Daten so bald wie möglich nach dem Speichern der Daten in der Quelle auf das Ziel repliziert. Einige Modelle können dies als Teil einer Transaktionsverarbeitung derart vornehmen, dass die Daten erst als erfolgreich betrachtet werden, wenn sie auf beide Sites geschrieben sind, während andere einen Abschluss von Transaktion/Operation an der Quelle zulassen können, wobei die Replikation unmittelbar danach erfolgt. In beiden Fällen ist dies synchron oder nahezu synchron in Bezug auf das, was bereitgestellt wird und die Erwartungen, die für den Endbenutzer erfüllt werden. Auf der anderen Seite werden asynchron einige Mechanismen zum Planen von Replikation ermöglicht. In diesem Fall wird erwartet, dass die geplante Replikation innerhalb eines gewissen angemessenen Zeitraums liegt, um Wiederherstellungspunktziele zu erfüllen, während gleichzeitig diejenigen mit für die Replikation verfügbarer Bandbreite/Kapazität abgeglichen werden.
-
In einigen Speicherverwaltungssystemen wird eine Replikation von Server zu Server als eine asynchrone Replikationsfunktion bereitgestellt, die über eine Verwaltungsaufsicht geplant und verwaltet wird. Eine Replikation hat zwar viele Vorteile, kann aber trotzdem ein Bandbreiten- und Kapazitätsproblem darstellen, wenn eine Replikation ausgeführt wird. Wenn zum Beispiel die Replikation Hunderttausende oder Millionen von Dateien innerhalb eines definierten Replikationsfensters verarbeiten muss, können beträchtliche System- und Netzwerkressourcen erforderlich sein.
-
Die veröffentlichte
U.S.-Patentanmeldung 2008/0263109 A1 offenbart ein Verfahren zum Replizieren von neuen deduplizierten Segmenten in einem deduplizierenden Speichersystem und Referenzen auf die deduplizierten Segmente von einem deduplizierenden Speichersystem zu einem Replikatsystem. Die
U.S.-Patenschrift 7,584,338 offenbart ein Verfahren zum Replizieren von deduplizierten Segmenten und Anweisungen zum Konstruieren von ursprünglichen Daten aus den deduplizierten Segmenten auf einem Replikatsystem.
-
OFFENBARUNG DER ERFINDUNG
-
In einer Ausführungsform wird ein Verfahren zum Replizieren von Daten bereitgestellt. Metadaten und zu den Metadaten zugehörige Daten werden an einem ersten Datenserver empfangen. Ein neuer Teil der Daten, der noch nicht auf dem ersten Datenserver gespeichert ist, wird identifiziert. Der neue Teil der Daten wird auf einem zweiten Datenserver gespeichert, bevor die Metadaten auf dem zweiten Datenserver gespeichert werden.
-
In einer weiteren Ausführungsform wird ein Computersystem bereitgestellt. Das Computersystem enthält mindestens ein computerlesbares Medium und mindestens einen Prozessor in betriebsfähiger Datenübertragung mit dem mindestens einen computerlesbaren Medium. Der mindestens eine Prozessor ist so angepasst, dass er Metadaten und zu den Metadaten zugehörige Daten an einem ersten Datenserver empfängt, einen neuen Teil der Daten, der noch nicht auf dem ersten Datenserver gespeichert ist, identifiziert und den neuen Teil der Daten auf einem zweiten Datenserver speichert, bevor die Metadaten auf dem zweiten Datenserver gespeichert werden.
-
In einer weiteren Ausführungsform wird ein Computerprogrammprodukt zum Replizieren von Daten in einer Datenverarbeitungsumgebung bereitgestellt. Das Computerprogrammprodukt weist darauf gespeicherte computerlesbare Programmcodeabschnitte auf. Die computerlesbaren Programmcodeabschnitte enthalten einen ersten ausführbaren Abschnitt, einen zweiten ausführbaren Abschnitt und einen dritten ausführbaren Abschnitt. Der erste ausführbare Abschnitt dient zum Empfangen von Metadaten und von den Metadaten zugehörigen Daten auf einem ersten Datenserver. Der zweite ausführbare Abschnitt dient zum Identifizieren eines neuen Teils der Daten, der noch nicht auf dem ersten Datenserver gespeichert ist. Der dritte ausführbare Abschnitt dient zum Speichern des neuen Teils der Daten auf einem zweiten Datenserver, bevor die Metadaten auf dem zweiten Datenserver gespeichert werden.
-
Dementsprechend sorgt die vorliegende Erfindung für das synchrone Kopieren von neuen Datenblöcken in einen Zielspeicher, wobei danach eine asynchrone Replikation von Metadaten-Referenzen auf die neu kopierten Datenblöcke aus dem Quellenspeicher in den Zielspeicher ausgeführt wird.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Damit die Vorteile der Erfindung leicht zu verstehen sind, wird unter Bezugnahme auf spezifische Ausführungsformen, die in den Zeichnungen im Anhang veranschaulicht sind, eine bestimmtere Beschreibung der oben kurz beschriebenen Erfindung vorgelegt. Das Verständnis vorausgesetzt, dass diese Zeichnungen Ausführungsformen der Erfindung veranschaulichen und daher nicht als deren Schutzumfang einschränkend zu betrachten sind, wird die Erfindung mit zusätzlicher Spezifität und Ausführlichkeit unter Verwendung der begleitenden Zeichnungen beschrieben und erklärt, wobei:
-
1 ein Ablaufplan eines Verfahrens zum Replizieren von Daten in einer Computerumgebung gemäß einer Ausführungsform der vorliegenden Erfindung ist;
-
2 ein Blockschaubild eines Computernetzwerks gemäß einer Ausführungsform der vorliegenden Erfindung ist;
-
3 eine beispielhafte Datenverarbeitungsumgebung veranschaulicht, in der Aspekte der vorliegenden Erfindung umgesetzt werden können; und
-
4 einen beispielhaften Teil eines Deduplizierungssystems veranschaulicht, wie vorher in 3 dargestellt, einschließlich einer Prozessoreinheit.
-
AUSFÜHRLICHE BESCHREIBUNG DER ZEICHNUNGEN
-
Ausführungsformen der vorliegenden Erfindung stellen Verfahren, Computersysteme und Computerprogrammprodukte zum Löschen von deduplizierten Daten in einer Computerumgebung bereit, wie beispielsweise einem Computersystem.
-
Eine Replikation umfasst zwei primäre Aufgaben in einer derartigen Replikationsumgebung von Server zu Server. Eine der Aufgaben ist ein Metadatenabgleich. Metadaten beziehen sich auf die Attribute der Daten, die zur Unterstützung der Daten gespeichert sind, wie beispielsweise der Name der Datei, wem sie gehört, wann sie gespeichert wurde und andere sinnvolle Attribute, die von dem System verwendet werden. Die andere primäre Aufgabe ist die Verschiebung von Daten entweder als Datenübertragung an sich für notwendige Datenblöcke oder andernfalls als Datenreferenzübertragung, um ein Objekt zu einem bestehenden Datenblock auf dem Zielserver in Beziehung zu setzen. In Anbetracht der mannigfaltigen zu bearbeitenden Datentypen und des Volumens (d. h. großen Anzahlen von Objekten und Datenblöcken), die in einer großen Umgebung bearbeitet werden müssen, ist eine Optimierung erforderlich, um die Replikationsoperation zu beschleunigen, während gleichzeitig die Ressourcenanforderungen abgeglichen werden, die auf eine vorgegebene Replikationsoperation angewendet werden.
-
Gemäß einer Ausführungsform wird ein hybrides Replikationsmodell vorgeschlagen, in dem neue und eindeutige Datenblöcke (oder Teile oder Bereiche) von deduplizierten Daten in einer nahezu synchronen Weise zu dem Zielserver gesendet werden, wenn sie in den Ursprungsserver kommen und identifiziert werden. Der Datenfluss in diesem asynchronen Modell kann durch Richtlinien eingeschränkt werden, die regeln, wie viel Bandbreite von der Operation verwendet werden darf. Dies kann eine asynchrone Replikation um ein Bootstrapping (Urladen) von erforderlichen Datenblöcken erweitern, wenn sie am Zielserver bereits verfügbar sind, sodass die Replikationsoperation primär auf den Metadatenabgleich ausgerichtet ist, da weniger Daten übertragen werden müssen, weil sie bereits auf dem Zielserver gespeichert sind. Im Wesentlichen wird der Datenblock als ein Deduplizierungsdatenblock ohne eine entsprechende Referenz auf eine abhängige Datei (d. h. Metadaten) auf dem Zielserver gespeichert. Eine zukünftige asynchrone Replikationsoperation von dem Quellenserver wird anschließend zum Erstellen der Metadaten verwendet, die auf diese Datenblöcke verweisen und verursachen, dass die Referenzwerte für die Datenblöcke von nicht verwendet (Null Referenzen) bis verwendet reichen, gleichgültig, wie viele Objekte darauf aufbauen.
-
Daher wird in einer Ausführungsform ein Verfahren zum Replizieren von Daten bereitgestellt. Metadaten und zu den Metadaten zugehörige Daten werden an einem ersten Datenserver empfangen. Ein neuer Teil der Daten, der noch nicht auf dem ersten Datenserver gespeichert ist, wird identifiziert. Der neue Teil der Daten wird auf einem zweiten Datenserver gespeichert, bevor die Metadaten auf dem zweiten Datenserver gespeichert werden.
-
1 veranschaulicht ein Verfahren 10 zum Replizieren von Daten gemäß einer Ausführungsform der vorliegenden Erfindung. Das Verfahren 10 beginnt in Schritt 12 mit zum Beispiel einer Datei (z. B. Metadaten und zugehörige Daten oder Objekt), die durch einen (oder von einem) Client zu einem ersten Datenserver gesendet werden. In Schritt 14 werden die Metadaten-Daten auf dem ersten Datenserver empfangen (und/oder gespeichert). In Schritt 16 wird jeder neue Teil (oder Teile) der Daten, die auf dem ersten Datenserver neu sind (d. h. noch nicht auf dem ersten Datenserver gespeichert sind) identifiziert. Wegen der Replikationsbeziehung zwischen den Quellen- und Zielservern sind Daten, die für den Quellenserver neu und eindeutig sind, ein Kandidat, der ebenfalls zum Ziel zu senden ist. Wie allgemein verstanden wird, kann eine derartige Prozedur in einem Deduplizierungsprozess enthalten sein, wofür nachstehend ein Beispiel beschrieben wird. Danach wird in Schritt 18 der neue Teil der Daten auf einem zweiten Datenserver gespeichert (z. B. einem entfernt angeordneten Server, wie beispielsweise in einem anderen Ort), bevor die Metadaten auf dem zweiten Datenserver gespeichert werden (und/oder zu diesem gesendet werden).
-
Es sollte verstanden werden, dass der Zielserver das Ziel für eine Replikation von vielen verschiedenen Quellenservern sein kann. Daher kann der fragliche Datenteil (d. h. neu und eindeutig, der vorher auf dem Quellenserver nicht gesehen wurde) bereits auf dem Zielserver vorhanden sein, weil er von einem anderen Quellenserver aufgefüllt wurde. Das hierin beschriebene Verfahren/System kann die Tatsache berücksichtigen, dass ein Teil, der in der Quelle neu/eindeutig erscheint, möglicherweise eigentlich nicht gesendet werden muss, weil er bereits auf dem Zielserver gespeichert ist. In einem solchen Fall kann die Entscheidung getroffen werden, einen derartigen Teil von Daten nicht zu senden.
-
In Schritt 20 endet das Verfahren 10 zum Beispiel mit dem Abschluss des Speicherns sämtlicher neuer Daten von dem ersten Datenserver auf dem zweiten Datenserver. Es sollte jedoch verstanden werden, dass mindestens in einigen Ausführungsformen ein geplanter asynchroner Replikationsprozess das Verfahren 10 unterbrechen kann, bevor alle der neuen Teile auf dem zweiten Datenserver gespeichert sind. Wenn zum Beispiel die Bandbreite stark eingeschränkt ist, können nur 20 bis 30% der neuen Teile auf dem zweiten Server gespeichert werden, bevor die geplante asynchrone Replikation beginnt. In einem derartigen Fall kann das hierin beschriebene Verfahren jedoch die Arbeit vorteilhafterweise verringern, die dann während der asynchronen Replikation ausgeführt wird.
-
2 veranschaulicht ein Computernetzwerk 40 gemäß einer Ausführungsform der vorliegenden Erfindung. Das Computernetzwerk 40 enthält einen Client 42, einen Quellenserver (oder ersten Datenserver) 44 und einen Zielserver (oder zweiten Datenserver) 46. Obwohl in 2 nicht speziell gezeigt, stehen der Client 42, der Quellenserver 44 und der Zielserver 46 über ein Netzwerk, wie beispielsweise ein Weitverkehrsnetz (WAN), in betriebsfähiger Datenübertragung. Der Client 42 kann ein Computersystem sein, wie beispielsweise ein Desktop- oder Laptop-Personal Computer (PC). Der Quellenserver 44 und der Zielserver 46 können zum Beispiel Datenspeicherserver sein, wie allgemein verstanden wird.
-
Wie oben vorgeschlagen, können Ausführungsformen der vorliegenden Erfindung initiiert werden, indem der Client 42 ein Paket 48 zu dem Quellenserver 44 sendet. Das Paket 48 enthält in einer Ausführungsform Metadaten und zu den Metadaten zugehörige Daten (oder ein Objekt). Nach dem Empfangen (und/oder Speichern) der Metadaten und Daten führt der Quellenserver 44 einen Deduplizierungsprozess aus, wie allgemein verstanden wird, um sicherzustellen, dass keine der Daten bereits darauf gespeichert sind. In einer Ausführungsform enthält der Deduplizierungsprozess das Aufteilen der Daten in eine Vielzahl von Teilen (oder Datenblöcken oder Bereichen), wobei ein Hash-Wert für jeden der Teile berechnet wird und die berechneten Hash-Werte mit Hash-Werten für Daten verglichen werden, die bereits auf dem Quellenserver gespeichert sind (d. h. „alten” Daten).
-
Wenn irgendwelche Teile der Daten, die von dem Client gesendet wurden (d. h. in dem Paket 48), Hash-Werte aufweisen, die mit keinem der Hash-Werte der Daten übereinstimmen, die bereits auf dem Quellenserver 44 gespeichert sind, darf angenommen werden, dass diese Teile neu oder eindeutig sind (d. h. nicht bereits auf dem Quellenserver gespeichert sind). In einer Ausführungsform werden neue Teile 50 von Daten automatisch zu dem Zielserver 46 gesendet und dort gespeichert (nachdem sie als für den Quellenserver 44 neu/eindeutig identifiziert worden sind).
-
Von besonderem Interesse ist, dass die neuen Teile 50 der Daten zu dem Zielserver 46 gesendet und dort gespeichert werden, bevor die zugehörigen Metadaten zu dem Zielserver 46 gesendet und dort gespeichert werden. Mit anderen Worten, die neuen Datenteile werden zu dem Zielserver 46 gesendet, bevor irgendeine Art von Replikations-(oder Sicherungs-)Prozess zwischen dem Quellenserver 44 und dem Zielserver 46 initiiert worden ist. Wie in 2 angegeben, werden die Metadaten 52 zu dem Zielserver 46 gesendet, aber erst, nachdem ein Replikationsprozess (d. h. ein asynchroner Replikationsprozess) initiiert worden ist. Wenn der Replikationsprozess initiiert wird, bevor sämtliche der neuen Teile von Daten auf dem Zielserver 46 gespeichert sind, werden die restlichen neuen Teile nach dem Beginn des Replikationsprozesses, wie oben angegeben, zu dem Zielserver 46 gesendet. (d. h. gemäß herkömmlichen Replikationsprozessen und der Synchronisation zwischen dieser Quelle und dem Ziel, die ausgeführt wird).
-
Somit setzt das hierin beschriebene Verfahren eine Art von „scheibchenweiser” Datenblockübertragung um, wobei neue/eindeutige Datenblöcke identifiziert werden, sie werden von dem Quellenserver 44 zu dem Zielserver 46 gesendet. Dieses scheibchenweise Senden der neuen/eindeutigen Datenblöcke optimiert die tatsächliche zukünftige Replikationsoperation dadurch, dass nur die entsprechenden Metadaten und alle restlichen nicht gesendeten Datenblöcke übertragen werden müssen und die Tatsache genutzt wird, dass viele der erforderlichen Datenblöcke bereits vor der eigentlichen Replikationsoperation bereits als Seed-Werte an den Zielserver übergeben worden sind.
-
Dieser Ansatz nutzt die Quellenserver-Datenbank und die Tatsache, dass, wenn Daten dedupliziert werden, die Daten, die für das System neu sind, die eine einzelne Metadaten-(Datei)-Referenz auf einen vorgegebenen Datenblock haben, neu und eindeutig und ein Kandidat sind, der an den Zielserver gesendet werden muss. Bei denjenigen Datenblöcken, die eine Referenz auf einen Datenblock ergeben, der mehr als eine einzelne Metadaten-(Datei)-Referenz hat, oder denjenigen, die auf einen Datenblock verweisen, der vor dem Zeitpunkt der letzten Replikation gespeichert wurde, sind diese keine neuen und eindeutigen Datenblöcke und wären keine Kandidaten für das unmittelbare scheibchenweise Senden. Es ist anzumerken, dass in einigen Ausführungsformen das Speicherverwaltungssystem auch eine Client-Deduplizierungsfunktion hat, wobei der Client nur eindeutige Datenblöcke zu dem Server sendet (d. h. diejenigen Datenblöcke, die der Server noch nicht hat). Dies kann ein anderer Mechanismus sein, durch den der Server die Kandidaten-Datenblöcke ermitteln kann, die an den Zielserver gesendet werden müssen.
-
Ein weiterer Vorteil für die nahezu unmittelbare Replikation von neuen Datenblöcken ist, dass sie eine Datenredundanz bereitstellt. In dem Fall, dass ein Datenblock auf dem Quellenserver als beschädigt erkannt wird (z. B. Ausfall einer Einheit, bevor eine Speicherpool-Sicherung ausgeführt worden ist), kann der Datenblock auf dem Zielserver 46 verwendet werden, um den beschädigten Datenblock wiederherzustellen, indem aus dem Datenblock auf dem Zielserver eine neue Kopie auf dem Quellenserver 44 erstellt wird. Das heißt, wenn ein neuer Datenblock, der auf dem ersten Datenserver gespeichert ist, als beschädigt erkannt wird, wird der entsprechende Datenblock, der jetzt auf dem Zielserver 46 gespeichert ist, an den Quellenserver 44 gesendet. Der beschädigte neue Datenblock auf dem Quellenserver 44 wird somit durch den neuen Teil von Daten ersetzt, der von dem Zielserver 46 gesendet wird.
-
3 veranschaulicht eine beispielhafte Architektur 100 von Deduplizierungssystemen (und/oder Speicherverwaltungssystemen) und zugehörigen Komponenten in einer Datenverarbeitungs-Speicherumgebung. Die Architektur 100 stellt Speicherdienste für mehrere Sicherungs-Hosts 260 bereit. Die Replikation von deduplizierten Daten wird zwischen verschiedenen Deduplizierungssystemgruppen 120, 140, 160 und 180 bereitgestellt, wie durch die gestrichelten Linien 220 und 240 angegeben. Jede der Gruppen 120, 140, 160 und 180 enthält einen oder mehrere Hosts 260, die, wie angegeben, über Netzwerkkomponenten wie einen Switch 280 mit einem Deduplizierungssystem 300 verbunden sind. Die Deduplizierungssysteme 300 sind über Netzwerkkomponenten wie beispielsweise einen Router 320 miteinander verbunden, der eine Verbindungsnetz-Konnektivität zwischen den Gruppen 120, 140, 160 und 180 bereitstellt. Ein Netzwerk 200 verbindet derartige Deduplizierungssysteme 300 und Router 320. Das Netzwerk 200 kann in einer Ausführungsform ein Weitverkehrsnetz (WAN) enthalten. In weiteren Ausführungsformen kann das Netzwerk 200 lokale Netze (LANs), Speicherbereichsnetze (SANs) und andere Netzwerktopologien enthalten, die dem Fachmann bekannt sind. Während die Router 320 und Switche 280 gezeigt sind, wird der Fachmann auch anerkennen, dass Zusatz- und/oder Austausch-Netzwerkkomponenten in Betracht gezogen werden.
-
In einer Ausführungsform ist der Switch 280 konform mit einem Fibre-Channel-Netzwerkprotokoll, das den Switch 280 und miteinander verbundene Komponenten befähigt, Befehle auszuführen, wie beispielsweise Small Computer System Interface-(SCSI)Befehle. Solche Befehle können für verschiedene Speichereinheiten ausgeführt werden, wie der Fachmann wiederum anerkennen wird, wie beispielsweise Plattenlaufwerke, Bandeinheiten, Solid-State-Einheiten (SSDs) und dergleichen. Während die Architektur 100 ein Beispiel für Komponenten bereitstellt, die zum Umsetzen verschiedener Aspekte der vorliegenden Erfindung und des beanspruchten Erfindungsgegenstands verwendet werden können, wird der Fachmann anerkennen, dass weitere derartige Architekturen in Betracht gezogen werden.
-
Unter folgender Bezugnahme auf 4 wird ein beispielhafter Teil 500 eines Deduplizierungssystems 300, wie vorher in auch in 3 zu sehen, veranschaulicht. Der Teil 500 des Deduplizierungssystems 300 ist in einer Computerumgebung als Teil davon betriebsfähig, wobei Mechanismen der oben veranschaulichten Ausführungsformen umgesetzt werden können. Es sollte jedoch anerkannt werden, dass 4 nur zu Beispielzwecken dient und keinerlei Einschränkung feststellen oder implizieren soll in Bezug auf die bestimmten Architekturen, in denen die beispielhaften Aspekte der verschiedenen Ausführungsformen umgesetzt werden können.
-
Das Deduplizierungssystem 300 enthält einen Prozessor 520 und einen Speicher 540, wie beispielsweise einen Arbeitsspeicher (RAM). Das Deduplizierungssystem 300 kann betriebsfähig an mehrere Komponenten gekoppelt sein, die der Einfachheit halber nicht veranschaulicht sind, einschließlich eine Anzeige, die Bilder wie beispielsweise Fenster für den Benutzer auf einer grafischen Benutzeroberfläche darstellt, eine Tastatur, eine Maus, ein Drucker und dergleichen. Selbstverständlich erkennt der Fachmann, dass jede Kombination der vorgenannten Komponenten oder jede Anzahl von verschiedenen Komponenten, Peripherie-Einheiten und andere Einheiten mit dem Deduplizierungssystem 300 verwendet werden können. In der veranschaulichten Ausführungsform arbeitet das Deduplizierungssystem 300 unter der Steuerung eines Betriebssystems (OS) 560 (z. B. z/OS®, OS/2®, LINUX®, UNIX®, WINDOWS®, MAC OS®), das in dem Speicher 540 gespeichert ist und eine Schnittstelle zum Benutzer bildet, um Eingaben und Befehle anzunehmen und Ergebnisse zu präsentieren. In einer Ausführungsform der vorliegenden Erfindung unterstützt das Betriebssystem 560 Geschwindigkeitskontrollmechanismen gemäß der vorliegenden Erfindung. Zu diesem Zweck enthält das Betriebssystem 560 ein Geschwindigkeitskontrollmodul 660, das angepasst werden kann, um verschiedene Prozesse und Mechanismen in den beispielhaften Verfahren hierin auszuführen.
-
Das Deduplizierungssystem 300 kann einen Compiler 600 umsetzen, der es ermöglicht, ein Anwendungsprogramm 580, das in einer Programmiersprache wie COBOL®, PL/1®, C®, C++®, JAVA®, ADA®, BASIC®, VISUAL BASIC® oder irgendeiner anderen Programmiersprache geschrieben ist, in Code zu übersetzen, der durch den Prozessor 520 lesbar ist. Nach dem Abschluss greift das Anwendungsprogramm 580 auf die in dem Speicher 540 des Systems 300 gespeichert Daten zu und bearbeitet sie unter Verwendung der Beziehungen und der Logik, die unter Verwendung des Compilers 600 erzeugt wurde.
-
Zur weiteren Umsetzung und Ausführung von Mechanismen und Prozessen gemäß der vorliegenden Erfindung kann das Betriebssystem 560 in Verbindung mit dem Speicher 540, dem Prozessor 520, dem Anwendungsprogramm 580 und anderen Computerdatenverarbeitungs-, Netzwerk- und Speicherkomponenten Verarbeitungsfunktionen 640 umsetzen, um Datenblöcke von deduplizierten Daten zu verarbeiten. Wie der Fachmann anerkennen wird, können die Mechanismen der Verarbeitungsfunktionen 640 und die Datenblöcke 620 wie gegenwärtig veranschaulicht in verschiedenen Formen und Architekturen umgesetzt werden. Dementsprechend soll die Veranschaulichung der Verarbeitungsfunktionen 640 und der Datenblöcke 620 in der vorliegenden Figur wiederum logische Beziehungen zwischen möglichen Datenverarbeitungskomponenten in dem Deduplizierungssystem 300 aufzeigen und keine spezifische physische Struktur oder Beziehung implizieren.
-
In einer Ausführungsform sind Anweisungen, die das Betriebssystem 560, das Computerprogramm 580 und den Compiler 600 sowie die Verarbeitungsfunktionen 640 und Datenblöcke 620 umsetzen, konkret in einem computerlesbaren Medium eingebettet, zu dem eine oder mehrere feste oder entfernbare Datenspeichereinheiten gehören können, wie beispielsweise ein ZIP-Laufwerk, eine Diskette, eine Festplatte, eine DVD/CD-ROM, ein digitales Band, SSDs usw. Ferner enthalten das Betriebssystem 560 und das Anwendungsprogramm 580 Anweisungen (z. B. in ausführbaren Abschnitten), die, wenn sie von dem System 300 gelesen und ausgeführt werden, das System veranlassen, die Schritte auszuführen, die zum Umsetzen und/oder Verwenden der vorliegenden Erfindung erforderlich sind. Anweisungen des Anwendungsprogramms 580 und/oder des Betriebssystems 560 können auch konkret in dem Speicher 540 eingebettet sein und/oder über ein Netzwerk 200 über verschiedene Komponenten (z. B. Router 320, 3) übertragen werden oder auf sie kann von diesen zugegriffen werden. Daher sollen die Begriffe „Fertigungsartikel”, „Programmspeichereinheit” und „Computerprogrammprodukt”, wie sie hierin eventuell verwendet werden, ein Computerprogramm umfassen, auf das von jeder computerlesbaren Einheit oder jedem computerlesbaren Medium aus zugegriffen werden kann und von diesen aus betriebsfähig ist.
-
Ausführungsformen der vorliegenden Erfindung können ein oder mehrere zugehörige Software-Anwendungsprogramme 580 enthalten, die zum Beispiel Funktionen zum Verwalten eines verteilten Computersystems enthalten, das ein Netzwerk von Datenverarbeitungseinheiten aufweist, wie beispielsweise ein Speicherbereichsnetzwerk (SAN). Dementsprechend kann der Prozessor 520 einen oder mehrere Speicherverwaltungsprozessoren (SMP) aufweisen. Das Anwendungsprogramm 580 kann in einem einzelnen Computer und/oder Deduplizierungssystem 300 oder als Teil eines verteilten Computersystems arbeiten, das ein Netzwerk von Datenverarbeitungseinheiten aufweist. Das Netzwerk kann einen oder mehrere Computer umfassen, die über ein lokales Netzwerk und/oder eine Internetverbindung (die öffentlich oder sicher sein kann, z. B. über eine virtuelle private Netzwerk-(VPN)Verbindung) oder über einen Fibre Channel SAN oder andere bekannte Netzwerktypen verbunden sind, wie vom Fachmann verstanden wird. (Zu beachten ist, dass ein Fibre Channel SAN typischerweise nur für Computer zum Datenaustausch mit Speichersystemen und nicht untereinander verwendet wird.)
-
Es ist anzumerken, dass Ausführungsreihenfolgen von Prozessen, wie Operationen, Prozeduren, Schritte und Stufen in den Einheiten, Systemen, Programmen und Verfahren, die unter dem Schutzumfang von Ansprüchen, der Beschreibung und der Zeichnungen gezeigt sind, insbesondere durch die Verwendung von Ausdrücken wie „vor” und „bevor” nicht deutlich angegeben sind. Deshalb sind diese Prozesse in beliebigen Reihenfolgen ausführbar, es sei denn, eine Ausgabe von einem vorhergehenden Prozess wird in einem darauffolgenden Prozess verwendet. Selbst wenn irgendein betrieblicher Ablauf in dem Schutzumfang von Ansprüchen, in der Beschreibung oder in den Zeichnungen der Einfachheit halber unter Verwendung von Ausdrücken wie „zuerst” und „anschließend” beschrieben wurde, so bedeutet dies nicht notwendigerweise, dass der betriebliche Ablauf in einer Reihenfolge ausgeführt werden muss, die durch diese Ausdrücke angegeben wird.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- US 2008/0263109 A1 [0004]
- US 7584338 [0004]