-
Technisches Gebiet
-
Die vorliegende Erfindung betrifft ein Speichersystem und ein Verfahren zum Zuweisen von Ressourcen.
-
Stand der Technik
-
Es wurden Computersysteme bereitgestellt, die Host-Computern Datenspeicherdienste im großen Ausmaß bereitstellen. Bekannterweise umfasst ein solches System einen Host-Computer, ein Speicheruntersystem, mit dem der Host-Computer verbunden ist, und eine Verwaltungsvorrichtung des Speicheruntersystems. Das Speicheruntersystem verwaltet eine Vielzahl von Festplatten über eine RAID(Redundant Array of Independent/Inexpensive Disks)-Konfiguration. Das System logisiert physische Speicherbereiche, die in einer Vielzahl von Festplatten enthalten sind, und stellt diese dem Host-Computer als logische Datenträger bereit. Der Host-Computer greift auf die logischen Datenträger zu und fordert das Lesen und Schreiben von Daten an.
-
In letzter Zeit gibt es einen technischen Trend der Nachfrage nach Verkleinerung des Platzes für das Speicheruntersystem, Reduzierung der Betriebsverwaltungskosten, Erleichterung der Wartung und effizienter Nutzung der zentralen Steuereinheit (CPU) und anderer Ressourcen. In Verbindung damit richtet sich die Aufmerksamkeit auf ein Unified-Storage-System, das ein integriertes Speicheruntersystem ist, das mit einer Vielzahl von Protokollen, wie zum Beispiel FC (Fibre Channel), iSCSI, FCoE (Fibre Channel over Ethernet) und NAS (Network Attached Storage), über eine einzelne Maschine korrespondieren kann. Der Vorteil einer integrierten Maschine besteht darin, dass sie eine direkte Verbindung von Elementen ermöglicht, die Entwicklungskosten reduziert und die Leistungsfähigkeit sicherstellt. Darüber hinaus ist eine Weise bekannt, Hardware-Ressourcen, die in einem Speichersystem enthalten sind, das mit einem Netzwerk verbunden ist, und Dateizugriffe empfängt (wie zum Beispiel ein NAS) logisch zu unterteilen und die einzelnen logischen Partitionen (virtuelle Speicheruntersysteme) unabhängig voneinander zu betreiben (siehe Patentliteratur 1).
-
Literaturliste
-
Patentliteratur
-
PDL1
-
- Die japanische offengelegte Patentanmeldung mit der Veröffentlichungsnummer 2005-128733 ( US Patent Veröffentlichungsnummer 2005/0091454 )
-
Kurzzusammenfassung der Erfindung
-
Technisches Problem
-
Gemäß einem herkömmlichen integrierten Speichersystem wird innerhalb der Verarbeitung des einzelnen Betriebssystems, das sie verarbeitet, nicht zwischen Eingabe/Ausgabe für Blockspeicher und Eingabe/Ausgabe für Dateispeicher unterschieden. Deshalb können gemäß dem Blockspeicheruntersystem des Standes der Technik keine Prozesse zur Verbesserung der Leistungsfähigkeit ausgeführt werden. Zum Beispiel kann in einem Blockspeicheruntersystem die Zuverlässigkeit des Systems durch unmittelbares Detektieren von Fehlern über ein Echtzeit-Betriebssystem verbessert werden oder das Fördern der Leistungsfähigkeit kann durch direktes Überwachen des Betriebs der Hardware ausgeführt werden, aber in einer Einzel-Betriebssystems-Konfiguration können solche Prozesse nicht ausgeführt werden. Aus diesem Grund besteht die Aufgabe der vorliegenden Erfindung darin, ein Speichersystem bereitzustellen, das die hohe Leistungsfähigkeit des Blockspeicheruntersystems voll nutzen kann, und ein Verfahren zum Zuweisen von Ressourcen in solch einem System bereitzustellen.
-
Lösung des Problems
-
Die vorliegende Erfindung stellt ein Unified-Storage-Untersystem bereit, das einen Dienst unter Verwendung einer Vielzahl von Betriebssystemen, wie zum Beispiel ein Betriebssystem für Blockspeicherung und ein Betriebssystem für ein Dateiensystem, das ein anderes ist als das Betriebssystem für Blockspeicher, bereitstellt. Mit anderen Worten stellt das vorliegende System einen Dienst, der auf einer Blockschnittstelle basiert, die das Betriebssystem für Blockspeicherung verwendet, und ein System zum Bereitstellen eines Dienstes, der auf einer Dateischnittstelle basiert, die das Betriebssystem als Dateiensystem verwendet (wie zum Beispiel ein Suchsystem oder Windows) bereit. Der Hauptaspekt der vorliegenden Erfindung zum Lösen der Probleme des Standes der Technik besteht darin, dass das Betriebssystem für Blockspeicherung, das ein Echtzeit-Betriebssystem ist, von dem Betriebssystem für Dateiensysteme getrennt ist. Ferner kann das Speicheruntersystem, da eine Vielzahl von Betriebssystemen in einem einzigen Gehäuse vorhanden ist, eine Vielzahl von Betriebssystem haben, die zusammen arbeiten. Ferner ist es, um ein Unified-Storage-Untersystem umzusetzen, das die überlegenen Funktionen eines hochwertigen Speicheruntersystems voll nützt, notwendig, zentrale Steuereinheiten und Speicher zuzuweisen, die das hochwertige Speicheruntersystem zum Arbeiten benötigt. Deshalb stellt die vorliegende Erfindung ein Verfahren zum Definieren (Zuweisen) von Hardware-Ressourcen bereit, die es ermöglichen, dass das hochwertige Speicheruntersystem seine überlegenen Leistungen ausführt.
-
Gemäß der vorliegenden Erfindung wird eine Konfiguration bereitgestellt, in der eine Vielzahl von Betriebssystemen nebeneinander bestehen. Zuerst werden die Betriebssysteme in eine Blockspeicher-Mikrosteuereinrichtung (Blockspeicherseiten-Betriebssystem) und ein anderes Betriebssystem als der Blockspeicher unterteilt, wobei das andere Betriebssystem als der Blockspeicher in einem Hypervisor gebildet ist. Ein Hypervisor ist eine Software, die dazu in der Lage ist, eine virtuelle Umgebung zum Ausführen einer Vielzahl von verschiedenen Betriebssystemen parallel zu realisieren. Die Prozesse der Blockspeicher-Mikrosteuereinrichtung und des Hypervisors werden auf eine zusammenarbeitende Art ausgeführt. Das Speicheruntersystem, das Daten speichert, bildet ein hochwertiges Speicheruntersystem und die Blockspeicher-Mikrosteuereinrichtung führt die Prozesse aus.
-
Vorteilhafte Wirkungen der Erfindung
-
Durch das Ausführen von Hardware-Ressourcen-Definition gemäß der vorliegenden Erfindung wird es möglich, das System zu betreiben, ohne Ressourcen zu verschwenden und ohne die Prozesswirksamkeit und Leistungsfähigkeit zu verschlechtern.
-
Da eine Ressource zuerst der Steuerung der Blockspeicher-Mikrosteuereinrichtung-Seite zugewiesen wird, kann die Leistungsfähigkeit der Speicher Mikrosteuereinrichtung gewährleistet werden. Dadurch kann die Leistungsfähigkeit des gesamten Systems gewährleistet werden. Die Fähigkeit des Prozesses und der Funktion der Blockspeicher-Mikrosteuereinrichtung-Seite können effektiv genutzt werden.
-
Kurze Beschreibung der Zeichnungen
-
1 ist ein konzeptuelles Diagramm des Verfahrens zum Zuweisen von Hardware-Ressourcen in einem Unified-Storage-Untersystem.
-
2 ist ein anderes konzeptuelles Diagramm eines Verfahrens zum Zuweisen von Ressourcen.
-
3 zeigt ein Beispiel des Gesamtkonfigurationsdiagramms von Hardware in dem Speichersystem.
-
4A ist eine Ansicht, die ein Beispiel zeigt, in dem ein zweites Speicheruntersystem mit dem Unified-Storage-Systemen gekoppelt ist.
-
4B ist eine Ansicht, die ein Beispiel zeigt, in dem ein drittes Speicheruntersystem über ein SAN mit dem Unified-Storage-Untersystem gekoppelt ist.
-
5 ist eine Bildansicht von Hardware und Software zum Beschreiben des Betriebs des Speichersystems.
-
6 ist eine Ansicht, die den Überblick über den Ablauf von Eingabe/Ausgabe-Verarbeitung zu der Blockspeicherseite zeigt.
-
7 ist eine Ansicht, die den Überblick über den Prozess zeigt, wenn ein Dateien-Betriebssystem eine Eingabe/Ausgabe empfängt, als ein Beispiel für eine andere Eingabe/Ausgabe-Verarbeitung als den Blockspeicher.
-
8A zeigt ein Beispiel einer Hardware-Ressourcen-Verwaltungstabelle, die eine Hardware-Ressourcen-Verwaltungsinformation ist, die in einer Blockspeicher-Mikrosteuereinrichtung gespeichert ist,
-
8B zeigt ein Beispiel einer Hardware-Ressourcen-Verwaltungstabelle, die eine Hardware-Ressourcen-Verwaltungsinformation ist, die in einem Hypervisor gespeichert ist.
-
8C zeigt ein Beispiel einer Hardware-Ressourcen-Verwaltungstabelle, die eine Hardware-Ressourcen-Verwaltungsinformation ist, die in jedem anderen Betriebssystem als dem Blockspeicher gespeichert ist.
-
9 zeigt ein Beispiel einer Verzeichnisvorrichtungsinformationstabelle.
-
10 ist eine Ansicht zum Beschreiben der gemeinsamen Nutzung von Befehlen mit der Blockspeicher-Mikrosteuereinrichtungs-Seite.
-
11A zeigt einen Prozess zum Zuweisen von Hardware-Ressourcen zu einer Blockspeicheruntersystemseite.
-
11B zeigt einen Prozess zum Zuweisen einer Hardware-Ressource zu einem anderen Betriebssystem als dem Blockspeicher.
-
11FC zeigt einen weiteren Prozess zum Zuweisen einer Hardware-Ressource.
-
12 zeigt einen Prozess zum Definieren einer Konfiguration, wenn eine Ressource hinzugefügt wird.
-
13 ist ein Ablaufdiagramm, das einen Prozess zur dynamischen Neuzuweisung einer Hardware-Ressource des Blockspeichers zu einem anderen Ziel als dem Blockspeicher zeigt.
-
14 ist ein Ablaufdiagramm des Prozesses zur dynamischen Neuzuweisung eine Hardware-Ressource unter Verwendung eines anderen Systems als dem Blockspeicher zu der Blockspeicherseite.
-
15 ist ein Ablaufdiagramm, das einen Schreibprozess zeigt, der zu der Blockspeicherseite ausgeführt wird.
-
16 ist ein Ablaufdiagramm, das einen Leseprozess zeigt, der zu der Blockspeicherseite ausgeführt wird.
-
17 ist eine Ansicht, die den Bereich zeigt, wo ein fehlerhaftes Programm innerhalb des Speicheruntersystems existiert.
-
18 ist ein Gesamtkonfigurationsdiagramm der Hardware des Speichersystems gemäß einer anderen Ausführungsform.
-
19 zeigt ein Ablaufdiagramm eines Schreibprozesses, der zur Seite des Dateien-Betriebssystems ausgeführt wird.
-
20 ist ein Ablaufdiagramm eines Leseprozesses, der zur Seite des Dateien-Betriebssystems ausgeführt wird.
-
21 ist eine Ansicht, die sich auf den Fehler bezieht, der in einer Hardware auftritt, die ausschließlich zur Blockspeicherseite gehört.
-
22 ist eine Ansicht, die den Fehler zeigt, der in einer anderen gemeinsam genutzten Hardware als der Blockspeicherseite auftritt.
-
23 ist eine Ansicht, die eine Informationsverwaltungstabelle zeigt, die Information im Zusammenhang mit der Fehlerüberwachung speichert.
-
Jetzt werden die bevorzugten Ausführungsformen der vorliegenden Erfindung mit Bezug auf die Zeichnungen beschrieben. Die in der vorliegenden Beschreibung dargestellten Ausführungsformen sind lediglich Beispiele zum Umsetzen der vorliegenden Erfindung und sollen den technischen Schutzbereich der vorliegenden Erfindung auf keine Art beschränken. Die gemeinsamen Komponenten in den entsprechenden Zeichnungen sind mit den gleichen Bezugszeichen bezeichnet. In der folgenden Beschreibung sind verschiedene Informationen gemäß der vorliegenden Erfindung im „Tabellen”-Format beschrieben, aber diese Informationen können auch über andere Datenstrukturen als Tabellen ausgedrückt werden, wie zum Beispiel Listen, Datenbanken und Warteschlangen. Um anzuzeigen, dass die Information nicht von der Datenstruktur abhängt, sind die „Tabellen”, „Listen”, „Datenbanken” und „Warteschlangen” manchmal einfach als Information bezeichnet. Ausdrücke wie zum Beispiel „Identifikationsinformation”, „Identifikator”, „Name” und „ID” können zur Beschreibung der Inhalte der entsprechenden Information verwendet werden, und diese Ausdrücke sind gegeneinander austauschbar.
-
Die Prozesse sind manchmal unter Verwendung des Ausdrucks „Programm” als das Subjekt beschrieben. Das Programm wird von einem Prozessor zum Ausführen vorbestimmten Prozesse unter der Verwendung von Speichern und Kommunikationsanschlüssen (Kommunikationssteuereinheiten) ausgeführt, so dass ein Prozessor auch als das Subjekt der Prozesse verwendet werden kann. Die beschriebenen Prozesse, die das Programm als das Subjekt verwenden, können auch als Prozesse eingestellt werden, die von Computern und Informationsverarbeitungsvorrichtungen, wie zum Beispiel Verwaltungsservern, ausgeführt werden. Ein Teil oder alle Programme können durch eine zugeordnete Hardware umgesetzt werden oder können in Modulen gebildet werden. Verschiedene Programme können zum Beispiel auf den entsprechenden Computern über einen Programmverteilungsserver oder Speichermedien installiert sein.
-
1 zeigt eine konzeptuelle Ansicht eines Unified-Storage-Systems im Zusammenhang mit einem Verfahren zum Zuweisen von Hardware-Ressourcen in einer Blockspeicher-Mikrosteuereinheitsseite und einer anderen Steuerseite als der Blockspeicher-Mikrosteuereinrichtungs-Seite. Eine Vielzahl von Betriebssystemen existiert gemeinsam innerhalb eines Unified-Storage-Systems. Ein „Teil der Hardware” der gesamten Hardware, die mit dem Unified-Storage-System verbunden ist, wird auf eine „priorisierte Art” einem spezifischen Betriebssystem zugewiesen. In dem vorliegenden Beispiel ist das spezifische Betriebssystem die Blockspeicher-Mikrosteuereinheit. Die übrige Hardware, die der Blockspeicher-Mikrosteuereinheit nicht zugewiesen wurde, wird dem anderen Betriebssystem als der Blockspeicher-Mikrosteuereinheit zugewiesen.
-
In 1 sind eine Vielzahl von anderen Betriebssystem als die Blockspeicher-Mikrosteuereinheit gezeigt und sind als eine Software zum Virtualisieren der Vielzahl von Betriebssystemen Hardware-Ressourcen über einen Supervisor verteilt. In dem vorliegenden Beispiel wird ein LPAR (Logical PARtitioning), was eine Art von Ausführung einer logischen Partitionierung ist, zum Ausführen der Zuweisung verwendet. Der Hypervisor weist die zuweisbaren Hardware-Ressourcen den Zielbetriebssystemen gleichzeitig zu. Hardware-Ressourcen umfassen zum Beispiel Steuerprozessoren (CPU), Anschlüsse, Hardware zur Überwachung von Fehlern, Speicher und Platten, wie zum Beispiel Festplatten, als Speichervorrichtungen.
-
Im Stand der Technik wird die Hardware nach der Zuweisung von Hardware-Ressourcen zu dem Speicheruntersystem, wenn die zugeordnete Hardware (nachfolgend auch den Zustand der Verwendung umfassend) von der erkannten Hardware definiert und in den Speicheruntersystem gespeichert wird, in einen verwendbaren Zustand übergehen. Die übrigen Ressourcen, die nicht von dem Speicheruntersystem zugewiesen sind, werden als ein „vakanter” Zustand identifiziert, der nicht in Verwendung ist. Die Ressourcen im „vakanten” Zustand können zum Beispiel anstatt eines Hardware-Elements, das während der Verwendung Fehler aufweist, oder für Erweiterungen bei einem Mangel an Leistungsfähigkeit oder Kapazität des Systems verwendet werden.
-
Jedoch werden gemäß dem Speichersystem der vorliegenden Erfindung die Ressourcen, die nicht von der Blockspeicher-Mikrosteuereinrichtung zugewiesen wurden, nicht als Ressourcen des Blockspeicheruntersystems verwendet und sind keine „vakanten” Ressourcen, so dass sie im Grunde später nicht von der Blockspeicher-Mikrosteuereinrichtung verwendet werden können. Gemäß der Konfiguration des Systems des Standes der Technik könnten, wenn ein solcher Ressourcen-Zustand nicht auftritt, die Ressourcen nicht von dem Speicheruntersystem als „vakanter” Status erkannt werden.
-
2 ist ein konzeptionelles Diagramm eines anderen Ressourcenzuweisungsverfahrens. Die Zeichnung zeigt eine Konfiguration eines Unified-Storage-Systems, in dem eine Vielzahl von Betriebssystemen nebeneinander existiert und es zum Beispiel ein einzelnes Betriebssystem OS1 und eines oder mehrere OS2 gibt. In der Beschreibung ist eine Blockspeicher-Mikrosteuereinrichtung als ein Beispiel zur Bereitstellung eines Dienstes über eine Blockschnittstelle gezeigt und ein Dateiensystem, ein Suchsystem – oder breiter – Windows, sind Beispiele von Systemen, die Dienste über eine Dateischnittstelle bereitstellen. Ein in einem Virtualisierungsprogramm betriebenes System, mit anderen Worten ein Hypervisor, wird als ein System zur Bereitstellung von Diensten über eine Dateischnittstelle gezeigt.
-
3 ist ein Beispiel, das ein Gesamtkonfigurationsdiagramm der Hardware zeigt, die in dem Speichersystem enthalten ist. Das System umfasst Client-Vorrichtungen 101A und 101B, mindestens eine Verwaltungsvorrichtung (Verwaltungscomputer) 20 und mindestens ein Speicheruntersystem 30, mit dem diese Vorrichtungen verbunden sind. Das Speicheruntersystem 30 kann hier auch als ein Speichersystem oder ein Unified-Storage-System bezeichnet werden.
-
Die Client-Vorrichtungen 101A und 101B sind externe Computer, die das Speicheruntersystem 30 verwenden. Die Client-Vorrichtung 101B ist eine Dateien-Client-Vorrichtung, die Schreiben, Lesen und Erzeugen von Dateien bezüglich des Speicheruntersystems 30 anfordert. Die Client-Vorrichtung 101A ist eine Block-Client Vorrichtung, die auf die logischen Speicherressourcen des Speicheruntersystems 30 zugreift. Die eigentlichen Vorrichtungen umfassen zum Beispiel Personal Computer.
-
Die Client-Vorrichtungen 101A und 101B sind mit einer Eingabevorrichtung, einer Ausgabevorrichtung, einem Steuerprozessor, einem Speicher und einem Host-Adapter oder Netzwerkadapter ausgestattet. Der Hostadapter oder der Netzwerkadapter sendet und empfängt Daten über das Speicheruntersystem 30 und Netzwerke 106 und 107. Die Client-Vorrichtung 101A kann eine Server-Vorrichtung mit einem FC (Fibre Channel) oder einem iSCI sein, die Blockschnittstellen sind. Die Client-Vorrichtung 101B kann eine Vorrichtung mit einem NFS oder einem CIFS sein, die Dateischnittstellen sind.
-
Die Verwaltungsvorrichtung 20 verwaltet die Konfiguration des Speicherbereichs des Speicheruntersystems 30. Die Verwaltungsvorrichtung 20 besteht aus den folgenden Elementen. Die Eingabevorrichtung 210 empfängt eine Eingabe von Administratoren oder Ähnlichem, die die Verwaltungsvorrichtung 20 betreiben, und ist aus einer Tastatur oder Ähnlichem gebildet. Die Ausgabevorrichtung 220 zeigt den Zustand der Verwaltungsvorrichtung 20 oder eingestellten Elementen an und ist aus einer Anzeigeeinheit oder Ähnlichem gebildet.
-
Der Steuerprozessor 230 liest ein Verwaltungsprogramm, das in einem Plattenlaufwerk 260 gespeichert ist, in einen Speicher 240 und führt auf der Grundlage des Programms eine Verwaltungsverarbeitung des Speicheruntersystems 30 aus. Der Speicher 240 ist aus einem RAM oder Ähnlichem gebildet und speichert Programme und Daten.
-
Ein Netzwerkadapter 250 überträgt und empfängt Daten mit den Client-Vorrichtungen 101A und 101B oder dem Speicheruntersystem 30 über ein Verwaltungsnetzwerk 108. Das Verwaltungsnetzwerk 108 ist zum Beispiel aus Ethernet (eingetragenes Markenzeichen) gebildet. Das Plattenlaufwerk 260 ist zum Beispiel aus einer Festplattenvorrichtung gebildet, die Daten und Programme speichert.
-
Das Speicheruntersystem 30 speichert Daten in den Speicherbereich, der in einer physischen Vorrichtung 34 eingestellt ist. Das Speicheruntersystem 30 umfasst mindestens einen Steuerprozessor, einen Speicher und eine physische Vorrichtung 34 und umfasst genauer eine zentrale Steuereinheit 31 als einen Steuerprozessor, einen Speicher 32, eine Plattenschnittstelle 33, einen HBA (Host Bus Adaptor) 35, der eine FC-Schnittstelle ist, (was ein HBA-Ziel ist, also auch als Adapter bezeichnet) und eine Netzwerkkarte 36, die eine LAN-Schnittstelle ist.
-
Die elektronische Steuereinheit 31, der Speicher 32, der HBA 35, die NIC 36 und die Plattenschnittstelle 33 sind miteinander über einen Bus 37 verbunden. Der Bus ist zum Beispiel ein PCI-EX oder kann aus Schaltern gebildet sein.
-
Die CPU 31 ist eine arithmetische Verarbeitungseinheit, die verschiedene Programme und Module ausführt, die in dem Speicher 32 gespeichert sind. Die CPU (Steuerprozessor) 31 steuert die Speicherung von Daten in einen Speicherbereich, der sich in der physischen Vorrichtung 34 befindet.
-
Der Speicher 32 ist eine sogenannte interne Speichervorrichtung, die sowohl einen nichtflüchtigen Speicher, der in einer CPU (Steuerprozessor) 31 betriebene Programme und Konfigurationsinformationen speichert, und einen flüchtigen Speicher zum vorübergehenden Speichern des Ergebnisses von arithmetischer Verarbeitung umfasst. Der nichtflüchtige Speicher innerhalb des Speichers 32 ist aus Festplatten und Flash-Speichern gebildet. Der Cache-Speicher-Teil in dem Speicher 32 speichert die von der physischen Vorrichtung 34 geschriebenen oder gelesenen Daten vorübergehend. Ein gemeinsam genutzter Speicherabschnitt speichert die Konfigurationsinformation des Speicheruntersystems 30 oder der physischen Vorrichtung 34. Die Plattenschnittstelle 33 sendet und empfängt Daten mit der physischen Vorrichtung 34, dem Speicher 32 und Ähnlichem.
-
Die physische Vorrichtung 34 ist aus einer Vielzahl von Plattenvorrichtungen gebildet. Die Plattenvorrichtungen (Speichervorrichtungen) sind zum Beispiel aus Festplattenlaufwerken gebildet und speichern hauptsächlich Nutzerdaten. Die Speichervorrichtungen können Laufwerke sein, die aus Halbleiterspeichern, wie zum Beispiel Flash-Speichern, gebildet sind.
-
Der HBA 35 ist mit dem Netzwerk 106 verbunden und führt Senden und Empfangen von Befehlen und Daten über Protokolle aus, die für Datenübertragung mit der Block-Client-Vorrichtung 101A (oder dem Host-Computer) geeignet sind. Das Netzwerk 106 kann ein FC (Fibre Channel), ein Internet oder Ähnliches sein.
-
Die NIC 36 ist mit einem Netzwerk 107 verbunden und führt Senden und Empfangen von Befehlen und Daten über Protokolle, wie zum Beispiel NFS und CIFS, mit der Datei-Client-Vorrichtung 101B aus. Das Netzwerk 107 kann ein LAN oder Internet sein.
-
Mehrere Anschlüsse sind für einen einzelnen HBA und eine einzelne NIC bereitgestellt. Die Client-Vorrichtungen 101A und 101B senden und empfangen Daten, die für die Systemverwaltung erforderlich sind (Verwaltungsinformation), über das Verwaltungsnetzwerk 108 mit der Verwaltungsvorrichtung 20.
-
Das Speicheruntersystem 30 ist mit einer Wartungsverwaltungsschnittstelle 39 ausgestattet. Die Schnittstelle 39 ist mit dem Steuerprozessor 31 über ein Netzwerk 38 verbunden, das sich von dem Bus 37 unterscheidet. Das Netzwerk kann zum Beispiel ein LAN sein. Wenn ein Fehler in einem anderen Abschnitt als der CPU in dem Speicheruntersystem 30 auftritt, kann der Fehler der Verwaltungsvorrichtung 20 über die CPU 31 mitgeteilt werden. Das Programm kann nicht nur in dem Speicher 32, sondern auch in der physischen Vorrichtung 34 gespeichert werden.
-
18 zeigt ein Gesamtkonfigurationsdiagramm von Hardware eines Speichersystems gemäß einer anderen Ausführungsform der vorliegenden Erfindung. Gemäß dieser anderen Ausführungsform sind zwei Steuereinrichtungsplatten 41 in dem Speicheruntersystem 30 angeordnet. Ein auf der Steuereinrichtungsplatte 41A montierter Steuerprozessor 31A ist mit einem auf der Steuereinrichtungsplatte 41B montierten Steuerprozessor 31B über eine Leitung 42 verbunden. Die Leitung 42 kann ein Verbindungsmechanismus, wie zum Beispiel ein zugeordneter Bus oder Schalter, sein. Zum Beispiel kann der Steuerprozessor 31A über den Steuerprozessor 31B unter Verwendung dieser Leitung 42 auf einen Gegenspeicher 32B zugreifen. Ein Cluster 50 umfasst die Steuereinrichtungsplatte 41, den HBA 35, der die Host-Seiten-Schnittstelle ist, die NIC 36, die Plattenschnittstelle 33 und die NIC 39, die eine Wartungsverwaltungsschnittstelle ist. Eine normale Cluster-Server-Konfiguration ist mittels eines Betriebssystems, das in einem anderen Hypervisor als der Blockspeicher-Mikrosteuereinrichtung in dem Cluster 50A betrieben wird, und eines anderen in dem Hypervisor betriebenen Betriebssystems als der Blockspeicher-Mikrosteuereinrichtung im Cluster 50B gebildet. Zum Beispiel bildet im Falle eines Dateien-Betriebssystems, das ein Betriebssystem ist, das ein Dateisystem verwendet, ein gewisses Dateien-Betriebssystem des Clusters 50A und ein gewisses Dateien-Betriebssystem des Clusters 50B im Voraus eine Cluster-Konfiguration, wobei ein Dateien-Betriebssystem in dem primären Cluster 50A und ein Dateien-Betriebssystem in dem sekundären Cluster 50B über eine Einrichtung, wie zum Beispiel Heartbeat, konstant bestätigen, ob das andere Dateien-Betriebssystem innerhalb von gewissen Zeiteinheiten normal arbeitet. Wenn das Dateien-Betriebssystem in dem sekundären Cluster 50B detektiert, dass ein Fehler in dem Dateisystem auf der primären Cluster 50A Seite aufgetreten ist, bestimmt das Cluster 50B, dass das Dateien-Betriebssystem eines gesamten Clusters 50A fehlerhaft ist, und übernimmt das Dateien-Betriebssystem des Clusters 50B den Prozess des Dateien-Betriebssystems das Clusters 50A, um den Betrieb weiterzuführen, wodurch eine Ausfallssicherung realisiert wird. Durch Übernahme einer solchen Konfiguration kann die Zuverlässigkeit des Gesamtsystems verbessert werden. Eine Blockspeicher-Mikrosteuereinrichtung 314 wird gespreizt als Cluster 50A und Cluster 50B einer einzelnen gemeinsamen Steuereinrichtung betrieben. Mit anderen Worten arbeiten der Prozessor von Cluster 50A und der Prozessor von Cluster 50B durch Bezugnahme auf eine einzige Steuerinformation. Gemäß einer anderen Variante ist die Leitung 42 in der Lage, Kommunikation nur zwischen Blockspeicher-Mikrosteuereinrichtungen 314 in Steuerprozessoren 31A und 31B zu realisieren, wobei der Speicher 31A, der von der Blockspeicher-Mikrosteuereinrichtung 314A verwendet wird, und der Speicher 32B, der von der Blockspeicher-Mikrosteuereinrichtung 314B verwendet wird, von Blockspeicher-Mikrosteuereinrichtungen 314A und 314B gemeinsam genutzt wird und die Inhalte der Speicher 31A und 31B die gleichen sein können.
-
4 zeigt ein Beispiel einer Variante der Gesamtkonfiguration des Unified-Storage-Systems. Zum Beispiel kann ein externes Speichersystem mit dem Unified-Storage-System gekoppelt sein (
4A). Das Unified-Storage-System
30A hat eine externe Verbindungsfunktion. Das zweite Speicheruntersystem
30B kann extern mit dem Unified-Storage-System
30A über diese Funktion verbunden sein. Die externe Verbindungsfunktion ist in dem
japanischen Patent mit der Nummer 4704659 offenbart.
-
Jetzt wird die externe Verbindungsfunktion beschrieben. Das zweite Speicheruntersystem 30B kann das gleiche oder ein anderes sein als das Unified-Storage-System 30A. Darüber hinaus entspricht das Unified-Storage-System 30A dem in 3 gezeigten Speicheruntersystem 30.
-
Wie bereits beschrieben, stellt das Unified-Storage-System 30A dem Server einen oder mehrere logische Datenträger bereit. Jeder logische Datenträger wird als eine einzelne Speichervorrichtung von dem Server erkannt. Zum Beispiel ist der von dem Unified-Storage-System 30A bereitgestellte logische Datenträger der physischen Vorrichtung 34 (oder der aus der physischen Vorrichtung 34 geschaffenen virtuellen Vorrichtung) in dem Unified-Storage-System 30A zugeordnet. In diesem Fall werden Daten, wenn das Unified-Storage-System 30A einen Schreibbefehl in den logischen Datenträger empfängt, in der physischen Vorrichtung 34 gespeichert, die dem logischen Datenträger zugeordnet ist.
-
Ferner kann der von dem Unified-Storage-System 30A bereitgestellte logische Datenträger der physischen Vorrichtung 34B in dem zweiten Speicheruntersystem 30B zugeordnet sein. In diesem Fall wird, wenn das Unified-Storage-System 30A einen Schreibbefehl in den logischen Datenträger empfängt, ein Schreibbefehl zum Schreiben von Daten in die physische Vorrichtung 34B erzeugt, die dem logischen Datenträger zugeordnet ist. Das Unified-Storage-System 30A sendet den erzeugten Schreibbefehl an das zweite Speicheruntersystem 30B. Das zweite Speicheruntersystem 30B speichert die Daten in der physischen Vorrichtung 34B auf der Grundlage des von dem Unified-Storage-Systems 30A empfangenen Befehls.
-
Wie beschrieben, wird die Funktion zum Speichern der in dem von dem Unified-Storage-System 30A bereitgestellten logischen Datenträger gespeicherten Daten eigentlich in dem zweiten Speicheruntersystem 30B, das außerhalb des Unified-Storage-Untersystems 30A verbunden ist, als externe Verbindungsfunktion bezeichnet.
-
Ferner kann das Unified-Storage-System 30A mit einem SAN oder einem anderen externen Netzwerk verbunden sein. 4B zeigt ein Beispiel, in dem das Unified-Storage-Untersystem 30A extern mit dem dritten Speichersystem 30C über ein SAN verbunden ist.
-
5 zeigt eine Bildansicht einer Hardware und einer Software zum Beschreiben des Betriebs des Speichersystems. Zur Vereinfachung sind nur die für die Beschreibung der Hardwarekonfiguration aus 3 notwendigen Abschnitte gezeigt. Die jeweiligen Betriebssysteme und die Blockspeicher-Mikrosteuereinheit arbeiten innerhalb eines Kerns einer CPU als Steuerprozessor. Eigentlich ist das Betriebssystem ein Programm, das in einem Speicher gespeichert ist, und wird das Programm von der CPU gelesen und darin betrieben, aber zur Beschreibung wird jedes Betriebssystem als in einem Kern angeordnet dargestellt. Normalerweise befindet sich eine Vielzahl von Kernen in dem Paket einer einzelnen CPU, und um Redundanz zum Ansprechen auf Fehler oder Ähnliches zu schaffen, wird die Anzahl der Pakete in Einheiten von zwei erhöht oder verringert. Mit anderen Worten ist die Anzahl der Pakete in einer Minimalkonfiguration zwei. Als ein Beispiel für die Verwendung des Prozessorkerns können die gleichen Typen von Betriebssystem in einem einzelnen Paket konzentriert sein oder kann das Betriebssystem verteilt sein, um eine Unterteilung in physische Pakete zu ermöglichen. Die Auslegung kann durch Berücksichtigung der Frage, ob die Leistungsfähigkeit, die Verfügbarkeit oder Ähnliches Priorität haben soll, durchgeführt werden.
-
Da der Hypervisor auch eine Software ist, ist er in einem Speicher gespeichert. Da der Hypervisor in jedem Betriebssystem betrieben wird, entspricht er nicht jedem Kern, so dass er andere Betriebssysteme als die Blockspeicher-Mikrosteuereinrichtung speichert. In 5 befinden sich eine Vielzahl von Kernen in einem gewissen Steuerprozessor 31 oder Paket und sind jedem Kern ein Dateien-Betriebssystem 311A, ein Suchsystem 312, ein Windows 315 und Blockspeicher-Mikrosteuereinrichtungen 314A und 314B zugeordnet.
-
Der Hypervisor 313 ist an jedem der Dateien-Betriebssysteme 311A, dem Suchsystem 312 und Windows 315 angebracht. In dem Hypervisor 313 werden die Dateien-Betriebssysteme 311A, das Suchsystem 312 und Windows 315 betrieben. In einigen Fällen sind andere Dateien-Betriebssysteme 311B und andere Systeme 313 in einem anderen Steuerprozessor angeordnet. In diesem Fall können die Dateien-Betriebssysteme 311B und die anderen Betriebssysteme 313 in dem Hypervisor 313 oder in einem anderen Hypervisor 313B betrieben werden. Hier bezieht sich Dateien-Betriebssystem auf das Betriebssystem, das das Dateisystem verwendet. Der Hypervisor kann auch in einem spezifischen Kern betrieben werden.
-
Speicher mit unterschiedlichen Eigenschaften, wie zum Beispiel nicht flüchtige Speicher und flüchtige Speicher, können in einer Mischung als Speicher vorhanden sein. In jedem Fall sind die Speicher dupliziert, um Redundanz aufrechtzuhalten. Speicher umfassen Konfigurationsinformation des Speicheruntersystems, Steuerinformation, wie zum Beispiel Anforderungsbefehle und Adressenabbildungsinformation, und Cache-Speicher-artige Elemente zum Speichern von Lese- und Schreibdaten.
-
Der Speicher zum Speichern der Steuerinformation (oder Konfigurationsinformation) und der mit einem Cache-Speicher-artigen Zweck verwendete Speicher zum Speichern von Daten sollte die zu verwendenden Bereiche entweder logisch oder physisch unterteilt haben. Die Speicher können verschiedene Typen von Speichern umfassen, wie zum Beispiel nichtflüchtige Speicher und flüchtige Speicher. Die Speicher, die Steuerinformation speichern, und die Speicher, die für Cache-Speicher-artige Zwecke verwendet werden, sollten die zu verwendenden Bereiche für jede Blockspeicher-Mikrosteuereinrichtung, das Dateien-Betriebssystem und andere Betriebssysteme, die den Speicher verwenden, logisch oder physisch unterteilt haben.
-
5 zeigt ein Zuweisungsbeispiel des Speichers 32. Der Speicher 32 ist ein physisch unterteilter Speicher, der aus einem Speicher 321 zum Speichern von Steuerinformation und einem Speicher 322 zum Speichern von Daten gebildet ist. Die Speicher 321 und 322 werden durch Unterteilung nach Adressenbereichen, die jedem verwendeten Betriebssystem entsprechen, verwendet. Jedes Betriebssystem kann nur den ihm zugewiesenen Speicherplatz erkennen. Zum Beispiel erkennt das Dateien-Betriebssystem 311A nur den Platz des Dateien-Betriebssystems 3211A und des Dateien-Betriebssystems 3221A und verwendet deren Plätze. Ein Dateien-Betriebssystem-Programm ist in dem Dateien-Betriebssystem 3211A und dem Dateien-Betriebssystem 3211A gespeichert.
-
Die Blockspeicher-Mikrosteuereinrichtung 3214 des Speichers 321 speichert die verschiedenen Programme, die über den Prozessor 31 gelesen und ausgeführt werden, eine Konfigurationsinformation, die in Verbindung mit der Einstellung des logischen Datenträgers steht, und Pool-Information, die in Verbindung mit der Einstellung des Pools steht. Übertragungsdaten und Ähnliches werden in der Blockspeicher-Mikrosteuereinrichtung 3224 des Speichers 322 gespeichert.
-
Die verschiedenen über den Steuerprozessor 31 gelesenen und ausgeführten Programme umfassen die folgenden. Ein Befehlssteuerprogramm interpretiert den Befehl von der Client-Vorrichtung 101 oder der Verwaltungsvorrichtung 20 und führt den in dem Befehl festgelegten Prozess aus. Ein Konfigurationssteuerprogramm setzt Prozesse, wie zum Beispiel das Einstellen der Konfiguration des Speicheruntersystems 30 oder eine Aktualisierung davon, um. Ein Platten-Eingabe/Ausgabe-Programm steuert die Zugriffe auf die physische Vorrichtung 34.
-
Konfigurationsinformation ist Information, die für die Einstellung der Umgebungen des Speichersystems, wie zum Beispiel virtuelle Vorrichtungen, logische Vorrichtungen, Schichten und RAD-Gruppen, erforderlich ist. Ferner werden eine Adressenverwaltungstabelle und eine Verwaltungstabelle für die logische Vorrichtung als Konfigurationsinformation gespeichert.
-
Die Adressenverwaltungstabelle umfasst Adressabbildungsinformationen von Zielvorrichtungen, logischen Vorrichtungen, virtuellen Vorrichtungen und physischen Vorrichtungen, Abbildungsinformationen der Zielvorrichtungen und logischen Vorrichtungen, Abbildungsinformationen von logischen Vorrichtungen und virtuellen Vorrichtungen und Abbildungsinformationen von virtuellen Vorrichtungen und physischen Vorrichtungen.
-
Das Speicheruntersystem 30 kann durch Bezugnahme auf die Adressen-Verwaltungstabelle erkennen, welche Adresse einer logischen Vorrichtung der Adresse der Zielvorrichtung entspricht. Ferner kann das Speicheruntersystem 30 erkennen, welche Adresse einer virtuellen Vorrichtung der Adresse der logischen Vorrichtung entspricht. Darüber hinaus kann das Speicheruntersystem 30 erkennen, zu welcher RAID-Gruppe die Adresse der virtuellen Vorrichtung gehört, und welcher Adresse welcher physischen Vorrichtung die virtuelle Vorrichtung entspricht.
-
Ob die Daten an einer gewissen physischen Stelle gespeichert werden oder über die Kapazitätsvirtualisierungsfunktion gespeichert werden, wird durch die Steuerung des Blockspeichers bestimmt. Wenn die Festplatte der Blockspeicherseite verwendet wird, kann der Speicherort durch Unterscheiden, ob die Festplatte eine Eingabe/Ausgabe eines Dateien-Betriebssystems oder eines Blocks ist, bestimmt werden.
-
6 zeigt einen Überblick über den Ablauf des Prozesses, wenn eine Eingabe/Ausgabe in die Blockspeicherseite empfangen wird. Der Prozess wird mit Bezugnahme auf das Ablaufdiagramm aus 15 beschrieben. Eine Block-Client-Vorrichtung 101A gibt einen Schreibbefehl an P#1 aus, der ein #0 Anschluss von HBA 35 ist (S610). Die folgenden Prozesse werden über eine Blockspeicher-Mikrosteuereinrichtungseinheit 314B innerhalb des Steuerprozessors 31 (ein einzelner Kern in der Prozessorplatte) ausgeführt. Andere Betriebssysteme als das Blockspeicherbetriebssystem, wie zum Beispiel das Dateien-Betriebssystem, sind auch in dem Steuerprozessor 31 angeordnet, stehen jedoch nicht in Verbindung mit der Ausführung. Die Blockspeicher-Mikrosteuereinrichtung erkennt den Typ von Befehl. Wenn der Befehl ein Schreibbefehl ist, fährt der Prozess mit S612 fort, und wenn der Befehl ein Lesebefehl ist, fährt der Prozess mit S642 fort (S611).
-
Wenn die vorstehend erwähnte Anforderung in dem Pufferbereich des HBA 35 gespeichert wird, wandelt die Blockspeicher-Mikrosteuereinrichtung die von der Schreibanforderung betroffenen Daten in die zu speichernden Adresse, d. h. in einen Befehl in einer Form, die von dem Blockspeicher verarbeitet werden kann, um. Hier wird der Blockspeicher in die LU umgewandelt und die Adressennummer dem Server bereitgestellt (612S). Die Blockspeicher-Mikrosteuereinrichtung speichert den umgewandelten Befehl in ihrem eigenen Speicherbereich (S6114). Während des Speicherns werden die Daten auch redundant verarbeitet, wie zum Beispiel durch Duplexverarbeitung.
-
Das Befehlssteuerprogramm führt eine Umwandlung der Adresse LU – logische Vorrichtung – virtuelle Vorrichtung aus (S616). Danach wird eine Trefferverfehlungsbestimmung ausgeführt, ob die Schreibzieladresse in einem Cache-Speicher zugewiesen ist oder nicht (S617). Wenn Trefferverfehlung bestimmt wird (wenn der Cache-Speicher nicht der Schreibzieladresse zugewiesen ist) (S6117: Nein), weist das Befehlssteuerprogramm einen Cache-Speicherbereich zum Speichern der Schreibdaten zu (S618).
-
Als Nächstes berichtet das Befehlssteuerprogramm der Block-Client-Vorrichtung 101A, dass die Datenempfangsvorbereitung eingestellt ist (S620). Wenn das Befehlssteuerprogramm die Übertragungsdaten von der Block-Client-Vorrichtung 101A empfängt, speichert das Programm die Daten in einem zugewiesenen Cache-Speicher (S624) und sendet einen kompletten Schreibbericht an die Block-Client-Vorrichtung 101A (S626).
-
Die Blockspeicher-Mikrosteuereinrichtung speichert eine Anforderung in einer Prozess-Standby-Warteschlange (S630). Die Blockspeicher-Mikrosteuereinrichtung extrahiert eine Anforderung sequenziell aus der Prozess-Standby-Warteschlange und führt die Verarbeitung in der gleichen Reihenfolge aus. Dies ist der gleiche Ablauf wie die Verarbeitung von Blockspeicherdaten gemäß dem Stand der Technik. In anderen Worten führt das Befehlssteuerprogramm eine Umwandlung der Adresse virtuelle Vorrichtung – physische Vorrichtung/externe LU aus, berechnet die Adresse der Medien, die die Schreibzieldaten speichern, (S634) und schreibt die in dem Cache-Speicher gespeicherten Daten in die Medienadresse (S636).
-
Ein Speicher 3214B speichert eine Eingabe/Ausgabe-Warteschlange zum Einreihen in die Warteschlange, um die Anforderungsbefehle sequenziell zu verarbeiten. Ein Speicher 3224B speichert einen Cache-Speicher zum Speichern von Daten, einen Puffer für CPU-Betrieb und so weiter.
-
Leseverarbeitung wird auf eine ähnliche Weise ausgeführt. Ein Ablaufdiagramm des Prozesses ist in 16 gezeigt. Der Prozess ist der gleiche wie der Schreibprozess, bis der Befehl empfangen wird. Die Block-Client-Vorrichtung 101A gibt eine Leseanforderung aus. Die Prozesse von S644 bis S648 sind die gleichen wie die vorstehend beschriebenen Prozesse S612 bis S616. Das Befehlssteuerprogramm führt eine Umwandlung der Adresse LU – logische Vorrichtung – virtuelle Vorrichtung aus und führt eine Trefferverfehlungsbestimmung aus, ob die Daten der Lesezieladresse in einem Cache-Speicher vorhanden sind oder nicht (S6150).
-
Wenn die Daten der Lesezieladresse in einem Cache sind (S650: Ja), sendet das Befehlssteuerprogramm die Daten in dem Cache an die Block-Client-Vorrichtung 101A (S660) und benachrichtigt die Block-Client-Vorrichtung 101A von der Fertigstellung (S662).
-
Wenn die Daten der Lesezieladresse nicht in dem Cache sind (S650: Nein), führt das Befehlssteuerprogramm eine Umwandlung der Adresse virtuelle Vorrichtung – physische Vorrichtung/externe LU aus (S652), berechnet die Adresse der Medien, die die Lesezieldaten speichern (S654) und startet ein Medienzugriffsprogramm.
-
Das Medienzugriffsprogramm liest Daten aus der berechneten Medienadresse, speichert sie in dem Cache (S656) und benachrichtigt das Befehlssteuerprogramm darüber, dass Daten im Cache-Speicher gespeichert wurden (S658). Wenn eine Benachrichtigung von dem Medienzugriffsprogramm empfangen wird, überträgt das Befehlssteuerprogramm die Daten in dem Cache an die Block-Client-Vorrichtung 101A (S660) und teilt die Fertigstellung mit (S662).
-
Wie oben beschrieben, durchläuft die Verarbeitung der Eingabe/Ausgabe in die Blockspeicherseite keinen Hypervisor. Somit wird der Overhead, der durch das Durchlaufen eines Hypervisors entsteht, entfernt und wird die Verschlechterung der Leistungsfähigkeit verringert.
-
Als ein Beispiel der Eingabe/Ausgabe, die nicht an den Blockspeicher gerichtet ist, zeigt 7 einen Ablauf des Prozesses, wenn das Dateien-Betriebssystem eine Eingabe/Ausgabe empfängt, was mit Bezugnahme auf das Ablaufdiagramm in 19 beschrieben wird. Eine Datei-Client-Vorrichtung 101B sendet eine Schreibanforderung an einen Anschluss (S710). In der Zeichnung wird die Anforderung an den Anschluss P#2 von #0 der NIC 36 gesendet. Das Dateien-Betriebssystem 311A erkennt den Typ des Befehls. Wenn der Befehl ein Schreibbefehl ist, fährt der Prozess mit S712 fort, und wenn der Befehl ein Lesebefehl ist, fährt der Prozess mit S712 fort (S711). Die Form der Anforderung umfasst eine Schreibanforderung an ein Dateisystem oder eine Anforderung in Form einer Verzeichnisinformation.
-
Anschluss P#2 von #0 der NIC 36 überträgt die Anforderung an das zugeordnete Betriebssystem (S712). In 7 speichert das Dateien-Betriebssystem 311A die Schreibanforderung in einem Speicher, der ausschließlich von dem Dateien-Betriebssystem verwendet wird. Ein Pufferbereich zum Speichern der Schreibdaten wird von dem Dateien-Betriebssystembereich des Speichers 322 zugewiesen (S714). Wenn der Bereich zugewiesen wird, wird ein Bericht über die Zuweisung an die Datei-Client-Vorrichtung 101B gesendet (S716). Die Datei-Client-Vorrichtung 101B überträgt nach Empfang des Berichts die Schreibdaten an das Dateien-Betriebssystem (S718).
-
Wenn der Hypervisor virtuell den HBA bereitstellt und die Anforderung in dem virtuellen HBA speichert, wandelt das Dateien-Betriebssystem den Anforderungsbefehl in LU-Nummer und -Adresse um (S720). Die Anforderung wird in dem Speicher in der umgewandelten Form gespeichert. Jetzt ist der virtuelle HBA zum Beispiel eine Software, die innerhalb des Steuerspeichers des Dateien-Betriebssystems vorgesehen ist. Der Speicher, der die Anforderung speichert, wird zum Beispiel als ein gemeinsam genutzter Bereich der Blockspeicher-Mikrosteuereinrichtung und dem Dateien-Betriebssystem definiert und als ein Speicherbereich eingestellt, auf den sowohl die Blockspeicher-Mikrosteuereinrichtung und als auch das Dateien-Betriebssystem zugreifen können. Dadurch kann die Blockspeicher-Mikrosteuereinrichtung den gespeicherten Anforderungsbefehl direkt lesen und den Prozess starten. Gemäß einem anderen Verfahren hat das System keinen gemein gemeinsam genutzten Bereich und kopiert das Dateien-Betriebssystem die Anforderung von dem Dateien-Betriebssystems-Bereich in dem Blockspeicher-Mikrosteuereinrichtungs-Bereich oder wechselt die Speicherbereiche der Blockspeicher-Mikrosteuereinrichtung und des Dateien-Betriebssystems.
-
Um die Blockspeicher-Mikrosteuereinrichtungs-Seite darüber zu benachrichtigen, dass die Anforderung an die Dateien-Betriebssystem-Seite in einem gemeinsam genutzten Bereich gespeichert wurde, wird entweder eine Unterbrechung von der Dateien-Betriebssystem-Seite an die Blockspeicher-Mikrosteuereinheit geschickt oder überprüft die Blockspeicher-Mikrosteuereinheit die Anforderungswarteschlange in vorgegebenen Intervallen und wählt eine Anforderung aus und führt Prozesse durch, wenn ein Prozess-Standby-Befehl existiert (S722).
-
In dem folgenden Prozess wird Adressenumwandlung auf ähnliche Weise wie der Prozess von S616 und danach über die Blockspeicher-Mikrosteuereinrichtung (S724) ausgeführt, um eine Trefferverfehlungsbestimmung auszuführen (S726). Wenn ein Cache zugewiesen ist, wird ein Bericht an die Dateien-Betriebssystem-Seite geschickt, um Daten zu übertragen (S730), durch den Daten von dem Dateien-Betriebssystem an die Blockspeicherseite übertragen werden (S732), wobei die Daten in dem Cache auf der Blockspeicher-Mikrosteuereinrichtungs-Seite gespeichert werden (S734).
-
Eigentlich wird die Datenübertragung durch einen Kopiervorgang von Daten zwischen Speichern von einer Speicheradresse, die von dem Dateien-Betriebssystem verwendet wird, der Daten speichert, in eine Speicheradresse, die von den Blockspeicher verwendet wird, ausgeführt. In einem anderen Beispiel werden die Adressen eines Speicherbereichs, der die zu verwaltenden Daten speichert, und eines Speicherbereichs des Kopierziels Blockspeicher-Mikrosteuereinrichtungs-Seite umgewandelt. Wenn die Adressen der physischen Datenspeicher der Kopierquelle und des Kopierziels die gleichen sind, findet möglicherweise kein wesentlicher Datenkopierprozess statt. In diesem Fall führt das Programm in dem Hypervisor einen Prozess aus, um anzunehmen, dass die Daten in einem anderen Bereich gespeichert werden und in diesen kopiert werden.
-
Wenn der Cache-Speicher der Blockspeicherseite zugewiesen und vorbereitet ist, wird eine Mitteilung an die Dateien-Betriebssystem-Seite geschickt, um die Datenübertragung zu starten. Es wird entweder eine Unterbrechung von der Blockspeicher-Mikrosteuereinrichtung an das Dateien-Betriebssystem gesendet oder eine Nachricht übertragen. Die Dateien-Betriebssystem-Seite kopiert nach Empfang der Anforderung die Daten in den Blockseitenspeicher, wenn die Daten in dessen eigenem Speicherbereich gespeichert sind, und falls nicht, lässt er die Schreibdaten von der Datei-Client-Vorrichtung dahin übertragen.
-
Wenn Schreibdaten in dem Cache der Blockspeicher-Mikrosteuereinrichtungs-Seite gespeichert sind, wird ein Fertigstellungsbericht an die Dateien-Betriebssystem-Seite geschickt (S736). Das Dateien-Betriebssystem empfängt einen Fertigstellungsbericht von der Blockspeicher-Mikrosteuereinrichtungs-Seite und benachrichtigt die Datei-Client-Vorrichtung von der Fertigstellung des Schreibvorgangs (S737). Die Prozesse von S738 und danach sind somit den Prozessen von Schritten S630 und danach aus 15 ähnlich.
-
Die Leserverarbeitung wird auf ähnliche Weise ausgeführt. 20 zeigt ein Ablaufdiagramm davon. Die Schritte bis zum Befehlsempfang sind ähnlich wie bei der Schreibverarbeitung. Die Datei-Client-Vorrichtung 101B gibt eine Leseanforderung aus. Die Prozesse von S754 bis S764 sind die gleichen wie die Prozesse von S712 bis S724. Das Befehlssteuerprogramm führt eine Umwandlung der Adresse LU-logische Vorrichtung/virtuelle Vorrichtung aus (S764) und führt eine Trefferverfehlungsbestimmung aus, ob die Daten der Lesezieladresse in dem Cache-Speicher gespeichert sind oder nicht (S766).
-
Wenn die Daten der Lesezieladresse in dem Cache gespeichert sind (S766: Ja), überträgt das Befehlssteuerprogramm die Daten in dem Cache an das Dateien-Betriebssystem (S776) und benachrichtigt das Dateien-Betriebssystem über die Fertigstellung (S780).
-
Wenn die Daten der Lesezieladresse sich nicht in dem Cache befinden (S766: Nein), führt das Befehlssteuerprogramm eine Umwandlung der Adresse virtuelle Vorrichtung – physische Vorrichtung/externe LU aus, berechnet die Adresse der Medien, die die Lesezieldaten speichern, (S770) und startet ein Medienzugriffsprogramm.
-
Das Medienzugriffsprogramm liest Daten von der Adresse der berechneten Medien und speichert sie in dem Cache (S772) und benachrichtigt das Befehlssteuerprogramm darüber, dass die Daten in dem Cache gespeichert wurden (S774). Wenn das Befehlssteuerprogramm die Benachrichtigung von dem Medienzugriffsprogramm empfängt, überträgt es die Daten in dem Cache an das Dateien-Betriebssystem (S776) und gibt einen Fertigstellungsbericht aus (S780).
-
Die Übertragung der Daten an die Dateien-Betriebssystem-Seite wird eigentlich über einen Kopiervorgang zwischen Speichen ausgeführt. Dieser Prozess ist ähnlich dem während der Schreibverarbeitung ausgeführten. Das Dateien-Betriebssystem erkennt, dass Daten übertragen wurden, d. h., Daten in seinem eigenen Bereich gespeichert wurden, oder dass die Daten in einem gemeinsam genutzten Bereich des Speichers gespeichert wurden (mittels eines ähnlichen Verfahrens wie die Schreibverarbeitung) (S778). Das Dateien-Betriebssystem überträgt Daten an die Datei-Client-Vorrichtung 101B (S782).
-
Als eine andere Ausführungsform ist ein Cache-Speicher nicht nur auf der Blockspeicher-Mikrosteuereinrichtungs-Seite, sondern auch auf der Dateien-Betriebssystem-Seite angeordnet. In diesem Fall wird die Cache-Trefferverfehlungsbestimmung auch in der Dateien-Betriebssystem-Seite ausgeführt. Wenn Daten bereits in der Dateien-Betriebssystem-Cache-Seite existieren, werden Daten übertragen, wie es während einer Leseanforderung geschieht, und der Prozess kann fertiggestellt werden. Im Fall einer Schreibanforderung kann der Prozess zu dem Zeitpunkt fertig gestellt werden, wenn Schreibdaten in dem Cache auf der Dateien-Betriebssystem-Seite gespeichert werden, oder kann zu dem Zeitpunkt fertig gestellt werden, wenn Schreibdaten in der Blockspeicher-Mikrosteuereinrichtungs-Seite gespeichert werden.
-
In dem Prozess aus 6 und 7 kann die Anforderungswarteschlange, die von der Blockspeicher-Mikrosteuereinrichtung verarbeitet wird, vorgesehen sein. Die in S614 gespeicherte Anforderung kann in die Warteschlange in dem gemeinsam genutzten Bereich 3220 eingegeben werden. Ferner kann nach dem vorübergehenden Speichern der Anforderung in den gemeinsam genutzten Bereich 3220 in S738 die Anforderung in die Anforderungswarteschlange in der Blockspeicher-Mikrosteuereinrichtung 3214A eingegeben werden.
-
In einem normalen Dateien-Betriebssystem ist der HBA in einer Hardware erhalten, wird in einen SCS Befehl umgewandelt und wird darauf über die FCI/F und SAN zu der Speicheruntersystemseite zugegriffen. Wie beschrieben, wird gemäß einer Konfiguration mit integriertem Speichersystem ein teurer HBA überflüssig und wird eine direkte Verbindung mit der Konfiguration realisiert, so dass die Kosten reduziert werden können und die Leistungsfähigkeit verbessert werden kann, da keine Notwendigkeit besteht, ein SAN dazwischen bereitzustellen.
-
8 zeigt ein Beispiel einer Hardware-Ressourcen-Verwaltungstabelle. Auf der Grundlage dieser Informationen ist es möglich, zu erkennen, welche Hardware betrieben wird oder aufgrund eines Fehlers geschlossen wird, sowie welches Betriebssystem oder welcher Blockspeicher die Hardware verwendet.
-
8A zeigt eine Hardware-Ressourcen-Verwaltungsinformation 801A, die die Blockspeicher-Mikrosteuereinrichtung speichert. Diese Information bezieht sich auf die komplette Hardware-Ressource, die in dem Speicheruntersystem 30 angeordnet ist. Die Tabelle speichert einen Ressourcennamen 802A, der die CPU-Nummer speichert, eine Kernnummer 803A für jede CPU und Information 804A darüber, ob sie in der Blockspeicherseite definiert ist.
-
In 804A wird „definiert” für die Ressource gespeichert, die von dem Blockspeicher verwendet wird, und „undefiniert” für die Ressource gespeichert, die nicht davon verwendet wird. CPU1 und CPU2 speichern „definiert”, da sie von dem Blockspeicher verwendet werden. CPU3 speichert „undefiniert”, da sie nicht von der Blockspeicher-Mikrosteuereinrichtung zugewiesen ist, und erkennt, dass sie von einem anderen Betriebssystem als der Blockspeicher-Mikrosteuereinrichtung verwendet wird. Normalerweise wird Information gespeichert, die anzeigt, dass sie undefiniert ist, aber als eine Variante ist es möglich, die von dem Hypervisor verwendete Hardware-Information von einem anderen System als der Blockspeicher-Mikrosteuereinrichtung (wie zum Beispiel einem Hypervisor, einem Verwaltungsserver oder einer anderen Vorrichtung) zu empfangen und den eigentlichen Ressourcenzuweisungszustand darin einzugeben.
-
In 812A wird der Ressourcenname des Speichers gespeichert und in 813A wird die Adresse des Speicherorts gespeichert. Ob die Blockspeicher-Mikrosteuereinrichtungs-Seite jede Adresse zugewiesen hat oder nicht, wird in 814A gespeichert. Die Adresse 1001 und darauffolgende werden mit einem anderen Betriebssystem gemeinsam genutzt. Zum Beispiel wird während der mit Bezugnahme auf 7 beschriebenen Lese/Schreib-Anforderungsverarbeitung der Anforderungsbefehl mit dem Ziel Dateien-Betriebssystem oder andere Systeme als die Blockspeicher-Mikrosteuereinrichtung umgewandelt. Jetzt ist die oben beschriebene Adresse die Adresse, die den umgewandelten Befehl speichert, wenn der Prozess der Blockspeicher-Mikrosteuereinrichtung zugewiesen ist, wobei die Adresse der Bereich ist, auf den sowohl die Dateien-Betriebssystem-Seite, die den Befehl umwandelt, als auch die Blockspeicher-Mikrosteuereinrichtung, die sich auf den Befehl bezieht und Verarbeitung ausführt, zugegriffen werden. Die Information von 814A verwaltet nicht, ob die Information gemeinsam genutzt wird, und verwaltet, ob der Blockspeicher verwendet werden kann oder nicht.
-
Eine ähnliche Verwaltung wird für andere Hardware-Ressourcen, wie zum Beispiel Anschlüsse und Festplatten ausgeführt. Im Fall von Anschlüssen gibt es zum Beispiel FC-Anschlüsse und Ethernet, deren Nummern entsprechend verwaltet werden.
-
Die Tabelle, die nur Information über die Ressourcen speichert, die in dem Blockspeicher definiert sind, wird auf der Grundlage der Verwaltungsinformation der gesamten Hardware aus Tabelle 801A erstellt. Beispiele für solche Tabellen sind Tabellen 821A und 831A, die in 8A dargestellt sind. Tabelle 821A zeigt die Information der CPU, die der Blockspeicher verwendet, wobei CPU1 und CPU2 CPU sind, die von dem Blockspeicher verwendet werden, sowie auch den Zustand der Verwendung derselben während der Verwendung. Der Verwendungszustand 823A speichert Informationen wie zum Beispiel während der Verwendung oder während des Abbruchs aufgrund eines Fehlers. Auf Tabelle 801A beziehen sich sowohl die Blockspeicher-Mikrosteuereinrichtung als auch der Hypervisor, so dass die Tabelle in einem Speicherbereich gespeichert wird, der von beiden Elementen einsehbar ist.
-
8 zeigt die Hardware-Ressourcen-Verwaltungsinformation, die der Hypervisor speichert. Hardware-Ressourcen-Verwaltungsinformation 801B und 811B sind Informationen, die der Hypervisor hat, und werden in einem von dem Hypervisor verwendeten Speicherbereich gespeichert. Auf die Tabelle 801A, die die Verwaltungsinformation der gesamten Hardware speichert, die die Blockspeicher-Mikrosteuereinrichtung hat, wird Bezug genommen und nur diejenigen mit dem undefinierten Verwendungszustand werden in die Tabellen 801B und 811B eingegeben (Anschlüsse sind nicht dargestellt und HDD sind nicht enthalten, da sie nicht verwendet werden). Zuerst wird gespeichert, ob diese Ressource bereits verwendet wird oder nicht (mit anderen Worten, ob die Ressource bereits in der Blockspeicher-Mikrosteuereinrichtungs-Seite zugewiesen ist oder nicht) und danach wird das Ergebnis der Unterteilung der Ressource und der Zuweisung zu dem Dateien-Betriebssystem oder anderen Betriebssystemen gespeichert. Der Hypervisor verwaltet die Nutzer der entsprechenden Ressourcen.
-
Die Adressen 1001 bis 2000 in dem Speicher sind gemeinsam mit dem Blockspeicher genutzte Bereiche, sind jedoch als der Hypervisor Bereich eingestellt. Der Hypervisor virtualisiert Hardware-Ressourcen und legt sie dem Dateien-Betriebssystem oder Ähnlichem dar, so dass, wie in 821B gezeigt, eine physische einzelne CPU3 als eine Vielzahl von CPU, VCPU1 bis VCPU4 virtualisiert wird, wobei jede der Vielzahl von CPU dem in dem Hypervisor gespeicherten Betriebssystem zugewiesen wird. Aus diesem Grund ist es, wenn ein später beschriebener Fehler auftritt und dieser Fehler detektiert wird, notwendig, das Ausmaß des Einflusses des Fehlers auf das Betriebssystem zu untersuchen und eine Fehlerverarbeitung auszuführen, wenn ein physischer Fehler auftritt.
-
Eine Hardware-Ressourcen-Verwendungsinformation 801C aus 8C ist die Information, die die entsprechenden anderen Betriebssysteme als den Blockspeicher haben, und es wird nur die Ressourcen-Information, die intern verwendet werden kann, gespeichert. Da der bereits beschriebene Bereich, der mit der Blockspeicher-Mikrosteuereinrichtung gemeinsam genutzt werden kann, auch intern genutzt werden kann, wird der Verwendungszustand davon wie während der Verwendung verwaltet.
-
9 zeigt eine Verzeichnisvorrichtungsinformationstabelle 901, die als Information zum Umwandeln des Anforderungsbefehls der Dateien-Betriebssystem-Seite verwendet wird. Die Verzeichnisvorrichtungsinformationstabelle 901 zeigt die entsprechende Beziehung zwischen dem Dateisystemnamen oder Verzeichnisinformation und der LU-Information, die von der Speicherseite als der Ort bereitgestellt wird, in dem sich die Datei befindet. Diese Tabelle wird in der Dateien-Betriebssystem-Seite gespeichert. In der vorliegenden Ausführungsform wird die LU von der Speicherseite in einer 1:1-Beziehung bezüglich des Dateisystems bereitgestellt. Als eine andere Variante kann nicht nur die LU-Information, sondern auch die entsprechende Beziehung mit der Adresseninformation innerhalb der LU gespeichert werden.
-
10 zeigt ein Verfahren zum gemeinsamen Nutzen der Befehle von dem Dateien-Betriebssystem zu der Blockspeicher-Mikrosteuereinrichtungs-Seite. Spalte 913 speichert die Anforderungsquelle eines Befehls, der das Ziel des Sendens des Fertigstellungsberichts klärt, wenn die Verarbeitung des Befehls fertiggestellt ist. Zum Beispiel wird im Fall eines Blockspeichers, da der Anschluss und die LU-Nummer als die Befehlsausgabequelle erkannt werden, diese Information gespeichert. Nach der Verarbeitung eines Befehls kann eine Zeitsteuerung durch Unterscheiden der Anforderungsquelle ausgeführt werden, so dass die Anforderungsquelle durch Speichern der ID des SCSI oder des WWN unterschieden wird. Die Blockseitenanforderung tritt gleichzeitig auf, wobei die Anforderung in die gleiche Anforderungsbefehlswarteschlange geschrieben werden kann, oder die Anforderungsbefehlswarteschlange in einem anderen Speicherbereich gespeichert werden kann. Wenn die Anforderung getrennt gespeichert wird, wird eine Regel notwendig, um die Verarbeitungsreihenfolge unter den Warteschlangen zu bestimmen. Wenn ein Befehl komplett ausgeführt wurde, berichtet der Block die Fertigstellung des Befehls.
-
11A und 11B zeigen die Schritte des Prozesses zum Zuweisen einer Hardware-Ressource zu einer Blockspeichersystemseite und zu anderen Betriebssystemen. Zuerst wird die Energieversorgung des Speicheruntersystems 30 eingeschaltet (S1110). Es wird nur die Blockspeicher-Mikrosteuereinrichtung gestartet (S1112). Wie beschrieben, ist die vorliegende Vorrichtung dadurch gekennzeichnet, dass sie nur einen Teil des Systems in einem einzelnen Gehäuse startet. Die Konfiguration der Blockspeicher-Mikrosteuereinrichtung wird so bestimmt, dass sie im Eingangszustand eine Minimalkonfiguration ist (oder in einem Zustand, wo detektiert wird, dass eine Konfigurationsdatei nicht definiert ist) (S1114). Minimalkonfiguration bezieht sich auf die Blockspeicherseitenkonfiguration, die zum Beispiel eine 2PK(Paket)-Konfiguration ist, innerhalb eines Maximums einer 8PK-Konfiguration. Wie beschrieben, wird im Normal-Zustand die Blockspeicher-Mikrosteuereinrichtung in einer Minimalkonfiguration gestartet. Die physischen CPU-Kerne und Speicher, die bei der Bildung der Steuerung über eine Minimalkonfiguration verwendet werden, werden im Voraus bestimmt. Zu diesem Zeitpunkt wird das System neu gestartet, um die Konfiguration festzulegen (S1115).
-
Der Nutzer berücksichtigt die Blockspeicherseitenkonfiguration über die Verwaltungsvorrichtung im Voraus und die Information der Bestimmung der Anzahl von Hardwarekomponenten, die in der Vorrichtungskonfiguration erforderlich sind, wird in der Konfigurationsdatei gespeichert (S1116). Es wird ein Blockspeicheruntersystem auf der Grundlage der in der Konfigurationsdatei gespeicherten Konfiguration gebildet. Der Nutzer berücksichtigt die Anzahl von Hardware-Ressourcen, die jede Komponente, die das Block Speicheruntersystem bildet, benötigt, und der Ressourcen, die das andere Betriebssystem oder Dateien-Betriebssystem als das Blockspeichersystem benötigt, und bestimmt die Anzahl davon so, dass die von dem Dateien-Betriebssystem oder Ähnlichem benötigten notwendigen Ressourcen verbleiben. Bei der Durchführung eines Neustarts kann die Blockspeicher-Mikrosteuereinrichtung die Hardware erkennen, die in dem Speicheruntersystem 30 verbunden ist, und die Verwaltungstabelle von 801A erstellen (S1117). Diese Information wird in dem Speicherbereich gespeichert, wenn die Steuerung über eine Minimalkonfiguration gestartet wird.
-
Als Nächstes werden auf der Grundlage der Inhalte der Nutzerdefinitionskonfigurationsdatei die Hardware-Ressourcen, die mit dem Blockspeicheruntersystem verbunden sind, erkannt (S1118). Die erkannten Hardware-Ressourcen werden in der Verwaltungstabelle von 801A gespeichert. Die Hardware-Ressourcen werden auf der Grundlage der Inhalte der Nutzerdefinitionskonfigurationsdatei zugewiesen und die Konfiguration wird definiert (S1120). Tatsächlich wird „definiert” in den Verwendungszustand von 801A gespeichert. Tabellen 821A und 831A, die die Informationen über die verwendeten Hardware-Ressourcen speichern, werden gebildet und in dem Steuerspeicher gespeichert, der für die Blockspeicher-Mikrosteuereinrichtung zugewiesen ist (S1122). Das System wird neu gestartet, um die Konfiguration festzulegen (S1123).
-
Ferner wird der Hypervisor aktiviert (S1124). Der Hypervisor bezieht sich auf die Hardware-Verwaltungsinformation 801A, die in dem Speicherbereich gespeichert ist, der mit der Blockspeicher-Mikrosteuereinrichtung gemeinsam genutzt wird, und erkennt die gesamte Hardware (S1126). Der Hypervisor speichert die Information mit dem Verwendungszustand „undefiniert” in seinem eigenen Speicherbereich (S1128). Der Hypervisor erkennt, dass die undefinierten Hardware-Ressourcen verwendet werden können, und erstellt Hardware-Verwaltungsinformationstabellen 801B und 811B für den Hypervisor (S1132). Der Hypervisor startet sein System neu und legt die Konfiguration fest (S1134). Der Hypervisor bildet ferner Tabelle 821B, weist sie der Vielzahl von Betriebssystemen zu, die in dem Hypervisor betrieben werden, und speichert die zugewiesene Informationen in Tabellen 811B und 812B (S1136).
-
Als ein weiteres Verfahren (11C), wird der Hypervisor gestartet (S1142). Der Hypervisor erkennt die gesamten Hardware-Ressourcen, die in dem Speicheruntersystem 30 verbunden sind (S1144). Der Hypervisor sendet einen Bericht an die Blockspeicher-Mikrosteuereinrichtung, dass der Hypervisor aktiviert ist (S1146). Die Blockspeicher-Mikrosteuereinrichtung stellt nach Empfang des Berichtes dem Hypervisor diese Ressourcen-Information bereit, die die Einheit verwendet, die in ihrem Speicher gespeichert ist (S1148). Der Hypervisor speichert die empfangene Information in seinem eigenen Speicherbereich (S1150). Der Hypervisor erkennt zuerst, welche Hardware-Ressource verwendet werden kann, auf der Grundlage der empfangenen Informationen und weist den Speicherbereich für den Hypervisor zu (S1152).
-
Eine Hardware-Verwaltungsinformationstabelle für den Hypervisor wird in dem zugewiesenen Speicherbereich erstellt und darin gespeichert (S1154). Der Hypervisor wird dann neu gestartet (S1156). Die Ressourcen, die verwendet werden können, werden der Vielzahl von Betriebssystemen zugewiesen, die in dem Hypervisor betrieben werden (S1158). Die zugewiesene Information wird entsprechend in dem Speicherbereich, den jedes Betriebssystem verwendet, gespeichert (S1160). Jetzt ist es nicht notwendig, der Blockspeicher-Mikrosteuereinrichtung eine Ressourcenzuweisungsinformation der Hypervisor-Seite bereitzustellen. Es gibt ein Verfahren zum gemeinsamen Nutzen von Informationen durch gemeinsames Nutzen der Adresseninformation oder zum Durchführen eines Kopiervorgangs zwischen Speichern als ein Verfahren zum Übergeben der Information oder verwendeten Hardware-Ressourcen von der Blockspeicher-Mikrosteuereinrichtung an den Hypervisor.
-
Die Prozesse von S1146 bis S1150 sind die Prozesse, die der Hypervisor des Standes der Technik nicht ausführt. Der Prozess, den der Hypervisor zur Zuweisung von Ressourcen zu einem Gast-Betriebssystem ausführt, existieren im Stand der Technik, aber der Prozess des Empfangens einer verwendbaren Ressourcen-Information von anderen Betriebssystemen und der Prozess des Bestimmens der zu verwendenden Ressourcen auf der Grundlage der empfangenen Information existieren im Stand der Technik nicht. Die Zuweisung von Speicher wird durch Bestimmen einer Adresse oder einer Kapazität innerhalb eines Speicherplatzes ausgeführt. Die Zuweisung wird in einer duplizierten Konfiguration unter Berücksichtigung von Fehlern oder Ähnlichem ausgeführt.
-
12 ist ein Ablaufdiagramm, das die Schritte zum Definieren der Konfiguration zeigt, wenn Ressourcen hinzugefügt werden. Wenn eine Hardware-Ressource hinzugefügt wird, erstellt der Nutzer wieder eine Konfigurationsdatei in der Verwaltungsvorrichtung, die die hinzugefügte Ressource beinhaltet, und speichert sie. In dem EIN-Zustand erkennt die Blockspeicher-Mikrosteuereinrichtung die damit verbundene Hardware-Ressource gemäß der von dem Nutzer konfigurierten definierten Konfigurationsdatei. Der Auslöser für die Erkennung kann als ein Befehl vom Nutzer an das Speicheruntersystem 30 ausgegeben werden oder kann eine Detektionseinrichtung sein, die das Speicheruntersystem 30 hat. Die Konfiguration wird auf eine ähnliche Weise definiert wie in dem Ablaufdiagramm von 11. Im Grunde bezieht der Vorgang sich auf die Zuweisung der hinzugefügten Hardware-Ressource und die bereits verwendeten Ressourcen bleiben in ihren ursprünglich zugewiesenen Zustand. Der auf der Hypervisor-Seite ausgeführte Prozess ist der gleiche wie die Schritte beginnend mit S1126 aus 11B.
-
Wenn eine Ressource hinzugefügt wird, bleiben die derzeit zugewiesenen Ressourcen im zugewiesenen Zustand. Die hinzugefügte Ressource wird der Blockspeicher-Mikrosteuereinrichtungs-Seite und anderen Seiten zugewiesen. Die vorliegende Ausführungsform unterscheidet sich vom Stand der Technik darin, dass während der Hinzufügung einer Ressource der Hypervisor nicht neu startet, sondern die Information über die Hinzufügung von Ressourcen und die Verwendungsfähigkeit von der Blockspeicher-Mikrosteuereinrichtung bezieht und die Zuweisung zu einem Gast-Betriebssystem ausführt.
-
Als nächstes wird der Prozess der Reduzierung der Ressourcen beschrieben, d. h. Löschen der Ressourcen. Wenn die Ressource, die das Ziel des Löschvorgangs ist, der Speicherort ist, wird bestimmt, von wo in dem Speicherort die Speicherkapazität gelöscht werden soll. Die in dem Speicherort gespeicherten zu löschenden Daten und die Steuerinformationen werden in dem nicht gelöschten Speicherort gespeichert. Für den darauf folgenden Schritt werden die Kopierzieldaten verwendet. Ähnlich wie bei dem Ablaufdiagramm aus 12 erstellt der Nutzer die über die Verwaltungsvorrichtung gelöschte Speicherortadresse erneut als eine Konfigurationsdatei und zeichnet sie auf. Die folgenden Schritte sind die gleichen wie in dem Ablaufdiagramm von 12.
-
Wenn die Ressource, die das Löschziel ist, ein Prozessor ist, wird, wenn ein Löschbefehl ausgegeben wird, der Prozessor, der das Löschziel ist, keinen neuen Prozess starten, bis ein laufender Prozess fertiggestellt und beendet ist. Bei einer Unterbrechung des Prozesses werden die Daten, wie zum Beispiel die Prozess-Standby-Warteschlange, die der zu löschende Prozessor hat, einem anderen Prozessor zugewiesen. Der Prozessor mit den zugewiesenen Daten führt die Information mit der Prozesswarteschlange zusammen, die der Prozessor ursprünglich hat, und speichert die Information in seinem eigenen Speicher. Ein unverwendbarer (oder geschlossener) Zustand wird in der Information der zu löschenden Ressource gespeichert. Die folgenden Schritte sind ähnlich wie das Ablaufdiagramm aus 12. Das Löschen von Platten kann auf eine ähnliche Weise wie bei Verfahren von Speichersystemen des Standes der Technik ausgeführt werden.
-
13 ist ein Ablaufdiagramm, das den Prozess zur dynamischen Neuzuweisung einer Hardware-Ressource eines Blockspeichers zu einem anderen System als dem Blockspeicher zeigt. Die Verwendung einer Ressource, die ein Löschziel ist, aus der auf der Blockspeicherseite verwendeten Hardware wird auf der Grundlage des vorherstehend beschriebenen Ressourcen-Löschprozesses gestoppt. Die zu löschende Ressource wird in einen unverwendbaren Zustand oder Ähnliches eingestellt und ihre Verwendung wird verhindert (S1310). Wenn der Nutzer eine Konfigurationsdatei neu erstellt, wird die Ressource, die das Löschziel ist, als nicht ausgewählt zugeordnet (S1312). Dies kann zum Beispiel realisiert werden, indem eine unverwendbare Speicheradresse nicht zugeordnet wird. Auf der Grundlage der von dem Nutzer neu erstellten Konfigurationsdatei wird eine Ressource von der verbundenen Hardware-Ressource zugewiesen und wird die Konfiguration definiert (S1316). Danach wird der Verwendungszustand der Hardware von einem unverwendbaren Zustand in einen verwendbaren Zustand geändert (S1318). Die anschließenden Schritte sind die gleichen wie Schritte S1126 bis S1136 aus 11B.
-
14 ist ein Ablaufdiagramm, das den Prozess zur dynamischen Neuzuweisung einer Hardware-Ressource, die von einer anderen Einheit als dem Blockspeicher verwendet wird, zu der Blockspeicherseite zeigt. Zum Beispiel kann, wenn die Hardware-Leistung übermäßig wird, wie zum Beispiel durch Verkleinern des Dateisystems auf der Dateien-Betriebssystem-Seite, Hardware von der Dateien-Betriebssystem-Seite freigegeben werden und der Blockspeicherseite neu zugewiesen werden.
-
Der Prozess des Löschens einer Hardware-Ressource wird mittels des früher beschriebenen Prozesses ausgeführt. Der Hypervisor startet eine Löschverarbeitung (S1410) und veranlasst die jeweiligen Betriebssysteme, die Löschverarbeitung auszuführen (S1412). Nach der Ausführung des Löschvorgangs weist der Hypervisor die Ressource, die gegenwärtig verwendet werden kann, neu zu (S1416) und speichert die Information in dem Hypervisor (S1420). Die Neuerstellung der Konfigurationsdatei und die Neuzuweisung (Hinzufügung) der Hardware-Ressourcen zu der Blockspeicherseite, die folgt, werden ähnlich wie in dem Ablaufdiagramm von 12 ausgeführt.
-
Einer der Zusammenarbeitsprozesse der Blockspeicher-Mikrosteuereinrichtung und des Hypervisors ist eine Fehlerverarbeitung. Herkömmlicherweise war das Betriebssystem in jedem Gehäuse des Speicheruntersystems angeordnet und hat jedes Betriebssystem ein Umgebungssystemprogramm oder ein übliches Logikprogramm zum Ausführen von Fehlerverwaltung gespeichert (wie zum Beispiel das in 17 gezeigte Fehlerprogramm 316). Wenn ein Fehler auf der Hardwareseite aufgetreten ist, wurde einen Fehlerbericht an jedes Betriebssystem gesendet und ein Fehleransprechprogramm gestartet und in jedem Betriebssystem ausgeführt.
-
Gemäß dem Speichersystem der vorliegenden Erfindung ist es notwendig, die Umgebungssystemprogramme und übliche Logikprogramme, die in jedem Betriebssystem gespeichert wurden, anzuordnen. Wenn ein Fehler in der Hardware auftritt, die von dem Hypervisor verwaltet wird, und jedes der Fehlerprogramme gestartet wird, wird, da die Toleranz gegenüber der Verfügbarkeit sich von der des Blockspeicheruntersystems unterscheidet, wenn diese Bestimmung bezüglich eines Fehlers das Hypervisors übernommen wird, die Verfügbarkeit des Blockspeicheruntersystems verschlechtert.
-
Ferner wird gemäß dem Blockspeicher-Mikrosteuereinrichtungs-Seiten-Prozess durch Durchlaufen des Supervisors Overhead veranlasst, so dass die Verarbeitungsfähigkeit der Blockspeicheruntersystemseite sich möglicherweise verschlechtert. Um Zusammenarbeitsprozesse ohne Verschlechterung der Verfügbarkeit des Blockspeicheruntersystems zu ermöglichen, wird die Initiierung der Fehlerverarbeitung der Blockspeicher-Mikrosteuereinrichtungs-Seite bereitgestellt. Dadurch wird bei der der Detektierung eines Fehlers ein Prozess des ersten Berichts an die Blockspeicher-Mikrosteuereinrichtungs-Seite ausgeführt.
-
Jedoch kann es, wie für die nur von der Hypervisor-Seite verwendete Hardware unnötig sein, Fehlerverarbeitung auszuführen. Deshalb werden die Ressourcen, die das Ziel der Fehlerverarbeitung sind, zwischen dem Blockspeicher und dem Hypervisor getrennt (das für diese Ressource verantwortliche System wird bestimmt). Wenn in den Ressourcen ein Fehler auftritt, wird bestimmt, ob der Speicherbereich, der die Informationen über das Auftreten eines Fehlers aufzeichnet (Fehlerauftrittsinformation), auf der Hypervisor-Seite oder auf der Blockspeicher-Mikrosteuereinrichtungs-Seite sein soll. Wenn sich der Ressourcenfehler auf Fehlerverarbeitung der Blockspeicher-Mikrosteuereinrichtung bezieht, wird die Fehlerauftrittsinformation in dem Speicherbereich auf der Blockspeicher-Mikrosteuereinrichtungs-Seite gespeichert und wird die Information dadurch auf der Seite der Steuereinheit, die sich auf die Informationen bezieht, platziert.
-
Als Nächstes wird die Fehlerverarbeitung beschrieben. Ähnlich wie bei der Fehlerverarbeitung müssen die Blockspeicher-Mikrosteuereinrichtung und der Hypervisor die Verarbeitung in Zusammenarbeit ausführen. Wenn ein Fehler in einer Hardware in dem Speicheruntersystem 30 auftritt, detektiert die Fehlerüberwachungseinrichtung, die Hardware zum Detektieren von Fehlern, den Fehler.
-
Die Zielhardware-Ressourcen können in die folgenden vier Typen eingeteilt werden.
- (1) Eine Ressource, die von einem Blockspeicher und einem anderen System als dem Blockspeicher gemeinsam genutzt wird (ein Hypervisor und eine Gruppe von Betriebssystemen, die in dem Hypervisor betrieben werden)
- (2) Ressourcen, die ausschließlich von den Blockspeicher verwendet werden
- (3) Eine Ressource, die von Betriebssystemen gemeinsam genutzt wird, die in anderen Hypervisoren als dem Blockspeicher betrieben werden
- (4) Eine Ressource, die ausschließlich von dem Betriebssystem verwendet wird, das in einem anderen Hypervisor als dem Blockspeicher betrieben wird.
-
Jede Hardware-Ressource übermittelt den Fehler an die im Voraus eingestellte Seite und gibt eine Unterbrechung aus. Im Fall von (1) und (2), in 21 gezeigt, wird ein Fehler der Blockspeicher-Mikrosteuereinrichtung mitgeteilt und wird eine Unterbrechung ausgegeben. In dem Fall von (3), wie in 22 gezeigt, wird dem Hypervisor ein Fehler mitgeteilt und wird eine Unterbrechung ausgegeben. Im Fall von (4), wird der Fehler jedem Betriebssystem mitgeteilt und wird eine Unterbrechung ausgegeben.
-
Um dies auszuführen, muss jede Hardware-Ressource das Mitteilungsziel bezüglich des Ziels der Fehlermitteilung speichern. Bereiche zur Fehlerverarbeitung sind in dem Speicher 321 zugewiesen und Fehlerberichtziele aller Hardware-Ressourcen sind in einer Informationsverwaltungstabelle gespeichert, wobei bei der Detektierung eines Fehlers Bezug auf die Informationsverwaltungstabelle genommen wird und das Auftreten des Fehlers dem Fehlerberichtziel mitgeteilt wird. Die Informationsverwaltungstabelle ist in 23 gezeigt. Zum Beispiel ist die in 2314 gespeicherte Nutzerinformation der Fehlerverwaltungstabelle 2300 der CPU das Fehlermitteilungsziel. Wenn der Nutzer ein Block ist, wird eine Antwort an die Blockspeicher-Mikrosteuereinrichtungs-Seite geschickt, und wenn der Nutzer ein Dateien-Betriebssystem ist, wird eine Antwort an das Dateien-Betriebssystem geschickt.
-
Ein Beispiel des vorstehend beschriebenen Falles (1) ist ein Festplattenfehler. Festplatten werden von dem Block Speicher und verschiedenen Betriebssystemen, wie zum Beispiel dem Dateien-Betriebssystem verwendet. Deshalb verwaltet, wenn ein Festplattenfehler auftritt, die Plattensteuerseite nicht, zu welchem Betriebssystem die in dem Fehlerabschnitt gespeicherten Daten gehören, so dass das Auftreten eines Fehlers dem gesamten System mitgeteilt wird.
-
Ferner wird im Fall des in 23 gezeigten Speichers bestimmt, ob jede Speichereinheit einen Fehler aufweist oder nicht. Im vorliegenden Fall wird der Speicher gemeinsam genutzt (im Fall von (1) wie vorstehend beschriebenen), wird der Fehler an den Block zurückgemeldet, der den Speicher verwendet.
-
Als ein Verfahren zur Fehlerdetektierung kann die Hardware, wie zum Beispiel die CPU, der Speicher oder die Platte, einen internen Fehler über Fehlerüberwachung erkennen. Da ein Anschluss sich selber keiner Detektierung unterziehen kann, kann eine Aufgabe erstellt werden, so dass ein Fehlerdetektionsprogramm oder Ähnliches in bestimmten Intervallen überprüft, ob ein Fehler aufgetreten ist. Wenn ein Fehler festgestellt wird, wird Bezug auf eine Informationsverwaltungstabelle genommen, die das Fehlerberichtziel aufzeichnet, und wird das Fehlerziel gesucht, um den Fehler zu berichten. Der Anschluss berichtet entweder an (2) oder (4), wie oben beschrieben.
-
Wenn ein Fehler in einer Ressource auftrifft, die ausschließlich von einem der Betriebssysteme verwendet wird, die in dem Hypervisor betrieben werden, und das Betriebssystem eine Ausfallsicherung ausführen muss, wird der Fehler von dem Hypervisor, in dem das Betriebssystem angeordnet ist, der Blockspeicher-Mikrosteuereinrichtung mitgeteilt.
-
Herkömmlicherweise erkennt der Hypervisor sämtliche mit ihm verbundenen Hardware-Ressourcen und versucht, Fehler darin zu detektieren. Ferner versucht der Blockspeicher auf ähnliche Weise, einen Fehler sämtlicher Hardware-Ressourcen zu detektieren. Jedoch wird in einem Unified-Storage-System, da die Hardware-Ressourcen in eine Blockspeicherseite und eine Hypervisor-Seite unterteilt sind und dementsprechend zugewiesen werden, Fehlerverarbeitung auch auf eine getrennte Art ausgeführt. Mit anderen Worten werden die in jedem Betriebssystem abgeschlossenen Prozesse in dem Betriebssystem ausgeführt, wohingegen das Betriebssystem, das für den Prozess bezüglich eines Ziels, das gemeinsam von beiden Seiten verwendet wird, zuständig ist, im Voraus bestimmt werden muss. Gemäß dem vorliegenden Verfahren liegt die Initiierung der Fehlerverarbeitung bei der Blockspeicher-Mikrosteuereinrichtungs-Seite mit einer hohen Wiederherstellungsleistung, aber bezüglich der Hardware, die nicht mit der Blockspeicher-Mikrosteuereinrichtungs-Seite verbunden ist, wird die Verarbeitung von jedem Betriebssystem oder dem Hypervisor ausgeführt.
-
Bei anderen Konfigurationsvarianten hat die erste Variante ein Fehlerprogramm, das nur in dem Hypervisor angeordnet ist, wobei der Hypervisor sowohl die Hypervisor-Seite als auch die Blockspeichersteuerseite verwaltet. Wenn der Blockspeicher nicht in dem Speichersystem existiert, wird ein Fehlerbericht an den Hypervisor gesendet und das Fehlerverarbeitungsprogramm in dem Hypervisor verwendet, um den Fehler zu beheben. Diese Fehlerverarbeitung wird auf einem Niveau ausgeführt, das mit dem Server oder dem Dateisystem umgehen kann.
-
Die zweite Variante hat ein Fehlerprogramm, das nur in der Blockspeicher-Mikrosteuereinrichtung angeordnet ist. Dieses Beispiel entspricht dem Fall, in dem nicht von Anfang an ein Hypervisor existiert oder wo der Hypervisor zwischendurch gelöscht wird. Ein Blockspeicherniveau-Fehlerverarbeitungsprogramm wird gestartet. Wenn ein Hypervisor zwischendrin gelöscht wird, wird als eine Vorverarbeitung zum Löschen des Hypervisors die Fehlerverarbeitung, die vom Hypervisor ausgeführt wurde, von der Blockspeicher-Mikrosteuereinrichtung übernommen.
-
Die vorliegende Erfindung ist nicht auf die bevorzugten Ausführungsformen beschränkt, sondern die vorliegende Erfindung kann durch Modifizieren und Realisieren der Komponenten umgesetzt werden, ohne vom Schutzumfang der Erfindung abzuweichen. Verschiedene Modifikationen der Erfindung können durch geeignetes Kombinieren der Vielzahl von Komponenten, die in den vorhandenen vorliegenden Ausführungsformen gelehrt werden, realisiert werden. Zum Beispiel können einige Komponenten von den in den Ausführungsformen dargestellten Komponenten gelöscht werden. Ferner können Komponenten von anderen Ausführungsformen beliebig angeordnet werden.
-
Ein Teil oder sämtliche Komponenten, Funktionen, Verarbeitungseinheiten, Verarbeitungseinrichtungen und Ähnliches, die in dem bevorzugten Ausführungsformen dargestellt sind, können durch Hardware umgesetzt werden, wie zum Beispiel durch Gestalten einer integrierten Schaltung. Ferner können die oben beschriebene Konfiguration und Funktionen durch Hardware umgesetzt werden, indem der Prozess jedes Programm, das die entsprechenden Funktionen umsetzt, interpretiert und ausführt. Die Information, wie zum Beispiel die Programme, Tabellen und Dateien, die die entsprechenden Funktionen umsetzen, können in einem Speicher oder einer Speichervorrichtung, wie zum Beispiel einem Speicher, einer Festplatte oder einer SSD (Solid State Drive) oder einem Aufzeichnungsmedium oder einem Speichermedium, wie zum Beispiel einer integrierte Schaltungskarte (IC) einer SD-Speicherkarte oder einer DVD (Digital Versatile Disk) und Ähnlichem gespeichert sein.
-
Ferner sind gemäß den vorstehend beschriebenen bevorzugten Ausführungsformen nur die für die Beschreibung als notwendig erachteten Steuerleitungen und Informationsleitungen dargestellt und sind nicht notwendigerweise alle für die Herstellung erforderlichen Steuerleitungen und Informationsleitungen dargestellt. Alle Komponenten können miteinander verbunden sein.
-
Bezugszeichenliste
-
- 20
- Verwaltungsvorrichtung
- 30
- Speicheruntersystem
- 31
- Steuerprozessor (CPU)
- 32
- Speicher
- 33
- Platten-Schnittstelle
- 34
- Physische Vorrichtung
- 35
- HBA
- 36
- NIC
- 37
- Bus
- 39
- Wartungsverwaltungsschnittstelle
- 101
- Client-Vorrichtung
- 106, 107
- Netzwerk
- 108
- Verwaltungsnetzwerk