-
GEBIET DER ERFINDUNG
-
Die Erfindung betrifft das Gebiet der Cachespeicherarchitektur für Bandlaufwerksysteme und insbesondere einen Bandlaufwerksystem-Server
-
HINTERGRUND
-
Trotz des erheblichen Fortschritts der HDD(hard disk drive, Festplattenlaufwerk)-Technologie über die vergangenen Jahre, stellen Magnetbandsysteme einen integralen Bestandteil aktueller mehrschichtiger Datenspeicherinfrastrukturen dar. Die Bandtechnologie bietet mehrere wichtige Vorteile, wozu niedrige Kosten, langfristige Speicherung von Daten ebenso für Zwecke der Sicherung als auch der Notfallwiederherstellung, Energieeinsparungen, Sicherheit, Lebensdauer und Zuverlässigkeit.
-
Nachdem die Daten auf Bandsystemen aufgenommen worden sind, ist das Medium passiv. Dies bedeutet, dass es einfach in einem Rack sitzt und keine Energie benötigt wird. Verglichen mit ähnlichen plattengestützten Systemen verbraucht ein bandgestütztes Archiv ungefähr 290 Mal weniger Energie. Hinsichtlich der Sicherheit sind die Daten nach ihrem Aufzeichnen und dem Entfernen der Kassette aus dem Zugriffssystem nicht zugänglich, bis die Kassette wieder in das aktive System eingesetzt wird. Die Sicherheit wird weiter durch eine Verschlüsselung auf Laufwerkebene gesteigert, die in „Linear Tape Open”-Laufwerken der 4. Generation (LTO-4) eingeführt wurde und auch in auf Unternehmen abgestimmten Bandlaufwerken Standard ist. Das Bandmedium besitzt eine Lebensdauer von mehr als 30 Jahren; dies wird jedoch aufgrund der raschen Fortschritte bei der Band-Hardware und den mit der Migration auf Kassetten höherer Kapazität verbundenen Kosteneinsparungen nur selten als Vorteil genutzt. Hinsichtlich der Zuverlässigkeit weist ein LTO-4-Band eine Bitfehlerrate auf, die mindestens eine Größenordnung besser als die einer SAS(Serial Attached SCSI, seriell verbundenes SCSI)-HDD aufweist. Darüber hinaus bedeutet die Tatsache, dass Bandmedien im Gegensatz zu HDDs entnehmbar und austauschbar sind, dass ein mechanischer Ausfall eines Bandlaufwerks nicht zu Datenverlust führt, da eine Kassette einfach in ein anderes Laufwerk eingesetzt werden kann.
-
Alle vorstehenden Vorteile tragen zu den erheblichen resultierenden Vorteilen von Bandsystemen bei, die in den Kosten und der Zuverlässigkeit liegen. Einschätzungen der Kosteneinsparungen zwischen Platte und Band reichen von einem Faktor von drei bis hin zu mehr als 20.
-
Festplatten bieten einen wahlfreien Zugriff auf Daten und enthalten allgemeinen einen durch ein Dateisystem verwalteten Dateiindex. Auf diese Dateien kann mittels Standardsätzen von Anwendungsprogrammierschnittstellen (application programming interfaces (APIs)) unter Verwendung vielfältiger Betriebssysteme und Anwendungen zugegriffen werden. Auf Band wird hingegen in einer linearen sequenziellen Weise üblicherweise unter Verwendung einer Technik namens „Shingling” geschrieben, die Rückwärtsschreibkompatibilität bereitstellt, jedoch auch mit sich bringt, dass neue Daten nur am Ende angehängt werden können und zuvor beschriebene Bereiche nur wieder freigegeben werden können, wenn die gesamte Kassette wieder freigegeben und neu beschrieben wird. Bei herkömmlichen Bandsystemen wird ein Index der auf eine gegebene Kassette geschriebenen Dateien üblicherweise nur in einer externen Datenbank aufbewahrt, die durch eine Anwendung wie beispielsweise eine proprietäre Sicherungsanwendung verwaltet wird. Die Notwendigkeit, auf eine externe Datenbank zugreifen zu müssen, um Daten abzurufen, macht Daten auf Band weniger transportabel und zugänglich als bei alternativen Datenspeicherverfahren, wie beispielsweise einer HDD oder einem USB(Universal Serial Bus, Universeller Serieller Bus)-Laufwerk oder -Stick.
-
Um diese Defizite zu beheben, wurde bei Bandlaufwerksystemen kürzlich ein neues, als „Linear Tape File System” (LTFS) bezeichnetes Dateisystem eingeführt, um einen effizienten Zugriff auf Band unter Verwendung von Standard- und vertrauten Systemwerkzeugen und Schnittstellen zu ermöglichen. LTFS wird realisiert, indem die in jüngeren Bandlaufwerkformaten unterstützten Fähigkeiten doppelter Partitionen (dual-partition) vorteilhaft genutzt werden. Eine so genannte Indexpartition wird zum Schreiben des Indexes und eine zweite, viel größere Partition für die Daten selbst verwendet. Die Indexpartition wird für das Verzeichnis des Dateisystems verwendet, wohingegen die Datenpartition verwendet wird, um die tatsächlichen Dateien des Benutzers im Dateisystem zu speichern. Ein Platzieren des Index auf eine separate Partition ist vorteilhaft, da er ohne Auswirkung auf die tatsächlichen Daten neu geschrieben werden kann. LTFS präsentiert dem Benutzer eine POSIX-artige Dateisystem-Schnittstelle, verwaltet den Dateisystemindex in der Indexpartition und speichert die Daten in der Datenpartition. Das durch die LTFS-Software dargestellte Dateisystem lässt Dateien und Verzeichnisse mit einer Verzeichnisliste auf dem Arbeitsplatz (desktop) erscheinen, während sich die Dateien tatsächlich auf Band befinden. Dateisystembenutzer können durch „Ziehen und Ablegen” („drag and drop”) Dateien auf und von Band bewegen und für Plattensysteme entwickelte Anwendungen ausführen. Im Bibliotheksmodus kann der Inhalt aller Datenträger in der Bibliothek aufgelistet und durchsucht werden, ohne die einzelnen Kassetten einzusetzen. All diese Merkmale tragen dazu bei, Band, Dateiverwaltungs- und Archivkosten zu verringern und die Abhängigkeit von einer Middleware-Schicht zu beseitigen. Somit werden die Kosten pro gespeichertem Gigabyte (GB) verringert. Darüber hinaus wird Band plattformübergreifend transportabel (LTFS ist auf Linux®, Apple Mac OS X®, Microsoft Windows® erhältlich), was ein gemeinsames Nutzen von Daten zwischen Plattformen ermöglicht und vereinfacht. Diese Merkmale ermöglichen erhebliche neue Anwendungsfälle für Band, wie beispielsweise Videoarchive, medizinische Bildgebung usw. In Anbetracht der Kostenvorteile von Band gegenüber anderen Datenspeicherlösungen scheint das dargelegte Potenzial für die fortgesetzte Skalierung der Bandkassettenkapazität und Kosten pro GB sowie die zunehmende Nutzbarkeit von Band, die durch die Vorteile wie LTFS bereitgestellt werden, geeignet, eine wichtige Rolle auf dem rasch wachsenden Markt für Archivdatenspeicherlösungen zu spielen.
-
Auch mit LTFS werden jedoch Dateien in einer sequenziellen Weise auf Band gespeichert, was nicht vernachlässigbare längere Zugriffszeiten während E/A-Vorgängen, wie beispielsweise Lese- und Schreibvorgängen, verursacht.
-
Die Dokumente
US 2011/0219184 A1 ,
US 2011/0145494 A1 ,
US 7743206 B2 ,
US 7162574 B2 ,
US 7747816 B1 ,
US 5829046 , „IBM Launches long term file system (LTFS) for LTO-5 tage management”, Beth Parizeau, 22. April 2010, und „Virtual tage library for HSM”, 12. November 2009 beziehen sich auf das Gebiet der Erfindung.
-
KURZDARSTELLUNG DER ERFINDUNG
-
Gemäß einem ersten Aspekt ist die Erfindung als ein Bandlaufwerksystem-Server ausgeführt, aufweisend:
- – einen nichtflüchtigen Speicher, der als ein Cachespeicher zum Speichern von Datendateien verwendet wird, wobei zumindest ein Teil des Cachespeichers eine erste Region, die unter Verwendung einer Verwaltung einer „First-In/First-Out”-Richtlinie verwaltet wird, und eine zweite Region, die unter Verwendung einer Verwaltung einer „Least Recently Used”(am längsten nicht verwendet)-Richtlinie verwaltet wird, aufweist;
- – eine Dateisystem-Schnittstelle zum Interagieren mit auf einem Bandlaufwerksystem gespeicherten Datendateien;
- – eine Schnittstelle, um einem oder mehreren entfernt angeordneten Systemen ein Lesen und Schreiben von auf dem Datenspeichermittel und/oder dem Cachespeicher gespeicherten Daten zu ermöglichen;
wobei der Server eingerichtet ist um:
- – von dem einen oder den mehreren entfernt angeordneten Systemen eine oder mehrere Schreibanfragen zum Schreiben von einer oder mehreren Datendateien auf das Bandlaufwerksystem und den Cachespeicher zu empfangen;
- – Attribute zu interpretieren, die Datendateien zugeordnet sind, die angewiesen sind, durch das eine oder die mehreren entfernt angeordneten Systeme auf das Bandlaufwerksystem und auf den Cachespeicher geschrieben zu werden; und
- – Datendateien zu speichern, die angewiesen sind, durch die entfernt angeordneten Systeme gemäß den interpretierten Attributen geschrieben zu werden.
-
In Ausführungsformen kann das Bandlaufwerksystem eines oder mehrere der folgenden Merkmale aufweisen:
- – Cachespeicher-Verwaltungsfunktionen, um die den Datendateien zugeordneten Attribute zu interpretieren;
- – die Attribute entsprechen Caching-Prioritätsklassen;
- – eine erste Caching-Prioritätsklasse veranlasst die Cachespeicher-Verwaltungsfunktionen dazu:
- – Datendateien zu schreiben, die angewiesen sind, in die erste Region des Cachespeichers geschrieben zu werden;
- – darauf folgend in der ersten Region gespeicherte Daten auf ein Bandlaufwerksystem zu kopieren, wobei das Kopieren als eine Hintergrundaufgabe des Servers durchgeführt wird; und
- – nachdem die Kopie fertiggestellt ist, Datendateien aus der ersten Region des Cachespeichers zu entfernen;
- – eine zweite Caching-Prioritätsklasse veranlasst die Cachespeicher-Verwaltungsfunktionen dazu:
- – Datendateien zu schreiben, die angewiesen sind, in die erste Region des Cachespeichers geschrieben zu werden;
- – darauf folgend in der ersten Region gespeicherte Daten auf ein Bandlaufwerksystem zu kopieren, wobei das Kopieren als eine Hintergrundaufgabe des Servers durchgeführt wird;
- – zu ermitteln, ob nach einem ersten Lesen der in die erste Region geschriebenen Datendateien die Datendateien ein oder mehrere zusätzliche Male gelesen werden;
- – im Falle, dass ermittelt wird, dass die Datendateien ein oder mehrere zusätzliche Male gelesen werden, die Datendateien zur zweiten Region des Cachespeichers zu verschieben;
- – im Falle, dass ermittelt wird, dass die Datendateien nicht ein oder mehrere zusätzliche Male gelesen werden, Datendateien aus der ersten Region des Cachespeichers zu entfernen;
- – eine dritte Caching-Prioritätsklasse veranlasst die Cachespeicher-Verwaltungsfunktionen dazu:
- – in der ersten Region des Cachespeichers einen Satz von Datendateien vorabzurufen, die zuvor in der ersten Region des Cachespeichers gespeichert wurden;
- – zu ermitteln, ob nach einem ersten Lesen des vorabgerufenen Satzes von Datendateien eine oder mehrere Datendateien des vorabgerufenen Satzes ein oder mehrere zusätzliche Male gelesen werden; und
- – im Falle, dass ermittelt wird, dass eine oder mehrere Datendateien des vorabgerufenen Satzes ein oder mehrere zusätzliche Male gelesen werden, die Datendateien zur zweiten Region des Cachespeichers zu verschieben;
- – eine vierte Caching-Prioritätsklasse veranlasst die Cachespeicher-Verwaltungsfunktionen, in der zweiten Region des Cachespeichers einen Satz von Datendateien vorabzurufen, die zuvor in der ersten Region des Cachespeichers gespeichert wurden;
- – eine fünfte Caching-Prioritätsklasse veranlasst die Cachespeicher-Verwaltungsfunktionen dazu:
- – Datendateien bis zum maximalen Versatz, auf den zu irgendeiner gegebenen Zeit zugegriffen wurde, in der zweiten Region des Cachespeichers zu platzieren;
- – eine sechste Caching-Prioritätsklasse veranlasst die Cachespeicher-Verwaltungsfunktionen dazu:
- – Datendateien unabhängig davon, ob auf die Datendateien zugegriffen wurde, unmittelbar in der ersten Region des Cachespeichers zu platzieren, wenn eine Datendateien-Caching-Klasse festgelegt ist; und
- – Datendateien aus dem Cachespeicher zu entfernen, wenn ein konfigurierbares Zeitintervall abgelaufen ist;
- – eine Caching-Klasse wird entweder durch einen Benutzer oder eine Anwendung festgelegt, und die Cachespeicher-Verwaltungsfunktionen weisen weiterhin eine Standard-Caching-Klasse für Datendateien zu, für die durch den Benutzer oder die Anwendung keine Caching-Klasse festgelegt ist;
- – bei den Attributen handelt es sich um erweiterte Attribute, deren Format mit einem gegebenen Datenformat der Datendatei kompatibel ist;
- – Datendateien zugeordnete Attribute werden durch die Cachespeicher-Verwaltungsfunktionen verwendet, um konkurrierende, durch mehrere Benutzer parallel erfolgende Datenschreibvorgänge und/oder -lesevorgänge zu optimieren.
-
Gemäß einem weiteren Aspekt ist die Erfindung als ein Bandeinheitensystem ausgeführt, aufweisend:
- – den Bandlaufwerksystem-Server der vorliegenden Erfindung; und
- – ein Bandlaufwerksystem, wobei der Server damit über eine Schnittstelle verbunden ist.
-
Gemäß einem weiteren Aspekt ist die Erfindung als ein System ausgeführt, das den Bandlaufwerksystem-Server der vorliegenden Erfindung oder das Bandeinheitensystem der vorliegenden Erfindung aufweist, wobei es sich bei dem Bandlaufwerksystem um eine Bandbibliothek handelt:
Gemäß einem weiteres Aspekt ist die Erfindung als ein auf einem computerlesbaren Medium gespeichertes Computerprogramm ausgeführt, das ein Codemittel aufweist, um den Bandlaufwerksystem-Server zu veranlassen, Cachespeicher-Verwaltungsfunktionen durchzuführen.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Ein Prozess und ein die Erfindung ausführender Prozess werden nun mittels eines nicht einschränkenden Beispiels und unter Bezugnahme auf die begleitenden Zeichnungen beschrieben, wobei:
-
1 gemäß der Erfindung ein Beispiel einer Architekturansicht eines Bandeinheitensystems zeigt, auf das durch andere Systeme ein Fernzugriff erfolgt;
-
2 ein Beispiel einer Datenpfadansicht des in 1 abgebildeten Bandeinheitensystems zeigt;
-
3 ein weiteres Beispiel einer Datenpfadansicht des in 1 abgebildeten Bandeinheitensystems zeigt;
-
4 ein Beispiel des Caching des in 1 bis 3 abgebildeten Bandeinheitensystems zeigt.
-
DETAILLIERTE BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
-
Die Erfindung beschreibt einen Bandlaufwerksystem-Server. Der Bandlaufwerksystem-Server weist einen nichtflüchtigen Speicher auf, der als ein Cachespeicher zum Speichern von Datendateien verwendet wird. Mindestens ein Teil des Cachespeichers weist eine erste Region, die unter Verwendung einer Verwaltung einer „First-In/First-Out”(FIFO)-Richtlinie verwaltet wird, und eine zweite Region (42) auf, die unter Verwendung einer Verwaltung einer „Least Recently Used”(LRU, am längsten nicht verwendet)-Richtlinie verwaltet wird. Der Bandlaufwerksystem-Server weist weiterhin eine Dateisystem-Schnittstelle zum interagieren mit auf einem Bandlaufwerksystem gespeicherten Datendateien auf. Der Bandlaufwerksystem-Server weist weiterhin eine Schnittstelle auf, um einem oder mehreren entfernt angeordneten Systemen ein Lesen und Schreiben von auf dem Datenspeichermittel und/oder dem Cachespeicher gespeicherten Daten zu ermöglichen. Bei dieser Schnittstelle kann es sich um eine Datenübertragungs-Schnittstelle wie die üblicherweise nach einem speziellen Standard konzipierten handeln, die es einer Maschine ermöglicht, mit einer anderen Maschine Daten auszutauschen. Der Bandlaufwerksystem-Server ist eingerichtet, von einem oder mehreren entfernt angeordneten Systemen eine oder mehrere Schreibanfragen zu empfangen. Die Schreibanfrage soll eine oder mehrere Datendateien auf das Bandlaufwerksystem und in den Cachespeicher schreiben. Dies bedeutet, dass die Schreibanfrage ein Schreiben von einer oder mehreren Datendateien auf das Bandlaufwerksystem allein oder ein Schreiben von einer oder mehreren Datendateien auf den Cachespeicher allein oder ein Schreiben von einer oder mehreren Datendateien auf sowohl das Bandlaufwerksystem als auch auf den Cachespeicher anfragen kann. Der Bandlaufwerksystem-Server ist weiterhin eingerichtet, Attribute zu interpretieren, die Datendateien zugeordnet sind, die angewiesen sind, durch das eine oder die mehreren entfernt angeordneten Systeme auf das Bandlaufwerksystem und auf den Cachespeicher geschrieben zu werden. interpretieren eines Attributs bedeutet, dass der Bandlaufwerksystem-Server in der Lage ist, zu ermitteln, welche spezielle Aktion gemäß dem Attribut auszuführen ist. Der Bandlaufwerksystem-Server ist weiterhin eingerichtet, Datendateien zu speichern, die angewiesen sind, durch die entfernt angeordneten Systeme gemäß den interpretierten Attributen geschrieben zu werden. Speichern von zu schreibenden Datendateien bedeutet, zu sagen, dass die zu schreibenden Datendateien aufgenommen werden.
-
Somit liegt der Schwerpunkt der vorgeschlagenen Erfindung auf einem System, das die Leistung eines Bandlaufwerksystems (z. B. eines Banddatenspeichersystems auf der Grundlage von LTFS) nicht nur im Hinblick auf Latenzzeiten, sondern auch im Hinblick auf Flexibilität beim Anwenden einer Caching-Strategie verbessert.
-
Zu diesem Zweck verwendet der Bandlaufwerksystem-Server einen Cachespeicher in Verbindung mit einer Dateisystem-Schnittstelle zum Interagieren mit auf einem Bandlaufwerksystem gespeicherten Datendateien. Der Cachespeicher wird als eine Caching-Schicht über dem Datenspeichermittel verwendet. Der Bandlaufwerksystem-Server stellt Caching-Hinweise in der Form von Attributen bereit. Ein Attribut (auch als erweitertes Attribut bezeichnet) stellt Funktionalität und zusätzliche Informationen auf der Dateisystem-Schnittstelle und genauer auf dem Bandlaufwerksystem-Server bereit. Auf der Grundlage seiner Interpretation des Attributs weiß der Bandlaufwerksystem-Server, wo und wie die Datendateien zu schreiben sind, die durch ein oder mehrere entfernt angeordnete Systeme angewiesen sind, geschrieben zu werden. Somit stellt das vorgelegte System nicht nur eine Caching-Strategie bereit, die einen schnelleren Zugriff auf die als jüngstes und/oder am häufigsten im Cachespeicher gespeicherten Dateien bereit, sondern ist auch konzipiert, es einer Anwendung oder einem Benutzer zu ermöglichen, die Caching-Strategie gemäß seinen Bedürfnissen zu modifizieren, z. B. der Arbeitslast des Systems entsprechend.
-
Wie für den Fachmann ersichtlich ist, können Aspekte der vorliegenden Erfindung als ein System oder Computerprogrammprodukt ausgebildet werden. Dementsprechend können Aspekte der vorliegenden Erfindung in Form einer vollständigen Hardware-Ausführungsform, einer vollständigen Software-Ausführungsform (darunter Firmware, residente Software, Mikrocode usw.) oder in einer Ausführungsform ausgebildet werden, die Software- und Hardware-Aspekte kombiniert, was hierin sämtlich allgemein als „Schaltung”, „Modul” oder „System” bezeichnet sein kann. Weiterhin können Aspekte der vorliegenden Erfindung in Form eines Computerprogrammprodukts ausgebildet werden, das in einem oder mehreren computerlesbaren Medien mit darauf enthaltenem computerlesbarem Programmcode enthalten sein kann.
-
Jede beliebige Kombination aus einem oder mehreren computerlesbaren Medien kann verwendet werden. Bei dem computerlesbaren Medium kann es sich um ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium handeln. Bei einem computerlesbaren Speichermedium kann es sich zum Beispiel, ohne auf diese beschränkt zu sein, um ein System, eine Vorrichtung oder eine Einheit elektronischer, magnetischer, optischer, elektromagnetischer, Infrarot oder Halbleiter verwendender Art sowie jede beliebige geeignete Kombination des Vorgenannten handeln. Zu spezielleren Beispielen für das computerlesbare Speichermedium zählt Folgendes (nicht abschließende Liste): eine elektrische Verbindung mit einer oder mehreren Leitungen, eine transportable Computerdiskette, eine Festplatte, ein Speicher mit wahlfreiem Zugriff (random access memory (RAM)), ein Nur-Lese-Speicher (read-only memory (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (erasable programmable read-only memory (EPROM) oder Flash-Speicher), ein Lichtwellenleiter, ein transportabler Compact-Disk-Nur-Lese-Speicher (compact disc read-only memory (CD-ROM)), eine optische Speichereinheit, eine magnetische Speichereinheit oder eine beliebige geeignete Kombination des Vorgenannten. Im Kontext dieses Dokuments kann es sich bei einem computerlesbaren Speichermedium um jedes gegenständliche Medium handeln, das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Ausführung von Anweisungen beinhalten oder speichern kann.
-
Zu einem computerlesbaren Signalmedium kann ein verbreitetes Datensignal mit darin zum Beispiel in einem Basisband oder als Teil einer Trägerwelle ausgebildetem computerlesbarem Programmcode zählen. Solch ein verbreitetes Signal kann in jeder beliebigen einer Vielfalt von Formen ausgebildet werden, einschließlich, ohne auf diese beschränkt zu sein, elektromagnetische, optische oder jede geeignete Kombination davon. Bei einem computerlesbaren Signalmedium kann es sich um jedes computerlesbare Medium handeln, das kein computerlesbares Speichermedium ist und das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Ausführung von Anweisungen übertragen, verbreiten oder transportieren kann.
-
Der in einem computerlesbaren Medium enthaltene Programmcode kann mittels eines beliebigen geeigneten Mediums übertragen werden, einschließlich, ohne auf diese beschränkt zu sein, kabellose, kabelgebundene, Lichtwellenleiterkabel, Hochfrequenz (HF) usw. oder eine beliebige geeignete Kombination des Vorgenannten.
-
Computerprogrammcode zum Ausführen von Operationen für Aspekte der vorliegenden Erfindung kann in jeder Kombination einer oder mehrerer Programmiersprachen geschrieben sein, darunter eine objektorientierte Programmiersprache wie Java, Smalltalk, C++ oder Ähnliches und herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C” oder ähnliche Programmiersprachen. Der Programmcode kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, 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 letzterem Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über jede beliebige Art von Netzwerk, darunter ein lokales Netzwerk (local area network (LAN)) oder ein Weitverkehrsnetzwerk (wide area network (WAN)) verbunden sein, oder es kann eine Verbindung zu einem externen Computer (zum Beispiel mittels eines Internetdienstanbieters über das Internet) hergestellt werden.
-
Aspekte der vorliegenden Erfindung werden nachfolgend unter Bezugnahme auf Abbildungen von Ablaufplänen und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Abbildungen von Ablaufplänen und/oder der Blockschaubilder sowie Kombinationen von Blöcken in den Abbildungen von Ablaufplänen und/oder den Blockschaubildern durch Computerprogrammanweisungen realisiert werden kann. Diese Computerprogrammanweisungen können einem Prozessor eines universellen Computers, eines zweckbestimmten Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine so zu erzeugen, dass die Anweisungen, die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel zum Realisieren der im Block oder in den Blöcken des Ablaufplans und/oder Blockschaubildes angegebenen Funktionen/Handlungen erzeugen.
-
Diese Computerprogrammanweisungen können auch in einem computerlesbaren Medium gespeichert sein, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten anleiten kann, auf eine bestimmte Weise zu funktionieren, so dass die in dem computerlesbaren Medium gespeicherten Anweisungen einen Herstellungsartikel einschließlich Anweisungen erzeugen, welche die im Block oder in den Blöcken des Ablaufplans und/oder des Blockschaubildes angegebene Funktion/Handlung ausführen.
-
Die Computerprogrammanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten geladen werden, um eine Reihe von auf dem Computer, der anderen programmierbaren Vorrichtung oder den anderen Einheiten auszuführenden Operationsschritten hervorzurufen, um einen auf dem Computer realisierten Prozess so zu erzeugen, dass die auf dem Computer oder der anderen programmierbaren Vorrichtung ausgeführten Anweisungen Prozesse zum Realisieren der im Block oder in den Blöcken des Ablaufplans und/oder Blockschaubildes angegebenen Funktionen/Handlungen bereitstellen.
-
Die Blockschaubilder in den Figuren veranschaulichen die Architektur, Funktionalität und die Arbeitsweise möglicher Realisierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In dieser Hinsicht kann jeder Block im Ablaufplan oder in den Blockschaubildern für ein Modul, ein Segment oder einen Codeabschnitt stehen, der eine oder mehrere ausführbare Anweisungen zum Realisieren der angegebenen logischen Funktion(en) aufweist. Es soll zudem angemerkt werden, dass bei einigen alternativen Realisierungen die im Block angegebenen Funktionen in anderer Reihenfolge als der in den Figuren angegebenen auftreten können. Zum Beispiel können zwei aufeinander folgend abgebildete Blöcke tatsächlich im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal abhängig von der betreffenden Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es wird ebenfalls angemerkt, dass jeder Block der Blockschaubilder und/oder Abbildung von Ablaufplänen und Kombinationen von Blöcken in den Blockschaubildern und/oder der Abbildung von Ablaufplänen durch zweckbestimmte hardwaregestützte Systeme oder Kombinationen von zweckbestimmter Hardware und Computeranweisungen realisiert werden kann, welche die angegebenen Funktionen oder Handlungen durchführen.
-
1 zeigt eine Architekturansicht einer Ausführungsform eines Bandeinheitensystems 100, auf das durch ein oder mehrere entfernt angeordnete Systeme 110, 120 ein Fernzugriff erfolgt. Die Bandeinheit 100 weist gemäß einer Ausführungsform der Erfindung einen Bandlaufwerksystem-Server 102 und ein Bandlaufwerksystem 104 auf, mit dem der Bandlaufwerksystem-Server über eine Schnittstelle verbunden ist.
-
Das Bandlaufwerksystem 104 kann Datendateien gemäß einem vorgegebenen Datenformat speichern. Bei dem Bandlaufwerksystem kann es sich um ein Medium mit sequenziellem Zugriff wie beispielsweise ein eigenständiges Bandlaufwerk (oder eine eigenständige Bandbibliothek) handeln, das eine Vielzahl von Bandlaufwerken oder Köpfen unterstützten kann. Das eigenständige Bandlaufwerk wird verwendet, um an linearem Band auf einer oder mehreren Kassetten zu arbeiten. Das vorgegebene Datenformat der auf dem Bandlaufwerk gespeicherten Daten kann ein Datenformat im LTFS-Format verwenden, das die Dateiinhaltsdaten und zugeordneten Dateimetadaten beinhaltet. Somit können die auf dem Bandlaufwerk gespeicherten und unter Verwendung des LTFS-Formats geschriebenen Daten mit anderen Systemen 110, 120 ausgetauscht werden, die in der Lage sind, das LTFS-Format zu verstehen.
-
Der Bandlaufwerksystem-Server 102 gemäß der Ausführungsform von 1 weist einen nichtflüchtigen Speicher 106 auf, der als ein Cachespeicher zum Speichern von Datendateien verwendet wird. Der Cachespeicher optimiert die Leistungen des Datenspeichersystems, wobei zeitliche und räumliche Anordnungen von Arbeitslasten genutzt werden. Bei dem Cachespeicher handelt es sich um einen Lese- und Schreibcachespeicher. Der Cachespeicher verbessert die Leistung, indem Daten transparent gespeichert werden, so dass zukünftige Anfragen nach den Daten schneller bedient werden können. Wenn angefragte Daten im Cachespeicher enthalten sind, d. h. ein Cachetreffer (cache hit) auftritt, kann diese Anfrage bedient werden, indem einfach der Cachespeicher gelesen wird, was vergleichsweise schneller als ein Lesen von der Backend-Datenspeichereinheit ist. Andernfalls tritt ein Cachefehler (cache miss) auf und die Daten müssen von der langsameren Backend-Datenspeichereinheit abgerufen werden.
-
Beim Cachespeicher handelt es sich um einen nichtflüchtigen Speicher, der in vorteilhafter Weise ein Aufbewahren der darauf gespeicherten Dateien ermöglicht, wenn das Bandlaufwerksystem ausgeschaltet ist. Der nichtflüchtige Speicher, der als der Cachespeicher verwendet wird, kann ein Array von Festplattenlaufwerken und/oder Halbleiterlaufwerken enthalten. Das Array mit HDDs hoher Kapazität und/oder SSDs kann in einem RAID(Redundant Array of independent Disks, redundantes Array unabhängiger Platten)-Schema konfiguriert sein. Die Cachespeicher-Steuereinheit kann dem Betriebssystem des Servers einen einzelnen logischen Datenträger präsentieren und somit die Verwaltung des Cachespeichers vereinfachen. Zudem ist ein herkömmliches Plattendateisystem, wie beispielsweise, jedoch nicht darauf beschränkt, ext3, ext4 oder NTFS, auf dem logischen Datenträger installiert und wird für alle E/A-Vorgänge auf das Platten-Array verwendet. Der Cachespeicher, d. h. das ganze Platten-Array, ist für das Caching dediziert und wird nicht mit anderen Komponenten des Systems gemeinsam genutzt.
-
Beim Cachespeicher kann es sich um einen Cachespeicher auf Dateiebene handeln. Alternativ dazu kann es sich beim Cachespeicher um einen Cachespeicher auf Blockebene handeln. In diesem Fall werden HDDs und/oder SSDs des Arrays als Roheinheit ohne Dateisystem verwendet und dann Datenträger erstellt, und ein Betriebssystem wird mit diesen Datenträgern verbunden und verwendet sie als interne Festplatten. Cachespeicher auf Blockebene ist für fast jede Art von Anwendung verwendbar, einschließlich Dateidatenspeicher, Datenbankspeicher, Datenträger des „Virtual Machine File System” (VMFS) und mehr.
-
Unter Bezugnahme auf 4 wird nun ein Beispiel des Cachespeichers des in 1 abgebildeten Bandlaufwerksystem-Servers 102 erläutert. Bei dem Cachespeicher handelt es sich um einen nichtflüchtigen Datenspeicher und daher kann der Cachespeicher sowohl modifizierte als auch nicht modifizierte Daten sicher auf einer Dateiebene speichern.
-
Zumindest ein Teil des Cachespeichers 106 weist eine erste 40 und zweite 42 Region bzw. einen ersten und einen zweiten Speicherplatz auf. Die erste und die zweite Region sind eingerichtet, Dateien zu speichern, die ursprünglich im Datenspeichermittel gespeichert wurden. Das Speichern von Dateien in der ersten und der zweiten Region wird gemäß einem Satz von Regeln für die Cachespeicher-Kapazitätsverwaltung durchgeführt.
-
Bei der ersten Region handelt es sich um eine FIFO(First-In/First-Out)-Region 40, und bei der zweiten Region handelt es sich um eine LRU(Least Recently Used)-Region 42. Dies bedeutet, zu sagen, dass zumindest ein Teil des Cachespeichers in einen FIFO-Cachespeicher und einen LRU-Cachespeicher geteilt ist. Die FIFO-Region wird unter Verwendung einer „First-In/First-Out”-Ersetzungsrichtlinie verwaltet, während die LRU-Region unter Verwendung einer Richtlinie der am längsten nicht erfolgten Verwendung verwaltet wird. Die FIFO-Region ist üblicherweise dazu bestimmt, Dateien zu speichern, auf die nur höchstens einmal zugegriffen wird, nachdem sie in den Cachespeicher geschrieben sind. Dies entspricht zum Beispiel dem Fall eines Sicherungs-Schreib-Überprüfungsprozesses. Die LRU-Region ist üblicherweise dazu bestimmt, Dateien im Cachespeicher zu speichern, die eine höhere Wahrscheinlichkeit mehrfacher Zugriffe in der nahen Zukunft aufweisen.
-
Wie in 4 gezeigt, werden Benutzerschreibvorgänge üblicherweise ihre Daten in den FIFO-Cachespeicher schreiben, wohingegen Benutzerleseanfragen durch den LRU-Cachespeicher bedient werden. Dies ist jedoch kein Erfordernis: Tatsächlich können eingehende Daten auch in den LRU-Cachespeicher geschrieben werden, wenn der Benutzer den Hinweis gibt, dass auf die Daten in der nahen Zukunft mehrere Male zugegriffen wird. Andererseits können Benutzerlesevorgänge aus dem FIFO-Cachespeicher bedient werden, wenn die angeforderten Daten dort gefunden werden.
-
Optional werden Dateien gleichzeitig abhängig von ihrer Arbeitslast zwischen den zwei Regionen des Cachespeichers verschoben: In der Tat besitzt der Cachespeicher eine begrenzte Datenspeicherkapazität und seine Partitionierung in einen FIFO- und LRU-Abschnitt erfordert ein gewisses Maß an Steuerung. In anderen Worten: Die Cachespeicherkapazität wird gemäß einem Satz von Regeln verwaltet. Die folgenden Regeln für die Cachespeicher-Kapazitätsverwaltung können verwendet werden:
- – Wenn die FIFO-Region voll ist, werden die ältesten Dateien entfernt. Das Entfernen der Dateien aus dem Cachespeicher kann erfordern, sie zuerst auf Band zu kopieren;
- – Wenn die LRU-Region voll ist, werden die Dateien mit der geringsten Anzahl von Zugriffen und der ältesten letzten Zugriffszeit entfernt. Das Entfernen der Dateien aus dem Cachespeicher kann erfordern, sie zuerst auf Band zu kopieren;
- – Wenn die FIFO-Region voll ist und die LRU-Region mindestens 50% freie Kapazität besitzt, erhält die FIFO-Region 30% der Kapazität der LRU-Region hinzu;
- – Wenn die LRU-Region voll ist und die FIFO-Region mindestens 50% freie Kapazität besitzt, erhält die LRU-Region 30% der Kapazität der FIFO-Region hinzu;
-
Es versteht sich, dass es sich bei den vorgenannten Prozentanteilen um Gestaltungsparameter handelt und sie sich abhängig von der spezifischen Anwendung und Arbeitslast ändern können.
-
Unter erneuter Bezugnahme auf 1 kann der Bandlaufwerksystem-Server 102 mindestens eine Computerverarbeitungseinheit (Computer Processing Unit (CPU)) 1000 oder einen Prozessor sowie einen Hauptspeicher 1002, typischerweise einen dynamischen Speicher mit wahlfreiem Zugriff (Dynamic Random Access Memory (DRAM)), aufweisen. Die CPU und der DRAM sind mit einem Bus 1004 verbunden. Der Bus kann mit einer Anzeigesteuereinheit 1006 verbunden sein, die mit einer Anzeige, wie beispielsweise einem LCD-Monitor 1008, verbunden ist. Die Anzeige kann verwendet werden, um Informationen über das Bandeinheitensystem 100 anzuzeigen. Der Bus kann weiterhin durch eine Tastatur/Maus-Steuereinheit 1010 mit einer Tastatur 1012 und einer Maus 1014 verbunden sein. Der Bus kann zudem mit einer Datenübertragungs-Steuereinheit 1014 verbunden sein, die zum Beispiel einem Ethernet(eingetragene Marke)-Protokoll entspricht. Die Datenübertragungs-Steuereinheit wird verwendet, um den Bandlaufwerksystem-Server physisch mit einem Netzwerk, zum Beispiel dem Netzwerk 130, zu verbinden. Der Bus ist zudem mit einer Datenspeichereinheit, wie beispielsweise einer Festplatte 104 oder einer DVD 1020, über eine Einheitensteuereinheit 1018, wie beispielsweise eine IDE/SATA-, ISCI-, Fibre-Channel-, Fibre-Channel-over-Ethernet(FCOE)- oder iSCSI-Steuereinheit, verbunden.
-
Der Bandlaufwerksystem-Server weist weiterhin eine Dateisystem-Schnittstelle zum Interagieren mit auf einem Bandlaufwerksystem 104 gespeicherten Datendateien auf. Die Dateisystem-Schnittstelle versorgt den Bandlaufwerksystem-Server mit den Fähigkeiten zum Austauschen von Daten mit dem Bandlaufwerksystem und zum Verwalten von darauf gespeicherten Datendateien, z. B. einem Schreiben oder Lesen von Datendateien. Somit kann der Bandlaufwerksystem-Server 102 über die Dateisystem-Schnittstelle an das Bandlaufwerksystem 104 angebunden sein, so dass der Bandlaufwerksystem-Server die zugrundeliegende Bandkapazität erkunden kann, die somit offengelegt wird. Bei der Dateisystem-Schnittstelle kann es sich um LTFS-Software handeln, die auf dem Bandlaufwerksystem-Server ausgeführt wird.
-
Der Bandlaufwerksystem-Server führt ein Betriebssystem aus, wie beispielsweise, ohne darauf beschränkt zu sein, das Linux(Marke)-Betriebssystem. Der Server ist mit dem Netzwerk 130 verbunden, und dadurch können entfernt angeordnete Netzwerkbenutzer 120 und Anwendungen 130 Datenspeichermittel einbinden (z. B. ein LTFS-Dateisystem) und Daten direkt speichern oder aus dem Datenspeichermittel abrufen.
-
Unter Bezugnahme auf 3 wird nun ein Beispiel einer Datenpfadansicht des in 1 abgebildeten Bandlaufwerksystem-Servers 102 gezeigt. Der Bandlaufwerksystem-Server 102 weist eine Netzwerkschnittstelle, z. B. die Datenübertragungs-Steuereinheit 1016 in 1 auf. Anders ausgedrückt: Der Bandlaufwerksystem-Server weist eine Schnittstelle auf, um einem oder mehreren entfernt angeordneten Systemen (110, 120) ein Lesen und Schreiben von auf dem Datenspeichermittel und/oder in dem Cachespeicher gespeicherten Daten zu ermöglichen.
-
In 3 sind alle E/A-Vorgänge auf das Bandlaufwerksystem 104 als LTFS-Dateisystem-Vorgänge realisiert. Zum Beispiel wird ein Schreibvorgang eines Client auf das Bandlaufwerksystem immer als ein Schreibvorgang in eine LTFS-Datei enden, der an einem bestimmten Versatz beginnt und eine bestimmte Länge von Bytes besitzt, wie in 2 veranschaulicht. In einem ersten Szenario gibt ein entfernt angeordneter Benutzer 110 unter Verwendung einer NFS-Einbindung einen Schreibvorgang in die Datei „/ltfs/greetings.txt” an den Bandlaufwerksystem-Server aus. Der Schreibvorgang wird durch den Bandlaufwerksystem-Server verwaltet, der die Anfrage an die Dateisystem-Schnittstelle LTFS 22 weitergibt. Dann findet die LTFS heraus, dass diese Datei bereits im HDD-Cachespeicher 106 gespeichert ist, und der Schreibvorgang wird auf der HDD gespeichert, wobei es sich bei „/ltfs/greetings.txt”, um eine ext3-Datei im HDD-Dateisystem handelt. In einem anderen Szenario möchte ein anderer entfernt angeordneter Benutzer 120 unter Verwendung des FTP-Protokolls einige Bytes aus einer Datei auf dem Bandeinheitensystem lesen. Der Benutzer gibt über die LTFS-Dateisystem-Schnittstelle eine FTP-Get-Anfrage aus, die der Bandlaufwerksystem-Server in eine LTFS-Leseanfrage übersetzt. Die LTFS-Dateisystem-Schnittstelle schlägt die angefragte Datei im Cachespeicher 106 nach, findet sie dort jedoch nicht. Daher liest die LTFS-Dateisystem-Schnittstelle die angefragte Datei vom Bandlaufwerksystem 106 und gibt die ersten 100 Bytes an den Benutzer aus. An diesem Punkt kann das LTFS entscheiden, die Datei auf den HDDs 106 als Cachespeicher zu speichernoder dies nicht zu tun.
-
Unter Bezugnahme auf 2 wird nun ein weiteres Beispiel einer Datenpfadansicht zwischen einem entfernt angeordneten System, wie beispielsweise einer Anwendung oder einem Client, und dem in 1 abgebildeten Bandlaufwerksystem-Server 102 gezeigt. Auf den Bandlaufwerksystem-Server 102 erfolgt durch Systeme wie beispielsweise eine Anwendung 110 oder einen Client 120 ein Fernzugriff, z. B. über ein Netzwerk. Bei anderen Systemen kann es sich um einen Dateisystemserver wie beispielsweise einen GPFS(General Parallel File System)-Cluster oder einen NAS(Network-attached storage)-Dateiserver handeln.
-
Entfernt angeordnete Systeme können auf den Bandlaufwerksystem-Server entweder durch dessen Einbinden unter Verwendung eines Netzwerkdateisystems zugreifen oder, indem Daten unter Verwendung des FTP(File Transfer Protocol)-Protokolls oder des SSH(Secure Shell)-Protokolls davon gelesen oder darauf geschrieben werden. Es versteht sich, dass jedes andere Protokoll verwendet werden kann, um Fernzugriffe auf den Bandlaufwerksystem-Server 102 durchzuführen.
-
Der Bandlaufwerksystem-Server 102 stellt geeignete Schnittstellen 23, 24, 25, 26, 27 wie in 2 gezeigt bereit, so dass der Bandlaufwerksystem-Server verwendet werden kann, um Datenspeicherbedarf für eine Vielzahl von Anwendungen 110 zu beherbergen. In 2 weist der Bandlaufwerksystem-Server weiterhin eine Dateisystem-Schnittstelle zum Interagieren mit auf einem Bandlaufwerksystem (104), z. B. einer Vielzahl von Bandlaufwerken, gespeicherten Datendateien auf. Es folgen Beispiele von Anwendungen zum Verwalten von auf den Bandlaufwerken gespeicherten Dateien, einschließlich, jedoch nicht auf diese beschränkt:
- 1) Sicherung eines GPFS-(oder anderen)Dateisystems das mit dem Bandlaufwerksystem-Server über das Netzwerk verbunden ist. Das gesamte GPFS-Dateisystem oder einzelne Verzeichnisse oder Dateisätze können in das Bandeinheitensystem gesichert werden. Vollständige oder inkrementelle Sicherungen können vorgenommen und mehrere Versionen auf denselben oder unterschiedlichen Bandkassetten unterstützt werden. Darüber hinaus können mehrere, von denselben oder unterschiedlichen Systemen/Clustern stammende Sicherungskopien in derselben Einheit unterstützt werden. Vorteilhafterweise ermöglicht LTFS eine in sich abgeschlossene (self-contained) und sebstbeschreibende Sicherung auf der Bandkassette, wodurch dem Benutzer die Notwendigkeit erspart wird, einen zentralisierten Sicherungsserver einzusetzen und zu pflegen. Darüber hinaus können die Dateiattribute von GPFS auf LTFS beibehalten werden und somit mit einigen Modifikationen an LTFS durchgesetzt werden. Der Sicherungsprozess, der entweder durch einen GPFS-Knoten oder durch die Bandeinheit selbst geleitet werden kann, ist in den folgenden Schritten skizziert:
a. Eine im Cluster ausgeführte GPFS-Richtlinie identifiziert die Dateien, die sich seit der letzten Sicherung geändert haben;
b. Die Richtlinie ruft einen externen Prozess auf, um die Sicherung durchzuführen;
c. Der Sicherungsprozess kopiert Dateien unter Beibehaltung der GPFS-Dateiattribute auf die Einheit;
d. Der Kopiervorgang kann über SSH oder unter Verwendung einer NFS/CIFS-Einbindung erfolgen;
e. Wenn der Prozess beendet ist, kann die Bandkassette entnommen werden und an einen Aufbewahrungsort verbracht oder zu irgendeinem anderen System bewegt werden.
-
Dateien können aus der Sicherung durch einfaches Lesen des Bandes im selben oder irgendeinem anderen Bandsystem und unter Einsatz der durch LTFS bereitgestellten Dateisystem-Schnittstelle wiederhergestellt werden, wodurch es ermöglicht wird, denselben Namensraum wie im GPFS beizubehalten. Dies bedeutet, dass jede Datei, die vom Dateiserver gesichert wurde, den Namen (Pfad und Datei) in LTFS besitzen kann, was ein einfaches Wiederherstellen ermöglicht.
- 2) Migration von Dateien von einem GPFS-(oder anderen)Dateisystem, d. h. unter Verwendung des Bandlaufwerksystems als eine Schicht in der Speicherhierarchie. Der Benutzer gibt Migrationskriterien für Dateien oder Verzeichnisse in der Form von benutzerdefinierten GPFS-Richtlinien an und das System platziert die Daten nahtlos auf Band, indem Dateien auf das Bandsystem migriert werden, welche die vorgenannten angegebenen Kriterien erfüllen. Für jede zum Bandlaufwerksystem migrierende Datei wird die Datei im GPFS durch einen Datei-Stub (einen Platzhalter) ersetzt. Dadurch verbleiben die Dateien im GPFS-Namensraum und auf sie kann durch die Benutzer und die vorhandenen Anwendungen wie auf normale Dateien zugegriffen werden. Bei einem Zugriff auf eine migrierte Datei wird die Datei aus dem Bandlaufwerksystem abgerufen.
- 3) Integration in NAS-Dateiserver (z. B. NetApp-Dateiserver), um alte Snapshots aus dem Dateiserver in LTFS zu kopieren und ältere Snapshots aus dem Dateiserver zu löschen. Der Vorteil liegt darin, dass ältere Snapshots, die üblicherweise mehr Speicherkapazität benötigen, auf dem Bandlaufwerksystem gespeichert werden und auf sie nahtlos durch die LTFS-Dateisystem-Schnittstelle zugegriffen werden kann, bei der es sich um eine NAS-Schnittstelle wie beispielsweise NFS oder CIFS handeln kann, die ebenso durch den NAS-Dateiserver bereitgestellt wird.
- 4) Bei der Medienverwaltung (Media Management (MAM)), enthält das Medium oftmals mehrere Versionen desselben Datenstroms. Eine verbreitete Praxis liegt im Vorhandensein einer hochauflösenden Version eines Audio-Video-Stroms zusammen mit einem so genannten „Proxy”, bei dem es sich um eine Version desselben Inhalts mit niedriger Auflösung handelt. Es wäre äußerst vorteilhaft, die zum Proxy gehörenden Dateien in Cachespeicher zu speichern, da dieser häufiger verwendet wird, um den Inhalt zu bearbeiten/schneiden, um eine Schneideliste zu erstellen, die später auf den hochauflösenden Ursprungsstrom angewandt wird, um einen Wiedergabestrom für die direkte Wiedergabe zu erzeugen.
- 5) Eine grafische Benutzerschnittstelle (Graphical User Interface) zum Verwalten der Bandeinheitensysteme durch Fernzugriff, einschließlich, jedoch nicht beschränkt auf, Medienverwaltung, Versionserstellung (versioning), Aufbewahrung (vaulting), Formatprüfung und Wiederherstellung der gespeicherten Dateien.
-
Somit weist der Bandlaufwerksystem-Server einen nichtflüchtigen Speicher (z. B. ein HDDs/SSDs-Array), der als ein Cachespeicher verwendet wird und der logisch in einen einzigen logischen Adressraum konfiguriert sein kann, eine Dateisystem-Schnittstelle zum Interagieren mit auf einem Bandlaufwerksystem gespeicherten Datendateien (z. B. ein oder mehrere parallel arbeitende Bandlaufwerke wie in 1 gezeigt) und eine Schnittstelle, um einem oder mehreren entfernt angeordneten Systemen ein Lesen und Schreiben von auf dem Datenspeichermittel und/oder dem Cachespeicher gespeicherten Daten zu ermöglichen, auf.
-
Der Bandlaufwerksystem-Server ist weiterhin eingerichtet, von dem einen oder den mehreren entfernt angeordneten Systemen eine oder mehrere Schreibanfragen zum Schreiben von einer oder mehreren Datendateien auf das Bandlaufwerksystem und auf den Cachespeicher zu empfangen. Praktisch wird eine Schreibanfrage durch die Schnittstelle empfangen, die einem oder mehreren entfernt angeordneten Systemen ein Lesen und Schreiben von auf dem Datenspeichermittel und/oder dem Cachespeicher gespeicherten Daten ermöglichen will. Bei dieser Schnittstelle kann es sich somit um eine Datenübertragungs-Schnittstelle wie die üblicherweise nach einem speziellen Standard konzipierten handeln, die es einer Maschine ermöglicht, mit einer anderen Maschine Daten fernauszutauschen.
-
Darüber hinaus ist der Bandlaufwerksystem-Server eingerichtet, Attribute zu interpretieren, die Datendateien zugeordnet sind, die angewiesen sind, durch das eine oder die mehreren entfernt angeordneten Systeme auf das Bandlaufwerksystem und auf den Cachespeicher geschrieben zu werden. Auf diese Weise werden Caching-Hinweise in der Form von Attributen bereitgestellt. Typischerweise handelt es sich bei den Attributen um erweiterte Attribute, die Formate besitzen, die mit einem gegeben Datenformat der Datendateien kompatibel sind. Attribute werden durch die Dateisystem-Schnittstelle auf der Grundlage von Dateien und Verzeichnissen gemäß dem POSIX-Standard unterstützt. Vorteilhafterweise ermöglicht dies eine einfachere Interpretation der Attribute durch die Dateisystem-Schnittstelle (z. B. ein LTFS-Dateisystem).
-
Die Attribute werden in der Praxis durch den Benutzer 120 oder die Anwendung 110 ausgewählt: Diese ermöglichen in vorteilhafter Weise ein Bereitstellen von Caching-Hinweisen in der Form erweiterter Attribute durch den Benutzer oder die Anwendung. Die Attribute entsprechen somit Caching-Prioritätsklassen. Anders ausgedrückt: Der Benutzer oder die Anwendung können eine Caching-Priorität für eine gegebene Datendatei auswählen. Der Name des Attributs kann bereits die Caching-Prioritätsinformationen enthalten. Die Namen der Attribute sind vorzugsweise vordefiniert.
-
Des Weiteren ist der Bandlaufwerksystem-Server eingerichtet, Datendateien zu speichern, die angewiesen sind, durch die entfernt angeordneten Systeme gemäß den interpretierten Attributen geschrieben zu werden. Somit wird das Caching von Datendateien, die angewiesen sind, geschrieben zu werden, auf der Grundlage des Attributwertes (z. B. des Namens des Attributs) durchgeführt.
-
Es sollte verstanden werden, dass das Auswählen der Caching-Priorität durch den Benutzer jederzeit bereitgestellt werden kann und sich auch die Auswahl der Caching-Priorität mit der Zeit ändern kann. Zum Beispiel kann derselbe Benutzer oder dieselbe Anwendung oder ein anderer Benutzer oder eine andere Anwendung einen neuen Hinweis oder eine neue Caching-Priorität bereitstellen. Die Cachespeicherverwaltung wird ihre Caching-Entscheidung für eine Datei erst ändern, wenn auf sie das nächste Mal zugegriffen wird, oder früher, wenn der Benutzer/die Anwendung dies ausdrücklich anfordert. Dies verbessert in vorteilhafter Weise die Flexibilität der Caching-Priorität, die durch den Benutzer oder die Anwendung abhängig von Parametern wie beispielsweise der Arbeitslast des Bandlaufwerksystem-Servers modifiziert werden kann.
-
In seiner einfachsten Form stellt ein Cachespeicher-Hinweis die Cachespeicher-Priorität für eine bestimmte Datei dar. Es sollte verstanden werden, dass durch den Bandlaufwerksystem-Server eine Standard-Cachespeicher-Priorität (z. B. Klasse 3) angenommen werden kann, z. B. wenn der Benutzer oder die Anwendung keine angibt.
-
Nun werden Beispiele von Caching-Prioritätsklassen und deren Semantik erläutert. Die Interpretation der jeweiligen Attribute kann typischerweise durch Cachespeicher-Verwaltungsfunktionen durchgeführt werden, und das Speichern von Datendateien, die angewiesen sind, entsprechend dem zu interpretierenden Attribut geschrieben zu werden, kann auch durch Cachespeicher-Verwaltungsfunktionen durchgeführt werden.
-
Eine erste Caching-Prioritätsklasse (auch als Klasse 1 bezeichnet) kann Cachespeicher-Verwaltungsfunktionen veranlassen, Datendateien einmal zu schreiben: die Datendatei wird in den FIFO-Cachespeicher geschrieben und im Hintergrund unmittelbar auf Band kopiert. Wenn das Kopieren fertiggestellt ist, wird die Datei aus dem Cachespeicher verworfen. Anders ausgedrückt: Datendateien, die angewiesen sind, geschrieben zu werden, werden in die erste Region des Cachespeichers geschrieben, sie werden anschließend von der ersten Region auf das Bandlaufwerksystem kopiert. Und nachdem die Kopie fertiggestellt ist, werden die Datendateien aus der ersten Region des Cachespeichers entfernt, d. h. Datendateien werden aus der FIFO-Region des Cachespeichers gelöscht. Die Kopie wird vorteilhafterweise als eine Hintergrundaufgabe des Servers durchgeführt. Dies ermöglicht ein Bereitstellen von Caching während Schreibvorgängen: Datendateien können zuerst in den Cachespeicher geschrieben werden und im Hintergrund asynchron auf Band verschoben werden, insbesondere, wenn die Bandbibliothek beschäftigt ist. Somit müssen Schreibvorgänge nicht warten, bis auf einem Band des Bandlaufwerks laufende Lesevorgänge beendet sind, bevor das Schreiben starten kann.
-
Eine zweite Caching-Prioritätsklasse (auch als Klasse 2 bezeichnet) kann Cachespeicher-Verwaltungsfunktionen veranlassen, die Datendateien zu schreiben und dann Datendateien einmal zu lesen Zu diesem Zweck wird eine Datendatei in den FIFO-Cachespeicher geschrieben und im Hintergrund auf Band kopiert. Die Datendatei wird im FIFO-Cachespeicher behalten, bis der nächste Lesevorgang an der Datei aufgetreten ist. Wenn die Datei nach dem ersten Lesevorgang mehrere Male gelesen wird, wird sie zum LRU-Cachespeicher des Cachespeichers verschoben. Wenn die Datei nach dem anfänglichen Lesevorgang innerhalb einer Zeitdauer, oder bis Cachespeicherplatz freigegeben werden muss, nicht mehr gelesen wird, wird sie aus dem Cachespeicher entfernt. In anderen Worten: Klasse 2 veranlasst die Cachespeicher-Verwaltungsfunktionen, Datendateien, die zum Schreiben in die erste Region des Cachespeichers angewiesen sind, zu schreiben und nachfolgend in der ersten Region gespeicherte Datendateien auf das Bandlaufwerksystem zu kopieren. In anderen Worten: Klasse 2 veranlasst die Cachespeicher-Verwaltungsfunktionen Datendateien, die zum Schreiben in die erste Region des Cachespeichers angewiesen sind, zu schreiben, um anschließend Datendateien, die in der ersten Region gespeichert sind, auf das Bandlaufwerksystem zu kopieren, wobei die Kopie als Hintergrundaufgabe des Servers ausgeführt wird. Dann ermitteln die Cachespeicher-Verwaltungsfunktionen, ob die Datendateien nach einem ersten Lesen der in die erste Region geschriebenen Datendateien ein oder mehrere zusätzliche Male gelesen werden. Im Falle, dass ermittelt wird, dass die Datendateien ein oder mehrere zusätzliche Male zu lesen sind, werden die Datendateien in die zweite Region des Cachespeichers verschoben. Im Falle, dass im Gegensatz dazu ermittelt wird, dass die Datendateien nicht ein oder mehrere zusätzliche Male zu lesen sind, werden die Datendateien aus der ersten Region des Cachespeichers entfernt. Somit stellt Klasse 2 in vorteilhafter Weise Caching während Schreibvorgängen und Caching für nachfolgende Lesevorgänge bereit und unterstützt Schreibüberprüfungsvorgänge. Datendateien, die auf dem Bandlaufwerksystem platziert wurden, auf die jedoch nach wie vor regelmäßig durch manche Benutzer zugegriffen wird (z. B. der am häufigsten verwendete Teil eines Archivs) werden in dem Cachespeicher gespeichert. Daher leiden diese Zugriffe nicht unter hohen Bandlatenzzeiten von Band. Demzufolge können mehrere Benutzer dieselben im FIFO-Bereich gespeicherten Datendateien lesen, und somit ihre Zugriffszeiten auf die Datendateien verringern, während die Datendateien auf dem Bandlaufwerksystem gespeichert werden.
-
Eine dritte Caching-Prioritätsklasse (auch als Klasse 3 bezeichnet) kann Cachespeicher-Verwaltungsfunktionen veranlassen, für eine bereits geschriebene vorhandene Datei die gesamte Datei in den FIFO-Cachespeicher vorabzurufen. Wenn die Datei nach dem anfänglichen Lesevorgang mehrere Male gelesen wird, wird sie zum LRU-Cachespeicher verschoben. Somit wird ein Satz von Datendateien in die erste Region des Cachespeichers vorabgerufen, die zuvor in der ersten Region des Cachespeichers gespeichert wurden, und es wird ermittelt, ob nach einem ersten Lesen des vorabgerufenen Satzes von Datendateien eine oder mehrere Datendateien des vorabgerufenen Satzes ein oder mehrere zusätzliche Male gelesen werden. Im Falle, dass ermittelt wird, dass eine oder mehrere Datendateien des vorabgerufenen Satzes ein oder mehrere zusätzliche Male zu lesen sind, wird der Satz von Datendateien in die zweite Region des Cachespeichers verschoben. Diese Klasse stellt in vorteilhafter Weise Lese-Caching durch Lesen der in den Cachespeicher zu speichernden Datei, bevor der Lesebefehl von der Anwendung oder dem Benutzer ausgegeben wird, bereit.
-
Eine vierte Caching-Prioritätsklasse (auch als Klasse 4 bezeichnet) kann Cachespeicher-Verwaltungsfunktionen veranlassen, an der zweiten Region des Cachespeichers ein Vorabrufen durchzuführen, indem ein Satz von Datendateien vorabgerufen wird, die zuvor in der ersten Region des Cachespeichers gespeichert wurden. Somit wird eine vorhandene Datei, die bereits geschrieben wurde, bald mehr als einmal sequenziell gelesen werden. Diese Klasse stellt somit in vorteilhafter Weise Lese-Caching durch Lesen der in den Cachespeicher zu speichernden Datei, bevor der Lesebefehl von der Anwendung oder dem Benutzer ausgegeben wird, bereit.
-
Eine fünfte Caching-Prioritätsklasse (auch als Klasse 5 bezeichnet) kann Cachespeicher-Verwaltungsfunktionen veranlassen, die Datendatei bis zum maximalen Versatz, auf den zu einer gegebenen Zeit zugegriffen wurde, in den LRU-Cache abzurufen. Eine vorhandene Datei, die bereits geschrieben wurde, wird in einer wahlfreien Weise gelesen werden. Diese Klasse stellt in vorteilhafter Weise Lese-Caching durch Lesen der in den Cachespeicher zu speichernden Datei, bevor der Lesebefehl von der Anwendung oder dem Benutzer ausgegeben wird, bereit. Anders ausgedrückt: Diese Klasse veranlasst ein Platzieren von Datendateien in die zweiten Region des Cachespeichers bis zum maximalen Versatz, auf den zu irgendeiner gegebenen Zeit zugegriffen wurde. Interessanterweise können wahlfreie Schreibvorgänge in eine Datendatei im Cachespeicher aufgenommen werden. Vor dem Schreiben der relevanten Bytebereiche auf das Bandlaufwerksystem können somit die relevanten Bytebereiche nach dem Startversatz in der Datendatei sortiert werden. Nachfolgende sequenzielle Lesevorgänge in diese Datendatei müssen nicht auf dem Band vor- und zurücksuchen; es versteht sich, dass die Datei im Falle, dass sie sich noch im Cachespeicher befindet, selbstverständlich vom Cachespeicher bedient werden kann, ohne überhaupt an das Bandlaufwerksystem zu gehen.
-
Eine sechste Caching-Prioritätsklasse (auch als Klasse 6 bezeichnet) kann Cachespeicher-Verwaltungsfunktionen veranlassen, Datendateien unabhängig davon, ob auf die Datendateien zugegriffen wird, unmittelbar in die erste Region des Cachespeichers zu platzieren, wenn eine Datendatei-Caching-Klasse eingestellt ist, und Datendateien aus dem Cachespeicher zu entfernen, wenn ein konfigurierbares Zeitintervall abgelaufen ist. Dadurch kann eine unbegrenzte Anwesenheit von Dateien in der ersten (FIFO-) oder zweiten (LRU-)Region des Cachespeichers verhindert werden. Ein maximales Zeitintervall, bei dem es sich um die maximale Anwesenheitszeit einer Datei im Cachespeicher handelt, kann durch einen Benutzer oder eine Anwendung konfiguriert werden. Es sollte verstanden werden, dass im Falle, dass weder der Benutzer noch die Anwendung diese maximale Zeit definieren, eine Standard-Maximalanwesenheitszeit einer Datei im Cachespeicher durch Cachespeicher-Verwaltungsfunktionen ausgewählt werden kann. Mit der maximalen Anwesenheitszeit kann die Menge an im Cachespeicher gespeicherter Daten geregelt werden. Insbesondere werden alte Daten entfernt.
-
Darüber hinaus kann der Benutzer oder die Anwendung die Cachespeicher-Prioritätsklasse über das vordefinierte erweiterte Attribut zurücksetzen. Bei Empfang der Rücksetzung der Cachespeicher-Prioritätsklasse wird die Datei aus dem Cachespeicher entfernt, nachdem ihr Vorhandensein auf Band gesichert ist. Dadurch kann wiederum die Menge von auf dem Cachespeicher gespeicherten Datendateien verwaltet werden.
-
Um die Unterstützung gemeinsamer Nutzungsfälle zu verbessern, kann eine Cachespeicher-Prioritätsklasse für eine gegebene Datei mit der Zeit durch den Benutzer oder die Anwendung geändert werden. Wenn zum Beispiel eine Datei auf das offenbarte neuartige Bandeinheitensystem geschrieben wird, wird sie der Klasse 1 zugewiesen, wodurch gesichert ist, dass die Datei in den FIFO-Cachespeicher geschrieben wird. Dadurch wird in vorteilhafter Weise die Notwendigkeit beseitigt, das Band während des Benutzerschreibprozesses zu positionieren.
-
Entsprechend der Richtlinie der Klasse 1 wird die Datendatei unmittelbar auf Band geschrieben, und nachdem dies erfolgt ist, wird die Datei aus dem FIFO-Cachespeicher verworfen. Wenn nun der Benutzer oder die Anwendung die Datei sequenziell lesen möchte, weist der Benutzer oder die Anwendung der Datendatei vor dem Ausführen des Lesebefehls über ein vordefiniertes erweitertes Attribut die Klasse 3 zu. Die Bandeinheit erkennt dann die neue Klassenzuweisung und verarbeitet die Datei, indem geprüft wird, ob sich die Datei im FIFO- oder LRU-Cachespeicher befindet. Wenn sich die Datei in der FIFO- oder LRU-Region des Cachespeichers befindet, wird sichergestellt, dass die Datei nicht entfernt wird, bis sie einmal gelesen wurde, und wenn sich die Datei nicht in der FIFO- oder der LRU-Region des Cachespeichers befindet, wird die Datei vom Band in den FIFO-Cachespeicher gelesen. Vorteilhafterweise stellt diese Verarbeitung einen schnellen Lesezugriff sicher, da sich die Datei bereits im FIFO-Cachespeicher befindet, bevor der Befehl durch die Anwendung oder den Benutzer gesendet wird. Durch Vorabrufen großer Dateien aus dem Bandlaufwerksystem in den Cachespeicher sogar vor dem Anfragen der gesamten Datei durch den Benutzer, kann das Bandlaufwerksystem darüber hinaus pro Benutzerlesevorgang für eine so kurze Zeit wie möglich beschäftigt gehalten werden, wodurch es freigegeben und anderen Benutzern das Verwenden ermöglicht wird.
-
Es sollte verstanden werden, dass mehr Kombinationen von Cachespeicher-Prioritätsklassen während des normalen Betriebs der Bandeinheit möglich sind, z. B. abhängig von der Arbeitslast des Bandlaufwerksystem-Servers.
-
Indem Sicherungsdaten zuerst in den Cachespeicher geschrieben werden, wird die Schreibprozedur selbst in vorteilhafter Weise kürzer aus zumindest den folgenden Gründen: Die Suchzeit für Cachespeicher liegt in der Größenordnung einiger weniger Millisekunden, wohingegen die zum Erreichen des Endes eines Bandes des Bandlaufwerksystems und Starten des Schreibvorgangs benötigte Suchzeit in der Größenordnung von einigen zehn Sekunden liegt. Des Weiteren stellt Cachespeicher üblicherweise eine dem Band überlegene Bandbreite zur Verfügung. Zum Beispiel besitzen Cachespeicher-Festplatten eine größere Bandbreite. Darüber hinaus verringern kürzere Schreibzeiten (Sicherungsfenster) die Wahrscheinlichkeit, dass das entfernt angeordnete System ausfällt, bevor die Sicherung fertiggestellt ist. Ein weiterer Vorteil von Cachespeicher im Bandlaufwerksystem-Server liegt darin, dass die Sicherungsmetadaten des Bandlaufwerksystems darauf gespeichert werden können. Somit beseitigt dies die Notwendigkeit, zum Band zu gehen, wenn ein Benutzer oder eine Anwendung nur die Sicherung abfragen will.
-
Die Wiederherstellprozedur kann ebenso beschleunigt werden, auch im Falle, dass die wiederherzustellenden Daten noch nicht im Cachespeicher vorhanden sind: In der Tat kann das System Daten vorabrufen, die zur selben Sicherung gehören und dieselbe Sicherungsversion oder denselben Zeitstempel aufweisen oder zum selben Verzeichnis gehören. Diese Dateien können dann effizient aus dem Cachespeicher abgerufen werden. Im Falle der Verwendung einer inkrementellen Sicherung auf Blockebene (im Gegensatz zur Dateiebene) können im Cachespeicher mehrere Dateien in einem einzigen Durchlauf über das Band des Bandlaufwerksystems rekonstruiert werden; in diesem Fall werden die Blöcke üblicherweise auf dem Band versetzt (interleaved) angeordnet.
-
Als einen weiteren Vorteil führt ein paralleles Schreiben mehrerer Dateien nicht dazu, dass die Dateien auf Band versetzt werden: Tatsächlich werden die Schreibvorgänge zuerst auf dem Cachespeicher absorbiert und dann in ihrer Gesamtheit auf Band geschrieben, wenn sie aus Altersgründen aus dem Cachespeicher herausfallen. Anders ausgedrückt: Die den Datendateien zugeordneten Attribute werden durch die Cachespeicher-Verwaltungsfunktionen verwendet, um konkurrierende, durch mehrere Benutzer parallel erfolgende Datenschreibvorgänge und/oder -lesevorgänge zu optimieren.
-
Im Falle, dass einige größere zu speichernde Datendateien kleineren Datendateien zugeordnet sind, wobei jede kleinere Datei eine Miniaturansicht(thumbnail)-Version oder eine Version des Inhalts der großen Datei mit geringerer Auflösung enthält, platzieren die Cachespeicher-Verwaltungsfunktionen die kleinen Dateien für einen schnellen Zugriff in den Cachespeicher.
-
Der Cachespeicher kann eine oder mehrere Datenspeichereinheiten wie beispielsweise ein Magnetbandmedium aufweisen. Die Dateisystem-Schnittstelle wird üblicherweise mithilfe eines LTFS-Dateisystems verwaltet. Es sollte verstanden werden, dass ein anderes Dateisystem verwendet werden kann. Die LTFS-Dateisystem-Schnittstelle wird im Server 102 ausgeführt, an den sowohl die Bandbibliothek als auch der Cachespeicher direkt angebunden sind. Der Cachespeicher wird als ein Cachespeicher für das LTFS-Dateisystem verwendet, wodurch in vorteilhafter Weise ein schneller wahlfreier Zugriff auf die im Datenspeichermittel gespeicherten Daten bereitgestellt wird. Es sollte verstanden werden, dass jedes beliebige andere Datenspeichermedium verwendet werden kann, obwohl im folgenden Text HDDs als Cachespeicher verwendet werden.
-
In Ausführungsformen können die HDDs des Cachespeichers durch den Bandlaufwerksystem-Server als Roheinheiten, das heißt ohne Dateisystem (wie beispielsweise ext3), verwendet werden. In diesem Fall wird es sich entweder beim Cachespeicher um einen auf Blockebene handeln (im Gegensatz zu einem auf Datenebene) oder das LTFS muss Dateispeicherfunktionalität für HDDs realisieren.
-
Die Cachespeicher-Verwaltungsfunktionen können als ein auf dem Bandlaufwerksystem-Server 102 ausgeführtes Computerprogramm realisiert und durch einen Server ausgeführt werden. Zum Beispiel und unter Bezugnahme auf 2 können die Cachespeicher-Verwaltungsfunktionen innerhalb des LTFS-Codes der zum Verwalten des Bandlaufwerksystems 104 eingerichteten LTFS-Software realisiert werden.
-
Vorzugsweise handelt es sich bei dem die Cachespeicher-Verwaltungsfunktionen realisierenden Computerprogramm um eine Benutzerplatz-Programmkomponente. Dadurch kann in vorteilhafter Weise die Transportabilität verbessert werden, da eine Benutzerspeicherplatz-Softwarekomponente (im Gegensatz zu einer mit Kernelspeicherplatz) eine niedrige Realisierungskomplexität ermöglicht.
-
In Ausführungsformen können die Cachespeicher-Verwaltungsfunktionen und alle Caching-Funktionalität außerhalb des LTFS als ein externes Modul realisiert werden. Dadurch kann das LTFS in der Zukunft durch jedes beliebige andere Banddateisystem ersetzt werden. Es versteht sich, dass das externe Modul über eine Schnittstelle sowohl mit dem Betriebssystem des Bandlaufwerksystem-Servers als auch dem Banddateisystem verbunden werden muss.