DE112010004076T5 - Wiederverwendung Logischer Datenobjekte in einem Virtuellen Server - Google Patents

Wiederverwendung Logischer Datenobjekte in einem Virtuellen Server Download PDF

Info

Publication number
DE112010004076T5
DE112010004076T5 DE112010004076T DE112010004076T DE112010004076T5 DE 112010004076 T5 DE112010004076 T5 DE 112010004076T5 DE 112010004076 T DE112010004076 T DE 112010004076T DE 112010004076 T DE112010004076 T DE 112010004076T DE 112010004076 T5 DE112010004076 T5 DE 112010004076T5
Authority
DE
Germany
Prior art keywords
logical
data object
data
worm
write
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE112010004076T
Other languages
English (en)
Inventor
Joseph Swingler
Jonathan Wayne Peake
Thomas William Bish
Erika Marianna Dawson
Michael William Wood
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112010004076T5 publication Critical patent/DE112010004076T5/de
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0686Libraries, e.g. tape libraries, jukebox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

Ein virtuelles Bandsystem, das mindestens ein logisches, einmal beschreibbares und dann nur noch lesbares (WORM-)Band und mindestens ein logisches Schreib-/Lese-Band unterstützt, umfasst einen Prozessor, der so konfiguriert ist, dass er eine erste Aufgabe und/oder eine zweite Aufgabe ausführt. Die erste Aufgabe initialisiert ein neues logisches Datenobjekt aus einem einzigen Pool von mindestens zwei logischen Datenobjekten, wobei das mit einem Mitglied einer Medientypengruppe gebundene neue logische Datenobjekt aus einem WORM-Datenobjekt oder einem Schreib-/Lese-Datenobjekt besteht. Die zweite Aufgabe verwendet, ohne manuelles Auswerfen und Wiedereinlegen, eines der logischen Datenobjekte wieder. Die Wiederverwendung kann den Prozessor umfassen, der so konfiguriert ist, dass er das logische Datenobjekt einen freien Pool als ein ausgewähltes logisches Arbeitsdatenobjekt zyklisch durchlaufen lässt und das ausgewählte logische Arbeitsdatenobjekt mit einem Befehl zum Schreiben ab dem Bandanfang einbindet, um mindestens ein Datenattribut an das WORM-Datenobjekt zu binden.

Description

  • 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]

Claims (23)

  1. Virtueller Server, der mindestens ein logisches, einmal beschreibbares und dann nur noch lesbares (WORM-)Datenobjekt und mindestens ein logisches Schreib-/Lese-Datenobjekt unterstützt, wobei der virtuelle Server Folgendes umfasst: einen Prozessor, der so konfiguriert ist, dass er ein logisches Datenobjekt aus einem gemeinsamen Pool von mindestens zwei logischen Datenobjekten initialisiert, 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, wobei die Medientypengruppen-Mitglieder ein logisches WORM-Datenobjekt und ein logisches Schreib-/Lese-Datenobjekt umfassen; und den Prozessor, der so konfiguriert ist, 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.
  2. Virtueller Server nach Anspruch 1, der außerdem Folgendes umfasst: den Prozessor, der so konfiguriert ist, dass er eines der logischen WORM-Datenobjekte zur Wiederverwendung als ein neues logisches WORM-Datenobjekt auswählt, wobei der Prozessor an das ausgewählte logische WORM-Datenobjekt gebundene Datenattribute beibehält, bis festgestellt ist, dass das ausgewählte logische WORM-Datenobjekt für eine Wiederverwendung zur Verfügung steht; den Prozessor, der dem ausgewählten logischen WORM-Datenobjekt, unter Beibehaltung der an das ausgewählte logische WORM-Datenobjekt gebundenen Datenattribute, mindestens ein vorläufiges Datenattribut zuweist; und den Prozessor, der das ausgewählte logische WORM-Datenobjekt einbindet und einen Befehl zum Schreiben ab dem Anfang des logischen Datenobjekts empfängt, 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.
  3. Virtueller Server nach Anspruch 2, der außerdem Folgendes umfasst: den Prozessor, der so konfiguriert ist, dass er eines der logischen WORM-Datenobjekte zur Wiederverwendung als ein neues logisches Schreib-/Lese-Datenobjekt auswählt, wobei der Prozessor an das ausgewählte logische WORM-Datenobjekt gebundene Datenattribute beibehält, bis festgestellt ist, dass das ausgewählte logische WORM-Datenobjekt für eine Wiederverwendung zur Verfügung steht; den Prozessor, der dem ausgewählten logischen WORM-Datenobjekt, unter Beibehaltung der an das ausgewählte logische WORM-Datenobjekt gebundenen Datenattribute, mindestens ein vorläufiges Datenattribut zuweist; und den Prozessor, der das ausgewählte logische WORM-Datenobjekt einbindet und einen Befehl zum Schreiben ab dem Anfang des logischen Datenobjekts empfängt, um mit dem ausgewählten logischen WORM-Datenobjekt verknüpfte Datenattribute und Daten zu entfernen, um das ausgewählte logische WORM-Datenobjekt als das neue logische Schreib-/Lese-Datenobjekt wiederzuverwenden.
  4. Virtueller Server nach Anspruch 2, der außerdem Folgendes umfasst: den Prozessor, der so konfiguriert ist, dass er eines der logischen Schreib-/Lese-Datenobjekte zur Wiederverwendung als ein neues logisches WORM-Datenobjekt auswählt, wobei der Prozessor mit dem ausgewählten logischen Schreib-/Lese-Datenobjekt verknüpfte Daten beibehält, bis festgestellt ist, dass das ausgewählte logische Schreib-/Lese-Datenobjekt für eine Wiederverwendung zur Verfügung steht; den Prozessor, der dem ausgewählten logischen Schreib-/Lese-Datenobjekt, unter Beibehaltung der mit dem ausgewählten logischen Schreib-/Lese-Datenobjekt verknüpften Daten, mindestens ein vorläufiges Datenattribut zuweist; und den Prozessor, der das ausgewählte logische Schreib-/Lese-Datenobjekt einbindet und einen Befehl zum Schreiben ab dem Anfang des logischen Datenobjekts empfängt, um mindestens ein Datenattribut an das ausgewählte logische Schreib-/Lese-Datenobjekt zu binden, um mit dem ausgewählten logischen Schreib-/Lese-Datenobjekt verknüpfte Daten zu ersetzen, um das ausgewählte logische Schreib-/Lese-Datenobjekt als das neue logische WORM-Datenobjekt wiederzuverwenden.
  5. Virtueller Server nach Anspruch 2, der außerdem Folgendes umfasst: das mindestens eine dem ausgewählten logischen WORM-Datenobjekt zugewiesene vorläufige Datenattribut, welches während des Einbindens des ausgewählten logischen WORM-Datenobjekts dem Prozessor bereitgestellt wird; den Prozessor, der durch Ausgeben des Befehls zum Schreiben an den Anfang des logischen Datenobjekts ermittelt, ob das ausgewählte logische WORM-Datenobjekt für eine Wiederverwendung als das neue logische WORM-Datenobjekt zur Verfügung steht; und wenn der Befehl zum Schreiben an den Anfang des logischen Datenobjekts nicht ausgegeben wird, werden die mit dem ausgewählten logischen WORM-Datenobjekt verknüpften Daten und die an das logische WORM-Datenobjekt gebundenen Datenattribute beibehalten und die vorläufigen Datenattribute verworfen.
  6. Virtueller Server nach Anspruch 1, wobei der gemeinsame Pool logische Arbeitsdatenobjekte umfasst, wobei die logischen Arbeitsdatenobjekte mindestens ein logisches WORM-Datenobjekt und mindestens ein logisches Schreib-/Lese-Datenobjekt umfassen.
  7. Virtueller Server nach Anspruch 6, wobei eine Wiederverwendung des logischen Datenobjekts nur erfolgen kann, wenn das logische Datenobjekt aus einem Pool von logischen Arbeitsdatenobjekten ausgewählt wird oder wenn das logische Datenobjekt ein neu in den virtuellen Server eingefügtes logisches Datenobjekt ist.
  8. Virtueller Server nach Anspruch 6, wobei der Prozessor so konfiguriert ist, dass er das logische WORM-Datenobjekt den freien Pool als ein ausgewähltes logisches Arbeitsdatenobjekt zyklisch durchlaufen lässt.
  9. Virtueller Server nach Anspruch 7, wobei eine Wiederverwendung eines der logischen Arbeitsdatenobjekte erst erfolgt, nachdem der Prozessor das logische Arbeitsdatenobjekt den freien Pool als ein ausgewähltes logisches Arbeitsdatenobjekt zyklisch durchlaufen lassen hat.
  10. Virtueller Server nach Anspruch 7, wobei das logische Arbeitsdatenobjekt nur dann in einen Pool von logischen Arbeitsdatenobjekten verschoben wird, wenn der Prozessor festgestellt hat, dass die darauf gespeicherten Daten verfallen sind und das logische Arbeitsdatenobjekt für eine Wiederverwendung zur Verfügung steht.
  11. Virtueller Server nach Anspruch 1, wobei der Prozessor so konfiguriert ist, dass er eines der logischen Datenobjekte ohne Auswerfen und Wiedereinlegen als das Mitglied der Medientypengruppe wiederverwendet.
  12. Virtueller Server nach Anspruch 1, der außerdem einen Speicher umfasst, welcher für das Speichern von mit dem Prozessor funktionierenden Anweisungen konfiguriert ist, wobei die Anweisungen Folgendes umfassen: Veranlassen des Prozessors, den virtuellen Server mit dem mindestens einen logischen WORM-Datenobjekt und dem mindestens einen logischen Schreib-/Lese-Datenobjekt zu betreiben; Initialisieren des logischen Datenobjekts aus dem gemeinsamen Pool der logischen Datenobjekte, wobei das logische Datenobjekt, in Reaktion auf den Befehl zum Schreiben an den Anfang des logischen Datenobjekts, mit dem Mitglied der Medientypengruppe gebunden wird; und 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.
  13. Verfahren zum Betreiben eines virtuellen Servers, der mindestens ein logisches, einmal beschreibbares und dann nur noch lesbares (WORM-)Datenobjekt und mindestens ein logisches Schreib-/Lese-Objekt unterstützt, wobei das Verfahren die folgenden Schritte umfasst: 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, wobei das Mitglied der Medientypengruppe ein logisches WORM-Datenobjekt und ein logisches Schreib-/Lese-Datenobjekt umfasst; und 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.
  14. Verfahren nach Anspruch 13, das außerdem Folgendes umfasst: Auswählen eines logischen Datenobjekts aus dem gemeinsamen Pool; Ermitteln, ob das ausgewählte logische Datenobjekt ein logisches WORM-Datenobjekt ist; Ermitteln, ob das ausgewählte logische WORM-Datenobjekt für eine Wiederverwendung als ein neues logisches WORM-Datenobjekt zur Verfügung steht; Beibehalten der an das ausgewählte logische WORM-Datenobjekt gebundenen Datenattribute, bis festgestellt ist, dass das ausgewählte logische WORM-Datenobjekt für eine Wiederverwendung zur Verfügung steht; Zuweisen mindestens eines vorläufigen Datenattributs an das ausgewählte logische WORM-Datenobjekt unter Beibehaltung der an das ausgewählte logische WORM-Datenobjekt gebundenen Datenattribute; und Einbinden des ausgewählten logischen WORM-Datenobjekts und Empfangen eines Befehls 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.
  15. Verfahren nach Anspruch 14, das außerdem Folgendes umfasst: wenn festgestellt wird, dass das ausgewählte logische Datenobjekt ein logisches WORM-Datenobjekt ist, dann; Ermitteln, ob das ausgewählte logische Datenobjekt ein logisches WORM-Datenobjekt zur Wiederverwendung als ein neues logisches Schreib-/Lese-Datenobjekt ist; Beibehalten der an das ausgewählte logische WORM-Datenobjekt gebundenen Datenattribute, bis festgestellt ist, dass das ausgewählte logische WORM-Datenobjekt für eine Wiederverwendung zur Verfügung steht; Zuweisen mindestens eines vorläufigen Datenattributs an das ausgewählte logische WORM-Datenobjekt unter Beibehaltung der an das ausgewählte logische WORM-Datenobjekt gebundenen Datenattribute; und Einbinden des ausgewählten logischen WORM-Datenobjekts und Empfangen eines Befehls zum Schreiben ab dem Anfang des logischen Datenobjekts, um mit dem ausgewählten logischen WORM-Datenobjekt verknüpfte Datenattribute und Daten zu entfernen, um das ausgewählte logische WORM-Datenobjekt als das neue logische Schreib-/Lese-Datenobjekt wiederzuverwenden.
  16. Verfahren nach Anspruch 14, das außerdem Folgendes umfasst: wenn festgestellt wird, dass das ausgewählte logische Datenobjekt ein logisches Schreib-/Lese-Datenobjekt ist, dann; Ermitteln, ob das ausgewählte logische Schreib-/Lese-Datenobjekt ein logisches Schreib-/Lese-Datenobjekt zur Wiederverwendung als ein neues logisches WORM-Datenobjekt ist; Beibehalten der mit dem ausgewählten logischen Schreib-/Lese-Datenobjekt verknüpften Daten, bis festgestellt ist, dass das ausgewählte logische Schreib-/Lese-Datenobjekt für eine Wiederverwendung zur Verfügung steht; Zuweisen mindestens eines vorläufigen Datenattributs an das ausgewählte logische Schreib-/Lese-Datenobjekt unter Beibehaltung der mit dem ausgewählten logischen Schreib-/Lese-Datenobjekt verknüpften Daten; und Einbinden des ausgewählten logischen Schreib-/Lese-Datenobjekts und Empfangen eines Befehls zum Schreiben ab dem Anfang des logischen Datenobjekts, um mindestens ein Datenattribut an das ausgewählte logische Schreib-/Lese-Datenobjekt zu binden, um mit dem ausgewählten logischen Schreib-/Lese-Datenobjekt verknüpfte Daten zu ersetzen, um das ausgewählte logische Schreib-/Lese-Datenobjekt als das neue logische WORM-Datenobjekt wiederzuverwenden.
  17. Verfahren nach Anspruch 14, das außerdem Folgendes umfasst: Bereitstellen des mindestens einen dem ausgewählten logischen WORM-Datenobjekt zugewiesenen vorläufigen Datenattributs während des Einbindens des ausgewählten logischen WORM-Datenobjekts an den Prozessor; Ermitteln, ob das ausgewählte logische WORM-Datenobjekt für eine Wiederverwendung als das neue logische WORM-Datenobjekt zur Verfügung steht, durch Ausgeben des Befehls zum Schreiben an den Anfang des logischen Datenobjekts; und wenn der Befehl zum Schreiben an den Anfang des logischen Datenobjekts nicht ausgegeben wird, Beibehalten der mit dem ausgewählten logischen WORM-Datenobjekt verknüpften Daten und der an das logische WORM-Datenobjekt gebundenen Datenattribute und Verwerfen der vorläufigen Datenattribute.
  18. Verfahren nach Anspruch 13, wobei der gemeinsame Pool logische Arbeitsdatenobjekte umfasst, wobei die logischen Arbeitsdatenobjekte mindestens ein logisches WORM-Datenobjekt und mindestens ein logisches Schreib-/Lese-Datenobjekt umfassen.
  19. Verfahren nach Anspruch 18, wobei eine Wiederverwendung des logischen Datenobjekts nur erfolgen kann, wenn das logische Datenobjekt aus einem Pool von logischen Arbeitsdatenobjekten ausgewählt wird oder wenn das logische Datenobjekt ein neu in den virtuellen Server eingefügtes logisches Datenobjekt ist.
  20. Verfahren nach Anspruch 19, wobei eine Wiederverwendung eines der logischen Arbeitsdatenobjekte erst erfolgt, nachdem der Prozessor das logische Arbeitsdatenobjekt den freien Pool als ein ausgewähltes logisches Arbeitsdatenobjekt zyklisch durchlaufen lassen hat.
  21. Verfahren nach Anspruch 19, wobei das logische Arbeitsdatenobjekt nur dann in einen Pool von logischen Arbeitsdatenobjekten verschoben wird, wenn der Prozessor festgestellt hat, dass die darauf gespeicherten Daten verfallen sind und das logische Arbeitsdatenobjekt für eine Wiederverwendung zur Verfügung steht.
  22. Computerprogramm-Produkt, das Folgendes umfasst: ein computernutzbares Medium, auf welchem computernutzbarer Programmcode verkörpert ist, wobei der computernutzbare Programmcode computernutzbaren Programmcode umfasst, der so konfiguriert ist, dass er einen Prozessor veranlasst, einen virtuellen Server zu betreiben, der so konfiguriert ist, dass er mindestens ein logisches, einmal beschreibbares und dann nur noch lesbares (WORM-)Datenobjekt und mindestens ein logisches Schreib-/Lese-Datenobjekt unterstützt, wobei der Programmcode außerdem so konfiguriert ist, dass er die Schritte eines jeden der Ansprüche 13 bis 21 ausführt.
  23. Virtueller Server, der mindestens ein logisches, einmal beschreibbares und dann nur noch lesbares (WORM-)Datenobjekt und mindestens ein logisches Schreib-/Lese-Datenobjekt unterstützt, wobei der virtuelle Server Folgendes umfasst: einen Prozessor, der so konfiguriert ist, dass er entweder ein logisches WORM-Datenobjekt oder ein logisches Schreib-/Lese-Datenobjekt zur Wiederverwendung als ein neues logisches WORM-Datenobjekt auswählt, wobei der Prozessor an das ausgewählte logische Datenobjekt gebundene Datenattribute beibehält, bis festgestellt ist, dass das ausgewählte logische Datenobjekt für eine Wiederverwendung zur Verfügung steht; den Prozessor, der dem ausgewählten logischen Datenobjekt, unter Beibehaltung der an das ausgewählte logische Datenobjekt gebundenen Datenattribute, mindestens ein vorläufiges Datenattribut zuweist; und den Prozessor, der das ausgewählte logische Datenobjekt einbindet und einen Befehl zum Schreiben ab dem Anfang des logischen Datenobjekts empfängt, um mindestens ein Datenattribut an das ausgewählte logische Datenobjekt zu binden, um mit dem ausgewählten logischen Datenobjekt verknüpfte Datenattribute und Daten zu ersetzen, um das ausgewählte logische Datenobjekt als das neue logische WORM-Datenobjekt wiederzuverwenden.
DE112010004076T 2009-12-10 2010-11-11 Wiederverwendung Logischer Datenobjekte in einem Virtuellen Server Ceased DE112010004076T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/635,627 US20110145517A1 (en) 2009-12-10 2009-12-10 Dynamic reuse and reconfiguration of logical data objects in a virtual tape system
US12/635,627 2009-12-10
PCT/EP2010/067287 WO2011069772A1 (en) 2009-12-10 2010-11-11 Logical data object reuse in a virtual server

Publications (1)

Publication Number Publication Date
DE112010004076T5 true DE112010004076T5 (de) 2012-10-25

Family

ID=43530668

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112010004076T Ceased DE112010004076T5 (de) 2009-12-10 2010-11-11 Wiederverwendung Logischer Datenobjekte in einem Virtuellen Server

Country Status (5)

Country Link
US (3) US20110145517A1 (de)
CN (1) CN102713851B (de)
DE (1) DE112010004076T5 (de)
GB (1) GB2488072B (de)
WO (1) WO2011069772A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8924673B2 (en) 2009-12-10 2014-12-30 International Business Machines Corporation Dynamic reuse and reconfiguration of logical data objects in a virtual tape system

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8473587B1 (en) * 2010-05-20 2013-06-25 Gogrid, LLC System and method for caching server images in a hosting system
CN103973634B (zh) * 2013-01-24 2015-03-18 腾讯科技(深圳)有限公司 应用数据创建方法和相关装置及网络系统
JP6399382B2 (ja) * 2014-01-08 2018-10-03 パナソニックIpマネジメント株式会社 認証システム
US9336815B1 (en) * 2015-04-07 2016-05-10 Spectra Logic, Corporation Dynamic write once read many tape cartridge designation
US9917896B2 (en) * 2015-11-27 2018-03-13 Netapp Inc. Synchronous replication for storage area network protocol storage
CN106817399A (zh) * 2015-12-02 2017-06-09 中兴通讯股份有限公司 虚拟网络硬盘挂载方法、局域网服务器、用户终端和系统
US11200207B1 (en) * 2016-09-29 2021-12-14 EMC IP Holding Company LLC Compliance namespace separation to achieve snapshot based consistency across failover-failback while maintaining data retention regulation compliance
US10430602B2 (en) 2016-12-16 2019-10-01 International Business Machines Corporation Tape processing offload to object storage
US11290532B2 (en) 2016-12-16 2022-03-29 International Business Machines Corporation Tape reconstruction from object storage
US10795760B2 (en) * 2017-03-20 2020-10-06 Samsung Electronics Co., Ltd. Key value SSD
CN109284621B (zh) * 2017-07-19 2022-10-25 阿里巴巴集团控股有限公司 数据保护/恢复方法和装置以及数据存储/保护方法
CN107766000A (zh) * 2017-10-16 2018-03-06 北京易讯通信息技术股份有限公司 一种云计算中基于分布式存储的数据安全擦除方法
CN111522645B (zh) * 2020-04-29 2023-09-12 抖音视界有限公司 对象的处理方法、装置、电子设备及计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6339810B1 (en) 2000-01-11 2002-01-15 International Business Machines Corporation Serial data storage system with automatically adjusted data protection to implement worm media with limited overwrite allowing write appending
US6982846B2 (en) 2003-05-19 2006-01-03 International Business Machines Corporation Tamper resistant write once recording of a data storage cartridge having rewritable media

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050235095A1 (en) * 2004-04-14 2005-10-20 Winarski Daniel J Write-once read-many hard disk drive using a WORM LBA indicator
US7278000B2 (en) * 2004-08-03 2007-10-02 Hitachi, Ltd. Data migration with worm guarantee
US7558839B1 (en) * 2004-12-14 2009-07-07 Netapp, Inc. Read-after-write verification for improved write-once-read-many data storage
US7558930B2 (en) * 2005-07-25 2009-07-07 Hitachi, Ltd. Write protection in a storage system allowing both file-level access and volume-level access
JP4766954B2 (ja) * 2005-08-22 2011-09-07 株式会社日立製作所 ストレージ装置、データ復旧方法及びデータアクセス方法
US7694096B2 (en) * 2005-10-21 2010-04-06 International Business Machines Corporation Apparatus, system, and method for implementing protected partitions in storage media
JP2007280096A (ja) * 2006-04-07 2007-10-25 Hitachi Ltd ログ保全方法、プログラムおよびシステム
US7774566B2 (en) * 2007-04-05 2010-08-10 International Business Machines Corporation Physical tape interchange format
US8280855B2 (en) * 2009-11-04 2012-10-02 International Business Machines Corporation Extended logical worm data integrity protection with unique worm identifier in header and database
US20110145517A1 (en) 2009-12-10 2011-06-16 International Business Machines Corporation Dynamic reuse and reconfiguration of logical data objects in a virtual tape system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6339810B1 (en) 2000-01-11 2002-01-15 International Business Machines Corporation Serial data storage system with automatically adjusted data protection to implement worm media with limited overwrite allowing write appending
US6982846B2 (en) 2003-05-19 2006-01-03 International Business Machines Corporation Tamper resistant write once recording of a data storage cartridge having rewritable media
US7193803B2 (en) 2003-05-19 2007-03-20 International Business Machines Corporation Tamper resistant write once recording of a data storage cartridge having rewritable media

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8924673B2 (en) 2009-12-10 2014-12-30 International Business Machines Corporation Dynamic reuse and reconfiguration of logical data objects in a virtual tape system
US9164921B2 (en) 2009-12-10 2015-10-20 International Business Machines Corporation Dynamic reuse and reconfiguration of logical data objects in a virtual tape system

Also Published As

Publication number Publication date
GB2488072B (en) 2017-08-16
US20150089169A1 (en) 2015-03-26
US20110145517A1 (en) 2011-06-16
CN102713851B (zh) 2015-07-29
US20120239891A1 (en) 2012-09-20
GB201208997D0 (en) 2012-07-04
US8924673B2 (en) 2014-12-30
CN102713851A (zh) 2012-10-03
US9164921B2 (en) 2015-10-20
WO2011069772A1 (en) 2011-06-16
GB2488072A (en) 2012-08-15

Similar Documents

Publication Publication Date Title
DE112010004076T5 (de) Wiederverwendung Logischer Datenobjekte in einem Virtuellen Server
DE69310908T2 (de) Verfahren und geraet um nicht loeschbare dateien auf ein speichermedium zu schreiben
DE60113586T2 (de) Übertragen von miteinander verbundenen Datenobjekten in einer verteilten Datenspeicherumgebung
DE19982999B4 (de) Computersystem und Verfahren zum Transferieren von Daten
DE69127736T2 (de) System und Verfahren zum Bestimmen des Sektorzustandes in einer Plattenspeichereinrichtung
US8538932B2 (en) Extended logical worm data integrity protection with unique worm identifier in header and database
DE10297281T5 (de) Verfahren zum elementaren Aktualisieren einer Vielzahl von Dateien
DE102013204972A1 (de) Hybride Sicherung und Wiederherstellung eines sehr grossen Dateisystems unter Verwendung von Metadaten-Abbildsicherung und herkömmlicher Sicherung
DE112011100534T5 (de) Mehrstufiger Sicherungsprozess
DE602004007925T2 (de) Verwalten einer beziehung zwischen einem zielvolumen und einem quellenvolumen
DE112015000343T5 (de) Erstellen einer Wiederherstellungskopie von einer Quelldaten-Kopie in einem Repository, das Quelldaten an verschiedenen Zeitpunkten aufweist
DE102014116393A1 (de) Verfahren und System für ein sicheres Archivieren von Daten
DE69920363T2 (de) Daten aufnahme/wiedergabgabegerät und verfahren hierfür
DE112015000222T5 (de) Zusammenführen von mehreren Zeitpunktkopien zu einer zusammengeführten Zeitpunktkopie
DE112018003585B4 (de) Verfahren, Computerprogrammprodukt und Speicherbandlaufwerk-Hardwareeinheit zum Verbessern der Deduplizierung eines Bandlaufwerkspeichers
DE3804261C2 (de)
DE102016103784A1 (de) Virtueller Bandspeicher unter Verwendung von Inter-Partitions-Kopien logischer Datenträger
DE112011102139T5 (de) Bandspeichereinheit und Schreibverfahren dafür
DE69023770T2 (de) Verfahren zum betrieb eines datenverarbeitungssystems.
DE112015003579B4 (de) Vervielfältigung von Bandkassettendaten
DE68913225T2 (de) Optisches Aufzeichnungs- und Wiedergabegerät.
DE112021005198T5 (de) Hochauflösendes Bandverzeichnis für bandgestützte Speicherung
DE60317405T2 (de) Verfahren zur Steuerung der Ausbreitung von Metadatenelementen
DE102013207606B4 (de) Verfahren zum schreiben von daten auf ein bandmedium
EP1861772B1 (de) Verfahren zum entfernen eines massenspeichersystems aus einem rechnerverbund sowie computerprogramm-produkt und rechnerverbund zur durchführung des verfahrens

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS:

Ipc: G06F0009500000

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0009500000

Ipc: G06F0012080000

R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final