DE112013005903T5 - Speichersystem und Speichersteuerungsverfahren - Google Patents

Speichersystem und Speichersteuerungsverfahren Download PDF

Info

Publication number
DE112013005903T5
DE112013005903T5 DE112013005903.7T DE112013005903T DE112013005903T5 DE 112013005903 T5 DE112013005903 T5 DE 112013005903T5 DE 112013005903 T DE112013005903 T DE 112013005903T DE 112013005903 T5 DE112013005903 T5 DE 112013005903T5
Authority
DE
Germany
Prior art keywords
cache
area
data
control unit
write
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.)
Withdrawn
Application number
DE112013005903.7T
Other languages
English (en)
Inventor
Noboru Morishita
Shintaro Kudo
Yusuke Nonaka
Akira Yamamoto
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of DE112013005903T5 publication Critical patent/DE112013005903T5/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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 OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/283Plural cache memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/313In storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Ein Speichersystem enthält: eine erste Steuereinheit, welche einen ersten Pufferbereich und einen ersten Cachebereich aufweist; und eine zweite Steuereinheit, welche einen zweiten Pufferbereich und einen zweiten Cachebereich aufweist. Die erste Steuereinheit ist dafür konfiguriert, Schreibdaten gemäß einer Schreibanforderung von einem Host-Computer im ersten Cachebereich zu speichern, ohne den ersten Pufferbereich zu beteiligen, und die im ersten Cachebereich gespeicherten Schreibdaten in den zweiten Cachebereich zu übertragen, ohne den zweiten Pufferbereich zu beteiligen. Die erste Steuereinheit ist dafür konfiguriert, zu ermitteln, welcher vom ersten Cachebereich und zweiten Cachebereich als Kopierquelle zu verwenden ist und welcher als Kopierziel zu verwenden ist, je nachdem, ob das Speichern der ersten Schreibdaten im ersten Cachebereich erfolgreich war oder ob die Übertragung der Schreibdaten vom ersten Cachebereich an die zweite Steuereinheit erfolgreich war, und stellt durch Kopieren von Daten aus der Kopierquelle in das Kopierziel Daten in einem mit einem Übertragungsfehler zusammenhängenden Bereich wieder her.

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung betrifft ein Verfahren zum Schreiben von Schreibdaten von einem Host in einen Cachebereich eines Speichersystems.
  • Stand der Technik
  • Ein Speichersystem ist bekannt, welches bei Empfangen einer Schreibanforderung vom Host-Computer und Speichern die Schreibanforderung begleitender Schreibdaten in einem Cachespeicherbereich (im Folgenden Cachebereich) ein Schreibende an einen Host-Computer zurückmeldet. Darüber hinaus ist auch ein Speichersystem bekannt, welches in einem Cachebereich gespeicherte Schreibdaten multiplext (gewöhnlich duplext), um den Schutz der Schreibdaten bezüglich Fehlern wie eines Stromausfalls zu verbessern.
  • Gemäß PTL1 wird beim Duplexen von Schreibdaten vom Host-Computer Datenschutz realisiert, ohne Leistung zu opfern, indem exklusive Steuerung zwischen einer Vielzahl von Cachebereiche aufweisenden Steuereinheiten beseitigt wird.
  • Gemäß PTL2 wird in einem Speichersystem, welches Benutzerdaten speichert, indem es redundante Daten wie eine Parität zu den Benutzerdaten hinzufügt, durch Speichern aktualisierter Daten (Schreibdaten) vom Host-Computer in einem anderen Cachebereich als Daten vor der Aktualisierung (alte Daten) der Zugriff auf eine Speichervorrichtung während der Erzeugung der redundanten Daten verringert und die Verarbeitungseffizienz des Speichersystems verbessert.
  • Druckschriftenverzeichnis
  • Patentliteratur
    • [PTL1] Offengelegte japanische Patentanmeldung Nr. H9-146842
    • [PTL2] Offengelegte japanische Patentanmeldung Nr. H7-328072
  • Kurzbeschreibung der Erfindung
  • Technisches Problem
  • Die folgenden Verfahren (A) und (B) sind als Datenübertragungsmodi beim Speichern von Schreibdaten von einem Host-Computer in einem, Cachebereich eines Speichersystems verfügbar.
    • (A) Die Schreibdaten vom Host-Computer werden vorübergehend in einem in einer FE-I/F (Front-End-Datenübertragungs-Schnittstelleneinrichtung) des Speichersystems enthaltenen Pufferbereich gespeichert, und wenn die gespeicherten Schreibdaten eine bestimmte Datenmenge erreichen, werden die Schreibdaten zusammengefasst in den Cachebereich übertragen.
    • (B) Die Schreibdaten vom Host-Computer werden im Cachebereich des Speichersystems gespeichert, ohne den in der FE-I/F enthaltenen Pufferbereich zu beteiligen.
  • Gewöhnlich wird das Verfahren (A) bei einigen Speichersystemen im mittleren Leistungsbereich und allen Hochleistungs-Speichersystemen häufig verwendet, da zusammengefasstes Übertragen von Schreibdaten einen Rückgang der Übertragungseffizienz eines Datenübertragungspfads innerhalb des Speichersystems verringert. Bei Speichersystemen im mittleren Leistungsbereich werden Mikroprogramme aus Hochleistungs-Speichersystemen zum Erreichen fortschrittlicherer Funktionen und zur Erleichterung der Entwicklung verwendet, und gleichzeitig wurde ein Fortschritt beim Vereinfachen von Hardware und beim gemeinsamen Nutzen von Hardware mit Servern und dergleichen zwecks Kostensenkung erzielt. Im Rahmen solcher Bemühungen werden ein Cachebereich zum Speichern von Benutzerdaten und ein zur Datenübertragung verwendeter Pufferbereich, welche herkömmlicherweise physisch voneinander getrennt waren, in einem Arbeitsspeicher, welcher direkt mit einem Prozessor verbunden ist, konsolidiert.
  • Bei einer einen solchen Arbeitsspeicher enthaltenden Hardwarekonfiguration kann beim Ausführen einer Datenübertragung zwischen dem Host-Computer und dem Speichersystem gemäß dem Verfahren (A), welches den Pufferbereich beteiligt, eine Menge am konsolidierten Arbeitsspeicher eingegebener/ausgegebener Daten zunehmen und einen Rückgang der Leistung verursachen. Deshalb ist es denkbar, dass die Datenübertragung zwischen dem Host-Computer und dem Speichersystem wünschenswerterweise gemäß dem Verfahren (B), welches den Pufferbereich nicht beteiligt, ausgeführt wird.
  • Unterdessen kann, wenn Schreibdaten vom Host-Computer empfangen werden, die Übertragung der Schreibdaten vom Host-Computer wegen, eines Fehlers zwischen dem Host-Computer und dem Speichersystem oder dergleichen ausgesetzt werden. In diesem Fall ist es, während das Speichersystem als Antwort auf eine Schreibanforderung vom Host-Computer einen Fehler zurückmeldet und der Host-Computer gehalten ist, die Schreibanforderung erneut zu versuchen, wenn der Fehler zwischen dem Host-Computer und dem Speichersystem durch eine Unterbrechung eines Pfads oder dergleichen verursacht wird, für den Host-Computer schwierig, die Schreibanforderung erneut zu versuchen.
  • An dieser Stelle kann im Fall des Verfahrens (A), welches den Pufferbereich beteiligt, selbst wenn die Übertragung der Schreibdaten ausgesetzt ist, das Verwerfen von Daten im Pufferbereich genügen. Jedoch können im Fall des Verfahrens (B), welches den Pufferbereich nicht beteiligt, ein Teil der Schreibdaten, deren Übertragung ausgesetzt ist, und ältere Daten als die Schreibdaten, die gerade geschrieben werden, im Cachebereich des Speichersystems nebeneinander vorliegen.
  • Deshalb ist ein Problem beim Verfahren (B), welches behandelt werden muss, im Cachebereich des Speichersystems gespeicherte Benutzerdaten richtig zu pflegen, auch wenn wegen eines Fehlerfaktors, der verhindert, dass während des Empfangs der Schreibdaten vom Host-Computer eine Schreibanforderung vom Host-Computer erneut versucht wird, eine Übertragung von Schreibdaten von einem Host-Computer ausgesetzt ist.
  • Problemlösung
  • Ein Speichersystem ist so konfiguriert, dass es eine durch eine oder mehrere Speichereinrichtungen gebildete Speichereinrichtungsgruppe, eine erste Steuereinheit, welche mit der Speichereinrichtungsgruppe und einem Host-Computer verbunden ist und welche einen ersten Pufferbereich und einen ersten Cachebereich enthält, und eine zweite Steuereinheit, welche mit der Speichereinrichtungsgruppe und dem Host-Computer verbunden ist und welche einen zweiten Pufferbereich und einen zweiten Cachebereich enthält, enthält. Die erste Steuereinheit ist dafür konfiguriert, eine Schreibanforderung vom Host-Computer zu empfangen, Schreibdaten gemäß der Schreibanforderung im ersten Cachebereich zu speichern, ohne den ersten Pufferbereich zu beteiligen, die im ersten Cachebereich gespeicherten Schreibdaten an die zweite Steuereinheit zu übertragen, um die Schreibdaten im zweiten Cachebereich zu speichern, ohne den zweiten Pufferbereich zu beteiligen, und die Schreibdaten im ersten Cachebereich in die Speichereinrichtungsgruppe zu schreiben. Die erste Steuereinheit ist dafür konfiguriert, zu verwalten, ob ein Zustand eines ersten Cache-Unterbereichs ein erster Aussetzzustand ist, welcher gelöscht wird, wenn das Speichern von ersten Schreibdaten im ersten Cache-Unterbereich erfolgreich ist, und die erste oder zweite Steuereinheit ist dafür konfiguriert, zu verwalten, ob ein Zustand eines zweiten Cache-Unterbereichs ein zweiter Aussetzzustand ist, welcher gelöscht wird, wenn eine Übertragung von Schreibdaten aus dem ersten Cache-Unterbereich in den zweiten Cache-Unterbereich erfolgreich ist. Die erste Steuereinheit ist dafür konfiguriert, einen Aussetzzustands-Wiederherstellungsprozess durchzuführen. Ein Aussetzungs-Wiederherstellungsprozess umfasst das Ermitteln, ob der erste Cache-Unterbereich sich im ersten Aussetzzustand befindet und der zweite Cache-Unterbereich sich im zweiten Aussetzzustand befindet. Darüber hinaus umfasst der Aussetzungs-Wiederherstellungsprozess das Konfigurieren des ersten Cache-Unterbereichs als Kopierziel, das Konfigurieren des zweiten Cache-Unterbereichs als Kopierquelle, das Kopieren von Daten aus der Kopierquelle in das Kopierziel und das Löschen des ersten und des zweiten Aussetzzustands, welche dem ersten beziehungsweise dem zweiten Cache-Unterbereich entsprechen, wenn der erste Cache-Unterbereich sich im ersten Aussetzzustand befindet und der zweite Cache-Unterbereich sich im zweiten Aussetzzustand befindet. Ferner umfasst der Aussetzungs-Wiederherstellungsprozess das Konfigurieren des zweiten Cache-Unterbereichs als Kopierziel, das Konfigurieren des ersten Cache-Unterbereichs als Kopierquelle, das Kopieren von Daten aus der Kopierquelle in das Kopierziel und das Löschen des zweiten Aussetzzustands, welcher dem zweiten Cache-Unterbereich entspricht, wenn der erste Cache-Unterbereich sich nicht im ersten Aussetzzustand befindet und der zweite Cache-Unterbereich sich im zweiten Aussetzzustand befindet.
  • [Vorteilhafte Auswirkungen der Erfindung]
  • Bei einem Verfahren des Übertragens von Schreibdaten von einem Host-Computer in einen Cachebereich, ohne einen Pufferbereich zu beteiligen, können im Cachebereich gespeicherte Benutzerdaten richtig gepflegt werden, selbst wenn eine Übertragung der Schreibdaten vom Host Computer ausgesetzt wird, während die Schreibdaten vom Host-Computer empfangen werden.
  • [Kurzbeschreibung der Zeichnungen]
  • 1 zeigt einen Überblick über ein Beispiel.
  • 2 zeigt ein Beispiel eines Computersystems gemäß dem Beispiel.
  • 3 zeigt ein Beispiel einer Pufferbereichs-Verwaltungstabelle gemäß dem Beispiel.
  • 4 zeigt ein Beispiel einer VOL-Verwaltungstabelle gemäß dem Beispiel.
  • 5 zeigt ein Beispiel einer Cacheverzeichnis-Tabelle gemäß dem Beispiel.
  • 6 zeigt ein Beispiel einer CS-Bereichs-Verwaltungstabelle gemäß dem Beispiel.
  • 7 zeigt ein Beispiel einer Cachezuordnungs-Verwaltungstabelle gemäß dem Beispiel.
  • 8 zeigt ein Beispiel eines Warteschlangen-Headers gemäß dem Beispiel.
  • 9 zeigt ein Beispiel einer Verwaltung eines Pufferbereichs gemäß dem Beispiel.
  • 10 zeigt ein Beispiel einer Verwaltung eines Cachebereichs gemäß dem Beispiel.
  • 11 zeigt ein Beispiel einer direkten Leseübertragung gemäß dem Beispiel.
  • 12 zeigt ein Beispiel einer zweistufigen Leseübertragung gemäß dem Beispiel.
  • 13 zeigt ein Beispiel einer zweistufigen Schreibübertragung gemäß dem Beispiel.
  • 14 zeigt ein Beispiel einer direkten Schreibübertragung gemäß dem Beispiel.
  • 15 zeigt ein Beispiel eines Vergleichs von Eigenschaften von Schreibübertragungsverfahren gemäß dem Beispiel.
  • 16 zeigt einen Teil eines Beispiels eines Ablaufs einer Leseverarbeitung gemäß dem Beispiel.
  • 17 zeigt einen übrigen Teil des Beispiels eines Ablaufs einer Leseverarbeitung gemäß dem Beispiel.
  • 18 zeigt einen Teil eines Beispiels eines Ablaufs einer Schreibverarbeitung gemäß dem Beispiel.
  • 19 zeigt einen weiteren Teil des Beispiels eines Ablaufs einer Schreibverarbeitung gemäß dem Beispiel.
  • 20 zeigt einen übrigen Teil des Beispiels eines Ablaufs einer Schreibverarbeitung gemäß dem Beispiel.
  • 21 zeigt ein Beispiel eines Aussetzzustands-Wiederherstellungsprozesses gemäß dem Beispiel.
  • Beschreibung von Ausführungsformen
  • Im Folgenden wird ein Beispiel beschrieben.
  • Obwohl im Folgenden Informationen unter Verwendung von Ausdrücken wie ”xxx-Tabelle” beschrieben werden, können Informationen unter Verwendung jeder beliebigen Art von Datenstruktur ausgedrückt werden. Anders ausgedrückt, eine ”xxx-Tabelle” kann auch als ”xxx-Informationen” bezeichnet werden, um zu zeigen, dass Informationen nicht von der Datenstruktur abhängen.
  • Darüber hinaus kann, während in der folgenden Beschreibung bisweilen ein ”Programm” als Subjekt zum Beschreiben einer Verarbeitung verwendet wird, da ein Programm eine vorgeschriebene Verarbeitung durchführen lässt, während es eine Speicherressource (zum Beispiel einen Arbeitsspeicher) und/oder eine Datenübertragungs-Schnittstelleneinrichtung (zum Beispiel einen Datenübertragungsanschluss) in entsprechender Weise nutzt, indem es durch einen in einer Steuereinrichtung enthaltenen Prozessor (zum Beispiel eine CPU (zentrale Verarbeitungseinheit)) ausgeführt wird, stattdessen ein Prozessor oder eine Steuereinheit oder eine Vorrichtung (zum Beispiel ein Speichersystem), welche den Prozessor enthält, als ein Verarbeitungssubjekt verwendet werden. Eine durch einen Prozessor durchgeführte Verarbeitung kann teilweise oder vollständig durch zweckgebundene Hardware realisiert werden. Ein Computerprogramm kann aus einer Programmquelle in eine Steuereinrichtung installiert werden. Die Programmquelle kann zum Beispiel ein Programmverteilungsserver oder ein Speichermedium sein.
  • Ferner können in der folgenden Beschreibung, wenn Elemente einer gleichen Art durch Unterscheiden der Elemente voneinander beschrieben werden, den Elementen zugewiesene Kennungen (zum Beispiel Zahlen) anstelle eines Bezugszeichens der Elemente verwendet werden. Zum Beispiel kann, wenn Steuereinheiten beschrieben werden sollen, ohne die Steuereinheiten besonders voneinander zu unterscheiden, eine Beschreibung ”Steuereinheit 22” verwendet werden, und kann, wenn einzelne Steuereinheiten durch Unterscheiden der Steuereinheiten voneinander beschrieben werden sollen, eine Beschreibung ”Steuereinheiten #0 und #1” oder dergleichen verwendet werden.
  • Darüber hinaus können, während Zahlen, Namen oder dergleichen in der folgenden Beschreibung als Identifikationsinformationen verschiedener Ziele (zum Beispiel VOL) verwendet werden, die Zahlen, die Namen oder dergleichen austauschbar sein oder können stattdessen andere Arten von Identifikationsinformationen verwendet werden.
  • Ferner sind in der nachfolgenden Beschreibung verwendete Begriffe wie folgt definiert.
  • (*) ”VOL” ist eine Abkürzung von ”logischer Datenträger” und bezieht sich auf eine logische Speichereinrichtung. Ein VOL kann ein reales VOL (RVOL) oder ein virtuelles VOL (VVOL) sein. Darüber hinaus kann ein VOL ein Online-VOL, welches für eine mit einem das VOL bereitstellenden Speichersystem verbundene externe Vorrichtung (zum Beispiel einen Host-Computer) bereitgestellt ist, und ein Offline-VOL, welches nicht für eine externe Vorrichtung bereitgestellt ist (welches nicht durch eine externe Einrichtung erkannt wird), umfassen.
  • (*) ”RVOL” ist ein auf einer in dem Speichersystem, welches das RVOL enthält, enthaltenen physischen Speicherressource (zum Beispiel einer RAID-(Redundant Array of Independent (oder Inexpensive)Disks)Gruppe, welche aus einer Vielzahl von PDEVs besteht) beruhendes VOL.
  • (*) ”RG” ist eine Abkürzung von ”RAID-Gruppe”.
  • (*) Zu Beispielen von ”VVOLs” können ein extern verbundenes VOL (EVOL), das ein VOL ist, welches auf einer Speicherressource (zum Beispiel einem VOL) eines mit einem das VVOL enthaltenden Speichersystem verbundenen externen Speichersystems beruht, ein VOL (TPVOL), welches aus einer Vielzahl von virtuellen Seiten (virtuellen Speicherbereichen) besteht und welches sich nach einem Kapazitätsvirtualisierungsverfahren (typischerweise Thin Provisioning) richtet, und ein Momentaufnahme-VOL, welches als eine Momentaufnahme eines echten VOL bereitgestellt ist, zählen. Ein TPVOL ist typischerweise ein Online-VOL. Ein Momentaufnahme-VOL kann ein RVOL sein.
  • (*) ”PDEV” ist eine Abkürzung für eine nichtflüchtige physische Speichereinrichtung. Eine Vielzahl von PDEVs kann eine Vielzahl von RAID-Gruppen bilden. Eine RAID-Gruppe kann als eine Paritätsgruppe bezeichnet werden.
  • (*) Ein ”Pool” bezieht sich auf einen logischen Speicherbereich (zum Beispiel eine Gruppe aus einer Vielzahl von Pool-VOLs) und kann für jede gewünschte Verwendung bereitgestellt werden. Zum Beispiel können Pools einen TP-Pool und einen Momentaufnahmen-Pool enthalten. Ein TP-Pool ist ein aus einer Vielzahl von realen Seiten (realen Speicherbereichen) bestehender Speicherbereich. Eine reale Seite kann aus einem TP-Pool einer virtuellen Seite eines TPVOL zugeordnet sein. Ein Momentaufnahmen-Pool kann ein Speicherbereich sein, in welchem aus einem echten VOL gesicherte Daten gespeichert sind. Ein Pool (typischerweise ein TP-Pool) kann eine Vielzahl von Ebenen mit verschiedenen Leistungen (zum Beispiel E/A-Leistungen) enthalten. Jede Ebene kann aus einem oder einer Vielzahl von Pool-VOLs mit ähnlichen E/A-Leistungen bestehen.
  • (*) Ein ”Pool-VOL” bezieht sich auf ein VOL, das Bestandteil eines Pools ist. Ein Pool-VOL kann ein RVOL oder ein EVOL sein. Ein Pool-VOL ist typischerweise ein Offline-VOL.
  • (*) Ein ”Pufferbereich” besteht aus einer Vielzahl von Puffer-Unterbereichen. Bereiche sind in Einheiten von Puffer-Unterbereichen aus einem Pufferbereich gesichert. Im Folgenden wird ein Puffer-Unterbereich als ein ”BS-Bereich” beschrieben.
  • (*) Ein Cachebereich (ein Cachespeicherbereich) besteht aus einer Vielzahl von Cache-Unterbereichen. Bereiche sind in Einheiten von Cache-Unterbereichen aus einem Cachebereich gesichert. Im Folgenden wird ein Cache-Unterbereich als ein ”CS-Bereich” beschrieben.
  • Zuerst wird ein Überblick über das Beispiel beschrieben.
  • 1 zeigt einen Überblick über das Beispiel.
  • Ein Host-Computer 1 (#0, #1) ist über ein Datenübertragungsnetz 11 mit einem Speichersystem 2 verbunden. Eine redundante Steuereinheit 22 (geduplexte Steuereinheiten #0 und #1) ist im Speichersystem 2 vorhanden, um die Redundanz der Daten sicherzustellen. Die Steuereinheiten #0 und #1 sind miteinander verbunden.
  • Jede Steuereinheit 22 (#0, #1) enthält eine FE-I/F 210 (#0, #1), eine CPU 230 (#0, #1) und einen Arbeitsspeicher 240 (#0, #1). Der Arbeitsspeicher 240 hat einen Pufferbereich 242 (#0, #1) und einen Cachebereich 244 (#0, #1). Der Pufferbereich 242 ist ein Speicherbereich, in welchem in den/aus dem Cachebereich 244 eingegebene/ausgegebene Daten vorübergehend gespeichert werden. Aus dem Pufferbereich 242 gelesene Daten sind aus dem Pufferbereich 242 zu löschen. Andererseits ist der Cachebereich 244 ein Speicherbereich, in welchem in die/aus der PDEV (RG) eingegebene/ausgegebene Daten vorübergehend gespeichert werden. Anders als beim Pufferbereich 242 werden die Lesedaten, auch wenn Daten aus dem Cachebereich 244 gelesen werden, nicht unbedingt aus dem Cachebereich 244 gelöscht. Obwohl der Pufferbereich 242 und der Cachebereich 244 auf verschiedene Arbeitsspeicher verteilt sein können, sind der Pufferbereich 242 und der Cachebereich 244 im vorliegenden Beispiel im Arbeitsspeicher 240 konsolidiert. Im Cachebereich 244 kann eine Lesefläche 41 (41a) als ein Bereich gesichert sein, in welchen aus einer PDEV (RG) gelesene Daten geschrieben werden, oder kann eine Schreibfläche 42 (42a, 42b) als ein Bereich gesichert sein, in welchen in eine PDEV (RG) zu schreibende Daten geschrieben werden. In der Beschreibung des vorliegenden Beispiels sind, wenn nicht speziell vermerkt, sowohl eine Lesefläche als auch eine Schreibfläche Bereiche (typischerweise CS-Bereiche), welche im Cachebereich 244 existieren.
  • Darüber hinaus wird angenommen, dass die folgenden Voraussetzungen auf die nachfolgende Beschreibung zutreffen.
    • (1) Daten (später noch zu beschreibende Daten A), welche im Cachebereich #0 der Steuereinheit #0 gespeichert sind, werden in den Cachebereich #1 der Steuereinheit #1 kopiert.
    • (2) Die FE-I/F 210 hat keinen Pufferbereich, der während des Schreibens und Lesens aktiv genutzt werden kann. Deshalb werden vom Host-Computer 1 gesendete Schreibdaten über die FE-I/F 210 an den Cachebereich 244 des Arbeitsspeichers 244 gesendet. Dabei werden die Schreibdaten nicht im Pufferbereich 242 des Arbeitsspeichers 244 gespeichert.
  • In der folgenden Beschreibung wird eine Übertragung von Schreibdaten in den Cachebereich 244, ohne einen Pufferbereich zu beteiligen, als eine ”direkte Schreibübertragung” bezeichnet. Im Folgenden wird eine Verarbeitung beschrieben, welche durchgeführt wird, wenn das Speichersystem 2 während der Ausführung einer direkten Schreibübertragung eine Leseanforderung oder eine Schreibanforderung vom Host-Computer 1 empfängt.
  • Wenn die Steuereinheit #0 eine Schreibanforderung vom Host-Computer #0 empfängt, sichert die CPU #0 einen Speicherbereich (die Schreibfläche 42a) der Schreibdaten aus dem Cachebereich #0 und sichert sie gleichzeitig einen Speicherbereich (die Schreibfläche 42b), welche ein Kopierziel aus dem Cachebereich #1 über die Steuereinheit #1 in der Schreibfläche 42a gespeicherter Daten ist.
  • Anschließend speichert die CPU #0 der Steuereinheit #0 die Schreibdaten über die FE-I/F #0 in der Schreibfläche 42a.
  • Wenn eine Schreibanforderung empfangen wird, kann es Fälle geben, in welchen Schreibdaten (im Folgenden Daten A) gemäß einer anderen Schreibanforderung (zum Beispiel einer vorherigen Schreibanforderung, die einen selben Bereich (zum Beispiel einen Bereich in einem VOL) angegeben hatte) bereits in der Schreibfläche 42a vorliegen und in welchen die Daten A unsaubere(Keine-Parität-erzeugt-)Daten sind. Unsaubere Daten beziehen sich auf nicht ausgelagerte Daten in einer Speichereinrichtung (in einer Speichereinrichtung nicht vorhandene Daten).
  • Wenn auf einem Pfad wie dem Netz 11 ein Fehler auftritt, wenn neue Schreibdaten (Daten B) durch die Steuereinheit #0 vom Host-Computer #0 empfangen werden, zerstört FE-I/F #0 die unsauberen Daten (die Daten A) in der Schreibfläche 42a (1-1). Anders ausgedrückt, die Daten A, welche mit den Daten B überschrieben werden, werden zu anderen Daten (im Folgenden Daten C), in welchen nur ein Teil der Daten A mit einem Teil der Daten B überschrieben ist. Da die Parität bezüglich der Daten A nicht erzeugt wurde, können die Daten A nicht wiederhergestellt werden.
  • Wenn die Steuereinheit #1 eine Leseanforderung, in welcher ein Schreibzielbereich der Daten A als ein Lesequellenbereich gesetzt ist, in einem Zustand, in welchem die unsauberen Daten A durch die Daten B zerstört werden, vom Host-Computer #1 empfängt, liest die CPU #1 der Steuereinheit #1 die unsauberen Daten A aus der Schreibfläche 42b in den Pufferbereich #1, um die unsauberen Daten A mit sauberen Daten A in der Lesefläche 41a zusammenzuführen, und überträgt sie die Daten A aus dem Pufferbereich #1 an den Host-Computer #1 (1-2). Überdies wird, wenn sämtliche Daten in einem Adressenbereich einer Leseanforderung in der Schreibfläche 42b vorliegen, eine direkte Leseübertragung durchgeführt, bei welcher Daten direkt aus der Schreibfläche 42b an den Host #1 übertragen werden.
  • Wenn die Steuereinheit #0 in einem Zustand, in welchem die unsauberen Daten (die Daten A) zerstört werden, nachdem der Fehler des Pfads wie des Netzes 11 behoben wurde, eine Schreibanforderung vom Host-Computer #0 empfängt, stellt die CPU #0 vor Ausführen der Schreibanforderung die Daten C in der Schreibfläche 42a unter Verwendung der in der Schreibfläche 42b der Steuereinheit #1 gespeicherten Daten A (der unsauberen Daten A, welche nicht zerstört wurden) wieder her zu den Daten A (anders ausgedrückt, überschreibt die CPU #0 die Daten C in der Schreibfläche 42a mit den Daten A in der Schreibfläche 42b) (1-3).
  • An dieser Stelle führt die CPU #0, nachdem die CPU #1 die Daten C mit den in der Schreibfläche 42b gespeicherten Daten A überschrieben hat, die Schreibanforderung bezüglich der im Cachebereich #0 gespeicherten Daten A aus.
  • Wegen der oben beschriebenen Verarbeitung kann der Zugriff auf die Daten vom Host-Computer 1 auch während der Ausführung einer direkten Schreibübertragung durch Austauschen von Daten zwischen den Steuereinheiten 22 bezüglich Lese-/Schreibanforderungen vom Host-Computer 1 gemäß einem Zustand im Cachebereich 244 gespeicherter Daten aufrechterhalten werden.
  • Das vorliegende Beispiel lässt sich wie oben beschrieben umreißen. Im Folgenden wird das vorliegende Beispiel ausführlich beschrieben.
  • 2 zeigt ein Beispiel eines Computersystems gemäß dem Beispiel.
  • Das Computersystem enthält den Host-Computer 1, ein Verwaltungsterminal 12, ein Wartungsterminal 23 und das Speichersystem 2.
  • Der Host-Computer 1, das Verwaltungsterminal 12 und das Wartungsterminal 23 sind über das Netz 11 (zum Beispiel ein SAN (Speicherbereichsnetz)) mit der FE-I/F 210 des Speichersystems 2 verbunden.
  • Das Speichersystem 2 enthält eine Speichersteuerungsvorrichtung 21 und eine Speichereinheit 20. Die Speichersteuerungsvorrichtung 21 enthält die Steuereinheit 22. Die Steuereinheit 22 enthält eine Datenübertragungsschnittstelle, eine Speichereinrichtung und einen mit der Datenübertragungsschnittstelle und der Speichereinrichtung verbundenen Prozessor. Zu Beispielen der Datenübertragungsschnittstelle zählen die FE-I/F (Front-End-Schnittstelle) 210 und eine BE-I/F (Back-End-Schnittstelle) 220. Zu Beispielen der Speichereinrichtung zählt der Arbeitsspeicher 240. Zu Beispielen des Prozessors zählt die CPU (zentrale Verarbeitungseinheit) 230. Überdies kann, während das in der Zeichnung gezeigte Beispiel eine Konfiguration darstellt, bei welcher jede Steuereinheit 22 einen Arbeitsspeicher 240 enthält, alternativ eine Konfiguration eingeführt werden, bei welcher jede Steuereinheit 22 eine Vielzahl von Arbeitsspeichern 240 enthält.
  • Zur Sicherstellung der Redundanz ist die Speichersteuerungsvorrichtung 21 mit zwei Steuereinheiten 22 (den Steuereinheiten #0 und #1) ausgestattet. Die Steuereinheiten #0 und #1 sind miteinander verbunden. Um eine Verfügbarkeit des Speichersystems 2 zu erhöhen, kann für jede Steuereinheit 22 eine zweckgebundene Stromversorgung bereitgestellt werden, um jede Steuereinheit 22 mittels der zweckgebundenen Stromversorgung mit Strom zu versorgen.
  • Die FE-I/F 210 ist eine Schnittstelleneinrichtung für den Datenaustausch mit einer externen Einrichtung, welche an einem Front-End des Host-Computers 1 oder dergleichen vorhanden ist. Die BE-I/F 220 ist eine Schnittstelleneinrichtung, welche durch die Steuereinheit 22 verwendet wird, um mit der Speichereinheit 20 Daten auszutauschen.
  • Der Arbeitsspeicher 240 besteht aus einem Programmbereich 241, einem Pufferbereich 242, einem Verwaltungstabellen-Bereich 243 und einem Cachebereich 244. Während der in beiden Steuereinheiten 22 enthaltene Arbeitsspeicher 240 ein nichtflüchtiger Arbeitsspeicher oder ein flüchtiger Arbeitsspeicher sein kann, kann überdies der Cachebereich, welcher unsaubere Daten speichert, durch eine Notstromversorgung oder dergleichen nichtflüchtig gemacht sein.
  • Der Programmbereich 241 speichert verschiedene Steuerprogramme wie ein Leseprogramm 50, ein Schreibprogramm 51 und ein Datenübertragungs-Aussetzzustands-Wiederherstellungsprogramm 52.
  • Der Pufferbereich 242 ist ein Bereich, der zur Datenübertragung, welche zwischen Steuereinheiten 22 durchgeführt wird, wenn keine direkte Leseübertragung und keine direkte Schreibübertragung (die später noch beschrieben werden) durchgeführt werden, verwendet wird.
  • Der Verwaltungstabellen-Bereich 243 speichert verschiedene Verwaltungstabellen. Die Verwaltungstabellen enthalten eine Pufferbereichs-Verwaltungstabelle 30, eine VOL-Verwaltungstabelle 31, eine Cacheverzeichnis-Tabelle 32, eine CS-Bereichs-Verwaltungstabelle 33, eine Cachezuordnungs-Verwaltungstabelle 34 und einen Warteschlangen-Header 35. Einzelheiten dieser Verwaltungstabellen werden später noch geschildert. Überdies besteht der Cachebereich 244 im vorliegenden Beispiel aus einer Vielzahl von CS-Bereichen.
  • Der Cachebereich 244 ist ein Bereich, welcher von der Speichereinheit 20 an den Host-Computer 1 gesendete Lesedaten und vom Host-Computer 1 an die Speichereinheit 20 gesendete Schreibdaten zwischenspeichert.
  • Die CPU 230 realisiert verschiedene Funktionen, indem sie die im Arbeitsspeicher 240 gespeicherten Programme ausführt. In die Speichereinheit 20 zu schreibende Daten und aus der Speichereinheit 20 gelesene Daten werden vorübergehend im Cachebereich 244 gespeichert.
  • Die Speichereinheit 20 enthält eine Vielzahl von PDEVs 200. Während eine PDEV ein HDD (Festplattenlaufwerk) sein kann, können stattdessen auch andere Speichereinrichtungen (nichtflüchtige Speichereinrichtungen), darunter ein FM (Flash Memory) wie eine SSD (Solid State Device), verwendet werden. Die Speichereinheit 20 kann PDEVs verschiedener Arten enthalten. Darüber hinaus kann eine RG aus einer Vielzahl von PDEVs einer gleichen Art bestehen. Daten werden gemäß einer vorgeschriebenen RAID-Stufe in einer RG gespeichert. Im Folgenden wird angenommen, dass in einem Online-VOL gespeicherte Daten schließlich in einer RG gespeichert werden.
  • Wenn die Steuereinheit 22 Schreibdaten vom Host-Computer 1 empfängt, wird ein Garantiecode zu den durch die FE-I/F 210 empfangenen Schreibdaten hinzugefügt. Die Daten, welchen der Garantiecode hinzugefügt wurde, werden in einer RG gespeichert. Während einer Lesedaten-Übertragung wird der zu den Lesedaten hinzugefügte Garantiecode durch die CPU 230 geprüft. Ein Garantiecode kann aus eine Speicherposition von Daten (wie eine VOL-Nummer oder eine Adresse in einem VOL) angebenden Informationen oder Informationen zum Prüfen der Konsistenz von Daten (wie einem CRC (zyklische Blockprüfung)) bestehen.
  • 3 zeigt ein Beispiel einer Pufferbereichs-Verwaltungstabelle gemäß dem Beispiel.
  • Die Pufferbereichs-Verwaltungstabelle 30 ist eine Tabelle zum Verwalten der Zuordnung von BS-Bereichen. Die Pufferbereichs-Verwaltungstabelle 30 enthält eine Zuordnungsgröße 301, CPU-Zuordnungsinformationen 302, eine Zuordnungs-Bitmap 303 und eine BS-Bereichs-Adresse 304. Die BS-Bereichs-Adresse 304 existiert für jeden BS-Bereich.
  • Die Zuordnungsgröße 301 stellt eine Größe eines BS-Bereichs dar.
  • Die CPU-Zuordnungsinformationen 302 stellen dar, welcher Bereich des Pufferbereichs 242 (welcher BS-Bereich) durch welche CPU 230 verwendet wird. Die CPU-Zuordnungsinformationen 302 können eine Entsprechung zwischen einem Bereichsabschnitt im Pufferbereich 242 (einer oder mehreren BS-Bereichs-Adressen) und der CPU 230 darstellen. Anders ausgedrückt, die zu verwendende CPU 230 kann im Voraus für jeden BS-Bereich festgelegt werden. Vorausgesetzt, dass eine solche Entsprechung im Voraus festgelegt wird, ist ein Rückgang einer mit dem Zuordnen eines BS-Bereichs oder Freigeben eines BS-Bereichs bei der CPU 230 zusammenhängenden Last (einer Konfliktlast für den Pufferbereich 242) zu erwarten. Darüber hinaus wird im vorliegenden Beispiel, obwohl die Zuordnung eines BS-Bereichs aus einem Pufferbereich 242 normalerweise durch die CPU 230 in der Steuereinheit 22, welche den Pufferbereich 242 enthält, durchgeführt wird, die Zuordnung eines BS-Bereichs aus einem Pufferbereich 242, um Daten zu speichern, welche von einer anderen Steuereinheit 22 übertragen werden, durch eine CPU der anderen Steuereinheit 22 durchgeführt. Anders ausgedrückt, im vorliegenden Beispiel legt die Verknüpfung der CPU 230 einer anderen Steuereinheit 22 mit einem BS-Bereich in den CPU-Zuordnungsinformationen 302 nahe, dass der BS-Bereich ein BS-Bereich ist, welcher zur Datenübertragung zwischen den Steuereinheiten 22 verwendet wird. Überdies ist die vorliegende Erfindung nicht darauf begrenzt und kann zum Beispiel die Zuordnung eines BS-Bereichs aus dem Pufferbereich 242 durch die CPU 230 in einer anderen Steuereinheit 22, welche den Pufferbereich 242 nicht enthält, durchgeführt werden. Darüber hinaus kann die Zuordnung eines BS-Bereichs aus dem Pufferbereich 242, um Daten zu speichern, welche von einer anderen Steuereinheit 22 übertragen werden, durch die CPU 230 der Steuereinheit 22, welche den Pufferbereich 242 enthält, durchgeführt werden.
  • Die Zuordnungs-Bitmap 303 besteht aus einer Vielzahl von Bits, welche jeweils einer Vielzahl von BS-Bereichen entsprechen. Jedes Bit gibt an, ob der dem Bit entsprechende BS-Bereich in Gebrauch (zum Beispiel ”1”) oder in einem nicht genutzten Zustand (zum Beispiel ”0”) ist.
  • Die BS-Bereichs-Adresse 304 stellt eine Adresse des BS-Bereichs im Pufferbereich 242 dar.
  • 4 zeigt ein Beispiel einer VOL-Verwaltungstabelle gemäß dem Beispiel.
  • Die VOL-Verwaltungstabelle 31 existiert für jedes VOL. Die VOL-Verwaltungstabelle 31 enthält eine VOL-Nummer 311, eine Kapazität 312, einen Zustand 313, eine Hostpfaddefinitionsinformationen-Liste 314, ein VOL-Attribut 315 und Speicherbereichs-Informationen 316.
  • Die VOL-Nummer 311 ist eine Identifikationsnummer eines VOL. Die Kapazität 312 stellt eine Kapazität eines VOL dar. Der Zustand 313 stellt einen Zustand eines VOL dar. Zu Beispielen des Zustands eines VOL zählen ”normal”, ”blockiert” und ”nicht genutzt”.
  • Die Hostpfaddefinitionsinformationen-Liste 314 stellt Informationen zum Identifizieren des Host-Computers 1, welcher eine Lese-/Schreibanforderungsquelle ist, (einen Namen des Host-Computers 1, anschlussangebende Informationen und dergleichen) und Informationen zum Identifizieren des VOL, welches ein Lese-/Schreibanforderungsziel ist, (anschlussangebende Informationen, eine LUN (Logical Unit Number) oder dergleichen des Speichersystems 2) dar.
  • Das VOL-Attribut 315 stellt ein Attribut eines VOL dar. Zu Beispielen von VOL-Attributen zählen ein Online-VOL, ein RVOL, ein TPVOL, ein EVOL und ein Pool-VOL.
  • Die Speicherbereichs-Informationen 316 stellen dem VOL-Attribut 315 entsprechende Informationen dar. Zum Beispiel wenn das VOL-Attribut 315 ein RVOL ist, können die Speicherbereichs-Informationen 316 Informationen bezüglich einer eine Grundlage des RVOL bildenden RG (wie eine RAID-Stufe oder eine PDEV-Nummer) sein. Darüber hinaus, wenn das VOL-Attribut 315 ein TPVOL ist, können die Speicherbereichs-Informationen 316 Informationen bezüglich eines Pools, welcher dem TPVOL zugeordnet ist, oder einer Entsprechung zwischen einer virtuellen Seite und einer realen Seite sein.
  • Die 5 bis 8 zeigen eine Gruppe von Tabellen zum Verwalten des Cachebereichs 244. Die Gruppe von Tabellen zum Verwalten des Cachebereichs 244 enthält die Cacheverzeichnis-Tabelle 32, die CS-Bereichs-Verwaltungstabelle 33, die Cachezuordnungs-Verwaltungstabelle 34 und den Warteschlangen-Header 35.
  • 5 zeigt ein Beispiel der Cacheverzeichnis-Tabelle 32 gemäß dem Beispiel.
  • Die Cacheverzeichnis-Tabelle 32 wird durch die CPU 24 verwendet, um einen Speicherzustand in ein VOL geschriebener oder aus einem VOL im Cachebereich 244 gelesener Daten abzurufen. Anders ausgedrückt, die Cacheverzeichnis-Tabelle 32 ist ein Index zur CS-Bereichs-Verwaltungstabelle 33.
  • Die Cacheverzeichnis-Tabelle 32 ist in eine Vielzahl von Unterverzeichniseinträgen unterteilt. Darüber hinaus ist, während der Cachebereich 244 aus einer Vielzahl von CS-Bereichen besteht, ein Unterverzeichniseintrag mit einem oder einer Vielzahl von CS-Bereichen verknüpft.
  • Hash-Informationen 321 sind eine Entsprechung zwischen einem Hashwert von E/A-Ziel-Informationen und einem Hash-Header darstellende Informationen. E/A-Ziel-Informationen sind Informationen, welche in einer E/A-Anforderung vom Host-Computer 1 enthalten sind und welche einen Bereich in einem E/A-Ziel darstellen, und enthalten typischerweise eine VOL-Nummer und eine Adresse in einem VOL. Instanzen eines Hash-Headers enthalten einen Startzeiger 322 und einen Endezeiger 323, welche eine Adresse einer CS-Bereichs-Verwaltungstabelle 33 darstellen.
  • Anders ausgedrückt, die Cacheverzeichnis-Tabelle 32 ist mit einem Index vergleichbar, welcher eine Entsprechung zwischen E/A-Ziel-Informationen und einem CS-Bereich verwaltet und welcher verwendet wird, um abzurufen, ob für ein E/A-Ziel ein CS-Bereich gesichert wurde. Wenn auf das Verfolgen eines einem Hashwert von E/A-Ziel-Informationen der Cacheverzeichnis-Tabelle 32 entsprechenden Startzeigers 322 hin keine einem E/A-Ziel entsprechende CS-Bereichs-Verwaltungstabelle 33 gefunden wird, bedeutet dies, dass kein CS-Bereich gesichert wurde. Wenn andererseits auf das Verfolgen eines einem Hashwert von E/A-Ziel-Informationen der Cacheverzeichnis-Tabelle 32 entsprechenden Startzeigers 322 hin eine einem E/A-Ziel entsprechende CS-Bereichs-Verwaltungstabelle 33 gefunden wird, bedeutet dies, dass für das E/A-Ziel bereits ein CS-Bereich gesichert wurde und dass Daten eines E/A-Ziels nur in dem gesicherten CS-Bereich gespeichert zu werden brauchen.
  • Überdies kann, um eine maximale Anzahl von CS-Bereichs-Verwaltungstabellen 33, welche mit einem selben Hash-Header verbunden sind, zu verringern und eine Zunahme der Abrufzeit zu verhindern, eine Größe der Cacheverzeichnis-Tabelle 32 gemäß einer Kapazität, welche durch das Speichersystem 2 unterstützt wird, festgelegt werden.
  • 6 zeigt ein Beispiel der CS-Bereichs-Verwaltungstabelle 33 gemäß dem Beispiel.
  • Die CS-Bereichs-Verwaltungstabelle 33 enthält Informationen, welche für jeden CS-Bereich vorhanden sind, um einen Speicherzustand des CS-Bereichs zu verwalten. Die CS-Bereichs-Verwaltungstabelle 33 enthält einen Datenzustand 331, einen Fehlerzustand 332, einen Verzeichnis-Vorwärtszeiger 333, einen Verzeichnis-Rückwärtszeiger 334, einen Warteschlangen-Vorwärtszeiger 335, einen Warteschlangen-Rückwärtszeiger 336, eine Zuordnungsadresse 337, ein Leseflächen/Schreibflächen-Kennzeichen 338 und Übertragungssteuerungsinformationen 339.
  • Der Datenzustand 331 stellt einen Zustand von Daten in einem CS-Bereich dar. Zu Beispielen des Zustands von Daten zählen ”frei”, ”sauber”, ”keine Parität erzeugt/unsauber” und ”Parität erzeugt/unsauber”. ”Frei” bedeutet, dass der CS-Bereich ein freier Bereich ist. ”Sauber” bezeichnet einen Zustand, in welchem im CS-Bereich gespeicherte Daten in der Speichereinheit 20 gespeichert sind. ”Keine Parität erzeugt/unsauber” bezeichnet einen Zustand, in welchem keine Parität bezüglich im CS-Bereich gespeicherter Daten erzeugt wurde und gleichzeitig die Daten nicht in der Speichereinheit 20 gespeichert sind. ”Parität erzeugt/unsauber” bezeichnet einen Zustand, in welchem eine Parität bezüglich im CS-Bereich gespeicherter Daten erzeugt wurde, aber die Daten nicht in der Speichereinheit 20 gespeichert sind.
  • Der Fehlerzustand 332 besagt, ob die Übertragung von Daten während des Empfangs von Schreibdaten sich in einem Aussetzzustand befindet. Wenn der Fehlerzustand 332 einen Datenübertragungs-Aussetzzustand in der CS-Bereichs-Verwaltungstabelle 33 in jeder Steuereinheit bezüglich eines einem bestimmten E/A-Ziel entsprechenden CS-Bereichs darstellt, ist der Zustand entweder ein Datenübertragungs-Aussetzzustand 1 oder ein Datenübertragungs-Aussetzzustand 2. Anders ausgedrückt, der Datertübertragungs-Aussetzzustand 1 und der Datenübertragungs-Aussetzzustand 2 können nicht gleichzeitig in der CS-Bereichs-Verwaltungstabelle 33 in ein und derselben Steuereinheit nebeneinander vorliegen. Jedoch kann es Fälle geben, in welchen, bezüglich eines einem bestimmten E/A-Ziel entsprechenden CS-Bereichs, der Fehlerzustand 332 der Datenübertragungs-Aussetzzustand 1 in der CS-Bereichs-Verwaltungstabelle 33 einer Steuereinheit ist und der Fehlerzustand 332 der Datenübertragungs-Aussetzzustand 2 in der CS-Bereichs-Verwaltungstabelle 33 einer anderen Steuereinheit ist. Der ”Datenübertragungs-Aussetzzustand 1” stellt einen Zustand dar, in welchem die Übertragung von Daten vom Host-Computer 1 zum Speichersystem 2 nicht vollständig durchgeführt wurde. Der ”Datenübertragungs-Aussetzzustand 2” stellt einen Zustand dar, in welchem die Übertragung von Daten von der einen Steuereinheit zur anderen Steuereinheit nicht vollständig durchgeführt wurde. Im Folgenden wird ein Datenübertragungs-Aussetzzustand als ”Aussetzzustand” abgekürzt.
  • Der Verzeichnis-Vorwärtszeiger 333 und der Verzeichnis-Rückwärtszeiger 334 stellen CS-Bereichs-Verwaltungstabellen 33 dar, deren entsprechende Unterverzeichniseinträge oder Hashwerte die gleichen sind. Speziell entspricht der Vorwärtszeiger 333 einer CS-Bereichs-Verwaltungstabelle 33, deren Startzeiger 322 in einem entsprechenden Unterverzeichniseintrag oder deren Hashwert der gleiche ist, und entspricht der Rückwärtszeiger 334 einer CS-Bereichs-Verwaltungstabelle 33, deren Endezeiger 323 in einem entsprechenden Unterverzeichniseintrag oder deren Hashwert der gleiche ist (siehe 10).
  • Der Warteschlangen-Vorwärtszeiger 335 und der Warteschlangen-Rückwärtszeiger 336 sind zum Verbinden mit dem Warteschlangen-Header 35 verwendete Informationen (beliebige von ”sauber”, ”unsauber vor Paritätserzeugung”, ”unsauber nach Paritätserzeugung” und ”frei”). Der Warteschlangen-Vorwärtszeiger 335 und der Warteschlangen-Rückwärtszeiger 336 werden später beschrieben.
  • Die Zuordnungsadresse 337 ist ein eine Adresse der Cachezuordnungs-Verwaltungstabelle 34 darstellender Zeiger, welcher ein Verbindungsziel der CS-Bereichs-Verwaltungstabelle 33 ist, welche die Adresse 337 enthält. Die Zuordnungsadresse 337 enthält eine Zuordnungsadresse 1 und eine Zuordnungsadresse 2. Eine der Zuordnungsadressen 1 und 2 entspricht einer Schreibfläche, und die andere entspricht einer Lesefläche.
  • Das Lesefläche/Schreibfläche-Kennzeichen 338 ist eine Information, die darstellt, welche von den Zuordnungsadressen 1 und 2 eine Lesefläche (ein CS-Bereich, welcher saubere Daten und unsaubere ”Parität-erzeugt”-Daten speichert) ist und welche von den Zuordnungsadressen 1 und 2 eine Schreibfläche (ein CS-Bereich, welcher unsaubere ”Keine-Parität-erzeugt”-Daten speichert) ist. Speziell entspricht bei gesetztem Kennzeichen 338 eine Lesefläche der Zuordnungsadresse 1 und entspricht bei nicht gesetztem Kennzeichen 338 eine Schreibfläche der Zuordnungsadresse 1.
  • Zur Vorbereitung auf das Erzeugen einer neuen Parität bezüglich Schreibdaten, welche neue Daten sind, aus einer aktuellen Parität und aktuellen Daten werden saubere Daten (bereits in die Speichereinheit geschriebene Daten), welche aktuellen Daten entsprechen, und unsaubere ”Parität-erzeugt”-Daten (Schreibdaten (in einem unsauberen Zustand), welche nicht in die Speichereinheit geschrieben wurden, für welche aber eine Parität erzeugt wurde), welche aktuellen Daten entsprechen, in der Lesefläche gespeichert. Auf diese Weise, indem ein CS-Bereich je nach einem Zustand (”sauber” oder ”unsauber”) im CS-Bereich gespeicherter Daten als eine Schreibfläche oder als eine Lesefläche behandelt wird, kann der CS-Bereich wirkungsvoll genutzt werden.
  • Die Übertragungssteuerungsinformationen 339 stellen einen Schreibbereich (einen Adressenbereich im Cachebereich 244), in welchen Daten geschrieben werden, und die Anzahl durch die Steuereinheit 22 bezüglich des Host-Computers 1 durchgeführter erneuter Versuche von Datenübertragungs-Anforderungen dar.
  • 7 zeigt ein Beispiel der Cachezuordnungs-Verwaltungstabelle 34 gemäß dem Beispiel.
  • Die Cachezuordnungs-Verwaltungstabelle 34 existiert für jeden CS-Bereich. Die Cachezuordnungs-Verwaltungstabelle 34 enthält Informationen zum Verwalten der Zuordnung des Cachebereichs 244 (CS-Bereichs).
  • Die Cachezuordnungs-Verwaltungstabelle 34 enthält eine CS-Bereichs-Adresse 341, einen Verbindungszeiger 342, eine Zwischenspeicherungs-Blockzuordnung 343 und eine unsaubere Blockzuordnung 344. Die CS-Bereichs-Adresse 341 stellt eine Adresse eines CS-Bereichs dar. Der Verbindungszeiger 342 ist ein Zeiger auf die CS-Bereichs-Verwaltungstabelle 33 oder auf eine Cachezuordnungs-Verwaltungstabelle 34, wenn der CS-Bereichs-Verwaltungstabelle 33 eine Vielzahl von Cachezuordnungs-Verwaltungstabellen 34 zugeordnet ist. Die Zwischenspeicherungs Blockzuordnung 343 enthält eine Vielzahl von Bits, die jeweils einer Vielzahl von Unterbereichen, welche einen CS-Bereich bilden, entsprechen, und ein Bit, das einem Bereich entspricht, in welchem saubere Daten gespeichert sind, ist durch EIN (1) gekennzeichnet. Die unsaubere Blockzuordnung 344 enthält eine Vielzahl von Bits, die jeweils einer Vielzahl von Unterbereichen, welche einen CS-Bereich bilden, entsprechen, und ein Bit, das einem Bereich entspricht, in welchem unsaubere Daten gespeichert sind, ist durch EIN (1) gekennzeichnet. Eine andere Cachezuordnungs-Verwaltungstabelle 34 kann durch einen Verbindungszeiger sowohl mit einer Lesefläche als auch mit einer Schreibfläche einer CS-Bereichs-Verwaltungstabelle 33 verbunden sein.
  • 8 zeigt ein Beispiel des Warteschlangen-Headers 35 gemäß dem Beispiel.
  • Der Warteschlangen-Header 35 existiert für jeden Datenzustand 331 und bildet einen Kopf einer Warteschlange einer dem Datenzustand entsprechenden Verwaltungstabelle (zum Beispiel der CS-Bereichs-Verwaltungstabelle 33 oder der Cachezuordnungs-Verwaltungstabelle 34). Der Warteschlangen-Header 35 enthält ein Warteschlangenattribut 351, einen Eintragszähler 352, einen Startzeiger 353 und einen Endezeiger 354. Das Warteschlangenattribut 351 stellt einen entsprechenden Datenzustand dar. Der Eintragszähler 352 stellt die Anzahl verbundener Verwaltungstabellen dar. Der Startzeiger 353 stellt eine Adresse einer Verwaltungstabelle am Kopf einer Warteschlange dar. Der Endezeiger 354 stellt eine Adresse einer Verwaltungstabelle am Endpunkt einer Warteschlange dar.
  • 9 zeigt ein Beispiel einer Verwaltung eines Pufferbereichs gemäß dem Beispiel.
  • Ein Zustand jedes BS-Bereichs im Pufferbereich 242 wird gemäß der Pufferbereichs-Verwaltungstabelle 30 verwaltet. Zum Beispiel ist die CPU 230 fähig, einen BS-Bereich aus der BS-Bereichs-Adresse 304 zu identifizieren, einen BS-Bereich in einem nicht genutzten Zustand aus der Zuordnungs-Bitmap 303 zu identifizieren, einen Wert eines einem BS-Bereich in einem nicht genutzten Zustand entsprechenden Bits auf EIN (1) zu ändern, wenn der BS-Bereich zugeordnet wird, und einen Wert eines einem genutzten BS-Bereich entsprechenden Bits auf AUS (0) zu ändern (den BS-Bereich freizugeben), wenn Daten aus dem BS-Bereich gelesen werden.
  • 10 zeigt ein Beispiel einer Verwaltung des Cachebereichs 244 gemäß dem Beispiel. Überdies stellt in 10 ”unsauber (vor)” ”unsauber vor Paritätserzeugung” dar und stellt ”unsauber (nach)” ”unsauber nach Paritätserzeugung” dar.
  • Die CS-Bereichs-Verwaltungstabelle 33 ist mit einem Unterverzeichniseintrag in der Cacheverzeichnis-Tabelle 32 verbunden. Wie zuvor beschrieben, entspricht ein Unterverzeichniseintrag einer Hashwert von E/A-Ziel-Informationen.
  • Darüber hinaus existiert der Warteschlangen-Header 35 für jede CS-Bereichs-Verwaltungstabelle 33 und jede Cachezuordnungs-Verwaltungstabelle 34. Ferner existiert insbesondere bezüglich der CS-Bereichs-Verwaltungstabelle 33 eine Vielzahl von Warteschlangen-Headern 35, welche jeweils einer Vielzahl von Datenzuständen entsprechen. Im Folgenden kann eine Warteschlange einer Verwaltungstabelle, welche mit einem einem Datenzustand ”AA” (zum Beispiel ”frei”) entsprechenden Warteschlangen-Header verbunden ist, als eine ”AA-Warteschlange” (zum Beispiel eine freie Warteschlange) bezeichnet sein. Die CS-Bereichs-Verwaltungstabelle 33 ist direkt oder indirekt mit dem einem durch die Verwaltungstabelle 33 dargestellten Datenzustand entsprechenden Warteschlangen-Header 35 verbunden. Eine indirekte Verbindung ist zum Beispiel eine durch eine oder mehrere weitere CS-Bereichs-Verwaltungstabellen 33 getrennte Verbindung. Wie zuvor beschrieben, gibt es zwei Arten von Warteschlangenzeigern: den Warteschlangen-Vorwärtszeiger 335 und den Warteschlangen-Rückwärtszeiger 336. Der Grund, aus welchem zwei Zeiger vorgesehen sind wie oben beschrieben, ist, LRU-(Least Recently Used-)Steuerung in der CS-Bereichs-Verwaltungstabelle 33 gespeicherter Daten zu realisieren oder ist, anders ausgedrückt, eine Steuerung zu realisieren, bei welcher Daten mit einer längeren seit einem Zugriff verstrichenen Zeit vorzugsweise aus dem Cache verworfen werden. Speziell muss zum Beispiel, wenn eine einem bestimmten Warteschlangen-Header 35 entsprechende CS-Bereichs-Verwaltungstabelle 33 (eine Ziel-CS-Bereichs-Verwaltungstabelle 33) zu einer Kopfposition verlagert wird, eine Extraktion aus der Mitte der Ziel-CS-Bereichs-Verwaltungstabelle 33 durchgeführt werden. Darüber hinaus müssen, um während eines Extraktionsvorgangs aus der Mitte der Ziel-CS-Bereichs-Verwaltungstabelle 33 einen verbundenen Zustand der Warteschlange aufrechtzuerhalten, eine durch einen Vorwärtszeiger der Ziel-CS-Bereichs-Verwaltungstabelle 33 angegebene CS-Bereichs-Verwaltungstabelle und eine durch einen Rückwärtszeiger der Ziel-CS-Bereichs-Verwaltungstabelle 33 angegebene CS-Bereichs-Verwaltungstabelle miteinander verbunden sein.
  • Die CS-Bereichs-Verwaltungstabelle 33 ist über mindestens eine der Zuordnungsadressen 1 und 2 mit der Cachezuordnungs-Verwaltungstabelle 34 verbunden. Überdies kann die Cachezuordnungs-Verwaltungstabelle 34 bisweilen jeder der Zuordnungsadressen 1 und 2 in der CS-Bereichs-Verwaltungstabelle 33 zugeordnet sein. Zum Beispiel kann es Fälle geben, in welchen ein Schreibvorgang bezüglich einer Daten in einem sauberen Zustand gemäß der CS-Bereichs-Verwaltungstabelle 33 speichernden Lesefläche auftritt und eine Schreibfläche bezüglich der Lesefläche gesichert ist. In einem solchen Fall muss einer CS-Bereichs-Verwaltungstabelle 33, zusätzlich zu einer Lesefläche, eine Schreibfläche zugeordnet sein, in welchem Fall beide Zuordnungs-Verwaltungstabellen-Adressen 1 und 2 in einer CS-Bereichs-Verwaltungstabelle 33 verwendet werden.
  • Während saubere Daten nur in einer der Steuereinheiten 22 gespeichert werden, werden unsaubere ”Keine-Parität-erzeugt”-Daten und unsaubere ”Parität-erzeugt”-Daten in einem Cachebereich einer Steuereinheit und einem Cachebereich der anderen Steuereinheit geduplext. Alternativ kann der Cachebereich 244 einen flüchtigen Bereich und einen nichtflüchtigen Bereich enthalten, wodurch saubere Daten im flüchtigen Bereich gespeichert werden können und unsaubere Daten im nichtflüchtigen Bereich gespeichert werden können.
  • Bei Empfangen einer Lese- oder Schreibanforderung vom Host-Computer 1 ermittelt die CPU 230 auf das Verfolgen des Startzeigers 322 der einem Hashwert in der Anforderung enthaltener E/A-Ziel-Informationen entsprechenden Cacheverzeichnis-Tabelle 32 hin, ob eine einem E/A-Ziel entsprechende CS-Bereichs-Verwaltungstabelle 33 existiert. Ein Ermittlungsergebnis ”falsch” bedeutet, dass für das E/A-Ziel kein CS-Bereich gesichert wurde. Wenn kein CS-Bereich gesichert wurde, sichert die CPU 230 einen CS-Bereich. Speziell übernimmt die CPU 230 eine CS-Bereichs-Verwaltungstabelle 33 aus einer freien Warteschlange (einer CS-Bereichs-Verwaltungstabellen-Gruppe) und verbindet sie die übernommene Verwaltungstabelle 33 mit einem Unterverzeichniseintrag und übernimmt sie gleichzeitig eine oder eine Vielzahl von Cachezuordnungs-Verwaltungstabellen 34 aus einer freien Warteschlange (einer Cachezuordnungs-Verwaltungstabellen-Gruppe) und verbindet sie die Verwaltungstabellen 34 mit der übernommenen CS-Bereichs-Verwaltungstabelle 33.
  • Wenn eine empfangene Anforderung eine Leseanforderung ist, sichert die CPU 230 einen CS-Bereich als eine Lesefläche, zwischenspeichert sie Daten aus einer RG, welche gemäß den E/A-Ziel-Informationen eine Lesequelle ist, in der Lesefläche, ändert sie den Datenzustand 331 von ”frei” zu ”sauber” und verbindet sie die entsprechende CS-Bereichs-Verwaltungstabelle 33 mit einer sauberen Warteschlange (verbindet sie zum Beispiel die entsprechende CS-Bereichs-Verwaltungstabelle 33 direkt mit einem sauberen Warteschlangen-Header 35).
  • Wenn eine empfangene Anforderung eine Schreibanforderung ist, sichert die CPU 230 einen CS-Bereich als eine Schreibfläche, speichert sie Schreibdaten in der Schreibfläche, ändert sie den Datenzustand 331 von ”frei” zu ”keine Parität erzeugt/unsauber” und verbindet sie die entsprechende CS-Bereichs-Verwaltungstabelle 33 mit dem Warteschlangen-Header 35 eines ”keine Parität erzeugt/unsauber”.
  • Wenn Paritätserzeugung im Speichersystem 2 asynchron mit der Anforderung vom Host-Computer 1 ausgeführt wird, integriert die CPU 230 unsaubere Daten der Schreibfläche in die Lesefläche und verwirft sie die Daten der Schreibfläche, ändert sie den Datenzustand 331 in ”Parität erzeugt/unsauber” und verbindet sie die entsprechende CS-Bereichs-Verwaltungstabelle 33 mit einer unsauberen ”Parität-erzeugt”-Warteschlange.
  • Daten in einem der mit der unsauberen ”Parität-erzeugt”-Warteschlange verbundenen CS-Bereichs-Verwaltungstabelle 33 entsprechenden CS-Bereich werden asynchron mit der Anforderung vom Host-Computer 1 in eine RG eines Schreibziels ausgelagert. Überdies kann bei einem Zugriff vom Host-Computer 1 eine dem Zugriff entsprechende CS-Bereichs-Verwaltungstabelle 33 eine Umstellung auf einen Kopf in einer Warteschlange eines gleichen Attributs vornehmen. Dies ist so, weil die Verwaltungstabelle 33 eine einem CS-Bereich, auf den vor kurzem zugegriffen wurde, entsprechende Verwaltungstabelle 33 ist.
  • Die 11 bis 14 zeigen Überblicke über Datenübertragungmodi der FE-I/F 210. Zu Datenübertragungsmodi zwischen dem Host-Computer 1 und dem Cachebereich 244 zählen zweistufige Übertragungen und direkte Übertragungen. Zweistufige Übertragungen sind Übertragungsmodi, bei welchen Daten über den Pufferbereich 242 (BS-Bereich) übertragen werden. Direkte Übertragungen sind Übertragungsmodi, bei welchen Daten übertragen werden, ohne den Pufferbereich 242 (BS-Bereich) zu beteiligen. Zu zweistufigen Übertragungen zählen eine zweistufige Schreibübertragung und eine zweistufige Leseübertragung. Die zweistufige Schreibübertragung ist eine zweistufige Übertragung, bei welcher Schreibdaten vom Host-Computer 1 über den Pufferbereich 242 (BS-Bereich) in den Cachebereich 244 (CS-Bereich) übertragen werden. Die zweistufige Leseübertragung ist eine zweistufige Übertragung, bei welcher Lesedaten im Cachespeicher 244 über den Pufferbereich 242 (BS-Bereich) an den Host-Computer 1 übertragen werden. Unterdessen umfassen direkte Übertragungen eine direkte Schreibübertragung und eine direkte Leseübertragung. Die direkte Schreibübertragung ist eine direkte Übertragung, bei welcher Schreibdaten vom Host-Computer 1 in den Cachebereich 244 (CS-Bereich) übertragen werden, ohne den Pufferbereich 242 (BS-Bereich) zu beteiligen. Die direkte Leseübertragung ist eine direkte Übertragung, bei welcher Lesedaten im Cachebereich 244 (CS-Bereich) an den Host-Computer 1 übertragen werden, ohne den Pufferbereich 242 (BS-Bereich) zu beteiligen.
  • 11 zeigt ein Beispiel einer direkten Leseübertragung. 12 zeigt ein Beispiel einer zweistufigen Leseübertragung.
  • Wie in 11 gezeigt, kann eine direkte Leseübertragung aus der FE-I/F #0, welche eine Leseanforderung empfangen hat, durchgeführt werden, wenn Lesedaten im Cachebereich #0 vorliegen. Bei einer direkten Leseübertragung werden im Cachebereich #0 gespeicherte Lesedaten durch die FE-I/F #0 der Steuereinheit #0 an den Host-Computer 1 übertragen. Spezieller überprüft die FE-I/F #0 einen an die Lesedaten angehängten Garantiecode, und wenn kein Bitfehler in den Lesedaten aufgetreten ist, überträgt die CPU #0 die Lesedaten über die FE-I/F #0 an den Host-Computer 1 (zum Beispiel während des Überprüfens des an die Lesedaten angehängten Garantiecodes) (11-1). Anschließend sendet die CPU #0 einen Leseanforderungs-Abschlussbericht über die FE-I/F #0 an den Host-Computer 1 (11-2). Überdies kann der Garantiecode auch durch die CPU #0 anstelle der FE-I/F #0 überprüft werden.
  • Andererseits wird, wie in 12 gezeigt, wenn die FE-I/F #0 eine Leseanforderung empfangen hat, aber Lesedaten im Cachebereich #1 gespeichert sind, eine zweistufige Leseübertragung durchgeführt. Bei einer zweistufigen Leseübertragung sichert die CPU #0 einen BS-Bereich aus dem Pufferbereich #0. Im Folgenden wird ein aus dem Pufferbereich #1 gesicherter BS-Bereich als ”BS-Bereich #1” bezeichnet und wird ein aus dem Pufferbereich #0 gesicherter BS-Bereich als ”BS-Bereich #0” bezeichnet. Lesedaten der Lesefläche 41b im Cachebereich #1 werden in den gesicherten BS-Bereich #0 übertragen. Während die Übertragung ein Schreibvorgang durch die CPU #1 von der Lesefläche 41b in den BS-Bereich #0 ist, kann die Übertragung ein Lesevorgang durch die CPU #0 von der Lesefläche 41b in den BS-Bereich #0 sein. Nachdem die CPU #0 die Lesedaten im BS-Bereich #0 (12-1) gespeichert hat, überprüft die FE-I/F #0 an die gespeicherten Lesedaten angehängten Garantiecode und überträgt die CPU #0 die Lesedaten aus dem BS-Bereich #0 über die FE-I/F #0 an den Host-Computer 1 (zum Beispiel während des Überprüfens des an die Lesedaten angehängten Garantiecodes) (12-2). Anschließend sendet die CPU #0 einen Leseanforderungs-Abschlussbericht an den Host-Computer 1 (11-3).
  • Wenn Daten der Schreibfläche existieren (anders ausgedrückt, wenn der Host-Computer 1 nach dem Senden einer Schreibanforderung eine Leseanforderung sendet), sind, obwohl nicht gezeigt, die Lesedaten Daten der Schreibfläche, welche durch Daten der Lesefläche ergänzt werden. Wenn Lesedaten von einer Lesefläche und einer Schreibfläche, welche in verschiedenen Steuereinheiten 22 vorliegen, übertragen werden, wird eine zweistufige Übertragung durchgeführt.
  • 13 zeigt ein Beispiel einer zweistufigen Schreibübertragung, und 14 zeigt ein Beispiel einer direkten Schreibübertragung.
  • Um eine Zerstörung unsauberer ”Keine-Parität-erzeugt”-Daten der Schreibfläche wegen einer Aussetzung der Schreibdatenübertragung zu vermeiden, wird ein Schreibvorgang gewöhnlich immer mittels einer zweistufigen Übertragung ausgeführt. Darüber hinaus kann, obwohl nicht gezeigt, auch wenn Schreibdaten gemäß einer internen Funktion (lokales Kopieren, fernes Kopieren oder dergleichen) des Speichersystems 2 kopiert werden, eine zweistufige Übertragung ausgeführt werden.
  • Wie in 13 gezeigt, fügt die FE-I/F #0 bei einer zweistufigen Schreibübertragung Schreibdaten vom Host-Computer 1 einen Garantiecode hinzu und speichert sie die Schreibdaten, welchen der Garantiecode hinzugefügt wurde, im BS-Bereich #0 (einem aus dem Pufferbereich für die zweistufige Übertragung gesicherten BS-Bereich #0) (13-1). Wenn unsaubere ”Keine-Parität-erzeugt”-Daten in der Schreibfläche 42a des Cachebereichs #0 gespeichert werden, überprüft die CPU #0 den Garantiecode (13-2). Überdies wird im Fall, dass die Schreibfläche 42a und die Schreibfläche 42b während eines Empfangs einer Schreibanforderung neu zugeordnet werden, wenn unsaubere ”Keine-Parität-erzeugt”-Daten nicht gespeichert werden, auf die Überprüfung des Garantiecodes in (13-2) verzichtet.
  • Wenn kein Bitfehler aufgetreten ist, kopiert die CPU #0 Schreibdaten aus dem BS-Bereich #0 in die Schreibfläche 42a des Cachebereichs #0 (13-3) und kopiert sie die Schreibdaten außerdem in die Schreibfläche 42b des Cachebereichs #1 (13-4). Die CPU #1 überprüft den Garantiecode der in der Schreibfläche 42b gespeicherten Schreibdaten (13-5). Wenn kein Bitfehler aufgetreten ist, meldet die CPU #1 den Schreibanforderungs-Abschluss über die CPU #0 und die FE-I/F #0 an den Host-Computer 1 zurück (13-6).
  • Andererseits, wie in 14 gezeigt, fügt die FE-I/F #0 bei einer direkten Schreibübertragung Schreibdaten vom Host-Computer 1 einen Garantiecode hinzu und speichert sie die Schreibdaten, welchen ein Garantiecode hinzugefügt wurde, in der Schreibfläche 42a des Cachebereichs #0 (14-1). Wenn unsaubere ”Keine-Parität-erzeugt”-Daten in der Schreibfläche 42a gespeichert werden, überprüft die CPU #0 den Garantiecode (14-2). Überdies wird, auf eine ähnliche Weise wie bei einer zweistufigen Schreibübertragung, im Fall, dass die Schreibfläche 42a und die Schreibfläche 42b während eines Empfangs einer Schreibanforderung neu zugeordnet werden, wenn unsaubere ”Keine-Parität-erzeugt”-Daten nicht gespeichert werden, auf die Überprüfung des Garantiecodes aus (14-2) verzichtet.
  • Wenn kein Bitfehler aufgetreten ist, kopiert die CPU #0 die Schreibdaten von der Schreibfläche 42a des Cachebereichs #0 in die Schreibfläche 42b des Cachebereichs #1 (14-3). Die CPU #1 überprüft den Garantiecode der in der Schreibfläche 42b gespeicherten Schreibdaten (14-4). Wenn kein Bitfehler aufgetreten ist, meldet die CPU #1 den Schreibanforderungs-Abschluss über die FE-I/F #1 an den Host-Computer 1 zurück (14-5).
  • 15 zeigt ein Beispiel eines Vergleichs von Eigenschaften von Schreibübertragungsverfahren gemäß dem Beispiel.
  • Datenzustände lauten wie folgt. Ein Fall, in welchem ein Zustand des Cachebereichs 244 während des Empfangs einer Schreibanforderung ”keine Cachedaten” oder (Cachedaten existieren UND (der Datenzustand ist ”sauber” ODER ”Parität erzeugt/unsauber”)) ist, wird als Fall X bezeichnet. Darüber hinaus wird ein Fall, in welchem Cachedaten existieren UND der Datenzustand ”keine Parität erzeugt/unsauber” ist, als Fall Y bezeichnet.
  • Übertragungsmodi lassen sich grob in zweistufige Übertragungen (mit/ohne Garantiecode-Überprüfung) und direkte Übertragungen (mit/ohne Garantiecode-Überprüfung) unterteilen.
  • Was Verfahren der Datenwiederherstellung bei einem Fehler während eines Schreibvorgangs anbelangt, so werden im Fall X bei beiden Verfahren Schreibdaten verworfen, während im Fall Y ein erneuter Versuch einer Übertragung der Schreibdaten in einer zweistufigen Übertragung durchgeführt wird und ein erneuter Versuch einer Übertragung der Schreibdaten oder eine Wiederherstellung unter Verwendung unsauberer Daten einer anderen Steuereinheit in einer direkten Übertragung durchgeführt wird. Überdies entsprechen die in den Verfahren der Datenwiederherstellung bei einem Fehler während eines Schreibvorgangs beschriebenen Klammern ((1-1) bis (1-6)) jeweils (13-1) bis (13-6) in 13. Die Klammern ((1-1) bis (1-5)) entsprechen außerdem jeweils (14-1) bis (14-5) in 14.
  • Gegenüber ”Nur zweistufige Übertragung während Schreibvorgang” ist ”Nur direkte Übertragung während Schreibvorgang” fähig, die Anzahl von Arbeitsspeicher-Zugriffen während eines Schreibvorgangs zu verringern. Darüber hinaus ist auch ein Modus vorstellbar, in welchem eine ”zweistufige Schreibübertragung” nur durchgeführt wird, wenn es in der Schreibfläche ”keine Parität erzeugt/unsauber” gibt. Obwohl die Wirkung des Verringerns der Anzahl von Arbeitsspeicher-Zugriffen vermindert wird, kann. eine Datenwiederherstellung bei Aussetzung einer Schreibdatenübertragung ohne weiteres realisiert werden.
  • In der folgenden Beschreibung wird hauptsächlich ein Modus beschrieben, in welchem eine Ausführung einer zweistufigen Schreibübertragung bei ”Nur direkte Übertragung während Schreibvorgang” teilweise aktiviert ist.
  • Die 16 und 17 zeigen ein Beispiel eines Ablaufs einer Leseverarbeitung gemäß dem Beispiel. Die Leseverarbeitung wird dadurch realisiert, dass die CPU 230 das Leseprogramm 50 ausführt.
  • Zuerst erkennt die CPU 230, wie in 16 gezeigt, eine Leseanforderung von der FE-I/F 210 (Schritt 1000).
  • Dann befragt die CPU 230, auf der Grundlage von in der Leseanforderung enthaltenen Lesequellen-Informationen (eine Lesequelle darstellenden E/A-Ziel-Informationen), über die Cacheverzeichnis-Tabelle 32 die CS-Bereichs-Verwaltungstabelle 33 und die Cachezuordnungs-Verwaltungstabelle 34. Dies wird bezüglich der Cachebereichs-Verwaltungstabellen 33 sowohl einer Host-Steuereinheit als auch einer anderen Steuereinheit ausgeführt. Die CPU 230 befragt die Cachebereichs-Verwaltungstabelle 33 eines Leseanforderungs-Bereichs und überprüft einen Speicherzustand von Leseanforderungs-Daten im Cachebereich 244 (Schritt 1001).
  • Dann, um eine zu lesende Schreibfläche zu ermitteln, ermittelt die CPU 230, ob ein Aussetzzustand vorliegt (Schritt 1002). Wenn Daten der Schreibfläche im Leseanforderungs-Bereich vorliegen, sind die Leseziel-Daten Daten der Schreibfläche, welche durch Daten der Lesefläche ergänzt werden. Überdies enthält der Aussetzzustand, wie zuvor beschrieben, Aussetzzustände 1 und 2. Der Aussetzzustand 1 ist ein Zustand eines in der Steuereinheit 22, welche eine Schreibanforderung vom Host-Computer 1 empfangen hat, enthaltenen CS-Bereichs, wenn Schreibdaten gemäß der Schreibanforderung nicht vollständig an die Steuereinheit 22, welche die Schreibanforderung empfangen hat, übertragen wurden. Der Aussetzzustand 2 ist ein Zustand eines in einer anderen Steuereinheit enthaltenen CS-Bereichs, wenn Schreibdaten nicht vollständig von der Steuereinheit, welche die Schreibdaten empfangen hat, an die andere Steuereinheit übertragen wurden.
  • Wenn weder der Datenübertragungs-Aussetzzustand 1 noch der Datenübertragungs-Aussetzzustand 2 vorliegt (Schritt 1002: Nein), konfiguriert die CPU 230 eine Lesefläche, in welcher saubere Daten vorliegen, als ein Leseziel, wie es normal ist (Schritt 1003). Anschließend fährt die Verarbeitung mit Schritt 1010 fort.
  • Wenn auch nur einer des Aussetzzustands 1 und des Aussetzzustands 2 vorliegt (Schritt 1002: Ja), überprüft die CPU 230, ob unsaubere ”Keine-Parität-erzeugt”-Daten in einer Schreibfläche der Steuereinheit 22, in welcher der Aussetzzustand 2 aufgetreten ist, vorliegen (Schritt 1004).
  • Wenn es keine unsauberen ”Keine-Parität-erzeugt”-Daten gibt (Schritt 1004: Ja), setzt die CPU 230, da die CPU 230 versucht, die Schreibdaten in einer neu zugeordneten Schreibfläche zu speichern und die Schreibdaten zu verwerfen sind, wenn die Übertragung der Schreibdaten fehlschlägt, die Schreibfläche nicht als Leseziel und setzt sie Daten der Lesefläche (und in Schritt 1011 zwischenzuspeichernde Daten) als Leseziel (Schritt 1005). Anschließend fährt die Verarbeitung mit Schritt 1009 fort.
  • Wenn es unsaubere ”Keine-Parität-erzeugt”-Daten gibt (Schritt 1004: Nein), ermittelt die CPU 230 beim Betrachten von CS-Bereichs-Verwaltungstabellen 33, welche Lesequellen sowohl der Host-Steuereinheit als auch der anderen Steuereinheit entsprechen, ob sowohl der Aussetzzustand 1 als auch Aussetzzustand 2 vorliegt (Schritt 1006).
  • Wenn sowohl der Aussetzzustand 1 als auch der Aussetzzustand 2 vorliegt (Schritt 1006: Ja), setzt die CPU 230, da ein Fehlerzustand vorliegt, welcher während einer Übertragung von Schreibdaten vom Host-Computer 1 in den Cachebereich 244 der Steuereinheit 22, welche die Schreibanforderung empfangen hat, aufgetreten war, eine Schreibfläche der Steuereinheit 22, für welche der Aussetzzustand 2 konfiguriert ist (der Steuereinheit 22, in welcher unsaubere ”Keine-Parität-erzeugt”-Daten gespeichert sind), als Leseziel (Schritt 1007). Anschließend fährt die Verarbeitung mit Schritt 1009 fort.
  • Wenn nur einer des Aussetzzustands 1 und des Aussetzzustands 2 vorliegt (anders ausgedrückt, wenn der Aussetzzustand 2 in einer der Steuereinheiten vorliegt) (Schritt 1006: Nein), setzt die CPU 230, da ein Fehlerzustand vorliegt, welcher während des Kopierens von Schreibdaten von der Schreibfläche der Steuereinheit 22, welche die Schreibanforderung empfangen hat, in die Schreibfläche der anderen Steuereinheit 22 aufgetreten war, eine Schreibfläche der Steuereinheit 22, für welche der Aussetzzustand 2 nicht konfiguriert ist (der Steuereinheit 22, welche die Schreibanforderung empfangen hat) als Leseziel (Schritt 1008).
  • Dann startet die CPU 230 einen Aussetzzustands-Wiederherstellungsprozess bezüglich eines Leseanforderungs-Bereichs (Schritt 1009). Der Aussetzzustands-Wiederherstellungsprozess wird gestartet, ohne ein Ende desselben zu erwarten.
  • Dann ermittelt die CPU 230, ob alle Daten im Leseanforderungs-Bereich im Cachebereich 244 vorhanden sind (Schritt 1010).
  • Wenn alle Daten im Leseanforderungs-Bereich im Cachebereich 244 vorhanden sind (Schritt 1010: Ja), fährt die Verarbeitung mit Schritt 1013 in 17 fort.
  • Wenn nicht alle Daten im Leseanforderungs-Bereich im Cachebereich 244 vorhanden sind (Schritt 1010: Nein), zwischenspeichert die CPU 230 im Cachebereich 244 nicht gespeicherte Daten in einer Lesefläche aus einer RG (Schritt 1011). Um zu zeigen, dass effektive, saubere Daten in der Lesefläche gespeichert sind, konfiguriert die CPU 230 einem Zwischenspeicherungsbereich in einer Zwischenspeicherungs-Blockzuordnung entsprechende Bits auf EIN (Schritt 1012). Anschließend fährt die Verarbeitung mit Schritt 1013 in 17 fort.
  • Wie in 17 gezeigt, ermittelt die CPU 230, ob alle Daten im Leseanforderungs-Bereich in der Host-Steuereinheit vorliegen (Schritt 1013). Sowohl die Schreibfläche als auch die Lesefläche, welche Daten im Leseanforderungs-Bereich speichert, muss in der Host-Steuereinheit vorliegen.
  • Wenn Daten eines Teils des Leseanforderungs-Bereichs nicht in der Host-Steuereinheit sind (Schritt 1013: Nein), sichert die CPU 230 einen BS-Bereich der Host-Steuereinheit, um eine zweistufige Leseübertragung ausführen (Schritt 1014). Die CPU 230 kopiert Lesedaten (durch DMA oder dergleichen) in den gesicherten BS-Bereich aus der Lesefläche und der Schreibfläche (wie in den Schritten 1002 bis 1008 ermittelt) (Schritt 1015). Die CPU 230 überträgt die Lesedaten aus dem gesicherten BS-Bereich über die FE-I/F 210 an den Host-Computer 1 (Schritt 1016). Anschließend fährt die Verarbeitung mit Schritt 1018 fort.
  • Wenn alle Daten im Leseanforderungs-Bereich in der Host-Steuereinheit vorliegen (Schritt 1013: Ja), überträgt die CPU 230, um eine direkte Leseübertragung ausführen, die Lesedaten aus der Lesefläche der Host-Steuereinheit 22 über die FE-I/F 210 zum Host-Computer 1 (Schritt 1017).
  • Dann meldet die CPU 230 ein normales Ende der Leseanforderung an den Host-Computer 1 zurück (Schritt 1018).
  • Dann ermittelt die CPU 230 das Vorhandensein oder Nichtvorhandensein nicht freigegebener BS-Bereiche (Schritt 1019). Beim Ausführen einer zweistufigen Leseübertragung gibt die CPU 230, da der in Schritt 1014 gesicherte BS-Bereich in der Host-Steuereinheit in einem nicht freigegebenen Zustand bleibt, den gesicherten BS-Bereich frei (Schritt 1020).
  • Schließlich führt die CPU 230 gemäß dem Datenzustand eine Warteschlangen-Umstellung aus (Schritt 1021). Die CPU 230 führt ein Verbinden mit einem Kopf einer sauberen Warteschlange aus, wenn die CS-Bereichs-Verwaltungstabelle 33 aus einer freien Warteschlange neu gesichert wurde, führt ein Wiederverbinden mit einem Kopf einer Warteschlange eines gleichen Datenzustands aus, wenn die CS-Bereichs-Verwaltungstabelle 33 zur Zeit einer Leseanforderung existiert hatte, und dergleichen.
  • Damit ist die Beschreibung der Leseverarbeitung beendet.
  • Die 18, 19 und 20 zeigen ein Beispiel eines Ablaufs einer Schreibverarbeitung gemäß dem Beispiel. Die Schreibverarbeitung wird realisiert, indem man die CPU 230 das Schreibprogramm 51 ausführen lässt.
  • Zuerst erkennt die CPU 230, wie in 18 gezeigt, eine Schreibanforderung von der FE-I/F 210 (Schritt 1100).
  • Dann, auf der Grundlage von in der Schreibanforderung enthaltenen Schreibziel-Informationen (einer VOL-Nummer und einer Adresse im VOL), befragt die CPU 230 über die Cacheverzeichnis-Tabelle 32 die CS-Bereichs-Verwaltungstabelle 33 und die Cachezuordnungs-Verwaltungstabelle 34. Dies wird bezüglich der CS-Bereichs-Verwaltungstabellen 33 sowohl einer Host-Steuereinheit als auch einer anderen Steuereinheit ausgeführt. Die CPU 230 befragt die Cachebereichs-Verwaltungstabelle 33 eines Schreibanforderungs-Bereichs und überprüft einen Speicherzustand von Daten in einem Schreibbereich im Cachebereich 244 (Schritt 1101). Überdies kann es Fälle geben, in welchen die CS-Bereichs-Verwaltungstabelle 33 bezüglich Schreibziel-Informationen noch nicht gesichert ist.
  • Dann ermittelt die CPU 230, ob bereits eine Schreibfläche gesichert wurde (Schritt 1102). Dies wird bezüglich der CS-Bereichs-Verwaltungstabellen 33 sowohl der Host-Steuereinheit als auch der anderen Steuereinheit ausgeführt. Normalerweise werden Schreibflächen in beiden CS-Bereichs-Verwaltungstabellen 33 oder in keiner CS-Bereichs-Verwaltungstabelle 33 gesichert.
  • Wenn noch keine Schreibfläche gesichert wurde (Schritt 1102: Nein), sichert die CPU 230 eine Schreibfläche neu (Schritt 1103). Dies wird bezüglich der CS-Bereichs-Verwaltungstabellen 33 sowohl der Host-Steuereinheit als auch der anderen Steuereinheit ausgeführt.
  • Wenn eine Schreibfläche bereits gesichert wurde (Schritt 1102: Ja), ermittelt die CPU 230, ob ein Aussetzzustand im Schreibanforderungs-Bereich vorliegt (Schritt 1104).
  • Wenn kein Aussetzzustand im Schreibanforderungs-Bereich vorliegt (Schritt 1104: Nein), fährt die Verarbeitung mit Schritt 1107 fort.
  • Wenn ein Aussetzzustand im Schreibanforderungs-Bereich vorliegt (Schritt 1104: Ja), startet die CPU 230, einen Aussetzzustands-Wiederherstellungsprozess bezüglich des Schreibanforderungs-Bereichs gemäß einem Startfaktor einer Schreibsynchronisierung (Schritt 1105). Anschließend wartet die CPU 230 auf das Ende des Aussetzzustands-Wiederherstellungsprozesses (Schritt 1106).
  • Dann sichert die CPU 230 zusätzlich eine Schreibfläche, welche nicht ausreicht, um die Schreibdaten im Schreibanforderungs-Bereich zu speichern (Schritt 1107). Wenn die Schreibdaten im Schreibanforderungs-Bereich unter Verwendung lediglich einer Schreibfläche, welche bereits gesichert wurde, gespeichert werden können, unternimmt die CPU 230 nichts.
  • Dann ermittelt die CPU 230, ob eine direkte Cachespeicher-Übertragung ausgeführt werden kann (Schritt 1108). Obwohl eine direkte Schreibübertragung normal ausgeführt werden kann (Schritt 1108: Ja), muss in einem Fall, in welchem die früher beschriebene interne Funktion des Speichersystems 2 auf den Datenträger oder dergleichen angewendet wird, bisweilen eine zweistufige Schreibübertragung durchgeführt werden (Schritt 1108: Nein). In einem solchen Fall fährt die Verarbeitung mit Schritt 1200 in 20 fort.
  • Dann konfiguriert die CPU 230 einen Fehlerzustand der Host-Steuereinheit 22, welche die Schreibanforderung empfangen hat, auf den Aussetzzustand 1 und konfiguriert sie einen Fehlerzustand der anderen Steuereinheit auf den Aussetzzustand 2 (Schritt 1109).
  • Dann speichert die FE-I/F 210 die Schreibdaten in der Schreibfläche des Cachebereichs 244 der Host-Steuereinheit vom Host-Computer 1, während sie den Schreibdaten einen Garantiecode hinzufügt (Schritt 1110).
  • Dann ermittelt die CPU 230, ob es unsaubere Daten (zum Beispiel unsaubere ”Keine-Parität-erzeugt”-Daten) gibt, deren Schreibziel ein gleicher Bereich wie ein Schreibziel-Bereich (ein Bereich in einem VOL) der Schreibdaten in der Schreibfläche der Host-Steuereinheit ist (Schritt 1111).
  • Wenn es keine unsauberen ”Keine-Parität-erzeugt”-Daten gibt (Schritt 1111: Nein), überspringt die CPU 230, da die CPU 230 versucht, die Schreibdaten in einer neu zugeordneten Schreibfläche zu speichern, und die Schreibdaten zu verwerfen sind, wenn die Übertragung der Schreibdaten fehlschlägt, die Überprüfung eines Daten-Garantiecodes in der Steuereinheit 22, welche die Schreibanforderung empfangen hat. Anschließend fährt die Verarbeitung mit Schritt 1114 fort.
  • Wenn es unsaubere ”Keine-Parität-erzeugt”-Daten in der Schreibfläche der Host-Steuereinheit gibt (Schritt 1111: Ja), überprüft die CPU 230 den Garantiecode der Schreibdaten (Schritt 1112).
  • Dann ermittelt die CPU 230, ob das Speichern der Schreibdaten im Cachebereich der Host-Steuereinheit normal geendet hat (Schritt 1113). Diese Ermittlung erfolgt auf der Grundlage eines Datenübertragungs-Ausführungsergebnisses der FE-I/F 210, eines Datengarantiecode-Überprüfungsergebnisses oder dergleichen.
  • Wenn das Speichern nicht normal geendet hat (Schritt 1113: Nein), fährt die Verarbeitung mit Schritt 1129 in 19 fort.
  • Wenn das Speichern normal geendet hat (Schritt 1113: Ja), konfiguriert die CPU 230, um zu zeigen, dass effektive unsaubere Daten in der Schreibfläche gespeichert sind, einem Bereich, in welchem die unsauberen Daten in einer unsauberen Blockzuordnung, welche der Schreibfläche der Host-Steuereinheit im Schreibanforderungs-Bereich entspricht, gespeichert sind, entsprechende Bits auf EIN (Schritt 1114).
  • Dann löscht (bricht ab) die CPU 230 den Aussetzzustand 1 des Fehlerzustands der Host-Steuereinheit 22, welche die Schreibanforderung empfangen hat (Schritt 1115). Anschließend fährt die Verarbeitung mit Schritt 1116 in 19 fort.
  • Wie in 19 gezeigt, kopiert die CPU 230 (durch DMA oder dergleichen) die Schreibdaten von der Schreibfläche der Host-Steuereinheit in die Schreibfläche der anderen Steuereinheit (Schritt 1116).
  • Dann überprüft die CPU 230 den Garantiecode der Schreibdaten (Schritt 1117).
  • Dann ermittelt die CPU 230, ob das Speichern der Schreibdaten im Cachebereich 244 der anderen Steuereinheit normal geendet hat (Schritt 1118). Diese Ermittlung erfolgt auf der Grundlage eines Ergebnisses der Kopiervorgangs-Ausführung in Schritt 1116, eines Datengarantiecode-Überprüfungsergebnisses oder dergleichen.
  • Wenn das Speichern normal geendet hat (Schritt 1118: Ja), fährt die Verarbeitung mit Schritt 1125 fort.
  • Wenn das Speichern nicht normal geendet hat (Schritt 1118: Nein), versucht die CPU 230, da ein Datenübertragungsfehler oder dergleichen infolge eines vorübergehenden Ausfalls oder dergleichen von Hardware oder dergleichen angenommen wird, erneut das Kopieren der Schreibdaten zwischen den Steuereinheiten. Zuerst initialisiert die CPU 230 die Anzahl erneuter Versuche (Schritt 1119) und versucht sie auf eine mit Schritt 1116 vergleichbare Weise erneut das Kopieren (durch DMA oder dergleichen) der Schreibdaten von der Schreibfläche der Host-Steuereinheit in die Schreibfläche der anderen Steuereinheit (Schritt 1120). Anschließend überprüft die CPU 230 auf eine mit Schritt 1117 vergleichbare Weise den Garantiecode der Schreibdaten durch die CPU 230 (Schritt 1121). Dann ermittelt die CPU 230, ob der erneute Versuch normal geendet hat (Schritt 1122). Diese Ermittlung erfolgt auf der Grundlage eines Ergebnisses der erneut versuchten Kopiervorgangs-Ausführung, eines Datengarantiecode-Überprüfungsergebnisses oder dergleichen. Wenn der erneute Versuch normal geendet hat (Schritt 1122: Ja), fährt die Verarbeitung mit Schritt 1125 fort. Wenn der erneute Versuch nicht normal geendet hat (Schritt 1122: Nein), addiert die CPU 230 die Anzahl erneuter Versuche (Schritt 1123) und ermittelt sie, ob die Anzahl erneuter Versuche eine Schwelle überschritten hat (Schritt 1124). Wenn die Anzahl erneuter Versuche die Schwelle überschritten hat (Schritt 1124: Ja), fährt die Verarbeitung mit Schritt 1129 fort. Wenn die Anzahl erneuter Versuche die Schwelle nicht überschritten hat (Schritt 1124: Nein), fährt die CPU 230 mit Schritt 1120 fort, um das Kopieren noch einmal zu versuchen.
  • Wenn der erneute Versuch normal geendet hat (Schritt 1122: Ja) oder um zu zeigen, dass nach S1118: Ja effektive unsaubere Daten in der Schreibfläche gespeichert sind, konfiguriert die CPU 230 eine unsaubere Blockzuordnung im Schreibanforderungs-Bereich der Schreibfläche der anderen Steuereinheit auf EIN (Schritt 1125).
  • Dann löscht (bricht ab) die CPU 230 den Aussetzzustand 2 des Fehlerzustands der anderen Steuereinheit 22, welche die Schreibanforderung empfangen hat (Schritt 1126).
  • Dann meldet die CPU 230 ein normales Ende der Schreibanforderung an den Host-Computer 1 zurück (Schritt 1127).
  • Dann führt die CPU 230 eine Warteschlangen-Umstellung gemäß dem Datenzustand aus (Schritt 1128). Die CPU 230 führt ein Umstellen auf ”keine Parität erzeugt/unsauber” und ein Verbinden mit einem Kopf einer unsauberen (Vor-Erzeugung-)Warteschlange aus, wenn der Datenzustand der CS-Bereichs-Verwaltungstabelle 33 ”sauber” ist, führt ein Wiederverbinden mit einem Kopf einer Warteschlange aus, selbst wenn ein Verbinden bereits mit einer unsauberen (Vor-Erzeugung-)Warteschlange durchgeführt wurde, und dergleichen.
  • Andererseits, wenn Schritt 1113: Nein (wenn das Speichern der Schreibdaten im Cachebereich der Host-Steuereinheit nicht normal geendet hatte), wenn Schritt 1124: Ja (wenn erneute Versuche des Kopierens (durch DMA oder dergleichen) der Schreibdaten von der Schreibfläche der Host-Steuereinheit in die Schreibfläche einer anderen Steuereinheit eine Schwelle überschritten haben), wenn Schritt 1204: Nein (wenn das Speichern der Schreibdaten im Pufferbereich der Host-Steuereinheit bei einer später noch zu beschreibenden zweistufigen Schreibübertragung nicht normal geendet hatte) oder wenn Schritt 1212: Ja (wenn erneute Versuche des Kopierens (durch DMA oder dergleichen) der Schreibdaten aus einem durch die Host-Steuereinheit zugeordneten BS-Bereich in die Schreibfläche der Host-Steuereinheit bei einer später noch zu beschreibenden zweistufigen Schreibübertragung eine Schwelle überschritten haben), meldet die CPU 230 ein fehlerhaftes Ende der Schreibanforderung an den Host-Computer 1 zurück (Schritt 1129) und startet sie einen Datenübertragungsaussetzungs-Wiederherstellungsprozess bezüglich des Schreibanforderungs-Bereichs (Schritt 1130).
  • Schließlich ermittelt die CPU 230 das Vorhandensein oder Nichtvorhandensein nicht freigegebener BS-Bereiche (Schritt 1131). Beim Ausführen einer später noch zu beschreibenden zweistufigen Leseübertragung gibt die CPU 230, da der in Schritt 1200 gesicherte BS-Bereich in der Host-Steuereinheit in einem nicht freigegebenen Zustand bleibt, den nicht freigegebenen BS-Bereich frei (Schritt 1132).
  • Im Fall von Schritt 1108: Nein in 18 sichert die CPU 230, wie in 20 gezeigt, einen BS-Bereich der Host-Steuereinheit (Schritt 1200) und fügt die FE-I/F 210 den Schreibdaten einen Garantiecode hinzu und speichert sie die Schreibdaten in dem durch die Host-Steuereinheit zugeordneten BS-Bereich (Schritt 1201).
  • Dann ermittelt die CPU 230, ob es unsaubere ”Keine-Parität-erzeugt”-Daten in der Schreibfläche der Host-Steuereinheit gibt (Schritt 1202).
  • Wenn es keine unsauberen ”Keine-Parität-erzeugt”-Daten gibt (Schritt 1202: Nein), überspringt die CPU 230, da ein Versuch unternommen wird, die Schreibdaten in einer neu zugeordneten Schreibfläche zu speichern, und die Schreibdaten zu verwerfen sind, wenn die Übertragung der Schreibdaten fehlschlägt, die Überprüfung eines Daten-Garantiecodes in der Steuereinheit 22, welche die Schreibanforderung empfangen hat. Anschließend fährt die Verarbeitung mit Schritt 1205 fort.
  • Wenn es unsaubere ”Keine-Parität-erzeugt”-Daten gibt (Schritt 1202: Ja), überprüft die CPU 230 den Garantiecode der im gesicherten BS-Bereich gespeicherten Schreibdaten (Schritt 1203).
  • Dann ermittelt die CPU 230, ob das Speichern der Schreibdaten im BS-Bereich der Host-Steuereinheit normal geendet hat (Schritt 1204). Diese Ermittlung erfolgt auf der Grundlage eines Datenübertragungs-Ausführungsergebnisses der FE-I/F 210, eines Datengarantiecode-Überprüfungsergebnisses oder dergleichen.
  • Wenn das Speichern nicht normal geendet hat (Schritt 1204: Nein), fährt die Verarbeitung mit Schritt 1129 in 19 fort.
  • Wenn das Speichern normal geendet hat (Schritt 1204: Ja), konfiguriert die CPU 230 einen Fehlerzustand der Host-Steuereinheit 22, welche die Schreibanforderung empfangen hat, auf den Aussetzzustand 1 und konfiguriert sie einen Fehlerzustand der anderen Steuereinheit auf den Aussetzzustand 2 (Schritt 1205).
  • Dann werden die Schreibdaten (durch DMA oder dergleichen) aus dem BS-Bereich der Host-Steuereinheit in die Schreibfläche der Host-Steuereinheit kopiert (Schritt 1206).
  • Dann ermittelt die CPU 230, ob das Speichern der Schreibdaten im CS-Bereich der Host-Steuereinheit normal geendet hat (Schritt 1207). Diese Ermittlung erfolgt auf der Grundlage eines Ergebnisses der Kopiervorgangs-Ausführung in Schritt 1205 oder dergleichen.
  • Wenn das Speichern normal geendet hat (Schritt 1207: Ja), fährt die Verarbeitung mit Schritt 1213 fort.
  • Wenn das Speichern nicht normal geendet hat (Schritt 1207: Nein), versucht die CPU 130, da ein Datenübertragungsfehler oder dergleichen infolge eines vorübergehenden Ausfalls oder dergleichen von Hardware oder dergleichen angenommen wird, erneut das Kopieren der Schreibdaten aus dem BS-Bereich in den CS-Bereich der Host-Steuereinheit. Zuerst initialisiert die CPU 230 die Anzahl erneuter Versuche (Schritt 1208) und versucht sie erneut, auf eine mit Schritt 1206 vergleichbare Weise, das Kopieren (durch DMA oder dergleichen) der Schreibdaten aus dem BS-Bereich in die Schreibfläche der Host-Steuereinheit (Schritt 1209). Dann ermittelt die CPU 230, ob der erneute Versuch normal geendet hat (Schritt 1210). Diese Ermittlung erfolgt auf der Grundlage eines Ergebnisses der erneut versuchten Kopiervorgangs-Ausführung oder dergleichen. Wenn der erneute Versuch normal geendet hat (Schritt 1210: Ja), fährt die Verarbeitung mit Schritt 1213 fort. Wenn der erneute Versuch nicht normal geendet hat (Schritt 1210: Nein), addiert die CPU 230 die Anzahl erneuter Versuche (Schritt 1211) und ermittelt sie, ob die Anzahl erneuter Versuche eine Schwelle überschritten hat (Schritt 1212). Wenn die Anzahl erneuter Versuche die Schwelle überschritten hat (Schritt 1212: Ja), fährt die Verarbeitung mit Schritt 1129 in 19 fort. Wenn die Anzahl erneuter Versuche die Schwelle nicht überschritten hat (Schritt 1212: Nein), fährt die CPU 230 mit Schritt 1209 fort, um das Kopieren noch einmal zu versuchen.
  • Dann konfiguriert die CPU 230, um zu zeigen, dass effektive unsaubere Daten in der Schreibfläche gespeichert sind, einem Bereich, in welchem die unsauberen Daten in einer unsauberen Blockzuordnung, welche der Schreibfläche der Host-Steuereinheit entspricht, gespeichert sind, entsprechende Bits auf EIN (Schritt 1213).
  • Dann löscht (bricht ab) die CPU 230 den Aussetzzustand 1 des Fehlerzustands der Host-Steuereinheit, welche die Schreibanforderung empfangen hat (Schritt 1214). Anschließend fährt die CPU 230 mit Schritt 1116 in 19 fort.
  • Damit ist die Beschreibung der Schreibverarbeitung beendet.
  • 21 zeigt ein Beispiel eines Ablaufs des Aussetzzustands-Wiederherstellungsprozesses gemäß dem Beispiel.
  • Der Aussetzzustands-Wiederherstellungsprozess wird realisiert, indem man die CPU 230 das Aussetzzustands-Wiederherstellungsprogramm 52 ausführen lässt. Zu Startfaktoren des Aussetzzustands-Wiederherstellungsprozesses zählen Leseverarbeitungs-Synchronisierung (ein Start aus einer Leseverarbeitung) und Schreibverarbeitungs-Synchronisierung (ein Start aus einer Schreibverarbeitung). Jedoch kann der Aussetzzustands-Wiederherstellungsprozess auch aus einer asynchronen Verarbeitung starten, welche sich auf eine Verarbeitung bezieht, die asynchron mit E/A-Anforderungen (Lese-/Schreibanforderungen) vom Host-Computer 1 ist (zum Beispiel ein Start aus einem Paritätserzeugungsprozess oder ein Start aus einem periodischen Fehlerüberwachungsprozess). Darüber hinaus weicht der Aussetzzustands-Wiederherstellungsprozess gemäß einem Aussetzzustand des Cachebereichs 244 ab (Einzelheiten siehe 15).
  • Zuerst befragt die CPU 230 eine dem Startfaktor des Aussetzzustands-Wiederherstellungsprozesses und einem zu einem angegebenen Bereich gehörenden CS-Bereich entsprechende CS-Bereichs-Verwaltungstabelle (Schritt 1300). Dies wird bezüglich der CS-Bereichs-Verwaltungstabellen sowohl einer Host-Steuereinheit als auch einer anderen Steuereinheit ausgeführt. Darüber hinaus kann in der Beschreibung von 21 zum Beispiel der ”angegebene Bereich” ein in einer vom Host-Computer 1 empfangenen E/A-Anforderung angegebener Adressenbereich (zum Beispiel eine LUN, eine LBA (Logical Block Address) oder eine Datenlänge) sein, wenn Leseverarbeitungs-Synchronisierung oder Schreibverarbeitungs-Synchronisierung der Startfaktor ist, und kann er ein durch die CPU 230 (das Aussetzzustands-Wiederherstellungsprogramm 52) willkürlich angegebener Bereich sein, wenn weder Leseverarbeitungs-Synchronisierung noch Schreibverarbeitungs-Synchronisierung der Startfaktor ist. Im Folgenden wird zur Erleichterung des Verständnisses in der Beschreibung von 21 ein zu einem angegebenen Bereich gehörender CS-Bereich als ein ”angegebener CS-Bereich” bezeichnet, wobei vorausgesetzt wird, dass in einer einzigen Steuereinheit ein einziger angegebener CS-Bereich existiert.
  • Dann ermittelt die CPU 230, ob in einer dem angegebenen CS-Bereich mindestens einer Steuereinheit entsprechenden CS-Bereichs-Verwaltungstabelle ein Aussetzzustand vorliegt (ob der Fehlerzustand 332 der Aussetzzustand 1 oder 2 ist) (Schritt 1301).
  • Wenn kein Aussetzzustand vorliegt (Schritt 1301: Nein), beendet die CPU 230 den Aussetzzustands-Wiederherstellungsprozess. In diesem Fall ist es vorstellbar, dass der Aussetzzustands-Wiederherstellungsprozess in einem Zustand gestartet wurde, in welchem kein Aussetzzustand vorlag, ein Aussetzzustands-Wiederherstellungsprozess, der zu einem anderen Zeitpunkt als den oben beschriebenen Startfaktoren gestartet worden war, den Aussetzzustand bereits behoben hat oder dergleichen.
  • Wenn ein Aussetzzustand vorliegt (Schritt 1301: Ja), ermittelt die CPU 230, ob es keine der Schreibanforderung entsprechenden unsauberen ”Keine-Parität-erzeugt”-Daten im dem Aussetzzustand 2 entsprechenden, angegebenen CS-Bereich (in einer Schreibfläche eines Cachebereichs einer Steuereinheit, für welche der Aussetzzustand 2 konfiguriert ist) gibt (Schritt 1302). Überdies bedeutet ”ein Aussetzzustand liegt vor”, dass mindestens der Aussetzzustand 2 von den Aussetzzuständen 1 und 2 vorliegt. Dies ist so, weil beide Aussetzzustände 1 und 2 in der Schreibverarbeitung (18 bis 20) versuchsweise konfiguriert werden (S1109 oder S1205) und anschließend der Aussetzzustand 1 unweigerlich als erster von den Aussetzzuständen 1 und 2 gelöscht wird (S1115 oder S1214).
  • Wenn es keine unsauberen ”Keine-Parität-erzeugt”-Daten im dem Aussetzzustand 2 entsprechenden, angegebenen CS-Bereich gibt (Schritt 1302: Ja), versucht die CPU 230, die Schreibdaten in einer neu zugeordneten Schreibfläche zu speichern, und werden die einer Schreibanforderung, welche fehlerhaft geendet hat, entsprechenden Schreibdaten verworfen (Schritt 1304). Jedoch wenn Schreibverarbeitungs-Synchronisierung der Startfaktor ist (1303: Ja), konfiguriert die CPU 230, da eine Schreibverarbeitung nach dem Aussetzzustands-Wiederherstellungsprozess planmäßig durchgeführt wird, eine unsaubere Blockzuordnung einer Datenübertragungsquelle auf AUS (in der Annahme eines Falls, in welchem nur der Aussetzzustand 2 konfiguriert ist) zwecks Wiederverwendung einer Schreibfläche, welche bereits gesichert wurde (Schritt 1305). Anschließend fährt die Verarbeitung mit Schritt 1315 fort.
  • Dann ermittelt die CPU 230, ob sowohl der Aussetzzustand 1 als auch der Aussetzzustand 2 vorliegt, wenn beide jeweiligen angegebenen CS-Bereichen der Host-Steuereinheit und der anderen Steuereinheit entsprechenden CS-Bereichs-Verwaltungstabellen 33 als Ganzes betrachtet werden (Schritt 1306).
  • Wenn sowohl der Aussetzzustand 1 als auch der Aussetzzustand 2 vorliegt (Schritt 1306: Ja), konfiguriert die CPU 230, da eine Möglichkeit besteht, dass unsaubere ”Keine-Parität-erzeugt”-Daten in der Schreibfläche der Steuereinheit, welche die Schreibanforderung empfangen hat, zerstört werden, irgendeinen der CS-Bereiche in der einen dem Aussetzzustand 1 entsprechenden, angegebenen CS-Bereich enthaltenden Steuereinheit (anders ausgedrückt, in der Host-Steuereinheit) als Datenkopierziel und konfiguriert sie einen dem Aussetzzustand 2 entsprechenden, angegebenen CS-Bereich (anders ausgedrückt, einen angegebenen CS-Bereich der anderen Steuereinheit) als Datenkopierquelle (Schritt 1307). Anschließend fährt die Verarbeitung mit Schritt 1309 fort. Überdies kann das Datenkopierziel der dem Aussetzzustand 1 entsprechende, angegebene CS-Bereich selbst oder, anders ausgedrückt, die die unsauberen ”Keine-Parität-erzeugt”-Daten, welche möglicherweise zerstört werden, speichernde Schreibfläche sein.
  • Wenn entweder der Aussetzzustand 1 oder der Aussetzzustand 2 vorliegt (Schritt 1306: Nein) oder, anders ausgedrückt, wenn nur der Aussetzzustand 2 vorliegt, konfiguriert die CPU 230, da es denkbar ist, dass das Kopieren von Schreibdaten aus dem angegebenen CS-Bereich (der Schreibfläche) der Host-Steuereinheit in den angegebenen CS-Bereich (die Schreibfläche) der anderen Steuereinheit fehlgeschlagen ist, einen der CS-Bereiche in der einen dem Aussetzzustand 2 entsprechenden, angegebenen CS-Bereich enthaltenden Steuereinheit (anders ausgedrückt, in der anderen Steuereinheit) als ein Datenkopierziel und konfiguriert sie einen angegebenen CS-Bereich, mit welchem der Aussetzzustand 2 nicht verknüpft ist (anders ausgedrückt, einen angegebenen CS-Bereich in der Host-Steuereinheit) als eine Datenkopierquelle (Schritt 1308). Überdies kann das Datenkopierziel der dem Aussetzzustand 2 entsprechende, angegebene CS-Bereich selbst sein.
  • Dann ermittelt die CPU 230, ob Bedingungen, unter welchen ein Datenkopiervorgang unnötig ist, erfüllt sind (Schritt 1309). Wenn die Bedingungen, unter welchen ein Datenkopiervorgang unnötig ist, nicht erfüllt sind, führt die CPU 230 eine Datenkopie aus einer Kopierquelle in ein Kopierziel durch (Schritte 1310 bis 1314). Jedoch wenn die Bedingungen, unter welchen ein Datenkopiervorgang unnötig ist, erfüllt sind, führt die CPU 230 Schritt 1315 durch, ohne einen solchen Datenkopiervorgang durchzuführen. Überdies kann ohne Zwischenfall eine Datenwiederherstellung erreicht werden, selbst wenn der Aussetzzustands-Wiederherstellungsprozess ausgeführt wird, ohne diese Ermittlung durchzuführen (oder einheitlich zu ermitteln, dass die Bedingungen, unter welchen ein Datenkopiervorgang unnötig ist, nicht erfüllt sind (Schritt 1309: Nein)). Spezielle Ermittlungsbedingungen sind, dass Schreibverarbeitungs-Synchronisierung der Startfaktor ist UND die Steuereinheit, welche die aktuelle Schreibanforderung empfangen hat, einen angegebenen CS-Bereich enthält, welcher das Datenkopierziel ist, UND ein Schreibanforderungsbereich (ein in der Schreibanforderung angegebener Adressenbereich) bei Datenübertragungs-Aussetzung in einem aktuellen Schreibanforderungsbereich enthalten ist. In diesem Fall ist ein Zustand der unsauberen ”Keine-Parität-erzeugt”-Daten der Schreibfläche, welche durch den Datenkopierprozess der Schritte 1310 bis 1314 wiederhergestellt werden, durch die Schreibverarbeitung einer aktuellen Schreibanforderung, welche planmäßig ausgeführt wird, zu überschreiben.
  • Dann wird die Schreibfläche, für welche eine Datenübertragung möglicherweise ausgesetzt wurde, infolge des Datenkopierprozesses der Schritte 1310 bis 1314 mit unsauberen ”Keine-Parität-erzeugt”-Daten einer normalen Schreibfläche einer anderen Steuereinheit überschrieben und wird eine Behebung eines Fehlerzustands durchgeführt.
  • Die CPU 230 konfiguriert eine Datenkopierposition auf einen Kopf eines Lese-/Schreibbereichs, welcher als eine Anfangsposition angegeben ist, (Schritt 1310) und ermittelt, ob das Kopieren aller Daten im angegebenen Bereich abgeschlossen wurde (Schritt 1311).
  • Wenn das Kopieren von Daten nicht abgeschlossen wurde (Schritt 1311: Nein), wird eine bestimmte Menge unsauberer Daten (durch DMA oder dergleichen) von der Schreibfläche der Datenübertragungsquelle in die Schreibfläche des Datenübertragungsziels kopiert (Schritt 1312). An dieser Stelle brauchen nur Daten in einem Bereich, für welchen eine unsaubere Blockzuordnung einer Kopierquelle auf EIN konfiguriert ist, kopiert zu werden. Dann konfiguriert die CPU 230, um zu zeigen, dass effektive unsaubere Daten in der Schreibfläche gespeichert sind, eine unsaubere Blockzuordnung eines Schreibanforderungsbereichs einer Schreibfläche einer Kopierziel-Steuereinheit auf EIN (gemäß der EIN-Konfiguration der unsauberen Blockzuordnung der Kopierquelle) (Schritt 1313). Dann rückt die CPU 230 die Datenkopierposition um einen bestimmten, der Kopiermenge entsprechenden Betrag vor (Schritt 1314). Anschließend fährt die Verarbeitung mit Schritt 1311 fort.
  • Wenn das Kopieren von Daten abgeschlossen ist (Schritt 1311: Ja), löscht die CPU 230 den dem angegebenen CS-Bereich entsprechenden Aussetzzustand (Schritt 1315) und beendet sie den Aussetzzustands-Wiederherstellungsprozess.
  • Während oben ein Beispiel beschrieben wurde, ist die vorliegende Erfindung nicht auf das obige Beispiel beschränkt.
  • Zum Beispiel kann, obwohl nicht gezeigt, das Kopieren, wenn das Kopieren in Schritt 1312 fehlschlägt, unter Verwendung eines anderen Verfahrens erneut versucht werden, wenn eine Vielzahl von Kopierverfahren (zum Beispiel wenn eine Vielzahl von DMA-Engines bereitgestellt ist) im voraus bereitgestellt ist, oder kann die CPU 230 die Schreibfläche des Kopierziels freigeben und das Kopieren unter Verwendung eines anderen Bereichs des Cachebereichs derselben Steuereinheit, welcher aus einer freien Warteschlange als eine Schreibfläche neu gesichert wurde, erneut versuchen. Wenn der Aussetzzustand immer noch nicht behoben werden kann, kann eine Parität der unsauberen ”Keine-Parität-erzeugt”-Daten der Schreibfläche der Kopierquelle erzeugt werden, können die unsauberen ”Keine-Parität-erzeugt”-Daten der Kopierquelle und die neue Parität in eine RG ausgelagert werden und können Daten in den Schreibflächen der Kopierquelle und des Kopierziels verworfen werden.
  • Bezugszeichenliste
  • 1
    Host-Computer
    2
    Speichersystem
    21
    Speichersteuerungsvorrichtung
    22
    Steuereinheit
    210
    FE-I/F
    230
    CPU
    240
    Speicher
    242
    Pufferbereich
    243
    Verwaltungstabellen-Bereich
    244
    Cachebereich

Claims (12)

  1. Speichersystem, enthaltend: Speichereinrichtungsgruppe, bestehend aus einer oder mehreren Speichereinrichtungen; eine erste Steuereinheit, welche mit der Speichereinrichtungsgruppe und einem Host-Computer verbunden ist und welche einen ersten Pufferbereich und einen ersten Cachebereich enthält; und eine zweite Steuereinheit, welche mit der Speichereinrichtungsgruppe und dem Host-Computer verbunden ist und welche einen zweiten Pufferbereich und einen zweiten Cachebereich enthält, wobei die erste Steuereinheit dafür konfiguriert ist, eine erste Schreibanforderung vom Host-Computer zu empfangen, erste Schreibdaten gemäß der ersten Schreibanforderung in einem ersten Cache-Unterbereich, welcher irgendeiner der Cache-Unterbereiche im ersten Cachebereich ist, zu speichern, ohne den ersten Pufferbereich zu beteiligen, die im ersten Cache-Unterbereich gespeicherten ersten Schreibdaten an die zweite Steuereinheit zu übertragen, um die ersten Schreibdaten in einem zweiten Cache-Unterbereich, welcher irgendeiner der Cache-Unterbereiche im zweiten Cachebereich ist, zu speichern, ohne den zweiten Pufferbereich zu beteiligen, und die ersten Schreibdaten im ersten Cache-Unterbereich auf der Grundlage eines angegebenen Bereichs gemäß einem Schreibziel, welches in der Schreibanforderung angegeben ist, in die Speichereinrichtungsgruppe zu schreiben, wobei die erste Steuereinheit dafür konfiguriert ist, zu verwalten, ob ein Zustand des ersten Cache-Unterbereichs ein erster Aussetzzustand ist, welcher gelöscht wird, wenn das Speichern der ersten Schreibdaten im ersten Cache-Unterbereich erfolgreich ist, und wobei die erste oder zweite Steuereinheit dafür konfiguriert ist, zu verwalten, ob ein Zustand des zweiten Cache-Unterbereichs ein zweiter Aussetzzustand ist, welcher gelöscht wird, wenn eine Übertragung der Schreibdaten vom ersten Cache-Unterbereich in den zweiten Cache-Unterbereich erfolgreich ist, wobei die erste Steuereinheit dafür konfiguriert ist, einen Aussetzzustands-Wiederherstellungsprozess durchzuführen, und wobei der Aussetzungs-Wiederherstellungsprozess umfasst: das Ermitteln, ob der erste Cache-Unterbereich sich im ersten Aussetzzustand befindet und der zweite Cache-Unterbereich sich im zweiten Aussetzzustand befindet; das Konfigurieren des ersten Cache-Unterbereichs als Kopierziel, das Konfigurieren des zweiten Cache-Unterbereichs als Kopierquelle, das Kopieren von Daten aus der Kopierquelle in das Kopierziel und das Löschen des ersten und des zweiten Aussetzzustands, welche dem ersten beziehungsweise dem zweiten Cache-Unterbereich entsprechen, wenn der erste Cache-Unterbereich sich im ersten Aussetzzustand befindet und der zweite Cache-Unterbereich sich im zweiten Aussetzzustand befindet; und das Konfigurieren des zweiten Cache-Unterbereichs als Kopierziel, das Konfigurieren des ersten Cache-Unterbereichs als Kopierquelle, das Kopieren von Daten aus der Kopierquelle in das Kopierziel und das Löschen des zweiten Aussetzzustands, welcher dem zweiten Cache-Unterbereich entspricht, wenn der erste Cache-Unterbereich sich nicht im ersten Aussetzzustand befindet und der zweite Cache-Unterbereich sich im zweiten Aussetzzustand befindet.
  2. Speichersystem nach Anspruch 1, wobei der Aussetzzustands-Wiederherstellungsprozess außerdem das Ermitteln, ob Bedingungen, unter welchen das Kopieren unnötig ist, erfüllt sind, umfasst, und wobei, wenn die Bedingungen, unter welchen das Kopieren unnötig ist, erfüllt sind, die erste Steuereinheit dafür konfiguriert ist, das Kopieren von Daten aus der Kopierquelle in das Kopierziel durchzuführen, und wenn die Bedingungen, unter welchen das Kopieren unnötig ist, erfüllt sind, die erste Steuereinheit dafür konfiguriert ist, den ersten und den zweiten Aussetzzustand, welche dem ersten und dem zweiten Cache-Unterbereich entsprechen, zu löschen oder den zweiten Aussetzzustand, welcher dem zweiten Cache-Unterbereich entspricht, zu löschen, ohne Daten aus der Kopierquelle in das Kopierziel zu kopieren.
  3. Speichersystem nach Anspruch 2, wobei ein Fall, in welchem die Bedingungen, unter welchen das Kopieren unnötig ist, erfüllt sind, ein Fall ist, in welchem der Aussetzzustands-Wiederherstellungsprozess gemäß der Schreibanforderung aus einer Schreibverarbeitung gestartet wird, die erste Steuereinheit einen Cache-Unterbereich, welcher ein Kopierziel ist, enthält und ein angegebener Bereich gemäß einem Schreibziel, das in einer vorherigen Schreibanforderung, welche einer Übertragung, die den zweiten Aussetzzustand verursacht hatte, entspricht, angegeben ist, in einem angegebenen Bereich gemäß einem Schreibziel, das in der ersten Schreibanforderung angegeben ist, enthalten ist.
  4. Speichersystem nach Anspruch 1, wobei, wenn eine erste Leseanforderung vom Host-Computer empfangen wird, die erste Steuereinheit so konfiguriert ist, dass sie keine Übertragung erster Lesedaten gemäß der ersten Leseanforderung aus dem ersten Cache-Unterbereich an den Host-Computer durchführt, wenn der erste Cache-Unterbereich sich im ersten Aussetzzustand befindet, selbst wenn die ersten Lesedaten im ersten Cache-Unterbereich liegen.
  5. Speichersystem nach Anspruch 4, wobei, wenn die ersten Lesedaten erste unsaubere Daten sind, welche nicht in die Speichereinrichtungsgruppe geschriebene Daten sind, die erste Steuereinheit dafür konfiguriert ist, Daten, welche in einem Cache-Unterbereich nicht im ersten Aussetzzustand liegen und welche den ersten unsauberen Daten entsprechen, an den Host-Computer zu übertragen.
  6. Speichersystem nach Anspruch 5, wobei die erste Steuereinheit dafür konfiguriert ist, eine zweite Schreibanforderung oder eine zweite Leseanforderung zu empfangen, wobei, wenn die zweite Schreibanforderung empfangen wird, die erste Steuereinheit dafür konfiguriert ist, den Aussetzzustands-Wiederherstellungsprozess bezüglich des ersten Cache-Unterbereichs, welcher sich im ersten Aussetzzustand befindet, vor dem Verarbeiten der zweiten Schreibanforderung durchzuführen, wenn ein Speicherziel zweiter Schreibdaten gemäß der zweiten Schreibanforderung der erste Cache-Unterbereich ist, und wobei, wenn die zweite Leseanforderung empfangen wird, die erste Steuereinheit dafür konfiguriert ist, den Aussetzzustands-Wiederherstellungsprozess bezüglich des ersten Cache-Unterbereichs, welcher sich im ersten Aussetzzustand befindet, asynchron mit der Verarbeitung der zweiten Leseanforderung durchzuführen, selbst wenn zweite Lesedaten gemäß der zweiten Leseanforderung Daten im ersten Cache-Unterbereich sind.
  7. Speichersystem nach Anspruch 1, wobei die erste Steuereinheit dafür konfiguriert ist, die an die zweite Steuereinheit zu übertragenden ersten Schreibdaten an die zweite Steuereinheit zu übertragen, ohne einen Garantiecode, welcher an die ersten Schreibdaten angehängt ist, zu überprüfen, und wobei die zweite Steuereinheit dafür konfiguriert ist, die ersten Schreibdaten zu empfangen und den Garantiecode, welcher an die ersten Schreibdaten angehängt ist, zu überprüfen.
  8. Speichersystem nach Anspruch 1, wobei die erste Steuereinheit dafür konfiguriert ist, die ersten Schreibdaten im ersten Pufferbereich zu speichern und die ersten Schreibdaten aus dem ersten Pufferbereich im ersten Cache-Unterbereich zu speichern, wenn eine interne Funktion zum Kopieren von Daten zwischen logischen Datenträgern ausgeführt wird.
  9. Speichersystem nach Anspruch 1, wobei die erste Steuereinheit dafür konfiguriert ist, den ersten Cache-Unterbereich freizugeben, welcher im Aussetzzustands-Wiederherstellungsprozess ein Speicherziel der ersten Schreibdaten ist, wenn im ersten Cache-Unterbereich gespeicherte Daten saubere Daten, das heißt, bereits in die Speichereinrichtungsgruppe geschriebene Daten sind.
  10. Speichersystem nach Anspruch 1, wobei die erste Steuereinheit dafür konfiguriert ist, das Kopieren von Daten zwischen einem bestimmten Cache-Unterbereich und dem ersten Cache-Unterbereich, welcher sich im ersten Aussetzzustand befindet, durchzuführen, um Daten im ersten Cache-Unterbereich wiederherzustellen, und wobei die erste Steuereinheit dafür konfiguriert ist, das Kopieren von Daten zu überspringen, wenn ein Cache-Unterbereich, der ein Kopierziel ist, der erste Cache-Unterbereich ist und ein Schreibbereich bei Feststellung des ersten Aussetzzustands im angegebenen Bereich der ersten Schreibanforderung enthalten ist.
  11. Speichersystem nach Anspruch 1, wobei die erste Steuereinheit so konfiguriert ist, dass sie einen ersten Arbeitsspeicher enthält, und die zweite Steuereinheit so konfiguriert ist, dass sie einen zweiten Arbeitsspeicher enthält, und wobei der erste Cachebereich und der erste Pufferbereich im ersten Arbeitsspeicher konsolidiert sind und der zweite Cachebereich und der zweite Pufferbereich im zweiten Arbeitsspeicher konsolidiert sind.
  12. Speichersteuerungsverfahren eines Speichersystems: eine Speichereinrichtung, bestehend aus einer oder mehreren Speichereinrichtungen; eine erste Steuereinheit, welche mit der Speichereinrichtung und einem Host-Computer verbunden ist und welche einen ersten Pufferbereich und einen ersten Cachebereich enthält; und eine zweite Steuereinheit, welche mit der Speichereinrichtungsgruppe und dem Host-Computer verbunden ist und welche einen zweiten Pufferbereich und einen zweiten Cachebereich enthält, wobei die erste Steuereinheit dafür konfiguriert ist, eine Schreibanforderung vom Host-Computer zu empfangen, Schreibdaten gemäß der Schreibanforderung in einem ersten Cache-Unterbereich, welcher irgendeiner der Cache-Unterbereiche im ersten Cachebereich ist, zu speichern, ohne den ersten Pufferbereich zu beteiligen, die im ersten Cache-Unterbereich gespeicherten Schreibdaten an die zweite Steuereinheit zu übertragen, um die Schreibdaten in einem zweiten Cache-Unterbereich, welcher irgendeiner der Cache-Unterbereiche im zweiten Cachebereich ist, zu speichern, ohne den zweiten Pufferbereich zu beteiligen, und die Schreibdaten im ersten Cache-Unterbereich in die Speichereinrichtungsgruppe zu schreiben, wobei das Verfahren umfasst: das Verwalten durch die erste Steuereinheit, ob ein Zustand eines ersten Cache-Unterbereichs ein erster Aussetzzustand ist, der gelöscht wird, wenn das Speichern erster Schreibdaten im ersten Cache-Unterbereich erfolgreich ist, und das Verwalten durch die erste oder zweite Steuereinheit, ob ein Zustand eines zweiten Cache-Unterbereichs ein zweiter Aussetzzustand ist, der gelöscht wird, wenn eine Übertragung von Schreibdaten aus dem ersten Cache-Unterbereich in den zweiten Cache-Unterbereich erfolgreich ist; und das Durchführen eines Aussetzzustands-Wiederherstellungsprozesses durch die erste Steuereinheit, wobei der Aussetzungs-Wiederherstellungsprozess umfasst: das Ermitteln, ob der erste Cache-Unterbereich sich im ersten Aussetzzustand befindet und der zweite Cache-Unterbereich sich im zweiten Aussetzzustand befindet; das Konfigurieren des ersten Cache-Unterbereichs als Kopierziel, das Konfigurieren des zweiten Cache-Unterbereichs als Kopierquelle, das Kopieren von Daten aus der Kopierquelle in das Kopierziel und das Löschen des ersten und des zweiten Aussetzzustands, welche dem ersten beziehungsweise dem zweiten Cache-Unterbereich entsprechen, wenn der erste Cache-Unterbereich sich im ersten Aussetzzustand befindet und der zweite Cache-Unterbereich sich im zweiten Aussetzzustand befindet; und das Konfigurieren des zweiten Cache-Unterbereichs als Kopierziel, das Konfigurieren des ersten Cache-Unterbereichs als Kopierquelle, das Kopieren von Daten aus der Kopierquelle in das Kopierziel und das Löschen des zweiten Aussetzzustands, welcher dem zweiten Cache-Unterbereich entspricht, wenn der erste Cache-Unterbereich sich nicht im ersten Aussetzzustand befindet und der zweite Cache-Unterbereich sich im zweiten Aussetzzustand befindet.
DE112013005903.7T 2013-10-09 2013-10-09 Speichersystem und Speichersteuerungsverfahren Withdrawn DE112013005903T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/077483 WO2015052798A1 (ja) 2013-10-09 2013-10-09 ストレージシステム及び記憶制御方法

Publications (1)

Publication Number Publication Date
DE112013005903T5 true DE112013005903T5 (de) 2015-09-10

Family

ID=52812645

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112013005903.7T Withdrawn DE112013005903T5 (de) 2013-10-09 2013-10-09 Speichersystem und Speichersteuerungsverfahren

Country Status (6)

Country Link
US (1) US9946655B2 (de)
JP (1) JP6009095B2 (de)
CN (1) CN104956311B (de)
DE (1) DE112013005903T5 (de)
GB (1) GB2534956A (de)
WO (1) WO2015052798A1 (de)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106326030B (zh) * 2015-06-26 2020-03-20 伊姆西Ip控股有限责任公司 用于存储系统中的软切换的方法和装置
WO2017081811A1 (ja) * 2015-11-13 2017-05-18 株式会社日立製作所 ストレージ装置、記録媒体、および記憶制御方法
US9910619B2 (en) 2015-12-21 2018-03-06 Toshiba Memory Corporation Dual buffer solid state drive
US20170177276A1 (en) * 2015-12-21 2017-06-22 Ocz Storage Solutions, Inc. Dual buffer solid state drive
US10169232B2 (en) * 2016-02-19 2019-01-01 Seagate Technology Llc Associative and atomic write-back caching system and method for storage subsystem
JP2018022404A (ja) * 2016-08-05 2018-02-08 富士通株式会社 ストレージシステム、ストレージ制御装置およびストレージ制御プログラム
KR20180051703A (ko) * 2016-11-07 2018-05-17 삼성전자주식회사 Raid 방식으로 데이터를 저장하는 스토리지 장치
US10223301B2 (en) * 2016-11-29 2019-03-05 International Business Machines Corporation Pre-allocating memory buffers by physical processor and using a bitmap metadata in a control program
US10235310B2 (en) 2016-11-29 2019-03-19 International Business Machines Corporation Deallocation of memory buffer in multiprocessor systems
US10719391B2 (en) 2017-04-28 2020-07-21 Hitachi, Ltd. Storage system and storage control apparatus
CN107463670B (zh) * 2017-08-03 2020-06-05 北京奇艺世纪科技有限公司 数据存储、读取方法及装置
US10521148B2 (en) * 2018-03-07 2019-12-31 Western Digital Technologies, Inc. Data storage device backup
JP7201775B2 (ja) * 2018-11-08 2023-01-10 株式会社日立製作所 ストレージシステム、データ管理方法、及びデータ管理プログラム
JP6976237B2 (ja) * 2018-11-08 2021-12-08 株式会社日立製作所 ストレージシステム、データ管理方法、及びデータ管理プログラム
CN109511203B (zh) * 2018-11-13 2020-09-29 广州鹏林照明灯具有限公司 一种舞台灯具双缓存校准dmx512数据的系统和方法
CN109783034B (zh) * 2019-02-12 2022-03-25 记忆科技(深圳)有限公司 一种提升磁盘阵列处理效率的方法及其系统
CN111722785A (zh) * 2019-03-21 2020-09-29 阿里巴巴集团控股有限公司 一种缓存更新方法和装置
CN110457281A (zh) * 2019-08-14 2019-11-15 北京博睿宏远数据科技股份有限公司 数据处理方法、装置、设备及介质
CN111221474B (zh) * 2020-01-02 2023-05-26 广州虎牙科技有限公司 一种数据的存储方法、装置、设备和存储介质
JP7028902B2 (ja) * 2020-02-07 2022-03-02 株式会社日立製作所 ストレージシステム及び入出力制御方法
JP7316242B2 (ja) * 2020-03-18 2023-07-27 株式会社日立製作所 ストレージシステムおよびデータ転送方法
US11789617B2 (en) * 2021-06-29 2023-10-17 Acronis International Gmbh Integration of hashgraph and erasure coding for data integrity
CN115129267B (zh) * 2022-09-01 2023-02-03 苏州浪潮智能科技有限公司 一种域地址变更方法、装置、设备及可读存储介质
TWI808010B (zh) * 2022-09-26 2023-07-01 慧榮科技股份有限公司 資料處理方法及對應之資料儲存裝置

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06131123A (ja) * 1992-10-22 1994-05-13 Fujitsu Ltd 計算機の外部記憶装置
JP3236166B2 (ja) 1994-06-08 2001-12-10 株式会社日立製作所 キャッシュ制御方法および情報処理装置
JP3772369B2 (ja) 1995-11-20 2006-05-10 株式会社日立製作所 記憶サブシステム
JPH09319655A (ja) * 1996-05-29 1997-12-12 Hitachi Ltd キャッシュ管理方法および記憶装置システム
JP3610574B2 (ja) * 2001-08-15 2005-01-12 日本電気株式会社 ディスクアレイ装置
US7313724B1 (en) * 2004-07-01 2007-12-25 Symantec Operating Corporation Method and apparatus for synchronizing redundant data with a volume
JP4376750B2 (ja) * 2004-10-14 2009-12-02 株式会社日立製作所 計算機システム
JP4491330B2 (ja) * 2004-11-08 2010-06-30 富士通株式会社 ディスクアレイ装置とそのデータのリカバリ方法およびデータリカバリプログラム
DE102005016051B4 (de) * 2005-04-07 2019-06-13 Infineon Technologies Ag Speicherüberprüfungsvorrichtung und Verfahren zum Überprüfen eines Speichers
JP2006114064A (ja) * 2005-12-28 2006-04-27 Hitachi Ltd 記憶サブシステム
US7849350B2 (en) * 2006-09-28 2010-12-07 Emc Corporation Responding to a storage processor failure with continued write caching
JP4437489B2 (ja) * 2006-10-25 2010-03-24 株式会社日立製作所 揮発性キャッシュメモリと不揮発性メモリとを備えたストレージシステム
JP5057366B2 (ja) * 2006-10-30 2012-10-24 株式会社日立製作所 情報システム及び情報システムのデータ転送方法
US9104599B2 (en) * 2007-12-06 2015-08-11 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for destaging cached data
US8751467B2 (en) * 2007-01-18 2014-06-10 Dot Hill Systems Corporation Method and apparatus for quickly accessing backing store metadata
US7856419B2 (en) * 2008-04-04 2010-12-21 Vmware, Inc Method and system for storage replication
CN101630232B (zh) * 2008-07-15 2011-11-23 中兴通讯股份有限公司 双存储控制器的管理方法和装置
CN101436152B (zh) * 2008-12-02 2013-01-23 成都市华为赛门铁克科技有限公司 一种数据备份的方法和装置
US20100174676A1 (en) * 2009-01-06 2010-07-08 International Business Machines Corporation Determining modified data in cache for use during a recovery operation
WO2011114384A1 (en) * 2010-03-19 2011-09-22 Hitachi, Ltd. Storage system and method for changing configuration of cache memory for storage system
WO2012137256A1 (en) * 2011-04-06 2012-10-11 Hitachi, Ltd. Disk array apparatus and control method thereof
US9304901B2 (en) * 2013-03-14 2016-04-05 Datadirect Networks Inc. System and method for handling I/O write requests

Also Published As

Publication number Publication date
US9946655B2 (en) 2018-04-17
CN104956311B (zh) 2017-10-17
US20150370713A1 (en) 2015-12-24
CN104956311A (zh) 2015-09-30
GB2534956A (en) 2016-08-10
JP6009095B2 (ja) 2016-10-19
WO2015052798A1 (ja) 2015-04-16
GB201513247D0 (en) 2015-09-09
JPWO2015052798A1 (ja) 2017-03-09

Similar Documents

Publication Publication Date Title
DE112013005903T5 (de) Speichersystem und Speichersteuerungsverfahren
DE112018002951B4 (de) Verwenden eines spurformatcodes in einem cache-steuerblock für eine spur in einem cache, um lese- und schreibanforderungen in bezug auf die spur im cache zu verarbeiten
DE102004028808B4 (de) Speichersystem, das mit einem externen Speichersystem verbunden ist und Verfahren zum Verbinden derartiger Systeme
DE112015000710T5 (de) Verteiltes Speichersystem
DE602005000926T2 (de) Speichersystem und Speicherauszugs-Erstellungsverfahren eines Speichersystems
DE112014006605B4 (de) Speichersystem
DE69632219T2 (de) Speicherplattenanordnungssystem
DE69831944T2 (de) Vorrichtung und verfahren zur sicherung eines plattenspeichersystem
DE112019000149T5 (de) Multivorrichtungsspeichersystem mit gehosteten diensten auf peer-speichervorrichtungen
DE69938378T2 (de) Kopieren von Daten in Speichersystemen
DE112013002355B4 (de) Steigern von Datenzwischenspeicherungsleistung
DE102019132371A1 (de) Zuordnungsverwaltung logisch zu physisch unter Verwendung von nichtflüchtigem Speicher
DE112011103290B4 (de) Intelligente Schreibcacheoperationen für sequenzielle Datenspuren
US10229009B2 (en) Optimized file system layout for distributed consensus protocol
DE602005002292T2 (de) Speicherplattenanordnung und Datenverarbeitungsverfahren dafür
DE112013006655T5 (de) Speichervorrichtung und Verfahren zum Steuern der Speichervorrichtung
DE112005001050T5 (de) Liefern eines alternativen Cachespeicherungsschemas auf der Speicherbereichnetzwerkebene
DE102005006176A1 (de) Transaktionsverarbeitungs-Systeme und -Verfahren, die einen Nicht-Platten-Dauerspeicher verwenden
DE112013006549T5 (de) Computersystem und Datensteuerverfahren
DE112013006565T5 (de) Speichervorrichtung
DE112010003794B4 (de) Datenspeicherung unter Verwendung von Bitmaps
WO2012016209A2 (en) Apparatus, system, and method for redundant write caching
DE112019005408B4 (de) Masterloses raid für byte-adressierbaren nichtflüchtigen speicher
DE112013006504T5 (de) Speichersystem und Datenverwaltungsverfahren
DE102011014588A1 (de) Multicasting-Schreibanforderungen an Mehrfachspeicher-Controller

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0003060000

Ipc: G06F0012080000

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee