-
TECHNISCHES GEBIET
-
Die Erfindung betrifft Datenspeicherung bezüglich Datenspeicherungssystemen und insbesondere ein System zur dynamischen Wiederverwendung logischer Datenobjekte.
-
HINTERGRUND
-
Herkömmlicherweise stützt sich das Betreiben eines einmal beschreibbaren und dann nur noch lesbaren (WORM-(Write Once Read Many)) Mediums auf den Medientyp selbst, so dass ein einziges physisches Datenobjekt nicht sowohl ein Standard-Schreib-/Lese-Datenobjekt als auch ein erzwungenes WORM-Datenobjekt sein kann. Zum Zeitpunkt der Herstellung wird bewirkt, dass diese zwei Medientypen einander ausschließen. Während es vorteilhaft wäre, über einen gemeinsamen Pool an sowohl für WORM- als auch für Schreib-/Lese-Datenobjekte verwendbaren physischen Medien zu verfügen, war dies aufgrund der zum Zeitpunkt der Herstellung an die Medien gebundenen Attribute physisch nicht möglich. Ein für WORM-Medien erforderliches WORM-Attribut ist ein 12 Byte langer weltweiter Bezeichner (WWID, World Wide Identifier), welcher für jede angelegte Medienkassette einmalig ist. Der WWID wird von Software verwendet, um den geschriebenen Inhalt auf dem Medium, unabhängig von etwaigen möglichen Änderungen der Etikettierung des Datenobjekts, an eine auf der Welt einmalige Instanz dieses Mediums zu binden. Dies ermöglicht einer Software, Anomalien oder böswilliges Verhalten zu erkennen, welche dazu führen können bzw. welches dazu führen kann, dass ein Datenobjekt mit einer anderen, davon verschiedenen physischen Medieninstanz verwechselt wird.
-
Im Zusammenhang mit Computersystemen wird der Begriff „Volume” häufig verwendet, um einen einzigen zugänglichen Datenspeicherbereich mit einem einzigen Dateisystem, welcher auf einem Medium wie einem Band eines Bandlaufwerks liegt, zu beschreiben. Wie hierin erörtert, werden die Begriffe „Datenobjekt”, „logisches Objekt”, „logisches Datenobjekt” und „Objekt” verwendet, um ein Volume wie ein Bandvolume oder ein virtuelles Bandvolume zu bezeichnen. Wie der Fachmann weiß, ist der Begriff „Volume” gleichbedeutend mit „Bandvolume”, „virtuelles Bandvolume”, „Band-VOLSER” (Volume Serial number (Volumen-Seriennummer)), „Banddateivolume”, „Dateivolume” und „Dateisystem”.
-
Eine logische WORM-Umgebung hat die gleiche Anforderung hinsichtlich des WWID. Die logischen Datenobjekte können unter Verwendung eines emulierten Medientyps in eine virtuelle Bibliothek eingefügt/in einer virtuellen Bibliothek angelegt werden. Eine Software muss die unabhängigen Medienpools kennen, um entsprechende Eingaben und/oder Ausgaben an den bestimmungsgemäßen Medienpool zu leiten. Es wäre vorteilhaft, wenn die virtuelle Bibliothek einen gemeinsamen Medienpool verwalten könnte und nicht separate Medienpools für Standard-Schreib-/Lese- und logische WORM-Datenobjekte benötigte. Außerdem müssen verschiedene logische WORM-Medien-Datenobjekte mit der gleichen Datenobjekt-Seriennummer erkennbar sein. Bei physischen Bandmedien weist jede Bandkassette, unabhängig von ihrer Datenobjekt-Seriennummer oder VOLSER, den zum Zeitpunkt der Herstellung erzeugten und in die Kassette eingebetteten WWID auf. Eine WORM-Medien nutzende Anwendungssoftware kann den WWID verwenden, um zu erkennen, wenn das physische Medium ersetzt wurde, und so mögliches böswilliges Verhalten zu erkennen. In einem virtuellen Speicherungssystem muss ein physisches Medienobjekt nicht direkt mit einem virtuellen Objekt verknüpft sein. Stattdessen kann das virtuelle Objekt eine einfache, in einem Platten-Teilsystem gespeicherte Datei sein. Mit der Datei sind dann Metadaten verknüpft, die in einer Datenbank unabhängig von der Datei gespeichert werden können. Die Überwachungsketten-Muster der Datei können die Dinge verkomplizieren, da das virtuelle Objekt in mehrere physische Datenobjekte nachgebildet und/oder abgeladen werden kann. Der Gesamt-Lebenszyklus des virtuellen Objekts kann zahlreiche Ereignisse mit sich bringen, wo sein Inhalt gefährdet werden kann.
-
Zum Beispiel kann ein unabhängiger Server die gleiche Datenobjekt-Seriennummer schreiben, die auf eine physische Kassette gestapelt werden kann. Wenn diese physische Kassette umetikettiert und fälschlicherweise in den ursprünglichen Server eingelegt wird, kann ihr Inhalt einschließlich des gestapelten logischen Datenobjekts möglicherweise nicht als anders oder verändert erkannt werden.
-
Gelegentlich wird ein Datenobjekt versehentlich in einem „Arbeits”-Zustand in einen gemeinsamen Pool zurückgegeben. Ein Datenobjekt, entweder ein WORM- oder ein Schreib-/Lese-Objekt, in einem Arbeitszustand bedeutet, dass etwaige Daten auf dem Datenobjekt verfallen oder ungültig sind und gelöscht oder überschrieben werden können und das Datenobjekt als ein neues Datenobjekt wiederverwendet werden kann. Bei WORM-Daten stellt dies einen Datenverlust-Zustand dar, der besonders unerwünscht ist. Wenn ein solcher Fehler passiert, könnte ein früher geschriebenes WORM-Datenobjekt mit Nicht-WORM-Daten oder anderen WORM-Daten überschrieben werden.
-
KURZBESCHREIBUNG
-
Durch ein neuartiges System zur dynamischen Wiederverwendung logischer Datenobjekte werden einige oder alle der vorerwähnten Probleme angegangen und wird ein Fortschritt im Fachgebiet erzielt. Das System enthält einen virtuellen Bandserver, der mindestens ein logisches einmal beschreibbares und dann nur noch lesbares (WORM-)Datenobjekt und mindestens ein logisches Schreib-/Lese-Datenobjekt unterstützt. Gemäß einem Aspekt der Erfindung umfasst der virtuelle Server einen Prozessor, der dafür konfiguriert ist, ein logisches Datenobjekt aus einem gemeinsamen Pool von mindestens zwei logischen Datenobjekten zu initialisieren. Das logische Datenobjekt wird, in Reaktion auf einen Befehl zum Schreiben an den Anfang des logischen Datenobjekts, mit einem Mitglied einer Medientypengruppe gebunden, um etwaige vorher mit dem logischen Datenobjekt verknüpfte Informationen zu ersetzen. Die Mitglieder der Medientypengruppe umfassen ein logisches WORM-Datenobjekt und ein logisches Schreib-/Lese-Datenobjekt. Der Prozessor ist so konfiguriert, dass er eines der logischen Datenobjekte ohne Auswerfen und Wiedereinlegen durch Einbinden des logischen Datenobjekts mit einem Befehl zum Schreiben ab dem Anfang des logischen Datenobjekts als das Mitglied der Medientypengruppe wiederverwendet, um mindestens ein Datenattribut an das Mitglied der Medientypengruppe zu binden, um etwaige mit dem logischen Datenobjekt verknüpfte vorherige Attribute und Daten zu ersetzen.
-
Gemäß einem zweiten Aspekt der Erfindung umfasst ein virtueller Server einen Prozessor, der dafür konfiguriert ist, eines der logischen WORM-Datenobjekte zur Wiederverwendung als ein neues logisches WORM-Datenobjekt auszuwählen. Der Prozessor hält die Datenattribute an das ausgewählte logische WORM-Datenobjekt gebunden, bis festgestellt ist, dass das ausgewählte logische WORM-Datenobjekt für eine Wiederverwendung zur Verfügung steht. Der Prozessor weist dem ausgewählten logischen WORM-Datenobjekt, unter Beibehaltung der an das ausgewählte logische WORM-Datenobjekt gebundenen Datenattribute, mindestens ein vorläufiges Datenattribut zu. Das vorläufige Datenattribut ermöglicht dem Prozessor, durch Feststellen, dass die auf dem logischen WORM-Datenobjekt gespeicherten Daten verfallen oder nicht mehr gültig sind, zu bestätigen, dass das ausgewählte logische WORM-Datenobjekt als ein neues logisches WORM-Datenobjekt oder ein logisches Nicht-WORM-Datenobjekt wiederverwendet werden kann. Der Prozessor bindet das ausgewählte logische WORM-Datenobjekt ein und empfängt, wenn durch den Server bestätigt, einen Befehl zum Schreiben ab dem Anfang des logischen Datenobjekts, um mindestens ein Datenattribut an das ausgewählte logische WORM-Datenobjekt zu binden, um mit dem ausgewählten logischen WORM-Datenobjekt verknüpfte Datenattribute und Daten zu ersetzen, um das ausgewählte logische WORM-Datenobjekt als das neue logische WORM-Datenobjekt wiederzuverwenden.
-
Gemäß einem weiteren Aspekt der Erfindung unterstützt ein Verfahren zum Betreiben eines virtuellen Servers mindestens ein logisches, einmal beschreibbares und dann nur noch lesbares (WORM-)Datenobjekt und mindestens ein logisches Schreib-/Lese-Datenobjekt. Das Verfahren umfasst das Initialisieren eines logischen Datenobjekts aus einem gemeinsamen Pool der logischen Datenobjekte, wobei das logische Datenobjekt, in Reaktion auf einen Befehl zum Schreiben an den Anfang des logischen Datenobjekts, mit einem Mitglied einer Medientypengruppe gebunden wird, um etwaige vorher mit dem logischen Datenobjekt verknüpfte Informationen zu ersetzen. Das Mitglied der Medientypengruppe umfasst ein logisches WORM-Datenobjekt und ein logisches Schreib-/Lese-Datenobjekt. Das Wiederverwenden eines der logischen Datenobjekte ohne Auswerfen und Wiedereinlegen durch Einbinden des logischen Datenobjekts mit einem Befehl zum Schreiben ab dem Anfang des logischen Datenobjekts als das Mitglied der Medientypengruppe, um mindestens ein Datenattribut an das Mitglied der Medientypengruppe zu binden, um etwaige mit dem logischen Datenobjekt verknüpfte vorherige Attribute und Daten zu ersetzen.
-
Gemäß einem weiteren Aspekt der Erfindung umfasst ein Computerprogramm-Produkt ein computernutzbares Medium, auf welchem computernutzbarer Programmcode verkörpert ist. Der computernutzbare Programmcode ist dafür konfiguriert, einen Prozessor zu betreiben, um einen virtuellen Server zu betreiben, der dafür konfiguriert ist, mindestens ein logisches, einmal beschreibbares und dann nur noch lesbares (WORM-)Datenobjekt und mindestens ein logisches Schreib-/Lese-Datenobjekt zu unterstützen. Der computernutzbare Programmcode ist außerdem so konfiguriert, dass er das logische Datenobjekt aus dem gemeinsamen Pool der logischen Datenobjekte initialisiert, wobei das logische Datenobjekt, in Reaktion auf den Befehl zum Schreiben an den Anfang des logischen Datenobjekts, mit einem Mitglied einer Medientypengruppe gebunden wird, um etwaige vorher mit dem logischen Datenobjekt verknüpfte Informationen zu ersetzen. Das Mitglied der Medientypengruppe besteht aus einem WORM-Datenobjekt und einem Schreib-/Lese-Datenobjekt. Außerdem ist der computernutzbare Programmcode so konfiguriert, dass er eines der logischen Datenobjekte ohne Auswerfen und Wiedereinlegen durch Einbinden des logischen Datenobjekts mit einem Befehl zum Schreiben ab dem Anfang des logischen Datenobjekts als das Mitglied der Medientypengruppe wiederverwendet, um mindestens ein Datenattribut an das Mitglied der Medientypengruppe zu binden, um etwaige mit dem logischen Datenobjekt verknüpfte vorherige Attribute und Daten zu ersetzen.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Nun werden, lediglich beispielhaft, Ausführungsformen der Erfindung unter Bezugnahme auf die folgenden Zeichnungen beschrieben.
-
1 ist eine schematische Darstellung eines virtuellen Servers, der in den Systemen der 7 bis 8 verkörpert sein kann;
-
2 ist eine schematische Darstellung von Medientypengruppen-Mitgliedern;
-
Die 3 bis 5 sind Ablaufdiagramme verschiedener Operationen des virtuellen Servers;
-
6 ist eine isometrische Ansicht einer entnehmbaren Datenspeicherungskassette mit einem Medium wie Magnetband und mit einem in Durchsicht gezeigten Kassettenspeicher;
-
7 ist eine schematische Darstellung von Informationen eines logischen Datenobjekts;
-
8 ist eine schematische Darstellung eines Datenspeicherungssystems, welches die Erfindung umsetzen kann; und
-
9 ist eine schematische Darstellung eines Servers des Datenspeicherungssystems in 8.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Unter Bezugnahme auf die Figuren, in welchen gleiche Bezugszeichen gleiche oder ähnliche Elemente darstellen, werden in der folgenden Beschreibung bevorzugte Ausführungsformen dargelegt.
-
Durch ein neuartiges System zur dynamischen Wiederverwendung logischer Datenobjekte werden die vorerwähnten Probleme gelöst und wird ein fachlicher Fortschritt erzielt. Das System umfasst einen virtuellen Bandserver, der mindestens ein logisches, einmal beschreibbares und dann nur noch lesbares (WORM-)Datenobjekt und mindestens ein logisches Schreib-/Lese-Datenobjekt unterstützt. In einer Ausführungsform umfasst der virtuelle Server einen Prozessor, der dafür konfiguriert ist, ein logisches Datenobjekt aus einem gemeinsamen Pool von mindestens zwei logischen Datenobjekten zu initialisieren. Das logische Datenobjekt wird, in Reaktion auf einen Befehl zum Schreiben an den Anfang des logischen Datenobjekts, mit einem Mitglied einer Medientypengruppe gebunden, um etwaige vorher mit dem logischen Datenobjekt verknüpfte Informationen zu ersetzen. Die Mitglieder der Medientypengruppe umfassen ein logisches WORM-Datenobjekt und ein logisches Schreib-/Lese-Datenobjekt. Der Prozessor ist so konfiguriert, dass er eines der logischen Datenobjekte ohne Auswerfen und Wiedereinlegen durch Einbinden des logischen Datenobjekts mit einem Befehl zum Schreiben ab dem Anfang des logischen Datenobjekts als das Mitglied der Medientypengruppe wiederverwendet, um mindestens ein Datenattribut an das Mitglied der Medientypengruppe zu binden, um etwaige mit dem logischen Datenobjekt verknüpfte vorherige Attribute und Daten zu ersetzen.
-
Als allgemeiner, systematischer Überblick kann der virtuelle Server eine Verwaltungsschnittstelle enthalten, wo auf Richtlinien beruhende Konstruktdefinitionen konfiguriert werden können. Während der virtuelle Server oder ein externer Host (nicht gezeigt) logische Datenobjekte einbindet, werden Konstrukte bereitgestellt, die festlegen, wie das System Daten der logischen Datenobjekte verwalten sollte. Regeln werden zum Beispiel auf dem Umweg über die Verwaltungsschnittstelle definiert. Die Regeln legen fest, ob das eingebundene logische Datenobjekt als einmal beschreibbares und dann nur noch lesbares (WORM-)Objekt oder als Schreib-/Lese-Objekt behandelt werden sollte.
-
Wenn ein ausgewähltes logisches Datenobjekt als WORM-Objekt konfiguriert werden soll, wird ein vorläufiges Datenattribut wie ein vorläufiger weltweiter Bezeichner (WWID) erzeugt und während des Einbindens dem Server bereitgestellt. Wenn der Server das ausgewählte logische Datenobjekt annimmt, wird ein erster Befehl zum Schreiben an den Anfang des logischen Datenobjekts erfolgen. Zu diesem Zeitpunkt wird der WWID an das logische Datenobjekt gebunden und behält er seine WORM-Attribute bei. Wenn das logische Datenobjekt vorher ein logisches WORM-Datenobjekt war, werden seine Daten und sein vorheriger WWID zu diesem Zeitpunkt atomar überschrieben, was ein Auswerfen und Wiedereinlegen verschiedener Medien mit der gleichen VOLSER (Volumen-Seriennummer) simuliert. Während das logische Datenobjekt eingebunden wird, verschiebt der virtuelle Server das logische Datenobjekt aus einem Arbeitsdatenträgerpool in einen privaten Pool, um eine kreisförmig verlaufende Wiederverwendung des logischen Datenobjekts zu verhindern.
-
Wenn angenommen wird, dass ein logisches Schreib-/Lese- oder WORM-Datenobjekt keinen gültigen Inhalt mehr bezüglich des Hosts hat, sind alle auf dem logischen Datenobjekt gespeicherten Daten verfallen, und der virtuelle Server verschiebt das logische Datenobjekt aus dem privaten Pool in einen gemeinsamen Arbeitsdatenträgerpool, der sowohl logische WORM- als auch Schreib-/Lese-Datenobjekte enthält. Dies ermöglicht dem logischen Datenobjekt, erneut ein Anwärter auf zukünftige Einbindungen und Wiederverwendung zu sein. Zukünftige Einbindungen können dann das logische Datenobjekt entweder als Schreib-/Lese- oder als WORM-Objekt neu binden.
-
Es ist nützlich, den Typ des logischen Datenobjekts (WORM oder Schreiben/Lesen) und Datenattribute wie den WWID bis zum ersten Schreiben beizubehalten, da sie dem virtuellen Server gestatten, die Einbindung zu verarbeiten, um das ausgewählte logische Datenobjekt abzulehnen, und somit die vorherigen Daten und Datenattribute des logischen Datenobjekts unverändert zu lassen. Zum Beispiel kann ein logisches Datenobjekt versehentlich in einen Arbeitsdatenträgerpool verschoben und dann für eine Arbeits-Einbindung ausgewählt worden sein. Der virtuelle Server stellt fest, dass das ausgewählte logische Datenobjekt versehentlich in einen Arbeitsdatenträgerpool verschoben wurde und das ausgewählte logische Datenobjekt gültige oder noch nicht verfallene Daten enthält. Der virtuelle Server lässt dann den Einbindevorgang fehlschlagen, und die noch nicht verfallenen oder gültigen Daten werden zusammen mit dem Medientyp, entweder WORM oder Schreiben/Lesen, beibehalten. Gleichzeitig verschiebt der virtuelle Server das ausgewählte logische Datenobjekt zurück in einen geschützten privaten Pool, wodurch verhindert wird, dass irgendwelche der vorhandenen WORM-geschützten Daten auf dem ausgewählten logischen Datenobjekt verloren gehen.
-
Zusätzlich kann der virtuelle Server ein ausgewähltes logisches Datenobjekt versehentlich in einen Arbeitsdatenträgerpool verschieben und dann zurück in einen privaten Pool verschieben, bevor es wiederverwendet wird. Dieses Verschieben eines logischen Datenobjekts aus einem privaten Pool in einen Arbeitsdatenträgerpool und dann zurück in den privaten Pool hat keinen Verlust der geschützten WORM-Daten auf dem ausgewählten logischen Datenobjekt zur Folge. Nur wenn eine Wiederverwendung eines ausgewählten logischen Datenobjekts erfolgt, wo ein Befehl zum Schreiben ab dem Anfang des logischen Datenobjekts ausgegeben wird, werden etwaige vorhandene, mit dem ausgewählten logischen Datenobjekt verknüpfte Daten und Datenattribute überschrieben und etwaige vorherige Daten abgeschnitten.
-
Zusammenfassend sind die Ausführungsformen des virtuellen Servers so konfiguriert, dass sie vorherige WORM-Objekte schützen, selbst wenn diese für eine Wiederverwendung verfügbar gemacht wurden, wie durch Anzeigen, dass die Daten auf dem logischen Datenobjekt ungültig sind, und Versetzen derselben in einen Zustand, welcher eine Umkehrung der Entscheidung durch den Prozessor gestattet. Bezüglich WORM-Datenobjekten gibt es Anforderungen, die erfüllt sein müssen, um das Datenobjekt dagegen zu schützen, verändert oder überschrieben zu werden. Es gibt keine Anforderung, das vorherige WORM-Objekt vor Zerstörung zu schützen. Unabhängig davon, ob das Objekt zu einem neuen WORM- oder zu einem Schreib-/Lese-Objekt gemacht werden soll, wird die Wiederverwendung aufgehalten, bis der Host anzeigt, dass er bereit ist, an den Anfang des logischen Datenobjekts, was der Fachmann Bandanfang (BOT, Beginning of Tape) nennt, zu schreiben, was anzeigt, dass der Host der Wiederverwendung zustimmt. Zu diesem Zeitpunkt werden alle Daten des WORM-Objekts und verknüpfte Informationen wie der vorherige WWID gelöscht, und dem logischen Objekt wird ein neuer WWID zugewiesen und es wird als ein WORM-Objekt gebunden oder es wird zu einem Schreib-/Lese-Objekt gemacht.
-
Wie aus den 1 bis 8 hervorgeht, kann ein virtueller Server 100 einen Prozessor 102 enthalten, welcher einen hierarchischen Speicherknoten 60 und einen Virtualisierungsknoten 40 (beide in 8 gezeigt) enthalten kann, die dafür konfiguriert sein können, auf Grundlage der folgenden Beschreibung im virtuellen Server 100 zu laufen.
-
In einer Ausführungsform unterstützt der virtuelle Server 100 mindestens ein logisches, einmal beschreibbares und dann nur noch lesbares (WORM-)Datenobjekt 108 und mindestens ein logisches Schreib-/Lese-Datenobjekt 109, welche in einem gemeinsamen Pool 106 liegen. Ein Prozessor 102 ist dafür konfiguriert, ein neues logisches Datenobjekt 104 aus dem gemeinsamen Pool 106 von mindestens zwei logischen Datenobjekten 108 und 109 zu initialisieren. Das neue logische Datenobjekt 104 wird, in Reaktion auf einen Befehl zum Schreiben an den Anfang des logischen Datenobjekts 114, d. h. einen Bandanfangs-(BOT-)Schreibbefehl, mit einem Medientypengruppen-Mitglied 110 gebunden, um etwaige vorher mit dem logischen Datenobjekt 107 verknüpfte Informationen zu ersetzen. Die vorher mit dem logischen Datenobjekt 107 verknüpften Informationen können einen vorherigen weltweiten Bezeichner (WWID) 115, einen Medientyp (wie WORM oder Schreiben/Lesen) 116, einen Schreibeinbindungszähler 118 sowie zugeordneten Inhalt 113 enthalten. Das neue logische Datenobjekt wird mit einem Mitglied einer Medientypengruppe gebunden, das ein WORM-Datenobjekt 120 und ein Schreib-/Lese-Datenobjekt 122 umfasst, wie in 2 gezeigt. Der Prozessor 102 ist so konfiguriert, dass er eines der logischen Datenobjekte 107 ohne Auswerfen und Wiedereinlegen durch Einbinden des logischen Datenobjekts mit einem Befehl zum Schreiben ab dem Anfang des logischen Datenobjekts als das Medientypengruppen-Mitglied 110 wiederverwendet, um mindestens ein Datenattribut 112 an das Medientypengruppen-Mitglied 110 zu binden, um etwaige mit dem logischen Datenobjekt 107 verknüpfte vorherige Attribute 112, 115, 116, 118 und Daten 113 zu ersetzen.
-
Der Prozessor 102 kann außerdem dafür konfiguriert sein, ein logisches Datenobjekt 107 aus dem gemeinsamen Pool 106 als das neue logische Datenobjekt 104 mit seiner vorherigen Datenobjekt-Seriennummer 114, einem vorherigen logischen Datenobjekt-Medientyp 116 und einem vorherigen Schreibeinbindungszähler 118 zu verwenden. Der Prozessor 102 erzeugt einen neuen weltweiten Bezeichner (WWID) 119 für das neue logische Datenobjekt 104, welcher wahrscheinlichkeitstheoretisch unwiederholbar ist. Der Prozessor 102 kann so konfiguriert sein, dass er den neuen WWID 119 und das Medientypengruppen-Mitglied 110 an ein logisches Datenobjekt 107 bindet, um das neue logische Datenobjekt 104 anzulegen, wodurch ein vorheriger WWID 115, ein vorheriger Medientyp 116 und ein vorheriger Schreibeinbindungszähler 118 in Reaktion auf einen Befehl zum Schreiben ab dem Objektanfang 114 ersetzt werden. Der vorherige Schreibeinbindungszähler 118 kann zurückgesetzt werden, wenn der neue WWID 119 und das Medientypengruppen-Mitglied 110 an das logische Datenobjekt 107 gebunden werden, um das neue logische Datenobjekt 104 anzulegen. Der neue WWID 119 wird beim ersten Befehl zum Schreiben ab dem Objektanfang 114 gebunden und ersetzt einen etwaigen vorherigen Medientyp 116, während etwaige vorher verknüpfte Daten 113 beseitigt werden. Bis der neue WWID 119 und das Medientypengruppen-Mitglied 110 an das neue logische Datenobjekt 107 gebunden sind, können der vorherige WWID 115, der vorherige Medientyp 116, der vorherige Schreibeinbindungszähler 118 und alle vorherigen verknüpften Daten 113 immer noch von dem logischen Datenobjekt 107 abgerufen werden.
-
Der Prozessor 102 kann dafür konfiguriert sein, auf das Einbinden eines Datenobjekts 103 mit einem vorweggenommenen Schreiben ab dem Ladepunkt zu reagieren, um das Datenobjekt als das logische Datenobjekt 107 zu verwenden, um das neue logische Datenobjekt 104 anzulegen.
-
Der Prozessor 102 betreibt den virtuellen Server 100, indem er auf eine Einbindung des Datenobjekts 103 mit einem vorweggenommenen Schreiben ab dem Ladepunkt reagiert, indem er das Datenobjekt 103 als das logische Datenobjekt 107 verwendet, um das neue logische Datenobjekt 104 anzulegen. Der Prozessor 102 kann so konfiguriert sein, dass er den Schreibeinbindungszähler 118 zurücksetzt, sobald der neue WWID 119 und das Medientypengruppen-Mitglied 110 an das neue logische Datenobjekt 104 gebunden sind. Der Prozessor 102 lässt das logische WORM-Datenobjekt 108 den gemeinsamen Pool 106 als ein ausgewähltes logisches Arbeitsdatenobjekt 107 zyklisch durchlaufen, wobei der gemeinsame Pool logische Arbeitsdatenobjekte umfasst, die ein logisches WORM-Datenobjekt 108 und ein logisches Schreib-/Lese-Datenobjekt 109 enthalten können. Eine Wiederverwendung des ausgewählten logischen Arbeitsdatenobjekts 107 erfolgt erst, nachdem der Prozessor das ausgewählte logische Arbeitsdatenobjekt den freien Pool 106 zyklisch durchlaufen lassen hat.
-
In einer Ausführungsform umfasst die Erfindung ein beispielhaftes Verfahren zum Betreiben eines virtuellen Servers 100, der mindestens ein logisches, einmal beschreibbares und dann nur noch lesbares (WORM-)Datenobjekt 108 und mindestens ein logisches Schreib-/Lese-Objekt 109 unterstützt. Das Verfahren umfasst die Schritte des Initialisierens eines neuen logischen Datenobjekts 104 aus einem gemeinsamen Pool 106 von mindestens zwei logischen Datenobjekten 108 und 109. Das neue logische Datenobjekt 104 wird, in Reaktion auf einen Befehl zum Schreiben an den Anfang des logischen Datenobjekts 114, mit dem Medientypengruppen-Mitglied 110 gebunden, um etwaige vorher mit dem logischen Datenobjekt 107 verknüpfte Informationen 112, 113, 115, 116 und 118 zu ersetzen. Eines der logischen Datenobjekte 104 wird ohne Auswerfen und Wiedereinlegen durch Einbinden des logischen Datenobjekts 107 mit einem Befehl zum Schreiben ab dem Anfang des logischen Datenobjekts 114 als das Medientypengruppen-Mitglied 110 wiederverwendet, um mindestens ein Datenattribut 112 an das Medientypengruppen-Mitglied 110 zu binden, um etwaige mit dem logischen Datenobjekt 107 verknüpfte vorherige Attribute 115, 116 und 118 und Daten 113 zu ersetzen.
-
In einer weiteren beispielhaften Ausführungsform umfasst die Erfindung ein Computerprogramm-Produkt, das ein computernutzbares Medium umfasst, auf welchem computernutzbarer Programmcode verkörpert ist. Der Programmcode ist so konfiguriert, dass er den Prozessor 102 veranlasst, den virtuellen Server 100 zu betreiben, um mindestens ein logisches WORM-Datenobjekt 108 und mindestens ein logisches Schreib-/Lese-Datenobjekt 109 zu unterstützen, um das neue logische Datenobjekt 104 aus dem gemeinsamen Pool 106 von mindestens zwei logischen Datenobjekten 108 und 109 zu initialisieren, wobei das neue logische Datenobjekt 104, in Reaktion auf einen Befehl zum Schreiben an den Anfang des logischen Datenobjekts 114, mit dem Medientypengruppen-Mitglied 110 gebunden wird, um etwaige vorher mit dem logischen Datenobjekt 107 verknüpfte Informationen 113, 115, 116 und 118 zu ersetzen. Das logische Datenobjekt wird mit der Medientypengruppe 110 gebunden, um eines der logischen Datenobjekte 107 ohne Auswerfen und Wiedereinlegen durch Einbinden des logischen Datenobjekts 107 mit einem Befehl zum Schreiben ab dem Anfang des logischen Datenobjekts 114 als das Medientypengruppen-Mitglied 110 wiederzuverwenden, um mindestens ein Datenattribut 112 an das Medientypengruppen-Mitglied 110 zu binden, um etwaige mit dem logischen Datenobjekt 117 verknüpfte vorherige Attribute 112, 115, 116, 118 und Daten 113 zu ersetzen.
-
Die 3 bis 5 zeigen beispielhafte Ablaufdiagramme der Operationen des Prozessors 102 als Schritte, die als Programmanweisungen realisiert sein können. 3 zeigt ein beispielhaftes Ablaufdiagramm von Programmanweisungen zum Veranlassen des Prozessors 102, den virtuellen Server 100 zu betreiben. Schritt 130 veranlasst den Prozessor 102, als der virtuelle Server 100 zu arbeiten, der mindestens ein logisches WORM-Datenobjekt 108 und mindestens ein Schreib-/Lese-Datenobjekt 109 unterstützt. Schritt 132 initialisiert das neue logische Datenobjekt 104 aus dem gemeinsamen Pool 106 mit dem neuen logischen Datenobjekt, das mit dem Medientypengruppen-Mitglied 110 gebunden ist. Schritt 134 verwendet eines der logischen Datenobjekte 104 als das Medientypengruppen-Mitglied 110 wieder. Schritt 136 bindet das logische Datenobjekt 104 mit einem Befehl zum Schreiben ab dem Objektanfang 114 ein, um das mindestens eine Datenattribut 112 an das Medientypengruppen-Mitglied 110 zu binden.
-
4 zeigt ein Ablaufdiagramm, welches das Beispiel der Programmanweisungen 130 und insbesondere 132 in 3 zum Veranlassen des Prozessors 102, den virtuellen Server 100 zu betreiben, wie folgt verfeinert: Schritt 138 verwendet ein logisches Datenobjekt 107 aus dem gemeinsamen Pool 106 als das neue logische Datenobjekt 104 mit seinem vorherigen Datenobjekt-WWID 115, einem vorherigen logischen Datenobjekt-Medientyp 116 und einem vorherigen Schreibeinbindungszähler 118. Schritt 140 erzeugt einen neuen weltweiten Bezeichner (WWID) 119 für das neue logische Datenobjekt 104, der wahrscheinlichkeitstheoretisch unwiederholbar ist. Schritt 142 bindet den neuen WWID 119 und das Medientypengruppen-Mitglied 110 an das logische Datenobjekt 107, um das neue logische Datenobjekt 104 anzulegen, wodurch der vorherige WWID 115, der vorherige Medientyp 116 und der vorherige Schreibeinbindungszähler 118 ersetzt werden.
-
5 zeigt ein Ablaufdiagramm, welches das Beispiel der Programmanweisungen 130 und insbesondere 134 in 3 zum Veranlassen des Prozessors 102, den virtuellen Server 100 zu betreiben, wie folgt verfeinert: Schritt 150 reagiert auf eine Einbindung des Datenobjekts 103 mit einem vorweggenommenen Schreiben ab dem Ladepunkt durch Verwenden des Datenobjekts als das logische Datenobjekt 107, um das neue logische Datenobjekt 104 anzulegen. Schritt 152 setzt den Schreibeinbindungszähler 118 zurück, wenn der neue WWID 119 und das Medientypengruppen-Mitglied 110 an das neue logische Datenobjekt 104 gebunden sind. Schritt 154 lässt das logische WORM-Datenobjekt 108 als ein ausgewähltes logisches Arbeitsdatenobjekt 107 den gemeinsamen Pool 106 zyklisch durchlaufen, wobei der gemeinsame Pool logische Arbeitsdatenobjekte umfasst, die ein logisches WORM-Datenobjekt 108 oder ein logisches Schreib-/Lese-Datenobjekt 109 sein können. Die Wiederverwendung des ausgewählten logischen Arbeitsdatenobjekts 107 erfolgt erst, nachdem der Prozessor das ausgewählte logische Arbeitsd0atenobjekt den freien Pool 106 zyklisch durchlaufen lassen hat.
-
An den Umsetzungen können Software, Firmware, Mikrocode, Hardware und jede Kombination davon beteiligt sein. Wie in 9 gezeigt, kann die Umsetzung die Form von in einem Medium wie Speicher, Speicherung und Schaltung des hierarchischen Speicherknotens 60 realisiertem Code oder realisierter Logik annehmen, wobei das Medium Hardware-Logik (z. B. ein Chip einer integrierten Schaltung, eine programmierbare Gatteranordnung (PGA (Programmable Gate Array)), eine anwendungsspezifische integrierte Schaltung (ASIC (Application Specific Integrated Circuit)) oder eine andere Schaltung, Logik oder Einheit) oder ein computerlesbares Speichermedium wie ein magnetisches Speichermedium (z. B. ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleiter-System, Halbleiter- oder Festkörperspeicher, Magnetband, eine entnehmbare Computerdiskette, einen Direktzugriffsspeicher (RAM (Random Access Memory)), einen Festwertspeicher (ROM (Read-Only Memory)), eine magnetische Festplatte und eine optische Platte, Compact-Disk-Festwertspeicher (CD-ROM), Schreib/Lese-Compact-Disk (CD-R/W (Compact Disk-Read/Write)) und DVD) umfassen kann.
-
6 zeigt ein Beispiel einer Datenspeicherungskassette 10 wie einer Magnetbandkassette, welche ein überschreibbares Magnetband 11, das auf eine Nabe 12 einer Spule 13 gewickelt ist, und einen Kassettenspeicher 14 umfasst. Ein Beispiel einer Magnetbandkassette umfasst eine auf LTO-(Linear-Tape-Open-)Technologie beruhende Kassette. Der Kassettenspeicher (CM (Cartridge Memory)) 14 umfasst zum Beispiel einen Transponder mit einer kontaktlosen Schnittstelle, welcher in der Kassette 10 untergebracht ist, zum Beispiel nachdem er im Verlauf des Zusammenbaus der Kassette durch diese eingekapselt wurde, wie es jedem Fachmann einleuchten wird. Die dargestellte Magnetbandkassette ist eine Ein-Spulen-Kassette. Magnetbandkassetten können auch Zwei-Spulen-Kassetten umfassen, in welchen das Band zwischen den Spulen der Kassette transportiert wird. Das Magnetband 11 ist üblicherweise so eingeteilt, dass es eine große Anzahl von Datenobjekten mit Daten speichert.
-
Eine Anforderung an WORM-Medien ist, dass verschiedene Instanzen von Medien mit der gleichen Datenobjekt-Seriennummer erkennbar sein müssen, um die Unversehrtheit der Daten gegen mögliches böswilliges Verhalten zu schützen. Wo das WORM-Medium oder ein Medium, das behandelt wird, als ob es ein WORM-Medium wäre, sich in einem physischen Medienobjekt befindet, kann ein in die Medienkassette 10 eingebetteter weltweiter Name verwendet werden, um zu erkennen, ob das physische Medium ersetzt wurde, und um so mögliches böswilliges Verhalten zu erkennen.
-
Daten werden nicht immer auf einem physischen Medium 11 gespeichert, dessen Ersetzung in einer physischen Kassette 10 erkannt werden kann. Vielmehr können Datenspeicherungssysteme Daten in verschiedenen Formen wie logischen oder virtuellen Daten speichern, und ein Beispiel eines solchen Systems ist im Datenspeicherungssystem 20 in 8 veranschaulicht. Hierin können Daten in einer beliebigen von verschiedenen als „Datenobjekte” oder „Objekte” bezeichneten Formen organisiert sein, wobei die Begriffe ohne Bezug auf irgendeine bestimmte Größe oder Anordnung von Daten gewählt sind.
-
Wie in den 8 und 9 gezeigt, stellt das Datenspeicherungssystem 20 Speicher für eine Vielzahl von Hostsystemen 18, 19 bereit. In einer Ausführungsform verwendet das Datenspeicherungssystem 20 vier (4) virtuelle Bandserver-Cluster 30, die durch ein Netzwerk 80 untereinander verbunden sind, wobei jeder Cluster 30 einen Virtualisierungsknoten (VN (Virtualization Node)) 40 und einen Plattenspeicher (DK (disk storage)) 50 zum Emulieren eines Bandlaufwerks oder einer Bandbibliothek für die Hosts 18, 19 enthält. Jeder Cluster umfasst außerdem einen hierarchischen Speicherknoten (HSN (Hierarchical Storage Node)) 60 zum lokalen Verschieben von Daten zwischen Plattenspeicher 50 und einer automatisierten Bandbibliothek (ATL (Automated Tape Library)) 70 sowie zum fernen Verschieben von Daten zwischen einem lokalen Plattenspeicher 50 und einem entfernten Plattenspeicher. Beispiele von Plattenspeichern umfassen ein oder mehrere Plattenlaufwerke, die zum Beispiel als eine redundante Anordnung unabhängiger Platten (RAID (Redundant Array of Independent Disks)) oder als „ein Bündel Platten” (JBOD (just a bunch of disks)) oder als eine Halbleiterplatte (SSD (solid state disk)) usw. angeordnet sind. Hierin wird ein Datenspeicherungssystem, das sowohl über einen Plattenspeicher 50 als auch über eine automatisierte Bandbibliothek 70 verfügt, als „Verbundbibliothek” bezeichnet.
-
Der Plattenspeicher 50 kann als ein virtueller Datenobjekt-Cachespeicher dienen, der logische Datenobjekte enthält, welche Datenobjekte emulieren, die auf dem Magnetband 11 in 6 gespeichert werden können Wie des weiteren in den 8 und 9 gezeigt, können die logischen Datenobjekte durch Plattenspeicher 50 für lokalen Zugriff und Fernzugriff darauf gespeichert sein und umfasst die Bibliothek 70 mindestens einen Zugriffsroboter 72 zum Einbinden physischer Bandkassetten 10 in physischen Bandlaufwerken 73 für den Zugriff auf in den physischen Bandkassetten 10 gespeicherte Datenobjekte. Zu diesem Zweck kann der Virtualisierungsknoten 40 ein Paar Band-Hintergrundroutinen 41 und 42 zum Bearbeiten von Dateien virtueller Datenobjekte, die je nachdem, wie von einem Hostsystem 18, 19 geleitet, entweder im lokalen Cache-Plattenspeicher 50 oder in einem entfernten Cache-Plattenspeicher liegen, verwenden, und ein hierarchischer Speicherknoten 60 kann einen Cluster-Verwalter 61, einen Server für netzweiten Dateizugriff 62, einen Datenverschieber 63, einen Verwalter physischer Bänder 64, einen Cachespeicher-Verwalter 65, einen Wiederabrufverwalter 66, eine Datenbank 67, eine Verwaltungsschnittstelle 68 und einen Medienverwalter 69 einsetzen.
-
Der Cluster-Verwalter 61 kann über clusterübergreifende Eigenschaftsmarken (Tokens), welche in der Datenbank 67 jedes Clusters gespeichert sind, um zu ermitteln, welcher Cluster 30 über eine aktuelle Kopie der Daten verfügt, Vorgänge zwischen Clustern 30 koordinieren und koordiniert das Kopieren von Daten zwischen Clustern. Der Server für netzweiten Dateizugriff 62 kann durch einen entfernten Cluster eine Verbindung zum Cache-Plattenspeicher 50 bereitstellen. Der Datenverschieber 63 kann die eigentlichen Datenübertragungsvorgänge für zwischen Clustern 30 ausgeführte Kopien sowie Datenübertragungen zwischen dem Cache-Plattenspeicher 50 und der Bibliothek 70 steuern.
-
Der Verwalter physischer Bänder 64 kann aus physischen Bändern bestehende Datenobjekte in der Bibliothek 70 in mehreren Pools physischer Datenobjekte verwalten, steuert die Rückgewinnung, entleiht Datenobjekte aus einem Arbeitsdatenträgerpool und gibt sie zurück und steuert die Bewegung physischer Bandkassetten 10 und der Datenobjekte zwischen Pools. Der Cachespeicher-Verwalter 65 kann ein Kopieren von Datenobjekten vom Cache-Plattenspeicher 50 zur Bibliothek 70 und jede spätere Entfernung einer redundanten Kopie der Daten im Cachespeicher 50 steuern und kann Steuersignale zum Ausgleichen des Datenflusses zwischen dem Cache-Plattenspeicher 50 und anderen Komponenten des Knotens 60 bereitstellen. Im Auftrag des Virtualisierungsknotens 40 und des Cluster-Verwalters 61 kann der Wiederabrufverwalter 66 Abrufe von Daten von der Bibliothek 70 in den Cache-Datenspeicher 50 einreihen und steuern. Die Verwaltungsschnittstelle 68 kann Informationen über virtuelle Bandserver-Cluster 30 bereitstellen und kann eine Benutzerkontrolle und eine Konfiguration des Clusters 30 gestatten. Der Medienverwalter 69 kann die Handhabung physischer Bandkassetten 10 und die Fehlerbehebung verwalten und diagnostiziert Fehler und ermittelt, ob die Fehler durch ein physisches Bandlaufwerk 73 der Bibliothek 70 oder ein physisches Bandmedium 11 verursacht wurden, um auf diese Weise geeignete Maßnahmen zu ergreifen.
-
Ein Beispiel eines Datenspeicherungssystems 20, welches die vorliegende Erfindung umsetzen kann, wird in der US-Patentanmeldungsveröffentlichung 2008/0250197 erörtert, und ein weiteres Beispiel umfasst den virtuellen Bandserver IBM® TS7700.
-
Wie in 7 gezeigt, enthält ein logisches Datenobjekt oder Datenobjekt 80 Daten, die so angeordnet sind, dass sie ein Datenobjekt oder ein physisch auf ein Magnetband 11 aufgezeichnetes Datenobjekt emulieren. Ein Magnetband 11 kann auf vielerlei Weise organisiert sein. Üblicherweise ist ein Magnetband in parallele Spuren eingeteilt, und es kann auch in mehrere parallele Wickel von Gruppen paralleler Spuren eingeteilt sein. In einem Beispiel wird das Magnetband in einer ersten Richtung in Längsrichtung bewegt, während ein Bandkopfsystem Daten bezüglich eines Wickels schreibt und liest, und umgedreht, um in der entgegengesetzten Richtung bewegt zu werden, und wird das Bandkopfsystem zu einem anderen Wickel verschoben. Im Gegensatz dazu enthält ein Plattenlaufwerk üblicherweise Daten, die auf eine serielle Weise aufgezeichnet und durch einen einzigen Kopf über der Oberfläche einer rotierenden Scheibe geschrieben und gelesen werden. Also werden die Daten eines Plattenlaufwerks üblicherweise zu einem Format umgeordnet, welches mit demjenigen eines Magnetbands übereinstimmt, und werden das Magnetband betreffende Informationen hinzugefügt, um die Daten des Magnetbands zu emulieren.
-
Übliche Konstrukte enthalten Kopfdaten 81 am Anfang des Datenobjekts oder Objekts, welchem die Benutzerdaten 83 folgen. Eine Dateiende-(EOF-)Marke 88 wie am Ende des Datenobjekts oder Objekts kann das Ende einer Datei innerhalb des Datenobjekts oder Objekts anzeigen und enthält zum Beispiel eine Dateimarke (FM) 89, und das Ende des Datenobjekts oder Objekts kann eine Anzahl von zusätzlichen Dateimarken (FM) 90 und eine Datenende-(EOD-)Marke 91 enthalten.
-
Vorgänge, bei welchen auf logische Datenobjekte zugegriffen wird, die Magnetband emulieren, erfordern, dass die Daten zuerst „eingebunden” werden, um das Laden und Einbinden eines Magnetbands in einem Magnetbandlaufwerk zu emulieren, was hierin als logische Einbindung bezeichnet wird.
-
Auf dem Gebiet der Kryptographie gilt, dass ein kryptographisches Prüfsummen-Hash schwierig noch einmal zu erzeugen ist, wenn es von einer veränderten Nutzinformation der Daten abgeleitet ist. Wenn eine Nutzinformation böswillig verändert wurde, ist es nahezu unmöglich, dass das resultierende Prüfsummen-Hash, das neu erzeugt wird, mit dem ursprünglich erzeugten Prüfsummen-Hash übereinstimmt. Das Ziel der vorliegenden Erfindung ist, einen Prüfsummenwert zu erzeugen, der genauso unwahrscheinlich noch einmal erzeugt wird. Jedoch wird die Nutzinformation nicht geschützt, aber durch Verwendung von Nonce-Feldern wird die Nutzinformation manipuliert, um einen Wert zu erzeugen, der höchstwahrscheinlich niemals wieder erzeugt wird. Beispielsweise die Verwendung eines Felds, welches wahrscheinlich niemals wieder in der Nutzinformation auftritt, wie der Zeitstempel, macht es sogar noch unwahrscheinlicher, dass das resultierende Prüfsummen-Hash ein zweites Mal erzeugt wird. Eine solche resultierende Prüfsumme kann als einmaliger WORM-Bezeichner verwendet werden. Bei geeigneten Nonce-Feldern kann eine Prüfsumme einen 12 Byte langen weltweiten Bezeichner (WWID) ergeben, welcher für eine Instanz eines logischen WORM-Datenobjekts einmalig ist, wie oben beschrieben.
-
Nachdem der einmalige WORM-Bezeichner erzeugt und an das Datenobjekt gebunden ist, gibt es wahrscheinlich keinen Algorithmus, der den gleichen Bezeichner für das jeweilige Datenobjekt oder Datenobjekt identisch erzeugen kann. Es ist wahrscheinlichkeitstheoretisch belanglos unwahrscheinlich, dass der einmalige WORM-Bezeichner für die gleiche VOLSER in demselben Server oder derselben Bibliothek oder in irgendeinem Server oder irgendeiner Bibliothek auf der Welt noch einmal erzeugt wird. Man geht davon aus, dass, wenn eine böswillige Person es geschafft hat, die für die Nutzinformation verwendeten Felder zu verändern, diese Person bereits zahlreiche sichere Schnittstellen einschließlich des direkten Zugriffs auf die Rohdaten, welche das Prüfsummen-Hash vorrangig zu schützen versucht, überwunden hat. Deshalb konzentriert sich die Robustheit des Algorithmus vor allem auf unerwartete Prüfsummen-Hash-Kollisionen, um Mängel im Algorithmus selbst zu beheben oder zu erkennen.
-
Zusätzlicher Schutz umfasst das Führen eines Schreibeinbindungszählers bezüglich des logischen Datenobjekts in den Kopfdaten 81, zum Beispiel als eine Eigenschaftsmarke, und das Führen des Schreibeinbindungszählers in der fortdauernden Datenbank 67. Um den Zugriff auf das logische Datenobjekt 80 von außerhalb der Steuerung zu ermöglichen, erfordert die Steuerung 60 zusätzlich, dass der Schreibeinbindungszähler der Kopfdaten entweder gleich dem Schreibeinbindungszähler der fortdauernden Datenbank oder um den Wert eins größer als dieser ist.
-
In einem Beispiel ist die Steuerung
60 so konfiguriert, dass sie den Schreibeinbindungszähler jedes Mal um eins hochzählt, wenn das logische Datenobjekt logisch eingebunden wird und Daten richtig an das logische Datenobjekt angefügt werden. Versuche, WORM-Daten unrichtig anzufügen, führen voraussichtlich dazu, dass WORM-Bedienungsfehler auftreten. Ein Beispiel eines Verfahrens zum Anfügen von Daten an vorhandene WORM-Daten wird in der aufgenommenen Patentschrift
'810 erörtert.
-
Wo das logische Objekt durch die Steuerung als ein Magnetband-Objekt gekennzeichnet ist, welches ein Magnetband-Datenobjekt oder Objekt emuliert, umfassen ferner die Schreibeinbindung und der externe Zugriff jeweils eine logische Einbindung einer logischen Magnetbandkassette, wie oben erörtert.
-
Der Grund, aus welchem der Schreibeinbindungszähler der Kopfdaten entweder gleich dem Schreibeinbindungszähler der fortdauernden Datenbank oder um den Wert eins größer als dieser sein soll, liegt darin, dass einem etwaigen Anfügefehler Rechnung getragen werden soll, wo die Einheit/der Server/das System nach Aktualisieren des Schreibeinbindungszählers für die Datenbank 67, aber vor Aktualisieren der Kopfdaten 81 einen Fehler erleidet.
-
Wenn bei einer logischen Einbindung nicht alle 12 Byte der einmaligen WORM-Bezeichner-Eigenschaftsmarke der Datenbank und der Kopfdaten identisch sind, schlägt der Einbindevorgang für das logische Datenobjekt fehl, zum Beispiel mit einem Einbindeabschluss-Fehlercode. Selbst wenn die einmalige WORM-Bezeichner-Eigenschaftsmarke der Datenbank und der Kopfdaten übereinstimmen, aber der Schreibeinbindungszähler der Kopfdaten nicht entweder gleich dem Schreibeinbindungszähler der fortdauernden Datenbank oder um den Wert eins größer als dieser ist, schlägt der Einbindevorgang ebenso mit einem Fehlercode fehl. Eine Eingriffsmöglichkeit kann bereitgestellt sein, um einer unerwarteten und nicht böswillig herbeigeführten Situation wie während eines Datenwiederherstellungsvorgangs Rechnung zu tragen.
-
Die Datenbank 67 wird als fortdauernd geführt, indem ein unabsichtliches Überschreiben mindestens des Teils der Datenbank verhindert wird, welcher die einmaligen WORM-Bezeichner und die Schreibeinbindungszähler, welche mit den logischen Bezeichnern der in ihrer Unversehrtheit geschützten logischen Datenobjekte verknüpft sind, enthält.
-
Um die Unversehrtheit der WORM-Daten für das Datenspeicherungssystem 20 oder die Verbundbibliothek bereitzustellen, werden die einmaligen WORM-Bezeichner und die Schreibeinbindungszähler zwischen allen Datenbanken 67 für jeden einzelnen der Cluster 30 zum Beispiel über das Netzwerk 80 synchronisiert. Wenn ein logisches WORM-Datenobjekt von einem Plattenspeicher 50 oder einer Bibliothek 70 in einem Cluster über das Netzwerk 80 oder durch Überführung eines physischen Bands 10 in einem Plattenspeicher 50 oder eine Bibliothek 70 in einem anderen Cluster übertragen wird, sorgt somit die Datenbank 67 für diesen Cluster auch für die Unversehrtheit der Daten bezüglich des logischen WORM-Datenobjekts, wodurch die Unversehrtheit der Daten für das gesamte Speicherungssystem 20 bereitgestellt wird.
-
Wie oben erörtert, kann der Gesamt-Lebenszyklus eines logischen Datenobjekts 80, sowohl wenn es in einem Server als auch wenn es auf einem physischen Medium gespeichert ist, ungeschützte Stellen mit sich bringen, wo sein Inhalt gefährdet sein kann. Zum Beispiel kann ein anderer unabhängiger Server Daten mit der gleichen Datenobjekt-Seriennummer schreiben, die in eine andere physische Bandkassette gestapelt werden können. Wenn diese physische Kassette umetikettiert und fälschlicherweise in den ursprünglichen Server eingelegt wird, kann ihr Inhalt einschließlich des gestapelten logischen Datenobjekts möglicherweise nicht als anders erkannt werden. Außerdem kann es möglich sein, dass Mikrocode-Probleme Laufzeit- oder Datenanomalien mit sich bringen, wo logische Datenobjekte durch alte Versionen ersetzt werden können.
-
Wie in den 8, 9 und 7 gezeigt, ist eine Steuerung wie der hierarchische Speicherknoten 60 so konfiguriert, dass sie die Unversehrtheit von Daten wie einem logischen WORM-Datenobjekt gegen mögliches böswilliges Verhalten schützt, indem sie einem logischen Datenobjekt einen einmaligen WORM-Bezeichner zuweist und den einmaligen WORM-Bezeichner als mit dem logischen Bezeichner verknüpft in einer Datenbank wie der durch die Steuerung als fortdauernd geführten Datenbank 67 speichert. Ein Datenspeicher wie der Virtualisierungsknoten 40, der Platten-Datenspeicher 50 oder die Bibliothek 70 ist dafür konfiguriert, das durch den logischen Bezeichner identifizierte logische Datenobjekt 80 zusammen mit Kopfdaten 81 mit dem einmaligen WORM-Bezeichner zu schreiben. Um den Zugriff auf das logische Datenobjekt von außerhalb der Steuerung zu ermöglichen, erfordert die Steuerung 60, dass der einmalige WORM-Bezeichner in den Kopfdaten 81 eines logischen Datenobjekts 80 mit dem einmaligen WORM-Bezeichner der permanenten Datenbank 67 für das logische Objekt übereinstimmt.
-
Die Datenbank 67 kann die Metadaten bezüglich des logischen Datenobjekts enthalten, und der einmalige WORM-Bezeichner für ein logisches Datenobjekt wird mit den Metadaten für das logische Datenobjekt gespeichert. In einem Beispiel ist der logische Bezeichner des logischen Datenobjekts eine Datenobjekt-Seriennummer oder „VOLSER”. In einem Beispiel ist der einmalige WORM-Bezeichner genauso lang wie ein WWN (World Wide Name – weltweiter Name), zum Beispiel 12 Byte.
-
Damit er „einmalig” ist, wird der einmalige WORM-Bezeichner WWN so erzeugt, dass es wahrscheinlichkeitstheoretisch unwahrscheinlich ist, dass er für dieselbe VOLSER zweimal erzeugt wird. In einer Ausführungsform wird der einmalige WORM-Bezeichner aus einem mit Nonce-(Numbers-used-once-)Feldern zusammenhängenden Prüfsummen-Hash-Wert gebildet, welche mindestens den logischen Bezeichner (VOLSER) des logischen Datenobjekts, eine hochgezählt werdende Eigenschaftsmarke und einen Zeitstempel umfassen. Der Prüfsummen-Hash-Wert kann zum Beispiel ein kryptographisches Prüfsummen-Hash von mehr als 12 Byte umfassen, von welchen die niedrigstwertigen Bits abgeschnitten werden, um die linken, höchstwertigen Bits zu behalten. Ein spezielles Beispiel umfasst ein kryptographisches „Message-Digest-5”-(MD5-)Prüfsummen-Hash von 128 Bit, welches auf 96 Bit verkürzt ist.
-
Nachdem der einmalige WORM-Bezeichner erzeugt und an das Datenobjekt gebunden ist, gibt es wahrscheinlich keinen Algorithmus, welcher den gleichen Bezeichner für das jeweilige Datenobjekt oder Datenobjekt identisch erzeugen kann. Es ist wahrscheinlichkeitstheoretisch belanglos unwahrscheinlich, dass der einmalige WORM-Bezeichner für die gleiche VOLSER in demselben Server oder derselben Bibliothek oder in irgendeinem Server oder irgendeiner Bibliothek auf der Welt noch einmal erzeugt wird. Man geht davon aus, dass, wenn eine böswillige Person es geschafft hat, die für die Nutzinformation verwendeten Felder zu verändern, diese Person bereits zahlreiche sichere Schnittstellen einschließlich des direkten Zugriffs auf die Rohdaten, welche das Prüfsummen-Hash vorrangig zu schützen versucht, überwunden hat. Deshalb konzentriert sich die Robustheit des Algorithmus vor allem auf unerwartete Prüfsummen-Hash-Kollisionen, um Mängel im Algorithmus selbst zu beheben oder zu erkennen.
-
Die
US-Patentschriften 6 982 846 und
7 193 803 beschreiben Datenspeicherkassetten mit überschreibbarem Medium, aber manipulationssicherer, kassettengesteuerter Aufzeichnung im Modus „Einmal beschreibbar”. Die
US-Patentschrift 6 339 810 beschreibt das Behandeln überschreibbarer Datenspeichermedien als „einmal beschreibbar” durch automatisches Vorrücken eines Schreibanfügebegrenzers und Betreiben des Datenspeicherlaufwerks in einer Weise, die Veränderungen an den Daten vor dem Schreibanfügebegrenzer verhindert.
-
Der Fachmann wird erkennen, dass verschiedenartige Änderungen und Abwandlungen der soeben beschriebenen bevorzugten Ausführungsformen konfiguriert werden können, ohne von Geist und Umfang der Erfindung abzuweichen. Daher versteht es sich von selbst, dass die Erfindung innerhalb des Umfangs der beigefügten Ansprüche auch anders als hierin speziell beschrieben umgesetzt werden kann.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- US 6339810 [0052, 0063]
- US 6982846 [0063]
- US 7193803 [0063]