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 Download PDFInfo
- 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
- mass
- data
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/068—Hybrid storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0625—Power saving in storage systems
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
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 - 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 Speichersubsystem1 . Das Speichersubsystem1 umfasst ein erstes RAID-System2 und ein zweites RAID-System3 . Das erste RAID-System2 und das zweite RAID-System3 sind über ein Datennetzwerk4 miteinander gekoppelt. Beispielsweise kann es sich bei dem ersten RAID-System2 um eine lokale, in einem Server-Rack angeordnete Speicherkomponente handeln. Bei dem zweiten RAID-System3 kann es sich beispielsweise um ein entfernt aufgestelltes Netzwerklaufwerk, auch bekannt als ”Network Attached Storage” (NAS) handeln. Das erste und das zweite RAID-System2 bzw.3 können beispielsweise über ein Fibre-Channel-Netzwerk miteinander gekoppelt werden. - An das Speichersubsystem
1 ist des Weiteren ein Server-Computer5 angeschlossen, der zur Verarbeitung von Daten dient. Hierzu greift der Server-Computer5 auf die Daten des Speichersubsystems1 zu. Das erste RAID-System2 umfasst eine Steuereinheit6 , aufweisend eine Schnittstelle7 zum Anschluss des Speichersubsystems1 an den Server-Computer5 , eine zweite Schnittstelle8 zum Anschluss lokaler Massenspeicher und eine dritte Schnittstelle9 zum Anschluss entfernter Massenspeicher über das Datennetzwerk4 . Des Weiteren umfasst die Steuereinheit6 einen Mikrocontroller oder Mikroprozessor10 , einen Arbeitsspeicher11 und einen Cache- oder Pufferspeicher12 . Selbstverständlich können der Arbeitsspeicher11 und der Pufferspeicher12 als Bereiche eines einheitlichen Speichers ausgeführt werden. Zur besseren Darstellung der unterschiedlichen Funktion sind sie in der1A jedoch als getrennte Einheiten dargestellt. - An der zweiten Schnittstelle
8 ist im Ausführungsbeispiel ein Festkörperspeichermedium13 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örperspeichermedium13 direkt an die Schnittstelle8 angeschlossen, das heißt ohne Zwischenschaltung aktiver Komponenten wie einem Port-Expander, Pufferspeicher oder ähnliche Komponenten. Zum Anschluss des Festkörperspeichermediums13 an die Steuereinheit6 eignet sich beispielsweise eine lokale Serial ATA (SATA) Schnittstelle oder eine Serial Attached SCSI (SAS) Schnittstelle. - Das zweite RAID-System
3 umfasst drei Festplattenlaufwerke14a ,14b und14c . Die Festplattenlaufwerke14a bis14c 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 Festplattenlaufwerke14a bis14c an die Steuereinheit6 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 Speichersubsystem1 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 Speichersubsystems1 , umfassend eine gemeinsame Steuereinheit6 , einen ersten Massenspeicher15 , beispielsweise ein Festkörperspeichermedium13 , und einen zweiten Massenspeicher16 , beispielsweise eine Festplatte14 . Der erste Massenspeicher15 umfasst einen ersten Speicherbereich17 und der zweite Massenspeicher16 umfasst einen zweiten Massenspeicherbereich18 . Dabei ist der erste Speicherbereich17 dem zweiten Speicherbereich18 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 Festplatten14 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 Speichersubsystem1 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 und16 ermittelt. Für mit einer konstanten Winkelgeschwindigkeit rotierende Speichermedien, beispielsweise die Festplatten14 , 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 Massenspeichers16 wird automatisch ein Abbild der Adresse im ersten Massenspeicher15 kreiert und automatisch die Länge des reservierten Bereiches17 berechnet. Die minimale Länge DP1 des im ersten Massenspeicher15 reservierten Bereiches17 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 und16 von der Steuereinheit6 auf dem ersten Massenspeicher abgelegt und nach einem Systemstart bevorzugt in einem gesonderten und der Steuereinheit6 zugänglichen Speicherbereich, beispielsweise dem Arbeitsspeicher11 , abgelegt. - Die Datenzugriffe auf den zweiten Massenspeicher
16 erfolgen immer mit der für zweiten Massenspeicher16 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 Bereichs17 eine maximale Zugriffszeit immer überbrücken können. Dass bedeutet einen auf Kosten des ersten Massenspeichers15 vorhandenen Überschuss der Daten in dem bestimmten Bereich17 des ersten Massenspeichers15 . Als Vorteil dieser Lösung ist zu betrachten, dass der zweite Massenspeicher16 seine Bereitschaft immer während der Zugriffe auf den ersten Massenspeicher15 meldet. Die Datenzugriffe werden kontinuierlich, also ohne Wartezeiten, von dem ersten Bereich17 des ersten Massenspeichers15 auf den zweiten Bereich18 des zweiten Massenspeichers16 gewechselt. -
2A zeigt eine schematische Darstellung einer Schreiboperation in dem Speichersubsystem1 ohne Verwendung eines Pufferspeichers12 . Eine Schreibanfrage21 wird an die Steuereinheit6 des Speichersubsystems1 gerichtet. Beispielsweise kann ein Server-Computer5 einen neuen Datenstrom22 erzeugen, oder einen bestehenden Datenstrom ändern. - Der Datenstrom
22 , der mit der Schreibanfrage21 in dem Speichersubsystem1 abgelegt werden soll, wird von der Steuereinheit6 in einen ersten Teil23a und einen zweiten Teil23b aufgeteilt. Der erste Teil23a wird mit einer ersten Teilanfrage24 an das Festkörperspeichermedium13 , also den ersten Massenspeicher15 übertragen. Da das Festkörperspeichermedium13 keine beweglichen Teile enthält, wird die erste Teilanfrage24 beinahe ohne zeitliche Verzögerung gegenüber der ursprünglichen Schreibanfrage21 durch den Festkörperspeicher13 bearbeitet. - Gleichzeitig mit der ersten Teilanfrage
24 wird eine zweite Teilanfrage25 bezüglich des zweiten Teils23b an ein Festplattenlaufwerk14 , also den zweiten Massenspeicher16 , übertragen. Mit der zweiten Teilanfrage25 wird der zweite Teil23b des Datenstroms22 zum Schreiben an das Festplattenlaufwerk14 übermittelt. Nach einer anfänglichen Verzögerung26 wird der zweite Teil23b daraufhin auf das Festplattenlaufwerk14 geschrieben. In einem nachfolgenden, optionalen Schritt wird mit einer dritten Teilanfrage27 der erste Teil23a des Datenstroms22 zusätzlich auf das Festplattenlaufwerk14 geschrieben. - Die Darstellung gemäß
2A versucht den zeitlichen Ablauf der einzelnen Teilanfragen24 ,25 und27 darzustellen. Dabei werden Ereignisse, die in der2A weiter unten dargestellt sind, später durchgeführt. Dem entgegen sind der2A jedoch keine Informationen über die räumliche Anordnung des ersten beziehungsweise des zweiten Teils23a beziehungsweise23b des Datenstroms22 auf dem ersten Massenspeicher beziehungsweise dem zweiten Massenspeicher zu entnehmen. - Insbesondere ist es vorteilhaft, den ersten Teil
23a des Datenstroms22 räumlich vor dem zweiten Teil23b auf dem Festplattenlaufwerk14 anzuordnen. Daher ist zwischen der zweiten Teilanfrage25 und der dritten Teilanfrage27 gegebenenfalls eine erneute Positionierung eines Schreib-/Lesekopfes des Festplattenlaufwerks14 erforderlich. - Die Schreibanfrage
21 kann gegenüber dem Server-Computer5 bereits vor Durchführung der dritten Teilanfrage27 mit einer Bestätigungsnachricht28 bestätigt werden, da zu diesem Zeitpunkt bereits der gesamte Datenstrom22 in dem Speichersubsystem2 abgelegt wurde. - Die Daten des ersten Teils
23a sind im Fall einer Stromunterbrechung während des Schreibens in dem ersten Massenspeicher15 vorhanden. Somit können sie jederzeit auf den zweiten Massenspeicher16 zurückgeschrieben werden. Die entsprechende Status-Informationen, z. B. ein so genanntes „dirty”-Bit für den ersten Speicherbereich17 , über diesen Vorgang wird vor jedem Schreibzyklus im entsprechenden Speicherbereich17 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 Massenspeichers16 , um den Datenstrom22 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 Teilanfrage23b möglicherweise vor Abschluss der ersten Teilanfrage24 durchgeführt werden kann, beispielsweise wenn die tatsächliche Verzögerung der Festplatte14 geringer ausfällt als zunächst angenommen. Insofern ist sowohl eine zeitliche als auch eine inhaltliche Überlappung beim Schreiben des ersten Teils23a und des zweiten Teils23b möglich. -
2B zeigt eine alternative Ausgestaltung eines Schreibverfahrens unter Verwendung eines Pufferspeichers12 . Eine Schreibanfrage21 zum Schreiben eines Datenstroms22 mit einem ersten Teil23a und einem zweiten Teil23b wird zunächst mittels einer Anfrage29 in einem besonders schnellen Pufferspeicher12 der Steuereinheit6 durchgeschrieben. Sobald der erste Teil23a und wenigstens ein Block des zweiten Teils23b in dem Pufferspeicher12 enthalten sind, wird eine erste Teilanfrage24 bezüglich des ersten Teils23a und eine zweite Teilanfrage25 bezüglich des zweiten Teils23b gestartet. Die erste Teilanfrage24 wird an den ersten Massenspeicher15 mit dem Festkörperspeichermedium13 gerichtet. Die zweite Teilanfrage25 wird an den zweiten Massenspeicher16 mit dem Festplattenlaufwerk14 gerichtet und erst nach einer Verzögerung26 des Festplattenlaufwerks14 durchgeführt. Nachfolgend können weitere Blöcke des zweiten Teils23b und, wie oben beschrieben, auch der erste Teil23a des Datenstroms22 mit einer dritten Teilanfrage27 an das Festplattenlaufwerk14 übermittelt werden. - Im in der
2B dargestellten Ausführungsbeispiel wird die Anfrage21 schon mit einer Bestätigungsnachricht28 bestätigt, sobald der letzte Teil des Datenstrom22 in dem Pufferspeicher12 abgelegt wurde, also bevor alle Daten des ersten und zweiten Teils23a und23b auf einen der beiden Massenspeicher15 oder16 geschrieben wurde. Um die Konsistenz des Massenspeichersubsystems1 auch bei einem Stromausfall oder ähnlichem Ausnahmezustand sicherzustellen, weist die Steuereinheit6 oder wenigstens der Pufferspeicher12 in einer vorteilhaften Ausgestaltung einen Energiepuffer auf, der die Steuereinheit6 solange versorgt, bis die in dem Pufferspeicher12 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 Massenspeicher15 und16 deaktiviert. - Wie in der
2B dargestellt, werden die erste Teilanfrage24 und die zweite Teilanfrage25 direkt hintereinander ausgeführt, wobei es zu keiner Überlappung der jeweiligen Schreiboperationen kommt. Dies wird dadurch sichergestellt, dass die Verzögerung26 des Festplattenlaufwerks14 bezüglich einer in der Schreibanfrage21 enthaltenen Speicheradresse beispielsweise wie oben beschrieben bestimmt wird. -
3A zeigt die schematische Darstellung einer Leseoperation. Eine Leseanfrage31 zum Lesen eines Datenstroms22 wird von der Steuereinheit6 zunächst in eine erste Teilanfrage32 an den ersten Massenspeicher15 mit dem Festkörperspeichermedium13 und eine zweite Teilanfrage33 an den zweiten Massenspeicher16 mit den Festplattenlaufwerk14 aufgeteilt. Das Festkörperspeichermedium13 beginnt sofort mit der Übertragung einer ersten Teilantwort34 . Die erste Teilantwort34 enthält einen ersten Teil23a des angeforderten Datenstroms22 . Die zweite Teilanfrage33 wird erst nach einer Verzögerung26 von dem Festplattenlaufwerk14 bearbeitet. Nach erfolgreicher Positionierung eines Lesekopfes im Bereich18 des angeforderten Datenstroms22 wird dessen zweiter Teil23b mit einer zweiten Teilantwort35 an die Steuereinheit6 zurück übertragen. Die Steuereinheit6 fügt den ersten Teil23a und den zweiten Teil23b zu einer gemeinsamen Antwort36 zusammen. Da der erste Teil23a der Antwort36 mit nur minimaler Verzögerung bei der Steuereinheit6 eingeht, kann die Steuereinheit6 unmittelbar nach der Leseanfrage31 beginnen, die Antwort36 zurück an einen Server-Computer5 zu übermitteln. -
3B zeigt einen alternativen Ablauf der Leseanfrage31 . Zunächst wird die Leseanfrage31 wiederum in eine erste Teilanfrage32 an den ersten Massenspeicher15 und in eine zweite Teilanfrage33 an den zweiten Massenspeicher16 aufgeteilt. Im dargestellten Ausführungsbeispiel ist der erste Teil23a des Datenstroms22 jedoch nicht auf dem Festkörperspeichermedium13 gespeichert. Beispielsweise wurde der Datenstrom22 nicht unter Verwendung eines der in den2A oder2B dargestellten Schreiboperationen abgelegt. Alternativ ist es auch möglich, dass ein erster Teil23a eines Datenstromes22 , der zunächst im ersten Bereich17 des ersten Massenspeichers15 abgelegt war, beschädigt ist oder durch eine andere Operation unbrauchbar geworden ist. In diesem Fall meldet der erste Massenspeicher15 eine Fehlermeldung37 zurück an die Steuereinheit6 . Mittels einer modifizierten Teilanfrage33' fragt die Steuereinheit6 daraufhin den gesamten Datenstrom22 mit dem ersten Teil23a und dem zweiten Teil23b von dem zweiten Massenspeicher16 ab. Daraufhin überträgt das Festplattenlaufwerk14 nach einer anfänglichen Verzögerung26 den gesamten Datenstrom22 zurück an die Steuereinheit6 , die diesen mittels einer Antwort36 zurück an den Server-Computer5 überträgt. Dabei beträgt die Verzögerung zwischen der Leseanfrage31 und dem Beginn der Antwort36 in etwa der normalen Verzögerung26 des zweiten Massenspeichers16 . -
4 zeigt ein schematisches Ablaufdiagramm eines Verfahrens zum Schreiben von Daten in dem Speichersubsystem1 . In einem ersten Schritt41 wird eine Schreibanfrage21 von der ersten Schnittstelle7 der Steuereinheit6 empfangen. Die Schreibanfrage21 enthält eine Adressinformation, die eine Adresse der zu speichernden Daten in dem Speichersubsystem1 angibt. Ausgehend von dieser Adressinformation, beispielsweise einer Blocknummer, bestimmt die Steuereinheit6 korrespondierende Speicherbereiche17 und18 des ersten Massenspeichers15 und des zweiten Massenspeichers16 . Beispielsweise können die Daten auf einer korrespondierenden Adresse des zweiten Massenspeichers16 abgelegt werden, während der nächste freie Speicherbereich17 des ersten Massenspeichers18 zum Ablegen des ersten Teils23a ermittelt wird. Die auf diese Weise ermittelten ersten17 und zweiten Speicherbereiche18 , beziehungsweise ihre Startadressen, werden beispielsweise in den Arbeitsspeicher11 der Steuereinheit6 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 Massenspeichers16 , beispielsweise des Festplattenlaufwerks14 , 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 Festplattenlaufwerk14 in einen betriebsbereiten Zustand zu versetzen. Beispielsweise kann sich das Festplattenlaufwerk14 vor Beginn der Schreibanfrage21 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-Computers5 , die Größe des ersten Teils23a berechnet werden. Beträgt beispielsweise die Datenübertragungsrate 50 MB/s, die Zugriffszeit Taccess10 ms und die Aktivierungszeit Twakeup10 ms, beträgt die Größe des ersten Teils23a ein Megabyte. - In einem Schritt
43 wird daraufhin der erste Teil23a des Datenstroms22 mit einer Größe von beispielsweise einem Megabyte an den ersten Massenspeicher15 übertragen. Parallel dazu wird im Schritt44 der zweite Teil23b des Datenstroms22 an den zweiten Massenspeicher16 übertragen. - Der erste Massenspeicher
15 beginnt im Schritt45 sofort mit dem Schreibzugriff und somit dem Speichern des ersten Teils23a . Währenddessen wird ein Schreib-/Lesekopf des Festplattenlaufwerkes14 in einem Schritt46 am Beginn des zweiten Speicherbereiches18 positioniert. In einem nachfolgenden Schritt47 werden die weiteren Daten23b des Datenstroms22 auf dem zweiten Massenspeicher16 geschrieben. - Nach Abschluss der Schreiboperationen
45 und47 bestätigt die Steuereinheit6 in einem Schritt48 die Ausführung der Schreibanfrage21 . In einem optionalen Schritt49 kann nachfolgend noch der erste Teil23a des Datenstroms22 auf das Festplattenlaufwerk14 geschrieben werden. -
5 zeigt ein Ablaufdiagramm eines Verfahrens zum Lesen von Daten von einem Speichersubsystem1 . In einem ersten Schritt51 wird eine Leseanfrage31 von der Steuereinheit6 empfangen. Die Leseanfrage31 enthält Adressinformationen, die den einzulesenden Datenstrom22 kennzeichnen. Die Steuereinheit6 ordnet die Adressinformationen einem ersten beziehungsweise zweiten Speicherbereich17 bzw.18 des ersten beziehungsweise zweiten Massenspeichers15 bzw.16 zu. Beispielsweise können die dazu benötigten Informationen aus dem Arbeitsspeicher11 von dem Mikroprozessor10 abgerufen werden. - In einen Schritt
52 wird die Größe des ersten Teils23a des Datenstroms22 ermittelt. Hierzu können beispielsweise wie unter Bezugnahme auf den Schritt42 beschrieben, eine Verzögerung T des zweiten Massenspeichers16 für den bestimmten zweiten Adressbereich18 bestimmt werden. Alternativ ist es auch möglich, beim Schreiben des Datenstroms22 erzeugte Metadaten, die die Länge des ersten Teils23a umfassen, abzurufen. - In den Schritten
53 und54 werden eine erste Teilanfrage32 beziehungsweise eine zweite Teilanfrage33 an den ersten Massenspeicher15 beziehungsweise den zweiten Massenspeicher16 übertragen. Der erste Massenspeicher15 , bei dem es sich um ein Festkörperspeichermedium13 handelt, beginnt sofort mit dem Lesen des angeforderten ersten Teils23a und liefert entsprechende Daten mit einer ersten Teilantwort34 zurück an die Steuereinheit6 . Währenddessen positioniert der zweite Massenspeicher16 , beispielsweise das Festplattenlaufwerk14 , Leseköpfe in dem zweitem Speicherbereich. Dies wird im Schritt54 durchgeführt. In einem nachfolgenden Schritt46 wird der zweite Teil23b des Datenstroms22 von dem Festplattenlaufwerk14 eingelesen. Die in den Schritten55 und57 von dem ersten beziehungsweise zweiten Massenspeicher15 bzw.16 zurück übertragene erste Teilantwort34 beziehungsweise zweite Teilantwort35 wird in einem Schritt58 von der Steuereinheit6 zu einer Antwort36 zusammengefügt und an einen anfragenden Server-Computer5 übertragen. - Dabei steht der zweite Teil
23b unmittelbar nach dem ersten Teil23a zur Übertragung zur Verfügung, wenn die Verzögerung T wie oben beschrieben bestimmt wird, und der Datenstrom22 kann praktisch ohne Zeitverzögerung an den anfragenden Server-Computer5 übertragen werden. Sollte durch eine außergewöhnliche Verzögerung die Übertragung des ersten Teils23a oder des zweiten Teils23b verzögert werden, protokolliert die Steuereinheit6 die auftretende Verzögerung und berücksichtigt sie gegebenenfalls bei nachfolgenden Schreiboperationen in den betreffenden Speicherbereich. Wird beispielsweise im Betrieb des Speichersubsystems1 ermittelt, dass eine der drei Festplattenlaufwerke14a ,14b oder14c eine höhere Zugriffsverzögerung aufweist, als die verbleibenden zwei Festplattenlaufwerke14 , kann dies beim Schreiben und Lesen von Daten auf die betreffende Festplatte berücksichtigt werden. Weist beispielsweise die Festplatte14c eine 20 Prozent höhere Zugriffsverzögerung auf als die Festplatten14a und14b , können die der Festplatte14c zugeordneten ersten Speicherbereiche17 auf dem ersten Massenspeicher16 des Festkörperspeichermediums13 um 20 Prozent vergrößert werden, um die auftretenden Verzögerungen abzupuffern und gegenüber dem anfragenden Server-Computer5 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)
- 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. - 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. - 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. - 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. - 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. - 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. - 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. - 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. - 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 ). - 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. - 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. - 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.
Priority Applications (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 |
Applications Claiming Priority (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 |
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 Expired - Fee Related 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 (28)
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 | 华为技术有限公司 | 基于内存芯片互连的内存访问处理方法、内存芯片及*** |
EP2854015B1 (de) * | 2013-09-25 | 2019-09-04 | Alcatel Lucent | Kommunikationsspeichersystem |
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 |
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 |
US9753649B2 (en) | 2014-10-27 | 2017-09-05 | Sandisk Technologies Llc | Tracking intermix of writes and un-map commands across power cycles |
US9824007B2 (en) | 2014-11-21 | 2017-11-21 | Sandisk Technologies Llc | Data integrity enhancement to protect against returning old versions of data |
US9817752B2 (en) | 2014-11-21 | 2017-11-14 | 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 |
US9645765B2 (en) * | 2015-04-09 | 2017-05-09 | Sandisk Technologies Llc | Reading and writing data at multiple, individual non-volatile memory portions in response to data transfer sent to single relative memory address |
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 |
US10732856B2 (en) | 2016-03-03 | 2020-08-04 | Sandisk Technologies Llc | Erase health metric to rank memory portions |
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4736593B2 (ja) * | 2005-07-25 | 2011-07-27 | ソニー株式会社 | データ記憶装置、データ記録方法、記録及び/又は再生システム、並びに、電子機器 |
-
2008
- 2008-05-08 DE DE102008022831.1A patent/DE102008022831B4/de not_active Expired - Fee Related
-
2009
- 2009-05-08 US US12/463,314 patent/US8140747B2/en not_active Expired - Fee Related
Patent Citations (4)
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)
Title |
---|
Windows PC Accelerators; Microsoft, 5. Dez. 2006 * |
Also Published As
Publication number | Publication date |
---|---|
DE102008022831A1 (de) | 2009-11-19 |
US20090282191A1 (en) | 2009-11-12 |
US8140747B2 (en) | 2012-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102008022831B4 (de) | Arbeitsverfahren für ein Speichersubsystem und Vorrichtungen zur Durchführung des Arbeitsverfahrens | |
DE112020005060T5 (de) | Ratengrenze für den übergang von zonen zum öffnen | |
DE69223287T2 (de) | Steuerungsverfahren für eine Computerspeichereinrichtung | |
DE112012002615B4 (de) | Vorabladen von Datenspuren und Paritätsdaten zur Verwendung zum Auslagern aktualisierter Spuren | |
DE112011100112B4 (de) | Pufferspeicher-platte in blitzkopie-kaskade | |
DE69622253T2 (de) | System und verfahren für on-line- und echzeit-datenmigration | |
DE112010003788B4 (de) | Datenspeicherung | |
US9256533B2 (en) | Adjustment of destage rate based on read and write response time requirements | |
DE112010004969B4 (de) | Hybrides Speicherteilsystem und Verfahren zum Verwalten eines solchen | |
DE102017104125A1 (de) | Zonen von Übersetzungstabellen von logischen in physische Datenadressen mit parallelisiertem Log-Listenreplay | |
DE102019132371A1 (de) | Zuordnungsverwaltung logisch zu physisch unter Verwendung von nichtflüchtigem Speicher | |
DE112014006118B4 (de) | Spekulatives Vorab-Holen von in einem Flash-Speicher gespeicherten Daten | |
DE69626569T2 (de) | Datenkompressionsverfahren und Struktur für eine Speichereinheit mit direktem Zugriff | |
DE102020107659A1 (de) | Zonenbildung für gezonte namensräume | |
DE112011100564B4 (de) | Einfügen eines Flash-Zwischenspeichers in große Speichersysteme | |
DE102013020269A1 (de) | Umordnen des Zurückschickens für einen Host-Lesebefehl basierend auf der Zeitschätzung des Abschlusses eines Flash-Lesebefehls | |
DE102008036822A1 (de) | Verfahren zum Speichern von Daten in einem Solid-State-Speicher, Solid-State-Speichersystem und Computersystem | |
DE102017104150A1 (de) | Abnutzungsausgleich in Speichervorrichtungen | |
DE112020000139T5 (de) | Nicht sequentiell in zonen aufgeteilte namensräume | |
DE102004023811A1 (de) | Speichersystem | |
DE112013006655T5 (de) | Speichervorrichtung und Verfahren zum Steuern der Speichervorrichtung | |
DE112005001050T5 (de) | Liefern eines alternativen Cachespeicherungsschemas auf der Speicherbereichnetzwerkebene | |
DE102005031525A1 (de) | Verfahren und System zur Steuerung eines Flashspeichers und Speichersystem | |
DE102009031125A1 (de) | Nand-Fehlerbehandlung | |
DE102013209318B4 (de) | Durchführen von asynchronen Löschscans mit Zwischenspeicherungs- und Auslagerungsvorgängen |
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 |
|
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 |
|
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 |
|
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 |
|
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |