DE102009031923A1 - Verfahren zum Verwalten von Datenobjekten - Google Patents

Verfahren zum Verwalten von Datenobjekten Download PDF

Info

Publication number
DE102009031923A1
DE102009031923A1 DE102009031923A DE102009031923A DE102009031923A1 DE 102009031923 A1 DE102009031923 A1 DE 102009031923A1 DE 102009031923 A DE102009031923 A DE 102009031923A DE 102009031923 A DE102009031923 A DE 102009031923A DE 102009031923 A1 DE102009031923 A1 DE 102009031923A1
Authority
DE
Germany
Prior art keywords
storage medium
data
storage
information
data objects
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE102009031923A
Other languages
English (en)
Inventor
Daniel Kirstenpfad
Achim Friedland
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sones GmbH
Original Assignee
Sones GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sones GmbH filed Critical Sones GmbH
Priority to DE102009031923A priority Critical patent/DE102009031923A1/de
Priority to US12/557,301 priority patent/US20110010496A1/en
Priority to PCT/EP2010/059750 priority patent/WO2011003951A1/en
Priority to EP10728706A priority patent/EP2452275A1/de
Publication of DE102009031923A1 publication Critical patent/DE102009031923A1/de
Priority to US13/875,059 priority patent/US20130246726A1/en
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers

Abstract

Die Erfindung betrifft ein Verfahren zum Verwalten von Datenobjekten (DO) auf einer Vielzahl von Speichermedien (M1 bis Mn), wobei jedem der Speichermedien (M1 bis Mn) ein Speichersteuermodul (SSM1 bis SSMn) zugeordnet wird, wobei ein Dateisystem (FS1 bis FSn) vorgesehen ist, das mit jedem der Speichersteuermodule (SSM1 bis SSMn) kommuniziert, wobei durch das Speichersteuermodul (SSM1 bis SSMn) Informationen über das Speichermedium (M1 bis Mn) ermittelt werden, die zumindest eine Latenz, eine Bandbreite, die Anzahl der gleichzeitig möglichen parallelen Lese-/Schreibzugriffe und Angaben über belegte und freie Speicherblöcke (B) auf dem Speichermedium (M1 bis Mn) umfasen, wobei durch das Speichersteuermodul (SSM1 bis SSMn) alle Informationen über das zugeordnete Speichermedium (M1 bis Mn) an das Dateisystem (FS1 bis FSn) weitergeleitet werden.

Description

  • 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

Claims (23)

  1. Verfahren zum Verwalten von Datenobjekten (DO) auf mindestens einem Speichermedium (M1 bis Mn), wobei jedem der Speichermedien (M1 bis Mn) ein Speichersteuermodul (SSM1 bis SSMn) zugeordnet wird, wobei ein Dateisystem (FS1 bis FSn) vorgesehen ist, das mit jedem der Speichersteuermodule (SSM1 bis SSMn) kommuniziert, wobei durch das Speichersteuermodul (SSM1 bis SSMn) Informationen über das Speichermedium (M1 bis Mn) ermittelt werden, die zumindest eine Latenz, eine Bandbreite und Angaben über belegte und freie Speicherblöcke (B) auf dem Speichermedium (M1 bis Mn) umfassen, wobei durch das Speichersteuermodul (SSM1 bis SSMn) alle Informationen über das zugeordnete Speichermedium (M1 bis Mn) an das Dateisystem (FS1 bis FSn) weitergeleitet werden.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass im Dateisystem (FS1 bis FSn) 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) auf mindestens einem der Speichermedien (M1 bis Mn) enthalten ist.
  3. Verfahren nach einem der Ansprüche 1 oder 2, dadurch gekennzeichnet, dass die Allokation jedes der Datenobjekte (DO) durch das Dateisystem (FS1 bis FSn) anhand der Informationen über das Speichermedium (M1 bis Mn) und anhand vorgegebener Anforderungen an Latenz, Bandbreite, Redundanz, Datensicherheit und Zugriffshäufigkeit für dieses Datenobjekt (DO) gewählt wird.
  4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass eine Redundanz jedes der Datenobjekte (DO) anhand einer vorgegeben Mindestanforderung bezüglich der Redundanz durch das Dateisystem (FS1 bis FSn) gewählt wird.
  5. Verfahren nach einem der Ansprüche 2 bis 4, dadurch gekennzeichnet, dass mittels der Allokation ein Speicherort des Datenobjekts (DO) über mindestens zwei der Speichermedien (M1 bis Mn) verteilt wird.
  6. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass als Information über das Speichermedium (M1 bis Mn) ein Geschwindigkeitsmaß ermittelt wird, das wiedergibt, wie schnell Zugriffe in der Vergangenheit ausgeführt wurden.
  7. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Allokation der Datenobjekte (DO) Extentbasiert erfolgt.
  8. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass ein Datenobjekt (DO) erst dann kopiert wird, wenn es verändert werden soll.
  9. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass als Speichermedium (M1 bis Mn) eine Festplatte, ein FLASH-Speicher, ein Teil eines Arbeitsspeichers, ein Bandlaufwerk oder über ein Netzwerk ein entferntes Speichermedium verwendet wird, wobei als Information über das Speichermedium (M1 bis Mn) zumindest weitergeleitet wird, ob das Speichermedium (M1 bis Mn) flüchtig oder nichtflüchtig ist.
  10. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass bei einem Lesevorgang auf dem Speichermedium (M1 bis Mn) sequentiell eine größere Datenmenge als die angeforderte eingelesen und in einem flüchtigen Speicher zwischengespeichert wird.
  11. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass bei beabsichtigten Schreibvorgängen auf dem Speichermedium (M1 bis Mn) Datenobjekte mehrerer Schreibvorgänge zunächst in einen flüchtigen Speicher zwischengespeichert und anschließend sequentiell auf das Speichermedium (M1 bis Mn) geschrieben werden.
  12. Verfahren nach einem der Ansprüche 10 oder 11, dadurch gekennzeichnet, dass eine Strategie des Lese- oder Schreibvorgangs abhängig von den Informationen über das Speichermedium (M1 bis Mn) gewählt wird.
  13. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass zur Sicherung der Integrität des Datenobjekts (DO) ein Datenstrom (DS1 bis DSn), in dem das Datenobjekt (DO) enthalten ist, durch eine Prüfsumme (PO) gesichert wird.
  14. Verfahren nach Anspruch 13, dadurch gekennzeichnet, dass der Datenstrom (DS1 bis DSn) in Prüfsummenblöcke (PSB1 bis PSBn) unterteilt wird, die mit jeweils einer Prüfsumme (PB1 bis PBn) gesichert werden.
  15. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Datenobjekte (DO) zum Schreiben komprimiert und nach dem Lesen dekomprimiert werden.
  16. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass mehrere Datenobjekte (DO) und/oder Pfade graphenartig organisiert und miteinander in Beziehung gesetzt werden.
  17. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass eine Schnittstelle für Nutzeranwendungen (UA) zur Verfügung gestellt wird, mittels derer auf das Datenobjekt (DO) bezogene Funktionalitäten erweiterbar sind.
  18. Verfahren nach Anspruch 17, dadurch gekennzeichnet, dass die Metadaten der Nutzeranwendung (UA) an der Schnittstelle zur Verfügung gestellt werden.
  19. Verfahren nach einem der Ansprüche 17 oder 18, dadurch gekennzeichnet, dass die Nutzerschnittstelle für eine vom Nutzer gewählte und/oder implementierte Kompression- und/oder Verschlüsselungsanwendung vorgesehen ist.
  20. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass ein virtuelles und/oder rekursives Dateisystem (VFS) vorgesehen ist, in das mehrere Dateisysteme (FS1 bis FSn) eingebunden werden.
  21. Verfahren nach einem der Ansprüche 2 bis 20, dadurch gekennzeichnet, dass dem Datenobjekt (DO) als Information mindestens eines der Attribute Erstellungszeitpunkt, Zeitpunkt des letzten Zugriffs, Zeitpunkt der letzten Änderung, Zeitpunkt der Löschung, Objekttyp, Edition, Revision, Kopie, Zugriffsrecht, Verschlüsselungsinformation, Zugehörigkeit zu einem Objekt-Datenstrom (DS1 bis DSn) zugeordnet ist.
  22. Verfahren nach Anspruch 21, dadurch gekennzeichnet, dass dem Objekt-Datenstrom (DS1 bis DSn) als Information mindestens eines der Attribute Integrität, Verschlüsselung, zugeordnete Extents (E) zugeordnet ist.
  23. Verfahren nach einem der Ansprüche 5 bis 22, dadurch gekennzeichnet, dass bei einem Austausch eines der Speichermedien (M1 bis Mn) eine Resynchronisation durchgeführt wird, wobei für jedes Datenobjekt (DO) der Speicherort und die Redundanz anhand der für das Datenobjekt (DO) vorgegebenen Mindestanforderung neu festlegbar ist.
DE102009031923A 2009-07-07 2009-07-07 Verfahren zum Verwalten von Datenobjekten Ceased DE102009031923A1 (de)

Priority Applications (5)

Application Number Priority Date Filing Date Title
DE102009031923A DE102009031923A1 (de) 2009-07-07 2009-07-07 Verfahren zum Verwalten von Datenobjekten
US12/557,301 US20110010496A1 (en) 2009-07-07 2009-09-10 Method for management of data objects
PCT/EP2010/059750 WO2011003951A1 (en) 2009-07-07 2010-07-07 Method and device for a memory system
EP10728706A EP2452275A1 (de) 2009-07-07 2010-07-07 Verfahren und vorrichtung für ein speichersystem
US13/875,059 US20130246726A1 (en) 2009-07-07 2013-05-01 Method and device for a memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102009031923A DE102009031923A1 (de) 2009-07-07 2009-07-07 Verfahren zum Verwalten von Datenobjekten

Publications (1)

Publication Number Publication Date
DE102009031923A1 true DE102009031923A1 (de) 2011-01-13

Family

ID=43307717

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102009031923A Ceased DE102009031923A1 (de) 2009-07-07 2009-07-07 Verfahren zum Verwalten von Datenobjekten

Country Status (4)

Country Link
US (2) US20110010496A1 (de)
EP (1) EP2452275A1 (de)
DE (1) DE102009031923A1 (de)
WO (1) WO2011003951A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10110572B2 (en) 2015-01-21 2018-10-23 Oracle International Corporation Tape drive encryption in the data path

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8601310B2 (en) * 2010-08-26 2013-12-03 Cisco Technology, Inc. Partial memory mirroring and error containment
US8645615B2 (en) 2010-12-09 2014-02-04 Apple Inc. Systems and methods for handling non-volatile memory operating at a substantially full capacity
US9069468B2 (en) * 2011-09-11 2015-06-30 Microsoft Technology Licensing, Llc Pooled partition layout and representation
US9824131B2 (en) 2012-03-15 2017-11-21 Hewlett Packard Enterprise Development Lp Regulating a replication operation
US20150046398A1 (en) * 2012-03-15 2015-02-12 Peter Thomas Camble Accessing And Replicating Backup Data Objects
US9886451B2 (en) * 2013-04-30 2018-02-06 Hitachi, Ltd. Computer system and method to assist analysis of asynchronous remote replication
US10412600B2 (en) * 2013-05-06 2019-09-10 Itron Networked Solutions, Inc. Leveraging diverse communication links to improve communication between network subregions
CN105339929B (zh) 2013-05-16 2019-12-03 慧与发展有限责任合伙企业 选择用于取消重复数据的存储
US10496490B2 (en) 2013-05-16 2019-12-03 Hewlett Packard Enterprise Development Lp Selecting a store for deduplicated data
WO2015056352A1 (ja) * 2013-10-18 2015-04-23 株式会社日立製作所 ファイル管理方法
CN107111531B (zh) * 2014-10-29 2021-04-09 慧与发展有限责任合伙企业 使用分配图的数据恢复的系统、方法和存储介质
WO2016119900A1 (en) * 2015-01-30 2016-08-04 Nec Europe Ltd. Method and system for managing encrypted data of devices
US10757175B2 (en) * 2015-02-10 2020-08-25 Vmware, Inc. Synchronization optimization based upon allocation data
CN105100815A (zh) * 2015-07-22 2015-11-25 电子科技大学 基于时间序列的流式数据分布式元数据管理方法
US9747174B2 (en) * 2015-12-11 2017-08-29 Microsoft Technology Licensing, Llc Tail of logs in persistent main memory
US10037156B1 (en) * 2016-09-30 2018-07-31 EMC IP Holding Company LLC Techniques for converging metrics for file- and block-based VVols
US11436194B1 (en) * 2019-12-23 2022-09-06 Tintri By Ddn, Inc. Storage system for file system objects
KR102518287B1 (ko) * 2021-04-13 2023-04-06 에스케이하이닉스 주식회사 PCIe 인터페이스 장치 및 그 동작 방법
US11782616B2 (en) 2021-04-06 2023-10-10 SK Hynix Inc. Storage system and method of operating the same

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5481694A (en) * 1991-09-26 1996-01-02 Hewlett-Packard Company High performance multiple-unit electronic data storage system with checkpoint logs for rapid failure recovery
JP3183719B2 (ja) * 1992-08-26 2001-07-09 三菱電機株式会社 アレイ型記録装置
US5613105A (en) * 1993-06-30 1997-03-18 Microsoft Corporation Efficient storage of objects in a file system
US5654839A (en) * 1993-12-21 1997-08-05 Fujitsu Limited Control apparatus and method for conveyance control of medium in library apparatus and data transfer control with upper apparatus
US5771379A (en) * 1995-11-01 1998-06-23 International Business Machines Corporation File system and method for file system object customization which automatically invokes procedures in response to accessing an inode
US5909540A (en) * 1996-11-22 1999-06-01 Mangosoft Corporation System and method for providing highly available data storage using globally addressable memory
US6230246B1 (en) * 1998-01-30 2001-05-08 Compaq Computer Corporation Non-intrusive crash consistent copying in distributed storage systems without client cooperation
US6389460B1 (en) * 1998-05-13 2002-05-14 Compaq Computer Corporation Method and apparatus for efficient storage and retrieval of objects in and from an object storage device
US6742137B1 (en) * 1999-08-17 2004-05-25 Adaptec, Inc. Object oriented fault tolerance
JP2001209500A (ja) * 2000-01-28 2001-08-03 Fujitsu Ltd ディスク装置およびディスク装置のリード・ライト処理方法
US6912686B1 (en) * 2000-10-18 2005-06-28 Emc Corporation Apparatus and methods for detecting errors in data
US20020078466A1 (en) * 2000-12-15 2002-06-20 Siemens Information And Communication Networks, Inc. System and method for enhanced video e-mail transmission
US6785767B2 (en) * 2000-12-26 2004-08-31 Intel Corporation Hybrid mass storage system and method with two different types of storage medium
US8171414B2 (en) * 2001-05-22 2012-05-01 Netapp, Inc. System and method for consolidated reporting of characteristics for a group of file systems
US20030037187A1 (en) * 2001-08-14 2003-02-20 Hinton Walter H. Method and apparatus for data storage information gathering
US7000077B2 (en) * 2002-03-14 2006-02-14 Intel Corporation Device/host coordinated prefetching storage system
US20030204718A1 (en) * 2002-04-29 2003-10-30 The Boeing Company Architecture containing embedded compression and encryption algorithms within a data file
US7631251B2 (en) * 2005-02-16 2009-12-08 Hewlett-Packard Development Company, L.P. Method and apparatus for calculating checksums
US20080137323A1 (en) * 2006-09-29 2008-06-12 Pastore Timothy M Methods for camera-based inspections
US7908476B2 (en) * 2007-01-10 2011-03-15 International Business Machines Corporation Virtualization of file system encryption
US8489830B2 (en) * 2007-03-30 2013-07-16 Symantec Corporation Implementing read/write, multi-versioned file system on top of backup data
US7917810B2 (en) * 2007-10-17 2011-03-29 Datadirect Networks, Inc. Method for detecting problematic disk drives and disk channels in a RAID memory system based on command processing latency
US8041907B1 (en) * 2008-06-30 2011-10-18 Symantec Operating Corporation Method and system for efficient space management for single-instance-storage volumes

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Yuhu Deng: "Exploiting the performance gains of modern disk drives by enhancing data locality", Information Sciences 179 (2009), pages 2494-2511, 27th June 2009 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10110572B2 (en) 2015-01-21 2018-10-23 Oracle International Corporation Tape drive encryption in the data path

Also Published As

Publication number Publication date
US20130246726A1 (en) 2013-09-19
US20110010496A1 (en) 2011-01-13
EP2452275A1 (de) 2012-05-16
WO2011003951A1 (en) 2011-01-13

Similar Documents

Publication Publication Date Title
DE102009031923A1 (de) Verfahren zum Verwalten von Datenobjekten
DE102013215535B4 (de) Sicherung oder wiederherstellung von daten mit hilfe eines hauptspeichers und nichtflüchtiger speichermedien
DE10211606B4 (de) Datenverarbeitungseinrichtung mit einem Metadatensicherungsmanagement
DE69938378T2 (de) Kopieren von Daten in Speichersystemen
DE602005001041T2 (de) Speicherauszugssystem
DE69724834T2 (de) System für hochverfügbare datenspeicherung mit allgemein-adressiertem speicher
DE102013204972B4 (de) Hybride Sicherung und Wiederherstellung eines sehr grossen Dateisystems unter Verwendung von Metadaten-Abbildsicherung und herkömmlicher Sicherung
DE112011100112B4 (de) Pufferspeicher-platte in blitzkopie-kaskade
DE102004025922B4 (de) Mit einem Computer verbundenes Speichersystem, Computersystem und Computerprogrammerzeugnis dafür
DE60213867T2 (de) Vorrichtung zur verwaltung von datenreplikation
DE112013000900B4 (de) Bewahren von Redundanz in Datendeduplizierungssystemen unter Verwendung eines Anzeigers
DE602005002668T2 (de) Verfahren zur Datenspeicherungskapazitätzuweisung und Verwaltung unter Verwendung eines oder mehreren Datenspeicherungslaufwerken
DE102013210642B4 (de) Vorrichtung zum Wiederherstellen von Redundanz
DE112018004178T5 (de) Mehrstufige speicherung in einem verteilten dateisystem
DE112017005868T5 (de) Verwaltung von e/a-abläufen für datenobjekte in einem speichersystem
DE102013209528A1 (de) Benutzergesteuerte Replikation in einem System für synchronisierte Objektreplikationen
DE112013006655T5 (de) Speichervorrichtung und Verfahren zum Steuern der Speichervorrichtung
DE102009034651A1 (de) Prozess und Verfahren zur Abbildung von logischen Adressen auf physische Adressen in Festkörperplatten
DE102013114214A1 (de) POSIX-kompatibles Dateisystem, Verfahren zum Erzeugen einer Dateiliste und Speichervorrichtung
DE102006055964A1 (de) Verfahren und Vorrichtung zur Datensicherung
DE112008002947T5 (de) System zum automatischen Abschatten verschlüsselter Daten und von Dateiverzeichnisstrukturen
DE19937423C2 (de) Verfahren zur schnellen Datensicherung und Datenübertragung
DE602004007925T2 (de) Verwalten einer beziehung zwischen einem zielvolumen und einem quellenvolumen
DE112020005787T5 (de) Verbesserte dateisystem-unterstützung für zonen-namespace-speicher
DE112012003695T5 (de) Aufrechterhalten mehrerer Zielkopien

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final

Effective date: 20110806