PatentDe  


Dokumentenidentifikation DE10055603B4 13.12.2007
Titel Verfahren zum Zugriff auf eine Datei in einer Vielzahl von Datenspeicherbibliotheken und Datenspeicherbibliothek-System
Anmelder International Business Machines Corp., Armonk, N.Y., US
Erfinder Kishi, Gregory Tad, Oro Valley, Ariz., US;
Reid, Mark A., Tucson, Ariz., US
Vertreter Gigerich, J., Dipl.-Ing., Pat.-Anw., 81679 München
DE-Anmeldedatum 09.11.2000
DE-Aktenzeichen 10055603
Offenlegungstag 21.06.2001
Veröffentlichungstag der Patenterteilung 13.12.2007
Veröffentlichungstag im Patentblatt 13.12.2007
IPC-Hauptklasse G06F 17/30(2006.01)A, F, I, 20051017, B, H, DE
IPC-Nebenklasse G06F 15/16(2006.01)A, L, I, 20051017, B, H, DE   

Beschreibung[de]
BEREICH DER ERFINDUNG

Diese Erfindung betrifft die Speicherung von redundanten Kopien von Datenbeständen in einer Vielzahl von Datenspeicherbibliotheken, die über einen Speicher verfügen, dessen Zugriffsgeschwindigkeit auf Datenbestände (Dateien) unterschiedlich hoch ist, wie zum Beispiel einen Cachespeicher und einen Sicherungsspeicher, und insbesondere den Zugriff auf Kopien von Datenbeständen von den Datenspeicherbibliotheken.

DER ERFINDUNG ZUGRUNDE LIEGENDER ALLGEMEINER STAND DER TECHNIK

Datenverarbeitungssysteme, die mindestens einen Host umfassen, erfordern typischerweise eine große Datenspeicherkapazität. Wenn die Daten, die typischerweise als Datenbestand gespeichert werden, von den Hosts nicht sofort benötigt werden, zum Beispiel, wenn auf den Datenbestand nicht so häufig zugegriffen wird, kann die Speicherung des Datenbestands auf einem austauschbaren, wiederbeschreibbaren Datenspeichermedium wie zum Beispiel einem Magnetband oder einer optischen Platte erfolgen, und die Datenbestände können mittels eines Datenspeicherlaufwerks geschrieben und/oder gelesen werden.

Typischerweise ist das Datenspeicherlaufwerk mit dem Host oder der Verarbeitungseinheit über eine Peripherie-Schnittstelle verbunden, bei der Befehle nur von der Verarbeitungseinheit an das Datenspeicherlaufwerk übertragen werden, und das Datenspeicherlaufwerk antwortet auf diese Befehle, indem es die angeforderten Funktionen ausführt. Von dem Datenspeicherlaufwerk können keine Befehle an die angeschlossene Verarbeitungseinheit gesendet werden. Die Befehle werden typischerweise von einer Einheitensteuereinheit ausgeführt.

Wenn eine große Datenmenge gespeichert und gelegentlich darauf zugegriffen werden soll, werden Datenspeicherbibliotheken verwendet. Solche Datenspeicherbibliotheken ermöglichen einen wirksamen Zugriff auf große Datenmengen, die in einem Sicherungsspeicher von austauschbaren Datenspeichermedien abgelegt werden, wobei die Datenspeichermedien in Speicherfächern gespeichert werden, auf die durch Roboter zugegriffen wird, die von Roboter-Steuereinheiten gesteuert werden. Aufgrund der großen Menge der gespeicherten Daten verwendet eine Vielzahl von Hosts typischerweise dieselbe Datenspeicherbibliothek, und die Bibliothek enthält eine Vielzahl von Datenspeicherlaufwerken, um den Hosts den Zugriff zu gestatten. Ein Bibliotheksverwaltungsprogramm, das einen oder mehr Prozessoren oder denselben Prozessor wie die Roboter-Steuereinheit umfassen kann, überwacht typischerweise jeden Datenbestand und das Datenspeichermedium, auf dem er gespeichert ist, und es überwacht die Position des Speicherfachs eines jeden Datenspeichermediums.

Hier wird ein Bibliotheksverwaltungsprogramm, entweder mit oder ohne Roboter-Steuereinheit, als eine "Steuereinheit" oder eine "Bibliothek-Steuereinheit" für die Datenspeicherbibliothek definiert.

Wenn auf das Datenspeichermedium möglicherweise erneut zugegriffen wird, nachdem bereits ein Zugriff erfolgt ist, ist es vorteilhaft, wenn man Datenspeicherbibliotheken verwendet, die sowohl über einen Cachespeicher als auch einen Sicherungsspeicher verfügen. Die Datenspeicherbibliothek greift vom Sicherungsspeicher auf den Datenbestand des austauschbaren Datenspeichermediums zu und speichert den Datenbestand vorübergehend im Cachespeicher, so dass sofort erneut darauf zugegriffen werden kann. Das austauschbare Datenspeichermedium kann dann an ein Speicherfach zurückgegeben werden, und der Datenbestand kann aktualisiert werden, während er sich im Cachespeicher befindet, ohne dass erneut auf das austauschbare Datenspeichermedium zugegriffen werden muss. Die Kapazität des Cachespeichers ist typischerweise begrenzt, was es erforderlich macht, dass die Datenbestände in den Sicherungsspeicher umgelagert werden, damit Platz im Cachespeicher frei wird. Typischerweise wird ein Least-recently-used-(LRU-)Algorithmus verwendet, bei dem die Seite den Cachespeicher verlässt, auf die verglichen mit den anderen Seiten seit dem letzten Seitenaustausch am wenigsten zugegriffen wurde, um Datenbestände aus dem Cachespeicher in den Sicherungsspeicher umzulagern.

Es ist auch wünschenswert, einen Grad der Redundanz von Daten zu ermöglichen, damit man selbst dann einen konstanten Zugriff auf Datenbestände hat, wenn eine Datenspeicherbibliothek oder ein Kommunikationspfad zu einer Datenspeicherbibliothek nicht verfügbar ist.

Ein Beispiel für ein Datenspeicherbibliothek-System, das dazu dient, Datenbestände, die auf austauschbaren Datenspeichermedien in einer Vielzahl von Datenspeicherbibliotheken gespeichert werden, redundant zu speichern und darauf zuzugreifen, ist in der Patentanmeldung US 09/283 223 von K. F. Day III u.a. beschrieben. Die Bibliothek-Steuereinheit einer jeden Bibliothek stellt ein aktualisierbares Synchronisationstoken bereit, das jedem Datenbestand direkt zugeordnet ist. Eine Vielzahl von Steuerkomponenten wird bereitgestellt, von denen jede separat von den Hosts und mit ihnen verbunden ist sowie separat von jeder Datenspeicherbibliothek und mit ihr verbunden ist. Jede Steuerkomponente antwortet auf verschiedenen, partitionierte Datenspeicherlaufwerk-Adressen, die von den Hosts angesprochen werden. Die antwortende Steuerkomponente liefert jeden Datenbestand, der von einem Host zur Verfügung gestellt wird, an alle Datenspeicherbibliotheken und aktualisiert jedes Synchronisationstoken, das dem gelieferten Datenbestand direkt zugeordnet ist. Folglich speichern die Steuerkomponenten Zweitkopien des Datenbestands in den Datenspeicherbibliotheken, ohne dass der Host daran beteiligt ist. Bei den meisten Datenverarbeitungsanwendungen ist der Zugriff auf die aktuellsten Daten kritisch. Daher wird die Gültigkeit eines jeden Datenbestands mit Hilfe des direkt zugeordneten Synchronisationstoken überwacht, und das Synchronisationstoken wird vom Host nicht überwacht.

Der Zugriff auf einen Datenbestand im Cachespeicher kann um mindestens eine Größenordnung schneller erfolgen als der Zugriff auf einen Datenbestand im Sicherungsspeicher. Dies ist deshalb so, weil der Zugriff auf Datenbestände im Cachespeicher mit elektronischen Geschwindigkeiten oder mit der Geschwindigkeit von Festplattenlaufwerken erfolgt, während der Roboter das Datenspeichermedium, das den Datenbestand enthält, aus dessen Speicherfach abrufen und den Datenspeicher zu einem Datenspeicherlaufwerk bewegen und das Datenspeichermedium anschließend laden und den angeforderten Datenbestand lokalisieren muss. Es ist somit von Vorteil, auf Datenbestände im Cachespeicher zuzugreifen, was als "Cache-Treffer" bezeichnet wird, statt die zusätzliche Zeitspanne für den Zugriff auf Datenbestände im Sicherungsspeicher warten zu müssen, was als "Cache-Fehler" bezeichnet wird.

Triantafillou, Peter; Neilson, Carl: „Achieving Strong Consistency in a Distributed File System", IEEE Transactions On Software Engineering, Vol. 23. No.1, 1997, S. 35–55 beschreibt verschiedene Möglichkeiten einen lastabhängigen Zugriffs auf redundante Datenbestände in verschiedenen Client-Systemen mit Datencaches. Unter anderem wird der Zugriff auf einen Datenbestand über ein zentrales Token gesteuert, welchen ein Server-System einem Client-System zuordnet. Devarakonda, Murty; Kish, Bill; Mohindra, Ajay: "Recovery in the Calypso File System", ACM Transactions On Computer Systems (TOCS), ISSN: 0734-2071, S. 287–310 beschreibt ein spezielles Client-Server-System, bei dem der Zugriff auf Datenbestände über zentrale Token erfolgt, welche vom Server einzelnen Clients zugeordnet werden.

In der Patentanmeldung von K. F. Day III u.a. antwortet die Steuerkomponente auf eine Abrufanforderung für einen feststellbaren Datenbestand, indem sie alle Synchronisationstoken von den angeschlossenen Datenspeicherbibliotheken anfordert, die zu diesem Datenbestand gehören. Mit Hilfe des Synchronisationstokens ermittelt die Steuerkomponente ein gerade aktualisiertes Synchronisationstoken für den feststellbaren Datenbestand und greift auf den feststellbaren Datenbestand an der Datenspeicherbibliothek zu, die das gerade aktualisierte Synchronisationstoken hat. In der Patentanmeldung US 09/391 186 von T. w. Bish u.a., wird auf die Kopie des Datenbestands, die im Cachespeicher einer Bibliothek abgelegt ist, und nicht auf die Kopie, die im Sicherungsspeicher der anderen Bibliothek abgelegt ist, zugegriffen, wenn mehr als eine Datenspeicherbibliothek über das aktuellste Synchronisationstoken verfügt.

Wenn die Synchronisationstoken anzeigen, dass zwei Kopien die aktuellsten Kopien sind und beide Kopien im Cachespeicher und auf derselben Zugriffsebene des Cachespeichers abgelegt sind, wird bei der Patentanmeldung von Bish u.a. ein "normaler" Algorithmus, wie zum Beispiel ein rotierender Round-Robin-Algorithmus, verwendet, um die Bibliothek für den Zugriff auf den Datenbestand auszuwählen.

Solche "normalen" Algorithmen können jedoch dazu führen, dass versucht wird, auf die Daten von einer Datenspeicherbibliothek zuzugreifen, die voll und ganz mit der Ausführung von vorhandenen Jobs beschäftigt ist, so dass die relative Job-Auslastung unter den Bibliotheken nicht ausgewogen ist.

ZUSAMMENFASSUNG DER ERFINDUNG

Es ist eine Aufgabe der vorliegenden Erfindung, ein gegenüber dem Stand der Technik verbessertes Verfahren und System zur Auswahl der Datenspeicherbibliothek für den Zugriff auf eine redundante Kopie eines feststellbaren Datenbestandes (Datei) auszuwählen, um die Arbeitslast zwischen den Datenspeicherbibliotheken gleichmäßig zu verteilen.

Ein Datenspeicherbibliothek-System mit einer Vielzahl von automatischen Datenspeicherbibliotheken und mindestens einem Host oder einer Steuerkomponente greift auf eine redundante Kopie eines feststellbaren Datenbestands zu, wobei ein von einem Rechner ausführbares Verfahren angewendet wird, das den Ruhezeitstatus einer jeden Bibliothek nutzt, um die Arbeitslast gleichmäßig zu verteilen.

Jede Datenspeicherbibliothek hat eine Bibliothek-Steuereinheit und mindestens zwei Zugriffsebenen, um die feststellbaren Datenbestände zu speichern und mit unterschiedlichen Zugriffsgeschwindigkeiten darauf zuzugreifen. Die Zugriffsebenen können ein Cachespeicher sein, der mit elektronischen Geschwindigkeiten arbeitet, und ein Sicherungsspeicher, wie zum Beispiel Bandkassetten, auf die von Speicherfächern mit mechanischen Geschwindigkeiten zugegriffen werden muss. Die Bibliothek-Steuereinheit stellt ein Synchronisationstoken bereit, das jedem Datenbestand direkt zugeordnet ist und die Aktualisierungsstufe des Datenbestands angibt. Außerdem stellt das Token ein Markierungszeichen bereit, das die Zugriffsebene des feststellbaren Datenbestands in der Datenspeicherbibliothek anzeigt.

Eine Steuerkomponente fordert einen Datenbestand an, und die Bibliothek-Steuereinheit einer jeden Bibliothek ermittelt deren aktuellen Ruhezeitstatus und stellt ihn der anfordernden Steuerkomponente in codierter Form bei der Übergabe des Synchronisationstoken, das dem angeforderten Datenbestand direkt zugeordnet ist, bereit.

Die Steuerkomponente liest die Synchronisationstoken, die dem Datenbestand von den Datenspeicherbibliotheken direkt zugeordnet sind, und stellt anhand der gelesenen Token fest, ob sich eine Vielzahl der redundanten Kopien des Datenbestands auf der neuesten Aktualisierungsstufe und auf derselben Zugriffsebene und sich keine Kopien des Datenbestands auf einer schnelleren Zugriffsebene befinden, so dass die Kopien des Datenbestands in den Datenspeicherbibliotheken auf derselben schnellsten verfügbaren Zugriffsebene gespeichert werden.

Im Anschluss an die Feststellung, dass sich mindestens zwei der Kopien des Datenbestands auf derselben schnellsten verfügbaren Zugriffsebene befinden, vergleicht die Steuerkomponente den bereitgestellten Ruhezeitstatus der Datenspeicherbibliotheken, die diese Kopien speichern, und gibt an, welche Bibliothek den größeren Ruhezeitstatus bereitstellt. Die Steuerkomponente greift daraufhin auf den Datenbestand von der angegebenen Datenspeicherbibliothek zu.

Der Ruhezeitstatus kann den Prozentsatz der verfügbaren Betriebszeit, den die Bibliothek inaktiv ist, umfassen, und er kann aus dem Prozentsatz der verfügbaren Betriebszeit, den die Bibliothek inaktiv ist, und dem Prozentsatz der verfügbaren Betriebszeit, den sich die Bibliothek im E/A-Wartezustand befindet, oder aus anderen Angaben zusammengesetzt sein, die sich auf die Auslastung der Bibliothek beziehen.

Damit sich die vorliegende Erfindung besser verstehen lässt, sollte auf die folgende ausführliche Beschreibung in Verbindung mit den beigefügten Zeichnungen Bezug genommen werden.

KURZE BESCHREIBUNG DER ZEICHNUNGEN

1 ist ein Blockschaltbild, das die Verbindung von Funktionskomponenten eines Datenspeicherbibliothek-Subsystems zeigt, das gemäß einer Ausführungsform der vorliegenden Erfindung eingesetzt wird;

2 ist ein Blockschaltbild, das die Funktionskomponenten eines Beispiels einer Datenspeicherbibliothek von 1 zeigt, die gemäß einer Ausführungsform der vorliegenden Erfindung verwendet wird;

3 ist ein verallgemeinertes Diagramm von logischen Datenträgern, die auf einem einzigen physischen Datenträger zur Verwendung in einer Datenspeicherbibliothek von 1 und 2 gespeichert werden;

4A und 4B sind schematische Darstellungen von Tabellen, die Datenbeständen Synchronisationstoken zuordnen, welche direkt zu den Datenbeständen gehören, und die dazu dienen, Anzeiger, die angeben, ob der Datenbestand im Cachespeicher oder im Sicherungsspeicher abgelegt wird, anzufügen;

5 stellt die Codes für Markierungsanzeiger dar, die Speicherebenen von Datenspeicherbeständen im Cachespeicher oder im Sicherungsspeicher darstellen;

6A und 6B sind schematische Darstellungen von Tabellen, die Datenbeständen Synchronisationstoken zuordnen, welche direkt zu den Datenbeständen gehören, und die dazu dienen, Anzeiger, wie zum Beispiel diejenigen von 5, welche die Speicherebene des Datenbestands im Cachespeicher oder im Sicherungsspeicher angeben, anzufügen;

7 ist ein Flussdiagramm, das eine verallgemeinerte Ausführungsform eines Verfahrens des Datenspeicherbibliothek-Subsystems von 1 darstellt, das gemäß einer Ausführungsform der vorliegenden Erfindung angewendet wird;

8 ist eine schematische Darstellung eines Synchronisationstoken mit einem angefügten Ruhezeitstatus gemäß einer Ausführungsform der vorliegenden Erfindung;

9 ist ein Flussdiagramm, das alternative Verfahren der Umlagerung von Datenbeständen und der Anfügung von Markierungsanzeigern an die Synchronisationstoken darstellt;

10 ist ein Flussdiagramm, das ein Verfahren gemäß. einer Ausführungsform der vorliegenden Erfindung darstellt, welches dazu dient, den Ruhezeitstatus bereitzustellen, der mit der Datenspeicherbibliothek von 2 verwendet wird; und

11 ist ein Flussdiagramm, das ein Verfahren gemäß einer Ausführungsform der vorliegenden Erfindung darstellt, welches dazu dient, eine Datenspeicherbibliothek auszuwählen, um einen Datenbestand bereitzustellen, der mit einer Steuerkomponente von 1 verwendet wird.

AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG

Diese Erfindung wird in der folgenden Beschreibung der bevorzugten Ausführungsform mit Bezug auf die Figuren dargelegt, in denen gleiche Bezugszahlen dieselben oder ähnliche Elemente darstellen. Während diese Erfindung in Bezug auf die beste Art und Weise, mit der sich die Aufgaben dieser Erfindung lösen lassen, beschrieben wird, versteht der Fachmann, dass im Hinblick auf diese Lehren Veränderungen vorgenommen werden können, ohne vom Wesen oder Umfang der Erfindung abzuweichen.

Bezug nehmend auf 1, ist eine Ausführungsform eines Datenspeicherbibliothek-Subsystems 10 veranschaulicht, das die Host-Systeme 11 und 12 entsprechend der Patentanmeldung von Day III u.a., über eine Vielzahl von Steuerkomponenten 71 bis 74 redundant mit den Datenspeicherbibliotheken 14 und 15 verbindet. Die Patentanmeldung von Day III u.a. stellt die Steuerkomponenten bereit, um mehrere Datenkopien in den Datenspeicherbibliotheken zu speichern und zu überwachen. Die Überwachung erfolgt, indem jede redundante Kopie des Datenbestands mit einem direkt zugeordneten Synchronisationstoken versehen wird. Jede Steuerkomponente 71 bis 74 kommuniziert mit einem Host über eine Schnittstelle 69 und mit einer Bibliothek 14 oder 15 über eine Schnittstelle 70.

Die Host-Systeme 11 und 12 sind mit dem Datenspeicherbibliothek-Subsystem 10 verbunden und verwenden es zur Speicherung von Daten, die typischerweise als Datenbestand gespeichert werden, der von den Hosts nicht sofort benötigt wird, beispielsweise, wenn auf den Datenbestand nicht so häufig zugegriffen wird. Wenn die Daten jedoch benötigt werden, kann häufig auf die Datenbestände zugegriffen werden, und sie können ständig aktualisiert werden. Außerdem Bezug nehmend auf 2, umfasst jede Datenspeicherbibliothek somit eine "virtuelle" Bibliothek, die einen nichtflüchtigen Cachespeicher wie zum Beispiel ein Plattenlaufwerk 40 oder einen elektronischen Speicher 39 enthält, um die Datenbestände zu halten, auf die in letzter Zeit zugegriffen wurde, und sie enthält einen Sicherungsspeicher wie zum Beispiel das austauschbare Datenspeichermedium, das über die Datenbestände 18 verfügt, um Datenbestände für einen weniger häufigen Zugriff zu speichern.

Datenbestände werden der Bibliothek von einem Host und einer Steuerkomponente zur Verfügung gestellt, und der Host wartet, bis die virtuelle Bibliothek den Datenbestand in einen nichtflüchtigen Cachespeicher geschrieben hat, bevor sie dem Host ein Rücksignal liefert.

In der Patentanmeldung von Bish u.a., wird ein Cachespeicher zur Verfügung gestellt, indem bis auf eine Kopie alle redundanten Kopien des Datenbestands auf der Grundlage einer hohen Priorität in den Sicherungsspeicher umgelagert werden. Auf den Cachespeicher kann mit verhältnismäßig hohen elektronischen oder fast elektronischen Geschwindigkeiten zugegriffen werden, während auf den Sicherungsspeicher nur mit wesentlich geringeren mechanischen Geschwindigkeiten zugegriffen werden kann. Wenn sich eine der zuletzt aktualisierten Kopien im Cachespeicher und eine andere im Sicherungsspeicher befinden, wird somit in Übereinstimmung mit der Patentanmeldung von Bish u.a., auf die Kopie im Cachespeicher zugegriffen. Außerdem kann der Cachespeicher zwei Zugriffsgeschwindigkeiten haben, und es wird auf den aktuellsten Datenbestand, der sich auf der schnellsten Zugriffsebene befindet, zugegriffen.

Die vorliegende Erfindung verteilt die Arbeitslast zwischen den Bibliotheken gleichmäßig, wenn sich alle der zuletzt aktualisierten Kopien des Datenbestands auf derselben Zugriffsebene oder wenn sich mindestens zwei der zuletzt aktualisierten Kopien auf der schnellsten verfügbaren Zugriffsebene befinden.

Die Host-Systeme 11 und 12 können durch viele verschiedene Arten und eine unterschiedlich große Anzahl von Verarbeitungseinheiten, Servern oder Rechnersystemen realisiert werden. Die Datenspeicherbibliotheken 14 und 15 können beliebige ähnliche Bibliotheken zur Speicherung von austauschbaren, wiederbeschreibbaren Datenspeichermedien wie zum Beispiel Magnetbandkassetten oder optischen Platten umfassen. Ein Beispiel für eine geeignete Datenspeicherbibliothek ist der Virtual Tape Server vom Typ IBM 3949. Mehr als zwei Datenspeicherbibliotheken 14 bis 15 können bereitgestellt werden, von denen jede eine redundante Kopie eines jeden der redundanten Datenbestände speichert.

Die austauschbaren Datenspeichermedien werden in den Speicherfächern 20 gespeichert, auf die von einer Bibliothek-Steuereinheit gesteuert von mindestens einen Roboter 22 zugegriffen wird (2). Die austauschbaren Datenspeichermedien in den Speicherfächern 20, welche die Datenbestände 18 enthalten, umfassen einen Sicherungsspeicher. Eine Vielzahl von Datenspeicherlaufwerken 34 und 35 gestatten den Lese- und/oder den Schreibzugriff auf die Datenbestände 18. Die Datenspeicherbibliothek ist eine "virtuelle" Bibliothek, wobei die nichtflüchtigen Cachespeicher 39 und 40 mit den Datenspeicherlaufwerken 34 und 35 verbunden sind. Der Cachespeicher 39 kann einen elektronischen, nichtflüchtigen Speicher wie zum Beispiel einen "Flash"-Speicher oder einen Speicher mit einer Batterie für Reservestrom umfassen, und der Cachespeicher 40 kann ein oder mehr Magnetplattenlaufwerke umfassen. Die Bibliothek-Steuereinheit 30 kann ein Bibliotheksverwaltungsprogramm umfassen, das eine Datenbank 36 verwendet, um jeden Datenbestand und das Datenspeichermedium, auf dem er gespeichert ist, die Position 20 des Speicherfaches eines jeden Datenspeichermediums und jeden Datenbestand in dem nichtflüchtigen schnellen Cachespeicher 39 und dem nichtflüchtigen Cachespeicher 40 zu überwachen.

Die Datenbank 36 und der nichtflüchtige Cachespeicher 40 können dasselbe oder verschiedene Magnetplattenlaufwerke umfassen.

Die Kommunikation mit der Bibliothek erfolgt an einer Speicherschnittstelle 38 zur Bibliothek-Steuereinheit 30, zum nichtflüchtigen schnellen Cachespeicher 39 und zu den angesprochenen Laufwerken 34 und 35. Die angesprochenen Laufwerke 34 und 35 können entweder verschiedene Medien aufnehmen und/oder mit unterschiedlichen Geschwindigkeiten arbeiten. Die Datenspeicherlaufwerke 34 können beispielsweise optische Plattenlaufwerke für die Datenbestände 18 umfassen, die auf einer optischen Platte gespeichert werden, und mittels Direktzugriff-Suchläufen nach einer beliebigen Spur einen schnelleren Zugriff auf Datenbestände bieten, während die Datenspeicherlaufwerke 35 Bandlaufwerke für die Datenbestände 18 umfassen können, die auf Magnetbandkassetten gespeichert werden, welche einen linearen Zugriff auf die Datenbestände ermöglichen. Alternativ dazu können sowohl die Datenspeicherlaufwerke 34 als auch die Datenspeicherlaufwerke 35 Bandlaufwerke umfassen, jedoch können die Datenspeicherlaufwerke 34 kostspieliger sein und einen schnelleren Zugriff auf die Datenbestände bieten, oder die Datenspeicherlaufwerke 34 können den Datenspeichermedien zugeordnet werden, die eine geringere Datenspeicherkapazität, aber einen schnelleren Zugriff auf Datenbestände haben. Ein Beispiel wäre ein Datenspeichermedium mit einer geringeren Länge.

Die Steuerkomponenten 71 bis 74 sind als von den Bibliotheken getrennt gezeigt (1 und 2), doch können sich eine oder mehr Steuerkomponenten physisch in einer Bibliothek 14 oder 15 befinden und eine getrennte Platine umfassen oder Teil einer Bibliothek-Steuereinheit 30 sein. Ferner kann eine physische Bibliothek partitioniert sein, wobei jede Partition als getrennte Bibliothek mit getrennt partitionierten Speicherfächern 20, den nichtflüchtigen Cachespeichern 39 und 40, der Datenbank 36 und den Datenspeicherlaufwerken 34 und 35 behandelt wird, während sie den oder die Roboter 22 gemeinsam mit anderen benutzt. Die Bibliothek-Steuereinheit 30 kann einen oder mehr Prozessoren umfassen, und sie würde die Datenbestände getrennt überwachen und den Betrieb des Roboters gemeinsam mit anderen steuern.

Wenn sich ein Datenbestand im Sicherungsspeicher 20 befindet und ein Befehl für den Zugriff auf den Datenbestand empfangen wird, stellt die Bibliothek-Steuereinheit 30 das Datenspeichermedium und das Speicherfach 20 fest, das den Datenbestand enthält. Die Bibliothek-Steuereinheit setzt dann den Roboter 22 in Betrieb, um vom Speicherfach 20 auf das Datenspeichermedium zuzugreifen und um das Datenspeichermedium an ein Laufwerk 34 oder 35 zu übergeben. Wenn das Datenspeichermedium, das den festgestellten Datenbestand 18 enthält, an das Laufwerk übergeben und physisch in das Laufwerk eingelegt wird und dann auf den Datenbestand zugegriffen wird, stellt die Bibliothek-Steuereinheit 30 ein Signal "bereit" an der Speicherschnittstelle 38 bereit. Der Datenbestand wird dann typischerweise in den Cachespeicher 40 oder 39 eingelesen und von dem adressierenden Host mittels Datenübertragung an die Speicherschnittstelle 38 geschrieben und/oder dort gelesen.

Gemäß der vorliegenden Erfindung ist der Cachespeicher entweder als ein einzelner Cachespeicher 40 oder als mehrere Cachespeicher-Zugriffsebenen, die den schnellen Cachespeicher 39 und den Cachespeicher 40 einschließen, ausgelegt.

Sobald sich ein Datenbestand im Cachespeicher 39 oder 40 befindet, kann schnell auf ihn zugegriffen werden, oder ein empfangener Datenbestand kann schnell an den Bibliothek-Cachespeicher übertragen werden, ohne dass man darauf warten muss, dass das Datenspeichermedium geladen wird. Da der Cachespeicher nichtflüchtig ist, bleibt der Datenbestand im Speicher. Die Bibliothek-Steuereinheit 30 kann bewirken, dass der Cachespeicher der Steuerkomponente und dem Host als eine Reihe von Laufwerken mit eingelegten Datenträgern erscheint. Der Cachespeicher stellt somit eine Reihe von "virtuellen Laufwerken" dar.

Der Cachespeicher 39 und der Cachespeicher 40 haben im Verhältnis zu der enormen Anzahl an Datenbeständen 18, die im Sicherungsspeicher abgelegt werden können, eine begrenzte Kapazität. Folglich müssen die Datenbestände im Cachespeicher 39 und 40 ständig aus dem Cachespeicher in den Sicherungsspeicher umgelagert werden. Außerdem hat der Cachespeicher 39 im Vergleich zum Cachespeicher 40 eine begrenzte Kapazität. Die Umlagerung kann zunächst vom Cachespeicher 39 in den Cachespeicher 40 und anschließend vom Cachespeicher 40 in den Sicherungsspeicher 20 erfolgen. Alternativ dazu kann der Datenbestand zunächst im Cachespeicher 39 oder im Cachespeicher 40 abgelegt und direkt in den Sicherungsspeicher 20 umgelagert werden. Während ein Datenbestand umgelagert wird, wird der Teil des Cachespeichers, der zuvor durch den umgelagerten Datenbestand belegt war, "freigegeben", wodurch er zur Speicherung von einem anderen benötigten Datenbestand zur Verfügung steht.

Die Umlagerung aus dem Cachespeicher in den Sicherungsspeicher 20 kann direkt entweder in die Laufwerke 34 oder in die Laufwerke 35 erfolgen, oder die Umlagerung kann im Sicherungsspeicher fortgesetzt werden, wobei die Daten zuerst in den Sicherungsspeicher in eines der Laufwerke 34 und anschließend in einen anderen Teil des Sicherungsspeichers in eines der Laufwerke 35 umgelagert werden.

In austauschbaren Datenspeichersystemen werden typischerweise eine Vielzahl von Datenbeständen 18 auf einem einzigen physischen Datenspeichermedium, das als physischer Datenträger bezeichnet wird, gespeichert. 3 stellt einen physischen Datenträger 44, wie zum Beispiel ein Magnetband in einer Kassette, schematisch dar, der N logische Datenträger enthält und dadurch N einzelne Bandkassetten 51 bis 58 ersetzt. Die Speicherung von mehreren logischen Datenträgern auf einem einzigen physischen Datenträger wird als "Stapelung von Datenträgern" bezeichnet. In einer Konfiguration kann ein einziger physischer Datenträger bis zu 140 logische Datenträger zu je 50 MB enthalten, von denen jeder einzeln angesprochen und auf den einzeln zugegriffen werden kann. In einer anderen Konfiguration kann ein einzelner physischer Datenträger eine variable Anzahl von logischen Datenträgern veränderlicher Größe enthalten, von denen jeder einzeln angesprochen und auf den einzeln zugegriffen werden kann. Hier kann ein Datenbestand 18 einen logischen Datenträger 51 usw. umfassen, oder wenn keine logischen Datenträger bereitgestellt werden, kann ein Datenbestand 18 einen physischen Datenträger 44 umfassen.

Ein neuer physischer Datenträger wird als "temporärer" ("SCRATCH"-)Datenträger bezeichnet, und die logischen Datenträger 51 usw. werden näher bezeichnet, während sie beschrieben werden. Ein logischer Datenträger kann abgerufen und aktualisiert werden, und er wird typischerweise an einer neuen Stelle oder an einer anderen Stelle auf demselben oder einem anderen physischen Datenträger wieder beschrieben. Die ursprüngliche Position des erneut abgerufenen logischen Datenträgers ist ebenfalls ein "temporärer" Datenträger. Gelegentlich fordert die Bibliothek-Steuereinheit einen physischen Datenträger zurück, indem sie alle logischen Datenträger, die keine temporären Datenträger sind, in den Cachespeicher einliest und sie ohne Aktualisierung wieder auf einen anderen physischen Datenträger schreibt, wobei sie den ersten physischen Datenträger als "temporären" Datenträger belässt, der vollkommen neu beschrieben werden kann.

Die Bibliothek-Steuereinheit 30 verwaltet typischerweise einen Teil des Cachespeichers 39 und/oder des Cachespeichers 40, die als "temporäre" logische Datenträger zur Verfügung stehen, so dass aktualisierte oder neue logische Datenträger mit elektronischen Geschwindigkeiten beschrieben werden können, wenn ein Host eine Schreiboperation anfordert.

Die Hauptkennung sowohl für logische Datenträger als auch für physische Datenträger ist die "Datenträgerfolgenummer" oder "VOLSER" (Volume Serial Number), die eine vorher festgelegte Anzahl von Zeichen oder Leerstellen umfasst. Bei den meisten physischen Datenträgern ist die VOLSER oder eine ähnliche Kennung, die sich in eine VOLSER übersetzen lässt, in einem Kennsatz codiert, der sich auf der Seite des Datenträgers (Kassette) befindet, die von dem Bibliothek-Roboter gelesen werden kann. Somit hat der physische Datenträger 44 ebenso eine VOLSER wie die logischen Datenträger 51 bis 58. Das typische Datenspeichermedium 44 enthält einen Index oder ein Datenträgerinhaltsverzeichnis (VTOC) 60, das jeden der Datenträger 51 bis 58 ausweist, der auf dem physischen Datenträger gespeichert ist. Ein "temporärer" physischer Datenträger wird ebenfalls mit einer VOLSER gekennzeichnet.

Gemäß der Patentanmeldung von Day III u.a. stellt die Bibliothek-Steuereinheit 30 ein Synchronisationstoken bereit, das jedem Datenbestand direkt zugeordnet ist, wobei das Synchronisationstoken ein aktualisierbares Token umfasst. Die Synchronisationstoken können den Datenbeständen 18 direkt zugeordnet werden (2 und 3), indem die Token in der Datenbank 36 gespeichert werden, alternativ können die Token mit jedem physischen Datenträger 44 gespeichert werden, oder als weitere Alternative können die Token direkt mit jedem Datenträger 51 bis 58 gespeichert werden.

Eine Vielzahl von Steuerkomponenten 71 bis 74 wird bereitgestellt (1 und 2), von denen jede von den Hosts 11 bis 12 getrennt und mit ihnen verbunden ist sowie von jeder Datenspeicherbibliothek 14 bis 15 getrennt und mit ihr verbunden ist. Jede Steuerkomponente antwortet auf einzelne getrennte, partitionierte Zugriffsadressen, wie zum Beispiel Datenspeicherlaufwerk-Adressen, die von den Hosts mit dem übergebenen Befehl angesprochen werden. Die Steuerkomponente 71 antwortet beispielsweise auf die Laufwerkadressen 0 bis 3, die Steuerkomponente 72 antwortet auf die Laufwerkadressen 4 bis 7, die Steuerkomponente 73 antwortet auf die Laufwerkadressen 8 bis B, und die Steuerkomponente 74 antwortet auf die Laufwerkadressen C bis F. Die Bibliothek-Steuereinheit 30 einer jeden Datenspeicherbibliothek 14 bis 15 stellt ein aktualisierbares Synchronisationstoken bereit, das jedem Datenbestand direkt zugeordnet ist. Die antwortende Steuerkomponente 71 bis 74 liefert jeden von einem Host zur Verfügung gestellten Datenbestand an alle Datenspeicherbibliotheken und aktualisiert jedes Synchronisationstoken, das dem gelieferten Datenbestand direkt zugeordnet ist. Folglich speichern die Bibliotheken 14 bis 15 Zweitkopien des Datenbestands. Die Gültigkeit eines jeden Datenbestands wird mit Hilfe des direkt zugeordneten Synchronisationstoken überwacht, und das Synchronisationstoken wird weder vom Host überwacht, noch ist eine zentrale Überwachungsdatenbank erforderlich. Wenn ein Datenbestand in einer Bibliothek aktualisiert wird, erhöht eine Steuerkomponente das Synchronisationstoken und übergibt das aktualisierte Synchronisationstoken der Bibliothek, damit sie das Synchronisationstoken dem Datenbestand direkt zuordnet, um die Aktualisierungsstufe des Datenbestand zu überwachen. Während der Aktualisierung einer jeden der redundanten Kopien wird auch das direkt zugeordnete Synchronisationstoken aktualisiert, so dass die Gültigkeit einer jeden der redundanten Kopien des Datenbestand von den Synchronisationstoken überwacht wird.

Die Bibliothek-Steuereinheit 30 umfasst mindestens einen programmierbaren Rechnerprozessor, wie zum Beispiel einen Prozessor vom Typ IBM RS/6000, und ist mit einem Betriebssystem und Anwendungsprogrammen ausgestattet, um ihren Betrieb gemäß der vorliegenden Erfindung auszuführen. Die Anwendungsprogramme können ein Rechnerprogrammprodukt umfassen, das einen rechnerlesbaren Programmcode einschließt. Das Rechnerprogrammprodukt kann elektronisch wie zum Beispiel von einem Netzwerk oder einem der Hosts 11 bis 12 an der Übertragungsschnittstelle 38 über eine Steuerkomponente bereitgestellt werden. Alternativ dazu kann das Rechnerprogrammprodukt an einer E/A-Station des Prozessors oder von einem Speichermedium bereitgestellt werden, das ausführbare Rechnerbefehle speichert, und es umfasst einen Herstellungsgegenstand, wie zum Beispiel das Datenspeichermedium 44 in 3. Ein weiteres Beispiel für ein Speichermedium, das ein Herstellungsgegenstand ist, ist eine Diskette. Andere geeignete Speichermedien sind optische Platten, Magnetbandkassetten, austauschbare Festplattenkassetten, Nur-Lese-Speicher (ROM) oder programmierbare Nur-Lese-Speicher (PROM). An die Speichermedien oder die Speicher wird die Anforderung gestellt, dass sie digitale Darstellungen von rechnerausführbaren Befehlen speichern. Das Betriebssystem und die Anwendungsprogramme können in der Datenbank 36 gespeichert werden.

Die Datenspeicherbibliotheken können unterschiedlich angeordnete Fächer und eine unterschiedliche Anzahl von Laufwerken haben und verschiedene der redundanten Kopien der Datenbestände mit unterschiedlichen Geschwindigkeiten umlagern, so dass die Cachespeicher 39 bis 40 für jede der Bibliotheken 14 bis 15 zur selben Zeit jeweils einen anderen Inhalt haben können.

Auf einen Datenbestand wird typischerweise jedoch innerhalb einer kurzen Zeitspanne wiederholt zugegriffen, während ein Verarbeitungsjob ausgeführt wird, und nachdem der Job abgearbeitet wurde, erfolgt für längere Zeit kein Zugriff auf den Datenbestand. Wenn der Datenbestand während der Ausführung des Jobs aktualisiert wird, verbleibt er wahrscheinlich über die gesamte Verarbeitungsdauer des Jobs in den Cachespeichern 39 bis 40 beider Bibliotheken.

Die vorliegende Erfindung steigert die Leistungsfähigkeit der Vielzahl der Datenspeicherbibliotheken 14 bis 15, die redundante Kopien der Datenbestände speichern, indem sie die Arbeitslast der Bibliotheken gleichmäßig verteilen.

Gemäß der vorliegenden Erfindung hält jede der Datenspeicherbibliotheken 14 bis 15 das Synchronisationstoken, das dem Datenbestand direkt zugeordnet ist. Die Bibliothek-Steuereinheit 30 einer jeden Datenspeicherbibliothek stellt jeden einzelnen der Datenbestände, die gerade im Cachespeicher 39 und/oder 40 der Datenspeicherbibliothek gespeichert sind, fest, und sie stellt jeden einzelnen der Datenbestände, die gerade im Sicherungsspeicher 20 der Datenspeicherbibliothek gespeichert sind, fest.

Die Steuerkomponenten 71 bis 74 empfangen Abrufanforderungen von den Hosts 11 bis 12 für Datenbestände, die in den Datenspeicherbibliotheken gespeichert sind. Wie vorstehend erläutert wurde, leiten die Steuerkomponenten die Befehle an die Bibliotheken. Bei der Weiterleitung einer Abrufanforderung fordert eine Steuerkomponente das direkt zugeordnete Synchronisationstoken von jeder Bibliothek an. Dann antwortet jede Datenspeicherbibliothek auf eine Abrufanforderung für eine der redundanten Kopien der feststellbaren Datenbestände, wobei sie das Synchronisationstoken, das dem feststellbaren Datenbestand direkt zugeordnet ist, und einen Anzeiger von den Feststellungsschritten bereitstellt, der angibt, ob der feststellbare Datenbestand als ein gerade im Cachespeicher 39 bis 40 oder im Sicherungsspeicher 20 abgelegter Datenbestand festgestellt wird. Zum Beispiel kann der Anzeiger ein an das Synchronisationstoken angefügtes Markierungszeichen umfassen. Folglich wird die Leistungsfähigkeit des Zugriffs erhöht, indem statt einer Kopie, die als im Sicherungsspeicher abgelegt festgestellt wird, eine redundante Kopie des feststellbaren Datenbestands, die als im Cachespeicher abgelegt festgestellt wird, ausgewählt wird.

Darüber hinaus Bezug auf die 4A und 4B nehmend, sei erwähnt, dass eine Ausführungsform eines Anzeigers ein "Markierungszeichen" 67 ist, das an einer bestimmten Stelle in der Tabelle eine Länge von einem oder mehr Bit hat. Die Tabellen 61 und 62 sind für eine jede von zwei Bibliotheken, die Bibliothek "1" und die Bibliothek "2", wie zum Beispiel die Bibliotheken 14 und 15, dargestellt. Jede Tabelle befindet sich vorzugsweise in der Datenbank 36 der Bibliothek. Jede Tabelle setzt den Datenbestand (z.B. die VOLSER) 65 mit dem direkt zugeordneten Synchronisationstoken 66 in Beziehung und hält dabei das Synchronisationstoken aufrecht und speichert es. Das Markierungszeichen 67, das auch als "Cachespeicher"-Markierungszeichen bezeichnet wird, wird an das Synchronisationstoken für den direkt zugeordneten Datenbestand angefügt. Somit zeigt das Cachespeicher-Markierungszeichen an, ob der Datenbestand gerade im Cachespeicher 39 bis 40 gespeichert ist, d.h., es zeigt eine "1" an, oder ob er im Sicherungsspeicher 20 gespeichert ist, d.h., es zeigt eine "0" an. Hier kann ein "Cachespeicher"-Markierungszeichen anzeigen, dass sich ein Datenbestand im Cachespeicher oder im Sicherungsspeicher befindet, so dass es auch als "Sicherungsspeicher"-Markierungszeichen bezeichnet wird.

Nimmt man die Beispiele der Tabellen 61 und 62, sind die Synchronisationstoken 66 beim Datenbestand "0001" unterschiedlich und entsprechen damit der Patentanmeldung von Day III u.a., wobei die Bibliothek, die den Datenbestand mit dem aktuellsten Synchronisationstoken hat, die Bibliothek "1", zur Bereitstellung des Datenbestands ausgewählt wird, und die angefügten Cachespeicher-Markierungszeichen 67 bleiben unberücksichtigt. Das Gegenteil gilt für den Datenbestand "0002", wobei die Bibliothek "2" das aktuellste Synchronisationstoken hat.

Mit Bezug auf den Datenbestand "0003" sind die Synchronisationstoken gleich. Dies ist der Normalfall, wenn die Bibliotheken normal funktionieren. Folglich wählt die anfordernde Steuerkomponente 71 bis 74 den Datenbestand aus, der sich im Cachespeicher befindet, wie vom Cachespeicher-Markierungszeichen "1" 67 für die Bibliothek "1" angezeigt wird, und nicht den Datenbestand, der sich im Sicherungsspeicher befindet, wie vom Cachespeicher-Markierungszeichen "0" 67 für die Bibliothek "2" angezeigt wird.

5 stellt alternative Anzeiger dar, die aus einem Binärcode 90 für Cachespeicher-Markierungszeichen bestehen. Wie gezeigt ist, wird der schnelle Cachespeicher 39 mit dem Code "11" angegeben, der andere Cachespeicher 40 wird mit dem Code "10", der Sicherungsspeicher (1) 20, auf den über die Laufwerke 34 zugegriffen werden kann, wird mit dem Code "01" und der Sicherungsspeicher (2) 20, auf den über die Laufwerke 35 zugegriffen werden kann, wird mit dem Code "00" angegeben.

Als Alternative kann der Sicherungsspeicher (1), Code "01", Datenträger angeben, die sich gerade in einem Laufwerk 34 bis 35 befinden, und der Sicherungsspeicher (2), Code "00", kann Datenträger in den Speicherfächern 20 darstellen. Als weitere Alternative kann der Sicherungsspeicher (1) außerdem Datenträger umfassen, die von einem Roboter 22 transportiert werden.

Die 6A und 6B stellen die Cachespeicher-Markierungszeichen 68 dar, welche die Codes 90 der Tabelle von 5 verwenden. Die Cachespeicher-Markierungszeichen 68 sind Bits an einer bestimmten Stelle in einer Tabelle in jeder Bibliothek. Die Tabellen 61 und 62 sind nochmals für die Bibliotheken "1" und "2", wie zum Beispiel die Bibliotheken 14 und 15, dargestellt. Wieder befindet sich jede Tabelle vorzugsweise in der Datenbank 36 der Bibliothek. Jede Tabelle setzt den Datenbestand (die VOLSER) 65 mit dem direkt zugeordneten Synchronisationstoken 66 in Beziehung und hält dabei das Synchronisationstoken aufrecht und speichert es. Das "Cachespeicher"-Markierungszeichen 68 kann an das Synchronisationstoken für den direkt zugeordneten Datenbestand angefügt werden. Somit zeigt das Cachespeicher-Markierungszeichen an, ob der Datenbestand gerade im schnellen Cachespeicher 39 gespeichert ist, d.h., es zeigt eine "11" an, oder ob er in dem anderen Cachespeicher 40 gespeichert ist, d.h., es zeigt eine "10" an, oder ob er im Sicherungsspeicher 20 gespeichert ist, d.h., er zeigt eine "01" für den Sicherungsspeicher (1) und "00" für den Sicherungsspeicher (2) an.

Nimmt man die Beispiele der Tabellen 61 und 62, sind die Synchronisationstoken 66 bei den veranschaulichten Datenbeständen gleich, wobei dies die typische Situation ist, wenn die Bibliotheken normal arbeiten. Folglich liefern die Bibliotheken die Cachespeicher-Markierungszeichen, die den Synchronisationstoken für den Datenbestand angefügt sind. Dann wird die Bibliothek ausgewählt, die den Datenbestand mit dem Markierungszeichen der höchsten Ebene hat, was anzeigt, dass sich der Datenbestand in dem Speicher befindet, der einen schnelleren Zugriff auf die Daten ermöglicht.

Beispielsweise hat das Cachespeicher-Markierungszeichen für den Datenbestand "0001" in der Bibliothek "1" den Wert "11", der anzeigt, dass sich der Datenbestand im schnellen Cachespeicher 39 befindet, während das Markierungszeichen in der Bibliothek "2" den Wert "10" hat, der anzeigt, dass sich der Datenbestand in dem anderen Cachespeicher 40 befindet. Folglich wählt die Steuerkomponente die Bibliothek "1" aus. Das Cachespeicher-Markierungszeichen für den Datenbestand "0002" hat in der Bibliothek "1" den Wert "10" und in der Bibliothek "2" den Wert "01", was bedeutet, dass sich der Datenbestand in der Bibliothek "1" im Cachespeicher 40 und in der Bibliothek "2" im Sicherungsspeicher befindet. Daher wird der Datenbestand von der Bibliothek ausgewählt, bei der er sich im Cachespeicher befindet, d.h. der Bibliothek "1".

Mit Bezug auf den Datenbestand "0003" sind die Synchronisationstoken gleich, und die Cachespeicher-Markierungszeichen zeigen an, dass beide Bibliotheken den Datenbestand im Sicherungsspeicher speichern. Gemäß der vorliegenden Erfindung wählt die anfordernde Steuerkomponente 71 bis 74 den Datenbestand aus, der sich im Sicherungsspeicher (1) befindet, was vom Cachespeicher-Markierungszeichen "01" für die Bibliothek "1" angezeigt wird, und nicht den Datenbestand, der sich im Sicherungsspeicher (2) befindet, was vom Cachespeicher-Markierungszeichen "00" 68 für die Bibliothek "2" angezeigt wird.

7 basiert auf der Patentanmeldung von Day III u.a., die Bestandteil hiervon ist, und wie darin erörtert wird, wobei ferner Bezug auf 1 genommen wird, adressieren die Hosts 11 bis 12 die Steuerkomponenten über Zugriffsadressen, zu denen Datenspeicherlaufwerk-Adressen gehören können, sie liefern die zu speichernden Datenbestände und empfangen die Datenbestände, auf die zugegriffen wurde. Im Schritt 75 empfangen die Steuerkomponenten, die sowohl von den Hosts als auch von jeder der Datenspeicherbibliotheken 14 bis 15 getrennt sind, Befehle von den Hosts 11 bis 12, die sich auf feststellbare Datenbestände beziehen. Im Schritt 76 antworten die Steuerkomponenten auf einzelne von getrennt partitionierten Zugriffsadressen, die von den Hosts angesprochen werden, und auf zugehörige Datenbestände. Im Schritt 77 fordert die Steuerkomponente, die auf eine partitionierte Zugriffsadresse und auf eine Abrufanforderung für einen Datenbestand antwortet, zuerst Synchronisationstoken von allen Datenspeicherbibliotheken an, die den Datenbestand speichern. Im Schritt 78 prüft die Steuerkomponente dann die Synchronisationstoken, die sie von den Bibliotheken empfangen hat, und ermittelt die Bibliothek(en), die das aktuellste Synchronisationstoken für den Datenbestand haben. Im Schritt 79 wählt die Steuerkomponente schließlich eine ermittelte Bibliothek aus.

Falls ein Host eine Schreiboperation anfordert, die lediglich einen "temporären" Datenbestand anfordert, steht der Datenbestand im Cachespeicher an allen Datenspeicherbibliotheken zur Verfügung. Somit werden die Schritte 77 und 78 übersprungen, oder der Schritt 79 wird übersprungen, und der Schritt 78 behandelt alle "temporären" Datenbestände so, als hätten sie das aktuellste Synchronisationstoken.

Die vorliegende Erfindung kann mit einem einzigen Host oder Server eingesetzt werden, der die Funktion von nur einer einzigen Steuerkomponente ausführt. Daher kann sich "Steuerkomponente" auf die Steuerkomponenten 71 bis 74 oder auf einen Host 11 oder 12 beziehen, der die Funktion einer Steuerkomponente ausführt, die eine ermittelte Bibliothek auswählt, um auf einen angeforderten Datenbestand zuzugreifen.

Falls mehr als eine Bibliothek das aktuellste Synchronisationstoken hat, das dem Datenbestand direkt zugeordnet ist, und falls mehr als eines in dem Speicher mit der schnellsten Zugriffsebene gespeichert ist, wählt die Steuerkomponente gemäß der vorliegenden Erfindung eine der Bibliotheken auf der Grundlage des relativen Auslastungsgrads der Bibliotheken aus. Gemäß der vorliegenden Erfindung werden die Anzeiger für den relativen Auslastungsgrad von den Bibliotheken festgelegt und können an das Synchronisationstoken angefügt werden.

In 8 ist eine Ausführungsform der vorliegenden Erfindung veranschaulicht, die mit Hilfe des Ruhezeitstatus 200 einer jeden Bibliothek die Arbeitslast gleichmäßig verteilt. Wie in 8 dargestellt ist, stellt die Bibliothek der Steuerkomponente den Ruhezeitstatus bereit, indem sie ihn in codierter Form an das Synchronisationstoken 201 anfügt. Wie in der Patentanmeldung von Bish u.a., die Bestandteil hiervon ist, erörtert wurde, umfasst das Synchronisationstoken die Kennung des direkt zugeordneten Datenbestands 204, die Kennung der Bibliothek 205, die den direkt zugeordneten Datenbestand speichert, die Aktualisierungsstufe des Synchronisationstokens 206 und das Cachespeicher-Markierungszeichen 207, das die Zugriffsebene des gespeicherten Datenbestands anzeigt. Alternativ dazu kann der Ruhezeitstatus der Steuerkomponente vom Synchronisationstoken getrennt in einer separaten Mitteilung übermittelt werden, was aber weniger effizient. wäre.

Eine Steuerkomponente 71 bis 74 fordert einen Datenbestand an (1, 2 und 7), und die Bibliothek-Steuereinheit 30 einer jeden Bibliothek ermittelt deren aktuellen Ruhezeitstatus 200 und stellt ihn der anfordernden Steuerkomponente in codierter Form bei der Übergabe des Synchronisationstoken 201, das dem angeforderten Datenbestand direkt zugeordnet ist, bereit.

Die Steuerkomponente 71 bis 74 liest die Synchronisationstoken, die dem Datenbestand von den Datenspeicherbibliotheken 14 bis 15 direkt zugeordnet sind, und stellt anhand der gelesenen Token fest, ob sich eine Vielzahl der redundanten Kopien des Datenbestands auf der neuesten Aktualisierungsstufe und auf derselben Zugriffsebene und sich keine Kopien des Datenbestands auf einer schnelleren Zugriffsebene befinden, so dass die Kopien des Datenbestands in den Datenspeicherbibliotheken auf derselben schnellsten verfügbaren Zugriffsebene gespeichert werden. Dazu gehören auch "temporäre" ("SCRATCH"-)Datenbestände auf derselben schnellsten verfügbaren Zugriffsebene.

Nachdem die Steuerkomponente 71 bis 74 festgestellt hat, dass sich mindestens zwei der Kopien des Datenbestands auf derselben schnellsten verfügbaren Zugriffsebene befinden, vergleicht sie den bereitgestellten Ruhezeitstatus der Datenspeicherbibliotheken, die diese Kopien speichern, und gibt an, welche Bibliothek den größeren. Ruhezeitstatus bereitstellt. Anschließend greift die Steuerkomponente auf den Datenbestand von der angegebenen Datenspeicherbibliothek zu.

Der Ruhezeitstatus kann einen beliebigen Anzeiger oder eine Kombination von Anzeigern umfassen, die sich auf die Auslastung der Bibliothek beziehen. Zu Beispielen für den Ruhezeitstatus gehören der Prozentsatz der verfügbaren Betriebszeit, den die Bibliothek inaktiv ist, er kann aus dem Prozentsatz der verfügbaren Betriebszeit, den die Bibliothek inaktiv ist, und dem Prozentsatz der verfügbaren Betriebszeit, den sich die Bibliothek im E/A-Wartezustand befindet, zusammengesetzt sein, und/oder er kann einen Hinweis darauf beinhalten, dass die Bibliothek eine "Drosselung" vornimmt, was nachstehend erläutert wird.

9 stellt ein Beispiel für die Umlagerung von Datenbeständen und das Anfügen von Markierungsanzeigern an die Synchronisationstoken gemäß der Patentanmeldung von Bish u.a. dar, die Bestandteil hiervon ist. Der Prozess der Speicherung beginnt im Schritt 120 mit dem Empfang des Datenbestands von einer Steuerkomponente 71 bis 74.

Die Bibliothek-Steuereinheit 30 speichert im Schritt 122 den Datenbestand im schnellen Cachespeicher 39 (1, 2, 6A, 6B und 8), und im Schritt 123 speichert sie das aktualisierte Synchronisationstoken 66, das dem Datenbestand direkt zugeordnet ist, in der Tabelle 61 oder 62 der Datenbank 36. Im Schritt 124 setzt die Bibliothek-Steuereinheit dann den Anzeiger 68 in der Tabelle 61 oder 62 auf ein Markierungszeichen für den schnellen Cachespeicher, wie zum Beispiel das Markierungszeichen "11", das an das Synchronisationstoken angefügt wird.

Wenn der Datenbestand nicht abgerufen oder wenn nicht auf ihn zugegriffen wird, ordnet ein Algorithmus der Bibliothek-Steuereinheit 30 daraufhin die Umlagerung des Datenbestands an. Im Schritt 128 lagert die Bibliothek-Steuereinheit den Datenbestand folglich aus dem schnellen Cachespeicher 39 in den anderen Cachespeicher 40 um, und im Schritt 129 ändert sie das Markierungszeichen 68 in der Tabelle 61 oder 62 in das andere Cachespeicher-Markierungszeichen, z.B. "10". Der Fachmann versteht, dass der verwendete Umlagerungsalgorithmus frei gewählt werden kann.

Wenn der Datenbestand nicht abgerufen wird, lagert die Bibliothek-Steuereinheit den Datenbestand dann aus dem Cachespeicher 39 bis 40 in den Sicherungsspeicher 20 um. In einer Ausführungsform wird der Datenbestand im Schritt 130 einem Algorithmus entsprechend entweder in den Sicherungsspeicher (1) oder in den Sicherungsspeicher (2) umgelagert. Beispiele für solche Algorithmen sind dem Fachmann bekannt, und bei diesen Beispielen kann der Datenbestand direkt dem Sicherungsspeicher zugeordnet werden, in dem andere Datenbestände, die Ähnlichkeiten aufweisen, gespeichert werden, oder der Datenbestand kann dem Sicherungsspeicher zugeordnet werden, der mit dem wahrscheinlich zukünftigen Abruf des Datenbestands in nächstem Zusammenhang steht. Im Schritt 132 wird das Cachespeicher-Markierungszeichen 68 in der Tabelle 61 oder 62 von der Bibliothek-Steuereinheit 30 von einem Cachespeicher-Markierungszeichen, wie zum Beispiel dem anderen Cachespeicher-Markierungszeichen "10", in das Cachespeicher-Markierungszeichen für den Sicherungsspeicher geändert, z.B. in "01" für den Sicherungsspeicher (1) oder "00" für den Sicherungsspeicher (2).

Alternativ dazu wird der Datenbestand im Schritt 135 zuerst einem Algorithmus entsprechend in den Sicherungsspeicher (1) umgelagert. Nachdem die Umlagerung erfolgt ist, ändert die Bibliothek-Steuereinheit 30 im Schritt 136 in der Tabelle 61 oder 62 das Markierungszeichen von einem Cachespeicher-Markierungszeichen in das Markierungszeichen, das den Sicherungsspeicher (1) anzeigt, z.B. "01". Wenn der Datenbestand wieder nicht abgerufen oder wenn wieder nicht auf ihn zugegriffen wird, lagert die Bibliothek-Steuereinheit 30 den Datenbestand anschließend im Schritt 140 entsprechend einem Algorithmus aus dem Sicherungsspeicher (1) weiter in den Sicherungsspeicher (2) um, und im Schritt 141 ändert sie das Markierungszeichen 68 in der Tabelle 61 oder 62 von der Anzeige des Sicherungsspeichers (1) in die Anzeige des Sicherungsspeichers (2), z.B. in "00".

Wenn eine Steuerkomponente einen Datenbestand anfordert, fügt die Bibliothek-Steuereinheit 30 einer jeden Bibliothek dann das Markierungszeichen 67 der Tabelle 61 oder 62 von 4A oder 4B oder das Markierungszeichen 68 der Tabelle 61 oder 62 von 6A oder 6B an das Synchronisationstoken 201 von 8 an, das als Markierungszeichen 207 gezeigt ist. Anschließend stellt die Bibliothek der anfordernden Steuerkomponente 71 bis 74 das Synchronisationstoken zur Verfügung.

Gemäß einer Ausführungsform der vorliegenden Erfindung (10) ermittelt eine Datenspeicherbibliothek 14 bis 15 außerdem den Ruhezeitstatus der Bibliothek und stellt ihn der anfordernden Steuerkomponente bereit, beispielsweise indem sie ihn an das Synchronisationstoken anfügt.

Im Schritt 210 empfängt eine Bibliothek 14 bis 15 die Anforderung für das Synchronisationstoken von einer Steuerkomponente 71 bis 74. Im Schritt 211 greift die Bibliothek-Steuereinheit 30 entsprechend der Patentanmeldung von Bish u.a., die Bestandteil hiervon ist, auf das Synchronisationstoken 201 für den direkt zugeordneten Datenbestand zu und fügt das Cachespeicher-/Sicherungsspeicher-Markierungszeichen 67 oder 68, das die Zugriffsebene des Datenbestands anzeigt, so an, wie es in der Bibliothek gespeichert ist, z.B. als das Markierungszeichen 207. Ein "temporärer" Datenbestand kann mit einem Token von null versehen oder als "temporär" ("SCRATCH") ausgewiesen werden.

Gemäß der vorliegenden Erfindung ermittelt die Bibliothek-Steuereinheit 30 den Ruhezeitstatus. In einer Ausführungsform ermittelt die Bibliothek-Steuereinheit 30 im Schritt 220 den Prozentsatz der verfügbaren Betriebszeit, den die Bibliothek inaktiv ist. Wenn die Bibliothek beispielsweise vollkommen inaktiv ist, beträgt der Prozentsatz der verfügbaren Betriebszeit, den die Bibliothek inaktiv ist, 100 %. In einer Ausführungsform der vorliegenden Erfindung ist der im Schritt 220 ermittelte Prozentsatz der Ruhezeit der Ruhezeitstatus.

Gemäß einer alternativen Ausführungsform der Erfindung setzt sich der Ruhezeitstatus aus dem Prozentsatz der verfügbaren Betriebszeit, den die Bibliothek inaktiv ist, und dem Prozentsatz der verfügbaren Betriebszeit, den sich die Bibliothek im E/A-Wartezustand befindet, zusammen. Somit umfasst der Schritt 221 die Ermittlung des Prozentsatzes der verfügbaren Betriebszeit, den sich die Bibliothek im E/A-Wartezustand befindet. Im E/A-Wartezustand ist die Bibliothek nicht inaktiv, sondern könnte arbeiten. Als ein Beispiel für die Zusammensetzung des Ruhezeitstatus aus dem Prozentsatz des inaktiven Zustands und dem Prozentsatz des E/A-Wartezustands umfasst der Algorithmus, der den aktuellen Ruhezeitstatus ermittelt, folgende Berechnung: (100 % abzüglich des Prozentsatzes der verfügbaren Betriebszeit, den die Bibliothek inaktiv ist) + ((100 % abzüglich des Prozentsatzes der verfügbaren Betriebszeit, den sich die Bibliothek im E/A-Wartezustand befindet)/2), wobei der kleinere summierte Prozentsatz den größeren Ruhezeitstatus umfasst.

Eine Datenspeicherbibliothek kann mit Schreiboperationen in den Cachespeicher so überlastet werden, dass sie nicht alle Eingabebefehle sofort verarbeiten kann. Der Cachespeicher steht erst wieder für neue Schreib- und Aktualisierungsoperationen zur Verfügung, wenn andere Datenbestände aus dem Cachespeicher umgelagert werden. Wie der Fachmann weiß, kann eine Bibliothek dann eine Verzögerung in Bezug auf jeden Eingabebefehl von den Steuerkomponenten oder Hosts ausgeben, die eine "Schreib"-Operation in den Cachespeicher 40 veranlassen. Die Ausgabe von Verzögerungen wird als "Drosselung" bezeichnet und in der US-Patentschrift Nr. 5 926 834 erörtert.

An einem bestimmten Punkt, wenn der Cachespeicher 40 voll ist und die Bibliothek sehr viel Arbeit hat, nimmt die Bibliothek eine "vollkommene Drosselung" vor. In einer Ausführungsform wird im Schritt 222 ermittelt, ob die Stufe der "vollkommenen Drosselung" erreicht wurde. Wenn ja, wird im Schritt 223 ein Drosselungs-Markierungszeichen gesetzt, das einen speziellen Ruhestatus-Anzeiger umfassen kann. Wenn die Stufe der vollkommenen Drosselung nicht erreicht wurde, "NEIN" im Schritt 222, berechnet die Bibliothek-Steuereinheit 30 im Schritt 225 den aktuellen Ruhezeitstatus.

Die Berechnung kann entsprechend dem vorstehenden Algorithmus erfolgen, und die Drosselung kann in die Berechnung einfließen, beispielsweise indem zu dem oben ermittelten Wert (150) + ((Drosselungsverzögerungszeit in Millisekunden/2) addiert werden.

Somit können die im Schritt 225 entsprechend dem beispielhaften Algorithmus ermittelten Werte (0 bis 100) umfassen, die anzeigen, dass die Bibliothek Ruhezeit hat, und je niedriger der Wert ist, desto größer sind die Ruhezeit und der Ruhezeitstatus. Werte von (100 bis 150) zeigen an, dass die Bibliothek beschäftigt ist, aber die Bibliothek-Steuereinheit befindet sich eine Zeit lang in einem E/A-Wartezustand und kann dennoch arbeiten. Bei einer Drosselung betragen die Werte (150 bis 250). Als alternative Ausführungsform zu den Schritten 222 und 223 kann ein Wert von 250 im Schritt 225 eine vollkommene Drosselung anzeigen. Wenn im Schritt 222 folglich bekannt ist, dass die Bibliothek eine vollkommene Drosselung durchführt, kann der Schritt 223 den Ruhezeitstatuswert von 250 bereitstellen.

Wie vorstehend erörtert wurde, wird in einer Ausführungsform der Erfindung im Schritt 230 der aktuelle codierte Ruhezeitstatus 200 von 8, der im Schritt 225 ermittelt oder im Schritt 223 bereitgestellt wird, an das Synchronisationstoken 201 angefügt, das dem angeforderten Datenbestand direkt zugeordnet ist. Im Schritt 231 stellt die Bibliothek der anfordernden Steuerkomponente 71 bis 74 dann das Synchronisationstoken mit angefügtem aktuellem Ruhezeitstatus-Anzeiger zur Verfügung.

Der Fachmann kann die obigen Schritte anders anordnen oder einen anderen, aber ähnlichen Algorithmus zur Ermittlung des Ruhezeitstatus 200 verwenden.

11 stellt eine Ausführungsform der vorliegenden Erfindung dar, bei der die Steuerkomponente oder der Host den Schritt 79 von 7 durchführt, in dem er eine Bibliothek für den Zugriff auf den angeforderten Datenbestand auswählt. Im Schritt 240 liest die Steuerkomponente 71 bis 74 (oder der Host, wie vorstehend erörtert wurde) die Synchronisationstoken 201, die von jeder der Datenspeicherbibliotheken 14 bis 15 geliefert wurden, welche eine Kopie des angeforderten Datenspeicherbestands haben. Wie vorstehend erörtert wurde, werden die "temporären" Datenbestände entweder als solche ausgewiesen, oder bei ihnen werden die Synchronisationstoken auf null gesetzt.

Alternativ dazu zeigt der Hinweis, dass der Befehl ein Schreibbefehl ist, an, dass keine Synchronisationstoken benötigt werden, und die Bibliotheken werden so behandelt, als ob sich die Synchronisationstoken auf derselben neuesten Aktualisierungsstufe befänden. Im Schritt 241 stellt die Steuerkomponente anhand der Angabe der Aktualisierungsstufe des Synchronisationstoken 206 fest, ob mehr als eine Bibliothek über die aktuellste Kopie verfügt. Temporäre ("SCRATCH"-)Datenbestände haben gleiche Synchronisationstoken oder werden so behandelt, als ob sie gleich wären. Wenn dies nicht der Fall ist, wird die Bibliothek, die über die aktuellste Kopie verfügt, im Schritt 243 ausgewählt. Wenn mehr als eine Bibliothek über die aktuellste Kopie verfügt, liest die Steuerkomponente im Schritt 245 die Cachespeicher-/Sicherungsspeicher-Markierungszeichen 207 von allen aktuellsten Synchronisationstoken.

Im Schritt 248 stellt die Steuerkomponente fest, ob alle Markierungszeichen gleich sind, oder sie stellt fest, dass mindestens zwei der Markierungszeichen die schnellste Zugriffsebene angeben, was anzeigt, dass die aktuellste Kopie des Datenbestands auf derselben schnellsten Zugriffsebene in mindestens zwei Bibliotheken gespeichert wird. Zum Beispiel kann die schnellste Speicherzugriffsebene einen Cachespeicher im Gegensatz zu einem Sicherungsspeicher umfassen. Folglich kann der Datenbestand im Speicher 39 in einer Bibliothek und im Speicher 40 in einer anderen Bibliothek gespeichert werden, aber beide werden als die schnellste Zugriffsebene betrachtet, wie in den 4A und 4B von den Markierungszeichen 67 angegeben wird. Die Feststellung kann ergeben, dass sich mindestens zwei der direkt zugeordneten redundanten Kopien des Datenbestands, die in den Datenspeicherbibliotheken gespeichert werden, im Cachespeicher befinden, und sonst keine Kopien, die sich auf derselben neuesten Aktualisierungsstufe befinden, im Cachespeicher abgelegt sind, sondern dass sie sich alle im Sicherungsspeicher befinden.

Alternativ dazu kann der Cachespeicher 39 als eine schnellere Speicherzugriffsebene als der Cachespeicher 40 betrachtet werden, wie von den Markierungszeichen 68 in den 6A und 6B angezeigt wird. Wenn nur eine der aktuellsten Kopien auf der schnellsten Speicherzugriffsebene gespeichert wird, wird im Schritt 250 die Bibliothek, die diese Kopie speichert, ausgewählt. Wie vorstehend erörtert wurde, reservieren die Bibliotheken Platz auf der schnellsten Cachespeicher-Zugriffsebene für temporäre ("SCRATCH"-)Datenbestände. Somit sind entweder die Markierungszeichen gleich und zeigen damit dieselbe schnellste Cachespeicher-Zugriffsebene an, oder der Hinweis, dass der Befehl ein Schreibbefehl ist, zeigt an, dass keine Markierungszeichen benötigt werden, und die Bibliotheken werden so behandelt, als ob sich die Markierungszeichen auf derselben schnellsten Zugriffsebene befänden.

Daher werden temporäre ("SCRATCH"-)Datenbestände hier als Datenbestände definiert, welche dieselben Synchronisationstoken, die dieselbe schnellste Aktualisierungsstufe anzeigen, und dieselben Markierungszeichen, die dieselbe schnellste Zugriffsebene anzeigen, haben.

Wenn die Markierungszeichen im Schritt 248 gleich sind, befinden sich mindestens zwei aktuellste Kopien des Datenbestands auf der schnellsten Speicherzugriffsebene in den Bibliotheken.

Gemäß der vorliegenden Erfindung liest die Steuerkomponente im Schritt 252 den Ruhezeitstatus der Bibliotheken, welche die Synchronisationstoken bereitstellen, die dem angeforderten Datenbestand direkt zugeordnet sind. Im Schritt 253 stellt die Steuerkomponente fest, ob eine Bibliothek eine vollkommene Drosselung vornimmt. Wie vorstehend erwähnt wurde, kann die Drosselung durch ein bestimmtes Zeichen oder einen bestimmten Wert festgestellt werden oder indem einem Algorithmus entsprechend ein Höchstwert erreicht wird. Alternativ dazu kann der Schritt 253 das Erkennen einer Drosselung umfassen, die beispielsweise durch einen Wert von 150 oder einem höheren Wert in dem obigen Algorithmus angegeben wird.

Im Anschluss an die im Schritt 253 erfolgte Angabe, dass mindestens eine der Bibliotheken eine Drosselung vornimmt, wird im Schritt 255 festgestellt, ob alle Bibliotheken eine Drosselung (oder eine vollkommene Drosselung) vornehmen. Wenn nicht alle Bibliotheken eine Drosselung vornehmen, wird im Schritt 256 die Bibliothek ausgewählt, die keine Drosselung vornimmt. Wenn alle Bibliotheken eine Drosselung vornehmen, wird im Schritt 257 ein normaler Algorithmus, wie zum Beispiel ein Round-Robin-Algorithmus, verwendet, um die Datenspeicherbibliothek für den Zugriff auf den Datenbestand auszuwählen.

Wenn der Schritt 253 anzeigt, dass keine Bibliothek eine Drosselung (oder eine vollkommene Drosselung) vornimmt, vergleicht die Steuerkomponente im Schritt 260 den Ruhezeitstatus 200 der einzelnen Bibliotheken. Im optionalen Schritt 261 stellt die Steuerkomponente fest, ob der Unterschied zwischen dem jeweiligen Ruhezeitstatus der Bibliotheken einen Schwellenwert überschreitet. Als ein Beispiel und unter Verwendung des vorstehenden Algorithmus kann der Schwellenwert einen Wert von 25 haben. Wenn somit beide Bibliotheken ungefähr dasselbe Aktivitätsniveau und fast denselben Ruhezeitstatus, "NEIN", haben, wird die Bibliothek im Schritt 257 mit Hilfe eines normalen Algorithmus ausgewählt.

Wenn die Bibliotheken, welche die aktuellsten Kopien auf derselben schnellsten Speicherzugriffsebene speichern, jedoch unterschiedlich ausgelastet sind, so dass jede Bibliothek einen anderen Ruhezeitstatus hat, oder wenn dieser Unterschied einen Schwellenwert überschreitet, wie im Schritt 261 angegeben ist, wählt die Steuerkomponente im Schritt 270 die Bibliothek mit dem größten Ruhezeitstatus aus. Folglich wird die Datenspeicherbibliothek ausgewählt, welche die größte freie Arbeitskapazität hat.

Durch Auswahl der Bibliothek, die in dem Augenblick, in dem ein Datenbestand ausgewählt wird, die größte freie Arbeitskapazität hat, wird die Arbeitslast zwischen den Bibliotheken gleichmäßig verteilt. Folglich wählt die vorliegende Erfindung die Datenspeicherbibliothek für den Zugriff auf eine redundante Kopie eines feststellbaren Datenbestands aus, um die Arbeitslast zwischen den Datenspeicherbibliotheken gleichmäßig zu verteilen.

Während die bevorzugten Ausführungsformen der vorliegenden Erfindung ausführlich dargestellt wurden, sollte es offensichtlich sein, dass sich der Fachmann Änderungen und Anpassungen an diesen Ausführungsformen vorstellen kann, ohne vom Umfang der vorliegenden Erfindung, die in den folgenden Ansprüchen dargelegt ist, abzuweichen.


Anspruch[de]
Verfahren zum Zugriff auf eine Datei in einer Vielzahl von Datenspeicherbibliotheken als Antwort auf eine Abrufanforderung, wobei die Datenspeicherbibliotheken redundante Kopien der Datei speichern und darauf zugreifen, wobei die Datenspeicherbibliotheken mindestens zwei Speicherzugriffsebenen haben, um Kopien der Datei zu speichern, wobei die Zugriffsebenen unterschiedliche Zugriffsgeschwindigkeiten auf die gespeicherten Kopien haben, wobei jede Datenspeicherbibliothek Kopien von den schnelleren Zugriffsebenen des Speichers auf langsamere Zugriffsebenen des Speichers umlagert, wobei jeder Kopie ein Token in der zugehörigen Datenspeicherbibliothek direkt zugeordnet ist, welches die Datei eindeutig identifiziert, wobei das Token einen Anzeiger der Zugriffsebene der Kopie in der Datenspeicherbibliothek bereitstellt, wobei die Abrufanforderungen außerdem die direkt zugeordneten Token anfordern,

das Verfahren umfassend die folgenden Schritte:

Bereitstellung des aktuellen Ruhezeitstatus jeder Datenspeicherbibliothek;

als Antwort auf die Abrufanforderung für eine Datei Lesen der Token, die den Kopien der Datei jeweils direkt zugeordnet sind, von mindestens zwei der Vielzahl der Datenspeicherbibliotheken;

Feststellen anhand der gelesenen Token, ob sich eine Vielzahl der direkt zugeordneten redundanten Kopien der Datei auf derselben Zugriffsebene und sich keine Kopien der Datei auf einer schnelleren Zugriffsebene befinden, so dass die Kopien der Datei in den Datenspeicherbibliotheken auf derselben schnellsten verfügbaren Zugriffsebene gespeichert werden;

im Anschluss an den Feststellungsschritt, der ergibt, dass sich mindestens zwei der direkt zugeordneten redundanten Kopien der Datei, die in den Datenspeicherbibliotheken gespeichert werden, auf derselben schnellsten verfügbaren Zugriffsebene befinden, Vergleichen des bereitgestellten Ruhezeitstatus der Datenspeicherbibliotheken, welche die direkt zugeordneten redundanten Kopien speichern;

Ermitteln, welche der direkt zugeordneten Datenspeicherbibliotheken den größeren Ruhezeitstatus bereitgestellt hat; und

Zugreifen auf die Kopie der Datei von der ermittelten Datenspeicherbibliothek.
Verfahren nach Anspruch 1, wobei der Schritt des Ermittelns darüber hinaus auch die Angabe umfasst, ob der Unterschied zwischen dem größeren Ruhezeitstatus und dem Ruhezeitstatus von der anderen der direkt zugeordneten Datenspeicherbibliotheken einen Schwellenwert überschreitet; und wobei der Schritt des Zugriffs darüber hinaus den Zugriff auf eine Kopie der Datei von einer der Datenspeicherbibliotheken umfasst, die gemäß einem normalen Algorithmus bestimmt wird, wenn der Unterschied zwischen den Ruhezeitzuständen den Schwellenwert nicht überschreitet. Verfahren nach Anspruch 1 oder 2, wobei der Schritt, in dem die Datenspeicherbibliotheken den aktuellen Ruhezeitstatus bereitstellen, das Anfügen des bereitgestellten Ruhezeitstatus an das Token umfasst. Verfahren nach Anspruch 3, wobei der Schritt, in dem der aktuelle Ruhezeitstatus bereitgestellt wird, die Ermittlung des Prozentsatzes der verfügbaren Betriebszeit umfasst, den die Datenspeicherbibliothek inaktiv ist. Verfahren nach Anspruch 4, wobei der Schritt, in dem der aktuelle Ruhezeitstatus bereitgestellt wird, die Ermittlung der Zusammensetzung des Ruhezeitstatus aus dem Prozentsatz der verfügbaren Betriebszeit, den die Datenspeicherbibliothek inaktiv ist, und dem Prozentsatz der verfügbaren Betriebszeit, den sich die Datenspeicherbibliothek in einem Eingabe/Ausgabe-Wartezustand befindet, umfasst. Verfahren nach Anspruch 5, wobei der Schritt, in dem der aktuelle Ruhezeitstatus bereitgestellt wird, folgende Berechnung umfasst: (100 % abzüglich des Prozentsatzes der verfügbaren Betriebszeit, den die Datenspeicherbibliothek inaktiv ist) + ((100 % abzüglich des Prozentsatzes der verfügbaren Betriebszeit, den sich die Datenspeicherbibliothek in einem Eingabe/Ausgabe-Wartezustand befindet)/2), wobei der kleinere summierte Prozentsatz den größeren Ruhezeitstatus umfasst. Verfahren nach einem der vorangegangenen Ansprüche, wobei der Schritt, in dem der aktuelle Ruhezeitstatus bereitgestellt wird, außerdem die Feststellung umfasst, ob sich eine der Datenspeicherbibliotheken in einem Zustand der Drosselung befindet, d.h. ihre Operationen drosselt, und außerdem die Feststellung, ob sich eine geringere Zahl als die Gesamtzahl der Datenspeicherbibliotheken in dem Zustand der Drosselung befindet, sowie die Angabe von einer der Datenspeicherbibliotheken, die sich in einem anderen Zustand als dem Zustand der Drosselung befindet, umfasst. Verfahren nach einem der vorangegangenen Ansprüche, wobei im Schritt, in dem der aktuelle Ruhezeitstatus bereitgestellt wird, der bereitgestellte Status an das jeweilige Token, das der Kopie der Datei jeweils direkt zugeordnet ist, angefügt wird. Computer-Programm mit Programmcode zur Durchführung des Verfahrens nach einem der vorangegangenen Ansprüche, wenn das Verfahren auf einem Computer abläuft. Computer-Programm-Produkt mit auf einem maschinenlesbaren Träger gespeicherten Programmcode umfassend ein Programm nach Anspruch 9. Datenspeicherbibliothek-System, das mit mindestens einem Host verbunden ist, um als Antwort auf Abrufanforderungen von den Hosts auf redundante Kopien einer Datei zuzugreifen, wobei das Datenspeicherbibliothek-System Folgendes umfasst:

eine Vielzahl von Datenspeicherbibliotheken, von denen jede über eine Bibliothek-Steuereinheit verfügt, und mindestens zwei Zugriffsebenen zur Speicherung und zum Zugriff auf eine Kopie der Datei, wobei die Zugriffsebenen unterschiedliche Zugriffsgeschwindigkeiten auf die gespeicherten Kopien haben, wobei die Bibliothek-Steuereinheit außerdem ein Token bereitstellt, das jeder Kopie einer Datei direkt zugeordnet ist, wobei das Token einen Anzeiger für die Zugriffsebene der feststellbaren Datei in der Datenspeicherbibliothek bereitstellt, und wobei jede Bibliothek-Steuereinheit den aktuellen Ruhezeitstatus der direkt zugeordneten Bibliothek bereitstellt; und

mindestens eine Steuerkomponente, die mit dem mindestens einem Host und jeder Datenspeicherbibliothek verbunden ist; wobei die Steuerkomponente die Abrufanforderungen für die feststellbaren Datenbestände empfängt; wobei die Steuerkomponente auf die Abrufanforderung für die Datei antwortet, indem sie das Token, das dem Datenbestand direkt zugeordnet ist, von mindestens zwei der Vielzahl der Datenspeicherbibliotheken liest; wobei die Steuerkomponente anhand der gelesenen Token feststellt, ob sich eine Vielzahl der direkt zugeordneten redundanten Kopien der Datei auf derselben Zugriffsebene und sich keine Kopien der Datei auf einer schnelleren Zugriffsebene befinden, so dass die Kopien der Datei in den Datenspeicherbibliotheken auf derselben schnellsten verfügbaren Zugriffsebene gespeichert werden; wobei die Steuerkomponente im Anschluss an die Feststellung, dass sich mindestens zwei der direkt zugeordneten redundanten Kopien der Datei, die in den Datenspeicherbibliotheken gespeichert werden, auf derselben schnellsten verfügbaren Zugriffsebene befinden, den bereitgestellten Ruhezeitstatus der Datenspeicherbibliotheken, welche die direkt zugeordneten redundanten Kopien speichern, vergleicht und angibt, welche der direkt zugeordneten Datenspeicherbibliotheken den größeren Ruhezeitstatus bereitgestellt hat; wobei die Steuerkomponente auf die Angabe der Ruhezeit antwortet, indem sie auf die Kopie der Datei von der angegebenen Datenspeicherbibliothek zugreift.
Datenspeicherbibliothek-System nach Anspruch 11, wobei die Angabe des Ruhezeitstatus durch die Steuerkomponente darüber hinaus die Angabe umfasst, ob der Unterschied zwischen dem größeren Ruhezeitstatus und dem Ruhezeitstatus von der anderen der direkt zugeordneten Datenspeicherbibliotheken einen Schwellenwert überschreitet; und wobei die Steuerkomponente auf eine Kopie der Datei von einer der Datenspeicherbibliotheken zugreift, die gemäß einem normalen Algorithmus bestimmt wird, wenn der Unterschied zwischen den Ruhezeitzuständen den Schwellenwert nicht überschreitet. Datenspeicherbibliothek-System nach Anspruch 11, wobei die Datenspeicherbibliothek-Steuereinheiten darüber hinaus den bereitgestellten Status an das Token anfügen. Datenspeicherbibliothek-System nach Anspruch 13, wobei die Bibliothek-Steuereinheiten den aktuellen Ruhezeitstatus bereitstellen, indem sie den Prozentsatz der verfügbaren Betriebszeit, den die Datenspeicherbibliothek inaktiv ist, ermitteln. Datenspeicherbibliothek-System nach Anspruch 14, wobei die Bibliothek-Steuereinheiten den aktuellen Ruhezeitstatus bereitstellen, indem sie die Zusammensetzung des Ruhezeitstatus aus dem Prozentsatz der verfügbaren Betriebszeit, den die Datenspeicherbibliothek inaktiv ist, und dem Prozentsatz der verfügbaren Betriebszeit, den sich die Datenspeicherbibliothek in einem Eingabe/Ausgabe-Wartezustand befindet, ermitteln. Datenspeicherbibliothek-System nach Anspruch 15, wobei die Bibliothek-Steuereinheiten den aktuellen Ruhezeitstatus bereitstellen, indem sie Folgendes berechnen: (100 % abzüglich des Prozentsatzes der verfügbaren Betriebszeit, den die Datenspeicherbibliothek inaktiv ist) + ((100 % abzüglich des Prozentsatzes der verfügbaren Betriebszeit, den sich die Datenspeicherbibliothek im Eingabe/Ausgabe-Wartezustand befindet)/2), wobei der kleinere summierte Prozentsatz den größeren Ruhezeitstatus umfasst. Datenspeicherbibliothek-System nach einem der Ansprüche 11 bis 16, wobei die Bibliothek-Steuereinheiten den aktuellen Ruhezeitstatus bereitstellen, indem sie feststellen, ob sich eine der Datenspeicherbibliotheken in einem Zustand der Drosselung befindet, d.h. ihre Operationen drosselt, und wobei die Bibliothek-Steuereinheiten weiterhin feststellen, ob sich eine geringere Zahl als die Gesamtzahl der Datenspeicherbibliotheken in dem Zustand der Drosselung befindet, und wobei die Bibliothek-Steuereinheiten weiterhin die Datenspeicherbibliotheken feststellen, die sich in einem anderen Zustand als dem Zustand der Drosselung befinden. Datenspeicherbibliothek-System nach einem der Ansprüche 11 bis 17, wobei die redundanten Kopien der Datei Aktualisierungsstufen haben; wobei die Datenspeicherbibliotheken außerdem einen Cachespeicher und einen Sicherungsspeicher umfassen, welche die mindestens zwei Zugriffsebenen zur Speicherung und zum Zugriff auf die Kopien der Datei umfassen; wobei jedes von der Datenspeicherbibliothek-Steuereinheit bereitgestellte Token außerdem ein aktualisierbares Synchronisationstoken umfasst, das die relative Aktualisierungsstufe der direkt zugeordneten redundanten Kopie des feststellbaren Datenbestands anzeigt und einen Speicheranzeiger bereitstellt, der anzeigt, ob der feststellbare Datenbestand gerade im Cachespeicher oder im Sicherungsspeicher gespeichert ist; wobei die Steuerkomponente, welche die Abrufanforderung empfängt, anhand der gelesenen Synchronisationstoken feststellt, ob sich die direkt zugeordneten redundanten Kopien der Datei auf derselben neuesten Aktualisierungsstufe befinden, und anhand des Speicheranzeigers feststellt, ob sich die Kopien auf derselben neuesten Aktualisierungsstufe im Cachespeicher oder im Sicherungsspeicher befinden; und im Anschluss an die über das Token durchgeführte Feststellung, dass sich mindestens zwei der direkt zugeordneten redundanten Kopien der Datei, die in den Datenspeicherbibliotheken gespeichert werden, auf derselben neuesten Aktualisierungsstufe und im Cachespeicher befinden und sonst keine Kopien, die sich auf derselben neuesten Aktualisierungsstufe befinden, im Cachespeicher abgelegt sind, sondern dass sie sich alle im Sicherungsspeicher befinden, wird der bereitgestellte Ruhezeitstatus der Datenspeicherbibliotheken, welche die direkt zugeordneten redundanten Kopien speichern, verglichen.






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com