-
Urheberrechtsmitteilung/-erlaubnis
-
Ein
Teil der Offenbarung dieses Patentdokuments enthält Material, das dem Urheberrecht
unterliegt. Der Urheberrechtsinhaber hat keine Einwände gegen
die Faksimile-Reproduktion des Patentdokuments oder der Patentoffenbarung,
so wie sie in der Akte oder dem Register des Patent- und Markenamtes
enthalten ist, durch irgendjemanden, jedoch behält er sich alle wie auch immer
gearteten Urheberrechte vor. Die folgende Mitteilung gilt für die Softwarebeschreibungen/-beispiele
und die Daten, so wie sie nachfolgend und in den Zeichnungen hierzu beschrieben
sind: Copyright© 2002, Veritas Software Company,
alle Rechte vorbehalten.
-
Gebiet der Erfindung
-
Die
vorliegende Erfindung betrifft Speicherdienste und -systeme und
insbesondere Dienste und Systeme, die das Erzeugen eingefrorener
Bilder und/oder Speicheraufteilungen in einer Shared Storage-Umgebung
unterstützen.
-
Hintergrundinformation
-
Speichernetzwerke
sind der Gebrauch von Verbindungen von Speichervorrichtungen mit
Rechnervorrichtungen (z.B. Clients, Servern, u.ä.) durch das Verwenden von
Netzwerken (z.B. Faserkanal, Internet Small Computer System Interface
(iSCSI) u.a.) statt den traditionellen Punkt-zu-Punkt Small Computer System Interface-
(SCSI-) Kanälen.
Ein Netzwerk, das verwendet wird, um Server mit Speichervorrichtungen
zu verbinden, wird als ein Storage Area Network (SAN) bezeichnet.
Innerhalb einer SAN-Umgebung haben Rechnervorrichtungen Zugriff
auf die verfügbaren
Speichervorrichtungen. Dies liefert eine breite Auswahl an Vorzügen, einschließlich einer Serverplattformausfalisicherung,
wobei eine ausgefallene Speichervorrichtung und ein ausgefallener Server
automatisch durch eine andere betriebsbereite Serverplattform und
eine andere betriebsbereite Speichervorrichtung ersetzt werden,
ohne eine Neuverkabelung der betriebsbereiten Speichervorrichtungen
zu erfordern.
-
Ein
Aspekt einer Speicherverwaltung ist die Möglichkeit, eine Speicherzugriffstransparenz
zu erzeugen, die häufig
als Speichervirtualisierung bezeichnet wird. Speichervirtualisierung
legt die physikalischen Speicherdetails von Benutzer-/Client-Anwendungen,
die auf den physikalischen Speicher zugreifen, offen. Speichervirtualisierung
kann die Speicherverwendung und den Speicherzugriffsdurchfluß optimieren,
so daß mehrere
Benutzer-/Client-Anwendungen optimal und zuverlässig auf physikalischen Speicher
in einer Shared Storage-Umgebung, die aus heterogenen physikali schen
Speichervorrichtungen besteht, zugreifen können. Auch müssen mit Speichervirtualisierung
die Benutzer-/Client-Anwendungen nicht die zugrundeliegenden Details
und die zu den physikalischen Speichervorrichtungen gehörenden Schnittstellen
verwalten.
-
Ein
weiterer Aspekt einer effektiven Speicherverwaltung ist die Fähigkeit,
die Speicherdaten, die auf den physikalischen Speichervorrichtungen
ruhen, zu sichern oder zu spiegeln, so daß die Daten von mehreren physikalischen
Speichervorrichtungen redundant verfügbar sind oder von vorherigen
Zeitpunkten wiederherstellbar sind. Die Datenredundanz erlaubt es
Speicherdaten verfügbar
zu bleiben, sollte eine der physikalischen Speichervorrichtungen,
welche die Speicherdaten enthält,
ausfallen oder auf andere Weise für eine Benutzer-/Client-Anwendung nicht
verfügbar
sein (z.B. Serverausfälle,
Anwendungsausfälle,
u.ä.).
Die Datenwiederherstellbarkeit ermöglicht es Benutzern, erwünschte Versionen
der Daten von einem vorherigen Zeitpunkt zu erhalten.
-
Konventionell
werden einige Techniken verwendet, um Speicherdaten auf mehreren
physikalischen Speichervorrichtungen zu sichern. Als erstes können Speicherdaten
von einer physikalischen Speichervorrichtung auf eine andere physikalische Speichervorrichtung
kopiert werden, durch Aufnehmen eines Schnappschusses der mit einer
primären physikalischen
Speichervorrichtung verbundenen Speicherdaten und dann Kopieren
der Speicherdaten in eine zweite physikalische Sicherungsspeichervorrichtung.
Um dies zu erreichen, wird ein eingefrorenes Bild der Speicherdaten
zu einem gegebenen Zeitpunkt von der primären physikalischen Speichervorrichtung
aufgenommen. Beim Erzeugen des eingefrorenen Bildes muß eine Reihe
von Operationen ausgeführt
werden, um eine Transaktionskonsistenz der Schnappschußoperation
sicherzustellen. Zum Beispiel unterbrechen einige Operationen Anwendungen,
welche auf die Speicherdaten zugreifen, und löschen Speicherdaten von anhängigen Änderungsoperationen
(z.B. Schreiboperationen) aus dem Cache. Zweitens können Speicherdaten
gespiegelt werden, so daß wenn
die Speicherdaten, die in dem primären physikalischen Speicher
enthalten sind, geändert
werden, eine Änderungsoperation
in den gespiegelten Speicherdaten auf einer gespiegelten zweiten physikalischen
Speichervorrichtung auftritt.
-
Typischerweise
ziehen, wenn eine Speichervirtualisierung vorgesehen ist, Speicherverwaltungstechniken
eine Mittelschicht an Software ein, die zwischen Benutzeranwendungen
und den Schnittstellen der darunterliegenden physikalischen Speichervorrichtungen
angeordnet ist. Diese Softwaremittelschicht ist in der Lage, die
physikalischen Speichervorrichtungen zentral zu verwalten und eine
virtuelle Ansicht der Speicherdaten zu erzeugen. In einigen Fällen ist
die Softwaremittelschicht als eine Volume-Manager- (VM-) Anwendung
ausgeführt.
Die VM kann auch Speicherdienste (z.B. eingefrorene Bilder, Spiegelungen
u.ä.) auf
Speicherdaten anwenden, um eine hohe Verfügbarkeit (High Availability;
HA) der eigentlichen Speicherdaten sicherzustellen.
-
Dennoch
werden in heterogenen Shared Storage-Umgebungen die eingefrorenen
Bilder und Spiegelungen dem VM in einer Vielzahl verschiedener Weisen,
basierend auf unterschiedlichen Konfigurationen und Schnittstellen
der physikalischen Speichervorrichtung, dargestellt. Oft existieren
die Unterschiede, da eine Anzahl der physikalischen Speichervorrichtungen
von verschiedenen Anbietern geliefert werden und die physikalischen
Speichervorrichtungen dem VM entsprechend ungleiche Speichermöglichkeiten
zur Verfügung
stellen.
-
Folglich
wird ein VM, das in einer heterogenen Shared Storage-Umgebung arbeitet, übermäßig komplex
mit einer Menge an komplexen Ausnahme-Softwarecodierungen, die so
konstruiert sind, daß sie
ungleiche Speichermöglichkeiten
handhaben. Die Speichermöglichkeiten
diktieren, wie die Speicherdaten verwaltet werden und was mit einem eingefrorenen
Bild oder einer Spiegelung, die mit einer bestimmten Speicheroperation
erzeugt worden ist, getan werden kann.
-
US 2002/001920 beschreibt
ein Verfahren zum Kopieren von Daten durch ein virtualisiertes Speichersystem,
welches eine verteilte, tabellengetriebene (I/O) Abbildung verwendet.
In einem System, das eine virtuelle Platte (die "ursprüngliche Platte") aufweist, existiert
eine durchgehende Abbildungstabelle für diese virtuelle Platte auf
einem Controller und flüchtige
Kopien einiger oder aller Einträge
in diese Abbildungstabelle werden an einen oder mehrere Abbildungsagenten
verteilt. Das beschriebene Verfahren erzeugt eine neue virtuelle
Plattenabbildungstabelle, die exakt die gleichen Einträge aufweist
wie die Abbildungstabelle der ursprünglichen virtuellen Platte.
Die Tabelle weist einen ungültigen
Zustand auf, der anzeigt, ob irgendwelche I/O-Operationen auf einem
virtuellen Plattensegment und an einem entsprechenden physikalischen
Ort auftreten. Die Tabelle weist auch einen nicht-schreibe (NO-Write; Nw)-Zustand
auf, der anzeigt, ob die an dem entsprechenden physikalischen Ort
enthaltenen Daten geändert
werden können.
US 2002/001920 offenbart
nicht die Verwendung eines Flag für die Schnappschußbereitschaft,
da 5 anzeigt, ob die virtuelle Platte in einem Zustand ist, der
es erlaubt, eine Schnappschußoperation
auszuführen
oder nicht.
US 2002/001920 lehrt
auch nicht, während
des Schnappschußbetriebs den
dem Flag für
die Schnappschußbereitschaft
zugewiesenen Wert zu bestätigen,
um zu bestimmen, ob irgendwelche empfangenen Speicheroperationen in
Bezug auf die virtuelle Platte in der Schwebe gehalten werden müssen bis
die Schnappschußoperation
abgeschlossen ist.
-
Zusammenfassung der Erfindung
-
Aspekte
der Erfindung sind in den beigefügten
Ansprüchen
definiert.
-
Eine
Ausführungsform
der Erfindung kann ein Verfahren zum Bereitstellen von Speicheroperationen
liefern. Zustandsflags können
einer virtuellen Platte zugeordnet sein. Die virtuelle Platte kann
an einer oder mehreren Speichervorrichtungen zugeordnet sein. Die
virtuelle Platte kann mit einem Zugriff auf eine Vorbereitungsoperation
und eine Aufteiloperation ausgestattet sein. Zusätzlich kann ein Speicherverwaltungssatz
von ausführbaren
Befehlen konfiguriert werden, basierend auf einem oder mehreren
Werten, die jedem der Zustandsflags der virtuellen Platte zugeordnet
sind, wenn mindestens eine der Vorbereitungsoperationen und der
Schnappschußoperationen
verarbeitet wird.
-
Eine
weitere Ausführungsform
der Erfindung kann ein Speicherbetriebssystem vorsehen. Das Speicherbetriebssystem
kann eine virtuelle Platte, einen Speicherverwaltungssatz von ausführbaren
Befehlen und einen Auswahlsatz von ausführbaren Befehlen aufweisen.
Die virtuelle Platte kann einer Mehrzahl von Zuständen, einer
Schnappschußoperation
und einer Vorbereitungsoperation zugeordnet sein. Der Speicherverwaltungssatz
ausführbarer
Befehle kann die virtuelle Platte verwalten und kann durch die Operationen
konfiguriert sein. Darüber
hinaus kann der Auswahlsatz von ausführbaren Befehlen die ausgewählte Ausführung der
Operationen ermöglichen.
-
Eine
weitere Ausführungsform
der Erfindung kann eine virtuelle Plattendatenstruktur, die auf
einem computerlesbaren Medium sitzt, vorsehen. Die virtuelle Plattendatenstruktur
kann Speichermetadaten, eine Mehrzahl von Speicherzuständen und
eine Mehrzahl von Speicheroperationsabbildungen aufweisen. Die Speichermetadaten
können
Speicherdaten zugeordnet sein, die auf einer oder mehreren Speichervorrichtungen
sitzen. Darüber
hinaus kann die Mehrzahl von Speicherzuständen Verarbeitungszuständen der
virtuellen Plattendatenstruktur zugeordnet sein und die Mehrzahl
von Speicheroperationsabbildungen sieht einen Zugriff auf Speicheroperationen
vor. Darüber
hinaus können
Werte, die der Mehrzahl von Speicherzuständen zugeordnet sind, bestimmen,
welche aus der Mehrzahl von Speicheroperationen durch Zugreifen
auf die Speicheroperationsabbildungen verarbeitet werden können.
-
Kurze Beschreibung der Zeichnungen
-
1 zeigt
ein Diagramm einer virtuellen Platte gemäß der vorliegenden Erfindung,
-
2 zeigt
ein Flußdiagramm
eines Verfahrens zum Verarbeiten von Speicheroperationen gemäß der vorliegenden
Erfindung,
-
3 zeigt
ein Flußdiagramm
eines Verfahrens zum Bereitstellen von Speicheroperationen gemäß der vorliegenden
Erfindung,
-
4 zeigt
ein Diagramm eines Speicherbetriebssystems gemäß der vorliegenden Erfindung,
-
5 zeigt
ein Diagramm einer virtuellen Plattendatenstruktur gemäß der vorliegenden
Erfindung und
-
6 zeigt
ein Diagramm eines weiteren Speicherbetriebssystems gemäß der vorliegenden Erfindung.
-
Beschreibung der bevorzugten
Ausführungsformen
-
In
der folgenden detaillierten Beschreibung verschiedener Ausführungsformen
der vorliegenden Erfindung wird auf die beigefügten Zeichnungen bezuggenommen,
die einen Teil davon bilden und in denen in Form einer Darstellung
bestimmte Ausführungsformen
gezeigt sind, in denen die Erfindung ausgeführt werden kann. Es ist offensichtlich,
daß andere
Ausführungsformen
verwendet werden könnten
und strukturelle Veränderungen
durchgeführt werden
können,
ohne vom Schutzbereich der vorliegenden Erfindung abzuweichen.
-
So
wie sie hierin verwendet wird, umfaßt eine "Speicherverwaltungsanwendung" oder ein "Speicherverwaltungssatz
von ausführbaren
Befehlen" Softwarenanwendungen
oder -module, die Speicherressourcen im Rahmen von Benutzer-/Client-Anwendungen
oder Host-Anwendungen verwalten. In einigen Instanzen sind Speicherverwaltungsanwendungen
Volume-Manager- (VM-) Anwendungen, welche in einer Shared Storage-Umgebung,
wie z.B. eine Storage Area Network- (SAN-) Umgebung oder TCP/IT, wobei
iSCSI verwendet wird, arbeiten. Benutzer-/Client-Anwendungen oder den Host-Anwendungen
sind Anwendungen, welche eine Schnittstelle zu den Speicherverwaltungsanwendungen
bilden, um einen Zugriff auf Speicherressourcen zu gewinnen.
-
Eine
virtuelle Platte (Virtual Disc; VD) ist eine logische Darstellung
physikalischer Speicherdaten, die auf einer oder mehreren physikalischen
Speichervorrichtungen sitzen. Der Speicherverwaltungssatz in ausführbaren
Befehlen verwaltet die VD und macht die VD den Benutzer-/Client-Anwendungen oder
Host-Anwendungen verfügbar.
In einigen Ausführungsformen
der vorliegenden Erfindung ist eine einzige VD tatsächlich eine
Gruppe von VDs. In noch weiteren Ausführungsformen erzeugen Schnittstellen der
physikalischen Speichervorrichtungen VDs, die dann von dem Speicherverwaltungssatz
von ausführbaren
Befehlen verwaltet werden.
-
1 stellt
ein Diagramm 100 einer VD 110 gemäß der vorliegenden
Erfindung dar. Der VD 110 ist eine Anzahl von Speicherzuständen (z.B. 111-115)
und Speicheroperationen (z.B. 116-118) zugeordnet. In einer Ausführungsform
ist die VD 110 eine Gruppe von VDs. Darüber hinaus repräsentiert die
VD 110 eine logische Ansicht physikalischer Speicherdaten
für eine
oder mehrere physikalische Speichervorrichtungen. Speicherverwaltungsanwendungen
(z.B. VMs u.ä.),
Benutzer/Client-Anwendungen und Host-Anwendungen Wechselwirken mit
der VD 110 und nicht direkt mit dem darunterliegenden physikalischen
Speicher. Die VD 110 weist Metadaten auf, die verwendet
werden, um die darunterliegenden physikalischen Speicherdaten, so
wie sie auf den physikalischen Speichervorrichtungen sitzen, zu
erhalten.
-
Eine
Speicheroperation besteht aus einem oder mehreren Prozessen, die
notwendig sind, um ein eingefrorenes Bild der VD 110 zu
erzeugen oder zu verwalten. Wie zuvor diskutiert, sind Möglichkeiten
für ein
eingefrorenes Bild auf verschiedene Weisen für verschiedene darunterliegende
physikalische Speicherschnittstellen vorgesehen und für verschiedene
physikalische Speichervorrichtungskonfigurationen (z.B. Speicher-Array-Konfigurationen).
Einige Techniken zum Erzeugen eingefrorener Bilder weisen Datenspiegelungen,
Kopieren-nach-Schreiben-Techniken u.ä. auf. Das Verwenden einer
Technik statt einer anderen hat unterschiedliche Implikationen darauf,
wie die physikalischen Speichervorrichtungskonfigurationen verwaltet
werden, was mit irgendeinem erzeugten eingefrorenen Bild getan werden
kann, und wie lange es dauert, das eingefrorene Bild zu erzeugen.
Die VD 110 aus 1 erlaubt die Normierung potentiell
ungleicher eingefrorener Bilderprozesse in einem Standardprozeß durch
Verwenden von Speicherzuständen
(z.B. 111-115) und Speicheroperationen (z.B. 116-118),
die der VD 110 zugeordnet sind.
-
In
einer Ausführungsform
der VD 110 gibt es fünf
Speicherzustandsflags (z.B. 111-115), nämlich einen
Zustandsflag für
die Konfigurationsbereitschaft 111, einen Zustandsflag
für die
Entkonfigurationsbereitschaft 112, einen Vorbereitung abgeschlossen Zustandsflag
für die
Vorbereitungsbereitschaft 113, einen Flag, für die Schnappschußbereitschaft 114 und
einen Zustandsflag für
die Wiederherstellungsbereitschaft anzeigt. Diese Zustandsflags
können
einen False/Unset-Wert oder einen True/Set-Wert aufweisen. Darüber hinaus
zeigen die den Zustandsflags (z.B. 111-115) zugeordneten
Werte an, welche der Speicheroperationen (z.B. 116-118)
auf die darunterliegenden physikalischen Speichervorrichtungen,
die der VD 110 zugeordnet sind, angewandt werden können, durch
Verwenden der Metadaten der VD 110. In einer Ausführungsform
sind drei Speicheroperationen (z.B. 116-118) vorgesehen:
eine Wiederherstellungsoperation 116, eine Schnappschußoperation 117 und
eine Vorbereitungsoperation 118.
-
Das
Zustandsflag für
die Konfigurationsbereitschaft 111 stellt ein Zeichen dafür zur Verfügung, ob
die VD 110 in einem Zustand ist, der es der VD 110 erlaubt,
neu konfiguriert zu werden oder nicht. Wenn einer bestimmten Konfiguration
der darunterliegenden physikalischen Speichervorrichtungen eine
Hardwarespiegelungstechnik zugeordnet ist, dann kann das Zustandsflag
für die
Konfigurationsbereitschaft 111 verwendet werden, um anzuzeigen, daß ein physikalisches
Laufwerk der VD 110 nun einem anderen physikalischen Laufwerk
der VD 110 für Zwecke
der Synchronisierung oder der Spiegelung von Speicherdaten zwischen
den beiden physikalischen Vorrichtungen zugeordnet werden kann.
Darüber
hinaus wird für
Speichervorrichtungskonfigurationen, die mit Speicherarrays verbunden
sind, die eine Copy-on-write-Technik verwenden, überhaupt keine Anzeige des
Flags für
die Konfigurationsbereitschaft 111 benötigt und entsprechend kann
das Zustandsflag für
die Konfigurationsbereitschaft 111 für solche Konfigurationen konstant
auf False eingestellt sein.
-
Werte,
die dem Zustandsflag für
die Entkonfigurationsbereitschaft 112 zugeordnet sind,
zeigen an, ob die VD 110 in einem Zustand ist, so daß die Zuordnung
der VD 110 zu einer anderen VD 110 entfernt werden
kann oder nicht. Dies ermöglicht
die Neuzuordnung einer anderen VD 110, so daß mehrere
eingefrorene Bilder, die zu den Speicherdaten der VD 110 gehören, aufgenommen
werden können. Wieder
muß für Speichervorrichtungskonfigurationen,
dessen Speicherarrays zugeordnet sind, die eine Copy-on-write-Technik
verwendet, kein Zustandsflag für
die Entkonfiguration 112 verwendet werden, und entsprechend
kann das Zustandsflag für die
Entkonfigurationsbereitschaft 112 typischerweise auf False
eingestellt sein.
-
Werte,
die dem Zustandsflag für
die Vorbereitungsbereitschaft 113 zugeordnet sind, zeigen
an, ob die VD 110 in einem Zustand ist, so daß die der VD 110 zugeordnete
Speichervorrichtung für
eine Vorbereitungsoperation 118 konfiguriert werden kann.
In einigen Fällen
kann dies eine Aufbauoperation sein, um die VD 110 auf
einer anderen Speichervorrichtung der VD 110 zu spiegeln.
Wenn die gespiegelte Speichervorrichtung der VD 110 abgeteilt wird,
kann das Einstellen des Zustandsflag für die Vorbereitungsbereitschaft 113 auf
True bewirken, daß die
gespiegelte Speichervorrichtung der VD 110 nicht verfügbar ist.
Für Speichervorrichtungskonfigurationen,
dessen Speicherarrays zugeordnet sind, welche keine Datenspiegelungstechniken
verwenden, kann das Zustandsflag für die Vorbereitungsbereitschaft 113 auf
True gesetzt sein, um den von einem zuvor ausgeführten Schnappschußprozeß verwendeten
Speicher zu reabsorbieren (z.B. vorangegangene eingefrorene Bilderzeugung),
wodurch im wesentlichen alle zuvor erzeugten Speicherclone gelöscht werden.
Wie es für
einen Fachmann offensichtlich ist, können durch Verwenden des Zustandsflags
für die
Vorbereitungsbereitschaft 113 in Kombination mit der Vorbereitungsoperation 118 Speicheradministratoren
so viel Zeit wie notwendig beanspruchen, um VDs mit den physikalischen
Speichervorrichtungen zu synchronisieren, da das Flag für den Vorbereitungsbereitschaftszustand 113 eine
Technik vorsieht, um die Vorbereitungsoperation 118 von
einer Schnappschußoperation 117 (z.B.
eingefrorene Bilderzeugungsoperation) zu trennen.
-
Werte,
die dem Zustandsflag der Schnappschußbereitschaft 114 zugeordnet
sind, zeigen an, ob die VD 110 in einem Zustand ist, welcher
es erlaubt, ein eingefrorenes Bild/einen Schnappschuß der VD 110 aufzunehmen.
In einigen Ausführungsformen
kann, wenn es die darunterliegende Konfiguration der physikalischen
Speichervorrichtungen erlaubt, das Zustandsflag für die Schnappschußbereitschaft 114 auch
auf irgendwelchen erzeugten, eingefrorenen Bildern auf True gesetzt
werden, wodurch es ermöglicht
wird, eingefrorene Bilder von anderen eingefrorenen Bildern aufzunehmen.
Die VD 110 kann zu einem gegebenen Zeitpunkt in verschiedenen
Zuständen
(z.B. 111-115) sein. Speicheradministratoren können die
Speicherzustände
(z.B. 111-115) für die VD 110 zu jedem
Zeitpunkt konfigurieren, wenn die Speicheroperationen (z.B. 116-118)
für die
darunterliegenden physikalischen Speichervorrichtung, die der VD 110 zugeordnet
sind, verfügbar
werden. Darüber
hinaus setzen die Zustandsflags (z.B. 111-115), wenn
die VD 110 eine Gruppe von VDs ist oder sie mehreren darunterliegenden
physikalischen Speichervorrichtungen zugeordnet ist, automatisch
Werte, so daß die
Gruppe von VDs mindestens eine gemeinsame Nenneroperation (z.B. 116-118)
der Gruppe festlegt.
-
Zum
Beispiel wird, wenn ein Speicherverwaltungssatz von ausführbaren
Befehlen (z.B. VM o.ä.) einige
VDs 110 aufweist, die die Wiederherstellungsoperation 116 unterstützen, während es
andere VDs 110 gibt, die die Wiederherstellungsoperation 116 nicht
unterstützen,
das Zustandsflag für
die Wiederherstellungsbereitschaft 115 automatisch und
konstant auf False gesetzt, wodurch die Ausführung der Wiederherstellungsoperation 116 nicht
für die
Anwendung auf irgendeine der VDs 110 freigegeben wird.
-
Ähnlich kann
die Schnappschußoperation 117,
basierend auf den Möglichkeiten
der darunterliegenden physikalischen Speichervorrichtungen, die der
VD 100 zugeordnet sind, beschränkt werden. Wenn z.B. die VD 110 einer
Gruppe von VDs zugeordnet ist, worin die Hälfte der Flags für die Vorbereitungsbereitschaft 113 auf
True eingestellt ist und die Hälfte
der Flags für
die Schnappschußbereitschaft 114 der
VDs auf True eingestellt ist, vervollständigt dann die Vorbereitungsoperation 118 die
Anwendung auf die VDs 110, deren Flags für die Vorbereitungsbereitschaft 113 auf
True eingestellt sind, bevor die Schnappschußoperation 117 auf
die VDs 110 angewandt wird, deren Flags für die Schnappschußbereitschaft 114 auf
True eingestellt sind. Auf diese Weise kann ein Zugriff auf einige
der Speicheroperationen (z.B. 116-118) in der
Schwebe gehalten werden, bis andere Speicheroperationen (z.B. 116-118)
vervollständigt
wurden.
-
Darüber hinaus
kann irgendein Speicherverwaltungssatz von ausführbaren Befehlen (z.B. VMs u.ä.) automatisch
konfiguriert werden, basierend auf der erfolgreichen Ausführung der
Speicheroperationen (z.B. 116-118). Zum Beispiel
können
die Metadaten der VDs 110, die den darunterliegenden physikalischen
Speicherdaten zugeordnet sind, nach der Vervollständigung
einer oder mehrerer der Speicheroperationen (z.B. 116-118)
automatisch mit dem Speicherverwaltungssatz von ausführbaren
Befehlen aktualisiert werden. Darüber hinaus können automatische
Importe und Exporte ausgeführt
werden, um irgendein eingefrorenes Bild, das durch die Speicheroperation
(z.B. 116-118) hergestellt wurde, nach einer erfolgreichen
Schnappschußoperation 117 für den Speicherverwaltungssatz
von ausführbaren
Befehlen sichtbar zu machen.
-
In
einigen Ausführungsformen
kann eine HA-Erweiterung der VD 110 aus 1 verwendet werden,
um Speicherclustereinrichtungen zu integrieren, sodass die Speicheroperationen
(z.B. 116-118)
zu erweitern. Dies kann Operationen umfassen, die die Zuordnung
einer Ziel-VD 110 zu einer Schnappschußoperation 117, die
auf eine VD 110 angewandt wird, die einer Gruppe von VDs 110 zugeordnet
ist, ermöglicht.
Die Schnappschußergebnisse können automatisch
auf einen Client/Host und in einen Speicherverwaltungssatz von ausführbaren
Befehlen importiert werden. Darüber
hinaus kann in einigen Ausführungsformen
eine automatische Ausfalloperation integriert werden, um irgendein
durch die Speicheroperation (z.B. 116-118) erzeugtes
eingefrorenes Bild auf eine zweite VD 110 oder eine Ziel-VD 110 zu
kopieren. Natürlich
ist es für
den Fachmann offensichtlich, daß eine
Auswahl an zusätzlichen Operationen
und Zustandsflags verwendet werden kann, um die Verarbeitung von
Speicherdiensten in 1 zu verbessern.
-
2 stellt
ein Flußdiagramm
eines Verfahrens 200 zum Verarbeiten von Speicheroperationen gemäß der vorliegenden
Erfindung dar. Zunächst werden
die physikalischen Speicherdaten logisch als eine oder mehrere VD-Datenstrukturen
dargestellt. In einigen Ausführungsformen
sind die physikalischen Speichervorrichtungsschnittstellen, welche
die physikalischen Speicherdaten steuern, indirekt durch die VD-Datenstrukturen
verfügbar.
Darüber
hinaus kann eine einzelne VD-Datenstruktur
mehrere VD-Datenstrukturen repräsentieren.
Die VD-Datenstrukturen werden von Speicherverwaltungsanwendungen
verwendet, um eine Speichervirtualisierung für Benutzer-/Client-Anwendungen oder
Host-Anwendungen vorzusehen. Auf diese Weise sind die Benutzer-/Client-Anwendungen oder
die Host-Anwendungen nicht von den Details der physikalischen Speichervorrichtungen
betroffen, die den Speicherdaten, die logisch durch eine VD-Datenstruktur
verkörpert
sind, zugeordnet sind
-
Jede
VD-Datenstruktur ist einer Mehrzahl von Speicherzuständen zugeordnet,
die relevant sind für
das Ausführen
von Speicheroperationen auf die VD-Datenstruktur. Diese Speicherzustände können als
Speicherzustandsflag dargestellt sein, das Werte von True oder False
aufweisen kann, welche anzeigen, ob die Zustandsflags gesetzt sind
bzw. nicht gesetzt sind. Darüber
hinaus weisen in einigen Ausführungsformen
die Zustandsflags ein Zustandsflag für die Konfigurationsbereitschaft,
ein Flag für
den Entkonfigurationsbereitschaft, ein Zustandsflag für die Vorbereitungsbereitschaft,
ein Zustandsflag für
die Schnappschußbereitschaftszustand
und ein Flag für den
Wiederherstellungsbereitschaftszustand auf. Alle gesetzten Werte
bestimmen, ob zu irgendeinem gegebenen Zeitpunkt eine Speicheroperation
erlaubterweise auf die VD-Datenstruktur angewandt werden kann oder
nicht. In einer Ausführungsform
weisen die Speicheroperationen eine Wiederherstellungsoperation,
eine Schnappschußoperation
und eine Vorbereitungsoperation auf.
-
Die
Wiederherstellungsoperation erlaubt es den einem zuvor aufgenommenen
eingefrorenen Bild zugeordneten Daten in eine ursprüngliche
VD-Datenstruktur kopiert zu werden, um eine Wiederherstellung auf
der ursprünglichen
VD-Datenstruktur zu führen.
Die Schnappschußoperation
erlaubt es, ein eingefrorenes Bild von der VD-Datenstruktur aufzunehmen
und in einer zweiten VD-Datenstruktur
zu speichern. Die Vorbereitungsoperation konfiguriert eine VD-Datenstruktur
für eine
Aufbauoperation, eine Aufteilungsoperation oder eine andere Speicheroperation.
-
In
Block 210 werden die Werte für die Zustandsflags für die VD-Datenstruktur
gesetzt. In einigen Ausführungsformen
werden die Schnittstellen, die den physikalischen Speichervorrichtungen
zugeordnet sind, geändert,
um ein anfängliches
und nachfolgendes Setzen der den Zustandsflags zugeordneten Werte
zu ermöglichen.
Auf diese Weise können Administratoren
oder Anbieter bestimmen, wann Speicherdienste für bestimmte Speichervorrichtungen
verfügbar
sind oder nicht verfügbar
sind, basierend auf den Konfigurationen der darunterliegenden physikalischen
Speichervorrichtungen. Entsprechend können in Block 210 die
Zustandswerte automatisch gesetzt werden, basierend auf Verarbeitungsergebnissen
einer oder mehrerer der Speicheroperationen. Alternativ kann in
Block 210 ein Speicheradministrator die Zustandswerte manuell
einstellen. Darüber
hinaus kann in einigen Ausführungsformen
ein vorgesehener Satz von ausführbaren
Befehlen zwischen den Speichervorrichtungsschnittstellen und dem
Speicherverwaltungssatz von ausführbaren Befehlen
angeordnet sein, um die Zustandswerte für die VD einzustellen.
-
In
Block 220 wird eine Speicheroperation empfangen. Die Speicheroperation
kann direkt von einem Speicherverwaltungssatz von ausführbaren Befehlen
(VMs u.ä.)
oder von einer Benutzer-/Client-Anwendung
oder einer Host-Anwendung empfangen werden, die von einem Speicheradministrator verarbeitet
wird. In Block 222 wird nach dem Empfangen einer Anfrage,
eine Speicheroperation auf die VD-Datenstruktur anzuwenden, eine
Kontrolle durchgeführt,
um zu bestimmen, ob die VD-Datenstruktur in einem zulässigen Zustand
ist, um die empfangene Speicheroperation auszuführen.
-
In
einigen Ausführungsformen,
in denen die VD-Datenstruktur einer Gruppe von VD-Datenstrukturen zugeordnet
ist, kann eine kleinste-gemeinsame-Nenner-Regel durchgesetzt werden,
so daß der Zustand
in Block 222 als unzulässig
angenommen wird, wenn irgendeine der VD-Datenstrukturen unzulässigen Zustandsflagwerten
zugeordnet ist, die notwendig sind, um erfolgreich die empfangene
Speicheroperation auszuführen.
Darüber
hinaus kann in einigen Fällen
die empfangene Operation nach dem Ausführen einer anderen Speicheroperation
zulässig werden.
In diesen Fällen
wird die empfangene Speicheroperation in der Schwebe gehalten, bis
die Zustände
der gesamten Gruppe von VD-Datenstrukturen es ermöglichen,
daß die
empfangene Speicheroperation ausgeführt wird.
-
In
Block 230 wird, nachdem der dem Zustandsflag zugeordnete
Wert zulässig
ist, die empfangene Speicheroperation auf die VD-Datenstruktur angewandt.
In Block 240 werden mit dem Abschluß der Verarbeitung der empfangenen
Speicheroperation die passenden Werte der Zustandsflags für die VD-Datenstruktur
aktualisiert. Als nächstes
schreitet in Block 220 die Verarbeitung voran, wenn eine
weitere Speicheroperation empfangen wird.
-
3 stellt
ein Flußdiagramm
eines Verfahrens 300 zum Bereitstellen von Speicheroperationen gemäß der vorliegenden
Erfindung dar. In Block 310 werden Zustandsflags einer
VD zugeordnet. Die Zustandsflags weisen Werte auf, die verwendet
werden, um zu bestimmen, ob eine bestimmte erwünschte Speicheroperation richtig
auf die VD angewandt werden kann unter Annahme des derzeitigen Zustands der
VD. Die VD repräsentiert
logisch Speicherdaten, die einer oder mehreren physikalischen Speichervorrichtungen
zugeordnet sind. Darüber
hinaus kann in einigen Ausfüh rungsformen
eine einzelne VD eine Mehrzahl oder Gruppierung von VDs darstellen.
Darüber
hinaus können
die darunterliegenden Konfigurationen der Speichervorrichtungen
die Werte für eine
Anzahl der Zustandsflags vorgeben.
-
In
einigen Ausführungsformen
repräsentieren
die Zustandsflags fünf
Zustände:
einen Konfigurationsbereitschaftszustand, einen Entkonfigurationsbereitschaftszustand,
einen Vorbereitungsbereitschaftszustand, einen Schnappschußbereitschaftszustand
und einen Wiederherstellungsbereitschaftszustand. Der Wert des Konfigurationsbereitschaftszustandes
zeigt an, ob die VD neu konfiguriert werden kann oder nicht. In
einigen Fällen
zwingt die zugrundeliegende Konfiguration der Speichervorrichtungen
den Wert des Konfigurationsbereitschaftszustandes dazu, dauerhaft
als False eingestellt zu sein. Der Wert des Entkonfigurationsbereitschaftszustandes
zeigt an, ob die VD von einer anderen VD getrennt werden kann. Unter
einigen Umständen
zwingt die zugrundeliegende Konfiguration der Speichervorrichtungen
den Wert des Entkonfigurationsbereitschaftszustandes dazu, auf False
eingestellt zu sein.
-
Der
Wert des Vorbereitungsbereitschaftszustandes zeigt an, ob eine Vorbereitungsoperation
zulässigerweise
auf die VD ausgeführt
werden kann. Die Vorbereitungsoperation bereitet die VD für Bildungs-
oder Aufteilungsoperationen vor, die auf die VD angewandt werden.
Darüber
hinaus kann für Speichervorrichtungen,
die keine Datenspiegelung erlauben, der Wert des Vorbereitungsbereitschaftszustandes
auf True gesetzt werden, um Speicher, der von einem zuvor erzeugten
eingefrorenen Bild verwendet wird, wieder aufzunehmen. Der Wert
des Schnappschußbereitschaftszustandes
zeigt an, ob auf die VD eine Schnappschußoperation ausgeführt werden
kann, um ein eingefrorenes Bild der VD zu erzeugen. Eingefrorene
Bilder von zuvor aufgenommenen eingefrorenen Bildern sind zulässig. Der
Wert des Wiederherstellungsbereitschaftszustandes zeigt an, ob eine
Wiederherstellungsoperation auf die VD ausgeführt werden kann, um die VD
mit einem zuvor aufgenommenen eingefrorenen Bild wiederherzustellen.
-
In
Block 320 werden Speicheroperationen an die VD bereitgestellt.
Die Operationen weisen eine Vorbereitungsoperation auf, um die VD
für eine
Aufbauoperation vorzubereiten, eine Aufteilungsoperation oder eine
andere Speicheroperation (z.B. eine Spiegelungsoperation) und eine
Wiederherstellungsoperation, um die VD mit einem zuvor aufgenommenen
eingefrorenen Bild zu überschreiben.
Natürlich kann,
wie es für
den Fachmann offensichtlich ist, eine Auswahl an zusätzlichen
Speicheroperationen vorgesehen sein, ohne von der vorliegenden Erfindung abzuweichen.
Einige dieser Operationen können eine
Integration von Speicherclustereinrichtungen umfassen, durch Ermöglichen
der Zuordnung von Ziel-VDs und den Import zuvor aufgenommener Schnappschüsse in einen
Speicherverwaltungssatz von ausführbaren
Befehlen (z.B. VMs u.ä.)
auf den Ziel-VDs. Zusätzlich
kann eine Operation unter bestimmten Bedingungen eine Ausfallsicherung
eines eingefrorenen Bildes für
eine andere VD ermöglichen.
-
Darüber hinaus
wird in Block 330 ein Speicherverwaltungssatz von ausführbaren
Befehlen automatisch konfiguriert, basierend auf den den Zustandsflags
zugeordneten Werten, wenn mindestens eine der Speicheroperationen
auf die VD angewandt wird. Zum Beispiel können die zugrundeliegenden physikalischen
Abbildungen, die den Speicherdaten aller erzeugten eingefrorenen
Bildern zugeordnet sind, automatisch importiert oder exportiert
werden, z.B. in den Speicherverwaltungssatz von ausführbaren
Befehlen, so daß das
neu erzeugte eingefrorene Bild für
den Speicherverwaltungssatz von ausführbaren Befehlen nach dem erfolgreichen
Abschluß einer Aufteilungsoperation
sichtbar und verfügbar
ist. Ähnlich
können
die zugrundeliegenden physikalischen Abbildungen automatisch in
eine Host-Rechnerumgebung importiert oder exportiert werden.
-
In
Block 340 wird eine Speicheroperation empfangen oder angefordert.
In einigen Fällen
wird diese Operation von einem Speicherverwaltungssatz von ausführbaren
Befehlen empfangen. In anderen Fällen
wird die Speicheroperation direkt von einem Benutzer-/Client-Satz
von ausführbaren
Befehlen oder einem Host-Satz von ausführbaren Befehlen empfangen,
so als wenn ein Speicheradministrator manuell eine Speicheroperation
ausführt.
In Block 342 wird dann, sobald eine angeforderte Speicheroperation
empfangen wird, der Wert, der derzeit der VD zugeordnet ist, bestätigt, um
zu bestimmen, ob die angeforderte Speicheroperation ausgeführt werden
kann oder ob sie in der Schwebe gehalten werden muß, bis andere
Speicheroperationen ihre Verarbeitung der VD abgeschlossen haben.
In einigen Ausführungsformen,
in denen die VD eine Gruppe von VDs repräsentiert, kann es notwendig
sein, jeden Wert, der den Zustandsflags für jede der VDs innerhalb der
Gruppe zugeordnet ist, zu bestätigen,
bevor es der angeforderten Operation ermöglicht wird, ausgeführt zu werden.
-
In
Block 350 wird, sobald die den Zustandsflags der VD zugeordneten
Werte es erlauben, die angeforderte Speicheroperation auszuführen, die
angeforderte Speicheroperation ausgeführt. Nach dem Abschluß der Verarbeitung
der angeforderten Speicheroperation wird der Speicherverwaltungssatz
von ausführbaren
Befehlen passend konfiguriert und die Werte der Zustandsflags werden
automatisch wie erforderlich aktualisiert/zurückgesetzt.
-
Auch
ist die VD in einigen Ausführungsformen
einer ersten Speichervorrichtung und einer zweiten Speichervorrichtung
zugeordnet, wobei die erste Speichervorrichtung von der zweiten
Speichervorrichtung verschieden ist. Zum Beispiel kann die Konfiguration
der ersten Speichervorrichtung eine Datenspiegelung erlauben, während die
Konfiguration der zweiten Speichervorrichtung eine Datenspiegelung
nicht erlaubt. Darüber
hinaus können
die Schnittstellen, die der ersten Speichervorrichtung und der zweiten
Speichervorrichtung zugeordnet sind, voneinander verschieden sein,
z.B. wenn die ersten und zweiten Speichervorrichtungen von verschiedenen
Hardwareanbietern bereitgestellt werden. Alternativ können die
Schnittstellen unterschiedliche Ausgaben/Versionen einer Schnittstelle
sein, die durch den gleichen Hardwareanbieter bereitgestellt werden.
-
4 stellt
ein Diagramm eines Speicherbetriebssystems 400 gemäß der vorliegenden
Erfindung dar. Das Speicherbetriebssystem 400 weist eine
oder mehrere VDs (z.B. 410-412), einen Speicherverwaltungssatz
von ausführbaren
Befehlen 430 und einen Auswahlsatz von ausführbaren
Befehlen 420 auf. Die VDs (z.B. 410-412)
sind einer oder mehreren Speichervorrichtungen (z.B. 401-402) zugeordnet.
Darüber
hinaus sind VDs (z.B. 410-412) einer Mehrzahl
von Zuständen,
einer Schnappschußoperation,
einer Vorbereitungsoperation und optional einer Wiederherstellungsoperation
zugeordnet.
-
In
einer Ausführungsform
ist der Speicherverwaltungssatz von ausführbaren Befehlen 430 ein VM,
welches in einer Shared-Storage-Umgebung arbeitet, wie z.B. einer
SAN-Umgebung oder einer TCP/IP-Umgebung, welche iSCSI verwendet.
Der Speicherverwaltungssatz von ausführbaren Befehlen 430 verwaltet
die VDs (z.B. 410-412) und wird dynamisch konfiguriert
wenn die eine oder die mehreren der Operationen auf die VDs (z.B. 410-412)
angewandt werden. Zum Beispiel wird, wenn eine Schnappschußoperation
auf die VDs (z.B. 410-412) vervollständigt ist,
dann das resultierende eingefrorene Bild in den Speicherverwaltungssatz
von ausführbaren
Befehlen 430 importiert, so daß das erzeugte eingefrorene
Bild für
den Speicherverwaltungssatz von ausführbaren Befehlen 430 sichtbar
und verfügbar
ist. Das resultierende eingefrorene Bild kann auch auf eine Host-Rechnervorrichtung
importiert werden.
-
Der
Auswahlsatz von ausführbaren
Befehlen 420 erlaubt die selektive Ausführung der Operationen, wenn
die Zustände
aktuelle Werte aufweisen, die die selektive Ausführung der Operationen erlaubt. In
einigen Ausführungsformen
erlauben die Operationen, daß die
VDs (z.B. 410-412) für eine Aufbauoperation oder
eine Aufteilungsoperation auf eine zweite VD (z.B. 410 oder 412)
vorbereitet werden oder auf die zweite VD (z.B. 410 oder 412)
wieder vorbereitet werden. In mehreren Ausführungsformen erlauben die Operationen
es einer zweiten VD (z.B. 410 oder 412) die Daten
anderer VDs (z.B. 410 oder 412) wieder herzustellen,
wobei wenn die zweite VD (z.B. 410 oder 412) ein
eingefrorenes Bild einer zuvor aufgenommenen VD (410 oder 412)
repräsentiert. Darüber hinaus
erlauben die Schnappschußoperationen
das Erzeugen eines eingefrorenen Bildes der VDs (z.B. 410-412).
In einer Ausführungsform
ist der Auswahlsatz von ausführbaren
Befehlen als ein Graphical User Interface- (GUI-) Werkzeug implementiert,
wobei ein Speicheradministrator die Operationen selektiv identifizieren
und ausführen
kann. Darüber
hinaus ermöglicht
es das GUI-Werkzeug
in einigen Ausführungsformen
dem Speicheradministrator, eine Ziel-VD (z.B. 410 oder 412)
oder einen Speicherpool, der Ergebnisse, die vom selektiven Auswenden
der Operationen auf die VDs (z.B. 410-412) erhalten
werden, aufnimmt, manuell auszuwählen.
-
Jeder
der Zustände
weist einen Wert auf und der Wert stellt eine Anzeige der Operationen
bereit, die auf die VDs (z.B. 410-412) zu irgendeinem
bestimmten Moment angewandt werden können. In einer Ausführungsform
ist eine Anzahl der Werte vorbestimmt und den Zuständen basierend
auf einem Speichervorrichtungstyp zugeordnet. Der Speichervorrichtungstyp
kann, basierend auf den unterstützten
Diensten, die von den Speichervorrichtungen (z.B. 401-402)
vorgesehen sind, zugeordnet sein. Der Speichervorrichtungstyp kann
auch einen bestimmten Anbieter identifizieren, der einer bestimmten
Speichervorrichtung (z.B. 401 oder 402) zugeordnet
ist, eine bestimmte Konfiguration, die einer Speichervorrichtung
(z.B. 401 oder 402) zugeordnet ist, oder eine
bestimmte Schnittstelle, die von einer Speichervorrichtung (z.B. 401 oder 402)
vorgesehen ist.
-
Darüber hinaus
kann in einigen Ausführungsformen
eine einzige VD (z.B. 410 oder 412) eine Gruppe
von VDs (z.B. 410-412) aufweisen. In diesen Ausführungsformen
kann der Speicherverwaltungssatz von ausführbaren Befehlen 430 so
konfiguriert sein, daß er
keine der Operationen ausführt, die
nicht von jeder der VDs (z.B. 410-412) unterstützt werden,
die die Gruppe von VDs (z.B. 410-412) aufweist.
Zum Beispiel wird, wenn der Auswahlsatz von ausführbaren Befehlen 420 versucht,
selektiv eine nicht unterstützte
Operation auf die Gruppe von VDs (z.B. 410-412)
anzuwenden, dann der Speicherverwaltungssatz von ausführbaren
Befehlen 430 so konfiguriert, daß er die nicht unterstützte Operation
nicht ausführt,
wenn irgendeine VD (z.B. 410 oder 412) innerhalb
der Gruppe die Operation nicht unterstützt. Auf diese Weise kann eine
einzige VD (z.B. 410 oder 412) einer Mehrzahl
von ungleichen Speichervorrichtungen (z.B. 401-402)
zugeordnet werden. Folglich wird dem Speicherverwaltungssatz von
ausführbaren Befehlen 430 versichert,
daß keine
Operation auf einer einzelnen VD (z.B. 410 oder 412)
ausgeführt wird,
die nicht erfolgreich auf jeder der VDs (z.B. 410-412)
abgeschlossen würde.
In einigen Fällen kann
die nicht unterstützte
Operation in der Schwebe gehalten werden, bis die Werte für die Zustände es erlauben,
die nicht unterstützte
Operation auszuführen.
-
5 stellt
ein Diagramm einer VD-Datenstruktur 500 gemäß der vorliegenden
Erfindung dar. Die VD-Datenstruktur 500 weist Speichermetadaten 506,
eine Mehrzahl von Speicherzuständen 502 und eine
Mehrzahl von Speicheroperationsabbildungen 504 auf. Die
Speichermetadaten sind physikalischen Speicherorten (z.B. Speicheradressen)
zugeordnet, die auf einer oder mehreren Speichenvorrichtungen 510 liegen.
Die physikalischen Speicherorte nehmen die Speicherdaten auf. Die
Speichermetadaten 506 weisen Information auf, die ausreichend
ist, um die physikalischen Speicherdaten zu erhalten, wenn eine bezugnehmende
Anwendung die physikalischen Speicherdaten von der VD-Datenstruktur 500 abfragt.
Die Speicherzustände 502 sind
Verarbeitungszuständen
der VD-Datenstruktur 500 zugeordnet. Darüber hinaus
bestimmen die Werte, die den Speicherzuständen 502 zugeordnet
sind, zu jedem bestimmten Zeitpunkt, welche der Speicheroperationen erfolgreich
durch Zugreifen auf die Speicheroperationsabbildungen 504 verarbeitet
werden können.
Zusätzlich
können
in einigen Ausführungsformen
die proprietären
Schnittstellen der Speichervorrichtung 510 oder ein Speicheradministrator
automatisch oder manuell die den verschiedenen Speicherzuständen 502 zugeordneten
Werte einstellen. Dies kann erwünscht
sein, wenn bestimmte Speicheroperationen durch eine Konfiguration
von Speichervorrichtungen 510 nicht unterstützt werden
oder durch Schnittstellen, die den Speichervorrichtungen 510 zugeordnet sind,
nicht unterstützt
werden.
-
In
einer Ausführungsform
sind die Speicheroperationsabbildungen 504 für einen
Speicherverwaltungssatz von ausführbaren
Befehlen 520 (z.B. VMs u.ä.) verfügbar, um Speicheroperationen
auszuführen.
In mehreren Ausführungsformen
sind die Speicheroperationsabbildungen 504 für einen
Auswahlsatz von ausführbaren
Befehlen 530 verfügbar, wie
z.B. wenn ein Speicheradministrator versucht, eine Anzahl von Speicheroperationen
manuell und/oder unabhängig
von irgendeiner automatischen Ausführung von Operationen durch
den Speicherverwaltungssatz von ausführbaren Befehlen 520 auszuführen.
-
Auch
erlaubt es in einigen Ausführungsformen
eine Anzahl der Speicheroperationen, ein eingefrorenes Bild der
Speicherdaten 506 aufzunehmen, wobei die VD-Datenstruktur 500 verwendet
und auf eine oder mehrere zweite VD-Datenstrukturen 506 übertragen
wird. In anderen Ausführungsformen
erlaubt es eine Anzahl der Speicheroperationen, ein zuvor aufgenommenes
eingefrorenes Bild, das einer zweiten VD-Datenstruktur 500 zugeordnet
ist, in einer ursprünglichen
VD-Datenstruktur 506 wiederhergestellt
zu werden. Darüber
hinaus kann eine einzige VD-Datenstruktur 506 verwendet
werden, um eine Mehrzahl von Instanzen von VD-Datenstrukturen 506 zu
repräsentieren.
In einigen Ausführungsformen sitzt
die VD-Datenstruktur 500 in einem flüchtigen Speicher, wie z.B.
einem Cache. Obwohl es für
einen Fachmann leicht offensichtlich ist, daß die VD-Datenstruktur 500 in einem
nichtflüchtigen
Speicher oder einer Kombination von flüchtigen und nicht-flüchtigen Speichern
sitzen kann.
-
6 stellt
ein Diagramm eines weiteren Speicherbetriebssystems 600 gemäß der vorliegenden
Erfindung dar. Das Speicherbetriebssystem 600 weist eine
Anzahl von Speicherverwaltungsanwendungen (z.B. 610 und 620),
eine Anzahl von virtuellen Platten (z.B. 630 und 640)
und eine Anzahl von Speicherarrays (z.B. 650 und 660)
auf. Die Speicherverwaltungsanwendungen (z.B. 610-620)
Wechselwirken mit den virtuellen Platten (z.B. 630 und 640), wenn
Speicherverwaltungsoperationen von Anwendungen angefordert werden.
Anforderungen können von
Host-Anwendungen empfangen werden.
-
Die
virtuellen Platten (z.B. 630 und 640) weisen auch
Speicherverwaltungszustände
und Schnittstellen zu Speicherverwaltungsoperationen auf. Die Speicherverwaltungsoperationen
Wechselwirken mit Aufrufsyntaxen und Modulen, die auf den Speicherarrays
sitzen (z.B. 650 und 660). Wenn sich die Speicherbedingungen
der Speicherarrays (z.B. 650 und 660) ändern, werden
die Zustände
der virtuellen Platten (z.B. 630 und 640) dynamisch
aktualisiert (z.B. ereignisgetrieben). Die Speicherverwaltungszustände geben
vor, ob Speicherverwaltungsoperationen erlaubterweise zu irgendeinem
bestimmten Zeitpunkt auch auf die virtuellen Platten (z.B. 630 und 650)
durch die Speicherverwaltungsanwendungen (z.B. 610 und 620)
angewandt werden können.
-
In
einigen Ausführungsformen
wechselwirkt eine einzige Speicherverwaltungsanwendung (z.B. 610 oder 620)
mit einer Mehrzahl von virtuellen Platten (z.B. 630 und 640).
Darüber
hinaus weist jedes der Speicherarrays (z.B. 650 und 660)
Aufrufsyntaxe und Speicherverwaltungsmodule auf, die voneinander
verschieden sind, wie z.B. wenn jedes der Speicherarrays (z.B. 650 und 660)
von verschiedenen Anbietern bereitgestellt wird oder verschiedene
Versionen eines Speicherarrays (z.B. 650 oder 660)
von dem gleichen Anbieter vorgesehen sind.
-
Jede
der virtuellen Platten (z.B. 630 und 640) ist
mit Übersetzer-
oder Provider-Modulen verbunden oder diesen zugeordnet, die Calling-Syntaxe
und Modulnamen, die den unterschiedlichen Speicherarrayschnittstellen
(z.B. 650 und 660) zugeordnet sind, normieren.
Daher müssen
sich die Speicherverwaltungsanwendungen (z.B. 610 und 620)
nicht um die bestimmten Aufrufsyntaxe und Modulnamen, die den Standardspeicherverwaltungsoperationen
zugeordnet sind, kümmern.
Auf diese Weise können
die Speicherverwaltungsanwendungen so entwickelt werden, daß sie die
den unterschiedlichen Speicherarrays (z.B. 650 und 660)
zugeordneten Schnittstellen entkoppelt und unabhängig von den Schnittstellen
der Speicherarrays sind.
-
Zusammenfassung
-
Die
oben diskutierten Speicherdienste und -systeme erlauben verbesserte
Speicheroperationen in einer heterogenen Shared Storage-Umgebung. Diese
Dienste und Systeme weisen Verfahren, Systeme und virtuelle Datenstrukturen
auf, die es Speicherverwaltungsanwendungen und Benutzer-/Client- oder Host-Anwendungen
erlauben, konsistente und normierte Schnittstellen zu verwenden,
wenn sie eingefrorene Bilder (z.B. Schnappschußoperationen) eines Speichers
erzeugen oder andere Speicheroperationen (z.B. Aufteilungen und
Spiegelungen) ausführen.
Darüber
hinaus kann eine einzige virtuelle Datenstruktur eine Mehrzahl von
virtuellen Datenstrukturen aufweisen, die einer Mehrzahl von ungleichen physikalischen
Speichervorrichtungen zugeordnet sind. Jede virtuelle Datenstruktur
ist Speicherzuständen
und Speicheroperationen zugeordnet. In einigen Ausführungsformen
ist, wenn eine bestimmte Operation nicht durch mindestens eine der
zugeordneten zugrundeliegenden physikalischen Speichervorrichtungskonfigurationen
oder Schnittstellen unterstützt wird,
dann die nicht unterstützte
Operation automatisch nicht zur Verwendung durch die gesamte virtuelle
Datenstruktur verfügbar.
Darüber
hinaus vermittelt in einigen Ausführungsformen eine GUI den Benutzer-/Client-
oder Host-Anwendungen, die Fähigkeit
selektiv die den VD-Datenstrukturen zugeordneten Speicheroperationen
auszuführen.
-
Wie
es dem Fachmann nun beim Lesen der vorliegenden Offenbarung offensichtlich
ist, erlauben die in dieser Offenbarung dargestellten Verfahren, Systeme
und Datenstrukturen flexiblere Implementierungen von Speicherverwaltungs-,
Benutzer-/Client- und/oder Host-Anwendungen. Darüber hinaus sind die Anwendungen
einfacher zu entwickeln und zu unterhalten. Weiterhin sind die Speicherverwaltungsanwendungen
robuster, einfacher in der Lage, mit einer Mehrzahl von Schnittstellen,
die ungleichen Konfigurationen und/oder ungleichen Anbietern der zugrundeliegenden
physikalischen Speichervorrichtungen zugeordnet sind, integriert
zu werden.