DE112014006605B4 - Speichersystem - Google Patents

Speichersystem Download PDF

Info

Publication number
DE112014006605B4
DE112014006605B4 DE112014006605.2T DE112014006605T DE112014006605B4 DE 112014006605 B4 DE112014006605 B4 DE 112014006605B4 DE 112014006605 T DE112014006605 T DE 112014006605T DE 112014006605 B4 DE112014006605 B4 DE 112014006605B4
Authority
DE
Germany
Prior art keywords
storage device
logical volume
data
host computer
write data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE112014006605.2T
Other languages
English (en)
Other versions
DE112014006605T5 (de
Inventor
Yutaka Watanabe
Hideo Saito
Tomohiro Kawaguchi
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 DE112014006605T5 publication Critical patent/DE112014006605T5/de
Application granted granted Critical
Publication of DE112014006605B4 publication Critical patent/DE112014006605B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • 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/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • 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
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • 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/2056Error 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 by mirroring
    • G06F11/2071Error 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 by mirroring using a plurality of controllers
    • G06F11/2076Synchronous techniques
    • 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/0647Migration 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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/2056Error 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 by mirroring
    • G06F11/2064Error 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 by mirroring while ensuring consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

Abstract

Speichersystem mit einer ersten Speichervorrichtung (10A, 10M) und einer zweiten Speichervorrichtung (10B, 10R), wobei die erste Speichervorrichtung (10A, 10M) ein erstes logisches Volumen (161A) bereitstellt, wobei die zweite Speichervorrichtung (10B, 10R) ein zweites logisches Volumen (161B) bereitstellt, das mit dem ersten logischen Volumen (161A) gepaart ist und die zusammen als Hochverfügbarkeits-Volumenpaar (HA-Volumenpaar) konfiguriert und zur Datenduplizierung vom ersten logischen Volumen (161A) in das zweite logische Volumen (161B) ausgelegt sind, wobei den beiden logischen Volumen eine gemeinsamer Volumen-Identifiziere (212) eines virtuellen Volumens zugeordnet ist,A. wobei das Speichersystem dazu ausgelegt ist, auf den Empfang von Schreibdaten hin, die in das erste logische Volumen (161A) oder das zweite logische Volumen (161B) vom Host-Rechner (180) zu schreiben sind,A1. einen Speicherbereich für die Schreibdaten im ersten logischen Volumen (161A) zu sperren (S201),A2. die Schreibdaten duplizierend zuerst in das erste logische Volumen (161A) und nachfolgend in das zweite logische Volumen (161B) zu schreiben (S202, S203),A3. den gesperrten Speicherbereich im ersten logischen Volumen (161A) freizugeben, nachdem die Daten in das erste und in das zweite logische Volumen (161B) geschrieben wurden (S204),B. wobei die erste Speichervorrichtung (10A, 10M) dazu ausgelegt ist, auf dem Empfang einer Leseanforderung für das erste logische Volumen (161A) vom Host-Rechner (180) her:B1. Bestimmen, ob ein durch die Leseanfrage angegebener Speicherbereich gesperrt ist;B2a. wenn die Bestimmung ergibt, dass der angegebene Speicherbereich gesperrt ist, nach einer vorbestimmten Zeit abermals Bestimmen, ob der durch die Leseanfrage angegebene Speicherbereich gesperrt ist; undB2b. Lesen (S402), wenn das Ergebnis der Bestimmung ist, dass der angegebene Speicherbereich nicht gesperrt ist, Daten vom Speicherbereich im ersten logischen Volumen (161A), wie sie in der Leseanfrage angegeben sind, und Zurückgeben der gelesenen Daten an den Host-Rechner (180), undC. wobei die zweite Speichervorrichtung (10B, 10R) dazu ausgelegt ist, auf den Empfang einer Leseanforderung für das zweite logische Volumen (161B) vom Host-Rechner (180) her Daten von einem zweiten Speicherbereich im zweiten logischen Volumen (161B), wie sie in der Leseanfrage angegeben sind, zu lesen (S451) und die gelesenen Daten an den Host-Rechner (180) zurückzugeben, ohne die Sperrung eines Speicherbereichs abzufragen.

Description

  • In den letzten Jahren besteht mehr und mehr Interesse an Informationen im Hinblick auf Verallgemeinerung großer Datenanalysen; zunehmend wichtig wird darüber hinaus auch die Wiederherstellung nach Unglücken zum Schutz wichtiger Informationen. Betreffend Wiederherstellung nach Unglücken beschreibt Patentliteratur 1 eine Technik, die bei gewöhnlichem Betrieb das Lesen/Schreiben von einem Host-Rechner so steuert, dass eine Speichervorrichtung lediglich an einer Hauptstelle verwendet wird, wobei Daten auf eine Speichervorrichtung an einer entfernten Stelle kopiert werden, und wenn an der Hauptstelle ein Fehler auftritt, den Zugriff auf die entfernte Stelle schaltet.
  • Patentliteratur 1: US 2009/0271582 A
  • Die Zunahme der Datenmenge ist bemerkenswert etwa bei Daten für große Datenanalysen; demzufolge wachsen die Systeme in Größe und Komplexität und Anzahl von Vorrichtungen und ebenso im Hinblick auf die Kosten der Backup-Stelle. Dementsprechend ist die effektive Nutzung von Ressourcen an der Backup-Stelle gewünscht. Die in Patentliteratur 1 beschriebene Technik empfängt Lesen/Schreiben nur am Speichergerät der Hauptstelle und erlaubt im Normalbetrieb nicht Zugriffe auf die Speichervorrichtung an der entfernten Stelle, sodass eine effektive Ressourcennutzung nicht vorliegt.
  • Die US 2005/0147132 A1 beschreibt ein Datenmultiplexverfahren, bei dem Datenschreib- und -lesebefehle gemultiplext werden.
  • Die US 2007/0050547 A1 beschreibt ein Speichersystem mit drei Speichergeräten, von denen zwei Journal-Speicherbereiche zum Speichern von Verwaltungsinformation haben.
  • Die US2007/0050573 A1 beschreibt ein Speichersystem mit einem Primär- und zwei Sekundärspeichern und bestimmten Speicherstrategien untereinander.
  • Die US 2009/0228671 A1 beschreibt ein Speichergerät mit einem Speicher- und einem Backup-Volumen.
  • Zusammenfassung
  • Aufgabe der Erfindung ist es, ein Speichersystem und ein Speicherverfahren anzugeben, die die Ressourcennutzung verbessern.
  • Diese Aufgabe wird mit den Merkmalen der unabhängigen Ansprüche gelöst.
  • Ein Speichersystem hat die Merkmale des Anspruchs 1. Ein Speicherverfahren hat die Merkmale des Anspruchs 11.
  • Gemäß einem Aspekt dieser Erfindung kann Lesen/Schreiben an einer Speichervorrichtung an einer entfernten Stelle empfangen werden; die Ressourcen an der entfernten Stelle können so effizient genutzt werden.
  • Figurenliste
    • 1A zeigt einen Überblick über einen Verarbeitungsablauf, wenn ein Schreibbefehl an ein PVOL gerichtet ist;
    • 1B zeigt den Überblick eines Verarbeitungsablaufs, wenn ein Lesebefehl an ein PVOL und an ein SVOL gerichtet ist,
    • 2 zeigt ein Konfigurationsbeispiel eines Computersystems in einer Ausführungsform;
    • 3 illustriert schematisch ein Hardware-Konfigurationsbeispiel eines Host-Rechners und einer Speichervorrichtung;
    • 4 zeigt ein Beispiel einer virtuellen Konfiguration, die durch Speichervorrichtungen einem Host-Computer geboten wird;
    • 5 zeigt Informationen, die in einem geteilten Speicher in einem CMPK einer Speichervorrichtung gespeichert sind;
    • 6 zeigt Informationen, die in einem lokalen Speicher in einem MPPK einer Speichervorrichtung gespeichert sind;
    • 7 zeigt ein Konfigurationsbeispiel einer VOL-Zuordnungsinformation-Verwaltungstabelle;
    • 8 zeigt ein Konfigurationsbeispiel einer HA-Volumenpaar-Verwaltungstabelle,
    • 9 zeigt ein Konfigurationsbeispiel einer LU-Pfadverwaltungstabelle;
    • 10 zeigt ein Konfigurationsbeispiel einer VOL-Verwaltungstabelle;
    • 11 zeigt ein Konfigurationsbeispiel einer PG-Verwaltungstabelle;
    • 12 zeigt ein Konfigurationsbeispiel einer Cache-Seiten-Verwaltungstabelle;
    • 13 zeigt ein Konfigurationsbeispiel einer Job-Verwaltungstabelle;
    • 14 zeigt einen Ablauf eines Verfahrens des Lieferns von Informationen auf einer virtuellen Speichervorrichtung und virtuellen Volumen an einen Host-Rechner;
    • 15 zeigt einen Ablauf eines Vorgangs des Schreibens von einem Host-Rechner an ein PVOL;
    • 16 zeigt einen Ablauf eines Vorgangs für ein Schreiben von einem Host-Rechner an ein SVOL;
    • 17 zeigt ein Flussdiagramm des Ablaufs eines MDKC und eines RDKC in Antwort auf einen Schreibbefehl von einem Host-Rechner;
    • 18 zeigt ein Flussdiagramm der Verarbeitung eines MDKC und eines RDKC in Antwort auf einen Schreibbefehl zwischen MDKC und RDKC;
    • 19 zeigt die Folge von Verarbeitungen in Antwort auf einen Lesebefehl für ein PVOL vom Host-Rechner;
    • 20 zeigt eine Folge von Verarbeitungen in Antwort auf einen Lesebefehl an ein SVOL von einem Host-Rechner;
    • 21 zeigt ein Flussdiagramm der Verarbeitung eines MDKC10M und eines RDKC1R in Antwort auf einen Lesebefehl von einem Host-Rechner;
    • 22 zeigt Beziehungen zwischen Kopplungsstatus eines HA-Volumenpaars und Ausschlusstypen von E/A-Zugriffen auf das PVOL und das SVOL;
    • 23 ist ein Flussdiagramm der Verarbeitung eines Nachfolger-MPPK, um einen Schreibbefehl für ein Schreiben an ein SVOL zu senden;
    • 24 zeigt einen Ablauf des Sendens eines Ausschluss-Festlegungsfreigabebefehls zusammen mit Schreibdaten;
    • 25 zeigt eine Folge von Verarbeitungen für das Schreiben von einem Host-Rechner an ein PVOL einschließlich einer ausschließenden Sperre für einen Job durch ein RDKC 10R;
    • 26 zeigt eine Folge von Verarbeitungen für ein Schreiben von einem Host-Rechner an ein SVOL einschließlich einer ausschließenden Sperre für einen Job durch ein RDKC;
    • 27 zeigt ein Flussdiagramm einer Verarbeitung eines MDKC und eines RDKC in Antwort auf einen Schreibbefehl von einem Host-Rechner, das den Abfolgen der 25 und 26 entspricht; und
    • 28 zeigt ein Flussdiagramm von Verarbeitungen eines MDKC und eines RDKC in Antwort auf einen Schreibbefehl zwischen dem MDKC und dem RDKC, das den Abfolgen der 25 und 26 entspricht.
  • GENAUE BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
  • Nachfolgend werden Ausführungsformen der Erfindung bezugnehmend auf die beiliegenden Zeichnungen beschrieben. Es wird darauf verwiesen, dass die Ausführungsformen lediglich Beispiele zur Umsetzung der Erfindung sind und den technischen Bereich der Erfindung nicht begrenzen. In den Zeichnungen sind gemeinsame Elemente mit gleichen Bezugszeichen versehen.
  • 1A und 1B sind Diagramme, die einen Überblick über eine Ausführungsform darstellen. Die in den 1A und 1B beschriebene Konfiguration weist einen Host-Rechner 180A, einen Host-Rechner 180B, eine Speichervorrichtung 10A und eine Speichervorrichtung 10B; die Speichervorrichtungen 10A und 10B stellen den Host-Rechnern 180A und 180B eine virtuelle Speichervorrichtung 15 zur Verfügung.
  • Ein Volumen 161A, das ein Volumen der Speichervorrichtung 10A ist, und ein Volumen 161B, das ein Volumen der Speichervorrichtung 10B ist, speichern die gleichen Daten und zeigen den Hosts die gleiche ID; sie werden als einzelnes virtuelles Volumen 151 der virtuellen Speichervorrichtung 15 angesehen, das den Hosts darzubieten ist. In der folgenden Beschreibung sind Elemente, die nicht mit dem Begriff „virtuell“ bezeichnet sind, reale Elemente, soweit nicht anders festgelegt.
  • Die Host-Rechner 180A und 180B senden Lese-/Schreib-Befehle für ein einzelnes virtuelles Volumen 151; tatsächlich können die Befehle an eines der Volumina 161A und 161B gerichtet werden. Solch ein Volumenpaar 161A und 161B werden als Aktiv-Aktiv-Hochverfügbarkeits(HA)-Volumenpaar oder als HA-Paar bezeichnet; eine Konfiguration mit einem HA-Paar, wie in 1A und 1B gezeigt, wird als HA-Konfiguration bezeichnet.
  • In der folgenden Beschreibung bezeichnet eine HA-Konfiguration und ein HA-Paar eine Aktiv-Aktiv-HA-Konfiguration und ein Aktiv-Aktiv-HA-Paar. Ein HA-Paar weist ein Primärvolumen (PVOL) und ein Sekundärvolumen (SVOL) auf; in dieser Beschreibung ist das Volumen 161A ein PVOL und das Volumen 161B ein SVOL. Die Speichervorrichtung 10A, die ein PVOL bereitstellt, wird als Hauptplattensteuerung (MDKC) bezeichnet, die Speichervorrichtung 10B, die ein SVOL bereitstellt, wird als entfernte Plattensteuerung (RDKC) bezeichnet.
  • Es sei darauf hingewiesen, dass eine Speichervorrichtung ein PVOL und ein SVOL zweier unterschiedlicher HA-Volumenpaare aufweisen kann. Ein Speichervorrichtung kann gleichzeitig als MDKC und als RDKC arbeiten in Abhängigkeit von der Volumenart der HA-Volumenpaarung. Im Folgenden werden unter Verwendung der 1A und 1B Überblicke von Verarbeitungen beschrieben, wenn ein Schreibbefehl und ein Lesebefehl für ein PVOL und ein SVOL von einem Host ausgegeben werden. Das Datenschreiben in ein Volumen und das Datenlesen von einem Volumen bedeuten das Schreiben in oder das Lesen von einem Cache oder einem Speicherlaufwerk.
  • 1A zeigt den Überblick eines Verarbeitungsflusses, wenn vom Host-Rechner 180A ein Schreibbefehl an ein Volumen 161A eines PVOL gerichtet ist.
  • I. Die Speichervorrichtung 10A empfängt Daten, die mit einem Schreibbefehl vom Host-Rechner 180A übertragen wurden. II. Die Speichervorrichtung 10A erhält Ausschließlichkeit an der Schreibadresse im Volumen 161A und schreibt die Daten in das Volumen 161A. III. die Speichervorrichtung 10A überträgt die Daten mit einem Schreibbefehl an die Speichervorrichtung 10B, um die Daten im Volumen 161B eines SVOL zu speichern.
  • IV. Die Speichervorrichtung 10B, die den Schreibbefehl und die Daten empfangen hat, speichert die Daten im Volumen 161B. V. Die Speichervorrichtung 10B sendet einen Vervollständigungsbericht des Schreibens an die Speichervorrichtung 10A. VI. Die Speichervorrichtung 10A hebt die bei II. erhaltene Ausschließlichkeit auf. VII. Die Speichervorrichtung 10A sendet einen Schreib-Vervollständigungsbericht an den Host-Rechner 180A.
  • Auf diese Weise erhält auf den Empfang eines Schreibbefehls für ein PVOL hin die MDKC Ausschließlichkeit für den Schreibadressbereich, schreibt in das PVOL, instruiert den RDKC zum Schreiben in das SVOL, hebt die Ausschließlichkeit nach Vervollständigung des Schreibens in das SVOL auf und antwortet dem Host. Die Details werden später beschrieben. Wenn der Schreibbefehl seitens des SVOL empfangen wird, erhält der MDKC Ausschließlichkeit, schreibt zuerst in das PVOL und danach in das SVOL und hebt die Ausschließlichkeit zur Durchführung der Schreibverarbeitung auf. Eine Job-Ausschluss-Steuerung für Schreibverarbeitungen verhindert andere Schreibverarbeitungen und Leseverarbeitungen für den Schreibbereich. Demzufolge kann die Konsistenz zwischen PVOL und SVOL ordnungsgemäß beibehalten werden.
  • 1B zeigt Überblicke über Verarbeitungsabläufe in den Fällen, in denen der Host-Rechner 180A einen Lesebefehl für das Volumen 161A eines PVOL und der Host-Rechner 180B einen Lesebefehl für das Volumen 161B eines SVOL ausgeben. Auf den Empfang einer E/A-Anfrage hin liest die Speichervorrichtung 10B, die die Leseanfrage für das Volumen 161B empfangen hat, Daten vom Volumen 161B und schickt diese Daten an den Host-Rechner 180B zurück. In diesem Fall besteht keine Notwendigkeit, mit der Speichervorrichtung 10A zu kommunizieren.
  • Wenn die Speichervorrichtung 10A eine Leseanfrage für das Volumen 161A empfangen hat, prüft sie, ob der Datenspeicherbereich, der durch die Leseanfrage der 1A bezeichnet ist, mit einer bezugnehmend auf 1A beschriebenen Ausschließlichkeit belegt ist, und wenn die Schreibadresse nicht gesperrt ist, liest sie die Daten vom Volumen 161A und gibt sie an den Host-Rechner 180A zurück. Wenn die Schreibadresse gesperrt ist, wartet die Speichervorrichtung 10A eine vorbestimmte Zeitdauer und prüft dann abermals, ob die Schreibadresse gesperrt ist. Wenn vom Volumen 161A eines PVOL gelesen werden soll, besteht keine Notwendigkeit der Kommunikation zwischen den Speichervorrichtungen 10A und 10B.
  • Wenngleich Details einer Job-Ausschluss-Steuerung bei Lesevorgängen später beschrieben werden, sei schon angemerkt, dass die Job-Ausschluss-Steuerung bei Lesevorgängen für den Speicherbereich Schreibvorgänge verhindert, aber nicht andere Lesevorgänge für den Bereich verhindern muss. Das Zulassen von Lesevorgängen reduziert die Verzögerung in der Verarbeitung anderer Befehle.
  • In den letzten Jahren hat die Wichtigkeit von Wiederherstellungen nach Unglücken wie etwa einem Erdbeben zugenommen. Eine HA-Konfiguration ergibt eine hohe Verfügbarkeit des Speichersystems. Die HA-Konfiguration hat ein dupliziertes System; sie erlaubt die automatische Entfernung eines fehlerhaften Systems, wenn ein Fehler auftritt, um den Betrieb lediglich mit dem normal arbeitenden System fortzusetzen. Die Aktiv-Aktiv-HA-Konfiguration mit duplizierten Speichervorrichtungen wird zunehmend in Hinblick auf Wiederherstellung nach Unglücken und effektiver Ressourcenverwendung verlangt.
  • Die Aktiv-Aktiv-HA-Konfiguration verwendet alle Systeme als aktive Systeme. Bei der Aktiv-Aktiv-HA-Konfiguration kann das Informationssystem Eingabe-/Ausgabe-Zugriffe zu beiden Volumina eines Volumenpaars von einem Host her akzeptieren und erreicht auf diese Weise eine effektive Verwendung der Ressourcen wie Bandbreite der Wege, Verarbeitungsfähigkeit der Speichersteuerungen und Verarbeitungsfähigkeit der Laufwerke.
  • Damit ein E/A-Zugriff auf eines der gepaarten Volumina akzeptiert wird, ist es nötig, zu verhindern, dass alte Daten gelesen werden, nachdem neue Daten gelesen wurden, wenn auf ein PVOL oder ein SVOL zugegriffen wurde. Dies ist nötig, da ein unbeabsichtigter Rückgriff, der Daten in umgekehrter Reihenfolge liest, im Host eine Fehlfunktion verursachen kann.
  • Als Beispiel zur Lösung dieses Problems verwendet diese Ausführungsform eine Job-Ausschluss-Steuerung für PVOLs für E/A-Zugriffe auf PVOLs, und wendet keine Job-Ausschluss-Steuerung für E/A-Zugriffe auf SVOLs an. Die Job-Ausschluss-Steuerung für ein PVOL kann die Konsistenz zwischen PVOL und dem SVOL bezüglich eines Befehls von einem Host ordnungsgemäß sicherstellen, und das Vermeiden der Ausschlusssteuerung für das SVOL erzielt eine effiziente Verarbeitung.
  • Diese Ausführungsform verwendet die Annahme, dass der duplizierte Speicher im Hinblick auf Wiederherstellung nach Unglücken an einer anderen Stelle installiert ist und dass die zwei Stellen über 100 km voneinander entfernt sind. Dementsprechend sind Kommunikationen zwischen den Stellen etwa 1 ms verzögert. Aus diesem Grund ist es notwendig, Kommunikationen zwischen den Stellen für die E/A-Synchronisierung als Antwort auf Schreib- und Lesebefehle zu verringern. Bei einer Host-Leseverarbeitung in dieser Ausführungsform geben der MDKC oder der RDKC Daten zurück, die von einem PVOL oder einem SVOL gelesen wurden, ohne dass Kommunikationen zwischen den Speichervorrichtungen stattfinden. Da die Kommunikationen zwischen den Speichervorrichtungen unnötig sind, können Verzögerungen in der Verarbeitung eines Lesebefehls von einem Host vermieden werden.
  • Die Zunahme der Datenmenge bewirkt auch die Vergrößerung des Systemmaßstabs wie oben beschrieben; benötigt ist die Umsetzung mit weniger Gerätschaften, um für den Systemaufbau und die Systemverwaltung geringere Kosten zu erreichen. Diese Ausführungsform erreicht eine Aktiv-Aktiv-HA-Konfiguration ohne besondere Vorrichtungen wie etwa Hilfsgerätschaften.
  • 2 zeigt ein Konfigurationsbeispiel eines Computersystems mit dem Informationssystem dieser Ausführungsform. Das Computersystem in 2 weist zwei Host-Computer 180A und 180B auf, Speichervorrichtungen 10A bis 10C und einen Verwaltungscomputer 20. Die Speichervorrichtungen 10A bis 10C sind im Informationssystem enthalten; die Host-Computer 180A und 180B greifen auf das Informationssystem zu; der Verwaltungscomputer 20 verwaltet das Informationssystem.
  • Die Anzahl jeder Art von Vorrichtungen (Systemen), die in dem Computersystem enthalten sind, hängt vom Entwurf ab. Die Speichervorrichtungen 10A und 10B bilden ein Aktiv-Aktiv-HA-Speicherpaar und bilden eine virtuelle Speichervorrichtung. Die Speichervorrichtungen 10A und 10B bilden gleichermaßen eine virtuelle Speichervorrichtung für die Host-Computer 180A und 180B. Im folgenden Beispiel stellen die Speichervorrichtungen 10A und 10B eine einzelne virtuelle Speichervorrichtung dar.
  • Die Speichervorrichtung 10C hat eine Quorum-Platte. Die Quorum-Platte ermöglicht eine Funktion des Bestimmens, wenn Kommunikationen zwischen den Speichervorrichtungen 10A und 10B in der HA-Konfiguration nicht möglich sind, der in Arbeit gehaltenen Speichervorrichtung und der unterbrochenen Speichervorrichtung.
  • Insbesondere schreibt jede der Speichervorrichtungen 10A und 10B die Zustände der Speichervorrichtung und den jeweiligen Status ihrer Kommunikationen mit der anderen Speichervorrichtung in die Quorum-Platte. Jede Speichervorrichtung fragt die Quorum-Platte periodisch ab oder synchron zu jeder E/A-Antwort und bestimmt, welche Speichervorrichtung in Arbeit gehalten wird und welche angehalten wird, auf der Grundlage der auf die Quorum-Platte geschriebenen Informationen.
  • Die Host-Rechner 180A und 180B, der Verwaltungscomputer 20 und die Speichervorrichtungen 10A bis 10C sind miteinander so verbunden, dass sie über ein Verwaltungsnetzwerk verbunden sind, das mit einem LAN 195 gebildet ist. Das Verwaltungsnetzwerk 195 ist beispielsweise ein IP-Netzwerk. Das Verwaltungsnetzwerk 195 kann ein beliebiges Netzwerk sein, soweit es ein Netzwerk zur Verwaltung der Datenkommunikation ist.
  • Die Host-Rechner 180A und 180B und die Speichervorrichtungen 10A bis 10C sind mit einem Datennetzwerk verbunden, das mit einem Speichernetzwerk (SAN) 190 konfiguriert ist. Die Host-Rechner 180A und 180B greifen über das SAN 190 auf die Volumina der Speichervorrichtungen 10A und 10B zu. Die Speichervorrichtungen 10A bis 10C kommunizieren untereinander über das SAN 190.
  • Das Datennetzwerk 190 kann ein beliebiges Netzwerk sein, soweit es ein Netzwerk für Datenkommunikation ist. Das Datennetzwerk 190 und das Verwaltungsnetzwerk 195 können das gleiche Netzwerk sein.
  • 3 zeigt schematisch ein Hardware-Konfigurationsbeispiel eines Host-Rechners 180 und einer Speichervorrichtung 10. Der Host-Rechner 180 und die Speichervorrichtung 10 stellen jeweils einen der Host-Computer und eine der Speichervorrichtungen im Computersystem dar.
  • Der Host-Rechner 180 weist eine Sekundärspeichervorrichtung 181 auf, eine CPU 182 eines Prozessors, einen Speicher 183 einer Primärspeichervorrichtung, eine Eingabevorrichtung 184, eine Anzeigevorrichtung 185 einer Ausgabevorrichtung, ein I/F 186 und Ports 187. Diese sind über ein internes Netzwerk miteinander verbunden. Der Verwaltungsrechner 20 kann die gleiche Hardware-Konfiguration haben.
  • Die CPU 182 führt Programme aus, die im Speicher 183 gespeichert sind, um verschiedene Verarbeitungen auszuführen. Beispielsweise speichert der Speicher 183 ein OS, ein Pfadumschaltprogramm und ein Anwendungsprogramm. Das Anwendungsprogramm liest und schreibt Daten von und in die Volumina, die von der Speichervorrichtung 10 bereitgestellt sind. Das Pfadumschaltprogramm wählt einen Pfad zu einem realen Volumen, auf das zugegriffen werden soll, unter den einem virtuellen Volumen zugeordneten Pfaden.
  • Die Ports 187 sind Netzwerkschnittstellen zur Verbindung mit dem SAN 190. Die Ports 187 kommunizieren Daten und Anfragen mit der Speichervorrichtung 10 über das SAN 190. Die Schnittstelle 186 ist eine Netzwerkschnittstelle zur Verbindung mit dem LAN 195. Die Schnittstelle 186 kommuniziert Verwaltungsdaten und Steuerungsbefehle mit dem Verwaltungsrechner 20 und der physischen Speichervorrichtung 10 über LAN 195. Die Speichervorrichtung 10 nimmt mehrere Speicherlaufwerke 170 auf. Die Speicherlaufwerke 170 sind beispielsweise HDDs mit nichtflüchtigen Magnetplatten oder SSDs mit nichtflüchtigen Halbleiterspeichern (wie etwa Flash-Speichern). Mit diesen Speicherlaufwerken 170 sind Volumina wie etwa das Volumen 161 konfiguriert.
  • Jedes Speicherlaufwerk 170 speichert Daten (Anwenderdaten), die von einem Host oder von einer anderen Speichervorrichtung gesendet wurden. Mehrere Speicherlaufwerke 170 bieten Redundanz der Daten über eine RAID-Verarbeitung, um Datenverluste im Falle des Auftretens eines Fehlers in einem der Speicherlaufwerke 170 zu vermeiden.
  • Die Speichervorrichtung 10 weist einen Vorderzugang (FEPK) 100 auf zur Verbindung mit externen Vorrichtungen über das SAN 190. Im Computersystem dieses Beispiels sind die externen Vorrichtungen Hosts und Speichervorrichtungen.
  • Die Speichervorrichtung 10 weist außerdem einen Hinterzugang (BEPK) 140 auf zum Verbinden mit Speicherlaufwerken 170, einen Cache-Speicherzugang (CMPK) 130, in dem Cache-Speicher angebracht sind, einen Mikroprozessorzugang (MPPK) 120, in dem Mikroprozessoren angebracht sind zur Ausführung interner Verarbeitungen, und ein internes Netzwerk 150 zur Verbindung.
  • Die Speichervorrichtung 10 dieses Beispiels weist mehrere FEPKs 100 auf, mehrere BEPKs 140, mehrere CMPKs 130 und mehrere MPPKs 120. Die Speichervorrichtung 10 kann außerdem einen Verwaltungsprozessor aufweisen, der als Schnittstelle dient, die für die Kommunikation mit dem Verwaltungsrechner 20 verwendet wird.
  • Jeder FEPK 100 weist eine Schnittstelle 101 auf zur Verbindung mit externen Vorrichtungen und eine Übertragungsschaltung 112 zum Übertragen von Daten innerhalb der Speichervorrichtung 10 auf einer Platine. Die Schnittstelle 101 kann mehrere Ports aufweisen; jeder Port kann mit einer externen Vorrichtung verbunden werden. Die Schnittstelle 101 wandelt ein Protokoll, das in der Datenkommunikation zwischen einer externen Vorrichtung und der Speichervorrichtung 10 verwendet wird, wie etwa Fibre-Channel über Ethernet (FCoE), in ein Protokoll um, das im internen Netzwerk 150 verwendet wird, wie etwa PCI-Express. Das FEPK 100 weist außerdem einen Puffer 113 auf. Der Puffer ist ein Bereich zum zeitweisen Speichern von Daten, die vom Host-Rechner 180 empfangen wurden, und wird aus einem Speichermedium wie etwa einem DRAM gebildet.
  • Jeder BEPK 140 weist eine Schnittstelle 141 auf zum Verbinden mit Laufwerken 170 und eine Übertragungsschaltung 142 zum Übertragen von Daten innerhalb der Speichervorrichtung 10 auf einer Platine. Die Schnittstelle 141 wandelt ein Protokoll, das in der Kommunikation zwischen den Speicherlaufwerken 170 verwendet wird, wie etwa FC, in ein Protokoll um, das im internen Netzwerk 150 verwendet wird.
  • Jeder CMPK 130 weist einen Cache-Speicher (CM) 131 auf zum zeitweisen Speichern von Benutzerdaten und einen geteilten Speicher (SM) 132 zum Speichern von Steuerungsinformationen, die von einem oder mehreren MPPKs 120 gehandhabt werden, auf einer Platine.
  • Mehrere MPPKs 120 (die Mikroprozessoren darin), zugeordnet zu unterschiedlichen Volumina, können auf den geteilten Speicher 132 zugreifen. Die Daten und Programme, die von den MPPKs 120 gehandhabt werden, werden von (nicht gezeigten) nichtflüchtigen Speichern oder Speicherlaufwerken 170 in der Speichervorrichtung 10 geladen.
  • Jeder MPPK 120 weist einen oder mehrere Mikroprozessoren 121 auf, einen lokalen Speicher (LM) 122 und einen Bus 123 zur wechselseitigen Verbindung. Der MPPK 120 in diesem Beispiel weist mehrere Mikroprozessoren 121 auf. Die Anzahl der Mikroprozessoren 121 kann eins sein. Der lokale Speicher 122 speichert Programme, die von den Mikroprozessoren 121 ausgeführt werden sollen, und Steuerungsinformationen, die von den Mikroprozessoren 121 verwendet werden sollen.
  • Wie oben beschrieben speichert ein geteilter Speicher 132 Steuerungsinformationen, die von mehrere MPPKs 120 gehandhabt werden. Ein MPPK 120 lädt Steuerungsinformationen, die für ihn selbst nötig sind, in seinen eigenen lokalen Speicher 122.
  • In diesem Konfigurationsbeispiel ist jeder MPPK 120 (jeder Mikroprozessor 121 darin) Volumina zugeordnet, die von der Speichervorrichtung 10 für die Host-Rechner 180A und 180B bereitgestellt werden. Der lokale Speicher 122 und der geteilte Speicher 132, der dem MPPK 120 zugeordnet ist, speichern die Steuerungsinformationen auf den Volumina, für die der MPPK 120 ein zugeordneter E/A ist.
  • 4 zeigt ein Beispiel einer virtuellen Konfiguration, die einem Host-Rechner 180 durch die Speichervorrichtungen 10A und 10B dargeboten wird. Die Speichervorrichtungen 10A und 10B haben Ziel-Ports 102A und 102B. Der Ziel-Port 102A ist den Volumina 161A, 162A und 163 zugeordnet. Der Ziel-Port 102B ist den Volumina 161B, 162B und 164 zugeordnet.
  • Die Volumina können sogenannte LDEVs sein, die Volumenkapazitäten gleich den tatsächlichen Größen haben oder schlank zugewiesene Volumina, denen Seiten aus einem Pool zugeordnet sind. Alle Volumina können mit Speichermedien konfiguriert sein, die in nicht gezeigten anderen Speichervorrichtungen enthalten sind. Wenn in diesem Fall ein Host-Rechner auf ein solches Volumen zugreift, kommuniziert die angegangene Speichervorrichtung mit der anderen Speichervorrichtung, die das Speichermedium enthält und antwortet an den Host-Rechner.
  • Die Speichervorrichtungen 10A und 10B stellen eine virtuelle Speichervorrichtung 15 für den Host-Rechner 180 zur Verfügung. Für den Host-Rechner 180 ist die Seriennummer (S/N) der virtuellen Speichervorrichtung 15 XXX. Die Speichervorrichtungen 10A und 10B haben ihre eigenen Seriennummern AAA und BBB. Der Host-Rechner 180 erkennt die virtuelle Speichervorrichtung 15 als eine Speichervorrichtung, die eine Seriennummer XXX und die Ziel-Ports 102A und 102B hat. Seriennummern sind Identifizierungen von Speichervorrichtungen und virtuellen Speichervorrichtungen.
  • Die Volumina 161A und 161B bilden ein HA-Volumenpaar und dienen als ein einzelnes virtuelles Volumen 151. Die IDs der Volumina 161A und 161B sind 10:00 und 30:00. Die ID des virtuellen Volumens 151 ist 20:00.
  • Die Volumina 162A und 162B bilden ein HA-Volumenpaar und dienen als ein einzelnes virtuelles Volumen 152. Die IDs der Volumina 162A und 162B sind 10:01 und 30:01. Die ID des virtuellen Volumens 152 ist 20:01.
  • Die Volumina 163 und 164 dienen als virtuelle Volumina 153 und 154. Die IDs der Volumina 163 und 164 sind 10:02 und 30:02. Die IDs der virtuellen Volumina 153 und 154 sind 20:02 und 20:03.
  • Der Host-Rechner 180 erkennt, dass die virtuellen Volumina 151 bis 154 durch die virtuelle Speichervorrichtung 15 bereitgestellt werden und dass ihre IDs 20:00 bis 20:03 sind. Der Host-Rechner 180 kann die virtuellen Volumina 151 und 152 über die jeweiligen Zielports 102A bzw. 102B ansprechen. Der Host-Rechner 180 greift auf das virtuelle Volumen 153 lediglich über den Zielport 102A zu und greift auf das virtuelle Volumen 154 lediglich über den Zielport 102B zu.
  • 5 zeigt die Informationen, die in einem geteilten Speicher 132 in einem CMPK 130 einer Speichervorrichtung 10 gehalten sind. Der geteilte Speicher 132 hält eine VOL-Zuweisungsinformations-Verwaltungstabelle 210, eine HA-Volumenpaar-Verwaltungstabelle 220, eine LU-Pfadverwaltungstabelle 230, eine VOL-Verwaltungstabelle 240, eine PG-Verwaltungstabelle 250 und eine Cache-Seiten-Verwaltungstabelle 270. Auf den geteilten Speicher 132 können mehrere MPPKs 120 zugreifen.
  • 6 zeigt Informationen, die im lokalen Speicher 122 in einem MPPK 120 einer Speichervorrichtung gehalten sind. Der lokale Speicher 122 hält eine Job-Verwaltungstabelle 260.
  • Im Folgenden werden Konfigurationsbeispiele der oben genannten Tabellen beschrieben. Die Zeichnungen, die in der folgenden Beschreibung angesprochen werden, zeigen Tabellen in der Speichervorrichtung 10A. 7 zeigt ein Konfigurationsbeispiel einer VOL-Zuordnungsinformations-Verwaltungstabelle 210. Die VOL-Zuordnungsinformations-Verwaltungstabelle 210 verknüpft reale Konfigurationsinformationen der in der Speichervorrichtung 10A enthaltenen Volumina mit virtuellen Konfigurationsinformationen derselben. Insbesondere weist die VOL-Zuordnungsinformations-Verwaltungstabelle 210 eine Spalte 211 der Volumen-IDs auf, eine Spalte 212 der IDs der virtuellen Volumen, eine Spalte 213 der Seriennummern (Identifizierungen) der virtuellen Speichervorrichtungen, und eine Spalte 214 eines HA-Flags.
  • Jeder Eintrag zeigt eine ID eines virtuellen Volumens an, die mit einem Volumen verknüpft ist, eine ID einer virtuellen Speichervorrichtung, die das virtuelle Volumen bereitstellt, und ob das Volumen eines eines HA-Volumenpaars ist. Wenn der Wert in der Spalte des HA-Flags AN ist, bildet das Volumen ein HA-Volumenpaar mit einem anderen Volumen.
  • 8 zeigt ein Konfigurationsbeispiel einer HA-Volumenpaar-Verwaltungstabelle 220. Die HA-Volumenpaar-Verwaltungstabelle 220 hält Verwaltungsinformationen zu HA-Volumenpaaren. Insbesondere weist die HA-Volumenpaar-Verwaltungstabelle 220 eine Spalte 221 von IDs von HA-Volumenpaaren auf, eine Spalte 222, die die Statusinformationen des HA-Volumenpaars angibt, eine Spalte 223 der IDs der PVOLs auf dem HA-Volumenpaar, und eine Spalte 224, die Identifizierungen der die PVOLs bildenden MDKCs speichert.
  • Die HA-Volumenpaar-Verwaltungstabelle 220 weist außerdem eine Spalte 225 von IDs der SVOLs des HA-Volumenpaars auf und eine Spalte 226, die Identifizierungen der die SVOLs bereitstellenden RDKCs speichert. In jedem Eintrag ist das PVOL oder das SVOL ein Volumen, das von der Speichervorrichtung 10A bereitgestellt wird, die diese Tabelle hält.
  • Beispiele des Paarstatus' umfassen COPY, PAIR und SUSPENDED. Der Status COPY ist ein Status, während dessen Daten von einem Volumen eines HA-Volumenpaars in das andere kopiert werden. Der Status PAIR ist eine Status, während dessen die zwei Volumen des HA-Volumenpaars synchronisiert sind. Der Status SUSPENDED ist ein Status, während dessen die zwei Volumina eines HA-Volumenpaars nicht synchronisiert sind.
  • 9 zeigt ein Konfigurationsbeispiel einer LU-Pfadverwaltungstabelle 230. Die LU-Pfadverwaltungstabelle 230 verwaltet Ports und Volumina, die mit LUNs verknüpft sind. Insbesondere weist die LU-Pfadverwaltungstabelle 230 eine Spalte 231 von Port-IDs auf, eine Spalte 232 von LUNs und eine Spalte 233 von Volumen-IDs.
  • 10 zeigt ein Konfigurationsbeispiel der VOL-Verwaltungstabelle 240. Die VOL-Verwaltungstabelle 240 hält charakteristische Informationen zu Volumina. Insbesondere weist die VOL-Verwaltungstabelle 240 eine Spalte 241 von Volumen-IDs auf, eine Spalte 242, die die Größen der Volumina angibt, und eine Spalte 243 von Paritätsgruppen (PGs), die den Volumina physische Speicherbereiche zur Verfügung stellen. Die Paritätsgruppen werden auch als RAID-Gruppen angesprochen.
  • 11 zeigt ein Konfigurationsbeispiel einer PG-Verwaltungstabelle 250. Die PG-Verwaltungstabelle 250 verwaltet Kennwerte von Paritätsgruppen. Insbesondere weist die PG-Gruppen-Verwaltungstabelle 250 eine Spalte 251 von IDs der Paritätsgruppen auf, eine Spalte 252, die Arten der Paritätsgruppen angibt, eine Spalte 253, die Größen der Paritätsgruppen angibt, und eine Spalte 254, die die RAID-Level der Paritätsgruppen angibt.
  • 12 zeigt ein Konfigurationsbeispiel der Cache-Seiten-Verwaltungstabelle 270. Die Cache-Seiten-Verwaltungstabelle 270 verwaltet Daten im Cache. Insbesondere speichert die Cache-Seiten-Verwaltungstabelle 270 Informationen zu Cache-Seiten (auch einfach als Seiten angesprochen), die Verwaltungseinheiten eines Caches sind. Jede Seite hat die gleiche Größe, eine Seitennummer bestimmt die Speicheradresse der Seite.
  • Die Seitennummerspalte 271 speichert Seitennummern. Die PG-ID-Spalte 272 und die PG-Adressenspalte 273 geben IDs der Paritätsgruppen an, die die in den Seiten gespeicherten Daten halten, und die Adressen der Daten in den Paritätsgruppen. Die VOL-ID-Spalte 274 und die VOL-Adressenspalte 275 geben IDs der Volumina an, die die in den Seiten gespeicherten Daten halten und Adressen der Daten in den Volumina.
  • Die SeitenstatusSeite 276 gibt den Status der Seiten an. Der Status FREE bedeutet, dass die Seite frei ist. Wenngleich in diesem Beispiel freie Seiten verwaltet werden, ist es nicht notwendig, verbleibende andere Seiten als die Seiten mit den anderen Statussen als freie Seiten zu verwalten. Der Status DIRTY bedeutet, dass die Daten der Seite nicht in eine Paritätsgruppe geschrieben wurden; dass also die Daten in der Seite nicht identisch sind mit den Daten in der Paritätsgruppe.
  • Der Status CLEAN eines PVOL ist anders als der Status CLEAN eines SVOL. CLEAN für ein PVO1 bedeutet, dass die Daten in der Seite in die Paritätsgruppe geschrieben wurden und auch in das SVOL geschrieben wurden (wenn eine Vervollständigungsantwort vom RDKC empfangen wurde). Das bedeutet, dass die Daten in der Seite identisch zu den Daten in der Paritätsgruppe sind. Der Status CLEAN für ein SVOL bedeutet, dass die Daten in der Seite in die Paritätsgruppe geschrieben wurden.
  • Der Status DUAL WRITING ist eine Status, den nur PVOLs haben können und bedeutet, dass die Daten in der Seite nicht in ein SVOL geschrieben wurden (eine Vervollständigungsantwort vom RDKC wurde nicht empfangen). Das bedeutet, dass die Daten im PVOL nicht identisch mit den Daten im SVOL sind.
  • 13 zeigt ein Konfigurationsbeispiel der Job-Verwaltungstabelle 260. Die Job-Verwaltungstabelle 260 verwaltet Jobs, die von dem die Tabelle haltenden MPPK 120 ausgeführt werden. Jeder Job in diesem Beispiel ist ein Vorgang des Schreibens auf ein Volumen oder des Lesens von einem Volumen. Die Job-Verwaltungstabelle 260 hält Informationen zu den gerade ausgeführten Jobs und zu zukünftig auszuführenden Jobs. Die maximale Anzahl von Einträgen in der Job-Verwaltungstabelle 260 wird vorab bestimmt.
  • Die Jobnummer-Spalte 261 gibt Identifizierungen von Jobs an. Die Vorgangstyp-Spalte 262 gibt den Typ der Verarbeitung, die auszuführen ist, im jeweiligen Job an, insbesondere, ob es eine Verarbeitung auf einen Lesebefehl von einem Host-Rechner 180 her ist (HOST READ), oder eine Verarbeitung auf einen Schreibbefehl von einem Host-Computer 180 her (HOST WRITE), eine Verarbeitung auf einen Lesebefehl von einer anderen Speichervorrichtung (INTER-DKC READ), und eine Verarbeitung auf einen Schreibbefehl von einer anderen Speichervorrichtung her (INTER-DKC WRITE).
  • Die HA-P/S-Spalte 263 gibt an, ob das Zielvolumen eines jeden Jobs ein Volumen eines HA-Volumenpaars ist, und wenn es das Volumen eines HA-Volumenpaars ist, ob das Volumen ein PVOL oder ein SVOL ist.
  • Die VOL-ID-Spalte 264 gibt die ID des Zielvolumens eines jeden Jobs an. Die START-LBA-Spalte 265 und die LBA-LENGTH-Spalte 266 geben die Startadresse und die Datengröße (Adresslänge) des Volumens für die von dem Job gehandhabten Daten an.
  • Die Ausschlusstyp-Spalte 267 gibt an, ob der jeweilige Job eine ausschließliche Sperre erhalten hat, und wenn eine ausschließliche Sperre erhalten wurde, gibt sie die Art des Ausschlusses an. Die Ausschlussart RD SHARED bedeutet die Verhinderung des Schreibens auf den Adressbereich und erlaubt das Lesen von dem Bereich. Die Ausschlussart R/W EXCLUSIVE bedeutet das Verbot sowohl des Schreibens als auch des Lesens von dem Adressbereich.
  • Die Spalte 268 für Jobnummer und MPPK-Nummer speichert Daten in den Einträgen, die Vorgänge angeben, die auf einen Schreibbefehl für ein Schreiben auf ein SVOL von einem Host-Rechner 180 her antworten. Die Spalte 268 für Jobnummer und MPPK speichert Informationen zur Identifizierung des Jobs im MDKC des Schreibens des gepaarten PVOLO. Der Job kann mit einer Jobnummer und einer Nummer des MPPK (Identifizierung des MPPK) identifiziert werden, sodass er ausgeführt werden kann. Wie weiter unten beschrieben, ist die Jobidentifizierungsinformation in einem Ausschluss-Sperren-Freigabebefehl von einem RDKC an ein MDKC enthalten.
  • Das Ablaufdiagramm der 14 zeigt ein Verfahren des Bereitstellens von Informationen auf der virtuellen Speichervorrichtung 15 und den virtuellen Volumina 151 bis 154 für einen Host-Rechner 180. Der Host-Rechner 180 sendet eine Login-Anfrage an eine Speichervorrichtung 10 und schickt nach Erhalt einer Antwort einen REPORT-LUN-Befehl. Der REPORT-LUN-Befehl dient dem Abfragen einer Liste von Nummern logischer Einheiten (LUNs), die von dem Port aus zugänglich sind. Die Speichervorrichtung 10 greift auf die LU-Pfad-Verwaltungstabelle 230 zu und gibt eine Liste der zugänglichen LUNs (REPORT LUN RSP) zurück.
  • Der Host-Rechner 180 kann unter Verwendung eines INQUIRY-Befehls die Seriennummer der Speichervorrichtung 10 und die IDs der mit den LUNs assoziierten Volumina abfragen. Die Speichervorrichtung 10 bestimmt, ob bezugnehmend auf die LU-Pfadverwaltungstabelle 230 und die VOL-Zuordnungsinformation-Verwaltungstabelle 210 entsprechende virtuelle Elemente definiert wurden (S101).
  • Wenn entsprechende virtuelle Elemente (virtuelle Speichervorrichtung oder virtuelle Volumina) definiert wurden (S101: J), gibt die Speichervorrichtung 10 eine INQUIRY-Antwort einschließlich der Informationen bezüglich der virtuellen Elemente zurück (S102). Wenn keine entsprechenden Elemente definiert wurden (S101: N), gibt die Speichervorrichtung 10 eine INQUIRY-Antwort einschließlich Informationen bezüglich realer Elemente zurück (S103).
  • Wenn im Konfigurationsbeispiel der 4 der Host-Rechner 180 die Speichervorrichtung 10A (S/N: AAA) bittet, eine Mitteilung ihrer Seriennummer zu senden, gibt die Speichervorrichtung 10A, die die Bitte empfangen hat, die Seriennummer XXX der virtuellen Speichervorrichtung 15 an den Host-Rechner 180 zurück. Die Speichervorrichtung 10B gibt auch die Seriennummer XXX der virtuellen Speichervorrichtung 15 an den Host-Rechner 180 zurück.
  • Die Seriennummer der virtuellen Speichervorrichtung 15 ist den Speichervorrichtungen 10A und 10B, die ein HA-Speichervorrichtungspaar bilden, gemeinsam. Dies führt dazu, dass der Host-Rechner 180 die Speichervorrichtungen 10A und 10B als einzelne virtuelle Speichervorrichtungen 15 wahrnimmt.
  • Wenn der Host-Rechner 180 die Speichervorrichtung 10A bittet, eine Mitteilung betreffend Volumen-IDs (VOL-IDs) entsprechend den LUNs zu senden, sendet die Speichervorrichtung 10A in ähnlicher Weise die IDs (20:00 bis 20:02) der virtuellen Volumina 151 bis 153 an den Host-Rechner 180. Gleicherweise sendet die Speichervorrichtung 10B die IDs (20:00, 20:01 und 20:03) der virtuellen Volumina 151, 152 und 154 an den Host-Rechner 180.
  • Auf diese Weise erkennt der Host-Rechner 180 die virtuellen Volumina 151 bis 154 und außerdem zwei Pfade (Ports) für jedes der virtuellen Volumina 151 und 152, und einen Pfad (Port) für jedes der virtuellen Volumina 153 und 154.
  • Das Bilden eines HA-Volumenpaars wird beschrieben. Der Administrator bildet ein HA-Volumenpaar aus Volumina. Über den Verwaltungsrechner 20 weist der Administrator die Speichervorrichtungen 10A und 10B an, ein HA-Volumenpaar zu bilden.
  • Eines der HA-Volumenpaare ist als PVOL definiert und das andere ist als SVOL definiert. Der Administrator kann das PVOL und das SVOL über den Verwaltungsrechner 20 definieren. Wie weiter unten beschrieben wird, ist die Verarbeitung von Zugriffen vom Host-Rechner 180 unterschiedlich zwischen Zugriff auf PVOLs und Zugriff auf SVOLs. Auf die Bildung eines HA-Volumenpaars hin fügen die Speichervorrichtungen 10A und 10B der HA-Volumenpaar-Verwaltungstabelle 220 einen neuen Eintrag hinzu.
  • Außerdem werden virtuelle Informationen, die HA-Volumenpaaren gemeinsam sind, definiert. Der Administrator der Speichervorrichtungen 10A und 10B definiert eine dem HA-Volumenpaar gemeinsame ID eines virtuellen Volumens. Die Speichervorrichtungen 10A und 10B fügen ihren VOL-Zuordnungsinformations-Verwaltungstabellen 210 einen neuen Eintrag einschließlich der definierten virtuellen Information hinzu.
  • Nach Beendigung der Definition des HA-Volumenpaars beginnen die Speichervorrichtungen 10A und 10B das anfängliche Kopieren vom PVOL auf das SVOL. Nach Beendigung des anfänglichen Datenkopierens haben die beiden Volumina die gleichen Daten und sind zueinander synchron. Dies bedeutet, dass jede der Speichervorrichtungen 10A und 10B einen Schreibbefehl vom Host-Rechner 180 erhält, dass sie den Schreibbefehl und die Schreibdaten untereinander kommunizieren und ihr eigenes PVOL bzw. SVOL aktualisieren, sodass die Konsistenz zwischen den Volumina beibehalten wird.
  • Wie weiter unten beschrieben, geben die Speichervorrichtungen 10A und 10B auf einen Lesebefehl vom Host-Rechner 180 her, die Daten in ihren eigenen Volumina an den Host-Rechner 180 zurück, ohne mit der anderen Speichervorrichtung zu kommunizieren, sodass Verarbeitungsverzögerungen minimiert sind.
  • Wenn eine der Speichervorrichtungen 10A und 10B fehlerhaft wird und nicht auf einen E/A-Zugriff vom Host-Rechner 180 her antworten kann, verarbeitet die andere, normal arbeitende Speichervorrichtung, die den Fehler erkannt hat, alle E/A-Zugriffe vom Host-Rechner 180.
  • Wenn in einem Volumen einer der Speichervorrichtungen ein Fehler auftritt, aber beide Speichervorrichtungen 10A und 10B mit dem Host-Rechner 180 kommunizieren können, überträgt die Speichervorrichtung mit dem fehlerhaften Volumen Befehle vom Host-Rechner 180 an die andere Speichervorrichtung.
  • Beispielsweise wird angenommen, dass in einem Volumen der Speichervorrichtung 10B ein Fehler auftritt. Die Speichervorrichtung 10B überträgt einen Schreibbefehl vom Host-Rechner 180 her an die Speichervorrichtung 10A, und die Speichervorrichtung 10A führt ein Schreiben in ihr eigenes Volumen aus. Die Speichervorrichtung 10B gibt eine Schreib-Vervollständigungs-Antwort an den Host-Rechner 180 aus. Die Speichervorrichtung 10B gibt auch gelesene Daten, die sie von der Speichervorrichtung 10A empfangen hat, an den Host-Rechner 180 aus. Das gleiche gilt für den Fall, dass ein Fehler in einem Volumen der Speichervorrichtung 10A auftritt, abgesehen davon, dass jede Maßnahme, die vorher von der Speichervorrichtung 10A oder 10B ausgeführt wurde, von der jeweils anderen Speichervorrichtung vollzogen wird.
  • Auf diese Weise bietet das Informationssystem hohe Verfügbarkeit und kann außerdem im Falle eines Fehlers unterschiedliche Rollen für PVOLS und SVOLs definieren. Wenn beispielsweise in der Kommunikation zwischen den Speichervorrichtungen 10A und 10B ein Fehler auftritt, akzeptiert das Informationssystem einen E/A-Zugriff vom Host-Rechner 180 auf PVOLs und blockiert den E/A-Zugriff auf SVOLs. Durch diesen Vorgang kann die Datenkonsistenz im virtuellen Volumen beibehalten werden.
  • Die Speichervorrichtungen 10A und 10B können einen Fehler in der anderen Vorrichtung oder in der Kommunikation zwischen den Speichervorrichtungen 10A und 10B anhand der Quorum-Platte und dem Status der Kommunikation zwischen den Speichervorrichtungen 10A und 10B erkennen.
  • 15 zeigt eine Verarbeitungsabfolge für ein Schreiben von einem Host-Rechner 180 in ein PVOL. Der Host-Rechner 180 gibt einen Schreibbefehl (WR CMD) für ein Schreiben auf einen Bereich in einem virtuellen Volumen an den MDKC 10M aus. Der MDKC 10M erhält eine Ausschließlichkeitssperre für den durch den Schreibbefehl bestimmten Bereich im PVOL entsprechend dem virtuellen Volumen (S201).
  • Wenn der MDKC 10M fertig für den Datenempfang ist, gibt er eine Datenübertragungs-Bereit-Antwort (XFR RD) an den Host-Rechner 180 aus und empfängt die Schreibdaten (WR DAT) vom Host-Rechner 180. Der MDKC 10M schreibt die empfangenen Daten auf den Adressbereich im PVOL (S202). Wie oben beschrieben, ist ein Schreiben auf ein PVOL ein Schreiben in den Cache-Speicher (131), wenn die Cache-Schreibefunktion AN ist, oder ist ein Schreiben auf eine Paritätsgruppe (physischer Speicherbereich), wenn die Cache-Schreibefunktion AUS ist.
  • Der MDKC 10M schickt dem RDKC 10R einen Schreibbefehl (WR CMD) für ein Schreiben auf einen Bereich im SVOL, das mit dem PVOL gepaart ist, um ein HA-Volumenpaar zu bilden. Das SVOL kann mit einer Volumen-ID oder einer separat definierten LUN bestimmt werden. Der RDKC 10R gibt eine Datenübertragungs-Bereit-Antwort (XFR RD) an den MDKC 10M zurück und empfängt die Schreibdaten (WR DAT) vom MDKC 10M. Der RDKC 10R schreibt die empfangenen Schreibdaten auf einen Adressbereich im SVOL (S203). Das Schreiben auf das SVOL ist das gleiche wie das oben beschriebene Schreiben auf ein PVOL.
  • Auf das Beendigen des Datenschreibens auf den Adressbereich im SVOL gibt der RDKC 10R eine Schreibbeendigungsantwort (WR RSP) an den MDKC 10M zurück. Auf den Empfang der Schreibbeendigungsantwort vom RDKC 10R hin gibt der MDKC 10M eine Schreibbeendigungsantwort (WR RSP) an den Host-Rechner 180 zurück. Außerdem gibt der MDKC 10M die erhaltene Ausschließlichkeitssperre wieder frei (S204).
  • 16 zeigt eine Verarbeitungsabfolge für ein Schreiben von einem Host-Rechner 180 auf ein SVOL. Der Host-Rechner 180 gibt einen Schreibbefehl (WR CMD) für ein Schreiben in einem virtuellen Volumen an den RDKC 10R aus.
  • Wenn der RDKC 10R fertig für den Datenempfang ist, gibt er eine Datenübertraguns-Bereit-Antwort (XFR RD) an den Host-Rechner 180 zurück und empfängt die Schreibdaten (WR DAT) vom Host-Rechner 180. Der RDKC 10R sendet an den MDKC 10M einen Schreibbefehl (WR CMD) für ein Schreiben auf einen Bereich im PVOL, das mit dem SVOL gepaart ist, um ein HA-Volumenpaar zu bilden. Der MDKC 10M erhält eine Ausschließlichkeitssperre für den Bereich im Volumen, der durch den Schreibbefehl bestimmt ist (S251). Danach gibt der MDKC 10M eine Datenübertragungs-Bereit-Antwort (XFR RD) an den RDKC 10R zurück und empfängt die Schreibdaten (WR DAT) vom RDKC 10R.
  • Der MDKC 10M schreibt die empfangenen Daten auf den bestimmten Bereich im PVOL (S252). Auf die Beendigung des Schreibens der Daten auf den Bereich im PVOL hin gibt der MDKC 10M eine Schreibbeendigungsantwort (WR RSP) an den RDKC 10R zurück.
  • Auf den Empfang der Schreibbeendigungsantwort vom MDKC 10M hin schreibt der RDKC 10R die Schreibdaten auf den bestimmten Bereich im SVOL (S253). Der RDKC 10R gibt eine Schreibbeendigungsantwort (WR RSP) an den Host-Rechner 180 zurück. Danach sendet der RDKC 10R einen Ausschließlichkeitssperre-Freigabebefehl, der den Job angibt, an den MDKC 10M. Der MDKC 10M gibt die erhaltene Ausschließlichkeitssperre frei (S254) und gibt an den RDKC 10R eine Antwort zurück, die anzeigt, dass die Ausschließlichkeitssperre für den angegebenen Job aufgehoben wurde.
  • 17 ist ein Flussdiagramm, das Verarbeitungen des MDKC 10 und des RDKC 10R auf einen Schreibbefehl von einem Host-Rechner 180 her darstellt. In 17 führt der MDKC 10M die Schritte S301 bis S311 aus, und der RDKC 10R führt die Schritte 301, S302 und S312 bis S319 aus. Im folgenden Beispiel entspricht das Schreiben auf ein Volumen dem Schreiben von Schreibdaten in einen Cache-Speicher 131.
  • Als erstes wird die Verarbeitung im MDKC 10M beschrieben. Der MDKC 10M empfängt einen Schreibbefehl von einem Host-Rechner 180. Der Schreibbefehl gibt ein Zielvolumen mit einer LUN an. Der MDKC 10M bestimmt die Volumen-ID des Volumens entsprechend dem virtuellen Volumen, das durch den Schreibbefehl angegeben ist bezugnehmend auf die LU-Pfadverwaltungstabelle 230.
  • Der MDKC 10M erhält einen Job durch Erzeugung eines neuen Eintrags in der Jobverwaltungstabelle 260 (S301). Insbesondere wählt ein MPPK 120 in der Jobverwaltungstabelle 260 einen freien Job und schreibt einen Verarbeitungstyp (HOST WRITE) und Informationen bezüglich des Volumens und der durch den Schreibbefehl angegebenen Adresse in den Eintrag. Die Zelle in der Ausschlusstyp-Spalte 267 bleibt leer. In der Jobverwaltungstabelle 260 der 13 stellt der Eintrag von Job Nr. 1 ein Schreiben vom Host-Rechner 180 an ein PVOL dar.
  • Der MPPK 120 bestimmt, ob das bestimmte Volumen ein PVOL oder ein SVOL eines HA-Volumenpaars ist bezugnehmend auf die HA-Volumenpaar-Verwaltungstabelle 220 (S302). Im vorliegenden Fall ist das bestimmte Volumen ein PVOL.
  • Als nächstes erhält der MPPK 120 eine Ausschließlichkeitssperre für den neuen Job (S303). Insbesondere durchsucht der MPPK 120 die Jobverwaltungstabelle 260 nach anderen Jobs, die eine Ausschließlichkeitssperre für das bestimmte Volumen und den bestimmten Bereich erhalten haben. Wenn eine Ausschließlichkeitssperre vergeben wurde, wartet der MPPK 120 auf die Freigabe der Ausschließlichkeitssperre. Die Reihenfolge der Zuordnung von Ausschließlichkeitssperren wird beispielsweise mit einer nicht gezeigten Warteschlange gesteuert. Die Einheiten von Ausschließlichkeitssteuerungen können, wie in diesem Beispiel, LBA sein oder ein Volumen. Ausschließlichkeitssperren für einen Teil des Bereichs eines Volumens kann die Auswirkung auf andere Befehlsverarbeitungen reduzieren.
  • Wenn keine Ausschließlichkeitssperre für das bestimmte Volumen und den bestimmten Bereich durch einen anderen Job vergeben wurde, setzt der MPPK 120 eine Ausschließlichkeitssperre in die Zelle der Ausschließlichkeitstyp-Spalte 267 des neuen Jobs. Der Vorgang ist ein Schreiben auf ein PVOL, und der Ausschließlichkeitstyp ist R/W EXCLUSIVE.
  • Nach Erhalt einer Ausschließlichkeitssperre gibt der MPPK 120 eine Datenübertragungs-Bereit-Antwort an den Host-Rechner 180 zurück und wartet auf die Schreibdaten vom Host-Rechner 180 (S304). Der MPPK 120 sichert sich eine Cache-Seite für die Schreibdaten (S305). Insbesondere setzt der MPPK 120 neue Daten auf eine freie Seite in der Cache-Seiten-Verwaltungstabelle 270. Der MPPK 120 kann bezugnehmend auf die VOL-Verwaltungstabelle 240 die dem bestimmten Volumen entsprechende Paritätsgruppe identifizieren.
  • Der MPPK 120 schreibt die empfangenen Daten mittels eines FEPK 100 auf eine gesicherte Cache-Seite (S306). Der MPPK 120 setzt den Seitenstatus des Cache-Seite auf DUAL WRITING in der Cache-Seiten-Verwaltungstabelle 270.
  • Der MPPK 120 gibt einen Schreibbefehl für ein Schreiben auf ein mit dem PVOL gepaartes SVOL an den RDKC 10R aus und wartet auf die Datenübertragungs-Bereit-Antwort (S307). Der MPPK 120 erhält aus der HA-Volumen-Verwaltungstabelle 220 die IDs des SVOL und des RDKC 10R, der das SVOL hält. Der MPPK 120 hat den RDKC 10R angewiesen, auf den SVOL zu schreiben. Der SVOL kann mit einer Volumen-ID oder mit einer separat definierten LUN bestimmt werden.
  • Auf den Empfang einer Bereit-Antwort hin überträgt der MPPK 120 die vom Host-Rechner 180 empfangenen Schreibdaten an den RDKC 10R mittels des FEPK 100 und wartet auf eine Schreibbeendigungsantwort (S308).
  • Auf den Empfang einer Schreibbeendigungsantwort vom RDKC 10R hin sendet der MPPK 120 eine Schreibbeendigungsantwort an den Host-Rechner 180 (S309). Außerdem ändert der MPPK 120 den Seitenstatus der Cache-Seite zu DIRTY in der Cache-Seiten-Verwaltungstabelle 270 (S310). Beispielsweise erhält der MPPK 120 aus der Jobverwaltungstabelle 260 das Zielvolumen und den Bereich des Jobs zur Identifizierung der Cache-Seite mit der Cache-Seiten-Verwaltungstabelle 270.
  • Der MPPK 120 aktualisiert die Jobverwaltungstabelle 260 und gibt die Ausschließlichkeitssperre für den Job frei (S311). Beispielsweise gibt der MPPK 120 die Ausschließlichkeitssperre frei, indem der Job in der Jobverwaltungstabelle 260 gelöscht wird.
  • Als nächstes wird die Verarbeitung beim RDKC 10R beschrieben. Die Schritte S301 und S402, wie sie vom RDKC 10R ausgeführt werden, sind substantiell die gleichen wie die Schritte S401 und S402, wie sie vom MDKC 10M ausgeführt werden. Jedoch ist das durch den Schreibbefehl vom Host-Rechner 180 bestimmte Volumen ein SVOL. In 13 stellt der Eintrag für Job Nr. 5 ein Schreiben vom Host-Rechner 180 in ein SVOL dar.
  • Der MPPK 120, der den angegebenen Volumina zugeordnet ist, gibt eine Datenübertragungs-Bereit-Antwort an den Host-Rechner 180 zurück und wartet auf die Schreibdaten vom Host-Rechner 180 (S312).
  • Ein FEPK 100 hält die vom Host-Rechner 180 empfangenen Daten in einem Puffer 113. Der MPPK 120 gibt einen Schreibbefehl zum Schreiben auf das mit dem SVOL gepaarte PVOL an den MDKC 10M aus und wartet auf eine Datenübertragungs-Bereit-Antwort (S313). Der MPPK 120 erhält die IDs des PVOL und des das PVOL haltenden MDKC 10M aus der HA-Volumenpaar-Verwaltungstabelle 220. Der MPPK 120 hat den MDKC 10M angewiesen, auf das PVOL zu schreiben. Das PVOL kann mit einer Volumen-ID oder mit einer separat definierten LUN bestimmt werden.
  • Auf den Empfang einer Bereit-Antwort hin überträgt der MPPK 120 die Schreibdaten, die vom Host-Rechner 180 empfangen wurden, an den MDKC 10M mittels des FEPK 100 und wartet auf eine Schreibbeendigungsantwort (S314).
  • Der MPPK 120 bewertet die Schreibbeendigungsantwort, die vom MDKC 10M empfangen wurde, und erhält Jobidentifizierungsinformationen (S315). Die Schreibbeendigungsantwort umfasst Informationen zur Identifizierung des Jobs dieses Schreibvorgangs. Die Jobidentifizierungsinformationen umfassen die Jobnummer und die MPPK-Nummer in der MDKC 120, die dem Job zugeordnet ist. Der MPPK 120 speichert die Jobidentifizierungsinformationen in der Spalte 268 des Eintrags des ausgeführten Jobs.
  • Der MPPK 120 sichert eine Cache-Seite für die Schreibdaten (S316). Insbesondere setzt der MPPK 120 neue Daten auf eine freie Seite in der Cache-Seiten-Verwaltungstabelle 270. Der MPPK 120 kann bezugnehmend auf die VOL-Verwaltungstabelle 240 die dem bestimmten Volumen entsprechende Paritätsgruppe identifizieren.
  • Der MPPK 120 schreibt die Schreibdaten, die im Puffer 113 gespeichert sind, in die gesicherte Cacheseite (S317). Der MPPK 120 setzt den Seitenstatus der Cache-Seite auf DIRTY in der Cache-Seiten-Verwaltungstabelle 270.
  • Nach dem Schreiben in den Cache sendet der MPPK 120 eine Schreibbeendigungsantwort an den Host-Rechner 180 (S318). Außerdem erhält der MPPK 120 aus der Jobverwaltungstabelle 260 Jobidentifizierungsinformationen und erzeugt einen Ausschließlichkeitssperren-Freigabebefehl einschließlich der Jobidentifizierungsinformationen. Der MPPK 120 sendet den erzeugten Ausschließlichkeitssperren-Freigabebefehl an den MDKC 10M und wartet auf eine Antwort vom MDKC 10M (S319).
  • 18 zeigt ein Flussdiagramm, das die Verarbeitung im MDKC 10M und im RDKC 10R in Antwort auf einen Schreibbefehl zwischen MDKC 10M und RDKC 10R hin zeigt. In 18 führt der MDKC 10M die Schritten S351 bis S361 aus, und der RDKC 10R führt die Schritte S351, S352 und S362 bis S365 aus.
  • Als erstes wird die Verarbeitung im MDKC 10M beschrieben. Der MDKC 10M empfängt vom RDKC 10R einen Schreibbefehl. Der Schreibbefehl gibt ein Zielvolumen mit einer Volumen-ID oder einer separat definierten LUN an. Der MDKC 10M erhält einen Job durch Erzeugung eines neuen Eintrags in der Jobverwaltungstabelle 260 (S351).
  • Insbesondere wählt der dem angegebenen Volumen zugeordnete MPPK120 in der Jobverwaltungstabelle 260 einen freien Job und schreibt einen Verarbeitungstyp (INTER-DKC WRITE) und Informationen betreffend das durch den Schreibbefehl angegebene Volumen und die Adresse in den Eintrag. Die Zelle in der Ausschlusstyp-Spalte 267 bleibt leer. In 13 stellt der Job Nr. 3 einen Vorgang in Antwort auf einen Schreibbefehl für eine Schreiben auf ein PVOL vom RDKC 10R her dar.
  • Der MPPK 120 bestimmt, ob das bestimmte Volumen ein PVOL oder ein SVOL eines HA-Volumenpaars ist bezugnehmend auf die HA-Volumenpaar-Verwaltungstabelle 220 (S352). Im folgenden Fall ist das bestimmte Volumen ein PVOL.
  • Als nächstes erhält der MPPK 120 eine Ausschließlichkeitssperre für den neuen Job (S353). Insbesondere durchsucht der MPPK 120 die Jobverwaltungstabelle 260 auf andere Jobs hin, die eine Ausschließlichkeitssperre für das angegebene Volumen und den angegebenen Bereich haben. Wenn eine Ausschließlichkeitssperre vergeben wurden, wartet der MPPK 120 auf eine Freigabe der Ausschließlichkeitssperre. Die Reihenfolge der Zuteilung von Ausschließlichkeitssperren wird beispielsweise mit einer nicht gezeigten Warteschlange gesteuert.
  • Wenn keine Ausschließlichkeitssperre vergeben wurde für das bestimmte Volumen und den bestimmten Bereich durch einen anderen Job, setzt der MPPK 120 in die Zelle der Ausschließlichkeitstypspalte 267 des neuen Jobs eine Ausschließlichkeitssperre. Der Vorgang ist ein Schreiben auf ein PVOL, und der Ausschließlichkeitstyp ist R/W EXCLUSIVE.
  • Auf den Erhalt einer Ausschließlichkeitssperre hin gibt der MPPK 120 eine Datenübertragungs-Bereit-Antwort an den RDKC 10R zurück und wartet auf die Schreibdaten vom RDKC 10R (S354). Der MPPK 120 sichert eine Cache-Seite für die Schreibdaten (S355). Insbesondere setzt der MPPK 120 neue Daten auf eine freie Seite in der Cacheseiten-Verwaltungstabelle 270. Der MPPK 120 kann die dem angegebenen Volumen entsprechende Paritätsgruppe bezugnehmend auf die VOl-Verwaltungstabelle 240 identifizieren.
  • Der MPPK 120 schreibt die empfangenen Schreibdaten in die gesicherte Cache-Seite mittels des FEPK 100 (S356). Der MPPK 120 setzt den Seitenstatus der Cache-Seite auf DUAL WRITING in der Cache-Seiten-Verwaltungstabelle 270.
  • Nach Schreiben der Schreibdaten in den Cache-Speicher 130 gibt der MPPK 120 eine Schreibbeendigungsantwort an den RDKC 10R zurück und wartet auf einen Ausschließlichkeitssperren-Freigabebefehl (S357). Die Schreibbeendigungsantwort umfasst die Jobidentifizierungsinformation des Schreibvorgangs. Der Job kann mit einer Jobnummer und der Nummer des dem Job zugewiesenen MPPK identifiziert werden. Der MPPK 120 nimmt die von der Jobverwaltungstabelle 260 erhaltene Jobnummer und die eigene MPPK-Nummer in die Schreibbeendigungsantwort auf.
  • Auf den Empfang des Ausschließlichkeitssperren-Freigabebefehls vom RDKC 10R hin erhält der MPPK 120 die Jobidentifizierungsinformationen aus dem Ausschließlichkeitssperren-Freigabebefehl (S358). Der MPPK 120 ändert den Seitenstatus der Cache-Seite für den angegebenen Job auf DIRTY (S359). Beispielsweise erhält der MPPK 120 das Zielvolumen und den Bereich des Jobs aus der Jobverwaltungstabelle 260, um die entsprechende Cache-Seite mit der Cache-Seiten-Verwaltungstabelle 270 zu identifizieren.
  • Der MPPK 120 gibt außerdem die Ausschließlichkeitssperre für den mit der Jobidentifizierungsinformation angegebenen Job frei (S360). Beispielsweise löscht der MPPK 120 in der Jobverwaltungstabelle 260 den Job, um die Ausschließlichkeitssperre freizugeben. Danach gibt der MPPK 120 eine Ausschließlichkeitssperren-Freigabe-Antwort an den RDKC 10R zurück (S361).
  • Als nächstes wird die Verarbeitung des RDKC 10R beschrieben. Der RDKC 10R empfängt einen Schreibbefehl vom MDKC 10M. Der Schreibbefehl gibt ein Zielvolumen mit einer Volumen-ID oder einer separat definierten LUN an. Der RDKC 10R erhält einen Job durch Erzeugen eines neuen Eintrags in der Jobverwaltungstabelle 260 (S351). Der genauere Vorgang ist der gleiche wie der vom MDKC 10M vollzogene.
  • Ein MPPK 120 bestimmt, ob das angegebene Volumen ein PVOL oder ein SVOL eines HA-Volumenpaars ist bezugnehmend auf die HA-Volumenpaar-Verwaltungstabelle 220 (S352). Im vorliegenden Fall ist das angegebene Volumen ein SVOL.
  • Der MPPK 120 gibt ein Datenübertragungs-Bereit an den MDKC 10M zurück und wartet auf Datenübertragung (S362). Der MPPK 120 sichert eine Cache-Seite für die Schreibdaten (S363). Insbesondere setzt der MPPK 120 neue Daten in eine freie Seite in der Cache-Seiten-Verwaltungstabelle 270. Bezugnehmend auf die VOL-Verwaltungstabelle kann der MPPK 120 die dem angegebenen Volumen entsprechende Paritätsgruppe identifizieren.
  • Der MPPK 120 schreibt Daten in die gesicherte Cache-Seite mittels des FEPK 100 (S364). Der MPPK 120 setzt den Seitenstatus der Cache-Seite auf DIRTY in der Cache-Seiten-Verwaltungstabelle 270. Nach dem Schreiben in den Cache schickt der MPPK 120 eine Schreibbeendigungsantwort an den MDKC 10M (S365).
  • 19 zeigt eine Abfolge von Verarbeitungen auf einen Lesebefehl von einem Host-Rechner 180 her für ein PVOL. Der Host-Rechner 180 gibt einen Lesebefehl (RD CMD), um einen Bereich eines virtuellen Volumens zu lesen, an den MDKC 10M aus. Der MDKC 10M erhält eine Ausschließlichkeitssperre für die durch den Lesebefehl angegebenen Bereiche in dem dem virtuellen Volumen entsprechenden PVOL (S401). Der MDKC 10M liest Daten im angegebenen Adressbereich des PVOL (S402). Der MDKC 10M gibt die Ausschließlichkeitssperre frei (S403) und gibt eine Lesebeendigungs-Antwort (RD RSP) einschließlich der gelesenen Daten an den Host-Rechner 180 zurück.
  • 20 zeigt eine Abfolge von Verarbeitungen auf einen Lesebefehl vom Host-Rechner 180 her für ein SVOL. Der Host-Rechner 180 gibt an den RDKC 10R einen Lesebefehl (RD CMD) zum Lesen eines Bereichs in einem virtuellen Volumen aus. Der RDKC 10R liest Daten im angegebenen Adressbereich in dem dem virtuellen Volumen entsprechenden SVOL (S451). Der RDKC 10R gibt eine Lesebeendigungs-Antwort (RD RSP) einschließlich der gelesenen Daten an den Host-Rechner 180 zurück.
  • 21 zeigt ein Flussdiagramm von Verarbeitungen des MDKC 10M und des RDKC 10R in Antwort auf einen Lesebefehl vom Host-Rechner 180 her. In 21 führt der MDKC 10M die Schritte S501 bis S508 aus; der RDKC 10R führt die Schritte S501, S502, S509 bis S511 aus.
  • Als erstes wird die Leseverarbeitung des MDKC 10M beschrieben. Der MDKC 10M empfängt vom Host-Rechner 180 einen Lesebefehl. Der Lesebefehl gibt ein Zielvolumen mit einer LUN an. Der MDKC 10M bestimmt bezugnehmend auf die LU-Pfadverwaltungstabelle 230 die Volumen-ID des Volumens, das dem durch den Lesebefehl bestimmten virtuellen Volumen entspricht.
  • Der MDKC 10M erhält einen Job durch Erzeugen eines neuen Eintrags in der Jobverwaltungstabelle 260 (S501). Insbesondere wählt der dem bestimmten Volumen zugeordnete MPPK 120 in der Jobverwaltungstabelle 260 einen freien Job und schreibt den Vorgangstyp (HOST READ) und Informationen bezüglich des durch den Lesebefehl angegebenen Volumens und die Adresse in die Einträge der Jobverwaltungstabelle 260.
  • Die Zelle der Ausschließlichkeitstyp-Spalte 267 bleibt leer. In 13 stellt der Eintrag für Job Nr. 0 ein Lesen von einem PVOL nach Maßgabe eines Befehls von einem Host-Rechner 180 dar.
  • Der MPPK 120 bestimmt, ob das angegebene Volumen ein PVOL oder ein SVOL eines HA-Volumenpaars ist bezugnehmend auf die HA-Volumenpaar-Verwaltungstabelle 220 (S502). Im vorliegenden Fall ist das angegebene Volumen ein PVOL.
  • Als nächstes bestimmt der MPPK 120, ob die Daten in dem durch den Lesebefehl angegebenen Speicherbereich in einem Cache gespeichert sind bezugnehmend auf die Cache-Seiten-Verwaltungstabelle 270 (S503). Wenn die Lesedaten in einem Cache gespeichert sind (S503:J), prüft der MPPK 120, ob für den Job eine Ausschließlichkeitssperre vergeben wurde.
  • Insbesondere durchsucht der MPPK 120 die Jobverwaltungstabelle 260 auf andere Jobs hin, die eine R/W-Ausschließlichkeitssperre für das bestimmte Volumen und den bestimmten Bereich erhalten haben. Wenn eine R/W-Ausschließlichkeitssperre vergeben wurde, wartet der MPPK 120 auf die Freigabe der R/W-Ausschließlichkeitssperre. Wenn keine R/W-Ausschließlichkeitssperre für das angegebene Volumen und den angegebenen Bereich durch einen anderen Job vergeben wurde, sendet der MPPK 120 die Lesedaten im Cache an den Host-Rechner 180 (S508).
  • Wenn die Lesedaten nicht in einem Cache gespeichert sind (S503:N), erhält der MPPK 120 eine Ausschließlichkeitssperre für den ausgeführten Job (S503). Insbesondere durchsucht der MPPK 120 die Jobverwaltungstabelle 260 auf andere Jobs hin, die eine R/W-Ausschließlichkeitssperre für das angegebene Volumen und den angegebenen Bereich erhalten haben. Wenn eine R/W-Ausschließlichkeitssperre vergeben wurde, wartet der MPPK 120 auf die Freigabe der R/W-Ausschließlichkeitssperre.
  • Wenn keine R/W-Ausschließlichkeitssperre für das angegebene Volumen und den angegebenen Bereich durch einen anderen Job vergeben wurde, setzt der MPPK 120 eine Ausschließlichkeitssperre in die Zelle der Ausschließlichkeitstyp-Spalte 267 des neuen Jobs. Der Vorgang ist ein Lesen und der Ausschließlichkeitstyp ist RD SHARED.
  • Nach Erhalt einer Ausschließlichkeitssperre sichert der MPPK 120 für die Lesedaten eine Cache-Seite (S505). Insbesondere setzt der MPPK 120 neue Daten in eine freie Seite in der Cache-Seiten-Verwaltungstabelle 270. Der MPPK 120 kann bezugnehmend auf die VOL-Verwaltungstabelle 240 die dem angegebenen Volumen entsprechende Paritätsgruppe identifizieren.
  • Der MPPK 120 schreibt die von der Paritätsgruppe gelesenen Schreibdaten in die gesicherte Cacheseite (S506). Der MPPK 120 setzt den Seitenstatus der Cacheseite auf CLEAN in der Cache-Seiten-Verwaltungstabelle. Der MPPK 120 aktualisiert die Jobverwaltungstabelle 260 und gibt die Ausschließlichkeitssperre für den Job frei (S507). Danach sendet der MPPK 120 eine Lesebeendigungsantwort einschließlich der gelesenen Daten an den Host-Rechner 180 (S508).
  • Als nächstes wird die Verarbeitung des RDKC 10R beschrieben. Abgesehen von keiner Erwirkung einer Ausschließlichkeitssperre für den Job ist die Verarbeitung des RDKC 10R die gleiche wie die des MDKC 10M. Die Schritte S509, S510 und S511 entsprechen den Schritten 503, S505 und S506. Der RDKC 10R sendet diese Daten im SVOL an den Host-Rechner 180.
  • Im eben beschriebenen Beispiel ist das HA-Volumenpaar im Status PAIR und ist synchronisiert. 22 zeigt Beziehungen zwischen dem PaarStatus eines HA-Volumenpaars und Ausschlusstypen eines E/A-Zugriffs auf das PVOL und das SVOL. Für den Paarstatus ist der Status PAIR und der Status PSUS (Pair SUSpended) vorgesehen. Im Status PAIR sind PVOL und SVOL synchronisiert, und die Aktualisierung im einen wird an den anderen weitergegeben.
  • Im Status PAIR empfängt, wie oben beschrieben, der PVOL Schreibzugriff und Lesezugriff vom Host-Rechner 180 und Schreibzugriffe vom RDKC 10R. Für diese Zugriffe wird eine Ausschließlichkeitssperrung von entweder RD SHARED oder R/W EXCLUSIVE durchgeführt. In gleicher Weise empfängt das SVOL Schreibzugriffe und Lesezugriffe vom Host-Rechner 180 und Schreibzugriffe vom MDKC 10M. Für die Zugriffe auf das SVOL werden Ausschließlichkeitssperrungen nicht durchgeführt.
  • Im Status PSUS ist die Aktualisierung des SVOL unterbunden; PVOL und SVOL sind nicht synchronisiert. Zugriffe vom Host-Rechner 180 werden vom MDKC 10M verarbeitet. Der MDKC 10M akzeptiert Schreibzugriffe und Lesezugriffe vom Host-Rechner 180 auf das PVOL.
  • Bei der Abarbeitung eines Schreibbefehls von einem Host-Rechner 180 sendet der MDKC 10M Schreibdaten nicht an den RDKC 10R. Für die Schreibzugriffe und die Lesezugriffe vom Host-Rechner 180 führt der MDKC 10M Ausschließlichkeitssperrungen von entweder R/W EXCLUSIVE oder RD SHARED aus.
  • Wenn während des Status PSUS der RDKC 10R einen Schreibbefehl oder einen Lesebefehl vom Host-Rechner 180 empfängt, überträgt der RDKC 10R den Befehl an den MDKC 10M. Dann braucht der RDKC die Daten nicht im Cache-Speicher 131 zu speichern. Er speichert Daten im Puffer 113 und überträgt dann die Daten an den MDKC 10M. Bei Schreibverarbeitungen gibt der RDKC 10R auf den Empfang einer Schreibbeendigungsantwort vom MDKC 10M hin eine Schreibbeendigungsantwort an den Host-Rechner 180 zurück. Bei Leseverarbeitungen empfängt der RDKC 10R Lesedaten vom MDKC 10M und sendet sie an den Host-Rechner 180.
  • Es wird nun ein Beispiel für die Behandlung eines Fehlers in einem MPPK 120 beschrieben. Wenn in einem MPPK 120 während der Verarbeitung eines Schreibbefehls von einem Host-Rechner 180 ein Fehler auftritt, können PVOL und SVOL unsynchronisiert sein. Diese Ausführungsform verhindert Leistungsverschlechterung, die durch den Fehler bewirkt wird, und erhält außerdem fehlerlos die Konsistenz innerhalb des HA-Volumenpaars aufrecht, da ein anderer MPPK 120 einen Schreibbefehl für das SVOL im RDKC 10R sendet.
  • Das Senden eines Schreibbefehls für das SVOL kann beispielsweise durch einen anderen MPPK 120 ausgeführt werden (Fehlererfassungs-MPPK 120), der den MPPK 120 erkannt hat (fehlerhaften MPPK 120), der einen Fehler hat, und/oder durch einen anderen MPPK 120 (Nachfolger-MPPK 120), der vom fehlerhaften MPPK 120 das PVOL übernommen hat.
  • Wie oben beschrieben kann der MDKC 10M, wenn der Seitenstatus in der Cache-Seiten-Verwaltungstabelle 270 DUAL WRITING ist, nicht unterscheiden, ob die Schreibdaten in das SVOL geschrieben wurden. Dementsprechend greift der MPPK 120 auf die Cache-Seiten-Verwaltungstabelle 270 zu, um Jobs zu identifizieren, die einen Schreibbefehl senden müssen.
  • Der Fehlererkennungs-MPPK 120 durchsucht die Cache-Seiten-Verwaltungstabelle 270 nach Einträgen mit den PVOLs, die dem fehlerhaften MPPK 120 zugeordnet sind und die den Seitenstatus DUAL WRITING angeben. Dies sind Einträge, die Schreibbefehle an de SVOLs senden müssen. Der Fehlererfassungs-MPPK 120 ändert den Seitenstatus der erfassten Einträge auf „SEND WRITE COMMAND“.
  • Beispielsweise kann jeder Nachfolger-MPPK 120 die obigen Änderungen in der Cache-Seiten-Verwaltungstabelle (270) ausführen. Der Nachfolger-MPPK 120 aktualisiert lediglich die Einträge, die PVOLs beinhalten, die er übernommen hat.
  • 23 ist ein Flussdiagramm der Verarbeitung eines Nachfolger-MPPK 120 zum Senden eines Schreibbefehls für ein Schreiben auf ein SVOL. 23 zeigt einen Teil der Schritte der Schreibverarbeitung oder einer Leseverarbeitung betreffend ein übernommenes PVOL, die durch den Nachfolger-MPPK 120 vorgenommen werden.
  • In diesem Beispiel einer Lese-/Schreib-Verarbeitung von einem bzw. auf ein von einem fehlerhaften MPPK 120 übernommenes PVOL sendet der Nachfolger-MPPK 120 einen notwendigen Schreibbefehl an das SVOL. Die Schreibverarbeitung ist eine Host-Schreibverarbeitung oder eine Zwischen-DKC-Schreibverarbeitung.
  • Wie in 23 dargestellt, erhält der Nachfolger-MPPK 120 eine Ausschließlichkeitssperre für den Job, der dem verarbeiteten Befehl entspricht (S551) und sichert einen Cache-Spalt (S552). Der Nachfolger-MPPK 120 durchsucht die Cache-Seiten-Verwaltungstabelle 270 auf Einträge hin, die an das SVOL einen Schreibbefehl senden müssen (S553).
  • Beispielsweise sucht der Nachfolger-MPPK 120 nach einem Eintrag mit dem PVOL und mit SEND WRITE COMMAND im Seitenstatus. Alternativ dazu kann der MPPK 120 Einträge suchen, die die Gesamtheit oder einen Teil des durch den Befehl angegebenen Bereichs angeben und die SEND WRITE COMMAND im Seitenstatus zeigen.
  • Wenn ein die Suchkriterien erfüllender Eintrag vorliegt (S553:J), gibt der Nachfolger-MPPK 120 einen Schreibbefehl an den RDKC 10R aus und wartet auf eine Datenübertragungs-Beendigungsantwort (S554). Auf den Empfang einer Beendigungsantwort hin überträgt der Nachfolger-MPPK 120 die im Cache-Spalt gehaltenen Schreibdaten an den RDKC 10R und wartet auf eine Schreibbeendigungsantwort (S555).
  • Auf den Empfang einer Schreibbeendigungsantwort vom RDKC 10R hin ändert der Nachfolger-MPPK 120 den Seitenstatus der Cache-Seite in der Cache-Seiten-Verwaltungstabelle 270 auf DIRTY (S556). Danach nimmt der Nachfolger-MPPK 120 die Abarbeitung des vom Host-Rechner 180 empfangenen Befehls wieder auf.
  • Ein MPPK 120, der vom Nachfolger-MPPK 120 verschieden ist, beispielsweise ein Fehlererfassungs-MPPK 120, kann bezugnehmend auf die Cache-Seiten-Verwaltungstabelle 270 einen notwendigen Schreibbefehl an den RDKC 10R schicken. Der MPPK 120 wählt nacheinander Einträge in der Cache-Seiten-Verwaltungstabelle 270, die SEND WRITE COMMAND zeigen, und führt Schreibverarbeitungen auf SVOLs durch. Fehlererfassungs-MPPK 120 und Nachfolger-MPPK 120 oder nur einer von beiden können die Schreibverarbeitungen auf die SVOLs ausführen.
  • Betreffend die Schreibverarbeitungen für ein SVOL wird nun ein anderes Verfahren für den RDKC 10R des Sendens eines Ausschließlichkeitssperren-Freigabebefehls für einen Job an den MDKC 10M beschrieben. Im oben beschriebenen Konfigurationsbeispiel sendet der RDKC 10R einen Ausschließlichkeitssperren-Freigabebefehl an den MDKC 10M getrennt von den Schreibdaten. Im folgenden Beispiel sendet der RDKC 10R einen Ausschließlichkeitssperren-Freigabebefehl an den MDKC 10M zusammen mit den Schreibdaten. Dadurch kann Datenverkehr verringert werden.
  • 24 zeigt eine Abfolge des Sendens eines Ausschließlichkeitssperren-Freigabebefehls zusammen mit Schreibdaten. In der folgenden Beschreibung sind hauptsächlich Unterschiede zum Ablaufdiagramm der 16 beschrieben. In 24 erhält der MDKC 10M eine Ausschließlichkeitssperre (S251) und gibt eine Datenübertragungs-Bereit-Antwort (XFR RD) an den RDKC 10R zurück.
  • Der RDKC 10R sendet einen Ausschließlichkeitssperren-Freigabebefehl an den MDKC 10M zusammen mit den Schreibdaten (WR DAT). Insbesondere sendet der RDKC 10R, wenn mehrere Teile von Schreibdaten separat gesendet werden, den Ausschließlichkeitssperren-Freigabebefehl zusammen mit dem Senden des letzten Teils.
  • Der MDKC 10M empfängt einen Ausschließlichkeitssperren-Freigabebefehl vom RDKC 10R zusammen mit den Schreibdaten (WR DAT). Der MDKC 10M schreibt die empfangenen Schreibdaten in den bestimmten Bereich im PVOL (S252). Auf die Vervollständigung des Datenschreibens auf den Bereich im PVOL hin gibt der MDKC 10M die erhaltene Ausschließlichkeitssperre frei (S257). Danach gibt der MDKC 10M eine Schreibbeendigungsantwort (WR RSP) an den RDKC 10R zurück.
  • Diese Abfolge ist in einer Konfiguration effektiv, in der die FEPKs 100 keine Funktion der automatischen Übertragung eines Schreibbefehls und von Schreibdaten haben. Diese Abfolge erreicht eine Verringerung der Häufigkeit der Kommunikation zwischen MDKC 10M und RDKC 10R.
  • Im obigen Konfigurationsbeispiel führt der RDKC 10R keine Ausschließlichkeitssperre für einen Job aus. Wie im Folgenden beschrieben, kann der RDKC 10R eine Ausschließlichkeitssperrung für einen Job ausführen, genauso wie der MDKC 10M. Als Ergebnis gewinnt man höhere Zuverlässigkeit durch feste Beibehaltung der Abfolge.
  • 25 zeigt eine Abfolge von Verarbeitungen für ein Schreiben von einem Host-Rechner 180 auf ein PVOL einschließlich einer Ausschließlichkeitssperrung für einen Job durch den RDKC 10R. In der folgenden Beschreibung sind hauptsächlich Unterschiede zum in 15 gezeigten Ablauf beschrieben.
  • Auf den Empfang eines Schreibbefehls (WR CMD) vom MDKC 10M hin erhält der RDKC 10R eine Ausschließlichkeitssperrung des durch den Schreibbefehl angegebenen Bereichs (S207). Der RDKC 10R gibt eine Datenübertragungs-Bereit-Antwort (XFR RD) an den MDKC 10M zurück und empfängt Schreibdaten (WR DATA) vom MDKC 10M. Der RDKC 10R schreibt die empfangenen Schreibdaten in den Adressbereich des SVOL (S203).
  • Auf die Beendigung des Datenschreibens in den Adressbereich des SVOLs hin gibt der RDKC 10R eine Schreibbeendigungsantwort (WR RSP) an den MDKC 10M zurück. Außerdem gibt der RDKC 10R die erhaltene Ausschließlichkeitssperrung frei (S209).
  • 26 zeigt eine Abfolge von Verarbeitungen für ein Schreiben vom Host-Rechner 180 auf ein SVOL einschließlich einer Ausschließlichkeitssperrung für einen Job des RDKC 10R. In der folgenden Beschreibung sind hauptsächlich Unterschiede zum Ablauf, wie er in 16 gezeigt ist, beschrieben.
  • Der Host-Rechner 180 gibt einen Schreibbefehl (WR CMD) für ein Schreiben auf einen Bereich im virtuellen Volumen an den RDKC 10R aus. Der RDKC 10R erhält eine Ausschließlichkeitssperre des durch den Schreibbefehl bestimmten Bereichs in dem dem virtuellen Volumen entsprechenden SVOL (S257).
  • Die folgenden Ausführungsschritte des RDKC 10R bis zum Schritt des Schreibens der Schreibdaten auf den angegebenen Bereich des SVOL (S253) sind die gleichen wie die im Ablaufdiagramm der 16. Der RDKC 10R gibt die erhaltene Ausschließlichkeitssperre nach der Rückgabe einer Schreibbeendigungsantwort (WR RSP) an den Host-Rechner 180 frei (S258). Als nächstes sendet der RDKC 10R einen Ausschließlichkeitssperren-Freigabebefehl, der einen Job angibt, an den MDKC 10M.
  • 27 zeigt ein Flussdiagramm der Verarbeitung des MDKC 10M und des RDKC 10R auf einen Schreibbefehl von einem Host-Rechner 180 hin, der den Abläufen der 25 und 26 entspricht. Im Folgenden werden hauptsächlich Unterschiede zu den Flussdiagrammen der 17 beschrieben. Die Unterschiede vom Flussdiagramm der 17 sind, dass der RDKC 10R eine Ausschließlichkeitssperre erhält (S321) und die Ausschließlichkeitssperre freigibt (S322).
  • Vor der Rückgabe einer Beendigungsantwort an den Host-Rechner 180 erhält der RDKC 10R eine Ausschließlichkeitssperre für den neuen Job im Schritt S321. Das Verfahren des Zuweisens einer Ausschließlichkeitssperre ist das gleiche wie das für MDKC 10M in Schritt S303. Der Ausschließlichkeitstyp ist R/W EXCLUSIVE.
  • Nach Rückgabe einer Schreibbeendigungsantwort an den Host-Rechner 180 gibt der RDKC 10R die Ausschließlichkeitssperre im Schritt S322 frei. Das Verfahren des Freigebens der Ausschließlichkeitssperre ist das gleiche wie das im MDKC 10M in Schritt S311.
  • 28 zeigt ein Flussdiagramm von Verarbeitungen des MDKC 10M und des RDKC 10R in Antwort auf einen Schreibbefehl zwischen MDKC 10M und RDKC 10R, das den Abläufen der 25 und 26 entspricht. In der folgenden Beschreibung werden hauptsächlich Unterschiede zum Flussdiagramm der 18 beschrieben. Die Unterschiede zum Flussdiagramm der 18 sind, dass der RDKC 10R eine Ausschließlichkeitssperre erhält (S371) und die Ausschließlichkeitssperre freigibt (S372).
  • Vor der Rückgabe einer Beendigungsantwort an den MDKC 10M erhält der RDKC 10R eine Ausschließlichkeitssperre für den neuen Job in Schritt S371. Das Verfahren des Zuordnens einer Ausschließlichkeitssperre ist das gleiche wie das im MDKC 10M im Schritt S353. Der Ausschließlichkeitstyp ist R/W EXCLUSIVE.
  • Nach Rückgabe einer Schreibbeendigungsantwort an den MDKC 10M gibt der RDKC 10R die Ausschließlichkeitssperre im Schritt S372 frei. Das Verfahren des Freigebens der Ausschließlichkeitssperre ist das gleiche wie das im MDKC 10M in Schritt S360. Der RDKC 10R kann auch eine Ausschließlichkeitssperrung bei der Abarbeitung eines Lesebefehls vom Host-Rechner 180 ausführen. In diesem Fall ist die Leseverarbeitung des RDKC 10R die gleiche wie die Leseverarbeitung des MDKC 10M einschließlich Ausschließlichkeitssperrung.
  • Die Jobausschließlichkeitssteuerung durch den RDKC für E/A-Zugriffe auf SVOLs kann die Zuverlässigkeit erhöhen.
  • Die oben beschriebenen Konfigurationen, Funktionen und Verarbeitungseinheiten können ganz oder teilweise durch Hardware implementiert sein: beispielsweise durch Entwurf einer integrierten Schaltung. Die oben beschriebenen Konfigurationen und Funktionen können durch Software implementiert sein, was bedeutet, dass ein Prozessor Programme interpretiert und ausführt, die die Funktionen bereitstellen. Die Informationen von Programmen, Tabellen und Dateien zur Implementierung der Funktionen kann in einer Speichervorrichtung gespeichert sein, wie einem Speicher, einer Festplatte oder einem SSD (Solid State Drive), oder auf einem Speichermedium wie einer IC-Karte oder einer SD-Karte. In dieser Ausführungsform werden Speichervorrichtungen und Volumina durch Speichervorrichtungen virtualisiert; allerdings kann die Virtualisierung der Speichervorrichtungen und Volumina mit einem besonderen Virtualisierungsgerät oder einer Funktion der Pfadverwaltung für den Host erreicht werden. Die Ausführungsformen sind für viele Speichervorrichtungen anwendbar, die mehrere redundant (HA) konfigurierte Aktiv-Aktiv-Typ-Volumina haben.

Claims (11)

  1. Speichersystem mit einer ersten Speichervorrichtung (10A, 10M) und einer zweiten Speichervorrichtung (10B, 10R), wobei die erste Speichervorrichtung (10A, 10M) ein erstes logisches Volumen (161A) bereitstellt, wobei die zweite Speichervorrichtung (10B, 10R) ein zweites logisches Volumen (161B) bereitstellt, das mit dem ersten logischen Volumen (161A) gepaart ist und die zusammen als Hochverfügbarkeits-Volumenpaar (HA-Volumenpaar) konfiguriert und zur Datenduplizierung vom ersten logischen Volumen (161A) in das zweite logische Volumen (161B) ausgelegt sind, wobei den beiden logischen Volumen eine gemeinsamer Volumen-Identifiziere (212) eines virtuellen Volumens zugeordnet ist, A. wobei das Speichersystem dazu ausgelegt ist, auf den Empfang von Schreibdaten hin, die in das erste logische Volumen (161A) oder das zweite logische Volumen (161B) vom Host-Rechner (180) zu schreiben sind, A1. einen Speicherbereich für die Schreibdaten im ersten logischen Volumen (161A) zu sperren (S201), A2. die Schreibdaten duplizierend zuerst in das erste logische Volumen (161A) und nachfolgend in das zweite logische Volumen (161B) zu schreiben (S202, S203), A3. den gesperrten Speicherbereich im ersten logischen Volumen (161A) freizugeben, nachdem die Daten in das erste und in das zweite logische Volumen (161B) geschrieben wurden (S204), B. wobei die erste Speichervorrichtung (10A, 10M) dazu ausgelegt ist, auf dem Empfang einer Leseanforderung für das erste logische Volumen (161A) vom Host-Rechner (180) her: B1. Bestimmen, ob ein durch die Leseanfrage angegebener Speicherbereich gesperrt ist; B2a. wenn die Bestimmung ergibt, dass der angegebene Speicherbereich gesperrt ist, nach einer vorbestimmten Zeit abermals Bestimmen, ob der durch die Leseanfrage angegebene Speicherbereich gesperrt ist; und B2b. Lesen (S402), wenn das Ergebnis der Bestimmung ist, dass der angegebene Speicherbereich nicht gesperrt ist, Daten vom Speicherbereich im ersten logischen Volumen (161A), wie sie in der Leseanfrage angegeben sind, und Zurückgeben der gelesenen Daten an den Host-Rechner (180), und C. wobei die zweite Speichervorrichtung (10B, 10R) dazu ausgelegt ist, auf den Empfang einer Leseanforderung für das zweite logische Volumen (161B) vom Host-Rechner (180) her Daten von einem zweiten Speicherbereich im zweiten logischen Volumen (161B), wie sie in der Leseanfrage angegeben sind, zu lesen (S451) und die gelesenen Daten an den Host-Rechner (180) zurückzugeben, ohne die Sperrung eines Speicherbereichs abzufragen.
  2. Speichersystem nach Anspruch 1, wobei die erste Speichervorrichtung (10A, 10M) und die zweite Speichervorrichtung (10B, 10R) dem Host-Rechner (180) so dargeboten werden, dass sie als eine einzelne virtuelle Speichervorrichtung wahrgenommen werden durch Mitteilung eines gleichen Speichervorrichtung-Identifizierers (213) an den Host-Rechner (180), und wobei das erste logische Volumen (161A) und das zweite logische Volumen (161B) dem Host-Rechner (180) so dargeboten werden, dass sie als ein einzelnes virtuelles Volumen wahrgenommen werden, durch Mitteilungen eines gleichen Identifizierers (212) eines virtuellen Volumens an den Host-Rechner (180).
  3. Speichersystem nach Anspruch 2, wobei die zweite Speichervorrichtung (10B, 10R) einen Puffer (113) aufweist, wobei die zweite Speichervorrichtung (10B, 10R) dazu ausgelegt ist, auf dem Empfang von Schreibdaten für das zweite logische Volumen (161B) vom Host-Rechner (180) her: Speichern der Schreibdaten im Puffer (113); Senden der Schreibdaten an die erste Speichervorrichtung (10A, 10M); Empfangen einer Schreibbeendigungsmitteilung von der ersten Speichervorrichtung (10A, 10M); Speichern der Schreibdaten, die im Puffer (113) gespeichert sind, im zweiten logischen Volumen (161B); und Zurückgeben einer Schreibbeendigungsantwort an den Host-Rechner (180).
  4. Speichersystem nach Anspruch 3, bei dem die erste Speichervorrichtung (10A, 10M) dazu ausgelegt ist, auf dem Empfang von Schreibdaten von der zweiten Speichervorrichtung (10B, 10R) hin: Bestimmen, ob ein Speicherbereich zum Speichern der Schreibdaten gesperrt ist; Bestimmen, dann, wenn das Ergebnis der Bestimmung ist, dass der Speicherbereich zur Speicherung der Schreibdaten gesperrt ist, ob der Speicherbereich zum Speichern der Daten gesperrt ist abermals nach einer vorbestimmten Zeit; im Falle, dass das Ergebnis der Bestimmung ist, dass der Speicherbereich zum Speichern der Schreibdaten nicht gesperrt ist, Sperren des Speicherbereichs zur Speicherung der Schreibdaten; Speichern der Schreibdaten im ersten logischen Volumen (161A); Senden der Schreibbeendigungsbenachrichtigung an die zweite Speichervorrichtung (10B, 10R); Empfangen einer Schreibbeendigungsbenachrichtigung von der zweiten Speichervorrichtung (10B, 10R); und Aufheben der Sperrung des Speicherbereichs zur Speicherung der Schreibdaten.
  5. Speichersystem nach Anspruch 2, bei dem die erste Speichervorrichtung (10A, 10M) dazu ausgelegt ist, im Falle das Empfangs von Schreibdaten für das erste logische Volumen (161A) vom Host-Rechner (180) her: Bestimmen, ob der Speicherbereich zur Speicherung der Schreibdaten gesperrt ist; Bestimmen, wenn das Ergebnis der Bestimmung ist, dass der Speicherbereich zur Speicherung der Schreibdaten gesperrt ist, ob der Speicherbereich zur Speicherung der Schreibdaten gesperrt ist abermals nach einer vorbestimmten Zeit; wenn das Ergebnis der Bestimmung ist, dass der Speicherbereich zur Speicherung der Schreibdaten nicht gesperrt ist, Sperren des Speicherbereichs zur Speicherung der Daten; Speichern der Schreibdaten im ersten logischen Volumen (161A); Senden der Schreibdaten an die zweite Speichervorrichtung (10B, 10R); Empfangen einer Schreibbeendigungsbenachrichtigung von der zweiten Speichervorrichtung (10B, 10R); Zurückgeben einer Schreibbeendigungsantwort an den Host-Rechner (180); und Aufheben der Sperrung des Speicherbereichs zur Speicherung der Schreibdaten.
  6. Speichersystem nach Anspruch 5, das außerdem den Host-Rechner (180) aufweist, wobei dann, wenn der Host-Rechner (180) nicht auf das erste logische Volumen (161A) zugreifen kann, der Host-Rechner (180) auf das zweite logische Volumen (161B) zugreift, wobei die zweite Speichervorrichtung (10B, 10R) dazu ausgelegt ist: Prüfen, auf den Empfang des Zugriffs auf das zweite logische Volumen (161B) hin, eines Statuses der ersten Speichervorrichtung (10A, 10M); und wenn die erste Speichervorrichtung (10A, 10M) als in einem fehlerhaften Status liegend befunden wurde, Zurückgeben einer Antwort an den Host-Rechner (180) auf der Grundlage von Daten im zweiten logischen Volumen (161B).
  7. Speichersystem nach Anspruch 5, wobei die zweite Speichervorrichtung (10B, 10R) dazu ausgelegt ist, dann, wenn im zweiten logischen Volumen (161B) ein Fehler auftritt, im Falle des Empfangs von Schreibdaten für das zweite logische Volumen (161B) vom Host-Rechner (180) her: Senden der Schreibdaten an die erste Speichervorrichtung (10A, 10M); Empfangen einer Schreibbeendigungsmitteilung von der ersten Speichervorrichtung (10A, 10M); und Zurückgeben einer Schreibbeendigungsantwort an den Host-Rechner (180), und wobei die zweite Speichervorrichtung (10B, 10R) dazu ausgelegt ist, wenn im zweiten logischen Volumen (161B) ein Fehler auftritt, im Falle des Empfangs einer Leseanfrage für das zweite logische Volumen (161B) vom Host-Rechner (180) her: Senden der Leseanfrage an die erste Speichervorrichtung (10A, 10M); Empfangen von Lesedaten von der ersten Speichervorrichtung (10A, 10M); und Zurückgeben der Lesedaten an den Host-Rechner (180).
  8. Speichersystem nach Anspruch 5, bei dem die erste Speichervorrichtung (10A, 10M) einen ersten Prozessor und einen zweiten Prozessor aufweist; wobei der zweite Prozessor dazu ausgelegt ist, wenn im ersten Prozessor beim Eingeben bzw. Ausgeben von Daten in das oder aus dem ersten logischen Volumen (161A) ein Fehler auftritt: Bestimmen eines gesperrten Speicherbereichs unter den Speicherbereichen im ersten logischen Volumen (161A); Senden von im gesperrten Speicherbereich im ersten logischen Volumen (161A) zu speichernden Daten an die zweite Speichervorrichtung (10B, 10R); Empfangen einer Antwort der Beendigung des Speicherns der im gesperrten Speicherbereich des ersten logischen Volumens (161A) zu speichernden Daten von der zweiten Speichervorrichtung (10B, 10R); und Eingeben bzw. Ausgeben in das bzw. aus dem ersten logischen Volumen (161A) auf der Grundlage eines Befehls vom Host-Rechner (180).
  9. Speichersystem nach Anspruch 5, wobei die zweite Speichervorrichtung (10B, 10R) gesperrte Speicherbereiche unter den Speicherbereichen des zweiten logischen Volumens (161B) verwaltet, wobei die zweite Speichervorrichtung (10B, 10R) dazu ausgelegt ist, auf dem Empfang von Schreibdaten für das zweite logische Volumen (161B) von der ersten Speichervorrichtung (10A, 10M) hin: Bestimmen, ob ein Speicherbereich zur Speicherung der Schreibdaten gesperrt ist; Bestimmen, im Falle, dass das Ergebnis der Bestimmung ist, dass der Speicherbereich zur Speicherung der Schreibdaten gesperrt ist, ob der Speicherbereich zur Speicherung der Schreibdaten gesperrt ist abermals nach einer vorbestimmten Zeit; wenn das Ergebnis der Bestimmung ist, dass der Speicherbereich zur Speicherung der Schreibdaten nicht gesperrt ist, Sperren des Speicherbereichs zur Speicherung der Schreibdaten; Speichern der Schreidaten in das zweite logische Volumen (161B); Zurückgeben einer Schreibbeendigungsbenachrichtigung an die erste Speichervorrichtung (10A, 10M); und Aufheben der Sperrung des Speicherbereichs zur Speicherung der Schreibdaten.
  10. Speichersystem nach Anspruch 5, bei dem die zweite Speichervorrichtung (10B, 10R) einen Puffer (113) aufweist, wobei die zweite Speichervorrichtung (10B, 10R) dazu ausgelegt ist, im Falle des Empfangs von Schreibdaten für das zweite logische Volumen (161B) vom Host-Rechner (180) her: Bestimmen, ob ein Speicherbereich zur Speicherung der Schreibdaten gesperrt ist; Bestimmen im Fall, dass das Ergebnis der Bestimmung ist, dass der Speicherbereich zur Speicherung der Schreibdaten gesperrt ist, ob der Speicherbereich zur Speicherung der Schreibdaten gesperrt ist abermals nach einer vorbestimmten Zeit; im Falle, dass das Ergebnis der Bestimmung ist, dass der Speicherbereich zur Speicherung der Schreibdaten nicht gesperrt ist, Sperren des Speicherbereichs zur Speicherung der Schreibdaten; Speichern der Schreibdaten im Puffer (113); Senden der Schreibdaten an die erste Speichervorrichtung; Empfangen eines Schreibbeendigungshinweises von der ersten Speichervorrichtung; Speichern der Schreibdaten, die im Puffer (113) gespeichert sind, in das zweite logische Volumen (161B); Zurückgeben einer Schreibbeendigungsantwort an den Host-Rechner (180); und Aufheben der Sperrung des Speicherbereichs zur Speicherung der Schreibdaten.
  11. Speicherverfahren in einem Speichersystem mit einer ersten Speichervorrichtung (10A, 10M) und einer zweiten Speichervorrichtung (10B, 10R), wobei die erste Speichervorrichtung (10A, 10M) ein erstes logisches Volumen (161A) bereitstellt, wobei die zweite Speichervorrichtung (10B, 10R) ein zweites logisches Volumen (161B) bereitstellt, das mit dem ersten logischen Volumen (161A) gepaart ist und die zusammen als Hochverfügbarkeits-Volumenpaar (HA-Volumenpaar) konfiguriert und zur Datenduplizierung vom ersten logischen Volumen (161A) in das zweite logische Volumen (161B) ausgelegt sind, wobei den beiden logischen Volumen eine gemeinsamer Volumen-Identifizierung (212) eines virtuellen Volumens zugeordnet ist, wobei das Verfahren folgende Schritte aufweist: A. auf dem Empfang von Schreibdaten hin, die in das erste logische Volumen (161A) oder das zweite logische Volumen (161B) vom Host-Rechner (180) zu schreiben sind, A1. Sperren (S201) eines Speicherbereichs für die Schreibdaten im ersten logischen Volumen (161A), A2. Schreiben der Schreibdaten duplizierend zuerst in das erste logische Volumen (161A) und nachfolgend in das zweite logische Volumen (161B), A3. Freigeben des gesperrten Speicherbereichs im ersten logischen Volumen (161A), nachdem die Daten in das erste und in das zweite logische Volumen (161B) geschrieben wurden (S204), B. wobei auf dem Empfang einer Leseanforderung für das erste logische Volumen (161A) vom Host-Rechner (180) her die erste Speichervorrichtung (10A, 10M): B1. bestimmt, ob ein durch die Leseanfrage angegebener Speicherbereich gesperrt ist; B2a. wenn die Bestimmung ergibt, dass der angegebene Speicherbereich gesperrt ist, nach einer vorbestimmten Zeit abermals bestimmt, ob der durch die Leseanfrage angegebene Speicherbereich gesperrt ist; und B2b. wenn das Ergebnis der Bestimmung ist, dass der angegebene Speicherbereich nicht gesperrt ist, Daten vom Speicherbereich im ersten logischen Volumen (161A), wie sie in der Leseanfrage angegeben sind, liest und die gelesenen Daten an den Host-Rechner (180) zurückgibt, und C. wobei auf den Empfang einer Leseanforderung für das zweite logische Volumen (161B) vom Host-Rechner (180) her die zweite Speichervorrichtung (10B, 10R) Daten von einem zweiten Speicherbereich im zweiten logischen Volumen (161B), wie sie in der Leseanfrage angegeben sind, liest und die gelesenen Daten an den Host-Rechner (180) zurückgibt, ohne die Sperrung eines Speicherbereichs abzufragen.
DE112014006605.2T 2014-04-21 2014-04-21 Speichersystem Active DE112014006605B4 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/061151 WO2015162663A1 (ja) 2014-04-21 2014-04-21 ストレージシステム

Publications (2)

Publication Number Publication Date
DE112014006605T5 DE112014006605T5 (de) 2017-01-05
DE112014006605B4 true DE112014006605B4 (de) 2023-02-16

Family

ID=52133612

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112014006605.2T Active DE112014006605B4 (de) 2014-04-21 2014-04-21 Speichersystem

Country Status (6)

Country Link
US (2) US8943286B1 (de)
JP (1) JP5620614B1 (de)
CN (1) CN106133676B (de)
DE (1) DE112014006605B4 (de)
GB (1) GB2539829B (de)
WO (1) WO2015162663A1 (de)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105512052B (zh) * 2014-10-20 2019-01-01 伊姆西公司 用于处理输入输出操作请求的方法和装置
WO2016117040A1 (ja) * 2015-01-21 2016-07-28 株式会社日立製作所 計算機システム、計算機システムにおけるデータの移行方法
JPWO2016121005A1 (ja) * 2015-01-27 2017-09-21 株式会社日立製作所 管理計算機および計算機システムの管理方法
WO2016121118A1 (ja) * 2015-01-30 2016-08-04 株式会社日立製作所 性能分析装置及び方法並びに記憶媒体
CN105988724B (zh) * 2015-02-12 2019-02-26 华为技术有限公司 多副本写入存储设备的方法及存储设备
JP6472508B2 (ja) 2015-04-06 2019-02-20 株式会社日立製作所 管理計算機およびリソース管理方法
CA2963365C (en) 2015-12-31 2019-02-05 Lei Chen Data write method, apparatus, and system
JP6315000B2 (ja) * 2016-02-01 2018-04-25 日本電気株式会社 ストレージ管理システムおよびストレージ管理方法
CN107526537B (zh) * 2016-06-22 2020-03-20 伊姆西Ip控股有限责任公司 用于锁定存储系统中的存储区域的方法和系统
US10983882B2 (en) 2017-01-25 2021-04-20 Hitachi, Ltd. Method for latency improvement of storages using low cost hardware
CN110300960B (zh) * 2017-02-28 2023-04-04 株式会社日立制作所 信息系统、管理程序和信息系统的程序更换方法
CN107329698B (zh) * 2017-06-29 2020-08-11 杭州宏杉科技股份有限公司 一种数据保护方法及存储设备
JP6643524B2 (ja) * 2017-06-30 2020-02-12 株式会社日立製作所 ストレージシステム及び記憶制御方法
US11144251B2 (en) * 2018-10-17 2021-10-12 International Business Machines Corporation Providing a global unique identifier for a storage volume
US11307944B2 (en) 2020-06-04 2022-04-19 Hitachi, Ltd. Automated failover for asynchronous remote copy
CN116466876A (zh) * 2020-09-11 2023-07-21 华为技术有限公司 一种存储系统及数据处理方法
US11416160B1 (en) 2021-02-25 2022-08-16 Hitachi, Ltd. Volume operation propagation for synchronous remote copy
US11579780B1 (en) 2021-08-27 2023-02-14 Hitachi, Ltd. Volume remote copy based on application priority

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050147132A1 (en) 2004-01-07 2005-07-07 Takashi Asako System and method for data multiplexing
US20070050547A1 (en) 2005-08-25 2007-03-01 Hitachi, Ltd. Storage system and storage system management method
US20070050573A1 (en) 2005-09-01 2007-03-01 Hiroshi Arakawa Storage system for copying data and storing in a plurality of storage devices
US20090228671A1 (en) 2008-03-04 2009-09-10 Takeshi Shigemura Storage apparatus and control method thereof
US20090271582A1 (en) 2008-04-28 2009-10-29 Hitachi, Ltd. Information System and I/O Processing Method

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5459857A (en) * 1992-05-15 1995-10-17 Storage Technology Corporation Fault tolerant disk array data storage subsystem
JPH10269030A (ja) 1997-03-25 1998-10-09 Hitachi Ltd 遠隔ファイル共用システムおよびその制御方法
JPH10320352A (ja) 1997-05-21 1998-12-04 Nec Gumma Ltd バスマスタ転送システム
US20090259817A1 (en) * 2001-12-26 2009-10-15 Cisco Technology, Inc. Mirror Consistency Checking Techniques For Storage Area Networks And Network Based Virtualization
JP2003241905A (ja) 2002-02-15 2003-08-29 Hitachi Ltd 記憶装置、データ記憶方法及び制御装置
JP2007328611A (ja) * 2006-06-08 2007-12-20 Hitachi Ltd ストレージ仮想化システム及び方法
JP5106913B2 (ja) * 2007-04-23 2012-12-26 株式会社日立製作所 ストレージシステム、ストレージシステム管理方法、及び計算機システム
JP5217513B2 (ja) 2008-03-04 2013-06-19 株式会社リコー 情報解析処理方法、情報解析処理プログラム、情報解析処理装置、情報登録処理方法、情報登録処理プログラム、情報登録処理装置、情報登録解析処理方法、および情報登録解析処理プログラム。
US8335899B1 (en) * 2008-03-31 2012-12-18 Emc Corporation Active/active remote synchronous mirroring
JP5072692B2 (ja) 2008-04-07 2012-11-14 株式会社日立製作所 複数のストレージシステムモジュールを備えたストレージシステム
JP4584328B2 (ja) * 2008-09-18 2010-11-17 株式会社日立製作所 記憶管理方法及び計算機システム
CN102859499B (zh) * 2010-04-30 2015-11-25 株式会社日立制作所 计算机系统及其存储控制方法
US8635420B2 (en) * 2010-07-22 2014-01-21 Susan Elkington Resilient mirroring utilizing peer-to-peer storage
US8521974B2 (en) * 2010-11-23 2013-08-27 International Business Machines Corporation Migration of data in a distributed environment
US8566635B2 (en) * 2011-01-21 2013-10-22 Lsi Corporation Methods and systems for improved storage replication management and service continuance in a computing enterprise
US8782358B2 (en) * 2011-04-27 2014-07-15 International Business Machines Corporation Transparent input / output switching between synchronously mirrored storage volumes
US9021223B2 (en) * 2011-07-22 2015-04-28 Xiotech Corporation Resilient mirroring
WO2014061054A1 (en) * 2012-10-15 2014-04-24 Hitachi, Ltd. Storage system and method of controlling storage system
US9280396B2 (en) * 2012-11-01 2016-03-08 Netapp, Inc. Lock state synchronization for non-disruptive persistent operation

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050147132A1 (en) 2004-01-07 2005-07-07 Takashi Asako System and method for data multiplexing
US20070050547A1 (en) 2005-08-25 2007-03-01 Hitachi, Ltd. Storage system and storage system management method
US20070050573A1 (en) 2005-09-01 2007-03-01 Hiroshi Arakawa Storage system for copying data and storing in a plurality of storage devices
US20090228671A1 (en) 2008-03-04 2009-09-10 Takeshi Shigemura Storage apparatus and control method thereof
US20090271582A1 (en) 2008-04-28 2009-10-29 Hitachi, Ltd. Information System and I/O Processing Method

Also Published As

Publication number Publication date
DE112014006605T5 (de) 2017-01-05
US8943286B1 (en) 2015-01-27
US9632701B2 (en) 2017-04-25
JPWO2015162663A1 (ja) 2017-04-13
JP5620614B1 (ja) 2014-11-05
CN106133676A (zh) 2016-11-16
US20150012704A1 (en) 2015-01-08
CN106133676B (zh) 2019-05-17
GB2539829A (en) 2016-12-28
WO2015162663A1 (ja) 2015-10-29
GB201614731D0 (en) 2016-10-12
GB2539829B (en) 2021-05-05

Similar Documents

Publication Publication Date Title
DE112014006605B4 (de) Speichersystem
DE112011103666B4 (de) Speicherverwaltung in Cluster-Datenverarbeitungssystemen
DE102004028808B4 (de) Speichersystem, das mit einem externen Speichersystem verbunden ist und Verfahren zum Verbinden derartiger Systeme
DE69724834T2 (de) System für hochverfügbare datenspeicherung mit allgemein-adressiertem speicher
DE102004064069B4 (de) Plattenarrayvorrichtung
DE602004005344T2 (de) Verfahren, system und programm zur handhabung eines failover zu einem fernspeicherort
DE112014006156B4 (de) Speichersystem und Datenmigrationsverfahren
DE112013001421B4 (de) Auf Richtlinien beruhendes Verwalten von Speicherfunktionen in Datenreplikationsumgebungen
DE10014448B4 (de) Speicherverwaltungssystem
DE112013006643B4 (de) Speichersystem und steuerungsverfahren für speichersystem
DE69907776T2 (de) Verfahren und Vorrichtung zur Identifizierung gefährdeter Bauteile in einem System mit redundanten Bauteilen
DE69938378T2 (de) Kopieren von Daten in Speichersystemen
DE60034327T2 (de) Verfahren und systeme zur implementierung von verwaltungsfunktionen für gemeinsam genutzte plattenanordnungen
DE69636663T2 (de) System und Verfahren zur Zugriffsverteilung von Mehrfachspeichermatrixen zwischen Mehrfachwirtrechnersystemen
DE112013005903T5 (de) Speichersystem und Speichersteuerungsverfahren
DE112013005758T5 (de) Verfahren und Vorrichtung zur Notfallwiederherstellungsvirtualisierung
DE102013209528A1 (de) Benutzergesteuerte Replikation in einem System für synchronisierte Objektreplikationen
DE112013006549T5 (de) Computersystem und Datensteuerverfahren
DE112015000710T5 (de) Verteiltes Speichersystem
DE112012000929T5 (de) Transparente Eingabe/Ausgabe-Umschaltung zwischen synchron gespiegelten Speicherdatenträgern
DE102005006176A1 (de) Transaktionsverarbeitungs-Systeme und -Verfahren, die einen Nicht-Platten-Dauerspeicher verwenden
DE60313468T2 (de) Speicherdienste und -systeme
DE102012215918A1 (de) Spiegeln virtueller Maschinen von einem primären auf einen sekundären Host
DE112012000282B4 (de) Anwendungswiederherstellung in einem Dateisystem
DE602004007884T2 (de) Speichersteuerungssystem und -Verfahren

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

R082 Change of representative

Representative=s name: MANITZ FINSTERWALD PATENT- UND RECHTSANWALTSPA, DE

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final