-
GEBIET DER ERFINDUNG
-
Die
vorliegende Erfindung betrifft Computersysteme und spezieller das
Liefern von Ressourcen in einem Computersystem.
-
BESCHREIBUNG DES STANDES DER
TECHNIK
-
Viele
Computersysteme enthalten einen oder mehrere Hostcomputer, ein oder
mehrere Speichersysteme, welche Daten speichern, die durch die Hostcomputer
verwendet werden, und eine oder mehrere Netzwerkkomponenten, die
eine Kommunikation zwischen den Hostcomputern und den Speichersystemen
ermöglichen.
Ein Beispiel solch eines Systems ist in 1 gezeigt.
-
Das
System 10 von 1 enthält ein Paar von Hostcomputern 1, 2,
ein Paar von Speichersystemen 6, 7 und eine Vielzahl
an Schaltern 3–5,
welche die Hostcomputer mit den Speichersystemen verbinden. Wie
in 1 dargestellt ist, enthält jeder der Hostcomputer 1, 2 ein
oder mehrere Dateisysteme 16, 26, die in logischer
Weise auf Sätze
von Daten bezogen sind, die durch die Betriebssysteme der Hostcomputer
erzeugt und aufbewahrt werden und die unter logischen Volumina des
Speichers gespeichert sind, der durch die Speichersysteme 6, 7 wiedergegeben
ist (wiedergegeben durch strichlierte Linien in 1).
Die logischen Volumina können
jeweils einer physikalischen Speichervorrichtung entsprechen (wie
beispielsweise einem Plattenlaufwerk), und zwar innerhalb einem
der Speichersysteme, oder, wenn die Speichersysteme 6, 7 aus
intelligenten Speichersystemen bestehen, kann eine Abbildungsschicht
(mapping layer) durch die Speichersysteme vorgesehen sein, und zwar
zwischen den logischen Volumina, die durch die Hostcomputer und die
physikalischen Speichervorrichtungen gebildet werden. Es braucht
daher keine Eins-zu-Eins-Entsprechung zwischen den logischen Volumina
vorhanden zu sein, die durch die Hostcomputer und die physikalischen
Speichervorrichtungen gebildet werden, da ein einzelnes logisches
Volumen über
eine Vielzahl von physikalischen Speichervorrichtungen verteilt
sein kann oder alternativ eine Anzahl der physikalischen Speichervorrichtungen
kombiniert sein können,
um Daten für
ein einzelnes logisches Volumen zu speichern.
-
In
einigen Computersystemen können
Speichersysteme direkt an die Hostcomputer angebracht sein, und
zwar in solcher Weise, dass jeder Port an dem Speichersystem einem
Port eines bestimmten Hostcomputers zugeordnet ist. Jedoch wird
bei dem veranschaulichten Computersystem von 1 ein Speicherbereichsnetzwerk
(SAN) verwendet, so dass ein Zugriff auf die Speichersysteme 6, 7 unter einer
Vielzahl von Hostcomputern gemeinsam erfolgen kann. Es sind somit
Netzwerkkomponenten zwischen den Hostcomputern 1, 2 und
den Speichersystemen 6, 7 angeschlossen. Wie in 1 dargestellt ist,
können
die Netzwerkkomponenten einen oder mehrere Schalter 3–5 umfassen,
die zwischen den Hostcomputern 1, 2 und den Speichersystemen 6, 7 zwischengeschaltet
sein können,
um die gewünschte Konfiguration
zu liefern. Es sei in dieser Hinsicht darauf hingewiesen, dass jeder
der Hostcomputer 1, 2, jedes der Speichersysteme 6, 7 und
jeder der Schalter 3–5 einen
oder mehrere Ports aufweisen, die dazu befähigt sind, über ein Kommunikationsmedium
mit dem Port einer anderen Vorrichtung gekoppelt zu werden, um eine
Kommunikation über
diesen Port zu ermöglichen.
Beispielsweise enthält
bei dem veranschaulichten Computersystem von 1 der Hostcomputer 1 eine
Vielzahl an Ports 15, von denen jeder über eine Kommunikationsleitung 17 mit
einem einer Vielzahl von Ports 33 an dem Schalter 3 verbunden
ist. In ähnlicher
Weise enthält
der Hostcomputer 2 eine Vielzahl an Ports 25,
die jeweils über eine
Kommunikationsleitung 27 mit einem einer Vielzahl von Ports 43 an
dem Schalter 4 verbunden sind. Der Schalter 3 enthält ferner
einen Port 35, der über die
Kommunikationsleitung 37 mit einem einer Vielzahl von Ports 53 an
dem Schalter 5 gekoppelt ist. In ähnlicher Weise enthält der Schalter 4 einen
Port 45, der über
eine Kommunikationsleitung 47 mit dem anderen einen der
Vielzahl der Ports 53 an dem Schalter 5 gekoppelt
ist. Schließlich
enthält
der Schalter 5 eine Vielzahl von Ports 55, die über eine
Vielzahl von Kommuni kationsleitungen 57 mit den Speichersystemen 6, 7 verbunden
sind. Speziell enthält
das Speichersystem 6 eine Vielzahl an Ports 65,
die mit einem untergeordneten Satz der Ports 55 des Schalters 5 über einige
der Kommunikationsleitungen 57 gekoppelt sind, und das
Speichersystem 7 enthält
eine Vielzahl von Ports 75, die mit unterschiedlichen der
Ports 55 an dem Schalter 5 über andere Kommunikationsleitungen 57 verbunden
sind.
-
Es
sei darauf hingewiesen, dass die oben erläuterte Konfiguration einen
physikalischen Kommunikationspfad von irgendeinem der Ports an den Hostcomputer 1, 2 über die
Schalter 3–5 zu
irgendwelchen Ports an den Speichersystemen 6, 7 realisiert.
Jedes der Speichersysteme 6, 7 kann so konfiguriert
sein, dass ein oder mehrere logischen Volumina (66 für das Speichersystem 6 und 77 für das Speichersystem 7)
außerhalb
des Speichersystems an oder mehreren der Speichersystemports 65, 75 verfügbar sind.
In der veranschaulichten Konfiguration von 1 werden
zwei der logischen Volumina 66 in dem Speichersystem 6 über jeden
der Ports 65 exportiert und es werden zwei der logischen
Volumina 77 in dem Speichersystem 7 über jeden
der Ports 75 exportiert.
-
Obwohl
die physikalischen Verbindungen, die bei dem System von 1 veranschaulicht
sind, es physikalisch ermöglichen
können,
dass jeder der Hostcomputer 1, 2 auf jedes der
logischen Volumina 66, 77 über irgendeinen der Hostcomputer
Ports 15, 25 zugreifen kann, sei darauf hingewiesen,
dass bei den meisten typischen Computersystemkonfigurationen der
einem Hostcomputer gebotene Zugriff stärker eingeschränkt ist.
Beispielsweise wird bei vielen Computersystemen irgendein spezielles
logisches Volumen der logischen Volumina 66, 77 nicht
durch die Hostcomputer 1, 2 gemeinsam verwendet,
sondern wird lediglich einem der Hostcomputer zugeordnet. Speziell
werden bei einigen Computersystemkonfigurationen Sicherheitsmaßnahmen
(z. B. Verzonung und/oder Maskierung) getroffen, um einen begrenzten
Zugriff zu einem oder mehreren der logischen Volumina 66, 77 festzulegen.
-
Ein
anderes Beispiel eines Computersystems ist in 4 gezeigt
und enthält
einen Hostcomputer 401 und ein Speichersystem 403,
welches eine Vielzahl an Speichervor richtengen enthält, bei
denen Daten gespeichert sind. Der Hostcomputer 401 und das
Speichersystem 403 zeigen veranschaulichende Konfigurationen
für den
Hostcomputer 1, 2 und die Speichersysteme 6, 7 in
dem System 10 von 1, obwohl
zahlreiche andere Konfigurationen möglich sind.
-
Bei
dem in 4 gezeigten Systembeispiel enthält das Speichersystem 403 eine
Vielzahl von Plattenlaufwerken 405a–405b und eine Vielzahl
an Platten-Controllern 407a–407b, die jeweils
den Zugriff auf die Plattenlaufwerke 405a–405b steuern. Das
Speichersystem 403 enthält
ferner eine Vielzahl von Speicherbusdirektoren 409, welche
die Kommunikation mit dem Hostcomputer 401 über Kommunikationsbusse 417 steuern.
Das Speichersystem 403 enthält auch einen Cache 411,
um eine verbesserte Speichersystemperformance zu liefern; speziell dann,
wenn der Hostcomputer 401 einen Lesevorgang aus dem Speichersystem 403 ausführt, kann das
Speichersystem 403 den Lesevorgang aus dem Cache 411 unterstützen (wenn
die Daten in dem Cache gespeichert sind) und nicht von einem der
Plattenlaufwerke 405a–405b,
um den Lesevorgang effizienter durchzuführen. Wenn in ähnlicher
Weise der Hostcomputer 401 einen Schreibvorgang an dem Speichersystem 403 vornimmt,
kann der entsprechende Speicherbus-Direktor 409 den Schreibvorgang
in den Cache 411 vornehmen. Danach kann der Schreibvorgang
asynchron durchgeführt
werden, und zwar in einer Weise, die für den Hostcomputer 401 transparent
ist, und zwar in eines der Plattenlaufwerke 405a–405b.
Schließlich
enthält
das Speichersystem 403 einen internen Bus 413, über welchen
die Speicherbus-Direktoren 409, die Platten-Controller 407a–407b und
der Cache 411 kommunizieren.
-
Der
Hostcomputer 401 enthält
einen Prozessor 416 und einen oder mehrere Host-Bus-Adapter 415,
von denen jeder die Kommunikation zwischen dem Prozessor 416 und
dem Speichersystem 403 über
einen entsprechenden einen der Kommunikationsbusse 417 steuert.
Es sei darauf hingewiesen, dass anstelle eines einzelnen Prozessors 416 der Hostcomputer 401 Vielfach-Prozessoren
enthalten kann. Jeder Bus 417 kann irgendeinen einer Anzahl von
unterschiedlichen Typen von Kommunikationsverbindungsgliedern darstellen,
wobei der Host-Bus-Adapter 415 und die Speicherbus-Direk toren 409 dafür ausgelegt
sind, um zu kommunizieren, und zwar unter Verwendung eines geeigneten
Protokolls für
den Kommunikationsbus 417, der dazwischen gekoppelt ist.
Beispielsweise kann jeder der Kommunikationsbusse 417 als
ein SCSI-Bus implementiert werden, wobei die Direktoren 409 und
die Adapter 415 jeweils einen SCSI-Treiber bilden. Alternativ kann eine
Kommunikation zwischen dem Hostcomputer 401 und dem Speichersystem 403 über eine
Faserkanalstruktur vorgenommen werden.
-
Wie
bei dem als Beispiel verwendeten System von 4 gezeigt
ist, verwenden einige Computersysteme Vielfachpfade zur Realisierung
einer Kommunikation zwischen dem Hostcomputer 401 und dem
Speichersystem 403 (beispielsweise enthält jeder Pfad einen Host-Bus-Adapter 415,
einen Bus 417 und einen Speicherbus-Direktor 409 in 4). Bei
vielen solchen Systemen besitzt jeder der Host-Bus-Adapter 415 die
Fähigkeit,
auf jedes der Plattenlaufwerke 405a–405b über den
geeigneten Speicherbus-Direktor 409 und den Platten-Controller 407a–407b zuzugreifen.
Es sei darauf hingewiesen, dass das Vorsehen solcher Vielfachpfadfähigkeiten die
Systemperformance erhöht
und dass Vielfach-Kommunikationsoperationen zwischen dem Hostcomputer 401 und
dem Speichersystem 403 gleichzeitig durchgeführt werden
können.
-
5 ist
eine schematische Darstellung einer Anzahl von Abbildungsschichten,
die in einem Vielfachpfad-Computersystem vorhanden sein können, wie
in dem einen, welches in 4 gezeigt ist. Das System enthält eine
Anwendungsschicht 521, welche Anwendungsprogramme enthält, die
auf dem Prozessor 416 des Hostcomputers 401 ausgeführt werden.
Die Anwendungsschicht 521 verweist allgemein auf Speicherstellen,
die mit einer Aufschrift oder einem Identifizierer, wie beispielsweise
einem Dateinamen, verwendet werden, und besitzt keine Kenntnis darüber, wo
die Datei physikalisch in dem Speichersystem 403 gespeichert
ist. Unter der Anwendungsschicht 521 befindet sich ein
Dateisystem und/oder ein logischer Volumenmanager (LVM) 523, der
die Aufschriften oder Identifizierer abbildet, die durch die Anwendungsschicht 521 spezifiziert
sind, und zwar zu einem logischen Volumen, welches der Hostcomputer
empfängt,
um direkt einer physikalischen Vorrichtungsadresse zu entsprechen
(z. B. der Adresse von einem der Plattenlaufwerke 405a–405b),
und zwar innerhalb des Speichersystems 403. Unterhalb von
dem Dateisystem/LVM-Schicht 523 ist eine Vielfachpfad-Abbildungsschicht 525 vorhanden,
welches die logische Volumenadresse auflistet oder abbildet, die
durch das Dateisystem/LVM-Schicht 523 spezifiziert wird, und
zwar über
einen bestimmten einen der Vielfachsystempfade zu der logischen
Volumenadresse, die dem Speichersystem 403 dargeboten wird.
Somit spezifiziert die Vielfachpfad-Abbildungsschicht 525 nicht
nur eine bestimmte logische Volumenadresse, sondern auch einen bestimmten
einen der Vielfachsystempfade, um auf das spezifizierte logische
Volumen zuzugreifen. Beispiele einer Software, die zum Implementieren
der Vielfachpfad-Abbildungsschichten verwendet wird, enthält den PowerPath-Treiber, welcher
von der EMC Corporation, Veritas DMP, verfügbar ist, und den Compaq SecurePath.
-
Wenn
das Speichersystem 403 nicht aus einem intelligenten Speichersystem
besteht, identifiziert die logische Volumenadresse, die durch die
Vielfachpfadschicht 525 spezifiziert wird, eine bestimmte physikalische
Vorrichtung (z. B. eines der Plattenlaufwerke 405a–405b)
innerhalb des Speichersystems 403. Jedoch kann bei einem
intelligenten Speichersystem, wie demjenigen, welches in 4 gezeigt ist,
das Speichersystem selbst eine weitere Abbildungsschicht 527 enthalten,
und zwar in solcher Weise, dass die logische Volumenadresse, die
von dem Hostcomputer 401 übertragen wird, nicht direkt
einer aktuellen physikalischen Vorrichtung (z. B. einem Plattenlaufwerk 405a–405b)
bei dem Speichersystem 403 entspricht. Vielmehr kann das
logische Volumen, welches durch den Hostcomputer 401 spezifiziert
wird, über
eine Vielzahl von physikalischen Speichervorrichtungen (z. B. den
Plattenlaufwerken 405a–405b)
verteilt sein oder es können
eine Vielzahl von logischen Volumina, auf die der Hostcomputer 401 zugreift
in der einzelnen physikalischen Speichervorrichtung gespeichert
sein.
-
Es
sei darauf hingewiesen, dass die speziellen Systemkonfigurationen,
die in den 1, 4 und 5 gezeigt
sind, lediglich zum Zwecke der Veranschaulichung vorgesehen sind
und dass typische Konfigurationen in vielfältiger Weise variieren können und
häufig
in signifikanter Weise komplexer sein können, und zwar hinsichtlich
der Zahl der Hostcomputer, der Speichersysteme und/oder der Netzwerkkomponenten,
welche diese miteinander verbinden. Während ferner jeder der vielen
Instanzen des Hostcomputers, Schalter und Speichersysteme in 1 so
veranschaulicht ist, dass sie im Wesentlichen die gleiche Konfiguration
aufweisen (z. B. die gleiche Zahl an Ports, die gleiche Zahl an
logischen Volumina usw.), sei erwähnt, dass bei typischen Konfigurationen
die vielfältigen
Systemkomponenten unterschiedliche Konfigurationen aufweisen können.
-
Es
sei darauf hingewiesen, dass die Ressourcenauswahl und -konfiguration
zur Bildung eines Computersystems wie demjenigen, welches in 1 gezeigt
ist, eine komplexe und arbeitsaufwändige Übung darstellen kann, da eine
unzählige
Zahl von Operationen durchgeführt
werden muss. Beispielsweise werden zum Erzeugen der Konfiguration
von 1, welche Abbildungsschichten verwendet, die in 4 dargestellt
sind, Bestimmungen durchgeführt, und
zwar hinsichtlich der Zahl und der Größen der logischen Volumina 66, 67,
die für
spezielle Ressourcen in den Hostcomputern 1, 2 verfügbar sein
sollen (z. B. den Dateisystemen 16, 26), durch
die in Verbindung mit den Ports der Speichersysteme, der Schalter
und der Hostcomputer die logischen Volumina verfügbar werden. Zusätzlich werden
Sicherheitsmaßnahmen
implementiert, um einen Hostzugriff auf die logischen Volumina festzulegen,
und es werden Abtastschritte durch die Hostcomputer 1, 2 für jeden Port 15, 25 durchgeführt, damit
die Hostcomputer die Fähigkeit
erhalten, die logischen Volumina zu erkennen, die für sie verfügbar gemacht
wurden. Der Konfigurationsprozess wird ferner durch die Tatsache verkompliziert,
dass die Systemkomponenten heterogene physikalische Eigenschaften
besitzen können.
Beispielsweise können
die Kommunikationsverbindungsglieder 17, 27, 37, 47, 57 je
als ein SCSI-Bus, eine Faserkanalverbindung oder als ein anderer
Typ einer Verbindung implementiert werden, es können die Schalter 3–5 aus
einer Sammlung von heterogenen Schaltertypen ausgewählt werden
und es können
die Hostcomputer und/oder Speichersysteme durch unterschiedliche
Lieferfirmen geliefert werden. Jede dieser Komponenten kann spezielle
Konfigurationsanforderungen darstellen.
-
Das
Erstellen virtueller Computersysteme ist in folgenden Veröffentlichungen
behandelt:
- J. Sugerman et al.: Virtualizing I/O Devices
an VMware Workstation's
Hosted Virtual Machine Monitor, Proceedings of the 2001 USENIX Annual
Technical Conference, Boston Massachusetts, USA, June 25–30, 2001;
und
- US 2002/0069369
A1
-
Aufgabe
der Erfindung ist die Vereinfachung der Erstellung eines virtuellen
Computersystems oder eines Abschnittes eines Computersystems, welches
Spezifikationen einer Erstellungsanfrage erfüllt.
-
Diese
Aufgabe wird erfindungsgemäß durch ein
Verfahren gemäß Anspruch
1 gelöst.
Eine erfindungsgemäße Lösung ist
auch durch eine Vorrichtung mit den Merkmalen des Anspruchs 26 gegeben. Weiter
umfasst die Erfindung ein computerlesbares Medium zur Durchführung des
hier angegebenen Verfahrens.
-
Vorteilhafte
Ausgestaltungen und Weiterbildungen sind Gegenstand der jeweiligen
abhängigen Ansprüche, deren
Inhalt hierdurch ausdrücklich
zum Bestandteil der Beschreibung gemacht wird, ohne an dieser Stelle
den Wortlaut im Einzelnen zu wiederholen.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 zeigt
ein Blockschaltbild, welches ein als Beispiel gewähltes Computersystem
eines Typs wiedergibt, der gemäß den Ausführungsformen
der Erfindung zur Erstellung verwendet werden kann;
-
2 ist
ein Flussdiagramm, welches einen Prozess darstellt, durch den Computersystemressourcen
in Einklang mit einer Ausführungsform
der Erfindung vorgesehen werden;
-
3 veranschaulicht
konzeptmäßig die
Erzeugung einer Erstellungsanfrage gemäß einer Ausführungsform
der Erfindung;
-
4 ist
ein Blockschaltbild, welches ein als Beispiel gewähltes Computersystem
veranschaulicht, welches einen Hostcomputer und ein Speichersystem
des Typs enthält,
der bei einem Computersystem verwendet werden kann, welches gemäß vielfältiger Ausführungsformen
der vorliegenden Erfindung erstellt wird;
-
5 veranschaulicht
eine Zahl von Softwareschichten, die in einem Computersystem verwendet
werden können,
wie demjenigen, welches in 4 gezeigt
ist; und
-
6 veranschaulicht
einen Prozess zum Auswählen
von Ressourcen, um eine Erstellungsanfrage zu erfüllen, und
zwar entsprechend einer Ausführungsform
der vorliegenden Erfindung.
-
DETAILLIERTE BESCHREIBUNG
-
Eine
Ausführungsform
der vorliegenden Erfindung betrifft ein Verfahren und eine Vorrichtung zum
automatischen Erstellen von Ressourcen in einem Computersystem.
Bei einer Ausführungsform definiert
ein Anwender eine gewünschte
Systemkonfiguration und der Prozess erstellt automatisch die gewünschte Systemkonfiguration,
was bedeutet, dass geeignete Ressource ausgewählt werden und/oder Aktionen
durchgeführt
werden, um die Ressourcen in der spezifizierten Form zu konfigurieren. Die
hier verwendete Bezeichnung bzw. Hinweis auf eine Aktion, die automatisch
ausgeführt
wird, kennzeichnet eine Aktion, die keinerlei menschliche Intervention
involviert, um zu einer Vervollständigung zu kommen, wenn die
Aktion einmal initialisiert wurde.
-
Wie
oben erläutert
ist, kann das Erstellen eines Computersystems einen komplexen Prozess darstellen,
der eine Anzahl von Ausgaben involviert. Diese Ausgaben können grob
in hostgestützte
Ausgaben kategorisiert werden, ferner in speichersystemgestützte Ausgaben
und verbindungs- oder netzwerkgestützte Ausgaben.
-
Beispiele
der hostgestützten
Ausgaben umfassen die Bestimmung der Größe des Speicherraumes (aufgeteilt
unter einem oder mehreren logischen Volumina), der für einen
Host gewünscht
wird, und die Zuordnung solcher logischer Volumina unter verschiedenen
Ressourcen in dem Host, wie beispielsweise einem weiteren Dateisystem
oder Dateisystemen, logischen Volumenmanagern (LVM) und Datenbankmanagern.
-
Beispiel
von speichersystemgestützten
oder -basierten Ausgaben umfassen das Merkmal, wie viele Speichersysteme
verwendet werden, wie viele logische Volumina des Speichers verfügbar gemacht werden,
welches Speicherkapazität
sie aufweisen sollen, ob die logischen Volumina momentan an Speicherports
abgebildet sind oder abgebildet werden müssen, um einen Zugriff zu ermöglichen,
ob irgendwelche der Volumina gespiegelt werden oder anderweitig
dupliziert werden, umfassen ferner Performanceanforderungen für bestimmte
Volumina des Speichers (es sei darauf hingewiesen, dass ein Computersystem
viele unterschiedliche Typen von Speichersystemen enthalten kann,
und zwar mit unterschiedlichen Performancecharakteristika), Merkmale hinsichtlich
der Typen der physikalischen Speichervorrichtungen, an denen ein
oder mehrere der logischen Volumina gespeichert werden sollen und
ob bestimmte logische Volumina bestimmte hohe Werte der Eingabe/Ausgabe-(I/O)-Aktivität handhaben
sollen usw.
-
Schließlich enthalten
die verbindungs- oder netzwerkgestützten Ausgaben das Bestimmen,
welche Hostcomputer einen Zugriff auf logische Volumina des Speichers
erhalten sollen, die Ports an dem Computersystem, über die
ein logisches Volumen für einen
bestimmten Host zugänglich
gemacht wird, und die Konfiguration von Sicherheitsmaßnahmen, wie
beispielsweise Schichtbildungsoperationen (zoning operations), die
den Zugriff durch einen bestimmten Host auf bestimmte logische Volumina
begrenzen.
-
Gemäß einer
Ausführungsform
der vorliegenden Erfindung wird ein automatischer Prozess dafür verwendet,
um automatisch ein Computersystem im Ansprechen auf eine Erstellungsanfrage
zu erstellen, die eine Spezifikation enthält, welche eine gewünschte Konfiguration
für das
Computersystem festlegt. Wenn es gewünscht wird, kann die Erstellungsanfrage
eine spezifische Identifizierung enthalten, und zwar auf einem sehr
detaillierten Wert, kann die exakte Natur des zu konfigurierenden
Systems enthalten mit einem Extrem, welches identifiziert, welche
Ports von bestimmten Vorrichtungen verbunden werden sollten. Jedoch
wird gemäß einer
Ausführungsform
der vorliegenden Erfindung das Detail auf niedriger Ebene, welches
die Erstellung des Computersystems betrifft, einem automatischen
Prozess überlassen,
und zwar in solcher Weise, dass die Erstellungsanfrage auf einem
signifikant höheren Wert
oder Ebene vorgesehen wird, wodurch dann die Zeit und der Aufwand
reduziert werden, die zum Konstruieren einer Erstellungsanfrage
erforderlich sind. Somit kann in einer Weise, wie sie weiter unten
beschrieben wird, die Erstellungsanfrage Aspekte des Systems definieren,
und zwar auf einem relativ hohen Niveau oder Ebene, und zwar in
Ausdrücken
der Natur der Konfiguration, die festzulegen ist, und es findet
dann der automatische Erstellungsprozess entsprechend der Definition
auf hoher Ebene und entsprechend einer automatischen Erstellung
eines Computersystems statt, welcher die Definition befriedigt bzw.
zu dieser passt. Wenn jedoch der Anwender eine Wahl trifft, eine
Definition zu schaffen, die Anforderungen auf einer niedrigeren
Ebene bedeutet, kann der automatisierte Erstellungsprozess ebenfalls mit
solchen Anforderungen in Einklang gebracht werden. Jedoch kann der
automatisierte Erstellungsprozess auch eine Definition auf höherer Ebene
handhaben und automatisch ein Computersystem erstellen, welches
diese Definition erfüllt.
-
1. Festlegen einer Erstellungsanfrage
-
Die
Erstellungsanfrage kann in irgendeiner von zahlreichen Formen vorgesehen
werden, so dass die vorliegende Erfindung nicht auf irgendeine spezielle
Implementierung begrenzt ist. Wie oben erläutert wurde, kann die Definition
eines Computersystems, welches erstellt werden soll, Informationen enthalten,
die grob in drei Bereiche kategorisiert werden können: hostbasierte Informationen,
speichersystembasierte Informationen und verbindungs- oder netzwerkbasierte
Informationen. Bei einer Ausführungsform
der vorliegenden Erfindung enthält
eine Erstellungsanfrage drei Komponenten, die auf diese drei unterschiedlichen
Bereiche bezogen sind. Das Erzeugen einer Erstellungsanfrage, welche
diese drei Komponenten enthält,
ist konzeptmäßig in 3 veranschaulicht.
Natürlich
ist die vorliegende Erfindung nicht auf eine Erstellungsanfrage
begrenzt, welche diese Form aufweist, da nämlich auch andere Implementierungen
möglich
sind.
-
Gemäß einer
Ausführungsform
der vorliegenden Erfindung wird die Erstellungsanfrage vereinfacht,
und zwar durch Verwenden eines Konzeptes, welches als ein Speicherelement
bekannt ist, um Einheiten des Speichers zusammenzufassen, die in
logischer Weise von der Perspektive eines Hostcomputers aus in Beziehung
stehen (z. B. eine Sammlung von logischen Volumina, die zusammen
ein Dateisystem speichern, ein logischer Volumenmanager oder eine
Datenbank). Wenn somit ein Speichervolumen innerhalb eines logisch
bezogenen Satzes eine Anzahl von Hardwarespiegeln aufweist, können solche Hardwarespiegel
(hardware mirrors) als ein Teil des gleichen Speicherelements definiert
werden, da die Hardwarespiegelungsoperation durch die Speichersysteme
in einer Weise durchgeführt
werden, die für den
Host transparent ist. Wenn umgekehrt ein Speichervolumen einen Softwarespiegel
aufweist, der durch den Host selbst aufbewahrt wird, kann der Softwarespiegel
in einem unterschiedlichen Speicherelement vorgesehen sein. Es sei
darauf hingewiesen, dass die vorliegende Erfindung nicht auf eine Implementierung
begrenzt ist, die ein Speicherelementkonzept in dieser Weise liefert,
da zahlreiche andere Implementierungen ebenso möglich sind. Obwohl ferner die
Verwendung von Speicherelementen zum Zusammenfassen von logisch
bezogenen Speichereinheiten vorteilhaft ist, sei erwähnt, dass
die vorliegende Erfindung nicht auf die Verwendung einer Erstellungsanfrage
begrenzt ist, welche dieses Konzept verwendet, da jede Speichereinheit
alternativ individuell behandelt werden kann.
-
Wie
oben dargelegt ist, enthält
eine Ausführungsform
eine Erstellungsanfrage mit Komponenten, die speichersystembasierte
Ausgaben adressieren, ebenso hostbasierte Ausgaben und verbindungs-
oder netzwerkbasierte Ausgaben. Dies ist konzeptmäßig in 3 veranschaulicht,
wobei ein Block 210 die Erzeugung einer Speichervorrichtungsspezifikation,
die sich auf speichersystembasierte Konfigurationsausgaben richtet,
wiedergibt, wobei der Block 214 das Erzeugen einer Hostspezifikation,
die hostbasierte Konfigurationsausgaben betrifft, wiedergibt, und
wobei ein Block 212 das Erzeugen einer logischen Hosteinheitsspezifikation
(HLU) wiedergibt, die sich mit den verbindungs- oder netzwerkbasierten
Ausgaben befaßt.
-
A. Speichervorrichtungsspezifikation
-
Die
in dem Block 210 erzeugte Speichervorrichtungsspezifikation
definiert die Konfiguration des Speichersystems. Wie oben erläutert ist,
kann die Erstellungsanfrage auf irgendeiner Ebene eines Details liegen,
welche der Fragesteller wünscht,
die Speichervorrichtungsspezifikationskomponente kann irgendwelche
Aspekte des Speichersystems oder der Speichersysteme definieren,
die der Anfragesteller in einer bestimmten Weise zu konfigurieren wünscht. Beispiele
von Typen von Informationen, die in der Speichervorrichtungsspezifikation
enthalten sind, können
die Zahl der Speichervolumina enthalten, die verfügbar gemacht
werden sollen, die Speicherkapazität von jedem Volumen, die Spiegel-
oder Verdoppelungseigenschaften (z. B. ein örtlicher oder geografisch entfernt
gelegener Hardwarespiegel), Abtrennerfordernisse, Redundanz oder
Fehlertoleranzanforderungen (z. B. eine der RAID-Ebenen), irgendwelche
gewünschten
Performanceanforderungen für
bestimmten Volumina, die auf I/O-Operationen ansprechen, irgendwelche
spezifischen Anforderungen für
den Typ von physikalischen Speichervorrichtungen, bei der eines
oder mehrere der Volumina gespeichert werden sollen, spezifische
Händler und/oder
Modelle, bei denen ein oder mehrere Volumina gespeichert werden
sollen, und Ersatzvolumina, die vorgesehen werden sollen (z. B.
ein Hostersatz, um kurzzeitige Performanceverbesserungen zu erreichen
oder für
die Verwendung als ein Snap-Shot-Spiegel, wie beispielsweise eines
Geschäftsfortsetzungsvolumens
(BCV), welches von der EMC Corporation erhältlich ist). Es sei darauf
hingewiesen, dass die oben angegebene Auflistung lediglich zur Veranschaulichung
angefügt
ist und nicht erschöpfend
ist, da irgendwelche Charakteristika eines Speichersystems in der
Speichervorrichtungsspezifikation enthalten sein können, wenn
der Anfragesteller wünscht,
dass die Systemkonfiguration diese Charakteristika enthalten soll
bzw. mit diesen Charakteristika erstellt werden soll.
-
Bei
einer Ausführungsform
der vorliegenden Erfindung kann der automatisierte Erstellungsprozess
in Verbindung mit einem Managementwerkzeug ausgeführt werden,
welches an dem System verwendet wird, welches verschiedene Speicherressourcen in
Speicherpools organisiert. Die Speicherpools können dazu verwendet werden,
um Ressourcen aus administrativen Gründen zu gruppieren, wobei die Gruppenressourcen
be stimmte Eigenschaften gemeinsam aufweisen, wie beispielsweise
Performanceeigenschaften oder den Typ von physikalischen Speichervorrichtungen
oder aus irgendwelchen anderen Gründen. Wenn eine Erstellungsanfrage
zum Erstellen eines Computersystems geliefert wird, welches ein
Managementwerkzeug verwendet, welches Speicherressourcen gruppiert
(z. B. logische Volumina), und zwar in Speicherpools, so kann die
Erstellungsanfrage (optional) eine Anfrage enthalten, dass vielfältige Speicherressourcen
aus bestimmten Speicherpools vorgesehen werden sollen.
-
Wie
oben erläutert
ist, kann die Speichervorrichtungsspezifikation bestimmte bevorzugte
oder erforderliche Charakteristika des Systems, welches erstellt
werden soll, enthalten. Wenn gemäß einer
veranschaulichenden Ausführungsform
der vorliegenden Erfindung eine Erstellungsanfrage bestimmte Speichersystemeigenschaften
erfordert, die durch die physikalischen Ressourcen nicht erfüllt werden können, die
für den
automatisierten Erstellungsprozess verfügbar sind, so sendet der automatische
Prozess einen Fehler im Ansprechen auf die Anfrage zurück, mit
der Erläuterung,
dass die Anfrage nicht erfüllt
werden kann. Ferner ermöglicht
es eine Ausführungsform
der vorliegenden Erfindung, zusätzlich
zu der Möglichkeit,
dass der Anfragesteller die Fähigkeit hat,
anzugeben, dass bestimmte Eigenschaften erfüllt werden sollen, dass ein
Anwender Bevorzugungen spezifizieren kann, die keine absoluten Anforderungen
darstellen. Bei einer Ausführungsform
versucht der Erstellungsprozess im Ansprechen auf eine Anfrage,
die einen Vorzug enthält,
den Vorzug zu befriedigen, wenn der automatische Erstellungsprozess dazu
jedoch nicht in der Lage ist, implementiert er die Erstellungsanfrage
in anderer Weise, wenn dies möglich
ist, welche die bevorzugten Wünsche
nicht befriedigt, jedoch alle Anforderungen befriedigt, die in der
Erstellungsanfrage enthalten sind.
-
Es
sei erwähnt,
dass die Erstellungsanfrage dazu verwendet werden kann, um ein Computersystem
neu zu konfigurieren. Bei einigen Computersystemen sind die logischen
Volumina bereits für
eine bestimmte Verwendung zugeordnet, wie beispielsweise als ein "standard"-logisches Volumen,
welches für
Lese-/Schreiboperationen verfügbar
ist, als ein festgelegter Ersatz für eine zeitweilige Verwendung, als
ein Volumen, welches dafür
bestimmt ist, um als ein Snap-Shot-Spiegel verwendet zu werden,
wie bei spielsweise ein Geschäftsfortsetzungsvolumen (BCV),
welches von der EMC Corporation erhältlich ist, als ein Volumen,
welches für
eine Fernspiegelung verfügbar
ist usw. Wenn bei einer Ausführungsform der
Erfindung die Speichervorrichtungsspezifikation geliefert wird,
kann der Anfragesteller eine Toleranz angeben, und zwar für eine Rekonfiguration
von irgendwelchen von diesen Volumentypen. Indem beispielsweise
eine niedrige (oder keine) Toleranz spezifiziert wird, und zwar
für bestimmte
Rekonfigurationsoperationen, kann der Anwender den automatischen
Erstellungsprozess daran hindern, die Konfiguration von irgendwelchen
logischen Volumina zu ändern,
die momentan existieren, und eine Fehlermeldung zurückzusenden,
wenn die Speichervorrichtungsspezifikation nicht erfüllt werden
kann, und zwar unter Verwendung der momentanen Konfiguration der
logischen Volumina. Alternativ kann eine relativ hohe Toleranz für die Rekonfiguration
den automatischen Erstellungsprozess dazu autorisieren, dann, wenn
es gewünscht
wird, die Konfiguration von einem oder von mehreren logischen Volumina
zu ändern,
um die Speichervorrichtungsspezifikation zu erfüllen.
-
B. Logische Hosteinheitsspezifikation
-
Ein
zweiter Aspekt der Erstellungsanfrage die logische Hosteinheitsspezifikation
(HLU), die in dem Block 212 (3) erzeugt
wird. Die HLU-Spezifikation definiert, wie Speichervolumina, die
in der Speichervorrichtungsspezifikation definiert sind, erscheinen,
und zwar über
die Verbindungsressourcen (z. B. ein Netzwerk), und zwar für Hostcomputer
des Systems. Wie bei der Speichervorrichtungsspezifikation, die
weiter oben erläutert
wurde, kann die HLU-Spezifikation irgendeine Ebene eines Details liefern,
die der Anfragesteller wünscht,
und zwar in solcher Weise, dass dann, wenn es für den Fragesteller unwichtig
ist, wie verschiedene Aspekte der Systemkonfiguration implementiert
werden, solche Aspekte nicht in der HLU-Spezifikation definiert
zu werden brauchen, so dass dann der automatische Erstellungsprozess
solche Aspekte in irgendeiner Weise implementiert, die er selbst
auswählt.
Ein Beispiel des Typs von Informationen, die in der HLU-Spezifikation
definiert sein können,
umfaßt
eine Abbildung von logischen Volumina, die in der Speichervorrichtungsspezifikation
definiert sind, und zwar für
bestimmte Ports der Speichersysteme, in welchen die Volumina implementiert werden.
Beispielsweise kann gemäß 1 jedes
der logischen Volumina 66, 77 an einem der Ports 65, 75 der
Speichersysteme 6, 7 abgebildet werden (wie durch
die eine der strichlierten Linien angezeigt ist).
-
Ein
anderes Beispiel von Informationen, die in der HLU-Spezifikation
enthalten sein können,
besteht aus einer Identifikation, welche der Ports 15, 25 der
Hostcomputer 1, 2 spezielle logische Volumina für die Hostcomputer
verfügbar
machen soll, als auch irgendwelche Sicherheitsmaßnahmen, wobei ein Zugriff
auf bestimmte Volumina des Speichers auf bestimmte Hostcomputer
beschränkt
sein kann.
-
Ein
anderes Beispiel an Information, die in der HLU-Spezifikation enthalten
sein kann, ist eine Definition der Zahl der Pfade, die in bevorzugter
Weise zwischen einem logischen Volumen und einem Hostcomputer vorhanden
sein können,
der auf dieses zugreift. Es sei in dieser Hinsicht darauf hingewiesen,
dass viele Hostcomputer eine Vielfachpfadschicht enthalten, welche
die Möglichkeit
oder Fähigkeit
bieten, dass vielfältige
unterschiedliche Pfade dazu verwendet werden können, um auf ein bestimmtes
logisches Volumen zuzugreifen. Wenn somit eine Vielfachpfad-Konfiguration
gewünscht
wird, kann diese in der HLU-Spezifikation spezifiziert sein.
-
Es
sei darauf hingewiesen, dass die oben aufgeführten Gesichtspunkte lediglich
zur Veranschaulichung gewählt
wurden und nicht erschöpfend sind,
da viele Typen von Charakteristika der Verbindung von einem Computersystem
in der HLU-Spezifikation enthalten sein kann.
-
Es
sei erwähnt,
dass die Erstellungsanfrage dazu verwendet werden kann, um ein Computersystem,
welches bereits eine vorhandene Konfiguration aufweist, neu zu konfigurieren.
Beispielsweise können
bereits physikalische Verbindungen zwischen Hostcomputern, Netzwerkkomponenten
und Speichersystemen existieren. Wie oben dargelegt wurde, und zwar
in Verbindung mit der Speichervorrichtungsspezifikation, können bei
einer Ausführungsform
der vorliegenden Erfindung bestimmte Elemente, die durch die HLU-Spezifikation
spezifiziert werden, als Vorzüge
vorgesehen werden und nicht als absolute Anforderungen. Bei dieser
Ausführungsform
kann ein Anwender eine bevorzugte Eigenschaft ausdrücken, und
zwar für
die Verwendung von Aspekten eines existierenden Computersystems bzw.
Computersystemkonfiguration, indem er eine Toleranz für verschiedene
Rekonfigurationsoperationen spezifiziert, die ausgeführt werden
sollen, um die gewünschte
Konfiguration zu erreichen, die in der HLU-Spezifikation dargestellt
ist. Beispielsweise können
bei einer existierenden Konfiguration ein Volumen oder können mehrere
logische Volumina an bestimmten Speichersystemports abgebildet werden und
können
auch für
einen Zugriff durch bestimmte Hostcomputer eingeschränkt werden.
Es sei darauf hingewiesen, dass der Prozess der Abbildung eines logischen
Volumens an einem Port zeitaufwändig sein
kann, wie auch der Prozess für
eine Einschränkung
eines bestimmten logischen Volumens für den Zugriff durch einen bestimmten
Hostcomputer. Somit kann gemäß einer
Ausführungsform
der vorliegenden Erfindung die HLU-Spezifikation eine Toleranz für eine Neuabbildung
und/oder Neueingrenzung der existierenden Computersystemkonfiguration
angeben, um die gewünschte
HLU-Spezifikation zu erfüllen.
-
Die
Toleranzvergabe kann einen Bereich von Optionen liefern, und zwar
für den
automatischen Erstellungsprozess. Wenn beispielsweise die HLU-Spezifikation
eine niedrige (oder keine) Toleranz für eine Neuabbildung und/oder
Neueinschränkung
angibt, führt
der automatische Erstellungsprozess lediglich zum Erstellen von
Volumina, die bereits vorabgebildet sind und/oder voreingegrenzt
sind, und zwar in einer Weise, welche die HLU-Spezifikation befriedigt.
Wenn die HLU-Spezifikation nicht erfüllt werden kann, und zwar bei
Verwendung der vorabgebildeten und/oder voreingegrenzten logischen
Volumina, dann schlägt
die Erstellungsanfrage fehl. Wenn alternativ die HLU-Spezifikation
eine hohe Toleranz für
die Wiederabbildung und/oder Wiedereingrenzung angibt, kann der
automatische Erstellungsprozess versuchen, die HLU-Spezifikation
zu befriedigen, und zwar unter Verwendung der vorabgebildeten und/oder
voreingegrenzten logischen Volumina, wenn er jedoch unfähig ist,
dies durchzuführen,
kann er Schritte unternehmen (die in einer noch weiter unten zu
erläuternden
Weise implementiert werden), um die logischen Volumina neu abzubilden
und/oder neu einzugrenzen, und zwar dort, wo es erforderlich oder
wünschenswert
ist, um die HLU-Spezi fikation zu erfüllen. Wie oben erläutert ist,
kann eine Konfigurationszeit anfallen, um die Wiederabbildung und/oder Wiedereingrenzung
durchzuführen,
so dass der Fragesteller dies in Betracht ziehen kann, wenn er die Toleranzen
für diese
Operationen festlegt, wie sie in der HLU-Spezifikation ausgedrückt sind.
-
C. Hostspezifikation
-
Die
Hostspezifikation einer Erstellungsanfrage, die in dem Block 214 (3)
erzeugt wird, definiert die Wege, gemäß welchen logische Volumina für die Hostcomputer 1, 2 (1)
verfügbar
gemacht werden und durch die Hostcomputer verwendet werden. Bei
dem Beispiel nach 1 wird jedes der logischen Volumina,
welches dem Hostcomputer 1 angeboten wird, dazu verwendet,
um den Speicherraum für
ein Dateisystem 16 zu liefern, und es wird jedes der logischen
Volumina, die dem Hostcomputer 2 angeboten werden, in ähnlicher
Weise dazu verwendet, um Speicherraum für das Dateisystem 26 vorzusehen.
Es sei darauf hingewiesen, dass ein Hostcomputer logische Volumina
in zahlreichen Wegen verwenden kann, und zwar inklusive der Verwendung
von logischen Volumina, um einen Speicher für einen logischen Volumenmanager
(LVM) ein Datenbank-Managementsystem vorzusehen oder um einen direkten
Zugriff auf grobe logische Volumina zu erreichen. Die vorliegende
Erfindung ist nicht auf irgendeinen Weg eingeschränkt, gemäß welchem Hostcomputer
Verwendung von logischen Volumina vornehmen, die diesen angeboten
werden, und die Hostspezifikation kann irgendeine gewünschte Verwendung
für diese
logischen Volumina für
die Hostcomputer in dem Computersystem definieren.
-
2. Erzeugung der Erstellungsanfrage
-
Die
Erstellungsanfrage kann auf irgendeinen von zahlreichen Wegen erzeugt
werden, so dass die vorliegende Erfindung nicht auf irgendeine spezielle Erzeugungstechnik
eingeschränkt
ist. Das Erzeugen der Erstellungsanfrage kann vollständig manuell
erfolgen (z. B. durch einen Systemadministrator, der dabei versucht,
die gewünschte
Konfiguration für
ein Computersystem in der oben erläuterten Weise zu definieren)
oder kann alternativ in einer im Wesentlichen vollständig automatisierten
Weise erzeugt werden, indem eine Umkehrtechnik in Verbindung mit
einer momentanen Computersystemkonfiguration realisiert wird, die
verdoppelt werden soll. Es kann wünschenswert sein, eine existierende
Computersystemkonfiguration aus zahlreichen Gründen zu verdoppeln. Eine bestimmte
Anwendung, bei der die Verdoppelung wünschenswert ist, besteht dann,
wenn eine Datenmigration von einem Speichersystem zu einem anderen
durchgeführt
wird. Es kann beispielsweise gewünscht
werden, einen gesamten logisch bezogenen Satz an Daten (z. B. ein
Dateisystem, eine LVM oder eine Datenbank) von einem Speichersystem
in ein anderes aus irgendeinem Grund von zahlreichen Gründen zu
bewegen, so als ob das existierende Speichersystem hinsichtlich
seiner Kapazität
und/oder Performance eingeschränkt
ist.
-
Es
sei darauf hingewiesen, dass dann, wenn die Erstellungsanfrage von
Hand erzeugt wird, diese in irgendeiner gewünschten Weise erzeugt werden kann.
Beispielsweise kann ein Systemadministrator einfach Daten in irgendeinen
Computer in einer Form eingeben, die lesbar ist, und zwar durch
den automatischen Erstellungsprozess (oder in eine Form konvertierbar
ist, die durch den automatischen Erstellungsprozess lesbar ist),
so dass die Erstellungsanfrage in den automatisierten Erstellungsprozess
eingespeist werden kann.
-
Eine
Umkehrtechnik (reverse engineering) (auch hier als Quellenerforschung
bezeichnet) in Verbindung mit einer existierenden Computersystemkonfiguration
kann auf irgendeine von zahlreichen Weisen durchgeführt werden,
um ein Modell für
eine neue Erstellungsanfrage zu liefern, so dass die vorliegende
Erfindung nicht auf irgendeine spezielle Implementierungstechnik
begrenzt ist. Wie oben erläutert
wurde, enthalten einige Computersystemkonfigurationen Managementressourcen,
die dafür
herangezogen werden können,
um Informationen über
die Konfiguration des Computersystems zu sammeln. Ein Beispiel solch
eines Managementwerkzeuges ist die ControlCenter/Open Edition Suite
von Softwareprodukten, die von der EMC Corporation bezogen werden
können
(im Folgenden ECC-Managementwerkzeug bezeichnet). Das ECC-Managementwerkzeug
ermöglicht
es einem Anwender, die Konfigurationsspezifikationen einer Computersysteminfrastruktur
anzusehen. Das ECC-Managementwerkzeug verwendet eine Anzahl von
Mitteln, die über
das Computersystem verteilt sind (z. B. auf den Hosts, den Speichersystemen
und den Netzwerkkomponenten), die Anwendungsprogrammierschnittstellen
(APIs) verwenden, um mit einem zentralen Managementmittel (agent)
zu kommunizieren, welches Informationen sammelt, und diese in einen
Datensatz kompiliert (z. B. einer Datenbank), der eine Beschreibung
der Infrastruktur des Computersystems liefert. Bei einer Ausführungsform
der vorliegenden Erfindung kann die Quellenerforschung einer Systemkonfiguration durch
Ausnutzung des ECC-Managementwerkzeugs durchgeführt werden, um die gewünschten
Informationen über
die Konfiguration eines existierenden Computersystems zu liefern,
welches durch das ECC-Managementwerkzeug
gemanagt wird. Bei einer Ausführungsform
der vorliegenden Erfindung kann der automatisierte Erstellungsprozess
als Teil des ECC-Managementwerkzeugs implementiert werden, und zwar
in solcher Weise, dass der Quellenerforschungsschritt automatisch
im Ansprechen auf eine Anwenderanfrage ausgeführt werden kann, wobei der
Anwender das Erstellen eines neuen Computersystems anfragt, basierend
auf einem existierenden System. Bei einer Ausführungsform kann die vorliegende
Erfindung, wie sie hier beschrieben wird, die Datenbank heranziehen,
die durch das ECC-Managementwerkzeug bewahrt wird, um die nötigen Informationen
zu extrahieren, die zur Realisierung einer Erstellungsanfrage wünschenswert
sind, um diese dem automatisierten Erstellungsprozess in einer Weise
zuzuleiten, wie sie im Folgenden noch erläutert wird.
-
Es
sei darauf hingewiesen, dass die Ausführungsform der vorliegenden
Erfindung, die auf einer Umkehrtechnik der Quellenerforschung eines
existierenden Computersystems basiert, nicht auf die Verwendung
des ECC-Managementwerkzeugs beschränkt ist, da zahlreiche andere
Techniken ebenfalls angewendet werden können. Beispielsweise kann,
wenn ein Computersystem einen anderen Typ eines Managementsystems
aufweist, welches diesem zugeordnet ist, welches einen Datensatz
enthält,
der die gewünschten
Informationen aufweist, welche die Infrastruktur des Computersystems
betreffen, können
die Informationen von diesem Managementwerkzeug gesammelt werden.
Wenn alternativ kein zentralisiertes Managementwerkzeug existiert,
welches die relevanten Informationen gesammelt enthält, die
die Infrastruktur des Computersystems betreffen, können zahlreiche
andere oder abweichende Werkzeuge dazu verwendet werden, um die
Konfigurationsinformationen zu sammeln, und zwar getrennt von den
verschiedenen Komponenten in dem Computersystem. Beispielsweise
werden im Folgenden einige Netzwerkkomponenten und Speichersysteme,
die APIs liefern, welche die Möglichkeit bieten,
dass die Komponente angefordert werden kann und welche Konfigurationsinformationen
des gewünschten
Typs liefern, um die automatische Erstellungsanfrage zu realisieren,
um folgenden beschrieben. Ferner sind auch Werkzeuge verfügbar, wie
beispielsweise diejenigen, die über
die WideSky Storage Management Facility (mit einer EMC-Symm-API-Mapper-Anwendungsprogrammierschnittstelle)
von der EMC Corporation verfügbar sind,
und können
eingesetzt werden, welche die Erforschung der Konfigurationsinformationen
innerhalb eines Hosts ermöglichen,
und zwar in solcher Weise, welche logischen Volumina als Speicherressourcen für verschiedene
Komponenten an dem Host zugeordnet sind (z. B. ein Dateisystem,
LVM oder Datenbank). Kurz gesagt, kann irgendeines einer Anzahl von
Werkzeugen dazu verwendet werden, um die gewünschten Informationen von Komponenten
des Computersystems zu sammeln, um ein Modell für eine neue Erstellungsanfrage
zu liefern, wobei die vorliegende Erfindung nicht auf irgendeine
spezielle Implementierungstechnik beschränkt ist.
-
Wie
oben erläutert
wurde, kann bei einer Ausführungsform
der vorliegenden Erfindung, die bei Computersystemen verwendet wird,
bei denen Managementtechniken angewendet werden, um Speicherressourcen
mit gemeinsamen Eigenschaften in einem Pool zusammenzufassen, der
Quellenerforschungsprozess einen Suchvorgang durchführen, um
zu identifizieren, ob vielfältige
Speicherressourcen in dem existierenden Computersystem, welches rückwärts behandelt
oder abgewickelt wird, zu bestimmten Speicherpools gehören, und,
wenn dies der Fall ist, können
diese Informationen dann zu der Erstellungsanfrage geliefert werden,
die durch den Quellenerforschungsprozess automatisch generiert wird.
Obwohl dies vorteilhaft ist, sei darauf hingewiesen, dass die vorliegende
Erfindung in dieser Hinsicht nicht eingeschränkt ist, da der Aspekt der
vorliegenden Erfindung, welche das automatische Durchführen einer
Quellenerforschung betrifft, nicht darauf beschränkt ist, die Verwendung von
irgendwelchen Speicherpools zu identifizieren.
-
Nach
der Quellenerforschung kann es bei einigen Umständen für einen Systemadministrator wünschenswert
sein, eine Definition der Computersystemkonfiguration zu modifizieren,
und zwar vor der Übertragung
derselben als Erstellungsanfrage an den automatisierten Erstellungsprozess.
Diese Modifikationen können
von irgendeinem Typ sein, da es vielfältige Umstände gibt, bei denen es wünschenswert
ist, eine neue Computersystemkonfiguration zu modellieren, und zwar
basierend auf einer existierenden Konfiguration, jedoch mit Modifikationen
verschiedener Typen. Somit ist die vorliegende Erfindung nicht auf
die Art und Weise beschränkt,
in welcher die Definition einer Computersystemkonfiguration modifiziert
werden kann, um die Erstellungsanfrage zu erzeugen. Bei einem veranschaulichenden Beispiel,
welches weiter oben erläutert
wurde, kann es wünschenswert
sein, einen Datensatz von einem Speichersystem auf ein anderes zu
bewegen, so dass die Modifikationen für die Definition der Computersystemausgabe
von dem automatischen Quellenerforschungsprozess einfach das Modifizieren
der einzigartigen Identifizierer der Speichersysteme involviert
(oder eines singulären
Speichersystems), in welchem die logischen Volumina gespeichert
sind, welche den Datensatz gespeichert enthalten, zumal der Rest
des Computersystems exakt nachgebildet werden kann.
-
Ein
anderes Beispiel, bei dem es wünschenswert
ist, eine Definition einer Computersystemkonfiguration zu modifizieren,
und zwar vor der Übertragung
derselben als Erstellungsanfrage, betrifft das Erweitern eines Dateisystems.
Bei solch einem Umstand kann ein Systemadministrator es wünschenswert
finden, das Dateisystem zu erweitern, und zwar unter Verwendung
von existierenden Speicherressourcen (z. B. Speicherressourcen,
die an dem gleichen Speichersystem vorgesehen sind, welches eine
gleiche RAID-Ebene eines Schutzes usw. aufweist). Somit kann gemäß einer
Ausführungsform der
vorliegenden Erfindung ein Systemadministrator, der versucht, ein
Dateisystem zu erweitern, eine Quellenerforschung an dem existierenden
System durchführen,
um die relevanten Charakteristika der Speicherressourcen, die dafür verwendet
werden, zu identifizieren, und kann die Ausgabe aus dem automatischen
Quellenerforschungsprozess identifizieren, um ein erweitertes Dateisystem
zu definieren, welches damit konsistent ist.
-
3. Automatischer Erstellungsprozess
-
Nach
dem die Erstellungsanfrage erzeugt worden ist (automatisch, von
Hand oder vermittels einer Kombination daraus), dient bei einer
Ausführungsform
der Erstellungsanfrage als eine Eingabegröße in einen automatischen Erstellungsprozess, der
automatisch ein Computersystem erstellt, um die Definition zu befriedigen,
die in der Anfrage enthalten ist. Gemäß der Ausführungsform der vorliegenden Erfindung,
die in 2 dargestellt ist, enthält der automatische Erstellungsprozess
drei primäre
Aktionen: die Ressourcenauswahl, Transaktionserzeugung und Transaktionsausführung. Die
Ressourceauswahl involviert das Identifizieren und Auswählen von
Ressourcen (wie beispielsweise Speichersysteme, Verbindungskomponenten
und Hostcomputerressourcen), um die Erstellungsanfrage zu erfüllen. Die
Transaktionserzeugung involviert das Erzeugen eines Programms oder
eines log von Befehlen, die dann, wenn sie ausgeführt werden,
die Konfigurationsaktionen durchführen, die das Computersystem konfigurieren,
wie es in der Erstellungsanfrage definiert ist. Die Transaktionsausführung involviert
das aktuelle Ausführen
der Aktionen, um das Computersystem zu konfigurieren. Jeder dieser
Abschnitte des automatischen Erstellungsprozesses wird weiter unten
in größeren Einzelheiten
erläutert.
-
A. Ressourcenauswahl
-
Gemäß 3 wird
bei der Aktion 110 eine Ressourcenauswahl vorgenommen.
Die Ressourcen können
beispielsweise einen oder mehrere Hostcomputer, Speichersysteme,
Netzwerkkomponenten und logische Volumina enthalten. Die Ressource
werden so ausgewählt,
um die Spezifikationen zu erfüllen, die
in der Erstellungsanfrage aufgeführt
sind.
-
Die
Identifikation der Ressourcen, die zum Erfüllen der Erstellungsanfrage
verfügbar
sind, kann auf irgendeinen von zahlreichen Wegen durchgeführt werden,
so dass die vorliegende Erfindung nicht auf irgendeine spezielle
Implementierungstechnik begrenzt ist. Gemäß einer Ausführungsform
der vorliegenden Erfindung kann für die Verwendung in einem System,
welches ein Managementsystem enthält, wie beispielsweise das
ECC-Managementwerkzeug, welches oben erläutert wurde, das Managementwerkzeug
(z. B. dessen Datenbank) dafür
herangezogen werden, um die Ressourcen zu erforschen, die für die Auswahl
verfügbar
sind, um die Erstellungsanfrage zu erfüllen. Gemäß der Ausführungsform der Erfindung, bei
der der automatische Erstellungsprozess innerhalb des ECC-Managementwerkzeugs
implementiert wird, kann der Ressourcenauswählprozess beispielsweise dadurch
ausgeführt
werden, indem Anfragen an die Datenbank ausgegeben werden, um die
gewünschten
Informationen aufzufinden.
-
Bei
der Ausführungsform
der vorliegenden Erfindung, bei der eine Datenbank vorgesehen ist, welche
Informationen speichert, welche die verfügbaren Ressourcen betreffen,
können
die Fähigkeiten der
Datenbank (z. B. die Ausführung
von SQL-Anfragen und die Verwendung von Datenbankansichten) dazu
verwendet werden, um den Ressourcenauswählprozess zu optimieren und
zu beschleunigen. Beispielsweise kann die Datenbank Informationen hinsichtlich
aller physikalischen Elemente gespeichert enthalten (z. B. Platten,
Verbindungsausrüstung)
und über
alle logischen Elemente (z. B. LUNs) in dem Computersystem. Eine
oder mehrere Datenbank-"Ansichten" können implementiert
sein, um Abschnitte der Datenbank (die durch die Ansicht definiert
sind) im Voraus auszuwählen,
gegenüber
welchen die Anfragen ausgeführt
werden können,
um die Ausführung
der Anfragen einfacher und effizienter zu gestalten. Beispielsweise
kann eine Datenbankansicht (view) dazu verwendet werden, um Elemente
vorauszuwählen,
die an früherer
Stelle physikalische Kommunikationsverbindungen erstellt haben,
so dass eine Anfrage lediglich aus diesem untergeordneten Satz eine
Auswahl vornimmt. Eine Datenbankansicht kann alternativ oder auch
zusätzlich dazu
verwendet werden, um Speicherelemente im Voraus auszuwählen, welche
andere Eigenschaften besitzen (z. B. eingegrenzte oder eingeschränkte Speicherelemente
oder Elemente, die zu einem Speicherpool gehören).
-
Es
sei darauf hingewiesen, dass der Ressourcenauswählaspekt der Erfindung nicht
auf die Verwendung von Datenbankansichten oder dynamisch erzeugten
SQL-Anfragen beschränkt
ist, die gegenüber
einer in Betracht stehenden Datenbank ausgeführt werden, da irgendwelche
geeigneten Techniken zum Sammeln der gewünschten Informationen angewendet
werden können.
Beispielsweise kann die automatisierte Ressourcenauswahl dadurch realisiert
werden, indem irgendeine einer Anzahl von programmatischen Techniken
angewendet wird (z. B. durch ein Übersetzungsauswählkriterium
in einer Reihe von Parametern, um als Eingangsgröße für eines oder mehrere Computerprogramme
zu dienen, die gegenüber
einem oder mehreren Datensätzen ausgeführt werden,
oder auf der Grundlage irgendeiner einer Unzahl von anderen Automatisierungstechniken).
Es können
Von-Hand-Techniken ebenso eingesetzt werden als auch Kombinationen
aus automatisierten und von Hand vorgenommene Techniken.
-
In
Computersystemen, bei denen ein zentrales Managementwerkzeug mit
einer existierenden Datenbank der Ressourcen, die in dem Computersystem
enthalten sind, nicht verfügbar
ist bzw. angefragt werden kann, können andere Techniken eingesetzt
werden, um die Ressourcen zu erforschen, die verfügbar sind,
um die Erstellungsanfrage zu erfüllen.
Wenn beispielsweise ein Managementwerkzeug existiert, welches eine
zentralisierte API liefert, bei der angefragt werden kann, um die
Ressourcen des Computersystems zu erforschen (z. B. Hostcomputer,
Netzwerkkomponenten und Speichersysteme), kann solch eine zentralisierte
API dazu verwendet werden, um die Ressourcenerforschung und den Auswählprozess
durchzuführen.
Wenn solch ein zentralisiertes Managementwerkzeug nicht zur Verfügung steht,
besitzen die meisten Computersystemkomponenten ihre eigenen APIs,
die verfügbar
sind und bei denen angefragt werden kann, um Informationen hinsichtlich
der Komponente zu sammeln, wie beispielsweise um welchen Typ einer
Komponente es sich handelt, die Zahl der verfügbaren Ports usw.
-
Gemäß der in 6 dargestellten
Ausführungsform
wird der Ressourcenauswählprozess
in drei Grundaktionen 610, 620, 630 ausgeführt, die
als hierarchische Schichten betrachtet werden können, wobei die Aktion 610 an
der niedrigsten Schicht gelegen ist und die Aktion 630 an
der höchsten
Schicht gelegen ist.
-
Bei
der Aktion 610 werden Speicherelemente ausgewählt, um
das Niedrig-Ebenen-Kriterium zu befriedigen, welches in dem Speicherelementdeskriptor
spezifiziert ist, wie beispielsweise die Zahl der Speicherelemente
(z. B. logische Volumina), die Größe der Speicherelemente, irgendwelche
speziellen Anforderungen für
die physikalischen Speichervorrichtungen für die Speicherelemente usw.
Wie noch weiter unten erläutert
wird, werden einige Anforderungen gemäß einer höheren Ebene oder Schicht, die
eine logische Interaktion von vielfachen Speicherelementen betreffen,
in der mittleren Schicht der Hierarchie bei der Aktion 620 durchgeführt.
-
Wie
oben dargelegt wurde, wird bei der Aktion 610 versucht,
Ressourcen auszuwählen,
um das Kriterium zu befriedigen, welches dafür zuständig ist. Gemäß einer
Ausführungsform
der vorliegenden Erfindung inkorporieren während eines anfänglichen Durchlaufes
des Ressourcenauswählprozesses
von 6 die Kriterien, die bei der Aktion 610 vorgesehen
werden, strikte Einschränkungen,
die in dem Speicherelementdeskriptor spezifiziert sind. Wenn beispielsweise
eine Erstellungsanfrage eine gewisse Toleranz für eine Neueingrenzung von Vorrichtungen angibt,
wird bei einer Ausführungsform
der vorliegenden Erfindung während
eines ersten Durchgangs des Ressourcenauswählprozesses von 6 die
Aktion 610 gestartet mit dem Versuch, Ressourcen auszuwählen, um
alle Kriterien zu erfüllen,
und zwar inklusive der Verwendung von lediglich eingegrenzten oder
eingeschränkten
Vorrichtungen. Gemäß einer Ausführungsform
der vorliegenden Erfindung wird bei der Aktion 610 versucht,
alle die Ressourcen zu suchen, welche den Speicherelementdeskriptor
befriedigen, und es werden Abgrenzungen oder Zwischenwände bei
den Speicherressourcen erzeugt, wobei jede Abgrenzung (partition)
Speicherelemente enthält,
die im Wesentlichen identisch für
relevante Charakteristika sind, die in dem Speicherelementdeskriptor
spezifiziert sind. Somit kann jede der Speicherressourcen innerhalb
einer bestimmten Abgrenzung (partition) so betrachtet werden, dass
sie in Ausdrücken
der Befriedigung des Speicherelementdeskriptors austauschbar ist,
da diese die relevanten gemeinsamen Eigenschaften teilen. Indem
alle die verfügbaren
Ressourcen ausgewählt
werden, die potentiell dazu verwendet werden können, um den Speicherelementdeskriptor
zu befriedigen, wird die Wahrscheinlichkeit in Verbindung mit der
mittleren Schicht oder Ebene der Hierarchie bei der Aktion 620 beim
Auffinden von kompatiblen Ressourcen, zum Befriedigen der Kriterien
der höheren
Ebene oder Schicht maximiert. Obwohl dies vorteilhaft ist, sei darauf
hingewiesen, dass die vorliegende Erfindung in dieser Hinsicht nicht
eingeschränkt
ist und dass anstelle der Identifizierung von allen Speicherressourcen,
die zum Befriedigen des Speicherelementdeskriptors bei der Aktion 610 verwendet
werden können,
ein untergeordneter Satz identifiziert werden kann (z. B. lediglich
die minimale Zahl kann identifiziert werden) und dann können zusätzliche
Iterationen in einer Weise durchgeführt werden, ähnlich derjenigen,
die weiter unten erläutert
wird.
-
Nach
der Vervollständigung
der Aktion 610 verläuft
der Prozess zu der Aktion 615, bei der eine Bestimmung
durchgeführt
wird, ob die Ressourcen ausgewählt
worden sind, welche alle Niedrig-Ebenen-Anforderungen erfüllen, die
in dem Speicherelementdeskriptor spezifiziert sind. Wenn alle die
Anforderungen erfüllt
worden sind, verläuft
der Prozess zu der Aktion 620, bei der Höher-Ebenen-Anforderungen,
welche eine logische Zuordnung der Vielfach-Speicherelemente betreffen,
in einer Weise in Betracht gezogen werden, wie sie weiter unten
erläutert
wird. Wenn alternativ bei der Aktion 615 bestimmt wird,
dass ausreichende Ressourcen nicht ausgewählt werden konnten, um die
Niedrig-Ebenen-Anforderungen des Speicherelementdeskriptors zu befriedigen,
verläuft
der Prozess zu der Aktion 627, bei der eine Bestimmung
getroffen wird, ob die Kriterien für den Speicherelementdeskriptor
modifiziert werden können
oder erleichtert werden können.
Wenn dies nicht der Fall ist, verläuft der Prozess zu der Aktion 629,
bei der eine Fehlermeldung zurückgeleitet
wird, die angibt, dass die Erstellungsanfrage nicht in der spezifizierten
Weise befriedigt werden kann. An dieser Stelle kann dann ein Systemadministrator
bewerten, ob die Erstellungsanfrage modifiziert werden soll (z.
B. durch Erleichterung bzw. Vergrößerung der Toleranzen, Reduzieren
der Größe des angefragten Speichers,
reduzieren der Performanceeigenschaften usw.).
-
Wenn
bei der Aktion 627 bestimmt wird, dass eine Modifikation
der Anfrage möglich
ist, die stattfinden kann, wenn die Toleranzen so spezifiziert werden,
dass sie einen gewissen Raum für
eine Flexibilität
liefern, verläuft
der Prozess zu der Aktion 630, bei der die Kriterien für den Speicherelementdeskriptor
modifiziert werden, wobei dann die modifizierten Kriterien zu der
Aktion 610 zurückgeleitet
werden, um zu bestimmen, ob ausreichend Ressourcen vorgesehen werden
können,
um die modifizierten Kriterien zu erfüllen. Ein Beispiel der Art
und Weise, mit welcher die Kriterien für den Speicherelementdeskriptor
modifiziert werden können,
betrifft die Toleranzen. Wie weiter oben erläutert wurde, werden gemäß einer Ausführungsform
der vorliegenden Erfindung während
des ersten Durchlaufs durch den Ressourcenauswählprozess die striktesten Einschränkungen
angewendet, so dass, wenn dies überhaupt
möglich
ist, das System so konfiguriert werden kann, um die bevorzugten
Merkmale zu erfüllen,
die in der Erstellungsanfrage spezifiziert sind. Wenn jedoch die
Erstellungsanfrage ein bevorzugtes Merkmal für eine bestimmte Eigenschaft
angibt, jedoch eine Toleranz dafür
nicht erfüllt
werden kann, kann bei der Aktion 630, welche die oberste
Schicht in der Hierarchie, die oben erläutert wurde, bildet, erleichtert
werden, und zwar um einen oder mehrere Einschränkungen innerhalb der Bänder der
Toleranzen, die in der Erstellungsanfrage spezifiziert sind, und
es kann die Anfrage erneut an die niedrigeren Schichten in der Hierarchie übertragen
werden, um zu bestimmen, ob ein System konfiguriert werden kann,
welches die erleichterten Einschränkungen befriedigen kann. Es
sei in dieser Hinsicht darauf hingewiesen, dass durch Reduzieren
bestimmter Einschränkungen
vor der Rückübergabe
der Kriterien an die Aktion 610 die Möglichkeit gegeben ist, dass
eine größere Zahl
von Speicherressourcen gefunden werden kann, die die neuerlich erleichterten
Kriterien erfüllen
können.
-
Es
sei darauf hingewiesen, dass die vorliegende Erfindung nicht auf
die Art und Weise beschränkt
ist, mit welcher die oberste Schicht in der Hierarchie (durch die
Aktion 630 implementiert) die Einschränkungen erleichtert, da zahlreiche
Implementierungen möglich
sind. Beispielsweise kann die Aktion 630 dadurch beginnen,
indem zu Beginn die Einschränkungen
erleichtert werden, für
welche die Speichererstellungsanfrage die höchste Toleranz für solch
eine Erleichterung angibt.
-
Wenn,
wie oben erläutert
ist, bei der Aktion 615 bestimmt wird, dass ausreichend
Ressourcen identifiziert wurden, um die Niedrig-Ebenen-Anforderungen
für die
Speicherelemente bei der Aktion 610 zu befriedigen, verläuft der
Prozess zu der Aktion 620, welche die zweite Schicht in
der Hierarchie implementiert, um zu bestimmen, ob bestimmte Kriterien,
welche die logische Beziehung zwischen zwei oder mehreren Speicherelementen
betreffen, erfüllt werden
können,
und zwar unter Verwendung der Ressourcen, die bei der Aktion 610 ausgewählt wurden.
Es gibt zahlreiche Typen von Einschränkungen, die in dem Speicherelementdeskriptor
spezifiziert sein können
und bei der Aktion 620 in Betracht gezogen werden können. Beispiele
umfassen Spiegelungsbeziehungen bzw. einen örtlichen oder einen Fernspiegel.
Es ist beispielsweise für
einen Snap-Shot-Spiegel wünschenswert,
zwei Speicherressourcen mit der gleichen Größe und Typ zur Verfügung zu
haben, die an dem gleichen physikalischen Speichersystem vorhanden
sind bzw. gespeichert sind, und es ist für einen Fernspiegel wünschenswert,
zwei Speichervolumina mit der gleichen Größe zur Verfügung zu haben, die an unterschiedlichen Speichersystemen
gelegen sind. Dies ist lediglich ein Beispiel der Zwischenbeziehung
zwischen zwei oder mehreren Speicherelementen, die bei der Aktion 620 in
Betracht gezogen werden können,
da es zahlreiche andere Möglichkeiten
gibt.
-
Es
sei darauf hingewiesen, dass gemäß einer
Ausführungsform
der vorliegenden Erfindung dann, wenn geeignete Kapazitäten durch
die Hardware in dem Computersystem vorgesehen werden, bestimmte
Funktionen, die ansonsten als Funktionen einer hohen Ebene betrachtet
werden, bei einer niedrigeren Ebene bei der Aktion 610 implementiert
werden können.
Wenn beispielsweise das Computersystem intelligente Speichersysteme
enthält,
welche die Fähigkeit
haben, hardwaregespiegelte Vorrichtungen zu liefern, kann eine Anfrage
nach einer gespiegelten Konfiguration in dem Speicherelementdeskriptor
bei einer Ausführungsform
der vorliegenden Erfindung auf der niedrigsten Ebene bei der Aktion 610 erfüllt werden.
Damit können
die Partitionen, die dadurch erzeugt werden, gespiegelte Sätze von
Vorrichtungen enthalten, derart, dass diese logische Beziehung nicht
bei der höheren
Ebene bei der Aktion 620 adressiert zu werden braucht.
Es sei natürlich
auch darauf hingewiesen, dass die vorliegende Erfindung in dieser
Hinsicht nicht eingeschränkt
ist und dass Spiegelbeziehungen auch alternativ auf der höheren Ebene
bei der Aktion 620 adressiert werden können.
-
Es
sei ferner darauf hingewiesen, dass die Spiegelungsfunktion lediglich
ein Beispiel der Fähigkeit
darstellt, die durch die Hardware in dem Computersystem vorgesehen
werden kann und auf der niedrigsten Ebene bei der Aktion 610 implementiert
werden kann.
-
Bei
einer Ausführungsform
wird bei der Aktion 620 versucht, den Speicherelementdeskriptor
zu befriedigen, indem spezifische Speicherressourcen unter den Partitionen
identifiziert werden, die durch die Aktion 610 geliefert
werden. Nachdem Kriterien der höheren
Ebene bei der Aktion 620 bewertet worden sind, verläuft der
Prozess dann zu der Aktion 629, bei der eine Bestimmung
vorgenommen wird, ob die Kriterien der höheren Ebene, die in dem Speicherelementdeskriptor
spezifiziert sind, erfüllt
werden können.
Wenn dies der Fall ist, werden spezifische Speicherressourcen, die
zum Implementieren des gewünschten
Computersystems verwendet werden, bei der Aktion 620 identifiziert
und der Prozess wird dann beendet.
-
Wenn
alternativ bei der Aktion 629 bestimmt wird, dass die bei
der Aktion 610 ausgewählten
Ressourcen nicht ausreichend sind, um die Kriterien der höheren Ebene
erfüllen
zu können,
verläuft
der Prozess zu der Aktion 629, bei der eine Bestimmung
vorgenommen wird, ob die Auswahlkriterien erleichtert werden können, und
zwar in der weiter oben erläuterten
Weise.
-
Es
sei in Verbindung mit der vorangegangenen Beschreibung darauf hingewiesen,
dass der in 6 veranschaulichte Prozess außer einem
iterativen Prozess bestehen kann, wobei zuerst Versuche unternommen
werden, um den Speicherelementdeskriptor mit den höchstmöglichen
Einschränkungen
zu befriedigen und wobei dann diese Einschränkungen erleichtert werden
können,
und zwar unter der Steuerung der höchsten Ebene oder höchsten Schicht
in der Hierarchie (implementiert bei der Aktion 630), und zwar über eine
oder mehrere zusätzliche
Iterationen des Prozesses, bis der Speicherelementdeskriptor befriedigt
wird oder bis eine Bestimmung vorgenommen wird, dass ausreichend
Ressourcen nicht verfügbar
sind, um den Speicherelementdeskriptor zu befriedigen.
-
Die
Erfindung ist nicht auf die Ausführung
der oben beschriebenen Aktionen in der beschriebenen Sequenz beschränkt oder überhaupt
auf irgendwelche Sequenzen eingeschränkt. Einige Ausführungsformen
können
eine Ressourcenauswahl erreichen, und zwar unter Verwendung eines
Prozesses, der eine unterschiedliche Anzahl von Aktionen aufweist als
die oben beschriebenen Aktionen, und der auch Aktionen umfaßt, die
seriell, parallel oder in Form einer Kombination aus diesen zweien
ausgeführt
werden können.
-
Um
es kurz zu sagen, kann irgendeine geeignete Technik verwendet werden,
die die Möglichkeit schafft,
eine Identifikation der Ressourcen innerhalb eines Computersystems
vorzunehmen und die Informationen liefert, die beim Bestimmen wünschenswert
sind, welche Ressourcen mit der Erstellungsanfrage in Übereinstimmung
stehen, um dabei eine Ressourcenauswahl durchzuführen, so dass die vorliegende
Erfindung nicht auf irgendeine spezielle Implementierungstechnik
eingeschränkt
ist.
-
Obwohl
all die Schritte des Erstellungsprozesses, die in 2 veranschaulicht
sind, bei einer Ausführungsform
der vorliegenden Erfindung automatisch ablaufen, sei darauf hingewiesen,
dass die vorliegende Erfindung in dieser Hinsicht nicht eingeschränkt ist
und dass einige dieser Aktionen (inklusive der Ressourcenauswählaktion)
auch eine Aktivität von
Hand enthalten können
oder auch vollständig von
Hand ausgeführt
werden können.
-
B. Transaktionserzeugung
-
Bei
der Aktion 120 wird eine Transaktion erzeugt, die eine
Reihe von Aktionen hervorruft, die dafür ausgeführt werden, um das Computersystem
in einer Weise zu kon figurieren, welche die Definition erfüllt, die
in der Erstellungsanfrage vorgesehen ist. Die Typen der Aktionen
bei der Transaktion können irgendwelche
Typen umfassen, wie sie oben erläutert wurden,
wie beispielsweise das Abbilden von logischen Volumina an verschiedenen
Ports, von denen aus sie sichtbar sind, Vorsehen von Sicherheitsmaßnahmen,
um den Zugriff, wie er in der Erstellungsanfrage spezifiziert ist,
einzuschränken,
Befehligen von Hostcomputern, um deren Ports abzutasten, um die logischen
Volumina zu erkennen, die für
die Hostcomputer über
solche Ports verfügbar
gemacht werden, Zuordnen von einem oder mehreren logischen Volumen
bzw. Volumina zu einem Dateisystem, LVM, einer Datenbank oder einer
anderen Hostcomputerressource, Konfigurieren des logischen Volumentyps (z.
B. eines Standardspeichervolumens, eines Spiegels, eines Hot-Ersatzes
usw.), Erzeugen von irgendwelchen gewünschten Spiegelkonfigurationen
usw. Die Transaktion enthält
eine Anzahl von Aktionen, inklusive Niedrig-Ebenen-Aktionen, die
dazu ausgeführt
werden, um das Computersystem physikalisch zu konfigurieren, um
die Erstellungsanfrage zu erfüllen.
-
Es
sei darauf hingewiesen, dass die präzise Natur der Aktionen, die
in der Transaktion eingebaut sind, variieren kann, abhängig von
der spezifischen Natur der Komponenten in dem Computersystem. Beispielsweise
können
Hostcomputer unterschiedliche Typen von Betriebssystemen aufweisen,
die unterschiedliche Konfigurationsaktionen unterstützen, und
auch unterschiedliche Typen von Speichersystemen und Netzwerkkomponenten,
die in ähnlicher Weise
unterschiedliche Typen von Konfigurationsaktionen unterstützen.
-
Gemäß einer
Ausführungsform
der vorliegenden Erfindung wird die Transaktion so zusammengestellt,
und zwar nicht nur in einer Weise gemäß einer groben Kraftanstrengung,
um das Endergebnis zu erreichen, wenn das Computersystem konfiguriert
wird, und zwar in einer Weise, um die Erstellungsanfrage zu befriedigen,
sondern unter Beachtung anderer Gesichtspunkte, enthaltend den Wirkungsgrad
des Konfigurationsprozesses, wenn die Transaktion ausgeführt wird.
Beispielsweise ist Zeit involviert, wenn ein Hostcomputer seine
I/O-Ports abtastet, um neue logische Volumina zu identifizieren,
die über
diese Ports verfügbar
gemacht wurden. Es ist daher bei der Konfigura tion eines Computersystems
wünschenswert,
die Zahl an Zeiten, die ein Hostcomputer zum Abtasten benötigt, zu
minimieren, und zwar in solcher Weise, dass statt der Verfügbarmachung
von logischen Volumina für
einen Host und ein Abtasten derselben zu einer Zeit erfolgt, es
auch wünschenswert
sein kann, um beispielsweise Aktionen durchzuführen, bei denen eine Vielzahl
von logischen Volumina einem verfügbaren Hostcomputer zugeordnet
werden, um dann eine einzige Abtastoperation durchzuführen, bei
der alle diese logischen Volumina identifiziert werden. Es sei darauf
hingewiesen, dass dies nur als Beispiel angeführt ist, da auch andere Situationen
existieren können,
bei denen in einer Transaktion das Planen der Sequenz von Operationen
effektiv vorgenommen wird und zu Wirkungen bei der Ausführung der
Transaktion führen können.
-
Obwohl
wünschenswert,
sei erwähnt,
dass die vorliegende Erfindung nicht darauf begrenzt ist, die Transaktion
so zu organisieren, um deren Wirksamkeit bei der Ausführungsform
zu erreichen, da nämlich
die Transaktion in einer Art erzeugt und ausgeführt werden kann, die bei der
Konfiguration des Computersystems zum Erfüllen der Erstellungsanfrage
effektiv ist.
-
Bei
einer Ausführungsform
wird während
der Erzeugung der Transaktion eine Intelligenz dafür vorgesehen,
um eine Identifizierung durchzuführen,
ob bestimmte Konfigurationsschritte erforderlich sind. Wenn beispielsweise
ein logisches Volumen bereits an einem bestimmten Port abgebildet
wurde, so ist eine Operation in der Transaktion zur Durchführung der
Abbildung nicht erforderlich.
-
Wenn
ferner gemäß einer
Ausführungsform der
vorliegenden Erfindung die Transaktion erzeugt wird, werden Sicherheitsüberprüfungen durchgeführt, um
sicherzustellen, dass Ressourcen nicht inkonsistent zugeordnet werden.
Es kann beispielsweise eine Überprüfung vorgenommen
werden, um sicherzustellen, dass ein logisches Volumen nicht in
inkonsistenter Weise einer Vielzahl von Ressourcen zugeordnet wurde,
was zu einem Datenverlust führen
würde.
-
Gemäß einer
Ausführungsform
der vorliegenden Erfindung wird eine Fähigkeit realisiert, um eine
oder mehrere der Operationen nicht auszuführen, die durch die Transaktion
realisiert werden, und zwar bei der physikalischen Konfiguration
eines Computersystems, um die Anforderungen der Erstellungsanfrage
zu erfüllen.
Es sei darauf hingewiesen, dass in dieser Hinsicht die Erstellung
eines Computersystems in einem iterativen Prozess realisiert werden
kann, wobei ein Administrator zu Beginn eine Entscheidung treffen
kann, um eine bestimmte Konfigurationsoperation durchzuführen, jedoch
danach ein unbeabsichtigtes Ergebnis feststellt und die Operation
ungeschehen machen will. Daher kann gemäß einer Ausführungsform
der vorliegenden Erfindung die gesamte Erstellungstransaktion ungeschehen gemacht
werden. Gemäß einer
anderen Ausführungsform
der vorliegenden Erfindung kann ein untergeordneter Satz von Operationen,
die während der
Transaktion durchgeführt
werden (inklusive einer Ausführungsform
bis hin zu der Ebene von jeder Operation), ungeschehen gemacht werden.
Auf diese Weise kann, nachdem die Transaktion ausgeführt worden
ist oder während
deren Ausführung,
die Transaktion zurück
abgewickelt werden, und zwar zu irgendeiner gewünschten Stelle in der Transaktion.
-
Es
sei darauf hingewiesen, dass die Ausführungsform der vorliegenden
Erfindung, welche die Fähigkeit
des Ungeschehenmachens der Transaktion vorsieht, optional realisiert
werden kann, da alle Ausführungsformen
der vorliegenden Erfindung auf diese Fähigkeit nicht eingeschränkt sind.
Es sei ferner darauf hingewiesen, dass die Fähigkeit, eine Transaktion ungeschehen
zu machen oder rückwärts abzuwickeln,
auf irgendeine von zahlreichen Wegen implementiert werden kann,
so dass die vorliegende Erfindung nicht auf irgendeine spezielle
Implementierungstechnik beschränkt
ist.
-
Gemäß einer
Ausführungsform
der vorliegenden Erfindung kann das Ungeschehenmachen-Merkmal und/oder
Rückwärtsabwickel-Merkmal
dadurch implementiert werden, indem eine Rückwärtsabwickelroutine erzeugt
wird, und zwar zum gleichen Zeitpunkt, zu welchem die Transaktion erzeugt
wird. Während
der Erzeugung der Transaktion wird somit für jede erzeugte Operation eine
parallele Operation erzeugt, um diese ungeschehen zu machen. Auf
diese Weise kann die gesamte Transaktion unge schehen gemacht werden,
indem die gesamte parallele Ungeschehenmach-Transaktion ausgeführt wird,
oder es kann die Transaktion rückwärts abgewickelt
werden, und zwar zu irgendeiner bestimmten Operation der Ausführung hin,
lediglich entsprechend den Ungeschehenmach-Operationen in der parallelen
Ungeschehenmach-Transaktion.
-
Es
sei darauf hingewiesen, dass die Natur der Operationen, die während des
Transaktionserzeugungsprozesses erzeugt werden, variieren, und zwar
abhängig
von den physikalischen Komponenten in dem Computersystem. Wie weiter
oben in Verbindung mit dem Ressourcenauswählprozess erläutert wurde,
können
zentrale Managementwerkzeuge und/oder getrennte Schnittstellen für jedes
der Computersysteme verwendet werden, um diese Ressourcen zu erforschen.
In ähnlicher
Weise kann in einigen Computersystemen ein zentrales Managementwerkzeug
vorgesehen sein, welches es einem Administrator ermöglicht,
das gesamte Systeme zu konfigurieren, indem er sich lediglich mit
dem zentralen Managementwerkzeug befaßt. Wenn das zu erstellende System
solch ein zentrales Managementwerkzeug enthält, können die Operationen, die währen des Transaktionserzeugungsprozesses
erzeugt werden, zu dem zentralen Managementwerkzeug gelenkt werden
und können
mit dem Kommunikationsprotokoll, welches darin verwendet wird, in Übereinstimmung
gelangen. Alternativ können
getrennte APIs, die durch jedes der Systemkomponenten vorgesehen
werden, dazu verwendet werden, um die Performance der gewünschten
Operationen zu liefern, die während
des Transaktionserzeugungsprozesses erzeugt werden.
-
Es
sei darauf hingewiesen, dass der Transaktionserzeugungsprozess nicht
auf die Ausführung der
Operationen von irgendeinem bestimmten Typ beschränkt ist,
da irgendwelche geeigneten Operationen verwendet werden können, die
dann, wenn sie ausgeführt
werden, die gewünschten
Konfigurationsaktionen durchführen.
-
In ähnlicher
Weise kann die Transaktion und können
die Operationen, die darin enthalten sind, irgendeine Form von zahlreichen
Formen aufweisen und können
in irgendeiner computerlesbaren Sprache oder Format geschrieben
sein.
-
Bei
den oben erläuterten
Ausführungsformen
wird eine einzelne Transaktion erzeugt, um die gesamte Erstellung
durchzuführen,
die für
ein gesamtes Computersystem gewünscht
wird. Es sei darauf hingewiesen, dass die Erfindung nicht in dieser Hinsicht
eingeschränkt
ist und dass eine Vielzahl von getrennten Aktionen alternativ erzeugt
und ausgeführt
werden können,
um Abschnitte des gewünschten
Computersystems zu erstellen.
-
C. Transaktionsausführung
-
Nachdem
bei der Aktion 120 die Transaktion erzeugt worden ist,
verläuft
der automatisierte Erstellungsprozess zu der Aktion 130,
bei der die Transaktion durchgeführt
wird. Wie oben erläutert
wurde, enthält
bei einer Ausführungsform
der vorliegenden Erfindung die Transaktion eine Reihe von Operationen in
einer computerlesbaren Form, und zwar in solcher Weise, dass die
Ausführung
derselben eine Computerausführung
gemäß einem
Softwarekode umfassen kann, welcher die gewünschten Operationen durchführt. Bei
einer Ausführungsform
der vorliegenden Erfindung können
all die Operationen, die in der Transaktion aufgeführt sind,
durch einen Server oder Hostcomputer in dem Computersystem ausgeführt werden,
welches Managementsteuerfunktionen für das Computersystem implementiert
(z. B. ein Server, der das ECC-Managementwerkzeug, welches oben erläutert wurde,
ausführt).
Es sei jedoch darauf hingewiesen, dass die vorliegende Erfindung
in dieser Hinsicht nicht eingeschränkt ist und dass die Transaktion
alternativ auf irgendeiner geeigneten Komponente innerhalb des Computersystems
ausgeführt werden
kann, inklusive Hostcomputern, einem Speichersystem, einer Netzwerkkomponente
usw., zumal irgendeine Komponente des Computersystems, die einen
Prozessor enthält,
die Fähigkeit
haben kann, die Transaktion durchzuführen. Es sei ferner darauf hingewiesen,
dass die vorliegende Erfindung nicht darauf beschränkt ist,
dass alle die Operationen in der Transaktion durch eine einzelne
Systemkomponente ausgeführt
werden, da nämlich
die Transaktion alternativ gesplittet werden kann, und zwar über eine Vielzahl
von unterschiedlichen Komponenten innerhalb des Computersystems,
von denen jede einige der Operationen der Transaktion ausführen kann.
-
Während es
gemäß der obigen
Erläuterung vorteilhaft
ist (in der Aktion 120) eine Transaktion zu erzeugen und
auszuführen
(in der Aktion 130), in der alle die Erstellungsoperationen
ausgeführt
werden, die für
ein Computersystem gewünscht
werden, ist die vorliegende Erfindung in dieser Hinsicht nicht eingeschränkt, da
eine Transaktion auch so erzeugt und ausgeführt werden kann, dass lediglich
ein untergeordneter Satz der Erstellungsoperationen für ein bestimmtes
Computersystem alternativ automatisch durchgeführt wird.
-
Gemäß einer
Ausführungsform
der vorliegenden Erfindung wird die Aktion 130 gemäß der Ausführung der
Transaktion automatisch im Ansprechen auf die Vervollständigung
der Aktion 120 durchgeführt,
bei welcher die Transaktion erzeugt wird, die dann ihrerseits automatisch
im Ansprechen auf die Vervollständigung
der Aktion 110 die Ressourcenauswahl vornimmt. Dies ist
insofern vorteilhaft als der gesamte Erstellungsprozess automatisiert
wird. Es sei jedoch darauf hingewiesen, dass all die Ausführungsformen
der vorliegenden Erfindung in dieser Hinsicht nicht eingeschränkt sind
und dass ein Einschreiten von Hand zwischen der Ressourcenauswählaktion 110 und
der Transaktions-Erzeugungsaktion 120 vorgenommen werden
kann und/oder zwischen der Transaktions-Erzeugungsaktion 120 und der
Transaktions-Ausführungsaktion 130.
Beispielsweise kann ein Systemadministrator es für wünschenswert halten, die bei
der Aktion 120 erzeugte Transaktion zu überprüfen und potentiell zu modifizieren,
und zwar vor der Ausführung
der Aktion 130. Ferner können bei einer Ausführungsform
der vorliegenden Erfindung eine oder mehrere Handoperationen in
einer Transaktion platziert werden, die ansonsten automatisch bei
der Aktion 130 ausgeführt werden.
Bei dieser Ausführungsform
kann ein Abschnitt der Transaktion automatisch ausgeführt werden,
und zwar bevor eine oder mehrere Handoperationen erreicht werden,
und es kann die automatische Ausführung ausgesetzt werden oder
mit einer Pause versehen werden, bis ein Anwender eine Handoperation
oder Handoperationen ausführt.
Nach dem Empfang der Bestätigung,
dass die Handoperation oder die Handoperationen vervollständigt worden
ist bzw. sind, kann dann die automatische Ausführung der Transaktionsschritte
wieder aufgenommen werden. Ein Beispiel eines Umstandes, bei dem
es wünschenswert
ist, einen oder mehrere von Hand realisierte Schritte einzufügen, besteht
darin, wenn Aktio nen durch einen Administrator gewünscht werden, bevor
eine Transaktion vervollständigt
werden kann. Wenn beispielsweise eine Dateisystemerweiterung automatisch
erstellt wird, kann es wünschenswert sein,
eine Anwendung zu schließen
oder neu zu starten, um das neuerlich erweiterte Dateisystem zu
erkennen.
-
Die
oben beschriebenen Ausführungsformen der
vorliegenden Erfindung können
auf irgendeine von zahlreichen Wegen implementiert werden. Beispielsweise
kann die oben erläuterte
Funktionalität unter
Verwendung von Hardware, Software oder einer Kombination aus diesen
implementiert werden. Wenn eine Implementierung als Software erfolgt, kann
der Softwarekode auf irgendeinem geeigneten Prozessor oder einer
Ansammlung von Prozessoren ausgeführt werden, ob dieser bzw.
diese nun in einem einzelnen Computer vorhanden ist oder sind oder
unter vielen Computer verteilt sind. Es sei ferner darauf hingewiesen,
dass irgendeine Komponente oder Ansammlung von Komponenten, welche
die oben beschriebenen Funktionen ausführt bzw. ausführen, gattungsmäßig als
ein oder mehrere Controller betrachtet werden kann bzw. können, der
bzw. die die oben erläuterten
Funktionen steuert bzw. steuern. Der eine oder die mehreren Controller
können
in zahlreichen Arten implementiert sein, beispielsweise mit einer
geeigneten Hardware, oder unter Verwendung von einem oder mehreren
Prozessoren, die so programmiert sind, dass sie den Mikrokode oder
die Software verwenden, um die oben erläuterten Funktionen auszuführen.
-
Es
sei in dieser Hinsicht darauf hingewiesen, dass eine Implementierung
der Ausführungsform
der vorliegenden Erfindung wenigstens ein computerlesbares Medium
umfaßt
(z. B. einen Computerspeicher, eine Diskette, eine Festplatte, ein
Band usw.), welches mit einem Computerprogramm kodiert ist (das
heißt
einer Vielzahl von Instruktionen), die dann, wenn sie auf einem
Prozessor ausgeführt
werden, die oben erläuterten
Funktionen der Ausführungsformen
der vorliegenden Erfindung durchführen. Das computerlesbare Medium
kann transportabel sein, und zwar in solcher Weise, dass das darauf
gespeicherte Programm auf irgendeinem Computersystem bzw. Computersystemressource
geladen werden kann, um die Aspekte der vorliegenden Erfindung, wie
sie hier erläutert
sind, zu implementieren. Zusätzlich
sei darauf hingewiesen, dass der Hinweis auf ein Computerprogramm,
welches dann, wenn es ausgeführt
wird, die oben erläuterten
Funktionen durchführt,
nicht auf ein Anwendungsprogramm beschränkt ist, welches auf einem
Hostcomputer läuft. Vielmehr
wird hier die Bezeichnung Computerprogramm in einer übergeordneten
Weise bzw. gattungsmäßigen Weise
verwendet, um irgendeinen Typ eines Computerkodes (z. B. Software
oder Mikrokode) zu bezeichnen, der dazu verwendet werden kann, um
einen Prozessor zu programmieren, um die oben erläuterten
Aspekte der vorliegenden Erfindung zu implementieren.
-
Obwohl
die vorliegende Erfindung unter Hinweis auf spezifische Ausführungsformen
speziell dargestellt und beschrieben wurde, stellen diese Ausführungsformen
lediglich ein Beispiel dar und es ist nicht sinnvoll, alle potentiell
möglichen
Implementierungen hier aufzuzählen.
Es ist für
Fachleute verständlich,
dass vielfältige Änderungen
in der Form und im Detail vorgenommen werden können, ohne dabei den Rahmen
der vorliegenden Erfindung zu verlassen, der in den nachfolgenden
Ansprüchen
definiert ist.