DE102008022831B4 - Arbeitsverfahren für ein Speichersubsystem und Vorrichtungen zur Durchführung des Arbeitsverfahrens - Google Patents

Arbeitsverfahren für ein Speichersubsystem und Vorrichtungen zur Durchführung des Arbeitsverfahrens

Info

Publication number
DE102008022831B4
DE102008022831B4 DE102008022831.1A DE102008022831A DE102008022831B4 DE 102008022831 B4 DE102008022831 B4 DE 102008022831B4 DE 102008022831 A DE102008022831 A DE 102008022831A DE 102008022831 B4 DE102008022831 B4 DE 102008022831B4
Authority
DE
Germany
Prior art keywords
mass storage
memory
data
mass
storage
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.)
Active
Application number
DE102008022831.1A
Other languages
English (en)
Other versions
DE102008022831A1 (de
Inventor
Robert Depta
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Technology Solutions Intellectual Property GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Technology Solutions Intellectual Property GmbH filed Critical Fujitsu Technology Solutions Intellectual Property GmbH
Priority to DE102008022831.1A priority Critical patent/DE102008022831B4/de
Publication of DE102008022831A1 publication Critical patent/DE102008022831A1/de
Application granted granted Critical
Publication of DE102008022831B4 publication Critical patent/DE102008022831B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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, networked record carriers
    • G06F3/0601Dedicated interfaces to storage systems
    • G06F3/0602Dedicated interfaces to storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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, networked record carriers
    • G06F3/0601Dedicated interfaces to storage systems
    • G06F3/0628Dedicated interfaces to storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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, networked record carriers
    • G06F3/0601Dedicated interfaces to storage systems
    • G06F3/0668Dedicated interfaces to storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/068Hybrid storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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, networked record carriers
    • G06F3/0601Dedicated interfaces to storage systems
    • G06F3/0602Dedicated interfaces to storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • Y02D10/154

Abstract

Arbeitsverfahren für ein Speichersubsystem (1), aufweisend wenigstens einen ersten Massenspeicher (15) mit einem Festkörperspeichermedium (13), wenigstens einem zweitem Massenspeicher (16) mit einem beweglichen Schreib-/Lesekopf oder beweglichen Speichermedium und wenigstens einer Steuereinheit (6) zum Ansteuern des ersten Massenspeichers (15) und des zweiten Massenspeichers (16), mit den folgenden Schritten: – Bestimmen von maximalen Zugriffszeiten und Datenübertragungsraten des ersten Massenspeichers (15) und des zweiten Massenspeichers (16) in einer Initialisierungsphase, – Empfangen einer Anfrage (21, 31) zum Speichern oder Lesen von Daten, wobei die Anfrage (21, 31) wenigstens eine Adressinformation umfasst, – Bestimmen eines ersten Speicherbereichs (17) auf dem ersten Massenspeicher (15) basierend auf der Adressinformation, – Bestimmen eines zweiten Speicherbereichs (18) auf dem zweitem Massenspeicher (16) basierend auf der Adressinformation, – Übermitteln einer ersten Teilanfrage (24) bezüglich des ersten Speicherbereichs (17) an den ersten Massenspeicher (15) und – zeitnahes Übermitteln einer zweiten Teilanfrage (25) bezüglich des zweiten Speicherbereichs (18) an den zweiten Massenspeicher (16), – wobei beim Bestimmen des ersten und zweiten Speicherbereichs (17, 18) für einen Dateizugriff auf den zweiten Speicherbereich (18) auf Grundlage der in der Initialisierungsphase ermittelten Daten automatisch ein Abbild der Adresse in dem ersten Massenspeicher (15) bestimmt wird und eine Größe des ersten Speicherbereichs (17) im Wesentlichen durch eine zu erwartende Verzögerung (26) beim Ausführen der zweiten Teilanfrage (25, 33) bestimmt wird.

Description

  • Die Erfindung betrifft ein Arbeitsverfahren für ein Speichersubsystem, aufweisend wenigstens einen ersten Massenspeicher, einen zweiten Massenspeicher und eine Steuereinheit zum Ansteuern des ersten Massenspeichers und des zweiten Massenspeichers. Darüber hinaus betrifft die Anmeldung ein Speichersubsystem aufweisend wenigstens eine Schnittstelle, wenigstens einen ersten Massenspeicher, wenigstens einen zweiten Massenspeicher und eine Steuereinheit sowie eine Steuereinheit für ein solches Speichersubsystem und ein Computerprogrammprodukt.
  • Speichersubsysteme mit mehreren Massenspeichern sind insbesondere als so genannte RAID-Systeme (redundant array of independent discs) bekannt. Sie kommen insbesondere bei Serversystemen zum Einsatz, in denen oftmals die Datenverarbeitungseinheit und das Speichersubsystem voneinander getrennt sind. Insbesondere bei sehr leistungsfähigen Serversystemen, beispielsweise so genannten Serverfarmen, begrenzen die Speichersubsysteme oftmals die Leistung des Gesamtsystems. Beispielsweise erfordern so genannte Streaming-Anwendungen, bei denen ein Server große Mengen von Daten sequentiell verarbeitet, besonders kurze Zugriffszeiten, und hohe Datenübertragungsraten und Speicherkapazitäten.
  • Aus dem Stand der Technik sind unterschiedliche Massenspeichersysteme bekannt. Relativ weit verbreitet sind Massenspeichersysteme mit wenigstens einem beweglichen Schreib-/Lesekopf oder beweglichem Speichermedium, beispielsweise magnetische, magneto-optische oder optische Speicherlaufwerke. Solche Speicherlaufwerke zeichnen sich durch sehr hohe Datenkapazitäten und -dichten aus und sind verhältnismäßig kostengünstig in der Herstellung. Insbesondere durch einen logischen Verbund mehrerer solcher Laufwerke können verhältnismäßig einfach Massenspeicher mit einigen Terrabyte Speicherkapazität aufgebaut werden. Massenspeicher mit beweglichen Schreib-/Leseköpfen oder Speichermedien weisen jedoch den Nachteil auf, dass der bewegliche Teil vor einen Datenzugriff zunächst positioniert werden muss, was eine Zugriffsverzögerung von derzeit mehreren Millisekunden verursacht. Somit eignen sich solche Massenspeicher nicht für den Einsatz mit Anwendungen, die sehr hohe Anforderungen an die Zugriffszeit stellen, insbesondere so genannte Echtzeitanwendungen.
  • Darüber hinaus sind aus dem Stand der Technik Festkörperspeichermedien bekannt. Beispielsweise verwenden so genannte Solid State Discs (SSD) eine Vielzahl von Halbleiterspeicherbauelementen, um Daten zu speichern. Dabei kommen insbesondere nicht flüchtige EPROM-Bausteine oder batteriegepufferte RAM-Bausteine zum Einsatz. Solche Festkörperspeichermedien zeichnen sich durch sehr hohe Zugriffsgeschwindigkeiten aus, weil auf jede der enthaltenen Speicherzellen direkt zugegriffen werden kann. Derzeit sind Zugriffszeiten im Bereich einiger Nanosekunden möglich. Solche Festkörperspeichermedien weisen jedoch den Nachteil auf, dass sie verhältnismäßig teuer sind und eine vergleichsweise geringe Speicherdichte und -kapazität aufweisen. Daher eignen sie sich nicht zum Speichern von sehr umfangreichen Daten, beispielsweise im Bereich von mehreren hundert Gigabyte.
  • Aus der EP 1890236 A2 ist eine so genannte Hybridfestplatte, d. h. eine Festplatte mit zwei unterschiedlichen Speichermedium, insbesondere einer konventionellen Festplatte und einem nichtflüchtigen Flashspeicher, bekannt. Sie kann in unterschiedlichen Betriebsarten, insbesondere einem Energiesparmodus (Power Safe Mode), einem Hochleistungsmodus (Performance Mode), einem Modus für ungünstige Umweltbedingungen (Harsh Environment Mode) und einem Schreibunterdrückungsmodus (Write Inhibit Mode) betrieben werden. In dem Hochleistungsmodus werden Daten sowohl auf ein magnetisches Speichermedium als auch in den nichtflüchtigen Speicherchip geschrieben. In den verbleibenden Betriebsarten wird jeweils nur von einem der beiden Speichermedien Gebrauch gemacht.
  • Die sogenannten Windows PC Accelerators (ULR: http://www.microsoft.com/whdc/system/sysperf/accelerator.mspx) betreffen mehrere leistungsverbessernde Technologien zum Verbessern der Zugriffszeit beim Paging. Als ein möglicher Ansatzpunkt zur Leistungsverbesserung sind darin insbesondere auch Hybridfestplatten genannt.
  • Die US 2006/0090031 A1 beschreibt ein Verfahren, bei dem einzelne Sektoren eines rotierenden Speichermediums zwischengespeichert werden, um die Systemleistung zu erhöhen.
  • Die DE 112005001430 T5 betrifft ein Verfahren zum Anwenden einer virtualisierten Datenstrukturtabelle. Insbesondere betrifft sie Verfahren zur Optimierung der Speicherausnutzung bei der Datenübertragung in einer Netzwerkumgebung.
  • Die DE 19960114 A1 betrifft ein Verfahren zum Speichern von Daten in einer Datei eines Dateispeichersystems. Dabei werden darin mindestens zwei unterschiedliche Fragmente der Datei gespeichert, die separaten Bereichen des Dateispeichersystems zugeordnet sind, wobei Einträge einer Zuordnungsliste zu den Dateifragmenten in dem Arbeitsspeicher gespeichert sind.
  • Aufgabe der vorliegenden Erfindung ist es, ein Arbeitsverfahren für ein Speichersubsystem aufzuzeigen, das zugleich eine hohe Zugriffsgeschwindigkeit und hohe Datenübertragungsraten und -kapazitäten aufweist. Insbesondere soll sich ein solches Arbeitsverfahren zur Verwendung mit Echtzeit- und Streaminganwendungen eignen. Darüber hinaus sollen Vorrichtungen beschrieben werden, die zur Durchführung des Arbeitsverfahrens eingerichtet sind.
  • Gemäß einer ersten Ausgestaltung der Erfindung wird ein Arbeitsverfahren für ein Speichersubsystem aufweisend wenigstens einen ersten Massenspeicher mit einem Festkörperspeichermedium, wenigstens einen zweiten Massenspeicher mit einem beweglichen Schreib-/Lesekopf oder beweglichem Speichermedium und wenigstens eine Steuereinheit zum Ansteuern des ersten Massenspeichers und des zweiten Massenspeichers beschrieben.
  • Das Arbeitsverfahren umfasst die folgenden Schritte:
    • – Bestimmen von maximalen Zugriffszeiten und Datenübertragungsraten des ersten Massenspeichers und des zweiten Massenspeichers in einer Initialisierungsphase,
    • – Empfangen einer Anfrage zum Speichern oder Lesen von Daten, wobei die Anfrage wenigstens eine Adressinformation umfasst,
    • – Bestimmen eines ersten Speicherbereiches auf dem ersten Massenspeicher basierend auf der Adressinformation,
    • – Bestimmen eines zweiten Speicherbereiches auf dem zweiten Massenspeicher basierend auf der Adressinformation,
    • – Übermitteln einer ersten Teilanfrage bezüglich des ersten Speicherbereiches an den ersten Massenspeicher und
    • – zeitnahes Übermitteln einer zweiten Teilanfrage bezüglich des zweiten Speicherbereichs an den zweiten Massenspeicher,
    • – wobei beim Bestimmen des ersten und zweiten Speicherbereichs für einen Dateizugriff auf den zweiten Speicherbereich auf Grundlage der in der Initialisierungsphase ermittelten Daten automatisch ein Abbild der Adresse in dem ersten Massenspeicher bestimmt wird und eine Größe des ersten Speicherbereichs im Wesentlichen durch eine zu erwartende Verzögerung beim Ausführen der zweiten Teilanfrage bestimmt wird.
  • Gemäß der ersten Ausgestaltung werden die Vorteile eines ersten Massenspeichers mit einem Festkörperspeichermedium und einem zweiten Massenspeicher mit einem beweglichen Schreib-/Lesekopf oder einem beweglichen Speichermedium miteinander kombiniert. Um zugleich eine hohe Zugriffsgeschwindigkeit und eine große Datenkapazität zu erreichen, wird eine Anfrage zum Speichern oder Lesen von Daten in eine erste und zweite Teilanfrage aufgeteilt, die an die beiden Massenspeicher verteilt werden. Auf diese Weise kann der erste Teil einer Anfrage von dem Festkörperspeichermedium mit einer geringen Zugriffszeit verarbeitet werden, während der zweite Teil der Anfrage von einem Massenspeicher mit einem beweglichem Schreib-/Lesekopf oder beweglichem Speichermedium verarbeitet wird.
  • Gemäß der ersten Ausgestaltung wird eine Größe des ersten Speicherbereichs im Wesentlichen durch eine zu erwartende Verzögerung beim Ausführen der zweiten Teilanfrage bestimmt. Durch eine Bestimmung der zu erwartenden Verzögerung und der Anpassung der Größe des ersten Speicherbereichs daraufhin kann die benötigte Speicherkapazität des ersten Massenspeichers minimiert werden, ohne dass es zu Zugriffsverzögerungen beim Zugriff auf das Speichersubsystem kommt.
  • Gemäß einer weiteren vorteilhaften Ausgestaltung wird die zu erwartende Verzögerung in Abhängigkeit einer Position des zweiten Speicherbereiches auf den zweiten Massenspeicher bestimmt. Massenspeicher mit beweglichen Teilen weisen in der Regel unterschiedliche Zugriffsgeschwindigkeiten für unterschiedliche Positionen eines angesprochenen Speicherbereichs auf. Indem die Position des zweiten Speicherbereichs bei der Bestimmung der Verzögerung berücksichtigt wird, kann der benötigte Speicherbereich auf dem ersten Massenspeicher weiter reduziert werden.
  • Gemäß einer weiteren vorteilhaften Ausgestaltung wird bei einer Anfrage zum Lesen von Daten zunächst eine erste Teilantwort des ersten Massenspeichers auf die erste Teilanfrage und danach eine zweite Teilantwort des zweiten Massenspeichers auf die zweite Teilanfrage von der Steuereinheit empfangen und zu einer gemeinsamen Antwort der Steuereinheit zusammengefügt. Durch das Zusammenfügen einer ersten und zweiten Teilantwort durch die Steuereinheit wirkt das Speichersubsystem nach außen wie ein einzelner Massenspeicher.
  • Gemäß einer weiteren vorteilhaften Ausgestaltung werden bei einer Anfrage zum Schreiben von Daten mit der ersten Teilanfrage Daten im Umfang der ersten Größe an den ersten Massenspeicher übermittelt, und mit der zweiten Teilanfrage nachfolgende Daten an den zweiten Massenspeicher übermittelt. Durch das Aufteilen einer Schreibanfrage in ersten und zweiten Daten werden nur die Daten auf dem ersten Massenspeicher gespeichert, die anfallen bis der zweite Massenspeicher bereit ist, die nachfolgenden Daten aufzunehmen.
  • Gemäß einer weiteren vorteilhaften Ausgestaltung werden die zu schreibenden Daten von der Steuereinheit zunächst in einen Pufferspeicher der Steuereinheit geschrieben, die Daten in dem Pufferspeicher werden in einem ersten Datenblock mit der ersten Größe und wenigstens einem zweiten Datenblock mit einer zweiten Größe aufgeteilt und nach Erhalt des ersten und des zweiten Datenblocks werden die erste Teilanfrage mit dem ersten Block an den ersten Massenspeicher und die zweite Teilanfrage mit dem zweitem Datenblock zeitnah an den zweiten Massenspeicher übermittelt. Durch Zwischenspeicherung und Aufteilung der zu schreibenden Daten in einem Pufferspeicher der Steuereinheit können Schreibanfragen noch schneller und nach außen hin transparent abgearbeitet werden.
  • Gemäß einer weiteren vorteilhaften Ausgestaltung werden nach Ausführung der zweiten Teilanfrage durch den zweiten Massenspeicher auch die Daten der ersten Teilanfrage mit einer dritten Teilanfrage an den zweiten Massenspeicher übermittelt. Durch Übermittlung einer zur ersten Teilanfrage äquivalenten dritten Teilanfrage an den zweiten Massenspeicher kann die Konsistenz der gespeicherten Daten des zweiten Massenspeichers auch beim Ausfall des ersten Massenspeichers sichergestellt werden.
  • Die der Erfindung zugrunde liegende Aufgabe wird ebenso durch ein Speichersubsystem gemäß Patentanspruch 8, eine Steuereinheit für ein Speichersubsystem gemäß Patentanspruch 11 und ein Computerprogrammprodukt gemäß Patentanspruch 12 gelöst.
  • Die offenbarte Lösung verbindet die Vorteile eines SSD oder NV-RAM basierten Speichermedium bezüglich der Dateizugriffszeiten beim Lesen und Schreiben und einer sehr hohen Datenkapazität, die basierend auf den preiswerten Massendatenspeichermedien, z. B. Festplatten, aufgebaut wurde. Dabei ist sie unabhängig von der Systemgröße und Systemkonfiguration.
  • Die sich aus der System- und Massenspeicher-Eigenschaften resultierenden Wartezeiten zu den angesprochenen Datenträgern werden über die Menge der vorgespeicherten Daten in den schnellen SSD/NV-RAM Speichermedien überbrückt. Durch eine entsprechende Konfigurierung des Speichersubsystems z. B. in Form eines RAID0-Datenträgerverbundes kann man außer einer konstanten Zugriffszeit auch die Nutzlatz-Datengeschwindigkeit anpassen.
  • Weitere vorteilhafte Ausgestaltungen der Erfindung sind in der nachfolgenden detaillierten Beschreibung und in den Unteransprüchen beschrieben. Die Erfindung wird nachfolgend anhand von Ausführungsbeispielen näher erläutert. Dabei werden in den nachfolgend beschriebenen Figuren gleiche Bezugszeichen für Teile mit gleicher oder ähnlicher Funktion verwendet.
  • In den Zeichnungen zeigen:
  • 1A ein Speichersubsystem mit einem ersten RAID-System und einem zweiten RAID-SYSTEM,
  • 1B ein schematische Darstellung eines Speichersubsystems aufweisend einen ersten Massenspeicher, einen zweiten Massenspeicher und eine Steuereinheit,
  • 2A eine schematische Darstellung eines Schreibzugriffs ohne Verwendung eines Puffer-Speichers,
  • 2B eine schematische Darstellung eines Schreibzugriffs unter Verwendung eines Puffer-Speichers,
  • 3A eine schematische Darstellung eines Lesezugriffs,
  • 3B eine schematische Darstellung eines Lesezugriffs, bei dem die zu lesenden Daten komplett von dem zweiten Massenspeicher abgerufen werden,
  • 4 ein Ablaufdiagramm eines Verfahrens zum Schreiben von Daten und
  • 5 ein Ablaufdiagramm eines Verfahren zum Lesen von Daten.
  • 1A zeigt ein Speichersubsystem 1. Das Speichersubsystem 1 umfasst ein erstes RAID-System 2 und ein zweites RAID-System 3. Das erste RAID-System 2 und das zweite RAID-System 3 sind über ein Datennetzwerk 4 miteinander gekoppelt. Beispielsweise kann es sich bei dem ersten RAID-System 2 um eine lokale, in einem Server-Rack angeordnete Speicherkomponente handeln. Bei dem zweiten RAID-System 3 kann es sich beispielsweise um ein entfernt aufgestelltes Netzwerklaufwerk, auch bekannt als ”Network Attached Storage” (NAS) handeln. Das erste und das zweite RAID-System 2 bzw. 3 können beispielsweise über ein Fibre-Channel-Netzwerk miteinander gekoppelt werden.
  • An das Speichersubsystem 1 ist des Weiteren ein Server-Computer 5 angeschlossen, der zur Verarbeitung von Daten dient. Hierzu greift der Server-Computer 5 auf die Daten des Speichersubsystems 1 zu. Das erste RAID-System 2 umfasst eine Steuereinheit 6, aufweisend eine Schnittstelle 7 zum Anschluss des Speichersubsystems 1 an den Server-Computer 5, eine zweite Schnittstelle 8 zum Anschluss lokaler Massenspeicher und eine dritte Schnittstelle 9 zum Anschluss entfernter Massenspeicher über das Datennetzwerk 4. Des Weiteren umfasst die Steuereinheit 6 einen Mikrocontroller oder Mikroprozessor 10, einen Arbeitsspeicher 11 und einen Cache- oder Pufferspeicher 12. Selbstverständlich können der Arbeitsspeicher 11 und der Pufferspeicher 12 als Bereiche eines einheitlichen Speichers ausgeführt werden. Zur besseren Darstellung der unterschiedlichen Funktion sind sie in der 1A jedoch als getrennte Einheiten dargestellt.
  • An der zweiten Schnittstelle 8 ist im Ausführungsbeispiel ein Festkörperspeichermedium 13 angeschlossen. Beispielsweise handelt es sich hierbei um eine so genannte Solid-State-Disk (SSD) mit Flash-EEPROM-Bausteinen mit einer Gesamtspeicherkapazität von etlichen Gigabyte bis einigen hundert Gigabyte, beispielsweise 100 GB. Im Ausführungsbeispiel ist das Festkörperspeichermedium 13 direkt an die Schnittstelle 8 angeschlossen, das heißt ohne Zwischenschaltung aktiver Komponenten wie einem Port-Expander, Pufferspeicher oder ähnliche Komponenten. Zum Anschluss des Festkörperspeichermediums 13 an die Steuereinheit 6 eignet sich beispielsweise eine lokale Serial ATA (SATA) Schnittstelle oder eine Serial Attached SCSI (SAS) Schnittstelle.
  • Das zweite RAID-System 3 umfasst drei Festplattenlaufwerke 14a, 14b und 14c. Die Festplattenlaufwerke 14a bis 14c weisen beispielsweise jeweils einen Stapel von rotierenden Speichermedien mit einer Gesamtkapazität von je einem Terra-Byte Speicherkapazität auf. Für den Anschluss der Festplattenlaufwerke 14a bis 14c an die Steuereinheit 6 eignen sich neben lokalen Anschlussschnittstellen auch gepufferte oder kaskadierte Vermittlungseinrichtungen, beispielsweise so genannte Port-Expander.
  • Alternativ zu der in der 1A dargestellten Systemarchitektur kann es sich bei dem Speichersubsystem 1 auch um ein einzelnes RAID-System oder einen einzelnen Controller mit zwei daran angeschlossenen Massenspeichern handeln. Möglich ist ebenfalls die Verwendung unterschiedlicher Controller mit jeweils einem daran angeschlossenen Massenspeicher, sofern diese von einer gemeinsamen Software, beispielsweise in Form eines Treibers, angesteuert werden.
  • 1B zeigt einen vereinfachten schematischen Grundaufbau des Speichersubsystems 1, umfassend eine gemeinsame Steuereinheit 6, einen ersten Massenspeicher 15, beispielsweise ein Festkörperspeichermedium 13, und einen zweiten Massenspeicher 16, beispielsweise eine Festplatte 14. Der erste Massenspeicher 15 umfasst einen ersten Speicherbereich 17 und der zweite Massenspeicher 16 umfasst einen zweiten Massenspeicherbereich 18. Dabei ist der erste Speicherbereich 17 dem zweiten Speicherbereich 18 durch die Steuereinheit logisch zugeordnet, wie im Folgenden beschrieben ist.
  • Zur Vorbereitung von Schreib- und Lesezugriffen auf das Speichersubsystem 1 werden in dem beschriebenen Ausführungsbeispiel zunächst die maximalen Zugriffszeiten und Datenübertragungsraten der einzelnen Massenspeicher ermittelt.
  • Während einer Initialisierungsphase werden die schlechtmöglichsten Zugriffszeiten Taccess zum Lesen und/oder Schreiben zu allen Massenspeichern und über deren gesamten Speicherbereich der Steuereinheit 6 ermittelt. Es werden alle Faktoren, die Datenzugriffe verzögern, berücksichtigt z. B. auch die Einflüsse zwischengeschalteter Puffergeräte, z. B. SAS-Expander, FC-Switches, iSCSI-Geräte usw. Zu den anderen Verzögerungsfaktoren zählen z. B. auch Verzögerungen verursacht durch ”on-the-fly” aktive Ver-/Entschlüsselung, Datenumkodierung, Zeitschlitzmultiplexing (SAS-Time-Division Multiplexing) usw. Bei den unterschiedlichen Datenträgertypen insbesondere bei den Festplatten 14 müssen auch so genannte ”full-stroke” Zugriffszeiten (ungünstigste Positionierungszeit) ermittelt werden. Bevorzugt sollte diese Operation über die gesamte Konfiguration zu jedem Massenspeichergerät durchgeführt werden. Des Weiteren kann mit jedem neu an das Speichersubsystem 1 angekoppelten Massenspeichergerät die aktive Zugriffszeit für dessen Speicherbereich ermittelt werden.
  • Bei aktivierten Energiesparmodus der Massenspeicher ermittelt die Steuereinheit 6 die Geräte-Aktivierungszeiten Twakeup für den gerade verwendete Energiesparmodus. Die Spezifikationen listen hierzu in der Regel nur die maximalen Zugriffszeiten bzw. Aufweckzeiten auf.
  • Als Ergebnis dieser Initialisierungsphase werden die Zugriffszeiten Taccess und Twakeup zu den Geräte-Blockadressen oder Blockadressbereichen der einzelnen Massenspeicher festgehalten.
  • In einer weiteren, optionalen Phase werden die Datenübertragungsgeschwindigkeiten des ersten und zweiten Massenspeichers 15 und 16 ermittelt. Für mit einer konstanten Winkelgeschwindigkeit rotierende Speichermedien, beispielsweise die Festplatten 14, werden die minimalen sequenziellen Datenübertragungsgeschwindigkeiten VDSeq für die jeweiligen Adressbereiche des jeweiligen Massenspeichermediums ermittelt.
  • Auf Grundlage der in der Initialisierungsphase gewonnen Daten kann bei nachfolgenden Operationen eine Adresszuweisung vorgenommen werden.
  • Mit jedem neuen Dateizugriff auf den Speicherbereich 18 des zweiten Massenspeichers 16 wird automatisch ein Abbild der Adresse im ersten Massenspeicher 15 kreiert und automatisch die Länge des reservierten Bereiches 17 berechnet. Die minimale Länge DP1 des im ersten Massenspeicher 15 reservierten Bereiches 17 ergibt sich aus folgender Formel: DP1 = VDSeq × (Taccess + Twakeup)
  • Beispiele:
    • VDSeq = 50 MB/s, Taccess = 10 ms, Twakeup = 10 ms → DP1 = 1 MB
    • VDSeq = 200 MB/s, Taccess = 5 ms, Twakeup = 10 ms → DP1 = 3 MB
  • In der beschriebenen Ausgestaltung wird eine Tabelle mit den jeweiligen verbundenen (Datei-Anfangs) Adressen des ersten und des zweiten Massenspeichers 15 und 16 von der Steuereinheit 6 auf dem ersten Massenspeicher abgelegt und nach einem Systemstart bevorzugt in einem gesonderten und der Steuereinheit 6 zugänglichen Speicherbereich, beispielsweise dem Arbeitsspeicher 11, abgelegt.
  • Die Datenzugriffe auf den zweiten Massenspeicher 16 erfolgen immer mit der für zweiten Massenspeicher 16 ermittelten Datenübertragungsgeschwindigkeit VDSeq.
  • Bei Systemen mit eingeschränkten Verwaltungsmöglichkeiten bezüglich Reaktionszeiten des ersten Massenspeichergeräts 15 bei Schreib- oder Lesezyklen soll die Länge DP1 des reservierten Bereichs 17 eine maximale Zugriffszeit immer überbrücken können. Dass bedeutet einen auf Kosten des ersten Massenspeichers 15 vorhandenen Überschuss der Daten in dem bestimmten Bereich 17 des ersten Massenspeichers 15. Als Vorteil dieser Lösung ist zu betrachten, dass der zweite Massenspeicher 16 seine Bereitschaft immer während der Zugriffe auf den ersten Massenspeicher 15 meldet. Die Datenzugriffe werden kontinuierlich, also ohne Wartezeiten, von dem ersten Bereich 17 des ersten Massenspeichers 15 auf den zweiten Bereich 18 des zweiten Massenspeichers 16 gewechselt.
  • 2A zeigt eine schematische Darstellung einer Schreiboperation in dem Speichersubsystem 1 ohne Verwendung eines Pufferspeichers 12. Eine Schreibanfrage 21 wird an die Steuereinheit 6 des Speichersubsystems 1 gerichtet. Beispielsweise kann ein Server-Computer 5 einen neuen Datenstrom 22 erzeugen, oder einen bestehenden Datenstrom ändern.
  • Der Datenstrom 22, der mit der Schreibanfrage 21 in dem Speichersubsystem 1 abgelegt werden soll, wird von der Steuereinheit 6 in einen ersten Teil 23a und einen zweiten Teil 23b aufgeteilt. Der erste Teil 23a wird mit einer ersten Teilanfrage 24 an das Festkörperspeichermedium 13, also den ersten Massenspeicher 15 übertragen. Da das Festkörperspeichermedium 13 keine beweglichen Teile enthält, wird die erste Teilanfrage 24 beinahe ohne zeitliche Verzögerung gegenüber der ursprünglichen Schreibanfrage 21 durch den Festkörperspeicher 13 bearbeitet.
  • Gleichzeitig mit der ersten Teilanfrage 24 wird eine zweite Teilanfrage 25 bezüglich des zweiten Teils 23b an ein Festplattenlaufwerk 14, also den zweiten Massenspeicher 16, übertragen. Mit der zweiten Teilanfrage 25 wird der zweite Teil 23b des Datenstroms 22 zum Schreiben an das Festplattenlaufwerk 14 übermittelt. Nach einer anfänglichen Verzögerung 26 wird der zweite Teil 23b daraufhin auf das Festplattenlaufwerk 14 geschrieben. In einem nachfolgenden, optionalen Schritt wird mit einer dritten Teilanfrage 27 der erste Teil 23a des Datenstroms 22 zusätzlich auf das Festplattenlaufwerk 14 geschrieben.
  • Die Darstellung gemäß 2A versucht den zeitlichen Ablauf der einzelnen Teilanfragen 24, 25 und 27 darzustellen. Dabei werden Ereignisse, die in der 2A weiter unten dargestellt sind, später durchgeführt. Dem entgegen sind der 2A jedoch keine Informationen über die räumliche Anordnung des ersten beziehungsweise des zweiten Teils 23a beziehungsweise 23b des Datenstroms 22 auf dem ersten Massenspeicher beziehungsweise dem zweiten Massenspeicher zu entnehmen.
  • Insbesondere ist es vorteilhaft, den ersten Teil 23a des Datenstroms 22 räumlich vor dem zweiten Teil 23b auf dem Festplattenlaufwerk 14 anzuordnen. Daher ist zwischen der zweiten Teilanfrage 25 und der dritten Teilanfrage 27 gegebenenfalls eine erneute Positionierung eines Schreib-/Lesekopfes des Festplattenlaufwerks 14 erforderlich.
  • Die Schreibanfrage 21 kann gegenüber dem Server-Computer 5 bereits vor Durchführung der dritten Teilanfrage 27 mit einer Bestätigungsnachricht 28 bestätigt werden, da zu diesem Zeitpunkt bereits der gesamte Datenstrom 22 in dem Speichersubsystem 2 abgelegt wurde.
  • Die Daten des ersten Teils 23a sind im Fall einer Stromunterbrechung während des Schreibens in dem ersten Massenspeicher 15 vorhanden. Somit können sie jederzeit auf den zweiten Massenspeicher 16 zurückgeschrieben werden. Die entsprechende Status-Informationen, z. B. ein so genanntes „dirty”-Bit für den ersten Speicherbereich 17, über diesen Vorgang wird vor jedem Schreibzyklus im entsprechenden Speicherbereich 17 abgelegt und nach erfolgreichem Schreibzyklus zurückgesetzt.
  • Die Schreibgeschwindigkeit der Daten, auch in den erste Massenspeicher 15 richtet sich nach der ermittelten Datenübertragungsgeschwindigkeit VDSeq des zweiten Massenspeichers 16, um den Datenstrom 22 konstant zu halten und unnötigen Leistungssprünge der Steuereinheit inklusive einer etwaigen Aktivierung von Energiesparmodi oder Daten-Verluste zu vermeiden. Gegenüber höheren Software-Schichten, beispielsweise Anwendungsprogrammen, erfolgt der Datentransfer mit einer konstanten Geschwindigkeit.
  • Ebenfalls ist in der 2A dargestellt, dass die zweite Teilanfrage 23b möglicherweise vor Abschluss der ersten Teilanfrage 24 durchgeführt werden kann, beispielsweise wenn die tatsächliche Verzögerung der Festplatte 14 geringer ausfällt als zunächst angenommen. Insofern ist sowohl eine zeitliche als auch eine inhaltliche Überlappung beim Schreiben des ersten Teils 23a und des zweiten Teils 23b möglich.
  • 2B zeigt eine alternative Ausgestaltung eines Schreibverfahrens unter Verwendung eines Pufferspeichers 12. Eine Schreibanfrage 21 zum Schreiben eines Datenstroms 22 mit einem ersten Teil 23a und einem zweiten Teil 23b wird zunächst mittels einer Anfrage 29 in einem besonders schnellen Pufferspeicher 12 der Steuereinheit 6 durchgeschrieben. Sobald der erste Teil 23a und wenigstens ein Block des zweiten Teils 23b in dem Pufferspeicher 12 enthalten sind, wird eine erste Teilanfrage 24 bezüglich des ersten Teils 23a und eine zweite Teilanfrage 25 bezüglich des zweiten Teils 23b gestartet. Die erste Teilanfrage 24 wird an den ersten Massenspeicher 15 mit dem Festkörperspeichermedium 13 gerichtet. Die zweite Teilanfrage 25 wird an den zweiten Massenspeicher 16 mit dem Festplattenlaufwerk 14 gerichtet und erst nach einer Verzögerung 26 des Festplattenlaufwerks 14 durchgeführt. Nachfolgend können weitere Blöcke des zweiten Teils 23b und, wie oben beschrieben, auch der erste Teil 23a des Datenstroms 22 mit einer dritten Teilanfrage 27 an das Festplattenlaufwerk 14 übermittelt werden.
  • Im in der 2B dargestellten Ausführungsbeispiel wird die Anfrage 21 schon mit einer Bestätigungsnachricht 28 bestätigt, sobald der letzte Teil des Datenstrom 22 in dem Pufferspeicher 12 abgelegt wurde, also bevor alle Daten des ersten und zweiten Teils 23a und 23b auf einen der beiden Massenspeicher 15 oder 16 geschrieben wurde. Um die Konsistenz des Massenspeichersubsystems 1 auch bei einem Stromausfall oder ähnlichem Ausnahmezustand sicherzustellen, weist die Steuereinheit 6 oder wenigstens der Pufferspeicher 12 in einer vorteilhaften Ausgestaltung einen Energiepuffer auf, der die Steuereinheit 6 solange versorgt, bis die in dem Pufferspeicher 12 abgelegten Daten dauerhaft gesichert wurden bzw. bis die Stromversorgung wieder zur Verfügung steht.
  • Um alle Daten während der Durchführung der Schreibanfrage 21 kohärent zu halten, werden in einer vorteilhaften Ausgestaltung etwaige Cachespeiche der Massenspeicher 15 und 16 deaktiviert.
  • Wie in der 2B dargestellt, werden die erste Teilanfrage 24 und die zweite Teilanfrage 25 direkt hintereinander ausgeführt, wobei es zu keiner Überlappung der jeweiligen Schreiboperationen kommt. Dies wird dadurch sichergestellt, dass die Verzögerung 26 des Festplattenlaufwerks 14 bezüglich einer in der Schreibanfrage 21 enthaltenen Speicheradresse beispielsweise wie oben beschrieben bestimmt wird.
  • 3A zeigt die schematische Darstellung einer Leseoperation. Eine Leseanfrage 31 zum Lesen eines Datenstroms 22 wird von der Steuereinheit 6 zunächst in eine erste Teilanfrage 32 an den ersten Massenspeicher 15 mit dem Festkörperspeichermedium 13 und eine zweite Teilanfrage 33 an den zweiten Massenspeicher 16 mit den Festplattenlaufwerk 14 aufgeteilt. Das Festkörperspeichermedium 13 beginnt sofort mit der Übertragung einer ersten Teilantwort 34. Die erste Teilantwort 34 enthält einen ersten Teil 23a des angeforderten Datenstroms 22. Die zweite Teilanfrage 33 wird erst nach einer Verzögerung 26 von dem Festplattenlaufwerk 14 bearbeitet. Nach erfolgreicher Positionierung eines Lesekopfes im Bereich 18 des angeforderten Datenstroms 22 wird dessen zweiter Teil 23b mit einer zweiten Teilantwort 35 an die Steuereinheit 6 zurück übertragen. Die Steuereinheit 6 fügt den ersten Teil 23a und den zweiten Teil 23b zu einer gemeinsamen Antwort 36 zusammen. Da der erste Teil 23a der Antwort 36 mit nur minimaler Verzögerung bei der Steuereinheit 6 eingeht, kann die Steuereinheit 6 unmittelbar nach der Leseanfrage 31 beginnen, die Antwort 36 zurück an einen Server-Computer 5 zu übermitteln.
  • 3B zeigt einen alternativen Ablauf der Leseanfrage 31. Zunächst wird die Leseanfrage 31 wiederum in eine erste Teilanfrage 32 an den ersten Massenspeicher 15 und in eine zweite Teilanfrage 33 an den zweiten Massenspeicher 16 aufgeteilt. Im dargestellten Ausführungsbeispiel ist der erste Teil 23a des Datenstroms 22 jedoch nicht auf dem Festkörperspeichermedium 13 gespeichert. Beispielsweise wurde der Datenstrom 22 nicht unter Verwendung eines der in den 2A oder 2B dargestellten Schreiboperationen abgelegt. Alternativ ist es auch möglich, dass ein erster Teil 23a eines Datenstromes 22, der zunächst im ersten Bereich 17 des ersten Massenspeichers 15 abgelegt war, beschädigt ist oder durch eine andere Operation unbrauchbar geworden ist. In diesem Fall meldet der erste Massenspeicher 15 eine Fehlermeldung 37 zurück an die Steuereinheit 6. Mittels einer modifizierten Teilanfrage 33' fragt die Steuereinheit 6 daraufhin den gesamten Datenstrom 22 mit dem ersten Teil 23a und dem zweiten Teil 23b von dem zweiten Massenspeicher 16 ab. Daraufhin überträgt das Festplattenlaufwerk 14 nach einer anfänglichen Verzögerung 26 den gesamten Datenstrom 22 zurück an die Steuereinheit 6, die diesen mittels einer Antwort 36 zurück an den Server-Computer 5 überträgt. Dabei beträgt die Verzögerung zwischen der Leseanfrage 31 und dem Beginn der Antwort 36 in etwa der normalen Verzögerung 26 des zweiten Massenspeichers 16.
  • 4 zeigt ein schematisches Ablaufdiagramm eines Verfahrens zum Schreiben von Daten in dem Speichersubsystem 1. In einem ersten Schritt 41 wird eine Schreibanfrage 21 von der ersten Schnittstelle 7 der Steuereinheit 6 empfangen. Die Schreibanfrage 21 enthält eine Adressinformation, die eine Adresse der zu speichernden Daten in dem Speichersubsystem 1 angibt. Ausgehend von dieser Adressinformation, beispielsweise einer Blocknummer, bestimmt die Steuereinheit 6 korrespondierende Speicherbereiche 17 und 18 des ersten Massenspeichers 15 und des zweiten Massenspeichers 16. Beispielsweise können die Daten auf einer korrespondierenden Adresse des zweiten Massenspeichers 16 abgelegt werden, während der nächste freie Speicherbereich 17 des ersten Massenspeichers 18 zum Ablegen des ersten Teils 23a ermittelt wird. Die auf diese Weise ermittelten ersten 17 und zweiten Speicherbereiche 18, beziehungsweise ihre Startadressen, werden beispielsweise in den Arbeitsspeicher 11 der Steuereinheit 6 abgelegt und stehen bei späteren Schreib- und Leseanfragen zur Verfügung.
  • In einem weiteren Schritt 42 wird eine zu erwartende Verzögerung des zweiten Massenspeichers 16, beispielsweise des Festplattenlaufwerks 14, ermittelt. Die bestimmte Verzögerungszeit T setzt sich beispielsweise wie oben beschrieben aus einer Zugriffsverzögerung Taccess und einer Startverzögerung Twakeup zusammen. Die Zugriffsverzögerung Taccess bezeichnet die Zeit, die nötig ist, um einen Schreib-/Lesekopf am Beginn des angeforderten Speicherbereiches zu positionieren. Die Aktivierungszeit Twakeup bezeichnet die Zeit, die benötigt wird, um das Festplattenlaufwerk 14 in einen betriebsbereiten Zustand zu versetzen. Beispielsweise kann sich das Festplattenlaufwerk 14 vor Beginn der Schreibanfrage 21 in einen so genannten Schlaf- oder Energiesparzustand befinden, in dem die rotierenden Speichermedien nicht oder nicht mit voller Geschwindigkeit rotieren.
  • Wurde die Zugriffsverzögerung T für den Zugriff auf den zweiten Massenspeicher 16 bestimmt, kann ausgehend von dieser Zugriffsverzögerung T und einer Datenübertragungsrate VDSeq des Speichersubsystems beziehungsweise des Server-Computers 5, die Größe des ersten Teils 23a berechnet werden. Beträgt beispielsweise die Datenübertragungsrate 50 MB/s, die Zugriffszeit Taccess 10 ms und die Aktivierungszeit Twakeup 10 ms, beträgt die Größe des ersten Teils 23a ein Megabyte.
  • In einem Schritt 43 wird daraufhin der erste Teil 23a des Datenstroms 22 mit einer Größe von beispielsweise einem Megabyte an den ersten Massenspeicher 15 übertragen. Parallel dazu wird im Schritt 44 der zweite Teil 23b des Datenstroms 22 an den zweiten Massenspeicher 16 übertragen.
  • Der erste Massenspeicher 15 beginnt im Schritt 45 sofort mit dem Schreibzugriff und somit dem Speichern des ersten Teils 23a. Währenddessen wird ein Schreib-/Lesekopf des Festplattenlaufwerkes 14 in einem Schritt 46 am Beginn des zweiten Speicherbereiches 18 positioniert. In einem nachfolgenden Schritt 47 werden die weiteren Daten 23b des Datenstroms 22 auf dem zweiten Massenspeicher 16 geschrieben.
  • Nach Abschluss der Schreiboperationen 45 und 47 bestätigt die Steuereinheit 6 in einem Schritt 48 die Ausführung der Schreibanfrage 21. In einem optionalen Schritt 49 kann nachfolgend noch der erste Teil 23a des Datenstroms 22 auf das Festplattenlaufwerk 14 geschrieben werden.
  • 5 zeigt ein Ablaufdiagramm eines Verfahrens zum Lesen von Daten von einem Speichersubsystem 1. In einem ersten Schritt 51 wird eine Leseanfrage 31 von der Steuereinheit 6 empfangen. Die Leseanfrage 31 enthält Adressinformationen, die den einzulesenden Datenstrom 22 kennzeichnen. Die Steuereinheit 6 ordnet die Adressinformationen einem ersten beziehungsweise zweiten Speicherbereich 17 bzw. 18 des ersten beziehungsweise zweiten Massenspeichers 15 bzw. 16 zu. Beispielsweise können die dazu benötigten Informationen aus dem Arbeitsspeicher 11 von dem Mikroprozessor 10 abgerufen werden.
  • In einen Schritt 52 wird die Größe des ersten Teils 23a des Datenstroms 22 ermittelt. Hierzu können beispielsweise wie unter Bezugnahme auf den Schritt 42 beschrieben, eine Verzögerung T des zweiten Massenspeichers 16 für den bestimmten zweiten Adressbereich 18 bestimmt werden. Alternativ ist es auch möglich, beim Schreiben des Datenstroms 22 erzeugte Metadaten, die die Länge des ersten Teils 23a umfassen, abzurufen.
  • In den Schritten 53 und 54 werden eine erste Teilanfrage 32 beziehungsweise eine zweite Teilanfrage 33 an den ersten Massenspeicher 15 beziehungsweise den zweiten Massenspeicher 16 übertragen. Der erste Massenspeicher 15, bei dem es sich um ein Festkörperspeichermedium 13 handelt, beginnt sofort mit dem Lesen des angeforderten ersten Teils 23a und liefert entsprechende Daten mit einer ersten Teilantwort 34 zurück an die Steuereinheit 6. Währenddessen positioniert der zweite Massenspeicher 16, beispielsweise das Festplattenlaufwerk 14, Leseköpfe in dem zweitem Speicherbereich. Dies wird im Schritt 54 durchgeführt. In einem nachfolgenden Schritt 46 wird der zweite Teil 23b des Datenstroms 22 von dem Festplattenlaufwerk 14 eingelesen. Die in den Schritten 55 und 57 von dem ersten beziehungsweise zweiten Massenspeicher 15 bzw. 16 zurück übertragene erste Teilantwort 34 beziehungsweise zweite Teilantwort 35 wird in einem Schritt 58 von der Steuereinheit 6 zu einer Antwort 36 zusammengefügt und an einen anfragenden Server-Computer 5 übertragen.
  • Dabei steht der zweite Teil 23b unmittelbar nach dem ersten Teil 23a zur Übertragung zur Verfügung, wenn die Verzögerung T wie oben beschrieben bestimmt wird, und der Datenstrom 22 kann praktisch ohne Zeitverzögerung an den anfragenden Server-Computer 5 übertragen werden. Sollte durch eine außergewöhnliche Verzögerung die Übertragung des ersten Teils 23a oder des zweiten Teils 23b verzögert werden, protokolliert die Steuereinheit 6 die auftretende Verzögerung und berücksichtigt sie gegebenenfalls bei nachfolgenden Schreiboperationen in den betreffenden Speicherbereich. Wird beispielsweise im Betrieb des Speichersubsystems 1 ermittelt, dass eine der drei Festplattenlaufwerke 14a, 14b oder 14c eine höhere Zugriffsverzögerung aufweist, als die verbleibenden zwei Festplattenlaufwerke 14, kann dies beim Schreiben und Lesen von Daten auf die betreffende Festplatte berücksichtigt werden. Weist beispielsweise die Festplatte 14c eine 20 Prozent höhere Zugriffsverzögerung auf als die Festplatten 14a und 14b, können die der Festplatte 14c zugeordneten ersten Speicherbereiche 17 auf dem ersten Massenspeicher 16 des Festkörperspeichermediums 13 um 20 Prozent vergrößert werden, um die auftretenden Verzögerungen abzupuffern und gegenüber dem anfragenden Server-Computer 5 zu verstecken.
  • Bezugszeichenliste
  • 1
    Speichersubsystem
    2
    erstes RAID-System
    3
    zweites RAID-System
    4
    Datennetzwerk
    5
    Server-Computer
    6
    Steuereinheit
    7
    erste Schnittstelle
    8
    zweite Schnittstelle
    9
    dritte Schnittstelle
    10
    Mikroprozessor
    11
    Arbeitsspeicher
    12
    Pufferspeicher
    13
    Festkörperspeicher
    14
    Festplattenlaufwerk
    15
    erster Massenspeicher
    16
    zweiter Massenspeicher
    17
    erster Speicherbereich
    18
    zweiter Speicherbereich
    21
    Schreibanfrage
    22
    Datenstrom
    23a
    erster Teil
    23b
    zweiter Teil
    24
    erste Teilanfrage
    25
    zweite Teilanfrage
    26
    Verzögerung
    27
    dritte Teilanfrage
    28
    Bestätigungsnachricht
    29
    Anfrage
    31
    Leseanfrage
    32
    erste Teilanfrage
    33
    zweite Teilanfrage
    34
    erste Teilantwort
    35
    zweite Teilantwort
    36
    Antwort
    37
    Fehlermeldung
    40
    Verfahren zum Schreiben eines Datenstroms
    41 bis 49
    Verfahrensschritte
    50
    Verfahren zum Lesen eines Datenstroms
    51 bis 58
    Verfahrensschritte

Claims (12)

  1. Arbeitsverfahren für ein Speichersubsystem (1), aufweisend wenigstens einen ersten Massenspeicher (15) mit einem Festkörperspeichermedium (13), wenigstens einem zweitem Massenspeicher (16) mit einem beweglichen Schreib-/Lesekopf oder beweglichen Speichermedium und wenigstens einer Steuereinheit (6) zum Ansteuern des ersten Massenspeichers (15) und des zweiten Massenspeichers (16), mit den folgenden Schritten: – Bestimmen von maximalen Zugriffszeiten und Datenübertragungsraten des ersten Massenspeichers (15) und des zweiten Massenspeichers (16) in einer Initialisierungsphase, – Empfangen einer Anfrage (21, 31) zum Speichern oder Lesen von Daten, wobei die Anfrage (21, 31) wenigstens eine Adressinformation umfasst, – Bestimmen eines ersten Speicherbereichs (17) auf dem ersten Massenspeicher (15) basierend auf der Adressinformation, – Bestimmen eines zweiten Speicherbereichs (18) auf dem zweitem Massenspeicher (16) basierend auf der Adressinformation, – Übermitteln einer ersten Teilanfrage (24) bezüglich des ersten Speicherbereichs (17) an den ersten Massenspeicher (15) und – zeitnahes Übermitteln einer zweiten Teilanfrage (25) bezüglich des zweiten Speicherbereichs (18) an den zweiten Massenspeicher (16), – wobei beim Bestimmen des ersten und zweiten Speicherbereichs (17, 18) für einen Dateizugriff auf den zweiten Speicherbereich (18) auf Grundlage der in der Initialisierungsphase ermittelten Daten automatisch ein Abbild der Adresse in dem ersten Massenspeicher (15) bestimmt wird und eine Größe des ersten Speicherbereichs (17) im Wesentlichen durch eine zu erwartende Verzögerung (26) beim Ausführen der zweiten Teilanfrage (25, 33) bestimmt wird.
  2. Arbeitsverfahren nach Anspruch 1, dadurch gekennzeichnet, dass eine Tabelle mit den jeweils verbunden Datei-Anfangs-Adressen des ersten Massenspeichers (15) und des zweiten Massenspeichers (16) von der Steuereinheit (6) auf dem ersten Massenspeicher (15) abgelegt werden.
  3. Arbeitsverfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die zu erwartende Verzögerung (26) in Abhängigkeit einer Position des zweiten Speicherbereichs (18) auf dem zweitem Massenspeicher (16) bestimmt wird.
  4. Arbeitsverfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass bei einer Anfrage zum Lesen (31) von Daten zunächst eine erste Teilantwort (34) des ersten Massenspeichers (15) auf die erste Teilanfrage (32) und danach eine zweite Teilantwort (35) des zweiten Massenspeichers (16) auf die zweite Teilanfrage (33) von der Steuereinheit (6) empfangen und zu einer gemeinsamen Antwort (36) der Steuereinheit (6) zusammengefügt wird.
  5. Arbeitsverfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass bei einer Anfrage zum Schreiben (21) von Daten mit der ersten Teilanfrage (24) Daten im Umfang der ersten Größe an den ersten Massenspeicher (15) übermittelt werden und mit der zweiten Teilanfrage (25) nachfolgende Daten an den zweiten Massenspeicher (16) übermittelt werden.
  6. Arbeitsverfahren nach Anspruch 5, dadurch gekennzeichnet, dass die zu schreibenden Daten von der Steuereinheit (6) zunächst in einem Pufferspeicher (12) der Steuereinheit (6) geschrieben werden, die Daten in dem Pufferspeicher (12) in einen ersten Datenblock (23a) mit der ersten Große und wenigstens einem zweiten Datenblock (23b) mit einer zweiten Größe aufgeteilt werden und nach Erhalt des ersten und des zweiten Datenblocks (23a, 23b) die erste Teilanfrage (24) mit dem ersten Datenblock (23a) an den ersten Massenspeicher (15) und die zweite Teilanfrage (25) mit dem zweiten Datenblock (23b) zeitnah an den zweiten Massenspeicher (16) übermittelt werden.
  7. Arbeitsverfahren nach Anspruch 5 oder 6, dadurch gekennzeichnet, dass nach Ausführung der zweiten Teilanfrage (25) durch den zweiten Massenspeicher (16) auch die Daten der ersten Teilanfrage (24) mit einer dritten Teilanfrage (27) an den zweiten Massenspeicher (16) übermittelt werden.
  8. Speichersubsystem (1), aufweisend – wenigstens eine Schnittstelle (7) zum Anschluss an ein Computersystem (5), – wenigstens einen ersten Massenspeicher (15) mit einem Festkörperspeichermedium (13), – wenigstens einem zweiten Massenspeicher (16) mit einem beweglichen Schreib-/Lesekopf oder Speichermedium, und – eine Steuereinheit (6) zum Ansteuern des ersten Massenspeichers (15) und des zweiten Massenspeichers (16), wobei die Steuereinheit (6) dazu eingerichtet ist, ein Verfahren gemäß einem der Ansprüche 1 bis 7 auszuführen.
  9. Speichersubsystem (1) nach Anspruch 8, gekennzeichnet durch einen Pufferspeicher (12) zum Zwischenspeichern von Daten für die erste und/oder die zweite Teilanfrage (24, 25).
  10. Speichersubsystem (1) nach Anspruch 8 oder 9, gekennzeichnet durch einen Speicher (11) zum Ablegen einer Übersetzungstabelle, wobei die Tabelle jeweils eine Adressinformation, jeweils einen ersten Speicherbereich (17) und/oder eine erste Größe des ersten Speicherbereichs (17) zuordnet.
  11. Steuereinheit (6) für ein Speichersubsystem (1), dadurch gekennzeichnet, dass es zum Durchführen eines Verfahrens nach einem der Ansprüche 1 bis 7 eingerichtet ist.
  12. Computerprogrammprodukt mit einem Speichermedium zum Speichern eines ausführbaren Programmcodes, wobei der Programmcode bei der Ausführung durch eine Steuereinheit (6) eines Speichersubsystems (1) alle Schritte eines Verfahrens nach einem der Ansprüche 1 bis 7 durchführt.
DE102008022831.1A 2008-05-08 2008-05-08 Arbeitsverfahren für ein Speichersubsystem und Vorrichtungen zur Durchführung des Arbeitsverfahrens Active DE102008022831B4 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102008022831.1A DE102008022831B4 (de) 2008-05-08 2008-05-08 Arbeitsverfahren für ein Speichersubsystem und Vorrichtungen zur Durchführung des Arbeitsverfahrens

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102008022831.1A DE102008022831B4 (de) 2008-05-08 2008-05-08 Arbeitsverfahren für ein Speichersubsystem und Vorrichtungen zur Durchführung des Arbeitsverfahrens
US12/463,314 US8140747B2 (en) 2008-05-08 2009-05-08 Operating method for a memory subsystem and devices for executing the operating method

Publications (2)

Publication Number Publication Date
DE102008022831A1 DE102008022831A1 (de) 2009-11-19
DE102008022831B4 true DE102008022831B4 (de) 2015-09-10

Family

ID=41180318

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102008022831.1A Active DE102008022831B4 (de) 2008-05-08 2008-05-08 Arbeitsverfahren für ein Speichersubsystem und Vorrichtungen zur Durchführung des Arbeitsverfahrens

Country Status (2)

Country Link
US (1) US8140747B2 (de)
DE (1) DE102008022831B4 (de)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5300496B2 (ja) * 2009-01-07 2013-09-25 パナソニック株式会社 半導体記憶装置、ホスト機器及び半導体記憶システム
US9134771B2 (en) * 2010-08-06 2015-09-15 Dhk Storage, Llc Raid devices, systems, and methods
US8880794B2 (en) * 2012-06-04 2014-11-04 Spectra Logic Corporation Populating a sparsely allocated memory in a storage array
US8959297B2 (en) * 2012-06-04 2015-02-17 Spectra Logic Corporation Retrieving a user data set from multiple memories
CN103902472B (zh) * 2012-12-28 2018-04-20 华为技术有限公司 基于内存芯片互连的内存访问处理方法、内存芯片及系统
ES2755942T3 (es) * 2013-09-25 2020-04-24 Alcatel Lucent Sistema de almacenamiento de comunicación
KR20150093004A (ko) * 2014-02-06 2015-08-17 삼성전자주식회사 불휘발성 저장 장치의 동작 방법 및 불휘발성 저장 장치를 액세스하는 컴퓨팅 장치의 동작 방법
US9652415B2 (en) 2014-07-09 2017-05-16 Sandisk Technologies Llc Atomic non-volatile memory data transfer
US9904621B2 (en) 2014-07-15 2018-02-27 Sandisk Technologies Llc Methods and systems for flash buffer sizing
US9645744B2 (en) 2014-07-22 2017-05-09 Sandisk Technologies Llc Suspending and resuming non-volatile memory operations
US9952978B2 (en) 2014-10-27 2018-04-24 Sandisk Technologies, Llc Method for improving mixed random performance in low queue depth workloads
US9753649B2 (en) 2014-10-27 2017-09-05 Sandisk Technologies Llc Tracking intermix of writes and un-map commands across power cycles
US9558125B2 (en) 2014-10-27 2017-01-31 Sandisk Technologies Llc Processing of un-map commands to enhance performance and endurance of a storage device
US9817752B2 (en) 2014-11-21 2017-11-14 Sandisk Technologies Llc Data integrity enhancement to protect against returning old versions of data
US9824007B2 (en) 2014-11-21 2017-11-21 Sandisk Technologies Llc Data integrity enhancement to protect against returning old versions of data
US9647697B2 (en) 2015-03-16 2017-05-09 Sandisk Technologies Llc Method and system for determining soft information offsets
US9652175B2 (en) * 2015-04-09 2017-05-16 Sandisk Technologies Llc Locally generating and storing RAID stripe parity with single relative memory address for storing data segments and parity in multiple non-volatile memory portions
US9864545B2 (en) 2015-04-14 2018-01-09 Sandisk Technologies Llc Open erase block read automation
US9753653B2 (en) 2015-04-14 2017-09-05 Sandisk Technologies Llc High-priority NAND operations management
US10372529B2 (en) 2015-04-20 2019-08-06 Sandisk Technologies Llc Iterative soft information correction and decoding
US9778878B2 (en) 2015-04-22 2017-10-03 Sandisk Technologies Llc Method and system for limiting write command execution
US9870149B2 (en) 2015-07-08 2018-01-16 Sandisk Technologies Llc Scheduling operations in non-volatile memory devices using preference values
US9715939B2 (en) 2015-08-10 2017-07-25 Sandisk Technologies Llc Low read data storage management
US10228990B2 (en) 2015-11-12 2019-03-12 Sandisk Technologies Llc Variable-term error metrics adjustment
US10126970B2 (en) 2015-12-11 2018-11-13 Sandisk Technologies Llc Paired metablocks in non-volatile storage device
US9837146B2 (en) 2016-01-08 2017-12-05 Sandisk Technologies Llc Memory system temperature management
US10481830B2 (en) 2016-07-25 2019-11-19 Sandisk Technologies Llc Selectively throttling host reads for read disturbs in non-volatile memory system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19960114A1 (de) * 1999-12-08 2001-06-13 Heidenhain Gmbh Dr Johannes Verfahren zum Speichern von Daten in einer Datei eines Datenspeichersystems
US20060090031A1 (en) * 2004-10-21 2006-04-27 Microsoft Corporation Using external memory devices to improve system performance
DE112005001430T5 (de) * 2004-06-30 2007-05-16 Intel Corp Verfahren, System und Programm zum Anwenden einer virtualisierten Datenstrukturtabelle
EP1890236A2 (de) * 2006-07-27 2008-02-20 Hitachi Global Storage Technologies Netherlands B.V. Plattenlaufwerk mit nichtflüchtigem Speicher mit mehreren Betriebsmodi

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4736593B2 (ja) * 2005-07-25 2011-07-27 ソニー株式会社 データ記憶装置、データ記録方法、記録及び/又は再生システム、並びに、電子機器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19960114A1 (de) * 1999-12-08 2001-06-13 Heidenhain Gmbh Dr Johannes Verfahren zum Speichern von Daten in einer Datei eines Datenspeichersystems
DE112005001430T5 (de) * 2004-06-30 2007-05-16 Intel Corp Verfahren, System und Programm zum Anwenden einer virtualisierten Datenstrukturtabelle
US20060090031A1 (en) * 2004-10-21 2006-04-27 Microsoft Corporation Using external memory devices to improve system performance
EP1890236A2 (de) * 2006-07-27 2008-02-20 Hitachi Global Storage Technologies Netherlands B.V. Plattenlaufwerk mit nichtflüchtigem Speicher mit mehreren Betriebsmodi

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Windows PC Accelerators; Microsoft, 5. Dez. 2006 *

Also Published As

Publication number Publication date
US20090282191A1 (en) 2009-11-12
US8140747B2 (en) 2012-03-20
DE102008022831A1 (de) 2009-11-19

Similar Documents

Publication Publication Date Title
US9569130B2 (en) Storage system having a plurality of flash packages
US9495105B2 (en) System managing a plurality of flash memory devices
US9424184B2 (en) Apparatus, systems, and methods for nameless writes
US9606914B2 (en) Apparatus, system, and method for allocating storage
US20160231941A1 (en) Solid state memory (ssm), computer system including an ssm, and method of operating an ssm
CN104903872B (zh) 用于自适应持久化的系统、方法和接口
US9928186B2 (en) Flash-DRAM hybrid memory module
US10552055B2 (en) Multi-tier scheme for logical storage management
US9417808B2 (en) Promotion of partial data segments in flash cache
US8635427B2 (en) Data storage control on storage devices
US10037272B2 (en) Storage system employing MRAM and array of solid state disks with integrated switch
US8972627B2 (en) Apparatus, system, and method for managing operations for data storage media
US9411742B2 (en) Use of differing granularity heat maps for caching and migration
US9128855B1 (en) Flash cache partitioning
US8443134B2 (en) Apparatus, system, and method for graceful cache device degradation
US8762650B2 (en) Prefetching tracks using multiple caches
US8959286B2 (en) Hybrid storage subsystem with mixed placement of file contents
US8935479B2 (en) Adaptive cache promotions in a two level caching system
US8874846B2 (en) Memory cell presetting for improved memory performance
Bostoen et al. Power-reduction techniques for data-center storage systems
EP2271978B1 (de) Vorrichtung, system und verfahren zur umwandlung einer speicheranfrage in einen speicherbefehl mit datenanhang
US8706968B2 (en) Apparatus, system, and method for redundant write caching
US8286019B2 (en) Power efficient data storage with data de-duplication
US20160179403A1 (en) Storage controller, storage device, storage system, and semiconductor storage device
EP0538288B1 (de) System zur freigabe des raumes gelöschter dateien für ein dynamisch abbildendes virtuelles datenspeichersubsystem

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R084 Declaration of willingness to licence

Effective date: 20110413

R082 Change of representative

Representative=s name: EPPING HERMANN FISCHER, PATENTANWALTSGESELLSCH, DE

Effective date: 20111229

Representative=s name: EPPING HERMANN FISCHER PATENTANWALTSGESELLSCHA, DE

Effective date: 20111229

R081 Change of applicant/patentee

Owner name: FUJITSU TECHNOLOGY SOLUTIONS INTELLECTUAL PROP, DE

Free format text: FORMER OWNER: FUJITSU SIEMENS COMPUTERS GMBH, 80807 MUENCHEN, DE

Effective date: 20111229

Owner name: FUJITSU LTD., KAWASAKI-SHI, JP

Free format text: FORMER OWNER: FUJITSU SIEMENS COMPUTERS GMBH, 80807 MUENCHEN, DE

Effective date: 20111229

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R081 Change of applicant/patentee

Owner name: FUJITSU LTD., KAWASAKI-SHI, JP

Free format text: FORMER OWNER: FUJITSU TECHNOLOGY SOLUTIONS INTELLECTUAL PROPERTY GMBH, 80807 MUENCHEN, DE

R082 Change of representative

Representative=s name: EPPING HERMANN FISCHER, PATENTANWALTSGESELLSCH, DE

Representative=s name: EPPING HERMANN FISCHER PATENTANWALTSGESELLSCHA, DE