-
HINTERGRUND DER ERFINDUNG
-
Die Erfindung betrifft ein Plattenarraysystem.
-
In den letzten Jahren wird einhergehend mit der Zunahme von Speicherkapazität in Plattenarraysystemen deren Bedeutung in Informationsverarbeitungssystemen immer größer. Daher ist es wesentlich, Daten korrekt an einer angeforderten Position einzuschreiben und eine Inkorrektheit gelesener Daten auf eine Daten-Eingabe/Ausgabe-Anforderung von einer Informationsverarbeitungsvorrichtung oder dergleichen zu erkennen.
-
JP-A-5-150909 offenbart ein Verfahren, bei dem in einer Magnetplatteneinheit zwei Köpfe vorhanden sind und von den zwei Köpfen gelesene identische Daten miteinander verglichen werden, um die Zuverlässigkeit beim Schreiben und Lesen in der Magnetplatteneinheit zu verbessern.
-
Wenn das in
JP-A-5-150909 offenbarte Verfahren bei einem Plattenarraysystem angewandt wird, müssen in jeder Magnetplatteneinheit zwei Köpfe angebracht werden. Demgemäß steigen die Einheitskosten zum Herstellen jedes Festplattenlaufwerks an. Daher ist ein Verfahren zum Verbessern der Zuverlässigkeit bei einem Festplattenlaufwerk ohne Änderung des körperlichen Aufbaus desselben, z. B. ohne Hinzufügens irgendeines Kopfs zu ihm, gefordert.
-
Außerdem wurden bei Plattenarraysystemen Festplattenlaufwerke gemäß seriell-ATA oder parallel-ATA sowie Faserkanal-Festplattenlaufwerke in Betrieb genommen. Festplattenlaufwerke gemäß seriell-ATA oder parallel-ATA sind hinsichtlich der Zuverlässigkeit Faserkanal-Festplattenlaufwerken unterlegen, sind jedoch billiger. Daher besteht Bedarf an der Entwicklung eines Verfahrens zum Verbessern der Zuverlässigkeit bei anderen Festplattenlaufwerken als solchen mit Faserkanal (FC) innerhalb eines Plattenarraysystems, das aus einer Kombination von Faserkanal-Festplattenlaufwerken und anderen Festplattenlaufwerken, die dem Seriell-ATA-Standard (SATA) oder dergleichen genügen, besteht.
-
Ein Plattenarraysystem mit FC-Plattenlaufwerken, die jeweils mit FC-AL-Kommunikationskanälen verbunden sind, ist in
US 2001/0,014,956 A1 offenbart. Der Oberbegriff des Anspruchs 1 enthält die Merkmale, die die Erfindung mit dem aus dieser Druckschrift bekannten Stand der Technik gemeinsam hat.
-
US 2003/0,135,577 A1 offenbart ein System mit Plattenlaufwerkseinheiten, die über jeweils zwei SATA-Anschlüsse verfügen. Von jeder Laufwerkseinheit verlaufen zwei SATA-Verbindungen über eine Rückwand-Platine zu zwei Vorrichtungen, die jeweils einen FC-Anschluß zur Verfügung stellen.
-
EP 1 353 264 A2 betrifft die Verbindung von Plattenlaufwerken über ein Schaltnetzwerk mit einem Controller.
-
US 2003/0189811 A1 offenbart einen Adapter und eine Anordnung, bei der ATA-Festplattenlaufwerke mittels des Adapters in die Gehäuse von FC-Plattenlaufwerken elektrisch und mechanisch kompatibel eingebracht werden können.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Der Erfindung liegt die Aufgabe zugrunde, ein Plattenarraysystem zu schaffen, das bei hoher Zuverlässigkeit und einfacher Handhabbarkeit preiswert erweiterbar ist.
-
Die Lösung dieser Aufgabe gelingt mit dem in Anspruch 1 angegebenen Plattenarraysystem. Die abhängigen Ansprüche betreffen bevorzugte Ausführungsformen der Erfindung.
-
Ein Plattenarraysystem gemäß einem Ausführungsbeispiel der Erfindung verfügt über ein erstes Gehäuse, ein zweites Gehäuse und einen Controller. Das erste Gehäuse beherbergt eine oder mehrere RAID-Gruppen. Jede RAID-Gruppe besteht aus mehreren Festplattenlaufwerken zum Senden/Empfangen von Daten entsprechend dem FC Schnittstellenstandard. Die Festplattenlaufwerke sind über einen Kommunikationspfad miteinander verbunden. Das zweite Gehäuse beherbergt eine oder mehrere RAID-Gruppen. Jede RAID-Gruppe besteht aus mehreren Festplattenlaufwerken zum Senden/Empfangen von Daten entsprechend dem SATA Schnittstellenstandard. Die Festplattenlaufwerke sind über den Kommunikationspfad mittels mehrerer Wandeleinheiten zum Wandeln des FC und des SATA Schnittstellenstandards ineinander verbunden. Die dem SATA Schnittstellenstandard genügenden Festplattenlaufwerke verfügen über geringere Zuverlässigkeit als die dem FC Schnittstellenstandard genügenden Festplattenlaufwerke. Der Controller verfügt über einen Kanal-Steuerabschnitt, einen Platten-Steuerabschnitt, einen Cachespeicher und eine CPU. Der Kanal-Steuerabschnitt ist mit einer Informationsverarbeitungsvorrichtung verbunden, um mit dieser in Kommunikation treten zu können. Der Kanal-Steuerabschnitt empfängt Anforderungen von der Informationsverarbeitungsvorrichtung. Die Anforderung beinhaltet eine Leseanforderung zum Lesen von Daten von den Festplattenlaufwerken im ersten oder zweiten Gehäuse sowie eine Schreibanforderung zum Schreiben von Daten in die Festplattenlaufwerke im ersten oder zweiten Gehäuse. Der Platten-Steuerabschnitt ist über den Kommunikationspfad mit den mehreren Festplattenlaufwerken im ersten und zweiten Gehäuse verbunden, um mit den mehreren Festplattenlaufwerken im ersten und zweiten Gehäuse in Kommunikation treten zu können. Der Platten-Steuerabschnitt führt eine Eingabe/Ausgabe von Daten und Paritätsdaten von/in die mehreren Festplattenlaufwerke im ersten und zweiten Gehäuse entsprechend der vom Kanal-Steuerabschnitt empfangenen Leseanforderung oder Schreibanforderung aus. Die Paritätsdaten sind Daten zum Erkennen von Fehlern über mehrere Datenstücke hinweg, einschließlich der Daten von/an die mehreren Festplattenlaufwerke im ersten und zweiten Gehäuse. Der Cachespeicher führt eine Zwischenspeicherung von Daten aus, die in die mehreren Festplattenlaufwerke zu schreiben sind. Die CPU überwacht die Steuerung über den Kanal-Steuerabschnitt und den Platten-Steuerabschnitt. Der Controller liest mehrere Datenstücke einschließlich Daten, wie sie in den mehreren Festplattenlaufwerken im zweiten Gehäuse gespeichert sind, und Paritätsdaten für die mehreren Datenstücke aus allen Festplattenlaufwerken der RAID-Gruppe, zu der die die Daten speichernden Festplattenlaufwerk gehören, und er untersucht, ob die die Daten enthaltenden mehreren Datenstücke mit fehlerhaftem Inhalt oder nicht in die Festplattenlaufwerke geschrieben wurden.
-
Außerdem verstellt der Controller beim Schreiben von Daten in eines der Festplattenlaufwerke im zweiten Gehäuse entsprechend der Schreibanforderung von der Informationsverarbeitungsvorrichtung einen zum Festplattenlaufwerk gehörenden Kopf ausgehend von einer Position, an der die Daten abgespeichert wurden. Danach liest der Controller die Daten von einer zum Festplattenlaufwerk gehörenden Magnetplatte sowie aus dem Cachespeicher, und er vergleicht die zwei ausgelesenen Datenstücke.
-
Außerdem bildet der Controller beim Empfangen der Schreibanforderung von der Informationsverarbeitungsvorrichtung zum Einschreiben von Daten in eines der Festplattenlaufwerke im zweiten Gehäuse aus den aus mehreren Sektoren bestehenden Daten eine Dateneinheit auf Grundlage der zu schreibenden Daten sowie Paritätsdaten zum Erkennen von Datenfehlern in den mehreren Sektoren, und er schreibt die Dateneinheit in das Festplattenlaufwerk. Wenn die Steuerung die Leseanforderung zum Lesen der Daten von der Informationsverarbeitungsvorrichtung empfängt, liest sie die Dateneinheit, und sie untersucht, ob die Daten mit fehlerhaftem Inhalt oder nicht im Festplattenlaufwerk gespeichert sind.
-
Der Kommunikationspfad ist ein FC-AL (Fiber Channel-Arbitrated Loop). Außerdem ist jede Wandlungseinheit ein Wandler zum Wandeln eines Faserkanalprotokolls und eines Seriell-ATA-Protokolls ineinander. Außerdem dient jede RAID-Gruppe zum Verwalten mehrerer Festplattenlaufwerke als eine Gruppe, wenn die Festplattenlaufwerke über RAID-Konfiguration verfügen. Für jede RAID-Gruppe werden logische Datenbereiche gebildet, die als Zugriffseinheiten ausgehend von der Informationsverarbeitungsvorrichtung dienen. Jedem logischen Datenbereich wird eine als LUN bezeichnete Kennung zugewiesen. Wenn von der Informationsverarbeitungsvorrichtung eine Schreibanforderung zum Schreiben von Daten in einen logischen Datenbereich empfangen wird, schreibt der Platten-Steuerabschnitt die Daten und Paritätsdaten zum Erkennen von Fehlern in den Daten in die die RAID-Gruppe bildenden Festplattenlaufwerke.
-
Demgemäß kann gemäß der Erfindung ein Plattenarraysystem geschaffen werden.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Die in dieser Beschreibung offenbarten Probleme und Lösungen für diese werden aus der folgenden detaillierten Beschreibung bevorzugter Ausführungsformen in Verbindung mit den beigefügten Zeichnungen besser ersichtlich werden.
-
1A und 1B sind Diagramme, die das Aussehen eines Plattenarraysystems gemäß einer Ausführungsform der Erfindung zeigen;
-
2A und 2B sind Diagramme, die die Konfiguration eines Mastergehäuses des Plattenarraysystems gemäß der Ausführungsform zeigen;
-
3A und 3B sind Diagramme, die die Konfiguration eines Erweiterungsgehäuses des Plattenarraysystems gemäß der Ausführungsform zeigen;
-
4 ist ein Diagramm, das die Konfiguration eines Festplattenlaufwerks gemäß der Ausführungsform zeigt;
-
5 ist ein Diagramm, das die Konfiguration eines Plattenarraysystems zeigt;
-
6 ist ein Diagramm, das den Zustand zeigt, gemäß dem durch eine CPU eines Controllers auszuführende Mikroprogramme in einen Speicher gemäß der Ausführungsform eingespeichert wurden;
-
7 ist ein Diagramm, das einen Modus zum Verbinden von Faserkanal-Festplattenlaufwerken mit einem Platten-Steuerabschnitt des Controllers gemäß der Ausführungsform zeigt;
-
8 ist ein Diagramm, das einen ersten Modus zum Verbinden von Seriell-ATA-Festplattenlaufwerken mit dem Platten-Steuerabschnitt des Controllers zeigt;
-
9 ist ein Diagramm, das einen zweiten Modus zum Verbinden von Seriell-ATA-Festplattenlaufwerken mit dem Platten-Steuerabschnitt des Controllers gemäß einem Vergleichsbeispiel zeigt;
-
10 ist ein Diagramm, das ein Beispiel zeigt, bei dem Daten in Festplattenlaufwerke geschrieben werden, die eine RAID-Gruppe gemäß der Ausführungsform bilden;
-
11 ist ein Diagramm, das eine Aktualisierungskontrolltabelle gemäß der Ausführungsform zeigt;
-
12 ist ein Flussdiagramm zum Vergleichen von in einem Cachespeicher abgespeicherten Daten mit in einer Magnetplatte abgespeicherten Daten, wenn Daten geschrieben werden;
-
13 ist ein Flussdiagramm zum Vergleichen von in einem Cachespeicher abgespeicherten Daten mit in einer Magnetplatte abgespeicherten Daten unter Berücksichtigung der Datengröße, wenn Daten geschrieben werden;
-
14 ist ein Flussdiagramm zum Vergleichen von in einem Cachespeicher abgespeicherten Daten mit in einer Magnetplatte abgespeicherten Daten, wenn im Cachespeicher abgespeicherte Daten in die Magnetplatte geschrieben werden;
-
15 ist ein Diagramm, das eine Kopfprüf-Kontrolltabelle gemäß der Ausführungsform zeigt;
-
16 ist ein Flussdiagramm für eine Kopfprüfung, wie sie gemäß der Ausführungsform periodisch auszuführen ist;
-
17 ist ein Flussdiagramm zum Ausführen der Kopfprüfung, wenn Daten gelesen werden;
-
18 ist ein Diagramm, das ein Beispiel zeigt, bei dem eine Dateneinheit in ein Festplattenlaufwerk gemäß der Ausführungsform geschrieben wurde;
-
19 ist ein Diagramm, das ein Beispiel zeigt, bei dem jede Dateneinheit über mehrere Plattenlaufwerke gemäß der Ausführungsform eingeschrieben und verteilt wurde;
-
20 ist ein Diagramm, das eine Dateneinheit-Kontrolltabelle gemäß der Ausführungsform zeigt; und
-
21 ist ein Diagramm, das die Konfiguration eines erfindungsgemäßen Plattenarraysystems zeigt, bei dem Faserkanal-Festplattenlaufwerke in einem ersten Gehäuse untergebracht sind und Seriell-ATA-Festplattenlaufwerke in einem zweiten Gehäuse untergebracht sind.
-
DETAILLIERTE BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
-
== Systemkonfiguration ==
-
Die 1A ist eine Vorderansicht eines Plattenarraysystems 10, das als eine Ausführungsform der Erfindung beschrieben wird. Die 1B ist eine Rückansicht des Plattenarraysystems 10. Die 2A ist eine perspektivische Ansicht eines Mastergehäuses 20, das am Plattenarraysystem 10 anzubringen ist, wobei man das Mastergehäuse 20 von seiner Vorderseite her sieht. Die 2B ist eine perspektivische Ansicht des Mastergehäuses 20 von seiner Rückseite her gesehen. Die 3A ist eine perspektivische Ansicht eines Erweiterungsgehäuses 30, das am Plattenarraysystem 10 anzubringen ist, wobei man das Erweiterungsgehäuse 30 von seiner Vorderseite her sieht. Die 3B ist eine perspektivische Ansicht des Erweiterungsgehäuses 30 von seiner Rückseite her gesehen.
-
Wie es in den 1A und 1B dargestellt ist, wird das Plattenarraysystem 10 unter Verwendung eines Rackrahmens 11 als Basis hergestellt. Montagerahmen 12 sind in mehreren Etagen ausgebildet, die oben und unten an der linken und rechten Innenseitenfläche des Rackrahmens 11 so angeordnet sind, dass sie sich in den Richtungen nach vorne/nach hinten erstrecken. Das Mastergehäuse 20 und das Erweiterungsgehäuse 30 sind ausziehbar entlang den Montagerahmen 12 montiert. Wie es in den 2A und 2B dargestellt ist, sind Platten oder Einheiten zum Bereitstellen verschiedener Funktionen für das Plattenarraysystem 10 am Mastergehäuse 20 und am Erweiterungsgehäuse 30 angebracht.
-
Wie es in der 2A dargestellt ist, sind mehrere Plattenlaufwerkeinheiten 52, in die jeweils ein Festplattenlaufwerk 51 eingebracht ist, parallel in die vordere, obere Etage des Mastergehäuses 20 eingesetzt. Jedes Festplattenlaufwerk 51 ist ein Festplattenlaufwerk mit einer Kommunikationsschnittstelle zum Bereitstellen einer Kommunikationsfunktion entsprechend einem FC-AL-Standard, oder einem Seriell-ATA-Standard.
-
In die vordere, untere Etage des Mastergehäuses 20 sind eine Batterieeinheit 53, eine Anzeigetafel 54 zum Anzeigen von Betriebszuständen usw. der Festplattenlaufwerke 51 sowie ein Diskettenlaufwerk 55 eingesetzt. Die Batterieeinheit 53 verfügt über eine Sekundärbatterie. Die Batterieeinheit 53 hat eine Funktion als Ersatzspannungsversorgung zum Liefern von Spannung an Leiterplatten oder Einheiten, wenn die Spannungsversorgung von einer AC/DC-Spannungsversorgung 57 aufgrund eines Netzausfalls oder dergleichen stoppt. Die Anzeigetafel 54 ist mit Anzeigevorrichtungen wie LED-Lampen oder dergleichen zum Anzeigen der Betriebszustände usw. der Festplattenlaufwerke 51 versehen. Das Diskettenlaufwerk 55 wird z. B. zum Laden eines Wartungsprogramms verwendet.
-
Wie es in der 2B dargestellt ist, sind Spannungsversorger-Controllerplatten 56 an den entgegengesetzten Seitenflächen in der hinteren, oberen Etage des Mastergehäuses 20 einzeln eingesetzt. Jede Spannungsversorgungs-Controllerplatte 56 ist mit mehreren Festplattenlaufwerken 51 so verbunden, dass sie mit diesen Kommunikationsvorgänge errichten kann. Z. B. sind die Spannungsversorgung-Controllerplatte 56 und die mehreren Festplattenlaufwerke 51 so verbunden, dass für Kommunikationsvorgänge über einen schleifenartigen Kommunikationspfad wie einen solchen, der für Kommunikation in einem FC/AL-System (Topologie) sorgt, gesorgt werden kann.
-
Jede Spannungsversorgung-Controllerplatte 56 ist mit Schaltkreisen zum Überwachen des Zustands der AC/DC-Spannungsversorgung 57, zum Überwachen der Zustände der Festplattenlaufwerke 51, zum Steuern der Spannungsversorgung der Festplattenlaufwerke 51, zum Steuern der Kühlkapazität einer Kühleinheit, zum Steuern der Anzeigevorrichtungen auf der Anzeigetafel 54, zum Überwachen der Temperatur jedes Abschnitts des Gehäuses, usw. versehen. Übrigens ist die Kühleinheit eine Einheit zum Kühlen des Inneren des Plattenarraysystems 10 oder des Inneren des Gehäuses 20 oder 30. Z. B. ist die Kühleinheit ein Interkühler, eine Wärmesenke, ein Kühllüfter vom Luftkühltyp oder dergleichen. Die Spannungsversorgung-Controllerplatte 56 ist mit einem Faserkanalkabel-Verbinder 67 versehen, mit dem ein Faserkanalkabel 91 verbunden ist.
-
Wie es in der 2B dargestellt ist, sind zwei AC/DC-Spannungsversorgungen 57 parallel in einem Raum zwischen den zwei Spannungsversorgung-Controllerplatten 56 in der hinteren, oberen Etage des Mastergehäuses 20 angebracht. Jede AC/DC-Spannungsversorgung 57 liefert Spannung an die Festplattenlaufwerke 51, die Leiterplatten, die Einheiten usw. Die AC/DC-Spannungsversorgung 57 ist mit der Spannungsversorgung-Controllerplatte 56 verbunden, und sie ist so aufgebaut, dass sie Spannung entsprechend einem Signal von der Spannungsversorgung-Controllerplatte 56 an jedes Festplattenlaufwerk 51 liefern kann.
-
Übrigens ist diese Ausführungsform so konzipiert, dass zwei Spannungsversorgung-Controllerplatten 56 und zwei AC/DC-Spannungsversorgungen 57 redundant sowohl im Mastergehäuse 20 als auch im Erweiterungsgehäuse 30 vorhanden sind, um für Sicherheit hinsichtlich der Spannungsversorgung an jedes Gehäuse 20, 30 zu sorgen. Jedoch können in jedem Gehäuse 20, 30 eine Spannungsversorgung-Controllerplatte 56 und eine AC/DC-Spannungsversorgung 57 montiert sein.
-
Jede AC/DC-Spannungsversorgung 57 ist mit einem Unterbrechungsschalter 64 zum Ein-/Ausschalten des Ausgangssignals der AC/DC-Spannungsversorgung 57 versehen.
-
Wie es in der 2B dargestellt ist, sind zwei Luftkühlungs-Lüftereinheiten 58 parallel unter den AC/DC-Spannungsversorgungen 57 angebracht. Jede Kühlungslüftereinheit 58 ist mit einem oder mehreren Kühllüftern 66 versehen. Die Kühllüfter 66 ermöglichen es, dass Luft in das Gehäuse einströmt/aus ihm ausströmt, um dadurch Wärme, wie sie von den Festplattenlaufwerken 51, den AC/DC-Spannungsversorgungen 57 usw. erzeugt wird, zur Außenseite des Gehäuses auszugeben. Übrigens sind im Gehäuse 20, 30 Belüftungspfade oder Belüftungslöcher zum Umwälzen der Luft durch jedes Mastergehäuse 20/Erweiterungsgehäuse 30 und daran montierte Leiterplatten oder Einheiten ausgebildet, um einen Mechanismus zum effizienten Ausgeben von Wärme im Gehäuse 20, 30 nach außen mittels der Kühllüfter 66 zu bilden. Obwohl Kühllüfter 66 für jedes Festplattenlaufwerk 51 vorhanden sein können, ist es bevorzugt, dass für jedes Gehäuse größere Kühllüfter 66 vorhanden sind, so dass die Anzahl der Chips oder Einheiten verringert werden kann.
-
Jede Kühllüftereinheit 58 ist mit einer Controllerplatte 59 oder der Spannungsversorgung-Controllerplatte 56 über eine Steuerleitung verbunden. Die Drehzahl jedes Kühllüfters 66 der Kühllüftereinheit 58 wird durch die Controllerplatte 59 oder die Spannungsversorgung-Controllerplatte 56 über die Steuerleitung gesteuert.
-
Wie es in der 2B dargestellt ist, ist eine Controllerplatte 59 in die hintere, untere Etage des Mastergehäuses 20 eingesetzt. Die Controllerplatte 59 ist mit einer Kommunikationsschnittstelle zu den im Mastergehäuse 20 und den Erweiterungsgehäusen 30 angebrachten Festplattenlaufwerken 51, Schaltkreisen zum Steuern der Betriebsabläufe der Festplattenlaufwerke 51 (z. B. zum Steuern derselben in einem RAID-System) oder zum Überwachen der Zustände der Festplattenlaufwerke 51, usw., versehen.
-
Übrigens steuern zwar bei dieser Ausführungsform die Spannungsversorgung-Controllerplatten 56 die Spannungsversorgung für die Festplattenlaufwerke 51 oder die Kühlkapazität der Kühleinheiten, jedoch kann die Controllerplatte 59 eine derartige Steuerung ausführen.
-
Diese Ausführungsform verwendet einen Modus, bei dem die Controllerplatte 59 mit einer Kommunikations-Schnittstellenkarte 61, zum Bereitstellen einer Funktion einer Kommunikationsschnittstelle zu einer Informationsverarbeitungsvorrichtung 300, z. B. einer Kommunikationsfunktion entsprechend einem SCSI Standard oder einem Faserkanalstandard, einem Cachespeicher 62 zum Speichern von in die Festplattenlaufwerke 51 zu speichernden Daten oder von aus ihnen auszulesenden Daten, usw., versehen ist. Jedoch können diese Funktionen auf einer anderen Leiterplatte untergebracht sein.
-
Die an der Controllerplatte 59 angebrachte Kommunikations-Schnittstellenplatte 61 ist mit einem externen Verbinder 63 zum Herstellen einer Verbindung zur Informationsverarbeitungsvorrichtung 300 versehen. Der externe Verbinder 63 genügt einem vorbestimmten Schnittstellenstandard wie SAN (Storage Area Network), LAN (Local Area Network) oder SCSI, der durch ein Protokoll wie Faserkanal, Ethernet (registrierte Handelsbezeichnung) oder dergleichen gebildet ist. Das Plattenarraysystem 10 ist über ein mit dem Verbinder 63 verbundenes Kommunikationskabel 92 mit der Informationsverarbeitungsvorrichtung 300 verbunden.
-
Übrigens können zwei Controllerplatten 59 redundant im Mastergehäuse 20 angebracht sein, um für Sicherheit hinsichtlich der Steuerung der Festplattenlaufwerke 51 zu sorgen.
-
Wie es in der 3A dargestellt ist, sind mehrere Plattenlaufwerkseinheiten 52, die Festplattenlaufwerke 51 aufnehmen, parallel an der Vorderseite jedes Erweiterungsgehäuses 30 angebracht. Wie es in der 3B dargestellt ist, sind Spannungsversorgung-Controllerplatten 56 einzeln an den hinteren, entgegengesetzten Seitenflächen des Erweiterungsgehäuses 30 eingesetzt. Außerdem sind zwei AC/DC-Spannungsversorgungen 57 parallel in einem Raum zwischen den zwei Spannungsversorgung-Controllerplatten 56 angebracht. Zusätzlich sind zwei Kühllüftereinheiten 58 parallel unter den AC/DC-Spannungsversorgungen 57 angebracht. Jede AC/DC-Spannungsversorgung 57 ist mit einem Unterbrechungsschalter 64 zum Ein-/Ausschalten der Spannung der AC/DC-Spannungsversorgung 57 versehen.
-
Diese Ausführungsform ist so konzipiert, dass zwei Spannungsversorgung-Controllerplatten 56 und zwei AC/DC-Spannungsversorgungen 57 redundant in jedem Erweiterungsgehäuse 30 vorhanden sind, um, wie oben beschrieben, für Sicherheit hinsichtlich der Spannungsversorgung zum Erweiterungsgehäuse 30 zu sorgen. Jedoch können eine Spannungsversorgung-Controllerplatte 56 und eine AC/DC-Spannungsversorgung 57 im Erweiterungsgehäuse 30 angebracht sein. Übrigens können die Funktionen der Spannungsversorgung-Controllerplatten 56 zum Steuern der Spannungsversorgung für die Festplattenlaufwerke 51, zum Steuern der Kühlkapazität der Kühleinheiten usw. auf der Controllerplatte 59 vorhanden sein.
-
Die 4 zeigt ein Beispiel für die Konfiguration jedes Festplattenlaufwerks 51, wie es in jeder Plattenlaufwerkeinheit 52 aufgenommen ist. Das Festplattenlaufwerk 51 verfügt über ein Gehäuse sowie Magnetplatten 73, Stellglieder 71, einen Spindelmotor 72, Köpfe 74 zum Lesen/Schreiben von Daten, eine Mechanismussteuerschaltung 75 zum Steuern von Mechanismusteilen wie den Köpfen 74 und dergleichen, eine Signalverarbeitungsschaltung 76 zum Steuern eines Lese/Schreib-Signals für Daten von/in jede Magnetplatte 73, eine Kommunikations-Schnittstellenschaltung 77, einen Schnittstellenverbinder 79 zum Eingeben/Ausgeben verschiedener Befehle oder Daten über ihn sowie einen Spannungsversorgungsverbinder 80, die alle im Gehäuse 70 angeordnet sind. Übrigens ist in der Kommunikations-Schnittstellenschaltung 77 ein Cachespeicher zum Zwischenspeichern von Daten enthalten. Übrigens wird der zum Festplattenlaufwerk 51 gehörende Cachespeicher als Plattencache bezeichnet, um ihn von einem Cachespeicher 62 in einem Controller 500, der später beschrieben wird, zu unterscheiden.
-
Jedes Festplattenlaufwerk 51 ist z. B. eine Speichereinheit, die mit 3,5-Zoll-Magnetplatten vom Contact-Start-Stop(CSS)-Typ, 2,5-Zoll-Magnetplatten vom Lade/Entlade-Typ oder dergleichen versehen ist. So verfügt jede 3,5-Zoll-Magnetplatte über eine Kommunikationsschnittstelle gemäß FC-AL. Andererseits verfügt jede 2,5-Zoll-Magnetplatte über eine Kommunikationsschnittstelle gemäß seriell-ATA.
-
Wenn jede 2,5-Zoll-Magnetplatte im Gehäuse 20, 30 des Plattenarraysystems 10 aufgenommen wird, kann sie in einem Behälter mit 3,5-Zoll-Form aufgenommen werden. So kann die Stoßfestigkeitsfunktion der Magnetplatten verbessert werden. Übrigens unterscheiden sich eine 2,5-Zoll-Magnetplatte und eine 3,5-Zoll-Magnetplatte nicht nur hinsichtlich der Kommunikationsschnittstelle voneinander, sondern auch hinsichtlich der I/O-Funktion, des Energieverbrauchs, der Lebensdauer usw. Eine 2,5-Zoll-Magnetplatte ist hinsichtlich der I/O-Funktion einer 3,5-Zoll-Magnetplatte unterlegen, und die Lebensdauer der ersteren ist kürzer als die der letzteren. Jedoch ist eine 2,5-Zoll-Magnetplatte einer 3,5-Zoll-Magnetplatte dahingehend überlegen, dass der Energieverbrauch der ersteren kleiner als der der letzteren ist.
-
== Hardwarekonfiguration des Plattenarraysystems ==
-
Die 5 ist ein Blockdiagramm, das die Hardwarekonfiguration des Plattenarraysystems 10 zeigt.
-
Wie es in der 5 dargestellt ist, sind Informationsverarbeitungsvorrichtungen 300 über ein SAN mit dem Plattenarraysystem 10 verbunden. Die Informationsverarbeitungsvorrichtungen 300 sind z. B. PCs, Workstations, Großrechner oder dergleichen.
-
Das Plattenarraysystem 10 verfügt über ein Mastergehäuse 20 und eines oder mehrere Erweiterungsgehäuse 30, wie bereits beschrieben. Bei dieser Ausführungsform verfügt das Mastergehäuse 20 über Controller 500, Festplattenlaufwerke 51 usw. Jeder Controller 500 verfügt über Kanal-Steuerabschnitte 501, Platten-Steuerabschnitte 502, eine CPU 503, einen Speicher 504, einen Cachespeicher 62, einen Datencontroller 505 usw. Der Controller 500 ist an der oben genannten Steuerplatte 59 angebracht. Andererseits verfügt jedes Erweiterungsgehäuse 30 über Festplattenlaufwerke 51 usw. Die Festplattenlaufwerke 51 im Mastergehäuse und in den Erweiterungsgehäusen sind über eine FC-AL 506 mit den Platten-Steuerabschnitte 502 verbunden, um für Kommunikation mit diesen sorgen zu können. Übrigens wird der Verbindungsmodus zwischen jedem Platten-Steuerabschnitt 502 und jedem Festplattenlaufwerk 51 später detailliert beschrieben.
-
Jeder Kanal-Steuerabschnitt 501 ist eine Schnittstelle zum Errichten von Kommunikation mit den Informationsverarbeitungsvorrichtungen 300. Der Kanal-Steuerabschnitt 501 verfügt über eine Funktion zum Aufnehmen einer Blockzugriffsanforderung entsprechend einem Faserkanalprotokoll.
-
Jeder Platten-Steuerabschnitt 502 ist eine Schnittstelle zum Austauschen von Daten mit den Festplattenlaufwerken 51 entsprechend einer Anweisung von der CPU 503. Der Platten-Steuerabschnitt 502 verfügt über eine Funktion zum Senden einer Daten-Eingabe/Ausgabe-Anforderung an die Festplattenlaufwerke 51 entsprechend einem Protokoll, in dem Befehle usw. zum Steuern der Festplattenlaufwerke 51 festgelegt sind.
-
Die CPU 503 verwaltet die Steuerung des Plattenarraysystems 10 insgesamt. Die CPU 503 führt im Speicher 504 abgespeicherte Mikroprogramme aus, um die Kanal-Steuerabschnitte 501, die Platten-Steuerabschnitte 502, den Datencontroller 505 usw. zu steuern. Zu den Mikroprogrammen gehören ein Datenleseprozess 601, ein Datenschreibprozess 602 und dergleichen, wie es in der 6 dargestellt ist.
-
Der Cachespeicher 62 dient zum zeitweiligen Abspeichern von Daten, wie sie zwischen jedem Kanal-Steuerabschnitt 501 und jedem Platten-Steuerabschnitt 502 auszutauschen sind.
-
Der Datencontroller 505 führt eine Datenübertragung zwischen jedem Kanal-Steuerabschnitt 501 und dem Cachespeicher 62 oder zwischen diesem und jedem Platten-Steuerabschnitt 502 unter Steuerung durch die CPU 503 aus.
-
Jeder Controller 500 verfügt aber eine Funktion des Steuerns der Festplattenlaufwerke 51 auf RAID-Ebene (z. B. 0, 1 oder 5), entsprechend eine sogenannten RAID(Redundant Array of Inexpensive Disks)-System. Beim RAID-System werden mehrere Festplattenlaufwerke 51 als eine Gruppe verwaltet (nachfolgend als RAID-Gruppe bezeichnet). Logische Datenbereiche, die als Zugriffseinheiten von den Informationsverarbeitungsvorrichtungen 300 dienen, sind in jeder RAID-Gruppe ausgebildet. Eine als LUN (Logical Unit Number) bezeichnete Kennung ist jedem logischen Datenbereich zugewiesen. Im Speicher 504 ist Information zur RAID-Konfiguration in Form einer RAID-Konfigurationstabelle 603 abgespeichert, wie es in der 6 dargestellt ist. Die CPU 503 nimmt auf die RAID-Konfigurationstabelle 603 Bezug, wennsie den Datenleseprozess 601 oder den Datenschreibprozess 602 ausführt.
-
Übrigens muss das Plattenarraysystem z. B. nicht ein System sein, das auf die oben beschriebene Weise konzipiert ist, sondern es kann ein als NAS (Network Attached Storage) dienendes System sein, das so konzipiert ist, dass es eine Daten-Eingabe/Ausgabe-Anforderung auf Grundlage einer Datennamensspezifizierung von irgendeiner der Informationsverarbeitungsvorrichtungen 300 entsprechend einem Protokoll wie NFS (Network File System) akzeptiert.
-
== Verbindungsmodus von Festplattenlaufwerken ==
-
Als Nächstes erfolgt eine Beschreibung zum Verbindungsmodus zwischen jedem Controller 500 und jedem Festplattenlaufwerk 51.
-
Die 7 zeigt einen Verbindungsmodus zwischen jedem Platten-Steuerabschnitt 502 und jedem Faserkanal-Festplattenlaufwerk 51, wie es im Mastergehäuse 20 untergebracht ist.
-
Jeder Platten-Steuerabschnitt 502 ist über eine FC-AL mit mehreren Festplattenlaufwerken 51 verbunden. Die FC-AL 506 verfügt über mehrere PBCs (Port Bypass Circuits) 701. Die FaserkanalFestplattenlaufwerke 51 sind jeweils über die PBCs 701 mit der FC-AL 506 verbunden. Jede PBC 701 ist ein als Chip ausgebildeter elektronischer Schalter. Die PBCs 701 verfügen auch über eine Funktion des Umgehens der Platten-Steuerabschnitte 502 oder der Festplattenlaufwerke 51, um sie dadurch elektrisch von der FC-AL 506 auszuschließen. Genauer gesagt, trennen die PBCs 701, wenn in irgendwelchen Festplattenlaufwerke 51 Fehler auftreten, die Festplattenlaufwerke 51 von der FC-AL 506, so dass für Kommunikationsvorgänge zwischen einem beliebigen anderen Festplattenlaufwerk 51 und jedem Platten-Steuerabschnitt 502 gesorgt werden kann.
-
Außerdem ermöglichen es die PBCs 701, die Festplattenlaufwerke 51 zu entnehmen und einzusetzen, während der Betrieb der FC-AL 506 erhalten bleibt. Wenn z. B. ein neues Festplattenlaufwerk 51 eingesetzt wird, wird es in die FC-AL 506 eingebaut, damit zwischen dem Festplattenlaufwerk 51 und dem Platten-Steuerabschnitt 502 für Kommunikation gesorgt werden kann. Übrigens kann eine Leiterplatte der PBCs 701 am Rackrahmen 11 des Plattenarraysystems 10 vorhanden sein, oder sie kann teilweise oder ganz an der Controllerplatte 59 oder der Spannungsversorgung-Controllerplatte 56 angebracht sein.
-
Die 8 zeigt einen Verbindungsmodus zwischen jedem Platten-Steuerabschnitt 502 und jedem im Mastergehäuse 20 untergebrachten Seriell-ATA-Festplattenlaufwerk 51.
-
Jedes Festplattenlaufwerk 51 ist über einen Wandler 801 mit PBCs 602 der FC-AL 506 verbunden. Der Wandler 801 ist eine Schaltung zum Wandeln eines Faserkanalprotokolls und eines Seriell-ATA-Protokolls ineinander. Der Wandler 801 besteht aus einem Chip, in den eine Protokollwandelfunktion eingebaut ist. Der Wandler 801 ist in jeder Plattenlaufwerkeinheit 52 enthalten.
-
Die 9 zeigt ein Vergleichsbeispiel mit einem anderen Verbindungsmodus, bei dem Seriell-ATA-Festplattenlaufwerke 51 im Mastergehäuse 20 untergebracht sind.
-
Jeder Wandler 901 ist eine Schaltung zum Wandeln eines Faserkanalprotokolls und eines Seriell-ATA-Protokolls ineinander, auf dieselbe Weise wie beim Wandler 801 in der 8. Der Wandler 901 ist mit einer PBC 602 einer FC-AL 506 verbunden. Mehrere Festplattenlaufwerke 51 sind über jeweilige Schalter 902 mit jedem Wandler 901 verbunden. Die Schalter 902 sind Schaltungen zum Auswählen eines Festplattenlaufwerks 51, mit dem für Kommunikation gesorgt werden soll, wenn die Festplattenlaufwerke 51 mit mehreren Wandlern 901 verbunden sind. Jeder Schalter 902 ist jeder Plattenlaufwerkseinheit 52 vorhanden. Jeder Wandler 901 besteht aus einem Chip oder mehreren Schaltkreisen, in die eine Protokollwandelfunktion eingebaut ist. Z. B. kann der Wandler 901 durch die Konfiguration einer SATA-Mastervorrichtung implementiert sein, wie sie in der ”US-Patentanmeldung mit der Veröffentlichungs-Nr. 2003/0135577” offenbart ist. Der Wandler 901 ist auf der Controllerplatte 59, der Spannungsversorgung-Controllerplatte 56 oder dergleichen angebracht.
-
== Steuerung zum Verbessern der Zuverlässigkeit ==
-
Nun erfolgt eine Beschreibung zu einem Verfahren zum Verbessern der Zuverlässigkeit beim Lesen von den Festplattenlaufwerken oder beim Schreiben auf diese im oben beschriebenen Plattenarraysystem 10.
-
== Paritätsprüfung bei RAID-Konfiguration ==
-
Als Erstes erfolgt eine Beschreibung zu einem Verfahren zum Untersuchen, ob in einem Festplattenlaufwerk 51 von RAID-Konfiguration abgespeicherte Daten in einem falschen Zustand vorliegen oder nicht. Hierbei bedeutet der falsche Zustand einen solchen, bei dem Daten nicht an einen Ort geschrieben sind, wie er durch den Platten-Steuerabschnitt 502 spezifiziert wurde, und nicht mit entsprechend spezifiziertem Inhalt.
-
Die 10 zeigt einen Zustand, bei dem Daten in Festplattenlaufwerke 51 gemäß RAID-5 gespeichert sind. Bei RAID-5 besteht eine RAID-Gruppe 1001 aus mehreren Festplattenlaufwerken 51. Beim Beispiel der 10 sind Daten A–D und Paritätsdaten P(A–D) zum Erkennen von Fehlern in den Daten A–D in den Festplattenlaufwerken 51 gespeichert. Auf dieselbe Weise sind Daten E–H und Paritätsdaten P(E–H) für die Daten E–H abgespeichert. Eine derartige Kombination von Daten und Paritätsdaten wird als Streifengruppe 1002 bezeichnet. Bei einer RAID-Konfiguration mit derartigen darin ausgebildeten Streifengruppen 1002 kann der alle Daten und Paritätsdaten der Streifengruppe 1002 lesende Controller 500 untersuchen, ob sich die Daten in einem falschen Zustand befinden oder nicht. Als Erstes liest der Platten-Steuerabschnitt 502, entsprechend einer Anweisung von der CPU 503, die Daten A–D und die Paritätsdaten P(A–D). Als Nächstes führt die CPU 503 eine Paritätsprüfung unter Verwendung der Daten A–D und der Parität P(A–D) aus. So kann untersucht werden. ob irgendein Stück der Daten A–D in einem falschen Zustand vorliegt oder nicht.
-
Wenn eine Datenleseanforderung von irgendeiner der Informationsverarbeitungsvorrichtungen 300 empfangen wird, kann der Controller 500 alle Daten und Paritätsdaten in einer Streifengruppe einschließlich der zu lesenden Daten lesen. So kann verhindert werden, dass der Controller 500 falsche Daten von den Festplattenlaufwerken 51 liest und solche falsche Daten an die Informationsverarbeitungsvorrichtung 300 sendet. Übrigens kann die Prüfung auf falsche Daten nicht nur beim Empfangen einer Datenleseanforderung sondern zu jedem beliebigen gewünschten Zeitpunkt erfolgen. Auf solche Weise kann die Erkennung falscher Daten ausgeführt werden, ohne dass sich irgendein Einfluss auf die Datenlesefunktion ergäbe.
-
Außerdem ist es unter Verwendung einer Aktualisierungskontrolltabelle 1101, wie sie in der 11 dargestellt ist, möglich, zu untersuchen, ob sich die in die Festplattenlaufwerke 51 eingeschriebenen Daten in einem falschen Zustand befinden oder nicht. Die Aktualisierungskontrolltabelle 1101 besteht aus Laufwerksnummern und Sektornummern, und sie ist im Speicher 504 abgespeichert. Bei dieser Ausführungsform sind die Sektornummern durch die LBA (Logical Block Address) definiert, und sie werden mit Einheiten von 128 LBA verwaltet, wie es durch LBA #1–128 veranschaulicht ist. Übrigens besteht für die Packungseinheit der Sektornummern keine Beschränkung auf 128, sondern es kann sich um jede beliebige gewünschte Einheit handeln. Wenn Daten über den Platten-Steuerabschnitt 502 in ein Festplattenlaufwerk 51 eingeschrieben werden, ändert die CPU 503 den Sektorwert des dem Schreibvorgang unterliegenden Festplattenlaufwerks 51 in der Aktualisierungskontrolltabelle 1101 auf ”1”. Die CPU 503 liest, über den Platten-Steuerabschnitt 502, alle Daten und Paritätsdaten einer Streifengruppe einschließlich des Zielsektors des Festplattenlaufwerks 51, wie als ”1” in der Aktualisierungskontrolltabelle 1101 abgespeichert, und sie führt eine Paritätsprüfung aus. Wenn die gelesenen Daten nicht falsch sind, ändert die CPU 503 den Wert des Sektors in der Aktualisierungskontrolltabelle 1101 auf ”0”. Wenn die CPU 503 eine Datenleseanforderung von irgendeiner der Informationsverarbeitungsvorrichtungen 300 über den Kanal-Steuerabschnitt 501 empfängt, nimmt sie auf die Aktualisierungskontrolltabelle 1101 Bezug, und sie klärt, ob ein die zu lesenden Daten speichernder Sektor untersucht wurde oder nicht. Wenn der die Daten speichernde Sektor nicht untersucht wurde, untersucht die CPU 503 Daten einer die zu lesenden Daten enthaltenden Streifengruppe entsprechend der oben genannten Prozedur. Auf solche Weise wird eine Untersuchung an den in jedes Festplattenlaufwerk 51 eingeschriebenen Daten vor dem Empfang einer Leseanforderung zum Lesen der Daten ausgeführt. So kann verhindert werden, dass sich die Datenlesefunktion verschlechtert. Außerdem wird der noch fehlende Abschluss der Prüfung in der Aktualisierungskontrolltabelle 1101 abgespeichert, und es wird eine Paritätsprüfung ausgeführt, wenn nicht untersuchte Daten gelesen werden. So kann verhindert werden, dass falsche Daten gelesen werden.
-
== Untersuchung von Schreibdaten ==
-
Als Nächstes erfolgt eine Beschreibung zu einem Verfahren zum Untersuchen, ob Daten korrekt geschrieben werden oder nicht, wenn sie in ein Festplattenlaufwerk 51 geschrieben werden.
-
Die 12 ist ein Flussdiagramm, das die Kontrolle durch die CPU 503 zeigt, wenn der Controller 500 Daten in ein Festplattenlaufwerk 51 schreibt. Wenn die CPU 503 eine Datenschreibanforderung von irgendeiner der Informationsverarbeitungsvorrichtungen 300 über den Kanal-Steuerabschnitt 501 empfängt, sendet sie eine Anweisung zum Schreiben der Daten in ein Festplattenlaufwerk 51 an den Platten-Steuerabschnitt 502 (S1201). Dann sendet die CPU 503 eine Anweisung zum Ausführen eines Suchprozesses zum Verstellen der Position eines Kopfs einer Magnetplatte, wenn die Daten geschrieben wurden, an den Platten-Steuerabschnitt (S1202). Als Nächstes liest die CPU 503 die Daten aus dem Cachespeicher 62 (S1203), und sie liest die Daten von der Magnetplatte (S1204). Die CPU 503 vergleicht die Daten vom Cachespeicher 62 und diejenigen von der Magnetplatte, um zu untersuchen, ob sie miteinander übereinstimmen (S1205). Wenn die zwei Datenstücke nicht miteinander übereinstimmen, informiert die CPU 503 die Informationsverarbeitungsvorrichtung 300 über die Tatsache, dass der Schreibvorgang nicht normal ausgeführt wurde (S1206).
-
Wenn die in der Magnetplatte abgespeicherten Daten auf diese Weise mit den im Cachespeicher 62 abgespeicherten Daten verglichen werden, ist es möglich, zu klären, ob die Daten korrekt in die Magnetplatte geschrieben wurden oder nicht. Außerdem überleben die Daten selbst dann, wenn sich die geschriebenen Daten in einem falschen Zustand befinden, im Cachespeicher 62. So besteht keine Gefahr, dass die Daten verloren gehen. Übrigens ist es dann, wenn ein zu einem Festplattenlaufwerk mit einer Magnetplatte gehörender Kopf durch einen Suchprozess oder dergleichen verstellt wird, bevor zu vergleichende Daten von der Magnetplatte und aus dem Cachespeicher 62 gelesen wurden, möglich, zu verhindern, dass der Kopf zweimal an ein und derselben Position liest, wenn die Position beim Schreiben falsch ist.
-
Bei der Verarbeitung gemäß der 12 werden alle geschriebenen Daten aus dem Cachespeicher 62 und von der Magnetplatte gelesen, und die zwei Datenstücke werden zum Untersuchen der Daten verglichen. Jedoch müssen nicht alle Daten gelesen und verglichen werden, sondern es reicht, einen Teil der Daten, z. B. ein Segment am Kopf der Daten und ein Segment am Ende derselben zu lesen und zu vergleichen. Z. B. werden umfangreiche Daten (sequenzielle Daten) häufig in Seriell-ATA-Festplattenlaufwerke eingeschrieben, da sie für Anwendungen wie Datenbackup verwendet werden. In einem derartigen Fall wird das Funktionsvermögen bei der Schreibverarbeitung auffällig beeinträchtigt, wenn in einer Magnetplatte gespeicherte Daten für alle geschriebenen Daten mit im Cachespeicher 62 gespeicherten Daten verglichen werden. Außerdem ist es dann, wenn hinsichtlich der Schreibposition oder dergleichen ein Fehler auftritt, wenn sequenzielle Daten geschrieben werden, hoch wahrscheinlich, dass alle Daten falsch sind. Daher kann in den meisten Fällen die Beurteilung dahingehend, ob die Daten falsch sind oder nicht, dadurch erfolgen, dass ein Teil der Daten untersucht wird. D. h., dass dann, wenn für einen Teil geschriebener Daten, z. B. ein Segment am Kopf der Daten und ein Segment am Ende der Daten, ein Vergleich ausgeführt wird, die Möglichkeit besteht, falsche Daten zu prüfen, während verhindert wird, dass das Funktionsvermögen bei der Schreibverarbeitung beeinträchtigt wird.
-
Alternativ kann das Verfahren Zum Untersuchen von in das Festplattenlaufwerk 51 geschriebenen Daten entsprechend der Größe der Daten geändert werden. Die 13 ist ein Flussdiagramm, das die Verarbeitung zum Ändern des Untersuchungsverfahrens abhängig davon, ob geschriebene Daten sequenzielle Daten sind oder nicht, zeigt. Die CPU 503 sendet eine Anweisung zum Schreiben von Daten in ein Festplattenlaufwerk 51 an den Platten-Steuerabschnitt 502 (S1301). Dann sendet die CPU 503 eine Anweisung zum Ausführen eines Suchprozesses zum Verstellen der Position des Kopfs der Magnetplatte, wo die Daten geschrieben wurden, an den Platten-Steuerabschnitt (S1302). Die CPU 503 beurteilt, ob die Daten sequenzielle Daten sind oder nicht (S1303). Übrigens wird die Beurteilung dahingehend, ob die Daten sequenzielle Daten sind oder nicht, auf Grundlage davon ausgeführt, ob die Größe der ge schriebenen Daten eine vorbestimmte Größe erreicht oder nicht.
-
Wenn die Daten sequenzielle Daten sind, liest die CPU 503 ein Segment am Kopf derselben sowie ein Segment am Ende derselben vom Cachespeicher 62 und der Magnetplatte. Wenn die Daten dagegen keine sequenziellen Daten sind, liest die CPU 503 alle Daten vom Cachespeicher 62 und der Magnetplatte (S1306 und S1307). Danach vergleicht die CPU 503 die zwei Stücke gelesener Daten miteinander, und sie untersucht, ob sie miteinander übereinstimmen (S1308). Wenn sie nicht übereinstimmen, informiert die CPU 503 die Informationsverarbeitungsvorrichtung 300 über die Tatsache, dass der Schreibvorgang nicht normal ausgeführt wurde (S1309).
-
Wenn die geschriebene Daten sequenzielle Daten sind, erfolgt zwischen in der Magnetplatte gespeicherten Daten und im Cachespeicher 62 gespeicherten Daten auf solche Weise ein Vergleich hinsichtlich eines Teils der Daten. So ist es möglich, die Inkorrektheit von Daten zu erkennen, während ein Absinken des Funktionsvermögens bei der Schreibverarbeitung unterdrückt ist. Wenn dagegen die geschriebenen Daten keine sequenziellen Daten sind, erfolgt zwischen in der Magnetplatte gespeicherten Daten und im Cachespeicher 62 gespeicherten Daten ein Vergleich hinsichtlich aller geschriebenen Daten. So ist es möglich, eine Inkorrektheit von Daten perfekt zu erkennen, ohne dass das Funktionsvermögen bei der Schreibverarbeitung so auffällig abnimmt, wie im Fall sequenzieller Daten.
-
Um das Funktionsvermögen beim Schreiben von Daten zu verbessern, kann jedes Festplattenlaufwerk 51 über eine Funktion wie folgt verfügen. Wenn nämlich das Festplattenlaufwerk 51 eine Datenschreibanforderung vom Controller 500 empfängt, schreibt es die Daten nur in den Plattencache, und es informiert den Controller 500 über den Abschluss des Schreibvorgangs. In diesem Fall können beim mittels der 12 und 13 beschriebenen Verfahren die geschriebenen Daten nicht untersucht werden. Die 14 ist ein Flussdiagramm zur Verarbeitung zur Untersuchung geschriebener Daten, wenn das Festplattenlaufwerk 51 über eine derartige Funktion verfügt. Die CPU 503 überwacht das Festplattenlaufwerk 51 dahingehend, ob die Anzahl der Schreibvorgänge in das Festplattenlaufwerk 51 eine vorbestimmte Anzahl überschritten hat oder nicht (S1401). Wenn die vorbestimmte Anzahl überschritten ist, gibt die CPU 503 über den Platten-Steuerabschnitt 502 eine Anweisung zum Schreiben der im Plattencache abgespeicherten Daten in eine Magnetplatte an das Festplattenlaufwerk (S1402). Dann liest die CPU 503 die Daten vom Cachespeicher 62 und von der Magnetplatte (S1403 und S1404). Die CPU 503 klärt, ob die Daten vom Cachespeicher 62 und diejenigen von der Magnetplatte übereinstimmen oder nicht (S1405). Wenn sie nicht übereinstimmen, informiert die CPU 503 die Informationsverarbeitungsvorrichtung 300 über die Tatsache, dass der Schreibvorgang nicht normal ausgeführt wurde (S1406). So kann Inkorrektheit von Daten trotz der Verwendung der oben genannten Funktion des Verbesserns des Funktionsvermögens bei der Schreibverarbeitung erkannt werden. Übrigens werden bei der Verarbeitung gemäß der 14 in die Magnetplatte geschriebene Daten und in den Cachespeicher geschriebene Daten verglichen, wenn die Anzahl der Schreibvorgänge eine vorbestimmte Anzahl überschreitet. Jedoch kann die Untersuchung immer dann vorgenommen werden, wenn eine vorbestimmte Zeit verstrichen ist, oder immer dann, wenn der Plattencache über keinen freien Raum verfügt.
-
Im Fall eines Seriell-ATA-Festplattenlaufwerks 51 werden Daten häufig aufgrund eines Ausfalls seines Kopfs inkorrekt geschrieben. Daher erfolgt eine Beschreibung zu einem Verfahren zum Erkennen des Ausfalls eines Kopfs oder eines Festplattenlaufwerks 51, wenn Daten aus diesem gelesen werden.
-
Die 15 ist ein Diagramm, das eine Kopfprüf-Kontrolltabelle 1501 zeigt. Die Kopfprüf-Kontrolltabelle 1501 besteht aus Laufwerksnummern, Kopfnummern und Sektornummern, und sie ist im Speicher 504 abgespeichert. Jede Sektornummer ist auf dieselbe Weise wie in der Aktualisierungskontrolltabelle 1101 durch eine LBA definiert. Wenn Daten über den Platten-Steuerabschnitt 502 in das Festplattenlaufwerk 51 eingeschrieben werden, ändert die CPU 503 den Wert ”Vorliegen von Aktualisierung” des Sektors des Kopfs, mit dem die Daten geschrieben wurden, in der Kopfprüf-Kontrolltabelle 1501 auf ”1”.
-
Die 16 ist ein Flussdiagramm der durch die CPU 503 auszuführenden Kopfprüfverarbeitung. Die CPU 503 stellt 1 als Anfangswert einer Untersuchungskopfnummer ein (S1601). Die CPU 503 wartet eine vorbestimmte Zeit (S1602), und sie schreibt unter Verwendung eines durch die Untersuchungskopfnummer spezifizierten Kopfs Untersuchungsdaten in einen Steuerblock einer Magnetplatte (1603). Übrigens ist der Steuerblock ein vorbestimmter Speicherbereich auf der Magnetplatte. Als Nächstes liest die CPU 503 die in den Steuerblock geschriebenen Daten (S1604), und sie klärt, ob die gelesenen Daten und die Untersuchungsdaten miteinander übereinstimmen oder nicht (S1605).
-
Wenn die zwei Datenstücke miteinander übereinstimmen, schließt die CPU 503, dass keine Anormalität im Kopf besteht, und sie ändert den Wert von ”Vorliegen einer Aktualisierung” für den Kopf in der Kopfprüf-Kontrolltabelle 1501 auf ”0” (S1606). Die CPU 503 addiert 1 zur Untersuchungskopfnummer (S1607). Die CPU 503 klärt, ob die Untersuchungskopfnummmer größer als ein Maximalwert für die Kopfnummer ist oder nicht (S1608). Wenn die Untersuchungskopfnummer größer ist, stellt die CPU 503 1 als Untersuchungskopfnummer ein. Die CPU 503 führt die Kopfprüfverarbeitung wiederholt auf die eingestellte Kopfnummer hin aus.
-
Wenn die aus dem Steuerblock gelesenen Daten nicht mit den Untersuchungsdaten übereinstimmen, informiert die CPU 503 die Informationsverarbeitungsvorrichtung 300 über die Tatsache, dass im fraglichen Festplattenlaufwerk 51 eine Anormalität auftritt, und dann beendet sie die Verarbeitung.
-
Die 17 ist ein Flussdiagramm einer Verarbeitung, wenn die CPU 503 eine Datenleseanforderung von irgendeiner der Informationsverarbeitungsvorrichtungen 300 empfängt. Die CPU 503 empfängt die Datenleseanforderung von der Informationsverarbeitungsvorrichtung 300 über den Kanal-Steuerabschnitt 501 (S1701). Die CPU 503 klärt den Wert von ”Vorliegen einer Aktualisierung” eines Zielsektors eines Festplattenlaufwerks 51, wo die Daten in der Kopfprüf-Kontrolltabelle 1501 gespeichert sind (S1702 und S1703). Ein ”Vorliegen einer Aktualisierung” vom Wert ”1” zeigt den Zustand an, bei dem die oben genannte Kopfprüfverarbeitung nicht ausgeführt wurde, obwohl ein Datenschreibvorgang an der LBA des fraglichen Festplattenlaufwerks 51 ausgeführt wurde. Wenn der Wert von ”Vorliegen einer Aktualisierung” ”0” ist, liest die CPU 503 die Daten vom Festplattenlaufwerk 51 (S1708).
-
Wenn der Wert von ”Vorliegen einer Aktualisierung” ”1” ist, schreibt die CPU 503 Untersuchungsdaten unter Verwendung des fraglichen Kopfs auf dieselbe Weise wie bei der oben genannten Kopfprüfverarbeitung in einen Steuerblock einer Magnetplatte (S1704). Übrigens ist der Steuerblock ein vorbestimmter Speicherbereich auf der Magnetplatte. Als Nächstes liest die CPU 503 die in den Steuerblock geschriebenen Daten (S1705), und sie klärt, ob die gelesenen Daten mit den Untersuchungsdaten übereinstimmen oder nicht (S1706).
-
Wenn die zwei Datenstücke miteinander übereinstimmen, schließt die CPU 503, dass im Kopf keine Anormalität existiert, und sie ändert den Wert von ”Vorliegen einer Aktualisierung” für den Kopf in der Kopfprüf-Kontrolltabelle 1501 auf ”0” (S1707). Dann liest die CPU 503 die angeforderten Daten entsprechend der Leseanforderung vom Festplattenlaufwerk 51 (S1708).
-
Wenn die vom Steuerblock gelesenen Daten nicht mit den Untersuchungsdaten übereinstimmen, informiert die CPU 503 die Informationsverarbeitungsvorrichtung 300 über die Tatsache, dass im fraglichen Festplattenlaufwerk 51 eine Anormalität vorliegt (S1709), und dann beendet die CPU 503 die Verarbeitung ohne die Daten vom Festplattenlaufwerk 51 zu lesen.
-
Auf solche Weise ist es möglich, wenn in das Festplattenlaufwerk 51 geschriebene Daten gelesen werden, zu klären, ob der Kopf, mit dem die Daten geschrieben wurden, normal arbeitet oder nicht. Wenn der Kopf anormal ist, besteht die Möglichkeit, dass die Daten nicht korrekt geschrieben wurden, oder es besteht die Möglichkeit, dass die Daten nicht korrekt gelesen werden können. Durch Erkennen einer Anormalität im Kopf beim Lesen von Daten ist es möglich, zu verhindern, dass falsche Daten gelesen werden.
-
== Untersuchung auf Grundlage einer Paritätszuweisung ==
-
Gemäß dem oben genannten Verfahren, bei dem alle Daten einer Streifengruppe in der RAID-Konfiguration gelesen und einer Paritätsprüfung unterzogen werden, ist es nicht möglich, zu ermitteln, welche Daten der Streifengruppe in einem falschen Zustand vorliegen. Es ist tatsächlich möglich, zu verhindern, dass falsche Daten gelesen werden, jedoch ist es nicht möglich, falsche Daten wiederherzustellen. Demgemäß können Daten verloren gehen. Daher erfolgt eine Beschreibung zu einem Verfahren zum Zuweisen von Paritätsdaten zu jedem Datenstück gesondert von Paritätsdaten innerhalb der Streifengruppe.
-
Die CPU 503 erzeugt Paritätsdaten zum Erkennen von Fehlern für mehrere Sektoren, die als Minimaleinheit dienen, gemäß der Daten in jedes Festplattenlaufwerk 51 geschrieben werden. Bei dieser Ausführungsform wird eine Kombination von Daten und Paritätsdaten für derartige mehrere Sektoren als Dateneinheit bezeichnet. Wenn die CPU 503 eine Datenschreibanforderung von irgendeiner der Informationsverarbeitungsvorrichtungen 300 über den Kanal-Steuerabschnitt 501 empfängt, erzeugt sie aus den zu schreibenden Daten eine Dateneinheit. Die CPU 503 schreibt die Dateneinheit über die Platten-Steuereinheit 502 in das Festplattenlaufwerk 51.
-
Die 18 ist ein Diagramm, das den Zustand zeigt, wenn ein Datenstück 1801 in ein Festplattenlaufwerk geschrieben wird. Die Daten 1801 bestehen aus mehreren Sektoren S#1 bis S#4, und aus den Daten 1801 und Paritätsdaten 1802 für die Daten 1801 der mehreren Sektoren wird eine Dateneinheit 1803 gebildet. Wenn die CPU 503 eine Datenleseanforderung von irgendeiner der Informationsverarbeitungsvorrichtungen 300 über den Kanal-Steuerabschnitt 501 empfängt, liest sie die Dateneinheit 1803 der angeforderten Daten über den PlattenSteuerabschnitt 502, und sie führt an den Daten eine Paritätsprüfung aus, um zu untersuchen, ob sie sich in einem falschen Zustand befinden oder nicht. Auf diese Weise ist es nur durch Lesen der zu lesenden Daten auf die Leseanforderung hin möglich, zu beurteilen, ob sich die Daten in einem falschen Zustand befinden oder nicht. Außerdem können, wenn die Festplattenlaufwerke 51 über eine redundante RAID-Konfiguration, wie RAID 5, verfügen, die Daten unter Verwendung anderer Daten und Paritätsdaten in der Streifengruppe wiederhergestellt werden. So besteht keine Gefahr, dass die Daten verloren gehen.
-
Wenn ein Ausfall eines Kopfs oder dergleichen in einem Festplattenlaufwerk 51 auftritt, ist es hoch wahrscheinlich, dass mehrere falsche Sektoren auftreten. Es sei angenommen, dass mehrere Sektoren der Dateneinheit 1803 falsch werden, wenn die Dateneinheit 1803 in ein Festplattenlaufwerk 51 eingeschrieben wird. Bei einem derartigen Ereignis besteht der Fall, dass Inkorrektheit nicht durch eine Paritätsprüfung erkannt werden kann.
-
Daher kann, wie es in der 19 dargestellt ist, die CPU 503 die Dateneinheit 1803 zwischen mehreren Festplattenlaufwerken 51 innerhalb der RAID-Gruppe mittels des Platten-Steuerabschnitts 502 schreiben und verteilen. Die 20 ist ein Diagramm, das eine Dateneinheit-Kontrolltabelle 2001 zeigt. Die Dateneinheits-Kontrolltabelle 2001 zeigt die Entsprechung von Dateneinheiten 1803 aus jeweils mehreren Sektoren mit LBAs von Festplattenlaufwerken 51. Das Beispiel der 20 zeigt, dass eine aus 130 Sektoren 000–129 bestehende Dateneinheit 1803 durch LBAs 000–064 von Festplattenlaufwerken 51 gebildet wird, deren Laufwerksnummern #0 und #1 sind. Wenn die CPU 503 die Datenschreibanforderung von irgendeiner der Informationsverarbeitungsvorrichtungen 300 empfängt, nimmt sie auf die Dateneinheits-Kontrolltabelle 2001 Bezug, und sie schreibt und verteilt jede Dateneinheit 1803 der angeforderten Daten über mehrere Festplattenlaufwerke 51.
-
Demgemäß ist es selbst dann, wenn in einem Festplattenlaufwerk ein Fehler auftritt, möglich, die Wahrscheinlichkeit zu erhöhen, dass Inkorrektheit der Daten erkannt werden kann.
-
== Umgebung mit einer Mischung eines Faserkanals und seriell-ATA ==
-
Als Nächstes erfolgt eine Beschreibung zu einem Plattenarraysystem 10, bei dem Faserkanal-Festplattenlaufwerke 51 und Seriell-ATA-Festplattenlaufwerke 51 gemischt sind.
-
Die 21 ist ein Blockdiagramm, das ein Plattenarraysystem zeigt, bei dem Faserkanal-Festplattenlaufwerke 51 in einem ersten Gehäuse 2101 aufgenommen sind und Seriell-ATA-Festplattenlaufwerke 51 in einem zweiten Gehäuse 2102 aufgenommen sind. Übrigens entsprechen das erste und das zweite Gehäuse 2101 und 2102 dem Mastergehäuse 20 bzw. dem Erweiterungsgehäuse 30. Jedes Festplattenlaufwerk 51 ist im oben beschriebenen Modus mit dem Platten-Steuerabschnitt 502 verbunden. Außerdem zeigt die 21 einen Modus, bei dem mehrere Seriell-ATA-Festplattenlaufwerke mit einem Wandler 901 verbunden sind. Jedoch ist jedes Seriell-ATA-Festplattenlaufwerk beim Ausführungsbeispiel mit einem Wandler 801 verbunden der, wie bei 8 beschrieben, für jede Plattenlaufwerkseinheit vorhanden ist.
-
Beim auf diese Weise konfigurierten Plattenarraysystem 10 ist es erforderlich, die Zuverlässigkeit der Seriell-ATA-Festplattenlaufwerke 51 zu erhöhen, deren Zuverlässigkeit niedriger als die der Faserkanal-Festplattenlaufwerke 51 ist. Daher wendet der Controller 500 das oben genannte Verfahren zum Verbessern der Zuverlässigkeit nur der Seriell-ATA-Festplattenlaufwerke 51 an. Demgemäß kann die Zuverlässigkeit beim Lesen/Schreiben von Daten von den/in die Seriell-ATA-Festplattenlaufwerke 51 verbessert werden, ohne dass das Funktionsvermögen beim Lesen/Schreiben von Daten von den/in die Faserkanal-Festplattenlaufwerke 51, die zur Verarbeitung wie einer wesentlichen Arbeit, die über hohes Zugriffsfunktionsvermögen verfügen muss, gesenkt würde. Außerdem ist es nicht erforderlich, den körperlichen Aufbau zu ändern, z. B. zwei Köpfe für jede Magnetplatte jedes Seriell-ATA-Festplattenlaufwerks 51 anzubringen. Daher ist es möglich, die Herstellkosten der Seriell-ATA-Festplattenlaufwerke 51 niedrig zu halten.
-
Übrigens sind bei dieser Ausführungsform die Faserkanal-Festplattenlaufwerke 51 und die Seriell-ATA-Festplattenlaufwerke 51 gemischt vorhanden. Jedoch können andere Festplattenlaufwerke 51 verwendet werden, wenn sie zu Schnittstellenstandards mit verschiedenen Zuverlässigkeiten gehören. Z. B. können die Seriell-ATA-Festplattenlaufwerke 51 durch Parallel-ATA-Festplattenlaufwerke 51 ersetzt werden.
-
Die Ausführungsformen wurden oben beschrieben, um die Erfindung leicht verständlich zu machen. Die Erfindung soll nicht als auf die Ausführungsformen beschränkt interpretiert werden.