DE602004008808T2 - Verfahren und vorrichtung zur durchführung von operationen an gewählten daten in einem speicherbereich - Google Patents

Verfahren und vorrichtung zur durchführung von operationen an gewählten daten in einem speicherbereich Download PDF

Info

Publication number
DE602004008808T2
DE602004008808T2 DE602004008808T DE602004008808T DE602004008808T2 DE 602004008808 T2 DE602004008808 T2 DE 602004008808T2 DE 602004008808 T DE602004008808 T DE 602004008808T DE 602004008808 T DE602004008808 T DE 602004008808T DE 602004008808 T2 DE602004008808 T2 DE 602004008808T2
Authority
DE
Germany
Prior art keywords
data
locations
storage
memory area
sieve
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE602004008808T
Other languages
English (en)
Other versions
DE602004008808D1 (de
Inventor
Ankur P. Panchbudhe
Anand A. Kerke
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.)
Symantec Operating Corp
Original Assignee
Symantec Operating 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 Symantec Operating Corp filed Critical Symantec Operating Corp
Publication of DE602004008808D1 publication Critical patent/DE602004008808D1/de
Application granted granted Critical
Publication of DE602004008808T2 publication Critical patent/DE602004008808T2/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency

Description

  • Hintergrund der Erfindung
  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich auf die Durchführung von Operationen auf ausgewählten Daten, die in einem Speicherbereich wie z. B. einem Datenträger abgelegt sind.
  • Stand der Technik
  • Informationen steuern Unternehmen. Ein Unglücksfall, der ein Datenzentrum betrifft, kann Tage oder sogar Wochen von ungeplanter Standzeit verursachen und ein Datenverlust kann die Produktivität einer Organisation gefährden. Für Unternehmen, die in zunehmendem Maße von Daten und Informationen für ihre täglichen Geschäfte abhängen, kann diese ungeplante Standzeit ebenfalls ihren Ruf und ihren Reingewinn negativ beeinträchtigen. Unternehmen werden sich dieser Kosten zunehmend bewusst und ergreifen Maßnahmen, um sich für Unglücksfälle vorzubereiten und sich von ihnen wieder zu erholen.
  • Oftmals beinhalten diese Maßnahmen den Schutz primärer oder Produktionsdaten, was tatsächliche Daten sind, die für den Betrieb des Unternehmens genutzt werden. Kopien von primären Daten auf verschiedenen physikalischen Speichervorrichtungen und oftmals an entfernten Orten werden vorgenommen, um sicherzustellen, dass eine Version der primären Daten konsistent und kontinuierlich verfügbar ist. Diese Datenkopien werden bevorzugterweise so oft wie möglich aktualisiert, so dass die Kopien in dem Fall genutzt werden können, dass die primären Daten beschädigt, verloren, oder anderweitig restauriert werden müssen.
  • Zwei zu berücksichtigende Problemfelder bei einem Hardware- oder Softwareversagen, und ebenso bei der nachfolgenden Wiedergewinnung, sind das Verhindern eines Datenverlustes und das Aufrechterhalten einer Datenkonsistenz zwischen den primären Daten und den Speicherbereichen der Sicherungskopien. Konsistenz stellt sicher, dass selbst dann, wenn die Sicherungskopie der primären Daten nicht identisch zu den primären Daten ist (z. B. können Aktualisierungen der Sicherungskopie den Aktualisierungen der primären Daten hinterherhinken), die Sicherungskopie immer einen Zustand der primären Daten repräsentiert, der tatsächlich zu einem früheren Zeitpunkt existiert hat. Wenn eine Anwendung eine Sequenz von Schreiboperationen A, B und C auf die primären Daten anwendet, kann eine Konsistenz aufrechterhalten werden, indem diese Schreiboperationen in der gleichen Reihenfolge auf die Sicherungskopie angewendet werden. Zu keinem Zeitpunkt sollte die Sicherungskopie einen Zustand darstellen, der tatsächlich niemals bei den primären Daten existiert hat, was geschehen wäre, wenn die Schreiboperation C vor der Schreiboperation B durchgeführt worden wäre.
  • Ein Weg, eine Konsistenz zu erzielen und auch einen Datenverlust zu vermeiden, besteht darin, dass jede Aktualisierung der primären Daten auch bei der Sicherungskopie vorgenommen wird, vorzugsweise in Echtzeit. Oftmals werden solche „duplizierten" Aktualisierungen lokal auf einer oder mehreren Spiegelkopien der primären Daten durch dasselbe Anwendungsprogramm vorgenommen, das die primären Daten verwaltet. Das Anfertigen lokaler gespiegelter Kopien verhindert jedoch keinen Datenverlust, und daher werden primäre Daten oftmals zu zweiten Orten repliziert. Das Pflegen von Datenkopien an entfernten Orten führt jedoch zu einem anderen Problem. Wenn primäre Daten beschädigt werden und das Ergebnis der Aktualisierung, die die primären Daten beschädigt, zu Sicherungskopien von Daten durch Replikation weitergegeben wird, ist ein externes Sichern der beschädigten Daten und ein Wiederherstellen der primären Daten zu einem früheren Zustand bei jeder Kopie der Daten erforderlich, die gemacht wurde. Früher wurde dieses Problem dadurch gelöst, dass die primären Daten von einer Sicherungskopie wiederhergestellt wurden, bevor die primären Daten beschädigt wurden. Nachdem die primären Daten wiederhergestellt wurden, wurde der vollständige Satz primärer Daten zu jeder Sicherungskopie hinzukopiert um sicherzustellen, dass es eine Konsistenz zwischen den primären Daten und den Sicherungskopien gibt. Nur dann können normale Operationen, wie z. B. Aktualisierung und eine Replikation unter Benutzung der primären Daten, erneut vorgenommen werden.
  • Die zuvor beschriebene Technik des Kopierens des vollständigen Satzes primärer Daten zu jeder Sicherungskopie stellt sicher, dass die Daten zwischen den ersten und zweiten Orten konsistent sind. Ein Kopieren des vollständigen Satzes primärer Daten zu jeder Sicherungskopie an zweiten Orten erfordert jedoch unnötige Netzwerkbandbreiten, wenn nur eine kleine Teilmenge der primären Daten geändert wurde. Weiterhin erfordert das Kopieren des vollständigen Satzes primärer Daten über ein Netzwerk eine erhebliche Zeit, um eine Sicherungskopie der Daten anzufertigen, insbesondere wenn große Datenmengen, wie z. B. Terabytes von Daten, mit im Spiel sind. Zusätzlich besitzt nicht jeder Speicherort eines Datenträgers brauchbare Daten. Die Anwendung, die den Datenträger benutzt (z. B. ein Dateisystem oder eine Datenbank) hat im Allgemeinen freie Blöcke, deren Inhalte irrelevant sind und die üblicherweise nicht zugänglich sind. Solche Speicherorte müssen nicht zu zweiten Knoten kopiert werden. Daher verzögert das Kopieren des vollständigen Satzes primärer Daten zu jeder Sicherungskopie an zweiten Knoten die Wiederaufnahme des normalen Betriebs und kann Unternehmen wegen der Standzeit große Mengen Geld kosten.
  • Eine Möglichkeit weniger Daten zu replizieren besteht darin, Bereichen in jedem Speicherbereich nachzugehen, die sich mit Bezug auf Bereiche in anderen Speicherbereichen, die Kopien der Daten speichern, geändert haben, und nur die geänderten Bereiche zu kopieren. Eine Möglichkeit, die geänderten Bereiche nachzuverfolgen, besteht in der Benutzung von Bitmaps, nachfolgend auch als Datenänderungskarten oder Karten bezeichnet, bei der der Speicherbereich (Datenträger) im Bereich unterteilt ist und jedes Bit im Bitmap zu einem bestimmten Bereich im Speicherbereich (Datenträger) korrespondiert. Jedes Bit wird auf eine logische 1 (eins) gesetzt, wenn die Änderung der Daten in der entsprechenden Region mit Bezug auf die Sicherungskopie der Daten vorgenommen wurde. Wenn sich die Daten seit der letzten Sicherungskopie nicht geändert haben, wird das entsprechende Bit auf logisch 0 (null) gesetzt. Nur Bereiche, deren Bit auf eine logische 1 gesetzt sind, werden repliziert. Diese Lösung führt jedoch auch zu Problemen. Wenn nur ein Bit in einer 64K-Region geändert wurde, werden die gesamten 64K-Daten zu jedem sekundären Knoten kopiert. Obwohl es eine Verbesserung gegenüber dem Kopieren der gesamten Speicherregion (Datenträger) ist, repliziert diese Lösung weiterhin mehr Daten als notwendig. Der Einsatz der Datenänderungskarten wird nachfolgend im Detail mit Bezug auf 2 beschrieben.
  • Weiterhin wird diese Form des Nachverfolgens von Datenänderungen auf Bereiche des Speicherraums anstelle auf logische Organisationen der Daten wie z. B. einer ausgewählten Datei angewendet. Alle geänderten Bereiche des Speicherraums werden unter Benutzung der oben beschriebenen Datenänderungskarte synchronisiert. Weil Abschnitte einer ausgewählten Datei über verschiedene Bereiche des Speicherraums verstreut sein können, ist diese Nachverfolgungslösung für Datenänderungen nicht geeignet, selektiv geänderte Bereiche eines logischen Datensatzes zu ändern, wie z. B. geänderte Bereiche einer einzigen Datei auf verschiedenen Datenträgern.
  • Solch eine Beschränkung wird problematisch, wenn sehr große Dateien im Spiel sind. Man nehme z. B. an, dass nur eine von einem Satz von zwanzig großen Dateien auf dem Datenträger beschädigt ist. Benutzt man die Datenänderungskarte wie oben beschrieben, werden alle geänderten Bereiche, die Teile von jedem der zwanzig großen Dateien besitzen, synchronisiert. Wei terhin werden Änderungen, die bei Dateien vorgenommen wurden, die nicht beschädigt wurden, unnötigerweise extern gesichert, und sind diese Dateien während der Synchronisierung nicht verfügbar. Wenn z. B. die Dateien Datenbestände einer Datenbank beinhalten, werden alle Datenbestände in der geänderten Region des Datenträgers nicht mehr verfügbar sein, während der Zeit, die für die Synchronisierung der Daten benötigt wird. Diese Datenbestände müssten vom Netz genommen werden, müssten zurück ans Netz und Protokolle von Transaktion, die während der Offline-Zeit mit den Datenbankdaten vorgenommen wurden, müssten auf jede Datenbank angewendet werden. Zusätzlich verlangsamt eine Verarbeitung von Dateien, die nicht beschädigt wurden, erheblich den Synchronisierungsprozess und verschwendet Ressourcen.
  • Obwohl des wünschenswert ist, nur Teile der Daten zu sekundären Knoten zu replizieren, sind die meisten Replikationseinrichtungen ausgelegt, die Inhalte der Speicherbereiche ohne Berücksichtigung des Typs oder der Bedeutung der in den Speicherorten abgelegten Daten zu kopieren. Um eine Betriebsweise vorzunehmen, die den Typ oder die Bedeutung der Daten berücksichtigt, müssen typischerweise applikationsspezifische Software eingesetzt werden. Zum Beispiel erfordert das Kopieren von nur individuellen Dateien ein Wissen der Speicherorte, die in jede Datei abgelegt sind, was eine Information ist, die typischerweise für eine Replikationseinrichtung nicht nur Verfügung steht. Ein Kopieren einer einzelnen Datei ist unter Benutzung eines Dateikopier-Hilfsprogramms wie z. B. Xcopy möglich, aber diese Dienstprogramme funktionieren typischerweise nicht auf ausgewählten Teilen einer Datei. Wenn z. B. nur ein Bit in einer Datei geändert wurde, die ein Gigabyte Daten enthält, muss das Dateikopier-Dienstprogramm das gesamte Gigabyte an Daten kopieren, um die Änderung zu erfassen, was auch sehr zeitintensiv ist. Ein schnellerer Weg zum Wiederherstellen und/oder Synchronisieren ausgewählter Daten von größeren Datenträgern mit Daten und/oder Dateien ist wünschenswert.
  • Es besteht ein Bedarf für die Fähigkeit, nur ausgewählte Daten zu synchronisieren, wie z. B. geänderte Teile einer einzigen Datei oder anderer logischer Datensätze, aus zwei oder mehreren Versionen der in verschiedenen Speicherbereichen abgelegten Daten. Vorzugsweise sollte die Lösung es ermöglichen, dass die ausgewählten Daten ohne ein Kopieren unnötiger Daten synchronisiert werden. Die Lösung sollte einen minimalen Einfluss auf die Leistungsfähigkeit der Anwendungen haben, die die Daten mit einem oder mehreren Speicherauszügen benutzen. Die Lösung sollte es ermöglichen, dass andere Daten, die in den Speicherbereichen abgelegt sind, weiterhin zur Verfügung stehen und dass vorgenommene Änderungen gespeichert bleiben, wenn die anderen Daten nicht Teil der zu synchronisierenden ausgewählten Daten sind.
  • Die europäische Patentanmeldung mit der Veröffentlichungsnummer EP 1349088 beschreibt ein System und ein Verfahren für die synchrone Replikation oder Spiegelung von Änderungen aus der Ferne von einem Quell-Dateisystemspeicherabbild in ein Ziel-Replikationsdateisystem unter Benutzung eines Scans der Blöcke, die die zwei Versionen der Speicherabbilder des Quelldateisystems bilden, was geänderte Blöcke in den entsprechenden Speicherauszugsdaten identifiziert, basierend auf Unterschieden in den Datenträgerblocknummern, die in einem Scan des logischen Dateiblockindex von jedem Speicherabbild identifiziert wurden.
  • Die US-Patentanmeldung mit der Veröffentlichungsnummer US 2003/0208511 beschreibt ein Verfahren für die kontinuierliche Online-Replikation einer Datenbank in Echtzeit, einschließlich eines Verfahrens für das anfängliche Kopieren einer Datenbank von einer oder mehreren Quell-Servern zu einem Zielserver, Prozessoren für das Scannen der Datenbanktransaktions-Logfiles und Transaktionsdatendateien zur Identifikation, wann Daten geändert wurden, Verfahren für die Replikation von geänderten Daten vom Quell-Server zum Zielserver und Verfahren, um sicherzustellen, dass die Quell- und Zieldatenbanken kontinuierlich synchronisiert werden.
  • Die US-Patentnummer 5,794,252 beschreibt eine Datenbankeinrichtung zum Duplizieren aus der Ferne, aufweisend eine sichere Master-Prüfspur mit Fixpunkten.
  • Die US-Patentanmeldung mit der Veröffentlichungsnummer US 2002/0095416 beschreibt die Integration einer Datenbank in eine Dateiverwaltungssoftware für das Schützen, Nachverfolgen und Wiedergewinnen von Daten.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Besondere Aspekte der Erfindung werden in den beigefügten unabhängigen Ansprüchen niedergelegt. Die vorliegende Erfindung schließt ein Verfahren, ein System, ein computerlesbares Medium und ein Computersystem ein, die Operationen auf ausgewählte Daten in einem Speicherbereich vornehmen. Speicherorte im Speicherbereich können durch eine Anwendung identifiziert werden, die die Daten verwaltet (z. B. eine Datenbankapplikation, ein Dateisystem oder ein Anwendungsprogramm des Nutzers), um eine Operation nur auf die Daten in den identifizierten Speicherorten vorzunehmen. Die Speicherorte, die die Daten enthalten, werden dann einer Software mitgeteilt, die die Operation durchführt, z. B. einem Speichermanager oder einem Laufwerksmanager, oder eine Anwendung, die gemeinsam mit einem Speichermanager oder einem Laufwerksmanager zusammenarbeitet, wie z. B. eine Speicherbereichsreplikationseinrichtung. Die Software führt die Operation nur auf den identifizierten Orten aus und beeinflusst nur die Daten, die innerhalb der identifizierten Orte abgelegt sind und nicht andere Daten in anderen, nicht identifizierten Speicherorten,
  • KURZE BESCHREIBUNG DER FIGUREN
  • Die vorliegende Erfindung wird besser verstanden werden und seine zahlreichen Ziele, Merkmale und Vorteile werden für den Fachmann mit Hinweis auf die begleitenden Figuren deutlicher.
  • 1 zeigt ein Beispiel einer Systemumgebung, in der die vorliegende Erfindung betrieben werden kann.
  • 2 zeigt primäre Daten und eine Datenänderungskarte für das Nachverfolgen von Änderungen an den primären Daten.
  • 3A zeigt Beispiele von Daten für einen primären Datenträger und zwei sekundäre Datenträger, wenn alle Daten zu allen sekundären Knoten repliziert werden.
  • 3B zeigt ein Beispiele replizierter Daten unter Benutzung eines Datenträgersiebelements.
  • 3C zeigt ein Beispiel für replizierte Daten unter Benutzung überlappender Datenträgersiebelemente.
  • 3D zeigt ein Beispiel von Daten, die unter Benutzung eines Datenträgersiebelements repliziert wurden, das nur geänderte Daten repliziert.
  • 3E zeigt ein Beispiel von replizierten Daten unter Benutzung eines Datenträger-Siebelements, das mehrere Eigenschaften hat (einschließlich mehrfache Operationen).
  • 3F zeigt ein Beispiel von Daten, die unter Benutzung mehrerer Datenträgersiebelemente auf einem einzigen Datenträger repliziert wurden.
  • 3G zeigt ein Beispiel von Daten, die unter Benutzung einer Rückruffunktion repliziert wurden.
  • 4 ist ein Flussdiagramm eines Verfahrens für die Implementierung der vorliegenden Erfindung.
  • Der Einsatz gleicher Bezugszeichen in verschiedenen Figuren bedeutet, dass ähnliche oder identische Gegenstände gemeint sind.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Für ein gründliches Verständnis des Erfindungsgegenstandes nehme man Bezug auf die nachfolgende ausführliche Beschreibung, einschließlich der beigefügten Ansprüche in Verbindung mit den oben angegebenen Figuren. Obwohl die vorliegende Erfindung in Verbindung mit mehreren Ausführungsformen beschrieben wird, ist die Erfindung nicht dahingehend zu verstehen, dass sie auf die speziellen, hier dargelegten Ausführungsformen beschränkt ist. Im Gegenteil ist es beabsichtigt, dass sie solche Alternativen, Modifikationen und Äquivalente, die vernünftigerweise innerhalb des Schutzumfangs der Erfindung, wie sie in den beigefügten Ansprüchen definiert ist, liegen, mit umfassen.
  • In der folgenden Beschreibung werden zum Zwecke der Veranschaulichung zahlreiche spezielle Details angegeben, um ein gründliches Verständnis der Erfindung zu ermöglichen. Es wird jedoch dem Fachmann verständlich werden, dass die Erfindung auch ohne diese speziellen Details umgesetzt werden kann.
  • Bezugnahmen in der Beschreibung auf "zahlenmäßig eine Ausführungsform" oder "eine Ausführungsform" bedeutet, dass ein bestimmtes Merkmal, Struktur oder Charakteristik in Verbindung mit der Ausführungsform beschrieben wird, die in mindestens einer Ausführungsform der Erfindung enthalten ist. Das Erscheinen des Ausdrucks "in einer Ausführungsform" an verschiedenen Stellen der Beschreibung bezieht sich nicht notwendigerweise jeweils auf dieselbe Ausführungsform, noch schließen sich gesonderte oder alternative Ausführungsformen und die anderen Ausführungsformen gegenseitig aus. Darüber hinaus werden verschiedene Merkmale beschrieben, die in einigen Ausführungsformen, aber nicht in anderen enthalten sein können. Entsprechend werden verschiedene Erfordernisse beschrieben, was die Erfordernisse für einige Ausführungsformen aber nicht für andere Ausführungsformen sein können.
  • Terminologie
  • Der Fachmann wird erkennen, dass die Speichereinheit abhängig von der Art des Speicherbereichs variieren kann und in Einheiten von Blöcken, Bytes, Byte-Bereichen, Dateien, Datei-Clustern oder Einheiten für andere Arten von Speicherobjekten angegeben werden kann. Die Begriffe "Speicherbereich" und "Datenträger" werden benutzt, um sich allgemein auf jede Art von Speicherbereich oder -objekt zu beziehen und der Begriff "Bereich" und/oder Blöcke werden benutzt, um einen Speicherort auf einem Datenträger anzugeben. Die Benutzung der Begriffe "Datenträger", "Bereich", "Block" und/oder "Ort" ist nicht dahingehend zu verstehen, dass er einschränkend sein soll, und wird hier allgemein benutzt, um sich auf jede Art von Speicherobjekt zu beziehen.
  • Jeder Block eines Datenträgers hat typischerweise eine feste Größe; zum Beispiel wird eine Blockgröße von 512 Bytes normalerweise benutzt. Ein Datenträger mit einer Kapazität von 1.000 Megabytes besitzt daher 2,048,000 Blöcke mit jeweils 512 Bytes. Jeder dieser Blöcke kann gelesen oder durch Spezifizierung der Blocknummer beschrieben werden (auch als Blockadresse bezeichnet). Typischerweise muss ein Block als Ganzes gelesen oder beschrieben werden. Blöcke werden in Bereiche gruppiert, z. B. ist eine typische Bereichsgröße 32K Bytes. Es ist anzumerken, dass Blöcke und Bereiche eine feste Größe haben, wohingegen Dateien von unterschiedlicher Größe sein können. Daher kann die Synchronisierung von Daten einer einzigen Datei das Kopieren von Daten aus verschiedenen Bereichen mit sich bringen.
  • Jeder Datenträger kann seine eigene Datenänderungskarte haben, um Änderungen, die in jedem Bereich des Datenträgers vorgenommen wurden, nachzuverfolgen. Zu beachten ist, dass es kein Erfordernis ist, dass die Datenänderungskarte als ein Bitmap implementiert ist. Die Datenänderungskarte kann als ein Satz von logischen Variablen implementiert sein, als eine Tabelle von Indikatoren für Bereiche oder unter Benutzung beliebiger Mittel, die im Stande sind, Änderungen an den Daten in Bereichen des Datenträgers zu verfolgen.
  • In vielen Umgebungen werden Replikationsdaten nicht verändert, um ein Abbild des primären Datenträgers zu dem Zeitpunkt zu erhalten, zu dem die Kopie angefertigt wurde. Solche unveränderten replizierten Datenträger werden manchmal als statische replizierte Datenträger bezeichnet, und die Datenkopie wird als eine statische Kopie bezeichnet. Es ist möglich, dass Daten versehentlich zu einem statischen Replikationsträger geschrieben werden, so dass die entsprechende Datenänderungskarte zeigt, dass sich Bereiche des Replikationsdatenträgers geändert haben.
  • In anderer Umgebungen kann es wünschenswert sein, es zu ermöglichen, dass die Kopie selbständig aktualisiert werden kann, nachdem die Kopie angefertigt wurde. Zum Beispiel werden typischerweise die primären und die Replikationsdatenträger von verschiedenen Knoten in einem verteilten System verwaltet und dieselben Aktualisierungstransaktionen können auf beide Datenträger angewendet werden. Wenn der Knoten, der die Daten auf einem der Datenträger verwal tet, versagt, kann der andere Datenträger benutzt werden, um den ausgefallenen Datenträger zu einem aktuellen Datenzustand zu synchronisieren. Unabhängig aktualisierte Kopien werden durch Verwalten eines separaten Bitmaps für den Replikationsdatenträger unterstützt.
  • Einführung
  • Die vorliegende Erfindung beinhaltet ein Verfahren, ein System, ein computerlesbares Medium und ein Computersystem zur Durchführung von Operationen auf ausgewählte Daten in einem Speicherbereich. Speicherorte im Speicherbereich können durch einen Anforderer identifiziert werden, um eine Operation nur auf Daten an den identifizierten Speicherorten durchzuführen. Der Anforderer kann eine Anwendung sein, die die Daten verwaltet (wie z. B. eine Datenbankanwendung, ein Dateisystem oder ein Anwendungsprogramm des Nutzers) oder ein Speicherverwalter. Die Speicherorte, die die Daten beinhalten, werden durch eine Software erhalten, die die Operation durchführt, was ein Speicherverwalter oder eine Anwendung sein kann, die in Verbindung mit einem Speicherverwalter arbeitet, wie z. B. eine Speicherbereichsreplikationseinrichtung. Die Software, die die Operation ausführt, führt sie nur an den identifizierten Orten aus und beeinflusst daher nur die Daten, die innerhalb der identifizierten Orte abgelegt sind. Der Anforderer kann die durchzuführende Operation ebenso wie die Einheiten spezifizieren, denen es erlaubt ist, eine Operation auf spezifizierte Untermengen der Speicherorte vorzunehmen.
  • 1 zeigt ein Beispiel einer Systemumgebung, in der die vorliegende Erfindung eingesetzt werden kann. Zwei Knoten werden gezeigt, nämlich der primäre Knoten 110A und der sekundäre Knoten 110B. Die Computerprogrammanwendung 115A und ein Speicherverwalter/Replikator 120A wirken auf den primären Knoten 110A. Die Anwendung 115A verwaltet primäre Daten, die in einem Änderungsprotokoll 130A und einem Datenspeicher 140A abgelegt werden können.
  • Das Änderungsprotokoll 130A kann als ein Zwischenspeicherbereich bzw. staging Area angesehen werden, zu denen Änderungen zu Daten geschrieben werden, bevor sie in den Datenspeicher 140A geschrieben werden. Änderungsprotokolle wie z. B. das Änderungsprotokoll 130A werden einfach als Protokolle bezeichnet, sind allgemein bekannt und können auf verschiedene Arten implementiert werden, z. B. kann ein Eintrag in das Protokoll eine auf einen spezifizierten Bereich der Dateien durchzuführende Operation repräsentieren. Alternativ kann das Protokoll strukturiert sein, um einen Satz von Operationen mit Bezug auf jeden Bereich zu gewährleisten. Andere Arten von Protokollstrukturen sind auch möglich, wobei kein besonderer Typ von Implementierung der Änderungsprotokolle für den Betrieb der Erfindung benötigt wird. Die Erfindung kann ohne ein Protokoll durchgeführt werden, obwohl ein Protokoll bevorzugt wird.
  • Ein Speicherverwalter/Replikator 120A fängt Schreiboperationen auf primäre Daten durch eine Anwendung 115 ab und repliziert Änderungen der primären Daten zu einem sekundären Knoten 110B. Die Art der Replikation, die vom Speicherverwalter/Replikator 120A durchgeführt wird, kann synchron, asynchron und/oder periodisch sein, solange Aktualisierungen konsistent sowohl für den primären als auch für den sekundären Datenspeicher angewendet werden.
  • Während die Anwendung 115A und der Speicherverwalter/Replikator 120A auf demselben Computersystem ablaufen können, wie z. B. dem primären Knoten 110A, kann die Hardware- und Softwarekonfiguration, die durch den primären Knote 110A repräsentiert wird, variieren. Die Anwendung 115A und der Speicherverwalter/Replikator 120A können auf verschiedenen Computersystemen ausgeführt werden. Darüber hinaus kann der Speicherverwalter/Replikator 120A als ein getrenntes Speicherverwaltungsmodul und als ein Replikationsmodul implementiert sein, die gemeinsam miteinander betrieben werden. Die Anwendung 115A selbst kann eine Speicherverwaltungsfunktionalität bereitstellen.
  • Das Änderungsprotokoll 130A kann in einem nicht-beständigen oder beständigen Datenspeicher abgelegt sein und der Datenspeicher 140A ist eine logische Darstellung eines Satzes von Daten, die auf einer logischen Speichervorrichtung abgelegt ist, die eine oder mehrere physikalische Speichervorrichtungen beinhalten können. Obwohl weiterhin Verbindungen zwischen den Anwendungen 115A, dem Speicherverwalter/Replikator 120A, dem Änderungsprotokoll 130A und dem Datenspeicher 140A innerhalb des primären Knoten 110A gezeigt sind, wird der Fachmann erkennen, dass diese Verbindungen nur der Veranschaulichung dienen und dass andere Verbindungskonfigurationen möglich sind. Zum Beispiel können ein oder mehrere der Anwendung 115A, des Speicherverwalters/Replikators 120A, des Änderungsprotokolls 130A und des Datenspeichers 140A physikalisch außerhalb liegen, aber an dem Knoten angeschlossen sein, der vom primären Knoten 110A repräsentiert wird.
  • Der sekundäre Datenspeicher 140B ist vom primären Datenspeicher 140A logisch getrennt und kann auch physikalisch getrennt sein. Der Speicherverwalter/Replikator 120A des primären Knotens 110A kommuniziert über die Replikationsverbindung 102C mit dem Speicherverwalter/Replikator 120B des sekundären Knotens 110B. Der sekundäre Knoten 110B besitzt auch ein Änderungsprotokoll 130B und einen Speicherbereich 140B für das Ablegen einer Kopie der primären Daten und verschiedene Variationen in Hardware- und Softwarekonfigurationen des sekundären Knotens 110B sind möglich. Es ist nicht erforderlich, dass ein Änderungsprotokoll, wie z. B. das Änderungsprotokoll 130B, auf dem sekundären Knoten anwesend sein muss, wie z. B. dem sekundären Knoten 110B.
  • 2 zeigt ein Beispiel primärer Daten zu zwei verschiedenen Zeitpunkten, wobei die primären Daten 210A die primären Daten repräsentieren, wie sie zum Zeitpunkt A vorliegen, und die primären Daten 210B die primären Daten repräsentieren, wie sie zum Zeitpunkt B vorliegen (der Zeitpunkt B ist später als der Zeitpunkt A). Zum Zwecke der Erläuterung wird auch eine korrespondierende Datenänderungskarte 220 zum Zeitpunkt B gezeigt, die acht Bereiche der primären Daten zeigt. Wie in der Datenänderungskarte 220 gezeigt, haben sich die primären Daten in den Bereichen 2, 3 und 7 zwischen Zeitpunkten A und B geändert. Man nehme an, dass eine Momentaufnahme der Daten zum Zeitpunkt A vorgenommen wurde. Wenn die primären Daten später beschädigt wurden, können die primären Daten zurück zu dem Zustand der Daten gebracht werden, zu dem die Momentaufnahme angefertigt wurde. Diese Wiederherstellung kann durch Kopieren der Bereiche 2, 3 und 7 erzielt werden (identifiziert als die Regionen, die einen Wert 1 in der Datenänderungskarte haben) ausgehend von der Momentaufnahme der primären Daten. Alternativ kann die Momentaufnahme dadurch aktualisiert werden, dass die Bereiche 2, 3 und 7 von den primären Daten 210B zum Zeitpunkt B zu der Momentaufnahme kopiert werden. Diese Lösung ermöglicht, dass die zwei Datenkopien synchronisiert werden, ohne alle Daten zu kopieren (wie z. B. alle Daten in einer sehr großen Datei), von einem Datensatz zum anderen.
  • Wie oben erläutert, kann das Nachverfolgen von Änderungen auf einem unteren Niveau sehr ineffizient sein. Die vorliegende Erfindung schlägt den Einsatz einer Vorgehensweise vor, die nachfolgend als Datenträger-Siebelement oder einfach als Siebelement bezeichnet wird, um Operationen zu ermöglichen, die nur auf ausgewählte Speicherorte angewendet werden.
  • Siebelemente
  • Konzeptionell kann ein Siebelement als ein Mechanismus beschrieben werden, der es dem Benutzer (Person oder Anwendungsprogramm) eines Speicherbereichs (Datenträger) ermöglicht, anzugeben, welche Operationen auf ausgewählte Speicherorte des Speicherbereichs (Datenträger) (und nicht nur den ganzen Speicherbereich) angewendet werden soll oder könnte. Ein oder mehrere Siebelemente können einen maßgeschneiderten Zugang und ein Verarbeiten von Steuermechanismen genauso wie einen Filter bereitstellen. Datenträgersiebelemente können Anwendungen haben, einschließlich der Replikation nur ausgewählter Daten, die in einem Speicherbereich (Datenträger) abgelegt sind, der Replikation verschiedener Sätze ausgewählter Daten auf mehrere sekundäre Knoten (eins-zu viele, viele-zu-viele und viele-zu-eine), der Clusterzugangssteuerung und der Low-Level-Datensicherheit.
  • Allgemein können für ein Siebelement zwei Komponenten vorgesehen sein: eine Eigenschaft und ein Satz von einem oder mehreren Orten, auf welche eine Operation, die durch die Eigenschaft angezeigt wird, ausgeübt werden kann. Die Eigenschaft ist eine Abstraktion von Operationen, die auf einem Speicherbereich (Datenträger) ausgeführt werden können. Beispiele von Operationen sind die Replikation, die Sicherung, das Lesen, das Schreiben, das Zugreifen auf Daten innerhalb eines Clusters, die Kompression, die Verschlüsselung, die Spiegelung, das Verifizieren von Daten unter Einsatz von Prüfsummen, usw. Eine Eigenschaft kann z. B. als ein Satz von Befehlen implementiert sein, die durch Software ausgeführt werden, die die Operation ausführt. Solch ein Satz von Anweisungen kann als eine Rückruffunktion implementiert werden, wobei die Software, die die Operation ausführt, ein anderes Modul besitzt, die durchzuführende Operation mit dem Namen einer Funktion aufruft, die gewählt wird, wenn ein anderes Modul die Operation anfordert.
  • Der Satz von einem oder mehreren Speicherorten kann als ein Satz von einem oder mehreren Dateibereichen repräsentiert werden. Ein Dateibereich besitzt ein Layout von physikalischen Speicherorten auf einem physikalischen Datenträger. Der Dateibereich besitzt typischerweise eine Adresse für den Start einer Dateilokalisierung und eine Größe (die Zahl der zusammenhängenden Orte, die an der Adresse beginnen). Eine einzige Datei kann verschiedene nicht-zusammenhängende Bereiche besitzen (von denen jede eine entsprechenden Startort und -größe hat). Der Fachmann wird erkennen, dass Dateibereiche in Speichereinheiten wie z. B. Datenclustern ausgedrückt werden können, sie werden aber aus Gründen der Einfachheit nachfolgend als Orte auf den Datenträgern bezeichnet.
  • Ein Satz von Dateibereichen kann als eine Dateibereichskarte (oder ein Bitmap) repräsentiert werden, welche Teile des zugrundeliegenden Datenträgers repräsentiert. Wenn ein Dateibereich (ein Adressenbereich) in der Dateibereichskarte des Siebelements vorhanden ist, ist die Eigenschaft des Siebelements auf die Speicherorte in diesem Adressbereich anwendbar. Dateibereiche, die nicht in der Karte enthalten sind, werden nicht durch die Operation(en), die von der Siebelementeigenschaft repräsentiert werden, beeinflusst. Zum Beispiel kann ein Siebelement mit der Fähigkeit zur Replikation und können Dateibereiche, die die zu replizierenden Teile des Datenträgers spezifizieren, erzeugt werden; die Teile des Datenträgers, die nicht vom Siebelement angezeigt werden, werden nicht repliziert.
  • Der nachfolgende Abschnitt stellt Beispiele von Operationen unter Benutzung von Siebelementen bereit, wobei weitere Details über die Implementierung der Siebelemente dargestellt werden.
  • Beispielhafte Operationen unter Benutzung von Siebelementen
  • Die 3A zeigt Beispiele von Daten für einen primären Datenträger und zwei sekundäre Datenträger, wenn alle Daten zu allen sekundären Knoten repliziert werden. Jeder der Replikationsdatenträger 310A und 310B und der primäre Datenträger 310C zeigen Daten für neun Speicherorte, mit den drei Bereichen R1, R2 und R3, die jeweils drei Speicherorte besitzen. In jedem der Datenträger 310A, 310B und 310C enthalten die Speicherorte, 1, 2 und 3 der Region R1 Daten, entsprechend haben sie Werte A, z und G. Speicherorte 4, 5 und 6 der Region R2 besitzen Daten und haben entsprechend Werte „B", „9" und „?". Speicherorte 7, 8 und 9 der Region R3 enthalten Daten und haben entsprechend Werte „q", „C" und „@". Beide sekundäre Datenträger 310A und 310B werden mit dem primären Datenträger 310C synchronisiert.
  • 3B zeigt ein Beispiel von Daten, die unter Benutzung von Datenträger-Siebelementen repliziert werden. Das Siebelement 320A besitzt eine Eigenschaft, die eine Operation auf die Replikation des Replikationsdatenträgers #1 ausführt (Replikationsdatenträger 310A), welche auf den Satz von Orten beginnend mit dem Ort 7 und einschließlich dreier Orte angewendet wird. In diesem Beispiel das Siebelement 320A, die Speicherorte 7, 8 und 9 des Bereichs R3 mit den entsprechenden Werte „q", „C" und „@" haben.
  • Das Siebelement 320B besitzt eine Eigenschaft, die die Operation der Replikation zum Replikationsdatenträger #2 ausführt (Replikationsdatenträger 310B), die sie auf den Satz von Orten beginnend mit dem Ort 1 einschließlich von sechs Orten anwendet. Das Siebelement 320B findet auf Speicherorte 1 bis 3 der Region R1 Anwendung und hat entsprechende Werte „A", „z" und „G" und die Speicherorte 4 bis 6 der Region R2 haben entsprechende Werte „B", „9" und „?".
  • Die 3C zeigt ein Beispiel von Daten, die unter Benutzung überlappender Datenträgersiebelemente repliziert wurden. Das Siebelement 320A besitzt eine Eigenschaft, die die Operation der Replikation des Replikationsdatenträgers #1 ausübt (Replikationsdatenträger 310A), die sie auf den Satz von Orten beginnend mit dem Ort 5 und einschließlich von fünf Orten anwendet. In diesem Beispiel findet das Siebelement 320A auf die Speicherorte 5, 6, 7, 8 und 9 der Regionen R2 und R3 Anwendung und hat entsprechende Werte „B", „9", „q", „C" und „@".
  • Das Siebelement 320B besitzt eine Eigenschaft, die die Operation der Replikation des Replikationsdatenträgers #2 ausübt (Replikationsdatenträger 310B), welche auf den Satz von Orten beginnend mit dem Ort 1 und einschließlich von sechs Orten anwendet. Das Siebelement 320B wird auf die Speicherorte 1 bis 3 der Region R1 angewendet und hat entsprechende Werte „A", „z" und „G" und Speicherorte 4 bis 6 der Region R2 mit entsprechenden Werten „B", „9" und „?". Die Speicherorte 5 und 6 werden zu beiden Replikationsdatenträgern 310A und 310B repliziert.
  • Die 3D zeigt ein Beispiel von Daten, die unter Benutzung von Datenträgersiebelementen repliziert wurden, die nur geänderte Daten replizieren. In diesem Beispiel sind die Siebelemente 320A und 320B ähnlich zu denjenigen, die in der 3C gezeigt sind, aber die Eigenschaft, die die Operation der Replikation spezifiziert, wird nur auf geänderte Speicherorte angewendet. Nur Daten in geänderten Speicherorten werden repliziert, in diesem Beispiel nur die Daten im Speicherort 5, der von einem Wert „9" zu einem Wert „2" geändert wurde, wie es durch die Datenänderungskarte 330 angezeigt wird, die nur das Bit für die Region 5 als geändert ausweist. Der Wert „2" wird sowohl im Replikationsdatenträger 310A als auch in 310B repliziert.
  • 3E zeigt ein Beispiel von Daten, die unter Benutzung von Datenträgersiebelementen mit mehreren Eigenschaften repliziert wurden (was mehrere Operationen andeutet). Das Siebelement 320A besitzt eine Eigenschaft für die Operationen der Komprimierung und Replikation des Replikationsdatenträgers #1 (Replikationsdatenträger 310A). Jede dieser Operationen wird auf den Satz von Orten beginnend mit dem Ort 5 und einschließlich von 5 Orten angewendet, aber die Operationen werden nur durchgeführt, wenn diese Orte Daten enthalten, die geändert wurden. In diesem Beispiel wirkt das Siebelement 320A auf die Speicherorte 5, 6, 7, 8 und 9 der Regionen R2 und R3 und hat entsprechende Werte „2", „?", „q", „C" und „@". Die Datenänderungskarte 330 zeigt an, dass sich nur die Daten am Speicherort 5 geändert haben. Die Daten im Speicherort 5 des primären Datenträgers 310C werden komprimiert und dann zum Replikationsdatenträger 310 repliziert.
  • Das Siebelement 320B hat auch eine Eigenschaft mit Operationen der Komprimierung und der Replikation zum Replikationsdatenträger #2 (Replikationsdatenträger 310B), welche auf den Satz von Orten beginnend mit dem Ort 1 und einschließlich von sechs Orten angewendet wird, und zwar nur dann, wenn diese Orte Daten enthalten, die sich geändert haben. Das Siebelement 320B wirkt auf Speicherorte 1 bis 3 der Region R1 und hat entsprechende Werte A, z, und G sowie Speicherorte 4 bis 6 der Region R2 mit entsprechenden Werten B, 9 und ?. Daten im Speicherort 5 werden komprimiert und zum Replikationsdatenträger 310B repliziert.
  • 3F zeigt ein Beispiel von Daten, die unter Benutzung mehrerer Datenträgersiebelemente zu einem einzigen Datenträger repliziert wurden. Das Siebelement 320A-1 hat eine Eigenschaft, die eine Komprimierung von Daten anzeigt, die auf Daten anzuwenden ist, die in den Orten 3, 4 und 5 enthalten sind. Das Siebelement 320A-2 hat eine Eigenschaft, die eine Replikation zum Replikationsdatenträger #1 anzeigt. Der Satz von Orten, der zu replizieren ist, beinhaltet sechs Orte beginnend mit dem Ort 1. Beim Anwenden beider Siebe werden die Daten in den Orten 3, 4 und 5 entsprechend der Siebe 320A-1 komprimiert und Daten in den Orten 1 bis 6 werden gemäß dem Sieb 320A-2 zum Replikationsdatenträger 310A repliziert. Daten an Speicherorten 3, 4 und 5 werden vor der Replikation komprimiert und Daten in den Speicherorten 1, 2 und 6 nicht.
  • Die 3G zeigt ein Beispiel von Daten, die unter Benutzung einer Rückruffunktion repliziert wurden. Das Siebelement 320A besitzt eine Eigenschaft für die Operation der Replikation zum Replikationsdatenträger #1 (Replikationsdatenträger 310A), die auf den Satz von Orten beginnend mit dem Ort 5 und einschließlich von fünf Orten angewendet wird, und zwar nur für Orte mit geänderten Daten. Zusätzlich ist eine Anweisung zum Aufruf von Callback_Function1 im Siebelement enthalten. in diesem Beispiel findet das Siebelement 320A auf Speicherorte 5, 6, 7, 8 und 9 der Regionen R2 und R3 Anwendung und hat entsprechende Werte „B", „9", „q", „C" und „@". Callback_Function1 wird aufgerufen, bevor die Daten repliziert werden.
  • Das Siebelement 320B besitzt eine Eigenschaft für die Operation der Replikation zum Replikationsdatenträger #2 (Replikationsdatenträger 310B), die auf den Satz von Orten beginnend mit dem Ort 1 und einschließlich von sechs Orten angewendet wird, und zwar nur für Orte, die geänderte Daten enthalten. Zusätzlich ist eine Anweisung zum Aufruf von Callback_Function2 im Siebelement enthalten. Das Siebelement 320B findet auf Speicherorte 1 bis 3 der Region R1 Anwendung und hat entsprechende Werte „A", „z" und G" und die Speicherorte 4 bis 6 der Region R2 haben entsprechende Werte „B", „9" und „?". Die Datenänderungskarte 330 zeigt an, dass nur der Speicherort 5 geänderte Daten enthält. Im Ergebnis werden Daten im Speicherbereich 5 zum Replikationsdatenträger 310B nach dem Aufruf von Callback_Function2 repliziert.
  • 4 ist ein Flussdiagramm eines Verfahrens für die Implementierung der vorliegenden Erfindung. in "Ermitteln eines spezifizierten Satzes von Orten im Speicherbereich, worauf die Operation auszuführen ist" des Schrittes 410 wird ein spezifizierter Satz von Orten ermittelt. Diese Speicherorte werden vorzugsweise durch eine Anwendung bereitgestellt, die den Typ und den Inhalt der Daten im Speicherbereich kennt. Die spezifizierten Speicherorte sind nur Speicherorte, die Daten enthalten, auf welche eine Operation ausgeübt werden soll. Die Operation wird in "Bestimme durchzuführende Operation(en)" in Schritt 420 festgelegt. Zum Beispiel kann auf die Eigenschaften des Siebelements zugegriffen werden, um die durchzuführenden Operationen zu bestimmen. Die Steuerung fährt dann mit "Führe Operation(en) nur auf spezifizierten Satz von Orten aus" bei Schritt 430 fort, wo die Operation(en) auf die Daten an den spezifizierten Satz von Orten ausgeübt wird. Daten in anderen nicht-spezifizierten Speicherbereichen werden nicht durch die Operation(en) beeinflusst.
  • Der folgende Abschnitt stellt eine beispielhafte Implementierung von Siebelementen bereit, die Anschauungszwecken dient und nicht den Umfang der Erfindung einschränken soll.
  • Beispielhafte Implementierungen von Siebelementen
  • Ein Datenträgersiebelement kann als eine Eigenschaft und als ein Satz von einem oder mehreren Speicherorten beschrieben werden, auf welche eine Operation, die durch die Eigenschaft angezeigt wird, ausgeübt wird. Die Siebelementeigenschaft kann als eine Bit-Zeichenkette dargestellt sein, wobei jedes Bit in der Zeichenkette zu einem der möglichen Datenträgeroperationen korrespondiert. Wenn das jeweilige Bit gesetzt ist, ist die korrespondierende Eigenschaft aktiv und wird die entsprechende Operation auf die Daten angewendet, die in dem zugrunde liegenden Speicherbereich (Datenträger) abgelegt sind. Wenn mehr als ein Bit in der Zeichenkette gesetzt ist, repräsentiert das Siebelement eine Kombination von Eigenschaften. Zum Beispiel ist für den Fall, dass die Bitposition für die Replikationseigenschaft VOL_SIEVE_PROPERTY_REPLICATE ist und diejenige für die Komprimierung VOL_SIEVE_PROPERTY_COMPRESS, dann kann die Eigenschaft des Datenträgersiebelements gesetzt werden als (VOL_SIEVE_PROPERTY_REPLICATE|VOL_SIEVE_PROPERTY_COMPRESS), um anzuzeigen, dass die Replizierung der beteiligten Bereiche des Datenträgers komprimiert werden sollen.
  • Mehrere Siebelemente können mit verschiedenen Eigenschaften auf einen Speicherbereich (Datenträger) angewendet werden. Siebelemente können auch zusätzliche Dimensionen haben, um anzuzeigen, dass die Anwendung der Operation(en), die durch die Siebelementeigenschaft angezeigt wird, nicht nur für einen spezifischen Satz von Orten gilt, sondern auch für spezifische Knoten in einem Cluster, für sekundäre Knoten zur Replikation und/oder für andere solche Einheiten. Zum Beispiel können Bereiche des Datenträgers, die zu jedem der mehreren sekundären Knoten zu replizieren sind, angezeigt werden, ebenso wie Knoten im Cluster, die auf bestimmte Teile der Daten zugreifen können.
  • Der zweite Bestandteil eines Siebelements wird bestimmt durch einen oder mehrere Speicherorte, auf welchen Operationen, die durch die Eigenschaft angezeigt werden, angewendet werden.
  • In einer Ausführungsform wird ein Siebelement dauerhaft als eine Bereichsliste bzw. extent List (ein Satz von Offset-Längenpaaren) abgelegt und kann in ein Bitmap expandiert werden (wobei jedes Bit einen Datenträgerbereich/Block mit fester Größe repräsentiert), das in den Speicher geladen wird. Ein Bitmap, bei dem jedes Bit einen Bereich darstellt, der manipuliert und schneller und einfacher abgefragt werden kann, ermöglicht eine schnelle Antwort auf Zugehörigkeitsabfragen. Die Bereichsliste kann man sich als eine Komprimierung (längencodiert) des Bitmaps vorstellen. Eine Bereichsliste ist für die dauerhafte Speicherung geeigneter, da sie kompakter als ein Bitmap ist. Eine andere Alternative für die Bereichskartendarstellung ist eine baumbasierte Intervallrepräsentation, die auch für ein schnelles Indizieren geeignet ist, aber schwieriger zu manipulieren ist.
  • Wie oben beschrieben können ein oder mehrere Siebelemente auf einen gegebenen Datenträger angewendet werden. Man betrachte zum Beispiel das oben beschriebene komprimierte Replikationssiebelement. Anstelle der Anwendung nur eines Siebelements mit der gemeinsamen Eigenschaft kann der Benutzer (Person oder Anwendungsprogramm) auswählen, zwei Siebelemente anzuwenden (eines für VOL_SIEVE_PROPERTY_REPLICATE und ein anderes für VOL_SIEVE_PROPERTY_COMPRESS) und zwar derart, dass nur Daten in spezifizierten Orten des Speicherbereichs (Datenträger) nach der Komprimierung repliziert werden und wobei Daten in anderen Speicherorten gesendet werden, ohne dass sie komprimiert sind. Konflikte können zwischen verschiedenen Siebelementeigenschaften auftreten oder, in anderen Fällen, kann die Kombination von Eigenschaften nicht sinnvoll sein. Dieses Problem wird durch Implementierung eines Siebelements gelöst, das Anweisungen enthält, um festzustellen, ob eine Operation erlaubt ist oder abgebrochen wird. Jede Operation kann vor dem Start implementiert werden, um jedes Siebelement abzufragen, die mit dieser Operation korrespondiert, um nachzuprüfen, ob die Operation auf den spezifizierten Satz von Orten im Speicherbereichs-(Datenträger-) Adressbereich angewendet werden kann oder soll.
  • Die zuvor beschriebenen Siebelemente mit nur einer Eigenschaft und einem Satz von Orten kann man sich als eindimensional vorstellen, in dem Sinne, dass sie nur den Datenträgeradressbereich repräsentieren. Andere Dimensionen können zum Siebelement hinzugefügt werden, um die Fähigkeit und Mächtigkeit des Siebelementmechanismus zu verbessern. Eine zusätzliche Dimension kann z. B. die Anwendbarkeit der Siebelementeigenschaft für bestimmte Entitäten repräsentieren (für die gegebenen Bereiche); die Bereiche bilden eine zusätzliche Dimension. Die Bedeutung der zusätzlichen Dimension kann angezeigt werden, indem man sie mit der Siebelementeigenschaft kombiniert (die Dimension kann man sich als eine Meta-Eigenschaft vorstellen) und die Dimensionsentitäten selbst können durch ihr Hinzufügen zu der Bereichsliste spezifiziert werden.
  • Die Siebelementeigenschaft (VOL_SIEVE_PROPERTY_WRITE|VOL_SIEVE_PROPERTY_CLUSTER) und die zweidimensionale Bereichsliste {[20, 45(N1)], [1000, *,(N1, N2, N3)]} wird z. B. die zusätzliche Dimension durch die Meta-Eigenschaft VOL_SIEVE_PROPERTY_CLUSTER repräsentiert, die anzeigt, dass das Siebelement auf Cluster-Operationen angewendet wird und die Dimension selbst wird durch die Tupel (N1) und (N1, N2, N3) repräsentiert. Dieses spezielle Siebelement zeigt an, dass es nur dem Knoten N1 im Cluster erlaubt ist, in den Adressbereich [20, 45] zu schreiben, wohingegen der Adressbereich 1000 bis zum Ende des Datenträgers von jedem der Knoten N1, N2 und N3 beschrieben werden kann.
  • Ein anderer Weg für das Repräsentieren der zusätzlichen Dimension(en) besteht darin, ein zusätzliches eindimensionales Siebelement für jede Entität der Dimension zu haben. Bei dieser Art der Repräsentation existiert eine Bereichskarte für jede Entität in jeder zusätzlichen Dimension. Im vorangegangenen Beispiel hat der Knoten N1 für die zusätzliche Dimension von VOL_SIEVE_PROPERTY_CLUSTER das Siebelement {[20, 45], [1000, *]}, wobei N2 {[1000, *]} und N3 {[1000, *]} ist. Obwohl diese Darstellung redundant ist und mehr Speicherplatz erfordert als die oben beschriebene Darstellung, kann diese Darstellung leichter ausgewertet werden.
  • In einer Ausführungsform werden Siebelemente mit einem Speicherbereich (Datenträger) durch den jeweiligen Datensatz des Speicherbereichs in einer Konfigurationsdatenbank verknüpft. Siebelemente werden als ein neuer Typ eines Konfigurationsdatensatzes dargestellt, so dass Transaktionsoperationen mit dem Siebelement durchgeführt werden können. In einer Ausführungsform werden die Siebelemente in den Kernel-Speicher des Computersystems geladen, auf welchem die Datenverwaltungssoftware und/oder die Replikationseinrichtung abläuft, da die meisten Siebelementeigenschaften die Eingabe/Ausgabepfade des Speicherbereichs (Datenträgers) beeinflussen.
  • Weil ein gegebener Speicherbereich (Datenträger) mehrere Siebelemente haben kann, benutzen andere Ausführungsformen Datenträgersätze zum Ablegen von Siebelementen. Ein Datenträgersatz besitzt einen separaten Datenträger zum Ablegen von Metadaten für die Datenträger, zusätzlich zu den Quelldaten-Datenträgern. Ein Siebelement kann man sich so vorstellen, dass es Metadaten für die Quelldaten-Datenträger besitzt.
  • In einer Ausführungsform kann ein Siebelement (d. h. kann die Siebelementeigenschaft gesetzt oder modifiziert werden und kann eine Bereichsliste hinzugefügt, geändert oder gelöscht werden) durch einen Administratorbefehl oder durch eine Anwendungsprogrammierschnittstelle (API unter Benutzung von ioctls oder Bibliotheksaufrufen) geändert werden. Die Änderung eines Siebelements ist eine heikle Operation, weil ein Siebelement die Art und Weise beeinflusst, wie Operationen auf einen Speicherbereich (Datenträger) ausgeübt werden. In einer Ausführungsform wird ein Siebelement durch einen Änderungsschlüssel geschützt, so dass das Siebelement nur geändert werden kann, wenn der korrekte Änderungsschlüssel bereitgehalten wird. Der Änderungsschlüssel kann auf NULL gesetzt werden, wobei in diesem Fall kein Schlüssel bereitgehalten werden muss, um das Siebelement zu ändern. In dieser Ausführungsform kann ein Siebelement nur durch den Administrator des Systems geändert werden (z. B. root in Unix) oder durch eine Anwendung mit Systemprivilegien, z. B. bei einem Dateisystem wie Veritas File System (V×FS), von Veritas Software Corporation, Mountain View, Kalifornien).
  • Anwendungen von Siebelementen
  • Wie zuvor erläutert ist eine Replikationseinrichtung typischerweise ausgelegt, die Inhalte eines gesamten Speicherbereichs (Datenträger) zu replizieren. Es kann jedoch unnötig sein, alle in dem Speicherbereich (Datenträger) abgelegten Daten zu replizieren, wenn z. B. nur gewisse Daten kritisch sind oder der Benutzer nur gewisse Teile der Daten zu einem bestimmten sekundären Knoten replizieren will. In solchen Fällen kann ein Siebelement mit einer Replikationseigenschaft benutzt werden, um eine selektiv oder teilweise Replikation der Daten, die in dem Speicherbereich (Datenträger) abgelegt sind, vorzunehmen. Eine zusätzliche Dimension (die die sekundären Knoten anzeigen, zu denen die Replikation erfolgt) kann hinzugefügt werden, um anzuzeigen, welche sekundären Knoten welche Teile der Daten empfangen sollen.
  • Wenn nur ein Teil der Anwendungsdaten zu replizieren ist (z. B. eine Datei oder ein Verzeichnis im Dateisystem) kann die Anwendung den Umfang (oder Bereiche) des Datenträgers bestimmen, der repliziert werden soll, um ein logisch konsistentes (wenn auch teilweises) Abbild auf den sekundären Knoten zu erzeugen. Zum Beispiel werden alle Daten und Metadatenbereiche für die Datei oder das Verzeichnis, die zu replizieren sind, bestimmt, so dass das sekundäre Dateisystem nur mit den spezifizierten Daten oder dem spezifizierten Verzeichnis eingehängt wird. Diese Bereiche können zu dem Replikationssiebelement hinzugefügt werden. Da Datenänderungen oder neue Daten hinzugefügt werden, kann die Anwendung geeignet Bereiche zum Siebelement hinzufügen oder ändern.
  • Man betrachte die Situation, bei dem ein Unternehmen viele Softwareprodukte entwickelt und verkauft, und jedes Produkt seinen eigenen Datenaufbewahrungsort (wie z. B. ein Quelldatenaufbewahrungsort, Kundendatensätze, darauf bezogene Dokumente, usw.) hat. Obwohl Aufbewah rungsorte an einem Ort verwaltet werden können (wie z. B. einem zentralen Senner) sind Produktentwicklung und -verkaufsaktivitäten rund um den Globus verteilt. Die Produktentwicklung und die Verkaufsgruppen, die über die verschiedenen Orte verstreut sind, haben ihre eigenen lokalen Server (für einen schnelleren Zugriff). Darüber hinaus kann jedes Entwicklungsteam in der Entwicklungsgruppe seinen eigenen Cache-Server haben.
  • In einer solchen Situation kann eine selektive Datenreplikation hilfreich sein, bei der nur die relevanten Dateien/Verzeichnisse zu den relevanten Servern repliziert werden. Man nehme z. B. an, dass ein Verzeichnis/project alle Quelldatenaufbewahrungsorte auf einem zentralen Server enthält. Unter Einsatz einer selektiven Datenreplikation wird nur der Quellcodebaum/project/unix source zum Server eines Unix-Teams repliziert, und nur der Baum/project/Windows wird zum Senner eines Windows-Teams repliziert. Immer dann, wenn ein Entwickler einen Quellcode zum zentralen Aufbewahrungsort einreicht, kann der neue Quellcode selektiv nur zu den relevanten Servern repliziert werden. Zum Beispiel wird geprüfter Quellcode im Unix-Quellcodebaum nur zu Unix-Servern repliziert.
  • Eine selektive Dateienreplikation kann auch bei Datensicherheitssituationen hilfreich sein. Es kann z. B. sein, dass ein entfernter Knoten nicht auf alle Daten eines Dateisystem zugreifen können muss, wobei in diesem Fall nur die benötigten Dateien und Verzeichnisse zum entfernten Knoten repliziert werden.
  • Die selektive Datenreplikation kann auch genutzt werden, um einen Lastausgleich innerhalb eines Clusters oder in einem Vermittlungsnetz vorzunehmen, wobei ein Teil des Datenträgers (virtuelles LUN) zu einem Switch/Host repliziert wird und ein anderer Teil zu einem anderen Switch/Host repliziert wird. Solch eine selektive Replikation kann benutzt werden, um eine getrennte Replikation eins-zu-viele oder viele-zu-viele vorzunehmen, was hilft, die mit der Replikation verbundene Last auf die sekundären Knoten zu verteilen. Wenn ein Speicherbereich sehr groß ist und die Veränderungen durchgehend verteilt sind, können die Knoten am primären Ort (z. B. ein Cluster oder ein Vermittlungsnetz) den Adressraum unter sich aufteilen, um die Last zu verteilen, wobei jeder Knoten nur gewisse Speicherorte innerhalb des Quelldatenträgers repliziert. Die zweiten Knoten können die Replikations-Streams (viele-zu-einen) kombinieren oder, wie zuvor beschrieben, eine verteilte viele-zu-viele-Replikation vornehmen.
  • Andere Einsatzmöglichkeiten des Datenträgersiebmechanismus beinhalten den beschränkten Zugriff auf Daten durch Clusterknoten. Mehrdimensionale Siebelemente können erzeugt werden, um anzugeben, welche Knoten in einem Cluster auf welche spezifizierten Speicherorte im Spei cherbereich (Datenträger) zugreifen (lesen/schreiben) dürfen. Der Datenträgersiebelementmechanismus kann auch benutzt werden, um Operationen wie die Komprimierung und die Verschlüsselung zu unterstützen. Die Bits oder Bereiche im Siebelement können anzeigen, ob eine gegebene Region oder ein gegebener Bereich komprimiert oder während einer Operation verschlüsselt werden soll. Ein Siebelement kann auch benutzt werden, um nur selektierte Daten zu sichern. Ein Sicherungskopie-Siebelement kann benutzt werden, um die Bereiche anzuzeigen, die in dem aktuellen Sicherungszyklus gesichert werden sollen.
  • Ein Siebelement kann auch benutzt werden, um nur auf Teile des Speicherbereichs (Datenträger) Lese-/Schreibzugriffe zu ermöglichen. Dieser Siebelementmechanismus kann die niedrigste Datensicherungsebene bereitstellen und kann von Dateisystemen (oder anderen Applikationen) benutzt werden, um kritische Daten von einer oder einem unbeabsichtigten oder bösartigen Änderung/Zugriff zu schützen. Das Siebelement kann auch unter Benutzung eines Änderungsschlüssels oder eines ähnlichen Mechanismus geschützt werden.
  • Siebelemente können benutzt werden, um nur gewisse Speicherorte zu spiegeln, die Daten enthalten, wobei sie nur kritische Daten spiegeln. Darüber hinaus können Siebelemente benutzt werden, um Copy-on-Write-Operationen zu vermeiden. Solch ein Siebelement kann benutzt werden um zu verhindern, dass alte Daten zu einer Momentaufnahme gelangen, wenn die alten Daten nicht kritisch sind oder genügend hilfreich sind, um in einer Momentaufnahme verwaltet zu werden. Darüber hinaus können Siebelemente benutzt werden, um eine Teil-Momentaufnahme oder Bilder zu erzeugen. Siebelemente können benutzt werden, um teilweise Abbilder von Datenträgern zu erzeugen, die nur einen Teil des Original-Adressraums umfassen. Momentaufnahmen können auch diesen Mechanismus benutzen, um nur gewisse Speicherorte des Quelldatenspeicherbereichs (Datenträgers) zu erhalten (unter Benutzung von Copy-on-Write-Operationen).
  • Die vorliegende Erfindung kann für jeden logischen Satz von Daten benutzt werden, solange physikalische Orte auf dem Datenträger für den logischen Satz von Daten bestimmt werden können. Diese physikalischen Orte können auf geänderte Bereiche des Datenträgers abgebildet werden und nur geänderte Teile des logischen Satzes von Daten können synchronisiert werden. Darüber hinaus werden nur die ausgewählten Daten durch die Synchronisierung beeinflusst. Andere Daten auf dem Datenträger sind weiterhin verfügbar und werden nicht durch die Synchronisierung verändert.
  • Die Vorteile der vorliegenden Erfindung sind vielfältig. Die Erfindung erlaubt es einer Anwendung, Operationen auf ausgewählte Speicherorte innerhalb eines Speicherbereichs für seine eigenen Zwecke zu steuern. Bisher wurden Operationen wie eine Replikation intern durch eine Speicherbereichsverwaltungssoftware und/oder Replikationseinrichtungen gesteuert und solche Operationen waren für Software auf der Anwendungsebene wie z. B. Dateisysteme und Datenbankverwaltungssysteme nicht verfügbar.
  • Unter Benutzung der Erfindung kann eine Anwendersoftware Instruktionen bereitstellen, um eine Operation auf einen ausgewählten Satz von Speicherorten innerhalb eines Speicherbereichs vorzunehmen, anstelle auf den gesamten Speicherbereich. Der Satz von einem oder mehreren Speicherorten, der keine kontinuierlichen Adressen haben muss, kann von beliebiger Größe sein, von einer einzigen, nicht aufteilbaren Blockgröße des Datenträgers bis hin zum gesamten Datenbereich. Die auf den Satz von Orten anzuwendende Operation wird von der Anwendung gesteuert, wird aber durch den Speichermanager und seine peripheren Entitäten wie z. B. die Replikationseinrichtung durchgeführt.
  • Zusätzlich kann eine Anwendung auch einen Satz von Instruktionen, die auch Daten in einem ausgewählten Satz von Speicherorten durchzuführen sind, bereitstellen. In diesem Fall kann der Satz an Anweisungen für eine oder mehrere Operationen sein, die der Speicherverwalter nicht durchführen kann. Der Instruktionssatz kann in der Form eines Funktionsrückrufs oder eines ähnlichen Mechanismus sein, wobei der Speicherverwalter die Anwendung aufruft, um die Operation(en) durchzuführen. Der Speicherverwalter kennt oder hat den Satz von Instruktionen nicht (z. B. eine Rückruffunktion) bevor die Anwendung die Rückruffunktion beim Speicherverwalter anmeldet.
  • Andere Ausführungsformen
  • Die in den 3A bis 3G und 4 beschriebene Funktionalität kann durch viele verschiedene Software- und Hardwarekonfigurationen bereitgestellt werden. Der Fachmann wird erkennen, dass die hier beschriebene Funktionalität für die Replikations- und Synchronisierungseinrichtung durch verschiedene Module, Anweisungen und/oder andere Mittel für das Bereitstellen der Funktionalität bereitgestellt werden kann.
  • Die Speicherverwaltungsfunktionalität des Speicherverwalters/Replikators 120A der 1A kann auf verschiedene Weise implementiert werden, z. B. wird in 1A der Speicherverwalter/Replikator 120A zwischen der Anwendung 115A und dem Datenspeicher 140A gezeigt und operiert innerhalb eines Bandes mit Bezug auf den Eingabe-/Ausgabe-Datenstrom zwischen dem Absender der Eingabe-/Ausgabeoperation, hier die Anwendung 115A, und dem Datenspeicher, auf welchen die Eingabe-/Ausgabeoperation angewendet wird, hier der Datenspeicher 140A. Beispiele von kommerziellen Implementierungen eines Inband-Speicherverwalters sind der Veritas Volume Manager und der Cluster Volume Manager von Veritas Software Corporation, Mountain View, Kalifornien, obwohl andere kommerziell verfügbaren Produkte Inband-Speicherverwaltungsfunktionalitäten bereitstellen, und die Erfindung nicht auf diese Ausführungsformen beschränkt ist.
  • Alternativ kann die Speicherverwaltungsfunktionalität als außerhalb des Bandes gelegen implementiert werden, mit Bezug auf den Eingabe-/Ausgabedatenstrom zwischen dem Absender der Eingabe-/Ausgabeoperation und dem Datenspeicher, auf welchen die Eingabe/Ausgabeoperation angewendet wird. Zum Beispiel kann eine Eingabe-/Ausgabeoperation auf den Datenspeicher bezogen sein, der als ein Speicherverwalter implementiert ist, der in einem Speicher-Array eingebettet ist, eine Speicheranwendung, oder ein Schalter auf einem Glasfaserkanal-SAN(Storage Area Network)-Gewebe. Ein Beispiel für ein Außerband-Speichermanager ist der SAN Volume Manager von Veritas Software Corporation, Mountain View, Kalifornien, obwohl andere kommerziell verfügbare Produkte eine Außerband-Speicherverwaltungsfunktionalität bereitstellen und die Erfindung nicht auf diese Ausführungsformen beschränkt ist.
  • Die Speicherverwaltungsfunktionalität kann auch zwischen Inband- und/oder Außerband-Speicherverwaltern über ein Netzwerk oder innerhalb eines Clusters verteilt sein. Verschiedene Speicherverwaltungsaufgaben können zwischen Speicherverwaltern verteilt sein, die auf separaten Knoten ausgeführt werden. Zum Beispiel kann ein Speicherverwalter auf einem Knoten innerhalb eines Netzwerks oder Clusters ausgeführt werden und die Funktionalität bereitstellen, direkt einen Eingabe/Ausgabe-Datenstrom zu einer Speichervorrichtung zu senden, und ein anderer Speicherverwalter auf einem anderen Knoten innerhalb des Netzwerks oder Clusters kann das Abbilden bzw. Mapping (logisch zu physikalisch) eines logischen Datenspeicherbereichs zu einem oder mehreren physikalischen Speichervorrichtungen steuern.
  • Zusätzlich kann ein Modul, das eine gewisse Speicherverwaltungsfunktionalität besitzt, Dienste eines anderen Moduls mit einer anderen Speicherverwaltungsfunktionalität anfordern. Zum Beispiel kann der Speicherverwalter des letzten Absatzes direkt den Eingabe-/Ausgabe-Datenstrom zu einer lokalen Speichervorrichtung senden und den anderen Speicherverwalter auffordern, das Abbilden logisch-zu-physikalisch des logischen Datenspeichers vorzunehmen, bevor das Schreiben auf die lokale physikalische Speichervorrichtung erfolgt.
  • Darüber hinaus kann ein Bestimmungsmodul die physikalischen Orte für die ausgewählten Daten auf dem Datenträger bestimmen und kann ein separates Identifikationsmodul geänderte Bereiche des Datenträgers identifizieren (z. B. unter Benutzung der hier beschriebenen Datenänderungskarten). Ein anderes Bestimmungsmodul kann feststellen, wann die physikalischen Orte und die geänderten Bereiche zueinander korrespondieren. Ein separates Synchronisationsmodul kann auch Daten in Orten für die ausgewählten Daten auf dem primären Datenträger mit Daten in korrespondierenden Orten für die ausgewählten Daten auf einem Momentaufnahmen-Datenträger synchronisieren, in beide Richtungen.
  • Alternativ kann ein einziges Modul benutzt werden um physikalische Orte für die ausgewählten Daten auf den Datenträgern zu bestimmen und um geänderte Bereiche auf den Datenträgern zu identifizieren. Das einzige Modul kann auch feststellen, wann die physikalischen Orte und die geänderten Bereiche zueinander korrespondieren. Das einzige Modul kann auch Daten in Orten für die ausgewählten Daten auf dem primären Datenträger mit Daten in korrespondierenden Orten für die ausgewählten Daten auf einen Momentaufnahmen-Datenträger synchronisieren, in beiden Richtungen. Andere Konfigurationen zum Durchführen derselben Funktionalität sind innerhalb des Schutzumfangs der Erfindung.
  • Die mit Bezug auf die 4 beschriebenen Handlungen können zum Beispiel von einem Computersystem durchgeführt werden, das einen Speicher und einen zur Ausführung von Instruktionen ausgelegten Prozessor besitzt, wie z. B. der primäre Knoten 110A und der sekundäre Knoten 110B der 1; durch einen integrierten Schaltkreis (z. B. ein FPGA (Field Programmable Gate Array) oder ASIC (Application-Specific Integrated Circuit), konfiguriert zur Durchführung dieser Handlungen oder durch eine mechanische Vorrichtung, konfiguriert zum Durchführen solcher Funktionen wie z. B. eine Netzwerkanwendung.
  • Die vorliegende Erfindung ist geeignet, die beschriebenen Vorteile zu erzielen und ebenso andere, die diesen innewohnen. Während die vorliegende Erfindung mit Bezug auf bestimmte Ausführungsformen der Erfindung dargestellt, beschrieben und definiert wurde, sollen solche Bezugnahmen nicht eine Beschränkung der Erfindung implizieren und soll eine solche Beschränkung nicht geschlussfolgert werden. Die Erfindung ist für erhebliche Modifikationen, Änderungen und Äquivalenten in Form und Funktion geeignet, wie es der Fachmann rasch erkennen wird. Die abgebildeten und beschriebenen Ausführungsformen sind nur beispielhaft und erschöpfen nicht den Schutzumfang der Erfindung.
  • Die zuvor beschriebenen Ausführungsformen beinhalten Komponenten, die in anderen Komponenten enthalten sind, wie z. B. Datenträger, die sowohl ein Sieb als auch Daten besitzen. Es sollte verstanden werden, dass solche Architekturen lediglich beispielhaft sind und dass tatsächlich viele andere Architekturen implementiert werden können, die dieselbe Funktionalität erzielen. In einem abstrakten aber noch immer konkretem Sinne ist jede Anordnung von Komponenten, die dieselbe Funktionalität erzielt, effektiv zugehörig, so dass die gewünschte Funktionalität erzielt wird. Daher können zwei beliebige Komponenten, die kombiniert werden um eine bestimmte Funktionalität zu erzielen, als zueinander verknüpft angesehen werden, indem sie die gewünschte Funktionalität erzielen, unabhängig von der Architektur oder den zwischengeschalteten Komponenten. Entsprechend werden zwei derart verknüpfte Komponenten auch als funktionell verbunden oder funktionell gekoppelt angesehen, um die gewünschte Funktionalität bereitzustellen.
  • Die vorangegangene detaillierte Beschreibung hat verschiedene Ausführungsformen der vorliegenden Erfindung unter dem Einsatz von Blockdiagrammen, Flussdiagrammen und Beispielen dargelegt. Es wird vom Fachmann verstanden werden, dass jede Komponente eines Blockdiagramms, Schrift eines Flussdiagramms, Operation und/oder Komponente, die unter Benutzung von Beispielen erläutert wurden, individuell und/oder kollektiv durch eine breite Auswahl von Hardware, Software, Firmware oder Kombinationen derselben implementiert werden kann.
  • Die vorliegende Erfindung wurde in Zusammenhang mit vollständig funktionierenden Computersystemen beschrieben, der Fachmann wird jedoch erkennen, dass die vorliegende Erfindung auch durch ein Programmprodukt in einer Vielzahl von Formen verbreitet werden kann und dass die vorliegende Erfindung genauso gut anwendbar ist, unabhängig vom jeweiligen Typ von signaltragendem Medium, das benutzt wird, um tatsächlich die Verbreitung vorzunehmen. Beispiele von signaltragenden Medien schließen Aufzeichnungsmedien wie z. B. Disketten oder CD-ROMs ein, Medien vom Übertragungstyp wie digitale oder analoge Kommunikationsverbindungen und genauso Medienspeicher- und Verteilungssysteme, die in der Zukunft entwickelt werden.
  • Die oben erläuterten Ausführungsformen können als Softwaremodule implementiert werden, die gewisse Aufgaben ausführen. Die hier diskutierten Softwaremodule können Skripte, Batch-Dateien oder andere ausführbare Dateien beinhalten. Die Softwaremodule können auf einem maschinenlesbaren oder computerlesbaren Speichermedium wie z. B. einem Diskettenlaufwerk abgelegt sein. Speichervorrichtungen zum Speichern von Softwaremodulen gemäß einer Ausführungsform der Erfindung können magnetische Disketten, Festplatten oder optische Disketten wie CD-ROMs oder CD-Rs sein. Eine Speichervorrichtung zum Speichern von Firmware- oder Hardwaremodulen gemäß einer Ausführungsform der Erfindung kann auch einen halbleiterbasierten Speicher umfassen, der permanent, entfernbar oder von der Ferne an ein Mikroprozessor/Speichersystem gekoppelt ist. Daher können die Module innerhalb eines Computersystemspeichers gespeichert werden, um das Computersystem zu konfigurieren, um die Funktionen der Module auszuführen. Andere neue und verschiedene Arten von computerlesbaren Speichermedien können benutzt werden, um die hier erläuterten Module zu speichern.
  • Der Fachmann wird schnell die Schritte implementieren, die erforderlich sind, um die Strukturen und die hier beschriebenen Verfahren bereitzustellen und wird verstehen, dass die Prozessparameter und die Sequenz der Schritte nur beispielhaft angegeben wurde und variiert werden können, um die gewünschte Struktur zu erreichen, und dass Modifikationen innerhalb des Schutzumfangs der Erfindung liegen. Abwandlungen und Modifikationen der hier beschriebenen Ausführungsformen können basierend auf der hier dargelegten Beschreibung vorgenommen werden, ohne vom Umfang der Erfindung abzuweichen. Folglich soll die Erfindung nur durch den Schutzumfang der beigefügten Ansprüche begrenzt werden, unter voller Berücksichtigung der Äquivalente in allen ihren Schattierungen.

Claims (16)

  1. Verfahren, das aufweist: in Antwort auf eine Anfrage, eine Operation auf einem Speicherbereich durchzuführen, das Zugreifen auf ein Siebelement, das mit dem Speicherbereich verknüpft ist, wobei das Siebelement eine Eigenschaft aufweist, die die Operation und Informationen repräsentiert, die einen Satz aus einem oder mehreren Orten innerhalb des Speichergebietes identifizieren, auf denen die Operation durchgeführt werden kann, und Durchführen der Operation nur auf Orten, die in dem Satz aus einem oder mehreren Orten des Speichergebietes enthalten sind, die im Siebelement identifiziert werden.
  2. Verfahren nach Anspruch 1, bei dem der Satz aus einem oder mehreren Orten des Speicherbereiches durch ein Anwendungsprogramm spezifiziert wird.
  3. Verfahren nach Anspruch 1, bei dem die Operation die Replikation ist.
  4. Verfahren nach Anspruch 1, das weiterhin aufweist: Erhalten von Informationen von dem Siebelement, die einen Satz von Dateneinheiten identifizieren, wobei eine Dateneinheit in dem Satz aus Dateneinheiten die Erlaubnis hat, die Operation auf den jeweiligen Daten in dem Satz aus einem oder mehreren Orten des Speicherbereiches durchzuführen.
  5. Verfahren nach Anspruch 1, bei dem der Satz aus einem oder mehreren Orten des Speicherbereiches von einem Anforderer bestimmt wird.
  6. Verfahren nach Anspruch 5, das weiterhin aufweist: Erhalten einer Bestimmung der durchzuführenden Operation.
  7. Verfahren nach Anspruch 5, bei dem der Anforderer die Daten im Speicherbereich verwaltet.
  8. Verfahren nach Anspruch 5, bei dem der Anforderer eine Verwaltungsfunktion eines Satzes von Verwaltungsfunktionen für den Speicherbereich durchführt.
  9. Verfahren nach Anspruch 5, bei dem der Anforderer einen jeweiligen physikalischen Ort im Speicherbereich identifiziert entsprechend jedem Ort in dem Satz aus einem oder mehreren Orten des Speicherbereiches.
  10. Verfahren nach Anspruch 5, bei dem jeder Ort in dem Satz aus einem oder mehreren Orten des Speicherbereiches spezifiziert wird durch einen Startort und eine Anzahl von aneinandergrenzenden Orten beginnend mit dem Startort.
  11. Verfahren nach Anspruch 5, bei dem der Satz aus einem oder mehreren Orten des Speicherbereiches bestimmt wird durch einen Satz von Anzeigern, wobei der Satz aus Anzeigern einen Anzeiger für jeden entsprechenden Ort in dem Speicherbereich aufweist, und jeder Anzeiger des Satzes von Anzeigern anzeigt, ob der jeweilige Ort für den Anzeiger in dem Satz aus ein oder mehreren Orten des Speicherbereiches beinhaltet ist.
  12. Verfahren nach Anspruch 5, das weiterhin aufweist: Durchführen einer zweiten Operation auf Orten, die in einem zweiten Satz aus ein oder mehreren Orten des Speicherbereiches beinhaltet sind, nachdem die Operation auf den Orten in dem Satz aus einem oder mehreren Orten des Speicherbereiches durchgeführt wurde, wobei ein zweites Siebelement eine zweite Eigenschaft aufweist, die zweite Operation und zweite Information darstellt, die den zweiten Satz aus einem oder mehreren Orten des Speicherbereiches identifizieren.
  13. Verfahren nach Anspruch 12, bei dem der zweite Satz aus einem oder mehreren Orten des Speicherbereiches durch den Anforderer bestimmt wird und die Operation und die zweite Operation von dem Anforderer bestimmt werden.
  14. Verfahren nach Anspruch 5, bei dem jede in dem Siebelement identifizierte Operation auf den Orten durchgeführt wird, die in dem Satz aus einem oder mehreren Orten des Speicherbereiches beinhaltet sind, wenn das Siebelement spezifiziert wird.
  15. System, das aufweist: einen Speicherbereich und einen Rechenknoten, der konfiguriert ist, um eine Operation durchzuführen, wobei der Rechenknoten konfiguriert ist, um auf ein Siebelement zuzugreifen, das mit dem Speicherbereich verknüpft ist, und das Siebelement eine Eigenschaft aufweist, die die Operation und Informationen darstellt, die einen Satz aus ein oder mehreren Speicherorten des Speichergebietes identifiziert, auf denen die Operation durchgeführt werden kann.
  16. System nach Anspruch 15, das weiterhin aufweist einen zweiten Rechenknoten, der konfiguriert ist, um Daten zu verwalten, die im Speicherbereich gespeichert sind wobei der zweite Rechenknoten konfiguriert ist, um die Eigenschaft und die Information zu bestimmen.
DE602004008808T 2003-12-19 2004-12-20 Verfahren und vorrichtung zur durchführung von operationen an gewählten daten in einem speicherbereich Active DE602004008808T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/742,128 US20050138306A1 (en) 2003-12-19 2003-12-19 Performance of operations on selected data in a storage area
US742128 2003-12-19
PCT/US2004/042809 WO2005064468A1 (en) 2003-12-19 2004-12-20 Method and apparatus for performing operations on selected data in a storage area

Publications (2)

Publication Number Publication Date
DE602004008808D1 DE602004008808D1 (de) 2007-10-18
DE602004008808T2 true DE602004008808T2 (de) 2008-06-19

Family

ID=34678368

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602004008808T Active DE602004008808T2 (de) 2003-12-19 2004-12-20 Verfahren und vorrichtung zur durchführung von operationen an gewählten daten in einem speicherbereich

Country Status (6)

Country Link
US (1) US20050138306A1 (de)
EP (1) EP1702267B1 (de)
JP (1) JP2007515725A (de)
CN (1) CN100472463C (de)
DE (1) DE602004008808T2 (de)
WO (1) WO2005064468A1 (de)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005048085A2 (en) 2003-11-13 2005-05-26 Commvault Systems, Inc. System and method for performing an image level snapshot and for restoring partial volume data
US9497109B2 (en) * 2005-02-11 2016-11-15 Hewlett Packard Enterprise Development Lp Switching mesh with user-configurable paths
US7467265B1 (en) 2005-06-30 2008-12-16 Symantec Operating Corporation System and method for block conflict resolution within consistency interval marker based replication
US8401997B1 (en) 2005-06-30 2013-03-19 Symantec Operating Corporation System and method for replication using consistency interval markers in a distributed storage environment
US7506003B2 (en) * 2005-07-14 2009-03-17 Microsoft Corporation Moving data from file on storage volume to alternate location to free space
US7689533B1 (en) * 2005-08-29 2010-03-30 Symantec Operating Corporation Method and apparatus for using storage properties in a file system
US8661216B2 (en) 2005-12-19 2014-02-25 Commvault Systems, Inc. Systems and methods for migrating components in a hierarchical storage network
WO2007075587A2 (en) 2005-12-19 2007-07-05 Commvault Systems, Inc. Systems and methods for performing data replication
US7651593B2 (en) 2005-12-19 2010-01-26 Commvault Systems, Inc. Systems and methods for performing data replication
US7606844B2 (en) 2005-12-19 2009-10-20 Commvault Systems, Inc. System and method for performing replication copy storage operations
US20070162475A1 (en) * 2005-12-30 2007-07-12 Intel Corporation Method and apparatus for hardware-based dynamic escape detection in managed run-time environments
US7991965B2 (en) * 2006-02-07 2011-08-02 Intel Corporation Technique for using memory attributes
JP2007241539A (ja) * 2006-03-07 2007-09-20 Hitachi Systems & Services Ltd 半導体フラッシュメモリにおけるデータ管理及び制御システムと半導体フラッシュメモリ収容装置
US9026679B1 (en) * 2006-03-30 2015-05-05 Emc Corporation Methods and apparatus for persisting management information changes
US7613750B2 (en) * 2006-05-29 2009-11-03 Microsoft Corporation Creating frequent application-consistent backups efficiently
US8726242B2 (en) 2006-07-27 2014-05-13 Commvault Systems, Inc. Systems and methods for continuous data replication
US8549236B2 (en) * 2006-12-15 2013-10-01 Siliconsystems, Inc. Storage subsystem with multiple non-volatile memory arrays to protect against data losses
US7610448B2 (en) * 2006-12-27 2009-10-27 Intel Corporation Obscuring memory access patterns
US9471449B2 (en) * 2008-01-03 2016-10-18 Hewlett Packard Enterprise Development Lp Performing mirroring of a logical storage unit
US8204859B2 (en) 2008-12-10 2012-06-19 Commvault Systems, Inc. Systems and methods for managing replicated database data
US9495382B2 (en) 2008-12-10 2016-11-15 Commvault Systems, Inc. Systems and methods for performing discrete data replication
US8386438B2 (en) * 2009-03-19 2013-02-26 Symantec Corporation Method for restoring data from a monolithic backup
JP5459589B2 (ja) * 2009-07-22 2014-04-02 日本電気株式会社 データ複製システム及びデータ処理方法
US8356017B2 (en) * 2009-08-11 2013-01-15 International Business Machines Corporation Replication of deduplicated data
US8135928B2 (en) 2009-10-26 2012-03-13 Symantec Operating Corporation Self-adjusting change tracking for fast resynchronization
US8504517B2 (en) 2010-03-29 2013-08-06 Commvault Systems, Inc. Systems and methods for selective data replication
US8725698B2 (en) 2010-03-30 2014-05-13 Commvault Systems, Inc. Stub file prioritization in a data replication system
US8504515B2 (en) 2010-03-30 2013-08-06 Commvault Systems, Inc. Stubbing systems and methods in a data replication environment
US8489656B2 (en) 2010-05-28 2013-07-16 Commvault Systems, Inc. Systems and methods for performing data replication
AU2011293014B2 (en) * 2010-08-25 2014-08-14 Intel Corporation Method and system for extending data storage system functions
US8725692B1 (en) * 2010-12-16 2014-05-13 Emc Corporation Replication of xcopy command
US9471578B2 (en) 2012-03-07 2016-10-18 Commvault Systems, Inc. Data storage system utilizing proxy device for storage operations
US9298715B2 (en) 2012-03-07 2016-03-29 Commvault Systems, Inc. Data storage system utilizing proxy device for storage operations
US9342537B2 (en) 2012-04-23 2016-05-17 Commvault Systems, Inc. Integrated snapshot interface for a data storage system
US9886346B2 (en) 2013-01-11 2018-02-06 Commvault Systems, Inc. Single snapshot for multiple agents
CN104735119B (zh) * 2013-12-23 2018-05-04 伊姆西公司 用于数据拷贝避免的方法和装置
US9836515B1 (en) * 2013-12-31 2017-12-05 Veritas Technologies Llc Systems and methods for adding active volumes to existing replication configurations
US9495251B2 (en) 2014-01-24 2016-11-15 Commvault Systems, Inc. Snapshot readiness checking and reporting
US9639426B2 (en) 2014-01-24 2017-05-02 Commvault Systems, Inc. Single snapshot for multiple applications
US9632874B2 (en) 2014-01-24 2017-04-25 Commvault Systems, Inc. Database application backup in single snapshot for multiple applications
US9753812B2 (en) 2014-01-24 2017-09-05 Commvault Systems, Inc. Generating mapping information for single snapshot for multiple applications
US9774672B2 (en) 2014-09-03 2017-09-26 Commvault Systems, Inc. Consolidated processing of storage-array commands by a snapshot-control media agent
US10042716B2 (en) 2014-09-03 2018-08-07 Commvault Systems, Inc. Consolidated processing of storage-array commands using a forwarder media agent in conjunction with a snapshot-control media agent
US9648105B2 (en) 2014-11-14 2017-05-09 Commvault Systems, Inc. Unified snapshot storage management, using an enhanced storage manager and enhanced media agents
US9448731B2 (en) 2014-11-14 2016-09-20 Commvault Systems, Inc. Unified snapshot storage management
US11892913B2 (en) * 2015-01-05 2024-02-06 Rubrik, Inc. Data lineage based multi-data store recovery
DE102015211320A1 (de) * 2015-06-19 2016-12-22 Robert Bosch Gmbh Speichereinheit zum automatischen Multiplizieren des Inhalts einer Speicherstelle, und Datennetz mit Speichereinheit
US10503753B2 (en) 2016-03-10 2019-12-10 Commvault Systems, Inc. Snapshot replication operations based on incremental block change tracking
CN106657411A (zh) * 2017-02-28 2017-05-10 北京华云网际科技有限公司 分布式系统中卷的访问方法和装置
US10754557B2 (en) * 2017-09-26 2020-08-25 Seagate Technology Llc Data storage system with asynchronous data replication
US10416923B1 (en) * 2017-09-29 2019-09-17 EMC IP Holding Company LLC Fast backup solution for cluster shared volumes shared across a cluster of nodes using extent sets as parallel save streams
US11086901B2 (en) * 2018-01-31 2021-08-10 EMC IP Holding Company LLC Method and system for efficient data replication in big data environment
US10509675B2 (en) * 2018-02-02 2019-12-17 EMC IP Holding Company LLC Dynamic allocation of worker nodes for distributed replication
US10761765B2 (en) * 2018-02-02 2020-09-01 EMC IP Holding Company LLC Distributed object replication architecture
US10732885B2 (en) 2018-02-14 2020-08-04 Commvault Systems, Inc. Block-level live browsing and private writable snapshots using an ISCSI server
US11042318B2 (en) 2019-07-29 2021-06-22 Commvault Systems, Inc. Block-level data replication
US11809285B2 (en) 2022-02-09 2023-11-07 Commvault Systems, Inc. Protecting a management database of a data storage management system to meet a recovery point objective (RPO)

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5204954A (en) * 1987-11-18 1993-04-20 International Business Machines Corporation Remote storage management mechanism and method
US5659747A (en) * 1993-04-22 1997-08-19 Microsoft Corporation Multiple level undo/redo mechanism
US5652864A (en) * 1994-09-23 1997-07-29 Ibm Concurrent storage allocations or returns without need to lock free storage chain
US5659614A (en) * 1994-11-28 1997-08-19 Bailey, Iii; John E. Method and system for creating and storing a backup copy of file data stored on a computer
US5794252A (en) * 1995-01-24 1998-08-11 Tandem Computers, Inc. Remote duplicate database facility featuring safe master audit trail (safeMAT) checkpointing
EP1038368B1 (de) * 1997-11-13 2013-07-31 Intellectual Ventures I LLC System zur übertragung von dateien
US6330572B1 (en) * 1998-07-15 2001-12-11 Imation Corp. Hierarchical data storage management
US6564219B1 (en) * 1998-11-19 2003-05-13 Emc Corporation Method and apparatus for obtaining an identifier for a logical unit of data in a database
JP2000242437A (ja) * 1998-12-24 2000-09-08 Hitachi Ltd データのコピーを作成する記憶装置システム
US6654830B1 (en) * 1999-03-25 2003-11-25 Dell Products L.P. Method and system for managing data migration for a storage system
US6647514B1 (en) * 2000-03-23 2003-11-11 Hewlett-Packard Development Company, L.P. Host I/O performance and availability of a storage array during rebuild by prioritizing I/O request
JP2001318833A (ja) * 2000-05-09 2001-11-16 Hitachi Ltd ボリューム複製機能を有する記憶装置サブシステム、および、それを用いたコンピュータシステム
US6804755B2 (en) * 2000-06-19 2004-10-12 Storage Technology Corporation Apparatus and method for performing an instant copy of data based on a dynamically changeable virtual mapping scheme
US6665815B1 (en) * 2000-06-22 2003-12-16 Hewlett-Packard Development Company, L.P. Physical incremental backup using snapshots
US6839721B2 (en) * 2001-01-12 2005-01-04 Hewlett-Packard Development Company, L.P. Integration of a database into file management software for protecting, tracking, and retrieving data
US6681339B2 (en) * 2001-01-16 2004-01-20 International Business Machines Corporation System and method for efficient failover/failback techniques for fault-tolerant data storage system
JP2003099306A (ja) * 2001-09-25 2003-04-04 Hitachi Ltd 計算機システムおよび計算機システムにおけるバックアップ方法
US6823436B2 (en) * 2001-10-02 2004-11-23 International Business Machines Corporation System for conserving metadata about data snapshots
DE60334752D1 (de) * 2002-03-19 2010-12-16 Network Appliance Inc System und Verfahren zur Bestimmung und Übertragung von Änderungen in Schnappschüssen
US20030208511A1 (en) * 2002-05-02 2003-11-06 Earl Leroy D. Database replication system
JP4250914B2 (ja) * 2002-06-03 2009-04-08 株式会社日立製作所 記憶装置システム
US6907505B2 (en) * 2002-07-31 2005-06-14 Hewlett-Packard Development Company, L.P. Immediately available, statically allocated, full-logical-unit copy with a transient, snapshot-copy-like intermediate stage
US7664771B2 (en) * 2002-10-16 2010-02-16 Microsoft Corporation Optimizing defragmentation operations in a differential snapshotter

Also Published As

Publication number Publication date
EP1702267A1 (de) 2006-09-20
CN100472463C (zh) 2009-03-25
JP2007515725A (ja) 2007-06-14
US20050138306A1 (en) 2005-06-23
CN1894672A (zh) 2007-01-10
WO2005064468A1 (en) 2005-07-14
EP1702267B1 (de) 2007-09-05
DE602004008808D1 (de) 2007-10-18

Similar Documents

Publication Publication Date Title
DE602004008808T2 (de) Verfahren und vorrichtung zur durchführung von operationen an gewählten daten in einem speicherbereich
US11740974B2 (en) Restoring a database using a fully hydrated backup
DE60213867T2 (de) Vorrichtung zur verwaltung von datenreplikation
DE102013215535B4 (de) Sicherung oder wiederherstellung von daten mit hilfe eines hauptspeichers und nichtflüchtiger speichermedien
DE112011100534B4 (de) Mehrstufiger Sicherungsprozess
DE69724834T2 (de) System für hochverfügbare datenspeicherung mit allgemein-adressiertem speicher
DE102004064069B4 (de) Plattenarrayvorrichtung
DE602005001041T2 (de) Speicherauszugssystem
DE60025749T2 (de) Dateisystemabbildübertragung zwischen ungleichen dateisystemen
JP4336129B2 (ja) 複数のスナップショットを管理するシステム及び方法
DE102013204972B4 (de) Hybride Sicherung und Wiederherstellung eines sehr grossen Dateisystems unter Verwendung von Metadaten-Abbildsicherung und herkömmlicher Sicherung
DE602004002216T2 (de) Verfahren, system und programm für eine inkrementelle virtuelle kopie
DE112011100112B4 (de) Pufferspeicher-platte in blitzkopie-kaskade
DE112018004178T5 (de) Mehrstufige speicherung in einem verteilten dateisystem
DE102020120553A1 (de) Virtuell persistente volumes für containerisierte anwendungen
DE10393771T5 (de) Schnelle Datensicherungsspeicherung und schnelle Datenwiederherstellung (FBSRD)
DE19924822A1 (de) Verfahren und Vorrichtung für Katastrophen-Behebung von Dateisystemen
DE19924900A1 (de) Verfahren und Vorrichtung für Katastrophen-Behebung von Dateisystemen
DE102016103769A1 (de) Inkrementelle Replikation eines Quellen-Datasets
DE112008002947T5 (de) System zum automatischen Abschatten verschlüsselter Daten und von Dateiverzeichnisstrukturen
DE60313468T2 (de) Speicherdienste und -systeme
DE102009031923A1 (de) Verfahren zum Verwalten von Datenobjekten
JP2005538471A (ja) 一次データ記憶をローカルリモートデータ保護と統合するための方法および装置
DE602004007925T2 (de) Verwalten einer beziehung zwischen einem zielvolumen und einem quellenvolumen
DE102005012358A1 (de) Datenschutz unter Verwendung von Daten, die in Schnappschüsse verteilt sind

Legal Events

Date Code Title Description
8327 Change in the person/name/address of the patent owner

Owner name: SYMANTEC OPERATING CORP., CUPERTINO, CALIF., US

8364 No opposition during term of opposition