DE112013006504B4 - Speichersystem und Datenverwaltungsverfahren - Google Patents

Speichersystem und Datenverwaltungsverfahren Download PDF

Info

Publication number
DE112013006504B4
DE112013006504B4 DE112013006504.5T DE112013006504T DE112013006504B4 DE 112013006504 B4 DE112013006504 B4 DE 112013006504B4 DE 112013006504 T DE112013006504 T DE 112013006504T DE 112013006504 B4 DE112013006504 B4 DE 112013006504B4
Authority
DE
Germany
Prior art keywords
data
virtual
processing
storage devices
microprocessor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE112013006504.5T
Other languages
English (en)
Other versions
DE112013006504T5 (de
Inventor
Hiroaki Akutsu
Mikio Fukuoka
Eijyu KATSURAGI
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of DE112013006504T5 publication Critical patent/DE112013006504T5/de
Application granted granted Critical
Publication of DE112013006504B4 publication Critical patent/DE112013006504B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Abstract

Speichersystem, das eine Vielzahl von Speichereinrichtungen (180) und eine Steuereinheit umfasst, die dazu konfiguriert ist, virtuelle Datenträger (201) bereit zu stellen,wobei jeder einer Vielzahl von Datensätzen für die virtuellen Datenträger (201) aus einer ersten Anzahl von Datenelementen besteht, die eine Vielzahl von Daten und redundanten Daten der Vielzahl von Daten enthalten,wobei die Steuereinheit dafür ausgelegt ist:Verwalten einer Vielzahl von virtuellen Paritätsgruppen (204), wobei jede der Vielzahl von virtuellen Paritätsgruppen (204) eine Vielzahl von Kombinationen einer entsprechenden ersten Anzahl von Speichereinrichtungen (180) zum Speichern der Vielzahl von Datensätzen festlegt, wobei jeder Datensatz jeweils aus der ersten Anzahl von Datenelementen besteht, wobei die Vielzahl von Kombinationen der entsprechenden ersten Anzahl von Speichereinrichtungen (180) für jede der Vielzahl von virtuellen Paritätsgruppen (204) unterschiedlich sind, und wobei die erste Anzahl von Speichereinrichtungen (180) geringer ist als eine Anzahl der Vielzahl von Speichereinrichtungen (180),Zuweisen einer unterschiedlichen virtuellen Paritätsgruppe (204) zu jedem von mindestens zwei virtuellen Datenträgern (201) der virtuellen Datenträger (201), undDispersives Speichern der ersten Anzahl von Datenelementen von jedem der Vielzahl von Datensätzen in der Vielzahl von Speichereinrichtungen (180),wobei Datensätze für jeden der mindestens zwei virtuellen Datenträger (201) in der Vielzahl von Kombinationen der ersten vorbestimmten Anzahl von Speichereinrichtungen (180) gespeichert werden, die in einer jeweils zugewiesenen virtuellen Paritätsgruppe (204) eingestellt sind.

Description

  • [Technisches Gebiet]
  • Die vorliegende Erfindung betrifft ein Speichersystem, in welchem eine RAID- (Redundant Array of Independent Disks-) Gruppe aus einer Vielzahl von Speichervorrichtungen konfiguriert ist und geeigneterweise für ein Speichersystem verwendet werden kann, und ein Datenverwaltungsverfahren zum Verwalten von Daten in der RAID-Gruppe.
  • [Stand der Technik]
  • Herkömmlicherweise stand das Schema des Konfigurierens einer RAID- (Redundant Array of Independent Disks-) Gruppe aus einer Vielzahl von Speichervorrichtungen in einem Speichersystem und des Verfügbarmachens eines auf der Grundlage der RAID-Gruppe erstellten logischen Datenträgers für eine übergeordnete Einrichtung (zum Beispiel einen Hostcomputer) zur Verfügung.
  • Als RAID-Technologie offenbart PTL 1 ein verteiltes RAID. Verteiltes RAID ist eine Technologie des Verwaltens einer normale Daten und redundante Daten zum Wiederherstellen der normalen Daten enthaltenden Stripe-Spalte durch Verteilen der Stripe-Spalte auf eine Vielzahl von Speichervorrichtungen, welche einem Kapazitätspool einen Speicherbereich verfügbar machen.
  • PTL 2 beschreibt eine Speichervorrichtung zum Präsentieren mehrerer virtueller Datenträger an eine Host-Vorrichtung und zum dynamischen Zuweisen eines physischen Speicherbereichs zum Speichern von Daten zu jedem der mehreren virtuellen Datenträger entsprechend dem Nutzungsstatus jedes der mehreren virtuellen Datenträger wird die jedem der mehreren virtuellen Datenträger zugewiesene Wichtigkeit verwaltet, und jedem der mehreren virtuellen Datenträger wird ein Speicherbereich dynamisch zugewiesen. Hier wird bei der dynamischen Zuweisung des Speicherbereichs zu jedem der mehreren virtuellen Datenträger ein Speicherbereich, der von einer Vielzahl von Speichervorrichtungsgruppen bereitgestellt wird, die jeweils aus einer Vielzahl von Speichervorrichtungen konfiguriert sind, einem oder mehreren virtuellen Datenträgern mit geringer Bedeutung unter den mehreren virtuellen Datenträgern zugewiesen, und ein Speicherbereich, der von einer der Speichervorrichtungsgruppen bereitgestellt wird, wird anderen virtuellen Datenträgern unter den mehreren virtuellen Datenträgern zugewiesen.
  • PTL 3 beschreibt ein Speichergerät mit einem ersten Verwaltungsabschnitt, der einen von einem oder mehreren Festplattenlaufwerken bereitgestellten Speicherbereich auf der Grundlage einer vorbestimmten Einheit verwaltet, die unter Verwendung eines oder mehrerer Parameter erzeugt wird; einem zweiten Verwaltungsabschnitt, der auf der Grundlage eines durch mindestens eine oder mehrere der Einheiten konfigurierten Pools eine Verwaltungsrichtlinie über die Kapazität der Pools und einen Schwellenwert der Speicherkapazität der Pools verwaltet; einem Stromversorgungs-Steuerabschnitt, der jedes der Festplattenlaufwerke der Einheit unter der Verwaltung des ersten Verwaltungsabschnitts so steuert, dass es sich entweder in einem ersten Einschaltzustand oder einem zweiten Einschaltzustand mit einem niedrigen Stromverbrauch befindet und einen Steuerabschnitt, der, wenn die Speicherkapazität irgendeines der Pools den Schwellenwert übersteigt, die Verwaltungspolitik der Pools und irgendeinen der verwalteten Parameter auswählt, die als optimal angesehen werden, um als die Einheit des Speicherbereichs zu dienen, und der, nachdem er den Stromversorgungssteuerabschnitt veranlasst hat, den Zustand des Festplattenlaufwerks der ausgewählten Einheit von dem zweiten Einschaltzustand in den ersten Einschaltzustand zu ändern, die Einheit des Speicherbereichs zu der Kapazität des Pools hinzufügt. PTL 4 beschreibt ein Speichersystem, das folgendes umfasst: eine Vielzahl von Flash-Paketen, die eine oder mehrere RAID-Gruppen konfigurieren, und einen Controller, der mit der Vielzahl der Flash-Pakete verbunden ist. Jedes Flash-Paket umfasst eine Vielzahl von Flash-Chips, die aus einer Vielzahl von physischen Blöcken konfiguriert sind. Der Controller identifiziert einen Zielbereich, der sich auf einen unnötigen Bereich bezieht, hebt die Zuordnung eines physischen Blocks zu einem logischen Block, der zu diesem Zielbereich gehört, zu diesem logischen Block auf und verwaltet den nicht zugeordneten physischen Block als einen freien Block.
  • [Druckschriftenverzeichnis]
  • [Patentliteratur]
    • [PTL 1] US 2010 / 0 107 003 A1
    • [PTL2] US 2009 / 0 292 870 A1
    • [PTL 3] US 2010 / 0 023 685 A1
    • [PTL 4] US 2011 / 0 231 594 A1
  • [Kurzbeschreibung der Erfindung]
  • [Technisches Problem]
  • Wenn bei einer allgemeinen Speichervorrichtung eine der die redundante Daten speichernde RAID-Gruppe konfigurierenden Speichervorrichtungen ausfällt, werden in der ausgefallenen Speichervorrichtung gespeicherte Daten unter Verwendung redundanter Daten oder dergleichen wiederhergestellt (neu erstellt). In den vergangenen Jahren nahm die Kapazität von Speichervorrichtungen noch mehr zu, und es besteht insofern ein Problem, als das Neuerstellen der Daten viel Zeit kostet. PTL 1 offenbart eine Technologie zum Verwalten von Daten durch Verteilen solcher Daten in einer Vielzahl von Speichervorrichtungen, welche einem Kapazitätspool einen Speicherbereich verfügbar machen. Gemäß PTL 1 kann die zum Neuerstellen der Daten erforderliche Zeit durch Verteilen der Neuerstellungslast verkürzt werden.
  • Dennoch breitet sich, wenn bei einem Laufwerk im Kapazitätspool, welches das Redundanzniveau übersteigt (zum Beispiel 1 im Fall von RAID 1 und 2 im Fall von RAID 6), ein Ausfall auftritt, der Datenverlust-Bereich über den gesamten dem Kapazitätspool entsprechenden virtuellen Datenträger aus und besteht insofern ein Problem, als viel Zeit zum Wiederherstellen der Daten aus den Sicherungsdaten erforderlich ist. Als ein unkompliziertes Verfahren zum Lösen dieses Problems kann das Verfahren des örtlichen Begrenzens des Einflusses eines Datenverlusts durch Aufteilen des Pools in eine Vielzahl von Pools in Betracht gezogen werden, aber es besteht insofern ein Problem, als die Lastausgleichs-Leistung der Host-E/A oder die Lastausgleichs-Leistung beim Neuerstellen von Daten sich verschlechtert.
  • Die vorliegende Erfindung wurde in Anbetracht der vorhergehenden Punkte erdacht, und eine Aufgabe dieser Erfindung ist, ein Speichersystem und ein Datenverwaltungsverfahren vorzuschlagen, welche fähig sind, den Einfluss eines Datenverlusts örtlich zu begrenzen und die Verschlechterung der Lastausgleichs-Leistung der Host-E/A oder der Lastausgleichs-Leistung beim Neuerstellen von Daten zu verhindern.
  • [Problemlösung]
  • Die vorstehende Aufgabe wird von den unabhängigen Patentansprüchen gelöst. Bevorzugte Weiterentwicklungen werden in den abhängigen Patentansprüchen beschrieben.
  • Gemäß der vorhergehenden Konfiguration ist die Kombination von die dem virtuellen Datenträger zuzuweisende Seite konfigurierenden Laufwerken auf eine gegebene Anzahl von Kombinationen von zwei Kombinationen oder mehr begrenzt (diese Menge wird im folgenden als „c“ bezeichnet) und ist die Laufwerkkombination so definiert, dass die Laufwerke gleichmäßig auf die Laufwerke im Pool verteilt sind. Darüber hinaus wird für jeden virtuellen Datenträger oder für jeden virtuellen Datenträgerverbund eine andere Kombination (die Menge c ist die gleiche) verwendet.
  • Zum Beispiel wird bezüglich einer Anzahl R physischer Paritätsgruppen (PPG) eine Anzahl R diesen entsprechender virtueller Paritätsgruppen (VPG) bereitgestellt. Bei den virtuellen Paritätsgruppen (VPG) erfolgt die Datenplazierung in einem gegebenen Muster mit einer Anzahl c von Zyklen (c Arten von Laufwerkkombinationen, kumulative Paketplazierung pro Laufwerk in c Arten von Laufwerken ist nicht größer als eine Obergrenze (c/R), c Arten von Laufwerkkombinationen werden für jede virtuelle Paritätsgruppe (VPG) zufällig geändert (insgesamt R Arten)). Darüber hinaus wird bei den virtuellen Datenträgern eine Seite, auf der Grundlage einer vordefinierten Priorität, bevorzugt einer bestimmten virtuellen Paritätsgruppe (VPG) zugewiesen.
  • Folglich kann der Datenverlust-Bereich örtlich auf einen bestimmten virtuellen Datenträger begrenzt werden, während nicht nur die Host-E/A-Last, sondern auch der Ausgleich der Neuerstellungslast aufrechterhalten wird.
  • [Vorteilhafte Auswirkungen der Erfindung]
  • Gemäß der vorliegenden Erfindung ist es möglich, den Einfluss eines Datenverlusts örtlich zu begrenzen, die Verschlechterung der Host-E/A- oder der Lastausgleichs-Leistung während des Neuerstellens von Daten zu verhindern und dadurch die Verfügbarkeit des Gesamt-Speichersystems zu verbessern.
  • Figurenliste
    • [1] 1 ist eine konzeptionelle Zeichnung zur Erläuterung des Überblicks über das Computersystem gemäß der ersten Ausführungsform der vorliegenden Erfindung.
    • [2] 2 ist eine konzeptionelle Zeichnung zur Erläuterung der logischen Konfiguration des Computersystems gemäß der ersten Ausführungsform.
    • [3] 3 ist eine konzeptionelle Zeichnung, welche die Datenkonfiguration des Laufwerks gemäß der ersten Ausführungsform zeigt.
    • [4] 4 ist eine konzeptionelle Zeichnung, welche die Datenzuordnungsstruktur gemäß der ersten Ausführungsform zeigt.
    • [5] 5 ist eine konzeptionelle Zeichnung, welche die Datenzuordnungsstruktur gemäß der ersten Ausführungsform zeigt.
    • [6] 6 ist ein Blockschaubild, welches den Inhalt des gemeinsam genutzten Speichers gemäß der ersten Ausführungsform zeigt.
    • [7] 7 ist ein Blockschaubild, welches den Inhalt des lokalen Speichers gemäß der ersten Ausführungsform zeigt.
    • [8] 8 ist eine Tabelle, welche ein Beispiel der Poolverwaltungstabelle gemäß der ersten Ausführungsform zeigt.
    • [9] 9 ist eine Tabelle, welche ein Beispiel der Virtueller-Zusatzspeicher-Verwaltungstabelle gemäß der ersten Ausführungsform zeigt.
    • [10] 10 ist eine Tabelle, welche ein Beispiel der Laufwerkszustandstabelle gemäß der ersten Ausführungsform zeigt.
    • [11] 11 ist eine Tabelle, welche ein Beispiel der Cacheverwaltungstabelle gemäß der ersten Ausführungsform zeigt.
    • [12] 12 ist eine Tabelle, welche ein Beispiel der Seitenzuordnungstabelle gemäß der ersten Ausführungsform zeigt.
    • [13] 13 ist eine Tabelle, welche ein Beispiel der Prioritätstabelle gemäß der ersten Ausführungsform zeigt.
    • [14A] 14A ist eine Tabelle, welche ein Beispiel der Datenzuordnungstabelle gemäß der ersten Ausführungsform zeigt.
    • [14B] 14B ist eine Tabelle, welche ein Beispiel der Datenzuordnungstabelle gemäß der ersten Ausführungsform zeigt.
    • [15] 15 ist eine Tabelle, welche ein Beispiel der SEED-Tabelle gemäß der ersten Ausführungsform zeigt.
    • [16] 16 ist eine Tabelle, welche ein Beispiel der Vorableseausführungs-Laufwerksliste gemäß der ersten Ausführungsform zeigt.
    • [17A] 17A ist eine Tabelle, welche ein Beispiel der Zusatzspeicherkonvertierungstabelle gemäß der ersten Ausführungsform zeigt.
    • [17B] 17B ist eine Tabelle, welche ein Beispiel der Zusatzspeicherkonvertierungstabelle gemäß der ersten Ausführungsform zeigt.
    • [18] 18 ist ein Ablaufplan, welcher den Ablauf einer Host-E/A-Verarbeitung gemäß der ersten Ausführungsform zeigt.
    • [19] 19 ist ein Ablaufplan, welcher den Ablauf einer Sammel-Schreibverarbeitung gemäß der ersten Ausführungsform zeigt.
    • [20] 20 ist ein Ablaufplan, welcher den Ablauf einer Seitenkonvertierungsverarbeitung gemäß der ersten Ausführungsform zeigt.
    • [21] 21 ist ein Ablaufplan, welcher den Ablauf einer LP-Konvertierungs-Verarbeitung gemäß der ersten Ausführungsform zeigt.
    • [22] 22 ist ein Ablaufplan, welcher den Ablauf einer PL-Konvertierungs-Verarbeitung gemäß der ersten Ausführungsform zeigt.
    • [23] 23 ist ein Ablaufplan, welcher den Ablauf einer VP/PV-Konvertierungs-Verarbeitung gemäß der ersten Ausführungsform zeigt.
    • [24A] 24A ist ein Ablaufplan, welcher den Ablauf einer Zusatzspeicherkonvertierungsverarbeitung gemäß der ersten Ausführungsform zeigt.
    • [24B] 24B ist ein Ablaufplan, welcher den Ablauf einer Zusatzspeicher-Umkehrkonvertierungs-Verarbeitung gemäß der ersten Ausführungsform zeigt.
    • [25] 25 ist ein Ablaufplan, welcher den Ablauf einer Paketzuordnungstabellenerzeugungs-Verarbeitung gemäß der ersten Ausführungsform zeigt.
    • [26] 26 ist ein Ablaufplan, welcher den Ablauf einer Zusatzspeicherzuordnungstabellenerzeugungs-Verarbeitung gemäß der ersten Ausführungsform zeigt.
    • [27] 27 ist ein Ablaufplan, welcher den Ablauf einer Neuerstellungsverarbeitung gemäß der ersten Ausführungsform zeigt.
    • [28] 28 ist ein Ablaufplan, welcher den Ablauf einer Wiederherstellungszieldaten-Vorableseverarbeitung gemäß der ersten Ausführungsform zeigt.
    • [29A] 29A ist eine konzeptionelle Zeichnung, welche ein Beispiel der Datenzuordnung gemäß der ersten Ausführungsform zeigt.
    • [29B] 29B ist eine konzeptionelle Zeichnung, welche ein Beispiel der Datenzuordnung gemäß der ersten Ausführungsform zeigt.
    • [29C] 29C ist eine konzeptionelle Zeichnung, welche ein Beispiel der Datenzuordnung gemäß der ersten Ausführungsform zeigt.
    • [30] 30 ist ein Blockschaubild, welches den Inhalt des gemeinsam genutzten Speichers und des lokalen Speichers des Computersystems gemäß der zweiten Ausführungsform der vorliegenden Erfindung zeigt.
    • [31] 31 ist eine Tabelle, welche den Inhalt der DG-Auslagerungszeiger-Tabelle gemäß der zweiten Ausführungsform zeigt.
    • [32] 32 ist ein Ablaufplan, welcher den Ablauf einer PPG-Vergrößerungs-Verarbeitung gemäß der zweiten Ausführungsform zeigt.
    • [33] 33 ist ein Ablaufplan, welcher den Ablauf einer PPG-Verkleinerungs-Verarbeitung gemäß der zweiten Ausführungsform zeigt.
    • [34] 34 ist ein Ablaufplan, welcher den Ablauf einer VP/PV-Konvertierungs-Verarbeitung gemäß der zweiten Ausführungsform zeigt.
    • [35] 35 ist ein Ablaufplan, welcher den Ablauf einer Paketneuverteilungsverarbeitung gemäß der zweiten Ausführungsform zeigt.
    • [36] 36 ist ein Ablaufplan, welcher den Ablauf einer Datenauslagerungsverarbeitung gemäß der zweiten Ausführungsform zeigt.
    • [37] 37 ist ein Ablaufplan, welcher den Ablauf einer Verarbeitung zur Ermittlung der vergrößerungsgestützten Paketänderungszuordnung gemäß der zweiten Ausführungsform zeigt.
    • [38] 38 ist ein Ablaufplan, welcher den Ablauf einer Verarbeitung zur Ermittlung der verkleinerungsgestützten Paketänderungszuordnung gemäß der zweiten Ausführungsform zeigt.
    • [39] 39 ist ein Ablaufplan, welcher den Ablauf einer Seitenneuverteilungsverarbeitung gemäß der zweiten Ausführungsform zeigt.
    • [40A] 40A ist eine konzeptionelle Zeichnung, welche ein verändertes Beispiel einer vergrößerungsgestützten Paketzuordnung gemäß der zweiten Ausführungsform zeigt.
    • [40B] 40B ist eine konzeptionelle Zeichnung, welche ein verändertes Beispiel einer verkleinerungsgestützten Paketzuordnung gemäß der zweiten Ausführungsform zeigt.
  • [Beschreibung von Ausführungsformen]
  • Eine Ausführungsform der vorliegenden Erfindung wird nun anhand der Zeichnungen ausführlich erläutert.
  • Es ist zu beachten, dass in der nachfolgenden Erläuterung, obwohl verschiedene Arten von Informationen unter Verwendung des Ausdrucks „aaa-Tabelle“ erläutert sein können, solche verschiedenen Arten von Informationen auch als eine andere Datenstruktur als eine Tabelle ausgedrückt sein können. Um die Unabhängigkeit von einer Datenstruktur erkennen zu lassen, kann eine „aaa-Tabelle“ ebenso als „aaa-Informationen“ bezeichnet sein.
  • Überdies gibt es in der nachfolgenden Erläuterung Fälle, in welchen eine Verarbeitung mit einem „Programm“ als dem Subjekt erläutert wird. Da ein Programm eine vordefinierte Verarbeitung durchführt, während es infolge seiner Ausführung durch einen Prozessor (zum Beispiel eine CPU (Central Processing Unit)) nach Bedarf Speicherressourcen (zum Beispiel Arbeitsspeicher) und/oder eine Datenübertragungs-Schnittstelleneinrichtung (zum Beispiel einen Anschluss) nutzt, kann das Verarbeitungssubjekt auch ein Programm sein. Eine Verarbeitung, welche mit einem Programm als dem Subjekt erläutert wird, kann eine Verarbeitung sein, welche durch einen Prozessor oder einen einen solchen Prozessor enthaltenden Computer (zum Beispiel Verwaltungscomputer, Hostcomputer, Speichervorrichtung oder dergleichen) durchgeführt wird. Überdies kann eine Steuereinheit der Prozessor selbst sein oder eine Hardware-Schaltung zum Durchführen eines Teils der oder der gesamten durch die Steuereinheit auszuführenden Verarbeitung enthalten. Ein Programm kann aus einer Programmquelle in den jeweiligen Steuereinheiten installiert werden. Eine Programmquelle kann zum Beispiel ein Programmverteilungsserver oder ein Speichermedium sein.
  • (1) Erste Ausführungsform
  • (1-1) Überblick über das Computersystem
  • Nun wird anhand von 1 der Überblick über das das Speichersystem enthaltende Computersystem erläutert. Das Speichersystem ist, wie in 1 gezeigt, aus einer übergeordneten Speichervorrichtung (zweiten Speichervorrichtung) 100 konfiguriert. Überdies kann das Speichersystem auch eine externe Speichervorrichtung 40, als ein Beispiel der ersten Speichervorrichtung, enthalten.
  • Eine DKU 160 der übergeordneten Speichervorrichtung 100 ist, als ein Beispiel der ersten Speichervorrichtung, mit einer Vielzahl von untergeordneten Speichervorrichtungen 180 ausgestattet. Die übergeordnete Speichervorrichtung 100 verwaltet einen aus den Speicherbereichen der Vielzahl von untergeordneten Speichervorrichtungen 180 konfigurierten (im folgenden als der „Pool“ bezeichneten) Kapazitätspool. Überdies konfiguriert die übergeordnete Speichervorrichtung 100 unter Verwendung des Poolbereichs eine RAID-Gruppe. Anders ausgedrückt, die übergeordnete Speichervorrichtung 100 verwendet die den Poolbereich konfigurierende Vielzahl von untergeordneten Speichervorrichtungen 180, um die virtuelle Paritätsgruppe (VPG) als eine Vielzahl von virtuellen RAID-Gruppen zu konfigurieren.
  • Der Speicherbereich der virtuellen Paritätsgruppe ist aus einer Vielzahl von Unter-Speicherbereichs-Spalten konfiguriert. Jede der Unter-Speicherbereichs-Spalten erstreckt sich über eine Vielzahl von Speichervorrichtungen (untergeordnete Speichervorrichtung und/oder externe Speichervorrichtung), welche die virtuelle Paritätsgruppe konfigurieren, und ist aus einer der Vielzahl von Speichervorrichtungen entsprechenden Vielzahl von Unter-Speicherbereichen konfiguriert. Hier wird ein einzelner Unter-Speicherbereich als ein „Stripe“ bezeichnet und wird eine aus einer Vielzahl von Stripes konfigurierte Spalte als eine „Stripe-Spalte“ bezeichnet. Der Speicherbereich der RAID-Gruppe ist aus einer Vielzahl von Stripe-Spalten konfiguriert.
  • Ein RAID hat mehrere Stufen (im folgenden als die „RAID-Stufen“ bezeichnet). Zum Beispiel in RAID 5 werden durch einen RAID-5-konformen Hostcomputer benannte Schreibzieldaten in (im folgenden um der Bequemlichkeit willen als „Dateneinheiten“ bezeichnete) Daten einer vordefinierten Größe unterteilt, wird jede der Dateneinheiten in eine Vielzahl von Datenelementen unterteilt und wird die Vielzahl von Datenelementen in die Vielzahl von Stripes geschrieben. Überdies werden in RAID 5 (im folgenden als „redundanter Code“ bezeichnete) redundante Informationen, welche als „Parität“ bezeichnet werden, für jede der Dateneinheiten erzeugt, um die Datenelemente neu zu erstellen, die nicht mehr aus einer Speichervorrichtung gelesen werden können, weil diese Speichervorrichtung ausgefallen ist, und wird der redundante Code auch in die Stripes derselben Stripe-Spalte geschrieben. Zum Beispiel wenn es vier die RAID-Gruppe konfigurierende Speichervorrichtungen gibt, werden drei die Dateneinheiten konfigurierende Datenelemente in die drei den drei Speichervorrichtungen entsprechenden Stripes geschrieben und wird der redundante Code in den Stripe der entsprechenden einen übrigen Speichervorrichtung geschrieben. In der nachfolgenden Erläuterung kann es, wenn das Datenelement und der redundante Code nicht unterschieden werden, Fälle geben, in welchen diese beide als ein Stripe-Datenelement bezeichnet werden.
  • Überdies werden in RAID 6, wenn zwei Datenelemente aus einer die Dateneinheiten konfigurierenden Vielzahl von Datenelementen infolge eines Ausfalls von zwei Speichervorrichtungen aus der die RAID-Gruppe konfigurierenden Vielzahl von Speichereinrichtungen oder aus anderen Gründen nicht gelesen werden können, zwei Arten von redundantem Code (P-Parität, Q-Parität) für jede der Dateneinheiten erzeugt, so dass die vorhergehenden zwei Datenelemente wiederhergestellt werden können, und werden die jeweiligen redundanten Codes in die Stripes derselben Stripe-Spalte geschrieben.
  • Als andere RAID-Stufen als die oben erläuterten gibt es überdies zum Beispiel RAID 1 bis 4. Als Datenredundanz-Technologie sind überdies auch Technologien wie Dreifachspiegelung (Triplizierung) oder ein Dreifachparitätsverfahren des Verwendens von drei Paritäten verfügbar. Überdies stehen als Technologie zur Erzeugung redundanter Codes verschiedene Technologien wie Reed-Solomon-Codierung, welche eine Galois-Operation verwendet, und EVEN-ODD zur Verfügung. Obwohl in dieser Ausführungsform vorwiegend RAID 5, 6 erläutert werden, ist die vorliegende Erfindung nicht darauf beschränkt und kann sie auch auf der Grundlage der Ersetzung der vorhergehenden Verfahren angewendet werden.
  • Wenn eine der untergeordneten Speichervorrichtungen 18 aus der Vielzahl von untergeordneten Speichervorrichtungen 180 ausfällt, stellt die übergeordnete Speichervorrichtung 100 die in der ausgefallenen Speichervorrichtung 180 gespeicherten Datenelemente zum Beispiel durch Durchführen der im folgenden beschriebenen Verarbeitung wieder her.
  • Als die erste Verarbeitung übernimmt ein (in den Zeichnungen als MP bezeichneter) Mikroprozessor 121 zum Wiederherstellen der in der ausgefallenen untergeordneten Speichervorrichtung 180 aus der Vielzahl von diese Daten speichernden untergeordneten Speichervorrichtungen 180 gespeicherten Datenelemente erforderliche Daten (zum Beispiel weitere Datenelemente und Paritäten) und speichert er solche Daten über einen Übertragungspuffer 142 einer Schnittstelleneinrichtung (zum Beispiel BEPK 140) in einem Cachespeicher (CM) 131. Darüber hinaus veranlasst der Mikroprozessor 121 eine Paritätsberechnungseinheit 141 des BEPK 140, die Datenelemente auf der Grundlage der Daten im Cachespeicher (CM) 131 wiederherzustellen, und speichert er die Datenelemente in einer vordefinierten untergeordneten Speichervorrichtung 180.
  • (1-2) Hardwarekonfiguration des Computersystems
  • Nun wird die Hardwarekonfiguration des Computersystems erläutert. Wie in 1 gezeigt, enthält das Computersystem einen oder mehrere (im folgenden als die „Hosts“ bezeichneten) Hostcomputer 10, einen Verwaltungsserver 20 und eine übergeordnete Speichervorrichtung 100. Die Hostcomputer 10, der Verwaltungsserver 20 und die übergeordnete Speichervorrichtung 100 sind über ein Netz 30 verbunden. Das Netz 30 kann ein lokales Netz oder ein Weitverkehrsnetz sein. Überdies können auch eine oder mehrere externe Speichervorrichtungen 40 mit der übergeordneten Speichervorrichtung 100 verbunden sein. Die externe Speichervorrichtung 40 enthält eine oder mehrere Speichereinrichtungen. Die Speichereinrichtung ist ein nichtflüchtiges Speichermedium wie eine Magnetplatte, ein Flash-Memory oder ein anderer Halbleiterspeicher.
  • Der Host 10 ist zum Beispiel ein Computer, welcher Anwendungen ausführt und in der Anwendung zu verwendende Daten aus der übergeordneten Speichervorrichtung 100 liest und mit der Anwendung erzeugte Daten in die übergeordnete Speichervorrichtung 100 schreibt.
  • Der Verwaltungsserver 20 ist ein Computer zum Ausführen der Verwaltungsverarbeitung zum Verwalten des Computersystems gemäß von einem Administrator vorgenommenen Eingaben. Der Verwaltungsserver 20 empfängt die Einstellung bezüglich der Art der während der Wiederherstellung von Daten auszuführenden Datenwiederherstellungsverarbeitung auf der Grundlage der Betätigung der Eingabevorrichtung durch den Administrator und konfiguriert Einstellungen so, dass die übergeordnete Speichervorrichtung 100 dazu gebracht wird, die empfangene Datenwiederherstellungsverarbeitung auszuführen.
  • Die übergeordnete Speichervorrichtung 100 enthält einen oder mehrere Front-End-Bausteine (FEPK) 110, eine Wartungsschnittstelle (Wartungs-I/F) 115, einen oder mehrere Mikroprozessor-Bausteine (MPPK) 120, einen oder mehrere Cachespeicher-Bausteine (CMPK) 130, einen oder mehrere Back-End-Bausteine (BEPK) 140, ein internes Netz 150 und eine oder mehrere Platteneinheiten (DKU) 160. Der FEPK 110, die Wartungs-I/F 115, der MPPK 120, der CMPK 130 und der BEPK 140 sind über das interne Netz 150 verbunden. Der BEPK 140 ist mit der DKU 160 über Pfade einer Vielzahl von Systemen verbunden.
  • Der FEPK 110 ist ein Beispiel der Schnittstelleneinrichtung und enthält einen oder mehrere Anschlüsse 111. Der Anschluss 111 verbindet die übergeordnete Speichervorrichtung 100 über das Netz 30 oder dergleichen mit verschiedenen Einrichtungen. Die Wartungs-I/F 115 ist eine Schnittstelle zum Verbinden der übergeordneten Speichervorrichtung 100 mit dem Verwaltungsserver 20.
  • Der MPPK 120 enthält einen Mikroprozessor (MP) 121 als ein Beispiel der ersten Steuereinrichtung und einen lokalen Speicher (LM) 122. Der lokale Speicher 122 speichert verschiedene Programme und verschiedene Arten von Informationen. Der Mikroprozessor 121 führt verschiedene Arten von Verarbeitungen aus, indem er die im lokalen Speicher 122 gespeicherten Programme ausführt. Der Mikroprozessor 121 sendet verschiedene Befehle (zum Beispiel Lesebefehl und Schreibbefehl in SCSI) über den BEPK 140 an die untergeordnete Speichervorrichtung 180 der DKU 160. Überdies sendet der Mikroprozessor 121 verschiedene Befehle über den FEPK 110 an die externe Speichervorrichtung 40.
  • Der CMPK 130 enthält einen Cachespeicher (CM) 131. Der Cachespeicher 131 speichert vorübergehend aus dem Host 10 in die untergeordnete Speichervorrichtung 18 oder dergleichen zu schreibende Daten (Schreibdaten) und durch den Host 10 aus der untergeordneten Speichervorrichtung 180 zu lesende Daten (Lesedaten).
  • Der BEPK 140 enthält eine Paritätsberechnungseinheit 141, einen Übertragungspuffer (DXBF) 142 als ein Beispiel der zweiten Steuereinrichtung und eine Back-End-Steuereinheit (BE-Steuereinheit) 143.
  • Die Paritätsberechnungseinheit 141 ist zum Beispiel ein kompakter Prozessor und erzeugt einen (im folgenden als die „Parität“ bezeichneten) redundanten Code zum Neuerstellen der Datenelemente, welche infolge eines Ausfalls der untergeordneten Speichervorrichtung 180 nicht mehr aus dieser gelesen werden können. Zum Beispiel erzeugt die Paritätsberechnungseinheit 141 eine P-Parität, indem sie die Vielzahl von die Dateneinheiten konfigurierenden Datenelementen für die Dateneinheiten der in RAID 5 konfigurierten RAID-Gruppe einem Exklusiv-ODER unterzieht. Überdies erzeugt die Paritätsberechnungseinheit 141 eine Q-Parität, indem sie die jeweiligen Daten, nach zusätzlichem Multiplizieren der Vielzahl von die Dateneinheiten konfigurierenden Datenelementen mit einem vordefinierten Koeffizienten für die Dateneinheiten der in RAID 6 konfigurierten RAID-Gruppe, einem Exklusiv-ODER unterzieht. Überdies führt die Paritätsberechnungseinheit 141 eine Wiederherstellungsverarbeitung des Wiederherstellens eines beliebigen der Datenelemente in der Dateneinheit auf der Grundlage eines oder mehrerer Stripe-Datenelemente (Datenelemente und/oder Paritäten) bezüglich dieser Dateneinheit durch.
  • Der Übertragungspuffer 142 speichert vorübergehend von der untergeordneten Speichervorrichtung 180 gesendete Daten oder an die untergeordnete Speichervorrichtung 180 zu sendende Daten. Die BE-Steuereinheit 143 tauscht verschiedene Befehle, Schreibdaten, Lesedaten und dergleichen mit der untergeordneten Speichervorrichtung 180 der DKU 160 aus.
  • Die DKU 160 enthält eine Vielzahl von (im folgenden auch als die „Laufwerke“ bezeichneten) untergeordneten Speichervorrichtungen 180. Die untergeordnete Speichervorrichtung 180 enthält eine oder mehrere Speichereinrichtungen. Die Speichereinrichtung ist ein nichtflüchtiges Speichermedium wie eine Magnetplatte, ein Flash-Memory oder ein anderer Halbleiterspeicher (PRAM, ReRAM oder dergleichen). Die DKU 160 enthält eine Vielzahl von Gruppen (Pfadgruppen) 170 der Vielzahl von untergeordneten Speichervorrichtungen 180, welche über denselben Pfad mit der BE-Steuereinheit 143 verbunden sind. Die zur selben Pfadgruppe 170 gehörenden untergeordneten Speichervorrichtungen 180 sind über einen Switch 161 verbunden. Die zur selben Pfadgruppe 170 gehörenden untergeordneten Speichervorrichtungen 180 (im folgenden als „dieselbe Linie von Laufwerken“ bezeichnet) können direkt Daten austauschen, und zum Beispiel können verschiedene Daten von einer untergeordneten Speichervorrichtung 180 an eine andere, zur selben Pfadgruppe 170 gehörende untergeordnete Speichervorrichtung 180 gesendet werden. Es ist zu beachten, dass, wenn ein Switch oder eine Stromquelle aus irgendeinem Grund ausfällt, dieselbe Linie von Laufwerken dazu neigt, stärker betroffen zu sein als die andere Linie von Laufwerken.
  • (1-3) Logische Konfiguration des Computersystems
  • Nun wird die logische Konfiguration des Computersystems erläutert. 2 ist eine konzeptionelle Zeichnung, welche die logische Konfiguration des Computersystems zeigt.
  • Die übergeordnete Speichervorrichtung 100 bündelt eine Vielzahl von Laufwerken 180 und konfiguriert eine (im folgenden als die „physische Paritätsgruppe (PPG)“ bezeichnete) physische Paritätsgruppe 205. Zum Beispiel sind 16 Laufwerke gebündelt, um eine physische Paritätsgruppe zu konfigurieren. Die physische Paritätsgruppe ist eine Einheit des Vergrößerns zu oder Verkleinerns von einer Streuungsgruppe (DG) 207.
  • Die Streuungsgruppe (DG) 207 bündelt eine Vielzahl von physischen Paritätsgruppen 205, um eine virtuelle Paritätsgruppe (VPG) 204 zu konfigurieren. Hier ist die virtuelle Stripe-Struktur in der virtuellen Paritätsgruppe 204 auf die Laufwerke in der physischen Paritätsgruppe innerhalb des Bereichs der Streuungsgruppe 207 verteilt. Anders ausgedrückt, hinsichtlich des E/A-Zugriffs auf die virtuelle Paritätsgruppe 204 erfolgen Zugriffe auf die virtuelle Paritätsgruppe 204 durch ein physisches Laufwerk innerhalb des Bereichs ihrer zugehörigen Streuungsgruppe 207, aber niemals durch ein physisches Laufwerk außerhalb dieses Bereichs. Überdies existiert die gleiche Anzahl von virtuellen Paritätsgruppen 204 und physischen Paritätsgruppen in der Streuungsgruppe, und auch deren Kennungen, welche in der Streuungsgruppe existieren, sind die gleichen. Infolge der Bündelung einer Vielzahl von virtuellen Paritätsgruppen 204 ist ein Pool 200 als ein Verbund der logischen Speicherkapazität konfiguriert.
  • Überdies kann die übergeordnete Speichervorrichtung 100, wie oben beschrieben, als die Laufwerke 180 zum Beispiel Speichermedien wie ein Flash-Memory, ein SAS-Laufwerk, ein SATA-Laufwerk und dergleichen, welche eine Vielzahl von Leistungen und verschiedene Kapazitätseigenschaften aufweisen, enthalten. Die Klassifizierung von Speichermedien gemäß diesen verschiedenen Eigenschaften wird als eine Hierarchie (Schicht) 206 bezeichnet. Da jede Schicht andere Leistungseigenschaften aufweist, gibt es, wenn eine Streuungsgruppe über Schichten hinweg konfiguriert ist, Fälle, in welchen ein Laufwerk niedriger Leistung zu einem Engpass wird. Folglich wird eine Streuungsgruppe gewöhnlich mit derselben Schicht konfiguriert.
  • Überdies gibt es eine Vielzahl von virtuellen Datenträgern (WOL) 201 im Pool. Der virtuelle Datenträger 201 ist eine virtuelle Einrichtung, auf welche der Host 10 sich bezieht und zugreift. Der Administrator der übergeordneten Speichervorrichtung erstellt über die Wartungsschnittstelle 115 einen virtuellen Datenträger einer willkürlichen Größe. Diese Größe hängt nicht von der Gesamtkapazität des eigentlichen Laufwerks 180 ab.
  • Speziell weist der MP 121 einen bestimmten Speicherbereich (VPG-Seite 203) der virtuellen Paritätsgruppe (VPG) dynamisch einem bestimmten virtuellen Speicherbereich (WOL-Seite 202) des virtuellen Datenträgers 201, auf welchen E/A-Zugriffe durch den Host 10 erfolgten, zu. Hier wird zum Beispiel die Zugriffshäufigkeit für jede Virtueller-Datenträger-Seite 202 aufgezeichnet und wird eine hochleistungsfähige virtuelle Paritätsgruppe (zur virtuellen Paritätsgruppe (VPG) von Schicht 1 gehörende VPG-Seite) einer Virtueller-Datenträger-Seite, auf welche häufig zugegriffen wird, zugewiesen oder wird durch fortlaufendes Überwachen der Last eine Verschiebung periodisch durchgeführt.
  • 3 zeigt die Datenkonfigurationszeichnung des Laufwerks 180. Die untergeordnete Speichervorrichtung (das Laufwerk) 180 kann Daten in Einheiten von einem Unterblock 61, welcher die minimale Einheit (zum Beispiel 512 B) der SCSI-Befehls-Verarbeitung ist, an eine übergeordnete Einrichtung senden und von einer solchen empfangen. Überdies ist ein Slot 62 als eine Verwaltungseinheit (zum Beispiel 256 kB) beim Zwischenspeichern von Daten im Cachespeicher 131 aus einem Verbund aus einer Vielzahl von aufeinanderfolgenden Unterblocks 61 konfiguriert. Der Stripe 57 ist in einer Vielzahl von Slots 62 gespeichert. Die Größe des Stripes 57 beträgt zum Beispiel 512 kB, wenn er aus zwei Slots 62 konfiguriert ist.
  • 4 zeigt die Datenzuordnungsstruktur-Zeichnung. Der virtuelle Datenträger 201, welcher vom Host 10 erkennbar ist, ist aus einer Vielzahl von Virtueller-Datenträger-Seiten 202 konfiguriert. Die Virtuelle-Paritätsgruppen-Seite 203 der virtuellen Paritätsgruppe 204 ist der Virtueller-Datenträger-Seite 202 zugewiesen. Diese Beziehung wird als eine Seitenzuordnung 401 bezeichnet, und der Mikroprozessor 121 verwendet eine später beschriebene Seitenzuordnungstabelle 705, um die Seitenzuordnung 401 dynamisch zu verwalten.
  • In der virtuellen Paritätsgruppe 204 wird beziehungsweise werden eine oder mehrere virtuelle Chunks (V-Chunks) 400 verwaltet. Der virtuelle Chunk 400 ist aus einer Vielzahl von Paket (Paket) 402 konfiguriert. Das Paket 402 ist aus aufeinanderfolgenden Bereichen in ein und derselben Speichervorrichtung (zum Beispiel in der untergeordneten Speichervorrichtung 180) konfiguriert. Im Beispiel von 4 ist das Paket 402 aus acht Stripes 57 konfiguriert. Überdies wird der virtuelle Datenträger 201 in der übergeordneten Speichervorrichtung 100 unter Verwendung einer eindeutigen Nummer verwaltet.
  • 4 zeigt einen Fall des virtuellen Chunks 400, welcher auf der Grundlage der 6D+2P-Konfiguration von RAID 6 konfiguriert ist; das heißt, einer Konfiguration, bei welcher die die Dateneinheit und die zwei Paritäten (P), welche den vorhergehenden Datenelementen entsprechen, konfigurierenden sechs Datenelemente (D) in jeweils verschiedenen Speichervorrichtungen gespeichert sind. Im vorhergehenden Fall ist der virtuelle Chunk 400 zum Beispiel aus dem Paket 402 aus acht verschiedenen untergeordneten Speichervorrichtungen 180 konfiguriert.
  • Der virtuelle Chunk 400 enthält eine Vielzahl von (zum Beispiel vier) Virtuelle-Paritätsgruppen-Seiten 203. Die Virtuelle-Paritätsgruppen-Seite 203 kann Datenelemente und Paritäten (Daten derselben Stripe-Spalte) einer Vielzahl von (zum Beispiel zwei) aufeinanderfolgenden Dateneinheiten speichern. Zum Beispiel kann, indem dafür gesorgt wird, dass eine solche Vielzahl von Daten mehrere MB beträgt, selbst in Fällen, in welchen das Laufwerk 180 eine Magnetplatte ist, die sequentielle Leistung der Host-E/A konstant gehalten werden. In derselben Zeichnung zeigen diejenigen, welche die Zahl vor "_" gemeinsam haben wie 1_D1(57b), 1_D2, 1_D3, 1_D4, 1_D5, 1_D6, 1_P (57c), 1_Q(57d) die Datenelemente und Paritäten in derselben Dateneinheit (Stripe-Spalte). Es ist zu beachten, dass das Datenelement und die Parität jeweils der Größe des Stripes 57 entsprechen.
  • Die virtuelle Paritätsgruppe 204 hat eine eindeutige Nummer in der übergeordneten Speichervorrichtung 100. Überdies hat jede virtuelle Paritätsgruppe 204 eine Laufwerksnummer (VCDEV-Nummer), welche eine gegebene (in der nachfolgenden Erläuterung als N bezeichnete) Anzahl von virtuellen Laufwerken 403 darstellt. Dies ist eine Kennung zum Adressieren des Speicherbereichs in der virtuellen Paritätsgruppe und ist eine Kennung zum Ausdrücken der später beschriebenen Entsprechungsbeziehung zum Laufwerk (PCDEV) einer physischen Paritätsgruppe.
  • Auf jeden virtuellen Datenträger 201 wird durch den Host 10 auf der Grundlage der den virtuellen Datenträger 201 und eine LBA (Logical Block Address) darstellenden Kennung zugegriffen. Wie in 4 gezeigt, ist eine WOL-Seite# ab dem oberen Ende des virtuellen Datenträgers 201 vorgesehen. Die Seite# kann gemäß der folgenden Formel für eine LBA, welche mit einer E/A vom Host 10 benannt wurde, berechnet werden.
  • VVOL Seite# = Untergrenze ( LBA/VVOL Seitengr o ¨ ß e ( Anzahl von Unterblocks )
    Figure DE112013006504B4_0001
  • Überdies ist eine Seite aus einer Vielzahl von Stripes konfiguriert. Da von der Seite des Hosts 10 nicht auf die Paritätsdaten zugegriffen werden kann, sind jedoch die Paritätsdaten im virtuellen Datenträger 201 nicht sichtbar. Zum Beispiel im in 4 gezeigten Fall von 6D2P werden die 8x2 Stripes (Virtueller-Datenträger-Seite 202) im Raum auf der Seite der virtuellen Paritätsgruppe als 6x2 Stripes (Virtuelle-Paritätsgruppen-Seite 203, WOL-Seitengröße) im virtuellen Datenträger 201 angesehen. Infolge des Korrigierens des obigen können die Laufwerksnummer (VCDEV#), die Virtueller-Chunk-Nummer (V-Chunk#) und die auf der der LBA auf der Seite des virtuellen Datenträgers 201 entsprechenden Virtuelle-Paritätsgruppen-Nummer (VPG#) beruhende relative Adresse im Paket zusammen mit der Seitenzuordnung 401 berechnet werden. Selbstverständlich können auch die VCDEV# und die V-Chunk# und die auf der Virtuelle-Paritätsgruppen-Nummer (VPG#) der to dem E/A-Zugriff vom Host 10 entsprechenden Paritätsbereiche (57c, 57d) beruhende relative Adresse im Paket und die relative Adresse im Paket berechnet werden.
  • Während 4 einen Fall von RAID 6 (6D2P) erläuterte, kann zum Beispiel die Anzahl von Daten auf zum Beispiel 14D2P vergrößert werden und kann ein Paket lediglich auf der Grundlage von Paritäten wie in RAID 4 erstellt werden. Überdies kann das Codieren der Q-Parität mittels des EVEN-ODD-Verfahrens und anderer allgemein bekannter Verfahren zusätzlich zu der Galois-Operation durchgeführt werden.
  • 5 ist eine Datenzuordnungskonfigurations-Zeichnung der virtuellen Paritätsgruppe und der physischen Paritätsgruppe des Computersystems gemäß dieser Ausführungsform.
  • Der virtuelle Chunk 400 existiert fortlaufend bezüglich des Raums des Speicherbereichs der virtuellen Paritätsgruppe 204, wie auch anhand von 4 erläutert. Die aufeinanderfolgende Anzahl c virtueller Chunks entspricht einer Anzahl c physischer Chunks (P-Chunks) 500a 400 und deren Beziehung ist periodisch. Überdies werden die physischen Chunks 500a auf der Seite der physischen Paritätsgruppe auch periodisch mit dem gleichen Muster bezüglich der aufeinanderfolgenden Anzahl c+1 virtueller Chunks 400 zugeordnet.
  • Überdies wird die Entsprechungsbeziehung der virtuellen Chunks 400 und der physischen Chunks 500a über die VP/PV-Zuordnung 501 verwaltet. Wenn es zwei oder mehr physische Paritätsgruppen 205 gibt, hat die zum physischen Chunk 500a gehörende, zuzuweisende physische Paritätsgruppe hier eine Eins-zu-viele-Beziehung bezüglich der Anzahl c virtueller Chunks 400 eines Zyklus 505 der virtuellen Paritätsgruppe. Überdies hat die zum virtuellen Chunk 400 gehörende, zuzuweisende virtuelle Paritätsgruppe eine Eins-zu-viele-Beziehung bezüglich der Anzahl c physischer Chunks 500a eines Zyklus 506 der physischen Paritätsgruppe. Überdies wird die Datensubstanz der Anzahl N von Paketen im virtuellen Chunk nicht 1:1 bezüglich der Anzahl c physischer Chunks 500a zugewiesen, sondern wird sie vielmehr quer bezüglich der Anzahl c physischer Chunks 500a zugewiesen. Diese Zuordnungsverfahren werden später ausführlich erläutert.
  • Überdies ist der Grund, aus welchem die Seite des physischen Chunks gleich c+1 und eins mehr als die Seite des virtuellen Chunks ist, dass ein als Zusatzspeicher dienender physischer Chunk 500b auf der Seite des physischen Chunks vorgesehen ist. Bei Einführen der folgenden Formel wird der P-Chunk dieser P-Chunk# zum Zusatzspeicherbereich.
  • P Chuck#mod ( c + 1 ) = 0
    Figure DE112013006504B4_0002
  • Dieser Zusatzspeicherbereich ist ein Reservierungsbereich, welcher als das Wiederherstellungsziel der Neuerstellungsverarbeitung verwendet wird, wenn ein Laufwerk in der Streuungsgruppe, zu welcher die physische Paritätsgruppe gehört, ausfällt. Das virtuelle Zusatzspeicherlaufwerk 502 entspricht dem ausgefallenen Laufwerk, und dies ist ein Laufwerk ohne Substanz. Als der Bereich wird ein Teil des als Zusatzspeicher dienenden physischen Chunks 500b zugewiesen.
  • Die Zuweisung des als Zusatzspeicher dienenden physischen Chunks wird mit der Zusatzspeicherzuordnung 503 verwaltet. Das Zusatzspeicherzuordnungsverfahren wird später ausführlich erläutert.
  • (1-4) Verschiedene Tabellen
  • Die Konfiguration der verschiedenen Tabellen in dieser Ausführungsform wird nun erläutert. Als die im folgenden erläuterten Tabellen kann zum Verringern der Speicherbelegung oder Verkürzen der für die Suche erforderlichen Verarbeitungszeit eine Zeigerstruktur oder eine Hashtabelle verwendet werden oder kann auch eine Umkehrtabelle verwendet werden.
  • 6 ist eine Zeichnung, welche die verschiedenen im gemeinsam genutzten Speicher 200 gemäß dieser Ausführungsform gespeicherten Tabellen zeigt. Der gemeinsam genutzte Speicher 200 ist zum Beispiel unter Verwendung mindestens eines Speicherbereichs aus der untergeordneten Speichervorrichtung 180, dem Cachespeicher (CM) 131 und dem lokalen Speicher (LM) 122 konfiguriert. Es ist zu beachten, dass es auch möglich ist, den logischen, gemeinsam genutzten Speicher 200 unter Verwendung des Speicherbereichs einer Vielzahl von Konfigurationen innerhalb der untergeordneten Speichervorrichtung 180, des Cachespeichers 131 und des lokalen Speichers 122 zu konfigurieren und die verschiedenen Arten von Informationen auf der Grundlage von Cacheverwaltung zu verwalten.
  • Wie in 6 gezeigt, speichert der gemeinsam genutzte Speicher 200 eine Poolverwaltungstabelle 701, eine Virtueller-Zusatzspeicher-Verwaltungstabelle 702, eine Laufwerkszustandstabelle 703, eine Cacheverwaltungstabelle (unsauberes Bit) 704, eine Seitenzuordnungstabelle 705, eine Seitenzuweisungsprioritäts-Tabelle 706, eine V-Zyklen-Zuordnungstabelle (V2P) 707, eine P-Zyklen-Zuordnungstabelle (Umkehrkonvertierung P2V) 708, eine V-CDE-V-Zuordnungstabelle (SEED) 709, eine Vorableseausführungs-Laufwerksliste 710, eine Zusatzspeicherkonvertierungstabelle 711 und eine Zusatzspeicher-Umkehrkonvertierungs-Tabelle 712. Die Inhalte der jeweiligen Tabellen werden später ausführlich erläutert.
  • 7 ist eine Zeichnung, welche die verschiedenen im lokalen Speicher 122 gespeicherten Programme gemäß dieser Ausführungsform zeigt. Der lokale Speicher 122 speichert ein Host-E/A-Verarbeitungsprogramm 801, ein Sammel-Schreib-Verarbeitungsprogramm 802, ein Seitenkonvertierungs-Verarbeitungsprogramm 803, ein LP-Konvertierungs-Verarbeitungsprogramm 804, ein PL-Konvertierungs-Verarbeitungsprogramm 805, ein Zusatzspeicherkonvertierungs-Verarbeitungsprogramm 806, ein Zusatzspeicher-Umkehrkonvertierungs-Verarbeitungsprogramm 807, ein Paketzuordnungstabellenerzeugungs-Verarbeitungsprogramm 808, ein Zusatzspeicherzuordnungstabellenerzeugungs-Verarbeitungsprogramm 809, ein Neuerstellungs-Verarbeitungsprogramm 810 und ein Wiederherstellungszieldaten-Vorablese-Verarbeitungsprogramm 811.
  • Das Host-E/A-Verarbeitungsprogramm 801 ist ein Programm zum Ausführen einer Lese-/Schreibverarbeitung. Das Sammel-Schreib-Programm 802 ist ein Programm zum Ausführen einer Sammel-Schreibverarbeitung. Das Neuerstellungs-Verarbeitungsprogramm 810 ist ein Programm zum Ausführen einer Neuerstellungsverarbeitung. Die durch die jeweiligen Programme auszuführende Verarbeitung wird später ausführlich erläutert.
  • Die Poolverwaltungstabelle 701 ist eine Tabelle zum Verwalten der Entsprechungsbeziehung des Pools, der Schicht, der Streuungsgruppe (DG) und der virtuellen Paritätsgruppe (VPG). Wie in 8 gezeigt, ist die Poolverwaltungstabelle 701 aus einer Poolnummern-Spalte 7011, einer Schichtnummern-Spalte 7012, einer Streuungsgruppennummern- (DG#-) Spalte 7013 und einer Virtuelle-Paritätsgruppen- (VPG#-) Spalte 7014 konfiguriert.
  • Die Poolnummern-Spalte 7011 speichert die Nummer zum Identifizieren des Pools. Die Schichtnummern-Spalte 7012 speichert die Nummer zum Identifizieren der Schicht. Die Streuungsgruppennummern-Spalte 7013 speichert die Nummer zum Identifizieren der Streuungsgruppe. Die Virtuelle-Paritätsgruppen-Spalte 7014 speichert die Nummer zum Identifizieren der virtuellen Paritätsgruppe.
  • Durch Verwenden der Poolverwaltungstabelle 701 kann der Mikroprozessor 121 die Kennung der zu den jeweiligen Schichten des Pools gehörenden Streuungsgruppe und die Kennung der zu den jeweiligen Streuungsgruppen gehörenden virtuellen Paritätsgruppe prüfen. Überdies kann der Mikroprozessor 121, da die Kennungen der virtuellen Paritätsgruppe und der physischen Paritätsgruppe in der Streuungsgruppe gleich sind, auch die zu den jeweiligen Streuungsgruppen gehörende physische Paritätsgruppe kennen.
  • Die Virtueller-Zusatzspeicher-Verwaltungstabelle 702 ist eine Tabelle zum Verwalten des zur Streuungsgruppe gehörenden virtuellen Zusatzspeicherlaufwerks und dessen Zustands. Wie in 9 gezeigt, ist die Virtueller-Zusatzspeicher-Verwaltungstabelle 702 aus einer Streuungsgruppen-Nummern- (DG#-) Spalte 7021, einer Virtuelles-Zusatzspeicherlaufwerks-Nummern- (V-Zusatzspeicherlaufwerk#-) Spalte 7022, einer Zustandsspalte 7023 und einer Kopierzeiger-Spalte 7024 konfiguriert.
  • Die Streuungsgruppen-Nummern-Spalte 7021 speichert die Nummer zum Identifizieren der Streuungsgruppe. Die Virtuelles-Zusatzspeicherlaufwerks-Nummern-Spalte 7022 speichert die Nummer zum Identifizieren des virtuellen Zusatzspeicherlaufwerks. Die Zustandsspalte 7023 speichert den Verwendungszustand des erzeugten Zusatzspeicherlaufwerks. Die Kopierzeiger-Spalte 7024 speichert die Zeigerinformation, die zeigt, bis zu welcher LBA die Neuerstellung von Daten fortgeschritten ist, wenn das der Laufwerksnummer der Virtuelles-Zusatzspeicherlaufwerk-Spalte 7022 des Eintrags entsprechende virtuelle Zusatzspeicherlaufwerk neu erstellt wird. Wenn das virtuelle Zusatzspeicherlaufwerk gerade nicht neu erstellt wird, wird ein ungültiger Wert eingetragen. Überdies wird während des Anfangszustands der Neuerstellung 0 gespeichert und wird im Endzustand der Neuerstellung die größte LBA des Wiederherstellungziellaufwerks gespeichert.
  • Die Streuungsgruppe ist mit einem Zusatzspeicherbereich gemäß ihrer Größe ausgestattet. Der Zusatzspeicherbereich wird als ein virtuelles Zusatzspeicherlaufwerk verwaltet. Anders ausgedrückt, der Mikroprozessor 121 erzeugt das virtuelle Zusatzspeicherlaufwerk als einen Eintrag der Virtueller-Zusatzspeicher-Verwaltungstabelle 702 gemäß der Größe des Zusatzspeicherbereichs der Streuungsgruppe. Als der Auslöser zum Erzeugen eines Eintrags der Virtueller-Zusatzspeicher-Verwaltungstabelle 702 gibt es zum Beispiel die Vergrößerung oder Verkleinerung der Streuungsgruppe oder die Anfangseinstellung der übergeordneten Speichervorrichtung. Die Virtueller-Zusatzspeicher-Verwaltungstabelle 702 wird zum Suchen nach einem nicht genutzten virtuellen Zusatzspeicherlaufwerk verwendet, wenn ein Laufwerk gesperrt ist.
  • Die Laufwerkszustandstabelle 703 ist eine Tabelle zum Verwalten des Zustands des physischen Laufwerks (zum Beispiel der untergeordneten Speichervorrichtung 180), welches (welche) die physische Paritätsgruppe konfiguriert. Wie in 10 gezeigt, ist die Laufwerkszustandstabelle 703 aus einer Physische-Paritätsgruppen-Nummern- (PPG#-) Spalte 7031, einer PDEV-Nummern-Spalte 7032 und einer Zustandsspalte 70331 konfiguriert.
  • Die Physische-Paritätsgruppen-Spalte 7031 speichert die Nummer zum Identifizieren der physischen Paritätsgruppe. Die PDEV-Nummern-Spalte 7032 speichert die Nummer des die physische Paritätsgruppe der Physische-Paritätsgruppen-Spalte 7031 des Eintrags konfigurierenden physischen Laufwerks (Physisches-Laufwerk-Nummer). Die Zustandsspalte 7033 speichert den Zustand des der Physisches-Laufwerk-Nummer der PDEV-Nummern-Spalte 7032 des Eintrags entsprechenden physischen Laufwerks.
  • Der Zustand des physischen Laufwerks kann „Normal“, was bedeutet, dass das physische Laufwerk normal ist und Lese-/Schreibzugriff möglich ist oder „Kein Zugriff“, was bedeutet, dass Lese-/Schreibzugriff infolge eines Ausfalls oder dergleichen des physischen Laufwerks nicht möglich ist, sein.
  • Die Cacheverwaltungstabelle 704 ist eine Tabelle zum Verwalten der im Cachespeicher 131 gespeicherten Daten. Wie in 11 gezeigt, ist die Cacheverwaltungstabelle 704 aus einer Virtueller-Datenträger-Nummern- (WOL#-) Spalte 7041, einer Datenträger-Slot-Nummern-Spalte 7042, einer Cache-Slot-Nummern-Spalte 7043, einer Auslagerungssperrungskennzeichen-Spalte 7044 und einer Unsaubere-Bitmap-Spalte 7045 konfiguriert.
  • Die Virtueller-Datenträger-Nummern-Spalte 7041 speichert die Nummer zum Identifizieren des virtuellen Datenträgers. Die Datenträger-Slot-Nummern-Spalte 7042 speichert die Nummer des Datenträger-Slots (Datenträger-Slot-Nummer) des der Virtueller-Datenträger-Nummer der Virtueller-Datenträger-Nummern-Spalte 7041 entsprechenden virtuellen Datenträgers.
  • Die Cache-Slot-Nummern-Spalte 7043 speichert die Nummer des Cache-Slots (Cache-Slot-Nummer) im Cachespeicher 131, welcher den der Datenträger-Slot-Nummer der Datenträger-Slot-Nummern-Spalte 7042 entsprechenden Datenträger-Slot speichert. Die Cache-Slot-Nummern-Spalte 7043 speichert die Nummer des Cache-Slots (Nummer mit hinzugefügten (Daten) in 11), welcher die im Datenträger-Slot gespeicherten Datenelemente speichert, und die Nummer des Cache-Slots (Nummer mit hinzugefügter (Parität) in 11), welcher die Parität zum Wiederherstellen der im Datenträger-Slot gespeicherten Datenelemente speichert.
  • Die Auslagerungssperrungskennzeichen-Spalte 7044 speichert ein Kennzeichen, das zeigt, ob die Daten des der Cache-Slot-Nummer der Cache-Slot-Nummern-Spalte 7043 des Eintrags entsprechenden Cache-Slots ausgelagert werden können. Anders ausgedrückt, die Auslagerungssperrungskennzeichen-Spalte 7044 speichert ein Auslagerungssperrungskennzeichen, das zeigt, ob Daten in die Speichervorrichtung geschrieben und aus dem Cache-Slot des Cachespeichers 131 gelöscht werden können. Die Unsaubere-Bitmap-Spalte 7045 speichert einen Verbund von Bits (eine Bitmap), welcher (bzw. welche) zeigt, ob die Daten der jeweiligen Unterblocks im der Cache-Slot-Nummer der Cache-Slot-Nummern-Spalte 7043 des Eintrags entsprechenden Cache-Slot unsaubere Daten sind.
  • Die Seitenzuordnungstabelle 705 entspricht Informationen, welche die Entsprechungsbeziehung der Seite des virtuellen Datenträgers 201 und der Seite der virtuellen Paritätsgruppe 205 zeigen. Wie in 12 gezeigt, ist die Seitenzuordnungstabelle 705 aus einer Poolnummern-Spalte 7051, einer Virtueller-Datenträger-Nummern- (WOL#-) Spalte 7052, einer Virtueller-Datenträger-Seitennummern- (Seite#-) Spalte 7053, einer dem virtuellen Datenträger entsprechenden Virtuelle-Paritätsgruppen-Nummern- (VPG#-) Spalte 7054 und einer Virtuelle-Paritätsgruppen-Seitennummern-(Seite#-) Spalte 7055 konfiguriert.
  • Die Poolnummern-Spalte 7051 speichert die Nummer zum Identifizieren des Pools 200. Die Virtueller-Datenträger-Nummern-Spalte 7052 speichert die Nummer zum Identifizieren des virtuellen Datenträgers 201, und die Seitennummern-Spalte 7053 speichert die Nummer zum Identifizieren der den virtuellen Datenträger konfigurierenden Seite. Die virtuelle Paritätsgruppe 7054 speichert die Nummer zum Identifizieren der dem virtuellen Datenträger 201 des Eintrags entsprechenden virtuellen Paritätsgruppe. Die Seitennummern-Spalte 7055 speichert die Nummer zum Identifizieren der die virtuelle Paritätsgruppe konfigurierenden Seite.
  • Die Seitenzuweisungsprioritäts-Tabelle 706 ist eine Tabelle zum Verwalten der Priorität der der Seite des virtuellen Datenträgers 201 zuzuweisenden virtuellen Paritätsgruppe 204. Wie in 13 gezeigt, ist die Prioritätstabelle 706 aus einer Virtueller-Datenträger-Nummern- (WOL#-) Spalte 7061, einer Prioritätsspalte 7062 und einer Virtuelle-Paritätsgruppen-Nummern- (VPG#-) Spalte 7063 konfiguriert. Die Virtueller-Datenträger-Nummern-Spalte 7061 speichert die Nummer zum Identifizieren des virtuellen Datenträgers 201. Die Prioritätsspalte 1107 speichert Informationen, welche die Priorität zeigen, und je kleiner die Zahl, desto höher die Priorität. Zum Beispiel ist ersichtlich, dass die Seite höchster Priorität aus der virtuellen Paritätsgruppe VPG#2 im virtuellen Datenträger WOL#1 plaziert wird. Wenn es in der virtuellen Paritätsgruppe VPG#2 keine nicht genutzten Seiten mehr gibt, werden überdies Seiten bevorzugt aus der virtuellen Paritätsgruppe VPG#0 der nächsthöchsten Priorität plaziert.
  • 14A und 14B sind Tabellen, welche sich auf die Datenzuordnung zwischen der virtuellen Paritätsgruppe und der physischen Paritätsgruppe beziehen.
  • Die (im folgenden als die „V2P-Tabelle“ erläuterte) V-Zyklen-Zuordnungstabelle 707 ist eine Tabelle zum Verwalten der Zuordnung des virtuellen Chunks und des physischen Chunks. Die V2P-Tabelle 707 verwaltet die Zuordnung eines Zyklus-Äquivalents der jeweiligen Chunks. Wie in 14A gezeigt, ist die V2P-Tabelle 707 aus einer Virtuelle-Paritätsgruppen-Nummern- (VPG#-) Spalte 7071 und einer V-Zyklen-Spalte (V-Zyklus#) 7072 als den Indexspalten (Index) konfiguriert und aus einer Physische-Paritätsgruppen-Nummern- (PPG#-) Spalte 7073 und einer P-Zyklen-Spalte (P-Zyklus#) 7074 als den Wertespalten (Wert) konfiguriert.
  • Mit der V2P-Tabelle 707 kann man den Wert der Virtuelle-Paritätsgruppen-Nummern- (PPG#-) Spalte 1203 und den Wert der P-Zyklen-Nummern- (P-Zyklus#-) Spalte 1204 durch Verwenden des Werts der Virtuelle-Paritätsgruppen-Nummern- (VPG#-) Spalte 7071 und des Werts der V-Zyklen-Nummern- (V-Zyklus#-) Spalte 1202 als Schlüssel erhalten.
  • Die (im folgenden als die „P2V-Tabelle“ erläuterte) P-Zyklen-Zuordnungstabelle 708 ist eine Umkehrtabelle der V-Zyklen-Zuordnungstabelle 707 und ist eine Tabelle zum Verwalten der Zuordnung des virtuellen Chunks (V-Chunks) und des physischen Chunks (P-Chunks). Wie in 14B gezeigt, ist die P2V-Tabelle 708 aus einer Physische-Paritätsgruppen-Nummern- (PPG#-) Spalte 7073 und einer P-Zyklen-Spalte (P-Zyklus#) 7074 als den Indexspalten (Index) konfiguriert und aus einer Virtuelle-Paritätsgruppen-Nummern- (VPG#-) Spalte 7071 und einer V-Zyklen-Spalte (V-Zyklus#) 7072 als den Wertespalten (Wert) konfiguriert. Da die jeweiligen Spalten die gleichen wie in der V2P-Tabelle sind, wird auf deren ausführliche Erläuterung verzichtet.
  • Die SEED-Tabelle 709 ist eine Tabelle zum Verwalten der zum Berechnen der Entsprechungsbeziehung der jeweiligen Datenplazierungen jedes VCDEV im virtuellen Chunk (V-Chunk) und jedes PCDEV im physischen Chunk (P-Chunk) zu verwendenden Informationen. Wie in 15 gezeigt, ist die SEED-Tabelle 709 aus einer Virtuelle-Paritätsgruppen-Nummern- (VPG#-) Spalte 7091 und einer VCDEV#-Spalte 1302 als den Indexspalten (Index) konfiguriert und aus einer SEED-Spalte 1303 als der Wertespalte (Wert) konfiguriert.
  • Die SEED-Spalte 1303 speichert den der virtuellen Paritätsgruppe und der VCDEV entsprechenden SEED-Wert und speichert eine Ganzzahl von 0 bis c-1. Als eine leistungsfähige Ausführungsform kann unter Verwendung des allgemein bekannten Pseudozufallszahlen-Erzeugungsverfahrens (zum Beispiel des linearen Kongruenzverfahrens oder dergleichen) eine Zufallszahl (Ganzzahl von 0 bis c-1) gespeichert werden. Der SEED-Wert wird während der Anfangseinstellung einmalig gesetzt und danach nicht geändert.
  • Überdies nimmt der SEED-Wert jeder VCDEV# in derselben Virtuelle-Paritätsgruppen-Nummer (VPG#) wünschenswerterweise einen Wert an, welcher sich so weit wie möglich nicht überschneidet. Wenn in einer kleinen Konfiguration (PG-Menge ist kleiner als c) ein sich überschneidender Wert genommen wird, nimmt die Laufwerksredundanz des Wiederherstellungsquellenpakets während der Neuerstellung zu, und kann es Fälle geben, in welchen der gleichzeitige Effekt der Neuerstellungsverarbeitung nicht erzielt werden kann.
  • Die Vorableseausführungs-Laufwerksliste 710 ist eine Tabelle zum wirksamen Verhindern des Wettbewerbs beim Laufwerkszugriff der Neuerstellungsverarbeitung bei der später beschriebenen Neuerstellungsverarbeitung. Wie in 16 gezeigt, enthält die Vorableseausführungs-Laufwerksliste 710, als ihre Schlüssel, eine Physische-Paritätsgruppen-Nummern- (PPG#-) Spalte 7101 und eine PDEV#-Spalte 7102 und eine diesen entsprechende E/A-Ausgabe-Zählwert-Spalte 7103. Die E/A-Ausgabe-Zählwert-Spalte 7103 speichert Informationen, welche zeigen, wie oft zum Durchführen der Neuerstellungsverarbeitung eine E/A an das Laufwerk ausgegeben wurde. Der E/A-Ausgabe-Zählwert kann jedesmal, wenn die periodische Datenwiederherstellungsverarbeitung (insgesamt c-mal) in der Neuerstellungsverarbeitung abgeschlossen ist, auf 0 zurückgesetzt werden.
  • Nun wird anhand von 17A und 17B die Zusatzspeicherkonvertierungstabelle zum Verwalten der Zusatzspeicherkonvertierung erläutert.
  • Die Zusatzspeicherkonvertierungstabelle 711 ist eine Tabelle zum Verwalten, welches Paket welches physischen Chunks 500b dem virtuellen Zusatzspeicherlaufwerk 502 zugeordnet wurde. Wie oben erläutert, ist das virtuelle Zusatzspeicherlaufwerk 502 ein Laufwerk zum virtuellen Verfügbarmachen eines Speicherbereichs seines Wiederherstellungziels für das ausgefallene Laufwerk 180 in der physischen Paritätsgruppe (PPG) 205.
  • Wie in 17A gezeigt, ist die Zusatzspeicherkonvertierungstabelle 711 aus einer Virtuelles-Zusatzspeicherlaufwerks-Nummern- (V-Zusatzspeicherlaufwerk#-) Spalte 7111 und einer P-Zyklen-Nummern- (P-Zyklus#-) Spalte 7112 als den Indexspalten (Index) konfiguriert und aus einer Physische-Paritätsgruppen-Nummern- (PPG#-) Spalte 7113 als Paketinformationen der physischen Seite und einer PCDEV#-Spalte 7114 als den Wertespalten (Wert) konfiguriert. Mit der Zusatzspeicherkonvertierungstabelle 711 kann man den Wert der Physische-Paritätsgruppen-Nummern-Spalte 7113 und den Wert der P-Zyklen-Nummern-Spalte 7114 durch Verwenden des Werts der Virtuelles-Zusatzspeicherlaufwerks-Nummern-Spalte 7111 und des Werts der P-Zyklen-Nummern-Spalte 7112 als Schlüssel erhalten.
  • Überdies ist die in 17B gezeigte Zusatzspeicher-Umkehrkonvertierungs-Tabelle 712 eine Umkehrtabelle der Zusatzspeicherkonvertierungstabelle 711 und ist sie aus einer Physische-Paritätsgruppen-Nummern- (PPG#-) Spalte 7121 und einer PCDEV#-Spalte 7122 als den Indexspalten (Index) konfiguriert und aus einer Virtuelles-Zusatzspeicherlaufwerks-Nummern- (V-Zusatzspeicherlaufwerk#-) Spalte 7123 und einer P-Zyklen-Nummern- (P-Zyklus#-) Spalte 7124 als den Wertespalten (Wert) konfiguriert. Da die jeweiligen Spalten die gleichen wie in der Zusatzspeicherkonvertierungstabelle 711 sind, wird auf deren ausführliche Erläuterung verzichtet.
  • (1-5) Einzelheiten der Datenverwaltungsverarbeitung im Speichersystem
  • Nun werden Einzelheiten der Datenverwaltungsverarbeitung im Speichersystem erläutert. Zuerst wird die Host-E/A-Verarbeitung als die dem aus dem Computersystem ausgegebenen Host E/A-Befehl entsprechende synchrone Verarbeitung auf der Seite der Speichervorrichtung erläutert.
  • Die (auch als die Lese- /Schreibverarbeitung bezeichnete) Host-E/A-Verarbeitung wird ausgeführt, wenn der Mikroprozessor 121 vom Host 10 über den Anschluss 111 des FEPK 110 einen E/A-Befehl (Lesebefehl oder Schreibbefehl) empfängt.
  • Wie in 18 gezeigt, ermittelt der Mikroprozessor 121 zuerst, ob der vom Host 10 empfangene Befehl ein Schreibbefehl ist (Schritt S1501). Wenn, als Ergebnis der Ermittlung in Schritt S1501, der empfangene Befehl ein Schreibbefehl ist (Ja in Schritt S1501), empfängt der Mikroprozessor 121 die dem Schreibbefehl entsprechenden Schreibdaten vom Host 10 und schreibt er diese Schreibdaten in den Cachespeicher 131 (Schritt S1507) und sendet er über den Anschluss 111 des FEPK 110 eine Fertigstellungsmeldung an den Host 10 (Schritt S1508). Hier werden die Daten unsauber gemacht, um zu zeigen, dass die Daten im Cache noch nicht im Laufwerk widergespiegelt wurden. Die Daten unsauber zu machen, zeigt, dass die Daten im Cache neu sind, und zeigt ferner, dass die Daten der Datenschreibverarbeitung in das Laufwerk in der Sammel-Schreibverarbeitung unterzogen werden. Speziell können Daten unsauber gemacht werden, indem alle Bits der Unsaubere-Bitmap-Spalte 7045 der Cacheverwaltungstabelle 704 der Zieldaten auf „1“ gesetzt werden.
  • Wenn indessen der empfangene Befehl kein Schreibbefehl ist; das heißt, wenn der empfangene Befehl, als Ergebnis der Ermittlung in Schritt S1501, ein Lesebefehl ist (Nein in Schritt S1501), führt der Mikroprozessor 121 die Seitenkonvertierungs-Verarbeitung aus, um die Adresse des Speicherbereichs in der virtuellen Paritätsgruppe (VPG) 204, welcher dem Zugriffsbereich der Speichervorrichtung (untergeordneten Speichervorrichtung 180 oder externen Speichervorrichtung 40), welche dem Lesebefehl unterliegt, entspricht, zu erhalten (Schritt S1502). Der Lesebefehl enthält zum Beispiel eine Virtueller-Datenträger-Nummer und eine LBA (Logical Block Address) des Zugriffsziels. Da das Verfahren des Beschaffens der entsprechenden Adresse (VPG#, V-Chunk#, VCDEV# oder dergleichen) in der virtuellen Paritätsgruppe (VPG) 204 aus der Virtueller-Datenträger-Nummer und der LBA anhand von 4 erläutert wurde, wird auf deren ausführliche Erläuterung verzichtet.
  • Anschließend berechnet der Mikroprozessor 121 auf der Grundlage der LP-Konvertierungs-Verarbeitung 1503 die Adresse (PPG#, P-Chunk#, PCDEV# oder dergleichen) der der Adresse der virtuellen Paritätsgruppe (VPG) entsprechenden physischen Paritätsgruppe (PPG) (Schritt S1503). Die LP-Konvertierungs-Verarbeitung wird später ausführlich erläutert.
  • Anschließend ermittelt der Mikroprozessor 121, ob das dem Zugriffsbereich vom Host 10 entsprechende Laufwerk zugänglich ist (Schritt S1504). Speziell führt der Mikroprozessor 121 die Ermittlung unter Verwendung der Physische-Paritätsgruppen-Nummer (PPG#) und der PCDEV# durch, welche in Schritt S1503 durch Konsultieren der Laufwerkszustandstabelle 703 und Übernehmen des Zustands dieses Laufwerks berechnet wurden. Hier wird, wenn der Wert der Zustandsspalte 7033 unzugänglich ist, festgestellt, dass es ein unzugängliches Laufwerk gibt. Wenn der vorhergehende Wert nicht unzugänglich ist, wird festgestellt, dass es keine unzugänglichen Laufwerke gibt.
  • Wenn in Schritt S1504 festgestellt wird, dass es keine unzugänglichen Laufwerke gibt, führt der Mikroprozessor 121 die normale Leseverarbeitung aus (Schritt S1505) und liest er Daten in den Cachespeicher und überträgt er diese Daten an das Laufwerk. Danach überträgt der Mikroprozessor 121 die Daten an den Host (Schritt S1506).
  • Wenn indessen in Schritt S1504 festgestellt wird, dass es ein unzugängliches Laufwerk gibt, ermittelt der Mikroprozessor 121, ob der Kopierzeiger den Zugriffsbereich durchlaufen hat (Schritt S1509). Wenn in Schritt S1504 festgestellt wird, dass der Kopierzeiger den Zugriffsbereich durchlaufen hat, führt der Mikroprozessor 121 die normale Leseverarbeitung aus (Schritt S1505). Der Grund, aus welchem in Schritt S1505 die normale Leseverarbeitung ausgeführt wird, ist, dass Daten aus dem Zusatzspeicherbereich gelesen werden können, da in Fällen, in welchen der Kopierzeiger den Zugriffsbereich durchlaufen hat, die Wiederherstellung bereits auf der Grundlage der Neuerstellungsverarbeitung durchgeführt wurde.
  • Wenn indessen in Schritt S1504 festgestellt wird, dass der Kopierzeiger den Zugriffsbereich nicht durchlaufen hat, führt der Mikroprozessor 121, da die Wiederherstellungsverarbeitung noch nicht durchgeführt wurde, die Korrektur-Leseverarbeitung aus (Schritt S1510). Anschließend überträgt der Mikroprozessor 121 die übernommenen Daten über den FEPK 110 an den Host 10 (S1506). Die Korrektur-Leseverarbeitung in Schritt S1510 ist die Verarbeitung des Wiederherstellens der verlorenen Daten aus redundanten Daten (Paritäts- und Spiegeldaten).
  • Nun werden Einzelheiten der Sammel-Schreibverarbeitung im Computersystem erläutert. Die Sammel-Schreibverarbeitung kann zum Beispiel periodisch ausgeführt werden.
  • Wie in 19 gezeigt, ermittelt der Mikroprozessor 121, ob es im Cachespeicher 131 einen Daten enthaltenden Slot gibt, welcher noch nicht in der Speichervorrichtung widergespiegelt wurde (Schritt S1601). Ob es einen nicht widergespiegelte Daten enthaltenden Slot gibt, kann durch Konsultieren der Cacheverwaltungstabelle 240 bestätigt werden. Wenn in Schritt S1601 festgestellt wird, dass es keinen nicht widergespiegelte Daten enthaltenden Slot gibt, beendet der Mikroprozessor 121 die Sammel-Schreibverarbeitung.
  • Wenn indessen in Schritt S1601 festgestellt wird, dass es einen nicht widergespiegelte Daten enthaltenden Slot gibt, prüft der Mikroprozessor 121 das Auslagerungssperrungs-Kennzeichen 244 des diesem Slot entsprechenden Eintrags der Cacheverwaltungstabelle 240 und ermittelt er, ob dieser Slot ein Slot ist, der gerade einer Auslagerungssperrung unterliegt (Schritt S1602).
  • Wenn in Schritt S1602 festgestellt wird, dass der Slot gerade einer Auslagerungssperrung unterliegt, kehrt der Mikroprozessor 121, da dies zeigt, dass die in diesem Slot enthaltenen Daten gerade zur Wiederherstellung verwendet werden, zu Schritt S1601 zurück, ohne die Daten dieses Slots in der Speichervorrichtung widerzuspiegeln, und führt er eine auf einen anderen Slot abzielende Verarbeitung durch.
  • Wenn indessen in Schritt S1602 festgestellt wird, dass der Slot gerade keiner Auslagerungssperrung unterliegt, führt der Mikroprozessor 121 die Seitenkonvertierungs-Verarbeitung (S1603) und die LP-Konvertierungs-Verarbeitung durch (S1604). Auf der Grundlage der Seitenkonvertierungsverarbeitung und der LP-Konvertierungs-Verarbeitung kann man den diesem Slot entsprechenden physischen Bereich (PPG#, P-Chunk#, PCDEV#) erhalten. Die Seitenkonvertierungsverarbeitung und die LP-Konvertierungs-Verarbeitung werden später ausführlich erläutert.
  • Anschließend ermittelt der Mikroprozessor 121, ob es im Datenschreibbereich (Zugriffsbereich) dieses Slots der Speichervorrichtung ein unzugängliches Laufwerk gibt (Schritt S1605).
  • Wenn infolge der Ermittlung in Schritt S1605 festgestellt wird, dass es ein unzugängliches Laufwerk gibt, führt der Mikroprozessor 121 die Korrektur-Schreibverarbeitung aus (Schritt S1606) und wiederholt er die Verarbeitung ab Schritt S1601. Hier, in der Korrektur-Schreibverarbeitung, erzeugt der MP 121 in der untergeordneten Speichervorrichtung 180 unter Verwendung der Daten des Slots eine neue Parität und speichert er die erzeugte Parität in der Speichervorrichtung. Speziell liest der MP 121 die der Stripe-Spalte der Korrektur-Schreibzieldaten entsprechenden alten Daten aus der untergeordneten Speichervorrichtung 180, erzeugt er eine neue, auf einer Exklusiv-ODER- oder Galois-Operation beruhende Parität und schreibt er die neue Parität in die untergeordnete Speichervorrichtung 180.
  • Wenn indessen infolge der Ermittlung in Schritt S1605 festgestellt wird, dass es kein Paket gibt, das eine Wiederherstellung erfordert, führt der MP 121 die normale Schreibverarbeitung aus (Schritt S1607) und wiederholt er die Verarbeitung ab Schritt S1601. Speziell hier, in der normalen Schreibverarbeitung, liest der MP 121 die alten Daten dieser Daten und die alte Parität dieser Parität aus der untergeordneten Speichervorrichtung 180, erzeugt er eine neue, auf einer Exklusiv-ODER- oder Galois-Operation beruhende Parität und schreibt er die neuen Daten und die neue Parität in die untergeordnete Speichervorrichtung 180.
  • Nun werden Einzelheiten der vorhergehenden Seitenkonvertierungsverarbeitung erläutert. Die Seitenkonvertierungs-Verarbeitung ist eine Verarbeitung, die während der Host-E/A-Verarbeitung (Leseverarbeitung, Schreibverarbeitung) ausgeführt wird, und ist eine Verarbeitung des Wiederholens der der Seite des virtuellen Datenträger entsprechenden Virtuelle-Paritätsgruppen-Nummer (VPG#) und der Adresse der virtuellen Paritätsgruppe auf der Grundlage der Seitenzuordnungstabelle.
  • Wie in 20 gezeigt, berechnet der Mikroprozessor 121 die Virtuelle-Paritätsgruppen-Nummer (VPG#) und die der Seite des benannten virtuellen Datenträgers entsprechende Seitennummer auf der Grundlage der Seitenzuordnungstabelle 705 (Schritt 1701). Anschließend ermittelt der Mikroprozessor 121, ob diese Seite noch nicht zugewiesen wurde oder ob sie zugewiesen wurde (Schritt 1702).
  • In Schritt S1702 ist es, da es eine Information wie „Nicht zugewiesen“ gibt, welche zeigt, dass die Seite dem Feld 1104 der Virtuelle-Paritätsgruppen-Nummer (VPG#) der Seitenzuordnungstabelle 705 noch nicht zugewiesen wurde, möglich, festzustellen, dass die Seite noch nicht zugewiesen wurde. Anders ausgedrückt, im Anfangszustand des Systems (Zustand, in welchem niemals eine Host-E/A für den virtuellen Datenträger ausgeführt wurde) ist der Zustand in allen Fällen „Nicht zugewiesen“.
  • Wenn in Schritt S1702 festgestellt wird, dass die Seite zugewiesen wurde (Nein in Schritt 1702), berechnet der Mikroprozessor 121 die Virtueller-Chunk-Nummer (V-Chunk#) und die V-CDEV# aus der in der Seitenzuordnungstabelle 705 gezeigten Adresse, liefert er den berechneten Wert (Schritt 1710) und beendet er dann die Verarbeitung. Wenn indessen festgestellt wird, dass die Seite noch nicht zugewiesen wurde (Ja in Schritt 1702), ermittelt der Mikroprozessor 121, ob die Zugriffsart Lesen oder Schreiben ist (Schritt 1703).
  • Wenn in Schritt S1703 festgestellt wird, dass die Zugriffsart Lesen ist, verwendet der Mikroprozessor 121 die Virtuelle-Paritätsgruppen-Nummer (VPG#) und die Seitennummer der Nullbereichsseite (Schritt 1704), um die Virtueller-Chunk-Nummer (V-Chunk#) und die V-CDEV# zu berechnen, liefert er die berechneten Werte (Schritt 1710) und beendet er dann die Verarbeitung. Eine Nullbereichsseite ist hier eine Seite eines Bereichs, in welchem der Datenwert „0“ ist. Die Verarbeitung von Schritt S1704 wird durchgeführt, um sicherzustellen, dass ein niemals geschriebener Bereich „0“ ist.
  • Da nur eine einzige Seite einer solchen Nullbereichsseite im Speichersystem erforderlich ist, wird ein solcher Bereich im voraus reserviert. Wenn die Zugriffsart Schreiben ist (Ermittlung von „Schreiben“ in Schritt 1703), wird die Ziel-Streuungsgruppe (DG) übernommen, um zu ermitteln, welcher Streuungsgruppe (DG) 207 des zum benannten virtuellen Datenträger gehörenden Poolsdie Seite zugewiesen werden sollte (Schritt 1705). Als die Verfahren des Auswählens der Ziel-Streuungsgruppe (DG) kann hier zum Beispiel das Verfahren des Prüfens in mit der höchsten Schicht beginnender Reihenfolge, ob es eine nicht genutzte Seite im Zielpool gibt, und Auswählens der Streuungsgruppe (DG) mit der niedrigsten Seitennutzung aus den Schichten, welche eine nicht genutzte Seite enthalten, oder das Verfahren des Auswählens der Streuungsgruppe (DG) mit der niedrigsten E/A-Last verwendet werden.
  • Nach Auswählen der Streuungsgruppe (DG) wie oben beschrieben konsultiert der Mikroprozessor 121 die Prioritätstabelle hinsichtlich des virtuellen Zieldatenträgers und übernimmt er die Virtuelle-Paritätsgruppen-Nummer (VPG#) mit der höchsten Priorität (Schritt 1706). Speziell konsultiert der Mikroprozessor 121 die Seitenzuweisungsprioritäts-Tabelle 706 und übernimmt er die Virtuelle-Paritätsgruppen-Nummer (VPG#) 1108 mit dem niedrigsten Prioritätswert 1107.
  • Anschließend konsultiert der Mikroprozessor 121 die Poolverwaltungstabelle 701 und ermittelt er, ob die das Ziel bildende virtuelle Paritätsgruppe (VPG#) in die in Schritt 1705 ermittelte Streuungsgruppe (DG) geladen ist (Schritt 1707).
  • Wenn in Schritt 1707 festgestellt wird, dass die virtuelle Paritätsgruppe nicht in die Streuungsgruppe geladen ist, wählt der Mikroprozessor 121 die virtuelle Paritätsgruppe (VPG#) mit der nächsthöchsten Priorität aus und führt er die Ermittlung in Schritt 1707 noch einmal durch. Wenn in Schritt S1707 festgestellt wird, dass die virtuelle Paritätsgruppe in die Streuungsgruppe geladen ist, ermittelt der Mikroprozessor 121, ob es eine nicht genutzte Seite der das Ziel bildenden virtuellen Paritätsgruppe (VPG) gibt (Schritt 1708).
  • Wenn in Schritt S1708 festgestellt wird, dass es keine nicht genutzte Seite gibt, wählt der Mikroprozessor 121 die virtuelle Paritätsgruppe (VPG#) mit der nächsthöchsten Priorität aus und führt er die Ermittlung in Schritt 1707 noch einmal durch. Wenn in Schritt S1708 festgestellt wird, dass es eine nicht genutzte Seite gibt, weist der Mikroprozessor 121 diese Seite der nicht genutzten Seite dieser virtuellen Paritätsgruppe (VPG#) zu (Schritt 1709). Wenn der Mikroprozessor 121 in Schritt S1709 die Seite zuweisen soll, aktualisiert der Mikroprozessor 121 die Seitenzuordnungstabelle 705 auf der Grundlage von Informationen des Zuweisungsziels. Danach berechnet der Mikroprozessor 121 die V-Chunk# und die V-CDEV#, liefert er deren Werte (Schritt 1710) und beendet er dann die Verarbeitung.
  • Wie oben beschrieben, ist es bei dieser Ausführungsform möglich, eine Seite aus der virtuellen Paritätsgruppe (VPG) mit der höchsten Priorität auf der Grundlage der Priorität jedes virtuellen Datenträgers zuzuweisen. Überdies kann der Wert der Seitenzuweisungsprioritäts-Tabelle ein zufälliger Wert (VPG#) für jede vordefinierte Darstellung bezüglich der Priorität der jeweiligen virtuellen Datenträger (VVOL) sein oder kann die Priorität der virtuellen Paritätsgruppe (VPG#) für jeden virtuellen Datenträger oder für jede Gruppe des virtuellen Datenträgers durch den Benutzer über eine Verwaltungsschnittstelle oder dergleichen eingestellt werden.
  • Wenn die Replikationsfunktion des virtuellen Datenträgers verwendet wird, kann überdies, aus Sicht des Datenschutzes, der Wert der Prioritätstabelle 706 auf der Speicherseite oder der Verwaltungsschnittstellenseite automatisch so festgesetzt werden, dass getrennten virtuellen Paritätsgruppen (VPG#) bezüglich des WOL-Paars Priorität gegeben wird. Im vorhergehenden Fall ist es, wenn ein Laufwerksausfall auftritt und Daten verlorengehen, möglich, die Möglichkeit zu erhöhen, in der Lage zu sein, Daten aus der Replikation des WOL in dem WOL, welches einen Datenverlust erlitt, wiederherzustellen.
  • Nun werden Einzelheiten der vorhergehenden LP-Konvertierungs-Verarbeitung erläutert. Die LP-Konvertierungs-Verarbeitung ist die Verarbeitung des Konvertierens, auf der Grundlage der Paketzuordnungstabelle, der SEED-Tabelle und der Zusatzspeicherkonvertierungstabelle, der Adresse (VPG#, V-Chunk#, VCDEV#) des Virtuelle-Paritätsgruppen-Raums als der benannten virtuelten Adresse in die Adresse (PPG#, P-Chunk#, PCDEV#) des Physische-Paritätsgruppen-Raums als das Speicherziel der physische Daten. Die LP-Konvertierungs-Verarbeitung ist eine Verarbeitung, die aus der Seitenkonvertierungs-Verarbeitung oder dergleichen ausgeführt wird.
  • Wie in 21 gezeigt, berechnet der Mikroprozessor 121 bei der LP-Konvertierungs-Verarbeitung zuerst den virtuellen Zyklus (V-Zyklus#) aus dem virtuellen Chunk (V-Chunk#) (Schritt 1801). In Schritt 1801 kann der virtuelle Zyklus auf der Grundlage der folgenden Formel berechnet werden.
  • V Zyklus# = V Chuck# mod c
    Figure DE112013006504B4_0003
  • Anschließend führt der Mikroprozessor 121 die VP-Konvertierungs-Verarbeitung aus (Schritt 1802). Die Konvertierungs-Verarbeitung von Schritt 1802 wird später ausführlich erläutert. Auf der Grundlage der VP-Konvertierungs-Verarbeitung in Schritt S1802 ist es möglich, die Adresse (PPG# P-Zyklus# P-CDEV#) des Physische-Paritätsgruppen-Raums in Fällen einer regulären Adresse; das heißt, in Fällen, in welchen das Laufwerk nicht ausgefallen ist, zu berechnen.
  • Anschließend ermittelt der Mikroprozessor 121 auf der Grundlage der PPG# und der PCDEV#, welche durch Konsultieren der Laufwerkszustandstabelle 703 berechnet wurden, ob das Ziellaufwerk infolge eines Ausfalls oder dergleichen unzugänglich ist (Schritt 1803). Wenn das Ziel zugänglich ist (Nein in Schritt 1803), wird der physische Chunk (P-Chunk#), da eine reguläre Adresse, das heißt, die Adresse (PPG# P-Zyklus# P-CDEV#) des Physische-Paritätsgruppen-Raums des aktuellen berechneten Werts als das Speicherziel der Daten verwendet wird, unter Verwendung dieses berechneten Werts berechnet (Schritt 1805) und wird anschließend die Verarbeitung beendet. Die Berechnung des physischen Chunks (P-Chunk#) aus dem physischen Zyklus (P-Zyklus#) wird auf der Grundlage der folgenden Formel ausgeführt.
  • P Chunk# = Untergrenze ( V Chunk#/c ) ( c + 1 ) + P Zyklus#
    Figure DE112013006504B4_0004
  • Wenn indessen in Schritt S1803 das Ziellaufwerk unzugänglich ist, da diese Daten in einem Zusatzspeicherbereich gespeichert werden, wird die Zusatzspeicherkonvertierungsverarbeitung ausgeführt (Schritt 1804), wird die Adresse des Zusatzspeicherziels berechnet, wird unter Verwendung dieses berechneten Werts der physische Chunk (P-Chunk#) berechnet (Schritt 1805) und wird die Verarbeitung anschließend beendet. Die Zusatzspeicherkonvertierungsverarbeitung wird später ausführlich erläutert.
  • Nun werden Einzelheiten der PL-Konvertierungs-Verarbeitung des Computersystems gemäß dieser Ausführungsform erläutert.
  • Die PL-Konvertierungs-Verarbeitung ist die Verarbeitung, welche in der Neuerstellungsverarbeitung oder dergleichen zum Identifizieren der Daten der Wiederherstellungsquelle des ausgefallenen Bereichs verwendet wird. PL-Konvertierung ist die Verarbeitung des Konvertierens, auf der Grundlage der Paketzuordnungstabelle, der SEED-Tabelle und der Zusatzspeicherkonvertierungstabelle, der Adresse (PPG#, P-Chunk#, PCDEV#) des Virtuelle-Paritätsgruppen-Raums als des Speicherziels der benannten physischen Daten in die Adresse (VPG#, V-Chunk#, VCDEV#) des Virtuelle-Paritätsgruppen-Raums als die virtuelle Adresse. Anders ausgedrückt, die PL-Konvertierung entspricht der Umkehrkonvertierung der LP-Konvertierung. Das heißt, nachdem die LP-Konvertierung durchgeführt wurde, wird die gleiche Adresse geliefert, wenn die PL-Konvertierung auf der Grundlage des Ergebnisses der LP-Konvertierung durchgeführt wird. Überdies gilt das gleiche auch umgekehrt.
  • Wie in 22 gezeigt, berechnet der Mikroprozessor 121 in der PL-Konvertierungs-Verarbeitung zuerst den physischen Zyklus (P-Zyklus#) aus dem physischen Chunk (P-Chunk#) (Schritt 1901). In Schritt 1901 kann der physische Zyklus auf der Grundlage der folgenden Formel berechnet werden.
  • P Zyklus# = P Chunk#mod ( c + 1 )
    Figure DE112013006504B4_0005
  • Anschließend ermittelt der Mikroprozessor 121 auf der Grundlage des berechneten physischen Zyklus (P-Zyklus#), ob das Ziel ein Zusatzspeicherbereich ist (1902). Diese Ermittlung kann durch Ermitteln, ob der physische Zyklus (P-Zyklus#) 0 ist, erfolgen.
  • Wenn das Ziel in Schritt 1902 kein Zusatzspeicherbereich ist; das heißt, wenn festgestellt wird, dass der physische Zyklus (P-Zyklus#) nicht 0 ist, führt der Mikroprozessor 121 die PV-Konvertierungs-Verarbeitung aus und berechnet er die Virtuelle-Paritätsgruppen-Adresse (VPG# V-Zyklus# V-CDEV#) (Schritt 1904). Die PV-Konvertierungs-Verarbeitung wird später ausführlich erläutert.
  • Danach berechnet der Mikroprozessor 121 den virtuellen Chunk (V-Chunk#) (Schritt 1905). Die Berechnung des virtuellen Chunks (V-Chunk#) aus dem virtuellen Zyklus (V-Zyklus#) kann auf der Grundlage der folgenden Formel erfolgen.
  • V Chunck# = Untergrenze ( P Chunck# / ( c + 1 ) c+P Zyklus# 1 )
    Figure DE112013006504B4_0006
  • Wenn indessen in Schritt S1902 festgestellt wird, dass das Ziel ein Zusatzspeicherbereich ist; das heißt, wenn festgestellt wird, dass der P-Zyklus# 0 ist, realisiert der Mikroprozessor 121 die Zusatzspeicher-Umkehrkonvertierungs-Verarbeitung und korrigiert er die Physische-Paritätsgruppen-Adresse (PPG# P-Zyklus# P-CDEV#) (Schritt 1903). Danach fährt der Mikroprozessor 121 mit Schritt 1904 fort. Die Berichtigungsverarbeitung in Schritt 1903 wird später ausführlich erläutert.
  • Nun wird anhand von 23 die VP/PV-Konvertierungs-Verarbeitung des Computersystems gemäß dieser Ausführungsform erläutert. 23 ist eine konzeptionelle Zeichnung, welche die VP/PV-Konvertierung zeigt. Die VP/PV-Konvertierung wird gemäß der Konvertierung 2005 auf der Grundlage der Paketzuordnungstabelle (V2P, P2V) und der Konvertierung 2001 auf der Grundlage der SEED-Tabelle berechnet.
  • Die Paketzuordnungstabelle (V2P, P2V) verwaltet den priorisierten Verbund von PPG# P-Zyklus# als das physische Plazierungsziel bezüglich des Pakets in den jeweiligen virtuellen Zyklen (V-Zyklus#) in der virtuellen Paritätsgruppe (VPG#). Überdies ist die SEED-Tabelle eine Tabelle zum Verwalten des Musters beim Verteilen und Plazieren der Daten im Verbund von PPG# P-Zyklus#. Zum Beispiel ist ersichtlich, dass der V-Chunk 2002 der V-Zyklus#0 der VPG#0 der auf der V2P beruhenden P-Zyklus#0 der PPG#0 entspricht. Darüber hinaus wird eine Korrektur unter Verwendung der Werte der SEED-Tabelle durchgeführt. Zum Beispiel entsprechen die V-Zyklus#0 der VPG#0 und das Paket der VCDEV#2 der V-Zyklus#2 der PPG#1 und dem Paket 2006 der PCDEV#2. Als eine spezielle Formel wird die VP-Konvertierung auf der Grundlage der folgenden Formel berechnet.
  • PPG# = V2P [ VPG# ] [ ( SEED [ VPG# ] [ VCDEV# ] + V Zyklus# ) mod c ] PPG P Zyklus# = V2P [ VPG# ] [ ( SEED [ VPG# ] [ VCDEV# ] + V Zyklus# ) mod c ] P Zyklus P CDEV# = VCDEV#
    Figure DE112013006504B4_0007
  • Überdies wird die PV-Konvertierung auf der Grundlage der folgenden Formel berechnet.
  • VPG# = P2V [ PPG# ] [ P Zyklus# ] VPG V Zyklus# = ( P2V [ PPG# ] [ P Zyklus# ] V Zyklus# SEED [ ( P2V [ PPG# ] [ P Zyklus# ] VPG ] [ PCDEV# ] ) mod c V CDEV# = PCDEV#
    Figure DE112013006504B4_0008
  • Nun wird die Zusatzspeicherkonvertierungsverarbeitung des Computersystems gemäß dieser Ausführungsform erläutert. 24A zeigt die Zusatzspeicherkonvertierungsverarbeitung, und 24B zeigt die Zusatzspeicher-Umkehrkonvertierungs-Verarbeitung.
  • Die Zusatzspeicherkonvertierungsverarbeitung wird als ein Teil der LP-Konvertierungs-Verarbeitung ausgeführt. Als die Eingabe werden die PPG#, PCDEV# und P-Zyklus# des ausgefallenen Laufwerks während eines normalen Zustands, bevor sie im Zusatzspeicherbereich gesichert werden, eingegeben, und die äquivalente Adresse des Zusatzspeicher-Sicherungsziel wird berechnet.
  • Der Mikroprozessor 121 führt die Zusatzspeicherkonvertierung auf der Grundlage der Zusatzspeicherkonvertierungstabelle aus (Schritt 2101). Speziell berechnet der Mikroprozessor 121 die Adresse des Zusatzspeicher-Sicherungsziels auf der Grundlage der folgenden Formel.
  • PPG# = Zusatzspeicher [ V ZusatzspeicherLaufwerk# ] [ P Zyklus# ] PPG ) PCDEV# = Zusatzspeicher [ V ZusatzspeicherLaufwerk# ] [ P Zyklus# ] PCDEV ) P Zyklus# = c
    Figure DE112013006504B4_0009
  • Der Mikroprozessor 121 ermittelt auf der Grundlage der Laufwerkszustandstabelle, ob die PPG#, PCDEV# nach der Konvertierung ein ausgefallenes Laufwerk ist (Schritt 2102). Wenn in Schritt 2102 festgestellt wird, dass die PPG#, PCDEV# nach der Konvertierung ein ausgefallenes Laufwerk ist, kehrt der Mikroprozessor 121 zu Schritt 2101 zurück und führt er die Zusatzspeicherkonvertierung bei Eingeben der V-ZusatzspeicherLaufwerk# und der P-Zyklus# (=0) entsprechend dem Berechnungsergebnis (PPG# PCDEV#) des vorherigen Schritts 2101 noch einmal aus. Schritt 2102 wird ausgeführt, um nach Sichern der Daten im Zusatzspeicherbereich nach dem letzten Speicherziel zu suchen. Dies liegt daran, dass es, wenn das diesen Zusatzspeicherbereich enthaltende Laufwerk zusätzlich ausfällt, Fälle gibt, in welchen dieser Bereich in einem Zusatzspeicherbereich eines anderen Laufwerks gesichert wird. Wenn festgestellt wird, dass die PPG#, PCDEV# nach der Konvertierung kein ausgefallenes Laufwerk ist (Nein in Schritt 2102), wird die Verarbeitung mit dem Ergebnis von Schritt 2101 als dem letzten Ergebnis beendet.
  • Nun wird anhand von 24B die Zusatzspeicher-Umkehrkonvertierungs-Verarbeitung erläutert. Die Zusatzspeicher-Umkehrkonvertierungs-Verarbeitung entspricht der Umkehrkonvertierung der vorhergehenden Zusatzspeicherkonvertierungsverarbeitung. Auf der Grundlage der Zusatzspeicher-Umkehrkonvertierungs-Verarbeitung wird die Adresse des ausgefallenen Laufwerks während eines normalen Zustands aus der Adresse des Zusatzspeicher-Sicherungsziels berechnet. Das heißt, nachdem die Zusatzspeicherkonvertierungsverarbeitung durchgeführt wurde, wird die gleiche Adresse geliefert, wenn die Zusatzspeicher-Umkehrkonvertierungs-Verarbeitung auf der Grundlage des Ergebnisses der Zusatzspeicherkonvertierungsverarbeitung durchgeführt wird. Überdies gilt das gleiche auch umgekehrt.
  • Wie in 24B gezeigt, führt der Mikroprozessor 121 die Zusatzspeicherkonvertierung auf der Grundlage der Zusatzspeicher-Umkehrkonvertierungs-Tabelle aus (Schritt 2103). Speziell wird die Adresse des ausgefallenen Laufwerks auf der Grundlage der folgenden Formel berechnet.
  • P Zyklus# = Zusatzspeicher_umk [ PPG# ] [ P CDEV# ] P Zyklus V ZusatzspeicherLaufwerk# = Zusatzspeicher _ umk [ PPG# ] [ P CDEV# ] Zusatzspeicher
    Figure DE112013006504B4_0010
  • Anschließend ermittelt der Mikroprozessor 121, ob der physische Zyklus (P-Zyklus#) nach der Konvertierung 0 ist (Schritt 2104). Wenn in Schritt 2104 festgestellt wird, dass der physische Zyklus (P-Zyklus#) nach der Konvertierung 0 ist, werden, da diese Adresse als das Zusatzspeicher-Sicherungsziel verwendet wird, die dem Berechnungsergebnis (V-ZusatzspeicherLaufwerk#) von Schritt 2103 entsprechenden PPG# PCDEV# eingegeben und wird die Zusatzspeicher-Umkehrkonvertierung (Schritt 2103) noch einmal ausgeführt. Wenn indessen in Schritt 2104 festgestellt wird, dass der physische Zyklus (P-Zyklus#) nach der Konvertierung nicht 0 ist, wird die Verarbeitung, da dies bedeutet, dass die Adresse eine reguläre Adresse ist, mit dem Ergebnis von Schritt 2101 als dem letzten Ergebnis beendet.
  • Nun wird die Paketzuordnungstabellenerzeugungs-Verarbeitung des Computersystems gemäß dieser Ausführungsform erläutert. Die Paketzuordnungstabellenerzeugungs-Verarbeitung ist die Verarbeitung, welche während der Anfangseinstellung des Systems oder während der Erstellung eines Pools ausgeführt wird, und ermittelt die Anfangsplazierung der Paketzuordnungstabelle (V2P, P2V). Diese Verarbeitung wird für die VPG#, V-Zyklus#, zu welchen noch keine Zuordnung durchgeführt wurde, realisiert.
  • Wie in 25 gezeigt, erzeugt der Mikroprozessor 121 zuerst eine Zufallszahl (PPG#, P-Zyklus#) (Schritt 2201). Als die Verfahren zum Erzeugen einer Zufallszahl kann zum Beispiel ein Verfahren zum Erzeugen einer Pseudozufallszahl wie das lineare Kongruenzverfahren verwendet werden oder kann die Zufallszahl gemäß einer vordefinierten Zufallszahlentabelle erzeugt werden. Hier wird die Zufallszahl erzeugt, indem die PPG# als die in die Streuungsgruppe (DG) geladene Kennung und der P-Zyklus# als die Ganzzahl im Bereich von 1 bis c betrachtet wird.
  • Anschließend ermittelt der Mikroprozessor 121, ob die in Schritt 2201 erhaltenen PPG#, P-Zyklus# bereits durch Konsultieren der P2V-Tabelle zugeordnet wurden (Schritt 2202). In Schritt 2202 kann die Ermittlung, ob die Zuordnung zur P2V-Tabelle bereits durchgeführt wurde, durch Ermitteln, wann ein ungültiger Wert in die P2V-Tabelle eingegeben wird, erfolgen.
  • Wenn in Schritt 2202 festgestellt wird, dass die Zuordnung durchgeführt wurde, kehrt der Mikroprozessor 121 zu Schritt 2201 zurück und erzeugt er eine andere Zufallszahl. Wenn indessen in Schritt 2202 festgestellt wird, dass die Zuordnung nicht durchgeführt wurde, ermittelt der Mikroprozessor 121, ob die Auftretenshäufigkeit des physischen Chunks (P-Chunks) der anschließend der virtuellen Paritätsgruppe (VPG#) zuzuordnenden physischen Paritätsgruppe (PPG#) größer als die Obergrenze (c/PG) ist (Schritt 2203). Speziell konsultiert der Mikroprozessor 121 die P2V-Tabelle mit der physischen Paritätsgruppe (PPG#) und dem physischen Zyklus (P-Zyklus) (Suche mit 1 bis c) und ermittelt er, ob das Ergebnis des Zählens der Auftretenshäufigkeit der virtuellen Paritätsgruppe (VPG#) nicht kleiner als die Obergrenze (c/PG) ist.
  • Der Zweck von Schritt 2203 ist, die Last des Laufwerks, auf welches die jeweiligen virtuellen Paritätsgruppen (VPG) zugreifen müssen, so weit wie möglich auszugleichen. Wenn die Ermittlung in Schritt 2203 positiv ausfällt, kehrt der Mikroprozessor 21, da die Wirksamkeit des Lastausgleichs sich verschlechtert, zu Schritt 2201 zurück und erzeugt er eine andere Zufallszahl. Wenn indessen die Ermittlung in Schritt 2203 negativ ausfällt, werden die PPG#, die P-Zyklus# und die VPG#, die V-Zyklus# zugeordnet. Speziell ordnet der Mikroprozessor 121 die PPG# und die P-Zyklus# der V2P [VPG#] [V-Zyklus#] zu (ersetzt er diese) (Schritt 2204) und ordnet er die VPG# und die V-Zyklus# der P2V [PPG#] [P-Zyklus#] zu (ersetzt er diese) (Schritt 2205).
  • Danach ermittelt der Mikroprozessor 121, ob die Zuordnung für alle VPG#, V-Zyklus# abgeschlossen ist (Schritt 2206). Wenn in Schritt 2206 festgestellt wird, dass die Zuordnung nicht abgeschlossen ist, wird die Verarbeitung ab Schritt 2201 für die nachfolgenden nicht zugeordneten VPG#, V-Zyklus# ausgeführt. Wenn indessen in Schritt 2206 festgestellt wird, dass die Zuordnung abgeschlossen ist, wird diese Verarbeitung beendet.
  • Nun wird die Zusatzspeicherzuordnungstabellenerzeugungs-Verarbeitung des Computersystems gemäß dieser Ausführungsform erläutert. Die Zusatzspeicherzuordnungstabellenerzeugungs-Verarbeitung ist die Verarbeitung, welche in der Anfangsphase der Neuerstellungsverarbeitung ausgeführt wird, wenn ein Laufwerk infolge eines Ausfalls des Laufwerks oder dergleichen unzugänglich wird. Diese Verarbeitung erzeugt den Zusatzspeicherbereich als das Sicherungsziel im ausgefallenen Laufwerk gespeicherter Daten und die Zuordnung (Zusatzspeicherzuordnungstabelle) des virtuellen Zusatzspeicherlaufwerks.
  • Wie in 26 gezeigt, weist der Mikroprozessor 121 dem ausgefallenen Laufwerk eine nicht genutzte V-ZusatzspeicherLaufwerk# zu (Schritt 2301). Speziell konsultiert der Mikroprozessor 121 die Virtueller-Zusatzspeicher-Verwaltungstabelle 702 und wählt er ein in die Streuungsgruppe (DG), zu welcher die dem ausgefallenen Laufwerk entsprechende physische Paritätsgruppe (PPG#) gehört und welche einen „Nicht-genutzt“-Zustand aufweist, gehörendes virtuelles Zusatzspeicherlaufwerk aus.
  • Danach realisiert der Mikroprozessor 121 die anschließende Verarbeitung für das Paket (PPG#, P-Zyklus#, P-CDEV#), in welchem die Zuordnung des Zusatzspeicherbereichs im Zusatzspeicherquellen-Zielpaket noch nicht festgesetzt wurde.
  • Der Mikroprozessor 121 wählt ein Zusatzspeicherziel-Zielpaket (PPG#, P-CDEV#, P-Zyklus#=0 fest) aus und ermittelt, ob die Zusatzspeicherziel-PPG# und -P-CDEV# bereits einer Zusatzspeicherbereichszuordnung unterzogen wurden (Schritt 2302). Als das Verfahren des Auswählens des Zusatzspeicherziel-Zielpakets kann ein Verfahren des Zuweisens zur selben CDEV# wie das ausgefallene Laufwerk, so weit wie möglich, in Betracht gezogen werden, um das Auftreten eines Datenverlusts während des gleichzeitigen Ausfalls derselben CDEV# infolge eines Pfadausfalls oder dergleichen zu verhindern. Andernfalls kann auch das Verfahren des zufälligen Auswählens des Zusatzspeicherziel-Zielpakets oder das Verfahren des Auswählens des Zusatzspeicherziel-Zielpakets in der zahlenmäßigen Reihenfolge von CDEV#, PPG# angewendet werden.
  • In Schritt 2302 kann der Mikroprozessor 121 die Zusatzspeicherzuordnungs-Umkehrkonvertierungs-Tabelle (Zusatzspeicher_umk) konsultieren und ermittelt er, ob das Ziel bereits zugeordnet wurde. Wenn in Schritt 2302 festgestellt wird, dass das Ziel bereits zugeordnet wurde, wählt der Mikroprozessor 121 ein anderes Zusatzspeicherziel-Zielpaket aus und realisiert er noch einmal die Ermittlungsverarbeitung des Schritts 2302.
  • Wenn indessen in Schritt 2302 festgestellt wird, dass das Ziel nicht zugeordnet wurde, wird ermittelt, ob es in der Zusatzspeicherziel-PPG#, P-CDEV# ein anderes Paket in der der Zusatzspeicherquellen-PPG# P-Zyklus#, P-CDEV# zuzuordnenden V-Zyklus# gibt (Schritt 2303). Die Ermittlungsverarbeitung des Schritts 2303 kann auch durch Konsultieren der Zusatzspeicherzuordnungs-Umkehrkonvertierungs-Tabelle (Zusatzspeicher_umk) erfolgen. Wenn in Schritt 2303 zwei oder mehr Pakete im selben V-Chunk im selben Laufwerk wie das Zusatzspeicher-Sicherungsziel enthalten sind, sinkt das Redundanzniveau in einer Sitzung um zwei Stufen, wenn dieses Laufwerk ausfallen und die Beständigkeit gegen Datenverlust verschlechtern sollte. Somit wird die Nichtüberschneidung von Paketen bestätigt.
  • Wenn in Schritt 2303 festgestellt wird, dass es ein anderes Paket gibt, wählt der Mikroprozessor 121 ein anderes Zusatzspeicherziel-Zielpaket aus und realisiert er noch einmal die Ermittlungsverarbeitung des Schritts 2302. Wenn indessen in Schritt 2303 festgestellt wird, dass es kein anderes Paket gibt, aktualisiert der Mikroprozessor 121 in der anschließenden Verarbeitung die Zusatzspeicherzuordnungstabelle, da das Zusatzspeicherziel-Paket ermittelt wurde. Speziell ordnet der Mikroprozessor 121 die Zusatzspeicherziel-PPG# und -P-CDEV# der Zusatzspeicher [V-ZusatzspeicherLaufwerk#] [P-Zyklus#] zu (ersetzt er diese) (Schritt 2304) und ordnet er die Zusatzspeicherquellen-P-Zyklus# und -V-ZusatzspeicherLaufwerk# der Zusatzspeicher-umk [PPG#] [P-CDEV#] zu (ersetzt er diese) (Schritt 2305).
  • Anschließend ermittelt der Mikroprozessor 121, ob die Zuordnung für alle Zusatzspeicherquellen-Zyklus# (c Zyklen) durchgeführt wurde (Schritt 2306). Wenn in Schritt 2306 festgestellt wird, dass die Zuordnung nicht abgeschlossen ist, führt der Mikroprozessor 121 die Verarbeitung ab Schritt 2302 für die nicht zugeordneten Zusatzspeicherquellen-Ziele aus. Wenn indessen in Schritt 2306 festgestellt wird, dass die Zuordnung abgeschlossen ist, beendet der Mikroprozessor 121 die Verarbeitung.
  • Nun wird die Neuerstellungsverarbeitung des Computersystems gemäß dieser Ausführungsform erläutert. Die Neuerstellungsverarbeitung wird ausgeführt, wenn es infolge eines Ausfalls dieses Laufwerks oder aus anderen Gründen nicht mehr möglich ist, auf ein Laufwerk zuzugreifen, und ist die Verarbeitung des Lesens von Daten der Wiederherstellungsquelle, um das Redundanzniveau der Streuungsgruppe (DG) wiederherzustellen, und Ausführens der Datenwiederherstellungsverarbeitung und danach Schreibens der Wiederherstellungsdaten in den Zusatzspeicherbereich. Die Neuerstellungsverarbeitung wird auch als die Korrektur-Kopierverarbeitung bezeichnet.
  • Wie in 27 gezeigt, führt der Mikroprozessor 121 zuerst die Zusatzspeicherzuordnungserzeugungs-Verarbeitung aus und ermittelt er das dem ausgefallenen Laufwerk entsprechende virtuelle Zusatzspeicherlaufwerk und die Zuordnung zum Zusatzspeicherbereich (Schritt 2401).
  • Anschließend gibt der Mikroprozessor 121 den Anfangswert (=0) in den Kopierzeiger des virtuellen Zusatzspeicherlaufwerks ein (Schritt 2402). Dieser Kopierzeiger ist der Zeiger, der zeigt, bis zu welchem Bereich die Wiederherstellung abgeschlossen wurde.
  • Anschließend wird das minimale Virtueller-Chunk- (V-Chunk-) Redundanzniveau in der Streuungsgruppe (DG) berechnet (Schritt 2403). Bei der Plazierung von Daten, bei welcher Chunks wie bei dieser Ausführungsform verteilt werden, treten während des mehrfachen Ausfalls von Laufwerken virtuelle Chunks mit einem niedrigen Redundanzniveau und virtuelle Chunks mit einem hohen Redundanzniveau gleichzeitig auf. Unter den vorhergehenden Umständen, wie in Schritt 2403 gezeigt, kann die Zuverlässigkeit durch Ausführen der Neuerstellung aus dem Bereich eines niedrigen Redundanzniveaus weiter verbessert werden. Diese Prioritätsverarbeitung (Prioritätsneuerstellungsverarbeitung) ist wirkungsvoll, wenn das Redundanzniveau 2 oder höher ist, und der Effekt wird mit steigendem Redundanzniveau stärker. In der anschließenden Verarbeitung wird eine Wiederherstellung bezüglich des dem V-Chunk mit dem minimalen Redundanzniveau entsprechenden ausgefallenen Laufwerks ausgeführt (wenn mehrere Laufwerke ausgefallen sind).
  • Anschließend führt der Mikroprozessor 121 die Wiederherstellungszieldaten-Vorableseverarbeitung aus (Schritt 2404). Vorablesen ist die Verarbeitung des mit der vorliegenden Verarbeitung asynchronen Zwischenspeicherns der Wiederherstellungszieldaten ab dem nachfolgenden Zyklus (vor dem aktuellen Kopierzeiger). Die Vorableseverarbeitung wird später ausführlich erläutert. Auf der Grundlage dieser Vorableseverarbeitung kann eine Wiederherstellungsverarbeitung in Vielzahl durchgeführt werden und kann die Neuerstellungszeit verkürzt werden.
  • Anschließend ermittelt der Mikroprozessor 121, ob der Slot des Kopierzeiger-Werts wiederhergestellt werden muss (Schritt 2405). Speziell wenn das Redundanzniveau des virtuellen Chunks, zu welchem das Wiederherstellungsziel-Paket gehört, nicht das minimale in Schritt 2403 erhaltene Redundanzniveau ist oder wenn bezüglich des Bereichs der Kopierzeiger-Position keine Seite zugewiesen wurde (Nein in Schritt 2405), überspringt der Mikroprozessor 121, da die Ausführung der Wiederherstellungsverarbeitung nicht erforderlich ist, die Ermittlungsverarbeitung des Schritts 2405 und fährt er mit Schritt 2407 fort.
  • Wenn indessen in Schritt 2405 der Ziel-Slot wiederhergestellt werden muss, führt der Mikroprozessor 121 die Datenwiederherstellungsverarbeitung aus (Schritt 2406). In Schritt 2406 wird, während zu erwarten ist, dass die Daten des Kopierzeiger-Werts auf der Grundlage der Vorableseverarbeitung von Schritt 2404 im Cache zwischengespeichert werden, wenn die Wiederherstellungszieldaten nicht im Cache sind (wenn das Vorablesen in einer Phase, in welcher der Kopierzeiger klein war, nicht durchgeführt wurde), nach Ausführen einer Daten-Zwischenspeicherung die Datenwiederherstellungsverarbeitung ausgeführt. Überdies werden die wiederhergestellten Daten nach Ausführen der Datenwiederherstellungsverarbeitung durch Einschalten des unsauberen Bits, asynchron mit dem Sammel-Schreiben in den Zusatzspeicherbereich ausgelagert.
  • Der Mikroprozessor 121 aktualisiert danach den Kopierzeiger (Schritt 2407). Der Kopierzeiger addiert den Teil, in welchem die Datenwiederherstellung abgeschlossen wurde, und rückt ihn vor.
  • Anschließend prüft der Mikroprozessor 121, ob nicht ein anderes Laufwerk zusätzlich ausgefallen ist (Schritt 2408). Wenn in Schritt 2408 festgestellt wird, dass ein anderes Laufwerk zusätzlich ausgefallen ist, kehrt der Mikroprozessor 121 zu Schritt 2401 zurück und führt er die Zusatzspeicherzuordnungserzeugungs-Verarbeitung für das zusätzlich ausgefallene Laufwerk aus.
  • Wenn indessen in Schritt 2408 festgestellt wird, dass kein anderes Laufwerk zusätzlich ausgefallen ist, ermittelt der Mikroprozessor 121, ob der Kopierzeiger die letzte LBA erreicht hat (Schritt 2409). Die letzte LBA bezieht sich auf die LBA am Ende des Laufwerks und zeigt, dass die Laufwerkwiederherstellungsverarbeitung abgeschlossen ist. Wenn in Schritt 2409 festgestellt wird, dass der Kopierzeiger die letzte LBA noch nicht erreicht hat, kehrt der Mikroprozessor 121 zu Schritt 2404 zurück.
  • Wenn indessen in Schritt 2409 festgestellt wird, dass der Kopierzeiger die letzte LBA erreicht hat, ersetzt der Mikroprozessor 121 den Anfangswert im Kopierzeiger (Schritt 2410) und prüft er danach, ob alle ausgefallenen Laufwerke wiederhergestellt wurden (Schritt 2411). Dass alle ausgefallenen Laufwerke wiederhergestellt wurden, dient als Bestätigung, dass das Redundanzniveau vollständig wiederhergestellt wurde.
  • Wenn es in Schritt 2411 ein ausgefallenes Laufwerk gibt, welches noch nicht wiederhergestellt wurde, kehrt der Mikroprozessor 121 zur Verarbeitung von Schritt 2403 zurück. Wenn indessen alle ausgefallenen Laufwerke wiederhergestellt wurden, trägt der Mikroprozessor 121 einen ungültigen Wert in den Kopierzeiger des wiederhergestellten Laufwerks ein (Schritt 2412) und beendet er dann die Neuerstellungsverarbeitung.
  • Nun wird die Wiederherstellungszieldaten-Vorableseverarbeitung des Computersystems gemäß dieser Ausführungsform erläutert. Die Wiederherstellungszieldaten-Vorableseverarbeitung ist ein Teil der Neuerstellungsverarbeitung.
  • Wie in 28 gezeigt, berechnet der Mikroprozessor 121 zuerst den Vorableseziel-Slot aus dem Kopierzeiger-Wert des Wiederherstellungsziellaufwerks (virtuellen Zusatzspeicherlaufwerks) (Schritt 2501). Speziell kann ein durch Addieren eines gegebenen Werts zum auf der Grundlage der Systemrichtlinie festgesetzten Kopierzeiger-Wert erhaltener Wert als die Adresse des Vorableseziel-Slots verwendet werden oder kann dieser Wert auf der Grundlage des Zuweisungszustands oder dergleichen der Paketzuordnungstabelle dynamisch korrigiert werden.
  • Anschließend ermittelt der Mikroprozessor 121, ob es ein Vorableseziel gibt und ob das Paket des Vorableseziel-Slots ein minimales Redundanzniveau aufweist (Schritt 2502). Hier bedeutet das Vorhandensein eines Vorableseziels, dass der Prozess das Ende des Laufwerks noch nicht erreicht hat. Wenn in Schritt 2502 das Vorableseziel ein virtueller Chunk (V-Chunk) ist, der kein minimales Redundanzniveau aufweist, überspringt der Mikroprozessor 121 die Paketwiederherstellungsverarbeitung und führt er sie später aus. Dies liegt daran, dass, wie oben beschrieben, da auch ein Paket des virtuellen Chunks (V-Chunks), welches kein minimales Redundanzniveau aufweist, existiert, die Wiederherstellungsverarbeitung des Pakets des virtuellen Chunks (V-Chunks), welches kein minimales Redundanzniveau aufweist, in Schritt 2502 übersprungen und später ausgeführt wird.
  • Wenn indessen in Schritt 2502 festgestellt wird, dass es ein minimales Redundanzniveau aufweist, ermittelt der Mikroprozessor 121, ob eine Seite zugewiesen wurde (Schritt 2503). Wenn in Schritt 2503 festgestellt wird, dass noch keine Seite zugewiesen wurde, wird der Prozess, da es sich nicht um ein Wiederherstellungsziel handelt, übersprungen und wird diese Verarbeitung beendet. Wenn indessen festgestellt wird, dass eine Seite zugewiesen wurde, wählt der Mikroprozessor 121 ein vorab zu lesendes Laufwerk aus der Vorableseausführungs-Laufwerksliste aus (Schritt 2504).
  • Diese Verarbeitung zielt darauf ab, in Fällen des Haltens von zwei oder mehr redundanten Daten wie bei RAID 6 oder Dreifachspiegelung die Last auf den Laufwerken wirksam auszugleichen. Wenn es zwei oder mehr redundante Daten gibt (diese Menge wird im folgenden als „P“ bezeichnet), können Daten durch Lesen von N-P-Daten wiederhergestellt werden. Wenn das ausgefallene Laufwerk P oder weniger ist, erscheinen Optionen in den Leseziellaufwerken der Wiederherstellungsdaten.
  • Zum Beispiel wenn das RAID 6D2P ist und ein Laufwerk ausfällt, genügt es, wenn die Daten von sechs der sieben nicht ausgefallenen Laufwerke gelesen werden. Folglich ist es in der Folge von . Neuerstellungsverarbeitungen durch Aufzeichnen des Zugriffs-Zählwerts (E/A-Ausgabe-Zählwerts 1306) jedes Laufwerks für das Laufwerk, auf welches zur Datenwiederherstellung zugegriffen wird (welches als Wiederherstellungsquelle/-ziel vor und nach dem Prozess zu verwenden ist), in der Vorableseausführungs-Laufwerksliste und Vermeiden des Auswählens des Pakets eines Laufwerks mit einer hohen Zugriffshäufigkeit (auf welches die Last sich konzentriert) möglich, den Paralleleffekt zu erzielen und dadurch die Neuerstellungszeit weiter zu verkürzen. In Schritt 2504 wäre es effizient, die Auswahl aus dem Laufwerk mit dem geringsten E/A-Ausgabe-Zählwert in der vorhergehenden Vorableseausführungs-Laufwerksliste zu treffen.
  • Anschließend führt der Mikroprozessor 121 das Vorablesen aus (Schritt 2505). Das Vorablesen ist die asynchron mit der gegenwärtigen Verarbeitung (Lesen der benannten Daten aus dem Laufwerk und Speichern solcher Daten im Cache) auszuführende Zwischenspeicherungsverarbeitung. Anschließend aktualisiert der Mikroprozessor 121, wie oben beschrieben, den E/A-Zählwert der Vorableseausführungs-Laufwerksliste (Schritt 2506), und dann beendet er die Verarbeitung.
  • Nun wird ein Beispiel der Datenzuordnung der virtuellen Paritätsgruppe und der physischen Paritätsgruppe erläutert. Die 29A bis 29C sind konzeptionelle Zeichnungen, welche ein Beispiel der Datenzuordnung der virtuellen Paritätsgruppe und der physischen Paritätsgruppe zeigen.
  • Die 29A bis 29C zeigen ein Beispiel von N=4 (vier Laufwerken), c=4 (vier Pakete), PG=3 (PG stellt die Anzahl physischer Paritätsgruppen in der Streuungsgruppe (DG) dar). In der nachfolgenden Erläuterung wird die Auswirkung dieser Ausführungsform anhand der 29A bis 29C beschrieben.
  • Das Symbol „x“ der im Paket 402 in der virtuellen Paritätsgruppe (VPG) der Zeichnung angegebenen Kennung „x-y“ stellt die Virtuelle-Paritätsgruppen-Nummer (VPG#) dar. Das Symbol „y“ stellt die Virtueller-Chunk-Nummer (V-Chunk#) dar. Die diesem Paket entsprechende Physisches-Laufwerk-Position ist mit der gleichen Kennung innerhalb des Vierecks (Pakets) in der physischen Paritätsgruppe (PPG) angegeben.
  • In 29A entspricht zum Beispiel der in der Zeichnung von einer gestrichelten Linie umgebene V-Chunk 400 dem P-Chunk 500. Hier entspricht das oberste Paket im V-Chunk 400 dem obersten Paket im P-Chunk 500.
  • Überdies ist jede PPG das gleiche Muster für jeden Zyklus 506 (c = vier Pakete + ein Zusatzspeicherpaket) und ist auch jede VPG das gleiche Muster für jeden Zyklus 505 (c = vier Pakete).
  • 29B zeigt einen Fall, in welchem ein Laufwerk ausgefallen ist (obere Zeichnung), und einen Fall, in welchem zwei Laufwerke ausgefallen sind (untere Zeichnung). (Die Plazierung auf der VPG-Seite ist die gleiche wie in 29A und wurde weggelassen.)
  • Hier ist die Neuerstellungsoperation, wenn das Laufwerk 180a ausfällt; das heißt, wenn die CDEV#0 der PPG#0 ausfällt, gezeigt. Zuerst wird das im ausgefallenen Laufwerk enthaltene Paket im (als S bezeichneten) Zusatzspeicherbereich plaziert (Zusatzspeicherzuordnungstabellenerzeugungs-Verarbeitung). In 29B ist das mit diagonalen Linien gezeigte Paket das im Zusatzspeicherbereich plazierte Paket.
  • Wie in der oberen Zeichnung von 29B gezeigt, wird die Neuerstellungsverarbeitung für den dem Paket des ausgefallenen Laufwerks zugewiesenen Zusatzspeicherbereich ausgeführt. Wenn das Redundanzniveau 2 (2D2P) ist, können die verlorenen Daten des ausgefallenen Laufwerks durch Lesen der Daten von zwei Laufwerken wiederhergestellt werden. Pakete werden aus drei Laufwerken so ausgewählt, dass die Anzahl der gesamten Pakete sich bezüglich der zwei Laufwerke nicht überschneidet. Folglich kann die maximale Lesemenge aus dem Laufwerk pro Zyklus auf eine Menge von zwei Paket-Äquivalenten Daten begrenzt werden und kann die Neuerstellungsleistung gegenüber einem herkömmlichen RAID ungefähr auf das 2,5-fache verbessert werden.
  • Überdies zeigt die untere Zeichnung der 29B ein Beispiel eines Falls, in welchem zwei Laufwerke (180a, 180b) ausgefallen sind. Der in der Zeichnung mit den diagonalen gestrichelten Linien gezeigte Bereich ist der Bereich mit einem Redundanzniveau von 0. In dieser Ausführungsform wird der Bereich mit einem Redundanzniveau von 0 bevorzugt wiederhergestellt. Folglich kann die maximale Lesemenge aus dem Laufwerk pro Zyklus auf eine Menge von einem Paket-Äquivalent Daten begrenzt werden und kann die Neuerstellungsleistung gegenüber einem herkömmlichen RAID ungefähr auf das 5-fache verbessert werden. Überdies kann die Wiederherstellungsleistung des Redundanzniveaus sogar gegenüber dem vorhergehenden Fall, in welchem ein Laufwerk ausgefallen war, ungefähr auf das Doppelte verbesserte werden.
  • Zu dem Zeitpunkt, zu welchem die Wiederherstellung des Teils mit den gestrichelten diagonalen Linien abgeschlossen ist, ist es, da das Gesamt-Redundanzniveau in der Streuungsgruppe (DG) 1 wird, möglich, das Auftreten eines Datenverlusts zu verhindern, selbst wenn anschließend ein Laufwerk ausfällt, und die Zuverlässigkeit des Systems kann gegenüber einem herkömmlichen RAID verbessert werden. Dieses Verfahren des bevorzugten Wiederherstellens des Bereichs, in welchem das Redundanzniveau 0 ist, kann realisiert werden, wenn das Datenschutzverfahren eines Redundanzniveaus von 2 oder höher angewendet wird (RAID 6 oder Dreifachspiegelung).
  • 29C zeigt einen Fall, in welchem ein das Redundanzniveau übersteigender Ausfall aufgetreten ist; zum Beispiel einen Fall, in welchem drei oder mehr Laufwerke gleichzeitig ausfallen. Die obere Zeichnung von 29C zeigt ein Beispiel, in welchem drei Laufwerke (180a, 180b, 180c) gleichzeitig gesperrt sind. Bei herkömmlicher RAID-Technologie oder bei der Technologie des verteilten RAID war es, wenn diese Art von gleichzeitigem mehrfachem, das Redundanzniveau übersteigendem Ausfall in einer vergrößerten Laufwerksgruppe (das heißt, PPG) auftrat, nicht möglich, das Auftreten eines Datenverlusts zu verhindern. Eine vergrößerte Laufwerksgruppe ist häufig eine Laufwerksgruppe, welche denselben Produktionsprozess etwa zur selben Zeit durchlaufen hat, und es wird in Betracht gezogen, dass die Wahrscheinlichkeit eines Auftretens mehrfacher Ausfälle bei Ablauf der Produktlebensdauer oder dergleichen zunehmen kann. Dennoch ist es bei dieser Ausführungsform, da die das Redundanzniveau konfigurierende Kombination von physischen Laufwerken beschränkt ist, möglich, die Möglichkeit zu erhöhen, in der Lage zu sein, das Auftreten eines Datenverlusts selbst bei dem vorhergehenden gleichzeitigen mehrfachen Ausfall zu verhindern.
  • Zum Beispiel zeigt die obere Zeichnung von 29C, dass es keinen Datenverlust-Bereich gibt. Jedoch bedeutet dies nicht, dass ein Datenverlust in allen Fällen, in welchen drei Laufwerke gleichzeitig ausfallen, verhindert werden kann. Speziell tritt ein Datenverlust auf, wenn die in dem in der oberen Zeichnung von 29C gezeigten Bereich der gestrichelten diagonalen Linien (Bereich des Redundanzniveaus 0) enthaltenen Laufwerke gleichzeitig ausfallen.
  • Die untere Zeichnung von 29C zeigt einen Fall, in welchem ein Datenverlust auftritt. Die untere Zeichnung von 29C zeigt ein Beispiel, in welchem drei Laufwerke (180a, 180b, 180d) gleichzeitig gesperrt sind. Im vorhergehenden Fall tritt ein Datenverlust in dem VPG#2, V-Chunk#2 entsprechenden Bereich auf. Dennoch ist gemäß der vorliegenden Erfindung, da die das Redundanzniveau konfigurierende Kombination physischer Laufwerke begrenzt ist, der Bereich, welcher diese Art von Datenverlust erleidet, was die Wahrscheinlichkeit anbelangt, in fast allen Fällen nur ein einziger Bereich. In dieser Ausführungsform ist der virtuelle Datenträger, in welchem ein Datenverlust auftritt, da die dem virtuellen Datenträger entsprechende virtuelle Paritätsgruppe (VPG) zusätzlich auf der Grundlage der Priorität zugewiesen wird, auf diejenigen, welche bevorzugt der VPG#2 zugewiesen wurden, beschränkt.
  • Wie oben beschrieben, nimmt, selbst wenn ein Datenverlust auftritt, das Verhältnis virtueller Datenträger, welche betroffen sind, einhergehend mit dem Vergrößern der Anzahl physischer Paritätsgruppen (PPG) ab. Demgemäß wird auch in Fällen, in welchen ein großer Pool konfiguriert ist, insofern ein Effekt erzielt, als die Datenwiederherstellungsarbeit während eines Datenverlusts auf bestimmte virtuelle Datenträger begrenzt werden kann. Viele Systeme haben Datensicherungen in virtuellen Datenträgereinheiten, und selbst wenn Daten zerstört werden, können solche Daten in virtuellen Datenträgereinheiten aus dieser Sicherung wiederhergestellt werden.
  • Im vorhergehenden Beispiel wurde ein Fall erläutert, in welchem es vier (c=4) Pakete gibt, aber im allgemeinen kann die Wahrscheinlichkeit, die Anzahl von Paketen pro Zyklus während eines Datenverlusts auf eins oder weniger zu bringen, durch Einstellen des Werts von c so, dass er nicht größer als die Potenz von P der Paritätsgruppe (PG) ist, erhöht werden. Überdies ist es im allgemeinen infolge des Einstellens des Werts von c so, dass er nicht größer als die Potenz von P-1 der Paritätsgruppe (PG) ist, möglich, die Wahrscheinlichkeit des Auftretens eines durch einen das Redundanzniveau übersteigenden gleichzeitigen Ausfall verursachten Datenverlusts zu verringern.
  • Wenn der Wert von c zu klein gemacht wird, nimmt jedoch die Wirkung des Verkürzens der Neuerstellungszeit ab und wird das Datenverlustverhältnis so groß wie bei einem herkömmlichen RAID, wenn c=1, und mit zunehmendem Wert von c nimmt das Datenverlustverhältnis ab. Wenn der Wert von c zu groß gemacht wird, während der Stripe-Verteilungsbereich sich ausdehnt, zum Beispiel das Band der BE-Steuereinheit 143, des Switchs 161 und des CMPK 131 und die Kapazitätsbegrenzung der Paritätsberechnungseinheit 141, wegen des internen Übertragungsengpasses, nimmt überdies die Zuverlässigkeit ab. Anders ausgedrückt, um gleichzeitig in den Genuss dieser drei Eigenschaften, nämlich der Beständigkeit gegen gleichzeitigen mehrfachen Laufwerksausfall, der Verkürzung der Neuerstellungszeit und der örtlichen Begrenzung des Verlustbereichs, zu kommen, wird der Wert von c wünschenswerterweise so, dass er ungefähr die Potenz von P-1 von PG ist, und auf eine Höhe, welche den Übertragungsengpass nicht übersteigt, eingestellt.
  • (2) Zweite Ausführungsform
  • (2-1) Überblick über das Computersystem
  • Nun wird das das Speichersystem gemäß der zweiten Ausführungsform enthaltende Computersystem erläutert. In der nachfolgenden Erläuterung wird die Konfiguration, welche sich von der ersten Ausführungsform unterscheidet, ausführlich erläutert und wird auf eine ausführliche Erläuterung der gleichen Konfiguration verzichtet.
  • Da die Hardware-Konfiguration des Computersystems gemäß dieser Ausführungsform die gleiche wie bei der ersten Ausführungsform ist, wird auf deren ausführliche Erläuterung verzichtet.
  • 30 ist eine Zeichnung des gemeinsam genutzten Speichers und des lokalen Speichers des Computersystems gemäß dieser Ausführungsform.
  • Wie in 30 gezeigt, speichert der gemeinsam genutzte Speicher 200 eine V2P-Tabelle (Aktuell) 707a, eine P2V-Tabelle (Aktuell) 708a als deren Umkehrkonvertierungstabelle, eine V2P-Tabelle (Ziel) 707b, eine P2V-Tabelle (Ziel) 708b als deren Umkehrkonvertierungstabelle und eine DG-Auslagerungszeiger-Tabelle 2601.
  • Wie oben beschrieben, gibt es hinsichtlich der jeweiligen V2P-Tabellen und P2V-Tabellen zwei Arten von Tabellen „Aktuell“ und „Ziel“. Diese werden zum Verweisen auf die richtige Adresse auf halbem Wege während der nachfolgend erläuterten Vergrößerungs-Nerkleinerungsverarbeitung der Streuungsgruppe (DG) verwendet. „Aktuell“ bedeutet die aktuelle Zuordnungstabelle, und „Ziel“ bedeutet die Zielzuordnungstabelle nach der Vergrößerung/Verkleinerung. Da die in den jeweiligen V2P-Tabellen und P2V-Tabellen gespeicherten Werte die gleichen wie in den V2P-Tabellen und P2V-Tabellen der ersten Ausführungsform sind, wird auf deren ausführliche Erläuterung verzichtet. Überdies werden das Datenerzeugungsverfahren und das Datenkonsultierungsverfahren der jeweiligen V2P-Tabellen und P2V-Tabellen später erläutert.
  • Überdies speichert der lokale Speicher 122 zusätzlich ein PPG-Vergrößerungs-Verarbeitungsprogramm 821, ein PPG-Verkleinerungs-Verarbeitungsprogramm 822, ein Paketneuverteilungs-Verarbeitungsprogramm 823 und ein Seitenneuverteilungs-Verarbeitungsprogramm 824. Die durch die jeweiligen Programme auszuführende Verarbeitung wird später ausführlich erläutert.
  • Die DG-Auslagerungszeiger-Tabelle 713 ist eine Tabelle zum Verwalten des Werts des DG-Auslagerungszeigers, wenn die Ziel-Streuungsgruppe (DG) gerade vergrößert oder verkleinert wird.
  • Wie in 31 gezeigt, ist die DG-Auslagerungszeiger-Tabelle 713 aus einer Poolnummern-(Pool#-) Spalte 7131, einer Schichtnummern- (Schicht#-) Spalte 2702, einer Streuungsgruppen-Nummern- (DG#-) Spalte 2703 und einer DG-Auslagerungszeiger-Spalte 2704 konfiguriert.
  • Die Poolnummern-Spalte 7131 speichert die Nummer zum Identifizieren des Pools. Die Schichtnummern-Spalte speichert die Nummer zum Identifizieren der Schicht. Die Streuungsgruppen-Nummern-Spalte speichert die Nummer zum Identifizieren der Streuungsgruppe. Die DG-Auslagerungszeiger-Spalte 2704 speichert den Wert des DG-Auslagerungszeigers.
  • Der DG-Auslagerungszeiger gibt die Adresse der LBA-Richtung des Virtuelle-Paritätsgruppen-(VPG-) Raums an, und die Daten der Adresse vor dem DG-Auslagerungszeiger-Wert bedeuten, dass die Datenauslagerungsverarbeitung auf der Grundlage einer Vergrößerung oder Verkleinerung abgeschlossen wurde. Überdies bedeuten die Daten der Adresse, welche den Wert des DG-Auslagerungszeigers übersteigt, dass die Vergrößerung oder Verkleinerung noch nicht abgeschlossen ist. Wenn der Wert des DG-Auslagerungszeigers ein ungültiger Wert ist, zeigt dies überdies einen Zustand an, in welchem die Vergrößerung oder Verkleinerung gerade nicht durchgeführt wird oder abgeschlossen wurde. Überdies wird der Wert des DG-Auslagerungszeigers zu Beginn einer Vergrößerung oder Verkleinerung auf 0 initialisiert.
  • Nun werden Einzelheiten der PPG-Vergrößerungs-Verarbeitung im Computersystem erläutert. Die PPG-Vergrößerungs-Verarbeitung ist die Verarbeitung des Vergrößerns der physischen Paritätsgruppe (PPG) in der Streuungsgruppe (DG). Insbesondere ist es bei einem geschäftskritischen Speichersystem, um dessen Verfügbarkeit aufrechtzuerhalten, erforderlich, die Vergrößerung der physischen Paritätsgruppe (PPG) zu realisieren, um Kapazität hinzuzufügen oder die Leistung zu steigern, während die Host-E/A-Verarbeitung für die Streuungsgruppe (DG) fortgesetzt wird. Überdies muss die Last (Host-E/A-Last, Neuerstellungslast) auf der Grundlage der Vergrößerung ausgeglichen werden. 32 zeigt die Gesamtdarstellung der PPG-Vergrößerungs-Verarbeitung.
  • Wie in 32 gezeigt, empfängt der Mikroprozessor 121 einen Vergrößerungsbefehl zum Vergrößern der physischen Paritätsgruppe (PPG) im Pool (Schritt 2801), wodurch die PPG-Vergrößerungs-Verarbeitung gestartet wird. In dem in Schritt 2801 empfangenen Vergrößerungsbefehl wird die Vergrößerungsziel-Physische-Paritätsgruppen-Nummer (PPG#) benannt. Es kann eine Vielzahl von Vergrößerungsziele bildenden physischen Paritätsgruppen (PPG#) geben.
  • Anschließend ermittelt der Mikroprozessor 121 die Vergrößerungsziel-Streuungsgruppe (DG) (Schritt 2802). Die Vergrößerungsziel-Streuungsgruppe kann unter Verwendung der Poolverwaltungstabelle automatisch aus der Laufwerksart der physischen Paritätsgruppe (PPG) ermittelt werden oder aus der im Vergrößerungsbefehl enthaltenen Streuungsgruppe (DG#) ermittelt werden.
  • Anschließend wird die Verarbeitung zur Ermittlung der vergrößerungsgestützten Paketänderungszuordnung ausgeführt (Schritt 2803). Infolge der Verarbeitung zur Ermittlung der vergrößerungsgestützten Paketänderungszuordnung werden die Aktuell-Tabelle der vergrößerten physischen Paritätsgruppe (PPG) und virtuellen Paritätsgruppe (VPG) und die Ziel-Tabelle als die Zielzuordnung nach der Vergrößerung erzeugt. Das spezielle Erzeugungsverfahren wird später ausführlich erläutert.
  • Anschließend wird die Seitenzuweisung zu der der physischen Paritätsgruppe (PPG) entsprechenden virtuellen Paritätsgruppe (VPG) aktiviert (Schritt 2804). Speziell wird die Kennung der vergrößerten physischen Paritätsgruppe (PPG#) als die virtuelle Paritätsgruppe (VPG#) dem Eintrag dieser Streuungsgruppe (DG) der Poolverwaltungstabelle hinzugefügt. Auf der Grundlage der Verarbeitung von Schritt 2804 kann die vergrößerte physische Paritätsgruppe (PPG) als die Poolkapazität verwendet werden.
  • Die Verarbeitung von Schritt 2801 bis Schritt 2804 kann mit hoher Geschwindigkeit ausgeführt werden, da keine Datenverlagerung zwischen Laufwerken erforderlich ist. Folglich ist es möglich, auf eine Anforderung, die Zuweisung von Seiten wegen der Erschöpfung der Kapazität unmittelbar zu starten, zu reagieren.
  • Anschließend führt der Mikroprozessor 121 die Paketneuverteilungsverarbeitung aus (Schritt 2805). Bei der Paketneuverteilungsverarbeitung wird die Datenauslagerungsverarbeitung ausgeführt, um die Datenplazierung der Aktuell-Paketzuordnungstabelle auf die Datenplazierung der Ziel-Datenplazierung zu verschieben. Das spezielle Verfahren wird später ausführlich erläutert.
  • Anschließend führt der Mikroprozessor 121 die Seitenneuverteilungsverarbeitung aus (Schritt 2806). Bei der Seitenneuverteilungsverarbeitung wird die Seitenplazierung im virtuellen Datenträger auf der Grundlage der Prioritätstabelle geändert. Die Wirkung der örtlichen Begrenzung des Ausfallbereichs ist stärker, da die Anzahl virtueller Paritätsgruppen (VPG) (=PG) in der Streuungsgruppe (DG) bezüglich des gesamten virtuellen Datenträgers größer ist.
  • Bei einer konstanten Anzahl virtueller Datenträger kann der Ausfallbereich stärker örtlich begrenzt werden, wenn die Anzahl auf der Grundlage der Prioritätstabelle zugewiesener virtueller Datenträger pro virtuelle Paritätsgruppe (VPG) kleiner ist. Anders ausgedrückt, wenn die Anzahl zuzuweisender virtueller Datenträger verkleinert wird, kann auch die Anzahl virtueller Datenträger, die bei Auftreten eines Ausfalls betroffen sein werden, verringert werden. Diese Seitenneuverteilungsverarbeitung zielt darauf ab, die Anzahl auf der Grundlage der Prioritätstabelle zuzuweisender virtueller Datenträger pro virtuelle Paritätsgruppe (VPG) durch Verlagern der Seite eines bestimmten virtuellen Datenträgers in die vergrößerte virtuelle Paritätsgruppe (VPG) zu verringern.
  • Nun werden Einzelheiten der PPG-Verkleinerungs-Verarbeitung im Computersystem erläutert. Die PPG-Verkleinerungsverarbeitung ist die Verarbeitung des Verkleinerns der physischen Paritätsgruppe (PPG) aus der Streuungsgruppe (DG). Insbesondere bei einem geschäftskritischen Speichersystem ist es, um dessen Verfügbarkeit wie bei der vorhergehenden PPG-Vergrößerungsverarbeitung aufrechtzuerhalten, erforderlich, die Verkleinerung der physischen Paritätsgruppe (PPG) für eine Wartung oder dergleichen zu realisieren, während die Host-E/A-Verarbeitung für die Streuungsgruppe (DG) fortgesetzt wird. 33 zeigt die Gesamtdarstellung der PPG-Verkleinerungsverarbeitung.
  • Wie in 33 gezeigt, empfängt der Mikroprozessor 121 einen Verkleinerungsbefehl zum Verkleinern der physischen Paritätsgruppe (PPG) im Pool (Schritt 2901), wodurch die PPG-Verkleinerungsverarbeitung gestartet wird. In dem in Schritt 2901 empfangenen Verkleinerungsbefehl wird die Verkleinerungsziel-Physische-Paritätsgruppen-Nummer (PPG#) benannt. Es kann eine Vielzahl von Verkleinerungsziele bildenden physischen Paritätsgruppen (PPG#) geben.
  • Anschließend ermittelt der Mikroprozessor 121 die Verkleinerungsziel-Streuungsgruppe (DG) (Schritt 2902). Die Verkleinerungsziel-Streuungsgruppe (DG#) kann unter Verwendung der Poolverwaltungstabelle automatisch aus der Laufwerksart der physischen Paritätsgruppe (PPG) ermittelt werden oder aus der im Verkleinerungsbefehl enthaltenen Streuungsgruppe (DG#) ermittelt werden.
  • Anschließend wird auf der Grundlage einer Schätzung ermittelt, ob die Poolkapazität während der Verkleinerungsverarbeitung zur Neige geht (Schritt 2903). Speziell wird ermittelt, ob die Gesamt-Seitenmenge des Pools nach der Verkleinerung unter die aktuelle Seitenzuweisung sinken wird. Darüber hinaus besteht, da in Wirklichkeit auch während der Ausführung der Verkleinerung Seiten zugewiesen werden, eine Möglichkeit, dass die Kapazität zur Neige gehen kann, bis die Verkleinerung abgeschlossen ist, und kann die Schätzung in Anbetracht der Neigung der aktuellen neuen Seitenzuweisung vorgenommen werden.
  • Wenn in Schritt 2903 geschätzt wird, dass die Kapazität zur Neige geht (Ja in Schritt 2903), teilt der Mikroprozessor 121 dem Speicheradministrator über die Wartungs-I/F oder dergleichen mit, dass eine Verkleinerung nicht möglich ist (Schritt 2904), und beendet er dann die Verarbeitung. Im vorhergehenden Fall kann der Administrator Maßnahmen ergreifen wie das Ausführen der Verkleinerungsverarbeitung nach Ausführen der Vergrößerungsverarbeitung für den Pool im voraus.
  • Wenn indessen in Schritt 2903 geschätzt wird, dass die Kapazität nicht zur Neige geht (Nein in Schritt 2903), wird die Zuweisung von Seiten zu der der verkleinerten physischen Paritätsgruppe (PPG) entsprechenden virtuellen Paritätsgruppe (VPG) deaktiviert (Schritt 2905). Speziell wird der Eintrag der virtuellen Paritätsgruppe (VPG#) der Kennung der verkleinerten physischen Paritätsgruppe (PPG#) aus dem Eintrag dieser Streuungsgruppe (DG) der Poolverwaltungstabelle gelöscht.
  • Anschließend wird die Verarbeitung zur Ermittlung der verkleinerungsgestützten Paketänderungszuordnung ausgeführt (Schritt 2906). Auf der Grundlage dieser Verarbeitung wird die Ziel-Zuordnung für die Paketneuverteilung ermittelt. Die Verarbeitung zur Ermittlung der verkleinerungsgestützten Paketänderungszuordnung wird später ausführlich erläutert.
  • Anschließend wird die Seitenneuverteilungsverarbeitung ausgeführt (Schritt 2907). Auf der Grundlage dieser Verarbeitung kann die der das Verkleinerungsziel bildenden virtuellen Paritätsgruppe (VPG) zugewiesene Seite in eine übrige virtuelle Paritätsgruppe, welche nicht verkleinert wird, verlagert werden und kann die das Ziel bildende virtuelle Paritätsgruppe (VPG) zusammen mit der physischen Paritätsgruppe (PPG) verkleinert werden.
  • Die Seitenneuverteilungsverarbeitung wird später ausführlich erläutert. Die Seitenneuverteilungsverarbeitung wird abgebrochen, wenn es keinen nicht genutzten Seitenbereich der virtuellen Paritätsgruppe (VPG) des Seitenverlagerungsziels mehr gibt (Ja in Schritt 2908). Zum Beispiel kann es Fälle geben, in welchen die Gesamtanzahl von Seiten infolge neuer Zuweisungen, welche wegen der Eigenschaften der Host-E/A-Verarbeitung zahlreiche Male unerwartet auftreten, größer als die in Schritt 2903 geschätzte Gesamtanzahl von Seiten wird. In einem solchen Fall (Ja in Schritt 2908) führt der Mikroprozessor 121 die Beilegungsverarbeitung aus (Schritt 2909). Anschließend benachrichtigt der Mikroprozessor 121 den Systemadministrator über die Wartungs-I/F oder dergleichen, dass die Verkleinerung nicht möglich ist (Schritt 2904), und beendet er dann die Verarbeitung.
  • Die Beilegungsverarbeitung soll die Seitenneuverteilung in ihren ursprünglichen Zustand zurückversetzen, da die in Schritt 2907 ausgeführte Seitenneuverteilung noch auf halbem Wege ist (die Seite in die VPG, die verkleinert werden sollte, verlagern). Wenn die Seitenneuverteilungsverarbeitung nicht abgebrochen wird (Nein in Schritt 2908), ist der Zustand aller Seiten der das Verkleinerungsziel bildenden virtuellen Paritätsgruppe (VPG) „Nicht zugewiesen“.
  • Danach wird die Paketneuverteilungsverarbeitung ausgeführt (Schritt 2910). Auf der Grundlage der Paketneuverteilungsverarbeitung werden die in der das Verkleinerungsziel bildenden physischen Paritätsgruppe (PPG) plazierten Pakete in die das Nicht-Verkleinerungs-Ziel bildende physische Paritätsgruppe (PPG) verlagert. Speziell werden Daten in den Paketbereich der das Nicht-Verkleinerungs-Ziel bildenden physischen Paritätsgruppe, welcher die das Verkleinerungsziel bildende virtuelle Paritätsgruppe (VPG), die in Schritt 2907 „nicht genutzt“ wurde, zugeordnet war, verlagert.
  • Anschließend wird die physische Verkleinerung der physischen Paritätsgruppe (PPG) aktiviert (Schritt 2911), und dann wird die Verarbeitung beendet. Die Verarbeitung des Aktivierens der physischen Verkleinerung der physischen Paritätsgruppe (PPG) entspricht speziell der „Spin-down“-Verarbeitung im Fall eines HDD.
  • Nun wird die VP/PV-Konvertierungs-Verarbeitung bei Vergrößern der physischen Paritätsgruppe (PPG) des Computersystems gemäß dieser Ausführungsform erläutert. Die vergrößerungsgestützte VP/PV-Konvertierungs-Verarbeitung entspricht der VP/PV-Konvertierungs-Verarbeitung, welche während der bei der ersten Ausführungsform erläuterten LP/PL-Konvertierung ausgeführt wird. Während die Vergrößerungs-/Verkleinerungsverarbeitung realisiert wird, ist es erforderlich, eine der zwei Arten von Zuordnungstabellen (Aktuell/Ziel) zu konsultieren und zu ermitteln, ob die VP/PV-Konvertierung realisiert werden muss.
  • Wie in 34 gezeigt, übernimmt der Mikroprozessor 121 den DG-Auslagerungszeiger mit VPG#, VCDEV#, V-Zyklus#, V-Chunk#, LBA als den Eingaben im Fall von VP-Konvertierung und mit PPG#, PCDEV#, P-Zyklus#, P-Chunk#, LBA als den Eingaben im Fall von PV-Konvertierung (Schritt 3001). Die Streuungsgruppe (DG#) kann man aus der eingegebenen VPG# oder PPG# durch Konsultieren der Poolverwaltungstabelle 701 erhalten, und dadurch lässt sich der Ziel-DG-Auslagerungszeiger finden.
  • Anschließend wird ermittelt, ob die Ziel-Streuungsgruppe (DG) gerade vergrößert oder verkleinert wird (Schritt 3002). Wenn der Auslagerungszeiger ein ungültiger Wert ist, kann festgestellt werden, dass die Ziel-Streuungsgruppe (DG) gerade nicht vergrößert oder verkleinert wird.
  • Wenn in Schritt 3002 festgestellt wird, dass die Ziel-Streuungsgruppe (DG) gerade nicht vergrößert oder verkleinert wird, realisiert der Mikroprozessor 121 die VP/PV-Konvertierung mit der V2P/P2V (Ziel) (Schritt 3011) und beendet er dann die Verarbeitung.
  • Wenn indessen in Schritt 3002 festgestellt wird, dass die Ziel-Streuungsgruppe (DG) gerade vergrößert oder verkleinert wird, ermittelt der Mikroprozessor 121, ob die Zielkonvertierungsoperation eine VP-Konvertierung oder eine PV-Konvertierung ist (3003).
  • Wenn in Schritt 3003 ermittelt wird, dass es sich um die VP-Konvertierung handelt, konsultiert der Mikroprozessor 121 die V2P-Tabelle (Aktuell), berechnet der Mikroprozessor 121 die PPG#, P-Zyklus (b) aus der VPG#, V-Zyklus# (a) (Schritt 3004) und berechnet er die PPG#, P-Zyklus (b) für die VPG#, V-Zyklus# (c) aus der P2V-Tabelle (Ziel) (Schritt 3005).
  • Unter Verwendung der Eingabe von (a) und (c), welche im vorhergehenden Schritt berechnet wurden, wird ermittelt, ob die Werte sowohl von (a) als auch von (c) nach dem DG-Auslagerungszeiger liegen (Schritt 3009). Speziell wird die LBA-Adresse des DG-Auslagerungszeigers mit dem aus der V-Zyklus# von (a) und (c) berechneten Wert der LBA von (a) und (c) und der LBA des eingegebenen Werts (entspricht der LBA in der Auslagerungsquellen- und der Auslagerungsziel-VPG) verglichen, und die Bedingungen von Schritt 3009 sind erfüllt, wenn die Werte sowohl von (a) als auch von (c) größer als die LBA-Adresse des DG-Auslagerungszeigers sind.
  • Wenn die Ermittlung in Schritt 3009 positiv ausfällt, konsultiert der Mikroprozessor 121 die V2P/P2V-Tabelle (Aktuell) und realisiert er die VP/PV-Konvertierung (Schritt 3011). Anders ausgedrückt, (b) wird als das Ergebnis geliefert. Wenn die Ermittlung in Schritt 3009 negativ ausfällt, konsultiert der Mikroprozessor 121 die V2P/P2V-Tabelle (Ziel) und realisiert er die VP/PV-Konvertierung (Schritt 3010) und beendet er dann die Verarbeitung. Anders ausgedrückt, die PPG#, P-Zyklus# (d) werden unter Verwendung der V2P (Ziel) aus (a) berechnet und als das Ergebnis geliefert.
  • Wenn in Schritt 300 ermittelt wird, dass es sich um die PV-Konvertierung handelt, berechnet der Mikroprozessor 121 überdies die VPG#, V-Zyklus (a) aus der PPG#, P-Zyklus# (b) mit der P2V (Aktuell) (Schritt 3006), berechnet er die PPG#, P-Zyklus# (d) aus der VPG#, V-Zyklus (a) mit der V2P (Ziel) (Schritt 3007), berechnet er die VPG#, V-Zyklus (c) aus der PPG#, P-Zyklus# (d) mit der P2V (Aktuell) (Schritt 3008) und fährt er dann mit Schritt 3009 fort. Als die anschließende Verarbeitung wird, wenn der Mikroprozessor 121 mit Schritt 3010 fortfährt, (c) als das Ergebnis verwendet und wird, wenn der Mikroprozessor 121 mit Schritt 3011 fortfährt, (a) als das Ergebnis verwendet und wird die Verarbeitung beendet.
  • Nun werden Einzelheiten der Paketneuverteilungsverarbeitung im Computersystem erläutert. Die Paketneuverteilungsverarbeitung ist die Verarbeitung des Änderns der Datenposition des Pakets, welche während der Vergrößerung/Verkleinerung der physischen Paritätsgruppe (PPG) in der Streuungsgruppe (DG) ausgeführt wird. Diese Verarbeitung ermöglicht die Realisierung der in 34 gezeigten Adressenkonvertierung durch Auslagern der Daten und Vorrücken des Auslagerungszeigers.
  • Wie in 35 gezeigt, wird, wenn diese Verarbeitung gestartet wird, ermittelt, ob die aus dem DG-Auslagerungszeiger der Streuungsgruppe (DG) berechneten Stripe-Daten auszulagern sind (Schritt 3101). Speziell, zum Beispiel wenn die PPG#0, 1, 2 in der Streuungsgruppe (DG) vorliegen und die PPG#3 vergrößert werden soll, der Unterschied in der Paketzuordnung des PPG-Raums des Zuweisungsziels durch Konsultieren der V2P-Tabellen „Aktuell“ und „Ziel“ mit den Ziel-Stripe-Daten (bezüglich aller Laufwerke von PPG#0, 1, 2, 3).
  • In Schritt 3101 wird, wenn ein Unterschied in der Paketzuordnung vorliegt und es sich noch nicht um ein Auslagerungsziel handelt, die Datenauslagerungsverarbeitung bei Benennen der verschiedenen VPG#, VCDEV#, Stripe-Daten-Position (LBA in VCDEV oder dergleichen) ausgeführt (Schritt 3102). Speziell wird die Datenposition in der virtuellen Paritätsgruppe (VPG) der in 34 oben berechneten Beziehung von (a) und (c) mit einem Paar benannt.
  • Anschließend werden die nachfolgenden Stripe-Daten bei Zurückkehren zu Schritt 3101 sequentiell verarbeitet. Wenn die Ermittlung in Schritt 3101 negativ ausfällt, aktualisiert der Mikroprozessor 121 den DG-Auslagerungszeiger (Schritt 3104). Hier wird dem Auslagerungszeiger ein Stripe-Daten-Äquivalent von Blocks hinzugefügt.
  • Darüber hinaus bricht der Mikroprozessor 121, wenn die Auslagerungssperrungs-Einstellung während der Realisierung von Schritt 3102 realisiert wird, eine solche Auslagerungssperrungs-Einstellung ab (Schritt 3105). Anschließend wird ermittelt, ob alle Bereiche ausgeführt wurden (Schritt 3106). Speziell wird ermittelt, ob der Wert des DG-Auslagerungszeigers das Ende des Laufwerks erreicht hat.
  • Wenn in Schritt 3106 festgestellt wird, dass nicht alle Bereiche ausgeführt wurden, kehrt der Mikroprozessor 121 zu Schritt 3101 zurück und führt er die Verarbeitung für die nachfolgende (in Stripe-Dateneinheiten vorzurückende) LBA noch einmal aus. Wenn indessen in Schritt 3106 festgestellt wird, dass alle Bereiche ausgeführt wurden, kopiert der Mikroprozessor 121 die Aktuell-Zuordnungsinformationen der V2P/P2V in die Ziel-Zuordnungsinformationen (Schritt 3107) und beendet er dann die Verarbeitung.
  • Nun werden Einzelheiten der Datenauslagerungsverarbeitung im Computersystem erläutert. Die Datenauslagerungsverarbeitung ist die Verarbeitung, welche von der Paketneuverteilungsverarbeitung aus ausgeführt wird, und ist die Verarbeitung zum Auslagern der Stripe-Daten im Paket. Auslagerungsverarbeitung ist speziell die Verarbeitung des Umschaltens der Stripe-Daten in den Paketen von zwei den zwei VPG-Adressen entsprechenden physischen PPG-Adressen auf der Grundlage von Datenkopie und Zuordnungsänderung.
  • Da Zuordnung und Daten, aus dem Virtuelle-Paritätsgruppe-2- (VPG-) Raum gesehen, gleichzeitig umgeschaltet werden, ändert sich die Entsprechungsbeziehung von Daten und Adresse hier nicht. Tatsächlich wird bei dieser Verarbeitung das Stripe-Daten-Paar in den auszulagernden Paketen zwischengespeichert, aber wenn die Zwischenspeicherungsverarbeitung über Vorableseverarbeitung oder dergleichen gemultiplext wird, kann die für die Vergrößerung/Verkleinerung erforderliche Zeit weiter verkürzt werden.
  • Die Datenauslagerungsverarbeitung verwendet die zwei VPG-Raum-Adressen (Auslagerungsquelle, Auslagerungsziel) als die Eingaben wie oben beschrieben. Wie in 36 gezeigt, führt der Mikroprozessor 121, wenn diese Verarbeitung gestartet wird, die Verarbeitung ab Schritt 3201 bezüglich der benannten Auslagerungsquelle und des benannten Auslagerungsziels hintereinander aus. Der Mikroprozessor 121 ermittelt, ob der Auslagerungszieladresse eine Seite zugewiesen wurde (Schritt 3201). Speziell ermittelt der Mikroprozessor 121 durch Konsultieren der Seitenzuordnungstabelle 705, ob eine Seite zugewiesen wurde.
  • Wenn in Schritt 3201 festgestellt wird, dass keine Seite zugewiesen wurde, fährt der Mikroprozessor 121, da deren physischer Bereich in einem „Nicht-genutzt“-Zustand ist und die Datenkopie während des Auslagerns unterbleiben kann, mit der Verarbeitung von Schritt 3204 fort. Wenn indessen in Schritt 3201 festgestellt wird, dass eine Seite zugewiesen wurde, realisiert der Mikroprozessor 121 Daten-Zwischenspeichern (Lesen) vom Laufwerk in den Ziel-Cache-Slot (Schritt 3202). Der dem dieser Seite entsprechenden Virtueller-Datenträger-Bereich entsprechende Cache-Slot lässt sich durch Konsultieren der Cacheverwaltungstabelle unterscheiden. Ähnlich dem Fall des Datenlesens der Host-E/A-Verarbeitung wird auf der Grundlage der Vor-Auslagerungs-LP Adressenkonvertierung der Laufwerksbereich in der entsprechenden PPG# identifiziert und werden Daten in den vorhergehenden Cache-Slot gelesen.
  • Anschließend unterbindet der Mikroprozessor 121 das Auslagern des Ziel-Cache-Slots und macht er ihn unsauber (Schritt 3203). Auslagerungssperrung ist die Funktion des Unterbindens der Widerspiegelungsverarbeitung (Sammel-Schreibverarbeitung) aus den Cachedaten in das Laufwerk. Infolge des Einschaltens des Auslagerungssperrungs-Kennzeichens 1108 der Cacheverwaltungstabelle wird die Auslagerungssperrung aktiviert. Überdies bedeutet, bestimmte Daten unsauber zu machen, dass die Daten im Cache neu sind und das Ziel der Datenschreibverarbeitung in das Laufwerk in der Sammel-Schreibverarbeitung werden. Speziell können Daten unsauber gemacht werden, indem alle Bits der unsauberen Bitmap der Cacheverwaltungstabelle auf „1“ gesetzt werden.
  • Anschließend ermittelt der Mikroprozessor 121, ob alle Zieldaten gelesen wurden (Schritt 3204). In Schritt 3204 wird hinsichtlich der zwei in dieser Verarbeitung benannten VPG-Adressen ermittelt, ob alle Daten gelesen wurden. Wenn in Schritt 3204 festgestellt wird, dass es Daten gibt, die noch nicht gelesen wurden, führt der Mikroprozessor 121 die Verarbeitung ab Schritt 3201 für die Adresse der das Ziel bildenden virtuellen Paritätsgruppe (VPG) aus. Indessen beendet der Mikroprozessor 121 in Schritt 3204 die Verarbeitung, wenn festgestellt wird, dass alle Daten gelesen wurden.
  • Nun werden Einzelheiten der Verarbeitung zur Ermittlung der vergrößerungsgestützten Paketänderungszuordnung im Computersystem erläutert. Diese Verarbeitung ist die Verarbeitung des Erzeugens der vorübergehenden Aktuell-Paketzuordnung (P2V, V2P) der Vergrößerungsziel-VPG und -PPG während der Vergrößerung und der Ziel-Paketzuordnung (P2V, V2P) nach der Vergrößerung beim Vergrößern der physischen Paritätsgruppe (PPG) in der Streuungsgruppe (DG).
  • Wie in 37 gezeigt, erzeugt der Mikroprozessor 121, wenn diese Verarbeitung gestartet wird, auf der Grundlage der Paketzuordnungstabellenerzeugungs-Verarbeitung die V2P/P2V (Aktuell) der vergrößerten VPG/PPG (Schritt 3301). Diese Zuordnung ist eine vorübergehende Zuordnungsverarbeitung, um die Verwendung der physischen Kapazität der vergrößerten PPG auch während der Vergrößerung zu ermöglichen.
  • Anschließend kopiert der Mikroprozessor 121 die V2P/P2V (Aktuell) in die V2P/P2V (Ziel) (Schritt 3302). Diese Verarbeitung ist die Vorbereitung zum Erzeugen der Ziel-Zuordnung in der anschließenden Verarbeitung. Die anschließende Verarbeitung wird für jede V-Zyklus# jeder vergrößerten virtuellen Paritätsgruppe (VPG) umfassend ausgeführt.
  • Zuerst konsultiert der Mikroprozessor 121 die V2P-Tabelle (Aktuell) und berechnet er die PPG#, P-Zyklus (b) aus der VPG#, V-Zyklus# (a) (Schritt 3303). Die anschließende Verarbeitung wird für jede P-Zyklus# jeder vergrößerten PPG umfassend ausgeführt.
  • Anschließend sucht der Mikroprozessor 121 die P2V (Ziel) und berechnet er die nicht vergrößerte PPG# und P-Zyklus# (d), in welchen die zugeordnete VPG# V-Zyklus#(c) nicht die vergrößerte VPG# ist (Schritt 3304). Danach ermittelt der Mikroprozessor 121, ob die Anzahl von Zyklen der der PPG# (d) zugeordneten VPG# (c) in der P2V (Ziel) und die Anzahl von Zyklen der der PPG# (d) zugeordneten VPG# (a) nicht größer als die Obergrenze (c / (PG + Anzahl vergrößerter PPG)) sind (Schritt 3305). Der Sinn dieser Ermittlung ist, bei Ändern der Zuordnung das Verteilungsniveau der Datenplazierung auf die jeweiligen PPG, aus der VPG gesehen, auch nach der Änderung der Zuordnung konstant zu halten.
  • Wenn in Schritt 3305 festgestellt wird, dass die Anzahl von Zyklen größer als die Obergrenze (c / (PG + Anzahl vergrößerter PPG)) ist, kehrt der Mikroprozessor 121, da die Plazierung nicht ermöglicht, das Ausgleichsniveau auf einer konstanten Höhe zu halten, zur Verarbeitung von Schritt 3304 zurück, um ein anderes Auslagerungsziel zu finden. Wenn indessen in Schritt 3305 festgestellt wird, dass die Anzahl von Zyklen nicht größer als die Obergrenze (c / (PG + Anzahl vergrößerter PPG)) ist, führt der Mikroprozessor 121, da die Plazierung ermöglicht, das Ausgleichsniveau auf einer konstanten Höhe zu halten, die Verarbeitung von Schritt 3306 aus.
  • Anschließend ermittelt der Mikroprozessor 121, ob die Anzahl von Zyklen der der PPG#(b) zugeordneten VPG# (c) und die Anzahl von Zyklen der der PPG#(b) zugeordneten VPG# (a) in der P2V (Ziel) nicht größer als die Untergrenze (c / (PG + Anzahl vergrößerter PPG)) sind (Schritt 3306). Die Ermittlung in Schritt 3306 zielt wie beim vorhergehenden Schritt 3305 darauf ab, bei Ändern der Zuordnung das Verteilungsniveau der Datenplazierung auf die jeweiligen physischen Paritätsgruppen (PPG), aus der virtuellen Paritätsgruppe (VPG) gesehen, auch nach der Änderung der Zuordnung konstant zu halten.
  • Wenn in Schritt 3306 festgestellt wird, dass die Anzahl von Zyklen größer als die Untergrenze (c / (PG + Anzahl vergrößerter PPG)) ist, kehrt der Mikroprozessor 121, da die Plazierung nicht ermöglicht, das Ausgleichsniveau auf einer konstanten Höhe zu halten, zur Verarbeitung von Schritt 3304 zurück, um ein anderes Auslagerungsziel zu finden. Wenn indessen in Schritt 3306 festgestellt wird, dass die Anzahl von Zyklen nicht größer als die Untergrenze (c / (PG + Anzahl vergrößerter PPG)) ist, führt der Mikroprozessor 121, da die Plazierung ermöglicht, das Ausgleichsniveau auf einer konstanten Höhe zu halten, die Verarbeitung von Schritt 3307 aus.
  • Anschließend vertauscht der Mikroprozessor 121 (a) und (c) der V2P (Ziel) und (b) und (d) der P2P (Ziel) (Schritt 3307).
  • Anschließend ermittelt der Mikroprozessor 121, ob die Auslagerung hinsichtlich aller V-Zyklus# abgeschlossen ist (Schritt 3308). Wenn in Schritt 3308 festgestellt wird, dass die Auslagerung nicht abgeschlossen ist, führt der Mikroprozessor 121 die Verarbeitung ab Schritt 3303 bezüglich der V-Zyklus# der nachfolgenden Vergrößerungziel-VPG# aus. Wenn indessen in Schritt 3308 die Auslagerung abgeschlossen ist (Ja in Schritt 3308), beendet der Mikroprozessor 121 die Verarbeitung.
  • Im Grunde wird die V2P/P2V-Ziel-Tabelle auf der Grundlage der vorhergehenden Verarbeitung ermittelt. In dieser Verarbeitung gibt es zwei Schleifen; nämlich die Schleife, welche in Schritt 3303 beginnt, und die Schleife, welche in Schritt 3304 beginnt, und in Schritt 3304 kann ein Fall in Betracht gezogen werden, in welchem es nicht möglich ist, eine VPG# V-Zyklus# (c) zu klären, welche der Routine ermöglicht, mit Schritt 3307 fortzufahren. Im vorhergehenden Fall ist es in der Schleife, welche ab Schritt 3303 gestartet wird, erforderlich, beim Auswählen der VPG#, V-Zyklus# (a) verschiedene Kombinationen für die Auswahlreihenfolge auszuprobieren. Überdies ist es auch in der Schleife, welche ab Schritt 3304 startet, erforderlich, beim Auswählen der PPG# und der P-Zyklus# (d) durch Ausprobieren verschiedener Kombinationen für die Auswahlreihenfolge die geeignete Plazierung zu finden.
  • Nun werden Einzelheiten der Verarbeitung zur Ermittlung der verkleinerungsgestützten Paketänderungszuordnung des Computersystems in dieser Ausführungsform erläutert. Diese Verarbeitung ist die Verarbeitung zum Erzeugen der Ziel-Paketzuordnung (P2V, V2P) nach der Verkleinerung beim Verkleinern der physischen Paritätsgruppe (PPG) in der Streuungsgruppe (DG).
  • Wie in 38 gezeigt, kopiert der Mikroprozessor 121, wenn diese Verarbeitung gestartet wird, die V2P/P2V (Aktuell) in die V2P/P2V (Ziel) (Schritt 3401). Diese Verarbeitung ist die Vorbereitung zum Erzeugen der Ziel-Zuordnung in der anschließenden Verarbeitung. Die anschließende Verarbeitung wird für jede V-Zyklus# jeder vergrößerten/verkleinerten virtuellen Paritätsgruppe (VPG) umfassend ausgeführt.
  • Zuerst konsultiert der Mikroprozessor 121 die V2P-Tabelle (Aktuell) und berechnet er die PPG#, P-Zyklus (b) aus der VPG#, V-Zyklus# (a) (Schritt 3402). Die anschließende Verarbeitung wird für jede P-Zyklus# jeder vergrößerten PPG umfassend ausgeführt.
  • Anschließend sucht der Mikroprozessor 121 die P2V (Ziel) und berechnet er die nicht verkleinerte PPG# und P-Zyklus# (d), in welchen die zugeordnete VPG# V-Zyklus# (c) nicht die verkleinerte VPG# ist (Schritt 3304). Danach ermittelt der Mikroprozessor 121, ob die Anzahl von Zyklen der der PPG#(d) zugeordneten VPG#(a) in der P2V (Ziel) nicht größer als die Obergrenze (c / (PG - Anzahl verkleinerter PPG)) ist (Schritt 3404). Der Sinn dieser Ermittlung ist, bei Ändern der Zuordnung das Verteilungsniveau der Datenplazierung auf die jeweiligen physischen Paritätsgruppen (PPG), aus der virtuellen Paritätsgruppe (VPG) gesehen, auch nach der Änderung der Zuordnung konstant zu halten.
  • Wenn in Schritt 3404 festgestellt wird, dass die Anzahl von Zyklen nicht größer als die Obergrenze (c / (PG - Anzahl verkleinerter PPG)) ist, kehrt der Mikroprozessor 121, da die Plazierung nicht ermöglicht, das Ausgleichsniveau auf einer konstanten Höhe zu halten, zur Verarbeitung von Schritt 3402 zurück, um ein anderes Auslagerungsziel zu finden. Wenn indessen in Schritt 3404 festgestellt wird, dass die Anzahl von Zyklen größer als die Obergrenze (c / (PG + Anzahl vergrößerter PPG)) ist, führt der Mikroprozessor 121, da die Plazierung ermöglicht, das Ausgleichsniveau auf einer konstanten Höhe zu halten, die Verarbeitung von Schritt 3405 aus.
  • Anschließend vertauscht der Mikroprozessor 121 (a) und (c) der V2P (Ziel) und vertauscht er (b) und (d) der P2P (Ziel) (3405).
  • Anschließend ermittelt der Mikroprozessor 121, ob die Auslagerung hinsichtlich aller V-Zyklus# abgeschlossen ist (Schritt 3406). Wenn in Schritt 3406 festgestellt wird, dass die Auslagerung nicht abgeschlossen ist, führt der Mikroprozessor 121 die Verarbeitung ab Schritt 3303 bezüglich der V-Zyklus# der nachfolgenden Verkleinerungsziel-VPG# aus. Wenn indessen in Schritt 3406 festgestellt wird, dass die Auslagerung abgeschlossen ist, beendet der Mikroprozessor 121 die Verarbeitung.
  • Im Grunde wird die V2P/P2V-Ziel-Tabelle auf der Grundlage der vorhergehenden Verarbeitung ermittelt. In dieser Verarbeitung gibt es zwei Schleifen; nämlich die Schleife, welche in Schritt 3402 beginnt, und die Schleife, welche in Schritt 3403 beginnt, und in Schritt 3403 kann ein Fall in Betracht gezogen werden, in welchem es nicht möglich ist, eine VPG# V-Zyklus# (c) zu klären, welche der Routine ermöglicht, mit Schritt 34057 fortzufahren. Im vorhergehenden Fall ist es in der Schleife, welche ab Schritt 3402 gestartet wird, erforderlich, beim Auswählen der VPG#, V-Zyklus# (a) verschiedene Kombinationen für die Auswahlreihenfolge auszuprobieren. Überdies ist es auch in der Schleife, welche ab Schritt 3403 startet, erforderlich, beim Auswählen der PPG# und der P-Zyklus# (d) durch Ausprobieren verschiedener Kombinationen für die Auswahlreihenfolge die geeignete Plazierung zu finden.
  • Nun werden Einzelheiten der Seitenneuverteilungsverarbeitung des Computersystems gemäß dieser Ausführungsform erläutert. Die Seitenneuverteilungsverarbeitung ist die Verarbeitung zum Ändern der Plazierung der Seiten in der virtuellen Paritätsgruppe (VPG) beim Vergrößern/Verkleinern der physischen Paritätsgruppe (PPG) in der Streuungsgruppe (DG). Wenn die Seitenneuverteilungsverarbeitung ausgeführt wird, wird die in 39 gezeigte Verarbeitung für die jeweiligen Seiten der jeweiligen virtuellen Datenträger (WOL) im Zielpool sequentiell ausgeführt.
  • Wie in 39 gezeigt, konsultiert der Mikroprozessor 121 die Seitenzuordnungstabelle 705 bezüglich dieser Seiten und berechnet er die aktuelle Virtuelle-Paritätsgruppen-Nummer (VPG#) und Seite# (Schritt 3501). Anschließend ermittelt der Mikroprozessor 121, ob die Seite noch nicht zugewiesen wurde (Schritt 3502).
  • Der Mikroprozessor 121 kann auf der Grundlage der Verarbeitung von Schritt 3501 ermitteln, ob eine Seite noch nicht zugewiesen wurde. Wenn in Schritt 3502 festgestellt wird, dass noch keine Seite zugewiesen wurde, fährt der Mikroprozessor 121 mit Schritt 3503 fort. Wenn indessen festgestellt wird, dass eine Seite zugewiesen wurde, übernimmt der Mikroprozessor 121 die Ziel-Streuungsgruppe (DG) (Schritt 3505). Speziell konsultiert der Mikroprozessor 121 die Poolverwaltungstabelle 701 und übernimmt er die zu dieser virtuellen Paritätsgruppe (VPG) gehörende Streuungsgruppe (DG).
  • Anschließend konsultiert der Mikroprozessor 121 die Prioritätstabelle 706 und übernimmt er die virtuelle Paritätsgruppe (VPG# (Verlagerungszielkandidat)) mit der höchsten Priorität (Schritt 3506). Danach ermittelt der Mikroprozessor 121, ob die das Ziel bildende virtuelle Paritätsgruppe (VPG#) in die Streuungsgruppe (DG) geladen ist und ob ihr eine Seite zugewiesen werden kann (Schritt 3507). Speziell führt der Mikroprozessor 121 die Ermittlung durch, indem er ermittelt, ob die virtuelle Paritätsgruppe (VPG#) des Verlagerungszielkandidaten in die Streuungsgruppe (DG) der Poolverwaltungstabelle gehört.
  • Wenn in Schritt 3507 festgestellt wird, dass die das Ziel bildende virtuelle Paritätsgruppe (VPG#) nicht in die Streuungsgruppe (DG) geladen ist und ihr keine Seite zugewiesen werden kann (Nein in Schritt 3507), konsultiert der Mikroprozessor 121 anschließend die Prioritätstabelle 706, wählt er die virtuelle Paritätsgruppe (VPG#) mit der zweithöchsten Priorität aus und wiederholt er die anschließende Verarbeitung.
  • Wenn indessen in Schritt 3507 festgestellt wird, dass die das Ziel bildende virtuelle Paritätsgruppe (VPG#) in die Streuungsgruppe (DG) geladen ist und ihr eine Seite zugewiesen werden kann, ermittelt der Mikroprozessor 121, ob die Kapazität der das Ziel bildenden virtuellen Paritätsgruppe (VPG) erschöpft ist (Schritt 3508). Dies lässt sich auf der Grundlage der Anzahl nicht genutzter Seiten der Seitenzuordnungstabelle ermitteln.
  • Wenn in Schritt 3508 festgestellt wird, dass die Kapazität erschöpft ist, wählt der Mikroprozessor 121, da sie kein Verlagerungszielkandidat werden kann, die VPG# mit der nächsthöchsten Priorität aus und wiederholt er die Verarbeitung ab Schritt 3506. Wenn indessen in Schritt 3508 festgestellt wird, dass die Kapazität nicht erschöpft ist, ermittelt der Mikroprozessor 121, ob die Priorität der virtuellen Paritätsgruppe (VPG) des Verlagerungszielkandidaten höher als die Priorität der aktuellen virtuellen Paritätsgruppe (VPG#) ist (Schritt 3509). Speziell konsultiert der Mikroprozessor 121 die Prioritätstabelle 706 und vergleicht er die Prioritäten der virtuellen Paritätsgruppen.
  • Wenn in Schritt 3508 festgestellt wird, dass die Priorität des Verlagerungszielkandidaten nicht hoch ist, da die Verlagerung von Seiten nicht erforderlich ist, führt der Mikroprozessor 121 die Verarbeitung ab Schritt 3503 aus. Wenn indessen in Schritt 3508 festgestellt wird, dass die Priorität des Verlagerungszielkandidaten hoch ist, verlagert der Mikroprozessor 121 die Seite in die das Ziel bildende virtuelle Paritätsgruppe (VPG#) (Schritt 3510). Speziell wird die Seite der virtuellen Paritätsgruppe (VPG) des Zuordnungsziels der virtuellen Seite der diesem virtuellen Datenträger entsprechenden Seitennummer von der Verlagerungsquelle zum Verlagerungsziel verlagert (wird die Seitenzuordnungstabelle aktualisiert). Daten werden gleichzeitig kopiert.
  • Anschließend ermittelt der Mikroprozessor 121, ob alle Seiten des virtuellen Zieldatenträgers (WOL) verarbeitet wurden (Schritt 3503). Wenn in Schritt 3503 festgestellt wird, dass noch nicht alle Seiten verarbeitet wurden, führt der Mikroprozessor 121 die Verarbeitung ab Schritt 3501 für die nachfolgende Seite aus. Wenn indessen in Schritt 3503 festgestellt wird, dass alle Seiten verarbeitet wurden, ermittelt der Mikroprozessor 121, ob alle virtuellen Datenträger (WOL) des Zielpools verarbeitet wurden (3504). Wenn in Schritt 3504 festgestellt wird, dass noch nicht alle virtuellen Datenträger verarbeitet wurden, führt der Mikroprozessor 121 die Verarbeitung ab Schritt 3501 für den nachfolgenden virtuellen Datenträger (WOL) im Zielpool aus. Wenn in Schritt 3504 indessen festgestellt wird, dass alle virtuellen Datenträger verarbeitet wurden, beendet der Mikroprozessor 121 diese Verarbeitung.
  • Die 40A und 40B sind konzeptionelle Zeichnungen, welche ein abgeändertes Beispiel der Paketzuordnung bei der Vergrößerung/Verkleinerung der Streuungsgruppe (DG) des Computersystems gemäß dieser Ausführungsform zeigen.
  • 40A zeigt ein Beispiel der Vergrößerung von drei physischen Paritätsgruppen (PPG) und virtuellen Paritätsgruppen (VPG) bezüglich des in 29A bis 29C gezeigten Beispiels von N=4 (vier Laufwerken), c=4 (vier Pakete), PG=3 (PG stellt die Anzahl physischer Paritätsgruppen in der Streuungsgruppe (DG) dar). Die obere Zeichnung von 40A zeigt die Zuordnung vor der Vergrößerung und entspricht der aktuellen V2P-Tabelle. Die untere Zeichnung von 40A zeigt die Zuordnung nach der Vergrößerung und entspricht der Ziel-V2P-Tabelle.
  • Der dunkel getönte Teil von 40A ist die vorübergehende, aktuelle V2P-Zuordnung, welche während des Beginns der Vergrößerung erzeugt wurde. Zu Beginn der Vergrößerung ist ersichtlich, dass die Zuordnung der VPG#3 in der PPG#3 geschlossen ist. Indessen zeigt der in 40A mit den diagonalen Linien dargestellte Teil, dass, nachdem die Vergrößerung abgeschlossen ist, die Zuordnung der VPG#3 der gesamten physischen Paritätsgruppe (PPG) zugeordnet wird und die Zuordnung eines Teils der VPG#0 bis 2 der PPG#3 zugeordnet wird.
  • Überdies zeigt 40B ein Beispiel der Verkleinerung von zwei physischen Paritätsgruppen (PPG) und virtuellen Paritätsgruppen (VPG) bezüglich des in 29A bis 29C gezeigten Beispiels von N=4 (vier Laufwerken), c=4 (vier Pakete), PG=3 (PG stellt die Anzahl physischer Paritätsgruppen in der Streuungsgruppe (DG) dar). Die obere Zeichnung von 40B zeigt die Zuordnung vor der Verkleinerung und entspricht der aktuellen V2P-Tabelle. Die untere Zeichnung von 40B zeigt die Zuordnung nach der Verkleinerung und entspricht der Ziel-V2P-Tabelle.
  • Der dunkel getönte Teil der unteren Zeichnung von 40B zeigt die Verkleinerungsziel-Daten. In 40B wird der Vorgang der Paketneuverteilung erläutert, aber, da die Seitenneuverteilung vor dieser Paketneuverteilung durchgeführt wird, ist während der Verkleinerung zu erwarten, dass dem Bereich dieses grauen Teils noch keine Seite zugewiesen wurde. Demgemäß kann die PPG#2, da der Bereich, welcher vorher als die VPG#2 zugewiesen war, nicht genutzt ist, durch Kopieren des Pakets der VPG#0, 1, welche der PPG#2 zugewiesen waren, in den (nicht genutzten) Bereich der PPG 0 und PPG 1, welche als die VPG#2 zugewiesen waren, leer gemacht werden.
  • Die vorhergehenden Kopierziel-Pakete sind mit diagonalen Linien dargestellt. Im Endzustand, da nur der Bereich der VPG#2 der PPG#2 zugewiesen ist, ist er nicht genutzt und kann er deshalb von der Streuungsgruppe (DG) physisch getrennt (verkleinert) werden.
  • Wie oben erläutert, können mit dem Vergrößerungs-Nerkleinerungsverfahren dieser Ausführungsform, da zwei Arten von Zuordnungstabellen verwendet werden und die Daten während des Aktualisierens des DG-Auslagerungszeigers verschoben werden, die Laufwerke vergrößert oder verkleinert werden, während die Host-E/A-Verarbeitung fortgesetzt wird.
  • Überdies ist beim Betrachten des Physische-Paritätsgruppen- (PPG-) Raums beim Vergrößern oder Verkleinern des Laufwerks ersichtlich, dass die Verlagerung von Daten zwischen den jeweiligen PPG# in P-Chunk-Einheiten durchgeführt wird. Der Grund, aus welchem dies realisierbar ist, ist, dass die V-Chunk#, welche in derselben PCDEV# erscheinen, sich auf der Grundlage der die SEED-Tabelle verwendenden Operation nicht überschneiden. Anders ausgedrückt, da die V-Chunk#, welche in derselben PCDEV# erscheinen, sich nicht überschneiden, erscheinen die Pakete derselben V-Chunk# nicht im selben physischen Laufwerk. Die Datenredundanz kann dadurch aufrechterhalten werden.
  • Wenn während der Vergrößerung oder Verkleinerung von Laufwerken eine vollständige feste Zuordnung durchgeführt wird, besteht überdies insofern ein Problem, als die Menge zu verlagernder Daten während des Ausgleichsprozesses wie der Paketneuverteilung gemäß der Größe vor der Vergrößerung zunimmt. Dennoch ist gemäß dem Verfahren dieser Ausführungsform, ohne alle Pakete ersetzen zu müssen, deren Verlagerungsmenge konstant, unabhängig von der Größe des Pools (Anzahl von PPGs) vor der Vergrößerung. Speziell kann die Paketneuverteilung mit der Datenauslagerung in der Höhe der vergrößerten Kapazität selbst beim Maximum abgeschlossen werden und kann auch die Seitenneuverteilung mit der Datenauslagerung in der Höhe der vergrößerten Kapazität abgeschlossen werden.
  • Darüber hinaus kann beim Vergrößerungs-/Verkleinerungsverfahren dieser Ausführungsform, da die der virtuellen Paritätsgruppe (VPG) zuzuweisende physische Paritätsgruppe (PPG) über eine Paketneuverteilung verteilt wird, die Host-E/A-Last der virtuellen Datenträger bei Fertigstellung der Vergrößerung/Verkleinerung auf die jeweiligen Laufwerke verteilt werden. Da der Lastausgleich mit dem Gesamtpool realisiert werden kann, ist eine komplizierte Leistungsgestaltung nicht erforderlich.
  • Darüber hinaus kann auf der Grundlage des Vergrößerungsverfahrens der vorliegenden Erfindung die Wahrscheinlichkeit eines Datenverlusts selbst gegenüber einem herkömmlichen RAID (Vergrö-ßerungseinheiten konfigurieren unabhängige Paritätsgruppen) verringert werden, wenn das Redundanzniveau 2 oder höher ist. Herkömmlicherweise nahm bei einem RAID die Wahrscheinlichkeit eines Datenverlusts nach der Vergrößerung proportional zu, aber wenn die Technologie der vorliegenden Erfindung bei einem Redundanzniveau von 2 oder höher verwendet wird, kann die Anzahl von Laufwerken, welche ausfallen können, bei gleichzeitiger Beschleunigung der Neuerstellungsverarbeitung verringert werden, und deshalb kann, wenn die Anzahl von PGs c beträchtlich übersteigt, gewöhnlich eine konstante Zuverlässigkeit ungeachtet der Größe aufrechterhalten werden.
  • Darüber hinaus kann mit dem Vergrößerungsverfahren dieser Ausführungsform, selbst wenn ein Datenverlust auftritt, die Örtlichkeit des Bereichs des virtuellen Datenträgers, welcher betroffen ist, verbessert werden und kann die Anzahl virtueller Datenträger, welche eine Gesamtwiederherstellung erfordern, verringert werden. Überdies ist es möglich, die für die Wiederherstellung erforderliche Datenkopierzeit beträchtlich zu verkürzen, und kann die Verfügbarkeit des gesamten Informationssystems verbessert werden.
  • Bezugszeichenliste
  • 10
    Host
    20
    Verwaltungsserver
    30
    Netz
    40
    externe Speichervorrichtung
    100
    übergeordnete Speichervorrichtung
    180
    untergeordnete Speichervorrichtung
    201
    virtueller Datenträger
    204
    virtuelle Paritätsgruppe
    205
    physische Paritätsgruppe
    400
    virtueller Chunk
    500
    physischer Chunk Speichereinrichtungen.

Claims (12)

  1. Speichersystem, das eine Vielzahl von Speichereinrichtungen (180) und eine Steuereinheit umfasst, die dazu konfiguriert ist, virtuelle Datenträger (201) bereit zu stellen, wobei jeder einer Vielzahl von Datensätzen für die virtuellen Datenträger (201) aus einer ersten Anzahl von Datenelementen besteht, die eine Vielzahl von Daten und redundanten Daten der Vielzahl von Daten enthalten, wobei die Steuereinheit dafür ausgelegt ist: Verwalten einer Vielzahl von virtuellen Paritätsgruppen (204), wobei jede der Vielzahl von virtuellen Paritätsgruppen (204) eine Vielzahl von Kombinationen einer entsprechenden ersten Anzahl von Speichereinrichtungen (180) zum Speichern der Vielzahl von Datensätzen festlegt, wobei jeder Datensatz jeweils aus der ersten Anzahl von Datenelementen besteht, wobei die Vielzahl von Kombinationen der entsprechenden ersten Anzahl von Speichereinrichtungen (180) für jede der Vielzahl von virtuellen Paritätsgruppen (204) unterschiedlich sind, und wobei die erste Anzahl von Speichereinrichtungen (180) geringer ist als eine Anzahl der Vielzahl von Speichereinrichtungen (180), Zuweisen einer unterschiedlichen virtuellen Paritätsgruppe (204) zu jedem von mindestens zwei virtuellen Datenträgern (201) der virtuellen Datenträger (201), und Dispersives Speichern der ersten Anzahl von Datenelementen von jedem der Vielzahl von Datensätzen in der Vielzahl von Speichereinrichtungen (180), wobei Datensätze für jeden der mindestens zwei virtuellen Datenträger (201) in der Vielzahl von Kombinationen der ersten vorbestimmten Anzahl von Speichereinrichtungen (180) gespeichert werden, die in einer jeweils zugewiesenen virtuellen Paritätsgruppe (204) eingestellt sind.
  2. Speichersystem nach Anspruch 1, wobei die Steuereinheit dafür ausgelegt ist, eine der Vielzahl von Paritätsgruppen (204) an jeden der virtuellen Datenträger (201) auf Grundlage einer Priorität zuzuweisen.
  3. Speichersystem nach Anspruch 2, wobei die Steuereinheit dafür ausgelegt ist: die in der Vielzahl von Speichereinrichtungen (180) gespeicherten Datenelemente in einer virtuellen Datenträgereinheit zu sichern, und wenn eine Anzahl von Speichereinrichtungen (180) größer als die der redundanten Daten unter der ersten Anzahl von Speichereinrichtungen (180) ausfällt, Datenelemente, die in den ausgefallenen Speichereinrichtungen (180) gespeichert sind, in der virtuellen Datenträgereinheit wiederherzustellen.
  4. Speichersystem nach Anspruch 2, wobei zwei der wenigstens zwei virtuellen Datenträger (201) ein Replikationspaar von virtuellen Datenträgern (201) sind, und wobei die Steuereinheit dafür ausgelegt ist, jedem Replikationspaar eine andere virtuelle Paritätsgruppe (204) zuzuweisen.
  5. Speichersystem nach Anspruch 1, wobei, wenn eine Anzahl von Speichereinrichtungen (180), die gleich groß wie oder kleiner ist als die Anzahl von redundanten Daten unter der ersten Anzahl von Speichereinrichtungen (180), ausfällt, die Steuereinheit dafür ausgelegt ist, Datenelemente, die in den ausgefallenen Speichereinrichtungen (180) gespeichert sind, auf Grundlage von Datenelementen, die in Speichereinrichtungen (180) gespeichert sind, die verschieden sind von der ausgefallenen Speichereinrichtung (180), von den Datenelementen aus Datensätzen, die Datenelemente aufweisen, die in der ausgefallenen Speichereinrichtung (180) gespeichert sind, neu zu erstellen.
  6. Speichersystem nach Anspruch 5, wobei jede der Vielzahl von Speichereinrichtungen (180) wenigstens einen Zusatzspeicherbereich umfasst, und wobei die Steuereinheit dafür ausgelegt ist, die neu erstellten Datenelemente in dem wenigstens einen Zusatzspeicherbereich in der Vielzahl von Speichereinrichtungen (180) außer der ausgefallenen Speichereinrichtung (180) zu speichern.
  7. Speichersystem nach Anspruch 5, wobei die Steuereinheit dafür ausgelegt ist, ein Datenelement in einem Datensatz mit einem niedrigen Redundanzniveau bevorzugt neu zu erstellen.
  8. Speichersystem nach Anspruch 5, wobei die Anzahl ausgefallener Speichereinrichtungen (180) größer ist als die Anzahl von redundanten Daten unter der ersten Anzahl von Speichereinrichtungen (180).
  9. Speichersystem nach Anspruch 1, wobei die Steuereinheit dafür ausgelegt ist: die in der Vielzahl von Speichereinrichtungen (180) gespeicherten Datenelemente zu sichern, und wenn eine Anzahl von Speichereinrichtungen (180) größer als die der redundanten Daten unter der ersten Anzahl von Speichereinrichtungen (180) ausfällt, Datenelemente, die in den ausgefallenen Speichereinrichtungen (180) gespeichert sind, wiederherzustellen.
  10. Speichersystem nach Anspruch 1, wobei die Steuereinheit dafür ausgelegt ist, jeden von einer zweiten Anzahl von Datensätzen in einer vorgegebenen Größe physikalischen Speicherbereichs, umfassend eine Vielzahl von physikalischen Speicherbereichen in der Vielzahl von Speichereinrichtungen (180) in einem jeweils vorgegebenen Verteilungsmuster, zu speichern.
  11. Speichersystem nach Anspruch 1, wobei jeder der Vielzahl von Datensätzen aus Daten einer Stripe-Spalte besteht, wobei jedes der Datenelemente ein Stripe-Datenelement ist, und wobei die redundanten Daten redundanter Code sind.
  12. Datenverwaltungsverfahren für ein Speichersystem, das eine Vielzahl von Speichereinrichtungen (180) und eine Steuereinheit umfasst, die dazu konfiguriert ist, virtuelle Datenträger (201) bereit zu stellen, wobei jeder einer Vielzahl von Datensätzen für die virtuellen Datenträger (201) aus einer ersten Anzahl von Datenelementen besteht, die eine Vielzahl von Daten und redundanten Daten der Vielzahl von Daten enthalten, wobei die Steuereinheit dafür ausgelegt ist, die folgenden Schritte durchzuführen: - Verwalten einer Vielzahl von virtuellen Paritätsgruppen (204), wobei jede der Vielzahl von virtuellen Paritätsgruppen (204) eine Vielzahl von Kombinationen einer entsprechenden ersten Anzahl von Speichereinrichtungen (180) zum Speichern der Vielzahl von Datensätzen festlegt, wobei jeder Datensatz jeweils aus der ersten Anzahl von Datenelementen besteht, wobei die Vielzahl von Kombinationen der entsprechenden ersten Anzahl von Speichereinrichtungen (180) für jede der Vielzahl von virtuellen Paritätsgruppen (204) unterschiedlich sind, und wobei die erste Anzahl von Speichereinrichtungen (180) geringer ist als eine Anzahl der Vielzahl von Speichereinrichtungen (180), - Zuweisen einer unterschiedlichen virtuellen Paritätsgruppe (204) zu jedem von mindestens zwei virtuellen Datenträgern (201) der virtuellen Datenträger (201), und - Dispersives Speichern der ersten Anzahl von Datenelementen von jedem der Vielzahl von Datensätzen in der Vielzahl von Speichereinrichtungen (180), wobei Datensätze für jeden der mindestens zwei virtuellen Datenträger (201) in der Vielzahl von Kombinationen der ersten Anzahl von Speichereinrichtungen (180) gespeichert werden, die in einer jeweils zugewiesenen virtuellen Paritätsgruppe (204) eingestellt sind.
DE112013006504.5T 2013-01-25 2013-01-25 Speichersystem und Datenverwaltungsverfahren Active DE112013006504B4 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/051671 WO2014115320A1 (ja) 2013-01-25 2013-01-25 ストレージシステム及びデータ管理方法

Publications (2)

Publication Number Publication Date
DE112013006504T5 DE112013006504T5 (de) 2015-12-17
DE112013006504B4 true DE112013006504B4 (de) 2022-06-15

Family

ID=51227134

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112013006504.5T Active DE112013006504B4 (de) 2013-01-25 2013-01-25 Speichersystem und Datenverwaltungsverfahren

Country Status (6)

Country Link
US (4) US10168919B2 (de)
JP (1) JP5971354B2 (de)
CN (2) CN107817952B (de)
DE (1) DE112013006504B4 (de)
GB (1) GB2524433B (de)
WO (1) WO2014115320A1 (de)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10599356B2 (en) * 2014-02-11 2020-03-24 Hiveio Inc. Aggregating memory to create a network addressable storage volume for storing virtual machine files
US20160170841A1 (en) * 2014-12-12 2016-06-16 Netapp, Inc. Non-Disruptive Online Storage Device Firmware Updating
US10372538B2 (en) 2015-03-06 2019-08-06 Hitachi, Ltd. Computer system
US10678641B2 (en) 2015-03-31 2020-06-09 EMC IP Holding Company LLC Techniques for optimizing metadata resiliency and performance
JP6560759B2 (ja) 2015-10-08 2019-08-14 株式会社日立製作所 ストレージシステム
JP6507261B2 (ja) * 2015-11-13 2019-04-24 株式会社日立製作所 ストレージ装置、記録媒体、および記憶制御方法
JP6547057B2 (ja) * 2016-02-22 2019-07-17 株式会社日立製作所 計算機システム、計算機システムの制御方法、および記録媒体
US10241878B2 (en) * 2016-03-24 2019-03-26 Acronis International Gmbh System and method of data allocation providing increased reliability of storage
JP6663482B2 (ja) * 2016-04-05 2020-03-11 株式会社日立製作所 計算機システム、物理記憶デバイスの制御方法、および記録媒体
CN106095330B (zh) * 2016-05-30 2019-04-16 杭州宏杉科技股份有限公司 一种元数据的存储方法和装置
CN107526691B (zh) * 2016-06-21 2020-06-02 深圳市中兴微电子技术有限公司 一种缓存管理方法及装置
US10268636B2 (en) * 2016-09-16 2019-04-23 Oracle International Corporation Column level invalidation for in-memory database
US10089026B1 (en) * 2016-12-29 2018-10-02 EMC IP Holding Company LLC Virtual drive based RAID groups
US10678643B1 (en) * 2017-04-26 2020-06-09 EMC IP Holding Company LLC Splitting a group of physical data storage drives into partnership groups to limit the risk of data loss during drive rebuilds in a mapped RAID (redundant array of independent disks) data storage system
US10970204B2 (en) 2017-08-29 2021-04-06 Samsung Electronics Co., Ltd. Reducing read-write interference by adaptive scheduling in NAND flash SSDs
US11221958B2 (en) 2017-08-29 2022-01-11 Samsung Electronics Co., Ltd. System and method for LBA-based RAID
JP2019191951A (ja) * 2018-04-25 2019-10-31 株式会社日立製作所 情報処理システム及びボリューム割当て方法
US11341063B2 (en) * 2019-01-31 2022-05-24 Dell Products L.P. Systems and methods for safely detecting indeterminate states of ranges in a self-encrypting storage resource
JP7191003B2 (ja) 2019-12-17 2022-12-16 株式会社日立製作所 ストレージシステムおよびストレージ管理方法
JP2021189937A (ja) * 2020-06-03 2021-12-13 株式会社日立製作所 ストレージシステム及びストレージシステムの制御方法
US11461193B2 (en) * 2020-09-24 2022-10-04 International Business Machines Corporation Data storage volume recovery management
CN112835738B (zh) * 2021-02-20 2022-05-20 华中科技大学 一种条带数据存储结构的构建方法
JP7294691B2 (ja) * 2021-03-16 2023-06-20 Necプラットフォームズ株式会社 ディスクアレイ装置、情報システム及び記憶領域の構築方法
JP2022175427A (ja) 2021-05-13 2022-11-25 株式会社日立製作所 ストレージシステム及びストレージ管理方法
CN113225350B (zh) * 2021-05-21 2022-11-29 广东电网有限责任公司 一种网络资源管理方法、装置、介质及电子设备
CN113407125B (zh) * 2021-08-20 2021-11-09 苏州浪潮智能科技有限公司 Raid6阵列中分块编号的确定方法、系统及相关装置
JP2024000105A (ja) * 2022-06-20 2024-01-05 株式会社日立製作所 計算機システム、及び冗長化要素構成方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090292870A1 (en) 2008-05-23 2009-11-26 Sambe Eiji Storage apparatus and control method thereof
US20100023685A1 (en) 2008-07-28 2010-01-28 Hitachi, Ltd. Storage device and control method for the same
US20100107003A1 (en) 2008-10-24 2010-04-29 Tomohiro Kawaguchi Fast Data Recovery From HDD Failure
US20110231594A1 (en) 2009-08-31 2011-09-22 Hitachi, Ltd. Storage system having plurality of flash packages

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8572346B2 (en) * 2009-02-20 2013-10-29 Hitachi, Ltd. Storage system and method for efficiently utilizing storage capacity within a storage system
WO2010097832A1 (en) * 2009-02-26 2010-09-02 Hitachi, Ltd. Storage system comprising raid group
US20100281207A1 (en) * 2009-04-30 2010-11-04 Miller Steven C Flash-based data archive storage system
US8468302B2 (en) * 2010-01-14 2013-06-18 Hitachi, Ltd. Storage system
US8918585B2 (en) * 2010-01-28 2014-12-23 Hitachi, Ltd. Management system calculating storage capacity to be installed/removed
JP5451875B2 (ja) * 2010-04-30 2014-03-26 株式会社日立製作所 計算機システム及びその記憶制御方法
EP2535819A4 (de) * 2010-05-18 2014-02-05 Hitachi Ltd Speichervorrichtung und datenverwaltungsverfahren
US8935493B1 (en) * 2011-06-30 2015-01-13 Emc Corporation Performing data storage optimizations across multiple data storage systems
JP6039699B2 (ja) * 2012-07-23 2016-12-07 株式会社日立製作所 ストレージシステム及びデータ管理方法
CN102799543B (zh) * 2012-08-10 2015-12-02 杭州极云网络技术有限公司 在动态变化的存储介质上分散存储数据及恢复方法
US9026765B1 (en) * 2012-09-11 2015-05-05 Emc Corporation Performing write operations in a multi-tiered storage environment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090292870A1 (en) 2008-05-23 2009-11-26 Sambe Eiji Storage apparatus and control method thereof
US20100023685A1 (en) 2008-07-28 2010-01-28 Hitachi, Ltd. Storage device and control method for the same
US20100107003A1 (en) 2008-10-24 2010-04-29 Tomohiro Kawaguchi Fast Data Recovery From HDD Failure
US20110231594A1 (en) 2009-08-31 2011-09-22 Hitachi, Ltd. Storage system having plurality of flash packages

Also Published As

Publication number Publication date
US10528274B2 (en) 2020-01-07
US20150324145A1 (en) 2015-11-12
JPWO2014115320A1 (ja) 2017-01-26
US11941255B2 (en) 2024-03-26
US20220236891A1 (en) 2022-07-28
US20200142615A1 (en) 2020-05-07
US20190121554A1 (en) 2019-04-25
GB2524433B (en) 2020-11-25
GB201512813D0 (en) 2015-09-02
CN104956309A (zh) 2015-09-30
JP5971354B2 (ja) 2016-08-17
GB2524433A (en) 2015-09-23
US10168919B2 (en) 2019-01-01
CN107817952A (zh) 2018-03-20
CN104956309B (zh) 2017-12-12
CN107817952B (zh) 2021-02-19
WO2014115320A1 (ja) 2014-07-31
US11327661B2 (en) 2022-05-10
DE112013006504T5 (de) 2015-12-17

Similar Documents

Publication Publication Date Title
DE112013006504B4 (de) Speichersystem und Datenverwaltungsverfahren
DE69534363T2 (de) Verfahren um Festplatten zu einer Festplattenanordnung hinzuzufügen und gleichzeitig die Datenerreichbarkeit zu gewährleisten
DE69534527T2 (de) Verfahren zur Verwendung von nicht-aneinandergrenzenden reservierten Speicherplatz zur Datenmigration in einem hierarchischen redundanten Datenspeichersystem
DE112020002526B4 (de) Blockmodusumschaltung in datenspeichersystem
CN111158587B (zh) 基于存储池虚拟化管理的分布式存储系统及数据读写方法
DE69532030T2 (de) Speicherplattenanordnung mit Ersatzbetriebsmitteln in Betrieb und Verfahren zur Verwendung von Ersatzbetriebsmitteln zum Speichern von Benutzerdaten
DE112019000149T5 (de) Multivorrichtungsspeichersystem mit gehosteten diensten auf peer-speichervorrichtungen
US5555404A (en) Continuously available database server having multiple groups of nodes with minimum intersecting sets of database fragment replicas
DE69533058T2 (de) Speicherplattenanordnung mit redundanter Speicherung und Verfahren zur inkrementalen Redundanzerzeugung während des Datenschreibens auf die Speicherplattenanordnung
DE112019000146T5 (de) Multivorrichtungsspeichersystem mit verteilter lese-/schreibverarbeitung
DE112018004256T5 (de) Redundanzcodierstreifen basierend auf internen adressen von speichervorrichtungen
DE112015000710T5 (de) Verteiltes Speichersystem
DE112019000201T5 (de) Speichersysteme mit peer-datenbereinigung
DE112013006565T5 (de) Speichervorrichtung
US10353787B2 (en) Data stripping, allocation and reconstruction
US11150846B2 (en) Storage system, computer-readable recording medium, and control method for system that reconstructs and distributes data
DE202008018572U1 (de) Speichersystem
CN111587418A (zh) 分布式存储系统的目录结构
US8201001B2 (en) Method for optimizing performance and power usage in an archival storage system by utilizing massive array of independent disks (MAID) techniques and controlled replication under scalable hashing (CRUSH)
DE102009031923A1 (de) Verfahren zum Verwalten von Datenobjekten
DE102018123670A1 (de) Speicherungssystem, Rechensystem und Verfahren dafür
DE112020005099T5 (de) Konstruktion einer blockvorrichtung
DE112020003062T5 (de) Dynamische anpassung einer logischen speicherkapazität für speicherlaufwerke
TWI794541B (zh) 儲存空間之自動組態之設備及方法
DE112020003064T5 (de) Dynamische anpassung von leistungsfähigkeitsklassen für speicherlaufwerke

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R083 Amendment of/additions to inventor(s)
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0003060000

Ipc: G06F0012080000

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final