-
Diese
Erfindung bezieht sich auf das Verschieben von Daten zwischen Speichervorrichtungen
in einem Computersystem, und insbesondere auf das Minimalisieren
der Zeit, während
der die Daten für
Benutzer nicht verfügbar
sind.
-
Technisches Gebiet der Erfindung
-
Organisationen
und Benutzer haben ein stetig steigendes Bedürfnis, Daten auf Computernetzwerken
zu speichern. Häufig
erweitern Systemadministratoren bestehende Systeme mit zusätzlichen Geräten, die
in der Lage sind, die[se] Anforderungen zu erfüllen. Um einen Vorteil aus
dem Anwachsen des Netzwerks zu ziehen und um allgemein die Verteilung
von Datenspeicherung zu verbessern, benötigen Systemadministratoren
die [Leistungs-]Fähigkeit,
Daten zwischen Speichervorrichtungen zu verschieben.
-
Wenn
Daten verschoben werden, müssen Systemadministratoren
derzeit den Benutzern den Zugang zu jeglichen der gerade verschobenen
Daten verweigern. Das Verweigern von Daten für irgendeine Zeitdauer ist
allgemein nicht wünschenswert.
Und für
große
Netzwerke, die riesige Mengen enthalten von beispielsweise projekt-
bzw. missionskritischen Daten, die für den Betrieb einer Organisation
vital sind, kann das Verweigern des Zugangs zu Daten für Benutzer
zu nachteiligen Konsequenzen führen.
-
Es
existieren einige Techniken, um dieses Problem zu mildern. Beispielsweise
disponieren Systemadministratoren allgemein Vorgänge, die den Zugang an Benutzer
verweigern, während
Zeitperioden, wenn Netzwerke die ge ringste Menge von [Daten] verkehr
erfahren. Weil die Nachfrage auf Netzwerken zunimmt, wird diese
Technik problematischer. Beispielsweise können Benutzer aus Gründen, die
für ihre
Operationen spezifisch sind, einen ununterbrochenen Zugang von Daten
für einen
Host anfordern. Und weil die Menge von Daten auf Netzwerken anwächst, nimmt
die zum Verarbeiten der Daten erforderliche Zeit zu.
-
Es
besteht ein Bedarf daran, Benutzern Zugang zu Dateien im Prozess
des Verschobenwerdens zu verleihen, insbesondere in einer Weise,
die sowohl zweckdienlich als auch effizient ist. Eine Lösung, die
diese Anforderung erfüllt,
würde vorzugsweise
diese Probleme und andere, dem Stand der Technik zugeordnete Probleme
lösen.
-
EP 0 921 466 offenbart ein
Sicherungskopie-Programm für
ein Computersystem mit einer Festplatte, die eine Aufzeichnung pflegt
von Veränderungen
in den Daten in einer als Sicherungskopie gespeicherten Datei. Während der
Sicherungskopie (Englisch: Backup) werden sowohl die ursprünglichen
als auch die aktualisierten Dateibereiche oder Aufzeichnungen abgespeichert,
und das Datensicherungsprogramm liest die ursprünglichen Daten, während andere
Anwendungen die aktualisierten Daten lesen. Ein Zugang zu der Datei
durch das Datensicherungsprogramm wird durch Manipulieren der Systemdateitabelle
(Englisch: System File Table) sichergestellt.
-
Cordrey
V. et al., „Moving
Large Lile Systems on-line, including Existing HSM Filesystems" (übersetzt: „Verschieben
von großen
Dateisystemen online, einschließlich
bestehender HSM Dateisysteme"), 13th
Systems Administration Conference (LISA '99) USENIX ASSOC BERKERLY, CA, USA,
1999, Seiten 187–196,
Berkeley, Kalifornien, USA schlagen einen Ansatz zum Verschieben
von Dateisystemen vor, der es einem System erlaubt, online und zugreifbar
zu bleiben.
-
Zusammenfassung der Erfindung
-
Die
Erfindung ist ein Verfahren und eine Vorrichtung zum Verschieben
von Daten von einem Quellmedium zu einem Zielmedium, das bzw. die
die Zeit minimalisieren, während
der Dateien für
Benutzer nicht verfügbar
sind, gemäß den folgenden
Patentansprüchen.
Ein Systemadministrator gibt einen Befehl zum Verschieben von Dateien
von einem Quellmedium zu einem Zielmedium. Wenn das System Dateien
von dem Quellmedium zu dem Zielmedium verschiebt, identifiziert
das System Dateien, die nicht verschoben werden konnten. Das System
identifiziert auch Dateien, die nachdem sie verschoben worden sind
verändert
(einschließlich
erzeugt oder gelöscht)
worden sind, so dass die Änderungen
auf dem Zielmedium reproduziert werden können.
-
Das
obige und andere Merkmale, Aufgaben und Vorteile der Erfindung werden
aus der folgenden, mit zehn Verweisen auf die beigefügten Zeichnungen einhergehenden,
ausführlichen
Beschreibung leicht verständlich.
-
Kurze Beschreibung der Zeichnungen
-
1 ist
ein Blockdiagramm eines Computersystems, das zum Verschieben von
Dateien von einem Quellmedium zu einem Zielmedium gemäß einer
Ausführungsform
der Erfindung ausgebildet ist.
-
2 zeigt
einen Medienmanager der 1, der zum Einholen einer Liste
von Dateien, die während
eines Intervalls von Interesse verändert werden, ausgebildet ist.
-
3 zeigt
ein auf dem Quellmedium der 1 enthaltenes
Dateisystem vor dem Beginn eines Aufteilungsvorgangs.
-
4 zeigt
ein auf dem Zielmedium der 1 nach einem
Teilungsvorgang enthaltenes Dateisystem nach einer Ausführungsform
der Erfindung.
-
5 zeigt
eine Ausführungsform
von zwei Listen von Dateien, die während eines Teilungs- oder eines
Verschiebevorgangs in dem Computer der 1 benutzt
werden.
-
6 zeigt
ein Dateisystem, das auf dem Zielmedium der 1 während eines
Verschiebe- oder Teilungsvorgangs enthalten ist.
-
7 zeigt
ein auf dem Quellmedium der 1 enthaltenes
Dateisystem nach einem Teilungsvorgang.
-
8 zeigt
ein auf dem Quellmedium der 8 enthaltenes
Dateisystem vor dem Beginn eines Verschiebevorgangs.
-
9 zeigt
ein auf dem Zielmedium der 1 enthaltenes
Dateisystem nach dem Beginn der Verschiebeoperation der 8.
-
10A–10B zeigen ein Ablaufdiagramm der Vorgänge zum
Kopieren einer Menge von Dateien vom Quellmedium zum Zielmedium
der 1, während
Benutzern der Zugriff auf Dateien auf das Quellmedium zugelassen
ist.
-
Ausführliche
Beschreibung der bevorzugten Ausführungsform
-
1 zeigt
einen Computer, der betrieben wird, um Dateien von einem Quellmedium
zu einem Zielmedium nach einer Ausführungsform der Erfindung zu
verschieben. In 1 funktioniert ein Computer 105 als
ein Server, der es anderen ermöglicht, auf
Daten zuzugreifen. Jedoch wird ein Fachmann auf dem technischen
Gebiet erkennen, dass der Computer 105 nicht auf einen
Server beschränkt
werden muss, sondern ein jegliches aus einer Vielfalt von Geräten, die
in der Lage sind, anderen den Zugriff auf Daten zu ermöglichen,
sein kann.
-
Der
Computer 105 enthält
ein Dateisystem 110, das die Speicherung von Daten auf
dem Quellmedium 115 verwaltet. In ähnlicher Weise verwaltet das
Dateisystem 190 die Speicherung von Daten auf dem Zielmedium 120.
Die Medien sind auf Speichermedien, wie etwa dem Quellmedium 125 und
dem Zielmedium 130 gespeichert, und können falls erforderlich auch
mehrere physikalische Speichervorrichtungen umfassen (beispielsweise
ein Speicherbereichsnetzwerk (SAN, Englisch: Storage Area Network).
Sowohl das Quellmedium 125 als auch das Zielmedium 130 können je
nach Erfordernis physikalisch innerhalb der Box sein, die der Computer 105 ist,
oder sie können
von dem Computer 105 abgesetzt sein. Auch können sowohl
das Quellmedium 115 als auch das Zielmedium 120 je
nach Erfordernis physikalisch innerhalb der Box sein, die der Computer 105 ist,
oder sie können
von dem Computer abgesetzt, und auch in verschiedenen Computern
sein. Typischerweise sind das Quellmedium 115 und das Quellmedium 125 in
dem Computer 105 enthalten, jedoch wird ein Fachmann auf
dem technischen Gebiet erkennen, dass das Quellmedium 125 und
das Quellmedium 115 in einem vom Computer 105 verschiedenen
Computer sein können.
-
In
der Ausführungsform
mit dem Server interagiert ein Client, wie etwa der Client 135,
mit dem Computer 105. Der Client 135 wird als
ein Desktopcomputersystem gezeigt, einschließlich eines Computers 140,
eines Anzeigegeräts 145,
einer Tastatur 150 und einer Maus 155, jedoch
wird ein Fachmann auf dem technischen Gebiet erkennen, dass der
Client 135 andere Formen annehmen kann. Beispielsweise
kann der Client unter anderem eine unin telligente Datenstation,
eine Internetanwendung oder ein in der Hand haltbares Computergerät sein,
mit den entsprechenden Variationen in der Konfiguration. 1 zeigt
weder zusätzliche
Komponenten, die ein Teil des Clients 135 sein könnten, wie
etwa einen Drucker oder andere Eingabe-/Ausgabegeräte, noch zeigt 1 die
typischen Komponenten, die ein Client umfasst, wie etwa eine zentrale
Verarbeitungseinheit, einen Speicher, eine lokale Speichervorrichtung
usw.
-
Ein
Systemadministrator kann einen Systemadministrator-Computer 160 benutzen,
um mit dem Computer 105 zu interagieren. Wie bei dem Client 135 kann
der Systemadministrator-Computer 160 jegliche Form eines
Computers sein und ist nicht begrenzt auf das Benutzen einer bestimmten
Ausführungsform
eines Computers. Typischerweise interagieren der Client 135 und
der Systemadministrator-Computer 160 mit
dem Computer 105 über
ein Netzwerk, wie etwas dem Netzwerk 165. Das Netzwerk 165 kann
eine Vielfalt von Netzwerken sein, einschließlich u. a. einem Lokalnetzwerk
(LAN, Englisch: Local Area Network), einem Fernbereichsnetzwerk
(WAN, Englisch: Wide Area Network), ein globales Netzwerk (wie etwa
das Internet) und ein drahtloses Netzwerk (beispielsweise unter
Benutzung von Bluetooth oder einem beliebigen nach den IEEE 802.11
Standards). Ein Fachmann auf dem technischen Gebiet wird erkennen,
dass der Client 135 und der Systemadministrator-Computer 160 eine
direkte Verbindung mit dem Computer 105 aufweisen können, ohne
ein Netzwerk zu durchqueren. Der Systemadministrator-Computer 160 kann
auch mit dem Computer 105 direkt interagieren, ohne irgendeine Art
zwischengeschalteten Computer oder Netzwerk zu benutzen.
-
Auch
ist eine Medienspeicherzellendatenbank (VLDB, Englisch: Volume Location
DataBase) 185 mit dem Netzwerk 160 verbunden.
VLDB 185 verknüpft
Medien- bzw. Volumenamen mit einem globalen eindeutigen Bezeichner
(GUID, Englisch: Globally Unique Identifier) und der physikalischen
Position des Mediums. Benutzeranfragen zum Zugreifen auf bestimmte
Medien werden bearbeitet, indem auf die VLDB 185 verwiesen
wird, um den physikalischen Ort des angefragten Mediums zu klären.
-
Der
Systemadministrator-Computer 160 benutzt die Schnittstelle 170,
um an den Medienmanager 175 im Computer 105 angekoppelt
zu sein. Die Schnittstelle 170 ist zum Übersetzen von Nachrichten zwischen
dem Systemadministrator-Computer 160 und dem Medienmanager 175 verantwortlich. Die
Schnittstelle 170 verarbeitet zwei Nachrichten von Interesse
von dem Systemadministrator-Computer 160:
Medienverschiebung und Medienteilung. Jede dieser Aktionen wird
wiederum unten beschrieben.
-
Wenn
der Systemadministrator-Computer 160 einen Medienverschiebe-Befehl
ausgibt und das Quell- und Zielmedium angibt, überträgt die Schnittstelle 170 den
Befehl an den Medienmanager 175. Der Medienmanager 175 verschiebt
alle auf dem Quellmedium enthaltenen Daten, wie etwa das Quellmedium 115,
zu einem Zielmedium, wie etwa das Zielmedium 120. Typischerweise
ist das Zielmedium 120 auf einem abgesetzten Computer enthalten,
wie etwa dem Computer 180, der als ein Server funktioniert,
der es anderen ermöglicht,
auf Daten zuzugreifen. Jedoch wird ein Fachmann auf dem technischen Gebiet
erkennen, dass der Computer 180 nicht auf einen Server
begrenzt sein muss, sondern jegliches aus einer Vielfalt von Geräten sein
kann, die es anderen ermöglicht,
auf Daten zuzugreifen. Der Medienmanager 175 aktualisiert
die VLDB 185 mit dem [Speicher-]Ort des Zielmediums. Das
Aktualisieren der VLDB 185 hat die Wirkung, dass Benutzeranfragen
nach Da teien, die vorher von dem Quellmedium geholt worden sind,
an das Zielmedium weitergeleitet werden.
-
Wenn
der Systemadministrator-Computer 160 einen Medienteilungsbefehl
herausgibt und ein Quell- und ein Zielmedium spezifiziert, kann
der Systemadministrator-Computer 160 ein Verzeichnis von zu
dem Zielmedium 120 zu verschiebenden Quellmedien 115 enthalten.
Die Schnittstelle überträgt die Befehle
des Systemadministrator-Computers 160 an den Medienmanager 175.
Der Medienmanager 175 verschiebt das auf dem Quellmedium 115 enthaltene Verzeichnis
von Dateien zu dem Zielmedium 120, und fügt einen
Knotenpunkt (Englisch: Junction) in das Quellmedium 115 ein.
Ein Knotenpunkt wirkt wie ein Anschlusspunkt bzw. ein „Link" zwischen Medien, der
bewirkt, dass das Zielmedium 120 als ein Unterverzeichnis
auf dem Quellmedium 115 erscheint. Der Knotenpunkt speichert
die GUID des Zielmediums, so dass Anforderungen nach zu dem Zielmedium 120 geteilten
Dateien erfüllt
werden können,
was den Clients den Eindruck vermittelt, dass sich auf dem Quellmedium 115 nichts
verändert
hat.
-
Während des
Teilungs- oder Verschiebevorgangs können Clientcomputer, wie der
Client 135, auf Dateien auf dem Quellmedium 115 zugreifen.
Clients sind in der Lage, alle normalen Aktivitäten eines Dateisystems auszuführen, einschließlich, jedoch nicht
begrenzt auf das Erzeugen, Löschen,
Umbenennen und Verändern
von Dateien. Das Aufbauen einer Vorrichtung, die es einem Systemadministrator erlaubt,
Daten zu verschieben, während
sie gleichzeitig Benutzern erlaubt, auf die gleichen Daten zuzugreifen,
weist inhärente
Herausforderungen auf. Einige Dateien können geöffnet sein zum Beschreiben durch
Benutzer, und infolge dessen nicht in der Lage, dass man darauf
zugreifen kann. Weil Benutzer in der Lage sind, die Dateisystemdaten
zu verändern, nachdem
eine Datei verschoben worden ist, ist es auch erforderlich, dass
diese Veränderungen
mitgezeichnet werden, um sicherzustellen, dass sie auf dem Zielmedium
genau widergespiegelt werden. Der Medienmanager erhält eine
Liste von aufgezeichneten Dateien, so dass das Zielmedium mit den
veränderten
Dateien aktualisiert werden kann.
-
2 zeigt
den Verzeichnis- bzw. Medienmanager 175 nach einer Ausführungsform
der Erfindung, der dazu ausgebildet ist, eine Liste von Dateien,
die während
eines Zeitintervalls von Interesse geändert worden sind, einzuholen.
Die US Patentanmeldung Seriennr. 10/283,960, die am 29. Oktober 2002
eingereicht worden und derzeit anhängig ist, und die hierin durch
Verweis mit aufgenommen wird, beschreibt ein System und ein Verfahren
zum Verwalten bzw. Managen von Ereignissen. Wenn der Client 135 mit
von dem Dateisystem 110 des Computers 105 verwalteten
Dateien interagiert, [dann] erzeugen diese Interaktionen Ereignisse.
Wenn beispielsweise der Client 135 eine Datei auf dem Dateisystem 110 abspeichert,
dann ist der Vorgang des Abspeicherns der Datei ein Ereignis. Andere übliche Arten
von durch den Client veranlassten Ereignissen von Interesse enthalten Änderungen
entweder an den Daten oder den Metadaten von Dateien, Löschungen
von Dateien und Umbenennungen von Dateien. Andere Ereignisse können ohne
Einbindung eines bestimmten Clients auftreten. Beispielsweise kann
ein planmäßiges Archivieren
von Dateien im Dateisystem 110 die Metadaten der Dateien
verändern,
wodurch Ereignisse veranlasst werden. Das Dateisystem 110 leitet
diese Ereignisse weiter an den Ereignislistenmanager 205,
der die Ereignisse in einem Ereignisspeicher 210 abspeichert.
Der Ereignislistenmanager 205 ist verantwortlich für das Abspeichern
von Ereignissen, wenn diese von dem Dateisystem 110 erzeugt
werden, und für
das Antworten auf Computerprozesse, die daran interessiert sind,
Ereignislisten zu emp fangen. Der Medienmanager 175 definiert
ein Intervall von Interesse mit dem Ereignislistenmanager 205 und
empfängt
eine Liste von Dateien, die während
des Intervalls von Interesse geändert
wurden. Der Medienmanager 175 benutzt die von dem Ereignislistenmanager 205 empfangene
Liste, um Änderungen,
die in dem Dateisystem 110 auftreten, an das Dateisystem 190 zu übertragen.
In 2 ist das Dateisystem 190 im Computer 180 gezeigt,
jedoch wird ein Fachmann auf dem technischen Gebiet erkennen, dass
das Dateisystem 190 (und das in 2 nicht
gezeigte Zielspeichermedium 130) Bestandteil des Computers 105 sein
können.
-
In
einer Ausführungsform
benutzt der Medienmanager 175 Lese- und Schreib-Befehle
des Dateisystems (typischerweise in einer erweiterbaren Auszeichnungssprache
(Extensible Markup Language, XML), um mit dem Ereignislistenmanager 205 zu kommunizieren.
In einer zweiten Ausführungsform sendet
der Dateimanager einen XML [Daten]strom gemäß eines einfache Objektzugangsprotokolls (SOAP,
Englisch: Simple Object Access Protocol), um mit dem Ereignislistenmanager
zu kommunizieren. In beiden Fällen
sendet der Medienmanager 175 eine Nachricht an den Ereignislistenmanager 205, der
den Beginn einer Epoche deklariert und der anfordert, dass Ereignisse,
die Dateiveränderungen miteinbeziehen,
wie etwa Dateilöschen,
Umbenennen und Erzeugen, mit der Epoche verknüpft werden können. Bevor
die Liste der veränderten
Dateien eingeholt werden kann, wird die aktive Epoche geschlossen.
Der Medienmanager 175 schließt die aktive Epoche mit dem
Ereignislistenmanager 205, indem eine Nachricht gesendet
wird, die das Ende der Epoche deklariert, oder eine Nachricht, die
eine neue Epoche startet. Wenn die Epoche einmal geschlossen wird,
sendet der Medienmanager 175 eine Nachricht an den Ereignislistenmanager 205,
der die Liste der geänderten
Dateien anfordert. In Antwort darauf sendet der Ereignislistenmanager 205 eine
Liste von Dateien, die mit der Epoche verknüpft waren, an den Medienmanager 175.
Eine weitere Beschreibung des Verfahrens zum Erhalten einer Liste
modifizierter Dateien aus dem Ereignislistenmanager 205 wird
unten beschrieben.
-
Obwohl 2 den
Ereignislistenmanager 205 als Teil des Computers 105 zeigt,
wird ein Fachmann auf dem technischen Gebiet erkennen, dass der
Ereignislistenmanager 205 von dem Computer 105 abgesetzt
sein kann. Mit anderen Worten kann der Ereignislistenmanager 205 auf
einem von dem Computer 105 verschiedenen Computer betrieben werden,
und interagiert mit dem Computer 105 entweder über eine
direkte Datenverbindung oder über ein
Netzwerk 165.
-
3 zeigt
eine in dem Zielmedium 115 enthaltene Verzeichnisstruktur 305 vor
dem Beginn eines Teilungsvorgangs. Dem Teilungsvorgang unterliegenden
Elemente im Quellmedium 115 sind im Verzeichnis 315 enthalten.
Alle in dem Verzeichnis 315 enthaltenen Dateien, die Datei
Datei2.txt 320, sollen vom Quellmedium 115 der 3 zum
Zielmedium 120 der 4 verschoben
werden. Die Inhalte der Verzeichnisstruktur 410 auf dem
Zielmedium 120, nachdem der Teilungsvorgang abgeschlossen ist,
ist in 4 veranschaulicht. In dieser Ausführungsform
sind die Struktur und die Hierarchie der Verzeichnisse 315 (3)
auf dem Zielmedium 120 (4) die gleichen
wie die auf dem Quellmedium 115 (3).
-
Der
Medienmanager durchsucht die Listen des Verzeichnisses 315 (3),
die die Versuche, eine jeweilige Datei von dem Quellmedium 115 (3)
zu einem Zielmedium 120 (4) zu kopieren
versucht. Während
des Durchsuchens des Satzes der dem Teilungsvorgang unterliegenden
Dateien führt
der Medienmanager zwei Listen, wie weiter unten mit Verweis auf 5 besprochen
wird. Ein Fachmann auf dem technischen Gebiet wird erkennen, dass
die zwei Listen jede beliebige aus einer Anzahl von verschiedenen
Datenstrukturen sind, die in der Lage zum Halten bzw. Speichern
von Daten sind, benutzen kann. Die erste Liste bezeichnet Dateien, die
nicht in der Lage waren, zum Zielmedium kopiert zu werden (dies
kann beispielsweise vorkommen, wenn die Datei zum Schreiben durch
einen Client geöffnet
ist). Wenn der Medienmanager das Verzeichnis 315 (3)
durchsucht, wird jede Datei, die nicht kopiert werden kann, zu der
ersten Liste von Dateien hinzugefügt. Die zweite Liste enthält Dateien,
die nach dem ursprünglichen
Versuch des Systems, diese zu kopieren, verändert worden sind. In einer
unten näher
beschriebenen Ausführungsform
holt der Dateimanager die zweite Liste von Dateien aus dem Ereignislistenmanager.
-
5 zeigt
eine mögliche
Ausführungsform einer
ersten Liste 505 und einer zweiten Liste 510 von
Dateien, nach dem der Medienmanager eine Durchsuchung des dem Teilungsvorgang
unterliegenden Verzeichnisses 315 (3) abgeschlossen hat.
In 5 erscheint Datei2.txt 320 in der ersten Liste 505 von
Dateien, weil der Medienmanager nicht in der Lage war, die Datei
Datei2.txt 320 zu dem Zielmedium 120 zu kopieren.
Zusätzliche
Durchquerungen oder andere Prozeduren, wie unten beschrieben, sind
erforderlich, um die Datei Datei7.txt 525 in der zweiten
Liste 510 von Dateien erscheinen zu lassen. Der Medienmanager
war in der Lage, die beiden Dateien während der Durchsuchung in das
Zielmedium 120 zu kopieren. Jedoch wurden sowohl Datei3.txt 520 als
auch Datei7.txt 525 verändert,
nach dem der Medienmanager diese kopierte. Die an der Datei3.txt 520 und
der Datei7.txt 525 angebrachten Veränderungen werden auf dem Zielmedium 120 nicht
genau wiedergegeben, und es sind zusätzliche Durchsuchungen oder
andere Prozeduren, wie unten be schrieben, erforderlich, um den Teilungsvorgang
abzuschließen.
-
Die
Datei Datei6.txt 325 (3) erscheint weder
in der ersten Liste 505 noch in der zweiten Liste 510 der 5.
Sie erscheint nicht in der ersten Liste 505, weil der Medienmanager
in der Lage war, sie während
der Durchsuchung zum Zielmedium 120 zu kopieren. Datei6.txt 325 erscheint
nicht der zweiten Liste, weil keine Veränderungen aufgetreten sind, nachdem
sie zum Zielmedium kopiert worden ist. Datei6.txt 325 wurde
ohne Erfordernis nach jeglichen weiteren Prozeduren verschoben.
-
6 veranschaulicht
das Verzeichnis 605 des Zielmediums 120 für die gegebenen
Inhalte der ersten und zweiten Liste von Dateien in 5.
In 6 erscheint Datei2.txt nicht in der Verzeichnisstruktur 410 des
Zielmediums 120, weil die Datei noch nicht kopiert worden
ist. In 3 erscheinen Datei3.txt 520 und
Datei7.txt 525 in dem Zielmedium, weil beide Dateien aus
dem Quellmedium kopiert wurden. Weil jedoch sowohl Datei3.txt 520 als
auch Datei7.txt 525 verändert
wurden, nachdem sie kopiert worden sind, sind die Versionen dieser
auf dem Zielmedium 120 der 6 gespeicherten
Dateien nicht auf dem aktuellen Stand.
-
7 zeigt
das Quellmedium 115 und das Dateisystem 305 nach
dem der Teilungsvorgang abgeschlossen ist. Der Medienmanager platziert
einen Knotenpunkt (Englisch: Junction) 710 in das Quellmedium 115 an
der Wurzel des Verzeichnisses, das aufgeteilt wurde. Wie oben mit
Verweis auf 1 besprochen verbindet ein Kontenpunkt
ein Medium (Englisch: Volume) mit einem zweiten Medium. Die Verbindungsstelle 710 löst Benutzeranfragen
auf für Dateien,
die „geteilt" wurden, indem die
GUID des Zielmediums 120 gespeichert wird, wodurch es dem Computer 105 ermöglicht wird,
den physikalischen [Speicher]Ort der angeforderten Dateien einzuholen. Die
Benutzung des Knotenpunkts 710 verleiht den Clients den
Eindruck, dass sich in dem Quellmedium 115 nichts verändert hat,
obwohl ein Teil der Dateien von dem Quellmedium 115 zu
dem Zielmedium 120 verschoben worden sind.
-
8 zeigt
in dem Quellmedium 115 enthaltene Verzeichnisstrukturen 805 vor
einem Verschiebevorgang. Alle Dateien, wie etwa Datei5.txt 815, werden
von dem Quellmedium 815 der 8 zum Zielmedium 120 der 9 verschoben.
Nachdem der Verschiebungsvorgang abgeschlossen ist, sind die Inhalte
des Zielmediums in der der 9 gezeigten
Verzeichnisstruktur 905. In dieser Ausführungsform sind der Aufbau
und die Hierarchie der Verzeichnisstruktur 805 (8)
in dem Zielmedium 120 (9) dieselben
wie in dem Quellmedium 115 (8).
-
Sowohl
in den Medienverschiebe- als auch den Medienteilungsvorgängen sind
die Techniken zum Kopieren der Dateien die gleichen. Wie oben mit Verweis
auf eine Medienteilung (3 und 4) beschrieben,
führt der
Medienmanager zwei Listen von Dateien (siehe 5), wenn
er ein Verzeichnis, das einem Medienverschiebungsvorgang unterliegt, durchsucht.
Die erste Liste identifiziert Dateien, die nicht in der Lage waren,
zu dem Zielmedium 120 kopiert zu werden (9).
Die zweite Liste enthält
Dateien, die nach dem anfänglichen
Versuch des Verzeichnismanagers, diese aus dem Quellmedium 115 (8)
in das Zielmedium 120 (9) zu kopieren, verändert worden
sind. Wenn eine Datei in einer der beiden Listen erscheint, dann
sind zusätzliche Durchsuchungen
oder andere Prozeduren erforderlich, um den Verschiebe- oder Teilungsvorgang
abzuschließen.
-
Obwohl
die Technik zum Kopieren der Dateien sowohl bei einer Medienteilung
als auch bei einer Medienverschiebung die gleiche ist, gibt es zwischen den
zwei Vorgängen
doch Unterschiede. In einer Medienverschiebung wird der gesamte
Inhalt eines Mediums verschoben, wohingegen eine Medienteilung nur
involviert, dass ein Verzeichnis eines Mediums verschoben wird.
Auch platziert der Medienmanager in einer Medienteilung, nach dem
der „Verschiebungs" Anteil des Vorgangs
abgeschlossen ist, einen Knotenpunkt in das Quellmedium an der Wurzel
des Unterverzeichnisbaums, der verschoben worden ist.
-
10A–10B zeigen ein Ablaufdiagramm des Vorgangs zum
Kopieren von Dateien vom Quellmedium zum Zielmedium des Computers
in 1 gemäss
einer Ausführungsform
der Erfindung. In 10A gibt beim Schritt 1005 ein
Systemadministrator entweder einen Medienverschiebe- oder einen
Medienteilungsbefehl, die aus der Schnittstelle des Computers in 1 zu
dem Medienmanager übertragen
werden.
-
In
Schritt 1010 (10A)
bestimmt der Medienmanager, ob der Befehl ein Medienteilungs- oder ein
Medienverschiebungsbefehl ist. Wenn der Befehl ein Medienteilungsbefehl
ist, erzeugt der Medienmanager ein Zielmedium, das zum Verwalten
der dem Teilungsvorgang zu Grunde liegenden Dateien verantwortlich
wird. Das Erzeugen des Zielmediums schließt das Zuweisen einer GUID
und das Verknüpfen
der GUID mit dem physikalischen [Speicher] Ort des Zielmediums in
der VLDB mit ein.
-
Es
sei angemerkt, dass der Schritt 1010 im Fall einer Medienverschiebung,
nicht ausgeführt wird.
Stattdessen wird im Schritt 1060 (10B)
die VLDB aktualisiert. Der Grund, dass die VLDB im Schritt 1010 im
Fall einer Medienverschiebung nicht aktualisiert wird, ist, dass bei
einer Mediumverschiebung der Medienname nicht verändert wird.
Wenn daher das Zielmedium zu der VLDB hinzugefügt worden ist, bevor das Quellmedium
entfernt wurde, würde
die VLDB zwei verschiedene mögliche
Medien für eine
Medienanfrage bzw. -anforderung aufführen. Es könnten Anforderungen zum Zugreifen
auf das Medium über
den Namen an das Zielmedium, weder die gewünschte Datei noch die gewünschte Datei
gerichtet hat, dass die gewünschte
Datei jedoch noch nicht aufweisen könnte (oder eine nicht aktualisierte
Version der Datei aufweisen könnte).
Stattdessen werden die Dateien in das Zielmedium kopiert, bevor
die VLDB aktualisiert wird, und die VLDB wird nur aktualisiert,
wenn der Medienverschiebevorgang abgeschlossen ist.
-
Im
Schritt 1015 (10A)
definiert der Medienmanager ein Intervall von Interesse mit dem
Ereignislistenmanager. Wie vorhergehend beschrieben, ist der Ereignislistenmanager
verantwortlich für das
Speichern von Ereignissen, so wie sie durch ein Dateisystem erzeugt
werden, und für
das Antworten auf Computerprozesse, die daran interessiert sind, Ereignislisten
zu empfangen. Der Medienmanager definiert bei dem Ereignislistenmanager
ein Intervall von Interesse, in welchem Dateien, die geändert, erzeugt,
umbenannt oder gelöscht
worden sind, zu der in dem Schritt 1020 erzeugten zweiten
Liste von Dateien hinzugefügt
werden (10A). In einer Ausführungsform
deklariert der Medienmanager eine Epoche mit dem Ereignislistenmanager.
Nachdem ein erster Durchlauf über
die zu verschiebenden Dateien ausgeführt worden ist, kann der Medienmanager
von dem Ereignislistenmanager Ereignisse anfordern, die Dateien
spezifizieren, die seitdem die Epoche deklariert wurde, abgeändert worden
sind.
-
Im
Schritt 1020 in 10A erzeugt
der Medienmanager zwei leere Listen, die wie oben beschrieben in
der Lage sind zum Abspeichern von Daten.
-
Im
Schritt 1025 durchsucht der Medienmanager das Verzeichnis
von Dateien, die einem Verschiebe- oder Teilungsbefehl des Systemadministrators
unterliegen, und versucht, eine jeweilige Datei vom Quellmedium
zu dem Zielmedium zu kopieren. Die Dateivervielfältigungen können unter Benutzung des Dateisystems
Application Programm Interfaces (APIs) (übersetzt: Anwendungsprogrammschnittstelle)
erzielt werden, obwohl ein Fachmann auf dem technischen Gebiet erkennen
wird, dass andere Techniken zum Kopieren der Dateien benutzt werden können. Der
Medienmanager bestimmt, ob eine jeweilige Datei in der Lage ist,
kopiert zu werden, und kopiert diejenigen Dateien, deren Übertragung
erlaubt ist. Eine jeweilige Datei, die nicht in der Lage ist, kopiert
zu werden, wird der ersten Liste von Dateien hinzugefügt.
-
Ab
einem gewissen Punkt ist die zweite Liste besetzt mit Dateien, die
während
des Intervalls von Interesse modifiziert worden sind (siehe Schritt 1015).
Ein Fachmann auf dem technischen Gebiet wird erkennen, dass es eine
Vielfalt von Arten und Weisen gibt, um die zweite Liste zu besetzen.
In einer Ausführungsform
fordert der Medienmanager Ereignisse von dem Ereignislistenmanager
an, und besetzt die zweite Liste mit allen Dateien, die während des
Intervalls von Interesse verändert
worden sind. In dieser Ausführungsform
könnten
einige Dateien in der zweiten Liste verändert worden sein, bevor der Medienmanager
sie kopierte. Diese Dateien werden noch einmal kopiert, obwohl alle
Veränderungen
auf dem Zielmedium genau wiedergegeben sind. Jedoch sind zusätzliche
Ressourcen, die für
diese Dateien verwendet worden sind, nicht von Bedeutung, weil diese
in ihrer Anzahl gering sind.
-
In
einer zweiten Ausführungsform
aktualisiert der Ereignislistenmanager die zweite Liste automatisch
mit den Dateien, die verändert
worden sind, nach dem der Medienmanager versucht hat, diese zu kopieren.
Der Ereignislistenmanager beschafft die für die versuchte Vervielfältigung
einer jeweiligen Datei verwendete Zeit von dem Medienmanager. Die
Zeit für
die versuchte Vervielfältigung
wird verglichen mit der Zeit des letzten Ereignisses für eine jeweilige
Datei. Durch diesen Vergleich ist der Ereignislistenmanager in der
Lage, die zweite Liste mit Dateien zu besetzen, die erst geändert worden
sind, nachdem der Medienmanager versucht, diese zu kopieren. In
einer dritten Ausführungsform
besetzt der Medienmanager die zweite Liste mit Dateien, die nach
dem Versuch, diese zu kopieren, abgeändert worden sind. Der Medienmanager
beschafft die Zeit des letzten Ereignisses für eine jeweilige Datei aus
dem Ereignislistenmanager. Die von dem Ereignislistenmanager eingeholte
Zeit wird mit der Zeit vergleichen, die der Medienmanager versuchte,
die Datei zu vervielfältigen. Durch
diesen Vergleich ist der Medienmanager in der Lage, die zweite Liste
mit Dateien zu besetzen, die nach dem Versuch des Medienmanagers,
diese zu kopieren, abgeändert
worden sind.
-
In 10A beim Schritt 1030 untersucht der Medienmanager
die jüngsten
Ereignisse in der ersten und zweiten Liste nach Einträgen. Wenn
beide Listen leer sind, ist der Vorgang des Kopierens von Dateien
aus dem Quellmedium in das Zielmedium (1) abgeschlossen,
weil alle Dateien, die dem Verschiebungs- oder Teilungsvorgang unterliegen, kopiert
worden sind. Der Vorgang kann dann mit dem Schritt 1050 der 10B fortgesetzt worden.
-
Zurückkehrend
zur 10A, wenn mindestens eine Datei
in einer der Listen [vorhanden] ist, dann bestimmt der Medienmanager
im Schritt 1035, ob eine andere Durchsu chung über den
Dateien, die dem Verschiebe- oder Teilungsvorgang unterworfen wurden,
erforderlich ist. In einer Ausführungsform
bestimmt der Medienmanager, ob Dateien während der letzten Durchsuchung
im Schritt 1025 verschoben worden sind. Der Medienmanager
benutzt einen Zähler,
um die Anzahl der Dateien zu bestimmen, die während der letzten Durchsuchung
kopiert worden sind. Wenn der Medienmanager befindet, dass während der
letzten Durchsuchung keine zusätzlichen Dateien
kopiert worden sind, dann kehrt er zum Schritt 1020 zurück. Jedoch
wird ein Fachmann auf dem technischen Gebiet erkennen, dass es eine
Anzahl von Arten und Weisen gibt, um zu bestimmen, ob Dateien während einer
Durchsuchung des Dateisystems verschoben worden sind. Beispielsweise können die
beiden Listen untersucht werden, um herauszufinden, ob irgendwelche
Dateien in den Listen verbleiben. Der Vorgang zum Kopieren der verbleibenden
Dateien ist der gleiche wie oben für die Dateien, die vorhergehend
kopiert worden sind, beschrieben, obwohl die Menge der zu kopierenden
Dateien kleiner ist.
-
Wenn
der Medienmanager in 10A im Schritt 1035 bestimmt,
dass der Versuch, die Dateien zu kopieren, ohne Clients auszuschließen, nicht
erfolgreich sein wird, dann sind weitere Prozeduren erforderlich,
um die verbleibenden Dateien zu kopieren. Wenn beispielsweise eine
Datei während
einer ausgedehnten Zeitdauer zum Schreiben auf einem Clientcomputer
offen geblieben ist, dann wird der wiederholte Versuch, die Datei
zu kopieren, nicht helfen. In einer Ausführungsform wird im Schritt 1040 der
Zugriff des Clients auf in der ersten und zweiten Liste enthaltene
Dateien begrenzt. Infolgedessen sind alle verbleibenden Dateien
in der Lage, kopiert zu werden. Im Schritt 1040 in 10A durchsucht das Dateisystem und kopiert alle
Dateien, die nach den jüngsten
Ereignissen bzw. Umständen
in der ersten und zweiten Liste erscheinen. Nach dem Vervollständigen des
Schritts 1045 (10A)
sind alle dem Verschiebe- oder Teilungsvorgang unterworfenen Dateien
kopiert worden, und im Schritt 1047 (10A) sind diese Dateien entriegelt bzw. freigeschaltet
worden. Der Vorgang kann dann mit dem Schritt 1050 der 10B fortgesetzt werden.
-
Nachdem
alle dem Verschiebe- oder Teilungsvorgang unterliegenden Dateien
kopiert worden sind, werden Client-Anforderungen nach den Dateien an das
Zielmedium weitergeleitet. Im Schritt 1050 in 10B bestimmt der Medienmanager, ob der Systemadministrator
einen Medienverschiebe- oder einen Medienteilungsbefehl ausgegeben
hat.
-
Wenn
der Vorgang eine Medienteilung ist, dann platziert der Medienmanager
im Schritt 1055 einen Knotenpunkt, der die GUID des Zielmediums enthält, in das
Quellmedium an der Wurzel des Unterverzeichnisbaums, der verschoben
worden ist. Wie oben erwähnt,
verleiht der Einsatz eines Knotenpunkts den Clients den Anschein,
dass sich in dem Medium nichts verändert hat, obwohl ein Teil
der Dateien in dem Quellmedium zu dem Zielmedium verschoben worden
sind. Clients sind in der Lage, auf Dateien in dem verschobenen
Verzeichnisbaum zuzugreifen, weil ein Knotenpunkt die GUID benutzt, um
Client-Anforderungen bezüglich
der verschobenen Dateien an das Zielmedium weiterzuleiten.
-
Wenn
der Vorgang eine Medienverschiebung ist, dann fährt der Medienmanager beim
Schritt 1060 fort und aktualisiert die VLDB, um den Verschiebungsbefehl
wiederzuspiegeln. In einer Medienverschiebung werden die gesamten
Inhalte eines Mediums von dem Quellmedium zu dem Zielmedium kopiert.
Wie oben mit Verweis auf 1 beschrieben, verkürzt die
VLDB Medien mit deren physikalischer [Speicher-]Position in einem
Speichergerät.
Client-Anforderungen
bezüglich
Dateien werden geklärt,
indem die physikalische Position auf dem Verzeichnis, das die von
dem VLDB angeforderten Dateien enthält, eingeholt wird. Um Anforderungen
nach Dateien an das Zielmedium weiterzuleiten, aktualisiert der
Medienmanager die VLDB, in dem die Konfiguration des Quellmediums
in die des Zielmediums abgeändert
wird. Nachdem Client-Anforderungen
bezüglich
Dateien an das Zielmedium weitergeleitet sind, werden die einem
Verschiebe- oder Teilungsvorgang unterworfenen Dateien vom Quellmedium gelöscht. Im
Schritt 1065 in 10B löscht der
Medienmanager Dateisystemdaten vom Quellmedium. Die durch die verschobenen
Dateien benutzten Ressourcen sind nun zum Speichern von anderen
Daten frei. In einer Ausführungsform
wird das Dateisystem als ein Hintergrundprozess gelöscht. Jedoch
wird ein Fachmann auf dem technischen Gebiet erkennen, dass das
Löschen
des Dateisystems in einer Vielzahl von Arten und Weisen abgeschlossen
werden kann.
-
Ein
Fachmann auf dem technischen Gebiet wird erkennen, dass die in den 10A–10B gezeigten Ablaufdiagramme eine von vielen
verschiedenen Sequenzen von Schritten sind, die benutzt werden können, um
die gleichen Ergebnisse zu erzielen. Beispielsweise kann der Schritt 1065 (10B) getrennt von den vorhergehenden Schritten
ausgeführt
werden, möglicherweise
als Teil einer regulären
Systemwartung beim Löschen
unnötiger Dateien,
nach einer vorgegebenen Zeitdauer.
-
Ein
Fachmann auf dem technischen Gebiet wird erkennen, dass eine oben
beschriebene Ausführungsform
der Erfindung unter Benutzung eines geeignet programmierten Computers
implementiert werden kann. In dem Fall wird das Verfahren als ein Programm
umfassende Anweisungen ausge führt
(in diesem Fall: Anweisen einer zentralen Verarbeitungseinheit,
wie die anderen Programme auszuführen
sind). Das Programm kann auf computerlesbaren Medien, wie etwa Floppy
Disks, optischen Platten (wie etwa CDs), festen Platten (wie etwa
Festplatten), Direktzugriffsspeichern (RAM, Englisch: Random Access
Memory), Nur-Lese-Speichern
(ROM, Englisch: Read-Only Memory) oder Flash-Speichern gespeichert
werden. Das Programm kann dann auf einem Computer ausgeführt werden,
um das Verfahren zu implementieren. Ein Fachmann auf dem technischen
Gebiet wird auch erkennen, dass eine oben beschriebene Ausführungsform
ein computerlesbares, moduliertes Trägersignal umfassen kann, und dass
das Programm oder Teile seiner Ausführung auf mehrere Computer
in einem Netzwerk verteilt sein können.
-
Nachdem
die Prinzipien der Erfindung in einer ihrer Ausführungsform veranschaulicht
und beschrieben worden sind, sollte für den Fachmann auf dem technischen
Gebiet offensichtlich sein, dass die Erfindung in ihrer Ausführung und
in Einzelheiten geändert
werden kann, ohne von derartigen Prinzipien abzuweichen. Es werden
alle Abänderungen,
die innerhalb des Schutzumfangs der beigefügten Patentansprüche fallen,
beansprucht.