-
HINTERGRUND DER ERFINDUNG
-
Gebiet der Erfindung
-
Die
vorliegende Erfindung bezieht sich auf ein Speichersteuersystem
mit mehreren Steuerungen, die über
einen internen Kommunikationspfad verbunden sind und Dateneingabe-/Datenausgabeanweisungen
empfangen, die über
einen externen Kommunikationspfad eingegeben worden sind, und die
Dateneingabe-/Datenausgabesteuerung der Speichervorrichtungen ausführen, und
auf ein Verfahren zum Steuern des Speichersteuersystems.
-
Beschreibung des Stands der Technik
-
In
jüngster
Zeit wächst
der Bedarf an so genannten NAS-Servern
(Network Attached Storage). Ein NAS-Server als eine Art von Speicherprodukt
ist ein Speichersteuersystem, das ein inneres Dateisystem aufweist
und geeignet ist, Dateneingabe-/Datenausgabeanforderungen entsprechend
Dateizielen zu verarbeiten.
-
Ferner
gibt es als eine Art von NAS-Server ein Produkt, das dazu ausgelegt
ist, in einem Gehäuse
oder Systemschrank mehrere Steuerungen aufzunehmen, die jeweils
mit einem externen Kommunikationspfad wie einem LAN verbunden sind
und jeweils auf Prozessanforderungen reagieren können, die einzeln über den
externen Kommunikationspfad gesendet werden, um zum Beispiel die
Verarbeitungsmöglichkeiten
zu erweitern. Speichersteuersysteme werden oft für missionskritische Situationen
verwendet und müssen
im Allgemeinen eine hohe Verfügbarkeit
aufweisen.
-
Bezüglich der
Feststellung von Fehlern zwischen Computern in einem LAN ist üblicherweise
ein Mechanismus zur Op timierung der Verfügbarkeit durch Austausch von
Herzschlagnachrichten unter den Computern in dem LAN und gegenseitiges Überwachen
ihrer Betriebszustände
bekannt. Die
japanische Patent-Offenlegungsschrift
2000-222373 beschreibt zum Beispiel einen Mechanismus für ein Cluster-Computersystem,
in dem Computer, die einen Cluster bilden, in regelmäßigen Abständen Herzschlagnachrichten über ein
LAN austauschen und gegenseitig ihre Betriebszustände überwachen,
und falls die Herzschlagnachrichten mit einer bestimmten Steuerung
nicht normal ausgetauscht werden, wird der von der betreffenden
Steuerung ausgeführte
Datendienst entsprechend an eine andere normal arbeitende Steuerung übergeben.
Weiter ist in der
japanischen
Patent-Offenlegungsschrift 2001-100943 ein Clustersystem
beschrieben, in dem zwei PC-Server die Kommunikation zum Austauschen
von Herzschlagnachrichten unter Verwendung eines SCSI-Busses ausführen, an
den Speicherplattenlaufwerke angeschlossen sind.
-
In
einem Speichersteuersystem, das so aufgebaut ist, dass es mehrere
Steuerungen umfasst, wie bei dem Aufbau in 1, erbringen
diese Steuerungen, obwohl sie jeweils in demselben Gehäuse installiert
sind, einzeln jeweils Dienste für
Anforderungen von einem externen Kommunikationspfad. Daher wird,
wie bei den in den vorstehend genannten Dokumenten beschriebenen
Fällen,
zur Optimierung der Verfügbarkeit
angenommen, dass es für
das Speichersteuersystem mit dem vorstehenden Aufbau sinnvoll sein
kann, einen Mechanismus aufzuweisen, in dem die Betriebszustände zwischen
den Steuerungen überwacht
werden und im Falle der Feststellung eines Fehlers in einer bestimmten
Steuerung der von der betreffenden Steuerung ausgeführte Dienst
an eine andere normal arbeitende Steuerung übergeben wird.
-
Beim
Vorsehen eines solchen Mechanismus ist es nötig, in geeigneter Weise einen
Kommunikationspfad für
die Übertragung
der Betriebsinformationen auszuwählen.
In dem Cluster-Computersystem nach dem vorstehend genannten Dokument
wird zum Beispiel ein externer Kommunikationspfad wie das LAN, das
die Computer verbindet, oder ein privater Kommunikationspfad als
der Kommunikationspfad zum Austauschen der Betriebsinformationen
(in diesem Beispiel Herzschlagnachrichten) verwendet.
-
Bei
dem externen Kommunikationspfad gibt es jedoch Probleme dahingehend,
dass die Zuverlässigkeit
zwischen den Pfaden nicht ausreichend ist und dass die Übertragungsrate
nicht ausreichend oder nicht konstant ist. Im Falle der Bereitstellung
eines privaten Kommunikationspfads entstehen ferner sehr hohe Kosten,
weil private Einrichtungen nötig sind.
-
Andererseits
sind in dem vorstehend genannten Speichersteuersystem mit dem in 1 gezeigten
Aufbau die Steuerungen wechselseitig durch einen internen Kommunikationspfad
miteinander verbunden. Der interne Kommunikationspfad dient zum Ausführen der
Dateneingabe-/Datenausgabeanweisung und der Dateneingabe/Datenausgabe,
etwa wie ein auf einer Leiterplatte gebildeter Steuerbus, der eine
CPU und einen Speicher verbindet. Ein solcher interner Kommunikationspfad
weist im Allgemeinen eine höhere
Zuverlässigkeit
und eine höhere Übertragungsleistung
als externe Kommunikationspfade wie zum Beispiel LANs auf. Daher
wird angenommen, dass es möglich
wird, durch Verwendung des internen Kommunikationspfads als Kommunikationspfad
für die
Betriebsinformationen auf einfache Weise einen Mechanismus zum Überwachen
der Betriebszustände
zwischen Steuerungen mit hoher Zuverlässigkeit und zu niedrigen Kosten
zu realisieren.
-
US-A-6009535 beschreibt
ein Speicherplattenlaufwerk-Steuerungssystem
mit SCSI-Adaptern als Steuerungen und einem internen Bus in der
Laufwerkssteuerung. Es beschreibt ein Speichersteuersystem, das
mehrere Steuerungen, die jeweils eine Dateneingabe-/Datenausgabeanforderung
empfangen, die über
einen externen Kommunikationspfad eingegeben worden ist, und eine
Dateneingabe-/Datenausgabeanweisung an eine Speichereinrichtung senden,
sowie einen internen Kommunikationspfad umfasst, über den
die Steuerungen die Da teneingabe-/Datenausgabeanweisung und die
Dateneingabe/Datenausgabe ausführen,
wobei die Steuerungen jeweils eine Einrichtung zum Senden ihrer
eigenen Betriebsinformationen über
den internen Kommunikationspfad an die anderen Steuerungen umfassen, und
das Speichersteuersystem weiter eine Einrichtung zum Überwachen
eines Betriebszustands der Steuerungen auf der Grundlage der von
der Sendeeinrichtung der Steuerungen gesendeten Betriebsinformationen
umfasst. Weitere Speichersysteme mit Failover-Funktionen oder Redundanz
zwischen Speichersteuerungen sind in
WO 02/19111 A und
EP-A-0 747
822 beschrieben.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Die
vorliegende Erfindung ist entsprechend den vorstehenden und weiteren
Aspekten erarbeitet worden, und ein Ziel ist die Bereitstellung
eines Speichersteuersystems zum Überwachen
von Betriebsinformationen mit einem internen Kommunikationspfad und
vorzugsweise die Bereitstellung eines leistungsfähigen, sehr zuverlässigen und
leicht zu strukturierenden Speichersteuersystems, das in der Lage
ist, Betriebsinformationen mit einem internen Kommunikationspfad
effizient zu verwalten, und eine Funktion zum Überwachen der Betriebsinformationen
in preiswerter Weise realisieren kann.
-
Um
die vorstehenden und weiteren Ziele zu erreichen, ist ein Aspekt
der vorliegenden Erfindung ein Speichersteuersystem, umfassend mehrere Steuerungen,
die jeweils eine Dateneingabe-/Datenausgabeanforderung empfangen,
die über
einen externen Kommunikationspfad eingegeben worden ist, und eine
Dateneingabe-/Datenausgabeanweisung an eine Speichereinrichtung
senden, und einen internen Kommunikationspfad, über den die Steuerungen die
Dateneingabe-/Datenausgabeanweisung und die Dateneingabe/Datenausgabe
ausführen.
Die Steuerungen umfassen jeweils eine Einrichtung zum Senden ihrer
eigenen Betriebsinformationen über
den internen Kommunikationspfad an die anderen Steuerungen. Das
Spei chersteuersystem umfasst weiter eine Einrichtung zum Überwachen
eines Betriebszustands der jeweiligen Steuerungen auf der Grundlage
der von der Sendeeinrichtung der Steuerungen gesendeten Betriebsinformationen.
Die Steuerungen überwachen
gegenseitig über
den internen Kommunikationspfad und die Überwachungseinrichtung den Betriebszustand
der anderen Steuerungen.
-
Nach
einem Aspekt der vorliegenden Erfindung wird eine Struktur realisiert,
in der die Betriebsinformationen über den internen Kommunikationspfad
weitergeleitet werden, der zum Ausführen der Dateneingabe-/Datenausgabeanweisung
und der Dateneingabe/Datenausgabe dient, zum Beispiel ein auf einer
Leiterplatte gebildeter Steuerbus, der eine CPU und einen Speicher
verbindet, und im Allgemeinen eine höhere Zuverlässigkeit als ein externer Kommunikationspfad
aufweist und in der Lage ist, eine schnelle Kommunikation mit großer Kapazität zu realisieren.
Daher kann die Anzahl der Komponenten des Speichersteuersystems
verringert werden, und es wird möglich,
ein hoch zuverlässiges
System bei gleichzeitiger Senkung der Gerätekosten zu realisieren.
-
Weitere
Merkmale und Ziele der vorliegenden Erfindung, zusätzlich zu
den vorstehend genannten, werden durch Lesen der vorliegenden Beschreibung
unter Bezugnahme auf die anliegenden Zeichnungen ersichtlich.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Für ein umfassendes
Verständnis
der vorliegenden Erfindung und ihrer Vorteile wird auf die nachstehende
Beschreibung in Verbindung mit den anliegenden Zeichnungen verwiesen.
-
1 zeigt
ein Diagramm mit dem Aufbau eines Speichersteuersystems nach einem
Beispiel der vorliegenden Erfindung.
-
2 zeigt
ein Diagramm einer Betriebszustandsverwaltungstabelle nach einem
Beispiel der vorliegenden Erfindung.
-
3 zeigt
ein Ablaufdiagramm zur Erläuterung
eines Prozesses, in dem eine Steuerung eine andere Steuerung in
einem Speichersteuersystem erfasst, als Erläuterung für ein Beispiel der vorliegenden
Erfindung.
-
4 zeigt
ein Ablaufdiagramm vor allem zur Erläuterung eines Prozesses zum
Bestätigen
eines Versagens in einem Fall, wo eine externe Kommunikationsschnittstelle
in einem Speichersteuersystem versagt hat, als Erläuterung
für ein
Beispiel der vorliegenden Erfindung.
-
5 zeigt
ein Ablaufdiagramm vor allem zur Erläuterung eines Prozesses zum
Bestätigen
eines Versagens in einem Fall, wo eine interne Kommunikationsschnittstelle
in einem Speichersteuersystem versagt hat, als Erläuterung
für ein
Beispiel der vorliegenden Erfindung.
-
6 zeigt
ein Ablaufdiagramm vor allem zur Erläuterung eines Prozesses zum
Bestätigen
eines Versagens in einem Fall, wo ein Prozessor in einem Speichersteuersystem
versagt hat, als Erläuterung
für ein
Beispiel der vorliegenden Erfindung.
-
7 zeigt
ein Diagramm zur Erläuterung
eines herkömmlichen
Mechanismus, bei dem Computer gegenseitig ihre Betriebszustände überwachen.
-
8 zeigt
ein Diagramm mit dem Aufbau eines Speichersteuersystems mit einem
internen Kommunikationspfad zur Fehlerüberwachung nach einem Beispiel
der vorliegenden Erfindung.
-
9 zeigt
ein Diagramm mit dem Aufbau eines Speichersteuersystems, in dem
der interne Kommunikationspfad durch einen Kommunikationspfad nach
dem Fiber-Channel-Protokoll
gebildet ist.
-
10 zeigt
ein Diagramm einer Betriebszustandsverwaltungstabelle nach einem
Beispiel der vorliegenden Erfindung.
-
11 zeigt
ein Diagramm mit dem Aufbau eines Speichersteuersystems nach einem
Beispiel der vorliegenden Erfindung mit einer Allzweck-Cluster-Software,
bei dem die Betriebsinformationen in einer Speicherressource wie
zum Beispiel Speicherplattenlaufwerken gespeichert werden.
-
AUSFÜHRLICHE
BESCHREIBUNG DER ERFINDUNG
-
Mindestens
die folgenden Punkte werden aus der Erklärung in der vorliegenden Patentschrift und
der Beschreibung der anliegenden Zeichnungen ersichtlich.
-
Aspekte der Offenlegung
-
Ein
Beispiel für
die vorliegende Erfindung ist ein Speichersteuersystem, umfassend
mehrere Steuerungen, die jeweils eine Dateneingabe-/Datenausgabeanforderung
empfangen, die über
einen externen Kommunikationspfad eingegeben worden ist, und eine
Dateneingabe-/Datenausgabeanweisung an eine Speichereinrichtung
senden, sowie einen internen Kommunikationspfad, über den
die Steuerungen die Dateneingabe-/Datenausgabeanweisung und die
Dateneingabe/Datenausgabe ausführen,
wobei die Steuerungen jeweils eine Einrichtung zum Senden ihrer
eigenen Betriebsinformationen über den
internen Kommunikationspfad an die anderen Steuerungen umfassen,
und das Speichersteuersystem umfasst weiter eine Einrichtung zum Überwachen
eines Betriebszustands der jeweiligen Steuerungen auf der Grundlage
der von der Sendeeinrichtung der Steuerungen gesendeten Betriebsinformationen.
-
In
einem solchen Speichersteuersystem werden die Betriebsinformationen
(zum Beispiel Herzschlagnachrichten) über den internen Kommunikationspfad
weitergeleitet, der zum Ausführen
der Dateneingabe-/Datenausgabeanweisung und der Dateneingabe/Datenausgabe
dient, zum Beispiel ein auf einer Leiterplatte gebildeter Steuerbus,
der eine CPU und einen Speicher verbindet. Daher kann die Anzahl
der Komponenten des Speichersteuersystems verringert werden, und
es wird möglich,
ein hoch zuverlässiges
System bei gleichzeitiger Senkung der Gerätekosten zu realisieren.
-
Nach
einem weiteren Beispiel der vorliegenden Erfindung umfasst ein Speichersteuersystem mehrere
Steuerungen, die jeweils eine Dateneingabe-/Datenausgabeanforderung
empfangen, die über einen
externen Kommunikationspfad eingegeben worden ist, und eine Dateneingabe-/Datenausgabeanweisung
an eine Speichereinrichtung senden, sowie einen internen Kommunikationspfad, über den die
Steuerungen die Dateneingabe-/Datenausgabeanweisung und die Dateneingabe/Datenausgabe ausführen, wobei
die Steuerungen jeweils eine Einrichtung zum Senden ihrer eigenen
Betriebsinformationen über
den internen Kommunikationspfad an einen mit dem internen Kommunikationspfad
verbundenen Speicher umfassen, das Speichersteuersystem weiter eine
Einrichtung zum Aufzeichnen der Betriebsinformationen in einem Speicher
umfasst und die Steuerungen weiter jeweils eine Einrichtung zum Zugreifen
auf den Speicher über
den internen Kommunikationspfad und zum Überwachen eines Betriebszustands
der anderen Steuerungen auf der Grundlage der im Speicher aufgezeichneten
Betriebsinformationen umfassen.
-
Mit
einem Speichersteuersystem mit dem vorstehend beschriebenen Aufbau
ist es möglich, Fehlerzustände in den
Betriebsinformationen (zum Beispiel in einer „Betriebszustandsverwaltungstabelle", wie weiter unten
erläutert)
im Speicher (zum Beispiel in einem Steuerspeicher, wie weiter unten
erläutert)
unabhängig
von den Steuerungen zu verwalten. Daher wird es möglich, die
Fehlerursache und/oder das ausgefallene Teil durch Kombinieren der
vorstehend genannten Betriebsinformationen mit anderen Informationen
wie etwa Informationen bezüglich
des Betriebszustands des internen Kommunikationspfads weiter zu
spezifizieren.
-
Weiter
ist es mit dem Speichersteuersystem möglich, die Steuerung so zu
konfigurieren, dass sie zum Beispiel eine Zentralverarbeitungseinheit,
eine externe Kommunikationsschnittstelle zur Verbindung mit dem
externen Kommunikationspfad und eine interne Kommunikationsschnittstelle
zur Verbindung mit dem internen Kommunikationspfad umfasst.
-
Weiter
können
in dem Speichersteuersystem die Betriebsinformationen Informationen
enthalten, die anzeigen, ob in irgendeiner der Steuerungen ein Versagen
oder Fehler aufgetreten ist, und das Speichersteuersystem kann eine
Einrichtung dafür
umfassen, mindestens eine der Steuerungen die von einer ausgefallenen
Steuerung ausgeführte
Verarbeitung übernehmen
zu lassen, wenn die Überwachungseinrichtung
bestätigt,
dass ein Versagen in der ausgefallenen Steuerung vorliegt. Dadurch
wird die Verfügbarkeit
des Speichersteuersystems sichergestellt.
-
Weiter
kann das Speichersteuersystem so aufgebaut sein, dass der Speicher
eine Einrichtung zum Speichern von Ressourceninformationen umfasst,
die sich auf die Verarbeitung beziehen, für die die Steuerungen verantwortlich
sind, und die Steuerung, die die Verarbeitung übernehmen soll, eine Einrichtung
zum Zugreifen auf die Ressourceninformationen und zum Bestätigen der
Verarbeitung, die die Steuerung übernehmen
soll, umfasst.
-
Weiter
kann das Speichersteuersystem so aufgebaut sein, dass die Ressourceninformationen zum
Beispiel Informationen, die für
die Steuerungen zur Kommunikation über den externen Kommunikationspfad
oder den internen Kommunikationspfad erforderlich sind, Informationen,
die Speicherbereiche bezeichnen und in der Dateneingabe-/Datenausgabeanweisung
angegeben sind, und/oder eine Netzwerkadresse jeder der Steuerungen
enthalten, die für die
Kommunikation mittels des externen Kommunikationspfads verwendet
werden.
-
Weiter
kann das Speichersteuersystem so aufgebaut sein, dass die Betriebsinformationen
Informationen enthalten, die anzeigen, ob in irgendeiner der Zentralverarbeitungseinheit,
der externen Kommunikationsschnittstelle oder der internen Kommunikationsschnittstelle
ein Versagen oder Fehler aufgetreten ist.
-
Weiter
kann ein Beispiel des Speichersteuersystems so beschaffen sein,
dass die ein Versagen oder einen Fehler anzeigenden Informationen
Zeitstempel sind, die in vorgege benen Intervallen von jeder Steuerung über den
internen Kommunikationspfad an den Speicher gesendet werden und
in dem Speicher mit Bezug auf die jeweilige Steuerung gespeichert
werden, und wenn der einer Steuerung entsprechende Zeitstempel für eine vorgegebene
Zeitdauer oder länger
nicht aufdatiert worden ist, die Überwachungseinrichtung bestätigt, dass
die eine dem Zeitstempel entsprechende Steuerung versagt hat oder
ausgefallen ist.
-
Weiter
kann das Speichersteuersystem so aufgebaut sein, dass die Überwachungseinrichtung eine
Einrichtung zur Bestimmung umfasst, dass der interne Kommunikationspfad
versagt hat oder ausgefallen ist, wenn auf die Betriebsinformationen
nicht zugegriffen werden kann.
-
Weiter
kann das Speichersteuersystem so aufgebaut sein, dass die Überwachungseinrichtung eine
Einrichtung zu Bestimmung umfasst, dass die einem Zeitstempel entsprechende
Steuerung versagt hat oder ausgefallen ist, wenn auf die Betriebsinformationen
zugegriffen werden kann, aber der Zeitstempel einer der Steuerungen
für eine
vorgegebene Zeitdauer oder länger
nicht aufdatiert worden ist. Dadurch wird es möglich, ein Versagen oder einen
Fehler weiter zu spezifizieren.
-
Weiter
kann das Speichersteuersystem so aufgebaut sein, dass die Speichereinrichtung
eine Zentralverarbeitungseinheit, den Speicher und eine Geräteschnittstelle
zum Ausführen
der Dateneingabe/Datenausgabe bezüglich einer Speicherressource
wie einem Speicherplattenlaufwerk umfasst. Ferner kann das Speichersteuersystem
so aufgebaut sein, dass die Betriebsinformationen oder Ressourceninformationen
in dem Speicher aufgezeichnet werden.
-
Weiter
kann das Speichersteuersystem so aufgebaut sein, dass die Betriebsinformationen
oder Ressourceninformationen in der Speicherressource aufgezeichnet
werden.
-
Weiter
kann das Speichersteuersystem so aufgebaut sein, dass die Steuerungen
jeweils ein Dateisystem zum Ausführen
einer Dateneingabe-/Datenausgabeanforderung auf der Grund lage von
Dateinamen und eine Einrichtung zum Senden der Dateneingabe-/Datenausgabeanweisung
an die Speichereinrichtung pro Dateneinheit umfassen, die durch
den Dateinamen bezeichnet ist. Ein solcher Aufbau kann in einem
Fall angewendet werden, wo das Speichersteuersystem zum Beispiel
als NAS-Server benutzt wird.
-
Weiter
kann ein Beispiel des Speichersteuersystems so beschaffen sein,
dass die Steuerungen jeweils eine Geräteschnittstelle zum Steuern
der Dateneingabe/Datenausgabe bezüglich einer Speicherressource
wie einer Festplatte, einen Cache-Speicher und eine Einrichtung
zum Ausführen
des Lesens/Schreibens von Daten über
den Cache-Speicher auf die Speicherressource bzw. von dieser umfassen.
Ferner kann das Speichersteuersystem so aufgebaut sein, dass die
interne Kommunikation auf redundante Weise durch mehrere Kommunikationspfade
gebildet ist.
-
Weiter
kann das Speichersteuersystem so aufgebaut sein, dass die Steuerungen
jeweils eine Einrichtung zum Senden ihrer eigenen Betriebsinformationen über einen
anderen Kommunikationspfad (zum Beispiel eine weiter unten beschriebene
private Kommunikationsleitung) an die anderen Steuerungen umfassen,
wobei der andere Kommunikationspfad getrennt von dem internen Kommunikationspfad vorgesehen
ist und die Steuerungen verbindet, und eine Einrichtung (zum Beispiel
Emulationstreiber, wie weiter unten erläutert) zum Senden der Betriebsinformationen,
die über
den anderen Kommunikationspfad gesendet werden sollen, an den internen
Kommunikationspfad.
-
Mit
einem solchen Aufbau wird es möglich, einen
Mechanismus zur einfachen und preiswerten Überwachung von Betriebszuständen zum
Beispiel unter Verwendung von Allzweck-Cluster-Software zu realisieren.
-
Weiter
kann ein Beispiel für
ein Verfahren zum Steuern eines Speichersteuersystems, das mehrere
Steuerungen umfasst, die jeweils eine Dateneingabe-/Datenausgabeanforderung
empfangen, die über
einen externen Kommunikationspfad eingegeben worden ist, und eine
Dateneingabe-/Datenausgabeanweisung an eine Speichereinrichtung
senden, sowie einen internen Kommunikationspfad, über den
die Steuerungen die Dateneingabe-/Datenausgabeanweisung und die
Dateneingabe/Datenausgabe ausführen,
derart beschaffen sein, dass das Verfahren die folgenden Schritte
umfasst: die Steuerungen senden jeweils ihre eigenen Betriebsinformationen über den
internen Kommunikationspfad an die anderen Steuerungen und die Steuerungen überwachen
jeweils gegenseitig einen Betriebszustand der anderen Steuerungen
auf der Grundlage der Betriebsinformationen.
-
Weiter
kann ein weiteres Beispiel für
ein Verfahren zum Steuern eines Speichersteuersystems, das mehrere
Steuerungen umfasst, die jeweils eine Dateneingabe-/Datenausgabeanforderung
empfangen, die über
einen externen Kommunikationspfad eingegeben worden ist, und eine
Dateneingabe-/Datenausgabeanweisung an eine Speichereinrichtung senden,
sowie einen mit der Speichereinrichtung verbundenen internen Kommunikationspfad, über den die
Steuerungen die Dateneingabe-/Datenausgabeanweisung und die Dateneingabe/Datenausgabe ausführen, derart
beschaffen sein, dass das Verfahren die folgenden Schritte umfasst:
die Steuerungen senden jeweils ihre eigenen Betriebsinformationen über den
internen Kommunikationspfad an einen mit dem internen Kommunikationspfad
verbundenen Speicher, das Speichersteuersystem zeichnet die Betriebsinformationen
in dem Speicher auf und die Steuerungen greifen jeweils über den
internen Kommunikationspfad auf den Speicher zu und überwachen
einen Betriebszustand der anderen Steuerungen auf der Grundlage
der im Speicher aufgezeichneten Betriebsinformationen.
-
Mit
einem solchen Aufbau ist ein Speichersteuersystem nach der vorliegenden
Erfindung in der Lage, die Betriebsinformationen mit dem internen Kommunikationspfad
als Kommunikationspfad zum Austausch von Betriebsinformationen zwischen
den Steuerungen effizient zu verwalten. Ferner wird es möglich, eine
leistungsfähige,
sehr zuverlässige und leicht
zu konfigurierende Funktion zur Überwachung von
Betriebsinformationen mit niedrigen Kosten bereitzustellen.
-
Diese
Ziele werden auf vorteilhafte Weise im Wesentlichen durch Anwendung
der in den selbstständigen
Ansprüchen
festgelegten Merkmale erreicht. Weitere Verbesserungen werden durch
die Unteransprüche
bereitgestellt.
-
Erste Ausführungsform
-
Konfiguration der Geräte
-
Zuerst
wird ein Beispiel erläutert,
bei dem ein Aspekt der vorliegenden Erfindung auf das vorstehend
genannte und in 1 gezeigte Speichersteuersystem 10 angewendet
worden ist.
-
Das
Speichersteuersystem 10 umfasst einen internen Kommunikationspfad 20,
der zum Ausführen
der Dateneingabe-/Datenausgabeanweisung und der Dateneingabe/Datenausgabe
dient, wie zum Beispiel einen auf einer Leiterplatte gebildeter
Steuerbus (oder ein Systembus), der eine CPU und einen Speicher
verbindet, mehrere Steuerungen 100 und 110, die
mit dem internen Kommunikationspfad 20 verbunden sind,
eine Speichervorrichtung 120 und Stromversorgungseinheiten 30 und 31,
die in redundanter Weise aufgebaut sind. Ein mit den Steuerungen 100 und 110 und
der Speichervorrichtung 120 verbundener Serviceprozessor 40 führt zum
Beispiel die Betriebssteuerung der Steuerungen 100 und 110 und
der Speichervorrichtung 120, verschiedene Einstellungen
dafür und/oder
die Überwachung
ihrer Betriebszustände
aus.
-
Die
Steuerungen 100 und 110 umfassen jeweils einen
Prozessor 101 und 111 als Zentralverarbeitungseinheit,
die zum Beispiel durch eine CPU gebildet ist, eine externe Kommunikationsschnittstelle 102 und 112 zum
Verbinden mit einem externen Kommunikationspfad 50 wie
etwa einem LAN und eine interne Kommunikationsschnittstelle 103 und 113,
die zum Beispiel durch eine Brücke
gebildet ist, die mit dem internen Kommunikationspfad 20 verbunden
ist.
-
In
den Steuerungen 100 und 110 arbeitet jeweils ein
Dateisystem (nicht gezeigt), und die Steuerungen 100 und 110 verarbeiten
die Dateneingabe-/Datenausgabeanforderungen, die Dateinamen bezeichnen,
von dem externen Kommunikationspfad 50. Das heißt, die
Steuerungen 100 und 110 umfassen jeweils eine
Funktion wie ein Computer, der als Dateiserver im LAN arbeitet,
und das Speichersteuersystem 10 dient als der vorstehend
erwähnte NAS-Server.
-
Die
Speichervorrichtung 120 umfasst zum Beispiel einen Steuerspeicher 121,
in dem Informationen wie etwa Systemverwaltungsinformationen enthalten
sind, eine Speicherressource 122 wie etwa Festplatten,
eine Geräteschnittstelle 123,
die das Schreiben/Lesen von Daten auf die Speicherressource 122 oder
von dieser gemäß den von
den Steuerungen 100 und 110 gesendeten Anweisungen
ausführt,
und einen Cache-Speicher 124.
-
Hierbei
ist zu beachten, dass die Speicherressource 122 in dem
Speichersteuersystem 10 installiert sein kann, wie in 1,
oder in einem unabhängigen
Gehäuse
außerhalb
des Speichersteuersystems 10 untergebracht und mit der
Geräteschnittstelle 123 durch
eine geeignete Schnittstelle verbunden sein kann.
-
Grundbetrieb
-
Nachstehend
werden die grundlegenden Betriebsabläufe in dem Speichersteuersystem 10 beschrieben.
Wenn das Speichersteuersystem 10 eine Dateneingabe-/Datenausgabeanforderung
empfängt,
die von einer externen Vorrichtung wie einem Host-Computer (nicht
gezeigt) über
den externen Kommunikationspfad 50 eingegeben worden ist,
senden die Prozessoren 101 und/oder 111 über den
internen Kommunikationspfad 20 eine Dateneingabe-/Datenausgabeanweisung
mit einer der empfangenen Anforderung entsprechenden Anweisung und Daten
an den Steuerspeicher 121. Der Steuerspeicher 121 empfängt und
speichert diese Anweisung.
-
Wenn
zum Beispiel die in der Dateneingabe-/Datenausgabeanweisung enthaltene
Anweisung ein Schreibbefehl ist, sendet die Geräteschnittstelle 123 eine
Datensendeanforderung über
den internen Kommunikationspfad 20 an die Prozessoren 101 und 111.
Nach Empfang der Datensendeanforderung speichern die Prozessoren 101 und 111 die
Schreibdaten (das heißt
die zu schreibenden Daten) im Cache-Speicher 124 und senden
eine Unterbrechungsanforderung an die Geräteschnittstelle 123.
Nach Empfang der Unterbrechungsanforderung schreibt die Geräteschnittstelle 123 die
im Cache-Speicher 124 gespeicherten Schreibdaten mit einem
geeigneten Takt in die Speicherressource 122.
-
Wenn
andererseits die vorstehend genannte Anweisung ein Lesebefehl ist,
liest die Geräteschnittstelle 123 die
in einem Speicherbereich der Speicherressource 122, der
durch an die Anweisung angefügte
Informationen bezeichnet ist, enthaltenen Daten aus, speichert die
ausgelesenen Daten im Cache-Speicher 124 und sendet die
ausgelesenen Daten über
den internen Kommunikationspfad 20 an die Prozessoren 101 und 111.
-
Nach
Empfang der Unterbrechungsanforderung nimmt die Geräteschnittstelle 123 Bezug
auf die vorstehend erwähnte,
im Steuerspeicher 121 gespeicherte Anweisung und überträgt die im
Cache-Speicher 124 gespeicherten Daten und redundante Daten an
die Speicherressource 122.
-
Überwachungsfunktion
-
Die
Steuerungen 100 und 110 überwachen jeweils gegenseitig,
ob in der anderen Steuerung 110 oder 100 ein Versagen
oder Fehler aufgetreten ist. Ein Bediener kann zum Beispiel über den
Serviceprozessor 40 einstellen, welcher der Prozessoren 100 und 110 die
anderen Prozessoren 100 und 110 überwachen
soll. Die Einstellinformationen werden in den Feldern 251 und 254 mit
der Überschrift „Zu überwachende
Steuerung" in einer
Betriebszustandsverwaltungstabelle im Steuerspeicher 121 registriert,
wie in 2 gezeigt.
-
Die
Steuerungen 100 und 110 überwachen jeweils die Betriebszustände der
anderen Steuerung 100 oder 110, die als Überwachungsobjekt
zugewiesen ist. Wenn die Steuerung 100 und 110 eine
Art von Versagen in der anderen Steuerung 100 oder 110 feststellt,
die sie überwacht,
führt die
Steuerung 100 und 110 einen Prozess entsprechend
den Details des festgestellten Versagens aus.
-
Nachstehend
werden unter Bezugnahme auf das Ablaufdiagramm in 3 eine Überwachungsfunktion
der Steuerungen 100 und 110 und eine bei Feststellung
einer Störung
ausgeführte
Funktion des Speichersteuersystems 10 beschrieben. Diese
Beschreibung bezieht sich auf ein Beispiel, in dem die Steuerung 100 ein
Versagen der Steuerung 110 feststellt.
-
Die
Steuerung 110 greift periodisch (der Takt kann beliebig
geändert
werden) über
den internen Kommunikationspfad 20 auf den Steuerspeicher 121 zu
(oder sendet Herzschlagnachrichten). Beim Zugriff schreibt die Steuerung 110 die
Zugriffszeit als einen Zeitstempel in das Feld 255 mit
der Überschrift „Zeitstempel" für die Steuerung 110 in
der Betriebszustandsverwaltungstabelle (S311). Das heißt, wenn keine
Störung
in der Steuerung 110 vorliegt, wird der Zeitstempel periodisch
aufdatiert.
-
Andererseits
greift die Steuerung 100 über den internen Kommunikationspfad 20 periodisch (oder
mit einem beliebigen anderen Takt als einem regelmäßigen Takt)
auf den Steuerspeicher 121 zu, um in der Betriebszustandsverwaltungstabelle
nachzusehen (S312).
-
Wenn
die Steuerung 100 nicht auf den Steuerspeicher 121 zugreifen
kann (S313), bestimmt sie, dass eine Art von Versagen oder Fehler
im internen Kommunikationspfad 20 vorliegt. Ist im internen Kommunikationspfad 20 ein
Versagen aufgetreten, besteht die Möglichkeit, dass die Dateneingabe/Datenausgabe
zu/von der Speichervorrichtung 120 nicht ordnungsgemäß ausgeführt werden
kann. Daher kann die Steuerung 100 zum Beispiel Dateneingabe-/Datenausgabeprozesse
an die Speichervorrichtung 120 stoppen, die von der Steuerung 100 selbst
ausgeführt
werden, und die von der Steuerung 100 erhaltene Ressource
bezüglich
des Eingabe-/Ausgabeprozesses freischalten (S314).
-
Die
vorstehend genannte „Ressource" können zum
Beispiel Informationen wie eine Netzwerkadresse (zum Beispiel eine
IP-Adresse), die für
die Kommunikation durch die Steuerungen 100 und 110 mit
dem externen Kommunikationspfad 50 oder dem internen Kommunikationspfad 20 nötig ist,
und Informationen sein, die Speicherbereiche bezeichnen (zum Beispiel
Informationen bezüglich
eines von der Steuerung 110 gemounteten Speicherbereichs),
die durch die Dateneingabe-/Datenausgabeanweisung bezeichnet sind,
die von den Steuerungen 100 und 110 an die Speichereinrichtung
gesendet wird.
-
Wenn
die Steuerung 100 andererseits auf den Steuerspeicher 121 zugreifen
kann, sieht sie sich den Zeitstempel 255 der Steuerung 110 in
der Betriebszustandsverwaltungstabelle an (S315) und prüft, ob eine
Differenz zwischen der Zugriffszeit und dem Zeitstempel innerhalb
einer vorgegebenen Zeitdauer liegt oder diese überschreitet (S316).
-
Ist
die Differenz gleich oder größer als
eine vorgegebene Zeitdauer, bestimmt die Steuerung 100,
dass ein Versagen in der Steuerung 110 aufgetreten ist,
und übernimmt
die Prozesse und Ressourcen, für
die gegenwärtig
die Steuerung 110 zuständig ist
(oder anders ausgedrückt,
die ihr zugewiesen sind) (S317).
-
Liegt
andererseits die Differenz innerhalb der vorgegebenen Zeitdauer,
sieht die Steuerung 100 sich den Inhalt des Felds 256 „Zustand" für die Steuerung 110,
die das Überwachungsobjekt
ist, in der Betriebszustandsverwaltungstabelle an (S318). Lautet
der Inhalt „Normal", bestätigt die
Steuerung 100, dass die Steuerung 110 in einem
normalen Betriebszustand arbeitet (S319, S320). Lautet der Inhalt
des Felds 256 „Zustand" „Störung", bestimmt die Steuerung 100,
dass die Steuerung 110 ausgefallen ist, und übernimmt
die Prozesse, für
die die Steuerung 110 verantwortlich ist, in der vorstehend
beschriebenen Weise (S319, S317). Hierbei ist zu beachten, dass
die Angaben „Normal" und „Störung" in der Betriebszustandsverwaltungstabelle
in einem geeigneten Format eingeschrieben werden, etwa als Bitmap-Darstellung.
-
Im Übrigen wird
im Speichersteuersystem 10 der Inhalt des Felds „Zustand" in der Betriebszustandsverwaltungstabelle
wie folgt verwaltet. Wenn zum Beispiel ein Versagen in der externen
Kommunikationsschnittstelle 102 vorliegt, wie in 4 gezeigt, bestätigen die
Steuerungen 100 und 110 ein solches Versagen durch
direktes Melden des Versagens an die Prozessoren 101 und 111 von
der externen Kommunikationsschnittstelle 102 und 112 oder
durch Zeitabschaltung einer an die externe Kommunikationsschnittstelle 102 gesendeten
Verarbeitungsanweisung.
-
Wenn
die Steuerungen 100 und 110 bestätigen, dass
ein Versagen in der externen Kommunikationsschnittstelle 102 vorliegt,
greifen sie über
den internen Kommunikationspfad 20 auf die Betriebszustandsverwaltungstabelle
im Steuerspeicher 121 zu und schreiben „Störung" in das Feld 253 und 256 „Zustand" für die Steuerung 100 oder 110,
die ausgefallen ist.
-
Andererseits,
wenn zum Beispiel ein Versagen in den internen Kommunikationsschnittstellen 103 und 113 vorliegt,
wie in 5 gezeigt, bestätigen die Steuerungen 100 und 110 ein
solches Versagen durch Melden des Versagens an die Prozessoren 101 und 111 von
den internen Kommunikationsschnittstellen 103 und 113 oder
durch Zeitabschaltung einer an die internen Kommunikationsschnittstellen 103 und 113 gesendeten
Verarbeitungsanweisung.
-
Die
Steuerungen 100 und 110 können gegenseitig den Zustand
der anderen Steuerungen 110 und 100 beurteilen,
indem sie den Zeitstempel in der Betriebszustandsverwaltungstabelle
im Steuerspeicher 121 überwachen.
Wenn die Steuerungen 100 und 110 bestätigen, dass
ein Versagen in den internen Kommunikationsschnittstellen 113 und 103 der anderen
Steuerungen 110 und 100 vorliegt, können die
Steuerungen 100 und 110 über den internen Kommunikationspfad 20 auf
die Betriebszustandsverwaltungstabelle im Steuerspeicher 121 zugreifen und „Störung" in das Feld 253 und 256 „Zustand" für die Steuerung 100 und 110 schreiben,
die ausgefallen ist.
-
6 zeigt
einen Fall, wo der Prozessor 101 ausgefallen ist. In diesem
Fall kann die Steuerung 100 diesen Zustand nicht in die
Betriebszustandsverwaltungstabelle schreiben. Weil der Prozessor 111 der
Steuerung 110 jedoch im Steuerspeicher 121 nachsieht,
kann die Steuerung 110 dieses Versagen feststellen, auch
wenn der Prozessor 101 ausgefallen ist.
-
In
dem vorstehenden Beispiel ist ein Fall beschrieben, bei dem die
Steuerung 100 die Steuerung 110 überwacht.
Selbstverständlich
werden dieselben Prozesse auch ausgeführt, wenn die Steuerung 110 die
Steuerung 100 überwacht.
-
Ferner
wird in den vorstehenden Beispielen die Kommunikation für die Fehlerüberwachung
der Steuerungen 100 und 110, zum Beispiel das
Schreiben in die und das Nachsehen in der Betriebszustandsverwaltungstabelle
im Steuerspeicher 121 über
den internen Kommunikationspfad 20 ausgeführt. Daher
kann die Kommunikation für
die Fehlerüberwachung
mit hoher Geschwindigkeit im Vergleich zu herkömmlichen Verfahren durchgeführt werden,
die den externen Kommunikationspfad 50 oder einen privaten
Kommunikationspfad verwenden. Weil der interne Kommunikationspfad 20 im
Allgemeinen eine bessere Übertragungsleistung
und Zuverlässigkeit
aufweist als der externe Kommunikationspfad 50 wie etwa
das LAN, kann außerdem
die Kommunikation für
die Fehlerüberwachung
schnell und zuverlässig
ausgeführt
werden.
-
Darüber hinaus
wird der interne Kommunikationspfad 20, der ursprünglich für die Dateneingabe/Datenausgabeprozesse
zwischen den Steuerungen 100 und 110 und/oder
zwischen den Steuerungen 100 und 110 und der Speichervorrichtung 120 vorgesehen
ist, auch für
die Kommunikation zur Fehlerüberwachung
verwendet. Daher ist es nicht nötig, zusätzliche Hardware
wie einen privaten Kommunikationspfad hinzuzufügen, und somit kann ein Kommunikationsmechanismus
für die
Fehlerüberwachung
auf einfache Weise zu niedrigen Kosten konfiguriert werden.
-
Weiter
wird in den vorstehenden Beispielen der Fehlerzustand durch die
Betriebszustandsverwaltungstabelle im Steuerspeicher 121 der
Speichervorrichtung 120 verwendet, die von den Steuerungen 100 und 110 unabhängig ist
und mit diesen über
den internen Kommunikationspfad 20 verbunden ist. Daher
wird es durch Kombinieren der Fehlerzustandsinformationen mit Informationen
bezüglich
der Betriebszustände
des internen Kommunikationspfads 20 möglich, die Fehlerursache und/oder
das ausgefallene Teil detaillierter zu spezifizieren.
-
Ferner
verwaltet in den vorstehenden Beispielen der Steuerspeicher 121 auch
Informationen bezüglich
der Ressourcen, die jeweils von den Steuerungen 100 und 110 erhalten
werden, wobei diese Informationen zum Übergeben der Prozesse an die überlebende
Steuerung 100 und 110 verwendet werden, wenn eine
der Steuerungen 100 und 110 das Auftreten eines
Versagens feststellt. Daher kann die Speichervorrichtung 120 die
zu übergebenden
Ressourcen auch bestätigen,
wenn die Steuerungen 100 und 110 ausgefallen sind.
Außerdem
ist es durch zentralisierte und einheitliche Verwaltung der Ressourcen
möglich,
zum Beispiel eine Verringerung der Verwaltungslast zu realisieren.
-
Wenn
der interne Kommunikationspfad in redundanter Weise gebildet ist,
kann es ferner möglich werden,
die Sicherheit und Zuverlässigkeit
der Kommunikation für
die Fehlerüberwachung
weiter zu gewährleisten.
-
Obwohl
in dem vorstehenden Beispiel nur zwei Steuerungen vorhanden sind,
ist das System nicht auf einen solchen Aufbau beschränkt und
kann ohne weiteres zu einem Aufbau erweitert werden, in dem drei
oder mehr Steuerungen vorhanden sind.
-
Benutzung vorhandener Clustersysteme
-
Wie
in den vorstehend genannten Dokumenten beschrieben, gibt es üblicherweise
Software, die die Kommunikation für die Fehlerüberwachung
zwischen Computern mit einem externen Kommunikationspfad und/oder
einem privaten Kommunikationspfad ausführt. Nachstehend wird ein Beispiel
für die Realisierung
eines Mechanismus nach einem Aspekt der vorliegenden Erfindung mit
einem internen Kommunikationspfad bei der Kommunikation zur Fehlerüberwachung
mit solcher Software beschrieben.
-
7 zeigt
eine herkömmliche
Systemkonfiguration, in der die Computer 720 und 730,
die den Steuerungen nach der vorliegenden Erfindung entsprechen, über einen
privaten Kommunikationspfad 750 verbunden sind, und die
Computer 720 und 730 gegenseitig ihre Betriebszustände durch Übermittlung
von Herzschlagnachrichten über
den privaten Kommunikationspfad 750 überwachen.
-
Die
Computer 720 bzw. 730 empfangen Anforderungen
für Dateidienste
von Clients mit ihren jeweiligen Dateisystemen 723 und 733 über die
Netzwerkschnittstellen 721 und 731 und die Netzwerktreiber 722 und 732.
-
Die
Dateisysteme 723 und 733 führen die Datenübertragung
zu/von einer Speichervorrichtung 726 über jeweilige Speichertreiber 724 und 734 und jeweilige
Speicherschnittstellen 725 und 735 aus, wenn eine
Datenübertragung
an die Speichervorrichtung 726 nötig ist. Die Cluster-Software 727 und 737 sendet
Herzschlagnachrichten an die entsprechende Cluster-Software 727 und 737 der
entsprechenden Computer 720 und 730 über die
jeweiligen Netzwerktreiber 728 und 738 und die
Herzschlag-Netzwerkschnittstellen 729 und 739.
-
8 zeigt
ein Beispiel für
die Anwendung eines Aspekts der vorliegenden Erfindung mit einem internen
Kommunikationspfad für
die Fehlerüberwachung
auf die in 7 gezeigte Konfiguration, die
mit der vorstehend genannten Cluster-Software 727 und 737 arbeitet.
In dieser Abbildung umfasst ein Speichersteuersystem 810 die
Emulationstreiber 848 und 858, die den Zugriff
von der Cluster-Software 847 und 857 annehmen
und den Zugriff von der Cluster-Software in einen Zugriff auf die
jeweiligen Speichertreiber 844 und 854 umwandeln.
Mit einem solchen Aufbau können
die von der Allzweck-Cluster-Software 847 und 857 gesendeten
Herzschlagnachrichten in Betriebszustandsinformationen umgewandelt
werden, die auf einem internen Kommunikationspfad 849 übertragen
werden, und umgekehrt.
-
Im
Einzelnen weisen die Emulationstreiber 848 und 858 zum
Beispiel die folgenden Funktionen auf: Annehmen des Zugriffs von
der Cluster-Software 847 und 857 durch Kommunikation
unter Einhaltung der Übertragungsverfahren
anderer Kommunikationspfade wie RS-232C oder ein LAN und Umwandeln
dieses Zugriffs in eine Übertragung über den
internen Kommunikationspfad 849 sowie außerdem Umwandeln
der Übertragung über den
internen Kommunikationspfad 849, um die Übertragungsverfahren für die vorstehend
genannten anderen Kommunikationspfade einzuhalten, und Übertragen
der Übertragung
an die Cluster-Software 847 und 857 gemäß den Übertragungsverfahren.
Hierbei ist zu beachten, dass das Speichersteuersystem 810 tatsächlich die anderen
Kommunikationspfade wie RS-232C und/oder das LAN in Form von Hardware
und/oder Software umfassen kann, aber nicht unbedingt muss. Ferner
muss der vorstehend genannte Abschnitt mit der Umwandlungsfunktion
nicht in den Emulationstreibern 848 und 858 enthalten
sein, sondern kann in der Firmware (nicht gezeigt) vorgesehen sein,
die Funktionen der Speichertreiber 844 und 854 und/oder
einer internen Kommunikationsschnittstelle (nicht gezeigt) einer
Speichervorrichtung 846 bereitstellt.
-
Wie
vorstehend erläutert,
kann die vorliegende Erfindung in Systemen, in denen bereits Cluster-Software
installiert ist, ohne weiteres durch Installieren der Emulationstreiber
implementiert werden.
-
Weiter
kann die vorliegende Erfindung, wenn keine Cluster-Software installiert
ist, durch Kombinieren des E mulationstreibers mit einer vorhandenen Cluster-Software
und Installieren der Software in einem System mit niedrigen Kosten
implementiert werden, weil es möglich
ist, die Kosten für
die Entwicklung von Funktionsabschnitten für die Cluster-Software zu verringern.
-
Andere Konfigurationen des internen Kommunikationspfads
-
Nachstehend
werden Beispiele beschrieben, bei denen der interne Kommunikationspfad
kein Steuerbus ist, sondern durch Kommunikationspfade gebildet ist,
die auf anderen Protokollen wie Fiber Channel, Intelligent I/O,
Rapid I/O usw. basieren.
-
9 zeigt
ein Diagramm mit der Konfiguration eines Speichersteuersystems 971,
in dem der interne Kommunikationspfad von einem Kommunikationspfad
nach dem Fiber-Channel-Protokoll
gebildet ist. Die Steuerungen 950 bzw. 960 umfassen
die Fiber-Channel-Schnittstellen 953 und 963 als
interne Kommunikationsschnittstellen.
-
Eine
Speichervorrichtung 980 umfasst auch die Fiber-Channel-Schnittstellen 986 und 996 und
ist mit den Steuerungen 950 und 960 über die
Fiber-Channel-Schalter 956 und 966 und die Fiber-Channel-Schnittstellen 986 und 996 verbunden.
-
Die
Steuerungen 950 und 960 sind über die Fiber-Channel-Schalter 956 und 966 und
die Fiber-Channel-Schnittstellen 953 und 963 wechselseitig
mit den Steuerungen 950 und 960 verbunden und umfassen
jeweils die Steuerspeicher 982 und 992 und die
Cache-Speicher 983 und 993 zum vorübergehenden
Speichern von Schreibdaten und ausgelesenen Daten, die von einem
Speicherplattenlaufwerk ausgelesen worden sind.
-
Die
Steuerungen 950 und 960 sind über jeweilige Geräteschnittstellen 984 und 994 mit
einer Speicherplattenlaufwerkgruppe 985 verbunden. Die Steuerungen 950 und 960 und
die Speichervorrichtung 980 werden von redundant konfigurierten Stromversorgungen 972 und 973 gespeist,
die im sel ben Gehäuse
wie das Speichersteuersystem 971 installiert sind, und
verschiedene Betriebseinstellungen und/oder die Betriebsverwaltung
für die
Steuerungen 950 und 960 und die Speichervorrichtung 980 werden
durch einen Verwaltungsmechanismus 974 ausgeführt.
-
Der
Steuerungs- und Datenfluss wird anhand eines Beispiels beschrieben,
bei dem die Steuerung 950 Schreibdaten an eine Speicherressource 985 überträgt, die
eine Gruppe von Speicherplattenlaufwerken umfasst.
-
Wenn
die Steuerung 950 eine Anforderung für einen Datendienst von einem
Dienstnetzwerk 970 empfängt,
wandelt ein Prozessor 952 die Dienstanforderung in eine
E/A-Anweisung an die Speichervorrichtung 980 um und sendet
die E/A-Anweisung über die
Fiber-Channel-Schnittstelle 953, den Fiber-Channel-Schalter 956 und
die Fiber-Channel-Schnittstelle 986 an die Speichervorrichtung 980.
-
Die
an die Speichervorrichtung 980 gesendete E/A-Anweisung
wird im Steuerspeicher 982 gespeichert. Falls die E/A-Anweisung ein Schreibbefehl ist,
weist die Fiber-Channel-Schnittstelle 986 den Prozessor 952 an,
die Daten zu übertragen.
Gemäß dieser
Anweisung sendet der Prozessor 952 die Schreibdaten nach
dem Fiber-Channel-Protokoll an die Speichervorrichtung 980.
Die Speichervorrichtung 980 empfängt die gesendeten Schreibdaten
und speichert die Daten vorübergehend
im Cache-Speicher 983. Die Schreibdaten werden von der
Geräteschnittstelle 984 zusammen
mit redundanten Daten an die Speicherressource 985 übertragen.
-
Als
Nächstes
wird ein Mechanismus in dem Speichersteuersystem 971 beschrieben,
bei dem in dem in 9 gezeigten System der Betrieb
des Speichersteuersystems 971, zum Beispiel ein Datendienst,
automatisch fortgesetzt werden kann, indem die Steuerung 960 veranlasst
wird, die Ressourcen von der Steuerung 950 zu übernehmen,
wenn diese versagt, und die Steuerung 950 veranlasst wird,
die Ressourcen von der Steuerung 960 zu übernehmen, wenn
diese versagt.
-
Die
Speicherressource 985 speichert eine Betriebszustandsverwaltungstabelle,
wie in 10 gezeigt. Die Betriebszustandsverwaltungstabelle umfasst
Felder wie die Informationen 1001 und 1002 zum
Angeben der jeweiligen Steuerung und Informationen 1003 und 1004 zum
Angeben der zu überwachenden
Steuerung.
-
Diese
Felder werden zum Beispiel nach einer Failover-Richtlinie eingestellt. Die Zeitstempel 1005 und 1006 geben
die Zeit für
die jeweiligen Steuerungen 950 und 960 an, wenn
die Steuerungen 950 und 960 eine E/A mit Betriebsinformationen
(oder eine Herzschlagnachricht) ausgeben. In den Feldern 1007 und 1008 „Zustand" in der Betriebszustandsverwaltungstabelle
werden Informationen eingestellt, die den Zustand „Normal" und/oder „Störung" für die Steuerungen 950 und 960 angeben.
Falls nötig,
können
typische Kennzeichen wie Namen, die der Steuerung im Dienstnetzwerk 970 beim
Konfigurieren eines Clustersystems zugewiesen werden, für die Informationen
verwendet werden, die in diesen Feldern eingestellt werden.
-
Der
Prozessor 952 der Steuerung 950 sendet einen Lesebefehl
zum Lesen der Betriebszustandsverwaltungstabelle in der Speicherressource 985 mit
einem geeigneten Takt (zum Beispiel periodisch) und erhält alle
oder einen Teil der in der Betriebs zustandsverwaltungstabelle angegebenen
Daten. Wenn der Prozessor 952 die Betriebszustandsverwaltungstabelle
liest, sieht er im Feld 1001 und 1002 „Name der
Steuerung" unter
den gesamten Daten nach und bezieht sich auf den Namen der Steuerung,
die unter „Zu überwachende
Steuerung" aufgelistet
ist, entsprechend dem Steuerungsnamen „Server A", welches der Name der Steuerung 950 ist.
In diesem Beispiel ist „Server
B" dem „Server
A" als die Steuerung
zugewiesen, die überwacht
werden soll. Daher prüft
der Prozessor 952 den Zeitstempel 1006 und das
Feld 1008 „Zustand" für den „Server
B" und bestimmt,
ob ein Failover-Prozess
ausgeführt
werden muss oder nicht.
-
Ist
eine Differenz zwischen dem Zeitstempel 1006 von „Server
B" und der aktuellen
Zeit gleich oder größer als
eine vorgegebene Zeitdauer oder sind Informationen, die einen Zustand „Störung" angeben, im Feld 1008 „Zustand" eingestellt, bestätigt der
Prozessor 952, dass eine Art von Versagen oder Fehler in
der Steuerung 960 vorliegt. Weil der Prozessor 952 auf
die Betriebszustandsverwaltungstabelle zugreifen kann, bestätigt der
Prozessor 952 außerdem,
dass kein Versagen im internen Kommunikationspfad vorliegt und dass
das Versagen in der Steuerung 960 vorliegt, und beginnt,
die von der Steuerung 960 ausgeführten Prozesse und deren Ressourcen
zu übernehmen.
-
Hierbei
ist zu beachten, dass der Prozessor 952 den Inhalt der
Felder 1005 und 1007 in 10, die
den Zeitstempel und die Zustandsinformationen für den „Server A" mit einem geeigneten Takt (zum Beispiel
periodisch) angeben, aufdatiert, unabhängig davon, ob der Prozessor 952 ein
Versagen in der Steuerung 960 feststellt oder nicht. Die
Steuerungen 950 und 960 führen die vorstehend genannten
Prozesse regelmäßig aus,
um einen Mechanismus wie für
die Fehlerüberwachung
mit einer universellen E/A-Schnittstelle als Kommunikationspfad
zu realisieren.
-
Als
Nächstes
wird der Betrieb des Speichersteuersystems bei Auftreten eines Versagens
oder Fehlers in dem Fiber-Channel-Schalter 956 beschrieben.
-
Wenn
der Fiber-Channel-Schalter 956 ausfällt, ist die Steuerung 950 nicht
in der Lage, eine Eingabe/Ausgabe auszuführen. Wenn die Steuerung 960 jedoch
die Verarbeitung gemäß dem normalen Failover-Modus
fortsetzt, konzentriert sich die Verarbeitung auf die Steuerung 960,
und die Gesamtleistung kann sich verschlechtern.
-
Daher
wird in einem solchen Fall die E/A fortgesetzt, indem der Eingabe-/Ausgabepfad
für die Steuerung 950 von
einem normalen Pfad über
die Fiber-Channel-Schnittstelle 953 -> den Fiber-Channel-Schalter 956 -> die Fiber-Channel-Schnittstelle 986 zum
Beispiel mittels einer universellen E/A-Schaltsoftware in einen
anderen Pfad geändert wird,
der über
die Fiber-Channel-Schnittstelle 954 -> den Fiber-Channel-Schalter 966 -> die Fiber-Channel-Schnittstelle 996 läuft. Dabei
wird auch der Pfad umgeschaltet, über den die Steuerung 950 die
E/A zu/von der Speicherplatten-Volumegruppe 985 zum Speichern
und Bestätigen
der Zugriffszustandsinformationen der Steuerung 950 ausgeführt hat.
-
In
diesem Beispiel speichert die Steuerung 950 auf der Speicherplatten-Volumegruppe 985 den Zeitstempel 1005 und
den Inhalt des Felds 1007 „Zustand" für
die Steuerung 950 in 10 über die
Fiber-Channel-Schnittstelle 954 -> den Fiber-Channel-Schalter 966 -> die Fiber-Channel-Schnittstelle 996.
-
Vorstehend
ist ein Beispiel beschrieben, bei dem der Fiber-Channel-Schalter 956 ausgefallen
ist. Der vorstehend genannte Prozess kann jedoch umfassend für Fälle benutzt
werden, wo ein Versagen zum Beispiel in der Fiber-Channel-Schnittstelle 953, dem
Fiber-Channel-Schalter 966 oder der Fiber-Channel-Schnittstelle 986 auftritt.
-
Außerdem ist
es möglich,
in dem Speicherplattenlaufwerk zum Speichern der Betriebszustände der
Steuerungen Netzwerkattribute wie Netzwerkadressen der Steuerungen,
die für
einen Cluster-Betrieb nötig
sind, und Informationen bezüglich
der Übernahme
von Ressourcen zu speichern, zum Beispiel Informationen über die
Speicherplattenlaufwerke, in denen Daten gespeichert sind. Weil
die Steuerungen diese in dem Speicherplattenlaufwerk gespeicherten
Informationen auslesen können,
wird es mit einem solchen Aufbau möglich, die Verwaltung der Einstellungen
für die Übernahme
von Ressourcen zu vereinheitlichen und eine weitere Senkung der
Verwaltungskosten zu realisieren.
-
9 zeigt
eine Konfiguration mit zwei Fiber-Channel-Schaltern 956 und 966.
Die vorliegende Erfindung kann jedoch umfassend auch für Konfigurationen
verwendet werden, in denen keine Fiber-Channel-Schalter vorgesehen
sind, und/oder für Konfigurationen
mit drei oder mehr Fiber- Channel-Schaltern.
Außerdem
kann die vorliegende Erfindung für
Fälle mit
anderen universellen E/A-Schnittellen als Fiber Channel angewendet
werden.
-
Wie
vorstehend erläutert,
wird nach dem vorliegenden Beispiel die Übertragung der Betriebsinformationen,
die die Zustandsinformationen für
die Steuerungen 950 und 960 enthalten, über die
universelle E/A-Schnittstelle an die Speichervorrichtung 980 ausgeführt, und
nicht über
den externen Kommunikationspfad oder einen privaten Kommunikationspfad.
Daher ist es nicht nötig,
eine Netzwerkschnittstelle für
Herzschläge
vorzusehen, wodurch eine Senkung der Kosten und Verringerung des
Aufwands erreicht wird. Außerdem
ist es durch Verwendung der sehr zuverlässigen universellen E/A-Schnittstelle möglich, eine
hoch zuverlässige
Funktion zum Überwachen
der Betriebszustände
zu realisieren.
-
Verfahren zum Speichern von Betriebsinformationen
-
Als
Nächstes
wird ein Beispiel zum Speichern der von einer Allzweck-Cluster-Software
gesendeten Betriebsinformationen in einer Speicherressource (zum
Beispiel einem Speicherplattenlaufwerk) wie Speicherplattenlaufwerken
einer Speichervorrichtung beschrieben, wenn ein System nach einem
Aspekt der vorliegenden Erfindung mit Allzweck-Cluster-Software konfiguriert
worden ist.
-
11 zeigt
ein Beispiel eines Speichersteuersystems 1000 mit dem vorstehend
beschriebenen Aufbau. Die Steuerungen 1110 bzw. 1150 empfangen
mit ihren Dateisystemen 1113 und 1153 Dateidienstanforderungen
von Clients über
die jeweiligen Netzwerkschnittstellen 1111 und 1151 und
Netzwerktreiber 1112 und 1152. Die Dateisysteme 1113 und 1153 führen jeweils
die Datenübertragung
mit einer Speichervorrichtung 1119 über die jeweiligen Speichertreiber 1114 und 1154,
Fiber-Channel-Schnittstellen 1115 und 1155 und
Fiber-Channel-Schalter 1116 und 1156 aus.
Eine universelle E/A-Schaltsoftware
ist in die Speichertreiber 1114 und 1154 eingearbeitet.
-
Wenn
der Datenübertragungspfad
ausfällt, schalten
die Speichertreiber 1114 und 1154 den Pfad für die Datenübertragung
auf einen Pfad um, der durch die Fiber-Channel-Schnittstellen 1117 und 1157 und
die Fiber-Channel-Schalter 1116 und 1156 läuft.
-
Im
vorliegenden System sendet die Allzweck-Cluster-Software Betriebsinformationen einschließlich Informationen
bezüglich
der Zustände
der Steuerungen an das Netzwerk. Ferner ist es möglich, Emulationstreiber 1120 und 1160 in
jeder der Steuerungen 1110 und 1150 arbeiten zu
lassen. Diese Emulationstreiber 1120 und 1160 empfangen
Anforderungen für
die vorstehend genannten Betriebsinformationen wie Netzwerktreiber
und wandeln die Anforderungen in Anforderungen zum Ausführen der Datenübertragung
an die Speichervorrichtung 1119 über universelle E/A-Schnittstellen
um. Mit einem solchen Aufbau ist es möglich, Herzschlagnachrichten über die
universellen E/A-Schnittstellen transparent mit der Allzweck-Cluster-Software
auszutauschen.
-
Auch
wenn die E/A-Vorgänge
Herzschlagnachrichten über
die universellen E/A-Schnittstellen sind, schalten bei einem Versagen
des Datenübertragungspfads
die Speichertreiber 1114 und 1154 den Datenübertragungspfad
auf einen Pfad über
die Fiber-Channel-Schnittstellen 1117 und 1157 und
die Fiber-Channel-Schalter 1116 und 1156 um und
setzen die Datenübertragung
fort. Daher wird ein leistungsfähiger
Mechanismus zum Überwachen
der Betriebszustände
realisiert.
-
Obwohl
die bevorzugte Ausführungsform
der vorliegenden Erfindung ausführlich
beschrieben worden ist, ist zu beachten, dass verschiedene Änderungen,
Ergänzungen
und Modifikationen daran vorgenommen werden können, ohne vom Umfang der Erfindung
abzuweichen, wie er in den anliegenden Ansprüchen festgelegt ist.