DE112022000454T5 - Dynamischer datenpuffer einer bandspeichereinheit - Google Patents

Dynamischer datenpuffer einer bandspeichereinheit Download PDF

Info

Publication number
DE112022000454T5
DE112022000454T5 DE112022000454.1T DE112022000454T DE112022000454T5 DE 112022000454 T5 DE112022000454 T5 DE 112022000454T5 DE 112022000454 T DE112022000454 T DE 112022000454T DE 112022000454 T5 DE112022000454 T5 DE 112022000454T5
Authority
DE
Germany
Prior art keywords
tape
data
full state
file
computer
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.)
Pending
Application number
DE112022000454.1T
Other languages
English (en)
Inventor
Atsushi Abe
Tsuyoshi Miyamura
Hiroshi Itagaki
Tohru Hasegawa
Noriko Yamamoto
Shinsuke Mitsuma
Sosuke Matsui
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 DE112022000454T5 publication Critical patent/DE112022000454T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/0673Single storage device
    • G06F3/0682Tape device
    • 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/061Improving I/O performance
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B5/00Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
    • G11B5/008Recording on, or reproducing or erasing from, magnetic tapes, sheets, e.g. cards, or wires
    • G11B5/00813Recording on, or reproducing or erasing from, magnetic tapes, sheets, e.g. cards, or wires magnetic tapes
    • G11B5/00817Recording on, or reproducing or erasing from, magnetic tapes, sheets, e.g. cards, or wires magnetic tapes on longitudinal tracks only, e.g. for serpentine format recording

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)

Abstract

Offenbart wird ein durch einen Computer umgesetztes Verfahren zum Ändern einer Position auf einem Band, an der das Band in einen DATA_FULL-Zustand übergeht. Das durch einen Computer umgesetzte Verfahren umfasst ferner ein Bestimmen, nachdem eine Datei in eine Datenpartition des Bandes geschrieben worden ist, einer Größe eines Indexes, der Metadaten darstellt, die der Datei zugehörig sind. Das durch einen Computer umgesetzte Verfahren umfasst ferner ein Ändern, auf Grundlage der Größe des Indexes, der die Metadaten darstellt, die der Datei zugehörig sind, einer Position in der Datenpartition des Bandes, an der das Band in den DATA_FULL-Zustand übergeht.

Description

  • HINTERGRUND
  • Die vorliegende Erfindung betrifft allgemein das Gebiet von Bandspeichersystemen und insbesondere Magnetbandspeichersysteme mit Partitionen.
  • Ein Bandlaufwerk ist eine Datenspeichereinheit, die Daten auf ein Magnetband schreibt und von diesem ausliest. Aktuelle Versionen von Magnetband-Datenspeicher ermöglichen es, ein Band in getrennt beschreibbare Bereiche zu unterteilen, die als Partitionen bezeichnet werden. Zum Beispiel kann ein Magnetband in eine Indexpartition und eine oder mehrere Datenpartitionen unterteilt werden. Mit der Einführung von Bandpartitionen ermöglichte ein Bandformat- und Dateisystem, das als das Linear Tape File System (LTFS) (lineares Banddateisystem) bekannt ist, ein Band in ähnlicher Weise wie bei anderen externen Speichereinheiten zu nutzen, wie zum Beispiel ein USB-Flashspeicher oder eine externe Festplatte. Dementsprechend werden unter dem LTFS Dateidaten und Dateisystem-Metadaten in getrennten Partitionen auf dem Band gespeichert, wobei ein Index die Dateidaten so darstellt, als wären sie in Verzeichnissen organisiert.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Gemäß einer Ausführungsform der vorliegenden Erfindung wird ein durch einen Computer umgesetztes Verfahren zum Ändern einer Position auf einem Band offenbart, an der das Band in einen DATA_FULL-Zustand übergeht. Das durch einen Computer umgesetzte Verfahren umfasst ein Bestimmen, nachdem eine Datei in eine Datenpartition des Bandes geschrieben worden ist, einer Größe eines Indexes, der Metadaten darstellt, die der Datei zugehörig sind. Das durch einen Computer umgesetzte Verfahren umfasst ferner ein Ändern, auf Grundlage der Größe des Indexes, der die Metadaten darstellt, die der Datei zugehörig sind, einer Position in der Datenpartition des Bandes, an der das Band in den DATA_FULL-Zustand übergeht.
  • Gemäß einer weiteren Ausführungsform der vorliegenden Erfindung wird ein Computerprogrammprodukt zum Ändern einer Position auf einem Band offenbart, an der das Band in einen DATA_FULL-Zustand übergeht. Das Computerprogrammprodukt umfasst ein oder mehrere durch einen Computer lesbare Speichermedien und Programmanweisungen, die auf dem einen oder den mehreren durch einen Computer lesbaren Speichermedien gespeichert sind. Die Programmanweisungen umfassen Anweisungen zum Bestimmen, nachdem eine Datei in eine Datenpartition des Bandes geschrieben worden ist, einer Größe eines Indexes, der Metadaten darstellt, die der Datei zugehörig sind. Die Programmanweisungen umfassen ferner Anweisungen zum Ändern, auf Grundlage der Größe des Indexes, der die Metadaten darstellt, die der Datei zugehörig sind, einer Position in der Datenpartition des Bandes, an der das Band in den DATA_FULL-Zustand übergeht.
  • Gemäß einer weiteren Ausführungsform der vorliegenden Erfindung wird ein Computersystem offenbart, das eine Position auf einem Band ändert, an der das Band in einen DATA_FULL-Zustand übergeht. Das Computersystem umfasst einen oder mehrere Computerprozessoren, ein oder mehrere durch einen Computer lesbare Speichermedien und Programmanweisungen, die auf den durch einen Computer lesbaren Speichermedien zur Ausführung durch mindestens einen des einen oder der mehreren Prozessoren gespeichert sind. Die Programmanweisungen umfassen Anweisungen zum Bestimmen, nachdem eine Datei in eine Datenpartition des Bands geschrieben worden ist, einer Größe eines Indexes, der Metadaten darstellt, die der Datei zugehörig sind. Die Programmanweisungen umfassen ferner Anweisungen auf Grundlage der Größe des Indexes, der Metadaten darstellt, die der Datei zugehörig sind, zum Ändern einer Position in der Datenpartition des Bandes, an der das Band in den DATA_FULL-Zustand übergeht.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
    • 1 ist ein Funktions-Blockschaubild einer Netzwerk-Datenverarbeitungsumgebung, die allgemein mit 100 bezeichnet wird, und die für den Einsatz eines Pufferprogramms 101 gemäß mindestens einer Ausführungsform der vorliegenden Offenbarung geeignet ist.
    • 2 ist eine beispielhafte lineare Serpentinen-Aufzeichnung (linear serpendine recording) auf einem Band, die allgemein mit 200 bezeichnet wird, gemäß mindestens einer Ausführungsform der vorliegenden Erfindung.
    • 3A ist ein Blockschaubild, das ein Beispiel für Dateidaten veranschaulicht, die auf einer Datenpartition 300A eines Bandes gemäß mindestens einer Ausführungsform der vorliegenden Erfindung gespeichert sind.
    • 3B ist ein Blockschaubild, das ein Beispiel für Dateidaten veranschaulicht, die in einer Datenpartition 300B eines Bandes nach einem Anhängen von Dateidaten an die Datenpartition 300A von 3A gemäß mindestens einer Ausführungsform der vorliegenden Erfindung gespeichert sind.
    • 4A ist ein Blockschaubild, das ein Beispiel für einen LTFS-Datenträger, allgemein mit 400A bezeichnet, gemäß mindestens einer Ausführungsform der vorliegenden Erfindung veranschaulicht.
    • 4B ist ein Blockschaubild, das ein Beispiel für eine programmierbare Frühwarnzone (PEWZ) auf einem Band, allgemeinen mit 400B bezeichnet, gemäß mindestens einer Ausführungsform der vorliegenden Erfindung veranschaulicht.
    • 5 ist ein Ablaufplan, allgemein mit 500 bezeichnet, der Arbeitsschritte zum Ändern einer Position auf einem Band, an der das Band in einen DATA_FULL-Zustand übergeht, gemäß mindestens einer Ausführungsform der vorliegenden Erfindung darstellt.
    • 6 ist ein Blockschaubild, das eine Cloud-Computing-Umgebung, allgemein mit 50 bezeichnet, gemäß mindestens einer Ausführungsform der vorliegenden Erfindung darstellt.
    • 7 ist ein Blockschaubild, das Abstraktionsmodellschichten darstellt, die durch die Cloud-Computing-Umgebung 50 von 6 gemäß mindestens einer Ausführungsform der vorliegenden Erfindung bereitgestellt werden.
    • 8 ist ein Blockschaubild, das Komponenten eines Computers darstellt, allgemein mit 800 bezeichnet, der für ein Ausführen des Pufferprogramms 101 gemäß mindestens einer Ausführungsform der Erfindung geeignet ist.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die vorliegende Erfindung betrifft allgemein das Gebiet von Bandspeichersystemen und insbesondere Magnetband-Speichersysteme mit Partitionen.
  • Linear Tape Open (LTO) (lineares offenes Format) ist eine Magnetband-Datenspeichertechnologie. Die LTO-Speichertechnologie kann allgemein als eine Bandspeichertechnologie offenen Formats mit einer einzelnen Magnetbandspule bezeichnet werden, die in einer herausnehmbaren Bandkassette gelagert ist. Die LTO-Speichertechnologie stellt zusätzliche optionale Formatierung, darunter Komprimierung, Write Once Read Many (WORM) (einmal beschreibbar, mehrmals lesbar), Verschlüsselung und Linear Tape File System (LTFS) (lineares Banddateisystem) bereit, sie ist aber nicht darauf beschränkt. In der Regel können die neuesten Generationen von LTO-Bandkassetten so formatiert werden, dass sie bis zu vier Datenpartitionen umfassen. Allerdings hängt die Anzahl von möglichen Datenpartitionen von der speziellen Generation der LTO-Bandkassette ab.
  • Die in einer formatierten LTO-Bandkassette untergebrachten Bandmedien sind in der Regel in vier Datenbänder unterteilt, die sich horizontal über die gesamte Länge des Bandes erstrecken. Jedes der vier Datenbänder wird durch ein schmales Servoband auf jeder Seite getrennt (insgesamt 5 schmale Servobänder). Servobänder stellen für den Bandkopf Speicherplatzinformationen bereit, da dieser Daten in ein spezifisches Datenband liest und schreibt. Bandköpfe erstrecken sich im Allgemeinen über die Breite eines Datenbandes und die angrenzenden (d.h. oberen und unteren) Servobänder und bewegen sich in einer vertikalen Richtung über die Breite des horizontal ausgerichteten Bands. Die Bandkopf-Position wird durch das System von Servobändern und die Informationen gesteuert, die in jedem Servoband während der Herstellung encodiert werden. Während sich der Bandkopf vertikal über die Breite des Bandes bewegt, kann das Band horizontal entlang seiner Länge bewegt werden (d.h. durch Aufwickeln und Abwickeln des Bandes auf Spulen), wobei dem Bandkopf ermöglicht wird, mit verschiedenen Abschnitten des Bands zu interagieren.
  • Die Bandkopf-Baugruppe, die aus dem Band liest und in das Band schreibt, überspannt ein einzelnes Datenband und die beiden angrenzenden Servobänder. Die Bandkopf-Baugruppe kann einen Satz von 8, 16 oder 32 Daten-Lese/Schreibkopfelementen (auf Grundlage des entsprechenden Satzes von Spuren in einem einzelnen Datenband) und zwei (2) Servo-Leseelemente haben. Alle Spuren in einem bestimmten Satz werden in einem einzelnen, unidirektionalen, vollständigen Ende-Ende-Durchgang (d.h. Umlauf) (wrap) gelesen oder geschrieben. Nach einem Durchgang über die gesamte Länge des Bandes verschieben sich alle Bandköpfe leicht in einer seitlichen Richtung, um auf einen anderen Umlauf in dem Band (oder Umläufe in anderen Bändern) zuzugreifen, wobei ein weiterer Durchgang in der umgekehrten Richtung erfolgt. Umläufe werden in Vorwärts- und Rückwärts-Durchgängen fortgesetzt. Diese Prozedur, die als lineare Serpentinen-Aufzeichnung bekannt ist, wird wiederholt, bis alle Spuren in den Bändern beschrieben worden sind. Die Position, an der ein Beschreiben aller Bereiche des Bandes abgeschlossen ist, wird als das logische Ende des Bandes identifiziert.
  • Ein lineares Banddateisystem (LTFS) ermöglicht es, eine LTO-Bandkassette weiter in eine Indexpartition (IP) und eine Datenpartition (DP) zu partitionieren. Dateidaten werden im Allgemeinen nur in die Datenpartition geschrieben, und Metadaten (d.h. Daten, die die Dateidaten beschreiben, die in der Datenpartition gespeichert sind) werden in die Indexpartition geschrieben. Ein Organisieren oder Partitionieren des Bandes auf diese Weise ermöglicht dem Band durch die Verwendung eines Datei-Indexes in der Indexpartition selbstbeschreibend zu sein. Dies führt zu einer Verringerung der Komplexität der Datenverwaltung und Datenzugriffszeit für die Bandspeicherung. Dementsprechend machte es ein LTFS möglich, Magnetband-Speichereinheiten auf eine ähnliche Weise für andere entfernbare Speichersysteme zu verwenden (z.B. USB-Flash-Laufwerke oder externe Festplattenlaufwerke).
  • Ausführungsformen der vorliegenden Erfindung erkennen, dass die Bandkassette, wenn der Bandkopf das Ende des Bandes erreicht, während Dateidaten an die Datenpartition angehängt werden, eine Fehlermeldung zurückgibt und ein weiteres Anhängen von Daten an das Band verhindert. Wenn dieses Szenario eintritt, wird es unmöglich, einen Index an das Ende der in die Datenpartition geschriebenen Dateidaten anzuhängen, wodurch letztendlich LTFS-Formatanforderungen verletzt werden.
  • Ausführungsformen der vorliegenden Erfindung erkennen, dass eine mögliche Lösung für das vorgenannte Problem darin besteht, einen Speicherbereich an dem Ende des Bandes als einen Puffer anzugeben. Wird der Puffer während einer Dateioperation erreicht, werden die Übergänge in einen DATA_FULL-Zustand, in dem nur Metadaten-Schreiboperationen (z.B. Modifizieren eines Zeitstempels, Löschen einer Datei, Umbenennen einer Datei und Schreiben eines Indexes) in dem Puffer erlaubt sind. Es ist anzumerken, dass nach einem Erreichen des Puffers durch den Bandkopf normale Daten-Schreiboperationen wie beispielsweise ein Anhängen von Dateidaten an die Datenpartition nicht mehr erlaubt sind.
  • Ausführungsformen der vorliegenden Erfindung erkennen ferner, dass die Größe eines Indexes, der Metadaten darstellt, die den in die Datenpartition geschriebenen Dateidaten zugehörig sind, von der Anzahl von Datensätzen in der Datei und der Größe aller erweiterten Attribute der Datei abhängt. Wenn daher die Größe des Indexes die Größe des Puffers überschreitet, kann der gesamte Index während/nach einem Übergehen in einen FULL_DATA-Zustand nicht mehr an den Puffer angehängt werden, wodurch letztendlich immer noch LTFS-Formatanforderungen verletzt werden.
  • Ausführungsformen der vorliegenden Erfindung erkennen ferner, dass eine Benutzeranwendung oft den letzten Umlauf der Datenpartition als den Puffer angibt. Allerdings hängt die Größe eines einzelnen Umlaufs auf dem Band von der Länge des Bandes selbst ab. Zum Beispiel beträgt die Bandlänge in einer LTO-5-Bandkassette nur 846 Meter, während die Bandlänge in einer LTO-9-Bandkassette 1.035 Meter beträgt. Wenn angenommen wird, dass die Länge der Datenpartition einer LTO-5-Bandkassette 811 Meter beträgt und die Länge der Datenpartition einer LTO-9-Bandkassette 1.000 Meter beträgt, wäre der letzte Umlauf auf dem Band der LTO-9-Bandkassette 189 Meter länger als der letzte Datenumlauf auf dem Band in der LTO-5-Bandkassette. Dementsprechend kann abhängig von der Größe des an den Puffer an dem Ende des Bandes angehängten Indexes und von der Größe des Puffers selbst ein großer Bereich des Puffers ungenutzt bleiben. Dies ist auf die Tatsache zurückzuführen, dass normale Daten-Schreiboperationen wie beispielsweise ein Anhängen von Dateidaten an die Datenpartition in dem Puffer nicht mehr erlaubt sind.
  • Ausführungsformen der vorliegenden Erfindung verbessern sich gegenüber den vorgenannten Mängeln durch ein dynamisches Ändern einer Position auf einem Band, an der das Band in einen DATA_FULL-Zustand übergeht. In einer Ausführungsform wird die Position auf dem Band, an der das Band in einen DATA_FULL_Zustand übergeht, auf Grundlage der Größe eines Indexes verschoben, der die zuletzt in die Datenpartition geschriebenen Dateidaten darstellt. In einer Ausführungsform wird ein Speicherbereich als ein Puffer für Metadaten-Schreiboperationen reserviert, die erst durchgeführt werden, nachdem das Band in einen DATA_FULL-Zustand übergegangen ist. In einer Ausführungsform befindet sich der Puffer anschließend an der Position auf dem Band, an der das Band in einen DATA_FULL-Zustand übergeht. Dementsprechend umfasst ein Verschieben des Punkts auf dem Band, an dem das Band in einen DATA_FULL-Zustand übergeht, ferner ein Ändern der Größe des Puffers.
  • Zum Beispiel wird ein Puffer mit einer Größe von 500 MB in dem beschreibbaren Bereich der Datenpartition eines Bandes reserviert. Wenn der zuletzt an die Datenpartition angehängte Index 200 MB an Daten enthält, wird die Größe des Puffers auf die letzten 200 MB von Speicher in dem beschreibbaren Bereich der Datenpartition auf dem Band verringert. Dementsprechend maximieren Ausführungsformen der vorliegenden Erfindung vorteilhafterweise die Menge von Dateidaten, die an das Band angehängt werden können, bevor das Band in einen DATA_FULL-Zustand übergeht, wodurch letztendlich die Menge von ungenutztem Speicherplatz in der Datenpartition des Bandes begrenzt wird.
  • In der Regel sind normale Dateioperationen nach einem Übergang in einen DATA_FULL-Zustand verboten. Wenn daher zusätzlicher Speicherplatz in dem Puffer verbleibt, nachdem Metadaten-Schreiboperationen (z.B. Anhängen eines Indexes) durchgeführt worden sind, bleibt jeder restliche Speicherplatz für ein Durchführen von normalen Dateioperationen unbenutzbar. Durch ein dynamisches Ändern der Position auf dem Band, an der das Band in einen DATA_FULL-Zustand übergeht, maximieren Ausführungsformen der vorliegenden Erfindung jedoch die Menge von auf das Band geschriebenen Daten, wobei immer noch sichergestellt wird, dass genügend Pufferplatz an dem Ende des Bandes verbleibt, um alle notwendigen Metadaten-Schreiboperationen durchzuführen.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt auf jeder möglichen technischen Detailintegrationsebene handeln. Das Computerprogrammprodukt kann ein durch einen Computer lesbares Speichermedium (oder -medien) mit durch einen Computer lesbaren Programmanweisungen enthalten, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch eine Einheit zum Ausführen von Anweisungen beibehalten und speichern kann. Das durch einen Computer lesbare Speichermedium kann zum Beispiel eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiter-Speichereinheit oder jede geeignete Kombination aus dem Vorgenannten sein, es ist aber nicht darauf beschränkt. Zu einer nicht erschöpfenden Liste von spezifischeren Beispielen des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer CD-ROM, eine DVD, ein Arbeitsspeicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination des Vorgenannten. Ein durch einen Computer lesbares Speichermedium soll, wie hierin verwendet, nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder andere Übertragungsmedien ausbreiten (z.B. durch ein Lichtwellenleiterkabel geleitete Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetzwerk und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben sind, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In dem letzteren Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über jeden Typ von Netzwerk verbunden werden, einschließlich ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Nutzung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, feldprogrammierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die computerlesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der computerlesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung werden hierin unter Bezugnahme auf Veranschaulichungen von Ablaufplänen und/oder Blockschaubildern von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es sollte klar sein, dass jeder Block der Ablaufplanveranschaulichungen und/oder der Blockschaubilder und Kombinationen von Blöcken in den Ablaufplanveranschaulichungen und/oder den Blockschaubildern mittels durch einen Computer lesbare Programmanweisungen umgesetzt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, sodass die über den Prozessor des Computers bzw. eine andere programmierbare Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegebenen Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, sodass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, die Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaubilder angegebenen Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Arbeitsschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen durch einen Computer umgesetzten Prozess zu erzeugen, sodass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegebenen Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und Blockschaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder den Blockschaubildern ein Modul, ein Segment oder einen Teil von Computerprogramm-Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zum Umsetzen der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Umsetzungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt auftreten. Zum Beispiel können zwei nacheinander gezeigte Blöcke tatsächlich im Wesentlichen parallel ausgeführt werden, oder die Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden, was von der beteiligten Funktionalität abhängt. Es ist ferner anzumerken, dass jeder Block der Blockschaubilder und/oder der Ablaufplandarstellungen sowie Kombinationen von Blöcken in den Blockschaubildern und/oder der Ablaufplandarstellung durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die angegebenen Funktionen oder Handlungen durchführen oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung wurden zum Zweck der Veranschaulichung erstellt, sie sollen aber keineswegs erschöpfend oder auf die offenbarten Ausführungsformen eingeschränkt sein. Für Fachleute sind viele Modifizierungen und Variationen offenkundig, die nicht von dem Schutzumfang der beschriebenen Ausführungsformen abweichen. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder technische Verbesserung gegenüber auf dem Markt gefundenen Technologien bestmöglich zu erklären oder es anderen Fachleuten zu ermöglichen, die hierin offenbarten Ausführungsformen zu verstehen.
  • Die hierin verwendete Terminologie dient nur zum Zweck der Beschreibung von bestimmten Ausführungsformen und soll keinesfalls einschränkend sein. Ungeachtet dessen werden im Folgenden einige Definitionen vorgestellt, die durchgehend für dieses Dokument gelten.
  • Wie hierin definiert, umfassen die Singularformen „ein“, „eine“ und „der/die/das“ auch die Pluralformen, es sei denn, der Kontext gibt eindeutig anderes vor.
  • Wie hierin definiert, bedeutet „ein weiteres/eine weitere“ mindestens eine zweite oder mehr.
  • Wie hierin definiert, sind „mindestens ein/eine“, „ein/eine oder mehrere“ und „und/oder“ offene Ausdrücke, die im Einsatz konjunktiv und disjunktiv sind, soweit nicht ausdrücklich anders angegeben. Zum Beispiel bedeutet jeder der Ausdrücke „mindestens eines von A, B und C“, „mindestens eines von A, B oder C“, „eines oder mehreres von A, B und C“, „eines oder mehreres von A, B oder C“ und „A, B und/oder C“ A alleine, B alleine, C alleine, A und B zusammen, A und C zusammen, B und C zusammen oder A, B und C zusammen.
  • Wie hierin definiert, bedeuten „automatisch“ und „dynamisch“ ohne Eingreifen durch den Benutzer.
  • Wie hierin definiert, wird durch „umfasst“, „umfassend“, „weist auf“ und/oder „aufweisend“ das Vorhandensein ausgewiesener Merkmale, Ganzzahlen, Schritte, Vorgänge, Elemente und/oder Komponenten angegeben, das Vorhandensein oder die Hinzufügung von einem oder mehreren anderen Merkmalen, Ganzzahlen, Schritten, Vorgängen, Elementkomponenten und/oder Gruppen davon wird aber nicht ausgeschlossen.
  • Wie hierin definiert, bedeutet „wenn“ abhängig vom Kontext „in Reaktion auf“ oder „ansprechend auf“. Somit kann der Ausdruck „wenn bestimmt wird“ abhängig vom Kontext so aufgefasst werden, dass er „in Reaktion auf ein Bestimmen“ oder „ansprechend auf ein Bestimmen“ bedeutet. Desgleichen kann der Ausdruck „wenn [eine genannte Bedingung oder ein genanntes Ereignis] erfasst wird“ abhängig vom Kontext so aufgefasst werden, dass er „nach einem Erfassen [der genannten Bedingung oder des genannten Ereignisses]“ oder „in Reaktion auf ein Erfassen [der genannten Bedingung oder des genannten Ereignisses]“ bedeutet.
  • Wie hierin definiert, bedeutet „irgendeine Ausführungsform“, „eine Ausführungsform“, „in einer oder mehreren Ausführungsformen“, „in bestimmten Ausführungsformen“ oder eine ähnliche Formulierung, dass ein bestimmtes Merkmal, eine Struktur oder eine Eigenschaft, die in Verbindung mit der Ausführungsform beschrieben werden, in mindestens einer Ausführungsform enthalten sind, die in dieser Offenbarung beschrieben wurde. Somit können sich Darstellungen der vorgenannten Ausdrücke und/oder ähnliche Formulierungen in dieser gesamten Offenbarung auf dieselbe Ausführungsform beziehen, dies ist aber nicht notwendigerweise der Fall.
  • Wie hierin definiert, bedeuten die Ausdrücke „in Reaktion auf“ und „ansprechend auf“ ein unmittelbares Antworten oder Reagieren auf eine Aktion oder ein Ereignis. Wenn daher eine zweite Aktion „in Reaktion auf“ oder „ansprechend auf“ eine erste Aktion ausgeführt wird, besteht eine kausale Beziehung zwischen einem Auftreten der ersten Aktion und einem Auftreten der zweiten Aktion. Die Ausdrücke „in Reaktion auf“ und „ansprechend auf“ geben die kausale Beziehung an.
  • Wie hierin definiert, bedeutet „Echtzeit“ eine Ebene von Verarbeitungsansprechverhalten, das ein Benutzer oder ein System als ausreichend unmittelbar für einen bestimmten Prozess oder eine vorzunehmende Bestimmung empfindet, oder das den Prozessor befähigt, mit einem externen Prozess Schritt zu halten.
  • Wie hierin definiert, bedeutet „im Wesentlichen“, dass das genannte Merkmal, der Parameter oder Wert nicht genau erreicht werden müssen, dass aber Abweichungen oder Variationen einschließlich beispielsweise Toleranzen, Messfehler, Einschränkungen der Messgenauigkeit und andere dem Fachmann bekannte Faktoren in Mengen auftreten können, die die Wirkung nicht ausschließen, die durch das Merkmal bereitgestellt werden soll.
  • Wie hierin definiert, verweisen „Benutzer“ und „Person“ jeweils auf ein menschliches Wesen.
  • Die Begriffe erste/r/s, zweite/r/s usw. können hierin verwendet werden, um verschiedene Elemente zu beschreiben. Diese Elemente sollten nicht durch diese Begriffe eingeschränkt werden, da diese Begriffe nur verwendet werden, um ein Element von einem anderen zu unterscheiden, sofern nicht anders angegeben oder der Kontext eindeutig anderes vorgibt.
  • Wie hierin definiert, ist „programmierbare Frühwarnzone (PEWZ)“ ein durch ein Bandlaufwerk eingestellter Bandparameter, der aus einem numerischen 2-Byte-Wert besteht, der angibt, wie viele MB bevor einem Frühwarn- (EW) Indikator generiert werden. Wenn die PEWZ durch einen Bandkopf während einer Schreiboperation erreicht wird, wird eine programmierbare Frühwarnung (PEW) generiert, die eine Anzahl von Bytes auf dem Band angibt, bevor der EW-Indikator für das standardmäßige Ende des Mediums erreicht wird.
  • Wie hierin definiert, ist „Frühwarnung (EW)“ eine Warnung, die generiert wird, wenn das Ende der PEWZ durch einen Bandkopf während einer Schreiboperation erreicht wird. Die EW gibt an, dass ein „DATA_FULL-Zustand“ erreicht worden ist.
  • Wie hierin definiert, ist der „DATA_FULL-Zustand“ ein Zustand des Bandes, an dem normale Dateioperationen nicht mehr erlaubt sind, und nur ein Anhängen von Metadaten-Operationen erlaubt ist.
  • Wie hier verwendet, bedeutet der Begriff „Puffer“ einen Speicherbereich einer Band-Partition, der anschließend an das Ende der PEWZ beginnt und am Ende des beschreibbaren Bereichs einer Partition endet. In dem Puffer sind nur Metadaten-Schreiboperationen erlaubt.
  • Unter folgender detaillierterer Bezugnahme auf verschiedene Ausführungsformen der Erfindung ist 1 ein Funktions-Blockschaubild einer Netzwerk-Datenverarbeitungsumgebung, allgemein mit 100 bezeichnet, die für den Einsatz eines Band-Pufferprogramms 101 gemäß mindestens einer Ausführungsform der vorliegenden Offenbarung geeignet ist. 1 stellt nur eine Veranschaulichung einer Umsetzung bereit und impliziert keine Einschränkungen hinsichtlich der Umgebungen, in denen verschiedene Ausführungsformen umgesetzt werden können. Viele Modifizierungen an der dargestellten Umgebung können von einem Fachmann vorgenommen werden, ohne von dem durch die Ansprüche festgelegten Schutzumfang der Erfindung abzuweichen.
  • Die Netzwerk-Datenverarbeitungsumgebung 100 umfasst eine Benutzereinheit 110, eine Bandbibliothek 120 und einen Server 130, die über ein Netzwerk 140 miteinander verbunden sind. In Ausführungsformen der Erfindung kann das Netzwerk 140 zum Beispiel ein Telekommunikationsnetzwerk, ein lokales Netzwerk (LAN), ein Weitverkehrsnetzwerk (WAN) wie das Internet oder eine Kombination von den dreien sein und kann drahtgebundene, drahtlose oder Lichtwellenleiter-Verbindungen umfassen. Das Netzwerk 140 kann ein oder mehrere drahtgebundene und/oder drahtlose Netzwerke umfassen, das bzw. die Daten-, Sprach- und/oder Videosignale empfangen und übertragen kann bzw. können, einschließlich Multimediasignale, die Sprach-, Daten- und Video-Informationen umfassen. Im Allgemeinen kann das Netzwerk 140 jede Kombination von Verbindungen und Protokollen sein, die Datenübertragungen zwischen der Benutzereinheit 110, der Bandbibliothek 120, dem Server 130 und anderen Datenverarbeitungseinheiten (nicht gezeigt) in der Netzwerk-Datenverarbeitungsumgebung 100 unterstützen.
  • Die Benutzereinheit 110 ermöglicht einem Benutzer den Zugriff auf eine Anwendung, die auf einer Host-Einheit ausgeführt wird, um mit dem Pufferprogramm 101 Daten auszutauschen und mit der Bandbibliothek 120 Daten auszutauschen, um Daten über ein Netzwerk, wie beispielsweise das Netzwerk 140, auf verschiedene Magnetband-Medien zu schreiben und daraus abzurufen. In verschiedenen Ausführungsformen der vorliegenden Erfindung ist die Benutzereinheit 110 eine Datenverarbeitungseinheit, die ein Laptop-Computer, ein Tablet-Computer, ein Netbook-Computer, ein Personal Computer (PC), ein Desktop-Computer, ein Personal Digital Assistant (PDA), ein Smartphone, eine Smartwatch oder jede programmierbare elektronische Einheit sein kann, die Daten empfangen, senden und verarbeiten kann. Im Allgemeinen stellt die Benutzereinheit 110 jede programmierbare elektronische Einheit oder Kombination von programmierbaren elektronischen Einheiten dar, die fähig ist bzw. sind, durch eine Maschine lesbare Programmanweisungen auszuführen und mit der Bandbibliothek 120, dem Server 130 und anderen Datenverarbeitungseinheiten (nicht gezeigt) in der Netzwerk-Datenverarbeitungsumgebung 100 über ein Netzwerk Daten auszutauschen, wie zum Beispiel das Netzwerk 140.
  • Die Benutzereinheit 110 umfasst eine Benutzerschnittstelle 112. Die Benutzerschnittstelle 112 stellt eine Schnittstelle zwischen der Benutzereinheit 110, der Bandbibliothek 120 und dem Server 130 bereit. In einigen Ausführungsformen kann die Benutzerschnittstelle 112 eine grafische Benutzeroberfläche (GUI) oder eine Web-Benutzeroberfläche (WUI) sein und kann Text, Dokumente, Web-Browser, Fenster, Benutzeroptionen, Anwendungsschnittstellen und Anweisungen für den Betriebsablauf anzeigen, und umfasst die Informationen (wie zum Beispiel Grafik, Text und Ton), die ein Programm für einen Benutzer angibt, und Steuersequenzen, die der Benutzer zum Steuern des Programms verwendet. In anderen Ausführungsformen kann die Benutzerschnittstelle 112 ein Skript, eine Anwendungsprogrammierschnittstelle (API) oder Software für eine mobile Anwendung sein, die eine Schnittstelle zwischen der Benutzereinheit 110, der Bandbibliothek 120 und dem Server 130 bereitstellt.
  • Die Benutzereinheit 110 umfasst eine Anwendung 114. Die Anwendung 114 kann für eine oder mehrere Anwendungen stehen (z.B. eine Anwendungs-Suite), die auf der Benutzereinheit 110 arbeiten. In verschiedenen beispielhaften Ausführungsformen kann die Anwendung 114 eine Anwendung sein, die ein Benutzer einer Benutzereinheit 110 nutzt, um Daten zu senden und zu empfangen, wie zum Beispiel eine Anwendung einer mobilen Einheit. In einer Ausführungsform kann die Anwendung 114 eine clientseitige Anwendung sein, die einer Anwendung zugehörig ist, die auf dem Server 130 ausgeführt wird (z.B. eine dem Pufferprogramm 101 zugehörige clientseitige Anwendung). In einer Ausführungsform kann die Anwendung 114 arbeiten, um Verarbeitungsschritte des Pufferprogramms 101 durchzuführen (d.h. die Anwendung 114 kann für das Pufferprogramm 101 stehen, das auf der Benutzereinheit 110 arbeitet).
  • Die Bandbibliothek 120 ist eine automatisierte Bandspeichereinheit, die eine Mehrzahl von Bandlaufwerken für ein Schreiben auf und ein Auslesen aus Bandmedien umfasst, wie zum Beispiel Einzelspulen- oder Doppelspulen-Magnetbandkassetten. In einer Ausführungsform umfasst die Bandbibliothek Bandkassetten, die gemäß LTO- und LTFS-Formatspezifikationen formatiert sind. In einer Ausführungsform ist die Bandbibliothek 120 eine Bandbibliothek TS3400™ von IBM oder eine Bandbibliothek TS3500™ von IBM. Wenn auf IBM-spezifische Hardware- und/oder Software-Komponenten Bezug genommen wird, sollte klar sein, dass Aspekte der vorliegenden Erfindung gleichermaßen auf andere Bandbibliothek-Technologien angewendet werden können. In Ausführungsformen der Erfindung umfasst die Bandbibliothek 120 eine Mehrzahl von Bandmedien, die in Bänken oder Gruppen von Speichersteckplätzen untergebracht sind. Zum Beispiel können Bandmedien Magnetbandkassetten, Magnetband-Wechselkassetten und optische Bandkassetten umfassen, sie sind aber nicht darauf beschränkt. Die Bandbibliothek 120 umfasst ferner einer Mehrzahl von Steckplätzen zum Aufnehmen von Bandkassetten, einen Barcode-Leser zum Identifizieren von Bandkassetten und ein automatisiertes Verfahren (z.B. einen Roboter) zum Laden von Bändern.
  • In verschiedenen Ausführungsformen der vorliegenden Erfindung ist der Server 130 eine Datenverarbeitungseinheit, die eine eigenständige Einheit, ein Verwaltungsserver, ein Webserver, ein Anwendungsserver, eine mobile Einheit oder jede andere elektronische Einheit oder jedes Datenverarbeitungssystem sein kann, die fähig sind, Daten zu empfangen, zu senden und zu verarbeiten. In einer Ausführungsform stellt der Server 130 ein Server-Datenverarbeitungssystem dar, das mehrere Computer als ein Serversystem nutzt, wie zum Beispiel in einer Cloud-Computing-Umgebung. In einer Ausführungsform stellt der Server 130 ein Datenverarbeitungssystem dar, das zu Clustern zusammengefasste Computer und Komponenten (z.B. Datenbankserver-Computer, Anwendungsserver-Computer, Webserver-Computer, Webmailserver-Computer, Medienserver-Computer usw.) nutzt, die als einzelner Pool von nahtlosen Ressourcen wirken, wenn auf sie in der Netzwerk-Datenverarbeitungseinheit 100 zugegriffen wird. Im Allgemeinen stellt der Server 130 jede programmierbare elektronische Einheit oder Kombination von programmierbaren elektronischen Einheiten dar, die fähig ist, durch eine Maschine lesbare Programmanweisungen auszuführen und untereinander sowie mit der Benutzereinheit 110 und der Bandbibliothek 120 in der Netzwerk-Datenverarbeitungsumgebung 100 über ein Netzwerk Daten auszutauschen, wie zum Beispiel das Netzwerk 140.
  • Der Server 130 umfasst ein lineares Banddateisystem (LTFS) 132. Obwohl das LTFS 132 in 1 als in den Server 130 integriert dargestellt ist, ist das LTFS 132 in alternativen Ausführungsformen vom Server 130 entfernt angeordnet. Zum Beispiel kann sich das LTFS 132 auf der Benutzereinheit 110 oder auf einer Einheit befinden, die sich in der Bandbibliothek 120 befindet.
  • Das LTFS 132 ist ein Dateisystem, das den Zugriff auf Dateien, die auf Bandkassetten in einer Bandbibliothek gespeichert sind, auf gleiche Weise wie auf Dateien ermöglicht, die auf einer Festplatte und einem Flash-Laufwerk gespeichert sind. Sowohl ein spezifisches Format der Daten auf den Bandmedien als auch der Software ist erforderlich, um für die Daten eine Dateisystemschnittstelle bereitzustellen. Jede LTFS-formatierte Bandkassette in der Bandbibliothek 120 erscheint als ein separater Ordner unter dem Dateisystem-Einhängepunkt. Dem Fachmann wird klar sein, dass ein Anwenden eines Dateisystems auf ein Bandlaufwerk den Benutzern ermöglicht, die Inhalte von Bandmedien zu organisieren und zu durchsuchen, wie dies auf einer Festplatte erfolgen würde, wodurch die Zugriffszeit für auf Bandmedien gespeicherte Daten verbessert wird. Zum Beispiel ist das LTFS 132 ein Linear Tape File System - Library Edition (LTFS-LE) von IBM, das ermöglicht, LTFS-Datenträger (d.h. Bandmedien) mit einer Bandbibliothek zu verwenden, wie beispielsweise die Bandbibliothek 120. Wenn auf IBM-spezifische Hardware- und/oder Software-Komponenten Bezug genommen wird, sollte klar sein, dass Aspekte der vorliegenden Erfindung gleichermaßen auf andere Bandbibliothek-Technologien angewendet werden können.
  • Der Server 130 umfasst ferner das Pufferprogramm 101. In einer Ausführungsform arbeitet das Migrationsprogramm 101 auf einem zentralen Server, wie beispielweise dem Server 130, und kann von einer oder mehreren Benutzereinheiten, wie beispielsweise der Benutzereinheit 110, über einen Anwendungs-Download von dem zentralen Server oder einem Anwendungs-Store von Drittanbietern genutzt und auf der Client-Einheit 110 ausgeführt werden. In einer Ausführungsform kann das Pufferprogramm 101 Software sein, die von einem zentralen Server wie beispielsweise dem Server 130 heruntergeladen wird und auf einer oder mehreren Benutzereinheiten wie beispielweise der Benutzereinheit 110 installiert wird. In einer Ausführungsform kann das Pufferprogramm 101 als Software-Dienst genutzt werden, der von einem Drittanbieter von Cloud-Diensten (nicht gezeigt) bereitgestellt wird. In einer Ausführungsform kann das Pufferprogramm 101 eine oder mehrere Komponenten umfassen, wie zum Beispiel Erweiterungen, Plugins und Agent-Programme usw. (nicht gezeigt), die auf einer oder mehreren Benutzereinheiten wie zum Beispiel der Benutzereinheit 110 installiert sind.
  • In verschiedenen Ausführungsform der vorliegenden Erfindung ändert das Pufferprogramm 101 dynamisch die Position auf dem Band, an der das Band in einen DATA_FULL-Zustand übergeht. In einer Ausführungsform wird die Position auf dem Band, an der das Band in einen DATA_FULL-Zustand übergeht, auf Grundlage der Größe eines Indexes verschoben, der an die Datenpartition angehängt werden soll. In einer Ausführungsform wird die Position auf dem Band, an der das Band in einen DATA_FULL-Zustand übergeht, auf Grundlage der Größe des zuletzt an die Datenpartition angehängten Indexes neu positioniert. In einer Ausführungsform wird die Position auf dem Band, an der das Band in einen DATA_FULL-Zustand übergeht, auf Grundlage einer durchschnittlichen Größe einer vorbestimmten Anzahl von vorherigen Indices neu positioniert, die an die Datenpartition angehängt wurden. In einer Ausführungsform wird die Position auf dem Band, an der das Band in einen DATA_FULL-Zustand übergeht, auf Grundlage eines Durchschnitts aller vorherigen Indices neu positioniert, die an die Datenpartition angehängt wurden.
  • In einer Ausführungsform umfasst das Ändern der Position auf dem Band, an der das Band in einen DATA_FULL-Zustand übergeht, ferner ein Modifizieren der Größe eines Puffers, der erst für ein Anhängen von Metadaten-Schreiboperationen reserviert wird, nachdem das Band in einen DATA_FULL-Zustand übergegangen ist.
  • In einer Ausführungsform umfasst das Ändern der Position auf dem Band, an der das Band in einen DATA_FULL-Zustand übergeht, ferner ein Ändern eines Speicherorts einer programmierbaren Frühwarnzone (PEWZ) auf dem Band. Wenn ein Bandkopf die PEWZ während einer Schreiboperation erreicht, wird eine programmierbare Frühwarnung (PEW) ausgegeben, die eine Benutzeranwendung warnt, dass der Speicherplatz auf dem Band zum Durchführen von normalen Dateioperationen zu knapp wird. Wenn in einer Ausführungsform eine PEW erkannt wird, während der Bandkopf eine Schreiboperation durchführt, überführt das Pufferprogramm 101 das Bandlaufwerk in einen DATA_FULL-Zustand. Wenn in einer Ausführungsform eine PEW erkannt wird, während der Bandkopf eine Schreiboperation durchführt, werden die normalen Dateioperationen erlaubt, bis der Bandkopf das Ende der PEWZ erreicht. An diesem Punkt überführt das Pufferprogramm 101 das Band in einen DATA_FULL-Zustand.
  • In 2 ist eine beispielhafte lineare Serpentinen-Aufzeichnung auf einem Band, allgemein mit 200 bezeichnet, gemäß mindestens einer Ausführungsform der vorliegenden Erfindung zu sehen. 2 stellt nur eine Veranschaulichung einer Umsetzung bereit und impliziert keine Einschränkungen hinsichtlich der Umgebungen, in denen verschiedene Ausführungsformen umgesetzt werden können. Viele Modifizierungen an der dargestellten Umgebung können von einem Fachmann vorgenommen werden, ohne von dem durch die Ansprüche festgelegten Schutzumfang der Erfindung abzuweichen.
  • Während die seitliche Richtung des Bandes in eine Mehrzahl von Umläufen unterteilt ist, werden Daten entlang der Längsrichtung des Bandes für jeden Umlauf geschrieben und/oder gelesen. Jedem Umlauf wird in der Schreib-Reihenfolge eine Nummer zugewiesen. In der Regel werden Umläufe auf dem Band so angeordnet, dass Umläufe, die in der gleichen Richtung ausgeführt werden, aneinander angrenzen. Zum Beispiel grenzen Umläufe, die in einer Vorwärtsrichtung ausgeführt werden (d.h. Umläufe, die ab dem Anfang des Bandes bis zum Ende des Bandes ausgeführt werden) aneinander an. Desgleichen grenzen Umläufe, die in einer Rückwärtsrichtung ausgeführt werden (d.h. Umläufe, die ab dem Ende des Bandes bis zum Anfang des Bandes ausgeführt werden) aneinander an. Die Anzahl von Umläufen und die Anzahl von Spuren in jedem Umlauf hängt von der Generation der LTO-Kassette ab. Die Breite in der seitlichen Richtung der Umläufe (d.h. der Spurabstand) hängt von der Bandbreite und der Anzahl von Umläufen auf dem Band ab. Zum Beispiel hat eine LTO-2-Bandkassette 4 Datenbänder und 16 Umläufe pro Band, somit sind 64 Durchgänge für ein Füllen erforderlich. Andererseits hat eine LTO-7-Bandkassette 4 Datenbänder und 28 Umläufe pro Band, somit sind 112 Durchgänge für ein Füllen erforderlich.
  • Wie in 2 dargestellt, wird ein Band 200 in vier Datenbänder unterteilt (Datenband 0, Datenband 1, Datenband 2 und Datenband 3). Wie ferner in 2 dargestellt wird, sind Daten, die in den in Vorwärtsrichtung ausgeführten Umläufen aufgezeichnet werden - Wrap 0, Wrap 2N und Wrap N - 2 im Datenband 0 zu sehen. Diese vorwärts ausgeführten Umläufe sind auf dem Band so angeordnet, dass geradzahlige Umläufe in einem Datenband aneinander angrenzen. Desgleichen sind Daten, die in den in Rückwärtsrichtung ausgeführten Umläufen aufgezeichnet werden - Wrap 1, Wrap 2N - 1 und Wrap N - 1 im Datenband 0 zu sehen. Diese rückwärts ausgeführten Umläufe sind auf dem Band so angeordnet, dass ungeradzahlige Umläufe in einem Datenband aneinander angrenzen. Wenn Daten, ungeachtet der speziellen Aufzeichnungsrichtung, in einer allgemeinen Aufzeichnungsrichtung in jeden aufeinander folgenden Umlauf geschrieben werden, wird der nächste anschließende Umlauf von der Mitte des Datenbands nach außen zum Umfang des Datenbandes hin positioniert.
  • 3A ist ein Blockschaubild, das ein Beispiel für Dateidaten veranschaulicht, die in einer Datenpartition 300A eines Bandes gemäß mindestens einer Ausführungsform der Erfindung gespeichert sind. 3A stellt eine Veranschaulichung von nur einer Umsetzung bereit und impliziert keine Einschränkungen hinsichtlich der Umgebungen, in denen verschiedene Ausführungsformen umgesetzt werden können. Viele Modifizierungen an der dargestellten Umgebung können von einem Fachmann vorgenommen werden, ohne von dem durch die Ansprüche festgelegten Schutzumfang der vorliegenden Erfindung abzuweichen.
  • Einem Fachmann wird klar sein, dass, obwohl in einem LTFS gespeicherte Daten sich wie Daten zu verhalten scheinen, die auf einer Festplatte gespeichert sind, die grundlegende sequenzielle Natur eines Schreibens von Daten auf Bandmedien bleibt. Daten werden nacheinander in Zonen (d.h. logische Blöcke) mit einer vorbestimmten festen Größe geschrieben, und Dateien werden immer an das Ende des Bandes angehängt. Des Weiteren ist ein LTFS ein einmal beschreibbares Dateisystem. Mit anderen Worten, wenn eine auf einem oder mehreren Datenblöcken gespeicherte Datei modifiziert, überschrieben oder aus einem Band-Image entfernt wird, werden die zugehörigen Datenblöcke nicht freigegeben. Stattdessen wird der den zugehörigen Datenblöcken zugewiesene Arbeitsspeicher ungültig (d.h. auf die zugehörigen Datenblöcke wird in einem Index nicht mehr verwiesen), und neu hinzugefügte Daten werden als separate, nicht zusammenhängende Blöcke nach der Datenende- (EOD) Markierung auf das Band geschrieben.
  • Ferner wird einem Fachmann klar sei, dass im Gegensatz zu einem Lese/Schreib-Befehl für eine Blockeinheit, wie beispielweise eine Festplatte, ein Lese/Schreib-Befehl, der an ein Bandlaufwerk ausgegeben wird, keine Blocknummer angibt. Die Datenposition, die einer Lese/Schreib-Anforderung entspricht, kann jedoch auf Grundlage der aktuellen Position der Bandmedien in Bezug auf den Bandkopf bestimmt werden. Die aktuelle Position der Bandmedien kann durch Ausgeben eines Befehls „Read Position“ (Position lesen) abgerufen werden. Desgleichen kann die aktuelle Position der Bandmedien durch Ausgeben eines Befehls „Locate/Space“ (Suchen/Speicherplatz) auf jede Position gesetzt werden. Wenn ein Lese/Schreib-Befehl erfolgreich ausgeführt worden ist, wird die aktuelle Position der Bandmedien aktualisiert.
  • In Ausführungsformen der vorliegenden Erfindung umfassen Daten, die auf ein Magnetband geschrieben wurden, die folgenden Informationen: (i) Datensatz, (ii) Dateimarkierung („FM“) und (iii) Datenende- („EOD“) Markierung. Der Begriff „Datensatz“, wie hierin verwendet, bezieht sich auf eine Datensequenz mit variabler Länge auf dem Band. Der Begriff „Dateimarkierung (FM)“, wie hierin verwendet, bezieht sich auf einen Separator mit der Länge Null auf dem Band, der Daten (d.h. Datensätze) einer bestimmten Datei begrenzt. Der Begriff „Datenende- (EOD) Markierung“, wie hierin verwendet, bezieht sich auf eine Bezeichnung des Endes der Daten, die auf das Band geschrieben wurden.
  • Wie durch 3A dargestellt, umfasst die Datenpartition 300A eine Position_0, Position_1, Position_2, Position_3, Position_4, Position_5 und eine Position_6. Die Positionen 0 bis 6 markieren physische Dateneinheiten (d.h. Datenblöcke) der Datenpartition 300A. In Ausführungsformen der vorliegenden Erfindung können Blöcke einen einzelnen Datensatz, einen Teil eines Datensatzes oder mehrere Datensätze umfassen. In einigen Ausführungsformen können Datenblöcke auf eine Größe festgelegt werden. In anderen Ausführungsformen können Datenblöcke eine variable Größe haben. Die Datenpartition 300A umfasst ferner die folgenden Datensätze: Rec #0, Rec #1, Rec #2, Rec #3, FM #4 und Rec #5. Rec #0, Rec #1, Rec #2 und Rec #3 gehören zur selben Datei und Rec #5 gehört zu einer anderen Datei, wie durch die zwischen Rec #3 und Rec #5 liegende FM #4 angegeben. Rec #5 ist das Ende der Daten (wie durch eine Datenende- (EOD) Markierung angegeben) an der Position_6. Wenn in Ausführungsformen der Erfindung ein „READ“-Befehl ausgegeben wird, wird die aktuelle Position des Bandkopfs aktualisiert. Wenn zum Beispiel die aktuelle Position eines Bandkopfs auf Position_1 liegt und ein „READ“-Befehl für Rec #3 ausgegeben wird, wird der Bandkopf zu Position_3 bewegt und Rec #3 wird gelesen. Nach Beendigung des Lesens von Rec #3 wird die aktuelle Position des Bandkopfs auf Position_4 aktualisiert.
  • 3B ist ein Blockschaubild, das ein Beispiel für Dateidaten veranschaulicht, die in einer Datenpartition 300B eines Bandes nach einem Anhängen von Dateidaten an die Datenpartition 300A von 3A gemäß mindestens einer Ausführungsform der vorliegenden Erfindung gespeichert sind. 3B stellt eine Veranschaulichung von nur einer Umsetzung bereit und impliziert keine Einschränkungen hinsichtlich der Umgebungen, in denen verschiedene Ausführungsformen umgesetzt werden können. Viele Modifizierungen an der dargestellten Umgebung können von einem Fachmann vorgenommen werden, ohne von dem durch die Ansprüche festgelegten Schutzumfang der Erfindung abzuweichen.
  • Die Datenpartition 300B in 3B veranschaulicht die Datenpartition 300A von 3A, nachdem ein „WRITE“-Befehl ausgegeben wurde. In einer Ausführungsform kann ein „WRITE“-Befehl eines oder mehreres des Folgenden umfassen, ist aber nicht darauf beschränkt: (i) Modifizieren eines Datensatzes, (ii) Überschreiben eines Datensatzes und (iii) Hinzufügen von neuen Daten. Die Datenpartition 300B umfasst Position_0, Position_1, Position_2, Position_3, Position_4, Position_5, Position_6 und Position_7. Die Positionen 0 bis 6 der Datenpartition 300B von 3B entsprechen den Positionen 0 bis 6 der Datenpartition 300A von 3A. Die Datenpartition 300B von 3B umfasst ferner die folgenden Datensätze: Rec #0, Rec #1, Rec #2, Rec #3, FM #4, Rec #5 und Rec #6. Die Datensätze Rec#0 bis Rec #5 der Datenpartition 300B von 3B entsprechen den Datensätzen Rec#0 bis Rec #5 der Datenpartition 300A von 3A. In einer Ausführungsform hängen „WRITE“-Operationen Daten an die EOD-Markierung an. Wie durch die Datenpartition 300B dargestellt, wurde ein „WRITE“-Befehl ausgegeben. Dementsprechend, da Rec #5 der letzte Datensatz war, der an der Position_5 in die Datenpartition 300A in 3A geschrieben worden ist (bezeichnet durch die EOD-Markierung an der Position_6), wurde Rec #6 auf die Position 6 geschrieben, FM #7 wurde auf die Position 7 geschrieben, und die EOD-Markierung wurde auf die Position_8 in der Datenpartition 300B von 3B aktualisiert.
  • 4A ist ein Blockschaubild, das ein Beispiel für einen LTFS-Datenträger, allgemein mit 400A bezeichnet, gemäß mindestens einer Ausführungsform der vorliegenden Erfindung veranschaulicht. 4A stellt eine Veranschaulichung von nur einer Umsetzung bereit und impliziert keine Einschränkungen hinsichtlich der Umgebungen, in denen verschiedene Ausführungsformen umgesetzt werden können. Viele Modifizierungen an der dargestellten Umgebung können von einem Fachmann vorgenommen werden, ohne von dem durch die Ansprüche festgelegten Schutzumfang der Erfindung abzuweichen.
  • In verschiedenen Ausführungsformen der vorliegenden Erfindung umfasst ein LTFS-Datenträger ein Paar von LTFS-Partitionen - eine Datenpartition und eine Indexpartition. Nach dem Anhängen von Dateidaten an die Datenpartition wird ein Index-Konstrukt (das Metadaten enthält, die den Dateidaten in der Datenpartition zugehörig sind) an das Ende der Dateidaten angehängt, und der Index der Indexpartition wird mit dem an die Dateipartition angehängten Index-Konstrukt überschrieben.
  • Jede Partition umfasst ein Kennzeichnungskonstrukt, gefolgt von einem Inhaltsbereich. Das Kennzeichnungskonstrukt enthält identifizierende Informationen für einen speziellen LTFS-Datenträger. In einer Datenpartition wird der Inhaltsbereich aus Datenerweiterungen und Index-Konstrukten gebildet. Eine Datenerweiterung enthält Dateidaten, die als sequenzielle logische Blöcke geschrieben sind. Eine Datei besteht aus null oder mehreren Datenerweiterungen plus zugehörigen Metadaten, die in einem Index-Konstrukt gespeichert sind. Ein Index-Konstrukt enthält einen Index, der eine XML-Datenstruktur ist, die die Zuordnung zwischen Dateien und Datenerweiterungen beschreibt.
  • In einer Indexpartition wird der Inhaltsbereich aus drei verschiedenen Typen von Informationen gebildet - eine Generierungsnummer, selbst referenzierende Zeiger (self pointers) und Gegenpunktzeiger. Eine Generierungsnummer umfasst das Alter des letzten Indexes in Bezug auf vergangene Indizes in einem Datenträger. Jeder Index in einem Datenträger hat eine Generierungsnummer, die eine nicht negative Ganzzahl ist, die sich erhöht, wenn an dem Datenträger Änderungen vorgenommen werden. Der Index mit der höchsten Nummer in dem Datenträger steht für den aktuellen Zustand des gesamten Datenträgers. Ein selbst referenzierender Zeiger zeichnet den Datenträger, zu dem der Index gehört, und die Blockposition des Indexes in diesem Datenträger auf. Ein Gegenpunktzeiger zeichnet die Blockposition des letzten Indexes, der in der Datenpartition vorhanden ist, unmittelbar vor dem Schreiben dieses Indexes auf.
  • Wie in 4A dargestellt, umfasst eine Datenpartition (DP) 420 ein Kennzeichnungskonstrukt 422, und der Inhaltsbereich umfasst Index #0, Datei #1, Datei #2, Index #1, Datei #3 und Index #2. Eine Indexpartition (IP) umfasst ein Kennzeichnungskonstrukt 412 und den Index #2. Der Index #2 in der DP 420 ist der gleiche Index wie der Index #2 in der IP 410.
  • 4B ist ein Blockschaubild, allgemein mit 400B bezeichnet, das ein Beispiel für eine programmierbare Frühwarnzone (PEWZ) auf einem Band gemäß mindestens einer Ausführungsform der vorliegenden Erfindung veranschaulicht. Wie in 4B dargestellt, beginnt eine Datenpartition 450 am Anfang einer Partition (BOP) 452 und endet am Ende der Partition (EOP) 454. Die Datenpartition 450 umfasst eine PEWZ 456 und einen Puffer 458. Wenn der Bandkopf den Anfang einer PEWZ 460 während einer Dateioperation erreicht, wird eine programmierbare Frühwarnung generiert. Wenn der Bandkopf in einer Ausführungsform das Ende der PEWZ 462 während einer Dateioperation erreicht, wird eine Frühwarnung (EW) generiert. Wie ferner von 4B dargestellt, entspricht der Punkt auf dem Band, an dem das Band in einen DATA_FULL-Zustand übergeht, dem Erreichen des Endes der PEWZ 462 durch den Bandkopf.
  • 5 ist ein Ablaufplan, allgemein mit 500 bezeichnet, der Arbeitsschritte zum Modifizieren eines Puffers an dem Ende des letzten Datenbandes einer Datenpartition auf einer LTFS-formatierten LTO-Bandkassette gemäß mindestens einer Ausführungsform der vorliegenden Erfindung darstellt. 5 stellt nur eine Veranschaulichung einer Umsetzung bereit und impliziert keine Einschränkungen hinsichtlich der Umgebungen, in denen verschiedene Ausführungsformen umgesetzt werden können. Viele Modifizierungen an der dargestellten Umgebung können von einem Fachmann vorgenommen werden, ohne von dem durch die Ansprüche festgelegten Schutzumfang der Erfindung abzuweichen. Es ist anzumerken, dass, obwohl der folgende Ablaufplan eine LTO-Bandkassette veranschaulicht, einem Fachmann jedoch klar sein wird, dass verschiedene Ausführungsformen der vorliegenden Erfindung mit jedem Typ einer LTFS-formatierten Bandspeichereinheit ausgeführt werden können.
  • In einem Schritt 502 lädt das Pufferprogramm 101 ein LTFS-formatiertes LTO-Band.
  • In einem Schritt 504 bestimmt das Pufferprogramm 101, ob ein verfügbarer Speicherbereich in der Datenpartition des Bandes größer als ein vorbestimmter Wert ist (z.B. 200 MB). Wenn das Pufferprogramm 101 bestimmt, dass der verfügbare Speicherbereich in der Datenpartition des Bandes kleiner als der vorbestimmte Wert ist („NEIN“-Verzweigung des Entscheidungsschritts 504), fährt das Pufferprogramm 101 mit einem Schritt 506 fort. Wenn das Pufferprogramm 101 bestimmt, dass der verfügbare Speicherbereich in der Datenpartition des Bandes größer als der vorbestimmte Wert ist („JA“-Verzweigung des Entscheidungsschritts 504), fährt das Pufferprogramm 101 mit einem Schritt 508 fort.
  • Im Schritt 506 geht das Pufferprogramm 101 in einen DATA_FULL-Zustand über, in dem nur Metadaten-Schreiboperationen in der Datenpartition erlaubt sind. Zum Beispiel weist das Pufferprogramm 101 den Bandkopf eines Bandlaufwerks an, nur Metadaten-Schreiboperationen durchzuführen, wie zum Beispiel einen Index in die Datenpartition zu schreiben. Wenn in einem weiteren Beispiel der Bandkopf eines Bandlaufwerks aktiv Dateidaten in die Datenpartition schreibt, wenn ein DATA_FULL-Zustand ausgegeben wird, beendet das Bandlaufwerk automatisch das Schreiben weiterer Dateidaten in die Datenpartition und beginnt einen Index an das Ende der letzten Dateidaten anzuhängen, die in die Datenpartition geschrieben wurden.
  • Im Schritt 508 generiert das Pufferprogramm 101 eine programmierbare Frühwarnzone (PEWZ). In einer Ausführungsform beruht die Größe der PEWZ auf den Anforderungen einer speziellen Benutzeranwendung. Zum Beispiel kann eine Benutzeranwendung erfordern, dass das Bandlaufwerk eine PEWZ mit einer Größe von 500 MB erstellt. In Reaktion auf die Anforderungen generiert das Pufferprogramm 101 einen 2-Byte-Wert, der angibt, wie viele MB (in diesem Fall 500 MB) vorhanden sind, bevor das Band in einen DATA_FULL-Zustand übergeht.
  • In einem Entscheidungsschritt 510 bestimmt das Pufferprogramm 101, ob eine Anforderung für eine Dateioperation empfangen wurde. In einer Ausführungsform kann eine Dateioperation eines oder mehreres von einer Erstell-Operation (zum Erstellen einer neuen Datei), einer Schreib-Operation (zum Schreiben von Daten, die einer Datei zugehörig sind), einer Neupositionierungs- oder Such-Operation (zum Vorwärts- oder Rückwärts-Verschieben des Dateizeigers), einer Lösch-Operation (zum Löschen von Daten, die einer Datei zugehörig sind) und einer Abschneide-Operation (zum Löschen der Informationen, die in einer Datei gespeichert sind, ohne jedoch die Datei selbst zu löschen) umfassen.
  • In einem Schritt 512 führt das Pufferprogramm 101 in Reaktion auf ein Bestimmen, dass eine Anforderung für eine Dateioperation empfangen wurde, die Dateioperation aus. Zum Beispiel weist das Pufferprogramm 101 einen Bandkopf eines Bandlaufwerks an, die Dateioperation in der Datenpartition des Bandes durchzuführen.
  • In einem Schritt 514 bestimmt das Pufferprogramm 101, ob eine programmierbare Frühwarnung (PEW) während des Durchführens der Dateioperation generiert wurde. In einer alternativen Ausführungsform bestimmt das Pufferprogramm 101, ob der Bandkopf während des Durchführens der Dateioperation die PEWZ erreicht.
  • Wenn keine PEW generiert wird, während Dateidaten in die Datenpartition gemäß der Dateioperation (Verzweigung „NEIN“ des Entscheidungsschritt 514) geschrieben werden, kehrt das Pufferprogramm 101 zum Entscheidungsschritt 510 zurück. Wenn der Bandkopf alternativ die PEWZ während des Durchführens der Dateioperation nicht erreicht, kehrt das Pufferprogramm 101 zum Schritt 510 zurück.
  • Wenn keine PEW generiert wird, während Dateidaten in die Datenpartition gemäß der Dateioperation (Verzweigung „JA“ des Entscheidungsschritt 514) geschrieben werden, fährt das Pufferprogramm 101 mit einem Schritt 524 fort. Wenn alternativ erkannt wird, dass der Bandkopf die PEWZ während des Durchführens der Dateioperation erreicht hat, kehrt das Pufferprogramm 101 zum Schritt 524 zurück.
  • In einem Schritt 516 bestimmt das Pufferprogramm 101, ob ein Index an die Datenpartition des Bandes angehängt werden muss. Wenn kein Index an die Datenpartition des Bandes angehängt werden muss, kehrt das Pufferprogramm 101 zum Entscheidungsschritt 510 zurück. Wenn ein Index an die Datenpartition des Bandes angehängt werden muss, fährt das Pufferprogramm 101 mit einem Schritt 518 fort.
  • Im Schritt 518 führt das Pufferprogramm 101 die Operation zum Anhängen des Indexes an die Datenpartition aus. Zum Beispiel weist das Pufferprogramm 101 einen Bandkopf eines Bandlaufwerks an, einen Index an das Ende der Dateidaten auf der Datenpartition des Bandes anzuhängen.
  • In einem Entscheidungsschritt 520 bestimmt das Pufferprogramm 101, ob eine PEW generiert worden ist, während der Index an die Datenpartition angehängt wurde. In einer alternativen Ausführungsform bestimmt das Pufferprogramm 101, ob der Bandkopf während des Anhängens des Indexes an die Datenpartition die PEWZ erreicht hat.
  • Wenn keine PEW generiert wird, während der Index an die Datenpartition angehängt wird, fährt das Pufferprogramm 101 mit einem Schritt 522 fort. Wenn der Bandkopf alternativ die PEW nicht erreicht, während der Index an die Datenpartition angehängt wird, fährt das Pufferprogramm 101 mit dem Schritt 522 fort.
  • Wenn eine PEW generiert wird, während der Index an die Datenpartition angehängt wird, fährt das Pufferprogramm 101 mit dem Schritt 524 fort. Wenn der Bandkopf alternativ die PEW nicht erreicht, während der Index an die Datenpartition angehängt wird, fährt das Pufferprogramm 101 mit dem Schritt 524 fort.
  • Im Schritt 522 modifiziert das Pufferprogramm 101 den Speicherort der PEWZ und die Größe eines Puffers in Bezug auf das Ende des beschreibbaren Bereichs der Datenpartition. Es ist anzumerken, dass durch ein Verschieben des Speicherorts der PEWZ die Größe eines Puffers, der zugewiesen wird, um Metadaten-Operationen durchzuführen, nur wenn ein DATA_FULL-Zustand erreicht wird, ebenfalls geändert wird. Zum Beispiel kann ein Puffer von 1 GB am Ende der Datenpartition nur für ein Durchführen von Metadaten-Operationen reserviert werden, wenn das Bandlaufwerk in einen DATA_FULL-Zustand übergeht. Wenn eine PEWZ mit einer Größe von 500 MB erstellt wird, würde die PEWZ 500 MB von Speicherbereich unmittelbar vor dem Speicherbereich von 1 GB entsprechen, der als Puffer reserviert ist. Dementsprechend, wenn die PEWZ mit einer Größe von 500 MB um 500 MB näher an das Ende des beschreibbaren Bereichs der Datenpartition verschoben wird, wird der Puffer, der nur zum Durchführen von Metadaten-Operationen reserviert wird, wenn ein DATA_FULL-Zustand erreicht ist, von 1 GB auf 500 MB reduziert.
  • In einer Ausführungsform beruht ein Ändern des Speicherorts der PEWZ auf dem Band auf einer Größe eines letzten Indexes, der an die Datenpartition angehängt wurde. Wenn zum Beispiel die Größe des letzten Indexes, der an die Datenpartition angehängt wurde, 200 MB beträgt, verschiebt das Pufferprogramm 101 den Speicherort der PEWZ so, dass die Größe des Puffers der Größe des zuletzt an die Datenpartition angehängten Indexes (200 MB) entspricht. Wenn der Bandkopf dementsprechend das Ende der PEWZ erreicht, geht das Bandlaufwerk in einen DATA_FULL-Zustand über, in dem 200 MB zum Durchführen allein von Metadaten-Schreiboperationen reserviert worden sind. Wenn in einem weiteren Beispiel die Größe des letzten Indexes, der an die Datenpartition angehängt wurde, 300 MB beträgt, verschiebt das Pufferprogramm den Speicherort der PEWZ so, dass die Größe des Puffers der doppelten Größe (600 MB) des zuletzt an die Datenpartition angehängten Indexes (300 MB) entspricht. Wenn der Bandkopf dementsprechend das Ende der PEWZ erreicht, geht das Bandlaufwerk in einen DATA_FULL-Zustand über, in dem 600 MB zum Durchführen allein von Metadaten-Schreiboperationen reserviert worden sind.
  • Im Schritt 524 geht das Pufferprogramm 101 in einen DATA_FULL-Zustand über, in dem nur Metadaten-Schreiboperationen in der Datenpartition erlaubt sind. Zum Beispiel weist das Pufferprogramm 101 den Bandkopf eines Bandlaufwerks an, nur Metadaten-Schreiboperationen durchzuführen, wie zum Beispiel einen Index in die Datenpartition zu schreiben. Wenn in einem weiteren Beispiel der Bandkopf eines Bandlaufwerks aktiv Dateidaten in die Datenpartition schreibt, wenn ein DATA_FULL-Zustand ausgegeben wird, beendet das Bandlaufwerk automatisch das Schreiben weiterer Dateidaten in die Datenpartition und beginnt, einen Index an das Ende der letzten Dateidaten anzuhängen, die in die Datenpartition geschrieben wurden.
  • Obwohl diese Offenbarung eine ausführliche Beschreibung von Cloud Computing enthält, sollte klar sein, dass die Umsetzung der hierin angeführten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist. Stattdessen können Ausführungsformen der vorliegenden Erfindung gemeinsam mit jedem beliebigen Typ von jetzt bekannter oder später entwickelter Datenverarbeitungsumgebung umgesetzt werden.
  • Cloud Computing ist ein Dienstbereitstellungsmodell zum Ermöglichen eines problemlosen bedarfsgesteuerten Netzwerkzugriffs auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Arbeitsspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste), die mit minimalem Verwaltungsaufwand bzw. minimaler Interaktion mit einem Anbieter des Dienstes schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften, mindestens drei Dienstmodelle und mindestens vier Nutzungsmodelle umfassen.
  • Die Eigenschaften sind wie folgt:
  • On-Demand Self-Service: Ein Cloud-Nutzer kann einseitig automatisch nach Bedarf für Datenverarbeitungsfunktionen wie Serverzeit und Netzwerkspeicher sorgen, ohne dass eine menschliche Interaktion mit dem Anbieter des Dienstes erforderlich ist.
  • Broad Network Access: Es sind Funktionen über ein Netzwerk verfügbar, auf die durch Standardmechanismen zugegriffen wird, welche die Verwendung durch heterogene Thin- oder Thick-Client-Plattformen (z.B. Mobiltelefone, Laptops und PDAs) unterstützen.
  • Resource Pooling: Die Datenverarbeitungsressourcen des Anbieters werden zusammengeschlossen, um mehreren Nutzern unter Verwendung eines Multi-Tenant-Modells zu dienen, wobei verschiedene physische und virtuelle Ressourcen dynamisch nach Bedarf zugewiesen und neu zugewiesen werden. Es gibt eine gefühlte Standortunabhängigkeit, da der Nutzer allgemein keine Kontrolle bzw. Kenntnis über den genauen Standort der bereitgestellten Ressourcen hat, aber in der Lage sein kann, einen Standort auf einer höheren Abstraktionsebene festzulegen (z.B. Land, Staat oder Rechenzentrum).
  • Rapid Elasticity: Funktionen können für eine schnelle horizontale Skalierung (scale out) schnell und elastisch bereitgestellt werden, in einigen Fällen auch automatisch, und für ein schnelles Scale-in schnell freigegeben werden. Für den Nutzer erscheinen die für das Bereitstellen verfügbaren Funktionen häufig unbegrenzt, und sie können jederzeit in jeder beliebigen Menge gekauft werden.
  • Measured Service: Cloud-Systeme steuern und optimieren die Verwendung von Ressourcen automatisch, indem sie eine Messfunktion auf einer gewissen Abstraktionsebene nutzen, die für die Art von Dienst geeignet ist (z.B. Speicher, Verarbeitung, Bandbreite sowie aktive Benutzerkonten). Der Ressourcen-Verbrauch kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Nutzer des verwendeten Dienstes Transparenz geschaffen wird.
  • Die Dienstmodelle sind wie folgt:
  • Software as a Service (SaaS): Die für den Nutzer bereitgestellte Funktion besteht darin, die in einer Cloud-Infrastruktur ausgeführten Anwendungen des Anbieters zu verwenden. Die Anwendungen sind über eine Thin-Client-Schnittstelle wie einen Web-Browser (z.B. eine auf dem Web beruhende eMail) von verschiedenen Client-Einheiten her zugänglich. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter das Netzwerk, Server, Betriebssysteme, Speicher bzw. sogar einzelne Anwendungsfunktionen, mit der möglichen Ausnahme von eingeschränkten benutzerspezifischen Anwendungskonfigurationseinstellungen.
  • Platform as a Service (PaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, durch einen Nutzer erstellte bzw. erhaltene Anwendungen, die unter Verwendung von durch den Anbieter unterstützten Programmiersprachen und Tools erstellt wurden, in der Cloud-Infrastruktur einzusetzen. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter Netzwerke, Server, Betriebssysteme bzw. Speicher, hat aber die Kontrolle über die eingesetzten Anwendungen und möglicherweise über Konfigurationen des Application Hosting Environment.
  • Infrastructure as a Service (laaS): Die dem Nutzer bereitgestellte Funktion besteht darin, Verarbeitung, Speicher, Netzwerke und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Nutzer in der Lage ist, beliebige Software einzusetzen und auszuführen, zu der Betriebssysteme und Anwendungen gehören können. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicher, eingesetzte Anwendungen und möglicherweise eingeschränkte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
  • Die Nutzungsmodelle sind wie folgt:
  • Private Cloud: Die Cloud-Infrastruktur wird ausschließlich für eine Organisation betrieben. Sie kann von der Organisation oder einer Drittpartei verwaltet werden und kann innerhalb oder außerhalb von Geschäftsräumen vorhanden sein.
  • Community Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine bestimmte Community, die gemeinsame Problemstellungen hat (z.B. Berücksichtigung von Zielsetzung, Sicherheitsanforderungen, Richtlinien und Konformität). Sie kann von den Organisationen oder einer Drittpartei verwaltet werden und kann innerhalb oder außerhalb der Geschäftsräume vorhanden sein.
  • Public Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt und gehört einer Organisation, die Cloud-Dienste verkauft.
  • Hybrid Cloud: Die Cloud-Infrastruktur ist eine Zusammensetzung aus zwei oder mehreren Clouds (privat, Benutzergemeinschaft oder öffentlich), die zwar einzelne Einheiten bleiben, aber durch eine standardisierte oder proprietäre Technologie miteinander verbunden sind, die eine Daten- und Anwendungsportierbarkeit ermöglicht (z.B. Cloud-Zielgruppenverteilung für den Lastausgleich zwischen Clouds).
  • Eine Cloud-Computing-Umgebung ist dienstorientiert, wobei der Schwerpunkt auf Statusunabhängigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität liegt. Im Mittelpunkt von Cloud Computing steht eine Infrastruktur, die ein Netzwerk von miteinander verbundenen Knoten enthält.
  • 6 ist ein Blockschaubild, das eine Cloud-Computing-Umgebung 50 gemäß mindestens einer Ausführungsform der vorliegenden Erfindung darstellt. Wie gezeigt, weist die Cloud-Computing-Umgebung 50 einen oder mehrere Cloud-Computing-Knoten 10 auf, mit denen lokale Datenverarbeitungseinheiten, die von Nutzern der Cloud verwendet werden, wie beispielsweise Personal Digital Assistant (PDA) oder Mobiltelefon 54A, Desktop-Computer 54B, Laptop-Computer 54C und/oder Fahrzeug-Computersystem 54N, Daten austauschen können. Die Knoten 10 können untereinander Daten austauschen. Sie können physisch oder virtuell in einem oder mehreren Netzwerken gruppiert sein (nicht gezeigt), wie beispielsweise Private, Community, Public oder Hybrid Cloud, wie hierin oben beschrieben, oder in einer Kombination davon. Damit hat die Cloud-Computing-Umgebung 50 die Möglichkeit, eine Infrastruktur, Plattformen und/oder Software als Dienste anzubieten, für die ein Cloud-Nutzer keinerlei Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es sollte klar sein, dass die in 6 gezeigten Typen von Datenverarbeitungseinheiten 54A bis N nur zur Veranschaulichung dienen sollen, und dass die Cloud-Computing-Knoten 10 und die Cloud-Computing-Umgebung 50 mit jedem Typ einer computerisierten Einheit über jeden Typ von Netzwerk und/oder eine über ein Netzwerk adressierbare Verbindung (z.B. unter Verwendung eines Web-Browsers) Daten austauschen können.
  • 7 ist ein Blockschaubild, das einen Satz von funktionalen Abstraktionsmodellschichten darstellt, die durch die Cloud-Computing-Umgebung 50 von 6 gemäß mindestens einer Ausführungsform bereitgestellt werden. Dabei sollte von Anfang an klar sein, dass die in 7 gezeigten Komponenten, Schichten und Funktionen lediglich zur Veranschaulichung dienen sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie dargestellt, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
  • Eine Hardware- und Software-Schicht 60 enthält Hardware- und Software-Komponenten. Zu Beispielen für Hardware-Komponenten zählen: Mainframes 61; Server auf Grundlage einer RISC- (Reduced Instruction Set Computer) Architektur 62; Server 63; Blade-Server 64; Speichereinheiten 65; und Netzwerke und vernetzte Komponenten 66. In einigen Ausführungsformen enthalten Software-Komponenten Software für Netzwerkanwendungsserver 67 und Datenbank-Software 68.
  • Eine Virtualisierungsschicht 70 stellt eine Abstraktionsschicht bereit, von der aus die folgenden beispielhaften virtuellen Entitäten bereitgestellt werden können: virtuelle Server 71; virtueller Speicher 72; virtuelle Netzwerke 73, einschließlich virtuelle private Netzwerke; virtuelle Anwendungen und Betriebssysteme 74; und virtuelle Clients 75.
  • In einem Beispiel kann eine Verwaltungsschicht 80 die im Folgenden beschriebenen Funktionen bereitstellen. Eine Ressourcenbereitstellung 81 sorgt für eine dynamische Beschaffung von Datenverarbeitungsressourcen und weiteren Ressourcen, die zum Ausführen von Aufgaben innerhalb der Cloud-Computing-Umgebung eingesetzt werden. Messung und Preisbestimmung 82 ermöglichen beim Einsatz von Ressourcen innerhalb der Cloud-Computing-Umgebung eine Kostenverfolgung und eine Abrechnung oder Rechnungsstellung für die Inanspruchnahme dieser Ressourcen. In einem Beispiel können diese Ressourcen Lizenzen für Anwendungssoftware umfassen. Eine Sicherheitsfunktion stellt eine Identitätsprüfung für Cloud-Nutzer und -Aufgaben sowie einen Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal 83 stellt den Zugang zur Cloud-Computing-Umgebung für Nutzer und Systemadministratoren bereit. Eine Service-Level- (Dienstgüte) Verwaltung 84 sorgt für Zuweisung und Verwaltung von Cloud-Computing-Ressourcen, sodass erforderliche Service-Levels eingehalten werden. Planung und Vertragserfüllung des Service Level Agreement (SLA) (Dienstgütevereinbarung) 85 stellen eine Vorab-Vereinbarung für und Beschaffung von Cloud-Computing-Ressourcen bereit, für die gemäß eines SLA eine zukünftige Anforderung erwartet wird.
  • Eine Arbeitslastenschicht 90 stellt Beispiele für eine Funktionalität bereit, für welche die Cloud-Computing-Umgebung genutzt werden kann. Zu Beispielen von Arbeitslasten und Funktionen, die von dieser Schicht aus bereitgestellt werden können, zählen: Zuordnung und Navigation 91; Software-Entwicklung und Lifecycle-Management 92; Bereitstellung von virtuellen Schulungen 93; Datenanalyseverarbeitung 94; Transaktionsverarbeitung 95; und dynamischer Migration von Konversationen zwischen Datenübertragungs-Plattformen 96.
  • 8 ist ein Blockschaubild, das Komponenten einer Datenverarbeitungseinheit darstellt, allgemein mit 800 bezeichnet, die zum Ausführen des Pufferprogramms 101 geeignet ist. Zum Beispiel kann die Datenverarbeitungseinheit 800 für die Benutzereinheit 110, die Bandbibliothek 120 und oder den Server 130 von 1 stehen. Die Datenverarbeitungseinheit 800 umfasst einen oder mehrere Prozessoren 804 (einschließlich einem oder mehrere Computerprozessoren), eine Datenübertragungsstruktur 802, einen Arbeitsspeicher 806 einschließlich einem RAM 816 und einem Cache 818, einen permanenten Speicher 808, eine Datenübertragungseinheit 812, eine oder mehrere E/A-Schnittstellen 814, eine Anzeige 822 und externe Einheiten 820. Es sollte klar sein, dass 8 nur eine Veranschaulichung einer Ausführungsform bereitstellt und keine Einschränkungen hinsichtlich der Umgebungen impliziert, in denen verschiedene Ausführungsformen umgesetzt werden können. An der dargestellten Umgebung können viele Modifizierungen vorgenommen werden.
  • Wie dargestellt, arbeitet die Datenverarbeitungseinheit 800 über die Datenübertragungsstruktur 802, die Datenübertragungen zwischen dem oder mehreren Computerprozessoren 804, dem Arbeitsspeicher 806, dem permanenten Speicher 808, der Datenübertragungseinheit 812 und der oder mehreren Eingabe/Ausgabe- (E/A) Schnittstellen 814 bereitstellt. Die Datenübertragungsstruktur 802 kann mit einer Architektur umgesetzt werden, die für ein Übergeben von Daten oder Steuerinformationen zwischen dem bzw. den Prozessoren 804 (z.B. Mikroprozessoren, Datenübertragungsprozessoren und Netzwerkprozessoren), dem Arbeitsspeicher 806, den externen Einheiten 820 und allen anderen Hardware-Komponenten in einem System geeignet ist. Zum Beispiel kann die Datenübertragungsstruktur 802 mit einem oder mehreren Bussen umgesetzt werden.
  • Der Arbeitsspeicher 806 und der permanente Speicher 808 sind durch einen Computer lesbare Speichermedien. In der dargestellten Ausführungsform enthält der Arbeitsspeicher 806 den Direktzugriffsspeicher (RAM) 816 und den Cache 818. Im Allgemeinen kann der Arbeitsspeicher 806 ein oder mehrere beliebige geeignete flüchtige oder nicht flüchtige, durch einen Computer lesbare Speichermedien enthalten.
  • Programmanweisungen für das Pufferprogramm 101 können in dem permanenten Speicher 808 oder allgemein allen durch einen Computer lesbaren Speichermedien zur Ausführung durch einen oder mehrere der jeweiligen Computerprozessoren 804 über einen oder mehrere Arbeitsspeicher des Arbeitsspeichers 806 gespeichert werden. Der permanente Speicher 808 kann eine Magnetfestplatte, eine Solid-State-Festplatte, eine Halbleiter-Speichereinheit, ein Nur-Lese-Speicher (ROM), ein elektronisch löschbarer programmierbarer Nur-Lese-Speicher (EEPROM), ein Flash-Speicher oder jedes andere durch einen Computer lesbare Speichermedium sein, das fähig ist, Programmanweisungen oder digitale Informationen zu speichern.
  • Die von dem permanenten Speicher 808 verwendeten Medien können auch entfernbar sein. Zum Beispiel kann eine entfernbare Festplatte für den permanenten Speicher 808 verwendet werden. Weitere Beispiele umfassen optische und magnetische Platten, USB-Sticks und Smart-Cards, die für einen Datentransfer auf ein anderes durch einen Computer lesbares Speichermedium, das ebenfalls Teil des permanenten Speichers 808 ist, in ein Laufwerk eingesetzt werden.
  • Die Datenübertragungseinheit 812 stellt in diesen Beispielen Datenübertragungen mit anderen Datenverarbeitungssystemen oder-einheiten bereit. In diesen Beispielen kann die Datenübertragungseinheit 812 eine oder mehrere Netzwerk-Schnittstellenkarten umfassen. Die Datenübertragungseinheit 812 kann Datenübertragungen durch die Verwendung von physischen und/oder drahtlosen Datenübertragungsverbindungen bereitstellen. In dem Kontext einiger Ausführungsformen der vorliegenden Erfindung kann die Quelle der verschiedenen Eingabedaten physisch extern zur Datenverarbeitungseinheit 800 angeordnet sein, sodass die Eingabedaten über die Datenübertragungseinheit 812 empfangen und die Ausgabe auf ähnliche Weise darüber übertragen werden können.
  • Die bzw. mehrere E/A-Schnittstellen 814 ermöglicht bzw. ermöglichen die Eingabe und Ausgabe von Daten mit anderen Einheiten, die in Verbindung mit der Datenverarbeitungseinheit 800 arbeiten können. Zum Beispiel kann bzw. können die E/A-Schnittstelle(n) 814 eine Verbindung zu der oder mehreren externen Einheiten 820 bereitstellen, wie zum Beispiel eine Tastatur, ein Tastenfeld, ein Berührungsbildschirm und/oder eine andere geeignete Eingabeeinheit. Die externe Einheit bzw. die externen Einheiten 820 kann bzw. können auch tragbare, durch einen Computer lesbare Speichermedien umfassen, wie zum Beispiel USB-Sticks, tragbare optische oder Magnetplatten und Speicherkarten. Die zum Ausüben von Ausführungsformen der vorliegenden Erfindung verwendete Software und verwendeten Daten können auf derartigen durch einen tragbaren Computer lesbaren Speichermedien gespeichert werden und können auf den permanenten Speicher 808 über die E/A-Schnittstelle(n) 814 geladen werden. Auch die E/A-Schnittstelle(n) 814 kann bzw. können auf ähnliche Weise mit der Anzeige 822 verbunden sein. Die Anzeige 822 stellt einen Mechanismus zum Anzeigen von Daten für einen Benutzer bereit und kann zum Beispiel ein Computermonitor sein.

Claims (20)

  1. Durch einen Computer umgesetztes Verfahren zum Ändern einer Position auf einem Band, an der das Band in einen DATA_FULL-Zustand übergeht, aufweisend: Bestimmen, nachdem eine Datei in die Datenpartition des Bands geschrieben worden ist, einer Größe eines Indexes, der Metadaten darstellt, die der Datei zugehörig sind; und Ändern, auf Grundlage der Größe des Indexes, der die Metadaten darstellt, die der Datei zugehörig sind, einer Position in der Datenpartition des Bands, an der das Band in den DATA_FULL-Zustand übergeht.
  2. Durch einen Computer umgesetztes Verfahren nach Anspruch 1, wobei der DATA_FULL-Zustand ein Zustand des Bandes ist, in dem nur Metadaten-Schreiboperationen erlaubt sind.
  3. Durch einen Computer umgesetztes Verfahren nach Anspruch 2, wobei der DATA_FULL-Zustand in Reaktion darauf eintritt, dass ein Bandkopf ein Ende einer programmierbaren Frühwarnzone (PEWZ) (Programmable Early Warning Zone) in der Datenpartition des Bandes während einer Dateioperation erreicht.
  4. Durch einen Computer umgesetztes Verfahren nach Anspruch 1, wobei ein Ändern der Position auf dem Band, an der das Band in den DATA_FULL-Zustand übergeht, ferner ein Ändern einer Position einer PEWZ in der Datenpartition des Bandes umfasst.
  5. Durch einen Computer umgesetztes Verfahren nach Anspruch 4, wobei das Ändern der Position auf dem Band, an der das Band in den DATA_FULL-Zustand übergeht, ferner ein Ändern einer Größe eines Puffers umfasst, der anschließend an die PEWZ in der Datenpartition des Bandes positioniert ist, wobei nur Metadaten-Schreiboperationen in dem Puffer erlaubt sind.
  6. Durch einen Computer umgesetztes Verfahren nach Anspruch 1, wobei die Position auf dem Band, an der das Band in den DATA_FULL-Zustand übergeht, zu einem Ende eines beschreibbaren Bereichs der Datenpartition des Bandes hin verschoben wird, wenn die Größe des Indexes der Datei kleiner als ein Speicherbereich eines Puffers ist, der sich zwischen einer aktuellen Position auf dem Band, an der das Band in den DATA_FULL-Zustand übergeht, und dem Ende des beschreibbaren Bereichs der Datenpartition des Bandes befindet.
  7. Durch einen Computer umgesetztes Verfahren nach Anspruch 1, wobei die Position des Bandes, an der das Band in den DATA_FULL-Zustand übergeht, von einem Ende eines beschreibbaren Bereichs der Datenpartition des Bandes weg verschoben wird, wenn die Größe des Indexes der Datei größer als ein Speicherbereich eines Puffers ist, der sich zwischen einer aktuellen Position auf dem Band, an der das Band in den DATA_FULL-Zustand übergeht, und dem Ende des beschreibbaren Bereichs der Datenpartition des Bandes befindet.
  8. Computerprogrammprodukt zum Ändern einer Position auf einem Band, an der das Band in einen DATA_FULL-Zustand übergeht, wobei das Computerprogrammprodukt ein oder mehrere durch einen Computer lesbare Speichermedien und Programmanweisungen aufweist, die auf dem einen oder den mehreren durch einen Computer lesbaren Speichermedien gespeichert sind, wobei die Programmanweisungen Anweisungen umfassen zum: Bestimmen, nachdem eine Datei in eine Datenpartition des Bandes geschrieben worden ist, einer Größe eines Indexes, der Metadaten darstellt, die der Datei zugehörig sind; und Ändern, auf Grundlage der Größe des Indexes, der die Metadaten darstellt, die der Datei zugehörig sind, einer Position in der Datenpartition des Bandes, an der das Band in den DATA_FULL-Zustand übergeht.
  9. Computerprogrammprodukt nach Anspruch 8, wobei der DATA_FULL-Zustand ein Zustand des Bandes ist, in dem nur Metadaten-Schreiboperationen erlaubt sind.
  10. Computerprogrammprodukt nach Anspruch 9, wobei der DATA_FULL-Zustand in Reaktion darauf eintritt, dass ein Bandkopf ein Ende einer programmierbaren Frühwarnzone (PEWZ) in der Datenpartition des Bandes während einer Schreiboperation erreicht.
  11. Computerprogrammprodukt nach Anspruch 8, wobei die Anweisungen zum Ändern der Position auf dem Band, an der das Band in den DATA_FULL-Zustand übergeht, ferner Anweisungen zum Ändern einer Position einer PEWZ in der Datenpartition des Bandes umfassen.
  12. Computerprogrammprodukt nach Anspruch 11, wobei die Anweisungen zum Ändern der Position auf dem Band, an der das Band in den DATA_FULL-Zustand übergeht, ferner Anweisungen zum Ändern einer Größe eines Puffers umfassen, der anschließend an die PEWZ in der Datenpartition des Bandes positioniert ist, wobei nur Metadaten-Schreiboperationen in dem Puffer erlaubt sind.
  13. Computerprogrammprodukt nach Anspruch 8, wobei die Position auf dem Band, an der das Band in den DATA_FULL-Zustand übergeht, zu einem Ende eines beschreibbaren Bereichs der Datenpartition des Bandes hin verschoben wird, wenn die Größe des Indexes der Datei kleiner als ein Speicherbereich eines Puffers ist, der sich zwischen einer aktuellen Position auf dem Band, an der das Band in den DATA_FULL-Zustand übergeht, und dem Ende des beschreibbaren Bereichs der Datenpartition des Bandes befindet.
  14. Computerprogrammprodukt nach Anspruch 8, wobei die Position des Bandes, an der das Band in den DATA_FULL-Zustand übergeht, von einem Ende eines beschreibbaren Bereichs der Datenpartition des Bandes weg verschoben wird, wenn die Größe des Indexes der Datei größer als ein Speicherbereich eines Puffers ist, der sich zwischen einer aktuellen Position auf dem Band, an der das Band in den DATA_FULL-Zustand übergeht, und dem Ende des beschreibbaren Bereichs der Datenpartition des Bandes befindet.
  15. Computersystem zum Ändern einer Position auf einem Band, an der das Band in einen DATA_FULL-Zustand übergeht, wobei das Computersystem aufweist: einen oder mehrere Computerprozessoren; ein oder mehrere durch einen Computer lesbare Speichermedien; und Computerprogramm-Anweisungen, wobei die Computerprogramm-Anweisungen auf dem einen oder den mehreren durch einen Computer lesbaren Speichermedien zur Ausführung durch den einen oder die mehreren Computerprozessoren gespeichert sind und die Computerprogramm-Anweisungen Anweisungen umfassen zum: Bestimmen, nachdem eine Datei in eine Datenpartition des Bandes geschrieben worden ist, einer Größe eines Indexes, der Metadaten darstellt, die der Datei zugehörig sind; und Ändern, auf Grundlage der Größe des Indexes, der die Metadaten darstellt, die der Datei zugehörig sind, einer Position in der Datenpartition des Bandes, an der das Band in den DATA_FULL-Zustand übergeht.
  16. Computersystem nach Anspruch 15, wobei der DATA_FULL-Zustand ein Zustand des Bandes ist, in dem nur Metadaten-Schreiboperationen erlaubt sind.
  17. Computersystem nach Anspruch 16, wobei der DATA_FULL-Zustand in Reaktion darauf eintritt, dass ein Bandkopf ein Ende einer programmierbaren Frühwarnzone (PEWZ) in der Datenpartition des Bandes während einer Schreiboperation erreicht.
  18. Computersystem nach Anspruch 15, wobei die Anweisungen zum Ändern der Position auf dem Band, an der das Band in den DATA_FULL-Zustand übergeht, ferner Anweisungen zum Ändern einer Position einer PEWZ in der Datenpartition des Bandes umfassen.
  19. Computersystem nach Anspruch 15, wobei die Position auf dem Band, an der das Band in den DATA_FULL-Zustand übergeht, zu einem Ende eines beschreibbaren Bereichs der Datenpartition des Bandes hin verschoben wird, wenn die Größe des Indexes der Datei kleiner als ein Speicherbereich eines Puffers ist, der sich zwischen einer aktuellen Position auf dem Band, an der das Band in den DATA_FULL-Zustand übergeht, und dem Ende des beschreibbaren Bereichs der Datenpartition des Bandes befindet.
  20. Computersystem nach Anspruch 15, wobei die Position des Bandes, an der das Band in den DATA_FULL-Zustand übergeht, von einem Ende eines beschreibbaren Bereichs der Datenpartition des Bandes weg verschoben wird, wenn die Größe des Indexes der Datei größer als ein Speicherbereich eines Puffers ist, der sich zwischen einer aktuellen Position auf dem Band, an der das Band in den DATA_FULL-Zustand übergeht, und dem Ende des beschreibbaren Bereichs der Datenpartition des Bands befindet.
DE112022000454.1T 2021-02-25 2022-01-31 Dynamischer datenpuffer einer bandspeichereinheit Pending DE112022000454T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/185,089 2021-02-25
US17/185,089 US11681437B2 (en) 2021-02-25 2021-02-25 Dynamic tape storage device data buffer
PCT/IB2022/050811 WO2022180462A1 (en) 2021-02-25 2022-01-31 Dynamic tape storage device data buffer

Publications (1)

Publication Number Publication Date
DE112022000454T5 true DE112022000454T5 (de) 2023-10-19

Family

ID=82899615

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112022000454.1T Pending DE112022000454T5 (de) 2021-02-25 2022-01-31 Dynamischer datenpuffer einer bandspeichereinheit

Country Status (6)

Country Link
US (2) US11681437B2 (de)
JP (1) JP2024507077A (de)
CN (1) CN116897336A (de)
DE (1) DE112022000454T5 (de)
GB (1) GB2619211A (de)
WO (1) WO2022180462A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11681437B2 (en) 2021-02-25 2023-06-20 International Business Machines Corporation Dynamic tape storage device data buffer
US11934687B2 (en) * 2022-05-12 2024-03-19 Western Digital Technologies, Inc. Full disk serpentine write path for tamper-proof disk drive

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4757396A (en) * 1985-07-12 1988-07-12 Fujitsu Limited Magnetic tape system with command prefetch means
JPS6243725A (ja) * 1985-08-20 1987-02-25 Fujitsu Ltd 磁気テ−プ装置のデ−タ先取り制御方法及びその装置
US4835630A (en) * 1987-09-17 1989-05-30 Dictaphone Corporation Modular configurable communications recorder
US5452150A (en) * 1994-06-27 1995-09-19 Minnesota Mining And Manufacturing Company Data cartridge with magnetic tape markers
JP3750137B2 (ja) * 1995-08-25 2006-03-01 ソニー株式会社 ディジタルデータ記録装置及び再生装置
US7093641B2 (en) * 2001-03-05 2006-08-22 Henkel Corporation Robotic tape applicator and method
US20050016671A1 (en) * 2001-03-05 2005-01-27 Sharp Terrance M. Robotic tape applicator and method
US6832287B2 (en) * 2001-10-01 2004-12-14 International Business Machines Corporation System for fast tape file positioning
US7200546B1 (en) * 2002-09-05 2007-04-03 Ultera Systems, Inc. Tape storage emulator
AU2003278901B2 (en) * 2002-09-23 2009-12-03 Ion Geophysical Corporation Seafloor seismic recording using MEMS
US7761284B2 (en) * 2004-08-30 2010-07-20 Overland Storage, Inc. Tape emulating disk based storage system and method with automatically resized emulated tape capacity
ATE449999T1 (de) * 2004-12-06 2009-12-15 Gresham Entpr Storage Inc Speicherkonsolidierungs-plattform
US8068303B2 (en) * 2009-04-17 2011-11-29 International Business Machines Corporation Lateral partitioning for a shingled tape format
JP2011216158A (ja) * 2010-03-31 2011-10-27 Fujitsu Ltd ドライブ装置、ライブラリ装置および制御方法
US8700824B2 (en) 2012-01-05 2014-04-15 International Business Machines Corporation Adjustable buffer sizing for concurrent writing to tape
US9401180B2 (en) * 2012-10-12 2016-07-26 International Business Machines Corporation High resolution tape directory (HRTD) stored at end of data in an index partition
JP2014123254A (ja) * 2012-12-21 2014-07-03 International Business Maschines Corporation メディア上のファイルをユーザ単位で分割管理する方法、プログラム、及びストレージ・システム
US20140215145A1 (en) * 2013-01-31 2014-07-31 Hewlett-Packard Development Company, L.P. Tape drive cache memory
US9606930B2 (en) * 2014-08-05 2017-03-28 International Business Machines Corporation Tape-managed partition support for effective workload allocation and space management
US10564902B2 (en) * 2015-12-14 2020-02-18 International Business Machines Corporation Dynamic partition allocation for tape file system
US10235431B2 (en) 2016-01-29 2019-03-19 Splunk Inc. Optimizing index file sizes based on indexed data storage conditions
US11221989B2 (en) * 2018-07-31 2022-01-11 International Business Machines Corporation Tape image reclaim in hierarchical storage systems
US10453485B1 (en) * 2018-11-26 2019-10-22 International Business Machines Corporation Increasing data storage capacity by reducing index entries
US11886724B2 (en) * 2020-12-01 2024-01-30 International Business Machines Corporation Copying data from a linear tape file system (LTFS)-based storage system to a random access nonvolatile memory (RANVM) drive in units of blocks of the drive
US11681437B2 (en) * 2021-02-25 2023-06-20 International Business Machines Corporation Dynamic tape storage device data buffer

Also Published As

Publication number Publication date
GB202313633D0 (en) 2023-10-25
JP2024507077A (ja) 2024-02-16
US11681437B2 (en) 2023-06-20
GB2619211A (en) 2023-11-29
US20230273725A1 (en) 2023-08-31
WO2022180462A1 (en) 2022-09-01
US20220269408A1 (en) 2022-08-25
CN116897336A (zh) 2023-10-17

Similar Documents

Publication Publication Date Title
DE112011102076B4 (de) Neuordnen des Zugriffs zum Verringern der Gesamtsuchzeit auf Bandmedien
DE112016003355B4 (de) Sicherer Einsatz einer Anwendung über Einsatzorte hinweg
DE102016103359B4 (de) Singleton-cachespeicher-verwaltungsprotokoll für hierarchische virtualisierte speichersysteme
DE112012005037B4 (de) Verwalten von redundanten unveränderlichen Dateien unter Verwendung von Deduplizierungen in Speicher-Clouds
DE102013204186B4 (de) Ermitteln von Prioritäten für zwischengespeicherte Objekte zum Ordnen des Übertragens von Änderungen an zwischengespeicherten Objekten beruhend auf gemessener Netzwerkbandbreite
DE112019002948T5 (de) Feststellen einer optimalen speicherumgebung für datensätze und für das migrieren von datensätzen
DE102016119298B4 (de) Zeitpunktkopieren mit klonen von ketten
DE112020003820T5 (de) Erkennung von Anomalien und Abweichungen unter Verwendung eines domänenindizierten Einschränkungs-Repository
DE112022000454T5 (de) Dynamischer datenpuffer einer bandspeichereinheit
DE112018003585B4 (de) Verfahren, Computerprogrammprodukt und Speicherbandlaufwerk-Hardwareeinheit zum Verbessern der Deduplizierung eines Bandlaufwerkspeichers
DE112019002235T5 (de) Einbinden eines wörterbuch-bearbeitungssystems in ein text mining
DE102004033104A1 (de) Organisieren von Datenobjekten in einem Speicherungsgerät
DE102014103279A1 (de) Pivot-Facets für Text-Mining und Suche
DE102021125179A1 (de) Erzeugen und bereitstellen von containerabbildern
DE112019000421B4 (de) Arbeitslastverwaltung mit datenzugriffserkennung in einem datenverarbeitungscluster
DE112018002955T5 (de) Kognitive datei- und objektverwaltung für verteilte speicherumgebungen
DE102021127254A1 (de) Inhaltssensitives Auswählen von Knoten zum Erstellen von Containern
DE102016103784A1 (de) Virtueller Bandspeicher unter Verwendung von Inter-Partitions-Kopien logischer Datenträger
DE112018000900T5 (de) Verarbeiten eines Befehls zum Freigeben von Speicherplatz in einem Computersystem
DE112021000945T5 (de) Auf einem Dateisystem-Verzeichnisbaum oder Objekt-Speicherbucket beruhende Übernahme von benutzerspezifischen Metadatentags
DE112019000402T5 (de) Chronologisch geordnetes out-of-place-aktualisierungs-schlüssel-wert-speichersystem
DE112018004138T5 (de) Asynchrone aktualisierung von metadatenspuren in reaktion auf einen mittels einer e/a-operation über eine busschnittstelle erzeugten cachetreffer
DE112016000776T5 (de) Effiziente Durchführung von Einfüge- und Punktabfrage-Operationen in einem Spaltenspeicher
DE102022121867A1 (de) Intelligentes zusammenfassen von änderungen für designer
DE112018004415B4 (de) Optimierung von cloud-ressourcen bei operationen in mehrstufigem speicher auf richtliniengrundlage

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R084 Declaration of willingness to licence