DE102004046243A1 - Verfahren zur Verwaltung von Metainformationen zur Verteilung von Datenblöcken oder Objekten über computerlesbare Speichermedien sowie Computerprogrammprodukt und computerlesbares Speichermedium - Google Patents

Verfahren zur Verwaltung von Metainformationen zur Verteilung von Datenblöcken oder Objekten über computerlesbare Speichermedien sowie Computerprogrammprodukt und computerlesbares Speichermedium Download PDF

Info

Publication number
DE102004046243A1
DE102004046243A1 DE200410046243 DE102004046243A DE102004046243A1 DE 102004046243 A1 DE102004046243 A1 DE 102004046243A1 DE 200410046243 DE200410046243 DE 200410046243 DE 102004046243 A DE102004046243 A DE 102004046243A DE 102004046243 A1 DE102004046243 A1 DE 102004046243A1
Authority
DE
Germany
Prior art keywords
extent
address
storage
memory
bits
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
DE200410046243
Other languages
English (en)
Inventor
André Dr. Brinkmann
Gunnar Schomaker
Friedhelm auf d. Prof. Dr. Heide
Ulrich Prof. Dr. Rückert
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.)
Universitaet Paderborn
Original Assignee
Universitaet Paderborn
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 Universitaet Paderborn filed Critical Universitaet Paderborn
Priority to DE200410046243 priority Critical patent/DE102004046243A1/de
Publication of DE102004046243A1 publication Critical patent/DE102004046243A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices

Abstract

Die Erfindung betrifft ein Verfahren für die Verwaltung von Metainformationen zur Verteilung von Datenblöcken oder Objekten über computerlesbare Speichermedien. Die Erfindung ist insbesondere einsetzbar für die Verteilung und das Wiederauffinden von Daten oder Objekten in fehlertoleranten sowie fehlerbehafteten Systemen, wie beispielsweise Speichernetzwerken, einem Intranet oder dem Internet. DOLLAR A Ein bisher nicht gelöstes Problem bei der Verteilung von Datenblöcken oder Objekten über Speichersysteme besteht darin, dass eine gute Balancierung der Anfragen über die Speichersysteme einen hohen Speicheraufwand für die Sicherung der zugehörigen Verteilungsfunktionen bedingt. Dieser Speicheraufwand macht in vielen Szenarien eine effiziente Verteilung der Anfragen über die Speichersysteme und somit eine hohe Performanz des Gesamtsystems unmöglich. DOLLAR A Im Rahmen dieser Erfindung wird ein Verfahren vorgestellt, das durch eine Kombination der Informationen, des Platzes auf den Speichersystemen und eine neue Art zur Adressdekodierung sowohl den Speicheraufwand für die Sicherung von Verteilungsinformationen minimiert als auch die Performanz des Gesamtsystems optimiert.

Description

  • Die vorliegende Erfindung beschreibt ein Verfahren für die Verwaltung von Metainformationen zur Verteilung von Datenblöcken oder Objekten über computerlesbare Speichermedien sowie ein Computerprogrammprodukt und ein computerlesbares Speichermedium. Die Erfindung ist insbesondere einsetzbar für die Verteilung und das Wiederauffinden von Daten in fehlertoleranten sowie fehlerbehafteten Systemen, wie beispielsweise in Datenbanken, Speichernetzwerken, einem Intranet oder dem Internet. Im weiteren werden unter Speichermedien oder Speichergeräten computerlesbare Produkte zur Sicherung von Informationen verstanden. Die Zusammenschaltung von mehr als einem Speichermedium wird nachfolgend als Speichersystem bezeichnet. In vielen Fällen werden im weiteren als eine Ausprägung von Speichermedien Festplatten angeführt. Immer, wenn im weiteren ausdrücklich von Festplatten gesprochen wird, soll hierunter jedoch auch jede andere Form von computerlesbaren Speichermedien gemeint sein. Ebenfalls wird im weiteren in der Regel von Datenblöcken gesprochen, wobei immer konkret Datenblöcke, aber auch Objekte jeder Art im informatorischen Sinne gemeint sein sollen, die in einem Speichersystem verteilt werden sollen.
  • Die Organisation von mehreren Speichermedien als effizientes und flexibles Speichersystem erfordert die Lösung zahlreicher Aufgaben. Eine der wichtigsten Teilaufgaben ist es, eine geeignete Datenplazierung, d.h. eine den Anforderungen entsprechende Strategie zur Verteilung der Datenblöcke über das Speichersystem zu finden. Die Anforderungen sind hier, einen schnellen Zugriff auf die Daten zu erlauben und gleichzeitig eine hohe Sicherheit gegen Datenverlust zu gewährleisten.
  • Hierbei gilt es vor allem, serverzentrierte Strukturen der Datenspeichersysteme zu vermeiden, bei denen die Zuweisung von freien Ressourcen und insbesondere auch von Speicherplatz häufig nicht flexibel genug ist und mit einer hohen lokalen Konzentration von Speicher einhergeht und damit eine schlechte Verfügbarkeit von freiem Speicher hervorruft. Dies führt insgesamt zu hohen administrativen Kosten bei der Verwaltung derartiger serverzentrierter Systeme.
  • Ein grundsätzlicher Ansatz für die Lösung derartiger Probleme besteht darin, statt des üblicherweise verwendeten hardwareorientierten Bussystems zur Anbindung von Speicher an den Server eine serverunabhängige Anbindung des Speichers innerhalb des Netzwerkes zu realisieren, wobei der Speicher mittels einer Virtualisierung für den Speichernutzer bereitgestellt wird. Eine derartige Speicher-Virtualisierung erfolgt durch Loslösung der Zugriffsmöglichkeiten auf Speicher von einer direkten hardwareorientierten Speicheradressierung hin zu einer logischen Speicheradressierung, wozu eine zusätzliche Verwaltungsschicht zwischen den physikalischen Speichergeräten und dem Speichernutzer eingezogen wird. Innerhalb dieser Verwaltungsschicht wird mittels einer Funktion die dem Nutzer zugängliche logische Speicheradressierung auf eine Verwaltung der physikalischen Speichereinheiten abgebildet.
  • Eine derartige zusätzliche Verwaltungsschicht ist seit vielen Jahren in Form sogenannter RAID-Systeme [PGK88] bekannt, bei denen eine deterministische Plazierung der Speicherinhalte auf einem logischen Blockgerät vorgenommen wird, indem der logische Adreßraum über die aufgeteilten Speichermedien verteilt wird. Hierbei erfolgt eine statische Plazierung der Daten auf den Speichermedien, die durch die RAID-Verfahren des Striping und Mirroring vorgegeben sind. Durch den Einsatz von RAID-Verfahren kann die Datensicherheit und Performanz bei gleichzeitiger Verwendung fehlertoleranter Schlüssel wie einer Parity-Kodierung oder dem Reed-Solomon-Schlüssel wesentlich verbessert werden. Derartige Systeme sind vielfach bekannt und in ihren verschiedenen Speichervarianten wie RAID 0, RAID I, RAID IV, RAID V und RAID VI erprobt und zuverlässig, stoßen jedoch insbesondere hinsichtlich Skalierbarkeit und Flexibilität an ihre Grenzen. Bei diesen Kodierungsformen ist es z.B. von Nachteil, daß die Kodierung uniforme Kapazitäten der Speichermedien vorsieht.
  • Als eine andere besonders effiziente Methode der virtuellen Speicherorganisation hat sich die pseudo-zufällige Verteilung von Datenblöcken über die angeschlossenen Datenspeichersysteme erwiesen. Hierbei können sowohl hinsichtlich ihrer Speicherkapazitäten heterogene Speichergeräte verwendet als auch die Flexibilität des Speichersystems zur Anpassung an geänderte Speicheranforderungen oder Veränderungen des Speichersystems selbst wesentlich gesteigert werden. Ein derartige Methode ist beispielsweise aus der DE 102 36 796 A1 bekannt. Neben einer gleichmäßigen Verteilung der Datenblöcke wird hierbei durch das Aufbrechen zusammengehörender Informationseinheiten auch eine gleichmäßige Verteilung der Anfragen an die Speichersysteme garantiert [BSS02] [KLL+97]. Hierdurch können die nutzbare Bandbreite der Speichersysteme und die Latenzzeiten der Zugriffe auf die Speichersysteme optimiert werden.
  • Grundgedanke bei einem derartigen und anderen bekannten Verfahren ist es, die zu speichernden Daten in Form sog. Extents zufällig über alle im Speichersystem verwendeten Speichermedien zu verteilen, wobei unter dem Begriff Extent einzelne logisch aufeinander folgende, reservierte Adresseinheiten auf einem Speichersystem verstanden werden. Extents sind in der englischsprachigen Literatur auch als Chunks bekannt. Hierdurch wird die Wahrscheinlichkeit, daß ein bestimmter Extent selektiert wird, für jeden derartigen Extent gleich groß.
  • Die Wahrscheinlichkeit, mit der ein Extent beim Abspeichern einem bestimmten Speichermedium zugeordnet wird, hängt nur von der bereit gestellten Kapazität des Speichermediums ab. Die genaue Position eines Extents auf einem einmal zum Speichern ausgewählten Speichermedium wird jedoch nicht über die Zufallsfunktion gesteuert, sondern über einen zusätzlichen Mechanismus gesteuert. Diese pseudo zufällige Verteilung führt dazu, daß zur möglichst gleichmäßigen Lastverteilung bei der Abarbeitung von Speicherabfragen (dem sog. load balancing) die Anzahl der Anfragen über die verschiedenen Extents und somit auf die verschiedenen, auch hinsichtlich ihrer Kapazität heterogenen Festplatten verteilt wird. Eine Erhöhung der Anzahl der Extents, die mit einer Verringerung der Größe des einzelnen Extents einhergeht, erzeugt eine bessere Verteilung der Daten über die Speichermedien und damit eine Verbesserung der Zugriffsgeschwindigkeiten.
  • Um freie Bereiche auf den Speichersystemen zu verwalten und auf bereits gespeicherte Datenblöcke zugreifen zu können, müssen bei einer derartigen pseudozufälligen und vielen anderen Verteilungen der Datenblöcke über die angeschlossenen auch heterogenen Speichersysteme eine Vielzahl von Informationen über die Verteilung der Datenblöcke gesichert werden. Diese Informationen werden im folgenden als Metainformationen bezeichnet und stellen Plazierungsinformationen der Extents in dem Speichersystem dar.
  • Um die Menge der zu sichernden Metainformationen zu begrenzen, wird im Allgemeinen der verfügbare Speicherraum in Adresseinheiten fester oder variabler Größe eingeteilt. Datenblöcke, deren Adressen in der gleichen Adresseinheit liegen, werden dabei in der Regel in dem gleichen Extent gesichert.
  • Zur Adressierung der Datenblöcke wird dabei gemäß 1 wie folgt vorgegangen:
    • • Der Extentanteil einer Adresse wird als E, die Anzahl der Bits in dem Extentanteil als |E| bezeichnet.
    • • Der Offsetanteil einer Adresse wird als O, die Anzahl der Bits in dem Offsetanteil wird als |O| bezeichnet.
    • • Die Größe eines zusammengehörigen Adressbereiches beträgt 2|O| Datenblöcke. Dieser zusammengehörige Adressbereich wird als Extent bezeichnet, die Größe des zusammengehörigen Adressbereiches als Extentgröße bezeichnet.
  • Die Zuordnung zwischen einer Adresse eines Datenblocks erfolgt dabei z.B. wie folgt:
    • • Der Extentanteil E einer Adresse wird über eine Abbildungsfunktion einem Speichersystem zugeordnet.
    • • Beim erstmaligen Schreiben eines Datenblocks wird dem Extent ein zusammenhängender Bereich auf dem ihm zugeordneten Speichersystem mit der Startadresse AE zugeordnet. Der Wert der letzten |O| Bits der Startadresse wird auf 0 gesetzt, somit entspricht die Größe des reservierten Bereiches mindestens der Extentgröße. Dieser Speicherort und der zugehörige Extentanteil der Adresse werden in einer zentralen oder verteilten Datenbank, hier als Wörterbuch bezeichnet, gesichert.
    • • Der einem Datenblock zugeordnete Speicherort berechnet sich aus der Blockadresse wie folgt:
    • – Suche aus dem Wörterbuch das Speichersystem, auf dem der Extent gesichert wird und die zugeordnete Startadresse AE auf dem Speichersystem,
    • – Die Speicheradresse auf dem Speichersystem berechnet sich zu AE + O.
  • Hierbei gibt es noch eine Reihe von weiteren Möglichkeiten, den Extentanteil und den Offsetanteil einer Adresse zu interpretieren.
  • Die Menge der zu sichernden Metainformationen steigt gemäß der Theorie für Wörterbücher mindestens linear mit der Anzahl der Extents in dem System (siehe hierzu die Angaben in der 2). Bei der Sicherung der Informationen sind für jeden zu sichernden Extent mindestens der Extentanteil der Speicheradressen und die zugeordnete Startadresse auf dem Speichersystem zu speichern. Hieraus folgt, daß die Menge der zu speichernden Informationen umso geringer ist, je größer die einzelnen Extents gewählt werden. Mit der Größe des Extents steigt die Wahrscheinlichkeit, daß ein sehr großer Anteil der Zugriffe auf das Speichersystem auf wenige Extents mit sehr stark nachgefragten Daten entfällt. Diese Anfragen müssen dann von den wenigen diesen Extents zugeordneten Speichermedien beantwortet werden, d.h. es kommt zu Stauungen an diesen Speichermedien. Auch bei einem sequentiellen Durchlaufen des diesem Extent zugeordneten Adreßbereichs werden alle Anfragen an diesen Extentbereich nur von einem einzelnen Speichermedium beantwortet, eine parallele Bearbeitung des Anfragestroms im Speichersystem findet somit nicht statt.
  • Beide Eigenschaften führen dazu, daß die Geschwindigkeit bei dem Zugriff auf das Speichersystem beeinträchtigt wird, bei sehr großen Extents ist somit die Verteilung der Zugriffe über die Speichermedien sehr ungleichmäßig und somit die Lastverteilung innerhalb des Speichersystems schlecht.
  • Auch treten bei der Skalierung von Speichersystemen z.B. aufgrund gestiegener Anforderungen an den Speicherplatz durch die Art der Adressierung insofern Probleme auf, als bei Vergrößerung des zur Verfügung gestellten Speicherplatzes innerhalb eines Speichersystems die Anzahl der Bits zur Beschreibung des Extentanteils steigt und damit auch die Zahl der Extentadressen, insgesamt also die Menge an Metainformationen ebenfalls ansteigt.
  • Zielsetzung bei einer pseudo-zufälligen Verteilung der Datenblöcke über die Speichersysteme und auch vielen anderen Verteilungsverfahren ist es nun, die Extentgröße derart zu wählen, daß eine gute Verteilung der Datenblöcke über die Speichersysteme erfolgt, die Eigenschaften der Festplatten einbezogen werden und die Anzahl der zu speichernden Metainformationen minimiert wird.
  • Die hier genannten Anforderungen, die in der Grundstruktur alle auf dem erläuterten Verfahren zur Darstellung der Adresse basieren, sind jedoch mit den bisher bekannten Techniken zur Verteilung von Datenblöcken und zur Speicherung der Metainformationen nicht gleichzeitig zu erreichen. Wird im ersten Fall die Extentgröße sehr groß gewählt, so müssen nur wenige Metainformationen gesichert werden, dann ist jedoch auch die Wahrscheinlichkeit hoch, daß sich eine Ungleichverteilung bei den Zugriffen auf die Speichermedien einstellt. Werden im zweiten Fall die Extents klein gewählt, um eine gute Verteilung der Zugriffe auf die Speichermedien zu ermöglichen, kann die Menge der zu sichernden Metainformationen für große Speichersysteme sehr stark ansteigen. Da die benötigte Kapazität der Datenbank für die Speicherung der Metainformationen und damit deren Auslastung im Betrieb direkt mit der Anzahl der Extents korreliert, muß darauf geachtet werden, daß die Menge der benötigten Metainformationen möglichst um ein Vielfaches kleiner als der durch die Metainformationen repräsentierte Speicherplatz ist, idealerweise sollte die Menge der Metainformationen so klein wie möglich gehalten werden.
  • Aufgabe der vorliegenden Erfindung ist es daher, Verfahren zur Verteilung von Daten oder Objekten insbesondere in heterogenen Datenspeichersystemen vorzuschlagen, bei denen neben einer Optimierung der Verteilungseigenschaften eine möglichst geringe bzw. anpaßbare Menge von Metainformationen anfällt und die Speicherung der Daten oder Objekte auf dem Speichersystem hinsichtlich Zugriffsmöglichkeiten möglichst optimal erfolgen soll.
  • Die Lösung der erfindungsgemäßen Aufgabe ergibt sich aus den kennzeichnenden Merkmalen des Anspruches 1, in Zusammenwirken mit den Merkmalen des Oberbegriffes. Weitere vorteilhafte Ausgestaltungen der Erfindung ergeben sich aus den Unteransprüchen.
  • Die Erfindung geht aus von einem Verfahren zur Verteilung von Datenblöcken oder Objekten über Datenspeichermedien in Form von Extents in einem Speichersystem mit zufallsgesteuerter oder deterministischer Plazierung von Speicherinformationen in Computersystemen und/oder Datenbanken und/oder Speichernetzwerken und/oder einem Datennetz, vorzugsweise einem Intranet und/oder dem Internet, wobei die virtuelle Adressierung jedes Extents in dem Speichersystem durch Angabe von Extentanteil und Offsetanteil der Adresse erfolgt. Ein derartiges gattungsgemäßes Verfahren wird dadurch weiter entwickelt, daß die Adresse jedes Extents innerhalb des Speichersystems bei gleichbleibender Adressierungsbitanzahl durch eine Aufteilung in mehr als einen Extentanteil und eine Anzahl von Offsetanteilen für jeden der Extentanteile aufgespalten wird, wobei die Aufteilung Adressierungssprünge innerhalb des Extents bei der Speicherung eines Extents auf einer Speichereinheit des Speichersystems hervorruft. Durch die derart erreichbare Stückelung eines bisher geschlossen abgespeicherten Extents aufgrund der eingefügten Adreßsprünge kann ohne wesentlichen Mehraufwand für die Adreßspeicherung bildlich gesprochen ein langer Extent in eine Anzahl von kürzeren Extentstücken zerlegt gespeichert werden, ohne daß sich damit die für die veränderte Art der Speicherung zusätzlich benötigten Metainformationen gegenüber den bisher üblichen Beschreibung der Adressierung wesentlich vergrößern. Gleichzeitig wird die Möglichkeit deutlich verbessert, auch parallele Zugriffe auf denselben ursprünglichen Extent durchzuführen. Durch die auf unterschiedlichen Speichermedien erfolgende Speicherung der Daten kann ausgenutzt werden, daß z.B. mit mehreren Schreib-/Leseköpfen von unter schiedlichen Festplatten gleichzeitig auf die verschiedenen Stücke eines ursprünglichen Extents zugegriffen werden kann und damit parallele Zugriffe auf die einzelnen ursprünglichen Extentstücke realisiert werden können. Dadurch wird die gegenseitige Blockierung von parallelen Speicheranfragen auf den selben Extent beseitigt, die bei Speicherung der Daten in einem einzigen langen Extent ansonsten häufig auftritt. Die Speicherung der Daten erfolgt dabei physikalisch voneinander beabstandet. Es wird erneut angemerkt, daß das erfindungsgemäße Verfahren sich nicht nur auf die Speicherung von Daten auf sogenannten Festplatten beschränkt, sondern auf alle gezielt beschreibbaren Speichermedien und physikalischen Speichertechniken übertragbar ist. Nur der Einfachheit halber wird im Folgenden immer von Festplatte als einem der derzeit wichtigsten Anwendungsbereiche des Verfahrens gesprochen, gemeint sind dann jedoch alle gängigen und denkbaren Speicherverfahren und Speichermedien insbesondere mit wahlweisem Zugriff auf Daten.
  • Vorteilhaft ist es hierbei vor allem, wenn durch die Adressierungssprünge der zum Speichern des Extents benötigte Speicherplatz nicht mehr zusammenhängend in physikalisch aufeinanderfolgenden Bereichen auf einer Speichereinheit innerhalb des Speichersystems, sondern in verteilten, logisch miteinander verknüpften Bereichen eines Speichersystems angelegt wird.
  • Eine erste vorteilhafte Ausgestaltung des Verfahrens sieht vor, daß die Aufteilung der Adresse jedes Extents durch einen Partitionierungsvektor aus einer Bitfolge von mindestens zwei Extentanteilen und mindestens zwei Offsetanteilen erfolgt. Die Länge der einzelnen Anteile von Extent und Offset und die Lage der Bits von Extentanteil und Offsetanteil zueinander kann dabei anhand verschiedener Kriterien verändert werden, beispielsweise im Hinblick auf die Größe der Adreßsprünge zwischen den einzelnen Extentanteilen oder auch hinsichtlich der Größe der Festplatte, auf der die Extents gespeichert werden sollen. Hierdurch kann das Verfahren an unterschiedlichste Anforderungen hinsichtlich Geschwindigkeit des Speicherzugriffs, Menge der zusätzlich anfallenden Metainformationen sowie Größe und Aufbau des Speichersystems angepaßt werden.
  • Eine weitere Ausgestaltung sieht vor, daß die Länge der Offsetanteile des Partitionierungsvektors möglichst gering gehalten wird. Hierdurch lassen sich kurze Extentstücke erzeugen, die zu einer guten Granularität der Speicherung und damit zu einer Beschleunigung des Zugriffes auf einzelne gespeicherte Daten beitragen, ohne daß die Metainformationen unzulässig stark ansteigen.
  • Von weiterem Vorteil ist es, wenn man die Speicheradresse eines Extents nicht wie im Stand der Technik bekannt in einen Extentanteil und einen Offsetanteil aufgespaltet, sondern im allgemeinsten Fall in k ≥ 2 Extentanteile E1,..., Ek. und l Offsetanteile O1,..., Ol einteilt (siehe hierzu die bildliche Darstellung dieses Falles in der 3), da durch die Anzahl der Extentanteile und der zugehörigen Offsetanteile sowie durch deren Länge und Anordnung eine weitere Beeinflussung der Art der Speicherung mit den vorstehend genannten vorteilhaften Eigenschaften erreicht werden kann. Die Aufteilung einer Extentadresse in zwei Extentanteile und zwei Offsetanteile gemäß der Darstellung in 4 ist hierbei der einfachste Fall zur Realisierung des Verfahrens.
  • Eine besonders vorteilhafte Zuweisungsvorschrift für die Adressierung von Extents kann darin gesehen werden, wenn eine Adressierung des Extents auf einem Speichersystem über eine Funktion f(E1,...,Ek) mit k als Anzahl der Extentanteile durchgeführt wird, wobei vor dem erstmaligen Zugriff eines Datenblocks in dem Extent dem Extent ein zusammenhängender Speicherbereich auf dem ihm zugeordneten Speichersystem mit der Startadresse AE zugeordnet wird, die |O| Offsetbits der Startadresse auf vorgebbare Werte gesetzt und dieser Speicherbereich sowie der zugehörige Extentanteil der Adresse in einem zentralen oder verteilten Wörterbuch gesichert werden, wobei der einem Datenblock des Extents zugeordnete Speicherort sich dann aus der Blockadresse berechnet zu AE + πi(Ol⊕...⊕O1)mit πi(W) als eindeutiger Permutation des Wertes W und Ol⊕...⊕O1 als Konkatenierung der Bits =Ol bis O1 mit l als Anzahl der Offsetanteile. Hierdurch ist eine einfache und schnell ausführbare Zuweisungsvorschrift gefunden, die ohne Auftreten von zu viel zusätzlichen Metainformationen eine entsprechende Stückelung eines Extents erlaubt und damit die vorstehend beschriebenen Vorteile hervorruft. Hierbei kann in weiterer Ausgestaltung vor dem erstmaligen Zugriff eines Datenblocks in dem Extent ein zusammenhängender Speicherbereich mindestens der Extentgröße auf dem ihm zugeordneten Speichersystem mit der Startadresse AE zugeordnet werden.
  • Die vorteilhafte Vorgehensweise dieser Zuweisungsvorschrift läßt sich auch anhand der 3 und 4 hinsichtlich der Wirkung der Aufteilung der virtuellen Adresse eines Extents in Extentanteil und Offsetanteil veranschaulichen, wobei die Figur den allgemeinen Fall von k>2 und die 4 den speziellen Fall von k=2 aufzeigt. Die Bitbreite der Extentanteile Ei und der Offsetanteile Oi sowie deren Lage zueinander kann dabei anhand verschiedener Optimierungskriterien ausgewählt werden, die von dem Aufbau des Speichersystems, der gewünschten Größe der Adreßsprünge und insbesondere von den gewünschten Betriebsbedingungen des Speichersystems abhängen.
  • Hierbei kann in weiterer Ausgestaltung die Zuordnung eines Extents derart durchgeführt werden, daß die |O| Offsetbits der Startadresse auf 0 gesetzt werden. Es ist selbstverständlich auch denkbar, daß die |O| Offsetbits der Startadresse auf andere Werte als 0 gesetzt werden.
  • In einer anderen Weiterbildung können die Speichermedien in verschiedene Bereich partitioniert werden und eine Zuordnung eines Datenblocks zu einem Bereich des Speichermediums auf Basis seines Offsetanteils erfolgen.
  • Zur weiteren Erläuterung des Ablauf des erfindungsgemäßen Verfahrens sei noch folgendes ausgeführt:
    k bezeichnet die Anzahl der Extentanteile
    l bezeichnet die Anzahl der Offsetanteile
    πi(x1,...,xn) bezeichnet eine eindeutige Permutation der Eingänge x1 bis xn
    πi(A) bezeichnet eine eindeutige Permutation der Bits des Wertes A.
    f(x1,...,xn) bezeichnet eine Funktion mit den Eingängen x1 bis xn
    x1⊕...⊕xn bezeichnet die Konkatenierung der Bits x1 bis xn.
  • Für die Abspeicherung von Datenblöcken wird erfindungsgemäß die Anzahl k der Extentanteile größer als 1 gewählt, um eine Minimierung der Metainformationsmenge und eine gleichzeitige Optimierung der Verteilungseigenschaften zu ermöglichen.
  • Über eine z.B. zufallsgesteuerte Funktion f(E1,...,Ek) wird dann eine Abbildung des Extents auf ein Speichersystem durchgeführt. Beim oder vor dem erstmaligen Schreiben eines Datenblocks wird dem Extent ein zusammenhängender Bereich auf dem ihm zugeordneten Speichersystem mit der Startadresse AE zugeordnet. Hierbei wird in der bevorzugten Ausgestaltung die Zuordnung eines Extents derart durchgeführt, daß die |O| Offsetbits der Startadresse auf 0 gesetzt werden. Die Größe eines so reservierten Bereiches entspricht mindestens der Extentgröße. Dieser Speicherbereich und der zugehörige Extentanteil der Adresse werden dann in einem zentralen oder verteilten Wörterbuch gesichert.
  • Der einem Datenblock zugeordnete Speicherort berechnet sich dann beim Schreiben bzw. beim Auslesen von Daten aus der Blockadresse wie folgt:
    Suche aus dem Wörterbuch das Speichersystem, auf dem der Extent gesichert wird und die zugeordnete Startadresse AE auf dem Speichersystem. Die Speicheradresse auf dem Speichersystem berechnet sich hierfür zu AE + πi(Ol⊕...⊕O1). In der bevorzugten Ausgestaltung, bei der die |O| Offsetbits der Startadresse auf 0 gesetzt werden, berechnet sich die Startadresse auf dem Speichersystem dann zu AE+Ol⊕...⊕O1.
  • Hierdurch ist eine einfache und schnell abarbeitbare Zuweisungsvorschrift gefunden, die mit nahezu gleichbleibender Menge der Metainformationen eine wesentlich verbesserte Abspeicherung der in dem Speichersystem abzulegenden Daten realisiert.
  • Eine anschauliche Darstellung dieses Verfahrens ist noch einmal in der 5 gegeben, bei der in 5a ein normaler Adreßvektor eines Datenblocks mit einer sechs Bit langen Darstellung eines Extentanteils und einer 4 Bit langen Darstellung des Offsetanteils angegeben ist. In der 5b ist nun in der erfindungsgemäßen Weise diese Adreßdarstellung insofern verändert, daß von links gesehen nur die ersten vier Bits des Extentanteils aufgeschrieben werden, dann ein zweibittiger Offsetanteil, der restliche zweibittige Extentanteil und dann noch einmal ein zweibitter Off setanteil folgt. Diese Aufteilung von Extentanteil und Offfsetanteil entspricht der einfachsten Darstellung gemäß vorstehender Erläuterungen mit k = l = 2.
  • Schreibt man nun, wie in der 5c einmal exemplarisch aufgezeigt, einige Adressen explizit auf, so erkennt man unmittelbar die auftretenden Adreßsprünge der Adressen. Stellt man, wie in der 5d geschehen, die sich aus diesen beiden Arten der Adressierung ergebende räumliche Anordnung der einzelnen Adressbereiche einmal graphisch dar, so erkennt man die auftretende Umordnung der in der linken Darstellung noch sequentiell nach bekannter Beschreibung angeordneten Speicherbereiche, wohingegen schematisch vereinfacht in der rechten Darstellung die Speicherbereiche in konzentrischen Ringen mit anderen Speicherbereichen verschränkt zu erkennen ist. Hierdurch wird eine Nachbarschaft von gemäß üblicher Adressierung eigentlich aufeinanderfolgenden Extentanteilen vermieden.
  • In der 6 ist eine derartige Anordnung von Adreßbereichen, die gemäß der bisher bekannten Speicherstrategie eigentlich in einer aufeinanderfolgenden Anordnung gespeichert werden würden, in einer gemäß dem hier vorgeschlagenen Verfahren folgenden Anordnung zu erkennen, bei dem durch die Adreßsprünge eine verschränkte Anordnung der Datenbereiche auf zwei verschiedenen Speichermedien entsteht. Die eigentlich adreßmäßig aufeinander folgenden Bereiche werden aufgrund der Art der Adressierung auftretenden Adressierungssprünge aufgebrochen und, wie hier, als ein Anwendungsbeispiel, schematisch anhand konzentrischer Ringe angedeutet über zwei Festplatten verteilt. Gemäß der bekannten Verfahren wären die Daten in dem Adreßbereich zwischen 0 und 2|0| auf eine Festplatte hintereinander folgend gespeichert worden. Durch die Eigenschaften der Erfindung werden bereits die ersten beiden Blöcke der Länge 2|01| auf verschiedenen Festplatten gesichert, die Parallelität der Zugriffe kann deutlich gesteigert werden.
  • Das erfindungsgemäße Verfahren gemäß den vorstehenden Erläuterungen hat die Eigenschaften, daß es die Datenzugriffe sehr gleichmäßig über die Speichersysteme verteilen kann und dabei die Menge der zu sichernden Metainformationen gering hält. Diese Eigenschaft wird erreicht, indem logisch nicht aufeinander folgende Adressbereiche innerhalb eines Extents gesichert werden. Das hat zur Folge, daß nicht konsekutive Adressbereiche innerhalb eines Extents vor deren Nutzung auf dem Speichermedium sequentiell allokiert werden. Dieses führt bei sequentiellen Zugriffen auf den Adressbereich dazu, daß auf einem Speichersystem gesicherte Informationen mit weit voneinander liegenden Adressen auf dem Speichersystem nah aneinander gesichert werden können oder Bereiche ungenutzt bleiben. Werden Festplatten oder andere Speichersysteme verwendet, bei denen die Zugriffszeiten auf einen Datenblock von der Entfernung des zuletzt zugegriffenen Datenblocks oder der effizienten Nutzung von Cachespeicher abhängen, kann dieses zu einer schlechten Ausnutzung der möglichen Geschwindigkeit eines Speichersystems führen. Insbesondere bei Festplattensystemen mit sog. Read-ahead-Cache führt die vorstehend beschriebene Art der Adressierung möglicherweise dazu, daß sich der Datendurchsatz des Speichersystems verringert, da in dem durch den Read-ahead-Cache eingelesenen Bereich gerade die nächsten benötigten Informationen nicht enthalten sind.
  • Aus diesem Grund wird eine erweiterte Ausgestaltung des Verfahrens vorgeschlagen, bei dem die Nachbarschaft von nicht sequentiell genutzten Adressbereichen innerhalb einer Extentadresse durch eine Lokalitätsverschiebung auf dem Speichermedium vermieden wird bzw. in dem Adressbereich nahe beieinander liegende Bereiche ihre Lokalität auch auf dem Speichersystem beibehalten.
  • Hierfür wird vorgeschlagen, daß aus dem Bereich des Extentanteils der virtuellen Adresse für ein Speichersystem i mit einer Speicherkapazität von Ci ai Bits ausgewählt werden, die ai Bits zur Einteilung des Speichersystems i in
    Figure 00130001
    Zonen der Größe
    Figure 00130002
    genutzt werden, wobei der erste Bereich des Speichersystems auf der Anfangsadresse
    Figure 00130003
    startet und anschließend eine Abbildungsfunktion verwendet wird, durch die aus der Anfangsadresse
    Figure 00130004
    des ersten Bereiches eindeutige Anfangsadressen der weiteren Bereiche ermittelt werden können.
  • Es wird damit eine weitere Abstraktionsebene bei der Interpretation der virtuellen Adresse eingeführt. Aus dem Bereich des Extentanteils der virtuellen Adresse werden für ein Speichersystem i mit einer Speicherkapazität von Ci ai Bits ausgewählt, wobei in einer bevorzugten Ausgestaltung die niederwertigsten ai Bits des Extentanteils benutzt werden können. Die ai Bits dienen zur Einteilung des Speichersystems i in
    Figure 00130005
    Zonen der Größe
    Figure 00130006
    Es wird hier ohne Einschränkung der Allgemeinheit angenommen, daß der erste Bereich des Speichersystems auf der Adresse
    Figure 00130007
    star tet. Es wird anschließend eine Abbildungsfunktion verwendet, durch die aus der Anfangsadresse des ersten Bereiches eindeutige Anfangsadressen der weiteren Bereiche ermittelt werden können. Die bevorzugte Berechnungsvorschrift besteht darin, daß für jedes Speichersystem i AEj =
    Figure 00140001
    + (j – 1)Ci/
    Figure 00140002
  • Die Zuordnung zwischen einer virtuellen Adresse und einem Speicherort auf einem Speichersystem wird nun in dem modifizierten Verfahren wie folgt durchgeführt:
    Über eine Funktion f(E1,...,Ek) wird eine Abbildung des Extentanteils auf ein Speichersystem i durchgeführt. Beim oder vor dem erstmaligen Schreiben eines Datenblocks werden dem Extent
    Figure 00140003
    zusammenhängende Bereiche der Größe
    Figure 00140004
    Datenblöcke auf dem ihm zugeordneten Speichersystem zugeordnet. In bevorzugter Ausgestaltung wird dem ersten Bereich des Extents die Startadresse
    Figure 00140005
    zugeordnet. Hierbei sind in der bevorzugten Varante die letzten |O| Bits der Startadresse
    Figure 00140006
    0 gesetzt. Es ist jedoch auch ohne Beschränkung der Allgemeinheit jeder andere Startwert für die letzten |O| Bits möglich. Diese Startadresse und der zugehörige Extentanteil der Adresse werden in einem zentralen oder in einem verteilten Wörterbuch gesichert. Die Startadresse der weiteren Bereiche ermittelt sich für jeden Bereich j mit 2 ≤ i ≤
    Figure 00140007
    zu AEj =
    Figure 00140008
    + (j – 1)Ci/
    Figure 00140009
  • Der einem Datenblock zugeordnete Speicherort berechnet sich dann aus der Blockadresse wie folgt: Man sucht aus dem Wörterbuch das Speichersystem, auf dem der Extent gesichert wird und die zugeordnete Startadresse des ersten Bereiches
    Figure 00140010
    auf dem Speichersystem. Anschließend berechnet man aus den ai Bits zur Bestimmung des Extentbereichs den eindeutigen Bereich j, der dieser virtuellen Adresse zugeordnet wird. In der bevorzugten Variante dieses Verfahren entsprechen die ai Bits j. Ohne Beschränkung der Allgemeinheit kann jedoch auch jede weitere eindeutige Zuordnung zwischen den ai Bits und den
    Figure 00140011
    Bereichen verwendet werden.
  • Die Speicheradresse auf dem Speichersystem berechnet sich zu
    Figure 00140012
    + πi(Ol ⊕...⊕O1). In der bevorzugten Ausgestaltung berechnet sich die Startadresse auf dem Speichersystem dann vereinfacht zu
    Figure 00140013
    + Ol ⊕...⊕ O1.
  • Durch die Verwendung dieser neuen Indirektionsstufe wird es möglich, in dem Adressraum nahe beieinander liegende Adressen auch auf dem Speichersystem nahe beieinander zu legen und hiermit z.B. die Bewegung von Festplattenarmen zu minimieren.
  • Eine Darstellung der Auswirkungen dieses erweiterten Verfahrens läßt sich aus der 7 erkennen, in der in Anlehnung an die Darstellung der 6 die Anordnung einzelner Speicherbereiche auf der in der 6 dargestellten Festplatte 1 zu erkennen ist, wenn die Daten wie vorstehend beschrieben modifiziert abgespeichert werden. Im Gegensatz zu der Darstellung in der 6 bleiben logisch aufeinanderfolgende Datenbereiche, die nicht direkt im Adreßraum aufeinander folgen müssen, grundsätzlich benachbart zueinander angeordnet, allerdings hier schematisch verschränkt dargestellt. Dadurch kann aber etwa der Schreib-/Lesekopf einer Festplatte mit Read-ahead-Cache die zwar gestückelt abgespeicherten, aber einander benachbart angeordneten Daten einfacher, schneller und mit weniger Kopfbewegungen auslesen, als dies bei der Speichersystematik gemäß Anspruch 1 der Fall wäre.
  • Werden bisher bekannte Verfahren zur Verwaltung der Extents verwendet, so kann die Speicherkapazität auf Anforderung bereitgestellt werden. D.h., einer Adresse und dem zugehörigen Extent muß erst dann ein Ort auf dem Speichersystem zugeordnet werden, wenn erstmalig auf eine zu einem Extent zugeordnete Adresse zugegriffen wird.
  • Bei dem im Rahmen dieser Erfindung vorgestellten Verfahren ist dieses jedoch nur eingeschränkt möglich. Wird erstmalig auf eine Adresse innerhalb eines Extents zugegriffen, so wird für alle, auch nicht logisch mit dieser Adresse direkt zusammenhängende Adressen dieses Extents Speicherkapazität der Größe 2|O| allokiert. Für den Fall, daß |O|>>|O1| gewählt wird, kann dieses dazu führen, daß bereits der Zugriff auf wenige hintereinander folgende Adressen innerhalb des Adressraums zu einer starken Belegung der verfügbaren Speicherkapazität führen.
  • Aus diesem Grund sollte vor der Anwendung der Verfahren innerhalb dieser Erfindung eine Aufteilung des Adressraums derart durchgeführt werden, daß alle Offsetbits tatsächlich für das Verfahren relevant sind, d.h. die Offsetbits in einem Bereich des Adressraums liegen, der von der über dem Verfahren liegenden Applikation tat sächlich genutzt wird. Dieses kann zum Beispiel durch eine Beschränkung des Adressraums auf die maximale Kapazität der angeforderten Daten geschehen.
  • Hierdurch wird dann sichergestellt, daß nicht mehr Kapazität von dem Verfahren angefordert wird, als maximal zu Beginn vorgesehen. Die hierbei bereitgestellte Kapazität kann jedoch im Vergleich zu bekannten Verfahren immer noch deutlich schneller belegt werden.
  • Aus diesem Grund wird an dieser Stelle eine weitere Ausgestaltung des Verfahrens vorgestellt, die eine deutlich effizientere Ausnutzung der zur Speicherung der Daten vorgesehenen Kapazität ermöglicht.
  • Bei diesem Verfahren wird im Allgemeinen die Kapazität erst dann zur Verfügung gestellt, wenn sie von der sie anfordernden Applikation, z.B. einem Dateisystem oder einer Datenbank, tatsächlich benötigt wird.
  • Eine bevorzugte Ausgestaltung dieses Verfahrens sieht wie im Folgenden dargestellt aus:
    Zur erstmaligen Allokierung von Speicherplatz für einen Extent werden nicht bereits alle jemals theoretisch verwendbaren 2|O| Datenblöcke zugeordnet, insbesondere wird in einer bevorzugten Ausgestaltung zu Beginn dem Verfahren zur Extentallokierung eine Speicherkapazität CAppl = CStart zugeordnet. Diese Größe muß in keinem Zusammenhang zu dem maximal erwarteten Kapazitätsbedarf der ausführenden Applikation stehen. Es wird dabei angenommen, daß z Bits der |O| Offsetbits nicht innerhalb der relevanten Adressbits liegt. Hierdurch wird die Größe eines jeden Extents von 2|O| auf 2|O-z| reduziert und die durch einen Extent belegte Speicherkapazität reduziert. Benötigt die Applikation mehr als die aktuell bereitgestellte Kapazität CAppl, so wird die Kapazität CAppl um den benötigten Wert γ zu CAppl = CAppl + γ erhöht.
  • Nach der Erhöhung der Speicherkapazität wird eine Neuverteilung der Daten gemäß des vorgestellten Verfahrens vorgenommen, falls sich die Anzahl der relevanten Offsetbits erhöht hat. Dieses kann in einem Hintergrundprozess im laufenden Betrieb oder auch durch eine Unterbrechung des laufenden Betriebs durchgeführt werden.
  • Weiterhin ist es denkbar, da bei dem vorgeschlagenen Verfahren die Metainformationen nicht bereits zu Beginn der Speicherbelegung minimiert werden, sondern eine Minimierung nach bereits erfolgter Belegung durch ein herkömmliches Verfahren stattfindet.
  • Die hierbei vorzunehmenden Umplazierungen können im laufenden Betrieb durch ein geeignetes Verfahren für den Benutzer transparent erfolgen oder können auch durch eine Unterbrechung des Systems und einer während dieser Unterbrechung durchgeführten Umplazierung erfolgen.
  • Das Verfahren zur Minimierung der Metainformationen kann auch in einer Mischung aus herkömmlichen Verfahren und dem hier vorgestellten Verfahren durchgeführt werden.
  • Weiterhin muß zur Durchführung der Verfahren zur Minimierung der Metainformationen die Größe der Extents nicht einheitlich sein, sondern kann in dem System schwanken.
  • Figurenliste
  • 1 – Einteilung der Datenblockadresse in Extent- und Offsetanteil und Berechnung der physikalischen Position eines Datenblockes,
  • 2 – Tabelle mit Anzahl der Metainformationen, die für gegebene Extentgröße und gegebene Datenmenge gespeichert werden muß,
  • 3 – Einteilung der Datenblockadresse in k ≥ 2 Extenanteile und l Offsetanteile
  • 4 – Einteilung der Datenblockadresse in zwei Extentanteile und 2 Offsetanteile
  • 5a-5d – Darstellung der Auswirkungen der veränderten Abspeicherung von Daten gemäß dem erfindungsgemäßen Verfahren in einem Zahlenbeispiel für einen kleinen Adreßbereich sowie vereinfachte graphische Anordnung der nach konventioneller und erfindungsgemäßer Adressierung,
  • 6 – Zuordnung der Anteile eines Extents zu einer physikalischen Position auf einem Speichersystem nach dem Verfahren gemäß Anspruch 1 mit l = k = 2, bei der die Lokalität der Zugriffe aufgebrochen wird,
  • 7 – Zuordnung der Anteile eines Extents zu einer physikalischen Position auf einem Speichersystem nach dem modifizierten Verfahren gemäß Anspruch 7 mit l = k = 2, bei dem die Lokalität der Zugriffe erhalten bleibt.
  • Referenzen
    • [BSS02] Brinkmann, A., K. Salzwedel und C. Scheideler: Compact, adaptive placement schemes for non-uniform distribution requirements. In Proc. of the 14th ACM Symposium on Parallel Algorithms and Architectures (SPAA), Seiten 53 – 62, 2002.
    • [KLL+97] Karger, D., E. Lehman, F.T. Leighton, M. Levine, D. Lewin und R. Panigrahy: Consistent Hashing and Random Trees: Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web. In: Proceedings of the 29th ACM Symposium on Theory of Computing (STOC), Seiten 654 – 663, Mai 1997.
    • [PGK88] Patterson, D.A., G. Gibson und R.H. Katz: A Case for Redundant Arrays of Inexpensive Disks (RAID). In: Proceedings of the 1988 ACM Conference on Management of Data (SIGMOD), Seiten 109 – 116, Juni 1988.

Claims (27)

  1. Verfahren zur Verteilung von Datenblöcken oder Objekten über Datenspeichermedien in Form von Extents in einem Speichersystem mit zufallsgesteuerter oder deterministischer Plazierung von Speicherinformationen in Computersystemen und/oder Datenbanken und/oder Speichernetzwerken und/oder einem Datennetz, vorzugsweise einem Intranet und/oder dem Internet, wobei die virtuelle Adressierung jedes Extents in dem Speichersystem durch Angabe von Extentanteil und Offsetanteil der Adresse erfolgt, dadurch gekennzeichnet, daß die Adresse jedes Extents innerhalb des Speichersystems bei gleichbleibender Adressierungsbitzahl durch eine Aufteilung in mehr als einen Extentanteil und eine Anzahl von Offsetanteilen für jeden der Extenanteile aufgespalten wird, wobei die Aufteilung Adressierungssprünge innerhalb des Extents bei der Speicherung eines Extents auf einer Speichereinheit des Speichersystems hervorruft.
  2. Verfahren gemäß Anspruch 1, dadurch gekennzeichnet, daß durch die Adressierungssprünge der zum Speichern des Extents benötigte Speicherplatz nicht mehr zusammenhängend in physikalisch aufeinanderfolgenden Bereichen auf einer Speichereinheit innerhalb des Speichersystems, sondern in verteilten, logisch miteinander verknüpften Bereichen eines Speichersystems angelegt wird.
  3. Verfahren gemäß einem der Ansprüche 1 oder 2, dadurch gekennzeichnet, daß die Aufteilung der Adresse jedes Extents durch einen Partitionierungsvektor aus einer Bitfolge von mindestens zwei Extentanteilen und mindestens zwei Offsetanteilen erfolgt.
  4. Verfahren gemäß Anspruch 3, dadurch gekennzeichnet, daß die Länge der Offsetanteile des Partitionierungsvektors möglichst gering gehalten wird.
  5. Verfahren gemäß einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß eine Adressierung des Extents auf einem Speichersystem über eine Funktion f(E1,...,Ek) mit k als Anzahl der Extentanteile durchgeführt wird, wobei vor dem erstmaligen Zugriff eines Datenblocks in dem Extent ein zusammenhängender Speicherbereich auf dem ihm zugeordneten Speichersystem mit der Startadresse AE zugeordnet, die |O| Offsetbits der Startadresse auf vorgebbare Werte gesetzt und dieser Speicherbereich sowie der zugehörige Extentanteil der Adresse in einem zentralen oder verteilten Wörterbuch gesichert werden, wobei der einem Datenblock des Extents zugeordnete Speicherort sich dann aus der Blockadresse berechnet zu AE + πi(Ol⊕...⊕O1)mit πi(W) als eindeutiger Permutation des Wertes W und Ol⊕...⊕O1 als Konkatenierung der Bits =Ol, bis O1 mit 1 als Anzahl der Offsetanteile.
  6. Verfahren gemäß Anspruch 5, dadurch gekennzeichnet, daß vor dem erstmaligen Zugriff eines Datenblocks in dem Extent ein zusammenhängender Speicherbereich mindestens der Extentgröße auf dem ihm zugeordneten Speichersystem mit der Startadresse AE zugeordnet wird.
  7. Verfahren gemäß einem der Ansprüche 5 oder 6, dadurch gekennzeichnet, daß die Zuordnung eines Extents derart durchgeführt wird, daß die |O| Offsetbits der Startadresse auf 0 gesetzt werden.
  8. Verfahren gemäß einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß die Speichermedien in verschiedene Bereich partitioniert werden und eine Zuordnung eines Datenblocks zu einem Bereich des Speichermediums auf Basis seines Offsetanteils erfolgt.
  9. Verfahren gemäß Anspruch 8, dadurch gekennzeichnet, daß aus dem Bereich des Extentanteils der virtuellen Adresse für ein Speichersystem i mit einer Speicherkapazität von Ci ai Bits ausgewählt werden, die ai Bits zur Einteilung des Speichersystems i in
    Figure 00220001
    Zonen der Größe
    Figure 00220002
    genutzt werden, wobei der erste Bereich des Speichersystems auf der Anfangsadresse
    Figure 00220003
    startet und anschließend eine Abbildungsfunktion verwendet wird, durch die aus der Anfangsadresse
    Figure 00220004
    des ersten Bereiches eindeutige Anfangsadressen der weiteren Bereiche ermittelt werden können.
  10. Verfahren gemäß Anspruch 9, dadurch gekennzeichnet, daß für die Auswahl der ai Bits die niederwertigsten ai Bits des Extentanteils benutzt werden.
  11. Verfahren gemäß einem der Ansprüche 9 oder 10, dadurch gekennzeichnet, daß als Berechnungsvorschrift für jedes Speichersystem i
    Figure 00220005
    =
    Figure 00220006
    + (j – 1)Ci/
    Figure 00220007
    benutzt wird.
  12. Verfahren gemäß einem der Ansprüche 9 bis 11, dadurch gekennzeichnet, daß die letzten |O| Bits der Startadresse
    Figure 00220008
    auf 0 gesetzt.
  13. Verfahren gemäß einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß die Zuordnung zwischen einer virtuellen Adresse und einem Speicherort auf einem Speichersystem wie folgt durchgeführt wird: – über eine Funktion f(E1,...,Ek) wird eine Abbildung des Extentanteils auf ein Speichersystem i durchgeführt, – beim oder vor dem erstmaligen Schreiben eines Datenblocks werden dem Extent
    Figure 00220009
    zusammenhängende Bereiche der Größe
    Figure 00220010
    Datenblöcke auf dem ihm zugeordneten Speichersystem zugeordnet, – dem ersten Bereich des Extents wird die Startadresse
    Figure 00230001
    zugeordnet und die Startadresse und der zugehörige Extentanteil der Adresse in einem zentralen oder in einem verteilten Wörterbuch gesichert, wobei die Startadresse der weiteren Bereiche sich für jeden Bereich j mit 2 ≤ i ≤
    Figure 00230002
    zu
    Figure 00230003
    =
    Figure 00230004
    + (j – 1)Ci/
    Figure 00230005
    ermittelt.
  14. Verfahren gemäß Anspruch 13, dadurch gekennzeichnet, daß der einem Datenblock zugeordnete Speicherort sich aus der Blockadresse wie folgt berechnet: – suche aus dem Wörterbuch das Speichersystem, auf dem der Extent gesichert wird und die zugeordnete Startadresse des ersten Bereiches
    Figure 00230006
    auf dem Speichersystem, – berechne aus den ai Bits zur Bestimmung des Extentbereichs den eindeutigen Bereich j, der dieser virtuellen Adresse zugeordnet wird, – die Speicheradresse auf dem Speichersystem berechnet sich zu
    Figure 00230007
    + πi(Ol⊕...⊕O1).
  15. Verfahren gemäß einem der Ansprüche 13 oder 14, dadurch gekennzeichnet, daß die ai Bits j entsprechen.
  16. Verfahren gemäß einem der Ansprüche 13 bis 15, dadurch gekennzeichnet, daß jede weitere eindeutige Zuordnung zwischen den ai Bits und den
    Figure 00230008
    Bereichen verwendet werden kann.
  17. Verfahren gemäß einem der Ansprüche 13 bis 16, dadurch gekennzeichnet, daß sich die Startadresse auf dem Speichersystem zu
    Figure 00230009
    + Ol⊕...⊕O1 berechnet.
  18. Verfahren gemäß einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß zur erstmaligen Allokierung von Speicherplatz für einen Extent nicht bereits alle jemals theoretisch verwendbaren 2|O| Datenblöcke zugeordnet werden.
  19. Verfahren gemäß Anspruch 18, dadurch gekennzeichnet, daß zur Allokierung von Extents einer Applikation eine Speicherkapazität CAppl = CStart zugeordnet wird, wobei die z Bits der |O| Offsetbits nicht innerhalb der relevanten Adressbits liegen und die Größe eines jeden Extents sich von 2|O| auf 2|O-z| und dadurch sich die durch einen Extent belegte Speicherkapazität reduziert.
  20. Verfahren gemäß Anspruch 19, dadurch gekennzeichnet, daß die Kapazität CAppl um den benötigten Wert γ zu CAppl = CAppl + γ erhöht wird, wenn die Applikation mehr als die aktuell bereitgestellte Speicherkapazität CAppl benötigt.
  21. Verfahren gemäß einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß nach der Erhöhung der Speicherkapazität eine Neuverteilung der gespeicherten Daten vorgenommen wird, falls sich die Anzahl der relevanten Offsetbits erhöht hat.
  22. Verfahren gemäß Anspruch 21, dadurch gekennzeichnet, daß die Neuverteilung der gespeicherten Daten in einem Hintergrundprozeß im laufenden Betrieb oder durch eine Unterbrechung des laufenden Betriebs durchgeführt wird.
  23. Verfahren gemäß einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß die Metainformationen nicht bereits zu Beginn der Speicherbelegung minimiert werden, sondern eine Minimierung findet nach bereits erfolgter Belegung des Speicherplatzes durch ein herkömmliches Verfahren stattfindet.
  24. Verfahren gemäß Anspruch 23, dadurch gekennzeichnet, daß die vorzunehmenden Minimierung der Metainformationen in einem Hintergrundprozeß im laufenden Betrieb oder durch eine Unterbrechung des laufenden Betriebs durchgeführt wird.
  25. Verfahren gemäß einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß die Größe der Extents nicht einheitlich gewählt wird.
  26. Computerprogrammprodukt, das ein computerlesbares Speichermedium umfaßt, auf dem ein Programm gespeichert ist, das es einem Computer ermöglicht, nachdem es in den Speicher des Computers geladen worden ist, ein Verfahren zur Verteilung von Datenblöcken in Speichernetzwerken und/oder einem Datennetz durchzuführen, wobei das Verfahren zur Verteilung von Datenblöcken die Verfahrensschritte gemäß einem der Ansprüche 1 bis 25 umfaßt.
  27. Computerlesbares Speichermedium, auf dem ein Programm gespeichert ist, das es einem Computer ermöglicht, nachdem es in den Speicher des Computers geladen worden ist, ein Verfahren zur Datenspeicherung in Speichernetzwerken und/oder einem Datennetz durchzuführen, wobei die Datenspeicherung die Verfahrensschritte gemäß einem der Ansprüche 1 bis 25 umfaßt.
DE200410046243 2004-09-22 2004-09-22 Verfahren zur Verwaltung von Metainformationen zur Verteilung von Datenblöcken oder Objekten über computerlesbare Speichermedien sowie Computerprogrammprodukt und computerlesbares Speichermedium Ceased DE102004046243A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE200410046243 DE102004046243A1 (de) 2004-09-22 2004-09-22 Verfahren zur Verwaltung von Metainformationen zur Verteilung von Datenblöcken oder Objekten über computerlesbare Speichermedien sowie Computerprogrammprodukt und computerlesbares Speichermedium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE200410046243 DE102004046243A1 (de) 2004-09-22 2004-09-22 Verfahren zur Verwaltung von Metainformationen zur Verteilung von Datenblöcken oder Objekten über computerlesbare Speichermedien sowie Computerprogrammprodukt und computerlesbares Speichermedium

Publications (1)

Publication Number Publication Date
DE102004046243A1 true DE102004046243A1 (de) 2006-04-06

Family

ID=36061919

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200410046243 Ceased DE102004046243A1 (de) 2004-09-22 2004-09-22 Verfahren zur Verwaltung von Metainformationen zur Verteilung von Datenblöcken oder Objekten über computerlesbare Speichermedien sowie Computerprogrammprodukt und computerlesbares Speichermedium

Country Status (1)

Country Link
DE (1) DE102004046243A1 (de)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6718436B2 (en) * 2001-07-27 2004-04-06 Electronics And Telecommunications Research Institute Method for managing logical volume in order to support dynamic online resizing and software raid and to minimize metadata and computer readable medium storing the same
DE10236796B4 (de) * 2002-08-08 2004-12-02 Christian Dr. Scheideler Verfahren und Anordnung zur randomisierten Datenspeicherung in Speichernetzwerken und/oder einem Intranet und/oder dem Internet sowie ein entsprechendes Computerprogramm-Erzeugnis und ein entsprechendes computerlesbares Speichermedium

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6718436B2 (en) * 2001-07-27 2004-04-06 Electronics And Telecommunications Research Institute Method for managing logical volume in order to support dynamic online resizing and software raid and to minimize metadata and computer readable medium storing the same
DE10236796B4 (de) * 2002-08-08 2004-12-02 Christian Dr. Scheideler Verfahren und Anordnung zur randomisierten Datenspeicherung in Speichernetzwerken und/oder einem Intranet und/oder dem Internet sowie ein entsprechendes Computerprogramm-Erzeugnis und ein entsprechendes computerlesbares Speichermedium

Similar Documents

Publication Publication Date Title
DE10236796B4 (de) Verfahren und Anordnung zur randomisierten Datenspeicherung in Speichernetzwerken und/oder einem Intranet und/oder dem Internet sowie ein entsprechendes Computerprogramm-Erzeugnis und ein entsprechendes computerlesbares Speichermedium
DE69626569T2 (de) Datenkompressionsverfahren und Struktur für eine Speichereinheit mit direktem Zugriff
DE69533058T2 (de) Speicherplattenanordnung mit redundanter Speicherung und Verfahren zur inkrementalen Redundanzerzeugung während des Datenschreibens auf die Speicherplattenanordnung
DE102013215535B4 (de) Sicherung oder wiederherstellung von daten mit hilfe eines hauptspeichers und nichtflüchtiger speichermedien
DE69834026T2 (de) Verfahren und vorrichtung zur befehlswiedereinordnung und wiederherstellung von daten zur originalen befehlsreihenfolge
DE102019132371A1 (de) Zuordnungsverwaltung logisch zu physisch unter Verwendung von nichtflüchtigem Speicher
DE4410060B4 (de) Übersetzungsvorrichtung zum Umsetzen einer virtuellen Speicheradresse in eine physikalische Speicheradresse
DE69734129T2 (de) Hierarchisches Datenverarbeitungssystem mit symetrischen Multiprozessoren
DE112012004798B4 (de) Anpassung der Auslagerungsgeschwindigkeit auf Grundlage von Anforderungen an Lese- und Schreib-Antwortzeiten
DE69533575T2 (de) Verfahren der und System zur Speicherplatzreservierung für Datenmigration in einem hierarchischen Datenspeicherungssystem durch dynamische Berechnung maximalen Speicherplatzes für Spiegelredundanz
DE69722962T2 (de) Strukturiertes datenspeichersystem mit global adressierbarem speicher
DE69819686T2 (de) Objekt und verfahren zum bereitstellen eines effizienten mehrbenutzerzugriff auf verteilten betriebssystemkernkode durch instanzierung
DE69724834T2 (de) System für hochverfügbare datenspeicherung mit allgemein-adressiertem speicher
DE112017005868T5 (de) Verwaltung von e/a-abläufen für datenobjekte in einem speichersystem
DE112010003794B4 (de) Datenspeicherung unter Verwendung von Bitmaps
DE10348326A1 (de) Permanentspeichervorrichtung, die an eine Kommunikationsverbindung angeschlossen ist
DE3934145C2 (de) Platteneinheit-Steuerungsvorrichtung und Informationsverarbeitungssystem, das dieselbe enthält
DE102012218269B4 (de) Schnittstelle zur Verwaltung von Datenverschiebung in einem Speichersystem mit thin provisioning
DE112010004969T5 (de) Hybrides Speicherteilsystem
DE112010003788T5 (de) Datenspeicherung
DE112013006646B4 (de) Computer, System und computerlesbares Ablagemedium zum Identifizieren von Arbeitslast und Dimensionierung von Puffern zum Zweck der Volumenreplikation
DE112012004796B4 (de) Periodische Auslagerungen von Innen- und Aussendurchmessern von Platten zum Verbessern von Lesereaktionszeiten
DE102004036323A1 (de) Erweiterte Speicherverwaltungsarchitektur für große Datenumfänge
DE112019000992T5 (de) Verwaltung virtueller Speicherlaufwerke in einem Datenspeichersystem
DE602004007925T2 (de) Verwalten einer beziehung zwischen einem zielvolumen und einem quellenvolumen

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection