-
HINTERGRUND
DER ERFINDUNG
-
Die
Erfindung betrifft ein Plattenarraysystem, insbesondere ein Plattenarraysystem,
das für
eine einfache Schnittstelle wie eine ATA-Schnittstelle ausgebildet
ist.
-
In
jüngerer
Zeit werden an Stelle von FC(Fibre Channel)-Laufwerken und SCSI(Small Computer System
Interface)-Laufwerken,
wie sie herkömmlicherweise
verwendet wurden, billige ATA(AT Attachment)-Laufwerke, wie sie
für PCs
konzipiert sind, häufig
in Plattenarrays für
Backup/Archivier-Zwecke verwendet. Ein ATA-Laufwerk führt zum
automatischen Zuweisen von Daten eines schlechten Sektors zu einem
anderen Sektor eine automatische Neuzuweisung aus. Neuversuche werden
in großer
Vielzahl ausgeführt,
um Erfolge beim Zugriff auf Platten zu haben (siehe z. B. "Hard Disk Drive Specification Deskstar
7K250", Hitachi
Ltd., 13. August 2003, <URL:http://www.
hgst.com/tech/techlib.nsf/techdocs/E8C3F8F6F3819BDB86256CE90 05AB0B9/$file/d7k250P
sp.pdf>).
-
Andererseits
werden bei herkömmlichen Plattenarrays
unter Verwendung von FC- und SCSI-Laufwerken, um deren Zuverlässigkeit
zu erhöhen,
Ausfallssymptome für
die Laufwerke über wacht, und
wenn viele schlechte Sektoren auftreten, wird ein vorsorglicher
Kopiervorgang ausgeführt.
Der Plattencontroller überwacht
die Anzahl auftretender schlechter Sektoren, um einen Triggerzeitpunkt
für diesen
vorsorglichen Kopiervorgang zu erkennen.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Da
das oben beschriebene ATA-Laufwerk, wenn es in einem Plattenarraysystem
verwendet wird, eine automatische Neuzuweisung zum automatischen
Zuweisen von Daten eines schlechten Sektors zu einem anderen Sektor
ausführt,
kann der Plattenarraycontroller nicht die Anzahl auftretender schlechter
Sektoren erkennen. Daher kann kein vorsorglicher Kopiervorgang ausgeführt werden,
bevor nicht viele schlechte Sektoren auftreten.
-
Außerdem ist,
da beim oben beschriebenen ATA-Laufwerk viele Neuversuche ausgeführt werden, eine
Reaktion auf eine IO-Anforderung
(Daten-Eingabe/Ausgabe-Anforderung) verzögert, so dass ein Zeitablauf
für einen
Host auftreten kann. Wenn ein interner Neuversuch während seines
Ablaufs gestoppt wird, um einen Zeitablauf zu vermeiden, werden
keine alternativen Sektoren für
schlechte Sektoren bereitgestellt, und so wird die automatische
Neuzuweisung nicht ausgeführt.
-
Es
ist eine Aufgabe der Erfindung, die Zuverlässigkeit billiger Plattenarrays
durch Emulieren eines ATA-Laufwerks zu erhöhen, damit ein ATA-Laufwerk
auf dieselbe Weise wie ein FC-Laufwerk verwendet werden kann.
-
Die
Erfindung verfügt über: einen
Speicher mit einer in diesem logisch eingestellten Logikeinheit; und
eine Steuerungsvorrichtung für
Verbindung zu einem Host, der Daten-Eingabe/Ausgabe benötigt und
die Eingabe/Ausgabe von Daten in den/ aus dem Speicher entsprechend
der Anforderung vom Host ausführt.
Der Speicher verfügt über: mehrere
Plattenlaufwerke mit einer ersten Schnittstelle; und einen Schnittstellenwandler
zum Ausführen
einer Wandlung zwischen Signalen der für das Plattenlaufwerk ausgebildeten
ersten Schnittstelle und Signalen einer für die Steuerungsvorrichtung
ausgebildeten zweiten Schnittstelle. Der Schnittstellenwandler verfügt über: einen
Ansprechzeit-Überwachungsabschnitt
zum Überwachen
der Zeit, bis vom Plattenlaufwerk eine Antwort auf die Daten-Eingabe/Ausgabe-Anforderung
empfangen wird; und einen Mitteilungsausgabeabschnitt zum Ausgeben
einer Mitteilung zum Betriebsstand der Plattenlaufwerke an die Steuerungsvorrichtung
entsprechend der überwachten
Ansprechzeit.
-
Gemäß der Erfindung
kann ein ATA-Laufwerk auf dieselbe Weise wie ein FC-Laufwerk verwendet
werden, wodurch ein billiges Plattenarray hoher Zuverlässigkeit
geschaffen ist.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
1 ist
ein Blockdiagramm, das die Gesamtstruktur eines Plattenarraysystems
einer ersten Ausführungsform
zeigt.
-
2 ist
ein Blockdiagramm, das die Struktur eines I/F-Wandlers gemäß der ersten Ausführungsform
zeigt.
-
3 ist
ein Flussdiagramm eines Ansprechzeit-Überwachungsprozesses gemäß der ersten
Ausführungsform.
-
4 ist
ein zeitbezogenes Diagramm des Ansprechzeit-Überwachungsprozesses gemäß der ersten
Ausführungsform.
-
5 ist
ein Flussdiagramm eines Fehlererholungsprozesses gemäß der ersten
Ausführungsform.
-
6 ist
eine erläuternde
Ansicht eines Korrekturprozesses gemäß der ersten Ausführungsform.
-
7 ist
eine erläuternde
Ansicht eines vorsorgliche-Kopie-Prozesses gemäß der ersten Ausführungsform.
-
8 ist
ein Blockdiagramm, das die Gesamtstruktur eines Plattenarraysystems
einer zweiten Ausführungsform
zeigt.
-
9 ist
ein Blockdiagramm, das eine Portumgehungsschaltung gemäß der zweiten
Ausführungsform
zeigt.
-
10 ist
ein Blockdiagramm, das die Gesamtstruktur eines Plattenarraysystems
einer dritten Ausführungsform
zeigt.
-
DETAILLIERTE
BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
Nachfolgend
werden Ausführungsformen der
Erfindung unter Bezugnahme auf die Zeichnungen beschrieben.
-
1 ist
ein Blockdiagramm, das die Gesamtstruktur eines Plattenarraysystems
gemäß einer ersten
Ausführungsform
der Erfindung zeigt.
-
Wie
es in der 1 dargestellt ist, verfügt die erste
Ausführungsform über einen
Host 100, einen Plattenarraycontroller 200, einen
Speicher 400 und ein Verwaltungsterminal 700.
-
Der
Plattenarraycontroller 200 liefert im Speicher 400 gespeicherte
Information an den Host 100, der über eine Host-FC-Schnittstelle 204 mit
ihm verbunden ist. Der Plattenarraycontroller 200 verfügt über eine
oder mehrere CPUs 201, einen Arbeitsspeicher 202,
einen Cache 203, eine oder mehrere Host-Schnittstellen 204,
eine oder mehrere Laufwerk-FC-Schnittstellen 205 und
eine Verwaltungs-Schnittstelle 207.
-
Der
Speicher 202 speichert ein RAID-Steuerprogramm 210,
ein Laufwerks-Befehlsausgabeprogramm 220, ein Laufwerks-Verwaltungsprogramm 230,
eine Laufwerks-Verwaltungstabelle 240, ein vorsorgliche-Kopie-Programm 250,
ein I/F-Wandler-Einstellprogramm 260, ein I/F-Wandler-Mitteilungsempfangsprogramm 270 und
ein Verwaltungsterminal-Kommunikationsprogramm 290. Die
CPU 201 ruft diese Programme auf und führt sie aus, um verschiedene
Prozesse auszuführen.
Der Arbeitsspeicher 202 speichert auch eine Neuzuweisungsschwelle-Tabelle 280.
-
Der
Cache 203 führt
eine Zwischenspeicherung von Daten aus, die zwischen der Host-FC-Schnittstelle 204 und
der Laufwerks-FC-Schnittstelle 205 ausgetauscht werden.
-
Die
Host-FC-Schnittstelle 204 sendet/empfängt Signale (Befehle, Daten)
an den/vom Host 100 entsprechend dem Faserkanalprotokoll.
Die Host-FC-Schnittstelle 204 ist mit dem Hostcomputer 100 verbunden.
-
Die
Laufwerks-FC-Schnittstelle 205 sendet/empfängt Signale
(Befehle, Daten) an den/vom Speicher 400 entsprechend dem
Faserkanalprotokoll. Diese Laufwerks-FC-Schnittstelle 205 ist über eine
Faserkanalschleife (FC-Schleife) 600 mit dem Speicher 400 verbunden.
-
Die
Verwaltungs-Schnittstelle 207 sendet/empfängt Daten
und Befehle entsprechend z. B. dem TCP/IP-Protokoll. Diese Verwaltungs-Schnittstelle 207 ist
mit dem Verwaltungsterminal 700 verbunden. Das Verwaltungsterminal 700 verfügt über einen
Eingabeabschnitt 710 und einen Ausgabeabschnitt 720,
und es führt
die Eingabe/Ausgabe von Verwaltungsinformation des Speichers 400 an das/vom
Verwaltungsterminal 700 aus.
-
Das
RAID-Steuerprogramm 210 steuert die Operationen eines RAID
aus mehreren ATA-Platten 401 bis 403. Anders gesagt,
werden Daten verteilt in mehreren Platten gespeichert, und sie werden
zur Rekonstruktion gelesen. Wenn eine Platte ausfällt, werden
fehlende Daten durch eine Fehlerkorrekturfunktion (Korrektur) wiederhergestellt
(siehe die 6).
-
Das
Laufwerks-Befehlsausgabeprogramm 220 gibt Befehle für die ATA-Platten 401 bis 403 aus. Das
Laufwerks-Verwaltungsprogramm 230 verwaltet Zustände der
ATA-Platten 401 bis 403 unter Verwendung der Laufwerks-Verwaltungstabelle 240,
und es sorgt für
eine Erholung ausgehend von verschiedenen Fehlern.
-
Das
vorsorgliche-Kopie-Programm 250 kopiert Speicherinhalte
der ATA-Platten 401 bis 403, in denen viele schlechte
Sektoren auftreten, auf eine Backupplatte (siehe die 7).
Das I/F-Wandlungseinstellprogramm 260 stellt eine Betriebsbedingung für den I/F-Wandler 230 entsprechend
einer Bedingung ein, wie sie durch das Verwaltungsterminal 700 eingestellt
wird. Das I/F-Wandler-Mitteilungsempfangsprogramm 270 empfängt vom
I/F-Wandler 230 entsprechend den Betriebszuständen der
ATA-Platten 401 bis 403 ausgegebene Mitteilungen
(siehe die 5). Die Neuzuweisungsschwelle-Verwaltungstabelle 280 speichert
und verwaltet die Anzahl auftretender Neuzuweisungen sowie Schwellenwerte,
die dazu verwendet werden, zu beurteilen, ob viele schlechte Sektoren
auftreten.
-
Das
Verwaltungsterminal-Kommunikationsprogramm 290 steuert
den Betrieb der Verwaltungs Schnittstelle 207.
-
Der
Speicher 400 verfügt über eine
ATA-Plattengruppe 410 mit mehreren ATA-Platten und einen I/F-Wandler 430,
und er ist in einem ATA-Laufwerksgehäuse enthalten.
-
Die
ATA-Plattengruppe 410 enthält mehrere der ATA-Platten 401 bis 403,
in denen eine Logikeinheit (LU) 420 eingestellt ist. Die
Logikeinheit 420 ist ein Speicherbereich, der für die im
Speicher 400 enthaltenen Speicherquellen (ATA-Platten)
logisch eingetragen wird. Das RAID (Redundant Array of Independent
Disks) wird durch mehrere der ATA-Platten 401 bis 403 gebildet,
so dass in der Plattengruppe 410 gespeicherte Daten selbst
dann nicht gelöscht werden,
wenn ein Teil der Platten ausfällt.
-
Der
I/F-Wandler 430 führt
eine Wandlung zwischen dem Faserkanalprotokoll für den Plattenarraycontroller 200 und
dem ATA-Protokoll für
die ATA-Platten 401 bis 403 aus, und er verfügt über die in
der 2 dargestellte Struktur. Der I/F-Wandler 430 kann
auch so strukturiert sein, dass er Wandlungen nicht nur zwischen
dem Faserkanalprotokoll und dem ATA-Protokoll ausführt, wie
bei dieser Ausführungsform
verwendet, sondern auch zwischen anderen Protokollen, um verschiedenen
Funktionen zwischen den Protokollen zu genügen.
-
Der
I/F-Wandler 430 verfügt über einen
Prozessor 431, einen Arbeitsspeicher 432, eine FC-Schnittstelle 434,
eine ATA-Schnittstelle 436 und einen
Timer 437. Im Arbeitsspeicher 432 sind verschiedene
Programme gespeichert. Der Prozessor 431 ruft diese Programme
auf und führt
sie aus, um verschiedene Prozesse auszuführen.
-
Die
FC-Schnittstelle 434 sendet/empfängt Signale (Befehle, Daten)
an den/vom Plattenarraycontroller 200 gemäß dem Fasekanalprotokoll.
Die ATA-Schnittstelle 436 sendet/empfängt Signale (Befehle, Daten)
an die/von den ATA-Platten 401 bis 403 entsprechend
dem ATA-Kanalprotokoll.
-
Der
Arbeitsspeicher 432 speichert: ein FC-Befehlsempfangsprogramm 441 zum
Empfangen von Befehlen, wie sie entspre chend dem Faserkanalprotokoll
vom Plattenarraycontroller 200 gesendet werden; ein Befehlswandlungsprogramm 443 zum Wandeln
von Befehlen in solche, die durch ein anderes Protokoll definiert
sind (bei dieser Ausführungsform
vom Faserkanalprotokoll in das ATA-Protokoll); ein ATA-Befehlsausgabeprogramm 445 zum
Ausgeben von durch das ATA-Protokoll definierten Befehlen an die
ATA-Platten 401 bis 403; ein FC-Datenübertragungsprogramm 442 zum
Senden/Empfangen von Daten gemäß dem Faserkanalprotokoll;
ein ATA-Datenübertragungsprogramm 446 zum
Senden/Empfangen von Daten gemäß dem ATA-Kanalprotokoll;
und einen Datenpuffer 444 zum Zwischenspeichern der empfangenen
Daten.
-
Ferner
speichert der Arbeitsspeicher 432 ein Laufwerks-Ansprechzeit-Überwachungsprogramm 451,
eine Neuzuweisungszeit-Einstelltabelle 452, eine
Neuversuchszeit-Einstelltabelle 453, eine Ablaufzeit-Einstelltabelle 454 und
ein CTL-Mitteilungsausgabeprogramm 455.
-
Das
Laufwerks-Ansprechzeit-Überwachungsprogramm 451 überwacht,
entsprechend einem vom Timer 407 gelieferten Taktsignal,
die Zeit, die verstrichen ist, seit das ATA-Befehlsausgabeprogramm 445 einen
Befehl ausgegeben hat. Wenn das Laufwerks-Laufwerks-Überwachungsprogramm 451 beurteilt,
dass eine vorbestimmte Zeit verstrichen ist, seit der Plattenarraycontroller 200 den
Befehl ausgegeben hat, gibt das CTL-Mitteilungsausgabeprogramm 455 eine
Mitteilung an den Plattenarraycontroller aus. Die Neuzuweisungszeit-Einstelltabelle 452,
die Neuversuchszeitdauer-Einstelltabelle 453 und die Ablaufzeit-Einstelltabelle 454 werden
zum Beurteilen der verstrichenen Zeit verwendet. In jeder Tabelle 452 bis 454 definierte
Zeiten können
für jede der
ATA-Platten 401 bis 403 gleich oder verschieden eingestellt
sein.
-
Die 3 ist
ein Flussdiagramm eines Ansprechzeit-Überwa chungsprozesses, wie er
vom Laufwerks-Ansprechzeit-Überwachungsprogramm 451 ausgeführt wird.
Die 4 ist ein zeitbezogenes Diagramm des Ansprechzeit-Überwachungsprozesses.
-
Wenn
vom Plattenarraycontroller 200 ein Befehl an die ATA-Platten 401 bis 403 ausgegeben
wird, wird dieser in der FC-Schnittstelle 434 empfangen, und
das FC-Befehlsempfangsprogramm 441 analysiert den Befehl.
Dann wandelt das Befehlswandlungsprogramm 443 das Befehlsprotokoll
vom Faserkanalprotokoll in das ATA-Protokoll, und das ATA-Befehlsausgabeprogramm 445 gibt
einen ATA-Befehls aus (1001). Die ATA-Schnittstelle 436 sendet den ausgegebenen
ATA-Befehl an die ATA-Platten 401 bis 403.
-
Das
Laufwerks-Ansprechzeit-Überwachungsprogramm 451 beginnt
damit, die Ansprechzeit seit der Ausgabe des ATA-Befehls zu überwachen
(1002). Dann wird beurteilt, ob von den ATA-Platten 401 bis 403 eine
Antwort empfangen wurde (1003). Wenn von den ATA-Platten 401 bis 403 keine
Antwort empfangen wurde, wird beurteilt, ob eine Neuzuweisungszeit
erreicht ist, wie sie in der "Neuzuweisungs"zeit-Einstelltabelle 452 eingetragen ist
(1004). Wenn die Neuzuweisungszeit nicht erreicht ist,
kehrt der Prozess zum Schritt 1003 zurück, und es erfolgt weiter eine Überwachung
auf eine Antwort von den ATA-Platten 401 bis 403.
-
Andererseits
wird, wenn von den ATA-Platten 401 bis 403 eine
Antwort empfangen wird, bevor die Neuzuweisungszeit erreicht ist,
beurteilt, ob die Antwort eine solche für normalen Abschluss ist (1005).
Wenn die Antwort eine solche für
normalen Abschluss ist, wird beurteilt, dass in den ATA-Platten kein
Neuversuch ausgeführt
wird, und es wird die Antwort "gut" ausgegeben, um diesen
Ansprechzeit-Überwachungsprozess
zu beenden (1006). Wenn die Antwort nicht die für normalen
Abschluss ist, wird beurteilt, dass in den ATA-Platten ein Fehler aufgetreten
ist, und es wird die Antwort "NG" ausgegeben, um diesen
Ansprechzeit-Überwachungsprozess
zu beenden (1007).
-
Andererseits
wird, wenn von den ATA-Platten 401 bis 403 keine
Antwort empfangen wird, bis die Neuzuweisungszeit erreicht ist,
beurteilt, dass die ATA-Platten eine automatische Neuzuweisung gestartet
haben. Dann geht der Prozess zum nächsten Schritt (1008)
weiter.
-
Im
Schritt 1008 wird ferner beurteilt, ob von den ATA-Platten 401 bis 403 eine
Antwort empfangen wurde. Wenn von den ATA-Platten 401 bis 403 keine
Antwort empfangen wurde, wird beurteilt, ob eine Neuversuchszeit
erreicht wurde, wie sie in der Neuversuchszeit-Einstelltabelle 453 eingetragen
ist (1009). Wenn die Neuversuchszeit nicht erreicht ist, kehrt
der Prozess zum Schritt 1008 zurück, und es erfolgt eine Überwachung
auf eine Antwort von den ATA-Platten 401 bis 403.
-
Wenn
andererseits von den ATA-Platten 401 bis 403 eine
Antwort empfangen wird, bevor die Neuversuchszeit erreicht ist,
wird beurteilt, ob die Antwort eine solche für normalen Abschluss ist (1010).
Wenn die Antwort diejenige für
normalen Abschluss ist, wird beurteilt, dass Daten durch den Neuversuchsvorgang
normal von den ATA-Platten gelesen wurden, und es wird die Antwort "erholt" ausgegeben, um diesen
Ansprechzeit-Überwachungsprozess
zu beenden (1011). Wenn die Antwort nicht diejenige für normalen
Abschluss ist, wird beurteilt, dass in den ATA-Platten ein Fehler
aufgetreten ist, und dann wird die Antwort "NG" ausgegeben,
um diesen Ansprechzeit-Überwachungsprozess
zu beenden (1012).
-
Wenn
andererseits von den ATA-Platten 401 bis 403 keine
Antwort empfangen wird, bevor die Neuversuchszeit erreicht ist, wird
beurteilt, dass in den ATA-Platten 401 bis 403 gerade
ein Neuversuch abläuft,
und an den Plattenarraycontroller 200 wird die Antwort "Neuversuch" gesendet (1013).
Dann geht der Prozess zum nächsten
Schritt 1014 über.
-
Im
Schritt 1014 wird beurteilt, ob von den ATA-Platten 401 bis 403 eine
Antwort empfangen wurde. Wenn von den ATA-Platten 401 bis 403 keine Antwort
empfangen wurde, wird beurteilt, ob eine Ablaufzeit erreicht wurde,
wie sie in der Zeitablauf-Einstelltabelle 454 eingetragen
ist (1015). Wenn die Ablaufzeit nicht erreicht ist, kehrt
der Prozess zum Schritt 1014 zurück, und es wird die Antwort
von den ATA-Platten 401 bis 403 überwacht.
-
Wenn
dagegen von den ATA-Platten 401 bis 403 eine Antwort
empfangen wird, bevor die Neuversuchszeit erreicht ist, wird beurteilt,
ob die Antwort eine solche für
normalen Abschluss ist (1016). Wenn die Antwort diejenige
für normalen
Abschluss ist, wird beurteilt, dass in den ATA-Platten die automatische Neuzuweisung
normal ausgeführt
wurde, und es wird die Antwort "Neuversuchabschluss" ausgegeben, um diesen
Ansprechzeit-Überwachungsprozess
zu beenden (1017). Wenn die Antwort nicht diejenige für normalen
Abschluss ist, wird beurteilt, dass in den ATA-Platten ein Fehler
vorliegt, und es wird die Antwort "NG" ausgegeben,
um diesen Ansprechzeit-Überwachungsprozess
zu beenden (1018).
-
Wenn
dagegen von den ATA-Platten 401 bis 403 kein Antwort
empfangen ist, nachdem die Ablaufzeit erreicht wurde, wird beurteilt,
dass in ihnen ein Fehler aufgetreten ist. Dann wird an den Plattenarraycontroller
die Antwort "Zeitablauf" gesendet (1019),
um diesen Ansprechzeit-Überwachungsprozess
zu beenden (1020).
-
Die 4 ist
ein zeitbezogenes Diagramm, das Mitteilungen zeigt, wie sie entsprechend
der Zeit ausgegeben werden, die seit der Ausgabe eines Befehls verstrichen
ist.
-
Wenn
von den ATA-Platten 401 bis 403 eine Prozessabschlussantwort
empfangen wird, bevor die Neuzuweisungszeit seit der Ausgabe eines
ATA-Befehls durch das ATA-Befehlsausgabeprogramm 445 verstrichen
ist, wird beurteilt, dass in den ATA-Platten gerade kein Neuversuch ausgeführt wird
und an den Plattenarraycontroller 200 wird die Antwort "gut" gesendet.
-
Danach
wird, wenn von den ATA-Platten 401 bis 403 zum
Zeitpunkt, zu dem die Neuversuchszeit verstrichen ist, die Prozessabschlussantwort
empfangen wird, beurteilt, dass in den ATA-Platten ein Neuversuch
ausgeführt
wurde, und an den Plattenarraycontroller 200 wird die Antwort "erholt" gesendet.
-
Danach
werden, wenn die Neuversuchszeit ohne Antwort von den ATA-Platten 401 bis 403 verstrichen
ist, beurteilt, dass die ATA-Platten 401 bis 403 gerade
einem Neuversuch unterzogen werden, und an den Plattenarraycontroller 200 wird
die Antwort "Neuversuch" gesendet. Im Plattenarraycontroller 200 wird
durch das RAID-Steuerprogramm 210 entsprechend der Antwort "Neuversuch" ein Korrekturprozess
ausgeführt
(siehe die 6).
-
Danach
wird, wenn von den ATA-Platten 401 bis 403 zum
Zeitpunkt, zu dem eine Ablaufzeit verstrichen ist, eine Prozessabschlussantwort
empfangen wird, beurteilt, dass in den ATA-Platten die automatische Neuzuweisung
ausgeführt
wurde, und an den Plattenarray 200 wird die Antwort "Abschluss des Neuversuchs" gesendet.
-
Danach
wird, wenn die Ablaufzeit ohne Prozessabschlussantwort von den ATA-Platten 401 bis 403 verstrichen
ist, beur teilt, dass in den ATA-Platten 401 bis 403 ein
Fehler aufgetreten ist, und an den Plattenarraycontroller 200 wird
die Antwort "Zeitablauf" gesendet.
-
Die 5 ist
ein Flussdiagramm eines Fehlererholungsprozesses, wie er im Laufwerks-Verwaltungsprogramm 230 ausgeführt wird.
-
Als
Erstes wird überwacht,
ob vom I/F-Wandler 430 eine Antwort empfangen wurde (2001).
Wenn die Laufwerks-FC-Schnittstelle 205 vom I/F-Wandler 430 eine
Antwort empfängt,
wird beurteilt, ob diese Antwort die Antwort "gut" ist
(2002). Wenn die Antwort die Antwort "gut" ist,
liegt in den ATA-Platten 401 bis 403 kein
Fehler vor, und der Fehlererholungsprozess endet.
-
Wenn
dagegen die Antwort nicht die Antwort "gut" ist,
wird ferner beurteilt, ob die Antwort die Antwort "erholt" ist (2003).
Wenn die Antwort die Antwort "erholt" ist, läuft in den
ATA-Platten 401 bis 403 die automatische Neuzuweisung
ab, und daher wird ein Wert (Anzahl der auftretenden Fehler) in
der Neuzuweisungsschwellenwert-Verwaltungstabelle 280 nach
oben gezählt
(2004).
-
Wenn
dagegen die Antwort nicht die Antwort "erholt" ist, wird ferner beurteilt, ob die
Antwort die Antwort "Neuversuch" ist (2005).
Wenn die Antwort die Antwort "Neuversuch" ist, wird das RAID-Steuerprogramm 210 dazu
angewiesen, Daten von anderen Platten zu lesen, damit die von den
ATA-Platten zu lesenden Daten rekonstruiert werden (siehe die 6),
um eine schnelle Antwort an den Host 100 zurückzuliefern
(2006).
-
Wenn
dagegen die Antwort nicht die Antwort "Neuversuch" ist, wird ferner beurteilt, ob die
Antwort die Antwort "Abschluss eines
Neuversuchs" ist (2007).
Wenn die Antwort die Antwort "Abschluss
eines Neuversuchs" ist,
wird in den ATA-Platten 401 bis 403 die automatische
Neuzuweisung ausgeführt,
und so wird ein Wert (Anzahl der auftretenden Fehler) hoch gezählt (2008).
-
Wenn
dagegen die Antwort nicht die Antwort "Abschluss eines Neuversuchs" ist, wird ferner
beurteilt, ob die Antwort die Antwort "Zeitablauf" ist (2009). Wenn die Antwort
die Antwort "Zeitablauf" ist, trat in den
ATA-Platten 401 bis 403 ein Fehler auf und so
wird das RAID-Steuerprogramm 210 dazu angewiesen, den Fehlererholungsprozess
auszuführen (2010).
Dabei wird, da auf Grund des ausgegebenen Befehls davon ausgegangen
wird, dass ein zu einem Zeitablauf (z. B. Aufhängen) führender Fehler in den ATA-Platten 401 bis 403 aufgetreten
ist, dasjenige ATA-Laufwerk, das keine Antwort zurückliefert,
durch einen harten Resetvorgang initialisiert.
-
Wenn
dagegen die Antwort nicht die Antwort "Zeitablauf" ist, handelt es sich um keine angenommene
Antwort, so dass nichts ausgeführt
wird und dieser Fehlererholungsprozess endet.
-
Die 6 ist
eine erläuternde
Ansicht eines vom RAID-Steuerprogramm 210 ausgeführten Korrekturprozesses.
-
Der
Korrekturprozess ist der Folgende. Wie oben beschrieben, werden,
wenn in einem Sektor A einer ganz links dargestellten Platte ein
Fehler auftritt und die Antwort von der Platte verzögert ist,
Daten aus Sektoren B, C und D in anderen das RAID bildenden Platten
gelesen, wobei diese Sektoren dem Sektor A entsprechen. Es wird
die Exklusiv-ODER-Verknüpfung
der gelesenen Daten berechnet, um Daten A' zu erzeugen, die mit den im Sektor
A gespeicherten Daten übereinstimmen,
und es wird eine Antwort an den Host gesendet. Die berechneten Daten
werden in den ausgefallenen Sektor A (oder einen neu zugewiesenen
Sektor) eingeschrieben.
-
Wie
oben beschrieben, können
selbst dann, wenn die Antwort von den Platten durch vielfaches Ausführen eines
Neuversuchs in ihnen verzögert
ist, Daten dadurch schnell an den Host zurückgeliefert werden, dass beim
Empfangen der Antwort "Neuversuch" der Korrekturprozess
ausgeführt
wird. Daher kann ein Zeitablauf im Host vermieden werden. Außerdem kann
die Wartezeit des Hosts vor einem Zeitablauf verkürzt werden,
um dadurch eine Verzögerung
von Prozessen im Host zu unterdrücken.
-
Die 7 ist
eine erläuternde
Ansicht eines vom vorbeugende-Kopie-Prozess ausgeführten vorbeugende-Kopie-Programms
250.
-
Der
vorbeugende-Kopie-Prozess wird vorbeugend ausgeführt, wenn entsprechend dem
Vergleichsergebnis zwischen der Zahl der Neuzuweisungen, wie sie
in der Neuzuweisungsschwelle-Verwaltungstabelle 280 durch
das Laufwerks-Verwaltungsprogramm 230 aufgezeichnet wird,
und einem vorbestimmten Schwellenwert (wenn z. B. die Anzahl der
Neuzuweisungen über
dem vorbestimmten Schwellenwert liegt) beurteilt wird, dass die
Anzahl schlechter Sektoren der Platten zugenommen hat. Anders gesagt,
wird, wenn viele Sektoren ausgefallen sind, jedoch ein Lesen/Schreiben
nicht völlig
unmöglich
ist, der Speicherinhalt der Platte, in der viele Sektoren ausgefallen
sind, auf Backupplatten kopiert.
-
Wie
oben beschrieben, ist bei der ersten Ausführungsform der Erfindung der
Schnittstellenwandler 430 für Wandlungsvorgänge zwischen
für die
ATA-Platten 401 bis 403 ausgebildeten Signale der
ATA-Schnittstelle und für
den Plattenarraycontroller 200 ausgebildeten Signalen der
Faserkanal-Schnittstelle vorhanden. Im Ergebnis kann ein ATA-Laufwerk
auf die selbe Weise wie ein FC-Laufwerk verwendet werden.
-
Der
Schnittstellenwandler 430 überwacht mittels der Neuzuweisungszeit,
ob von den ATA-Platten 401 bis 403 eine Antwort
auf einen Daten-Eingabe/Ausgabe-Anforderungsbefehl empfangen wird, und
er beurteilt, dass in den ATA-Platten 401 bis 403 gerade
eine automatische Neuzuweisung ausgeführt wird, wenn die Antwort
von den ATA-Platten 401 bis 403 empfangen wird
und die Neuzuweisungszeit überschritten
ist. Dann wird die Antwort "erholt" an den Plattenarraycontroller 200 ausgegeben.
Das Laufwerks-Verwaltungsprogramm 230 empfängt die Antwort "erholt", um die Anzahl der
Neuzuweisungen in den Platten zu aktualisieren, wobei diese Zahl
in der Neuzuweisungsschwelle-Verwaltungstabelle 280 aufgezeichnet
wird. Wenn die in der Neuzuweisungsschwelle-Verwaltungstabelle 280 aufgezeichnete
Anzahl über
einem vorbestimmten Schwellenwert liegt, wird beurteilt, dass schlechte
Sektoren in den Platten zugenommen haben, und so wird der vorbeugende-Kopie-Prozess
ausgeführt.
Anders gesagt, kann durch Beachten der Tatsache, dass bei der automatischen
Neuzuweisung die Ansprechzeit verlängert ist und durch Überwachen
der Ansprechzeit, das Auftreten einer automatischen Neuzuweisung
(Auftreten schlechter Sektoren) erkannt werden, um den vorbeugende-Kopie-Prozess
unter Verwendung der Anzahl aufgetretener schlechter Sektoren als
Schwellenwert auszuführen.
-
Wenn
von den ATA-Platten 401 bis 403 bis zur Neuversuchszeit
keine Antwort empfangen wird, wird die Antwort "Neuversuch" an den Plattenarraycontroller 200 ausgegeben.
Wenn das Laufwerks-Verwaltungsprogramm 230 die Antwort "Neuversuch" empfängt, liest
sie Daten von anderen das RAID bildenden Platten ohne auf eine Antwort
von den ATA-Platten zu warten, es rekonstruiert Daten (Datenkorrektur)
unter Verwendung der gelesenen Daten, und es sendet die rekonstruierten
Daten an den Host 100. Indessen sorgt das Laufwerks-Verwaltungsprogramm 230 für einen
Neuversuch im Laufwerk, und es wartet auf eine automatische Neuzuweisung
auf Grund eines Erfolgs des Neuversuchs oder auf eine Fehlerantwort
auf Grund eines aufgegebenen Neuversuchs. Daher sind das Verhindern
eines Zeitablaufs für
den Host und das Fördern
einer automatischen Neuzuweisung für die Platten miteinander verträglich.
-
Die 8 ist
ein Blockdiagramm, das die Gesamtstruktur eines Plattenarraysystems
gemäß einer
zweiten Ausführungsform
der Erfindung zeigt.
-
Die
zweite Ausführungsform
unterscheidet sich von der oben beschriebenen ersten Ausführungsform
(1) dadurch, dass bei der zweiten Ausführungsform
für jede
ATA-Platte ein I/F-Wandler vorhanden
ist. Dieselben Komponenten wie bei der ersten Ausführungsform
sind mit denselben Zahlen wie bei dieser ersten Ausführungsform
versehen, und sie werden nicht detailliert erläutert.
-
Ein
Speicher 300 verfügt über eine
ATA-Plattengruppe 310 aus mehreren ATA-Platten, I/F-Wandler 351 bis 353 sowie
eine Portumgehungsschaltung 330, und sie ist im ATA-Laufwerksgehäuse enthalten.
-
Die
ATA-Plattengruppe 310 verfügt über mehrere ATA-Platten 301 bis 303.
In den ATA-Platten 301 bis 303 ist eine Logikeinheit
(LU) 320 eingestellt. Ein RAID besteht aus mehreren der
ATA-Platten 301 bis 303.
-
Die
I/F-Wandler 351 bis 353 führen eine Wandlung zwischen
dem Faserkanalprotokoll für
den Plattenarraycontroller 200 und dem ATA-Protokoll für die ATA-Platten 301 bis 303 aus,
und sie verfügen
jeweils über
die in der 2 dargestellte Struktur. Bei der
ersten Ausführungsform
können
für jede
der ATA-Platten 3b1 bis 303 verschiedenen Zeiten
eingetragen werden, wie sie jeweils in der Neuzuweisungszeit-Einstelltabelle 452,
der Neuversuchszeit-Einstelltabelle 453 und der Ablaufzeit-Einstelltabelle 454 definiert
sind. Bei der zweiten Ausführungsform
speichert, da die I/F-Wandler 351 bis 353 jeweils mit den ATA-Platten 301 bis 303 verbunden
sind, jede der Tabellen einen Wert für jede der ATA-Platten.
-
Die
Portumgehungsschaltung 330 verfügt, wie es in der 9 dargestellt
ist, über
mehrere Selektoren 331 bis 334 entsprechend der
Anzahl angeschlossener Platten und Controller. Diese Selektoren sind
in einem normalen Zustand über
die durchgezogene Leitung verbunden. Wenn in einem Teil der Platten
oder im Controller ein Fehler auftritt, werden die Selektoren über die
gestrichelte Leitung verbunden, um dadurch die Platten oder den
Controller mit Fehler von einer Faserkanalschleife 600 zu
trennen. Demgemäß wird die
Faserkanalschleife 600 nicht aufgetrennt.
-
Wie
oben beschrieben, kann bei der zweiten Ausführungsform der Erfindung, zusätzlich zum
Effekt der ersten Erfindung, durch Kombinieren der ATA-Platten 301 bis 303 und
der I/F-Wandler 351 bis 353,
und durch Entfernen derselben, eine Wandlung des ATA-Laufwerks und
des I/F-Wandlers in ein FC-Laufwerk
erfolgen. Im Ergebnis kann die Wartbarkeit des Speichers verbessert
werden.
-
Die 10 ist
ein Blockdiagramm, das die Gesamtstruktur eines Plattenarraysystems
gemäß einer
dritten Ausführungsform
der Erfindung zeigt.
-
Die
dritte Ausführungsform
unterscheidet sich von der ersten Ausführungsform (1)
dadurch, dass bei der dritten Ausführungsform der I/F-Wandler
im Plattenarraycontroller 200 enthalten ist. Dieselben
Komponenten wie bei der ersten Aus führungsform sind mit denselben
Zahlen wie bei der ersten Ausführungsform
versehen, und sie werden nicht detailliert erläutert.
-
Der
Plattenarraycontroller 200 verfügt über eine oder mehrere CPUs 201,
einen Arbeitsspeicher 202, einen Cache 203, eine
oder mehrere FC-Schnittstellen 204, eine oder mehrere ATA-Schnittstellen 206,
eine Verwaltungs-Schnittstelle 207 und einen Timer 208.
Der Plattenarraycontroller 200 liefert in der ATA-Plattengruppe 510 gespeicherte
Information an den mit ihm verbundenen Host 100 über die
Host-FC-Schnittstelle 204.
-
Der
Arbeitsspeicher 202 speichert ein RAID-Steuerprogramm 210,
ein Laufwerks-Befehlsausgabeprogramm 220, ein Laufwerks-Verwaltungsprogramm 230,
eine Laufwerks-Verwaltungstabelle 240, das vorbeugende-Kopie-Programm 250,
ein Zeiteinstellprogramm 256, eine Neuzuweisungsschwelle-Verwaltungstabelle 280 und
ein Verwaltungsterminal-Kommunikationsprogramm 290.
-
Ferner
speichert der Arbeitsspeicher 202 bei der dritten Ausführungsform
ein Laufwerks-Ansprechzeit-Überwachungsprogramm 291,
eine Neuzuweisungszeit-Einstelltabelle 292, eine Neuversuchszeit-Einstelltabelle 293 und
eine Ablaufzeit-Einstelltabelle 294. Diese Programme 291 bis 294 funktionieren
auf dieselbe Weise wie das Laufwerks-Ansprechzeit-Überwachungsprogramm 451,
die Neuzuweisungszeit-Einstelltabelle 452, die Neuversuchszeit-Einstelltabelle 453 und
die Ablaufzeit-Einstelltabelle 454.
-
Diese
Programme werden durch die CPU 201 aufgerufen und zum Ausführen verschiedener Prozesse
ausgeführt.
-
Das
Zeiteinstellprogramm 265 stellt in der Neuzuweisungs zeit-Einstelltabelle 292,
der Neuversuchszeit-Einstelltabelle 293 und der Ablaufzeit-Einstelltabelle 294 gespeicherte
Zeiten gemäß einer
Bezugnahme durch das Laufwerks-Ansprechzeit-Überwachungsprogramm 291 ein.
-
Die
ATA-Plattengruppe 510 verfügt über mehrere ATA-Laufwerke 501 bis 503.
In diesen ATA-Laufwerken 501 bis 503 ist eine
Logikeinheit (LU) 520 eingestellt. Die ATA-Platten 501 bis 503 bilden
ein RAID.
-
Wie
oben beschrieben, existiert bei der dritten Ausführungform, zusätzlich zum
Effekt der ersten Ausführungsform,
der folgende Effekt. Da im Plattenarraycontroller 200 eine
Struktur vorhanden ist, die dieselbe Funktion wie ein FC-Laufwerk erzielt, muss
keine Struktur für
eine Schnittstellenwandlung vorhanden sein, so dass zu einer Kostensenkung
des Speichers beigetragen ist.