-
Allgemeiner Stand der Technik
-
Die
vorliegende Erfindung betrifft allgemein Systeme und Verfahren zum
Beseitigen von Engpässen
in Datenspeichernetzwerken und in direkt mit einem Server verbundenem
Speicher und insbesondere Systeme und Verfahren zum Implementieren
der Verwaltung von dynamisch gemeinsam genutzten Redundanzgruppen
zwischen mehreren Laufwerksarraymanagementfunktionen.
-
Der
Bedarf an schnellerer Kommunikation zwischen Computern und Datenspeichersystemen erfordert
immer schnellere und effizientere Speichernetzwerke. In den vergangenen
Jahren hat die Implementierung von Clusterbildungstechniken und Speicherbereichsnetzwerken
(Storage Area Networks – SANs)
die Leistung von Speichernetzwerken deutlich erhöht. In einem typischen Speichernetzwerk
werden zum Beispiel N Server für
einen proportionalen Leistungszuwachs zu einem Cluster gruppiert,
und ein SAN (zum Beispiel ein faserkanalgestütztes SAN) wird zwischen die
Server und verschiedene RAID-Speichersysteme/-arrays (RAID = Redundant
Array of Inexpensive Disks) eingefügt. Das SAN ermöglicht es
jedem Server, auf jedes Speicherelement zuzugreifen. Jedoch hat
in dem typischen Speichernetzwerk jedes RAID-System einen zugehörigen RAID-Controller,
auf den zugegriffen werden muss, um auf Daten zuzugreifen, die in
dem bestimmten RAID-System gespeichert werden. Das kann zu Engpässen in
der Systemleistung führen, weil
auf den Speicher, der durch einen bestimmten RAID-Controller verwaltet
wird, nur durch diesen RAID-Controller zugegriffen werden kann.
Wenn überdies
ein Controller ausfällt,
so kann auf Informationen, die in dem RAID-System gespeichert sind, das
durch den ausgefallenen Controller verwaltet wird, nicht mehr zugegriffen
werden.
-
Eine
Lösung
zum Herstellen von Störungsunempfindlichkeit
besteht darin, einen redundanten Controller in ein Master/Slave-Array
einzubinden. Der Master-Controller hat die primäre Kontrolle, und nur, wenn
der Master ausfällt, übernimmt
der Slave-Controller die Kontrolle. Diese Lösung ist jedoch sehr ineffizient,
weil der Slave-Controller erst dann verwendet wird, wenn es zu einem
Ausfall des Masters gekommen ist.
-
Die
internationale Anmeldung
WO 98/28685 offenbart
eine Vorrichtung zum Ausführen
gleichzeitiger Operationen in gemeinsam genutzten Laufwerken durch
mehrere Controller. Die Controller tauschen Meldungen aus, um einen
gleichzeitigen Zugriff auf die gemeinsam genutzten Laufwerke zu
koordinieren. Die Meldungen enthalten Zeichenträgerverriegelungs- und -freigabeanforderungen,
um einen exklusiven Zugriff während
Operationen zu koordinieren, sowie Cache-Daten, um eine Cachekohärenz zwischen
den Controllern aufrecht zu erhalten.
-
Eine
andere Lösung
ist es, die Master/Slave-Controllerarchitektur
zu verwenden, aber das Speicherarray in zwei Redundanzgruppen aufzuteilen,
von denen jede nur durch einen einzigen der zwei Controller gesteuert
wird (jeder Controller ist ein "Master" für die von
ihm gesteuerte Redundanzgruppe). Auf diese Weise arbeiten beide
Controller zur selben Zeit, wodurch die Effizienz des Systems gesteigert
wird. Falls ein Controller ausfällt, übernimmt der
andere Controller die Steuerung der Redundanzgruppe des ausgefallenen
Controllers. Diese Lösung verhindert
auch "Kollisionen", zu denen es zum
Beispiel kommt, wenn mehr als ein Controller versucht, Daten in
eine Redundanzgruppe zu schreiben. Diese Lösung hat aber auch einige Leistungsnachteile. Zum
Beispiel ist die Leistung in einer solchen Master/Slave-Architektur
durch die Geschwindigkeit des Master-Controllers dergestalt begrenzt,
dass die Leistung nicht skalierbar ist.
-
Darum
ist es wünschenswert,
Techniken zum Implementieren einer Peer-to-Peer-Controllerarchitekturlösung bereitzustellen,
bei der die Systemleistung nicht durch die Geschwindigkeit eines
bestimmten Controllers begrenzt ist. Des Weiteren sollte ein solches
System eine geeignete Störungsunempfindlichkeit
und Leistungsskalierbarkeit ermöglichen.
-
Kurzdarstellung der Erfindung
-
Die
vorliegende Erfindung wird durch die Ansprüche definiert.
-
Die
vorliegende Erfindung stellt eine solche Peer-to-Peer-Controllerarchitekturlösung für die Datenspeicherverwaltung
bereit. Die Systeme und Verfahren der vorliegenden Erfindung implementieren einen
neuartigen Typ einer RAID-Arraymanagementfunktion, die sich zum
Aufbauen hoch-skalierbarer Laufwerksarrays eignen. Insbesondere
stellen die Systeme und Verfahren der vorliegenden Erfindung eine
gemeinsam genutzte Redundanzgruppenverwaltung zwischen mehreren
(zwei oder mehr) Arraymanagementfunktionen bereit.
-
Gemäß der Erfindung
sind mehrere Arraymanagementfunktionen (AMFs) über ein Verbindungsmedium mit
mehreren Redundanzgruppen verbunden. In einer Ausführungsform
sind zum Beispiel die Arraymanagementfunktionen über ein beliebiges Speicherbereichsnetzwerk
(Storage Area Network – SAN),
wie zum Beispiel ein faserkanalgestütztes SAN, mit den Redundanzgruppen
verbunden. Die mehreren AMFs teilen sich in die Verwaltungszuständigkeit
für die
Redundanzgruppen, von denen jede in der Regel mehrere Ressourcen
enthält,
die über mehrere
Laufwerke verteilt sind. Die AMFs ermöglichen zugehörigen Host-Systemen
den gleichzeitigen Zugriff auf die Redundanzgruppen. Wenn ein Host verlangt,
dass eine AMF eine Operation an einer Ressource ausführt, so
synchronisiert sich die AMF mit den anderen AMFs, die sich in die
Steuerung der Redundanzgruppe teilen, welche die Ressource, an der
eine Operation ausgeführt
werden soll, enthält, um
die Ressource zu verriegeln. Während
des Ausführens
der Operation sendet die AMF Replikationsdaten und Statusinformationen,
die mit der Ressource verbunden sind, dergestalt, dass, wenn die
AMF ausfällt,
jede der anderen AMFs in der Lage ist, die Operation zu Ende zu
führen
und die Datenverlässlichkeit
und -kohärenz
zu wahren.
-
Im
Sinne des vorliegenden Textes haben die Begriffe "Array Management
Function" [Arraymanagementfunktion], "Redundancy Group" [Redundanzgruppe]
und "Redundancy
Group Management" [Redundanzgruppenverwaltung]
die Bedeutungen, die ihnen im Handbuch der Systemspeichertechnologie
des RAID Advisory Board (RAB), 6. Ausgabe, zugewiesen sind.
-
"Arraymanagementfunktion" (AMF) meint allgemein
die Instanz, die eine gemeinsame Steuerung und Verwaltung für eine oder
mehrere Laufwerks- oder Bandarrays ausführt. Eine AMF präsentiert
der Betriebsumgebung die von ihr gesteuerten Arrays von Bändern oder
Laufwerken als ein oder mehrere virtuelle Laufwerke oder Bänder. Eine
AMF wird in der Regel in einem Laufwerks-Controller, einem intelligenten
Hostbusadapter oder in einem Hostcomputer ausgeführt. Wenn sie in einem Laufwerks-Controller
ausgeführt
wird, so wird eine AMF oft als Firmware bezeichnet. In jedem Controller,
Adapter oder Host können
je nach Bedarf für
eine bestimmte Anwendung eine oder mehrere AMFs ausgeführt werden.
-
"Redundanzgruppe" meint allgemein
eine Zusammenstellung von p_Extents, die durch eine AMF für den Zweck
des Datenschutzes organisiert wird. Mit einer einzelnen Redundanzgruppe
wird ein einzelner Datenschutztyp verwendet. Die gesamte Nutzerdatenspeicherkapazität in einer
Redundanzgruppe wird durch Prüfdaten
geschützt,
die innerhalb der Gruppe gespeichert sind, und keinerlei Nutzerdatenkapazität außerhalb
einer Redundanzgruppe wird durch Prüfdaten, die in ihr gespeichert
sind, geschützt.
Redundanzgruppen enthalten in der Regel logische Entitäten, die
aus vielen Ressourcen zusammengesetzt sind, wie zum Beispiel Streifen,
Datenblöcke,
cachegespeicherte Daten, Abbildungstabellen, Konfigurationstabellen,
Statustabellen usw.
-
"Redundanzgruppenverwaltung" meint allgemein
die Zuständigkeiten,
Prozesse und Aktionen einer AMF, die zu einer bestimmten Redundanzgruppe gehört.
-
Gemäß der Erfindung
werden Aktualisierungen der Prüfdaten
innerhalb einer Redundanzgruppe zwischen den verschiedenen AMFs,
welche die Redundanzgruppe gemeinsam nutzen, dynamisch koordiniert
und synchronisiert. Ein solches Aktualisieren wird mittels Kohärenz- und
Verriegelungs- und Freigabetechniken ermöglicht. Kohärenz und Verriegeln werden
in der Regel als eine Funktion eines Blocks, einer Gruppe von Blöcken, eines
Streifens oder einer Gruppe von Streifen ausgeführt. Verriegeln wird dynamisch
mittels eines beliebigen aus einer Vielzahl einschlägig bekannter
oder proprietärer
Kohärenzprotokolle
wie zum Beispiel MESI ausgeführt.
Außerdem
wird die Kohärenz
zwischen den Cache-Speichern, die zu einer Redundanzgruppe gehören, und den
Daten, die in der Redundanzgruppe enthalten sind, synchronisiert
und gewahrt.
-
Gemäß einem
Aspekt der Erfindung wird ein Datenspeichernetzwerk bereitgestellt,
das in der Regel eine Redundanzgruppe, die mehrere Ressourcen enthält, und
zwei oder mehr Arraymanagementfunktionen (AMFs) umfasst, die einen
gemeinsamen Zugriff auf die Redundanzgruppe nutzen. Die AMFs ermöglichen
zugehörigen
Host-Systemen einen gleichzeitigen Zugriff auf die Redundanzgruppe.
Das Netzwerk enthält
in der Regel auch ein Speicherbereichsnetzwerk zum Verbinden der
AMFs mit der Redundanzgruppe. Wenn in einer typischen Operation
eine erste der AMFs eine Operation an einer ersten Ressource in
der Redundanzgruppe ausführen
will, so arbitriert die erste AMF mit den anderen AMFs, die den
Zugriff auf die Redundanzgruppe gemeinsam nutzen, für eine Verriegelung
der ersten Ressource. Anschließend
führt die
erste AMF die Operation an der ersten Ressource aus und sendet gleichzeitig Replikationsdaten
und Statusinformationen, die zu der ersten Ressource gehören, an
die anderen AMFs, dergestalt, dass, wenn die erste AMF während des
Ausführens
der Operation ausfällt,
eine der anderen AMFs in der Lage ist, die Operation zu Ende zu
führen.
-
Gemäß einem
weiteren Aspekt der Erfindung wird ein Verfahren zur dynamischen
gemeinsamen Nutzung der Verwaltung einer Redundanzgruppe zwischen
zwei oder mehr Arraymanagementfunktionen (AMFs) bereitgestellt,
wobei die AMFs in der Lage sind, gleichzeitig auf die Redundanzgruppe
zuzugreifen, die mehrere Ressourcen enthält. Das Verfahren umfasst in
der Regel die Schritte des Empfangens einer Anforderung von einem
Host durch eine erste der AMFs zum Ausführen einer ersten Operation
an einer ersten der Ressourcen; des Synchronisiert mit den anderen
AMFs, um Zugriff auf die erste Ressource zu erhalten; und Ausführen der
ersten Operation an der ersten Ressource.
-
Gemäß einem
weiteren Aspekt der Erfindung wird ein Datenspeichernetzwerksystem
bereitgestellt, das in der Regel eine oder mehrere Redundanzgruppen
umfasst, wobei jede Redundanzgruppe mehrere Ressourcen enthält, die über mehrere
Laufwerke verteilt sind, sowie zwei oder mehr Arraymanagementfunktionen
(AMFs), die eine Redundanzgruppenverwaltung der einen oder mehreren
Redundanzgruppen gemeinsam nutzen, wobei die AMFs in der Lage sind,
gleichzeitig auf die eine oder die mehreren Redundanzgruppen zuzugreifen.
Das System umfasst in der Regel auch ein Speicherbereichsnetzwerk
zum Verbinden der AMFs mit den Redundanzgruppen.
-
Gemäß einem
weiteren Aspekt der Erfindung wird ein Verfahren bereitgestellt,
um eine Redundanzgruppe zu rekonstruieren, wenn eines ihrer Laufwerke
in einem Datenspeichernetzwerksystem ausfällt. Das typische Netzwerksystem
umfasst zwei oder mehr Arraymanagementfunktionen (AMFs), die mit
der Redundanzgruppe über
ein Speicherbereichsnetzwerk verbunden sind, wobei die AMFs alle die
Verwaltung der Redundanzgruppe gemeinsam nutzen, und wobei die AMFs
in der Lage sind, gleichzeitig auf die Redundanzgruppe zuzugreifen.
Die Redundanzgruppe enthält
mehrere Ressourcen, die über
mehrere Laufwerke verteilt sind, und ein Ersatzlaufwerk. Das Verfahren
umfasst in der Regel die Schritte des Arbitrieren für die Steuerung
einer ersten Ressource der Redundanzgruppe durch eine erste der
AMFs, des Arbitrierens für
die Steuerung einer zweiten Ressource der Redundanzgruppe durch eine
zweite der AMFs und des gleichzeitigen Rekonstruierens der ersten
und der zweiten Ressource unter Verwendung des Ersatzlaufwerks.
-
Gemäß einem
weiteren Aspekt der Erfindung wird ein Verfahren bereitgestellt,
um eine Redundanzgruppe zu erweitern, wenn ihr ein zusätzliches
Laufwerk in einem Datenspeichernetzwerksystem hinzugefügt wird.
Das Netzwerksystem umfasst in der Regel zwei oder mehr Arraymanagementfunktionen
(AMFs), die mit der Redundanzgruppe über ein Speicherbereichsnetzwerk
verbunden sind. Die Redundanzgruppe enthält mehrere Ressourcen, die über mehrere
Laufwerke verteilt sind. Die AMFs nutzen alle die Verwaltung der
Redundanzgruppe gemeinsam und sind in der Lage, gleichzeitig auf
die Redundanzgruppe zuzugreifen. Das Verfahren umfasst in der Regel
die Schritte des Arbitrierens für
die Steuerung einer ersten Ressource durch eine erste der AMFs,
des Arbitrierens für
die Steuerung einer zweiten Ressource durch eine zweite der AMFs
und des gleichzeitigen Erweiterns der ersten und der zweiten Ressource
unter Verwendung des zusätzlichen
Laufwerks.
-
Gemäß einem
weiteren Aspekt der Erfindung wird ein Verfahren zum Pipelining
der Replikation von ankommenden Hostdaten in einem Datenspeichernetzwerksystem
bereitgestellt. Das Netzwerksystem umfasst in der Regel eine Redundanzgruppe,
die mit zwei oder mehr Arraymanagementfunktionen (AMFs) über ein
Speicherbereichsnetzwerk verbunden ist. Die Redundanzgruppe enthält mehrere
Ressourcen, die über
mehrere Laufwerke verteilt sind. Die AMFs nutzen alle die Verwaltung
der Redundanzgruppe gemeinsam und sind in der Lage, gleichzeitig
auf die Redundanzgruppe zuzugreifen. Das Verfahren umfasst in der
Regel die Schritte des Empfangens eines Schreibbefehls durch eine
erste AMF von einem Host zum Schreiben von wenigstens zwei Datensätzen in
zwei oder mehr der Ressourcen und des Erhaltens durch die erste
AMF einer Verriegelung der ersten Ressource, in die der erste Datensatz
geschrieben werden soll. Das Verfahren enthält in der Regel auch die Schritte
des Schreibens des ersten Datensatzes in die erste Ressource und
des gleichzeitigen Ausführens
einer ersten Replikationsoperation, wobei Replikationsdaten und
Statusinformationen, die zu der ersten Ressource gehören, an die
anderen AMFs gesendet werden, dergestalt, dass, wenn die erste AMF
während
des Ausführens der
Schreiboperation ausfällt,
eine der anderen AMFs in der Lage ist, die Schreiboperation zu Ende zu
führen.
-
Gemäß einem
weiteren Aspekt der Erfindung wird ein Verfahren zur dynamischen
gemeinsam genutzten Verwaltung einer Redundanzgruppe zwischen zwei
oder mehr Arraymanagementfunktionen (AMFs) in einem Datenspeichersystem
bereitgestellt. Die AMFs sind in der Lage, gleichzeitig auf die Redundanzgruppe
zuzugreifen, die mehrere Ressourcen enthält. Das Verfahren umfasst in
der Regel den Schritt des Bestimmens einer Arbitrierer-AMF für eine erste
der Ressourcen, wobei die Arbitrierer-AMF eine der zwei oder mehr
AMFs ist, welche die Verwaltung der Redundanzgruppe gemeinsam nutzen.
Die Arbitrierer-AMF in der Lage ist, eine Verriegelung für die erste
Ressource zu gewähren.
Das Verfahren umfasst in der Regel auch die Schritte des Übermittelns
einer Verriegelungsanforderung von einer ersten der AMFs an die
Arbitrierer-AMF zum Anfordern einer Verriegelung der ersten Ressource
und des Ausführens
einer Operation an der ersten Ressource durch die erste AMF, sobald
die Verriegelung der ersten Ressource durch die Arbitrierer-AMF gewährt wurde.
-
Das
Studium der übrigen
Abschnitte der Spezifikation, einschließlich der Zeichnungen und Ansprüche, offenbart
weitere Merkmale und Vorteile der vorliegenden Erfindung. Weitere
Merkmale und Vorteile der vorliegenden Erfindung sowie der Aufbau und
die Funktionsweise verschiedener Ausführungsformen der vorliegenden
Erfindung werden im Folgenden eingehender anhand der begleitenden
Zeichnungen beschrieben. In den Zeichnungen bezeichnen gleiche Bezugszahlen
identische oder funktional ähnliche
Elemente.
-
Kurze Beschreibung der Zeichnungen
-
1 bis 7 zeigen
beispielhafte Konfigurationen, die sich dafür eignen, Daten von einer oder
mehreren Redundanzgruppen zu einem oder mehreren Host-Systemen unter
Verwendung von Controllern zu übermitteln,
die den Zugriff auf die – und
die Steuerung der – Redundanzgruppen
gemäß der vorliegenden
Erfindung gemeinsam nutzen.
-
8 zeigt
eine Mehr-Controller-Konfiguration
und die interne Konfiguration der Controller gemäß der vorliegenden Erfindung.
-
9 zeigt
eine Operation unter Verwendung einer allgemeinen Synchronisationssequenz gemäß einer
Ausführungsform
der vorliegenden Erfindung.
-
10 zeigt
eine Operation unter Verwendung einer allgemeinen Replikationssequenz
gemäß einer
Ausführungsform
der vorliegenden Erfindung.
-
11a zeigt den Ablauf für Leseoperationen, wenn sich
die Redundanzgruppe in einem normalen, nicht-leistungsgeminderten
Modus befindet, gemäß einer
Ausführungsform
der vorliegenden Erfindung.
-
11b zeigt den Ablauf für Leseoperationen, wenn sich
die Redundanzgruppe in einem leistungsgeminderten Modus befindet,
gemäß einer Ausführungsform
der vorliegenden Erfindung.
-
12 zeigt
den Ablauf für
das Pipelining der Replikation ankommender Host-Daten gemäß einer
Ausführungsform
der vorliegenden Erfindung.
-
13a zeigt den Ablauf für eine Schreiboperation, wenn
sich die Redundanzgruppe in einem normalen, nicht-leistungsgeminderten
Modus befindet, gemäß einer
Ausführungsform
der vorliegenden Erfindung.
-
13b zeigt den Ablauf für einen Wiederherstellungsprozess,
wenn die AMF, welche die Streifen aktualisiert, wie in 13a gezeigt, ausfällt, bevor die Aktualisierung
vollendet ist, gemäß einer Ausführungsform
der vorliegenden Erfindung.
-
14a zeigt den Ablauf für eine Schreiboperation, wenn
sich die Redundanzgruppe in einem leistungsgeminderten Modus (mit
einem ausgefallenen Laufwerk) befindet, gemäß einer Ausführungsform
der vorliegenden Erfindung.
-
14b zeigt den Ablauf für einen Wiederherstellungsprozess,
wenn die AMF, welche die Streifen aktualisiert, wie in 14a gezeigt, ausfällt, bevor die Aktualisierung
vollendet ist, gemäß einer Ausführungsform
der vorliegenden Erfindung.
-
15 zeigt
den Ablauf für
einen im Hintergrund ablaufenden Rekonstruktionsprozess gemäß einer
Ausführungsform
der vorliegenden Erfindung.
-
16 zeigt
den allgemeinen Sequenzablauf für
einen im Hintergrund ablaufenden Erweiterungsprozess gemäß einer
Ausführungsform
der vorliegenden Erfindung.
-
17a und 17b veranschaulichen eine
AMF-Kommunikation
ohne bzw. mit den Meldungserfassungstechniken der vorliegenden Erfindung.
-
18a veranschaulicht einen grundlegenden Arbitrierungsprozess,
wobei eine AMF eine Verriegelung für eine bestimmte Ressource
anfordert, gemäß der vorliegenden
Erfindung.
-
18b veranschaulicht den allgemeinen Prozessablauf
des verallgemeinerten Arbitrierungsprozesses gemäß der vorliegenden Erfindung.
-
19 veranschaulicht
einen vereinfachten Arbitrierungsprozess zwischen zwei AMFs in einer Clusterkonfiguration
für eine
einzelne Ressource.
-
20 veranschaulicht
beispielhafte Ressourcenarbitrierungssequenzen für ein Cluster aus vier AMFs
gemäß der vorliegenden
Erfindung.
-
Detaillierte Beschreibung
-
Die
vorliegende Erfindung stellt eine gemeinsam genutzte Redundanzgruppenverwaltung (Shared
Redundancy Group Management – SRGM) zwischen
mehreren AMFs bereit, so dass mehrere AMFs gleichzeitig auf dieselbe
Redundanzgruppe zugreifen können.
Gemäß der vorliegenden
Erfindung werden Techniken der verteilten Synchronisation und Replikation
verwendet, um die Aktivitäten
aller AMFs, die eine Redundanzgruppe gemeinsam nutzen, zu koordinieren
und die Datenverlässlichkeit zu
wahren. Der Zugriff auf eine beliebige Redundanzgruppe kann über einen
beliebigen Controller erfolgen, der eine AMF enthält, welche
die Steuerung der betreffenden Redundanzgruppe gemeinsam nutzt. Die
AMFs, die eine Ressourcengruppe gemeinsam nutzen, sind somit Peers.
Wenn des Weiteren eine Redundanzgruppe für einen gemeinsam genutzten Zugriff
konfiguriert ist und ein Controller ausfällt, so wird der Zugriff auf
Daten über
den ausgefallenen Controller gesperrt, aber die Daten in der Redundanzgruppe
sind immer noch intakt, vor Laufwerksstörungen geschützt und
von jedem anderen Controller aus zugänglich, der eine AMF enthält, welche
diese Redundanzgruppe gemeinsam nutzt. Innerhalb eines bestimmten
Controllers können
mehrere AMFs vorhanden sein. In einem solchen Fall werden Redundanzgruppen
vorzugsweise gruppenweise gemeinsam genutzt. Das heißt, einige
Redundanzgruppen können
durch eine erste Gruppe von AMFs gemeinsam genutzt werden, andere
Redundanzgruppen können
durch eine zweite Gruppe von AMFs gemeinsam genutzt werden, und
wieder andere Redundanzgruppen werden möglicherweise überhaupt nicht
gemeinsam genutzt. In bevorzugten Aspekten gibt es innerhalb eines
bestimmten Controllers eine Eins-zu-eins-Beziehung zwischen einer
AMF und einer Redundanzgruppe; das heißt, eine AMF verwaltet nur
eine einzige Redundanzgruppe auf einmal. Alternativ verwaltet eine
AMF mehrere AMFs gleichzeitig.
-
1 zeigt
eine grundlegende Netzwerkkonfiguration gemäß der vorliegenden Erfindung. Wie
gezeigt, haben mehrere Netzwerk-Clienten 101 bis 10N , eine Kommunikationsverbindung zu
mehreren Servern 201 bis 20N , von denen jeder einen Controller 30 enthält. (Im
Allgemeinen bezeichnet "N" im vorliegenden
Text eine unbestimmte Mehrzahl, so dass die Zahl "N", wenn sie auf eine einzelne Komponente
bezogen ist, nicht unbedingt gleich der Anzahl "N" einer
anderen Komponente ist. Zum Beispiel entspricht die Anzahl an Clients 10 nicht
der Anzahl an Servern 20 in 1, könnte es
aber.) Jeder Netzwerk-Client 10 ist mit einem oder mehreren
Servern 20 über
eine beliebige einer Anzahl von Verbindungsregimes verbunden, so
wie es für
die konkrete Anwendung und den geografischen Standort relativ zum
Server 20 erforderlich ist, einschließlich beispielsweise einer
Internetverbindung, einer beliebigen Verbindung vom Local Area Network
(LAN)-Typ, einer beliebigen Verbindung vom Wide Area Network (WAN)-Typ, einer beliebigen
proprietären
Netzwerkverbindung usw. Jeder Controller 30 enthält eine
oder mehrere AMFs und hat eine Kommunikationsverbindung zu den mehreren
Arrays 40 der Laufwerke 45 über ein Verbindungsmedium,
wie zum Beispiel ein Speicherbereichsnetzwerk (Storage Area Network – SAN) 50.
Bei dem SAN 50 handelt es sich vorzugsweise um ein faserkanalgestütztes SAN.
Es kann jedoch auch ein anderer SAN-Type, wie zum Beispiel ein SCSI-gestütztes SAN,
oder eine direkte Serververbindung, wie zum Beispiel eine direkte
SCSI- oder FC-Verbindung, verwendet werden, ohne dass vom Geist
der Erfindung abgewichen wird. Weil jeder Controller 30 direkten
Zugriff auf jedes Array 40 über das SAN 50 hat,
kann die Redundanzgruppenverwaltung gemeinsam durch alle Controller 30 genutzt werden.
-
Ein
faserkanalgestütztes
SAN ist bevorzugt, weil der Faserkanalstandard ein offener Standard
ist, der verschiedene Netzwerktopologien unterstützt, einschließlich Point-to-Point,
Switched Fabric, Arbitrated Loop und eine beliebige Kombination
dieser Topologien. Des Weiteren werden eine Anzahl von Protokollen
durch den Faserkanalstandard unterstützt, einschließlich SCSI,
Asynchronous Transfer Mode (ATM), Transmission Control Protocol/Internet
Protocol (TCP/IP), High Performance Parallel Interface (HiPPI),
Intelligent Peripheral Interface (IPI) und andere. Außerdem ermöglicht der
Faserkanal derzeit Datenübertragungsgeschwindigkeiten
von bis zu 100 MBps (200 MBps duplex) bei Entfernungen von bis zu
30 Metern über
Kupferkabel und bis zu 10 Kilometern über Glasfaserkabel.
-
2 zeigt
ein Beispiel mehrerer Hosts, jeder mit einem Controller, der in
einem schaltergestützten
Faserkanal-SAN gemäß der vorliegenden Erfindung
konfiguriert ist. Jeder Controller 30 ist mit Schaltern 55 in
dem SAN über
zwei Faserkanalports, wie gezeigt, verbunden. Somit steht jeder
Controller 30 in Kommunikation mit allen anderen Controllern 30 und
mit dem Laufwerksarray 40. Jeder Controller 30 kommuniziert
mit seinem Host-System über
einen PCI-Bus 35. Die Schalter 55 sind mit dem
Laufwerksarray 40 unter Verwendung der Loop-Topologie,
wie gezeigt, verbunden. Der Fachmann erkennt jedoch, dass viele
Loops über
eine beliebige einer Anzahl von Schalttopologien unterstützt werden
können.
Im Allgemeinen gilt: Je mehr Loops, desto größer die Datenübertragungsraten,
die unterstützt
werden können.
Die Systemredundanz, wie in 2 gezeigt,
ist N-1, was bedeutet, dass bei N Controllern (301 bis 30N ) bis zu N-1 Controllern ausfallen
können und
keine Daten in dem Laufwerksarray 40 verloren gehen, wenn
alle Controller 30 dafür
konfiguriert sind, die Verwaltung des Arrays 40 gemeinsam
zu nutzen. Ein Controllerausfall für einen bestimmten Host verursacht
einen Verlust an Datenverfügbarkeit
für den betreffenden
Host, aber nicht für
das gesamte System. Einen Schutz vor Controllerumgebungsausfällen, wie
zum Beispiel einem Ausfall der Stromversorgung, gibt es in dieser
Systemkonfiguration, weil die Daten von einem Host-System mit Daten
in den anderen Host-Systemen gemäß der vorliegenden
Erfindung synchronisiert werden, wie weiter unten noch näher beschrieben
wird.
-
Mit
einem Controllerausfall ist ein Wiederherstellungszeitraum verbunden.
Dies ist die Zeit, die die nicht-ausgefallenen Controller brauchen,
um sicherzustellen, dass alle kritischen Daten wieder innerhalb des
Clusters repliziert werden. Wenn während dieses Wiederherstellungszeitraums
ein weiterer Controller ausfällt,
so kann es zu Datenverlust kommen.
-
3 zeigt
ein Beispiel mehrerer Controller und eines einzelnen Hosts, der
in einem schaltergestützten
Faserkanal-SAN gemäß der vorliegenden Erfindung
konfiguriert ist. Jeder Controller 30 ist mit den Schaltern 55 in
dem SAN über
zwei Faserkanalports, wie gezeigt, verbunden, jedoch können von
1 bis N Ports verwendet werden, so wie es für die konkrete Anwendung gewünscht ist.
Somit steht jeder Controller 30 mit allen anderen Controllern 30 und
mit dem Laufwerksarray 40 über das Faserkanal-SAN in Kommunikation.
Des Weiteren kommuniziert jeder Controller 30 mit dem Host-System über einen
oder mehrere PCI-Busse 35. Die Controller 30 sind
auch in der Lage, über
die PCI-Busse 35 miteinander zu kommunizieren. Die Schalter 55 sind
mit dem Laufwerksarray 40 unter Verwendung der Loop-Topologie,
wie gezeigt, verbunden. Für
den Fachmann ist es jedoch erkennbar, dass viele Loops über eine
beliebige einer Anzahl von Schalttopologien unterstützt werden
können.
Im Allgemeinen gilt: Je mehr Loops, desto größer die Datenübertragungsrate,
die unterstützt
werden können.
In dieser Konfiguration können bis
zu N-1 Controller ausfallen, bevor ein Verlust an Datenverfügbarkeit
für das
Host-System eintritt. Es ist ein externer Controller 30N+1 bereitgestellt, um einen Schutz
vor einem Ausfall des Host-Systems zu bieten. Wenn das Host-System
ausfällt,
so gehen keine Daten in dem Array 40 verloren, wenn der
Controller 30N+1 dafür konfiguriert
ist, die Verwaltung des Arrays 40 mit den Controllern 301 bis 30N des Host-Systems
gemäß der vorliegenden
Erfindung gemeinsam zu nutzen.
-
4 zeigt
ein Beispiel mehrerer Hosts, jeder mit mehreren Controllern, die
in einem schaltergestützten
Faserkanal-SAN gemäß der vorliegenden Erfindung
konfiguriert sind. Jeder Controller 30 ist mit den Schaltern 55 in
dem SAN über
zwei Faserkanalports, wie gezeigt, verbunden, jedoch können 1 bis
N Ports verwendet werden, so wie es für die konkrete Anwendung gewünscht wird.
Somit steht jeder Controller 30 mit allen anderen Controllern 30 und
mit dem Laufwerksarray 40 über das Faserkanal-SAN in Kommunikation.
Des Weiteren kommuniziert jeder Controller 30 mit seinem
Host-System über
einen oder mehrere PCI-Busse 35. Die Controller 30 sind auch
in der Lage, über
die PCI-Busse 35 miteinander zu kommunizieren. Die Schalter 55 sind
mit dem Laufwerksarray 40 unter Verwendung der Loop-Topologie, wie gezeigt,
verbunden. Für
den Fachmann ist es jedoch erkennbar, dass viele Loops über eine beliebige
einer Anzahl von Schalttopologien unterstützt werden können. Im
Allgemeinen gilt: Je mehr Loops, desto größer die Datenübertragungsraten,
die unterstützt
werden können.
In dieser Konfiguration bestehen Redundanz und Synchronisation zwischen zwei
oder mehr Controllern 30 innerhalb jedes Host-Systems.
Wenn jedes Host-System N Controller 30 enthält, so können bis
zu N-1 Controller
ausfallen, bevor ein Verlust an Datenverfügbarkeit für das Host-System eintritt.
Wenn ein Host-System ausfällt, so
gehen keine Daten in dem Array 40 verloren, wenn der Controller 30 in
anderen Hosts dafür
konfiguriert sind, die Verwaltung des Arrays 40 mit den Controllers 30 des
ausgefallenen Host-Systems gemäß der vorliegenden
Erfindung gemeinsam zu nutzen.
-
5 zeigt
ein Beispiel mehrerer Hosts, jeder mit mehreren Controllern, die
in einem Fiber Channel Arbitrated Loop (FC-AL)-SAN gemäß der vorliegenden
Erfindung konfiguriert sind. Jeder Controller 30 ist mit
der Loop über
die zwei Faserkanalports, wie gezeigt, verbunden. Somit steht jeder
Controller 30 mit allen anderen Controllern 30 und
mit dem Laufwerksarray 40 über die FC-AL in Kommunikation.
Des Weiteren kommuniziert jeder Controller 30 mit seinem
Host-System über
einen oder mehrere PCI-Busse 35. In diese Konfiguration
gibt es Redundanz und Synchronisation zwischen zwei oder mehr Controllern
innerhalb jedes Host-Systems. Wenn jedes Host-System N Controller 30 enthält, so können bis
zu N-1 Controller
ausfallen, bevor ein Verlust an Datenverfügbarkeit für das Host-System eintritt.
Des Weiteren kommt es, wenn ein Host-System ausfällt, zu keinem Datenverlust
in dem Array 40, wenn die Controller 30 in anderen
Hosts dafür
konfiguriert sind, die Verwaltung des Arrays 40 mit den
Controllern 30 des ausgefallenen Host-Systems gemäß der vorliegenden
Erfindung gemeinsam zu nutzen.
-
6 zeigt
zwei unabhängige
Redundanzgruppen, die durch zwei unabhängige Controller gemäß der vorliegenden
Erfindung verwaltet werden. Die Redundanzgruppe A wird durch den
Controller 30A des Host-Systems A verwaltet,
und die Redundanzgruppe B wird durch den Controller 30B des Host-Systems B verwaltet. Ebenfalls
gezeigt sind ein externes Host-System C und ein externes Host-System
D. Gemäß einer
Ausführungsform
fungieren die FC-Ports der Controller 30A und 30B sowohl als Geräte- als auch Hostkanäle. Dies
ermöglicht
es jedem Controller 30A oder 30,
auf Dienstanforderungen von seinem zugehörigen PCI-Bus 35 oder
von einem externen FC-Host, wie zum Beispiel dem externen Host-System C, dem externen
Host-System D bzw. einem anderen Controller, wie zum Beispiel Controller 30B oder 30A ,
zu reagieren. Auf diese Weise wird die Redundanzgruppe A für das Host-System
B zugänglich,
und die Redundanzgruppe B wird für
das Host-System A zugänglich.
Aus der Sicht des Controllers 30A zum
Beispiel wird eine Anforderung, die vom Host-System B kommend empfangen
wird, Daten zu lesen oder zu schreiben, so behandelt, als wenn sie über den
zugehörigen
PCI-Bus 35 empfangen werden würde. Gleichermaßen sind
die externen Host-Systeme
C und D in der Lage, auf Daten in den Redundanzgruppen A und B zuzugreifen,
indem Lese- oder Schreibbefehle an den entsprechenden Controller 30 über den
Faserkanal-SAN ausgegeben werden. Auf diese Weise kann eine beliebige
Anzahl von Host-Systemen angeschlossen werden. Obgleich nur eine
einzige Controller-Konfiguration gezeigt ist, können des Weiteren auch andere
Konfigurationen verwendet werden, wie zum Beispiel die in 4 veranschaulichte
Konfiguration. Die Verwendung von Schaltern hilft, die Laufwerksarrays
für eine Leistungsskalierbarkeit
zu isolieren.
-
7 zeigt
ein Beispiel eines externen RAID-Systems, das mehrere Controller
auf einer oder mehreren passiven PCI-Hauptplatinen enthält, die
in einem schaltergestützten
Faserkanal-SAN gemäß der vorliegenden
Erfindung konfiguriert sind. Die Controller 301 bis 30N sind auf einer oder mehreren passiven
PCI-Hauptplatinen
installiert und sind dafür
konfiguriert, Host-Befehle von den FC-Ports und/oder den zugehörigen PCI-Bussen
entgegenzunehmen. Somit sind externe Server in der Lage, auf Daten
in den verschiedenen Redundanzgruppen zuzugreifen, die durch die
Controller 301 bis 30N gesteuert werden, indem Lese- oder
Schreibanforderungen an den entsprechenden Controller 30 ausgegeben werden.
Obgleich nur ein einziger Controller 30 benötigt wird,
werden Leistung und Redundanz skaliert, wenn mehr Controller hinzugefügt werden.
Alternativ kann eine FC-AL ähnlich
der Konfiguration in 5 verwendet werden, wenn die
Verwendung von Schaltern 55 unerwünscht oder nicht praktikabel
ist.
-
8 zeigt
eine Mehr-Controller-Konfiguration
und die interne Konfiguration der Controller 30 gemäß der vorliegenden
Erfindung. Einer oder mehrere der Controller 301 bis 30N aus 8 können in
einem separaten Host oder auf passiven PCI-Hauptplatinen angeordnet werden. Zum
Beispiel kann jeder Controller 30 in einem separaten Host-System
angeordnet werden, oder jedes von mehreren Host-Systemen kann einen
oder mehrere der Controller 30 enthalten. Die PCI-Host-Verbindung 60 bildet
einen Verbindungspfad zum Empfangen und Verarbeiten von Befehlen
von Host-Systemen und zum Erbringen von ICL (Inter-Controller Link)-Diensten
mit anderen Controllern. Eine Faserkanal (FC)-Host-Verbindung 65 bildet
ein Verbindungsmittel zum Verarbeiten und Empfangen von Befehlen
von Host-Systemen und zum Erbringen von ICL-Diensten mit anderen
Controllern. In bevorzugten Aspekten enthält jeder Controller zwei physische
FC-Ports (in 8 nicht gezeigt, aber siehe
die Beispiele in den 2 bis 7), von
denen beide für
den Laufwerkszugriff, das Empfangen und Verarbeiten von Host-Befehlen und
für ICL-Dienste verwendet
werden. Der Fachmann erkennt, dass jeder Controller 1 bis N FC-Ports enthalten
kann, so wie es für
die konkrete Anwendung gewünscht
wird.
-
Jeder
Controller 30 enthält
einen oder mehrere Ports 70 für virtuelle Laufwerke, von
denen jeder einen Zugriff auf ein virtuelles Laufwerk 75 ermöglicht.
Virtuelle Laufwerke 75 sind im Grunde Partitionen eines
Arrays. (Eine "Redundanzgruppe" ist im Allgemeinen
mit einem "Array" synonym). Jedes
Array kann in so viele virtuelle Laufwerke 75 partitioniert werden,
wie es gewünscht
wird. Jedes virtuelle Laufwerk ist einer oder mehreren zugehörigen AMFs 80 zugeordnet
und wird durch eine oder mehrere zugehörige AMFs 80 gesteuert.
Es können
viele Ports 70 für
virtuelle Laufwerke für
dasselbe virtuelle Laufwerk 75 existieren, aber jeder muss
an einem separaten Controller vorhanden sein. Zum Beispiel, wie
in 8 gezeigt, sind Ports 70YR1 und 70YRN für
virtuelle Laufwerke, die dem virtuellen Laufwerk YR zugeordnet sind,
für Hosts
im Controller 301 bzw. Controller 30N angeordnet. Jeder Port YR für virtuelle
Laufwerke ermöglicht
einen Zugriff auf dasselbe virtuelle Laufwerk YR. Das virtuelle
Laufwerk YR ist eine Partition des Arrays Y, dessen Steuerung und
Verwaltung durch AMFs 80Y1 und 80YN gemeinsam genutzt wird.
-
Ports
für virtuelle
Laufwerke können
einem Controller jederzeit hinzugefügt werden, indem ein virtuelles
Laufwerk erstellt wird und dem Port für virtuelle Laufwerke eine
IO-Portadresse zugewiesen wird. Im Allgemeinen muss ein virtuelles
Laufwerk existieren, bevor ein Port für virtuelle Laufwerke erstellt
und ihm zugewiesen wird, aber die Erstellung eines virtuellen Laufwerks
fällt zeitlich
nicht mit der Erstellung eines Ports für virtuelle Laufwerke zusammen.
In der Regel wird ein Port für
virtuelle Laufwerke unmittelbar nach der Erstellung der Redundanzgruppe
erstellt. Ports für
virtuelle Laufwerke können
dann jederzeit hinterher erzeugt werden, aber die Erstellung des
virtuellen Laufwerks erfolgt nur ein einziges Mal. Ports für virtuelle
Laufwerke können
auch jederzeit gelöscht
werden. Alle Host-Operationen, die sich an dem Port vollziehen,
können
zu Ende geführt
werden. Während
diese Operationen zu Ende geführt werden,
werden neue Host-Operationen
zurückgewiesen,
indem zum Beispiel ein not_ready-Statussignal an den Host zurückgesendet
wird.
-
Wenn
wir davon ausgehen, dass mehrere AMFs 80 in jedem Controller 30 vorhanden
sind, so werden Redundanzgruppen gruppenweise gemeinsam genutzt.
Wie in 8 gezeigt, gibt es drei Gruppen von AMFs – Y, G und
T –, die
jeweils ein Array gemeinsam nutzen. Zugehörige AMFs in verschiedenen
Controllern synchronisieren und replizieren miteinander, wie weiter unten
noch näher
beschrieben wird. Zum Beispiel, wie in 8 gezeigt,
synchronisiert und repliziert AMF 80Y1 mit
AMF 80YN (und mit einer beliebigen
anderen AMF, die Array Y zugeordnet ist, zum Beispiel AMF 80Y2 (nicht gezeigt)). Gleichermaßen synchronisiert
und repliziert AMF 80G1 mit AMF 80GN , und synchronisiert und repliziert
AMF 80T1 mit AMF 80TN . Außerdem synchronisieren und replizieren
die Ports für
virtuelle Laufwerke in einem Controller mit zugeordneten Ports für virtuelle
Laufwerke in anderen Controllern.
-
Verteilte Synchronisation
und Replikation
-
Synchronisation
und Replikation gewährleisten,
dass die Operationen, die durch die verschiedenen AMFs, die eine
Redundanzgruppe (Array) gemeinsam nutzen, ausgeführt werden, sich nicht gegenseitig
destruktiv behindern (dass es zum Beispiel zu keinen "Kollisionen" kommt). Synchronisation
erfordert, dass jede AMF, die auf eine Ressource, die einer gemeinsam
genutzten Redundanzgruppe zugeordnet ist, zugreifen muss, mit den
anderen AMFs um Zugriffsrechte (Verriegelung) für die Ressource arbitriert,
bevor sie sie verwendet. Die Arbitrierung erfolgt durch Senden von
Arbitrierungsmeldungen zwischen den AMFs über die PCI- und/oder die FC-ICL-Verbindungen.
-
9 zeigt
eine allgemeine Synchronisationssequenz für eine Operation gemäß einer
Ausführungsform
der vorliegenden Erfindung. In Schritt 110 wird die Operation
begonnen. Zum Beispiel kann ein Host eine Anforderung senden, die
verlangt, dass Daten in eine bestimmte Ressource geschrieben werden.
In Schritt 120 ermittelt die AMF, ob sie die gewünschte Ressource
bereits verriegelt hat. Wenn nicht, so arbitriert die AMF in Schritt 130 mit
anderen AMFs für
eine Verriegelung der gewünschten
Ressource. Sobald eine Verriegelung besorgt ist (oder festgestellt
wurde, dass die AMF bereits die Verriegelung hat), wird in Schritt 140 durch
die AMF die gewünschte
Operation an der Ressource ausgeführt. Sobald eine AMF eine Verriegelung
besorgt hat, wird diese vorzugsweise erst dann wieder freigegeben, wenn
eine andere AMF die Verriegelung benötigt (d. h. eine andere AMF
für die
Verriegelung arbitriert), um zu helfen, den Verwaltungsaufwand der
gemeinsam genutzten Redundanzgruppenverwaltung (Shared Redundancy
Group Management – SRGM) in
vielen Anwendungen zu senken. Gemäß einer Ausführungsform
wird ein Arbitrierungsregime vom FIFO-Typ verwendet, aber es kann
auch ein prioritätsgestütztes Arbitrierungsregime
oder ein beliebiges anderes Arbitrierungsregime verwendet werden. Wie
weiter unten mit Bezug auf die 18, 19 und 20 noch
näher beschrieben
wird, wird bei einer Arbitrierung in der Regel eine Anforderung
zum Nutzen einer Ressource an einen Ressourcen-Controller (in der
Regel softwaregestützt,
aber manchmal auch hardwaregestützt)
gestellt. Der Ressourcen-Controller gewährt auf der Grundlage des verwendeten
Arbitrierungsalgorithmus' Zugriff
auf die Ressource. Wenn eine Ressource gerade benutzt wird, wenn
die Anforderung gestellt wird, so wartet die anfordernde Entität, bis die
Ressource frei ist und alle anderen anfordernden Entitäten vor
ihr bedient wurden.
-
Jede
AMF ist in der Lage, vielen Arten von Operationen an einer Redundanzgruppe
auszuführen,
einschließlich
beispielsweise Host-Lesevorgänge,
Host-Schreibvorgänge, im
Hintergrund ablaufende Schreibvorgänge, Regenerationen, Rekonstruktionen,
Online-Erweiterung, Paritätsbereinigungen usw.
Eine längere
Sequenz solcher Operationen nennt man einen "Prozess". Zu Beispielen von Prozessen gehören Rekonstruktionen,
Online-Erweiterung und Paritätsbereinigungen.
Alle AMF-Operationsarten erfordern eine Synchronisationsarbitrierung,
um ablaufen zu können.
Sobald eine bestimmte AMF eine Operation an einer Ressource vollendet hat,
können
andere AMFs die Ressource nutzen.
-
Eine
Synchronisation erfolgt vorzugsweise auf der Operationsebene anstatt
auf der Prozessebene. Das heißt,
für jede
auszuführende
Operation wird die grundlegende Synchronisationssequenz aus 9 ausgeführt. Für einen
Prozess, bei dem eine Funktion an der gesamten Redundanzgruppe ausgeführt werden
muss (wie zum Beispiel eine Rekonstruktion), wird die Verarbeitung
in eine Sequenz von Operationen aufgegliedert. Wo jede Operation
an einer anderen Ressource arbeitet, erfolgt die Arbitrierung für eine Synchronisation
der betreffenden Ressourcen, die für eine einzelne Operation benötigt werden,
unabhängig
von den Ressourcen, die für
andere Operationen in dem Prozess benötigt werden. Die Ausführung einer
Synchronisation auf der Operationsebene anstatt auf der Prozessebene
ermöglicht es
AMFs, Ressourcen gemeinsam zu nutzen, während ein Prozess im Gange
ist. Wenn eine Synchronisation auf der Prozessebene anstatt auf
der Operationsebene erfolgen würde,
so müssten
einige AMFs warten, bis der gesamte Prozess zu Ende geführt ist, bevor
sie die Ressourcen nutzen könnten,
wodurch es zu Host-Timeouts käme.
-
Eine
Replikation dient der Kompensation von AMF-Ausfällen. Ressourcen und ihre Statusinformationen
werden so replizierend, dass, wenn eine AMF ausfällt, die Ressource und ihre
Statusinformationen über
eine andere AMF verfügbar
sind, die über
eine Kopie der Ressource und ihrer Statusinformationen verfügt. Während des
Aktualisierens (Beschreibens) einer bestimmten Ressource wird eine
Kopie der modifizierten Ressource und/oder des Operationsstatus' der Ressource an
andere AMFs gesandt, welche die Ressource gemeinsam nutzen.
-
Diese
anderen AMFs nennt man Replikationspartner. Zum Beispiel sind in 8 AMF 80Y1 und AMF 80YN Replikationspartner,
weil jede die Steuerung des Arrays Y gemeinsam nutzt. Die replizierten
Informationen werden von den Replikationspartnern verwendet, um
die Operation zu Ende zu führen,
falls die AMF, welche die Ressource aktualisiert, während der
Operation ausfällt.
-
10 zeigt
eine allgemeine Replikationssequenz für eine Operation gemäß einer
Ausführungsform
der vorliegenden Erfindung. Der Start der Sequenz ist die grundlegende
Synchronisationssequenz gemäß 9.
In Schritt 210 wird die Operation begonnen. Zum Beispiel
kann ein Host eine Anforderung senden, die das Schreiben von Daten
in eine bestimmte Ressource verlangt. In Schritt 220 stellt die
AMF fest, ob sie die gewünschte
Ressource bereits verriegelt hat. Wenn nicht, so arbitriert die
AMF in Schritt 320 mit anderen AMFs für eine Verriegelung der gewünschten
Ressource. Sobald eine Verriegelung besorgt wurde, kann die Operation
ausgeführt werden.
Wie gezeigt, wird die Operation, die durch die AMF ausgeführt wird,
in eine Anzahl, i, von Schritten untergliedert. In Schritt 2401 werden die Replikationsdaten und Statusinformationen,
die der Ressource und dem ersten Operationsschritt zugeordnet sind,
an jeden Replikationspartner gesandt. In Schritt 2501 wird der erste Schritt der Operation
ausgeführt. Wie
in 10 gezeigt, werden die nachfolgenden Operationsschritte 2502 bis 250i der
Reihe nach ausgeführt,
wie auch die Replikationsschritte 2402 bis 240i . In jedem der Replikationsschritte 2401 bis 240i werden
die Replikationsinformationen an den Replikationspartner gesendet,
welcher der bestimmten Ressource zugeordnet ist. Im Allgemeinen
werden N-1 gleichzeitige AMF-Ausfälle kompensiert, wenn es N
Kopien einer Ressource und ihrer Statusinformationen innerhalb des
AMF-Clusters (d. h. jener AMFs, welche die Ressource gemeinsam nutzen) gibt,
wobei N als die Replikationsdimension definiert ist. Somit werden
Replikationsinformationen an die N-1 Replikationspartner gesendet,
die der bestimmten Ressource zugeordnet sind.
-
Eine
Replikation kann auf bestimmte Replikationsgruppen oder bestimmte
AMFs gerichtet werden. In einer Ausführungsform wird eine N-Weg-Replikation ohne
definierte Replikationsgruppen ausgeführt. In dieser Ausführungsform
findet die Replikation mit allen N-1 AMFs in dem Cluster statt,
welche die replizierte Ressource gemeinsam nutzen. Alternativ erfolgt
die Replikation mit N-1 anderen Replikationsgruppen. Eine Replikationsgruppe
ist eine Gruppe von AMFs, die kritische Daten zu AMFs in Replikationsgruppen
replizieren, die nicht zur eigenen gehören. Ein Beispiel dafür ist ein
Satz Controller – wobei
jeder Controller eine oder mehrere AMFs enthält – an einem physischen Ort und
ein anderer Satz Controller an einem anderen physischen Ort. Ein
anderes Beispiel ist ein Satz Controller in einem Host-System und
ein anderer Satz außerhalb
eines Hosts. Die Verwendung von Replikationsgruppen hilft zu gewährleisten,
dass, wenn eine Gruppe von Controllern komplett ausfällt, die
eine oder die mehreren anderen Gruppen über die Informationen verfügen, die
für die Aufrechterhaltung
der Datenverlässlichkeit
notwendig sind.
-
Die
Replikation kann auf bestimmte Replikationsgruppen oder bestimmte
AMFs gerichtet werden. Eine bestimmte Replikationsgruppe repliziert vorzugsweise
mit einer beliebigen AMF außerhalb der
Replikationsgruppe der replizierenden AMFs. Jedoch kann der Satz
Replikationsgruppen, zu denen eine bestimmte Replikationsgruppe
repliziert, durch einen Bediener vorgegeben werden. Außerdem ist synchrone
Replikation der bevorzugte Replikationsmodus. Im synchronen Replikationsmodus
werden Fertigstellungsstatusinformationen für eine Operation an einen Host
zurückgesandt,
nachdem alle Replikationsziele die Replikationsdaten erhalten haben. Zu
alternativen Replikationsmodi gehören die asynchrone Replikation
und die pseudosynchrone Replikation. Im asynchronen Replikationsmodus
werden Fertigstellungsstatusinformationen für eine Operation an einen Host
zurückgesandt,
bevor Replikationsdaten übertragen
wurden. Im pseudo-synchronen Replikationsmodus werden Fertigstellungsstatusinformationen
für eine
Operation an einen Host zurückgesandt,
nachdem die Replikationsdaten übertragen wurden,
aber bevor alle Replikationsziele den Empfang der Daten bestätigt haben.
-
Gemäß der vorliegenden
Erfindung können mehrere
AMFs eine Ressource gleichzeitig lesen. Das heißt, es können jederzeit mehrere Leseverriegelungen
ausstehen. Es wird jedoch immer nur eine einzige AMF auf einmal,
die in die Ressource schreibt, berücksichtigt. Wenn mehrere AMFs
eine Ressource gleichzeitig lesen können, so verbessert das deutlich
die Leistung. Wenn eine AMF in die Ressource schreibt, so ist es
keiner anderen AMF gestattet, die Ressource zu lesen. Das Synchronisationsprotokoll
erlaubt diesen Aspekt und setzt ihn durch.
-
11a zeigt den allgemeinen Sequenzablauf für eine Leseoperation,
wenn sich die Redundanzgruppe (RG) in einem normalen, nicht-leistungsgeminderten
Modus befindet, gemäß einer
Ausführungsform
der vorliegenden Erfindung. "Nicht-leistungsgemindert" meint allgemein
den Fall, wo alle Laufwerke in der Redundanzgruppe betriebsbereit sind,
während "leistungsgemindert" allgemein den Fall
meint, wo ein oder mehrere Laufwerke in der Redundanzgruppe ausgefallen
sind. In Schritt 310 wird die Leseoperation begonnen. Zum
Beispiel empfängt die
AMF eine Anforderung von einem Host, eine bestimmte Ressource zu
lesen. In Schritt 320 wird eine Verriegelung der bestimmten
Ressource verlangt. Dies ist im Grunde das gleiche wie die Schritte 120 und 130 von 9.
In bevorzugten Aspekten können mehrere
Verriegelungen ausstehen. Dies macht es möglich, dass mehrere AMFs eine
Ressource gleichzeitig lesen.
-
11b zeigt den allgemeinen Sequenzablauf für eine Leseoperation,
wenn sich die Redundanzgruppe (RG) in einem leistungsgeminderten
Modus befindet, gemäß einer
Ausführungsform
der vorliegenden Erfindung. In Schritt 310 wird die Leseoperation
begonnen. Zum Beispiel empfängt
die AMF eine Anforderung von einem Host, eine bestimmte Ressource
zu lesen. In Schritt 320 wird eine Verriegelung der bestimmten
Ressource verlangt. Sobald die Verriegelung im leistungsgeminderten
Lesemodus besorgt ist, liest die AMF in Schritt 340 die
Daten und die Parität
aus der betreffenden Ressource und regeneriert alle fehlenden Daten
in Schritt 350. In Schritt 360 werden die (regenerierten)
Daten an den Host übertragen,
der die Leseanforderung ausgegeben hat.
-
12 zeigt
den allgemeinen Sequenzablauf für
das Replizieren ankommender Host-Daten in einer Pipelining-Weise
für eine
Schreiboperation gemäß einer
Ausführungsform
der vorliegenden Erfindung. Das Pipelining der Replikationsdaten
hilft, die Replikationslatenz zu minimieren. In Schritt 410 wird die
Operation begonnen. Zum Beispiel gibt ein Host einen Schreibbefehl
aus, einen oder mehrere Blöcke mit
Daten in eine oder mehrere Ressourcen zu schreiben. In Schritt 420 wird
der Host-Befehl von dem Host kommend empfangen und analysiert. Der Host-Befehl
wird als eine Sequenz von Datenblocksätzen verarbeitet. In Schritt 430 wird
die entsprechende Verriegelung für
den beginnenden Satz Blöcke
besorgt. In Schritt 440 wird der beginnende Blocksatz von
dem Host zu der AMF übertragen.
In Schritt 450 wird die Blocksatzreplikation für den beginnenden
Satz Blöcke
begonnen. Die AMF wartet nicht die Vollendung der Blocksatzreplikation
ab. Die AMF stellt sofort in Schritt 460 fest, ob noch
weitere Sätze
von Blöcken
verarbeitet werden müssen. Wenn
ja, so beginnt die AMF sofort in Schritt 430 mit der Besorgung
der entsprechenden Verriegelung, um den nächsten Satz Blöcke zu holen,
und wiederholt die Schritte 440, 450 und 460 für den nächsten Blocksatz.
Wenn alle Blocksätze
empfangen und verarbeitet wurden, so wartet die AMF in Schritt 470 auf
die Fertigstellung aller Replikationsoperationen. Wenn jede Operation
zu Ende geführt
ist, sendet die AMF in Schritt 480 den Status an den Host.
-
13a zeigt den allgemeinen Sequenzablauf für eine Schreiboperation,
wenn sich die Redundanzgruppe (RG) in einem normalen, nicht-leistungsgeminderten
Modus befindet, gemäß einer
Ausführungsform
der vorliegenden Erfindung. In Schritt 510 wird die Operation
begonnen. Zum Beispiel gibt ein Host einen Schreibbefehl aus, in
eine Ressource zu schreiben. Schritt 520 ist der Prozess
des Besorgens der Synchronisationsverriegelung für die benötigte Ressource, wie in 9 gezeigt.
In diesem Beispiel ist die Ressource eine Streifenschreibverriegelung, aber
es kann sich auch um eine beliebige andere Verriegelung handeln,
die durch die konkrete Operation benötigt wird. Nachdem die Streifenschreibverriegelung
besorgt ist, liest die AMF in Schritt 530 die alten Daten
und die alte Parität
von den Laufwerken der RG.
-
Gleichzeitig
mit der Laufwerksleseoperation von Schritt 530 sendet die
AMF in Schritt 540 ein Statusbenachrichtigungssignal an
ihren Replikationspartner für
diese Ressource. Die Replikationspartner beinhalten alle anderen
AMFs, zu denen diese AMF Statusinformationen und Daten für die betreffende Ressource
repliziert. Die Anzahl von Replikationspartnern ist gleich N-1,
wobei N die Replikationsdimension ist. Vorzugsweise liegt die Replikationsdimension
N im Bereich von 1 bis 8, aber N kann nach Wunsch auch jede andere
Zahl sein. Das Statusbenachrichtigungssignal ist ein Signal vom "Aktualisierungsbeginn"-Typ, das den Replikationspartnern sagt,
dass eine Streifenaktualisierung begonnen hat. Die Replikationspartner
müssen
diese Informationen kennen, weil sie für das Bereinigen zuständig sind, falls
die schreibende AMF ausfällt,
bevor die Operation zu Ende geführt
ist.
-
Sobald
der Schritt 530 der "Aktualisierungsbeginn"-Benachrichtigung
und der Schritt 540 des Lesens der alten Daten und der
alten Parität
beendet sind, schreibt die AMF in Schritt 550 die neuen
Daten in das RG-Mitgliedslaufwerk. Gleichzeitig mit dem Schritt 550 des
Schreibens der neuen Daten erfolgt das Erzeugen der neuen Parität in Schritt 560.
Anschließend,
in Schritt 570, schreibt die AMF die neue Parität in die
RG-Mitgliedslaufwerke. Sobald die Paritätsschreiboperation vollendet
ist, sendet die AMF in Schritt 580 eine "Aktualisierungsende"-Benachrichtigung an ihren Replikationspartner.
Bei Empfang dieser Benachrichtigung geben die Replikationspartner
ihre Statusdaten im Zusammenhang mit der Streifenaktualisierung
frei.
-
13b zeigt den allgemeinen Sequenzablauf für einen
Wiederherstellungsprozess, wenn die AMF, die den Streifen, wie in 13a gezeigt, aktualisiert, ausfällt, bevor
die Aktualisierung vollendet ist, gemäß einer Ausführungsform
der vorliegenden Erfindung. Wenn die AMF, die den Streifen aktualisiert, ausfällt, bevor
die Aktualisierung vollendet ist, so übernehmen die Replikationspartner
die Zuständigkeit
für das
Wiederherstellen im Anschluss an die ausgefallene Aktualisierungsoperation.
In Schritt 610 beginnt die Wiederherstellungsoperation,
wenn eine oder mehrere der Replikationspartner-AMFs entweder einen
Ausfall detektieren oder über
einen Ausfall informiert werden. Die Replikationspartner arbitrieren in
Schritt 620 um die Zuständigkeit
für die
Streifenverriegelung. Die AMF, welche die Arbitrierung gewinnt (die
Wiederherstellungs-AMF),
ist für
das Ausführen
der Wiederherstellung der ausgefallenen Aktualisierungsoperation
zuständig.
-
Eine
Ausfallbenachrichtigung kommt in der Regel von der Inter-Controller
Link (ICL)-Komponente. Wenn ein Controller ausfällt, so verlieren die AMFs
an diesem Controller die Kommunikation mit den anderen AMFs, mit
denen sie die Redundanzgruppe gemeinsam genutzt haben. Die ICL sendet periodisch
eine "Ping"-Meldung an alle anderen AMFs, mit denen
sie die Redundanzgruppe gemeinsam nutzt. Wenn eine dieser AMFs nicht
auf die Ping-Meldung antwortet, so nimmt die AMF, welche die Ping-Meldung
versandte, an, dass die AMF ausgefallen ist, und beginnt die Wiederherstellungsaktion.
Eine Wiederherstellung wird auch ausgelöst, wenn die ICL beim Senden
von Synchronisations- oder Replikationsmeldungen an die Ziel-AMF
einer Transportstörung
begegnet.
-
Der
Wiederherstellungsprozess enthält
zwei grundlegende Schritte: Neuberechnung der Streifenparität und Neuschreiben
der Daten. In Schritt 630 liest die Wiederherstellungs-AMF
alle Daten für
die Streifensegmente, die von der ausgefallenen Aktualisierungsoperation
betroffen sind. Gleichzeitig mit dem Datenleseschritt 630 weist
die Wiederherstellungs-AMF einen oder mehrere neue Replikationspartner
zu und sendet in Schritt 640 eine "Aktualisierungsbeginn"-Benachrichtigung
an alle ihre Replikationspartner. Wenn die Datenleseoperation vollendet ist,
so erzeugt die Wiederherstellungs-AMF in Schritt 650 eine
neue Parität.
Diese neue Paritätsberechnung
enthält
nicht die neuen Daten. Es ist einfach eine Regeneration der Parität für Daten
in den RG-Mitgliedslaufwerken.
-
Sobald
der Paritätserzeugungsschritt 650 und
der "Aktualisierungsbeginn"-Benachrichtigungsschritt 640 vollendet
sind, schreibt die Wiederherstellungs-AMF in Schritt 660 die
neue Parität
in die RG-Mitgliedslaufwerke.
Nachdem der Paritätsschreibschritt 660 vollendet
ist, sendet die Wiederherstellungs-AMF in Schritt 670 eine "Aktualisierungsende"-Benachrichtigung
an die Replikationspartner. Nach einem Zeitintervall veranlasst
der Cacherückschreibeplanungsalgorithmus
einen der Replikationspartner, die neuen Daten in Schritt 680 in
die RG-Mitgliedslaufwerke zu schreiben, was eine normale Streifenaktualisierungsoperation
(nicht im Wiederherstellungsmodus) ist, wie in 13a gezeigt. Die Cachespeicherungsfunktion ist
ein Teil der AMF.
-
14a zeigt den Ablauf für eine Schreiboperation, wenn
sich die Redundanzgruppe (RG) in einem leistungsgeminderten Modus
(mit einem ausgefallenen Laufwerk) befindet, gemäß einer Ausführungsform
der vorliegenden Erfindung. Diese Sequenz ähnelt der des nicht-leistungsgeminderten Falls
aus 13a, unter Einschluss des Regenerationsschrittes 744 und
des Replikationsschrittes 746, wie weiter unten beschrieben
wird.
-
In
Schritt 710 wird die Operation begonnen. Zum Beispiel gibt
ein Host einen Schreibbefehl aus, um Daten in eine Ressource zu
schreiben. Schritt 720 ist der Prozess des Besorgens der
Synchronisationsverriegelung für
die benötigte
Ressource, wie in 9 gezeigt. In diesem Beispiel
ist die Ressource eine Streifenschreibverriegelung, aber sie kann
auch eine beliebige andere Verriegelung sein, so wie es durch die
konkrete Operation verlangt wird. Nach der Besorgung der Streifenschreibverriegelung
liest die AMF in Schritt 730 die alten Daten und die alte
Parität von
den Laufwerken der RG.
-
Gleichzeitig
mit der Laufwerksleseoperation von Schritt 730 sendet die
AMF in Schritt 740 ein Statusbenachrichtigungssignal an
ihre Replikationspartner für
diese Ressource. Zu den Replikationspartnern gehören alle anderen AMFs, zu denen
diese AMF Statusinformationen und Daten für die bestimmte Ressource repliziert.
Das Statusbenachrichtigungssignal ist ein Signal vom "Aktualisierungsbeginn"-Typ, das den Replikationspartnern
sagt, dass eine Streifenaktualisierung begonnen hat. Die Replikationspartner
müssen
diese Informationen kennen, weil sie für die Bereinigung zuständig sind,
falls die schreibende AMF ausfällt,
bevor die Operation zu Ende geführt
ist. Sobald der Schritt 540 des Lesens der alten Daten
und der alten Parität
vollendet ist, regeneriert die AMF in Schritt 744 die Daten,
die sich auf dem ausgefallenen Laufwerk befanden. In Schritt 746 werden
die alten Daten, einschließlich
der regenerierten Daten, zu den Replikationspartnern repliziert.
Die Replikation dieser Daten zu den Replikationspartnern ist für die Wiederherstellung
notwendig, falls die aktualisierende AMF ausfällt, bevor die Operation zu
Ende geführt
ist.
-
Sobald
der Replikationsschritt 746 vollendet ist, werden in Schritt 750 die
neuen Daten in die RG-Mitgliedslaufwerke
geschrieben. Gleichzeitig mit dem Schritt 750 des Schreibens
der neuen Daten erfolgt die Erzeugung der neuen Parität in Schritt 760.
-
Anschließend, in
Schritt 770, schreibt die AMF die neue Parität in die
RG-Mitgliedslaufwerke. Sobald die Paritätsschreiboperation vollendet
ist, sendet die AMF in Schritt 780 eine "Aktualisierungsende"-Benachrichtigung an ihre Replikationspartner. Bei
Empfang dieser Benachrichtigung geben die Replikationspartner ihre
Statusdaten frei, die mit der Streifenaktualisierung verbunden sind.
-
14b zeigt den allgemeinen Sequenzablauf für einen
Wiederherstellungsprozess, wenn die AMF, die den Streifen, wie in 14a gezeigt, aktualisiert, ausfällt, bevor
die Aktualisierung vollendet ist, gemäß einer Ausführungsform
der vorliegenden Erfindung. Dieses Szenario unterscheidet sich von
dem Fall der nicht-leistungsgeminderten
Wiederherstellung aus 13b insofern,
als die Wiederherstellungs-AMF die replizierten alten Daten benutzt,
um die RG-Laufwerkssegmente
zu rekonstruieren, die von dem Ausfall der aktualisierenden AMFs
betroffen waren. Wenn die AMF, die den Streifen aktualisiert, ausfällt, bevor
die Aktualisierung vollendet ist, so übernehmen die Replikationspartner
die Zuständigkeit
für die
Wiederherstellung im Anschluss an die ausgefallene Aktualisierungsoperation.
In Schritt 810 beginnt die Wiederherstellungsoperation,
wenn eine oder mehrere der Replikationspartner-AMFs entweder einen
Ausfall detektieren oder über
einen Ausfall informiert werden, für Beispiel durch einen Host.
Die Replikationspartner arbitrieren in Schritt 820 um die Zuständigkeit
für die
Streifenverriegelung. Die AMF, welche die Arbitrierung gewinnt (die
Wiederherstellungs-AMF), ist für
das Ausführen
der Wiederherstellung der ausgefallenen Aktualisierungsoperation
zuständig.
-
In
Schritt 830 wird eine neue Parität aus den alten Daten erzeugt,
die durch den Replikationsschritt 746 von 14a übermittelt
wurden. Gleichzeitig mit Schritt 830 weist die Wiederherstellungs-AMF
einen oder mehrere neue Replikationspartner zu und sendet in Schritt 840 eine "Aktualisierungsbeginn"-Benachrichtigung an alle ihre Replikationspartner.
In Schritt 850 werden die alten Daten in die Laufwerke
geschrieben. In Schritt 860 werden die Replikationspartner
informiert, dass die alten Daten zurück in die Laufwerke geschrieben
wurden. Die Replikationspartner können nun ihre Kopien der alten Daten
verwerfen. Nach diesem Ereignis ist die Wiederherstellungssequenz
die gleiche wie für
die nicht-leistungsgeminderte
Wiederherstellungssequenz. Genauer gesagt, wird die neue Parität in Schritt 870 in
die RG-Mitgliedslaufwerke
geschrieben. Nachdem der Paritätsschreibschritt 870 vollendet
ist, sendet die Wiederherstellungs-AMF in Schritt 880 eine "Aktualisierungsende"-Benachrichtigung
an die Replikationspartner. Nach einem Zeitintervall veranlasst
der Cacherückschreibeplanungsalgorithmus einen
der Replikationspartner, die neuen Daten in Schritt 890 in
die RG-Mitgliedslaufwerke zu schreiben, was eine normale Streifenaktualisierungsoperation
(nicht im Wiederherstellungsmodus) ist, wie in 13a gezeigt. Verteilte Rekonstruktion
-
15 zeigt
den allgemeinen Sequenzablauf für
einen im Hintergrund ablaufenden Rekonstruktionsprozess gemäß einer
Ausführungsform
der vorliegenden Erfindung. Jede Operation wird in Schritt 910 begonnen,
und die entsprechende Verriegelung wird in Schritt 920 besorgt,
in diesem Fall eine Streifenverriegelung. In Schritt 930 liest
die AMF die Daten und die Parität
für den
Streifen. In Schritt 940 regeneriert die AMF fehlende Daten
und schreibt in Schritt 950 die Daten in das Ersatzlaufwerk.
Nach dem Schreiben der Daten aktualisiert die AMF in Schritt 960 die
Abbildungstabelle so, dass der Umstand widergespiegelt wird, dass
Blöcke,
die ursprünglich
auf das ausgefallene Laufwerk abgebildet waren, nun auf das Ersatzlaufwerk
abgebildet sind. Die Abbildungstabelle bildet logische Host-Blöcke auf
RG-Mitgliedslaufwerke und Blöcke
in den Laufwerken ab. In Schritt 970 wird festgestellt,
ob noch weitere Streifen zu rekonstruieren sind. Diese Sequenz wiederholt
sich, solange es noch weitere Streifen gibt, die auf das Ersatzlaufwerk
zu rekonstruieren sind.
-
Ein
Vorteil der Techniken der gemeinsam genutzten Redundanzgruppenverwaltung
(Shared Redundancy Group Management – SRGM) der vorliegenden Erfindung
ist, dass SRGM die Verteilung der Rekonstruktionsverarbeitung an
alle AMFs gestattet, die eine RG gemeinsam nutzen. Das führt zu kürzeren Rekonstruktionszeiten
und einer allgemeinen Verkürzung
der längeren
Reaktionszeiten, mit denen es ein Host während einer Rekonstruktion
normalerweise zu tun hat. Eine verteilte Rekonstruktion wird in der
Weise bewerkstelligt, dass man eine Teilmenge der (oder alle) AMFs,
die eine RG gemeinsam nutzen, koordinieren lässt, für welche Streifen jede die Rekonstruktionszuständigkeit
hat. Wenn eine oder mehrere dieser AMFs während der Rekonstruktion ausfallen
oder sich abschalten, so arbitrieren die übrigen AMFs die Rekonstruktionszuständigkeiten
neu. Nehmen wir zum Beispiel an, dass es N AMFs gibt, die eine Redundanzgruppe
gemeinsam nutzen, die der Rekonstruktion bedarf. Diese AMFs unterhalten sich
miteinander (durch Senden von Meldungen) und bestimmen, welche von
ihnen sich an der Rekonstruktion beteiligen sollen, zum Beispiel
eine Teilmenge von N, bezeichnet mit M. Diese M AMFs legen die Rekonstruktionszuständigkeiten
fest, indem sie bestimmen, welche AMFs welche Streifen rekonstruieren.
Dies kann mit Hilfe jedes beliebigen Algorithmus' bestimmt werden. In einer Ausführungsform
der Erfindung rekonstruiert zum Beispiel jede AMFi Streifen Mod(S/i),
wobei S die Streifenanzahl ist. Verteilte RG-Erweiterung Genauso,
wie die Rekonstruktion vorzugsweise zwischen einer Teilmenge der
AMFs, die eine RG gemeinsam nutzen, verteilt wird, wird auch die
RG-Erweiterung verteilt. Die BG-Erweiterung ist die Hinzufügung von
Laufwerksmitgliedern zu einer bestehenden RG. Ein einzigartiger
Vorteil des SRGM ist, dass es die Verteilung der Erweiterungsverarbeitung
an alle AMFs gestattet, die eine RG gemeinsam nutzen. Das führt zu kürzeren Erweiterungszeiten
und einer Verkürzung
der längeren
Reaktionszeiten, mit denen es ein Host während einer Erweiterung normalerweise
zu tun hat.
-
Eine
verteilte Erweiterung wird in der Weise bewerkstelligt, dass man
eine Teilmenge der (oder alle) AMFs, die eine RG gemeinsam nutzen,
arbitrieren lässt,
für welche
Streifen sie die Erweiterungszuständigkeit haben. Wenn eine oder
mehrere dieser AMFs während
der Erweiterung ausfallen oder sich abschalten, so arbitrieren die übrigen AMFs
die Erweiterungszuständigkeiten
neu. Nehmen wir zum Beispiel an, dass es N AMFs gibt, die eine Redundanzgruppe
gemeinsam nutzen, die der Erweiterung bedarf. Diese AMFs unterhalten
sich miteinander (durch Senden von Meldungen) und bestimmen, welche
von ihnen sich an der Erweiterung beteiligen sollen, zum Beispiel
eine Teilmenge von N, bezeichnet mit M. Diese M AMFs legen die Rekonstruktionszuständigkeiten
fest, indem sie bestimmen, welche AMFs welche Streifen erweitern.
Dies kann mit Hilfe jedes beliebigen Algorithmus' bestimmt werden. In einer Ausführungsform
der Erfindung erweitert zum Beispiel jede AMFi Streifen
Mod(S/i), wobei S die Streifenanzahl ist.
-
16 zeigt
den allgemeinen Sequenzablauf für
einen im Hintergrund ablaufenden Erweiterungsprozess gemäß einer
Ausführungsform
der vorliegenden Erfindung. Der Prozess wird in Schritt 1010 begonnen,
und die entsprechende Streifenverriegelung wird in Schritt 1020 besorgt.
Der Erweiterungsfall unterscheidet sich von den vorangegangenen Beispielen
insofern, als mehrere Verriegelungen besorgt werden müssen. Eine
Erweiterungsoperation umfasst 2 oder mehr Streifen. Ein Streifen
ist der Erweiterungsstreifen, dessen Streifenbreite von W auf W
+ N erweitert wird. Die anderen involvierten Streifen sind Streifen,
die Host-Daten enthalten,
die von jenen Streifen zu den erweiterten Streifen migriert werden.
-
In
Schritt 1030 werden die Daten auf dem zu erweiternden Streifen
gelesen. In Schritt 1040 werden die Daten so repliziert,
dass, wenn die Operation vor der Fertigstellung ausfällt, die
Replikationspartner in der Lage sind, eine Bereinigung nach dem Ausfall
vorzunehmen und den Erweiterungsprozess fortzuführen. Gleichzeitig mit den
Schritten 1030 und 1040 wird der Quelldatenstreifen,
der Daten enthält, die
zu dem erweiterten Streifen zu migrieren sind, in Schritt 1045 gelesen.
Nachdem die Schritte 1040 und 1045 vollendet sind,
informiert die AMF ihre Replikationspartner, dass sie in Schritt 1050 mit
der Erweiterungsstreifenaktualisierung beginnt.
-
Gleichzeitig,
in Schritt 1055, erzeugt die AMF Paritätsinformationen für den erweiterten
Streifen.
-
Nachdem
der Schritt der "Aktualisierungsbeginn"-Benachrichtigung
vollendet ist, werden in Schritt 1060 die Daten für den erweiterten
Streifen in die Laufwerke geschrieben. Sobald der Schritt 1055 der
Paritätserzeugung
und der Schritt 1050 der "Aktualisierungsbeginn"-Benachrichtigung
vollendet sind, wird in Schritt 1070 die Parität in die
Laufwerke geschrieben. Sobald die Schritte 1060 und 1070 vollendet
sind, informiert die AMF ihre Replikationspartner in Schritt 1080,
dass die Aktualisierung zu Ende geführt ist. Die Replikationspartner
aktualisieren dann ihre Abbildungstabellen so, dass die erweiterte Streifenbreite
und die migrierten Host-Daten widergespiegelt werden. Sie verwerfen
auch die Daten, die in Schritt 1040 repliziert wurden.
Die Abbildungstabelle bildet logische Host-Blöcke auf RG-Mitgliedslaufwerke und Blöcke in den
Laufwerken ab.
-
In
Schritt 1090 wird festgestellt, ob noch weitere Streifen
durch die AMF zu erweitern sind. Wenn ja, so wird die Sequenz wiederholt.
Diese Sequenz wiederholt sich, solange es noch weitere Streifen gibt,
die erweitert werden müssen,
um die Kapazität der
neuen RG-Mitgliedslaufwerke zu erweitern. Es ist zu beachten, dass
es sich dabei um einen Prozess handelt. Was es zu einem Prozess
macht, ist die Loop-Bildung, zu der es in Schritt 1090 kommt.
Die Schritte 1020 bis 1090 umfassen eine Operation.
-
Meldungserfassung
-
Ein
Problem beim SRGM ist der Verarbeitungsverwaltungsaufwand und die
IO-Kanallast in Verbindung mit der Synchronisation und Replikation, die
zum Unterstützen
von SRGM verwendet wird. Um die Synchronisations- und Replikationstechniken
zu ermöglichen,
kommt vorzugsweise eine ICL (Inter-Controller Link)-Meldungserfassung zum
Einsatz. Bei der Meldungserfassung handelt es sich allgemein um
einen Algorithmus, der viele kleine Meldungen, die für einen
bestimmten Clusterknoten (d. h. einen Controller, in dem sich viele
AMFs befinden können)
bestimmt sind, zu einem großen
Meldungspaket kombiniert und es als eine einzelne Meldung an den betreffenden
Knoten sendet. Dies senkt den Verarbeitungsverwaltungsaufwand und
die IO-Kanallast drastisch und unterscheidet sich damit von dem
Konzept des Sendens einzelner Meldungen an einen Clusterknoten.
-
17a veranschaulicht eine AMF-Kommunikation ohne die Meldungserfassungstechniken
der vorliegenden Erfindung. Wie gezeigt, bilden eine Zusammenstellung
von AMFs 1100 und eine Inter-Controller Link (ICL)-Entität 1105 einen
SRGM-Knoten 1110. Ein Knoten ist in der Regel eine Hardware-Entität, wie zum
Beispiel ein Controller. Die ICL 1105 ist eine Software-Entität, die für das Routen
von Synchronisations- und Replikationsmeldungen 1120 von einer
AMF zu einer anderen zuständig
ist. Wie in 17a gezeigt, ist nur einer von
vielen ähnlichen Knoten
als mit dem SAN 1130 verbunden gezeigt.
-
Die
AMFs 1100 innerhalb des Knotens 1110 senden und
empfangen Synchronisations- und Replikationsmeldungen mit anderen
AMFs in anderen Knoten, welche dieselbe Redundanzgruppe gemeinsam
nutzen. Jede AMF innerhalb des Knotens 1110 erzeugt unabhängige Ströme von Synchronisations- und
Replikationsmeldungen, die alle für einen oder mehrere andere
Knoten im SAN 1130 bestimmt sind. Die Meldungen, die von
einer bestimmten AMF gesendet oder empfangen werden, sind unabhängig von
den Meldungen, die von anderen AMFs im selben Knoten gesendet oder
empfangen werden. Wie in 17a gezeigt,
senden drei AMFs 1100 insgesamt neun Meldungen 1140 an
AMFs in anderen Knoten. Ohne Meldungserfassung muss die ICL 1105 neun
Meldungen an andere Knoten senden. Des Weiteren werden ohne Meldungserfassung
alle Synchronisations- und Replikationsmeldungen, die durch alle
AMFs innerhalb eine SAN-Knotens erzeugt werden, einzeln verarbeitet
und über
das SAN gesendet. Jede Meldung nimmt unabhängig von ihrer Größe einen
festen Betrag an Verarbeitungsverwaltungsaufwand in Anspruch.
-
17b veranschaulicht eine AMF-Kommunikation mit den Meldungserfassungstechniken
der vorliegenden Erfindung. Meldungserfassung bedeutet, dass viele
kleinere Meldungen, die für
einen bestimmten Knoten bestimmt sind, zu einer einzelnen größeren Meldung
zusammengepackt werden. Diese größere Meldung
kann als eine einzelne Meldung über
das SAN 1130 gesendet und dann im Empfangsknoten in einzelne
Meldungen zurück
entpackt werden. Zum Beispiel sind, wie gezeigt, die neun Meldungen 1120 für drei verschiedene
Knoten bestimmt. In diesem Beispiel braucht dann, wenn Meldungserfassung
verwendet wird, die ICL 1105 nur drei Meldungen 1150 zu
senden – eine
für jeden
Knoten (sich selbst nicht mitgezählt).
Die ICL 1105 übernimmt
die Zuständigkeit
für das
Verpacken und Entpacken einzelner AMF-Meldungen.
-
Arbitrierung und verteilte
Ressourcenarbitrierung
-
18a veranschaulicht einen grundlegenden Arbitrierungsprozess,
bei dem eine AMF eine Verriegelung für eine bestimmte Ressource
anfordert, gemäß der vorliegenden
Erfindung. AMF 1200 und AMF 1210 fordern jede
eine Verriegelung einer bestimmten Ressource an, und die Verriegelungsanforderungen
werden in eine Arbitrierungswarteschlange 1205 eingereiht.
Der Arbitrierungsprozess für
eine AMF beginnt, wenn eine Anforderung in die Arbitrierungswarteschlange 1205 eingereiht
wird. Die Anforderungen werden in einer solchen Reihenfolge verarbeitet,
dass alle Anforderungen in einer Prioritätsreihenfolge erfüllt werden.
Die Anforderungswarteschlangenpriorität wird mittels eines beliebigen, einschlägig bekannten
Algorithmus' (zum
Beispiel FIFO, LIFO) bestimmt. Jeder anfordernde AMF muss warten,
bis ihre Anforderung verarbeitet ist, um die Verriegelung zu erhalten.
Jede AMF erlangt eine Verriegelung der Ressource bei erfolgreicher
Vollendung des Arbitrierungsprozesses. Eine AMF kann die Ressource
nicht verriegeln, wenn die Arbitrierung scheitert.
-
18b veranschaulicht den allgemeinen Prozessablauf
des verallgemeinerten Arbitrierungsprozesses gemäß der vorliegenden Erfindung.
Die Arbitrierung beinhaltet das Koordinieren der Ressourcenverriegelungsübertragung
zwischen zwei AMFs: der anfordernden AMF 1225 und der AMF 1230 mit
der Ressourcenverriegelung. Die AMF 1225 sendet eine "Verriegelungsanforderungs"-Meldung an einen
Arbitrierer 1220 (die Entität, die den Arbitrierungsprozess
ausführt),
der die Meldung für
einen Zeitraum, der durch seinen Prioritätsalgorithmus festgelegt wird,
in eine Warteschlange einreiht. Gegebenenfalls verarbeitet der Arbitrierer 1220 die
Anforderung, indem er eine Verriegelungsfreigabemeldung an die AMF 1230 sendet,
die momentan die Ressourcenverriegelung hat. Sobald sie einen Punkt
erreicht hat, wo sie unbedenklich auf die Verwendung der Ressource
verzichten kann, hebt die AMF 1230 die Verriegelung auf
und informiert den Arbitrierer 1220, dass die Verriegelung
aufgehoben ist. Der Arbitrierer 1220 signalisiert dann
der anfordernden AMF 1225, dass ihr die Ressourcenverriegelung
gewährt
wurde. Die AMF 1225 behält
die Verriegelung weiter bei, bis der Arbitrierer 1220 sie
auffordert, die Ressource freizugeben.
-
Optimierungen
der Arbitrierungswarteschlange sind möglich, wenn eine oder mehrere AMFs
eine Leseverriegelung für
eine bestimmte Ressource anfordern. In bevorzugten Aspekten gewährt der
Arbitrierungsprozess in diesen Situationen gleichzeitig Leseverriegelungen,
solange die Befehlsreihung gewahrt bleibt.
-
Eine
AMF (oder ein Controller) verwaltet den Arbitrierungsprozess für eine Ressource
innerhalb des Redundanzgruppenclusters. Diese AMF nennt man den
Ressourcenarbitrierer. Die Zuweisung des Arbitrierers für eine bestimmte
Ressource kann unter Verwendung eines beliebigen von mehreren Verfahren
bewerkstelligt werden (zum Beispiel ein einziger Arbitrierer für alle Ressourcen,
Lastausgleichszuweisung usw.). Die bevorzugten Verfahren für eine Arbitrierungszuweisung
gemäß der vorliegenden
Erfindung sind basieren auf der Anzahl der Controller und den Ressourcebereich.
Für Clusterkonfigurationen mit
einer oder zwei AMFs ist der zugewiesene Arbitrierer die letzte
AMF mit einer Schreibverriegelung. Für Clusterkonfigurationen mit
mehr als zwei AMFs basiert die Arbitriererzuweisung auf einem festen
Abbildungsalgorithmus, der auf der Anzahl der AMFs und dem Ressourcenort
(zum Beispiel Streifen-ID, Block-ID usw.) basiert.
-
19 veranschaulicht
einen vereinfachten Arbitrierungsprozess zwischen zwei AMFs in einer Clusterkonfiguration
für eine
einzelne Ressource. Die erste AMF 1300 (AMF Nr. 1) gab
eine Leseverriegelungsanforderung 1320 für eine Ressource
an die zweite AMF 1310 (AMF Nr. 2) aus, die momentan eine
Schreibverriegelung der Ressource hat. Die AMF Nr. 2 gibt eine Verriegelungsgewährungs (Lese)-Meldung 1330 an
die AMF Nr. 1 aus, die besagt, dass eine Ressourcenverriegelung
gewährt
wurde. Die AMF Nr. 1 hat nun Lesezugriff auf die Ressource. Die
Sequenz geht weiter, wenn die AMF Nr. 1 eine Schreibverriegelungsanforderung 1340 an
die AMF Nr. 2 ausgibt. Die AMF Nr. 2 antwortet mit einer Verriegelungsgewährungs (Schreib)-Meldung 1350.
Die Sequenz geht weiter, wenn die AMF Nr. 1 eine Leseverriegelungsanforderung 1360 ausgibt,
und da die AMF Nr. 1 bereits eine Schreibverriegelung hat, handhabt
sie ihre eigene Arbitrierung und setzt die Schreibverriegelung auf
eine Leseverriegelung herab. Als nächstes hat die AMF Nr. 2 in
diesem Moment keine Verriegelungen an der Ressource, so dass sie nicht
benachrichtigt zu werden braucht. Die AMF Nr. 2 gibt eine Leseverriegelungsanforderung 1370 an die
AMF Nr. 1 aus, die sofort mit einer Verriegelungsgewährungs (Lese-) Meldung 1380 antwortet,
da die Ressource mehrere Leseverriegelungen unterstützt. Für die Zwei-AMF-Clusterkonfiguration
ist eine Arbitrierung mit der anderen AMF nicht erforderlich, wenn die
AMF mit einer Schreibverriegelung eine Leseverriegelung anfordert.
In alle anderen Fällen
muss die zweite AMF die Verriegelung arbitrieren.
-
20 veranschaulicht
beispielhafte Ressourcenarbitrierungssequenzen für ein Cluster mit vier AMFs
gemäß der vorliegenden
Erfindung. Das bevorzugte Arbitriererzuweisungsverfahren für Cluster
mit drei oder mehr AMFs besteht darin, den Arbitrierer unter Verwendung
eines festen Abbildungsalgorithmus' auszuwählen. Das hat den Effekt einer permanenten
Zuordnung eines Arbitrierers zu einer einzelnen AMF. Im Fall eines
Scheiterns einer AMF-Ressourcenarbitrierung wird der Ressourcenarbitrierer
gemäß dem Abbildungsalgorithmus neu
zugewiesen.
-
Wenden
wir uns 20 zu, wo zuerst die AMF 1400 (AMF
Nr. 1) eine Schreibverriegelungsanforderung 1420 an den
Ressource-X-Arbitrierer in der dritten AMF 1410 (AMF Nr.
3) ausgibt. Der Arbitrierer in der AMF Nr. 3 gibt eine Verriegelungsfreigabeanforderung 1422 an
die zweiten AMF 1405 (AMF Nr. 2) aus, um ihre Verriegelung
der Ressource X aufzuheben. Während
die Verriegelungsanforderung 1420 für die Ressource X verarbeitet
wird, gibt die AMF Nr. 1 eine Leseverriegelungsanforderung 1424 für die Ressource
Y aus. Die vierte AMF 1415 (AMF Nr. 4) ist der zugewiesene
Arbitrierer für
die Ressource Y. Die AMF Nr. 4 gewährt sofort eine Leseverriegelung 1426,
da keine anderen AMFs momentan eine Verriegelung haben. Als nächstes gibt
die AMF Nr. 4 eine Schreibverriegelungsanforderung 1428 für die Ressource
X aus, die durch den Arbitrierer in der AMF Nr. 3 in die Warteschlange
eingereiht wird, da er momentan die Schreibverriegelungsanforderung 1420 verarbeitet.
-
Die
AMF Nr. 2 sendet eine Verriegelungaufgehoben-Meldung 1430 an
die AMF Nr. 3, die eine Verriegelungsgewährungs (Schreib)-Meldung 1432 an
die AMF Nr. 1 sendet. In die Verriegelungsgewährungsmeldung 1432 ist
eine Markierung eingebettet, die anzeigt, dass die AMF Nr. 1 die
Verriegelung nach Beendigung aufheben soll. Diese Optimierung macht es überflüssig, dass
die AMF Nr. 3 eine Verriegelungsfreigabemeldung an die AMF Nr. 1
sendet. Wenn sie mit der Ressource X fertig ist, sendet die AMF
Nr. 1 eine Verriegelung-aufgehoben-Meldung 1434 an die AMF Nr.
3, die eine Verriegelungsgewährungsmeldung 1436 an
die AMF Nr. 4 sendet (welche die nächste in der Warteschlange
für eine
Schreibverriegelung der Ressource X ist).
-
Die
Sequenz, die mit der Verriegelungsanforderungs (Lese)-Meldung 1440 beginnt,
zeigt einen Mehrfachleseverriegelungszustand. Mit dem Empfang der
Verriegelungsgewährungs
(Lese)-Meldung 1442 haben sowohl die AMF Nr. 2 als auch
die AMF Nr. 1 gleichzeitig eine Leseverriegelung an der Ressource
Y. Die Schreibverriegelungsanforderung 1444, die durch
die AMF Nr. 3 versandt wurde, veranlasst die AMF Nr. 4, Verriegelungsfreigabemeldungen 1446 und 1448 an
die AMF Nr. 2 bzw. die AMF Nr. 1 auszugeben. Das führt dazu,
dass sowohl die Verriegelung-aufgehoben-Meldung 1450 als
auch die Verriegelung-aufgehoben-Meldung 1852 an die AMF Nr.
4 gesendet werden. Bevor die AMF Nr. 4 der AMF Nr. 3 eine Verriegelung
gewährt,
sendet die AMF Nr. 1 eine Leseverriegelungsanforderungsmeldung 1454,
die durch die AMF Nr. 4 in die Warteschlange eingereiht wird. Die
AMF Nr. 3 empfängt
die Schreibverriegelungsgewährungsmeldung 1456 für die Ressource
Y, die eine Markierung enthält,
die anzeigt, dass sie die Verriegelung nach Beendigung aufheben
soll. Die AMF Nr. 3 gibt eine Verriegelungaufgehoben-Meldung 1458 aus,
wenn sie mit der Ressource Y fertig ist. Die AMF Nr. 4 gibt dann
eine Verriegelungsgewährungs
(Lese)-Meldung 1460 aus, mit der die AMF Nr. 1 informiert
wird, dass sie eine Leseverriegelung der Ressource Y erlangt hat.
-
Ein
Nutzeffekt dieses Verfahrens zur Verriegelungsverwaltung ist, dass
die Anzahl von Meldungen, die zwischen den AMFs versendet werden,
nur eine Funktion der Anzahl der ausstehenden Verriegelungen ist.
Sie hängt
nicht von der Anzahl der AMFs in der Clusterkonfiguration ab. Wenn
man das erste Verfahren, wie es zum Beispiel in 19 veranschaulicht
ist, für
die Zwei-Controller-Clusterkonfiguration so erweitert, dass mehr
als drei Controller unterstützt
werden, so führt
dies dazu, dass die Anzahl der Arbitrierungsmeldungen mit der Anzahl
der AMFs in der Clusterkonfiguration zunimmt. Es sind auch andere
Verfahren zur Arbitrierungsoptimierung möglich, aber diese zwei Verfahren
stellen die bevorzugte Ausführungsform
für die
vorliegende Erfindung dar.
-
Ressourcen-Prefetching
-
In
der bevorzugten Ausführungsform
für die vorliegende
Erfindung wird die Ressourcenarbitrierung auch durch die Verwendung
eines Verriegelungs-Prefetch optimiert. Eine AMF kann zusätzliche Prefetch-Ressourcen
spezifizieren, wenn sie für
eine Verriegelung arbitriert. Wenn alle oder einige der Prefetch-Ressourcen nicht
verriegelt sind, so verriegelt der Arbitrierer sie auch für die AMF.
Wenn darum die AMF die Verriegelung dieser Prefetch-Ressourcen anfordert,
so kann sie (zu einem späteren
Zeitpunkt) rasch die Verriegelung erhalten (weil sie sie bereits hatte).
-
1
- 10
- Netzwerk-Client
- 20
- Server
- 30
- Controller
- 50
- Faserkanalgestütztes Speicherbereichsnetzwerk
(SAN)
- 45
- Laufwerk
-
2
- Kästen links
- Host-System/Controller/PCI/FC-Port
- 55
- FC-Schalter
- 45
- FC-Laufwerk
-
3
- Kasten
links oben
- PCI-Bus
(s)/Host-System/Controller/FC-Port
- 55
- FC-Schalter
- 45
- FC-Laufwerk
- Kasten
links unten
- Externer
Controller/FC-Port
- 55
- FC-Schalter
- 45
- FC-Laufwerk
-
4
- Kästen links
- PCI-Bus
(s)/Host-System/Controller/FC-Port
-
- FC-Schalter
- 45
- FC-Laufwerk
-
5
- Kästen links
- PCI-Bus
(s)/Host-System/Controller/FC-Port
- 55
- FC-Schalter
- 45
- FC-Laufwerk
-
6
- 0
- Host-System/Controller/PCI/FC-Port/Redundanzgruppe/FC-Laufwerk
-
7
- Kasten
links
- Passive
PCI-Hauptplatine(n)/PCI-Bus (s)/Controller/FC-Port
- 55
- FC-Schalter
- 45
- FC-Laufwerk
- unten
- Server
-
8
- links
- Host
- 60
- PCI-Host-Verbindung
- 65
- FC-Host-Verbindung
- 70
- Port
für virtuelle
Laufwerke
- 75
- Virtuelles
Laufwerk
- 80
- Arraymanagementfunktion
- Wolke
rechts
- Geräteverbindung – Faserkanal
- 45
- Laufwerk
-
9
- 110
- Beginn
der Operation
- 120
- Verriegelung
bereits vorhanden?
- No
- Nein
- Yes
- Ja
- 130
- Arbitrieren
mit AMFs für
eine Ressourcenverriegelung
- 140
- Ausführen der
Operation an der Redundanzgruppe
- rechts
- Operation
vollendet
-
10
- 210
- Beginn
der Operation
- 220
- Verriegelung
bereits vorhanden?
- No
- Nein
- Yes
- Ja
- 230
- Arbitrieren
für eine
Ressourcenverriegelung
- 2401
- Replizieren
der Ressource und/oder des Status'
- 2501
- Operationsschritt
Nr. 1
- 2402
- Replizieren
der Ressource und/oder des Status'
- 2502
- Operationsschritt
Nr. 2
- 2403
- Replizieren
der Ressource und/oder des Status'
- 2503
- Operationsschritt
Nr. 3
- 240N-1
- Replizieren
der Ressource und/oder des Status'
- 250N-1
- Operationsschritt
Nr. N-1
- 240N
- Replizieren
der Ressource und/oder des Status'
- 250N
- Operationsschritt
Nr. N
- rechts
unten
- Operation
vollendet
-
11a
- 310
- Start
- 320
- Besorgen
der benötigten
Verriegelung
- 330
- Lesen
der Daten und Übertragen
zum Host
- rechts
- beendet
-
11b
- 310
- Start
- 320
- Besorgen
der benötigten
Verriegelung
- 340
- Lesen
der Daten und der Parität
- 350
- Regenerieren
aller fehlenden Daten
- 360
- Übertragen
der Daten zum Host
- rechts
- beendet
-
12
- 410
- Start
- 420
- Analysieren
des Host-Befehls
- 430
- Besorgen
der benötigten
Verriegelung
- 440
- Empfang
eines oder mehrerer ankommender Host-Datenframes
- 450
- Beginnen
der Replikationsoperation
- 460
- Alle
Daten empfangen?
- 470
- Warten,
bis alle Replikationsoperationen vollendet sind
- 480
- Senden
des Status' an den
Host
- No
- Nein
- Yes
- Ja
- rechts
unten
- beendet
-
13a
- 510
- Start
- 520
- Besorgen
der benötigten
Verriegelung
- 530
- Lesen
der alten Daten und/oder Parität, falls
erforderlich
- 540
- Bekanntgabe
des Aktualisierungsbeginns
- 550
- Schreiben
der neuen Daten
- 560
- Erzeugen
einer neuen Parität
- 570
- Schreiben
der neuen Parität
- 580
- Bekanntgabe
des Aktualisierungsendes
- rechts
- beendet
-
13b
- 610
- Start
- 620
- Arbitrieren
für eine
Schreibverriegelung mit anderen Replikationspartnern
- 630
- Lesen
der alten Daten
- 640
- Bekanntgabe
des Aktualisierungsbeginns
- 650
- Erzeugen
einer neuen Parität
- 660
- Schreiben
der neuen Parität
- 670
- Bekanntgabe
des Aktualisierungsendes
- 680
- Normale
Streifenaktualisierung
- rechts
- beendet
-
14a
- 710
- Start
- 720
- Besorgen
der benötigten
Verriegelung
- 730
- Lesen
der alten Daten und/oder Parität,
falls erforderlich
- 740
- Bekanntgabe
des Aktualisierungsbeginns
- 744
- Regenerieren
fehlender Daten
- 746
- Replizieren
alter Daten
- 750
- Schreiben
der neuen Daten
- 760
- Erzeugen
einer neuen Parität
- 770
- Schreiben
der neuen Parität
- 780
- Bekanntgabe
des Aktualisierungsendes
- rechts
unten
- beendet
-
14b
- 810
- Start
- 820
- Arbitrieren
für eine
Schreibverriegelung mit anderen Replikationspartnern
- 830
- Erzeugen
einer neuen Parität
- 840
- Bekanntgabe
des Aktualisierungsbeginns
- 850
- Schreiben
alter Daten
- 860
- Bekanntgabe
der Vollendung des Schreibens alter Daten
- 870
- Schreiben
der neuen Parität
-
- Bekanntgabe
des Aktualisierungsendes
- 890
- Normale
Streifenaktualisierung
- rechts
unten
- beendet
-
15
- 910
- Start
- 920
- Besorgen
der benötigten
Verriegelung
- 930
- Lesen
der Daten und der Parität
- 940
- Regenerieren
fehlender Daten
- 950
- Schreiben
von Daten in das Ersatzlaufwerk
- 960
- Aktualisieren
der Abbildungstabelle und Informieren der Peers
- 970
- Noch
weitere Streifen zu rekonstruieren?
-
- Nein
- rechts
unten
- beendet
-
16
- 1010
- Start
- 1020
- Besorgen
der benötigten
Verriegelung(en)
- 1030
- Aufrufen
einer Leseoperation zum Lesen der Daten des Erweiterungsstreifens
- 1045
- Aufrufen
einer Leseoperation zum Lesen der Quelldaten
- 1040
- Replizieren
der alten Daten und Streifenkonfiguration
- 1050
- Bekanntgabe
des Aktualisierungsbeginns
- 1055
- Berechnen
der Parität
für die
Streifenbreite W + N
- 1060
- Schreiben
von Daten in die Laufwerke
- 1070
- Schreiben
der Parität
in die Laufwerke
- 1080
- Bekanntgabe
des Aktualisierungsendes, Übertragen
der Änderungen
in die Abbildungstabelle
- 1090
- Noch
weitere Streifen zu erweitern?
- No
- Nein
- rechts
unten
- beendet
-
17a, 17b
- bleiben
unverändert
-
-
18a
- v.l.n.r.
und v.o.n.u
- AMF/Verriegelung
anfordern/Arbitrierungswarteschlange/Anforderung N, 2, 1/Verriegelung
empfangen/AMF
-
18b
- v.l.n.r:
-
- 1225
- AMF
- v.o.n.u
- Verriegelung
anfordern/Verriegelung empfangen
- 1220
- Arbitrierungsprozess
- v.o.n.u
- Verriegelung
aufheben/Verriegelung aufgehoben
- 1230
- AMF
mit Verriegelung
-
19
- 1300
- AMF
Nr. 1
- 1310
- AMF
Nr. 2
- 1320
- Verriegelung
anfordern (X, lesen)
- 1330
- Verriegelung
gewähren
(X, lesen)
- 1340
- Verriegelung
anfordern (X, schreiben)
- 1350
- Verriegelung
gewähren
(X, schreiben)
- 1360
- Verriegelung
anfordern/gewähren
(X, lesen)
- 1370
- Verriegelung
anfordern (X, lesen)
- 1380
- Verriegelung
gewähren
(X, lesen)
-
20
- 1400
- AMF
Nr. 1
- 1410
- AMF
Nr. 3, Ressource-X-Arbitrierer
- 1415
- AMF
Nr. 4, Ressource-Y-Arbitrierer. Zu Anfang ist Ressource Y durch
keine AMF verriegelt.
- 1405
- AMF
Nr. 2
- 1420
- Verriegelung
anfordern (X, lesen)
- 1422
- Verriegelung
aufheben (X, schreiben). AMF Nr. 2 hat zu Beginn eine Verriegelung
für die Ressource
X
- 1424
- Verriegelung
anfordern (Y, lesen)
- 1426
- Verriegelung
gewähren
(Y, lesen)
- 1428
- Verriegelung
anfordern (X, schreiben)
- 1430
- Verriegelung
aufgehoben (X, schreiben)
- 1432
- Verriegelung
gewähren
(X, schreiben)
- 1434
- Verriegelung
aufheben (X, schreiben)
- 1436
- Verriegelung
gewähren
(X, schreiben)
- 1440
- Verriegelung
anfordern (Y, lesen)
- 1442
- Verriegelung
gewähren
(Y, lesen)
- 1444
- Verriegelung
anfordern (Y, schreiben)
- 1446
- Verriegelung
aufheben (Y, schreiben)
- 1448
- Verriegelung
aufheben (Y, schreiben)
- 1450
- Verriegelung
aufgehoben (Y, schreiben)
- 1454
- Verriegelung
anfordern (Y, lesen)
- 1452
- Verriegelung
aufgehoben (Y, schreiben)
- 1456
- Verriegelung
gewähren
(Y, schreiben)
- 1458
- Verriegelung
aufgehoben (Y, schreiben)
- 1460
- Verriegelung
gewähren
(Y, lesen)