-
Die
Erfindung betrifft ein Verfahren zum Verwalten von Datenobjekten
auf einer Vielzahl von Speichermedien.
-
Eine
Zielstellung der Datenverwaltung ist eine sichere und leistungsfähige, das
heißt
schnelle Speicherung von Datenobjekten auf Datenträgern. Datenobjekte
können
Dokumente, Datensätze
in einer Datenbank, strukturierte oder unstrukturierte Daten sein.
Bisherige technische Lösungen
zur sicheren und performanten Speicherung und Versionierung von
Datenobjekten teilten das Problem in mehrere von einander unabhängige Teilprobleme
auf.
-
Es
ist bekannt, einem Speichermedium M ein Dateisystem FS zuzuordnen
(1). In diesem Fall beschreibt das Dateisystem
FS das Format und die Verwaltungsinformationen zur Speicherung von
Datenobjekten auf einem einzelnen Speichermedium M. Sind in einer
Recheneinheit mehrere Speichermedien M vorhanden, so besitzen alle
eine eigene Instanz eines solchen Dateisystems FS. Gegebenenfalls kann
das Speichermedium M in Partitionen P aufgeteilt sein, denen jeweils
ein eigenes Dateisystem FS zugeordnet ist. Die Art und Weise der
Partitionierung des Speichermediums M ist in einer Partitionstabelle PT
auf dem Speichermedium M abgelegt.
-
Zur
Erhöhung
von Zugriffsgeschwindigkeit und Datensicherheit (Redundanz) gegenüber technischen
Fehlern, wie z. B. dem Ausfall eines Speichermediums M, können so
genannte RAID-Systeme (redundant array of inexpensive disks) eingerichtet
werden (2). Dabei werden mehrere Speichermedien M1,
M2 zu einem virtuellen Speichermedium VM1 zusammengefasst. In moderneren
Varianten dieser RAID-Systeme (3) werden
die einzelnen Speichermedien M1, M2 zu sogenannten Speicherpools SP
zusammengefasst, aus denen virtuelle RAID-Systeme unterschiedlicher Konfiguration
abgeleitet werden können.
Bei allen angesprochenen Varianten findet eine strikte Trennung
zwischen der Speicherung und Verwaltung von Datensätzen in
Datenobjekten und Verzeichnissen und einer blockbasierten Verwaltung
der RAID-Systeme statt.
-
Ein
Block ist dabei die kleinste Einheit, in der Datenobjekte auf dem
Speichermedium M1, M2 organisiert sind, beispielsweise kann ein
Block 512 Byte umfassen. Eine Datei benötigt auf dem Speichermedium
M dabei nicht exakt den Speicherplatz, der ihrer Datenmenge entspricht,
z. B. 10000 Byte, sondern zumindest das nächstgrößere Vielfache der Blockgröße (20 Blöcke mal
512 Byte = 10240 Byte).
-
Ein
weiteres Problem bei der Verwaltung der Datenobjekte ist die Versionierung
oder Versionsverwaltung. Ziel hierbei ist es, Änderungen der Datenobjekte
zu protokollieren, so dass jederzeit nachvollzogen werden kann,
wann was von welchem Nutzer geändert
wurde. Ebenso sollen ältere
Versionen der Datenobjekte archiviert und bei Bedarf wiederhergestellt
werden. Eine solche Versionierung erfolgt häufig mittels so genannter Snapshots.
Dabei wird ein konsistenter Zustand des Speichermediums M zum Zeitpunkt
der Snapshot-Erstellung gesichert, um gegen sowohl technische als
auch menschliche Fehler zu schützen.
Ziel ist es, bei nachfolgenden Schreiboperationen jeweils nur die
Datenblöcke
des Datenobjektes zu schreiben, welche sich im Vergleich zum Vorgänger-Snapshot
geändert
haben. Die geänderten
Blöcke
werden allerdings nicht überschrieben, sondern
an einer neuen Position auf dem Speichermedium M abgelegt, so dass
alle Versionen bei möglichst
geringem Speicherbedarf verfügbar
sind. Die Versionierung findet dementsprechend rein auf Blockebene
statt.
-
Ein
Schutz vor Havariefällen,
beispielsweise dem Ausfall von Speichermedien, kann durch eine externe
Backup-Software erreicht werden, welche eine vollständige Replikation
der Datenobjekte auf unabhängige
Speichermedien M realisiert. Dabei kann ein Nutzer in der Regel
weder das Backup steuern, noch ohne Hilfe eines zuständigen Administrators
auf die gesicherten Datenobjekte zugreifen.
-
Die
Verwaltung und Pflege von RAID- und Backup-basierten Speicherlösungen erfordern
auf Grund der komplexen Architektur dieser Systeme ein hohes Maß an technischem
sowie personellem Aufwand. Dennoch ist es zur Laufzeit weder dem
Anwender noch den Administratoren solcher Speicherlösungen möglich, direkten
Einfluss auf die Sicherungsmaßnahmen
der gespeicherten Datenobjekte zu üben. So kann beispielsweise
die Redundanzgrad (der RAID-Level) der gesamten Speicherlösung, einzelner
Datenobjekte oder älterer
Versionen dieser Datenobjekte in der Regel nicht ohne eine Reinitialisierung
des Speicher- bzw. Dateisystems und dem Zurückspielen eines Backups verändert werden. Ebenso
ist eine Erweiterung oder Reduzierung der Speicherkapazität nur vereinzelt
und unter sehr speziellen Voraussetzungen möglich. In 4 ist
ein RAID-System mit vier Speichermedien M1 bis M4 dargestellt, die
jeweils eine Größe von 1
TByte aufweisen. Aufgrund der Redundanz sind insgesamt davon 3 TByte
für Datenobjekte
verfügbar.
Wird nun eines der Speichermedien M1 bis M4 durch ein größeres Speichermedium
M1 bis M4 mit der doppelten Größe 2 TByte
ersetzt, ist anschließend
ein zeitaufwändiger
Resynchronisierungsvorgang erforderlich, um die Redundanz wiederherzustellen,
bevor mit dem RAID-System wie gewohnt weitergearbeitet werden kann.
Der für
Datenobjekte verfügbare
Speicherplatz bleibt dabei so lange unverändert, bis alle vier Speichermedien
M1 bis M4 schrittweise ersetzt sind. Erst dann stehen von den nun
insgesamt 8 TByte für
die Speicherung von Datenobjekten 6 TByte zur Verfügung. Die
Resynchronisierung ist nach jedem Austausch erforderlich.
-
Diese
Einschränkungen
liegen darin begründet,
dass die Granularität
(Feinheit der Unterteilung) dieser Sicherungsmaßnahmen nur an physikalischen oder
logischen Speichermedien bzw. Dateisystemen festgemacht werden können. Eine
feinere Unterscheidung der Anforderungen einzelner Datenobjekte
bzw. Revisionen von Datenobjekten ist auf Grund der bisherigen Architektur
dieser Speichersysteme nicht möglich
oder wird vereinzelt durch eine große Anzahl an untergeordneten
virtuellen Speicher- oder Dateisystemen simuliert.
-
Aktuelle
Speichersysteme gehen immer von einem Schichtenmodell in der Architektur
des Speichermediums aus um definiert zwischen unterschiedlichen
Betriebszuständen
in unterschiedlichen Schichten unterscheiden zu können.
-
Die
unterste Schicht eines solchen Schichtenmodells ist beispielsweise
das Speichermedium M. Dieses ist beispielsweise durch folgende Merkmale
und Funktionen charakterisiert:
- • Medientyp
(Bandlaufwerk, Festplatte, FLASH-Speicher, etc.)
- • Zugriffsart
(parallel bzw. sequentiell)
- • Status
und Informationen der Selbstdiagnose
- • Verwaltung
defekter Blöcke
-
Über dieser
untersten Schicht liegt beispielsweise als nächste Schicht das RAID-System, das als RAID-Software
oder als RAID-Controller implementiert sein kann. Dieser RAID-Schicht
sind folgende Merkmale und Funktionen zugeordnet:
- • Partitionierung
von Speichermedien
- • Zuordnung
von Speichermedien zu RAID-Gruppen (aktiv, defekt, reserviert)
- • Zugriffsrechte
(nur lesen/lesen und schreiben)
-
Oberhalb
der RAID-Schicht liegt beispielsweise eine Dateisystem-Schicht (FS)
mit folgenden Merkmalen und Funktionen:
- • Zuordnung
von Datenobjekten zu Blöcken
- • Verwaltung
von Rechten und Metadaten
-
Jede
der Schichten kommuniziert nur mit der unmittelbar benachbarten
darüber
und darunter liegenden Schicht. Dieses Schichtenmodell führt dazu, dass
die jeweils aufeinander aufbauenden Einzelschichten nicht über die
gleichen Informationen verfügen.
Dieser Umstand ist im Stand der Technik zur Reduktion der Komplexität der Einzelsysteme
und zur Standardisierung und Erhöhung
der Kompatibilität
von Komponenten verschiedener Hersteller beabsichtigt. Jede Schicht
verlässt
sich auf die unter ihr liegende Schicht. Dementsprechend weiß bei einem Ausfall
eines der Speichermedien M1 bis M4 das Dateisystem FS nicht, welches
Speichermedium M1 bis M4 der RAID-Gruppe soeben ausgefallen ist
und kann dem Benutzer die nun unter Umständen fehlende Redundanz nicht
signalisieren. Auf der anderen Seite muss das RAID-System, nachdem
das defekte Speichermedium M1 bis M4 gegen ein funktionierendes
ausgetauscht wurde, eine komplette Resynchronisierung der RAID-Gruppe
vornehmen, obwohl in den meisten Fällen nur wenige Prozentteile
der Datenobjekte betroffen sind und diese Information im Dateisystem
FS vorhanden ist.
-
Moderne
Speichersysteme versuchen mithilfe von Journalen einen konsistenten
Zustand der Verwaltungsdatenstrukturen des Speichersystems abzusichern.
Dabei werden alle Änderungen
an den Verwaltungsdaten einer Datei vor dem eigentlichen Schreiben
der gesamten Änderungen
in einem reservierten Speicherbereich, dem Journal, gespeichert. Die
eigentlichen Nutzerdaten werden von diesem Journal nicht oder nur
unzureichend erfasst, sodass es dennoch zu einem Datenverlust kommen
kann.
-
Der
Erfindung liegt daher die Aufgabe zu Grunde, ein verbessertes Verfahren
zum Verwalten von Datenobjekten anzugeben.
-
Die
Aufgabe wird erfindungsgemäß gelöst durch
ein Verfahren mit den Merkmalen des Anspruchs 1.
-
Vorteilhafte
Ausgestaltungen der Erfindung sind Gegenstand der Unteransprüche.
-
Bei
einem erfindungsgemäßen Verfahren zum
Verwalten von Datenobjekten auf mindestens einem Speichermedium,
insbesondere einer Vielzahl von Speichermedien, wird jedem der Speichermedien
ein Speichersteuermodul zugeordnet. Ein Dateisystem kommuniziert
mit jedem der Speichersteuermodule, wobei durch das Speichersteuermodul
Informationen über
das Speichermedium ermittelt werden, die zumindest eine Latenz,
eine Bandbreite und Angaben über
belegte und freie Speicherblöcke
auf dem Speichermedium umfassen. Alle Informationen über das
zugeordnete Speichermedium werden durch das Speichersteuermodul
an das Dateisystem weitergeleitet. Dies bedeutet, dass anders als
bei einem Schichtenmodell die Informationen nicht auf die Kommunikation
zwischen benachbarten Schichten begrenzt sind, sondern auch dem
Dateisystem und gegebenenfalls darüberliegenden Schichten zur
Verfügung
stehen. Aufgrund dieses vereinfachten Schichtenmodells hat zumindest
das Dateisystem zu jedem Zeitpunkt sämtliche Informationen über das gesamte
Speichersystem, alle Speichermedien und alle gespeicherten Datenobjekte.
Dadurch kann in besonders vorteilhafter Weise optimiert und auf
Fehlerzustände
reagiert werden. Die Verwaltung des Speichersystems für den Anwender
wird vereinfacht. Beispielsweise kann beim Austausch eines Speichermediums,
das zusammen mit mehreren anderen Speichermedien ein redundantes
System (RAID) bildet, eine erheblich schnellere Resynchronisierung erfolgen,
da das Dateisystem die Information über belegte und freie Blöcke hat
und somit nur die belegten und betroffenen Blöcke synchronisiert werden müssen. Das
betreffende RAID-System ist dabei gegebenenfalls innerhalb von Minuten
wieder einsatzfähig
im Gegensatz zu herkömmlichen
Systemen, für die
eine Resynchronisierung mehrere Stunden dauern kann. Zudem kann
beim Ersetzen eines Speichermediums durch eines mit größerer Kapazität die zusätzliche
Kapazität
einfacher verfügbar
gemacht werden.
-
Vorzugsweise
werden im Dateisystem Informationen über jedes der Datenobjekte
vorgehalten, die zumindest dessen Bezeichner, seine Position in einem
Verzeichnisbaum und Metadaten umfassen, in denen zumindest eine
Allokation des Datenobjekts, das heißt dessen Speicherort auf mindestens
einem der Speichermedien enthalten ist.
-
In
einer bevorzugten Ausführungsform
des Verfahrens kann die Allokation jedes der Datenobjekte durch
das Dateisystem anhand der Informationen über das Speichermedium und
anhand vorgegebener Anforderungen an Latenz, Bandbreite und Zugriffshäufigkeit
für dieses
Datenobjekt gewählt
werden. Das heißt
beispielsweise, dass ein sehr selten oder mit geringer Priorität benötigtes Datenobjekt beispielsweise
auf einem Bandlaufwerk gespeichert werden kann während ein häufiger benötigtes Datenobjekt auf einer
Festplatte und ein sehr häufig
benötigtes
Objekt gegebenenfalls auf einer RAM-Disk, einem Teil eines meist
flüchtigen
dafür aber
besonders schnellen Arbeitsspeichers, gespeichert wird.
-
Ebenso
kann eine Redundanz jedes der Datenobjekte anhand einer vorgegebenen
Mindestanforderung bezüglich
der Redundanz durch das Dateisystem gewählt werden. Das bedeutet, dass
nicht das gesamte Speichersystem als RAID-System mit einem einzigen
RAID-Level (Redundanzniveau) organisiert sein muss. Vielmehr kann
jedes Datenobjekt mit seiner individuellen Redundanz gespeichert sein.
Die Metainformation darüber
welches Redundanzniveau für
ein jeweiliges Datenobjekt ausgewählt wurde wird direkt beim
Datenobjekt, als Teil der Verwaltungsdaten, gespeichert.
-
Als
weitere Information über
das Speichermedium kann ein Geschwindigkeitsmaß ermittelt werden, das wiedergibt,
wie schnell Zugriffe in der Vergangenheit ausgeführt wurden und inwiefern verschiedene
Speichermedien voneinander unabhängig gleichzeitig
verwendet werden können.
Zusätzlich kann
ermittelt werden mit wie vielen parallelen Zugriffen ein Speichermedium
verwendet werden kann. Die Berücksichtigung
dieser Information bei der Allokation des Datenobjekts bildet die
Realität
noch besser ab als nur die durch das Speichersteuermodul ermittelte
Latenz und Bandbreite. Beispielsweise kann das Speichersteuermodul
auf ein entferntes Speichermedium über ein Netzwerk zugreifen.
Dabei hängt
die Verfügbarkeit
des Speichermediums auch von der Auslastung und Topologie des Netzwerks
ab, die somit berücksichtigt
wird.
-
Vorzugsweise
erfolgt die Allokation der Datenobjekte Extent-basiert. Ein Extent
ist ein zusammenhängender,
mehrere Blöcke
umfassender Speicherbereich. Wenn ein Datenobjekt geschrieben wird,
wird mindestens ein solcher Extent allokiert. Im Gegensatz zu blockbasierter
Allokation können
große
Datenobjekte effizienter gespeichert werden, da im Idealfall ein
Extent den Speicherbereich eines Datenobjektes vollständig abbildet
und daher Verwaltungsinformationen eingespart werden können.
-
Vorzugsweise
wird die sogenannte Copy-On-Write-Semantik verwendet. Dies bedeutet, dass
Schreiboperationen immer nur auf Kopien der eigentlichen Daten stattfinden
und somit vor der Änderung
existierender Daten eine Kopie dieser hergestellt wird. Durch diese
Vorgehensweise wird auch im Havariefall sichergestellt, dass mindestens
eine konsistente Kopie des Datenobjektes vorliegt. Neben den Datenobjekten
wird durch die Copy-On-Write-Semantik auch die Verwaltungsdatenstruktur
des Speichersystems abgesichert. Eine weitere Nutzungsmöglichkeit
der Copy-On-Write-Semantik stellen Snapshots zur Versionierung des
Speichersystems dar.
-
Wie
bereits ausgeführt
kann als Speichermedium eine Festplatte, ein Teil eines Arbeitsspeichers, ein
Bandlaufwerk oder über
ein Netzwerk ein entferntes Speichermedium oder jedes andere Speichermedium
verwendet werden. Dabei wird als Information über das Speichermedium zumindest
weitergeleitet, ob das Speichermedium flüchtig oder nichtflüchtig ist. Ein
Arbeitsspeicher eignet sich wegen seiner kurzen Zugriffszeiten und
hohen Bandbreite zwar zur Speicherung häufig benötigter Datenobjekte, bietet
aber wegen seiner Flüchtigkeit
bei einem Netzausfall keine Datensicherheit.
-
Vorzugsweise
kann bei einem Lesevorgang auf dem Speichermedium sequentiell eine
größere Datenmenge
als die angeforderte eingelesen und in einem flüchtigen Speicher (Cache) zwischengespeichert
werden. Diese Vorgehensweise wird als Read-Ahead-Caching bezeichnet.
Ebenso können bei
beabsichtigten Schreibvorgängen
auf dem Speichermedium Datenobjekte mehrerer Schreibvorgänge zunächst in
einen flüchtigen
Speicher zwischengespeichert und anschließend sequentiell auf das Speichermedium
geschrieben werden. Dieser Vorgang wird als Write-Back-Caching bezeichnet.
Beim Read-Ahead- und Write-Back-Caching handelt es sich um Caching
Verfahren mit dem Ziel, die Lese- und Schreib-Performance zu steigern. Das Read-Ahead
Verfahren macht sich die Eigenschaft von – vor allem – Festplatten
zu Nutze, dass sequentielle Lesevorgänge bedeutend schneller verarbeitet werden
als zufällige
Lesevorgänge über den
gesamten Bereich der Festplatte. Der Read-Ahead Cache Mechanismus
versucht, bei zufälligen
Leseoperationen die Anzahl derselben so klein wie möglich zu
halten, indem gegebenenfalls etwas mehr Datenobjekte als angefordert
von der Festplatte – dann
allerdings sequentiell und damit schneller – gelesen werden als für die einzeln
betrachtete zufällige
Leseoperation notwendig wäre.
Eine Festplatte ist so organisiert, dass prinzipbedingt immer nur
ganze festplatteninterne Blöcke
(verschieden von Blöcken
im Speichersystem) gelesen werden. Das heißt: auch wenn nur 10 Byte von
einer Festplatte gelesen werden sollen, wird tatsächlich ein
ganzer Block von bedeutend größerer Datenmenge
(z. B. 512 Byte) von der Festplatte gelesen. Hierbei kann der Read-Ahead
Cache ohne mechanischen Mehraufwand sozusagen schon bis zu 512 Byte
im Cache ablegen. Beim Write-Back Caching handelt es sich um einen ähnlichen
Ansatz in Bezug auf die Verringerung von mechanischen Operationen.
Es ist am sinnvollsten, Datenobjekte sequentiell zu schreiben. Der
Write-Back-Cache ermöglicht
es, für
eine gewisse Zeit zu schreibende Datenobjekte zu sammeln und gegebenenfalls
zu größeren sequentiellen
Schreiboperationen zusammenzufassen. Statt vieler einzelner zufälliger Schreiboperationen
werden so wenige sequentielle Schreiboperationen ermöglicht.
-
Eine
Strategie des Lese- oder Schreibvorgangs, insbesondere die vorgenannte
Read-Ahead- und Write-Back-Caching-Strategie kann abhängig von
den Informationen über
das Speichermedium gewählt
werden. Man spricht in diesem Fall auch von adaptivem Read-Ahead-
und Write-Back-Caching. Adaptiv sind die Verfahren deshalb, weil
das Speichersystem versucht, auf die jeweiligen Besonderheiten der
physikalischen Speichermedien einzugehen. Ein nicht-mechanischer
Flash-Speicher benötigt eine
andere Read-Write-Caching Strategie als ein mechanischer Festplattenspeicher.
-
Zur
Sicherung der Integrität
des Datenobjekts wird vorzugsweise ein Datenstrom, in dem das Datenobjekt
enthalten ist, durch eine Prüfsumme
gesichert. Ein Datenstrom kann ein oder mehrere Extents umfassen,
von denen jedes wiederum ein oder mehrere zusammenhängende Blöcke auf
dem Speichermedium umfasst.
-
Zusätzlich kann
der Datenstrom in Prüfsummenblöcke unterteilt
werden, die mit jeweils einer weiteren Prüfsumme gesichert werden. Prüfsummenblöcke sind
Blöcke
vorgegebener Maximalgröße zum Zwecke
der Bildung von Prüfsummen über Teilbereiche
eines Datenstroms.
-
Es
kann vorgesehen sein, die Datenobjekte zum Schreiben zu komprimieren
und nach dem Lesen zu dekomprimieren um Speicherplatz zu sparen. Die
Kompression/Dekompression kann transparent erfolgen. Dies bedeutet,
dass es für
eine Nutzer-Anwendung keinen Unterschied macht, ob die gelesenen
Datenobjekte komprimiert auf dem Speichermedium abgelegt wurden
oder unkomprimiert. Die Kompression- und Verwaltungsarbeit wird
komplett vom Speichersystem erledigt. Aus Sicht des Speichersystems
steigt die Komplexität
der Datenspeicherung dabei an.
-
In
einer besonders bevorzugten Ausführungsform
der Erfindung werden mehrere Datenobjekte und/oder Pfade graphenartig
organisiert und miteinander in Beziehung gesetzt (verlinkt). Eine
solche graphenartige Verlinkung wird realisiert, indem einer Object
Location, das heißt
einer Position eines Datenobjekts in einem Pfad, ein Alias und über die Verlinkung
eine weitere Object Location zugeordnet wird. Solche Verlinkungen
können
in einer als Anwendung auf das Dateisystem aufgesetzten Datenbank
verwaltet und erzeugt werden.
-
Vorzugsweise
ist eine Schnittstelle für
Nutzeranwendungen vorgesehen, mittels derer auf das Datenobjekt
bezogene Funktionalitäten
erweiterbar sind. Man spricht in diesem Fall auch von erweiterbaren
Objektdatentypen. Beispielsweise kann eine Funktionalität vorgesehen
sein, die Volltextsuche auf Basis eines gespeicherten Objektes zur
Verfügung stellt.
Ein solches Plug-In könnte
einen Volltext extrahieren, verarbeiten und über einen Suchindex zur Suche
zur Verfügung
stellen.
-
Die
Metadaten können
der Nutzeranwendung an der Schnittstelle zur Verfügung gestellt
werden. Mit einem solchen Plug-In basierten Zugriff auf Objekt-Metadaten wird erreicht,
dass auch Plug-Ins auf die Verwaltungs-Metadaten, oder Verwaltungsdatenstruktur,
des Speichersystems zugreifen können, um
erweiterte Auswertungen zu ermöglichen.
Ein mögliches
Szenario ist ein Information-Lifecycle-Management
Plug-In, welches aufgrund von Zugriffsmustern auf einzelne Objekte
Entscheidungen treffen kann, auf welchem Speichermedium und auf
welche Art und Weise ein Objekt gespeichert wird. Beispielsweise
sollen hierbei Attribute wie Kompression, Redundanz, Speicherort,
RAID-Level, usw. durch das Plug-In beeinflusst werden können.
-
Die
Nutzerschnittstelle kann für
eine vom Nutzer gewählte
und/oder implementierte Kompression- und/oder Verschlüsselungsanwendung
vorgesehen sein. Dies stellt ein Vertrauensverhältnis des Nutzers bezüglich der
Verschlüsselung
sicher. Diese vollständige
algorithmische Offenheit erlaubt eine lückenlose Überprüfbarkeit von Verschlüsselung
und bietet zusätzliche
Datensicherheit.
-
In
einer weiteren Ausführungsform
kann ein virtuelles bzw. rekursives Dateisystem vorgesehen sein,
in das mehrere Dateisysteme eingebunden werden. Die Aufgabe des
virtuellen Dateisystems ist es, mehrere Dateisysteme zu einem Gesamt-Dateisystem zusammenzufügen und
ein entsprechendes Mapping zu realisieren. Wenn ein Dateisystem
beispielsweise unter dem Alias „/FS2” in das Speichersystem eingebunden
wurde, ist es die Aufgabe des virtuellen Dateisystems, dieses Alias
während
der Nutzung korrekt aufzulösen
und eine Operation auf „/FS2/Ordner/Datenobjekt” auf den
Teilpfad „/Ordner/Datenobjekt” auf das
Dateisystem unter „/FS2” zu lenken.
Um die Verwaltung des virtuellen Dateisystems zu erleichtern, besteht
die Möglichkeit
Dateisysteme rekursiv in andere virtuelle Dateisysteme einzubinden.
-
Dem
Datenobjekt können
Informationen wie die System-Metadaten Erstellungszeitpunkt, Zeitpunkt
des letzten Zugriffs, Zeitpunkt der letzten Änderung, Zeitpunkt der Löschung,
Objekttyp, Edition, Revision, Kopie, Zugriffsrecht, Verschlüsselungsinformationen,
Zugehörigkeit
von Objekt-Datenströmen zugeordnet
sein.
-
Dem
Objekt-Datenstrom ist als Information vorzugsweise mindestens eines
der Attribute Integrität,
Verschlüsselung,
zugeordnete Extents zugeordnet.
-
Bei
einem Austausch eines der Speichermedien wird eine Resynchronisation
durchgeführt,
wobei für
jedes Datenobjekt der Speicherort und die Redundanz anhand der für das Datenobjekt
vorgegebenen Mindestanforderung neu festlegbar ist.
-
Ausführungsbeispiele
der Erfindung werden im Folgenden anhand einer Zeichnung näher erläutert.
-
Darin
zeigen:
-
1 ein
Schichtenmodell eines einfachen Speichersystems gemäß dem Stand
der Technik,
-
2 ein
Schichtenmodell eines RAID-Speichersystems gemäß dem Stand der Technik,
-
3 ein
Schichtenmodell eines RAID-Speichersystems mit einem Speicherpool
gemäß dem Stand
der Technik,
-
4 eine
schematische Darstellung eines Resynchronisierungsvorgangs auf einem
RAID-Speichersystem gemäß dem Stand
der Technik,
-
5 eine
schematische Darstellung eines Speichersystems,
-
6 eine
schematische Darstellung der Verwendung von Prüfsummen auf Datenströmen und Extents,
-
7 eine
schematische Darstellung eines Objekt-Datenstroms und der Verwendung
von Prüfsummen,
-
8 eine
Darstellung eines Lesezugriffs im Speichersystem,
-
9 eine
Darstellung eines Schreibzugriffs im Speichersystem,
-
10 eine
schematische Darstellung eines Resynchronisierungsvorgangs auf dem
Speichersystem, und
-
11 eine schematische Darstellung einer Graphen-Datenstruktur.
-
Einander
entsprechende Teile sind in allen Figuren mit den gleichen Bezugszeichen
versehen.
-
5 zeigt
eine schematische Darstellung eines Speichersystems. Es umfasst
eine Anzahl von Speichermedien M1 bis M3, wobei jedem der Speichermedien
M1 bis M3 ein Speichersteuermodul SSM1 bis SSM3 zugeordnet wird.
Die Speichersteuermodule SSM1 bis SSM3 werden auch als Storage Engines
bezeichnet und können
sowohl in Form einer Hardware-Komponente als auch als ein Software-Modul
ausgebildet sein. Ein Dateisystem FS1 kommuniziert mit jedem der
angeschlossenen Speichersteuermodule SSM1 bis SSM3. Durch das Speichersteuermodul
SSM1 bis SSM3 werden Informationen über das jeweilige Speichermedium
M1 bis M3 ermittelt, die zumindest eine Latenz, eine Bandbreite und
Angaben über
belegte und freie Speicherblöcke auf
dem Speichermedium M1 bis M3 umfassen. Durch das Speichersteuermodul
SSM1 bis SSM3 werden alle Informationen über das zugeordnete Speichermedium
M1 bis M3 an das Dateisystem FS1 weitergeleitet. Das Speichersystem
verfügt über einen
so genannten Object Cache, in dem Datenobjekte DO zwischengespeichert
werden. Für
jedes der Speichermedien M1 bis M3 ist im Dateisystem FS1 eine Allokationskarte
(AllocationMap) AM1 bis AM3 vorgesehen, in der für jedes auf mindestens einem der
Speichermedien M1 bis M3 gespeicherte Datenobjekt abgelegt ist,
welche Blöcke
des Speichermediums M1 bis M3 zugeordnet sind. Oberhalb des Dateisystems
FS1 ist ein virtuelles Dateisystem VFS vorgesehen, das mehrere Dateisysteme
FS1 bis FS4 verwaltet und im gemeinsamen Speichersystem abbildet
und Nutzeranwendungen UA den Zugriff darauf ermöglicht.
-
Die
Kommunikation mit dem Benutzer bzw. der Nutzeranwendung UA findet über eine
Schnittstelle im virtuellen Dateisystem VFS statt. Hierüber wird
neben der Grundfunktionalität
eines Speichersystems auch zusätzliche
Funktionalität
wie z. B. Metadatenzugriff, Zugriffskontrolle oder Speichermedienverwaltung
zur Verfügung
gestellt. Neben dieser Schnittstelle ist die Hauptaufgabe des virtuellen Dateisystems
VFS die Kombination und Verwaltung verschiedener Dateisysteme FS1
bis FS4 zu einem Gesamtsystem.
-
Im
Dateisystem FS1 bis FS4 verbirgt sich die eigentliche Logik des
Speichersystems. Hier findet die Kommunikation mit und die Verwaltung
der Speichersteuermodule SSM1 bis SSM3 statt. Das Dateisystem FS1
bis FS4 verwaltet den Object-Cache, kümmert sich um die Allozierung
von Speicherbereichen auf den einzelnen Speichermedien M1 bis M3 und
die Sicherstellung von Konsistenz- und Sicherheitsanforderungen
der Datenobjekte.
-
Die
Speichersteuermodule SSM1 bis SSM3 kapseln die direkte Kommunikation
mit dem eigentlichen Speichermedium M1 bis M3 über unterschiedliche Schnittstellen
oder Netzwerkprotokolle. Hauptaufgabe ist dabei die Sicherstellung
der Kommunikation mit dem Dateisystem FS1 bis FS4.
-
Es
kann eine von der Darstellung abweichende Anzahl von Dateisystemen
FS1 bis FSn und eine abweichende Anzahl von Speichermedien M1 bis
Mn vorgesehen sein.
-
Das
Speichersystem kann folgende Eigenschaften aufweisen:
- • Interne
Limits (exemplarisch für
64 Bit Adressraum)
- – 64
Bit pro Dateisystem FS1 bis FSn (264 Byte adressierbar)
- – 264 Dateisysteme FS1 bis FSn gleichzeitig
möglich
(integriertes virtuelles Dateisystem VFS)
- – Maximal
264 Byte pro Datei
- – Maximal
264 Dateien pro Verzeichnis
- – Maximal
264 Byte pro (optionalem) Metadatum
- – Maximal
231 Byte pro Objekt-/Datei-/Verzeichnis-Namen
- – Unlimitierte
Pfadtiefe
-
Bei
einem anderen Adressraum (beispielsweise 32 Bit) gelten entsprechend
abweichende Limits.
- • Verwaltung der Speichermedien
M1 bis Mn
- – Extent-basierte
Allokierungsstrategie innerhalb der AllocationMap
- – Unterschiedliche
Allokationsstrategien (z. B. Delayed Allocation) für unterschiedliche
Anforderungen
- – CopyOnWrite
Semantik, automatische Versionierung
- – Read-Ahead
und Write-Back Caching
- – Temporäre Objektverwaltung
für Datenobjekte DO,
die nur im flüchtigen
Arbeitsspeicher gehalten werden
- – Speichersystem
kann beliebig vergrößert und verkleinert
werden (Grow- und Shrink Funktionalität)
- – Integrierte
Unterstützung
mehrere Speichermedien M1 bis Mn pro Host
- – Clustering
für lokale
Multicast oder Peer-to-Peer basierte Netze
- • Objekte/Datenobjekte/Verzeichnisse
- – Eine
Object Location (vollständiger
Pfad) kann mehrere Objekt-Datenströme enthalten,
z. B.:
– Verzeichnis
– Datei/Objekt
– Metadatum
– Blockbasierte
Integrität
- – Transparente
Kompression einzelner Objekt-Datenströme mit frei wählbarem
und erweiterbarem Algorithmus
- – Verlinkung
von Objekt Locations untereinander
- • Allgemeine
Objektattribute
- – CreationTime
(Erstellungszeitpunkt), LastAccessTime (Zeitpunkt des letzten Zugriffs),
ModificationTime (Zeitpunkt der letzten Änderung), DeletionTime (Zeitpunkt
der Löschung)
- – Objekt-Typen
- – Editionen
- – Revisionen
- – Kopien
- – Zugriffsrechte
und ggf. Verschlüsselungs-Informationen
- – Objekt-Datenströme
– Datenstrom-Informationen
– Integritäts-Informationen
– Verschlüsselungs-Informationen
– Redundanz-Informationen
– Zusammenhängende Speicherblöcke
- • Optionale
Metadaten für
Datenobjekte
- – Erweiterbare
Datentypen durch Plug-In Schnittstelle
- – Speicherung
der Metadaten als eigenständiger Object
Stream
- – Mapping
der Metadaten in Unterverzeichnis-Strukturen (z. B. „.metadata”)
- – Plug-In
basierter Zugriff auf inline Metadaten (z. B. JPEG, MP3)
- • Virtuelles
Speichersystem
- – Gleichzeitige
Verwaltung verschiedener Dateisysteme oder verschiedener Versionen
via Mount-Points
- – Dateisystem
Konfiguration, Statistiken und Monitoring via virtueller „.vfs” und „.fs” Unterverzeichnis-Struktur
- • Datensicherheit
- – Objektbasierte
RAID Level 0, 1, 5, 6
- – Objekt-Integritäts-Prüfung: Prüfsumme für jede Struktur
und jedes Objekt (z. B. Datei)
– SHA1/MD5 oder selbst implementierbar
via Plug-In Interface
- – Verwaltungs-Prozesse
für:
– Online
Speichersystem Prüfung
– Strukturoptimierung
und Defragmentierung
– Dynamische
Umlagerung von Datenobjekten
– Überwachung der Performance
von Speichermedien (Veränderung
der Schreib-/Lesegeschwindigkeit)
– Überzählige Versionen und Kopien
löschen
sofern Platz benötigt
wird
- – Blockbasierte
Integritäts-Prüfung
- – Forward-Error-Correction
Codes (z. B. Convolution, Reed-Solomon)
- – Sicherstellung
von Konsistenz unter anderem durch mehrfaches Vorhalten von wichtigen
Verwaltungsdatenstrukturen
- – Zugriffsschutz über Nutzer-Zuordnungen
– Erweiterbar
um Zugriffskontroll-Listen
- – Verschlüsselung
aller Strukturen und Datenobjekte:
– Algorithmus wählbar pro
Datenobjekt
– AES
oder über
Plug-In Schnittstelle selbst implementierter Algorithmus
– „Secret-Sharing” und „Secret-Splicing” Modus für einzelne
Datenobjekte (Splittung von Informationen wobei die Einzelteile
keine Rückschlüsse auf
die ursprünglichen
Datenobjekte ziehen lassen.)
-
Weiter
können
folgende Optionen vorgesehen sein:
- – Assoziatives
Speichersystem:
Hierbei interessieren nicht vordergründig die
Namen der einzelnen Objekte sondern die den Objekten zugeordneten
Metadaten. Dem Benutzer kann in solchen Speichersystemen eine Metadaten-basierte
Sicht auf die Datenobjekte dargestellt werden, um so das Auffinden
oder Kategorisieren von Datenobjekten zu erleichtern.
- – Direkte
Speicherung von graphenbasierten Datenobjekten:
Die Datenobjekte
können
in Form von Graphen (stark vernetzten Daten) direkt, sicher und
versioniert gespeichert werden.
- – Offline-Backup:
Revisionen
von Objekten im Speichersystem können
vom ursprünglichen
Objekt getrennt auf ein externes Speichermedium exportiert werden.
Dieses Offline-Backup ist vergleichbar mit bekannten Backup-Strategien, wobei
im Gegensatz zum Stand der Technik das erfinderische Verfahren die Information über die
Verfügbarkeit
bzw. die Existenz von derartigen Backup-Sätzen verwaltet. Beispielsweise
kann bei Zugriff auf ein archiviertes Datenobjekt auf einem Streamerband
vorsorglich der ganze dazugehörige
Graph (verlinkte Objekte) eingelesen werden, um einen weiteren zeitaufwändigen Zugriff
auf das Streamerband zu vermeiden.
- – Hybrides
Speichersystem:
Hybride Speichersysteme nehmen eine logische und
physikalische Trennung von Speichersystem-Verwaltungsdatenstrukturen
und Nutzerdaten vor. Hierbei können
die Verwaltungsdatenstrukturen optimiert sehr leistungsfähigen Speichermedien
zugeordnet werden. Parallel dazu können die Nutzerdaten auf tendenziell
kostengünstigeren
und weniger leistungsfähigen
Speichermedien abgelegt werden.
-
6 zeigt
eine schematische Darstellung der Verwendung von Prüfsummen
auf Datenströmen DS
und Extents E1 bis E3. Die Integrität von Datenobjekten DO wird über einen
zweistufigen Ablauf sichergestellt. Stufe 1: Es gibt eine Prüfsumme PO
des Datenobjektes DO. Hierbei wird über den gesamten als Byte-Datenstrom serialisierten
Objekt-Datenstrom DS eine Prüfsumme
PO gebildet und abgespeichert. Stufe 2: Der Objekt-Datenstrom DS
selbst ist in Prüfsummenblöcke PSB1
bis PSB3 unterteilt. Jeder dieser Prüfsummenblöcke PSB1 bis PSB3 (der verschieden
von Blöcken
B des Speichermediums ist) wird mit einer Prüfsumme PB1 bis PB3 versehen.
-
Blöcke B des
Speichermediums M1 bis Mn (beispielsweise einer Festplatte) werden
intern vom Speichermedium M1 bis Mn als Organisationseinheit verwendet.
Mehrere Blöcke
B formen dabei einen Sektor. Die Sektorengröße kann üblicherweise von außen nicht
beeinflusst werden und ergibt sich durch die physikalischen Eigenschaften
von Speichermedium M1 bis Mn und Schreib-/Lese-Mechanik/Elektronik sowie durch die
interne Organisation des Speichermediums M1 bis Mn. Üblicherweise
werden diese Blöcke
B von 0 bis n durchnummeriert, wobei n der Menge der Blöcke B entspricht.
Extents E1 bis En fassen einen Block B oder mehrere Blöcke B des Speichermediums
zu Speicherbereichen zusammen. Sie werden normalerweise nicht durch
eine Prüfsumme
gesichert. Datenströme
DS sind Byte-Datenströme,
die ein Extent E1 bis En oder mehrere Extents E1 bis En umfassen
können.
Jeder Datenstrom DS ist durch eine Prüfsumme PO gesichert. Jeder
Datenstrom DS ist in Prüfsummenblöcke PSB1
bis PSBn aufgeteilt. Objekt-, Verzeichnis-, Datei-, Metadatenströme usw.
sind Spezialfälle
eines generischen Datenstroms DS und sind von diesem abgeleitet.
Prüfsummenblöcke PSB1
bis PSBn sind Blöcke
von vorab festgelegter Maximalgröße zum Zwecke
der Bildung von Prüfsummen
PB1 bis PBn über
Teilbereiche eines Datenstroms DS. In 7 wird der
Objekt-Datenstrom DS1 durch vier Prüfsummenblöcke PSB1 bis PSB4, mithin also
vier Prüfsummen
PB1 bis PB4 gesichert. Zusätzlich
dazu hat der Objekt-Datenstrom DS1 noch seine eigene Prüfsumme PO über den
gesamten Datenstrom DS1.
-
8 zeigt
eine Darstellung eines Lesezugriffs im Speichersystem, bei dem ein
Datenobjekt DO gelesen wird. Zunächst
wird über
das virtuelle Dateisystem VFS das Lesen des Datenobjektes DO unter
Angabe eines Pfades angefordert (Schritt S1). Das Dateisystem FS1
liefert anhand der Verzeichnisstruktur die Position eines INodes
(Schritt S2). Ein INode ist ein Eintrag in einem Dateisystem, der
Metadaten einer Datei enthält.
Die Object Location, verweist auf den INode, dieser verweist auf
den Speicherplatz des ObjectLocators (interne Datenstruktur, ungleich
der Objekt Location) oder auch auf mehrere Kopien davon (vgl. 8).
In einem Schritt S3 wird also durch das Dateisystem FS1 der zum
Datenobjekt DO gehörige
INode gelesen, und in einem Schritt S4 der ObjectLocator ermittelt.
In weiteren Schritten S5, S6, S7 erfolgt die Ermittlung eines Speicher-Layouts
und die Auswahl von StorageIDs sowie die finale Position und Länge auf
dem eigentlichen Speichermedium. Eine StorageID bezeichnet eine
eindeutige Identifikations-Nummer eines Speichermediums. Diese StorageID
wird ausschließlich
zur Auswahl und Verwaltung von Speichermedien genutzt. Über das
Speichersteuermodul SSM1 erfolgt dann das eigentliche Lesen der
Datenobjekte bzw. Teildaten an der ermittelten StorageID (Schritt
S8). Das Dateisystem FS1 fügt
in einem Schritt S9 gegebenenfalls mehrere Teildaten zu einem Datenstrom
DS1 zusammen und gibt diesen an das virtuelle Dateisystem VFS zurück (Schritt
S10). Dies ist beispielsweise dann erforderlich, wenn das Datenobjekt
auf mehreren Speichermedien M1 bis Mn verteilt gespeichert ist (RAID-System).
-
9 zeigt
analog eine Darstellung eines Schreibzugriffs im Speichersystem,
bei dem ein Datenobjekt DO geschrieben wird. Zunächst wird über das virtuelle Dateisystem
VFS das Schreiben des Datenobjektes DO unter Angabe eines Pfades
angefordert (Schritt S11). Das Dateisystem FS1 erzeugt und allokiert
einen INode (Schritt S12) und einen ObjectLocator (Schritt S13).
Beim Erzeugen des INodes wird ein vom virtuellen Dateisystem VFS
vorgegebenes Verzeichnis gefunden und gelesen (Schritt S15). In
diesem Verzeichnis wird vom Dateisystem FS1 die Position des INodes
unter dem ausgewählten
Namen eingetragen (Schritt S16), das INode geschrieben (Schritt
S17) und das Verzeichnis (DirectoryObject) geschrieben (Schritt
S18). Beim Erzeugen des ObjectLocators wird in einem Schritt S19
vom Dateisystem FS1 die StorageID gesetzt, die Objekt-Datenströme DS1 allokiert
(Schritt S20) und der ObjectLocator geschrieben (Schritt S21). Für jeden
zu schreibenden Objekt-Datenstrom DS1 bis DSn fordert das Dateisystem
FS1 im Schritt S22 das Schreiben an. Dies erfolgt dann durch das
Speichersteuermodul SSM1 in Schritt S23 woraufhin in Schritt S24
der erfolgte Schreibzugriff dem virtuellen Dateisystem VFS mitgeteilt
wird.
-
10 zeigt
eine schematische Darstellung eines Resynchronisierungsvorgangs
auf dem Speichersystem. Das Speichersystem umfasst im gewählten Beispiel
vier Speichermedien M1 bis M4, die zunächst jeweils eine Größe von 1
TByte aufweisen. Aufgrund der Redundanz in einem RAID-System sind
insgesamt davon 3 TByte für
Datenobjekte verfügbar.
Wird nun eines der Speichermedien M1 bis M4 durch ein größeres Speichermedium
M1 bis M4 mit der doppelten Größe 2 TByte
ersetzt, ist anschließend
ein Resynchronisierungsvorgang erforderlich, um die Redundanz wiederherzustellen,
bevor mit dem RAID-System wie gewohnt weitergearbeitet werden kann.
Der für
Datenobjekte verfügbare
Speicherplatz für
dasselbe Redundanzniveau bleibt dabei zunächst unverändert. Das zusätzliche
Terabyte steht zunächst
nur ohne Redundanz zur Verfügung. Bereits
beim Ersetzen eines weiteren der Speichermedien M1 bis M4 durch
eines mit 2 TByte stehen nach der Resynchronisierung 4 TByte redundant
zur Verfügung,
bei Austausch eines dritten der Speichermedien M1 bis M4 entsprechend
5 TByte und bei Austausch des vierten der Speichermedien 6 TByte. Die
Resynchronisierung ist nach jedem Austausch erforderlich. Dabei
müssen
keine unnötigen
Datenobjekte bewegt oder kopiert werden, da das erfindungsgemäße Speichersystem
die Information hat, welche Datenblöcke mit Datenobjekten belegt
und welche frei sind. Daher müssen
nur die Nutzdaten synchronisiert werden und nicht alle belegten
und unbelegten Blöcke
der Speichermedien M1 bis M4. Dementsprechend schneller ist die
Resynchronisierung durchführbar.
Die Redundanzniveaus (RAID-Level) sind im erfindungsgemäßen Speichersystem
nicht starr fixiert. Stattdessen wird nur festgelegt, welche Redundanzniveaus
nicht unterschritten werden dürfen.
Bei einer Resynchronisierung kann zwischen den RAID-Levels gewechselt
werden und von Datenobjekt zu Datenobjekt entschieden werden, auf
welche Speichermedien M1 bis M4 dieses mit welcher Redundanz abgelegt
wird.
-
Im
Dateisystem FS1 bis FSn können
Informationen über
jedes der Datenobjekte DO vorgehalten werden, die zumindest dessen
Bezeichner, seine Position in einem Verzeichnisbaum und Metadaten umfassen,
in denen zumindest eine Allokation des Datenobjekts DO, das heißt dessen
Speicherort auf mindestens einem der Speichermedien M1 bis Mn enthalten
ist.
-
Die
Allokation jedes der Datenobjekte DO kann durch das Dateisystem
FS1 bis FSn anhand der Informationen über das Speichermedium M1 bis
Mn und anhand vorgegebener Anforderungen an Latenz, Bandbreite und
Zugriffshäufigkeit
für dieses
Datenobjekt DO gewählt
werden.
-
Ebenso
kann eine Redundanz jedes der Datenobjekte DO anhand einer vorgegeben
Mindestanforderung bezüglich
der Redundanz durch das Dateisystem FS1 bis FSn gewählt werden.
-
Ein
Speicherort des Datenobjekts DO kann über mindestens zwei der Speichermedien
M1 bis Mn verteilt sein.
-
Als
weitere Information über
das Speichermedium M1 bis Mn kann ein Geschwindigkeitsmaß ermittelt
werden, das wiedergibt, wie schnell Zugriffe in der Vergangenheit
ausgeführt
wurden.
-
Die
Allokation der Datenobjekte DO kann Extent-basiert erfolgen.
-
Als
Speichermedium M1 bis Mn kann eine Festplatte, ein Teil eines Arbeitsspeichers,
ein Bandlaufwerk oder über
ein Netzwerk ein entferntes Speichermedium verwendet werden. Dabei
wird als Information über
das Speichermedium M1 bis Mn zumindest weitergeleitet, ob das Speichermedium
flüchtig oder
nichtflüchtig
ist.
-
Eine
Strategie des Lese- oder Schreibvorgangs, insbesondere die Read-Ahead- und Write-Back-Caching-Strategie
kann abhängig
von den Informationen über
das Speichermedium M1 bis Mn gewählt
werden.
-
Es
kann vorgesehen sein, die Datenobjekte DO zum Schreiben zu komprimieren
und nach dem Lesen zu dekomprimieren um Speicherplatz zu sparen.
Die Kompression/Dekompression kann transparent erfolgen.
-
BEZUGSZEICHENLISTE
-
-
- AM1 bis AM3
- Allokationskarte
- B
- Block des Speichermediums
- DO
- Datenobjekt
- DS
- Datenstrom
- E1 bis En
- Extent
- FS1 bis FSn
- Dateisystem
- M1 bis Mn
- Speichermedium
- PB1 bis PBn
- Prüfsumme des Prüfsummenblocks
- PO
- Prüfsumme des Datenobjekts
- PSB1 bis PSBn
- Prüfsummenblock
- SSM1 bis SSMn
- Speichersteuermodul
- S1 bis S24
- Schritt
- SP
- Speicherpool
- UA
- Nutzeranwendung
- VFS
- virtuelles Dateisystem