DE60224598T2 - Umkehr eines Kommunikationspfades zwischen Speichergeräten - Google Patents

Umkehr eines Kommunikationspfades zwischen Speichergeräten Download PDF

Info

Publication number
DE60224598T2
DE60224598T2 DE60224598T DE60224598T DE60224598T2 DE 60224598 T2 DE60224598 T2 DE 60224598T2 DE 60224598 T DE60224598 T DE 60224598T DE 60224598 T DE60224598 T DE 60224598T DE 60224598 T2 DE60224598 T2 DE 60224598T2
Authority
DE
Germany
Prior art keywords
drive
storage device
data
host
memory
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 - Lifetime
Application number
DE60224598T
Other languages
English (en)
Other versions
DE60224598D1 (de
Inventor
Mark J. Holliston Halstead
Dan Somerville Arnon
David Cambridge Meiri
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.)
EMC Corp
Original Assignee
EMC 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 EMC Corp filed Critical EMC Corp
Publication of DE60224598D1 publication Critical patent/DE60224598D1/de
Application granted granted Critical
Publication of DE60224598T2 publication Critical patent/DE60224598T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

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/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
    • 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/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • 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/2069Management of state, configuration or failover
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/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/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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99954Version management

Description

  • Technisches Gebiet
  • Diese Anwendung bezieht sich auf Computer-Speichervorrichtungen und insbesondere auf die Kommunikation zwischen Speichervorrichtungen.
  • Stand der Technik
  • Hostprozessor-Systeme (Leitrechner-Systeme) können Daten unter Verwendung einer Speichervorrichtung speichern und abrufen, welche eine Vielzahl von Host-Schnittstelleneinheiten (Host-Adapter), Plattenlaufwerken und Plattenschnittstelleneinheiten (Plattenadapter) enthält. Derartige Speichervorrichtungen werden beispielsweise von EMC Corporation aus Hopkinton, Massachusetts, geliefert und sind in US-Patent Nr. 5,206,939 von Yanai et al., 5,778,394 von Galtzur et al., US-Patent Nr. 5,845,147 von Vishlitzky et al. und US-Patent Nr. 5,857,208 von Ofek offenbart. Die Host-Systeme greifen auf die Speichervorrichtung durch eine Vielzahl mit diesem bereitgestellter Kanäle zu. Host-Systeme liefern der Speichervorrichtung durch die Kanäle Daten und Zugriffs-Steuerungsinformationen, und die Speichervorrichtung liefert den Host-Systemen ebenfalls durch die Kanäle Daten. Die Host-Systeme adressieren nicht unmittelbar die Plattenlaufwerke der Speichervorrichtung, sondern greifen vielmehr auf den Host-Systemen als eine Vielzahl logischer Platteneinheiten [logical disk units] erscheinende Einheiten zurück. Die logischen Platteneinheiten können den tatsächlichen Plattenlaufwerken entsprechen oder nicht. Dadurch, dass mehreren Host-Systemen der Zugriff auf die einzige Speichervorrichtung ermöglicht wird, können die Host-Systeme darin gespeicherte Daten gemeinsam nutzen.
  • US-Patent Nr. 6,044,444 von Ofek offenbart ein Verfahren zum Umkehren eines Kommunikationspfades zwischen einem ersten Laufwerk auf einer ersten Speichervorrichtung und einem zweiten Laufwerk auf einer zweiten Speichervorrichtung gemäß dem Oberbegriff des Anspruchs 1. Jedes Datenlaufwerk ist als lokales Primärlaufwerk eines ferngespiegelten Laufwerkpaares oder als Sekundärlaufwerk eines ferngespiegelten Laufwerkpaares konfiguriert. Normalerweise greift ein Host-Computer direkt entweder auf ein lokales oder auf ein primäres Laufwerk zu, und auf das Primärlaufwerk geschriebene Daten werden automatisch über die Verbindung an ein entsprechendes Sekundärlaufwerk gesendet. Es wird vorgeschlagen, die Host-Datenverarbeitung mit einem Primärlaufwerk auszusetzen und geänderte Spuren des Primärlaufwerks zum Sekundärlaufwerk zu kopieren. Sobald dieser Kopiervorgang abgeschlossen ist, kann die Datenverarbeitung wieder aufgenommen werden. Es wird erwähnt, dass vor der Wiederaufnahme der Host-Datenverarbeitung die verbundenen Datenspeichersysteme erneut konfiguriert werden könnten, um die Rollen des Primärlaufwerks und des Sekundärlaufwerks umzukehren. Allerdings gibt Ofek keinerlei Offenbarung oder Anregung der genauen Maßnahmen zur Durchführung des Umkehrschritts, des Aussetzungsschritts und des Wiederaufnahmeschritts.
  • In einigen Fällen kann es wünschenswert sein, Daten von einer Speichervorrichtung in eine andere zu kopieren. Beispielsweise kann es, wenn ein Host Daten in eine erste Speichervorrichtung schreibt, wünschenswert sein, diese Daten in eine zweite, an einem anderen Ort bereitgestellte Speichervorrichtung zu kopieren, so dass wenn ein Unglück auftritt, welches die erste Speichervorrichtung betriebsunfähig macht, der Host (oder ein anderer Host) den Betrieb unter Verwendung der Daten der zweiten Speichervorrichtung wieder aufnehmen kann. Eine derartige Fähigkeit bietet beispielsweise das von der EMC Corporation in Hopkinton, Massachusetts, bereitgestellte Remote Data Facility (RDF)-Produkt. Bei RDF kann ein Benutzer eine erste Speichervorrichtung als Master-Speichervorrichtung und eine zweite Speichervorrichtung als Slave-Speichervorrichtung benennen. Andere Ausführungen von RDF können ein Peer-to-Peer-Verhältnis zwischen den lokalen und entfernten Speichervorrichtungen bieten. Der Host wirkt direkt mit der lokalen Speichervorrichtung zusammen, jedoch wird jede in der lokalen Speichervorrichtung vorgenommene Datenveränderung unter Verwendung von RDF automatisch einer entfernten Speichervorrichtung zugeführt. Die lokalen und entfernten Speichervorrichtungen können durch eine Datenverbindung wie einen ESCON-Link oder einen Fiber-Channel-Link verbunden sein. Die RDF-Funktionalität kann mit einem an jeder der Speichervorrichtungen vorgesehenen RDF-Adapter (RA) unterstützt werden.
  • In einigen Fällen kann es wünschenswert sein, das RDF-Konfigurationssystem abzuändern. Jedoch erfordern derartige Abänderungen in vielen Fällen ausgebildete Techniker, die eine besondere Software und Nicht-Standard-Verbindungen zu den lokalen Speichervorrichtungen verwenden. Es ist wünschenswert, den RDF-Konfigurations-Abänderungsvorgang zu automatisieren, um einem Host die Abänderung der RDF-Konfiguration zu ermöglichen. Außerdem ist es wünschenswert, dass das Zulassen dynamischer Abänderungen der RDF-Konfiguration den Betrieb der Speichervorrichtung nicht beeinträchtigt, wenn einzelne Vorrichtungen darin auf die dynamischen Konfigurationsinformationen zugreifen müssen.
  • Offenbarung der Erfindung
  • Aufgabe der Erfindung ist die Verbesserung der Kommunikation zwischen Speichervorrichtungen. Diese Aufgabe führt zu einem Satz von Ausführungsformen, der hier vollständig beschrieben wird und in den Ansprüchen einer Serie paralleler Patentanmeldungen beansprucht wird. Die genannte Aufgabe ist in vorteilhafter Weise im Wesentlichen durch Anwendung der in den unabhängigen Ansprüchen beschriebenen Merkmale gelöst. Weitere Verbesserungen sehen die abhängigen Ansprüche vor.
  • Gemäß einer Ausführungsform beinhaltet das dynamische Erzeugen eines Kommunikationspfads zwischen ersten und zweiten Speichervorrichtungen die Erzeugung einer Verbindung zu einem Quell-Laufwerk auf der ersten Speichervorrichtung und die Angabe, dass das Quell-Laufwerk nicht bereit ist, Daten auf dem Kommunikationspfad zu übertragen, nach der erfolgreichen Erzeugung der Verbindung zum Quell-Laufwerk Erzeugung einer Verbindung zu einem Ziel-Laufwerk auf der zweiten Speichervorrichtung und die anfängliche Angabe, dass Teile eines der beiden Laufwerke, nämlich Ziel-Laufwerk und Quell-Laufwerk, keine gültigen Datenkopien enthalten, wobei das Ziel-Laufwerk Daten von dem Quell-Laufwerk annimmt, und nach erfolgreicher Erzeugung der Verbindungen zu dem Quell- und dem Ziel-Laufwerk die Angabe, dass das Quell-Laufwerk bereit ist, Daten auf dem Kommunikationspfad zu übertragen. Das dynamische Erzeugen eines Kommunikationspfads zwischen den ersten und zweiten Speichervorrichtungen kann auch die Erzeugung mindestens eines der Laufwerke, nämlich des Quell-Laufwerks und des Ziel-Laufwerks, umfassen. Die Erzeugung der Verbindung zu dem Quell-Laufwerk kann die Abänderung einer Tabelle umfassen, welche Konfigurationsinformationen für die erste Speichervorrichtung enthält. Die Erzeugung der Verbindung zu dem Ziel-Laufwerk kann die Abänderung einer Tabelle umfassen, welche Konfigurationsinformationen für die zweite Speichervorrichtung enthält. Das dynamische Erzeugen eines Kommunikationspfads zwischen ersten und zweiten Speichervorrichtungen kann ferner im Anschluss an die erfolglose Erzeugung einer Verbindung zu dem Ziel-Laufwerk die Zerstörung der Verbindung zu dem Quell-Laufwerk umfassen; in diesem Fall kann ein Fehler zurückgegeben werden. Zu Anfang kann angegeben werden, dass Teile des Ziel-Laufwerks keine gültigen Daten enthalten; in diesem Fall kann das dynamische Erzeugen eines Kommunikationspfades zwischen ersten und zweiten Speichervorrichtungen ferner nach der Angabe, dass das Quell-Laufwerk bereit ist, Daten auf dem Kommunikationspfad zu übertragen, das Initiieren eines im Hintergrund ablaufenden Kopiervor gangs umfassen, um Daten von dem Quell-Laufwerk auf das Ziel-Laufwerk zu kopieren. Zu Anfang kann angegeben werden, dass Teile des Quell-Laufwerks keine gültigen Daten enthalten; in diesem Fall kann das dynamische Erzeugen eines Kommunikationspfads zwischen ersten und zweiten Speichervorrichtungen ferner nach der Angabe, dass das Quell-Laufwerk bereit ist, Daten auf dem Kommunikationspfad zu übertragen, das Initiieren eines im Hintergrund ablaufenden Kopiervorgangs umfassen, um Daten von dem Ziel-Laufwerk auf das Quell-Laufwerk zu kopieren. Der Host kann einen Eingabe/Ausgabe-Vorgang [I/O Operation] auf einem bestimmten Teil des Quell-Laufwerks ausführen; in diesem Fall kann das dynamische Erzeugen eines Kommunikationspfads zwischen ersten und zweiten Speichervorrichtungen ferner als Reaktion auf die Angabe, dass der bestimmte Teil ungültige Daten enthält, das Kopieren von dem bestimmten Teil entsprechenden Daten von dem Ziel-Laufwerk auf das Quell-Laufwerk vor Beendigung des Eingabe/Ausgabe-Vorgangs umfassen.
  • Gemäß einer weiteren Ausführungsform beinhaltet das dynamische Erzeugen eines Kommunikationspfads zwischen ersten und zweiten Speichervorrichtungen das Erzeugen einer Verbindung zu einem Ziel-Laufwerk auf der ersten Speichervorrichtung, nach erfolgreichem Erzeugen der Verbindung zu dem Ziel-Laufwerk das Erzeugen einer Verbindung zu einem Quell-Laufwerk auf der zweiten Speichervorrichtung und die Angabe, dass das Quell-Laufwerk nicht bereit ist, Daten auf dem Kommunikationspfad zu übertragen, und die anfängliche Angabe, dass Teile eines der folgenden, nämlich des Ziel-Laufwerks und des Quell-Laufwerks, keine gültigen Kopien von Daten enthalten, wobei das Ziel-Laufwerk Daten von dem Quell-Laufwerk annimmt, und nach erfolgreichem Erzeugen der Verbindungen zu dem Quell- und dem Ziel-Laufwerk die Angabe, dass das Quell-Laufwerk bereit ist, Daten auf dem Kommunikationspfad zu übertragen. Das dynamische Erzeugen eines Kommunikationspfads zwischen ersten und zweiten Speichervorrichtungen kann ferner das Erzeugen mindestens eines der folgenden, nämlich des Quell-Laufwerks und des Ziel-Laufwerks, umfassen. Das Erzeugen der Verbindung zu einem Ziel-Laufwerk kann die Abänderung einer Tabelle umfassen, welche Konfigurationsinformationen für die erste Speichervorrichtung enthält. Das Erzeugen der Verbindung zu dem Quell-Laufwerk kann die Abänderung einer Tabelle umfassen, welche Konfigurationsinformationen für die zweite Speichervorrichtung enthält. Das dynamische Erzeugen eines Kommunikationspfads zwischen ersten und zweiten Speichervorrichtungen kann ferner im Anschluss an die erfolglose Erzeugung einer Verbindung zu dem Quell-Laufwerk die Zerstörung der Verbindung zu dem Ziel-Laufwerk umfassen; in diesem Fall kann eine Fehlerangabe zurückgegeben werden. Zu Anfang kann angegeben werden, dass Teile des Ziel-Laufwerks keine gültigen Daten enthalten. Das dynamische Erzeugen eines Kommunikationspfads zwischen ersten und zweiten Speichervorrichtungen kann ferner nach der Angabe, dass das Quell-Laufwerk bereit ist, Daten auf dem Kommunikationspfad zu übertragen, das Initiieren eines im Hintergrund ablaufenden Kopiervorgangs umfassen, um Daten von dem Quell-Laufwerk auf das Ziel-Laufwerk zu kopieren. Zu Anfang kann angegeben werden, dass Teile des Quell-Laufwerks keine gültigen Daten enthalten. Das dynamische Erzeugen eines Kommunikationspfads zwischen ersten und zweiten Speichervorrichtungen kann ferner nach der Angabe, dass das Quell-Laufwerk bereit ist, Daten auf dem Kommunikationspfad zu übertragen, das Initiieren eines im Hintergrund ablaufenden Kopiervorgangs umfassen, um Daten von dem Ziel-Laufwerk auf das Quell-Laufwerk zu kopieren. Das dynamische Erzeugen eines Kommunikationspfads zwischen ersten und zweiten Speichervorrichtungen kann ferner umfassen, dass der Host einen Eingabe/Ausgabe-Vorgang auf einem bestimmten Teil des Quell-Laufwerks ausführt. Das dynamische Erzeugen eines Kommunikationspfads zwischen ersten und zweiten Speichervorrichtungen kann ferner als Reaktion auf die Angabe, dass der bestimmte Teil ungültige Daten enthält, das Kopieren von dem bestimmten Teil entsprechenden Daten von dem Ziel-Laufwerk auf das Quell-Laufwerk vor Beendigung des Eingabe/Ausgabe-Vorgangs umfassen.
  • Ferner umfasst gemäß einer weiteren Ausführungsform ein Computerprogrammprodukt, welches einen Kommunikationspfad zwischen ersten und zweiten Speichervorrichtungen erzeugt, ausführbaren Programmcode, welcher eine Verbindung zu einem Quell-Laufwerk auf der ersten Speichervorrichtung erzeugt und angibt, dass das Quell-Laufwerk nicht bereit ist, Daten auf dem Kommunikationspfad zu übertragen, ausführbaren Programmcode, der eine Verbindung zu einem Ziel-Laufwerk auf der zweiten Speichervorrichtung erzeugt und anfänglich angibt, dass Teile eines der folgenden, nämlich des Ziel-Laufwerks und des Quell-Laufwerks, keine gültigen Kopien von Daten enthalten, nachdem die Verbindung zu dem Quell-Laufwerk erfolgreich erzeugt wurde, wobei das Ziel-Laufwerk Daten von dem Quell-Laufwerk annimmt, und ausführbaren Programmcode, der angibt, dass das Quell-Laufwerk bereit ist, Daten auf dem Kommunikationspfad zu übertragen, nachdem die Verbindungen zu dem Quell- und dem Ziel-Laufwerk erfolgreich erzeugt wurden. Das Computerprogrammprodukt kann ferner ausführbaren Programmcode umfassen, der mindestens eines der folgenden, nämlich des Quell-Laufwerks und des Ziel-Laufwerks, erzeugt. Der ausführbare Programmcode, der die Verbindung zu dem Quell-Laufwerk erzeugt, ändert eine Tabelle ab, welche Konfigurationsinformationen für die erste Speichervorrichtung enthalten kann. Der ausführbare Programmcode, der die Verbindung zu dem Ziel-Laufwerk erzeugt, kann eine Tabelle abändern, welche Konfigurationsinformationen für die zweite Speichervorrichtung enthält. Das Computerprogrammprodukt kann ferner ausführbaren Programmcode umfassen, der im Anschluss an die erfolglose Erzeugung einer Verbindung zu dem Ziel-Laufwerk die Verbindung zu dem Quell-Laufwerk zerstört; in diesem Fall kann eine Fehlerangabe zurückgegeben werden. Das Computerprogrammprodukt kann ferner ausführbaren Programmcode umfassen, der veranlasst, dass zu Anfang angegeben wird, dass Teile des Quell-Laufwerks keine gültigen Daten enthalten. Das Computerprogrammprodukt kann ferner ausführbaren Programmcode umfassen, der einen im Hintergrund ablaufenden Kopiervorgang initiiert, um Daten von dem Ziel-Laufwerk auf das Quell-Laufwerk zu kopieren, nachdem angegeben wurde, dass das Quell-Laufwerk bereit ist, Daten auf dem Kommunikationspfad zu übertragen. Das Computerprogrammprodukt kann ferner ausführbaren Programmcode umfassen, der einem gewünschten Teil entsprechende Daten als Reaktion auf die Angabe, dass der gewünschte Teil ungültige Daten enthält, von dem Ziel-Laufwerk auf das Quell-Laufwerk kopiert, bevor ein Eingabe/Ausgabe-Vorgang beendet wird.
  • Ferner umfasst gemäß einer weiteren Ausführungsform ein Computerprogrammprodukt, welches dynamisch einen Kommunikationspfad zwischen ersten und zweiten Speichervorrichtungen erzeugt, ausführbaren Programmcode, welcher eine Verbindung zu einem Ziel-Laufwerk auf der ersten Speichervorrichtung erzeugt, ausführbaren Programmcode, der eine Verbindung zu einem Quell-Laufwerk auf der zweiten Speichervorrichtung erzeugt und angibt, dass das Quell-Laufwerk nicht bereit ist, Daten auf dem Kommunikationspfad zu übertragen, und anfänglich angibt, dass Teile eines der folgenden, nämlich des Ziel-Laufwerks und des Quell-Laufwerks, keine gültigen Kopien von Daten enthalten, nachdem die Verbindung zu dem Ziel-Laufwerk erfolgreich erzeugt wurde, wobei das Ziel-Laufwerk Daten von dem Quell-Laufwerk annimmt, und ausführbaren Programmcode, der angibt, dass das Quell-Laufwerk bereit ist, Daten auf dem Kommunikationspfad zu übertragen, nachdem die Verbindungen zu dem Quell- und dem Ziel-Laufwerk erfolgreich erzeugt wurden. Das Computerprogrammprodukt kann ferner ausführbaren Programmcode umfassen, der mindestens eines der folgenden, nämlich des Quell-Laufwerks und des Ziel-Laufwerks, erzeugt. Ausführbarer Programmcode, der die Verbindung zu dem Quell-Laufwerk erzeugt, kann eine Tabelle abändern, welche Konfigurationsinformationen für die erste Speichervorrichtung enthält. Ausführbarer Programmcode, der die Verbindung zu dem Ziel-Laufwerk erzeugt, kann eine Tabelle abändern, welche Konfigurationsinformationen für die zweite Speichervorrichtung enthält. Das Computerprogrammprodukt kann ferner ausführbaren Programmcode umfassen, der im Anschluss an die erfolglose Erzeugung einer Verbindung zu dem Quell-Laufwerk die Verbindung zu dem Ziel-Laufwerk zerstört; in diesem Fall kann eine Fehlerangabe zurückgegeben werden.
  • Gemäß einer weiteren Ausführungsform umfasst die Umkehr eines Kommunikationspfads zwischen einem ersten Laufwerk auf einer ersten Speichervorrichtung und einem zweiten Laufwerk auf einer zweiten Speichervorrichtung das Aussetzen der Kommunikation zwischen dem ersten und zweiten Laufwerk, während die Vorgänge für andere Laufwerke der Speichervorrichtungen aufrechterhalten werden, Veranlassen, dass das erste Laufwerk von einem Quell-Laufwerk in ein Ziel-Laufwerk umgewandelt wird, ohne das erste Laufwerk zu zerstören, Veranlassen, dass das zweite Laufwerk von einem Ziel-Laufwerk in ein Quell-Laufwerk umgewandelt wird, ohne das zweite Laufwerk zu zerstören, und Wiederaufnahme der Kommunikation zwischen dem ersten und dem zweiten Laufwerk. Das Veranlassen der Umwandlung des ersten Laufwerks von einem Quell-Laufwerk in ein Ziel-Laufwerk kann die Abänderung einer Tabelle der ersten Speichervorrichtung umfassen. Das Veranlassen der Umwandlung des zweiten Laufwerks von einem Quell-Laufwerk in ein Ziel-Laufwerk kann die Abänderung einer Tabelle der zweiten Speichervorrichtung umfassen. Das Aussetzen der Kommunikation kann das Versetzen des ersten Laufwerks in einen Nicht-Bereit-Zustand umfassen. Die Wiederaufnahme der Kommunikation kann das Versetzen des zweiten Laufwerks in einen Bereit-Zustand umfassen. Die Umkehr des Kommunikationspfades zwischen einem ersten Laufwerk auf einer ersten Speichervorrichtung und einem zweiten Laufwerk auf einer zweiten Speichervorrichtung kann auch das Zurückgeben eines Ergebnisses umfassen, welches die erfolgreiche Umkehr des Kommunikationspfades angibt.
  • Ferner umfasst gemäß einer weiteren Ausführungsform die Verwaltung von Laufwerken auf Speichervorrichtungen den Empfang eines Befehls, welcher die Umkehr eines Kommunikationspfades zwischen einem ersten Laufwerk auf einer ersten Speichervorrichtung und einem zweiten Laufwerk auf einer zweiten Speichervorrichtung anfordert, das Aussetzen der Kommunikation zwischen dem ersten und zweiten Laufwerk, während die Vorgänge für andere Laufwerke der Speichervorrichtungen aufrechterhalten werden, Veranlassen, dass das erste Laufwerk von einem Quell-Laufwerk in ein Ziel-Laufwerk umgewandelt wird, ohne das erste Laufwerk zu zerstören, Veranlassen, dass das zweite Laufwerk von einem Ziel-Laufwerk in ein Quell-Laufwerk umgewandelt wird, ohne das zweite Laufwerk zu zerstören, und Wiederaufnahme der Kommunikation zwischen dem ersten und dem zweiten Laufwerk. Der Befehl kann ein einziger Multihop-, Multiexecute-Befehl (Mehrsprung-, Mehrfachausführungs-Befehl) sein, der die Ausführung von Vorgängen auf der ersten und zweiten Speichervorrichtung veranlasst. Das Veranlassen der Umwandlung des ersten Laufwerks von einem Quell-Laufwerk in ein Ziel-Laufwerk kann die Abänderung einer Tabelle der ersten Speichervorrichtung umfassen. Das Veranlassen der Umwandlung des zweiten Laufwerks von einem Quell-Laufwerk in ein Ziel-Laufwerk kann die Abänderung einer Tabelle der zweiten Speichervorrichtung umfassen. Das Aussetzen der Kommunikation kann das Versetzen des ersten Laufwerks in einen Nicht-Bereit-Zustand umfassen. Die Wiederaufnahme der Kommunikation kann das Versetzen des zweiten Laufwerks in einen Bereit-Zustand umfassen. Die Verwaltung von Laufwerken auf Speichervorrichtungen kann das Zurückgeben eines Ergebnisses umfassen, welches die erfolgreiche Umkehr des Kommunikationspfades angibt.
  • Ferner umfasst gemäß einer weiteren Ausführungsform ein Computerprogrammprodukt, welches einen Kommunikationspfad zwischen einem ersten Laufwerk auf einer ersten Speichervorrichtung und einem zweiten Laufwerk auf einer zweite Speichervorrichtung umkehrt, ausführbaren Programmcode, welcher die Kommunikation zwischen dem ersten und dem zweiten Laufwerk aussetzt, während er die Vorgänge für andere Laufwerke der Speichervorrichtung aufrechterhält, ausführbaren Programmcode, welcher die Umwandlung des ersten Laufwerks von einem Quell-Laufwerk in ein Ziel-Laufwerk veranlasst, ohne das erste Laufwerk zu zerstören, ausführbaren Programmcode, welcher die Umwandlung des zweiten Laufwerks von einem Ziel-Laufwerk in ein Quell-Laufwerk veranlaßt, ohne das zweite Laufwerk zu zerstören, und ausführbaren Programmcode, welcher die Kommunikation zwischen dem ersten und dem zweiten Laufwerk wiederaufnimmt. Ausführbarer Programmcode, welcher die Umwandlung des ersten Laufwerks von einem Quell-Laufwerk in ein Ziel-Laufwerk veranlasst, kann eine Tabelle der ersten Speichervorrichtung abändern. Ausführbarer Programmcode, welcher die Umwandlung des zweiten Laufwerks von einem Quell-Laufwerk in ein Ziel-Laufwerk veranlasst, kann eine Tabelle der zweiten Speichervorrichtung abändern. Ausführbarer Programmcode, welcher die Kommunikation aussetzt, kann das erste Laufwerk in einen Nicht-Bereit-Zustand versetzen. Ausführbarer Programmcode, welcher die Kommunikation wiederaufnimmt, kann das zweite Laufwerk in einen Bereit-Zustand versetzen. Ein Computerprogrammprodukt, welches einen Kommunikationspfad zwischen einem ersten Laufwerk auf einer ersten Speichervorrichtung und einem zweiten Laufwerk auf einer zweiten Speichervorrichtung umkehrt, kann auch ausführbaren Programmcode umfassen, welcher ein Ergebnis zurückgibt, das die erfolgreiche Umkehr des Kommunikationspfades angibt.
  • Gemäß einer weiteren Ausführungsform umfasst die Bestimmung von Vorrichtungseigenschaften das Erlangen eines ersten global zugreifbaren Wertes, wenn der erste global zugreifbare Wert einem gespeicherten ersten Wert entspricht, das Erlangen von Vorrichtungseigenschafts-Daten von einem relativ schnellen Speicher, wenn der erste global zugreifbare Wert nicht dem gespeicherten ersten Wert entspricht, das Erlangen eines zweiten global zugreifbaren Wertes, wenn der zweite global zugreifbare Wert einem gespeicherten zweiten Wert entspricht, das Erlangen von Vorrichtungseigenschafts-Daten von einem relativ schnellen Speicher, wenn der zweite global zugreifbare Wert nicht dem gespeicherten zweiten Wert entspricht, das Erlangen von Vorrichtungseigenschafts-Daten von einem relativ langsamen Speicher und Aktualisieren des relativ schnellen Speichers, des gespeicherten ersten Wertes und des gespeicherten zweiten Wertes. Der global zugreifbare erste Wert kann Vorrichtungs-Eingabe/Ausgabe-Informationen umfassen. Die global zugreifbaren Werte können in einem globalen Speicher gespeichert sein, der für eine Mehrzahl von Prozessoren zugreifbar ist. Der relativ langsame Speicher kann ein globaler Speicher sein, der für eine Mehrzahl von Prozessoren zugreifbar ist. Der relativ schnelle Speicher kann lokal einem Prozessor zugeordnet sein, der auf den ersten und den zweiten gespeicherten Wert zugreift. Der zweite gespeicherte Wert kann angeben, ob eine Vorrichtung eine Quelle oder ein Ziel für Daten in einer Datenfernübertragungs-Verbindung ist.
  • Ferner umfasst gemäß einer weiteren Ausführungsform der Zugriff auf eine Vorrichtung das Erlangen von Statusinformationen, welche angeben, wie auf die Vorrichtung zugegriffen werden kann, die Überprüfung mindestens eines Teils der Statusinformationen, um zu ermitteln, ob sich die Konfiguration der Vorrichtung geändert hat, wenn sich die Konfiguration der Vorrichtung nicht geändert hat, den Zugriff auf gespeicherte Konfigurationsdaten von dem relativ schnellen Speicher und, wenn sich die Konfiguration der Vorrichtung geändert hat, den Zugriff auf neue Konfigurationsinformationen von dem relativ langsamen Speicher und Aktualisieren der gespeicherten Konfigurationsdaten mit den neuen Konfigurationsinformationen. Der relativ langsame Speicher kann ein globaler Speicher sein, der für eine Mehrzahl von Prozessoren zugreifbar ist. Der relativ schnelle Speicher kann lokal einem Prozessor zugeordnet sein, der auf den schnellen Speicher zugreift. Die gespeicherten Konfigurationsdaten können angeben, ob eine Vorrichtung eine Quelle oder ein Ziel für Daten in einer Datenfernübertragungs-Verbindung ist. Die Überprüfung mindestens eines Teils der Statusinformationen kann die Ermittlung umfassen, ob der Teil der Statusinformationen gleich einem ersten gespeicherten Wert ist. Der Zugriff auf eine Vorrichtung kann, wenn der Teil der Statusinformationen nicht gleich dem ersten gespeicherten Wert ist, auch das Erlangen zusätzlicher Statusinformationen umfassen und die Ermittlung, ob ein Teil der zusätzlichen Statusinformationen gleich einem zweiten gespeicherten Wert ist. Der Zugriff auf eine Vorrichtung kann im Anschluss an die Aktualisierung der gespeicherten Konfigurationsdaten auch die Aktualisierung des ersten und zweiten gespeicherten Wertes umfassen.
  • Ferner umfasst gemäß einer weiteren Ausführungsform ein Computerprogrammprodukt, welches Vorrichtungseigenschaften bestimmt, ausführbaren Programmcode, welcher einen ersten global zugreifbaren Wert erlangt, ausführbaren Programmcode, welcher Vorrichtungseigenschafts-Daten von einem relativ schnellen Speicher erlangt, wenn der erste global zugreifbare Wert einem gespeicherten ersten Wert entspricht, ausführbaren Programmcode, welcher einen zweiten global zugreifbaren Wert erlangt, wenn der erste global zugreifbare Wert nicht dem gespeicherten ersten Wert entspricht, ausführbaren Programmcode, welcher Vorrichtungseigenschafts-Daten von einem relativ schnellen Speicher erlangt, wenn der zweite global zugreifbare Wert einem gespeicherten zweiten Wert entspricht, und ausführbaren Programmcode, welcher Vorrichtungseigenschafts-Daten von einem relativ langsamen Speicher erlangt und den relativ schnellen Speicher, den gespeicherten ersten Wert und den gespeicherten zweiten Wert aktualisiert, wenn der zweite global zugreifbare Wert nicht dem gespeicherten zweiten Wert entspricht. Der global zugreifbare erste Wert kann Vorrichtungs-Eingabe/Ausgabe-Informationen umfassen. Der zweite gespeicherte Wert kann angeben, ob eine Vorrichtung eine Quelle oder ein Ziel für Daten in einer Datenfernübertragungs-Verbindung ist.
  • Ferner umfasst gemäß einer weiteren Ausführungsform ein Computerprogrammprodukt, welches auf eine Vorrichtung zugreift, ausführbaren Programmcode, welcher Statusinformationen erlangt, welche angeben, wie auf die Vorrichtung zugegriffen werden kann, ausführbaren Programmcode, welcher mindestens einen Teil der Statusinformationen überprüft, um zu ermitteln, ob sich die Konfiguration der Vorrichtung geändert hat, ausführbaren Programmcode, welcher auf gespeicherte Konfigurationsdaten von einem relativ schnellen Speicher zugreift, wenn sich die Konfiguration der Vorrichtung nicht geändert hat, und ausführbaren Programmcode, welcher auf neue Konfigurationsinformationen von einem relativ langsamen Speicher zugreift und die gespeicherten Konfigurationsdaten mit den neuen Konfigurationsinformationen aktualisiert, wenn sich die Konfiguration der Vorrichtung geändert hat. Die gespeicherten Konfigurationsdaten können angeben, ob eine Vorrichtung eine Quelle oder ein Ziel für Daten in einer Datenfernübertragungs-Verbindung ist. Ausführbarer Programmcode, welcher mindestens einen Teil der Statusinformationen überprüft, kann ausführbaren Programmcode umfassen, welcher ermittelt, ob der Teil der Statusinformationen gleich einem ersten gespeicherten Wert ist. Ein Computerprogrammprodukt, welches auf eine Vorrichtung zugreift, kann auch ausführbaren Programmcode umfassen, welcher zusätzliche Statusinformationen erlangt und ermittelt, ob ein Teil der zusätzlichen Statusinformationen gleich einem zweiten gespeicherten Wert ist, wenn der Teil der Statusinformationen nicht gleich dem ersten gespeicherten Wert ist. Ein Computerprogrammprodukt, welches auf eine Vorrichtung zugreift, kann auch ausführbaren Programmcode umfassen, welcher den ersten und zweiten gespeicherten Wert im Anschluss an die Aktualisierung der gespeicherten Konfigurationsdaten aktualisiert.
  • Ferner umfasst gemäß einer weiteren Ausführungsform eine Einrichtung, welche Vorrichtungseigenschaften bestimmt, Mittel zum Erlangen eines ersten global zugreifbaren Wertes, Mittel zum Erlangen von Vorrichtungseigenschafts-Daten von einem relativ schnellen Speicher, wenn der erste global zugreifbare Wert einem gespeicherten ersten Wert entspricht, Mittel zum Erlangen eines zweiten global zugreifbaren Wertes, wenn der erste global zugreifbare Wert nicht dem gespeicherten ersten Wert entspricht, Mittel zum Erlangen von Vorrichtungseigenschafts-Daten von einem relativ schnellen Speicher, wenn der zweite global zugreifbare Wert einem gespeicherten zweiten Wert entspricht, Mittel zum Erlangen von Vorrichtungseigenschafts-Daten von einem relativ langsamen Speicher und Aktualisieren des relativ schnellen Speichers, des gespeicherten ersten Wertes und des gespeicherten zweiten Wertes, wenn der zweite global zugreifbare Wert nicht dem gespeicherten zweiten Wert entspricht. Der global zugreifbare erste Wert kann Vorrichtungs-Eingabe/Ausgabe-Informationen [device I/O information] umfassen. Die global zugreifbaren Werte können in einem globalen Speicher gespeichert werden, welcher für eine Mehrzahl von Prozessoren zugreifbar ist. Der relativ langsame Speicher kann ein globaler Speicher sein, welcher für eine Mehrzahl von Prozessoren zugreifbar ist. Der relativ schnelle Speicher kann lokal einem Prozessor zugeordnet sein, welcher auf den ersten und zweiten gespeicherten Wert zugreift. Der zweite gespeicherte Wert kann angeben, ob eine Vorrichtung eine Quelle oder ein Ziel für Daten in einer Datenfernübertragungs-Verbindung ist.
  • Ferner umfasst gemäß einer weiteren Ausführungsform eine Einrichtung, welche auf eine Vorrichtung zugreift, Mittel zum Erlangen von Statusinformationen, welche angeben, wie auf die Vorrichtung zugegriffen werden kann, Mittel zum Überprüfen mindestens eines Teils der Statusinformationen, um zu ermitteln, ob sich die Konfiguration der Vorrichtung geändert hat, Mittel zum Zugreifen auf gespeicherte Konfigurationsdaten von einem relativ schnellen Speicher, wenn sich die Konfiguration der Vorrichtung nicht geändert hat, und Mittel zum Zugreifen auf neue Konfigurationsinformationen von einem relativ langsamen Speicher und zum Aktualisieren der gespeicherten Konfigurationsdaten mit den neuen Konfigurationsinformationen, wenn sich die Konfiguration der Vorrichtung geändert hat. Der relativ langsame Speicher kann ein globaler Speicher sein, welcher für eine Mehrzahl von Prozessoren zugreifbar ist. Der relativ schnelle Speicher kann lokal einem Prozessor zugeordnet sein, welcher auf den schnellen Speicher zugreift. Die gespeicherten Konfigurationsdaten können angeben, ob eine Vorrichtung eine Quelle oder ein Ziel für Daten in einer Datenfernübertragungs-Verbindung ist. Mittel zum Überprüfen mindestens eines Teils der Statusinformationen können Mittel zum Ermitteln, ob der Teil der Statusinformationen gleich einem ersten gespeicherten Wert ist, umfassen. Die Einrichtung kann ferner Mittel zum Erlangen zusätzlicher Statusinformationen umfassen und zum Ermitteln, ob ein Teil der zusätzlichen Statusinformationen gleich einem zweiten gespeicherten Wert ist, wenn der Teil der Statusinformationen nicht gleich dem ersten gespeicherten Wert ist. Die Einrichtung kann ferner Mittel zum Aktualisieren des ersten und zweiten gespeicherten Wertes im Anschluss an die Aktualisierung der gespeicherten Konfigurationsdaten umfassen.
  • Kurze Beschreibung der Zeichnungen
  • 1 ist ein schematisches Diagramm, welches einen Host, eine lokale Speichervorrichtung und eine Fern-Datenspeichervorrichtung zeigt, welche in Verbindung mit dem hier beschriebenen System verwendet werden.
  • 2 ist ein Flussdiagramm, welches die Funktionsweise des hier beschriebenen Systems darstellt.
  • 3 ist ein Flussdiagramm, welches die Ermittlung, welche Laufwerke für Schreib/Lese-Vorgänge gemäß dem hier beschriebenen System zu verwenden sind, darstellt.
  • 4 ist ein Diagramm, welches einen globalen Speicher für Speichervorrichtungen gemäß dem hier beschriebenen System darstellt.
  • 5 ist ein Flussdiagramm, welches eine Hierarchie zum Ermitteln, ob statische oder dynamische Konfigurationsdaten in Verbindung mit der Bewertung der Remote Data Facility (RDF)-Konfiguration einer Vorrichtung gemäß dem hier beschriebenen System zu verwenden sind, darstellt.
  • 6 ist ein schematisches Diagramm, welches im Detail eine Speichervorrichtung und Komponenten hiervon zeigt, welche in Verbindung mit dem hier beschriebenen System verwendet werden.
  • 7 ist ein Diagramm, welches einen Bereitschafts-Puffer und einen Satz Bytes darstellt, welche in Verbindung mit dem hier beschriebenen System verwendet werden.
  • 8 ist ein Flussdiagramm, welches Schritte darstellt, die in Verbindung mit dem Zugriff auf den Bereitschafts-Puffer und den Satz Bytes, wie sie in 7 aufgeführt sind, ausgeführt werden.
  • 9 ist ein Flussdiagramm, welches eine alternative Ausführungsform des hier beschriebenen Systems darstellt.
  • Ausführungsform(en) der Erfindung
  • Bezugnehmend auf 1 zeigt ein Diagramm 20 ein Verhältnis zwischen einem Host 22, einer lokalen Speichervorrichtung 24 und einer Fernspeichervorrichtung 26. Der Host 22 liest und schreibt Daten von der bzw. auf die lokale Speichervorrichtung 24 über einen Host-Adapter 28, welcher die Schnittstelle zwischen dem Host 22 und der lokalen Speichervorrichtung 24 erleichtert. Daten von der lokalen Speichervorrichtung 24 werden auf die Fernspeichervorrichtung 26 über eine RDF-Verbindung 29 kopiert, um zu bewirken, dass die Daten auf der Fernspeichervorrichtung 26 identisch mit den Daten auf der lokalen Speichervorrichtung 24 sind. Es ist anzumerken, dass eine Zeitverzögerung bei der Übertragung von Daten von der lokalen Speichervorrichtung 24 auf die Fernspeichervorrichtung 26 auftreten kann, so dass die Fernspeichervorrichtung 26 zu bestimmten Zeitpunkten Daten enthalten kann, die nicht identisch mit den Daten auf der lokalen Speichervorrichtung 24 sind. Die Kommunikation zwischen Datenspeichervorrichtungen oder -systemen, wie SymmetrixTM-Datenspeichersystemen von EMC Corporation, kann beispielsweise durch Verwendung des RDF-Produktes erleichtert werden, wie es ebenfalls von EMC Corporation bereitgestellt wird.
  • Die lokale Speichervorrichtung 24 umfasst eine RDF-Adaptereinheit (RA) 30, und die Fernspeichervorrichtung 26 umfasst eine RA 32. Die RAs 30, 32 sind an die RDF-Verbindung 29 angeschlossen und sind ähnlich dem Host-Adapter 28, werden jedoch zur Datenübertragung zwischen den Speichervorrichtungen 24, 26 verwendet. Die in Verbindung mit den RAs 30, 32 verwendete Software wird unten detaillierter erörtert.
  • Die Speichervorrichtungen 24, 26 können eine oder mehrere Platten umfassen, wobei jede einen unterschiedlichen Teil der auf jeder der Speichervorrichtungen 24, 26 gespeicherten Daten enthält. 1 zeigt die Speichervorrichtung 24, welche eine Mehrzahl von Platten 33a, 33b, 33c umfasst, und die Speichervorrichtung 26, welche eine Mehrzahl von Platten 34a, 34b, 34c umfasst. Die hier beschriebene RDF-Funktionalität kann angewendet werden, so dass unter Verwen dung der RDF die Daten für mindestens einen Teil der Platten 33a33c der lokalen Speichervorrichtung 24 auf mindestens einen Teil der Platten 34a34c der Fernspeichervorrichtung 26 kopiert werden. Es ist möglich, dass andere Daten der Speichervorrichtungen 24, 26 nicht zwischen den Speichervorrichtungen 24, 26 kopiert werden und somit nicht identisch sind.
  • Jede der Platten 33a33c ist an eine entsprechende Plattenadaptereinheit (DA) 35a, 35b, 35c angeschlossen, welche Daten an eine entsprechende der Platten 33a33c liefert und Daten von einer entsprechenden der Platten 33a33c empfängt. Ähnlich wird eine Mehrzahl von DAs 36a, 36b, 36c der Fernspeichervorrichtung 26 verwendet, um Daten an entsprechende der Platten 34a34c zu liefern und Daten von entsprechenden der Platten 34a34c zu empfangen. Ein Datenpfad existiert zwischen den DAs 35a35c, dem HA 28 und der RA 30 der lokalen Speichervorrichtung 24. Ähnlich existiert ein Datenpfad zwischen den DAs 36a36c und der RA 32 der Fernspeichervorrichtung 26.
  • Die lokale Speichervorrichtung 24 umfasst auch einen globalen Speicher 37, welcher zur Erleichterung der Übertragung von Daten zwischen den DAs 35a35c, dem HA 28 und der RA 30 verwendet werden kann. Der Speicher 37 kann Parameter von Systemaufrufen, Aufgaben, die von einem oder mehreren der DAs 35a35c, dem HA 28 und der RA 30 auszuführen sind, und einen Cache-Speicher für von einer oder mehreren der Platten 33a33c entnommene Daten enthalten. Ähnlich umfasst die Fernspeichervorrichtung 26 einen globalen Speicher 38, der Parameter von Systemaufrufen, Aufgaben, die von einem oder mehreren der DAs 36a36c und der RA 32 auszuführen sind, und einen Cache-Speicher für von einer oder mehreren der Platten 34a34c entnommene Daten enthalten kann. Die Verwendung der Speicher 37, 38 ist unten detaillierter beschrieben.
  • Der Speicherplatz in der lokalen Speichervorrichtung 24, welcher den Platten 33a33c entspricht, kann in eine Mehrzahl von Laufwerken oder logischen Geräten unterteilt sein. Die logischen Geräte (Vorrichtungen) können dem physischen Speicherplatz der Platten 33a33c entsprechen oder nicht. So kann beispielsweise die Platte 33a eine Mehrzahl von logischen Geräten enthalten, oder alternativ könnte ein einziges logisches Gerät beide Platten 33a, 33b umfassen. Ähnlich kann der Speicherplatz für die Fernspeichervorrichtung 26, welche die Platten 34a34c umfasst, in eine Mehrzahl von Laufwerken oder logischen Geräten unterteilt sein, wobei jedes der logischen Geräte einer oder mehr der Platten 34a34c entsprechen kann oder nicht.
  • Das Bereitstellen einer RDF-Abbildung zwischen Teilen der lokalen Speichervorrichtung 24 und der Fernspeichervorrichtung 26 beinhaltet die Einrichtung eines logischen Geräts auf der Fernspeichervorrichtung 26, welches eine Fern-Spiegelung [remote mirror] für ein logisches Gerät auf der lokalen Speichervorrichtung 24 ist. Der Host 22 liest und schreibt Daten von der bzw. auf die lokale(n) Speichervorrichtung 24, und die RDF-Abbildung bewirkt, dass abgeänderte Daten von der lokalen Speichervorrichtung 24 auf die Fernspeichervorrichtung 26 unter Verwendung der RAs 30, 32 und der RDF-Verbindung 29 übertragen werden. Beim stationären Betrieb enthält das logische Gerät auf der Fernspeichervorrichtung 26 Daten, welche identisch sind mit den Daten des logischen Geräts auf der lokalen Speichervorrichtung 24. Das logische Gerät auf der lokalen Speichervorrichtung 24, auf welches von dem Host 22 zugegriffen wird, wird als "R1-Laufwerk" (oder einfach "R1") bezeichnet, während das logische Gerät auf der Fernspeichervorrichtung 26, welches eine Kopie der Daten auf dem R1-Laufwerk enthält, "R2-Laufwerk" (oder einfach "R2") genannt wird. So liest und schreibt der Host Daten von dem bzw. auf das R1-Laufwerk, und die RDF erledigt das automatische Kopieren und Aktualisieren der Daten von dem R1-Laufwerk zum R2-Laufwerk.
  • In manchen Situationen kann es nützlich sein, zuzulassen, dass der Host 22 RDF-Laufwerke während des Betriebs des Systems erzeugt und zerstört. Es ist anzumerken, dass RDF-Laufwerke paarweise erzeugt und zerstört werden können, so dass ein R1/R2-Paar zerstört werden kann oder ein R1/R2-Paar erzeugt werden kann. Die Erzeugung oder Zerstörung von R1/R2-Paaren kann von dem Host 22 initiiert werden. Der Host kann einen Multihop-/Multiexecute-Systembefehl an Datenspeichervorrichtungen senden. Der Multihop-/Multiexecute-Systembefehl ist ein einziger Systembefehl, der mehrfachen Speichervorrichtungen zugeführt wird und Vorgänge angibt, die von den mehrfachen Speichervorrichtungen auszuführen sind. Der Befehl ermöglicht es, dass ein Hostrechner einen Systemfernaufruf indirekt an eine oder mehrere Datenspeichervorrichtungen durch Ebenen von anderen Datenspeichervorrichtungen ausgibt. Der Befehl kann angeben, dass eine oder mehrere beliebige der Datenspeichervorrichtungen den Befehl ausführen sollen. Beispielsweise kann der Host 22 einen Multihop-/Multiexecute-Systembefehl senden, welcher die Zerstörung eines bestimmten R1/R2-Paares anfordert, wobei das R1-Laufwerk sich auf der lokalen Speichervorrichtung 24 und das R2-Laufwerk auf der Fernspeichervorrichtung 26 befindet, indem jede der Speichervorrichtungen 24, 26 veranlasst wird, lokal eine Tabelle abzuändern (unten detaillierter erörtert), welche intern von jeder der Speichervorrichtungen 24, 26 verwendet wird, um die Einrichtung und Verwaltung von RDF-Laufwerken zu regeln. Die Erzeugung eines R1/R2-Paares beinhaltet die Erzeugung eines R1-Laufwerks auf einer Speichervorrichtung und die Erzeugung eines R2-Laufwerks auf einer anderen Speichervorrichtung.
  • Es ist ferner anzumerken, dass es in einigen Fällen nützlich sein kann, eine RDF-Verbindung zu einem oder mehreren vorhandenen Laufwerken einzurichten. So kann beispielsweise ein vorhandenes Quell-Laufwerk unter Verwendung der RDF mit einem neu erzeugten Ziel-Laufwerk verbunden werden. Dementsprechend können in der vorlie genden Erörterung Hinweise auf die Erzeugung von Laufwerken dahingehend aufgefasst werden, dass sie die Erzeugung von Verbindungen zu vorhandenen Laufwerken umfassen. Ähnlich können Hinweise auf die Zerstörung von Laufwerken dahingehend aufgefaßt werden, dass sie die einfache Zerstörung von RDF-Verbindungen zu diesen, wenn dies angemessen ist, umfassen. Es ist anzumerken, dass sowohl im Falle der Erzeugung oder Zerstörung neuer Laufwerke als auch im Falle der einfachen Erzeugung oder Zerstörung der Verbindungen zu vorhandenen Laufwerken dieselben Tabellen (unten erörtert), welche RDF-Verbindungsdaten enthalten, abgeändert werden.
  • Bezugnehmend auf 2 stellt ein Flussdiagramm 50 Schritte dar, die in Verbindung mit der Erzeugung oder Zerstörung von R1/R2-Paaren ausgeführt werden. Die Verarbeitung beginnt mit einem ersten Schritt 52, wo ermittelt wird, ob ein Zerstörungsbefehl ausgegeben wird. Bei einigen Ausführungsformen werden nur Erzeugungs- oder Zerstörungsbefehle ausgegeben. Wenn ein Befehl kein Zerstörungsbefehl ist, ist der Befehl somit ein Erzeugungsbefehl. Wenn in Schritt 52 ermittelt wird, dass ein Zerstörungsbefehl ausgegeben wurde, dann geht die Steuerung von Schritt 52 zu einem Schritt 54, in welchem im Hintergrund ablaufende Eingabe/Ausgabe-Vorgänge, wie z. B. im Hintergrund ablaufendes Kopieren, ausgesetzt werden. Vor der Zerstörung des R1/R2-Paares ist es nützlich, zunächst alle im Hintergrund ablaufenden Eingabe/Ausgabe-Vorgänge auszusetzen. Bei anderen Ausführungsformen ist der Schritt 54 nicht notwendig und wird nicht ausgeführt, da die Zerstörung der Laufwerke bewirkt, dass im Hintergrund ablaufende Eingabe/Ausgabe-Vorgänge (und andere Vorgänge, an denen das R1/R2-Paar beteiligt ist) automatisch aufhören.
  • Auf Schritt 54 folgt ein Schritt 56, in welchem eine Zuordnungstabelle auf der dem R1-Laufwerk entsprechenden Speichervorrichtung abgeändert wird. Die Zuordnungstabelle enthält dynamische Informationen über die RDF-Konfiguration einer Speichervorrichtung. Die Zuord nungstabelle kann eine zweidimensionale Matrix enthalten, welche durch logische Geräteidentifizierungen (zum Beispiel Nummern) und durch Spiegelungszahlen für jedes der logischen Geräte indexiert ist. Bei einigen Ausführungsformen kann jede Vorrichtung bis zu vier Spiegelungen aufweisen. Andere Ausführungsformen können mehr als vier Spiegelungen einsetzen. Einträge in der Zuordnungstabelle können angeben, ob eine Spiegelung für eine Vorrichtung eine lokale Spiegelung, ein R1-Laufwerk, ein R2-Laufwerk oder eine andere Art Spiegelung, wie z. B. ein BCV (Business Continuance Volume, d. h. Laufwerk ohne Beeinträchtigung des laufenden Betriebs) oder eine RAID (Redundant Array of Independent Disks, d. h. redundanter Verbund unabhängiger Platten)-Spiegelung, ist.
  • In Schritt 56 wird die Zuordnungstabelle auf der Speichervorrichtung, welche das R1-Laufwerk enthält, abgeändert, um das R1-Laufwerk zu entfernen. Auf Schritt 56 folgt ein Schritt 58, in welchem die Zuordnungstabelle auf der Speichervorrichtung, welche das R2-Laufwerk enthält, abgeändert wird, um das R2-Laufwerk zu entfernen. Auf Schritt 58 folgt ein Schritt 60, in welchem das Ergebnis der zuvor ausgeführten Vorgänge (z. B. Erfolg oder Mißerfolg) zurückgesendet wird. Im Anschluss an Schritt 60 ist die Verarbeitung beendet.
  • Wenn in Schritt 52 ermittelt wird, dass kein Zerstörungsbefehl ausgegeben wird (und somit ein Erzeugungsbefehl ausgegeben wird), dann geht die Steuerung von Schritt 52 zu einem Schritt 62, in welchem das R1- oder das R2-Laufwerk an einem ersten Standort erzeugt wird. Bei einer Ausführungsform gibt der Host den Multihop-/Multiexecute-Befehl an eine erste Speichervorrichtung, wie z. B. die lokale Speichervorrichtung 24, aus; in diesem Fall wäre der erste Standort die lokale Speichervorrichtung 24 (d. h. der erste Standort, der den Befehl empfängt). Bei einer hier dargestellten Ausführungsform ist der erste Standort, an dem die Erzeugung eines R1/R2-Paares versucht wird, die lokale Speichervorrichtung 24, welche direkt an den Host 22 angeschlossen ist. Die Erzeugung an dem ersten Standort umfasst die Abänderung der entsprechenden Zuordnungstabelle. Auf Schritt 62 folgt ein Testschritt 64, in welchem ermittelt wird, ob die Erzeugung des R1- oder R2-Laufwerks in Schritt 62 erfolgreich war. Wenn dies nicht der Fall ist, geht die Steuerung von Schritt 64 zu einem Schritt 66, in welchem eine Fehlerangabe an den Host 22 zurückgesendet wird. Im Anschluss an Schritt 66 ist die Verarbeitung beendet.
  • Wenn im Testschritt 64 ermittelt wird, dass die Erzeugung des R1- oder R2-Laufwerks in Schritt 62 erfolgreich war, dann geht die Steuerung von Schritt 64 zu einem Schritt 68, in welchem das R1- oder gegebenenfalls das R2-Laufwerk an einem zweiten Standort erzeugt wird. Die Erzeugung an dem zweiten Standort umfasst die Abänderung der entsprechenden Zuordnungstabelle. Der zweite Standort kann die zweite Speichervorrichtung sein, welche den Befehl empfängt. Bei einer hier dargestellten Ausführungsform ist der zweite Standort die Fernspeichervorrichtung 26, welche einen Befehl von dem Host 22 über die lokale Speichervorrichtung 24 empfängt.
  • Auf Schritt 68 folgt ein Testschritt 70, in welchem ermittelt wird, ob die Erzeugung in Schritt 68 erfolgreich war. Wenn im Testschritt 70 ermittelt wird, daß die Erzeugung an dem zweiten Standort nicht erfolgreich war, dann geht die Steuerung von Schritt 70 zu einem Schritt 72, in welchem der erste Standort, der erzeugt wurde, zerstört wird. Es ist anzumerken, dass R1- und R2-Laufwerke paarweise erzeugt werden, so dass ein Scheitern bei der Erzeugung eines der Laufwerke an dem zweiten Standort bewirkt, dass das Laufwerk, welches an dem ersten Standort erfolgreich erzeugt wurde, in Schritt 72 zerstört wird. Auf Schritt 72 folgt ein Schritt 74, in welchem ein Fehler an den Host 22 zurückgesendet wird auf ähnliche Weise, wie ein Fehler in Schritt 66 zurückgesendet wird, wie oben erörtert. Im Anschluss an Schritt 74 ist die Verarbeitung beendet.
  • Wenn im Testschritt 70 ermittelt wird, dass die Erzeugung des R1- oder R2-Laufwerks an dem zweiten Standort in Schritt 68 erfolgreich war, geht die Steuerung von Schritt 70 zu einem Schritt 75, in welchem ungültige Spuren für jede der Speichervorrichtungen 24, 26 festgelegt werden. Die ungültigen Spuren werden verwendet, um Unterschiede zwischen dem R1- und dem R2-Laufwerk anzuzeigen. In Fällen, in denen das R1-Laufwerk die anfänglichen Daten enthält, werden sämtliche Spuren des R1-Laufwerks auf ungültig gesetzt, was angibt, dass alle R1-Daten von den R2-Daten abweichen und daher von R1 nach R2 kopiert werden müssen. Wenn das R2-Laufwerk die zu verwendenden anfänglichen Daten enthält, dann werden sämtliche Spuren des R2-Laufwerks auf ungültig gesetzt, und ein Sync-Befehl wird an die das R1-Laufwerk enthaltende Speichervorrichtung geliefert, um zu veranlassen, dass die Spuren der dem R1-Laufwerk entsprechenden lokalen Spiegelung ungültig werden, und so ein im Hintergrund ablaufendes Kopieren von Daten von R2 nach R1 zu initiieren. Auf Schritt 75 folgt ein Schritt 78, in welchem eine Nicht-Bereit-Angabe für das R1-Laufwerk gelöscht wird, was angibt, dass RDF-Vorgänge zwischen R1 und R2 beginnen können. Es ist anzumerken, dass die Nicht-Bereit-Angabe sich auf die R1/R2-Verbindung bezieht und nicht notwendigerweise auf die Fähigkeit von R1 und/oder R2, Daten von einem Host anzunehmen. Es ist anzumerken, dass Daten in von Spuren unterschiedlichen Einheiten organisiert werden können; in diesem Fall würden die hier offenbarten Vorgänge in diesen wie auch immer gearteten Einheiten ausgeführt, welche anstelle von Spuren verwendet werden.
  • Auf Schritt 78 folgt ein Schritt 79, in welchem eine Angabe, dass der Vorgang erfolgreich war, an den Host 22 zurückgesendet wird. Im Anschluss an Schritt 79 ist die Verarbeitung beendet. Es ist anzumerken, dass das Festsetzen von ungültigen Spuren und das Festsetzen und Löschen des Gerät-nicht-bereit-Status, oben erörtert, in einer anderen Reihenfolge als der in 2 gezeigten und oben erörterten ausgeführt werden kann, vorausgesetzt, die Einstellungen werden während des Erzeugungsvorgangs und danach in einem geeigneten Zustand erhalten.
  • Bei einigen Ausführungsformen kann es nützlich sein, die R1/R2-Laufwerke in einer bestimmten Reihenfolge zu erzeugen und zu zerstören. Beispielsweise kann es nützlich sein, zunächst das R2-Laufwerk zu erzeugen, gefolgt von dem R1-Laufwerk. Ähnlich kann es nützlich sein, zunächst das R1-Laufwerk zu zerstören, gefolgt von der Zerstörung des R2-Laufwerks. Alternativ können die Laufwerke in einer beliebigen Reihenfolge erzeugt und zerstört werden, während Vorgänge gesteuert werden können durch das Setzen einer Nicht-Bereit-Angabe für das R1-Laufwerk, wobei die Nicht-Bereit-Angabe für das R1-Volumen steuert, ob Vorgänge [operations] stattfinden. Somit können die R1- und R2-Laufwerke in einer beliebigen Reihenfolge erzeugt werden, jedoch wird die Nicht-Bereit-Angabe des R1-Laufwerks nicht auf bereit gesetzt, wenn nicht und bis sowohl R1 als auch R2 erzeugt sind. Ähnlich ermöglicht das Setzen der Nicht-Bereit-Angabe für R1 in einem ersten Schritt, dass folgende Schritte zur Zerstörung von R1 und R2 in einer beliebigen Reihenfolge stattfinden.
  • Bei einigen Ausführungsformen kann es nützlich sein, zu veranlassen, dass der Befehl, welcher das R1/R2-Paar erzeugt, die jeweiligen Laufwerke angibt, die sowohl für das R1-Laufwerk als auch für das R2-Laufwerk verwendet werden sollen. Das heißt, der Host 22 kann ein vorhandenes logisches Gerät von der lokalen Speichervorrichtung 24 als R1-Laufwerk auswählen und kann außerdem ein vorhandenes logisches Gerät von der Fernspeichervorrichtung 26 als R2-Laufwerk auswählen. Bei einer alternativen Ausführungsform kann es möglich sein, zu veranlassen, dass die Fernspeichervorrichtung 26 ein beliebiges ungenutztes logisches Gerät als R2-Laufwerk auswählt. Als weitere Alternative kann eine API (Application Programming Interface = Anwendungsprogrammierschnittstelle) auf eine der Speichervorrich tungen 24, 26 und/oder den Host 22 gelegt werden, um das R2-Laufwerk in Fällen zu wählen, in denen der Systembefehl eine spezifische Laufwerksidentifikation für das R2-Laufwerk erwartet.
  • Es ist außerdem anzumerken, dass Situationen auftreten können, in denen die anfänglichen Daten für ein neu erzeugtes R1/R2-Paar auf dem R2-Laufwerk gefunden werden. Wenn beispielsweise an die Fernspeichervorrichtung 26 ein Host (nicht gezeigt) angeschlossen ist, der versagt, kann es nützlich sein, das System neu zu starten, wobei der Host 22 an die lokale Speichervorrichtung 24 angeschlossen ist. Jedoch können sich in diesem Fall die anfänglichen Daten zum Starten auf dem R2-Laufwerk befinden (d. h. auf der Fernspeichervorrichtung 26). So werden beim Start die anfänglichen Daten von der R2-Vorrichtung auf die R1-Vorrichtung kopiert, wonach der Host 22 normalen RDF-Betrieb aufrechterhält, wobei die R1-Vorrichtung sich auf der lokalen Speichervorrichtung 24 befindet und die R2-Vorrichtung sich auf der Fernspeichervorrichtung 26 befindet. Das Kopieren von der R2-Vorrichtung auf die R1-Vorrichtung (oder von einer R1-Vorrichtung auf eine R2-Vorrichtung) kann durch Verwendung eines im Hintergrund ablaufenden Kopiervorgangs erfolgen.
  • Bezugnehmend auf 3 stellt ein Flussdiagramm 80 den Betrieb des Systems dar, nachdem ein R1/R2-Paar initialisiert wurde, aber vor der Beendigung des im Hintergrund ablaufenden Kopiervorgangs. Es ist anzumerken, dass der Host 22 von einem bzw. auf ein R1-Laufwerk lesen und schreiben kann, auch wenn der im Hintergrund ablaufende Kopiervorgang nicht beendet ist.
  • Die Verarbeitung beginnt mit einem anfänglichen Testschritt 82, in welchem ermittelt wird, ob das R2-Laufwerk die anfänglichen Daten enthält. Wenn dies nicht der Fall ist, dann geht die Steuerung von dem Testschritt 82 zu einem Schritt 84, in welchem das R1-Laufwerk für den von dem Host 22 angeforderten Lese/Schreib-Vorgang verwendet wird.
  • Wenn im Testschritt 82 ermittelt wird, daß angegeben ist, dass das R2-Laufwerk die anfänglichen Daten enthält, dann geht die Steuerung vom Testschritt 82 zu einem Testschritt 86, in welchem ermittelt wird, ob die Spur, auf die geschrieben oder von der gelesen wird, ungültig ist. Eine ungültige Spur zeigt an, dass die auf dem R2-Laufwerk befindlichen anfänglichen Daten noch nicht auf das R1-Laufwerk zurückkopiert wurden. Das Festlegen ungültiger Spuren wird oben in Verbindung mit 1 erörtert. So geht, wenn im Testschritt 86 ermittelt wird, dass die Spur, auf die der Host 22 schreibt oder von der er liest, ungültig ist, die Steuerung von Schritt 86 zu einem Schritt 88, in welchem das R2-Laufwerk für den Lese/Schreib-Vorgang unter Verwendung von RDF verwendet wird. Es ist anzumerken, dass in einigen Fällen weniger als eine ganze Spur von dem Host beschrieben wird. So ist es bei einer ungültigen Spur, bei der R2 die anfänglichen Daten enthält, nützlich, zu veranlassen, dass die Daten von dem Host 22 an das R2-Laufwerk geliefert werden. Im Anschluss an Schritt 88 ist die Verarbeitung beendet. Wenn alternativ im Testschritt 86 ermittelt wird, dass die Spur, von der gelesen oder auf die geschrieben wird, nicht ungültig ist, dann geht die Steuerung vom Testschritt 86 zu dem Schritt 84, in welchem das R1-Laufwerk in einer herkömmlichen Weise verwendet wird. Im Anschluss an Schritt 84 ist die Verarbeitung beendet.
  • Bezugnehmend auf 4 zeigt ein Diagramm einen globalen Speicher, welcher den Speicher 37 der lokalen Speichervorrichtung 24 oder den Speicher 38 der Fernspeichervorrichtung 26 darstellen könnte. Der globale Speicher umfasst einen Speicherplatz für statische Konfigurationsdaten 92 und einen Speicherplatz für dynamische Konfigurationsdaten 94, wie z. B. die oben erörterte Zuordnungstabelle. Statische Konfigurationsdaten 92 umfassen Konfigurationsinformationen für die Speichervorrichtung, welche in der Fabrik oder von einem Techniker eingerichtet werden. Die statischen Konfigurationsdaten 92 können in einer Datei bereitgestellt werden, die in einen globalen Halbleiterspeicher gelesen wird, oder sie können in nicht-flüchtigen Teilen eines Halbleiterspeichers bereitgestellt werden.
  • Die dynamischen Konfigurationsdaten 94 stellen die Konfiguration des entsprechenden Systems dar, welche ausgehend von den statischen Konfigurationsdaten 92 abgeändert wurde. So können beispielsweise die statischen Konfigurationsdaten 92 angeben, dass bestimmte Laufwerke ein R1/R2-RDF-Paar bilden, wogegen die dynamischen Konfigurationsdaten 94 den statischen Konfigurationsdaten 92 vorrangig sind, indem sie angeben, dass das bestimmte R1/R2-RDF-Paar im Folgenden zerstört wurde. Die dynamischen Konfigurationsdaten 94 können auch auf einer Platte gespeichert und in einen elektronischen Speicher eingelesen werden und/oder können in einem elektronischen Speicher gespeichert werden, welcher nicht-flüchtig ist. Bei einigen Ausführungsformen können die dynamischen Konfigurationsdaten 94 den statischen Konfigurationsdaten 92 vorrangig sein. Bei anderen Ausführungsformen sind die dynamischen Konfigurationsdaten 94 lediglich zusätzlich und können nur in Fällen verwendet werden, in denen für ein Element kein Eintrag in den statischen Konfigurationsdaten 92 vorhanden ist.
  • Bezugnehmend auf 5 stellt ein Flussdiagramm 100 die Bestimmung einer Konfiguration eines bestimmten logischen Geräts dar. Es ist anzumerken, dass jeder Lese- oder Schreibzugriff von einem bzw. auf ein logischen/s Gerät die Kenntnis der Konfiguration des Geräts verwendet, um zu ermitteln, ob beispielsweise das Gerät/die Vorrichtung Bestandteil eines R1/R2-Paars ist.
  • Die Verarbeitung beginnt mit einem ersten Schritt 102, in welchem ermittelt wird, ob ein Eintrag für das logische Gerät in den dynamischen Konfigurationsdaten 94 vorhanden ist. Wenn dies nicht der Fall ist, dann geht die Steuerung von Schritt 102 zu einem Schritt 104, in welchem die statischen Konfigurationsdaten 92 konsultiert werden, um die Konfiguration des Geräts zu bestimmen. Es ist anzumerken, dass es für jedes logische Gerät möglich ist, eine lokale, und somit leicht zugreifbare, Kopie der statischen Konfigurationsdaten 92 zu haben, da sich die statischen Konfigurationsdaten 92 definitionsgemäß nicht ändern. Im Anschluss an Schritt 104 ist die Verarbeitung beendet.
  • Wenn im Testschritt 102 ermittelt wird, dass ein Eintrag für das logische Gerät in den dynamischen Konfigurationsdaten 94 vorhanden ist, dann geht die Steuerung vom Testschritt 102 zu einem Schritt 106, in welchem die dynamischen Konfigurationsdaten 94 verwendet werden, um die Konfiguration des logischen Geräts zu bestimmen. Es ist anzumerken, dass es als Alternative möglich ist, zunächst die statischen Konfigurationsdaten 92 zu prüfen und dann zu prüfen, ob ein vorrangiger Eintrag in den dynamischen Konfigurationsdaten 94 vorhanden ist.
  • Bezugnehmend auf 6 zeigt ein Diagramm eine Speichervorrichtung 110 mit mehr Details. Die Speichervorrichtung 110 umfasst eine Mehrzahl von Host-Adaptern (HA) 112114 und eine Mehrzahl von Plattenadaptern (DA) 116118. Jeder der Plattenadapter 116118 ist an eine entsprechende einer Mehrzahl von Platten 120122 angeschlossen. Die Speichervorrichtung 110 umfasst auch einen globalen Speicher 124, einen RDF-Adapter (RA) 126 und eine Außenverbindung 128 zu dem RA 126. Ein Bus 130 verbindet die HAs 112114, die DAs 116118, den globalen Speicher 124 und den RA 126. Jeder der HAs 112114 umfasst eine Verbindung zum Anschluss an einen Host (nicht gezeigt).
  • Für jeden Lese- und Schreib-Vorgang, der von einem der an einen der HAs 112114 angeschlossenen Hosts ausgeführt wird, bestimmt der entsprechende der HAs 112114, wo die Daten anzuordnen sind. Wenn beispielsweise die Speichervorrichtung 110 ein lokales Laufwerk eines R1/R2-Paares umfasst, muss der bestimmte der HAs 112114, der die Daten von dem Host empfängt, in der Lage sein, die Daten zu dem richtigen der Plattenadapter 116118 zu leiten, um die Daten an das R1-Laufwerk zu liefern, und muss auch in der Lage sein, entsprechend die Daten an den RA 126 zu leiten, der die Daten an das R2-Laufwerk auf einer anderen Speichervorrichtung (nicht gezeigt) liefert. Zusätzlich greifen in Verbindung mit einem im Hintergrund ablaufenden Kopiervorgang die DAs 116118 auf Informationen zu, welche die Quelle und das Ziel der Daten angeben. So würden beispielsweise, wenn ein R1/R2-Paar zwischen der Speichervorrichtung 110 und einer anderen Fernspeichervorrichtung (nicht gezeigt) eingerichtet wird, dann die DAs 116118 das im Hintergrund ablaufende Kopieren von Daten von dem die anfänglichen Daten enthaltenden Laufwerk (R1 oder R2) zu dem anderen Laufwerk unterstützen. In einem derartigen Fall greifen die DAs 116118 auf Informationen zu, welche angeben, wohin die Daten geleitet werden sollten (d. h. welches Laufwerk das entsprechende der Laufwerke des R1/R2-Paares ist). Ähnlich ist es nützlich, dass der RA 126 auf die Konfigurationsinformationen für die Laufwerke zugreift, um in der Lage zu sein, beispielsweise eingehende Daten zu verarbeiten.
  • Entsprechend ist es nützlich, dass die HAs 112114, die DAs 116118 und der RA 126 in der Lage sind, Zugriff auf genaue Informationen zu haben, welche die Einrichtungskonfiguration der Laufwerke auf der Speichervorrichtung 110 angeben. Ein Weg zum Erlangen der Informationen ist das Lesen der dynamischen Konfigurationsdaten 94 von dem globalen Speicher 124 für jeden Lese- oder Schreib-Vorgang und dann, wenn die Vorrichtung, für welche die Anfrage getätigt wird, nicht in den dynamischen Konfigurationsdaten 94 gefunden wird, auf die statischen Konfigurationsdaten 92 zuzugreifen. Jedoch könnte der Zugriff auf den globalen Speicher für jeden Eingabe/Ausgabe-Vorgang sich nachteilig auf die Leistung der Speichervorrichtung 110 auswirken. Dementsprechend wird ein effizienterer Mechanismus zur Bestimmung der Konfiguration der Geräte der Speichervorrichtung 110 bereitgestellt.
  • Bezugnehmend auf 7 stellt ein Diagramm 150 einen Mechanismus zur Verringerung der Anzahl der zur Bestimmung von Konfigurationsdaten verwendeten Zugriffe auf den globalen Speicher dar. Ein Bereitschafts-Puffer 152 stellt Daten dar, auf welche jedes Mal zugegriffen wird, wenn ein Eingabe/Ausgabe-Vorgang ausgeführt wird. Der Bereitschafts-Puffer 152 gibt nützliche Eingabe/Ausgabe-bezogene Informationen an, wie z. B. den Zustand der Vorrichtungen/Geräte und/oder den Zustand des Systems. Somit wird auf den Bereitschafts-Puffer 152 für jeden Eingabe/Ausgabe-Vorgang zugegriffen.
  • Der Bereitschafts-Puffer 152 umfaßt ein Änderungsnummern-Feld 154, welches bei einigen Ausführungsformen ein Datenbyte ist, welches jedes Mal, wenn eine Vorrichtungskonfiguration sich geändert hat, inkrementiert wird. So kann eine einen Eingabe/Ausgabe-Vorgang ausführende Vorrichtung das Änderungsnummern-Feld 154 prüfen, um zu ermitteln, ob eine weitere Anfrage notwendig ist.
  • Auf einen Satz Bytes 156 kann zugegriffen werden als Reaktion auf eine Änderung des Änderungsnummern-Feldes 154. Ein bestimmtes Byte 158 aus dem Satz Bytes 156 könnte verwendet werden, um eine Veränderung bei der dynamischen RDF-Konfiguration für die Speichervorrichtung anzuzeigen. So kann die Kombination des Bereitschafts-Puffers 152 und des Satzes Bytes 156 verwendet werden, um die Zugriffe auf den globalen Speicher 124 jedes Mal, wenn ein Eingabe/Ausgabe-Vorgang ausgeführt wird, zu minimieren.
  • Bezugnehmend auf 8 stellt ein Flussdiagramm 170 Schritte dar, welche in Verbindung mit der Verwendung des Bereitschafts-Puffers 152 und des Satzes Bytes 156 ausgeführt werden. Die Verarbeitung beginnt mit einem ersten Schritt 172, in welchem eine einen Einga be/Ausgabe-Vorgang ausführende Vorrichtung ermittelt, ob das Bereitschafts-Pufferfeld 154 verändert (z. B. inkrementiert) wurde. Wenn in Schritt 172 ermittelt wird, daß das Bereitschafts-Pufferfeld nicht verändert wurde, dann geht die Steuerung von Schritt 172 zu einem Schritt 174, in welchem die Vorrichtung, wie z. B. einer der HAs 112114, einer der DAs 116118 und/oder der RA 126, lokal gespeicherte Daten verwendet, um Konfigurationsinformationen zu bestimmen. Das heißt, wenn das Änderungsnummern-Feld 154 gleich einer zuvor beobachteten Version des Änderungsnummern-Feldes 154 ist, so gibt dies an, dass die RDF-Konfiguration keine Änderungen erfahren hat. Somit geht die Steuerung von Schritt 172 zu dem Schritt 174, in welchem eine lokal gespeicherte Kopie der Konfigurationsdaten von der den Eingabe/Ausgabe-Vorgang ausführenden Vorrichtung verwendet werden kann, um zu ermitteln, wie bestimmte Daten zu bearbeiten sind. Im Anschluss an Schritt 174 ist die Verarbeitung beendet.
  • Wenn im Testschritt 172 ermittelt wird, dass sich das Änderungsnummern-Feld 154 verändert hat, dann geht die Steuerung von Schritt 172 zu einem Schritt 176, in welchem der Satz Bytes 156 entnommen wird. Der Satz Bytes 156 kann beispielsweise in dem globalen Speicher 124 oder in einem anderen Speicher, wie z. B. einem nicht-flüchtigen elektronischen Speicher oder auf einer Platte, gespeichert sein.
  • Auf Schritt 176 folgt ein Testschritt 178, in welchem ermittelt wird, ob das Byte 158 in dem Satz Bytes 156, welches einer RDF-Konfigurationsveränderung entspricht, geändert (z. B. inkrementiert) wurde. Wenn nicht, dann geht die Steuerung von Schritt 178 zu Schritt 174, oben erörtert, in welchem die gespeicherte lokale Kopie der Konfigurationsdaten verwendet wird, um die RDF-Konfiguration zu bestimmen. Im Anschluss an Schritt 174 ist die Verarbeitung beendet.
  • Wenn im Testschritt 178 ermittelt wird, dass sich die RDF-Konfiguration geändert hat, dann geht die Steuerung von Schritt 178 zu einem Schritt 180, in welchem auf die dynamischen Konfigurationsdaten 94 in dem globalen Speicher 124 zugegriffen wird. Auf Schritt 180 folgt ein Schritt 182, in welchem die gespeicherte lokale Kopie der Konfigurationsdaten mit der neuen Version der Daten von dem globalen Speicher 124 aktualisiert wird. Auf Schritt 182 folgt der Schritt 174, in welchem die lokal gespeicherte Version der Konfigurationsdaten (welche gerade aktualisiert wurde) von der Vorrichtung verwendet wird, um die RDF-Konfiguration zu bestimmen. Im Anschluss an Schritt 174 ist die Verarbeitung beendet.
  • Bei einigen Ausführungsformen ist es möglich, auch einen im Hintergrund ablaufenden Mechanismus aufzunehmen, der periodisch auf die dynamischen Konfigurationsdaten von der Zuordnungstabelle zugreift und die lokale Kopie der Konfigurationsdaten in der Speicherung für jede Vorrichtung aktualisiert. So kann jede Vorrichtung durch diese im Hintergrund ablaufende Aufgabe aktualisiert werden, ohne dass zuerst ein Eingabe/Ausgabe-Vorgang ausgeführt werden muss.
  • Es ist anzumerken, dass der hier erörterte Mechanismus zur Verwendung von Änderungsnummern zur Steuerung der Zugriffe auf den globalen Speicher bei der Bestimmung der RDF-Konfiguration des Systems ebenfalls auf andere Systemparameter, wie z. B. die BCV-Konfiguration, angewendet werden kann. Ein BCV (Business Continuance Volume) kann eine konsistente, synchronisierte Kopie von Daten von einer anderen Vorrichtung enthalten, welche zur Verwendung beispielsweise mit Host-Anwendungen konfiguriert ist. Die BCV-Kopie der Daten kann unabhängig durch eine andere Anwendung verwendet werden, um auf die Datenkopie einzuwirken, während zugelassen wird, dass der Host kontinuierliche Datenvorgänge auf die andere Vorrichtung ausführt.
  • Bezugnehmend auf 9 stellt ein Flussdiagramm 50' eine alternative Ausführungsform zu der in Verbindung mit dem Flussdiagramm 50 in 2 beschriebenen Ausführungsform dar. Das Flussdiagramm 50 in 2 zeigt ein System, in welchem zwei Befehle, Erzeugen und Zerstören, vorhanden sind. Das durch das Flussdiagramm 50' in 9 dargestellte System sieht zusätzlich zu den oben erörterten Erzeugungs- und Zerstörungsbefehlen einen dritten Befehl vor, der R1 und R2 austauscht. Der Austausch von R1 und R2 kann durch Verwendung eines einzigen Befehls ausgeführt werden, welcher veranlasst, dass das R1-Laufwerk zum R2-Laufwerk wird, und veranlasst, dass das R2-Laufwerk zum R1-Laufwerk wird. Dies kann nützlich sein in Fällen, in denen beispielsweise ein an eine lokale Speichervorrichtung angeschlossener Host durch einen unterschiedlichen Host ersetzt wird, der an eine entsprechende Fernspeichervorrichtung angeschlossen ist. Der Befehl kann von dem Host geliefert werden. Der Host kann einen Multihop-/Multiexecute-Systembefehl senden, wie auch an anderer Stelle hier beschrieben. Die Verarbeitung beginnt mit einem ersten Schritt 52', in welchem ermittelt wird, ob ein Zerstörungsbefehl ausgegeben wurde. Wenn dies der Fall ist, dann geht die Steuerung von Schritt 52' zum Schritt 54, welcher oben in Verbindung mit dem Flussdiagramm 50 in 2 erörtert wird. Wenn andererseits in Schritt 52' ermittelt wird, dass kein Zerstörungsbefehl ausgegeben wurde, dann geht die Steuerung von Schritt 52' zu einem Schritt 53, in welchem ermittelt wird, ob ein Erzeugungsbefehl ausgegeben wurde. Wenn ein Erzeugungsbefehl ausgegeben wurde, geht die Steuerung von Schritt 53 zum Schritt 62, welcher oben in Verbindung mit dem Flussdiagramm 50 in 2 erörtert ist.
  • Wenn im Testschritt 53 ermittelt wird, dass kein Erzeugungsbefehl ausgegeben wurde, dann wurde ein R1/R2-Austauschbefehl ausgegeben. Das heißt, bei einem System mit drei Befehlen sieht ein Eliminierungsprozess vor, dass wenn in Schritt 52' ermittelt wird, dass kein Zerstörungsbefehl ausgegeben wurde, und wenn in Schritt 53 ermittelt wird, daß kein Erzeugungsbefehl ausgegeben wurde, dann ein R1/R2-Austauschbefehl ausgegeben wurde. Alternativ kann ein bestimmter Teil eines Programmcodes auf der Basis des empfangenen Befehls ausgeführt werden, welcher ein R1/R2-Austauschbefehl sein könnte. Für den R1/R2-Austauschbefehl geht die Steuerung von Schritt 53 zu einem Schritt 192, in welchem der Vorrichtung-nicht-bereit-Merker [device not ready flag] für R1 gesetzt wird. Das Setzen des Vorrichtung-nicht-bereit-Merkers für R1 in Schritt 192 bewirkt, dass RDF-Vorgänge für das R1/R2-Paar aufhören. Auf den Schritt 192 folgt ein Schritt 194, in welchem ein Eintrag für die Zuordnungstabelle, welche der das R1-Laufwerk enthaltenden Speichervorrichtung entspricht, und ein Eintrag für die Zuordnungstabelle, welche der das R2-Laufwerk enthaltenden Speichervorrichtung entspricht, beide abgeändert werden, so dass das R1-Laufwerk zum R2-Laufwerk wird und umgekehrt. Auf Schritt 194 folgt ein Schritt 196, in welchem das Vorrichtung-nicht-bereit-Bit für die neue R1-Vorrichtung gelöscht wird. Das Löschen des Vorrichtung-nicht-bereit-Bits für das R1-Laufwerk in Schritt 196 ermöglicht es, dass RDF-Vorgänge wiederaufgenommen werden. Wenn jedoch die RDF-Vorgänge wiederaufgenommen werden, ist das vorherige R2-Laufwerk nun das R1-Laufwerk, und das vorherige R1-Laufwerk ist nun das R2-Laufwerk. Auf Schritt 196 folgt ein Schritt 198, in welchem das Ergebnis der Vorgänge, welche dem Befehl zum Austausch von R1 und R2 entsprechen, (d. h. Erfolg oder Misserfolg) an den Host zurückgesendet werden. Im Anschluss an Schritt 198 ist die Verarbeitung beendet.
  • Es ist anzumerken, dass bei dem hier offenbarten System der Host 22 eine allein operierende [standalone] Rechenvorrichtung, Teil eines Netzwerks, eine andere Speichervorrichtung, ein Computer mit einigen Speicherfähigkeiten und/oder eine beliebige Vorrichtung sein kann, welche in der Lage ist, die hier offenbarte Funktionalität bereitzustellen. Ähnlich kann das hier offenbarte System mit einer beliebigen geeigneten, als lokale Speichervorrichtung 24 verwendeten Vorrichtung umgesetzt werden, einschließlich möglicherweise einer weiteren Rechenvorrichtung, einer Netzwerkverbindung, etc., welche konfigu riert ist, um die lokale Speichervorrichtung 24 zu emulieren und/oder auf andere Weise die hier offenbarte Funktionalität bereitzustellen.
  • Auch wenn die Erfindung in Verbindung mit mehreren Ausführungsformen offenbart wurde, werden Abänderungen derselben für Fachleute leicht ersichtlich sein.
  • Gemäß einer Ausführungsform kann ein Verfahren zur Umkehr eines Kommunikationspfades zwischen einem ersten Laufwerk 33ac auf einer ersten Speichervorrichtung 24 und einem zweiten Laufwerk 34ac auf einer zweiten Speichervorrichtung 26 die folgenden Merkmale umfassen:
    Kommunikation zwischen dem ersten 33ac und zweiten 34ac Laufwerk; Aussetzen der Kommunikation zwischen dem ersten 33ac und zweiten 34ac Laufwerk, während die Vorgänge für andere Laufwerke der Speichervorrichtungen aufrechterhalten werden;
    Veranlassen, dass das erste Laufwerk 33ac von einem Quell-Laufwerk in ein Ziel-Laufwerk umgewandelt wird, ohne das erste Laufwerk 33ac zu zerstören;
    Veranlassen, dass das zweite Laufwerk 34ac von einem Ziel-Laufwerk in ein Quell-Laufwerk umgewandelt wird, ohne das zweite Laufwerk 34ac zu zerstören; und
    Wiederaufnahme der Kommunikation zwischen dem ersten 33ac und dem zweiten 34ac Laufwerk.
  • Das Veranlassen der Umwandlung des ersten Laufwerks 33ac von einem Quell-Laufwerk in ein Ziel-Laufwerk kann die Abänderung einer Tabelle der ersten Speichervorrichtung 24 umfassen. Das Veranlassen der Umwandlung des zweiten Laufwerks 34ac von einem Quell-Laufwerk in ein Ziel-Laufwerk kann die Abänderung einer Tabelle der zweiten Speichervorrichtung 26 umfassen. Das Aussetzen der Kom munikation kann das Versetzen des ersten Laufwerks 33ac in einen Nicht-Bereit-Zustand umfassen. Die Wiederaufnahme der Kommunikation kann das Versetzen des zweiten Laufwerks 34ac in einen Bereit-Zustand umfassen.
  • Das genannte Verfahren kann ferner das Zurückgeben eines Ergebnisses umfassen, welches die erfolgreiche Umkehr des Kommunikationspfades angibt.
  • Gemäß einer Ausführungsform kann ein Verfahren zur Verwaltung von Laufwerken auf Speichervorrichtungen die Ausführung des Verfahrens wie oben beschrieben bei Empfang eines Befehls umfassen, welcher die Umkehr eines Kommunikationspfades zwischen dem genannten ersten Laufwerk 33ac auf einer ersten Speichervorrichtung 24 und einem zweiten Laufwerk 34ac auf einer zweiten Speichervorrichtung 26 anfordert. Der Befehl kann ein einziger Multihop-, Multiexecute-Befehl (Mehrsprung-, Mehrfachausführungs-Befehl) sein, der die Ausführung von Vorgängen auf der ersten 24 und zweiten 26 Speichervorrichtung veranlasst.
  • Gemäß einer Ausführungsform kann ein Computerprogrammprodukt, welches einen Kommunikationspfad zwischen einem ersten Laufwerk 33ac auf einer ersten Speichervorrichtung 24 und einem zweiten Laufwerk 34ac auf einer zweiten Speichervorrichtung 26 umkehrt, ausführbaren Programmcode zum Ausführen des Verfahrens wie oben beschrieben umfassen.

Claims (5)

  1. Speichervorrichtung (24), umfassend: einen globalen Speicher (37); eine Mehrzahl von an den globalen Speicher (37) angeschlossenen Plattenschnittstelleneinheiten (35ac); eine Mehrzahl von an die Mehrzahl Plattenschnittstelleneinheiten (35ac) angeschlossenen Plattenlaufwerken (33ac); mindestens eine RDF-Adaptereinheit (30), um die Speichervorrichtung (24) an eine Fernspeichervorrichtung (26) anzuschließen; und ein innerhalb der Speichervorrichtung (24) ausgeführtes Computerprogramm, wobei das Computerprogramm ausführbaren Code umfasst, welcher einen Kommunikationspfad zwischen einem ersten logischen Laufwerk (33ac) der Speichervorrichtung (24) und einem zweiten logischen Laufwerk (34ac) der Fernspeichervorrichtung (26) umkehrt durch Aussetzen der Kommunikation zwischen dem ersten (33ac) und dem zweiten (34ac) Laufwerk, einschließlich des Setzens eines Merkers [flag] für das erste Laufwerk (33ac) auf einen Vorrichtung-nicht-bereit-Zustand, Umwandeln des ersten Laufwerks (33ac) von einem Quell-Laufwerk in ein Ziel-Laufwerk ohne Zerstören des ersten Laufwerks (33ac) durch Abändern einer der ersten Speichervorrichtung (24) entsprechenden Tabelle, um anzuzeigen, dass das erste Laufwerk (33ac) das Ziel-Laufwerk ist, Umwandeln des zweiten Laufwerks (34ac) von einem Ziel-Laufwerk in ein Quell-Laufwerk ohne Zerstören des zweiten Laufwerks (34ac) durch Abändern einer der zweiten Speichervorrichtung entsprechenden Tabelle, um anzuzeigen, dass das zweite Laufwerk (34ac) das Quell-Laufwerk ist; und Wiederaufnahme der Kommunikation zwischen dem ersten Laufwerk (33ac) und dem zweiten Laufwerk (34ac), einschließlich des Setzens eines Merkers für das zweite Laufwerk (34ac) auf einen Vorrichtung-bereit-Zustand.
  2. Speichervorrichtung (24) nach Anspruch 1, dadurch gekennzeichnet, dass die Speichervorrichtung (24) den Kommunikationspfad auf den Empfang eines Befehls hin umkehrt.
  3. Speichervorrichtung (24, 110) nach Anspruch 1, ferner umfassend: eine Mehrzahl von an den globalen Speicher (124) angeschlossenen Host-Adaptereinheiten (112114) zur Ermöglichung des Zugriffs auf die Speichervorrichtung (24, 220) durch mindestens einen Host (22).
  4. Speichervorrichtung nach Anspruch 3, wobei der Host (22) eines der folgenden sein kann: eine allein operierende [standalone] Rechenvorrichtung, ein Teil eines Netzwerks, eine andere Speichervorrichtung und ein Computer mit Speicherfähigkeiten.
  5. Speichervorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass das Computerprogramm ferner ausführbaren Code umfasst, welcher nach Empfang einer Datenanforderung von einem Host: ermittelt, ob das erste Laufwerk oder das zweite Laufwerk anfängliche Daten enthält; wenn das genannte zweite Laufwerk nicht die anfänglichen Daten enthält, auf das erste Laufwerk für die Datenanforderung zugreift; wenn das zweite Laufwerk die anfänglichen Daten enthält, ermittelt, ob die der Datenanforderung entsprechenden Daten von dem zweiten Laufwerk auf das erste Laufwerk kopiert wurden; wenn die Daten von dem ersten Laufwerk kopiert wurden, auf das erste Laufwerk zur Datenanforderung zugreift und anderenfalls auf das zweite Laufwerk zur Datenanforderung zugreift.
DE60224598T 2001-11-14 2002-11-07 Umkehr eines Kommunikationspfades zwischen Speichergeräten Expired - Lifetime DE60224598T2 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US33299101P 2001-11-14 2001-11-14
US332991P 2001-11-14
US998683 2001-11-30
US09/998,683 US6976139B2 (en) 2001-11-14 2001-11-30 Reversing a communication path between storage devices

Publications (2)

Publication Number Publication Date
DE60224598D1 DE60224598D1 (de) 2008-02-21
DE60224598T2 true DE60224598T2 (de) 2008-12-24

Family

ID=26988494

Family Applications (2)

Application Number Title Priority Date Filing Date
DE60224598T Expired - Lifetime DE60224598T2 (de) 2001-11-14 2002-11-07 Umkehr eines Kommunikationspfades zwischen Speichergeräten
DE60212922T Expired - Lifetime DE60212922T2 (de) 2001-11-14 2002-11-07 Umkehr eines Kommunikationspfades zwischen Speichergeräten

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE60212922T Expired - Lifetime DE60212922T2 (de) 2001-11-14 2002-11-07 Umkehr eines Kommunikationspfades zwischen Speichergeräten

Country Status (4)

Country Link
US (3) US6976139B2 (de)
EP (1) EP1313017B1 (de)
JP (1) JP3779257B2 (de)
DE (2) DE60224598T2 (de)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7864758B1 (en) * 2001-09-28 2011-01-04 Emc Corporation Virtualization in a storage system
US7219201B2 (en) * 2003-09-17 2007-05-15 Hitachi, Ltd. Remote storage disk control device and method for controlling the same
JP2005157712A (ja) * 2003-11-26 2005-06-16 Hitachi Ltd リモートコピーネットワーク
JP4488807B2 (ja) * 2004-06-25 2010-06-23 株式会社日立製作所 ボリューム提供システム及び方法
JP4830562B2 (ja) * 2006-03-17 2011-12-07 株式会社日立製作所 情報処理システムのデータ入出力方法及び情報処理システム
JP4842720B2 (ja) 2006-06-29 2011-12-21 株式会社日立製作所 ストレージシステム及びデータ複製方法
US8135929B1 (en) 2008-03-27 2012-03-13 Emc Corporation Cascaded remote data facility system having diskless intermediate RDF site providing logical storage device functionality
US8589645B1 (en) 2008-03-27 2013-11-19 Emc Corporation Remote read for storage devices
US8122209B1 (en) 2008-03-27 2012-02-21 Emc Corporation Diskless storage device
US8335899B1 (en) 2008-03-31 2012-12-18 Emc Corporation Active/active remote synchronous mirroring
US8566549B1 (en) 2008-12-31 2013-10-22 Emc Corporation Synchronizing performance requirements across multiple storage platforms
US9606870B1 (en) 2014-03-31 2017-03-28 EMC IP Holding Company LLC Data reduction techniques in a flash-based key/value cluster storage
US10324635B1 (en) 2016-03-22 2019-06-18 EMC IP Holding Company LLC Adaptive compression for data replication in a storage system
US10565058B1 (en) 2016-03-30 2020-02-18 EMC IP Holding Company LLC Adaptive hash-based data replication in a storage system
US10409520B1 (en) 2017-04-27 2019-09-10 EMC IP Holding Company LLC Replication of content-based storage using address space slices
US10503609B1 (en) 2017-04-27 2019-12-10 EMC IP Holding Company LLC Replication link smoothing using historical data
US11360688B2 (en) 2018-05-04 2022-06-14 EMC IP Holding Company LLC Cascading snapshot creation in a native replication 3-site configuration
US10705753B2 (en) 2018-05-04 2020-07-07 EMC IP Holding Company LLC Fan-out asynchronous replication logical level caching
US10860239B2 (en) 2018-05-04 2020-12-08 EMC IP Holding Company LLC Fan-out asynchronous replication caching
US10853221B2 (en) 2018-05-04 2020-12-01 EMC IP Holding Company LLC Performance evaluation and comparison of storage systems
US11048722B2 (en) 2018-07-31 2021-06-29 EMC IP Holding Company LLC Performance optimization for data persistency in asynchronous replication setups
US10613793B1 (en) 2018-11-01 2020-04-07 EMC IP Holding Company LLC Method to support hash based xcopy synchronous replication
US10719249B1 (en) 2019-01-31 2020-07-21 EMC IP Holding Company LLC Extent lock resolution in active/active replication
US10853200B2 (en) 2019-02-01 2020-12-01 EMC IP Holding Company LLC Consistent input/output (IO) recovery for active/active cluster replication
US11194666B2 (en) 2019-04-26 2021-12-07 EMC IP Holding Company LLC Time addressable storage in a content addressable storage system
US10719257B1 (en) 2019-04-29 2020-07-21 EMC IP Holding Company LLC Time-to-live (TTL) license management in an active/active replication session
US11216388B2 (en) 2019-04-30 2022-01-04 EMC IP Holding Company LLC Tiering between storage media in a content aware storage system
US11301138B2 (en) 2019-07-19 2022-04-12 EMC IP Holding Company LLC Dynamic balancing of input/output (IO) operations for a storage system
US10908828B1 (en) 2019-07-25 2021-02-02 EMC IP Holding Company LLC Enhanced quality of service (QoS) for multiple simultaneous replication sessions in a replication setup
US11238063B2 (en) 2019-07-25 2022-02-01 EMC IP Holding Company LLC Provenance-based replication in a storage system
US11429493B2 (en) 2020-01-20 2022-08-30 EMC IP Holding Company LLC Remote rollback of snapshots for asynchronous replication
US11593396B2 (en) 2020-09-23 2023-02-28 EMC IP Holding Company LLC Smart data offload sync replication
US11281407B1 (en) 2020-09-23 2022-03-22 EMC IP Holding Company LLC Verified write command in active-active replication

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5544347A (en) 1990-09-24 1996-08-06 Emc Corporation Data storage system controlled remote data mirroring with respectively maintained data indices
US5241668A (en) * 1992-04-20 1993-08-31 International Business Machines Corporation Method and system for automated termination and resumption in a time zero backup copy process
JPH07104945A (ja) 1993-10-07 1995-04-21 Hitachi Ltd 複写処理方法
US5799323A (en) 1995-01-24 1998-08-25 Tandem Computers, Inc. Remote duplicate databased facility with triple contingency protection
US5680640A (en) 1995-09-01 1997-10-21 Emc Corporation System for migrating data by selecting a first or second transfer means based on the status of a data element map initialized to a predetermined state
US5809224A (en) * 1995-10-13 1998-09-15 Compaq Computer Corporation On-line disk array reconfiguration
US6405294B1 (en) * 1995-12-29 2002-06-11 Mci Communications Corporation Data center migration method and system using data mirroring
US5852715A (en) 1996-03-19 1998-12-22 Emc Corporation System for currently updating database by one host and reading the database by different host for the purpose of implementing decision support functions
US5901327A (en) 1996-05-28 1999-05-04 Emc Corporation Bundling of write data from channel commands in a command chain for transmission over a data link between data storage systems for remote data mirroring
US6052797A (en) 1996-05-28 2000-04-18 Emc Corporation Remotely mirrored data storage system with a count indicative of data consistency
US6101497A (en) 1996-05-31 2000-08-08 Emc Corporation Method and apparatus for independent and simultaneous access to a common data set
US5933653A (en) 1996-05-31 1999-08-03 Emc Corporation Method and apparatus for mirroring data in a remote data storage system
US6092066A (en) 1996-05-31 2000-07-18 Emc Corporation Method and apparatus for independent operation of a remote data facility
US6341333B1 (en) 1997-10-06 2002-01-22 Emc Corporation Method for transparent exchange of logical volumes in a disk array storage device
US6145066A (en) * 1997-11-14 2000-11-07 Amdahl Corporation Computer system with transparent data migration between storage volumes
US6157991A (en) 1998-04-01 2000-12-05 Emc Corporation Method and apparatus for asynchronously updating a mirror of a source device
JP2000132343A (ja) 1998-08-20 2000-05-12 Hitachi Ltd 記憶装置システム
US6529944B1 (en) * 1999-01-06 2003-03-04 Emc Corporation Host system for remote control of mass storage volumes using cascading commands
US6209002B1 (en) 1999-02-17 2001-03-27 Emc Corporation Method and apparatus for cascading data through redundant data storage units
US6643667B1 (en) 1999-03-19 2003-11-04 Hitachi, Ltd. System and method for replicating data
JP2000330730A (ja) 1999-05-21 2000-11-30 Nec Corp ディスクアレイ装置の差分コピー方式
US6539462B1 (en) 1999-07-12 2003-03-25 Hitachi Data Systems Corporation Remote data copy using a prospective suspend command
US6446175B1 (en) 1999-07-28 2002-09-03 Storage Technology Corporation Storing and retrieving data on tape backup system located at remote storage system site
JP3606797B2 (ja) 1999-09-30 2005-01-05 富士通株式会社 記憶装置のデータ領域間の複写処理方法、記憶システム、及びその記憶媒体
US6757797B1 (en) 1999-09-30 2004-06-29 Fujitsu Limited Copying method between logical disks, disk-storage system and its storage medium
US6401178B1 (en) 1999-12-23 2002-06-04 Emc Corporatiion Data processing method and apparatus for enabling independent access to replicated data
US6499112B1 (en) 2000-03-28 2002-12-24 Storage Technology Corporation Automatic stand alone recovery for peer to peer remote copy (PPRC) operations
JP2001337790A (ja) 2000-05-24 2001-12-07 Hitachi Ltd 記憶システム及びその階層管理制御方法
US6457109B1 (en) 2000-08-18 2002-09-24 Storage Technology Corporation Method and apparatus for copying data from one storage system to another storage system
US6594745B2 (en) 2001-01-31 2003-07-15 Hewlett-Packard Development Company, L.P. Mirroring agent accessible to remote host computers, and accessing remote data-storage devices, via a communcations medium
US6862632B1 (en) 2001-11-14 2005-03-01 Emc Corporation Dynamic RDF system for transferring initial data between source and destination volume wherein data maybe restored to either volume at same time other data is written
US6701392B1 (en) 2001-11-14 2004-03-02 Emc Corporation Hierarchical approach to indentifying changing device characteristics

Also Published As

Publication number Publication date
US8782357B2 (en) 2014-07-15
DE60224598D1 (de) 2008-02-21
US9037816B1 (en) 2015-05-19
DE60212922D1 (de) 2006-08-17
JP3779257B2 (ja) 2006-05-24
US20030172227A1 (en) 2003-09-11
US20060064543A1 (en) 2006-03-23
EP1313017B1 (de) 2006-07-05
EP1313017A1 (de) 2003-05-21
DE60212922T2 (de) 2007-02-15
US6976139B2 (en) 2005-12-13
JP2003167685A (ja) 2003-06-13

Similar Documents

Publication Publication Date Title
DE60224598T2 (de) Umkehr eines Kommunikationspfades zwischen Speichergeräten
DE102004064069B4 (de) Plattenarrayvorrichtung
DE60038364T2 (de) Computersystem und Speicherauszugsdatenverwaltungsverfahren
DE69636330T2 (de) Verfahren für On-line- und Echzeit-Datenmigration
DE602005002024T2 (de) Fernkopiersystem und Fernkopierverfahren
DE60313468T2 (de) Speicherdienste und -systeme
DE102004056216A1 (de) Fernkopiersystem und Speichersystem
DE602004005344T2 (de) Verfahren, system und programm zur handhabung eines failover zu einem fernspeicherort
DE69730449T2 (de) Erzeugung einer spiegeldatenkopie (bild) unter verwendung von referenzetiketten
DE60216602T2 (de) Verfahren und vorrichtung zum zugang zu magnetbandeinrichtungen in einem rechnersystem
DE602004011181T2 (de) Speicherplattenanordnungsgerät
DE112011100112B4 (de) Pufferspeicher-platte in blitzkopie-kaskade
DE112012002241T5 (de) Migration eines transparenten Dateisystems zu einem neuen physischen Speicherort
DE60203773T2 (de) Hierarchischer Ansatz zur Erkennung von veränderten Geräteeigenschaften
DE602004006084T2 (de) Fernkopiersystem mit garantierter Konsistenz eines Daten-Paares
DE112018003084T5 (de) Asynchrones lokales und entfernt angeordnetes erzeugen von konsistenten zeitpunkt-momentkopien in konsistenzgruppen
DE112014006156B4 (de) Speichersystem und Datenmigrationsverfahren
DE10393771T5 (de) Schnelle Datensicherungsspeicherung und schnelle Datenwiederherstellung (FBSRD)
DE10348326A1 (de) Permanentspeichervorrichtung, die an eine Kommunikationsverbindung angeschlossen ist
DE10197179T5 (de) Fern-Spiegelung in einer geschalteten Umgebung
DE69907709T2 (de) Prozessüberwachung in einem rechnersystem
DE102004027672A1 (de) Speicherplattenarraysystem
DE102005006176A1 (de) Transaktionsverarbeitungs-Systeme und -Verfahren, die einen Nicht-Platten-Dauerspeicher verwenden
DE10392181T5 (de) Dynamische RDF-Gruppen
DE10014448A1 (de) Speicherverwaltungssystem

Legal Events

Date Code Title Description
8364 No opposition during term of opposition