DE60111039T2 - Speichersystem das aus mehreren speichergeräten besteht, mit verschiedenen fehlertoleranten verfahren - Google Patents

Speichersystem das aus mehreren speichergeräten besteht, mit verschiedenen fehlertoleranten verfahren Download PDF

Info

Publication number
DE60111039T2
DE60111039T2 DE60111039T DE60111039T DE60111039T2 DE 60111039 T2 DE60111039 T2 DE 60111039T2 DE 60111039 T DE60111039 T DE 60111039T DE 60111039 T DE60111039 T DE 60111039T DE 60111039 T2 DE60111039 T2 DE 60111039T2
Authority
DE
Germany
Prior art keywords
storage
data
file
file system
files
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.)
Expired - Lifetime
Application number
DE60111039T
Other languages
English (en)
Other versions
DE60111039D1 (de
Inventor
Alexandru Mitaru
W. Richard STALLKAMP
Michael Powell
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.)
Omneon Inc
Original Assignee
Omneon Video Networks Inc
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 Omneon Video Networks Inc filed Critical Omneon Video Networks Inc
Publication of DE60111039D1 publication Critical patent/DE60111039D1/de
Application granted granted Critical
Publication of DE60111039T2 publication Critical patent/DE60111039T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1016Continuous RAID, i.e. RAID system that allows streaming or continuous media, e.g. VOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1021Different size blocks, i.e. mapping of blocks of different size in RAID systems with parity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/103Hybrid, i.e. RAID systems with parity comprising a mix of RAID types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/104Metadata, i.e. metadata associated with RAID systems with parity

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)
  • Retry When Errors Occur (AREA)

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft nicht flüchtige elektronische Massenspeichersysteme, die auch als Sekundärspeichersysteme bekannt sind.
  • Hintergrundinformationen
  • Die Verwendung von Sekundärspeichersystemen mit verschiedenen Typen von Client-Anwendungen, einschließlich Online-Transaktionsverarbeitung und Multimedia-Speicherung, ist weit verbreitet. Transaktionsverarbeitung umfasst beispielsweise eine Kreditkartenbearbeitung, die dadurch gekennzeichnet ist, dass der Client eine relativ große Anzahl kleiner Datentransaktionen anfordert. Im Gegensatz dazu erfordert eine Multimedia-Speicherung, wie etwa der Zugriff auf Video- und Musikdateien, im Allgemeinen bedeutend größere Transaktionen. Bei einer typischen Operation sendet die Client-Anwendung eine High Level-Anfrage zum Lesen oder Schreiben einer Datei in ein Dateisystem. Das Dateisystem führt einen Dateisystemnamenplatz und mappt Dateilese-/-schreibvorgänge auf Blockzugriffe eines niedrigeren Levels. Diese Blockzugriffe werden dann in eine Speichervorrichtung eingegeben, die typischerweise Teil eines Sekundärspeichersystems ist, das ein rotierendes Magnetplattenlaufwerk aufweist. Die Speichervorrichtung besitzt typischerweise keine Kenntnis davon, ob das Dateisystem einen bestimmten Block im Plattenlaufwerk verwendet, und kann insofern als von dem Dateisystem unabhängig beschrieben werden.
  • Eine derzeit bevorzugte Vorgehensweise zum Implementieren eines Sekundärspeichersystems mit hoher Leistungsfähigkeit, großer Kapazität und geringen Kosten ist der Redundant Array of Inexpensive Disks (RAID). In einem RAID ist eine Menge von rotierenden Plattenlaufwerken (vorliegend vereinfacht als "Platten" bezeichnet) in eine einzige große, logische Platte organisiert. Jede Platte in der Menge besitzt typischerweise die gleiche Anzahl von Magnetscheiben und die gleiche Anzahl von Spuren auf jeder Magnetscheibe, wo die Daten tatsächlich gespeichert werden. Die Daten werden durch "Striping" über mehrere Platten hinweg angeordnet, um die Lese-/Schreibgeschwindigkeiten zu verbessern, und redundante Informationen werden auf den Platten gespeichert, um die Verfügbarkeit von Daten (Zuverlässigkeit) für den Fall katastrophaler Plattenausfälle zu verbessern. Das RAID-Sekundärspeichersystem kann die defekte Datendisk typischerweise wieder herstellen, ohne auf das Dateisystem zurückzugreifen, indem es jedes Datenbit in jeder Spur und Magnetscheibe der defekten Platte regeneriert (unter Verwendung seiner Kenntnis der redundanten Informationen), und daraufhin jedes solche Bit an entsprechenden Orten einer neuen Ersatzplatte speichert.
  • Es wurden mehrere RAID-Architekturen (in Industriekreisen als "Levels" bekannt) entwickelt, um verschiedene Kombinationen von Kosten, Leistungsfähigkeit und Zuverlässigkeit zur Verfügung zu stellen. Beispielsweise bei einem Level I-RAID wird ein vom Dateisystem empfangener Datenblock durch einen Eingangs-/Ausgangs (I/O)-Controller des RAID vollständig auf einer Platte gespeichert und in einer Prüfdisk repliziert. Level I verwendet daher doppelt so viele Platten wie ein nicht redundanter Plattenarray, stellt jedoch einen schnellen Zugriff (jede Platte für sich kann zum Abfragen des Blocks verwendet werden) und eine hohe Verfügbarkeit zur Verfügung. Level I wird daher häufig mit solchen Anwendungen wie Online-Transaktionsverarbeitung verwendet, bei denen Verfügbarkeit und Transaktionsgeschwindigkeit wichtiger als die Effizienz der Speicherkapazität sind.
  • In einer Level III RAID-Architektur hingegen ist der Datenblock bitweise über eine Anzahl von Datenplatten verteilt, und eine einzige Paritätsplatte wird hinzugefügt, um Ausfälle einzelner Platten aufzufangen. Die Verwendung von Parität anstelle einer Replizierung der Daten vermindert die Verfügbarkeit im Vergleich mit einer Level I-Architektur. Die Speichereffizienz ist jedoch stark verbessert, da nur eine Paritätsplatte für mehrere Datenplatten verwendet wird. Level III ist daher besonders gut für Anwendungen geeignet, welche das Speichern großer Datenmengen und einen hohen Durchsatz erfordern, wobei auf Daten zumeist sequentiell zugegriffen wird, wie etwa bei der digitalen Speicherung von Videodateien.
  • Bei den obenstehend beschriebenen RAID-Architekturen gibt es zwei Probleme. Zunächst einmal erstes verlängern sich mit einer stetig zunehmenden Speicherfähigkeit des typischen Plattenlaufwerks auch die Platten-Wiederherstellungszeiten. Da das Speichersystem während der Wiederherstellung einer defekten Platte ungeschützt ist, d.h. ein Defekt einer zweiten Platte zum Gesamtausfall des Speichersystems führt, können längere Wiederherstellungszeiten ein schwerwiegendes Problem darstellen. Dieses Problem wird noch dadurch erschwert, dass sich die Wahrscheinlichkeit eines Ausfalls bei größeren RAID-Mengen, die mehr Plattenlaufwerke beinhalten, vergrößert.
  • Ein weiteres Problem ist die verminderte Lese-/Schreibleistung bei Anwendungen wie etwa Fernsehproduktionen, bei denen große Transaktionen, die Anforderungen zum Abfragen oder Speichern von Media-Dateien wie etwa Fernsehprogrammen und Werbespotdateien beinhalten, mit kleineren Transaktionen kombiniert sind, die auf Textdateien oder "Metadata"-Dateien zugreifen, welche einen Werbespot oder ein Programm in einer bestimmten Media-Datei beschreiben. Obgleich RAID Level I einen schnellen Zugriff für sowohl große als auch kleine Transaktionen zur Verfügung stellt, resultiert das Duplizieren der großen Media-Dateien in einer ineffizienten Nutzung des Gesamtspeicherplatzes im Vergleich mit derjenigen, die mit Level III erzielt werden kann. Die Leistungsfähigkeit bei einer Verwendung von RAID Level III wird jedoch bei kleinen Transaktionen, auf die direkt zugegriffen wird, durch die Erfordernis beeinträchtigt, auf die Daten direkt über mehrere Platten und nicht nur eine einzige zuzugreifen.
  • ZUSAMMENFASSUNG
  • Eine Ausführungsform der Erfindung, die im nachfolgenden beschrieben ist, profitiert von dem Konzept der engen Kopplung einer fehlertoleranten Massenspeichervorrichtung (wie etwa einer RAID-Vorrichtung) mit einem Dateisystem zum Erzielen eines höheren Gesamtdurchsatzes in Speicher-/Datenbank-Anwendungen mit einer Mischung von großen Transaktionen mit sequentiellem Zugriff und kleinen Transaktionen mit Direktzugriff. Darüber hinaus kann die Plattenwiederherstellungszeit durch die Verwendung einer solchen Ausführungsform stark verkürzt werden.
  • Ein Verfahren gemäß einer Ausführungsform der Erfindung umfasst das Aufteilen eines logischen Speicherplatzes, der einen Speicherbereich in einer Menge von nicht flüchtigen Speichervorrichtungen repräsentiert, in nicht überlappende Speicherzuordnungseinheiten (SAUs), wobei jede SAU alle Vorrichtungen in der Menge überlagert. Unterschiedliche fehlertolerante Speichermethoden (FTSMs) werden zugewiesen, um jeweils auf Daten in den verschiedenen SAUs zuzugreifen (d.h. Daten zu lesen/schreiben). Der Zugriff auf die Daten erfolgt auf der Grundlage des jeweiligen FTSM für die SAU, auf die zugegriffen wird.
  • Bei einer besonderen Ausführungsform kann eine Zuordnungstabelle aufgrund der Tatsache, dass die Tabelle der RAID-Vorrichtung bekannt gegeben wird, sowohl vom Dateisystem als auch der RAID-Vorrichtung gemeinsam verwendet werden. Dies gestattet es dem Dateisystem, die optimale fehlertolerante Speichermethode für das Speichern eines bestimmten Datenstroms oder Datenzugriffmusters zu wählen, und gestattet es gleichzeitig der RAID-Vorrichtung, die Daten ordnungsgemäß wiederzufinden, falls eine Platte ausfällt (durch Bezugnahme auf die Zuordnungstabelle, um zu bestimmen, welche fehlertolerante Speichermethode zum Speichern der Datei verwendet wurde.) Wenn die RAID-Vorrichtung des weiteren eine defekte Platte wiederherstellt, werden nur die SAUs wiederhergestellt, von denen in der Zuordnungstabelle angegeben ist, dass sie von dem Dateisystem verwendet werden, wodurch Wiederherstellungszeit gespart wird; dies ist insbesondere vorteilhaft, wenn individuelle Plattenlaufwerke mit einer großen Kapazität verwendet werden.
  • Diese Aufgaben werden auf vorteilhafte Weise im Wesentlichen durch Anwenden der Merkmale in den nebengeordneten Ansprüchen 1 und 6 gelöst. Weitere Verbesserungen sind in den Unteransprüchen definiert.
  • Die Schrift EP-A-0 485 110 beschreibt ein System gemäß den im Oberbegriff von Anspruch 1 definierten Merkmalen.
  • KURZE BESCHREIBUNG DER ZEICHNUNG
  • Die Erfindung ist beispielhaft und auf nicht einschränkende Weise in den Figuren der beigefügten Zeichnung veranschaulicht, in denen gleiche Bezugszeichen ähnliche Elemente bezeichnen. Es ist anzumerken, dass Verweise auf "eine" Ausführungsform in der vorliegenden Offenbarung sich nicht notwendigerweise auf die gleiche Ausführungsform sowie auf mindestens eine beziehen.
  • 1 zeigt die Zuordnung von Speicherplatz in einem Plattenarray gemäß einer Ausführungsform der Erfindung.
  • 2 veranschaulicht eine logische Zuordnungstabelle.
  • 3 stellt eine Stripe-Zuordnungs-Bitmap dar.
  • 4 zeigt eine Zuordnungs-Bitmap für vier kleine Stripes.
  • 5 veranschaulicht eine Zuordnungs-Bitmap für 32 kleine Blöcke.
  • 6 stellt eine FTSM-Zuteilungs-Bitmap dar.
  • 7 zeigt, wie Schreibanforderungen von einer Schichtarchitektur, die zum Implementieren einer Ausführungsform der Erfindung verwendet werden kann, behandelt werden.
  • 8 veranschaulicht, wie Leseanforderungen bei einer Ausführungsform der Erfindung behandelt werden.
  • 9 stellt dar, wie eine Wiederherstellungsanforderung bei einer Ausführungsform der Erfindung behandelt wird.
  • 10 zeigt ein Blockdiagramm einer Hardware-/Software-Implementierung einer Ausführungsform der Erfindung.
  • 11 veranschaulicht ein Blockdiagramm eines Videonetzes, das eine Ausführungsform der Erfindung beinhaltet.
  • DETAILLIERTE BESCHREIBUNG
  • Dateisystem-Speicherzuordnung
  • Unter Bezugnahme auf 1 wird die Zuordnung von Speicherplatz in einem Plattenarray 104 beschrieben. Generell sind N Datenplatten und M Prüfplatten in dem Array vorhanden, wobei eine Raid-Menge eine Gruppe von N + M Platten bezeichnet, auf die eine Anzahl von FTSMs angewendet wird, um eine fehlertolerante Datenspeicherung in ihnen zu erhalten. Die grundlegende Speicherzuordnungseinheit (SAU) für Plattenplatz, der durch das Dateisystem definiert werden kann, wird als ein Stripe 108 bezeichnet. Der logische Speicherplatz einer RAID-Menge kann in eine beliebige Anzahl von nicht überlappenden Stripes 108, 116, und 120 unterteilt werden, wie in 1 gezeigt ist. Jeder Stripe überlagert die gleichen zwei oder mehr der gleichen Platten in der Menge, so dass jeder Stripe eine Anzahl von Sektoren auf jeder Platte in der RAID-Menge sein kann und die gleiche Startsektornummer und die gleiche Größe auf jeder Platte haben muss. Bei der besonderen Implementierung in 1 besteht der Stripe 0 aus Sektor 0 bis einschließlich Sektor 63 auf Platte 0, Sektor 0 bis einschließlich Sektor 63 auf Platte 1, usw. Die RAID-Menge kann somit als in gleiche Stripes aufgeteilt betrachtet werden. Die gleichen Größen sind aber nicht nötig, da alternativ ein Bereich von unterschiedlichen Stripe-Größen zugeordnet werden kann. Die Größe (Breite) des Stripe 108 kann so gewählt sein, dass ein ziemlich hoher Durchsatz von einer Platte erzielt wird, ohne übermäßig hohe Pufferspeichergrößen in Kauf nehmen zu müssen. Wenn der Plattensektor beispielsweise 4 kByte beträgt, dann beträgt die Stripe-Größe pro Platte 256 kByte, und Transfers auf die Platte mit dieser Größe können einen Durchsatz erzielen, der ziemlich nahe bei dem maximalen Durchsatz der Platte liegt.
  • Jeder Datei kann eine ganzzahlige Anzahl von Stripes zugeordnet werden. Der zuletzt zugeordnete Stripe könnte jedoch teilweise gefüllt sein, so dass pro Datei etwas Platz verschwendet wird, der im Durchschnitt die halbe Größe des Stripe betragen wird. Im Fall einer RAID-Menge mit 8 Datenplatten und 1 Prüf (Redundanz-) Platte beträgt der Datenabschnitt des RAID-Mengen-Stripe 8 × 256 kByte = 2 Mbyte, so dass der verschwendete Platz im Durchschnitt 1 MByte beträgt. Bei Verwendung dieses Stripe zum Speichern von komprimierten Videodateien, die im allgemeinen Hunderte von MByte bis mehrere GByte betragen, beträgt dieser verschwendete Platz viel weniger als 1% der Dateigröße. Werden jedoch andere Typen von Media-Dateien, wie etwa Audio- oder stark komprimierte Videodateien gespeichert, kann sich diese Stripe-Größe im Hinblick auf Platzverschwendung und Pufferspeicher-Anforderungen als zu groß erweisen.
  • Um kleinere Media-Dateien wie Audio- und stark komprimierte Videodateien zu akkommodieren, kann der Stripe weiter in eine Anzahl von kleineren SAUs wie etwa kleine Stripes 112115 unterteilt werden. Ein kleiner Stripe hat die gleiche Topologie wie ein Stripe 108, d.h. er bedeckt alle Daten- und Prüfplatten, besitzt jedoch nur einen Bruchteil der Größe des Stripe. Bei der besonderen Implementierung, bei der der Stripe in vier kleine Stripes unterteilt ist, wie in 1 gezeigt ist, bedeckt der kleine Stripe 1 die Sektoren 0 bis 15 auf Platte 0, die Sektoren 0 auf 15 auf Platte 1, usw. Dies gestattet eine Zugriffseinheit von 64 kByte pro Platte, wodurch ein ziemlich hoher Durchsatz (wenn auch geringer als mit Verwendung der Stripe-Zugriffseinheit) erzielt wird, während sich der verschwendete Platz pro Datei um einen Faktor Vier verringert, und auch die Direktzugriffsspeicher (RAM)-Pufferanforderungen minimiert werden.
  • Das Dateisystem unterstützt auch Non-Media-Dateien, bei denen es sich entweder um Metadata-Dateien, welche die Media-Dateien beschreiben, oder um Textdateien handelt. Diese Dateien sind tendenziell beträchtlich kleiner als Media-Dateien. Darüber hinaus, während der Zugriff auf die Media-Dateien im allgemeinen tendenziell sequentiell ist, d.h. eine lange Sequenz von Schreibvorgängen zum Aufzeichnen der Datei und eine lange Sequenz von Lesevorgängen für ihre Wiedergabe, ist der Direktzugriff auf Non-Media-Dateien üblicher. Der Stripe oder die kleine Stripe-SAU ist möglicherweise nicht zum Speichern dieser Dateien geeignet, da der verschwendete Platz zu groß sein könnte, und ein Direktzugriff auf solche SAUs im Hinblick auf den Durchsatz zu aufwendig ist. Für kleine Dateien kann daher ein dritter SAU-Typ definiert werden, der als ein kleiner Block 125 bezeichnet wird, durch Unterteilen des Stripe in eine Vielzahl kleiner Blöcke mit jeweils mehreren Sektoren. In der Ausführungsform von 1 sind 16 kleine Blöcke 124...139 im Stripe 3 vorhanden, wobei jeder kleine Block aus 4 Sektoren (16 kByte) besteht. Der kleine Block 125 ist die SAU für Daten in kleinen Dateien und für alle Dateisystem-Metadata-Informationen, d.h. die Zeigerblöcke, Dateitabellen- und Zuordnungstabellendaten.
  • Zusammenfassend wurden somit drei Typen von SAUs beschrieben, von denen jeder für einen bestimmten Dateityp und ein bestimmtes Zugriffsmuster geeignet ist: der Stripe, der zum Speichern von großen Media-Dateien verwendet wird, der kleine Stripe, der für Audiodateien oder Mediadateien mit einer hohen Kompressionsrate verwendet wird, und der kleine Block, der zum Speichern von kleinen Textdateien und Dateisystem-Metadaten verwendet wird. Eine geringere oder größere Anzahl unterschiedlicher Typen von SAUs kann durch das Dateisystem für die Anpassung an bestimmte Client-Anwendungen definiert werden. Wie im nachfolgenden beschrieben wird, werden verschiedene FTSMs zugewiesen, um auf Daten in den verschiedenen Zuordnungseinheiten zuzugreifen, was dazu beiträgt, den im Plattenarray verfügbaren Speicherplatz effizienter zu nutzen und die Leistungsfähigkeit für sowohl große als auch kleine Transaktionen, die von der Client-Anwendung angefordert werden, zu verbessern.
  • Zuteilung von fehlertoleranten Speichermethoden
  • Die FTSMs schaffen Redundanz, so dass im Falle eines Plattendefektes alle Daten wiederbeschafft werden können, und die defekte Platte wiederhergestellt werden kann, nachdem sie durch eine neue ersetzt wurde. Bei einer besonderen Ausführungsform der Erfindung wird dem Stripe und dem kleinen Stripe eine modifizierte Version von RAID Level 3 als ihre FTSM zugeteilt. Für Schreibanforderungen akkumuliert das Dateisystem genügend Daten, bevor es einen kompletten Stripe über alle Datenplatten schreibt. Sobald alle Stripe-Daten verfügbar sind, erzeugt die RAID-Vorrichtung gemäß Level III RAID eine XOR-Operation über die Stripe Daten in Abschnitten pro Platte. Im Falle eines großen Stripe wird die XOR-Funktion über N (wobei N die Anzahl von Datenplatten ist) Abschnitte mit 256 kByte Daten vorgenommen, und ein neuer Abschnitt mit 256 kByte der die Paritätsdaten darstellt, wird erzeugt. Die Paritätsdaten werden daraufhin auf die einzige (M = 1) Prüfplatte geschrieben. Im Falle des Lesens eines Datei liest die RAID-Vorrichtung einen kompletten Stripe einschließlich der Prüfplatte; falls eine Platte ausgefallen ist, können die fehlenden Daten wiederhergestellt und an den Client zurückgesendet werden mittels Durchführung der XOR-Funktion über die N – 1 Abschnitte von Stripe-Daten pro Platte und die Abschnitte von Paritätsdaten in der Prüfplatte gemäß Level III RAID. Die gleiche FTSM (vorliegend Level III RAID) wird verwendet, wenn die Platte wiederhergestellt werden soll: die N – 1 Platten und die Prüfplatte werden gelesen, XOR wird zum Wiederherstellen der fehlenden Daten durchgeführt, und die Daten werden auf die Ersatzplatte geschrieben. Dieser Algorithmus funktioniert sehr gut für vergleichsweise große Dateien, auf die sequentiell zugegriffen wird, weil die durch die Prüfplatte "verschwendete" Bandbreite nur 1/N der Bandbreite der RAID-Menge beträgt, so dass sehr hohe Durchsätze erzielt werden können.
  • Die FTSM für kleine Blöcke in dieser Ausführungsform verwendet einen Level I RAID-Algorithmus, der den Datenblock einfach auf einer Prüfplatte repliziert. Wenn ein kleiner Block von 16 kByte auf Platte 0 geschrieben wird, werden die gleichen Daten auch auf Platte 1 geschrieben (s. 1). Dieser Algorithmus verschwendet relativ viel Plattenplatz (er verwendet den doppelten Plattenplatz für eine gegebene Datenmenge). Er gestattet jedoch einen sehr schnellen Zugriff auf kleine Dateien und wiederholten Direktzugriff.
  • Die Speicherplatz-Zuordnungseinrichtungsschicht
  • Die Speicherplatz-Zuordnungseinrichtungsschicht des Dateisystems hat eine logische Zuordnungstabelle gemäß der Darstellung in 2 zum Verfolgen der Zuordnung von Speicherplatz und der FTSM-Zuteilung für jeden Stripe. Jeder Stripe wird als in Verwendung befindlich identifiziert und markiert, d.h. ob er gültige Daten enthält oder frei ist, und die ihm zugeteilte FTSM. In der besonderen Ausführungsform von 3 verfolgt eine Bitmap die Zuordnung von Stripes: wenn das Bit gesetzt ist, ist der Stripe zugeordnet, d.h. er wird von einer Anwendung oder einem Subsystem verwendet. Der Zugriff auf diese Bitmap ist schnell, weil die Stripe-Nummer der Indexeintrag in die Bitmap ist. Mehrere Stripes können zum Speichern der Daten in einer einzigen Datei nötig sein.
  • Wenn das Dateisystem einen kleinen Stripe (z.B. für kleinere Media-Dateien) zuordnen soll, ordnet es zuerst einen Stripe zu und unterteilt den Stripe dann in eine An zahl (z.B. vier) kleine Stripes, und ordnet einen kleinen Stripe zu. Das Verfolgen der Zuordnung des kleinen Stripe wird mit einer separaten Tabelle wie etwa der in 4 gezeigten Bitmap bewerkstelligt. Diese kann als eine Hash-Tabelle organisiert sein (Hash-Verarbeitung wird an den Bits niedrigerer Ordnung der Stripe-Nummer vorgenommen). Ein Eintrag in diese Tabelle existiert nur solange, wie ein Stripe teilweise als kleine Stripes zugeordnet ist. Wenn alle vier kleinen Stripes zugeordnet sind, wird der Eintrag gelöscht. Wenn alle vier kleinen Stripes wieder frei sind, wird der entsprechende in der Stripe-Zuordnungs-Bitmap (s. 3) als nicht in Verwendung befindlich markiert. Eine ähnliche Vorgehensweise kann verwendet werden, um kleine Blöcke zu verfolgen. Wenn ein kleiner Block benötigt wird, wird ein Stripe zugeordnet und gemäß der Darstellung in der Bitmap von 5 in eine Anzahl von kleinen Blöcken unterteilt. Ein Eintrag in eine Hash-Tabelle wird erzeugt, um die Zuordnung dieser kleinen Blöcke zu verfolgen. Die Tabelle behält den Eintrag nur, während der Stripe teilweise als kleine Blöcke zugeordnet ist.
  • Es ist zu beachten, dass das Dateisystem nicht vorausgehend definieren oder festlegen muss, wie viel von dem gesamten Plattenplatz als Stripes oder kleine Stripes oder kleine Blöcke verwendet werden kann. Die Zuordnung ist dynamisch, wobei die verschiedenen Zuordnungstypen der Basis-SAU entnommen werden, und bei Freisetzung wieder zu Stripes werden.
  • In einer besonderen Ausführungsform der Erfindung wird die Zuteilung einer FTSM für jegliche SAU unter Verwendung einer zweiten Bitmap durchgeführt, die ihren Index parallel zur Stripe-Zuordnungs Bitmap von 2 erhält. Dies ist in 6 gezeigt, wo die Bitmap den Redundanzalgorithmus definiert, der auf jeden großen Stripe angewendet wird. Bei einer gezeigten besonderen Implementierung werden nur zwei verschiedene Redundanzalgorithmen verwendet, so dass ein Eintrag mit einem einzigen Bit für eine Unterscheidung zwischen Algorithmen ausreicht. Ein Bit, das gleich Null ist, bedeutet, dass die entsprechende SAU (z.B. ein Stripe) den Level III RAID-Redundanzalgorithmus anwendet; wenn das Bit Eins ist, werden die Daten in der SAU unter Verwendung eines Level I RAID-Algorithmus gespeichert: dies bedeutet, dass der Stripe zu kleinen Blöcken gemacht wurde, wobei jeder kleine Block, der von der RAID-Vorrichtung auf eine Datenplatte geschrieben wird, auf einer Prüfplatte repliziert wird. Implementierungen, die mehr als zwei Redundanzalgorithmen anwenden, sind möglich und können entweder eine Mehrzahl von Bit maps oder eine Mehrzahl von Bits pro Eintrag in die FTSM Bitmap von 6 verwenden.
  • Die SAU-Zuordnungs-Bitmap und die FTSM-Zuteilungs-Bitmap werden von dem Dateisystem und der RAID-Vorrichtung gemeinsam verwendet. Die Vorteile dieses Ansatzes umfassen:
    • • Das Dateisystem kann die FTSM für eine spezifischen Datenstrom und/oder ein spezifisches Datenzugriffsmuster, die bzw. das vom Client empfangen werden, wählen. Die RAID-Vorrichtung mit Zugriff auf die FTSM-Zuteilungs-Bitmap in der Speicherplatz-Zuordnungseinrichtungsschicht des Dateisystems kann die SAUs ordnungsgemäß wiederherstellen.
    • • Wenn die RAID-Vorrichtung eine defekte Platte wiederherstellen soll, muss sie nur die SAUs wiederherstellen, die als durch das Dateisystem in Verwendung befindlich markiert sind; die unbenutzten SAUs brauchen nicht wiederhergestellt zu werden. Dies verkürzt die Wiederherstellungszeit beträchtlich, falls das Dateisystem nicht voll ist und die Platten jeweils eine relativ hohe Speicherfähigkeit besitzen.
  • Nach dieser Beschreibung der Struktur des Speichersystems, das verwendet wird, um hohe Durchsätze mit Anwendungen zu erzielen, die eine Mischung aus kleinen und großen Speichertransaktionen beinhalten, werden nun mehrere Verfahren für die Abwicklung der Transaktionen beschrieben.
  • Abwicklung von Client-Anforderungen
  • Als Beispiel dafür, wie die Wechselwirkung zwischen den verschiedenen Schichten des Dateisystems und der RAID-Vorrichtung funktioniert, sei die in 7 gezeigte Schichtenarchitektur betrachtet. Die Schicht-zu-Schicht-Wechselwirkung, die beim Abwickeln einer bestimmten Client-Anforderung einstellt, in diesem Fall entweder ein fsMediaWrite oder fsWrite, wird nun beschrieben. Die Abwicklung zusätzlicher Client-Anforderungen fsMediaRead und fsRead, sowie einer Wiederherstellungsanforderung sind in 8 bzw. 9 gezeigt, die weiter unten beschrieben sind. Das Folgende beschreibt allgemein die relevanten Funktionen einer jeden Schicht, zusammen mit beispielhaften Implementierungen für jede Schicht, gefolgt von der Abwicklung von beispielhaften Client-Anforderungen.
  • Beginnend mit 7 ist gezeigt, dass jede Schicht der darüberliegenden Schicht die Abwicklung zur Verfügung stellt und von der darunterliegenden Schicht Aktionen anfordert. Eine Client-Anwendung 752 beinhaltet Aufgaben, die ein Dateisystem 754 verwenden, um Media- oder Non-Media-Daten zu lesen/schreiben. Eine Videospielervorrichtung als ein Softwareprogramm ist ein Beispiel für einen Client des Dateisystems.
  • Das Dateisystem 754 mappt Dateilese-/-schreibvorgänge auf bestimmte SAU-Zugriffe. Das Dateisystem 754, und insbesondere die Speichersystemzuordnungseinrichtung 758, ist dafür zuständig, die Zuordnungs- und Zuteilungsbitmaps gemäß der obenstehenden Beschreibung der 36 zu führen. Das Dateisystem 754, und insbesondere eine Dateisystem-Schnittstelle 756, stellt ihren Clients die folgenden Grundelemente zur Verfügung (zusätzlich zu den typischen Dateisystemgrundelementen wie open(), close(), stat(), usw.):
    • • fsRead() und fswrite() für den Zugriff auf Dateien, die als kleine Blöcke zugeordnet sind
    • • fsMediaRead() und fsMediaWrite() für den Zugriff auf Dateien, die als Stripes zugeordnet sind.
  • Eine RAID-Vorrichtungsschicht 760 stellt dem Dateisystem Grundelemente zum Lesen und Schreiben von Datenblöcken auf den Plattenarray 104 zur Verfügung. Diese Schicht ist auch zuständig für das Erzeugen von Redundanzinformationen für die verschiedenen Zugriffsarten, z.B. Paritätsinformationen für Stripe-Zugriff und Datenreplizierung für kleine Blöcke. Die RAID-Vorrichtung 760 hat auch noch eine separate Aufgabe, die dafür zuständig ist, eine defekte Platte wiederherzustellen. Falls eine Platte ausfällt, ist die RAID-Vorrichtung in der Lage, die Daten wiederzufinden und im Wesentlichen die in Verwendung befindlichen Abschnitte (SAUs) der defekten Platte zu duplizieren, wenn die Platte ersetzt wird. Die relevanten Grundelemente, welche die RAID-Vorrichtung 760 dem Dateisystem 754 zur Verfügung stellt, umfassen:
    • • raidSmallBlockRead() und raidSmallBlockWrite() für den Zugriff auf kleine Blöcke
    • • raidStripeRead() und raidStripeWrite() für den Zugriff auf Stripes
  • Die Low-Level-Zugriffsschicht 762 führt Low Level-Zugriff auf Platten durch, um die von der RAID-Vorrichtung 760 angeforderten Higher Level-Plattenblockoperati onen zu implementieren. Diese Schicht erteilt auch solchen Low Level-Zugriffen Priorität. Die relevanten Grundelemente, die der RAID-Vorrichtung zur Verfügung gestellt werden, umfassen:
    • • fcReadBlock() und fcWriteBlock() für den Zugriff auf Datenblöcke
  • Die Low-Level-Zugriffsschicht 762 greift auf die physikalischen Schichten zu, welche der Plattenarray 104 aufweist. Die Platten des Array 104 sind mit einem Bus verbunden und der Zugriff auf sie findet über einen Faserkanaltreiber, einen Kleincomputersystem-Schnittstellen (SCSI)-Controller, oder andere I/O-Controller aus herkömmlichen RAID-Systemen statt.
  • Weiterhin unter Bezugnahme auf 7, wenn der Videospieler (Client-Programm 752) seine logische Einheit von Daten akkumuliert hat (für den Videospieler ist dies ein Frame von komprimiertem Digitalvideo), gibt er ein fsMediaWrite() aus. Die Dateisystem-Schnittstelle 756 überprüft auf nicht in Verwendung befindliche SAUs (vorliegend Stripes) durch Abfragen der Bitmaps und Hash-Tabellen, die von der Speicherplatz-Zuordnungseinrichtung 758 geführt werden. Falls nicht in Verwendung befindliche Stripes vorhanden sind, akzeptiert das Dateisystem 754 über seine Client-Schnittstelle 756 die in der fsMediaWrite-Anfrage identifizierten Daten und überprüft, ob es genügend Daten für das Schreiben eines kompletten Stripe hat (die Stripe-Größe ist durch die Anzahl von Datenplatten N in der RAID-Menge definiert). Falls nicht, geht es zurück und wartet darauf, dass der Client 752 mehr Daten schreibt. Sobald genügend Daten empfangen wurden, um einen kompletten Stripe zu überlagern, ruft die Dateisystem-Schnittstelle 756 die RAID-Vorrichtung mit raidStripeWrite(). Die RAID-Vorrichtung 760 berechnet die Prüfinformationen nach dem Bestimmen der FTSM (vorliegend RAID III), die dem Stripe zugeteilt ist, indem sie auf die geeignete Tabelle in der Speicherplatz-Zuordnungseinrichtung 758 zugreift (s. 2). Nach dem Erzeugen der Prüfinformationen (z.B. XOR-Block) ruft die RAID-Vorrichtung 760 einen Faserkanaltreiber in der Low-Level-Zugriffsschicht 762, um die Daten und Prüfinformationen in den Plattenarray zu schreiben. Hier ist anzumerken, dass N fcWriteBlock()-Befehle entsprechend an N Datenplatten ausgegeben werden können.
  • 8 veranschaulicht, wie Leseanforderungen von der Mehrschichtarchitektur, die eine eng gekoppelte RAID-Vorrichtung und Dateisystem aufweist, behandelt werden können. Die Operation beginnt damit, dass das Client-Programm 752 einen Lese vorgang anfordert, in diesem Fall fsMediaRead oder fsRead. Als Antwort identifiziert das Dateisystem 754 die SAUs, die vorausgehend zugeteilt wurden, um die von dem Client angeforderten Daten zu speichern. Es ist anzumerken, dass die SAU ein oder mehrere Stripes oder kleine Stripes sein kann (falls die Client-Anforderung ein fsMediaRead ist), oder sie können kleine Blöcke sein (falls die Client-Anforderung fsRead ist). In jedem dieser Szenarios ruft die Dateisystem-Schnittstelle 756 nach dem Erhalt der SAU-Nummern die RAID-Vorrichtung 760 mit einer Anforderung, die jeweiligen SAU-Nummern zu lesen. Daraufhin liest die RAID-Vorrichtung 760 gemäß herkömmlicher Vorgehensweisen Blöcke von Daten, die den SAUs entsprechen, und die Daten werden von einer Schicht zur nächsten an die Dateisystem-Schnittstelle 756 und letztendlich an das Client-Programm 752 zurückgesendet. Es ist anzumerken, dass es für die RAID-Vorrichtung 760 nicht unbedingt erforderlich ist, die FTSM zu identifizieren, die derjenigen SAU zugeteilt wurde, von der gerade gelesen wird.
  • 9 zeigt die Operationen, die vom Wiederherstellen einer defekten Platte umfasst werden. Nachdem die defekte Platte mit einer neuen ersetzt wurde, fragt die RAID-Vorrichtung 760 das Dateisystem (insbesondere die Speicherplatz-Zuordnungseinrichtung 758) ab, um herauszufinden, welche SAUs (z.B. Stripes) wiederhergestellt werden müssen. Das Dateisystem sendet eine Liste von wiederherzustellenden Stripes und die FTSM für jeden Stripe zurück, wobei die Stripe-Zuordnungs-Bitmap von 3 und die FTSM-Bitmap von 6 verwendet werden können, um diese Liste zu erzeugen. Die RAID-Vorrichtung 760 stellt daraufhin jeden Stripe in dieser Liste wieder her, indem sie die korrekte FTSM verwendet. Somit stellt die RAID-Vorrichtung nur diejenigen Stripes wieder her, die von dem Dateisystem als in Verwendung befindlich angegeben wurden.
  • 10 veranschaulicht ein Blockdiagramm der Hardware und der Software, die verwendet werden kann, um ein eng gekoppeltes Speichersystem und Dateisystem gemäß einer Ausführungsform der Erfindung zu implementieren. Der Plattenarray 104 weist eine Anzahl von Speichervorrichtungen 904 auf, die individuelle rotierende Plattenlaufwerkeinheiten aufweisen, in denen die Speichermedien eine Anzahl von Magnetplattenscheiben mit Sektoren zum Speichern und Lesen der Daten als elektrische Impulse aufweist. Diese Speichervorrichtungen 904 können alle mit einem seriellen Bus (wie etwa Faserkanal, FC) 908 mit einer Anzahl von Schleifen 906 verbunden sein. Der Fibre Channel Loop ist ein physikalischer serieller Bus, der verwendet wird, um Platten mit einem I/O-Controller 910 zu verbinden. Er kann aus Kupferdraht (für elektrische Verbindungen) oder aus Plastik-/Glasfasern (für optische Verbindungen) bestehen. Andere Datenkommunikationskanäle, die für einen Hochgeschwindigkeitszugriff auf jede Speichervorrichtung 904 geeignet sind, können alternativ verwendet werden. Der I/O-Controller 910 (vorliegend speziell für Fibre Channel) dient als die Schnittstelle zwischen dem Bus 908 und der Hardware-/Softwarekombination, welche die RAID-Vorrichtungsschicht 760 und die Dateisystemschichten implementiert. Dieser Controller ist eine Hardware-mikrocodierte Vorrichtung, die ein Low Level-Plattenprotokoll implementiert und die an die bzw. von den individuellen Platten transferierten Daten formatiert. Ein Fibre Channel I/O-Driver 912 implementiert das Zugriffsprotokoll auf die Platten. Er gibt Lese-/Schreib-Plattenbefehle aus und gibt die Daten zur und von der RAID-Vorrichtungssoftware 916 weiter. Die RAID-Vorrichtungssoftware 916 ist für das Anwenden der FTSMs zuständig. Für Paritätsberechnungen wird der XOR-Dienst 914 verwendet, der einen separaten Prozessor mit einer spezialisierten Hardware-XOR-Funktion aufweist. Die SAU-Managersoftware 920 führt die Zuordnungs-Bitmaps und die FTSM-Bitmaps für die verschiedenen SAUs einschließlich großer und kleiner Stripes und kleiner Blöcke. Der Name Space Manager 924 löst einen Dateinamen auf und mappt ihn auf einen Dateibeschreiber. Im Falle einer bereits vorhandenen Datei enthält der Dateibeschreiber eine Liste der von dieser Datei verwendeten SAUs. Beim Erzeugen einer neuen Datei werden neue SAUs vom SAU-Manager 920 angefordert und der Datei zugeteilt.
  • Es ist anzumerken, dass die Funktionalität des Dateisystems 754 und der RAID-Vorrichtung 760 gemäß der obenstehenden Beschreibung durch einen oder mehrere Prozessoren implementiert werden können (auf die kollektiv als "ein Prozessor" Bezug genommen werden kann), welche Anweisungen ausführen, die auf einem maschinenlesbaren Medium gespeichert sind. Diese Anweisungen können auf einem oder mehreren Festkörper-Speicherchips (z.B. RAMs), nicht flüchtigen Massenspeichervorrichtungen mit eingebauten Controllern (z.B. Plattenlaufwerken), oder tragbaren, nicht flüchtigen Speichervorrichtungen (z.B. optischen Compact Disks) gespeichert sein.
  • 11 zeigt eine besondere Anwendung der verschiedenen Ausführungsformen des eng gekoppelte Sekundärspeichersystems und Dateisystems gemäß der obenstehenden Beschreibung. Gezeigt ist eine Collaborative Production Application, die einen gleichzeitigen Zugriff auf alle Media-Dateien gestattet, die von Produktionsteams benötigt werden, die entweder einen Werbespot, ein Musikvideo oder eine Nachrichtensendung produzieren. Ein solches Netz beinhaltet eine Anzahl von flexiblen Komponenten einschließlich eines Direktors 704, bei dem es sich um einen Speicherarray-Controller sowie ein verteiltes Dateisystem handelt. Der Direktor verwaltet das Aufzeichnen und Abfragen von Daten zu und von einem Speicherarray 708. Der Speicherarray 708 kann der obenstehend beschriebene Plattenarray 104 sein. Ein Schalter 712, bei dem es sich um einen inhaltserkennenden Paketschalter handelt, ist in der Lage, Datenpakete zu verbinden und zu routen, die verschiedene Typen von Daten einschließlich komprimierter Video- und Werbespot-/Programmbeschreiberdateien umfassen. Nichtlineare Editoren 716 können direkt mit dem Schalter 712 verbunden sein. Vorrichtungen ohne Ports, die ursprünglich dem Netz zugehören, können über eine Schnittstelle 718 angeschlossen werden. Die Schnittstelle 718 kann digitales Video und Audio in verschiedenen unterschiedlichen Formaten, die komprimiert oder nicht komprimiert sein können, codieren. Beispiele für Vorrichtungen, die Daten über eine jeweilige Schnittstelle 718 zur Verfügung stellen und empfangen können, umfassen einen Videorecorder (VTR) 732, einen Satellitenempfänger 728, eine Videokamera 724, und eine Sendestation 722. Schließlich konfiguriert und verwaltet ein Manager 740 die gesamte Anwendung und stellt sicher, dass bestimmte Dateitypen an die richtige Schnittstelle geroutet werden, und stellt des weiteren Sicherheit und Zugangsrechte für das Material im Netz zur Verfügung. Eine solche Anwendung kann die VIDEO AREA NETWORK-Infrastruktur für die Produktion und Verteilung von Videos sein, die von Omneon Video Networks, Inc. zur Verfügung gestellt werden.
  • Die verschiedenen Ausführungsformen des eng gekoppelten Sekundärspeichersystems und Dateisystems gemäß der vorliegenden Erfindung können in der Anwendung durch Konfigurieren des Direktors 704 zum Implementieren des Dateisystems und der RAID-Vorrichtung einer Ausführungsform der obenstehend beschriebenen Erfindung implementiert werden. In diesem Fall fungieren der Direktor 704 und der Speicherbereich 708 als Knoten in dem in 11 gezeigten Netz, in dem Client-Anfragen von einem der nichtlinearen Editoren 716 stammen können, die als separate Knoten in dem Netz angenommen sind.
  • Zusammenfassend wurden verschiedene Ausführungsformen der Erfindung beschrieben, die auf ein eng gekoppeltes Sekundärspeichersystem und Dateisystem gerichtet sind. In der vorausgegangenen Beschreibung wurde die Erfindung mit Bezug auf spezielle beispielhafte Ausführungsformen beschrieben. Es ist jedoch ersichtlich, dass verschiedenen Modifikationen und Änderungen daran vorgenommen werden können, ohne von dem weiteren Grundgedanken und Schutzbereich der Erfindung gemäß den beigefügten Ansprüchen abzuweichen. Beispielsweise sind die genannten zahlenmäßigen Größen von RAID-Menge, Stripe, und kleinem Stripe rein beispielhaft und werden verwendet, um ein leichteres Verständnis der Erfindung zu ermöglichen. Des Weiteren kann die besondere Ausführungsform, welche die Kombination von Level I und Level III RAID für die verschiedenen FTSMs anwendet, als Alternative mit SAUs konfiguriert werden, denen zusätzliche andere RAID-FTSMs zugeteilt sind (es gibt gegenwärtig sieben verschiedene RAID-Levels). Eine weitere Alternative wäre es, ein Paar von anderen FTSMs als Level I und Level III RAID zu verwenden. Darüber hinaus, obgleich der RAID und seine individuellen Magnetplattenlaufwerke mit eingebauten Controllern als eine gegenwärtig bevorzugte Hardwareplattform für das Sekundärspeichersystem dienen, steht zu erwarten, dass auch andere Typen von Sekundärspeichersystemen, z.B. solche, die keine rotierenden Magnetplattenlaufwerke verwenden, wie etwa optische Lese-/Schreib-Speicherplatten (jedoch keine langsameren Systeme wie magnetische oder optische Bandlaufwerke, Lochkarten oder Papierband), ebenfalls von dem obenstehend beschriebenen, eng gekoppelten Sekundärspeicher- und Dateisystem profitieren können. Die Beschreibung und die Zeichnung sollten daher veranschaulichend und nicht einschränkend aufgefasst werden.

Claims (15)

  1. System mit: – einer Massenspeichervorrichtung zum Zugriff auf eine Speicherzuordnungseinheit, die eine Vielzahl nicht flüchtiger Speichervorrichtungen des Systems überlagert, und – einem Dateisystem zum Empfangen einer Anfrage zum Schreiben von Daten von einem Client-Programm, dadurch gekennzeichnet, dass – das Dateisystem eine Speicherplatz-Zuordnungseinrichtung aufweist, die eine nicht benutzte Speicherzuordnungseinheit identifizieren kann, in die die Daten geschrieben werden können, wobei das Dateisystem die Massenspeichervorrichtung beauftragt, die Daten in die identifizierte, nicht benutzte Speicherzuordnungseinheit zu schreiben und verschiedene Arten von Speichereinheiten verschiedenen Arten von Dateien zuzuordnen, – wobei die Massenspeichervorrichtung die Speicherplatz-Zuordnungseinrichtung beauftragen soll zu identifizieren, welche einer Vielzahl unterschiedlicher, vordefinierter fehlertoleranter Speichermethoden der identifizierten, nicht benutzten Speicherzuordnungseinheit zugeteilt wird, bevor Daten in die identifizierte, nicht benutzte Speicherzuordnungseinheit gemäß der zugeteilten fehlertoleranten Speichermethode geschrieben werden, – wobei die Massenspeichervorrichtung Informationen darüber erhält, welche Speichermethode für eine gegebene Speichereinheit verwendet werden soll, wenn eine defekte nicht flüchtige Speichervorrichtung wiederhergestellt wird.
  2. System nach Anspruch 1, wobei die Vielzahl verschiedener vordefinierter fehlertoleranter Speichermethoden zwei unterschiedliche RAID Level I-VII aufweist.
  3. System nach einem der Ansprüche 1–2 in Kombination mit anderen Knoten eines Computernetzes, von dem das System ein Knoten ist, wobei das Computernetz eine Collaborative Production Anwendung ist, bei der auf Media- und Non-Media-Dateien, die in dem System gespeichert sind, von Videoproduktionsteams zugegriffen werden kann.
  4. System nach einem der Ansprüche 1–3, wobei das Dateisystem das Speichern und Abrufen von Media- und Non-Media-Dateien unterstützt, wobei die Media-Dateien größer sind als die Non-Media-Dateien, wobei der Zugriff auf eine Media-Datei entweder (1) eine Folge von Speicherzuordnungseinheit-Schreibbefehlen zum Aufzeichnen der Media-Datei oder (2) eine Folge von Speicherzuordnungseinheit-Lesebefehlen zum Abspielen der Media-Datei umfasst, und der Zugriff auf Non-Media-Dateien entweder (1) relativ zufällige Speicherzuordnungseinheit-Schreibbefehle oder (2) relativ zufällige Speicherzuordnungseinheit-Lesebefehle umfasst, und wobei von dem Dateisystem für erste Speicherzuordnungseinheiten, die eine Media-Datei speichern sollen, eine andere fehlertolerante Speichermethode und Speicherzuordnungseinheit-Größe zugeteilt wird als für zweite Speicherzuordnungseinheiten, die eine Non-Media-Datei speichern sollen; und wobei die Massenspeichervorrichtung auf die ersten und zweiten Speicherzuordnungseinheiten zugreifen soll, von denen jede dieselbe Vielzahl nicht flüchtiger Speichervorrichtungen des Systems überlagert, um die Media- und Non-Media-Dateien zu speichern und abzurufen, unter Steuerung des Dateisystems, wobei die Massenspeichervorrichtung fordern soll, dass das Dateisystem identifiziert, welches einer Vielzahl unterschiedlicher fehlertoleranter Speichermethoden, die in dem System vordefiniert sind, einer Speicherzuordnungseinheit zugeteilt wird, wenn die Massenspeichervorrichtung in die Speicherzuordnungseinheit schreiben und daraus auslesen soll.
  5. System nach einem der Ansprüche 3–4, wobei die Media-Dateien komprimierte Videodateien sind und die Non-Media-Dateien entweder Meta-Data-Dateien oder Textdateien sind, wobei die Meta-Data-Dateien und die Textdateien Beschreibungen der Videodateien enthalten.
  6. Computerprogramm, das in einem maschinenlesbaren Medium gespeichert und insbesondere an das System gemäß Anspruch 1 angepasst ist, und das, wenn von einem Prozessor darauf zugegriffen wird, veranlasst, dass ein Dateisystem (a) erste und zweite unterschiedliche fehlertolerante Speichermethoden zuteilt, um jeweils auf Daten in einer ersten und zweiten Art von Speichereinheiten über eine redundante Menge nicht flüchtiger Speichervorrichtungen zuzugreifen, wobei die erste Art größer ist als die zweite Art, (b) das Speichern einer Videodatei in der redundanten Menge ermöglicht, indem für diese Videodatei Speichereinheiten der ersten Art und nicht der zweiten Art zugeteilt werden, (c) das Speichern einer Meta-Data-Datei in der redundanten Menge ermöglicht, indem für diese Meta-Data-Datei Speichereinheiten der zweiten Art und nicht der ersten Art zugeteilt werden, und (d) einer fehlertoleranten Massenspeichervorrichtung Informationen zur Verfügung stellt, welche fehlertolerante Speichermethode für eine gegebene Speichereinheit verwendet werden soll, wenn eine defekte nicht flüchtige Speichervorrichtung wiederhergestellt wird.
  7. Programm nach Anspruch 6, das weitere Daten enthält, die das Dateisystem veranlassen, einen logischen Speicherplatz, der einen Speicherbereich in der redundanten Menge von nicht flüchtigen Speichervorrichtungen repräsentiert, in die Speichereinheiten der ersten und zweiten Art zu unterteilen.
  8. Programm nach Anspruch 7, das weitere Daten enthält, die das Dateisystem veranlassen, den logischen Speicherplatz in eine dritte Art von Speichereinheit zu unterteilen, die kleiner ist als die erste Art und größer als die zweite Art, und die das Speichern entweder einer komprimierten Videodatei oder einer komprimierten Audiodatei in der redundanten Menge durch Zuteilen, für die komprimierte Video- oder Audiodatei, von Speichereinheiten der dritten Art und nicht der ersten und zweiten Art ermöglichen.
  9. Programm nach Anspruch 8, das weitere Daten enthält, die das Dateisystem veranlassen, eine dritte fehlertolerante Speichermethode zuzuteilen, um auf Daten in der dritten Art von Speichereinheiten zuzugreifen.
  10. Programm nach einem der Ansprüche 6–9, wobei die erste fehlertolerante Speichermethode ein RAID Level III und die zweite fehlertolerante Speichermethode ein RAID Level I ist.
  11. Programm nach einem der Ansprüche 6–10, das weitere Daten enthält, die das Dateisystem veranlassen, mit einem Anwendungsprogramm über ein Computernetz zu kommunizieren, in dem die redundante Menge Teil eines Speicherknotens ist und das Anwendungsprogramm in einem Hostknoten läuft.
  12. Programm nach einem der Ansprüche 6–10, das weitere Daten enthält, die das Dateisystem veranlassen, mit einem Anwendungsprogramm über ein Computernetz zu kommunizieren, das eine Collaborative Production Anwendung bildet, in der die redundante Menge Teil eines Speicherknotens ist, der Media-Dateien speichert, wobei das Anwendungsprogramm von einem Mitglied eines Teams zum Produzieren eines Werbespots, eines Musikvideos oder einer Nachrichtensendung verwendet werden soll.
  13. Programm nach einem der Ansprüche 6–12, das weitere Daten enthält, die das Dateisystem veranlassen, der fehlertoleranten Massenspeichervorrichtung Informationen darüber zur Verfügung zu stellen, welche Speichereinheiten in Benutzung sind, so dass nur diejenigen Speichereinheiten, die in Benutzung sind und die eine defekte der nicht flüchtigen Speichervorrichtungen überlagern, wiederhergestellt werden müssen.
  14. Programm nach einem der Ansprüche 6–12, das weitere Daten enthält, die das Dateisystem veranlassen, der fehlertoleranten Massenspeichervorrichtung Informationen darüber zur Verfügung zu stellen, welche fehlertolerante Speichermethode zum Wiederherstellen von Teilen des logischen Speicherplatzes, die die defekte Speichervorrichtung überlagern, verwendet werden soll.
  15. Programm nach einem der Ansprüche 6–10, das weitere Daten enthält, die das Dateisystem veranlassen, mit einem Anwendungsprogramm über ein Computernetz zu kommunizieren, das eine Collaborative Production Anwendung bildet, bei der die redundante Menge Teil eines Speicherknotens ist, der Media-Dateien speichert, wobei das Anwendungsprogramm in einem Hostknoten läuft, der von einem Mitglied eines Teams verwendet werden kann, das entweder einen Werbespot, ein Musikvideo oder eine Nachrichtensendung produziert.
DE60111039T 2000-04-07 2001-03-28 Speichersystem das aus mehreren speichergeräten besteht, mit verschiedenen fehlertoleranten verfahren Expired - Lifetime DE60111039T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US544946 1983-10-24
US09/544,946 US6571351B1 (en) 2000-04-07 2000-04-07 Tightly coupled secondary storage system and file system
PCT/US2001/010526 WO2001077829A2 (en) 2000-04-07 2001-03-28 Multi-device storage system with differing fault tolerant methodologies

Publications (2)

Publication Number Publication Date
DE60111039D1 DE60111039D1 (de) 2005-06-30
DE60111039T2 true DE60111039T2 (de) 2006-05-04

Family

ID=24174233

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60111039T Expired - Lifetime DE60111039T2 (de) 2000-04-07 2001-03-28 Speichersystem das aus mehreren speichergeräten besteht, mit verschiedenen fehlertoleranten verfahren

Country Status (6)

Country Link
US (1) US6571351B1 (de)
EP (1) EP1272931B1 (de)
AT (1) ATE296464T1 (de)
AU (1) AU2001249741A1 (de)
DE (1) DE60111039T2 (de)
WO (1) WO2001077829A2 (de)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6675318B1 (en) * 2000-07-25 2004-01-06 Sun Microsystems, Inc. Two-dimensional storage array with prompt parity in one dimension and delayed parity in a second dimension
US7533405B2 (en) * 2000-08-30 2009-05-12 Panasonic Corporation Nonlinear broadcast system
US6996742B2 (en) * 2000-11-28 2006-02-07 Sedna Patent Services, Llc Method for regenerating and streaming content from a video server using RAID 5 data striping
US6745310B2 (en) * 2000-12-01 2004-06-01 Yan Chiew Chow Real time local and remote management of data files and directories and method of operating the same
US6775794B1 (en) * 2001-05-23 2004-08-10 Applied Micro Circuits Corporation Use of activity bins to increase the performance of disk arrays
US6904540B2 (en) * 2001-10-29 2005-06-07 Hewlett-Packard Development Company, L.P. Targeted data protection
US7644136B2 (en) * 2001-11-28 2010-01-05 Interactive Content Engines, Llc. Virtual file system
US7788396B2 (en) * 2001-11-28 2010-08-31 Interactive Content Engines, Llc Synchronized data transfer system
JP3579389B2 (ja) * 2001-11-30 2004-10-20 株式会社東芝 ディスクアレイ装置及び同装置におけるデータ復旧方法
JP3682256B2 (ja) * 2001-11-30 2005-08-10 株式会社東芝 ディスクアレイ装置及び同装置におけるパリティ処理方法
US7024586B2 (en) * 2002-06-24 2006-04-04 Network Appliance, Inc. Using file system information in raid data reconstruction and migration
US20070033430A1 (en) * 2003-05-05 2007-02-08 Gene Itkis Data storage distribution and retrieval
US7386663B2 (en) 2004-05-13 2008-06-10 Cousins Robert E Transaction-based storage system and method that uses variable sized objects to store data
US20060041793A1 (en) * 2004-08-17 2006-02-23 Dell Products L.P. System, method and software for enhanced raid rebuild
US8352782B2 (en) * 2005-09-30 2013-01-08 Cleversafe, Inc. Range based rebuilder for use with a dispersed data storage network
US8555109B2 (en) * 2009-07-30 2013-10-08 Cleversafe, Inc. Method and apparatus for distributed storage integrity processing
US11221917B1 (en) 2005-09-30 2022-01-11 Pure Storage, Inc. Integrity processing in a dispersed storage network
US10860424B1 (en) 2005-09-30 2020-12-08 Pure Storage, Inc. Background verification processing in a storage network
US8880799B2 (en) * 2005-09-30 2014-11-04 Cleversafe, Inc. Rebuilding data on a dispersed storage network
US11620185B2 (en) 2005-09-30 2023-04-04 Pure Storage, Inc. Integrity processing in a dispersed storage network
US7653783B2 (en) * 2005-10-07 2010-01-26 Agere Systems Inc. Ping-pong state machine for storage-device array
US8291161B2 (en) * 2005-10-07 2012-10-16 Agere Systems Llc Parity rotation in storage-device array
US7644303B2 (en) * 2005-10-07 2010-01-05 Agere Systems Inc. Back-annotation in storage-device array
US7769948B2 (en) * 2005-10-07 2010-08-03 Agere Systems Inc. Virtual profiles for storage-device array encoding/decoding
US7913075B2 (en) * 2007-07-03 2011-03-22 Pmc-Sierra, Inc. Systems and methods for automatic provisioning of storage and operating system installation from pre-existing iSCSI target
US7861036B2 (en) * 2007-09-18 2010-12-28 Agere Systems Inc. Double degraded array protection in an integrated network attached storage device
US8001417B2 (en) * 2007-12-30 2011-08-16 Agere Systems Inc. Method and apparatus for repairing uncorrectable drive errors in an integrated network attached storage device
US8706980B2 (en) * 2009-07-30 2014-04-22 Cleversafe, Inc. Method and apparatus for slice partial rebuilding in a dispersed storage network
US9152514B2 (en) * 2009-11-24 2015-10-06 Cleversafe, Inc. Rebuilding a data segment in a dispersed storage network
US8918897B2 (en) * 2009-11-24 2014-12-23 Cleversafe, Inc. Dispersed storage network data slice integrity verification
US9270298B2 (en) * 2009-11-24 2016-02-23 International Business Machines Corporation Selecting storage units to rebuild an encoded data slice
US8464090B2 (en) 2010-09-21 2013-06-11 International Business Machines Corporation Recovery of failed disks in an array of disks
EP2643771B1 (de) * 2010-11-26 2017-11-08 Telefonaktiebolaget LM Ericsson (publ) Echtzeit-datenbanksystem
JP2013058172A (ja) * 2011-09-09 2013-03-28 Toshiba Corp 映像収録再生装置、収録方法及び再構築方法
US9842117B1 (en) * 2014-12-29 2017-12-12 EMC IP Holding Company LLC Managing replication of file systems
US10001947B1 (en) * 2015-05-08 2018-06-19 American Megatrends, Inc. Systems, methods and devices for performing efficient patrol read operations in a storage system
US9952769B2 (en) 2015-09-14 2018-04-24 Microsoft Technology Licensing, Llc. Data storage system with data storage devices operative to manage storage device functions specific to a particular data storage device
CN108228085A (zh) * 2016-12-21 2018-06-29 伊姆西Ip控股有限责任公司 用于管理存储系统的方法和设备
CN115309348B (zh) * 2022-10-11 2023-03-10 苏州浪潮智能科技有限公司 元数据的管理方法、装置和计算机设备和存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5166939A (en) 1990-03-02 1992-11-24 Micro Technology, Inc. Data storage apparatus and method
EP0485110B1 (de) 1990-11-09 1999-08-25 Emc Corporation Logische Aufteilung eines Speichersystems mit redundanter Matrix
JP3183719B2 (ja) 1992-08-26 2001-07-09 三菱電機株式会社 アレイ型記録装置
JP3188071B2 (ja) 1993-10-14 2001-07-16 富士通株式会社 ディスクキャッシュ装置
US5732239A (en) 1994-05-19 1998-03-24 Starlight Networks Method for operating a disk storage system which stores video data so as to maintain the continuity of a plurality of video streams
US5657468A (en) 1995-08-17 1997-08-12 Ambex Technologies, Inc. Method and apparatus for improving performance in a reduntant array of independent disks
US6161192A (en) 1995-10-13 2000-12-12 Compaq Computer Corporation Raid array data storage system with storage device consistency bits and raidset consistency bits
JP3641872B2 (ja) 1996-04-08 2005-04-27 株式会社日立製作所 記憶装置システム

Also Published As

Publication number Publication date
DE60111039D1 (de) 2005-06-30
WO2001077829A3 (en) 2002-04-04
ATE296464T1 (de) 2005-06-15
WO2001077829A2 (en) 2001-10-18
EP1272931A2 (de) 2003-01-08
US6571351B1 (en) 2003-05-27
AU2001249741A1 (en) 2001-10-23
EP1272931B1 (de) 2005-05-25

Similar Documents

Publication Publication Date Title
DE60111039T2 (de) Speichersystem das aus mehreren speichergeräten besteht, mit verschiedenen fehlertoleranten verfahren
DE69530263T2 (de) Verfahren und Gerät zur Aufzeichnung und Verarbeitung von Daten
DE602005001041T2 (de) Speicherauszugssystem
DE112011101109B4 (de) Übertragung von Map/Reduce-Daten auf der Grundlage eines Speichernetzwerkes oder eines Speichernetzwerk-Dateisystems
DE102013215535B4 (de) Sicherung oder wiederherstellung von daten mit hilfe eines hauptspeichers und nichtflüchtiger speichermedien
DE69737904T2 (de) System und Verfahren zur Bearbeitung von Multimedia-Datenströmen in gemeinsamen Ringarchitektur-Multimedia-Teilsystemclustern
DE69922338T2 (de) Dateisysteme mit unterstützung von gemeinsamer benutzung von daten
DE69626569T2 (de) Datenkompressionsverfahren und Struktur für eine Speichereinheit mit direktem Zugriff
DE69534861T2 (de) Netzwerkvideoanbietersystem
DE69824078T2 (de) Heterogenes Computersystem, heterogenes Ein/Ausgabesystem und Datensicherungsverfahren für die Systeme
DE69719564T2 (de) Dynamischer dateiverzeichnisdienst
DE112011100112B4 (de) Pufferspeicher-platte in blitzkopie-kaskade
DE112017005868T5 (de) Verwaltung von e/a-abläufen für datenobjekte in einem speichersystem
DE19515661C2 (de) Halbleiter-Plattenvorrichtung
DE102009031923A1 (de) Verfahren zum Verwalten von Datenobjekten
DE112012000282B4 (de) Anwendungswiederherstellung in einem Dateisystem
DE112010003794T5 (de) Datenspeicherung unter Verwendung von Bitmaps
DE112018003585B4 (de) Verfahren, Computerprogrammprodukt und Speicherbandlaufwerk-Hardwareeinheit zum Verbessern der Deduplizierung eines Bandlaufwerkspeichers
DE102006018959B4 (de) Videoaufzeichnungssystem, Verfahren und Computerprogramm zur Speicherplatzverteilung in einem Videoaufzeichnungssystem
EP0966169B1 (de) Sicherungsverfahren für Betriebsdaten eines Netzelementes und Steuerungseinrichtung für ein Netzelement
DE602004007925T2 (de) Verwalten einer beziehung zwischen einem zielvolumen und einem quellenvolumen
JP4264784B2 (ja) 画像編集装置および記録媒体
DE102018131983A1 (de) Switch-unterstützte datenspeicher-netzwerkverkehrsverwaltung in einem rechenzentrum
EP0850477B1 (de) Verfahren und anordnung zum beschreiben von glasmastern mit binärdaten
DE69812257T2 (de) Verfahren zur Datenübertragung zwischen Rechnern über ein Speichersubsystem

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: BOSCH JEHLE PATENTANWALTSGESELLSCHAFT MBH, 80639 M