-
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.