-
Die
vorliegende Erfindung bezieht sich auf eine Speicherplattenanordnungsvorrichtung
und insbesondere auf ein Differential-Logikeinheitenverwaltungsverfahren
in einem Snapshot-System.
-
In
einem Computersystem gibt es einen Fall der Erzeugung eines Duplikats
eines Speichervolumens, in dem Originaldaten gespeichert worden
sind, etwa den Fall der Sicherung von Daten zur Speicherung in der
Speichervorrichtung. In diesem Fall wird eine Bedingung nötig, dass
bezüglich
des Speichervolumens, in das die Originaldaten gespeichert worden
sind, und eines Speichervolumens, in das die duplizierten Daten
gespeichert werden, deren Inhalt miteinander übereinstimmt und die Konsistenz
zwischen diesen erhalten bleibt. Diese Bedingung macht es erforderlich,
dass eine Aktualisierung des Speichervolumens, in das die Originaldaten
gespeichert worden sind, bis zum Abschluss des Duplizierens gestoppt
wird. In vielseitig genutzten Systemen wie etwa einem Computersystem
ist es jedoch in manchen Fällen
nicht möglich,
den Zugriff auf das Speichervolumen, in das die Originaldaten gespeichert worden
sind, zu stoppen.
-
In
Anbetracht dieser Situation ist ein Verfahren namens „Snapshot" entwickelt worden,
das wie folgt funktioniert: Bezüglich
des Speichervolumens, in das die Originaldaten gespeichert worden
sind, und des Speichervolumens, in das die duplizierten Daten gespeichert
werden, wird die Konsistenz zu einem bestimmten Zeitpunkt aufrechterhalten.
Dies geschieht, damit, auch wenn die Originaldaten nach einem bestimmten
Zeitpunkt aktualisiert worden sind, weiter auf die Originaldaten
zu einem bestimmten Zeitpunkt zugegriffen werden kann.
-
Wenn
die Originaldaten nach dem Zeitpunkt, an dem die Konsistenz aufrechterhalten
werden sollte, aktualisiert werden sollen, werden nach dem Snapshot-Verfahren
die Daten zu dem Zeitpunkt, an dem die Konsistenz aufrechterhalten
werden sollte, in einem anderen Speichervolumen gespeichert. Falls
die Originaldaten nämlich
nicht aktualisiert worden sind, bleiben die Originaldaten unverändert erhalten.
Anderenfalls werden, wenn die Originaldaten aktualisiert werden
sollen, die Daten zu dem Zeitpunkt, an dem die Konsistenz aufrechterhalten
werden sollte, in ein anderes Speichervolumen gespeichert (siehe
zum Beispiel
JP-A-2001-306407 ).
-
Es
ist auch ein Vorschlag bezüglich
eines Verfahrens gemacht worden, den Snapshot bzw. Schnappschuss
in mehreren Generationen verfügbar zu
machen.
-
Nach
diesem Verfahren führt
eine Datenspeichereinheit
1 ein normales Lesen/Schreiben durch.
Eine Datenspeichereinheit
2 speichert ein Snapshot-Abbild
durch die Datenspeichereinheit
1 zu einem bestimmten Zeitpunkt.
Eine Datenspeichereinheit
3 speichert Historieninformationen.
Hierbei enthalten die Historieninformationen aktualisierte Daten, die
mit einem erneuten Schreiben der Daten in die Datenspeichereinheit
1 nach
einem Zeitpunkt verbunden sind, wenn das Snapshot-Abbild in die
Datenspeichereinheit
2 gespeichert worden ist, Informationen
zur Angabe einer Generation der aktualisierten Daten und Informationen
zur Angabe eines Aktualisierungsbereichs der aktualisierten Daten.
Eine Datenlesequelle-Wähleinheit
4 sieht
entsprechend den Spezifikationen der Generation und des Bereichs
eines zu lesenden Snapshot-Abbilds in den jeweils in der Datenspeichereinheit
3 gespeicherten Historieninformationen
nach und erkennt und erfasst einen Speicherort des zu lesenden Snapshot-Abbilds und
schaltet je nach Speicherort die Datenlesequelle entweder auf die
Datenspeichereinheit
2 oder die Datenspeichereinheit
3 (siehe
zum Beispiel
JP-A-2002-278819 ).
-
Die
Snapshot-Funktion weist den Vorteil auf, dass die Kapazität einer
Differential-LU bis zu einer Menge verringert werden kann, die kleiner
ist als die Kapazität
einer primären
LU. Bei der Snapshot-Funktion führt
jedoch eine Zunahme des Schreibens von Daten von einem Host zu einer
Zunahme der Differentialdaten. Darüber hinaus wird, falls die
Nutzungsmenge des Poolbereichs (das heißt der Differential-LU) gleich
100% wird, das Aufrechterhalten des Snapshots unmöglich. Deshalb
wird, wenn die Nutzungsmenge des Poolbereichs einen Schwellenwert überschritten
hat, eine Warnung an den Verwalter ausgegeben. Nach Empfang dieser
Warnung befasst sich der Verwalter mit der Warnung, indem er eine Betriebsverwaltung
durchführt,
zum Beispiel das Speichern der Daten in eine andere Speicherplatte, um
die Nutzungsmenge des Poolbereichs zu verringern, oder das Löschen eines
V-VOL. Dies bedeutet eine hohe Arbeitsbelastung für den Verwalter
und kann schließlich
dazu führen,
dass der Verwalter Gefahr läuft,
die Situation nicht zu erkennen, dass die Nutzungsmenge des Poolbereichs
100% erreicht.
-
US 2004/0030951 beschreibt
ein Datenspeichersystem, das einen Produktionsdatenbestand, unterstützt von
einem Klonvolumen, und mehrere Snapshot-Datenbestände, unterstützt von
jeweiligen Speichervolumen, in einer Snapshot-Warteschlange führt. Um
den Produktionsdatenbestand sofort wieder mit dem Zustand eines
angegebenen Snapshots wiederherstellen zu können, antwortet das Datenspeichersystem
auf Anforderungen für
einen Lese-/Schreibzugriff auf den Produktionsdatenbestand durch
Lesen aus dem angegebenen Snapshot-Datenbestand und Schreiben in
den Produktionsdatenbestand. Das Datenspeichersystem führt Protokoll über die
Datenblöcke,
die durch Schreiben in den Produktionsdatenbestand geändert worden
sind. Das Datenspeichersystem leitet einen Prozess zum Kopieren
von Datenblöcken
aus dem angegebenen Snapshot-Datenbestand in den Produktionsdatenbestand
ein, wenn das Protokoll der Datenblöcke angibt, dass die Datenblöcke noch
nicht durch Schreiben in den Produktionsdatenbestand geändert worden
sind.
-
Ein
Ziel der vorliegenden Erfindung ist es, zu vermeiden, dass die Nutzungsmenge
des Poolbereichs 100% erreicht, und zu verhindern, dass alle Snapshot-Abbilder
vernichtet werden.
-
Die
vorliegende Erfindung stellt eine Speicherplattenanordnungsvorrichtung
bereit, umfassend eine übergeordnete
Schnittstelle, die mit einer übergeordneten
Vorrichtung verbunden ist und Daten von der übergeordneten Vorrichtung empfängt; einen Speicher,
der mit der übergeordneten
Schnittstelle verbunden ist und dazu ausgelegt ist, Daten und Steuerinformationen über die
Daten zu speichern, wobei die Daten mit der übergeordneten Vorrichtung ausgetauscht
werden; mehrere Speicherplattenschnittstellen, die mit dem Speicher
verbunden sind und dazu ausgelegt sind, die Daten so zu steuern, dass
die Daten aus dem Speicher ausgelesen bzw. in diesen hineingeschrieben
werden, wobei die Daten mit der übergeordneten
Vorrichtung ausgetauscht werden; mehrere Speicherplattenlaufwerke,
die mit den mehreren Speicherplattenschnittstellen verbunden sind
und dazu ausgelegt sind, die Daten unter der Steuerung durch die
mehreren Speicherplattenschnittstellen zu speichern, wobei die Daten
von der übergeordneten
Vorrichtung übertragen
werden; und einen Steuerprozessor zum Steuern des Auslesens und
Hineinschreibens von Daten aus bzw. in ein erstes logisches Volumen,
das unter Verwendung eines Speicherbereichs der mehreren Speicherplattenlaufwerke
geschaffen worden ist, um vergangene Daten so zu steuern, dass die
vergangenen Daten in ein zweites logisches Volumen als Differentialdaten
auf der Grundlage von Datengenerationen geschrieben werden, wobei
die vergangenen Daten im zweiten logischen Volumen gespeichert werden,
und um eine Snapshot-Verwaltungstabelle in einem Bereich des Speichers
vorzusehen, um dadurch die Differentialdaten auf jeder Generationsgrundlage
zu verwalten, wobei die Snapshot-Verwaltungstabelle Informationen zum
Verwalten von Beziehungen bezüglich
der im zweiten logischen Volumen gespeicherten Differentialdaten
enthält,
wobei der Steuerprozessor dazu ausgelegt ist, eine Menge von Differentialdaten,
die im zweiten logischen Volumen gespeichert sind, zu verwalten,
eine Kapazität
des zweiten logischen Volumens zu erhöhen, falls die Menge der im
zweiten logischen Volumen gespeicherten Differentialdaten einen
ersten Anteil der Kapazität
des zweiten logischen Volumens überschritten
hat, das Schreiben von Daten in das erste logische Volumen zu begrenzen,
falls die Menge der im zweiten logischen Volumen gespeicherten Differentialdaten
einen zweiten Anteil der Kapazität
des zweiten logischen Volumens und der in das zweite logische Volumen
geschriebenen Differentialdaten überschritten
hat, die Differentialdaten einer bestimmten Generation zu löschen, falls
die Menge der im zweiten logischen Volumen gespeicherten Differentialdaten
einen dritten Anteil der Kapazität
des zweiten logischen Volumens und der in das zweite logische Volumen
geschriebenen Differentialdaten überschritten
hat, die dem bestimmten ersten logischen Volumen entsprechenden
Differentialdaten zu löschen,
falls die Menge der im zweiten logischen Volumen gespeicherten Differentialdaten
einen vierten Anteil der Kapazität
des zweiten logischen Volumens überschritten
hat, und alle in das zweite logische Volumen geschriebenen Differentialdaten
zu löschen,
falls die Menge der im zweiten logischen Volumen gespeicherten Differentialdaten
die Kapazität
des zweiten logischen Volumens erreicht hat.
-
Nach
der vorliegenden Erfindung wird es möglich, zu vermeiden, dass die
Nutzungsmenge des Poolbereichs 100% erreicht, und zu verhindern, dass
alle Snapshot-Abbilder vernichtet werden.
-
1 zeigt
ein Blockdiagramm einer Speicherplattenanordnungsvorrichtung nach
einer Ausführungsform
der vorliegenden Erfindung.
-
2 zeigt
ein erläuterndes
Diagramm des Steuerprogramms nach einer Ausführungsform der vorliegenden
Erfindung.
-
3 zeigt
ein erläuterndes
Diagramm des Differential-Logikeinheitenverwaltungsverfahrens nach
einer Ausführungsform
der vorliegenden Erfindung.
-
4 zeigt
ein Ablaufdiagramm der Verarbeitung zur Prüfung der freien Kapazität nach einer Ausführungsform
der vorliegenden Erfindung.
-
5 zeigt
ein Ablaufdiagramm der LU-Hinzufügungsverarbeitung
nach einer Ausführungsform der
vorliegenden Erfindung.
-
6 zeigt
ein erläuterndes
Diagramm der LU-Hinzufügungsverarbeitung
nach einer Ausführungsform
der vorliegenden Erfindung.
-
7 zeigt
ein Ablaufdiagramm der virtuellen LU-Löschungsverarbeitung
nach einer Ausführungsform
der vorliegenden Erfindung.
-
8 zeigt
ein erläuterndes
Diagramm der Paarinformationenverwaltungstabelle nach einer Ausführungsform
der vorliegenden Erfindung.
-
9 zeigt
ein erläuterndes
Diagramm der Einstellmasken für
die virtuelle LU-Löschungsverarbeitung
nach einer Ausführungsform
der vorliegenden Erfindung.
-
10 zeigt
ein erläuterndes
Diagramm der Einstellmasken für
die virtuelle LU-Löschungsverarbeitung
nach einer Ausführungsform
der vorliegenden Erfindung.
-
11 zeigt
ein Ablaufdiagramm der virtuellen LU-Löschungsverarbeitung
nach einer Ausführungsform
der vorliegenden Erfindung.
-
Nachstehend
werden anhand der Zeichnungen Ausführungsformen der vorliegenden
Erfindung beschrieben.
-
1 zeigt
ein Blockdiagramm zur Veranschaulichung der Konfiguration einer
Speicherplattenanordnungsvorrichtung nach einer Ausführungsform
der vorliegenden Erfindung.
-
Eine
Speicherplattenanordnungsvorrichtung 1 nach der Ausführungsform
der vorliegenden Erfindung umfasst eine Speicherplattenanordnungs-Steuereinheit 10 und
Speicherplatten 20. Außerdem
ist die Speicherplattenanordnungsvorrichtung 1 über ein SAN 2 mit
mehreren Hosts 3 sowie über
ein LAN 4 mit einer Verwaltungsterminalvorrichtung 5 verbunden.
-
Auf
der Grundlage des Betriebs eines Steuerprogramms 103 steuert
die Speicherplattenanordnungs-Steuereinheit 10 die Dateneingabe
in die bzw. die Datenausgabe von den Speicherplatten 20.
Außerdem
bilden die Speicherplatten 20 ein RAID-System (Redundant
Array of Inexpensive Drives), das die Speicherung der Daten mit
Redundanz ermöglicht.
Selbst bei Auftreten eines Fehlers in einem Teil der Speicherplatten
verhindert diese Redundanz, dass die gespeicherten Daten verlorengehen.
-
Die
Speicherplattenanordnungs-Steuereinheit 10 umfasst eine
CPU 101, einen Speicher 102, eine Datenübertragungssteuereinheit 104,
eine Frontend-Schnittstelle 105, eine Backend-Schnittstelle 106,
einen Cachespeicher 107 und eine LAN-Schnittstelle 108.
-
Der
Speicher 102 enthält
ein Steuerprogramm 103 (siehe 2). Die
CPU 101 ruft das Steuerprogramm 103 auf und führt es aus,
wodurch die jeweiligen Verarbeitungen durchgeführt werden.
-
Die
Datenübertragungssteuereinheit 104 überträgt die Daten
zwischen der CPU 101, der Frontend-Schnittstelle 105,
der Backend-Schnittstelle 106 und dem Cachespeicher 107.
-
Die
Frontend-Schnittstelle 105, die eine für das SAN 2 ausgelegte
Schnittstelle ist, sendet und empfängt die Daten und Steuersignale
mit den Hosts 3 zum Beispiel durch Benutzung des Fibre-Channel-Protokolls.
-
Die
Backend-Schnittstelle 106, die eine für die Speicherplatten 20 ausgelegte
Schnittstelle ist, sendet und empfängt die Daten und Steuersignale mit
den Speicherplat ten 20 zum Beispiel durch Benutzung des
Fibre-Channel-Protokolls.
-
Der
Cachespeicher 107 enthält
einen Cache zum vorübergehenden
Speichern der zwischen der Frontend-Schnittstelle 105 und
der Backend-Schnittstelle 106 gesendeten/empfangenen Daten.
-
Im
Einzelnen überträgt die Datenübertragungssteuereinheit 104 zwischen
den Schnittstellen 105 und 106 die aus diesen
Speicherplatten 20 zu lesenden bzw. in diese zu schreibenden
Daten über das
SAN 2. Darüber
hinaus überträgt die Steuereinheit 104 die
aus diesen Speicherplatten 20 zu lesenden bzw. in diese
zu schreibenden Daten an den Cachespeicher 107.
-
Die
LAN-Schnittstelle 108, die eine für das LAN 4 ausgelegte
Schnittstelle ist, ermöglicht
das Senden und Empfangen der Daten und Steuersignale mit der Verwaltungsterminalvorrichtung 5 zum
Beispiel durch Benutzung des TCP/IP-Protokolls.
-
Das
SAN 2 ist ein Netzwerk, das die Kommunikation durch Benutzung
eines für
die Datenübertragung
geeigneten Protokolls, zum Beispiel des Fibre-Channel-Protokolls,
ermöglicht.
-
Jeder
Host 3 ist eine Computervorrichtung, die eine CPU, einen
Speicher, eine Speichervorrichtung, eine Schnittstelle, eine Eingabevorrichtung
und eine Anzeigevorrichtung umfasst. Unter Nutzung der von der Speicherplattenanordnungsvorrichtung 1 bereitgestellten
Daten stellt jeder Host 3 solche Dienste wie etwa Datenbankdienste
und Web-Dienste zur Verfügung.
-
Das
LAN 4, das ein Netzwerk zur Verwaltung der Speicherplattenanordnungsvorrichtung 1 ist,
ermöglicht
die Kommunikation der Daten und Steuersignale zwischen den Computern
zum Beispiel durch Benutzung des TCP/IP-Protokolls. Das als das
LAN 4 benutzte Netzwerk ist zum Beispiel das Ethernet (ein
Warenzeichen, das im Folgenden einfach als solches verwendet wird).
-
Die
Verwaltungsterminalvorrichtung 5 ist eine Computervorrichtung,
die eine CPU, einen Speicher, eine Speichervorrichtung, eine Schnittstelle, eine
Eingabevorrichtung und eine Anzeigevorrichtung umfasst. In der Verwaltungsterminalvorrichtung 5 läuft ein
Verwaltungsprogramm. Das Verwaltungsprogramm ermöglicht das Erkennen des Betriebszustands
der Speicherplattenanordnungsvorrichtung 1 und erlaubt
die Steuerung über
den Betrieb der Speicherplattenanordnungsvorrichtung 1.
Im Übrigen läuft in der
Verwaltungsterminalvorrichtung 5 auch ein Clientprogramm
wie etwa ein Web-Broswer. Daher kann der Betrieb der Speicherplattenanordnungsvorrichtung 1 auch
durch das Verwaltungsprogramm gesteuert werden, das von der Speicherplattenanordnungsvorrichtung 1 über die
CGI (Common Gateway Interface) oder dergleichen bereitgestellt wird.
-
2 zeigt
ein erläuterndes
Diagramm des Steuerprogramms 103 nach einer Ausführungsform der
vorliegenden Erfindung.
-
Eine
von einem normalen E/A-Verarbeitungsprogramm 301 des Hosts 3 gesendete
Datenein-/ausgabeanforderung wird durch ein Lese-/Schreibbefehl-Analyseprogramm 111 des
Steuerprogramms 103 in der Speicherplattenanordnungsvorrichtung 1 untersucht.
Danach wird die untersuchte Anforderung an ein Snap-JOB-Programm 121 übertragen.
-
Wenn
das Snap-JOB-Programm 121 die Datenschreibanforderung in
eine primäre
LU empfangen hat, dupliziert das Programm 121 die in der
primären
LU gespeicherten Daten vor dem Aktualisieren in eine Differential-LU.
Nach diesem Duplizieren aktualisiert das Programm 121 den
Inhalt der primären
LU. Außerdem
aktualisiert das Programm 121 eine Snapshot-Verwaltungstabelle
(das heißt
einen Differentialinformationenverwaltungsblock 204) in der
Weise, dass Blöcke
in einer virtuellen LU entsprechend den Blöcken in der primären LU,
deren Daten aktualisiert worden sind, veranlasst werden, Blöcken auf
der Differential-LU zu entsprechen, in die die Daten der primären LU (das
heißt
die Daten vor dem Aktualisieren) zu einem Empfangszeitpunkt einer Snapshot-Erzeugungsanforderung
gespeichert worden sind.
-
Wenn
ein Snap-Restore JOB-Programm 122 eine Zugriffsanforderung
auf die virtuelle LU empfangen hat, sieht das Programm 122 außerdem in
der Snapshot-Verwaltungstabelle nach, wodurch auf die Blöcke in der
primären
LU oder die Blöcke
in der Differential-LU, die veranlasst worden sind, den Blöcken in
der virtuellen LU zu entsprechen, zugegriffen wird. Auf diese Weise
wird es für
die Speicherplattenanordnungsvorrichtung 1 möglich, ein
Snapshot-Abbild bereitzustellen. Außerdem greift der Host 3 mit
dem normalen E/A-Verarbeitungsprogramm 301 auf die virtuelle
LU zu. Durch diesen Zugriff kann der Host die Informationen in der
primären
LU zu einem Ausgabezeitpunkt der Snapshot-Erzeugungsanforderung
vorteilhaft nutzen.
-
Außerdem werden
von dem normalen E/A-Verarbeitungsprogramm 301 übertragene
Steuerbefehle durch ein Analyseprogramm 112 für andere
Befehle untersucht und danach an ein Konfigurationsinformationen-Steuerprogramm 140 übertragen.
-
Wenn
ein Paarinformationenverwaltungsprogramm 141 des Konfigurationsinformationen-Steuerprogramms 140 die
Snapshot-Erzeugungsanforderung empfangen hat, registriert das Programm 141 zuerst
Identifikationsinformationen zur Identifizierung einer neuen virtuellen
LU in der Snapshot-Verwaltungstabelle. Danach nimmt das Programm 141 eine Neuregistrierung
von Snapshot-Paaren in einer Paarinformationenverwaltungstabelle
vor, wodurch eine Differential-Bitmap 202, eine primäre LU-Adresstabelle 203 und
der Differentialinformationenverwaltungsblock 204 reserviert
und initialisiert werden. Zuerst wird durch die Snapshot-Verwaltungstabelle
eine Eins-zu-Eins-Entsprechung zwischen den Blöcken in dieser virtuellen LU
und den Blöcken
in der primären LU
hergestellt.
-
Wie
nachstehend beschrieben, verwaltet ein Pool-LU-Verwaltungsprogramm 142 das
Hinzufügen und
Löschen
einer im Poolbereich registrierten LU.
-
Ein
Pool-Verwaltungsprogramm 150 verwaltet das Reservieren
des Bereichs der Snapshot-Differential-Verwaltungstabelle (das heißt des Differentialinformationenverwaltungsblocks 204),
die Übergänge zu freigegebenen
und leeren Warteschlangen und dergleichen.
-
Ein
WEB-Programm 160 informiert den Web-Browser über den
Status jedes Snapshot-Paars, das durch den Snapshot erzeugt worden
ist (das heißt
das Vorliegen oder Nichtvorliegen eines Fehlers in einem Paar, beurteilt
anhand von Informationen wie etwa den Informationen in der Paarinformationenverwaltungstabelle).
-
Ein
RAID-Managerprogramm 131 des Steuerprogramms 103 in
der Speicherplattenanordnungsvorrichtung 1 ist mit einem
RAID-Managerprogramm 302 des Hosts 3 in einer
zur Kommunikation geeigneten Weise verbunden. Die RAID-Managerprogramme 131 und 302 erlauben
die Ausführung
von Operationen wie etwa das Erzeugen der Snapshots und das Ändern der
Paarzustände.
-
Außerdem stellt
ein DAMP-Schnittstellenprogramm 132 eine Benutzerschnittstelle
zur Durchführung
der jeweiligen Arten von Einstellungen für die Speicherplattenanordnung
wie etwa eine virtuelle LU-Löschungsverarbeitung
bereit. Das DAMP-Schnittstellenprogramm 132 ist mit einem DAMP-Programm 501 der
Verwaltungsterminalvorrichtung 5 in einer zur Kommunikation
geeigneten Weise verbunden. Dieses DAMP-Schnittstellenprogramm 132 gestattet
die Ausführung
der Kommunikation mit dem DAMP-Programm 501 der Verwaltungsterminalvorrichtung 5,
wodurch die Durchführung
der RAID-Konfigurationsverwaltung der Speicherplattenanordnungsvorrichtung 1,
des automatischen Hinzufügens
zum Pool und der Löschungseinstellung
ermöglicht
werden.
-
3 zeigt
ein erläuterndes
Diagramm des Snapshot-Verwaltungsverfahrens
nach einer Ausführungsform
der vorliegenden Erfindung.
-
Die
primäre
LU 201, die für
den normalen Betrieb verwendet wird, ist eine Logikeinheit (das heißt P-VOL
= pri märes
Volumen), die das Ziel für
die Datenein-/ausgabe zum/vom Host 3 wird.
-
Die
Differential-Bitmap 202, die im Verwaltungsbereich des
Cachespeichers 107 angeordnet ist, weist Bits entsprechend
jedem Block (zum Beispiel 64 kB/Block) der primären LU 201 auf. Diese Differential-Bitmap 202 konfiguriert
die Snapshot-Verwaltungstabelle zusammen mit der primären LU-Adresstabelle 203 und
dem Differentialinformationenverwaltungsblock 204, die
nachstehend beschrieben werden.
-
Wenn
die Differentialdaten entsprechend einer Blockadresse der primären LU 201 in
der Differential-LU 206 erfasst worden sind, sind die Bits
entsprechend der primären
LU 201 in der Differential-Bitmap 202 gleich „1". Daher ist es beim
Schreiben in die primäre
LU 201 unter Bezugnahme auf die Differential-Bitmap 202 möglich, zu
beurteilen, ob ein Kopieren der Daten vor dem Aktualisieren in die
Differential-LU nötig
ist oder nicht (falls die Bits gleich „1" sind, sind die Daten zum Zeitpunkt
der Snapshot-Erzeugung bereits in die Differential-LU 206 geschrieben
worden; folglich ist ein Kopieren der Daten von der primären LU 201 in
die Differential-LU 206 nicht nötig).
-
Die
primäre
LU-Adresstabelle 203, die im Verwaltungsbereich des Cachespeichers 107 vorgesehen
ist, enthält
die Adressen des Differentialinformationenverwaltungsblocks 204 in
einer den Bits der Differential-Bitmap 202 entsprechenden
Weise.
-
Der
Differentialinformationenverwaltungsblock 204, der dieselbe
Kapazität
wie die Differential-LU 206 aufweist, ist im Verwaltungsbereich
des Cachespeichers 107 angeordnet. Der Differentialinformationenverwaltungsblock 204 ist
jeweils auf Blockbasis (zum Beispiel 64 kB/Block) entsprechend der
Differential-LU 206 unterteilt, und umfasst eine Verwaltungstabelle
in jedem Block. Diese Verwaltungstabelle enthält Informationen, die angeben,
welche Generation von Snapshot-Daten die Differentialdaten sind,
wobei die Differentialdaten an einer Position entsprechend dem jeweiligen Block
der Differential-LU 206 aufgezeichnet sind. Falls weitere
Differentialdaten entsprechend dem Block der primären LU 201 vorliegen,
enthält
diese Verwaltungstabelle auch Verknüpfungsinformationen zu der
Adresse im Differentialinformationenverwaltungsblock 204.
Das Suchen nach und Verfolgen der im Differentialinformationenverwaltungsblock 204 festgehaltenen Adresse
macht es nämlich
möglich,
auf die Differentialdaten in mehreren Generationen Bezug zu nehmen.
-
Im Übrigen sind
in dem unbenutzten Bereich des Differentialinformationenverwaltungsblocks 204 Verknüpfungen
als leere Warteschlangen eingerichtet. Außerdem wird die Anzahl der
leeren Warteschlangen mit einem Zähler 205 für leere
Warteschlangen im Cachespeicher 107 verwaltet.
-
Die
Differential-LU 206 enthält die im Poolbereich registrierte
LU. Diese Differential-LU 206 dupliziert darin die Daten
der primären
LU 201 zum Zeitpunkt der Snapshot-Erzeugung. Darüber hinaus ist es durch Bezugnahme
auf die Generationsverwaltungs-Bitmap im Differentialinformationenverwaltungsblock 204 möglich, zu
wissen, welche Generation von Differentialdaten die Daten in der
Differential-LU 206 sind.
-
Dementsprechend
wird beim Schreiben der Daten in die primäre LU durch Bezugnahme auf
die Differential-Bitmap 202 zuerst beurteilt, ob ein Kopieren
der Daten vor dem Aktualisieren in die Differential-LU nötig ist
oder nicht. Außerdem
wird, falls festgestellt wird, dass die entsprechenden Bits in der
Differential-Bitmap 202 „1" sind, beurteilt, dass ein Kopieren
der Daten vor dem Aktualisieren in die Differential-LU nicht nötig ist.
Folglich werden die Daten in die primäre LU geschrieben. Dabei werden,
falls festgestellt wird, dass die entsprechenden Bits in der Differential-Bitmap 202 „0" sind, die Daten
in die primäre LU
geschrieben, nachdem die Daten vor dem Aktualisieren in die Differential-LU
kopiert worden sind.
-
Danach
wird die Verknüpfungsadresse
für die
neu eingestellten Differentialdaten im Block des Differentialinfor mationenverwaltungsblocks 204 entsprechend
dem Block der primären
LU eingestellt. Außerdem
wird je nach Bedarf die Adresse des Blocks des Differentialinformationenverwaltungsblocks 204 auf
die primäre
LU-Adresstabelle eingestellt. Darüber hinaus werden die entsprechenden Bits
in der Differential-Bitmap 202 auf „1" gesetzt. Danach wird die Generationsverwaltungs-Bitmap
des Differentialinformationenverwaltungsblocks 204 eingestellt,
die der Adresse der Differential-LU 206 entspricht, in
die die Daten vor dem Aktualisieren geschrieben worden sind. Weil
die leeren Warteschlangen des Differentialinformationenverwaltungsblocks 204 benutzt
worden sind, wird darüber
hinaus der Zähler 205 für leere
Warteschlangen aktualisiert.
-
Außerdem wird
beim Zugriff auf eine virtuelle LU (das heißt V-VOL = virtuelles Volumen)
durch Bezugnahme auf die primäre
LU-Adresstabelle 203 die Adresse des Differentialinformationenverwaltungsblocks 204 basierend
auf der Blockadresse der virtuellen LU angegeben, die das Zugriffsziel
wird. (Diese Blockadresse ist dieselbe wie die der primären LU.) Danach
wird basierend auf der Generationsverwaltungs-Bitmap der Adresse des Differentialinformationenverwaltungsblocks 204 angegeben,
ob Differentialdaten der Zugriffszielgeneration vorliegen oder nicht.
Falls die Differentialdaten der gewünschten Generation vorliegen,
werden außerdem
die Differentialdaten von der Adresse der Differential-LU 206 gelesen,
die der Adresse des Differentialinformationenverwaltungsblocks 204 entspricht,
wodurch das Abbild der virtuellen LU bereitgestellt wird. Falls
jedoch keine Differentialdaten der gewünschten Generation vorliegen,
wird auf die Verknüpfungsadressen für die anderen
Differentialdaten Bezug genommen, wodurch nach den Differentialdaten
der gewünschten
Generation gesucht wird. Falls es sich bei den Differentialdaten
nicht um die der gewünschten
Generation handelt, werden außerdem
die in der primären
LU aufgezeichneten Daten zum gegenwärtigen Zeitpunkt als die Daten
der virtuellen LU bereitgestellt.
-
4 zeigt
ein Ablaufdiagramm der Verarbeitung zur Prüfung der freien Kapazität nach einer Ausführungsform
der vorliegenden Erfindung. Beim Kopieren von Differentialdaten
von einer primären
LU in eine Differential-LU durch eine Verarbeitung wie etwa eine
Datenschreibverarbeitung in die primäre LU wird die Verarbeitung
zur Prüfung
der freien Kapazität
durch das Pool-LU-Verwaltungsprogramm 142 ausgeführt.
-
Zuerst
wird die freie Kapazität
(die auch die bereits benutzte Kapazität sein kann) des Poolbereichs
(das heißt
der Differential-LU) durch Bezugnahme auf den Zähler 205 für leere
Warteschlangen bestätigt
(S101).
-
Als
Nächstes
wird ein Vergleich zwischen der in Schritt S101 erfassten Nutzungsmenge
des Poolbereichs und einem vorbestimmten LU-Hinzufügungsschwellenwert
(70%) vorgenommen, wodurch beurteilt wird, ob die Nutzungsmenge
des Poolbereichs den LU-Hinzufügungsschwellenwert
(70%) überschritten
hat oder nicht (S102). Falls die Nutzungsmenge des Poolbereichs
den LU-Hinzufügungsschwellenwert
(70%) überschritten
hat, wird außerdem
eine LU-Hinzufügungsverarbeitung (5)
durchgeführt
(S103).
-
Es
ist wünschenswert,
dass dieser LU-Hinzufügungsschwellenwert
im Wesentlichen auf 70% eingestellt ist, wobei genügend Kapazitätsspielraum verbleibt,
so dass die Nutzungsmenge des Poolbereichs 100% nicht erreicht.
Dennoch ist es je nach Betriebszustand der Speichervorrichtung (zum
Beispiel der Anzahl der Datenein-/ausgabeanforderungen) möglich, den
LU-Hinzufügungsschwellenwert zu ändern.
-
Außerdem wird
während
der Durchführung der
LU-Hinzufügungsverarbeitung
zum Poolbereich ein Schwellenwert eingestellt, der höher als
der Schwellenwert zur normalen Zeit ist (der zum Beispiel 75% bezogen
auf 70% zur normalen Zeit beträgt).
Obwohl jetzt die LU-Hinzufügungsverarbeitung
durchgeführt
wird, weil die Nutzungsmenge des Poolbereichs den LU-Hinzufügungsschwellenwert überschritten
hat, ist es daher möglich,
die Durchführung
einer neuen LU-Hinzufügungsverarbeitung
zu verhindern.
-
Als
Nächstes
wird beurteilt, ob die Nutzungsmenge des Poolbereichs einen E/A-Begrenzungsschwellenwert
(90%) überschritten
hat oder nicht (S104). Falls die Nutzungsmenge des Poolbereichs den
E/A-Begrenzungsschwellenwert (90%) überschritten hat, wird das
Schreiben von Daten vom Host 3 begrenzt (S105). Bei dieser
E/A-Begrenzung wird einer handbetätigten virtuellen LU-Löschungsverarbeitung
eine Priorität
zugewiesen, so dass die Datenschreibanforderungen und die Differentialdaten-Löschungsverarbeitungen
im Wesentlichen in eine Eins-zu-Eins-Entsprechung gebracht werden. Dadurch
soll verhindert werden, dass die Nutzungsmenge des Poolbereichs
größer wird
als dieser Schwellenwert.
-
Als
Nächstes
wird beurteilt, ob die Nutzungsmenge des Poolbereichs einen virtuellen
LU-Deaktivierungsschwellenwert (95%) überschritten hat oder nicht
(S106). Falls die Nutzungsmenge des Poolbereichs den virtuellen
LU-Deaktivierungsschwellenwert (95%) überschritten hat, wird die
virtuelle LU-Löschungsverarbeitung
(7) durchgeführt
(S107). Diese virtuelle LU-Löschungsverarbeitung
ermöglicht das
Einrichten einer kleinen Menge freier Kapazität, während eine Leistungsminderung
bei der Betriebsverwaltung vermieden wird.
-
Die
virtuelle LU-Löschungsverarbeitung muss
abgeschlossen sein, bevor die Nutzungsmenge des Poolbereichs 100%
erreicht. Daher ist es wünschenswert,
diesen virtuellen LU-Deaktivierungsschwellenwert
im Wesentlichen auf 95% einzustellen, wobei ein geringer Kapazitätsspielraum
verbleibt. Dennoch ist es je nach Betriebszustand der Speichervorrichtung
(zum Beispiel der Anzahl der Datenein-/ausgabeanforderungen) möglich, den
virtuellen LU-Deaktivierungsschwellenwert zu ändern.
-
Außerdem wird
der virtuelle LU-Deaktivierungsschwellenwert bei der ersten Beurteilung
auf 95% eingestellt, und bei der zweiten oder späteren Beurteilung während der Durchführung der
virtuellen LU-Löschungsverarbeitung
wird er auf einen etwas höheren
Wert (zum Beispiel 96%) eingestellt. Obwohl jetzt die virtuelle
LU-Löschungsverarbeitung
durchgeführt
wird, weil die Nutzungsmenge des Poolbereichs den virtuellen LU-Deaktivierungsschwellenwert überschritten
hat, ist es daher möglich,
die Durchführung
einer neuen virtuellen LU-Löschungsverarbeitung
zu verhindern.
-
Im Übrigen kann,
wenn die gesamte Kapazität
des Poolbereichs größer als
200 GB ist, die virtuelle LU-Löschungsverarbeitung
auch ausgeführt
werden, wenn die Restkapazität
des Poolbereichs auf weniger als 10 GB gesunken ist (ohne die vorstehend beschriebenen
Verhältnisse
für die
Nutzungsmenge des Poolbereichs zu verwenden).
-
Als
Nächstes
wird beurteilt, ob die Nutzungsmenge des Poolbereichs einen primären LU-Deaktivierungsschwellenwert
(99%) überschritten
hat oder nicht (S108). Dieser primäre LU-Deaktivierungsschwellenwert
ermöglicht
die folgenden Beurteilungen: Die Möglichkeit, dass die Nutzungsmenge
des Poolbereichs 100% erreicht, ist sehr hoch, und es ist erforderlich,
dringend und sicher eine freie Kapazität sicherzustellen. Außerdem wird,
falls die Nutzungsmenge des Poolbereichs den primären LU-Deaktivierungsschwellenwert
(99%) überschritten
hat, eine virtuelle LU-Löschungsverarbeitung
(11) durchgeführt
(S109).
-
Im Übrigen kann,
wenn die gesamte Kapazität
des Poolbereichs größer als
200 GB ist, die virtuelle LU-Löschungsverarbeitung
auch ausgeführt
werden, wenn die Restkapazität
des Poolbereichs auf weniger als 2 GB gesunken ist (ohne die vorstehend beschriebenen
Verhältnisse
für die
Nutzungsmenge des Poolbereichs zu verwenden).
-
Auf
diese Weise werden die virtuellen LU-Löschungen in Reaktion auf den
Grad der Dringlichkeit in mehreren Schritten ausgeführt. Dies
ermöglicht
es, sicher zu verhindern, dass die Nutzungsmenge des Poolbereichs
100% erreicht.
-
Als
Nächstes
wird beurteilt, ob die Nutzungsmenge des Poolbereichs einen Deaktivierungsschwellenwert
für alle virtuellen
LUs (100%) erreicht hat oder nicht (S110). Darüber hinaus werden, falls die
Nutzungsmenge des Poolbereichs 100% erreicht hat, alle in der Paarzustandsverwaltungstabelle
erfassten Zustände
der virtuellen LUs, die den Poolbereich benutzen, auf einen Fehlerzustand
(PSUE) geändert,
ehe alle virtuellen LUs gelöscht
werden, die den Poolbereich benutzen (S111).
-
Auf
diese Weise ermöglicht
die Verarbeitung zur Prüfung
der freien Kapazität
nach der Ausführungsform
der vorliegenden Erfindung das automatische Löschen der virtuellen LUs entsprechend
den vorgegebenen Bedingungen und ohne Eingreifen des Verwalters.
Dadurch kann verhindert werden, dass die Nutzungsmenge des Poolbereichs
100% erreicht. Außerdem
ermöglicht
die Prüfverarbeitung
ein schrittweises Löschen
der virtuellen LUs entsprechend der Nutzungsmenge des Poolbereichs.
Dies ermöglicht
es, eine Leistungsminderung bei der Betriebsverwaltung auf das geringstmögliche Maß zu verringern.
-
5 zeigt
ein Ablaufdiagramm der LU-Hinzufügungsverarbeitung
nach einer Ausführungsform der
vorliegenden Erfindung. Die LU-Hinzufügungsverarbeitung wird von
(Schritt S103 in 4) der Verarbeitung zur Prüfung der
freien Kapazität
aufgerufen (das heißt
wenn die Nutzungsmenge des Poolbereichs den LU-Hinzufügungsschwellenwert
(70%) überschritten
hat). Danach wird die aufgerufene LU-Hinzufügungsverarbeitung durch das Pool-LU-Verwaltungsprogramm 142 ausgeführt.
-
Zunächst wird
durch Nachsehen in einer. automatischen Pool-Hinzufügungsziel-Verwaltungstabelle 143 (6)
beurteilt, ob LUs als automatische Pool-Hinzufügungsziele registriert worden
sind oder nicht (S121). Falls keine LUs als automatische Pool-Hinzufügungsziele
registriert worden sind, existiert keine der LUs, die hinzugefügt werden
sollen. Daher endet diese Verarbeitung, ohne die LUs hinzuzufügen. Falls
hingegen LUs als automatische Pool-Hinzu fügungsziele registriert worden
sind, wird die Verarbeitung mit Schritt S122 fortgesetzt.
-
In
Schritt S122 wird durch Nachsehen in einer Pool-Verwaltungstabelle 141 (6)
beurteilt, ob in dem Poolbereich registrierte LUs eine maximale Anzahl
erreicht haben oder nicht. Dieser Maximalwert der Registrierungsanzahl
im Poolbereich wird durch die Kapazität der Pool-Verwaltungstabelle 141 bestimmt.
Falls die Anzahl der in der Pool-Verwaltungstabelle 141 registrierten
LUs bereits gleich der maximalen Anzahl ist, ist es nicht möglich, neue
LUs in der Pool-Verwaltungstabelle 141 hinzuzufügen. Daher
endet diese Verarbeitung, ohne die LUs hinzuzufügen. Falls jedoch die Anzahl
der in der Pool-Verwaltungstabelle 141 registrierten LUs
die maximale Anzahl noch nicht erreicht hat, wird die Verarbeitung mit
Schritt S123 fortgesetzt.
-
In
Schritt S123 wird beurteilt, ob freie Kapazität im Verwaltungsbereich des
Cachespeichers 107 vorhanden ist oder nicht. Dies erfolgt,
weil eine Erhöhung
der Kapazität
des Differentialinformationenverwaltungsblocks 204 in Verbindung
mit dem Hinzufügen
der LUs in den Poolbereich nötig
ist. Falls keine freie Kapazität
im Verwaltungsbereich des Cachespeichers 107 vorhanden
ist, ist es außerdem
nicht möglich,
den Bereich des Differentialinformationenverwaltungsblocks 204 zu
vergrößern. Daher
endet diese Verarbeitung, ohne die LUs hinzuzufügen. Falls jedoch freie Kapazität im Verwaltungsbereich des
Cachespeichers 107 vorhanden ist, wird die Verarbeitung
mit Schritt S124 fortgesetzt.
-
Wenn
die Bedingungen, auf deren Grundlage die LUs hinzugefügt werden
sollen, durch die Verarbeitungen in Schritt S121 bis S123 bestätigt worden
sind, werden die zu verschiebenden LUs aus der automatischen Pool-Hinzufügungsziel-Verwaltungstabelle 143 gelöscht und
dann in der Pool-Verwaltungstabelle 141 hinzugefügt. Dadurch
werden die hinzugefügten
LUs als Differential-LUs verfügbar (S124).
-
Als
diese zu verschiebenden LUs können mehrere
LUs im Voraus in der Pool-Verwaltungstabelle 141 festgelegt
wer den. Eine Anordnung wie diese macht es möglich, die LUs in einer nötigen Anzahl hinzuzufügen. Als
Beispiel wird angenommen, dass zehn LUs mit je 100 GB registriert
worden sind. Wenn ein Fall einzutreten scheint, dass dem Poolbereich eine
Kapazität
von 300 GB fehlt, werden drei 100 GB-LUs zum Poolbereich hinzugefügt. Auf
diese Weise werden die verbleibenden sieben LUs für andere
Zwecke verfügbar.
-
Danach
wird die Adresse einer leeren Warteschlange in dem neu vergrößerten Bereich
des Differentialinformationenverwaltungsblocks 204 als
die letzte leere Warteschlange des Differentialinformationenverwaltungsblocks 204 eingestellt,
der von zuvor normal vorgelegen hat. Diese Einstellung verbindet die
neu vergrößerte leere
Warteschlange mit der vorherigen leeren Warteschlange (S125).
-
6 zeigt
ein erläuterndes
Diagramm der LU-Hinzufügungsverarbeitung
nach einer Ausführungsform
der vorliegenden Erfindung.
-
Im
Hinblick auf eine primäre
LU (LU0) wird eine virtuelle LU (LU2) eingerichtet, die dazu auslegt ist,
das Abbild der Daten zum Zeitpunkt der Snapshot-Erzeugung bereitzustellen.
Diese LU2 ist eine virtuelle Logikeinheit, die die Daten der primären LU und
die im Poolbereich vorhandenen Differentialdaten enthält. Das
heißt,
wenn es zu einem Zugriff auf die LU2 kommt, wird geprüft, ob die
Daten in der primären
LU vorhanden sind oder die Daten die im Poolbereich vorliegenden
Differentialdaten sind. Diese Beurteilung ermöglicht die Durchführung eines Zugriffs
auf die Differential-LU.
-
Die
zum Poolbereich hinzuzufügenden
LUs werden wie folgt gehandhabt: Die in der automatischen Pool-Hinzufügungsziel-Verwaltungstabelle 143 registrierten
LUs (LU6 und LU7) werden daraus gelöscht und danach in der Pool-Verwaltungstabelle 141 hinzugefügt. Dadurch
werden die hinzugefügten LUs
als Differential-LUs verfügbar.
-
Auf
diese Weise werden bei der LU-Hinzufügungsverarbeitung nach der
Ausführungsform
der vorliegenden Erfindung die mehreren LUs zum Erhöhen der
Kapazität
des Poolbereichs im Voraus vorbereitet. Falls die Nutzungsmenge
des Poolbereichs dann einen bestimmten Schwellenwert überschritten hat,
werden die LUs automatisch im Poolbereich hinzugefügt. Dies
vergrößert die
Kapazität
des Poolbereichs, wodurch verhindert wird, dass die Nutzungsmenge
des Poolbereichs 100% erreicht. Falls die Nutzungsmenge des Poolbereichs
klein ist und daher keine LUs hinzugefügt werden müssen, stehen daher die LUs
für andere
Zwecke zur Verfügung.
Folglich wird es möglich,
die Kapazität
der Speicherplatte effektiv zu nutzen, ohne eine unnötige Speicherplatte im
Poolbereich zu registrieren.
-
7 zeigt
ein Ablaufdiagramm der virtuellen LU-Löschungsverarbeitung
(virtuelle LU-Einheit) nach einer Ausführungsform der vorliegenden
Erfindung. Die virtuelle LU-Löschungsverarbeitung
wird von (Schritt S107 in 4) der Verarbeitung
zur Prüfung
der freien Kapazität
aufgerufen (das heißt
wenn die Nutzungsmenge des Poolbereichs den virtuellen LU-Deaktivierungsschwellenwert
(95%) überschritten
hat). Danach wird die aufgerufene virtuelle LU-Löschungsverarbeitung
durch das Pool-LU-Verwaltungsprogramm 142 ausgeführt.
-
Zuerst
wird auf der Grundlage von Informationen, die der Verwalter eingestellt
hat, eine zu löschende
virtuelle LU bestimmt (S131). Es gibt verschiedene Verfahren zum
Festlegen dieser virtuellen LU, die gelöscht werden soll. Bei einem
Verfahren werden die Daten einer virtuellen LU gelöscht, die
zur ältesten
Generation gehören.
Es ist auch möglich,
die Daten einer virtuellen LU zu löschen, die zu einer vom Verwalter
vorgegebenen Generation gehören. Die
Masken, mit denen der Verwalter die zu löschende virtuelle LU einstellt,
sind im Übrigen
weiter unten beschrieben (9 und 10).
-
Um
die älteste
virtuelle LU auszuwählen, wird
auch in der Paarinformationenverwaltungstabelle für alle primären LUs
(8) nachgesehen, wodurch die Paarzustände der
vir tuellen LUs sowie Uhrzeit und Datum der Snapshot-Erzeugung abgerufen werden.
Durch dieses Abrufen kann die älteste
virtuelle LU unter den virtuellen LUs ausgewählt werden, deren Paarzustände getrennte
Zustände
(PSUS) geworden sind. Weil die virtuelle LU im Paarzustand (PAIR)
keine reale Substanz hat, wird die virtuelle LU im getrennten Zustand,
die ihre reale Substanz hat, als das Löschungsziel ausgewählt.
-
Weiter
wird die virtuelle LU-Löschungsverarbeitung
in der virtuellen LU-Einheit registriert, und danach wird diese
Verarbeitung im Hintergrund ausgeführt (S132). Diese Löschungsverarbeitung
löscht
die Daten der bestimmten virtuellen LU. Die Differentialdaten sind
eingeteilt in Daten, die für
mehrere Generationen gemeinsam verwendet werden, und Daten, die
nur für
eine Generation des Löschungsziels
verwendet werden. Daher muss zuerst beurteilt werden, zu welcher
der beiden Arten von Daten die Differentialdaten gehören. Als
Ergebnis der Bestätigung
der Generationsverwaltungs-Bitmap des Differentialinformationenverwaltungsblocks 204 werden,
falls der Differentialinformationenverwaltungsblock 204 nur für die Generation
des Ziels verwendet worden ist, die Daten des Differentialinformationenverwaltungsblocks 204 aktualisiert,
wodurch dieser in eine leere Warteschlange geändert wird. Falls der Differentialinformationenverwaltungsblock 204 jedoch
von den mehreren Generationen gemeinsam benutzt worden ist, werden
die gemeinsamen Informationen (das heißt die Generationsverwaltungs-Bitmap)
des Differentialinformationenverwaltungsblocks 204 aktualisiert.
-
Weiter
wird der Paarzustand der in der Paarinformationenverwaltungstabelle
(8) erfassten virtuellen LU, die das Löschungsziel
wird, in einen Fehlerzustand (PSUS) geändert, um das Paar zu trennen,
wodurch diese virtuelle LU nicht mehr verfügbar ist (S133).
-
Die
bisher beschriebene virtuelle LU-Löschungsverarbeitung wird durchgeführt, wenn
die Nutzungsmenge des Poolbe reichs den virtuellen LU-Deaktivierungsschwellenwert
(95%) überschritten
hat. Wird die Nutzungsmenge des Poolbereichs jedoch nicht kleiner
als der E/A-Begrenzungsschwellenwert (90%), obwohl die virtuelle
LU des Löschungsziels
gelöscht
worden ist, ist es zulässig,
das Löschen
der virtuellen LU nicht durchzuführen.
-
Auf
diese Weise wird bei der virtuellen LU-Löschungsverarbeitung (virtuelle
LU-Einheit) der Paarzustand der virtuellen LU des Löschungsziels (zum
Beispiel die älteste
virtuelle LU) aufgehoben. Dadurch kann die freie Kapazität erzeugt
werden, ohne erhebliche Einflüsse
auf die Fortschreibung der Snapshot-Abbilder auszuüben. Außerdem wird
die zu löschende
virtuelle LU auf der Grundlage der vom Verwalter eingestellten Informationen
bestimmt. Dadurch kann die freie Kapazität der LU so vergrößert werden,
dass die virtuellen LUs, die beibehalten werden sollen, beibehalten
werden, auch wenn die Daten darin alte Daten sind. Außerdem wird
die virtuelle LU-Löschungsverarbeitung
im Hintergrund durchgeführt.
Dadurch kann die freie Kapazität
für die
Daten erzeugt werden, während
eine Leistungsminderung bei der Betriebsverwaltung vermieden wird.
-
8 zeigt
ein erläuterndes
Diagramm der Paarinformationenverwaltungstabelle nach einer Ausführungsform
der vorliegenden Erfindung.
-
Die
Paarinformationenverwaltungstabelle ist für jede primäre LU vorgesehen. Die Paarinformationenverwaltungstabelle
enthält
die Paarzustände
für jede
primäre
LU und die virtuellen LUs der jeweiligen Generationen sowie Uhrzeit
und Datum der Erzeugung der virtuellen LUs. Diese erfassten Daten
ermöglichen
die Verwaltung der Beziehung zwischen jeder primären LU und den virtuellen LUs.
So ist zum Beispiel die 13. virtuelle LU für die 0. primäre LU um 22:30:30
Uhr am 24. November 2003 erzeugt worden, und der Paarzustand (PAIR)
besteht gegenwärtig
auch noch. Das heißt,
die 13. virtuelle LU ist die neueste virtuelle LU, in die die Differentialdaten
gegenwärtig
geschrieben worden sind.
-
Weiter
ist die 0. virtuelle LU für
die 0. primäre LU
um 8:30:30 Uhr am 0. Oktober 2003 durch die Bedingung erzeugt worden,
dass die Snapshot-Erzeugungsanforderung akzeptiert worden ist. Gegenwärtig ist
die 0. virtuelle LU in einem getrennten Zustand (PSUS), wo die virtuelle
LU erzeugt worden ist. Diese virtuelle LU im getrennten Zustand
wird ein Löschungsziel.
Weiter ist die 9. virtuelle LU für
die 0. primäre
LU um 10:10:10 Uhr am 20. September 2003 erzeugt worden, ist aber
eine bereits gelöschte
virtuelle LU. Daher ist die 9. virtuelle LU in einem Fehlerzustand
(PSUE) und als Löschungsziel
registriert.
-
Die
Paarinformationenverwaltungstabelle ermöglicht die Kontrolle der virtuellen
LUs der Löschungsziele,
die Durchführung
der Löschungsregistrierung
und die Bestimmung einer zu löschenden
virtuellen LU. Im Übrigen
wird nach der Bestimmung der Löschungsziel-LU
das eigentliche Löschen
der Differentialdaten durch das Pool-Verwaltungsprogramm 150 durchgeführt.
-
9 zeigt
ein erläuterndes
Diagramm der Einstellmasken für
die virtuelle LU-Löschungsverarbeitung
nach einer Ausführungsform
der vorliegenden Erfindung.
-
9(a) mit einer Hauptmaske zum Einstellen
der virtuellen LU-Löschungsinformationen
zeigt einen Zustand, bei dem eine Registerkarte „Löschen zulassen" gewählt ist.
In dieser Maske wird bezüglich der
Löschungspriorität zwischen „Virtuelle
LU wird ab der ältesten
Uhrzeit und dem ältesten
Datum gelöscht" bezogen auf Uhrzeit
und Datum der Erzeugung der virtuellen LUs oder „Angegebene virtuelle LU wird
gelöscht" gewählt. Wenn „Angegebene
virtuelle LU wird gelöscht" gewählt wird,
wird eine Schaltfläche „Angaben
bestätigen" aktiviert. Außerdem wird durch
Betätigen
der Schaltfläche „Angaben
bestätigen" von der Hauptmaske
auf eine Untermaske zum Einstellen der Löschungspriorität (9(b)) für eine ausgewählte primäre LU gewechselt.
In der Untermaske zum Einstellen der Löschungspriorität ist es durch
Markieren der Löschungskontrollfelder
möglich,
die Erlaubnis zum Löschen
für jede
virtuelle LU einzeln einzustellen. Außerdem ist es durch Markieren
der Löschungskontrollfelder
möglich,
die Priorität auszuwählen. Im Übrigen kann
anstelle der Einstufungen „hoch", „mittel" und „niedrig" die Priorität auch individuell
eingestellt werden.
-
10 zeigt
ein erläuterndes
Diagramm der Einstellmasken für
die virtuelle LU-Löschungsverarbeitung
nach einer Ausführungsform
der vorliegenden Erfindung.
-
10(a) mit einer Hauptmaske zum Einstellen
der virtuellen LU-Löschungsinformationen zeigt
einen Zustand, bei dem eine Registerkarte „Löschschutz" gewählt
ist. In dieser Maske wird eine primäre LU ausgewählt, und
die Schaltfläche „Angaben
bestätigen" wird betätigt. Dadurch
wechselt die Hauptmaske auf eine Untermaske zum Einstellen des Löschschutzes
(10(b)) für die ausgewählte primäre LU. In
der Untermaske zum Einstellen des Löschschutzes ist es durch Markieren
der Löschschutzfelder
möglich,
den Löschschutz
für jede
virtuelle LU einzeln einzustellen.
-
11 zeigt
ein Ablaufdiagramm der virtuellen LU-Löschungsverarbeitung
(primäre
LU-Einheit) nach einer Ausführungsform
der vorliegenden Erfindung. Die virtuelle LU-Löschungsverarbeitung
wird von (Schritt S109 in 4) der Verarbeitung
zur Prüfung
der freien Kapazität
aufgerufen (das heißt
wenn die Nutzungsmenge des Poolbereichs den primären LU-Deaktivierungsschwellenwert
(99%) überschritten
hat). Danach wird die aufgerufene virtuelle LU-Löschungsverarbeitung durch das
Pool-LU-Verwaltungsprogramm 142 ausgeführt.
-
Zuerst
wird durch Nachsehen in der Paarinformationenverwaltungstabelle
beurteilt, ob die virtuelle LU gegenwärtig gelöscht wird oder nicht. Das heißt, falls
das Paarzustandsfeld in der Paarinformationenverwaltungstabelle „PSUS" lautet, wird entschieden,
dass die virtuelle LU gegenwärtig
gelöscht wird
(S141). Weil festgestellt worden ist, dass die virtuelle LU gelöscht wird,
und um eine Priorität
für das Löschen der
virtuellen LU festzulegen und die freie Kapazität des Poolbereichs schnell
zu sichern, geht die Verarbeitung als Folge weiter zu Schritt S144
und setzt dann die Löschungsverarbeitung
fort, die gegenwärtig
ausgeführt
wird. Falls die virtuelle LU gegenwärtig nicht gelöscht wird,
wird das Löschen
der virtuellen LU neu ausgeführt.
-
Daher
wird zuerst eine primäre
LU entsprechend dem Löschen
der virtuellen LU bestimmt (S142). Als diese primäre LU kann
eine primäre
LU gewählt
werden, die vom Verwalter zuvor festgelegt worden ist. Darüber hinaus
ist es auch möglich,
eine primäre
LU zu wählen,
die eine Datenschreibanforderung von einem der Hosts 3 empfangen
hat. Hierbei ist es sehr wahrscheinlich, dass der Host, der die Datenschreibanforderung
gegenwärtig
gesendet hat, auch eine Ursache für die Verringerung der freien
Kapazität
des Poolbereichs geworden ist. Folglich ist es durch Auswählen der
an der Datenschreibanforderung beteiligten primären LU möglich, den Zugriff von dem
Host zu stoppen.
-
Darüber hinaus
wird das Schreiben von Daten von allen Hosts 3 gestoppt
(S143). Durch dieses Stoppen des Schreibens von Daten kann die Löschungsverarbeitung
der virtuellen LUs mit einer höheren
Priorität
als der für
andere Verarbeitungen ausgeführt
werden, wodurch es möglich
ist, die freie Kapazität
schnell zu sichern.
-
Außerdem wird
das Löschen
der virtuellen LUs ausgeführt,
die mit der vorstehend gewählten primären LU in
Verbindung stehen (S144). Bei dieser Löschungsverarbeitung wird durch
Nachsehen in der primären
LU-Adresstabelle 203 der ausgewählten primären LU der im Differentialinformationenverwaltungsblock 204 enthaltene
Inhalt gelöscht,
um die Daten im Differentialinformationenverwaltungsblock 204 an
der Adresse in eine leere Warteschlange zu ändern. Dieser Vorgang löscht die
virtuellen LUs, wodurch die freie Kapazität des Poolbereichs sichergestellt
wird. Bei dieser Löschungsverarbeitung
ist es im Vergleich zu der vorstehend beschriebenen virtuellen LU-Löschungsverarbeitung
in der virtuellen LU-Einheit (das heißt S132 in 7)
nicht nötig,
in den Daten (das heißt
der Generationsverwaltungs-Bitmap)
des Differentialinformationenverwaltungsblocks 204 nachzusehen,
um die Generationen der virtuellen LUs zu identifizieren. Dadurch
kann ein schnelles Löschen
der virtuellen LUs realisiert werden.
-
Darüber hinaus
werden, wenn die freie Kapazität
des Poolbereichs gesichert ist, die Datenschreibverarbeitungen von
den Hosts 3 neu gestartet (S145).
-
Auf
diese Weise werden bei der virtuellen LU-Löschungsverarbeitung (primäre LU-Einheit), wenn
die Nutzungsmenge den Schwellenwert überschritten hat, die Paarzustände aller
virtuellen LUs, die mit der ausgewählten primären LU des Löschungsziels
in Verbindung stehen (zum Beispiel eine primäre LU, an die eine Datenein-/ausgabeanforderung
gegeben worden ist) in „PSUE" geändert, wodurch
die Paarzustände
aufgehoben werden. Diese Paartrennungsverarbeitung, die im Hintergrund ausgeführt wird,
ermöglicht
das Löschen
großer Mengen
von Daten (das heißt
im Wesentlichen 100 MB) in einem Auftrag oder JOB. Das heißt, um alle virtuellen
LUs, die mit der ausgewählten
primären
LU in Verbindung stehen, zu löschen,
wird das Schreiben von Daten von allen Hosts vorübergehend gestoppt, und danach
werden die Daten in der primären LU-Einheit
vollständig
(oder in einer jeweils vorbestimmten Kapazität von zum Beispiel 100 MB)
gelöscht.
Auf diese Weise werden, nachdem eine bestimmte Menge an freier Kapazität des Poolbereichs sichergestellt
worden ist, die Datenschreibanforderungen von den Hosts wieder gestartet.
Daher ist es möglich,
die freie Kapazität
des Poolbereichs schnell und sicher zu erhöhen. Außerdem werden die virtuellen
LUs im Hinblick auf eine bestimmte primäre LU gelöscht. Folglich wird es möglich, den
Zugriff von einem bestimmten Host in Zusammenhang mit der bestimmten
primären
LU zu stoppen.
-
Als
repräsentative
Gesichtspunkte der vorliegenden Erfindung außer denen, die in den anliegenden
Ansprüchen
beschrieben sind, seien folgende Aspekte genannt:
Ein Speicherplattenanordnungs-Steuerungsverfahren,
wobei die Speicherplattenanordnungsvorrichtung umfasst:
eine übergeordnete
Schnittstelle, die mit einer übergeordneten
Vorrichtung verbunden ist und Daten von der übergeordneten Vorrichtung empfängt;
einen
Speicher, der mit der übergeordneten
Schnittstelle verbunden ist und Daten und Steuerinformationen über die
Daten speichert, wobei die Daten mit der übergeordneten Vorrichtung ausgetauscht
werden;
mehrere Speicherplattenschnittstellen, die mit dem Speicher
verbunden sind und die Daten so steuern, dass die Daten aus dem
Speicher ausgelesen bzw. in diesen hineingeschrieben werden, wobei
die Daten mit der übergeordneten
Vorrichtung ausgetauscht werden;
mehrere Speicherplattenlaufwerke,
die mit den mehreren Speicherplattenschnittstellen verbunden sind und
die Daten unter der Steuerung durch die mehreren Speicherplattenschnittstellen
speichern, wobei die Daten von der übergeordneten Vorrichtung übertragen
werden; und
einen Steuerprozessor zum Steuern des Auslesens und
Hineinschreibens von Daten aus bzw. in ein erstes logisches Volumen,
das unter Verwendung eines Speicherbereichs der mehreren Speicherplattenlaufwerke
geschaffen worden ist, um vergangene Daten so zu steuern, dass die
vergangenen Daten in ein zweites logisches Volumen als Differentialdaten
auf der Grundlage der jeweiligen Datengeneration geschrieben werden,
wobei die vergangenen Daten im ersten logischen Volumen gespeichert
werden, und um eine Snapshot-Verwaltungstabelle in einem Bereich
des Speichers vorzusehen, um dadurch die Differentialdaten auf jeder
Generationsgrundlage zu verwalten, wobei die Snapshot-Verwaltungstabelle dazu
ausgelegt ist, die Beziehung bezüglich
der im zweiten logi schen Volumen gespeicherten Differentialdaten
zu verwalten, wobei:
der Steuerprozessor
eine Menge von
Differentialdaten verwaltet, die im zweiten logischen Volumen gespeichert
sind, und
eine Kapazität
des zweiten logischen Volumens erhöht, falls die Menge der im
zweiten logischen Volumen gespeicherten Differentialdaten einen
ersten Anteil der Kapazität
des zweiten logischen Volumens überschritten
hat, und
das Schreiben von Daten in das erste logische Volumen
begrenzt, falls die Menge der im zweiten logischen Volumen gespeicherten
Differentialdaten einen zweiten Anteil der Kapazität des zweiten
logischen Volumens und der in das zweite logische Volumen geschriebenen
Differentialdaten überschritten hat,
die
Differentialdaten einer bestimmten Generation löscht, falls die Menge der im
zweiten logischen Volumen gespeicherten Differentialdaten einen
dritten Anteil der Kapazität
des zweiten logischen Volumens und der in das zweite logische Volumen
geschriebenen Differentialdaten überschritten
hat,
die dem bestimmten ersten logischen Volumen entsprechenden
Differentialdaten löscht,
falls die Menge der im zweiten logischen Volumen gespeicherten Differentialdaten
einen vierten Anteil der Kapazität
des zweiten logischen Volumens überschritten
hat, und
alle in das zweite logische Volumen geschriebenen Differentialdaten
löscht,
falls die Menge der im zweiten logischen Volumen gespeicherten Differentialdaten
einen fünften
Anteil der Kapazität
des zweiten logischen Volumens überschritten
hat.
-
Das
Speicherplattenanordnungs-Steuerungsverfahren, wobei der Steuerprozessor
außerdem
die Differentialdaten der ältesten
Generation als das Löschungsziel
bestimmt.
-
Das
Speicherplattenanordnungs-Steuerungsverfahren, wobei der Steuerprozessor
weiter bei der ersten Beurteilung beurteilt, ob die Menge der im
zweiten logischen Volumen gespeicherten Differentialdaten den ersten
vorbestimmten Wert überschritten
hat oder nicht, und wobei der Steuerprozessor bei der zweiten oder
späteren
Beurteilung während
der Differentialdaten-Löschungsverarbeitung unter
Verwendung eines zweiten vorbestimmten Werts, der größer als
der erste vorbestimmte Wert ist, beurteilt, ob die Menge der im
zweiten logischen Volumen gespeicherten Differentialdaten den zweiten vorbestimmten
Wert überschritten
hat oder nicht.
-
Das
Speicherplattenanordnungs-Steuerungsverfahren, wobei der Steuerprozessor
außerdem
vor dem Bestimmen des ersten logischen Volumens entsprechend den
Differentialdaten, die gelöscht
werden sollen, beurteilt, ob sich die Differentialdaten in Löschungsverarbeitung
befinden oder nicht, und der Steuerprozessor, falls sich die Differentialdaten
in Löschungsverarbeitung
befinden, die Löschungsverarbeitung
mit einer Priorität
ausführt,
wobei die Löschungsverarbeitung
gegenwärtig
ausgeführt
wird.