DE3853503T2 - Verfahren und Vorrichtung zur Instandhaltung von Duplexpaarverteilten Geräten mittels einer Doppelkopiefunktion. - Google Patents

Verfahren und Vorrichtung zur Instandhaltung von Duplexpaarverteilten Geräten mittels einer Doppelkopiefunktion.

Info

Publication number
DE3853503T2
DE3853503T2 DE19883853503 DE3853503T DE3853503T2 DE 3853503 T2 DE3853503 T2 DE 3853503T2 DE 19883853503 DE19883853503 DE 19883853503 DE 3853503 T DE3853503 T DE 3853503T DE 3853503 T2 DE3853503 T2 DE 3853503T2
Authority
DE
Germany
Prior art keywords
data storage
data
storage device
controller
storage devices
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE19883853503
Other languages
English (en)
Other versions
DE3853503D1 (de
Inventor
Brent C Beardsley
Blaine H Berger
Lawrence Herbert Boulia
Bret P Smith
Robert Haver Vosacek
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE3853503D1 publication Critical patent/DE3853503D1/de
Application granted granted Critical
Publication of DE3853503T2 publication Critical patent/DE3853503T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/122Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware performs an I/O function other than control of data transfer
    • 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/2082Data synchronisation
    • 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/2087Error 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 with a common controller
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/74Masking faults in memories by using spares or by reconfiguring using duplex memories, i.e. using dual copies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/006Identification
    • 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/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • 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

Landscapes

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

Description

  • Diese Erfindung bezieht sich allgemein auf Verbesserungen in Datenspeichergeräten für die Eingabe und Ausgabe von Informationen in ein Datenverarbeitungssystem und im einzelnen auf eine Doppelkopiefunktion in einem Plattenspeichergerät. Alle auf das primäre Speichergerät geschriebenen Daten werden auch auf ein zweites Speichergerät geschrieben. Zur Verwaltung der zu aktualisierenden Datensätze und ihrer Speicherplätze auf dem physikalischen Medium werden Tabellen verwendet. Zur Speicherung der Status- und Gerätekennungsinformationen auf einer Statusspur jedes Datenspeichergeräts und an einer anderen Stelle wird eine Status-Anordnung verwendet, um ein globales Erkennen und Verwalten von austauschbaren Datenspeichergeräten bereitzustellen.
  • In den vergangenen Jahren nahm die Zahl der Online- Arbeitsplätze immer mehr zu; es wurde die verteilte Verarbeitung entwickelt und die Informationstechnologie in vielen neuen Anwendungsbereichen wurde immer schneller. Dies führte zu einer immer stärkeren Verwendung von Online-Datenbanksystemen und einer wachsenden Nachfrage nach höherer Speicherkapazität und größerer Zuverlässigkeit und Flexibilität der Datenspeichereinrichtungen.
  • Prinzipien wie Selbstprüfung, Redundanz, Überprüfung zwischen verschiedenen Informationsquellen mittels Querprüfung und ähnliches sind in der Technik gut bekannt, besonders seit dem Aufkommen komplexer digitaler Computersysteme, die zum Beispiel für die Prozeß oder Überwachungssteuerung verwendet werden. Ein Beispiel eines solchen Systems wird in der U.S. Patentschrift 4,032,757 an Eccles erläutert, in der für den kontinuierlichen Vergleich der in jedem Computer stattfindenden Ereignisse ein Paar von Kanälen verwendet wird. Der konstante Vergleich erlaubt es dem zusätzlichen Prozessor, bei Ausfall des anderen Prozessors die Prozeßsteuerung schnell zu übernehmen. Das Problem bei dieser Methode ist die Zeit, die der zusätzliche Prozessor benötigt, bis er nach einem Ausfall des anderen Prozessors mit der Verarbeitung beginnen kann. In kritischen Prozessen, wie zum Beispiel bei einem Kernkraftwerk, kann jede zeitliche Verzögerung inakzeptabel sein. Ein weiterer Ansatz wird in der U.S. Patentschrift 4,270,168 an Murphy et al. vorgestellt; hierin wird eine Vielzahl von Prozessoren, Selbstprüfungen und eine gemeinsame Antwortprüfung verwendet, um sicherzustellen, daß jeder Prozessor bei einem Ausfall die Arbeit des anderen Prozessors in Realzeit übernehmen kann. Die mit diesen Systemen erreichte größere Zuverlässigkeit ist eine Lösung mit einer speicherresidenten Anwendung, die aber nicht in der Lage ist, eine große Datenbankanwendung mit mehreren Datenspeichereinrichtungen abzuwickeln.
  • Die allgemein übliche Konfiguration eines Datenverarbeitungssystems umfaßt im typischen Fall einen oder mehrere Host-Prozessoren, einen Speicher und verschiedene Peripherie-Einheiten. Zu den Peripherie-Einheiten gehören Terminals, Drucker, Kommunikationseinrichtungen und Datenspeichereinrichtungen (DASD). Wir beschäftigen uns hier mit der Steuerung, welche die Informationen auf der DASD einer Datenbankanwendung bereitstellt, die im Speicher des Host-Prozessors resident ist. Ein gutes Beispiel für Lösungsmöglichkeiten mit dieser Art von Verarbeitung nach dem bisherigen Stand der Technik wird in der U.S. Patentschrift 3,999,163 an Levy et al., der U.S. Patentschrift 4,067,059 an Derchak und der U.S. Patentschrift 4,189,769 an Cook et al. vorgestellt. Diese Patente zeigen verschiedene Möglichkeiten, einen Host in die Lage zu versetzen, in einer DASD residente Informationen zu verarbeiten. Obwohl die beschriebenen Produktionssysteme sich gut für Datenbankanwendungen eignen, fehlt ihnen die Fähigkeit, Statusinformationen bei ausgeschaltetem Strom in einer Umgebung zu speichern, die geeignet ist, eine hohe Verfügbarkeit der DASD-Informationen bereitzustellen.
  • In einem bekannten Datenverarbeitungssystem überträgt eine Speicher-Steuerschaltung, die an jede einer Vielzahl von Speicherbanken angeschlossen ist, selektiv die Inhalte einer beliebigen ersten Speicherbank zu einer ausgewählten zweiten Speicherbank, und zwar in der Weise, daß beim Schreiben in eine erste Speicherbank die nutzende Schaltung den Inhalt in eine zweite Speicherbank überträgt, wodurch ein Informationsverlust verhindert wird. Ein Beispiel eines solchen Systems wird in der U.S. Patentschrift 3,866,182 an Yamada et al. erläutert.
  • Die vorliegende Erfindung stellt eine Methode bereit zur Verwaltung eines ersten und eines zweiten Datenspeichergeräts in einem Datenverarbeitungssystem, das über ein Host-System verfügt, einen angeschlossen Controller, der einen Satz von an einen Cache-Speicher angeschlossenen Speicherpfaden aufweist, einen Controller für das Datenspeichergerät, einen nichtflüchtigen Speicher und einen Speicher, der eine gemeinsame Anordnungs-Struktur enthält, die eine Datenübersetzungstabelle und eine Statustabelle umfaßt, wobei der Controller für das Datenspeichergerät Anschlußmittel für eine Vielzahl von Strings von Datenspeichergeräten umfaßt, wobei jedes der Datenspeichergeräte eine Vielzahl von Datensätzen, eine Vielzahl von Spuren und eine Geräte-Statusspur umfaßt, auf der eine Rekonfigurationszahl, eine Geräte-Kennummer und eine Controller-Kennummer aufgezeichnet sind, wobei die Statustabelle in der gemeinsamen Anordnungs-Struktur Mittel zum Speichern der Rekonfigurationszahl, der Geräte-Kennummer und der Controller-Kennummer für jedes der Datenspeichergeräte umfaßt.
  • Die Methode umfaßt folgende Schritte: Zuordnen einer vorbestimmten Anzahl von Bits für jeden in dem ersten und zweiten Datenspeichergerät gespeicherten Datensatz zur Kennzeichnung von Veränderungen an den Datensätzen; Speichern einer Zellennummer auf einem Stapel, welche die genannte vorbestimmte Anzahl von Bits für jeden Satz von dem ersten Speichergerät enthält, wobei die genannte Zellennummer ein vorbestimmtes Bit-Feld ist, das einen Datensatz auf den genannten Datenspeichergeräten bezeichnet; periodisches Prüfen des Stapels, um eine Gruppe von Datensätzen zu erkennen, die sich geändert hat, und Schreiben der Gruppe von geänderten Datensätzen in das zweite Datenspeichergerät, wodurch das erste und zweite Datenspeichergerät so verwaltet werden, daß die Kopien der darin gespeicherten Datensätze identisch gehalten werden.
  • Die Erfindung bezieht sich außerdem auf ein Datenverarbeitungssystem zur Verwaltung eines ersten und eines zweiten Datenspeichergeräts, welches ein Host-System mit einer Vielzahl von Kanälen enthält, einen Controller, der an mindestens einen der Kanäle angeschlossen ist und einen Satz von Speicherpfaden umfaßt, wobei jeder Speicherpfad auf einen Cache- Speicher zugreifen kann, einen Controller für ein Datenspeichergerät, einen nichtflüchtigen Speicher, und einen Speicher, der eine gemeinsame Anordnungs-Struktur enthält, die eine Datenübersetzungstabelle und eine Statustabelle aufweist, und eine Vielzahl von Strings von Datenspeichergeräten, die an den Controller des Datenspeichergeräts angeschlossen sind, wobei jedes Datenspeichergerät eine Vielzahl von Datensätzen, eine Vielzahl von Spuren und eine Geräte-Statusspur umfaßt, auf der eine Rekonfigurationszahl, eine Geräte-Kennummer und eine Controller-Kennummer aufgezeichnet sind, wobei die gemeinsame Anordnungs-Struktur des Controllers Mittel umfaßt für die Speicherung der Rekonfigurationszahl, der Geräte-Kennummer und der Controller-Kennummer für jedes der Datenspeichergeräte, Mittel für die Zuordnung einer vorbestimmten Anzahl von Bits für jeden Datensatz, der in dem ersten und zweiten Datenspeichergerät gespeichert ist, um Veränderungen an den Datensätzen zu erkennen, Mittel zum Speichern einer Zellennummer, welche die vorbestimmte Anzahl von Bits für jeden der Datensätze von dem ersten Datenspeichergerät umfaßt, auf einem Stapel, wobei die genannte Zellennummer ein vorbestimmtes Bit-Feld ist, welches einen Datensatz auf den genannten Datenspeichergeräten bezeichnet, Mittel für das periodische Prüfen des genannten Stapels zur Erkennung einer Gruppe von Datensätzen, die sich geändert haben, und Mittel zum Schreiben der Gruppe von geänderten Datensätzen in das zweite Datenspeichergerät, wodurch das erste und zweite Datenspeichergerät so verwaltet werden, daß die Kopien der darin gespeicherten Datensätze identisch gehalten werden.
  • Es wird also eine Möglichkeit bereitgestellt, Felder auf einem Datenspeichergerät eindeutig zu identifizieren, mit dem Zweck, die Information auf einem anderen Medium zu duplizieren. Außerdem wird ein primäres und ein sekundäres Datenspeichergerät verwendet, um die Doppelkopie-Umgebung zu implementieren. Durch eine Verwaltungseinrichtung wird das sekundäre Gerät nur mit den Feldern aktualisiert, die sich in dem primären Gerät verändert haben. Außerdem wird eine Methode zur Anwendung der Datenspeichergeräte verwendet, um wichtige Statusinformationen für Integritätszwecke nichtflüchtig zu halten.
  • Die vorliegende Erfindung soll weiter unter Bezugnahme auf ein Ausführungsbeispiel sowie auf ein Beispiel nach dem bisherigen Stand der Technik und anhand der beiliegenden Zeichnungen beschrieben werden; es zeigt:
  • Figur 1 ein Blockdiagramm mit einem Datenspeichersystem nach dem bisherigen Stand der Technik aus der U.S. Patentschrift 4,207,609;
  • Figur 2 ein stark vereinfacht es Blockdiagramm mit den Grundelementen des neuen Datenspeichersystems;
  • Figur 3 ein Blockdiagramm mit den Teilen der gemeinsamen Anordnungs-Struktur;
  • Figur 4 ein Flußdiagramm, das den Fluß der Datenspeicheranforderung vom Host zum Speichersystem und zurück darstellt; und
  • Figur 5 ein Flußdiagramm, das die Erzeugung des Zellennummernstapels im Controller-Speicher zeigt.
  • Im folgenden wird eine Methode zur besseren Verwaltung von Datenspeichergeräten und den auf ihnen gespeicherten Daten beschrieben. Status- und Identifizierungsinformationen werden auf den Datenspeichergeräten und einem Sicherungsmedium gespeichert, um sicherzustellen, daß die Informationen gespeichert werden, wenn es zu einem Stromausfall oder zu einem anderen Versagen der Geräte kommt, und um zu überprüfen, ob die richtigen physikalischen Einrichtungen noch an die Controller angeschlossen sind, wenn das Datenspeichergerät den Betrieb wieder aufnimmt.
  • Wenden wir uns nun den Zeichnungen und insbesondere Figur 1 zu; hier wird ein typisches Datenspeichersystem nach dem bisherigen Stand der Technik dargestellt. Figur 1 zeigt eine Konfiguration mit mehreren CPUs und gemeinsam genutzter DASD entsprechend der U.S. Patentschrift 4,207,609, die an den Rechtsnachfolger dieser Erfindung übertragen wurde. Drei CPUs 1, 3 und 4, nachfolgend mit den römischen Ziffern als CPU I, CPU II und CPU III bezeichnet, werden in geeigneter Weise mit einem Paar von Steuereinheiten 21 und 23, nachfolgend als CU I und CU II bezeichnet, über Gegenkanäle miteinander querverbunden. Hierbei schließt CPU I an die vier Kanäle 5, 7, 8 und 10 an; CPU II schließt an die beiden Kanäle 9 und 12 an und CPU III schließt an die beiden Kanäle 14 und 16 an. Die Kanäle 1 und 2 von CPU I enden in den Ports a und b der CU I, während die Kanäle 3 und 4 der CPU I in den Ports e und f der CU II enden. Kanal 1 von CPU II endet im Port c von CU I, wobei der Kanal 2 von CPU II bei Port g an die CU II anschließt. Kanal 1 von CPU III schließlich treibt den Port d der CU I an, wobei der Kanal 2 von CPU III den Port H von CU II antreibt. CU I und CU II schließen an die Einrichtungen 53 über die DASD-Controller 27 und 29 an, über eine Anforderungs-/Antwortschnittstelle, welche Leitungen für die Identifizierungskennzeichen und Datenleitungen umfaßt. Die Schnittstelle zwischen CU I und dem DASD-Controller 27 umfaßt die Leitungen für Identifizierungskennzeichen, 65, und die Dateneingangs-/-ausgangsleitungen 57 und 59. Ähnlich wird die CU II über die Identifizierungskennzeichnen-Leitungen 67 und die Dateneingangs-/und -ausgangspfade 61 und 63 an den DASD- Controller 29 gekoppelt.
  • Die Anforderungs-/Antwortschnittstelle ist eine Schnittstelle, bei der das abgehende Identifizierungskennzeichen die Informationen auf der abgehenden Datenleitung und gegenüber identifiziert und auswertet. Hierbei arbeitet jede CPU/Steuereinheit/Gerät zueinander asynchron, wobei die Richtungssteuerung von oben nach unten erfolgt. Eine aktive Verbindung zwischen den Elementen zur Ausführung von Operationen ist für längere Zeiträume nur dann notwendig, wenn Daten von einem Gerät zu einem Kanal oder von einem Kanal zu einem Gerät übertragen werden müssen. In allen anderen Fällen können Tasks oder Operationen im Wartebetrieb ausgeführt werden.
  • Auf die Geräte 53 wird entweder vom DASD-Controller 27 oder vom DASD-Controller 29 zugegriffen. Der DASD-Controller 27 umfaßt die Anschlußlogik 39 und den Sequenz-Controller 41, der die Geräte 53 über den Pfad 55 koppelt. Entsprechend enthält der DASD-Controller 29 die Anschlußlogik 47 und den Sequenz-Controller 49, um die Geräte 53 über den Pfad 51 zu bedienen.
  • Zwischen den DASD-Controllern 27 und 29 befindet sich angrenzend der dynamische Weggebespeicher 25'. Dieser Speicher enthält die Abbildung der Netzwerktopologie und die erforderlichen Kontextinformationen, die von den CUs für die Verwaltung der Verbindung zwischen den CPUs und den anderen Geräten verwendet werden. Der Speicher 25' umfaßt ein Paar von Direktzugriffsspeichern (RAM) 43 und 45, auf die von den beiden CUs über die entsprechende Anschlußlogik zugegriffen wird. Die CU I kann zum Lesen, Schreiben oder Aktualisieren über die Anschlußlogik 39, Pfad 67, auf den RAM 43 und 45 zugreifen. Die CU II hat gemeinsamen Zugriff auf die RAMs über die Anschlußlogik 47 und den Pfad 65. Die Operationen für den Zugriff auf die Geräte 53, die das Auswählen und Positionieren elektromechanischer Elemente beinhalten, wie zum Beispiel der Kopf-Platten-Arm-Baugruppe an den Direktzugriffsspeicher-Einrichtungen 0-4, werden über Befehle und Parameter geregelt, die von der Steuereinheit über die Anschlußlogik und den Sequenz-Controller gesendet werden. Ein Beispiel für die Host-CPUs ist der IBM-3090-Prozessor. Der IBM 3090 ist ein System mit kompatiblem Wachstum, bei dem als Betriebssystem entweder Multiple Virtual Storage/Extended Architecture (MVS/xA) oder Virtual Machine (VM) verwendet wird. Das Betriebssystem steuert den Datenfluß zum/vom Hauptspeicher und stellt eine mit dem System/370 kompatible Anwendungsumgebung bereit. Der IBM- 3090-Prozessor wird ausführlicher in der IBM-Publikation 3090 Processor Complex Installation Manual - Physical Planning, GC22-7074, beschrieben. Ein Beispiel für einen DASD-Controller 27 und 29 ist der DASD-Controller IBM 3880, Modell 23. Das Modell 23 des IBM 3880 umfaßt einen Hochgeschwindigkeits- Cache-Speicher und zwei Speicherdirektoren 41 und 49, jeder mit einem getrennten Speicherpfad für die unabhängige Steuerung der angeschlossenen DASD-Einrichtungen 53. Der IBM-3880- Controller, Modell 23, wird in der IBM-Publikation IBM 3880 Storage Control Model 23 Description, GA32-0082, beschrieben. Ein gutes Beispiel für die DASD-Einrichtungen 0-3 ist der IBM 3380, der über eine Kopf-Platten-Baugruppe (HDA) mit festem Medium verfügt, welche die Köpfe, Platten und Zugriffsmechanismen (Zugriffsarme) in einem versiegelten Gehäuse enthält. Jede 3380-Einheit enthält zwei HDAs. Innerhalb jeder HDA gibt es zwei unabhängige bewegliche Zugriffsarme. Jeder Zugriffsarm hat seine eigene Adresse, die von den CPUs wählbar ist. Ein String von DASDs, die an einen 3880-Speicherdirektor angeschlossen ist, kann vier Einheiten enthalten (sechzehn Zugriffsarme). Eine ausführlichere Beschreibung des DASD IBM 3380 findet sich in der IBM-Publikation 3380 Description and User's Guide, GA26-1664.
  • Zum Verständnis der vorliegenden Erfindung müssen einige den Betrieb betreffende Einzelheiten eines DASD-Systems nach dem bisherigen Stand der Technik erörtert werden. Wenn von der Host-CPU Informationen angefordert werden, so geschieht dies durch Anforderung eines bestimmten Kanals, eines bestimmten Controllers und eines bestimmten DASD-Zugriffsarms. Die Nummer des Kanals ist eine ein Byte lange hexadezimale Zahl, der Controller ist eine vier Bit lange hexadezimale Zahl und die Nummer des DASD-Zugriffsarms ist eine vier Bit lange hexadezimale Zahl. Würde zum Beispiel vom Host eine zwei Byte lange hexadezimale Adresse 0111 in einer Starteingabe/-ausgabeoperation (E/A) gesendet, würde sich der Zugriffsarm Eins, der an den Controller Eins angeschlossen ist, welcher wiederum an den Kanal Eins angeschlossen ist, für E/A vorbereiten und dem Host-CPU ein Bereitschaftssignal senden. Da die Abbildung nach unten und zurück gleich ist, kann das ursprüngliche Transaktions-Kopfetikett verwendet werden, um den Pfad zurück zum Host zu bestimmen. Jedes auf die DASD zugreifende Host- Programm könnte das oben beschriebene Kopfetikett senden, um den gewünschten DASD-Zugriffsarm eindeutig zu definieren.
  • Wenden wir uns nun der Figur 2 zu, welche ein Diagramm mit den Grundelementen des neuen Datenspeichersystems zeigt. Die Grundstruktur ist der in Figur 1 sehr ähnlich. Eine Host- CPU 110 ist über ihre Kanäle 120 an einen DASD-Controller 160 angeschlossen, welcher an zwei DASD-Strings 70 und 75 angeschlossen ist. Informationen werden über den beschriebenen Pfad an den Host weitergegeben. Als Unterschied zwischen der Anordnung nach dem bisherigen Stand der Technik und der beschriebenen Anordnung ist der Status des Subsystems zu nennen, das Informationen enthält, die zur Verwaltung des Datenspeichersystems und des nichtflüchtigen Speichers 220 dienen. Der DASD-Controller 160 enthält außerdem bei 95 einen EPROM- Bereich mit vitalen Produktdaten. Der Bereich der vitalen Produktdaten enthält Zeiger zur globalen Statusspur.
  • Die gemeinsame Anordnungs-Struktur (JAS) 200 dient zur Konservierung des Hosts für die DASD-Schnittstelle und zur Implementierung der Doppelkopiefunktionen mit hoher Verfügbarkeit. Die Doppelkopiefunktion bewirkt eine bessere Datenverfügbarkeit und Zuverlässigkeit, indem zwei identische Datenträgerkopien, Duplex-Paar genannt, gepflegt werden, und zwar auf zwei physikalisch getrennten DASD-Einheiten, zum Beispiel dem primären Datenspeichergerät 70 und dem sekundären Datenspeichergerät 75. Die Doppelkopie hat eine erste Kopie der Daten, die als Primärkopie bezeichnet wird, und eine zweite Kopie, die als Sekundärkopie bezeichnet wird.
  • Nachdem das Duplex-Paar eingerichtet ist, stellt der DASD- Controller 160 ein Bild des Duplex-Paares bereit, unter Verwendung der in der JAS 200 als einem einzelnen Datenträger mit hoher Verfügbarkeit gespeicherten Steuerinformationen. Bei einer einzelnen Schreibanforderung werden beide Datenträger des Duplex-Paares aktualisiert. Eine einzelne Leseanforderung an ein Doppelkopie-Datenspeichergerät wird entsprechend der normalen Cache-Algorithmen abgewickelt, es sei denn, die Daten sind nicht im Cache-Speicher vorhanden; dann versucht der Controller, die Daten von dem Primärgerät zu lesen. Lesevorgänge, die beim Primärgerät nicht stattfinden können, werden beim Sekundärgerät des Duplex-Paares nochmals versucht.
  • Ein weiteres für diese Erfindung einmaliges Merkmal ist der nichtflüchtige Speicher 220. Die Doppelkopiefunktion benötigt für ihren Betrieb den nichtflüchtigen Speicher 220. Der nichtflüchtige Speicher dient zum Speichern von übertragenen Daten, so daß vom Subsystem der Abschluß einer Schreiboperation signalisiert werden kann, bevor die eigentliche Schreiboperation bei der DASD bekannt wird. Mit dieser Funktion werden auch Informationen bereitgestellt, die für die Resynchronisierung der beiden Datenträger eines Doppelkopiepaares benötigt werden, wenn bei einem Fehler eine Reparatur erfolgte.
  • Die JAS 200 konserviert die Host-Schnittstelle, indem das oben beschriebene Host-Standard-Kopfetikett nach dem bisherigen Stand der Technik, das in Figur 1 dargestellt ist, durch Verwendung eines Paares von Übersetzungstabellen in den eigentlichen physikalischen DASD-Zugriffsarm übersetzt wird. Die erste Tabelle dient zur Übersetzung der Zugriffsarmadresse, die zweite Tabelle dient zur Uebersetzung der Zurück- zum-Host-Adresse. Die gemeinsame Anordnungs-Struktur wird in Figur 3 dargestellt. Sie umfaßt einen vierundsechzig Byte großen Bereich zur Unterstützung der Geräteadresse-Übersetzung. Die JAS 200 enthält außerdem gerätebezogene Betriebsdaten 300, Arbeitssteuerelemente 310, Sperrstrukturen 320 und Subsystem-Statusinformationen 330.
  • Ein Spiegelbild der oben aufgeführten Steuer- und Statusinformationen ist in der anderen Hälfte 340 der JAS 200 redundant enthalten. Die Subsystem-Statusinformation 330 enthält den Globalstatus und die Geräteadreßübersetzung. Durch die Geräteadreßübersetzung wird die Adressen-Nachschlagfähigkeit zur Verfügung gestellt, die erforderlich ist, um die System-Schnittstelle zu konservieren und trotzdem die Doppelkopiefunktion, den nichtflüchtigen Speicher und den globalen Subsystemstatus auszunutzen. An einem Beispiel soll die Verwendung der Adressenübersetzungstabelle erläutert werden. In Figur 4 hat eine Host-Anwendung den E/A-Start eines Zugriffsarms dreizehn 400 angefordert. Diese Anforderung geht über den Kanal ab an den Speichersystem-Controller 410, wo auf das dreizehnte Byte der dreiundsechzig Byte langen Adressentabelle 420 zugegriffen wird, um die tatsächliche Adresse des tatsächlichen Zugriffsarms zu erhalten, zu dem die Host- Adresse dreizehn übertragen wird. Die tatsächliche Zugriffsarmadresse ist also dreiundzwanzig, wie bei 425 gezeigt; so wird der Zugriffsarm dreiundzwanzig für E/A vorbereitet und sendet bei 430 ein E/A-Bereitschaftssignal zurück. Um jedoch zu bestimmen, wohin das Signal gesendet werden soll, muß in der Rückadressentabelle der Datenadreßübersetzung bei 440 die Rückadresse nachgeschlagen werden. Wie bei 450 angegeben, ist die Rückadresse dreizehn, und dieser Wert wird verwendet, um das E/A-Bereitschaftssignal zum Host bei 460 zurückzusenden. Die Verwendung und Initialisierung der Geräteadressen-Übersetzungstabellen wird weiter unten ausführlicher dargestellt.
  • Zum besseren Verständnis der Methode wird unter Anwendung der in Figur 2 vorgestellten Umgebung ein bevorzugtes Ausführungsbeispiel beschrieben. Ein erstes Datenspeichergerät in String 70 und ein zweites Datenspeichergerät in String 75 verfügen jeweils über eine dedizierte Statusspur für die Speicherung von Statusinformationen. Die dedizierte Statusspur kann von systemfremden Anwendungen nicht verwendet werden und speichert zwei Kopien des globalen Subsystemstatus für den Controller und das erste und zweite Datenspeichergerät. Das Speichersubsystem besteht aus dem Controller und den angeschlossenen Datenspeichergeräten. In unserem Beispiel besteht es aus dem einzelnen Controller 125 und den beiden Datenspeichergeräten 70 und 75.
  • Statusinformationen über das Subsystem werden bei Abschaltvorgängen durch zweimaliges Schreiben eines einzelnen Satzes von Status- und Identifizierungsinformationen auf die Statusspur jedes Speichergeräts gespeichert. Der globale Subsystemstatus wird außerdem auf dem ersten und zweiten Datenspeichergerät 70 und 75 gespeichert. Die Gerätekennung wird auf allen Geräten im Subsystem gespeichert, der globale Subsystemstatus wird jedoch nur auf den beiden globalen Datenspeichergeräten gespeichert. Der den globalen Subsystemstatus betreffende Teil des Datensatzes wird formatiert, jedoch nicht verwendet, wenn das Gerät nicht eines der beiden globalen Subsystem-Statusgeräte ist.
  • Der globale Statuszeiger enthält Adreßinformationen über die beiden Datenspeichergeräte und eine Zahl, die angibt, wie oft die Geräte neu zugewiesen wurden; diese Zahl wird beim Urladen verwendet, um zu bestimmen, welches die aktuellste Kopie des globalen Statuspaares ist. Der globale Statuszeiger soll nachfolgend noch ausführlicher beschrieben werden.
  • Der globale Subsystemstatus besteht aus den folgenden Informationen:
  • Dem globalen Statuszeiger, bei dem es sich um ein vier Byte großes Feld handelt, das die ein Byte große Adresse jedes Datenspeichergeräts enthält, einschließlich des ersten und zweiten globalen Datenspeichergeräts, und eine zwei Byte große Zahl, die angibt, wie oft sich die Definition der Datenspeichergeräte geändert hat. Der globale Status enthält den Status der Subsystemkomponenten, einen Cache-Speicher 145 und einen nichtflüchtigen Speicher 220, und die Geräte 70 und 75, wie sie durch Fehler- oder Systembefehle eingerichtet wurden.
  • Informationen über die Statusspur sind unterteilt in Gerätekennungs- und Statusinformationen. Die Gerätekennungsinformation soll gewährleisten, daß das angeschlossene DASD-Gerät dasjenige ist, das vom Subsystem erwartet wird. Die Statusinformation ist in zwei Informationstypen unterteilt: Subsystemstatus und Gerätestatus Der Subsystemstatus enthält Informationen, die sich nicht auf ein spezifisches Gerät, sondern vielmehr auf das gesamte Subsystem beziehen, wie zum Beispiel den globalen Statuszeiger, Informationen darüber, ob der Subsystemspeicher verfügbar ist oder nicht, und Informationen, mit denen die Integrität des nichtflüchtigen Speichers sichergestellt werden kann. Der Gerätestatus enthält Informationen, die zu einem spezifischen DASD-Gerät gehören, wie zum Beispiel die Kanaladresse, auf die das Gerät reagiert, ob das Gerät für Cache- oder Schnellschreiboperationen aktiv ist oder nicht, und den Duplexpaar-Status des Geräts. Andere Informationen sind in der Statusspur enthalten. Die oben genannten Beispiele sind Beispiele für die erkannten Informationen.
  • Wegen der besseren Verfügbarkeit werden die weiter oben besprochenen Informationen zum globalen Subsystemstatus auf zwei Geräten festgehalten. Bei jedem Gerät wird jedoch die entsprechende Gerätenummer geschrieben. Fällt ein Gerät aus, dient das andere zum Speichern der Information und das ausgefallene Gerät wird durch ein anderes betriebsbereites Gerät ersetzt.
  • Jeder Controller hat vitale Produktdaten, die zur Identifizierung und Erstellung von Informationen über die Merkmale der Hardware und der angeschlossenen Geräte gepflegt und verwendet werden. Die vitalen Produktdaten werden im EPROM jedes Controllers gespeichert, der bei 95 und 96 in Figur 2 dargestellt ist.
  • Die Informationen enthalten folgende Angaben:
  • Modelltyp
  • Konfiguration
  • Systemadapter und Systemadresse
  • Subsystem-Speicherkennung
  • Seriennummern für die Speichersteuerung
  • Subsystem-Speichergröße
  • Größe des nichtflüchtigen Speichers
  • Globaler Statuszeiger
  • Controller-Typ für jeden String
  • Maximale Anzahl der für jeden String konfigurierten Antriebe
  • Diese Information dient zur Initialisierung der JAS 200 im Controller 125, um die Konfiguration des aktuellen Systems wiederzugeben. In unserem Beispiel enthält die JAS 200 die Adressen, daß das Datenspeichergerät 70 und das Datenspeichergerät 75 dem Host 110 bekannt sind.
  • Wenn das Subsystem initialisiert ist, werden folgende Schritte ausgeführt:
  • Die Geräte durchlaufen ein Mikroprogramm-Urladen (IML), um einen betriebsfähigen Datenpfad zwischen den den Anschluß herstellenden Kanälen und den angeschlossenen Geräten einzurichten. Der Mikrocode des Speicherpfads (SP) wird vom IML- Gerät von der unterstützenden Einrichtung im Datenspeichergerät geladen. Ein SP 140 ist ein adressierfähiger unabhängiger Prozessor, der Daten zu einem Datenspeichergerät 70 oder 75 leitet. Um sicherzustellen, daß der Speicherpfad betriebsbereit ist, wird eine grundlegende Sicherstellungs-Testroutine durchgeführt. Dieser Prozeß wird für alle SPs 140 des Subsystems, die im Controller 125 stehen, koordiniert. Jeder SP 140 kann das IML unabhängig von den übrigen SPs durchführen. Bevor der Zugriff gestattet wird, ist die Adresse eines globalen Statusgeräts erforderlich. Ist ein IML-Gerätezeiger verfügbar, muß der letzte Zeiger mit dem verfügbaren Gerät beziehungsweise den verfügbaren Geräten übereinstimmen. Ist ein einziger IML-Gerätezeiger verfügbar, muß er auf ein Gerät mit identischen Zeigern zeigen. Der IML-Gerätezeiger muß nicht mit dem Gerätezeiger identisch sein.
  • Anschließend wird von jedem der beiden Speichergeräte 75 und 70 für die globalen Subsystemdaten die Anordnung des globalen Subsystemstatus gelesen. Wenn der gültige und der aktuelle globale Subsystemstatus identifiziert sind, wird der globale Subsystemstatus in beide Datenspeichergeräte geschrieben, damit sichergestellt ist, daß die Informationen beider Geräte konsistent sind. Wenn die Geräte verfügbar werden, werden die Gerätenummer und die Subsystem-Kennummer jedes Datenspeichergeräts gelesen und mit der globalen Status-Anordnung verglichen, um sicherzustellen, daß die korrekte Hardware angeschlossen ist und keine Übertragung stattgefunden hat. Nachdem dieser Prozeß abgeschlossen ist, werden dem Host die verfügbaren SPs 140 mitgeteilt und die normale Verarbeitung beginnt. Die Gerätekennung wird überprüft, um sicherzustellen, daß in dem nichtflüchtigen Speicher für ein Gerät hinterlassene Daten nicht auf das falsche Gerät angewendet werden, zum Beispiel aufgrund einer Geräte-Rekonfiguration nach Austausch eines Geräts.
  • Erlaubt die aktuelle Geräteverfügbarkeit eine Gerätekonfiguration mit einem besseren globalen Subsystemstatus, werden die Geräte unter Einhaltung der folgenden Regeln rekonfiguriert:
  • 1) die Geräte werden auf getrennte Strings gelegt;
  • 2) die Geräte werden auf getrennte Einheiten gelegt; und
  • 3) die Geräte werden auf getrennt Spindeln gelegt.
  • Die Geräte mit globalem Subsystemstatus werden auch dann vom Controller neu zugewiesen, wenn der Controller nur auf ein Gerät eines Gerätepaares zugreifen kann. Wenn aus einem der oben genannten Gründe eine Rekonfiguration des Systems notwendig ist, wird folgende Aktualisierungsreihenfolge eingehalten:
  • 1) Inkrementieren der Rekonfigurationszahl im globalen Statuszeiger, um anzuzeigen, daß eine Rekonfiguration stattgefunden hat.
  • 2) Der globale Subsystemstatus wird auf das neue globale Statusgerät geschrieben. Sein Status gibt das neue Paar wieder.
  • 3) Der globale Subsystemstatus wird in das alte, jedoch immer noch arbeitende globale Statusgerät geschrieben (im Falle der nicht funktionierenden Einheit).
  • 4) Der globale Statuszeiger wird in beiden vitalen Produktbereichen 95 und 96 des EPROM aktualisiert.
  • Das rekonfigurierte System ist nach Abschluß der oben beschriebenen Operationen optimal abgestimmt und betriebsbereit.
  • Wenn im Betrieb entweder bei dem primären oder dem sekundären Datenspeichergerät Anzeichen von Fehlern auftreten, ersetzt der Controller das fehlerhafte Gerät und kopiert den globalen Status in ein anderes Datenspeichergerät. Anschließend wird die Adresse dieses Datenspeichergeräts in der GeräteadressenÜbersetzung der JAS 200 als das sekundäre Speichergerät für die Doppelkopie ersetzt und das System setzt die Verarbeitung mit minimalem Einfluß auf den Host fort.
  • In Hinblick auf die Doppelkopiefunktion werden vier Zustände für das Datenspeichergerät definiert:
  • Simplex- oder "Einzelkopie"-Datenträger. Das Datenspeichergerät wird so behandelt, als ob es an ein Subsystem angeschlossen wäre, welches die Doppelkopiefunktion nicht bereitstellt. Es wird kein sekundäres Datenspeichergerät gepflegt. Alle Lese-/Schreibaktivitäten greifen nur auf das adressierte Datenspeichergerät zu.
  • Duplex- oder "Doppelkopie"-Datenträger. Die beiden Datenträger, der primäre und der sekundäre, werden als Duplex-Paar identifiziert. Nur auf das primäre Datenspeichergerät kann von den Host-Systemen direkt zugegriffen werden. Das sekundäre Datenspeichergerät weist alle direkt vom Host kommenden Aufrufe zurück, mit Ausnahme der Fehlerdiagnostik.
  • "Duplex anstehend" ist ein temporärer Zustand. Die beiden Datenträger, der primäre und der sekundäre, werden als ein Duplex-Paar identifiziert und das Subsystem legt eine Kopie an, um die beiden Geräte zu synchronisieren. Von den Host-Systemen ist ein direkter Zugriff nur auf das primäre Datenspeichergerät möglich. Das sekundäre Datenspeichergerät weist alle direkt vom Host kommenden Aufrufe zurück, mit Ausnahme der Fehlerdiagnostik.
  • "Duplex-Fehler" ist ein Fehlerzustand. Die beiden Datenträger, der primäre und der sekundäre, werden als ein Duplex- Paar identifiziert. Entweder wurde von einem angeschlossenen Host-System die Anforderung gegeben, daß das Subsystem keine weiteren Schreiboperationen für dieses Duplex-Paar duplizieren soll, oder der Controller hat festgestellt, daß er den Inhalt der beiden Datenträger nicht synchronisieren kann und hat Doppelschreiboperationen unterdrückt. In diesem Zustand wird im nichtflüchtigen Speicher eine Bit-map gepflegt, um die in diesem Modus geschriebenen Zylinder zu verfolgen. Das Subsystem beginnt bei Erkennung dieses Zustands mit den oben beschriebenen Wiederherstellungsoperationen.
  • Wenn sich das Duplex-Paar im vollen Duplex-Modus befindet, wird vom Controller sichergestellt, daß die beiden Datenträger identisch sind, indem er beide Datenträger bei jeder an das primäre Datenspeichergerät des Paares aus gegebenen Schreiboperation aktualisiert. Dieses doppelte Schreiben ist für die angeschlossenen Host-Systeme transparent. Die Doppelaktualisierung wird erreicht, indem das primäre Datenspeichergerät orientiert und eine Verzweigungsschreiboperation ausgeführt wird, und indem das primäre Datenspeichergerät aktualisiert wird und nur die Daten erfaßt werden, die benötigt werden, um die geschriebenen Daten auf dem zweiten Datenspeichergerät zu duplizieren.
  • Um nur die geänderten Felder in dem primären Datenspeichergerät zu aktualisieren, wird eine Methode zur eindeutigen Definition von Feldern auf einem Datenspeichergerät angewendet. Die Methode kennzeichnet alle geänderten Felder auf dem Datenspeichergerät. Wenn sich das Datenspeichergerät dreht, trifft der Schreib-/Lesekopf des Plattenantriebs auf Felder und kleine Lücken zwischen diesen Feldern. Die gesamte Verarbeitung muß während dieser Lücken zwischen den Feldern ausgeführt werden; andernfalls kommt es zu unnötigen Umdrehungen des Datenspeichergeräts (Überläufen), welche zu einer Leistungsminderung führen.
  • Jeder auf dem Datenspeichergerät gespeicherte Datensatz hat einen eindeutigen Bezeichner. Dieser wird als Zellennummer bezeichnet. Datensatz-Bezeichnungen können auf der Spur dupliziert werden, so daß sie keinen bestimmten Datensatz bezeichnen. Die Zellennummer ist die genaue Lage des Zählfeldes auf der Spur des Antriebs. Jeder Datensatz enthält drei Felder: das Zählfeld, das Schlüsselfeld und das Datenfeld. Die Zellennummer ist im Zählfeld in einem zwei Byte langen Zellennummernfeld gespeichert.
  • Wenn sich das Speichergerät dreht, werden die Zählfelder für jeden Datensatz auf der Spur vorgefunden. Jede Zellennummer von jedem Zählfeld wird auf einen Stapel im Controller geschoben. Die drei höherwertigen Bits in der Zellennummer werden entweder modifiziert oder gesetzt, je nachdem, welche Art von Schreiboperation vom Kanal oder vom Host angefordert wird. Im folgenden findet sich ein Beispiel eines Elements des Zellennummernstapels.
  • Das C-Bit eines Elements auf dem Zellennummernstapel ist das Zählbit, das K-Bit ist das Schlüsselbit, das D-Bit ist das Datenbit. Die Zellennummer ist ein dreizehn Bit großes Feld, welches den Datensatz auf dem Datenspeichergerät eindeutig bezeichnet. Der reservierte 4 Byte große Bereich ist für spätere Erweiterungen vorgesehen. Wenn entweder das Bit C, das Bit K oder das Bit D eingeschaltet ist, wird der Datensatz auf das sekundäre Datenspeichergerät kopiert.
  • Format-Schreibdaten modifizieren immer die Zählfelder und setzen das Zählbit C. Die Schlüssel- und Datenfelder werden gelegentlich modifiziert, wodurch ihre Bits gesetzt werden. Zum Beispiel bewirken Aktualisierungs-Schreibdaten nie eine Modifizierung der Zählfelder, jedoch eine Änderung der Schlüssel- und/oder Datenfelder. Diese Information wird in der Zellennummer auf dem Datenspeichergerät gesetzt und in den Stapel im Controller kopiert. Dieser Stapel stellt alle Informationen bereit, um alle modifizierten Felder auf dem primären Gerät in das sekundäre Gerät zu kopieren.
  • Die Methode zur Erstellung des Zellennummernstapels im Controller wird in dem Flußdiagramm der Figur 5 gezeigt. Der Stapel in diesem Ausführungsbeispiel wird im Controller-Speicher erstellt; der Fachmann wird jedoch erkennen, daß er auch in jedem anderen Speicherbereich gepflegt werden könnte. Wenden wir uns nun der Figur 5 zu; die Steuerung springt am Entscheidungsblock 500 ein, wo ein Test durchgeführt wird, um festzustellen, ob auf dem Datenspeichergerät ein Zählfeld vorgefunden wurde. Bei Funktionsblock 510 wird dann die Zellennummer des Zählfeldes vorübergehend gespeichert. Am Entscheidungsblock 520 wird ein Test durchgeführt, um festzustellen, ob das Zählfeld auf das Datenspeichergerät geschrieben wurde. Wenn dies der Fall ist, wird das Zählbit der Zellennummer bei Funktionsblock 530 auf "ein" gesetzt.
  • Der Steuerungsfluß geht anschließend weiter zum Entscheidungsblock 540, wo ein Test ausgeführt wird, um festzustellen, ob ein Schlüsselfeld vorgefunden wurde. Wurde ein Schlüsselfeld vorgefunden, wird bei 550 ein zweiter Test durchgeführt, um festzustellen, ob das Schlüsselfeld auf ein Datenspeichergerät geschrieben wurde. Wenn dies der Fall ist, wird das Schlüsselbit der Zellennummer bei Funktionsblock 560 auf "ein" gesetzt.
  • Der Steuerungsfluß geht anschließend weiter zum Entscheidungsblock 570, wo ein Test ausgeführt wird, um festzustellen, ob das Datenfeld vorgefunden wurde. Wurde ein Datenfeld vorgefunden, wird bei Entscheidungsblock 580 ein zweiter Test durchgeführt, um festzustellen, ob das Datenfeld auf ein Datenspeichergerät geschrieben wurde. Wenn dies der Fall ist, wird das Datenbit der Zellennummer bei Funktionsblock 590 auf "ein" gesetzt. Unabhängig davon, ob das Datenfeld geschrieben wurde oder nicht, wird der Feldeintrag bei Funktionsblock 600 gesichert. Die Information der Zellennummer wird auf dem Stapel an Funktionsblock 610 gespeichert.
  • Der Controller verwaltet das Erkennen und das Kopieren der veränderten Informationen auf das sekundäre Datenspeichergerät. Die modifizierten Datensätze werden vom Cache-Speicher auf die sekundäre Speichereinheit geschrieben. Der Informationstransfer erfolgt hier vom Cache-Speicher zum sekundären Speicher; ein durchschnittlicher Fachmann wird jedoch erkennen, daß zum Speichern der geänderten Informationen jedes Medium verwendet werden kann, auch das primäre Datenspeichergerät. Nach dem Informationstransfer zum zweiten Datenspeichergerät setzt der Controller einen Status, der anzeigt, daß er für die weitere Verarbeitung bereit ist.
  • Der Status "Duplex anstehend" der Doppelkopie sieht für den angeschlossenen Host genauso aus. Eingabe/Ausgabe (E/A)-Anforderungen an das Datenspeichergerät werden genauso abgewickelt wie im Duplex-Betrieb, jedoch mit folgenden Ausnahmen:
  • 1) Das Gerät, von dem kopiert wird, ist dasjenige, auf dem die E/A ausgeführt wird (das logisch primäre Gerät), wobei es sich sowohl um das primäre als auch das sekundäre Gerät handeln kann.
  • 2) Handelt es sich bei der E/A um einen Schreibvorgang und soll dieser auf einer Spur erfolgen, die bereits kopiert wurde, so wird sie genauso behandelt, wie im Duplex-Betrieb, mit der Ausnahme, daß das Gerät, auf das zuerst geschrieben wird, das Gerät ist, von dem kopiert wird.
  • 3) Handelt es sich bei der E/A um einen Schreibvorgang und soll dieser auf einer Spur erfolgen, die nicht kopiert wurde, wird nur das Gerät aktualisiert, von dem kopiert wurde. Die Kopie aktualisiert das Gerät, auf das kopiert wird, wenn es diese Spur erreicht.
  • 4) Eine Wiederherstellung der nicht erfolgreichen Leseoperationen von dem logisch sekundären Gerät wird nur dann versucht, wenn diese Spur bereits kopiert wurde.
  • 5) Ein schnelles Schreiben wird erst dann durchgeführt, wenn die Kopie abgeschlossen ist.
  • Wenn ein Duplex-Paar eingerichtet wird, wird das primäre Gerät des Paares in den deaktivierten Schnellschreib-Status gezwungen. Wenn eine Schnellschreiboperation gewünscht wird, kann diese spezifiziert werden, nachdem das Duplex-Paar eingerichtet wurde. Hat das primäre Gerät Schnellschreibaktivität, befindet sich das Paar im Schnellschreibmodus. Bei Cache-Fehlversuchen wird der normale Doppelkopie-Algorithmus verwendet. Bei Cache-Treffern wird folgende Prozedur ausgeführt:
  • 1) Die Daten vom Host werden in den Subsystem-Speicher und den nichtflüchtigen Speicher geschrieben.
  • 2) Dem Host wird umgehend "Gerät Ende" gemeldet, das Gerät bleibt jedoch betriebsbereit, bis die Daten zum primären Gerät ausgespeichert wurden.
  • 3) Die Daten im nichtflüchtigen Speicher geben die Daten im sekundären Gerät wieder.
  • 4) Bei einem Ausfall des sekundären Geräts werden alle Schnellschreibeinträge im nichtflüchtigen Cache-Speicher freigesetzt und alle Zylinder, die Einträge in dem nichtflüchtigen Cache-Speicher haben, erhalten die Markierung, daß sie nicht synchron sind. Für weitere Aktivitäten auf dem Datenträger sind Schnellschreiboperationen inaktiv.
  • 5) Bei einem Ausfall des primären Geräts werden die Einträge im nichtflüchtigen Cache-Speicher sofort zum sekundären Gerät ausgespeichert. Für weitere Aktivitäten auf dem Datenträger sind Schnellschreiboperationen inaktiv.
  • Der Controller gewährleistet eine hohe Verfügbarkeit, indem er zwei Kopien jedes gespeicherten Informationsteils pflegt.
  • Wenn entweder das primäre oder das sekundäre Datenspeichergerät ausfällt, kann der Controller das fehlerhafte Gerät effektiv ersetzen, die Informationen von dem arbeitenden Datenspeichergerät kopieren und die Doppelkopie ohne jeglichen Informationsverlust wieder in den synchronisierten Zustand zurückführen.
  • Die Leistungsvorteile von Schreiboperationen mit Cache-Speicher beschränken sich auf Operationen, bei denen die Daten im Cache-Speicher vorhanden sind. Im allgemeinen gehen alle Daten von Schreiboperationen direkt zum Datenspeichergerät und auch zum Cache-Speicher, damit die Daten auf einem nichtflüchtigen Medium aktuell gehalten werden. Durch das Schnellschreiben werden die Leistungsvorteile des Caching auf die Schreibbefehle ausgeweitet, ohne die Zuverlässigkeit oder die Verfügbarkeit der Daten, auf die zugegriffen wird, zu beeinträchtigen. Ohne das Schnellschreiben erfordern Schreiboperationen ein Zugreifen auf das Datenspeichergerät, um sicherzustellen, daß die bei einer Schreibanforderung gespeicherten Daten nicht durch einen Stromverlust beim Controller verlorengehen.
  • Damit das schnelle Schreiben funktioniert, muß folgende Umgebung vorhanden sein:
  • 1) Der nichtflüchtige Speicher muß im Controller verfügbar sein.
  • 2) Es muß ein Subsystem-Speicher verfügbar sein.
  • 3) Das Caching muß aktiv sein.
  • 4) Das Schnellschreiben muß für das betreffende Gerät aktiv sein.
  • 5) Das Datenspeichergerät muß ein Standardformat haben. Insbesondere muß es eine Standard-Datensatzlänge (Datensatz- Nullen) aufweisen und über eindeutige Datensatz-Kennungen verfügen.
  • Das Schnell schreiben gilt für alle Schreibtreffer und voraussagbare Schreiboperationen. Ein Schreibtreffer besagt, daß eine Gruppe von Datensätzen vorgefunden wird, die sich bereits in ihrer aktualisierten Form im Cache-Speicher befinden. Eine voraussagbare Schreiboperation ist eine Schreiboperation, die nur den vorformatierten Teil der Spur (Anfangskennsatz und Datensatz-Null) erfordert und keine Benutzerdaten benötigt. Das Schnellschreiben wird nicht auf Cache-Fehlversuche angewendet, da nicht garantiert werden kann, daß Befehle voraussagend sind (es kann zu eingebetteten Fehlersituationen kommen). Eingebettete Fehlersituationen müssen vor Abschluß der Befehlsaktivitäten erkannt und mitgeteilt werden, da sie im typischen Fall die Funktion beeinträchtigen, die durchgeführt werden soll. Beispiel: Vor der Unterstützung des indizierten Datenträger-Inhaltsverzeichnisses (VTOC) war für die Einfügung eines neuen Datensatzes auf einem Datenträger die Ausführung eines Befehls erforderlich, mit dem das gesamte VTOC nach einem Datensatz abgesucht wurde, dessen Name mit dem des hinzuzufügenden Datensatzes übereinstimmte. Wird ein solcher doppelter Datensatzname gefunden, wird der neue Datensatz nicht hinzugefügt; wird keine Doppelung gefunden, wird der neue Datensatz mit einem Folgebefehl angefügt. Der Befehl, mit dem nach einem doppelt vorhandenen Datennamen gesucht wird, beruht auf einem "kein Datensatz gefunden", um anzuzeigen, daß keine Doppelung vorhanden ist. Für diesen Fall muß "kein Datensatz gefunden" synchron zur Ausführung der Befehle eindeutig mitgeteilt werden
  • Zusätzlich muß bei einigen Befehlen das Zählfeld für einen Datensatz geprüft werden, um den Schlüssel und die Datenlängen der Datensätze, auf die zugegriffen wird, zu bestimmen. Der Dateninhalt einer Spur, auf die zugegriffen wird, muß geprüft werden, um festzustellen, welche Aktivität von dem auf die Spur zugreifenden Befehl ausgeführt werden soll.
  • Die Leistungsvorteile des Caching für Leseoperationen werden durch das schnelle Schreiben auf die Schreiboperationen ausgeweitet. Dies führt zu wesentlichen Verbesserungen sowohl bei der Durchsatzleistung als auch im Hinblick auf die Ansprechzeit. Die Datenintegrität, Datenverfügbarkeit und Datenzuverlässigkeit werden für das Schnellschreibsystem beibehalten. Zur Implementierung der Schnellschreibfunktion sind keine Änderungen an der Host-Software erforderlich.
  • Die Schnellschreibfunktion verwendet eine nichtflüchtige Speicher-Anordnung, um die Datenintegrität zu gewährleisten, ohne daß ein tatsächliches Schreiben auf das Datenspeichergerät durchgeführt wird. Jede Modifizierung von Daten wird an zwei Stellen im Controller gespeichert, bis die tatsächliche Aktualisierung des Datenspeichergeräts stattfindet. Eine Kopie wird im Controller-Speicher, die andere im nichtflüchtigen Speicher gepflegt. Zwei Kopien der Daten sind wichtig, damit eine Datenverfügbarkeit erreicht werden kann, die mit derjenigen von Standard-Datenspeichergeräten vergleichbar ist. Innerhalb des Controllers kann es zu Ausfällen kommen, die dazu führen können, daß der nichtflüchtige Speicher oder der Subsystem-Speicher für das Subsystem nicht zur Verfügung stehen. Wenn vom Subsystem nur eine Kopie der Datenmodifizierungen gepflegt würde, würde jeder Fehler, der dazu führt, daß die diese Daten enthaltende Anordnung nicht verfügbar ist, die Datenintegrität kompromittieren.
  • Das Schnellschreiben erreicht man durch Ausführen einer Verzweigungs-Schreiboperation, gleichzeitiges Aktualisieren des nichtflüchtigen Speichers und der Bilder im Cache als Ergebnis eines einzelnen Datentransfers vom Kanal zum Controller. Das schnelle Schreiben wird nur dann zugelassen, wenn sich ein Bild der Spur im Cache-Speicher befindet, oder wenn es sich bei der Operation um eine voraussagbare Schreiboperation handelt. Befindet sich ein Bild der Spur im Cache-Speicher, wird der Cache-Platz bereits vorher zugeordnet; es ist jedoch möglich, daß zusätzliche Segmente für Format-Schreiboperationen zugeordnet werden müssen.
  • Sobald der Datentransfer zum Cache-Speicher und zum nichtflüchtigen Speicher erfolgreich abgeschlossen ist, wird ein sauberer Ende-Status (Kanal-Ende und Geräte-Ende) gesendet. Dieser Status ist seitens des Controllers eine Zusage, daß die Daten erfolgreich im Controller gespeichert sind und für eine spätere Nutzung zur Verfügung stehen.
  • Die Übertragung der Daten vom Cache-Speicher/nichtflüchtigen Speicher zum Datenspeichergerät findet durch einen internen Controller statt, der eine vorwegnehmende Ausspeicherung durchführt. Die vorwegnehmende Ausspeicherung wurde konzipiert, um zu vermeiden, daß eine Schreibanforderung verzögert wird, weil weder im nichtflüchtigen Speicher noch im Cache- Speicher Raum für eine Zuweisung vorhanden ist. Durch die vorwegnehmende Ausspeicherung wird ein Puffer mit nicht modifiziertem Speicherplatz sowohl im nichtflüchtigen Speicher als auch im Cache-Speicher bereitgehalten. In diesen Puffern steht Speicherplatz unmittelbar für die Zuweisung zur Verfügung, um Anfragen an den Controller befriedigen zu können. Die Größe des in jedem Puffer zur Verfügung gehaltenen Speicherraums ist so beschaffen, daß konzentrierte Aktivitäts-Bündel, die eine Speicherplatzzuweisung benötigen, nur selten dazu führen würden, daß eine Schreiboperation durch die Speicherplatzzuweisung verzögert würde. Wären solche Verzögerungen notwendig, erhält das Ausspeichern Priorität gegenüber anderen internen Subsystemaktivitäten, bis die Notwendigkeit für die Verzögerung beseitigt wurde.
  • Anders als beim allgemein üblichen Austausch-Algorithmus für den Cache-Speicher, bei der die am wenigsten kürzlich verwendete (LRU) Information ausgetauscht wird, ist der Algorithmus zur Auswahl des Ausspeicherungskandidaten ein Algorithmus nach dem Prinzip "zuerst geschrieben, zuerst ausgetauscht". Dieser Algorithmus basiert auf zwei Elementen der Speicherplatzverwaltung für nichtflüchtige Speicher. Einmal wird der nichtflüchtige Speicher als Umlaufpuffer verwaltet. Wird für eine Zuweisung Platz benötigt, so wird dieser unmittelbar vor einem "freier Platz"-Zeiger zugewiesen. Ein anderer Zeiger wies auf die ältesten gültigen Daten im Puffer hin (die gültigen Daten, die am nächsten vor dem auf den freien Speicherplatz zeigenden Zeiger liegen). Solange der angezeigte Datentransfer in dem Raum zwischen diesen beiden Zeigern stehen kann, findet die Zuweisung statt und der Transfer beginnt. Durch vorwegnehmendes Ausspeichern wird versucht, die Größe des freien Speicherplatzes auf einem vordefinierten Wert zu halten. Zum anderen behandelt der nichtflüchtige Speicher aktuell zugewiesenen Speicherplatz als Ausgangsbereiche für alle neuen Modifizierungen der Daten (Datensätze) in diesem Bereich. Wenn an einem Datensatz eine Modifizierung erfolgen soll, wird von der Zuweisung bestimmt, ob für diesen Datensatz ein Eintrag in dem nichtflüchtigen Speicher vorhanden ist. Wenn dies der Fall ist, und der Datensatz nicht neu formatiert wird, findet die Aktualisierung an dem vorher zugewiesenen nichtflüchtigen Speicherplatz statt. Ist keine Zuweisung vorhanden, oder wird der Datensatz neu formatiert, wird neuer Speicherplatz zugewiesen, die Aktualisierung findet an diesem Speicherplatz statt und der vorherige von dem Datensatz besetzte Speicherplatz wird als Speicherplatz angezeigt, der keine gültigen Daten enthält.
  • Nachdem ein Ausspeicherungskandidat ausgewählt wurde, wird der Controller geprüft, um festzustellen, ob andere Modifizierungen für dieselbe Spur vorhanden sind. Sind andere Modifizierungen vorhanden, wird auf dieser Spur der komplette Satz von Aktualisierungen als Ergebnis des Ausspeicherns für den ausgewählten Kandidaten durchgeführt.
  • Das Schnellschreiben ist für die Host-Anwendung transparent. Der Controller verwaltet den nichtflüchtigen Speicher und die Datenbewegungen zwischen dem Cache-Speicher und dem Datenspeichergerät ohne Beteiligung des Hosts. Der Controller wickelt auch die Fehlerroutine und die Statusprotokollierung ab.
  • Die Erfindung wurde anhand eines bevorzugten Ausführungsbeispiels in einer spezifischen Betriebssystem-Umgebung beschrieben; der Fachmann wird jedoch erkennen, daß die Erfindung, mit entsprechender Modifizierung, in anderen und unterschiedlichen Betriebssystemen im Rahmen der im Anhang beschriebenen Ansprüche praktiziert werden kann.

Claims (7)

1. Eine Methode zum Verwalten eines ersten und eines zweiten Datenspeichergeräts (70, 75) in einem Datenverarbeitungssystem, das über ein Host-System (110) verfügt, einen angeschlossenen Controller (125), einen Satz von Speicherpfaden (140) umfassend, die an einen Cache-Speicher (145) angeschlossen sind, einen Controller für das Datenspeichergerät (160), einen nichtflüchtigen Speicher (220), und einen Speicher, der eine gemeinsame Anordnungs-Struktur (200) enthält, eine Datenübersetzungstabelle und eine Statustabelle umfassend, wobei der Controller des Datenspeichergeräts (160) Anschlußmittel für eine Vielzahl von Strings von Datenspeichergeräten (70, 75) umfaßt, jedes der Datenspeichergeräte eine Vielzahl von Datensätzen enthält, eine Vielzahl von Spuren und eine Gerätestatusspur mit einer darauf aufgezeichneten Rekonfigurationszahl, einer Geräte-Kennummer und einer Controller-Kennummer, wobei die Statustabelle in der gemeinsamen Anordnungs-Struktur (200) Mittel zum Speichern der genannten Rekonfigurationszahl, der genannten Geräte-Kennummer und der Controller-Kennummer für jedes der Datenspeichergeräte umfaßt,
wobei die genannte Methode folgende Schritte umfaßt:
Zuweisen einer vorbestimmten Anzahl von Bits für jeden in dem ersten und zweiten Datenspeichergerät (70, 75) gespeicherten Datensatz zur Erkennung von Änderungen an den Datensätzen;
Speichern einer Zellennummer auf einem Stapel, wobei diese Zellennummer die genannte vorbestimmte Anzahl von Bits für jeden Datensatz von dem ersten und dem zweiten Datenspeichergerät umfaßt, wobei die genannte Zellennummer ein vorbestimmtes Bit-Feld ist, welches einen Datensatz auf den genannten Datenspeichergeräten bezeichnet,
periodisches Prüfen des genannten Stapels zur Erkennung einer Gruppe von Datensätzen, die sich geändert haben, und
Schreiben der Gruppe von geänderten Datensätzen auf das zweite Datenspeichergerät,
wobei das genannte erste und zweite Datenspeichergerät (70, 75) so verwaltet werden, daß sie die Kopien der darin gespeicherten Datensätze identisch halten.
2. Eine Methode nach Anspruch 1, bei der die Reaktion auf den Ausfall eines Datenspeichergeräts das Auswechseln eines ausgefallenen Datenspeichergeräts gegen ein funktionsfähiges Datenspeichergerät beinhaltet und das Aktualisieren der Datenübersetzungstabelle in der gemeinsamen Anordnungs-Struktur mit Informationen, welche das funktionsfähige Datenspeichergerät als das Ersatzgerät für das ausgefallene Datenspeichergerät kennzeichnen.
3. Eine Methode nach jedem der vorangehenden Ansprüche, bei der ein erfolgreiches Urladen des Speichers eines Datenspeichergeräts solange verhindert wird, bis die Controller-Kennummer und Geräte-Kennummer in der Statustabelle der gemeinsamen Anordnungs-Struktur des Controllers mit der Geräte- beziehungsweise Controller-Kennummer auf der Geräte-Statusspur des Datenspeichergeräts übereinstimmen.
4. Eine Methode nach jedem der vorangehenden Ansprüche, bei der die Datenspeichergeräte den Informationsfluß über jeden String folgendermaßen verteilen:
Verbinden jedes Datenspeichergeräts mit dem String, an den die wenigsten Datenspeichergeräte angeschlossen sind; und
Verbinden der Vielzahl von Strings mit mehr als einem Anschlußmittel des Controllers des Datenspeichergeräts.
5. Eine Methode nach Anspruch 2, bei der die Reaktion auf den Ausfall eines Datenspeichergeräts folgendes umfaßt:
Inkrementieren der Rekonfigurationszahl in der Statustabelle der gemeinsamen Anordnungs-Struktur, um anzuzeigen, daß eine Rekonfiguration stattgefunden hat; und
Schreiben der inkrementierten Rekonfigurationszahl auf die Geräte-Statusspur des funktionierenden Datenspeichergeräts.
6. Ein Datenverarbeitungssystem zur Verwaltung eines ersten und eines zweiten Datenspeichergeräts (70, 75), folgendes umfassend:
ein Host-System (110), das eine Vielzahl von Kanälen (120) enthält;
einen Controller (125), der an mindestens einen der Kanäle angeschlossen ist und einen Satz von Speicherpfaden (140) umfaßt, wobei jeder Speicherpfad Zugriff auf einen Cache-Speicher (145), einen Controller für das Datenspeichergerät (160), einen nichtflüchtigen Speicher (220) und einen Speicher hat, der eine gemeinsame Anordnungs-Struktur (200) enthält und über eine Datenübersetzungstabelle und eine Statustabelle verfügt,
eine Vielzahl von Strings von Datenspeichergeräten (70, 75), die an den Controller für die Datenspeichergeräte (160) angeschlossen sind, wobei jedes Datenspeichergerät eine Vielzahl von Datensätzen, eine Vielzahl von Spuren und eine Geräte-Statusspur enthält, mit einer darauf aufgezeichneten Rekonfigurationszahl, einer Geräte-Kennummer und einer Controller-Kennummer, wobei die gemeinsame Anordnungs-Struktur des Controllers (200) Mittel zum Speichern der genannten Rekonfigurationszahl, der genannten Geräte-Kennummer und der genannten Controller- Kennummer für jedes der genannten Datenspeichergeräte umfaßt,
Mittel zum Zuweisen einer vorbestimmten Anzahl von Bits für jeden in dem ersten und zweiten Datenspeichergerät gespeicherten Datensatz zur Erkennung von Änderungen an den Datensätzen,
Mittel zum Speichern einer Zellennummer auf einem Stapel, wobei die Zellennummer die vorbestimmte Anzahl von Bits für jeden Datensatz von dem ersten Datenspeichergerät umfaßt, wobei die genannte Zellennummer ein vorbestimmtes Bit-Feld ist, das einen Datensatz auf den genannten Datenspeichergeräten bezeichnet,
Mittel für die periodische Prüfung des genannten Stapels zur Erkennung von Datensatz-Gruppen, die sich verändert haben, und
Mittel zum Schreiben der geänderten Datensatz-Gruppe auf das zweite Datenspeichergerät,
wodurch das genannte erste und zweite Datenspeichergerät (70, 75) so verwaltet werden, daß die Kopien der darin gespeicherten Datensätze identisch gehalten werden.
7. Ein System nach Anspruch 6, desweiteren ein Gerät enthaltend zur Gewährleistung der Integrität der genannten Datenspeichergeräte (70, 75) nach Ausfällen, wobei das genannte Gerät Mittel umfaßt für den Vergleich der Geräte-Kennummer und der Controller-Kennummer in der Statustabelle in der gemeinsamen Anordnungs-Struktur mit der Geräte-Kennummer und der Controller-Kennummer auf der Geräte-Statusspur des Datenspeichergeräts und Mittel zum Sperren des Betriebs, wenn die Geräte-Kennummern beziehungsweise die Controller-Kennummern nicht übereinstimmen.
DE19883853503 1987-08-20 1988-07-26 Verfahren und Vorrichtung zur Instandhaltung von Duplexpaarverteilten Geräten mittels einer Doppelkopiefunktion. Expired - Fee Related DE3853503T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US8733187A 1987-08-20 1987-08-20
US8915187A 1987-08-25 1987-08-25

Publications (2)

Publication Number Publication Date
DE3853503D1 DE3853503D1 (de) 1995-05-11
DE3853503T2 true DE3853503T2 (de) 1995-09-28

Family

ID=26776855

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19883853503 Expired - Fee Related DE3853503T2 (de) 1987-08-20 1988-07-26 Verfahren und Vorrichtung zur Instandhaltung von Duplexpaarverteilten Geräten mittels einer Doppelkopiefunktion.

Country Status (2)

Country Link
EP (1) EP0303856B1 (de)
DE (1) DE3853503T2 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5210865A (en) * 1989-06-30 1993-05-11 Digital Equipment Corporation Transferring data between storage media while maintaining host processor access for I/O operations
US5239637A (en) * 1989-06-30 1993-08-24 Digital Equipment Corporation Digital data management system for maintaining consistency of data in a shadow set
DE69031443T2 (de) * 1989-06-30 1998-04-23 Digital Equipment Corp Verfahren und Anordnung zur Steuerung von Schattenspeichern
US5247618A (en) * 1989-06-30 1993-09-21 Digital Equipment Corporation Transferring data in a digital data processing system
ATE126614T1 (de) * 1989-06-30 1995-09-15 Digital Equipment Corp Datenübertragung in einem digitaldatenverarbeitungssystem.
IE63461B1 (en) * 1989-09-11 1995-04-19 Jeremy Owen Jones Improvements in and relating to stable memory circuits
US5126889A (en) * 1989-11-22 1992-06-30 At&T Bell Laboratories Technique for information protection on fault-tolerant redundant information storage devices
US5155845A (en) * 1990-06-15 1992-10-13 Storage Technology Corporation Data storage system for providing redundant copies of data on different disk drives
EP0551009B1 (de) * 1992-01-08 2001-06-13 Emc Corporation Verfahren zur Synchronisierung von reservierten Bereichen in einer redundanten Speicheranordnung
US7398286B1 (en) * 1998-03-31 2008-07-08 Emc Corporation Method and system for assisting in backups and restore operation over different channels

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4207609A (en) * 1978-05-08 1980-06-10 International Business Machines Corporation Method and means for path independent device reservation and reconnection in a multi-CPU and shared device access system
JPS60207943A (ja) * 1984-03-27 1985-10-19 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 階層記憶システムにおける1次記憶の内容の保護方法
US4686620A (en) * 1984-07-26 1987-08-11 American Telephone And Telegraph Company, At&T Bell Laboratories Database backup method

Also Published As

Publication number Publication date
EP0303856B1 (de) 1995-04-05
DE3853503D1 (de) 1995-05-11
EP0303856A2 (de) 1989-02-22
EP0303856A3 (en) 1990-09-12

Similar Documents

Publication Publication Date Title
DE3881786T2 (de) Identifizierung von Datenspeicherungseinrichtungen.
DE69632219T2 (de) Speicherplattenanordnungssystem
DE69714498T2 (de) Steuervorrichtung und Verfahren für ein RAID-Untersystem
DE69127895T4 (de) Logisches spurschreibzuordnungssystem für paralleles plattenlaufwerksmatrixdatenspeicherungsuntersystem
DE68928546T2 (de) Dateisystem für eine vielzahl von speicherklassen
DE69710578T2 (de) Verfahren zum unabhängigen und gleichzeitigen zugriff auf eine gemeinsame datensammlung
DE69724846T2 (de) Mehrweg-Ein/Ausgabespeichersysteme mit Mehrweg-Ein/Ausgabeanforderungsmechanismus
DE69938378T2 (de) Kopieren von Daten in Speichersystemen
DE69311952T2 (de) Verfahren und System zur inkrementalen Datensicherung
DE69425222T2 (de) Dynamisch ausbaubares Speichereinheitsmatrixsystem
DE69631106T2 (de) On-line-Rekonfiguration einer Speicherplattenanordnung
DE69807077T2 (de) Verfahren und vorrichtung zur wiederherstellung in einem verteilten datenbanksystem mit nicht global erreichbaren daten unter verwendung von gemeinsam genutzten virtuellen platten
DE69426264T2 (de) Datenfernkopierung
DE102004064069B4 (de) Plattenarrayvorrichtung
DE69033476T2 (de) Schutz von Datenredundanz und -rückgewinnung
DE69502125T2 (de) Synchrone Datenfernduplizierung
DE69327679T2 (de) Nachrichtenübertragung zwischen Prozessoren und einer Koppeleinrichtung
DE69219208T2 (de) Verteilter Ersatz in DASD-Feldern
DE69131728T2 (de) Speicherungssystem für binäre rechner mit hoher geschwindigkeit, hoher kapazität, fehlertoleranz und fehlerkorrektur
DE69733076T2 (de) Hochleistungsdatenweg mit sofortigem xor
DE69727083T2 (de) Überprüfungssystem um die integrität der parität einer speicherplattenmatrix aufrechtzuerhalten
US5051887A (en) Maintaining duplex-paired storage devices during gap processing using of a dual copy function
DE69911930T2 (de) Hochverfügbare dateiprozessoren
DE69506404T2 (de) Hauptspeichervorrichtung und wiederanlaufkennzeichnungsverfahren für ein fehlertolerantes rechnersystem
DE69030024T2 (de) Verfahren zur Herstellung einer Duplikation von einer Datenbank

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee