DE102004037092A1 - WORM-Garantie-Speichervorrichtung - Google Patents

WORM-Garantie-Speichervorrichtung Download PDF

Info

Publication number
DE102004037092A1
DE102004037092A1 DE102004037092A DE102004037092A DE102004037092A1 DE 102004037092 A1 DE102004037092 A1 DE 102004037092A1 DE 102004037092 A DE102004037092 A DE 102004037092A DE 102004037092 A DE102004037092 A DE 102004037092A DE 102004037092 A1 DE102004037092 A1 DE 102004037092A1
Authority
DE
Germany
Prior art keywords
write
data
computer
disk
stored
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE102004037092A
Other languages
English (en)
Inventor
Akihiro Mannen
Naoto Matsunami
Akira Nishimoto
Yusuke Nonaka
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of DE102004037092A1 publication Critical patent/DE102004037092A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0623Securing storage systems in relation to content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/00681Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving measures which prevent a specific kind of data access
    • G11B20/00702Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving measures which prevent a specific kind of data access said measures preventing that data are recorded on the recording medium
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/00731Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving a digital rights management system for enforcing a usage restriction
    • G11B20/00746Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving a digital rights management system for enforcing a usage restriction wherein the usage restriction can be expressed as a specific number
    • G11B20/00753Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving a digital rights management system for enforcing a usage restriction wherein the usage restriction can be expressed as a specific number wherein the usage restriction limits the number of copies that can be made, e.g. CGMS, SCMS, or CCI flags
    • G11B20/00768Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving a digital rights management system for enforcing a usage restriction wherein the usage restriction can be expressed as a specific number wherein the usage restriction limits the number of copies that can be made, e.g. CGMS, SCMS, or CCI flags wherein copy control information is used, e.g. for indicating whether a content may be copied freely, no more, once, or never, by setting CGMS, SCMS, or CCI flags
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Es ist ein Speicherplattenarraysystem vorgesehen, das insbesondere dann die Anwendung einer WORM-Funktion ermöglicht, wenn das Speicherplattenarraysystem das RAID-System verwendet. Bei der Aufnahme einer Schreibanforderung von einem Computer (100) wird auf der Basis des Inhalts von Schreibsperrinformationen festgestellt, ob das Einschreiben der Schreibdaten vom Computer möglich ist. Wenn das Einschreiben möglich ist, wird ein Garantiecode für die übertragenen Daten erzeugt, und es werden Schreibsperrinformationen erzeugt, die anzeigen, daß der Bereich, in dem die Daten gespeichert werden, nicht mehr beschreibbar ist. Die erzeugten Schreibsperrinformationen werden im Garantiecode gespeichert, der Garantiecode mit den Schreibsperrinformationen wird dem Bereich zugeordnet, in dem die Computer (100) erhaltenen Daten gespeichert werden, und es werden die Daten, denen der Garantiecode mit den Schreibsperrinformationen zugeordnet ist, in einem Cache-Speicher (230) und/oder einem Plattenlaufwerk (270) gespeichert. Wenn ein Einschreiben der Daten vom Computer (100) nicht möglich ist, wird der Computer (100) darüber informiert.

Description

  • Die vorliegende Anmeldung beansprucht die Priorität aus der japanischen Anmeldung P2004-153516, eingereicht am 24. Mai 2004, deren Inhalt hiermit durch Bezugnahme in die vorliegende Anmeldung eingeschlossen wird.
  • HINTERGRUND DER ERFINDUNG
  • Die vorliegende Erfindung betrifft ein Speicherplattenarraysystem unter Verwendung des RAID-Systems und insbesondere ein Speicherplattenarraysystem mit einer WORM-Funktion.
  • Als Datenformat für das Aufzeichnen von Daten in einem Speichersystem ist das WORM-Format (Write Once Read Many, einmal schreiben, oft lesen) bekannt, bei dem eine Schreibopration nur einmal ausgeführt werden kann, während eine Leseoperation wiederholt ausgeführt werden kann. Zum Beispiel sind die auf einer CD-R gespeicherten Daten im WORM-Format.
  • Beim Anwenden dieses WORM-Prinzips auf ein wiederbeschreibbares Medium wie eine Speicherplattenvorrichtung gibt es die Möglichkeit, hinsichtlich aller Sektoren auf einer Speicherplatte entsprechende vorgegebene Flag-Informationen in den Sektor-ID-Abschnitten aufzuzeichnen. Die Flag-Informationen umfassen Informationen über Daten-Schreibattribute für die Sektoren. Es können die drei Arten Schreiberlaubnis, Schreibsperre und einmalige Schreiberlaubnis vorgegeben werden. Es ist somit eine Speicherplattenvorrichtung bekannt, bei der, wenn das Daten-Schreibattribut für einen Sektor mit Daten, die nicht gelöscht werden sollen, auf Schreibsperre eingestellt ist, ein versehentliches Zerstören von Nutzerdaten durch einen Bedienungsfehler des Nutzers beim Bedienen des Host-Computers und eine absichtliche Zerstörung von Nutzerdaten durch einen Computervirus, der zum Zwecke des Zerstörens von Nutzerdaten entstanden ist, von vornherein ver hindert wird, wodurch sich der Zuverlässigkeit der Speicherplattenvorrichtung hinsichtlich des Schutzes der Nutzerdaten erhöht (siehe zum Beispiel die JP 7-13705 A).
  • Andererseits werden in einen Speicherplattenarraysystem redundante Daten erzeugt und in einer Speicherplattenvorrichtung gespeichert, so daß Daten auch dann wiederhergestellt werden können, wenn in der Speicherplattenvorrichtung ein Fehler auftritt. Es ist darüberhinaus ein Verfahren zum Anhängen eines Garantiecodes an jeden logischen Datenblock bekannt, mit dem die Zuverlässigkeit des ganzen Speicherplattenarrays erhöht wird. Die Beispiele für das Verfahren zum Anhängen eines Garantiecodes umfassen, wie in der JP 2001-202295 A und der JP 2000-347815 A beschrieben, ein Verfahren, bei dem, wenn Daten in eine Speicherplattenvorrichtung eingeschrieben werden, der Garantiecode einen logischen Adressenwert LA (Logische Adresse) umfaßt und an die Daten auf einer logischen Datenblockbasis ein Exklusiv-ODER LRC (Longitudinal Redundanz Check) angehängt wird und die sich ergebenden Daten in die Speicherplattenvorrichtung eingeschrieben werden. Beim Auslesen von Daten aus der Speicherplattenvorrichtung werden der LA-Wert und der LRC-Wert, die an jedem logischen Block hängen, geprüft, wodurch festgestellt wird, ob in der Speicherplattenvorrichtung eine Änderung der Adresse oder eine Änderung der Daten aufgetreten ist.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Bei der Vorgehensweise nach der genannten JP 7-13705 A kann das WORM-Prinzip nur auf eine einzige Speicherplattenvorrichtung angewendet werden. Bei einem RAID-System mit einer Vielzahl von Speicherplattenvorrichtungen werden jedoch bestimmte Daten in verschiedenen Bereichen einer Anzahl von Speicherplattenvorrichtungen aufgezeichnet. Zum Beispiel wird in RAID0 und RAID5 ein bestimmtes Stück der Daten gleichzeitig in verschiedenen Formaten in eine Anzahl von Speicherplattenvorrichtungen eingeschrieben. Um in diesem System das WORM-Prinzip anwenden zu können, sind auf der Hardwareebene extrem komplizierte Prozesse erforderlich, etwa ein Prozeß zum Festlegen verschiedener Bereiche der verschiedenen Speicherplattenvorrichtungen als schreibgeschützt, wodurch es schwierig wird, diese Technik auf ein Speicherplattenarraysystem mit vielen Speicherplattenvorrichtungen anzuwenden.
  • Gemäß der vorliegenden Erfindung bezieht sich bei der Aufnahme einer Datenschreibanforderung von einem Computer eine Steuereinheit auf Schreibsperrinformationen in einem Cache-Speicher, die angeben, ob ein Einschreiben in den von der Schreibanforderung bezeichneten Bereich einer Speicherplattenvorrichtung möglich ist; und stellt auf der Basis des Inhalts der Schreibsperrinformationen fest, ob das Einschreiben von Daten vom Computer möglich ist oder nicht. Wenn die Schreibdaten vom Computer in den Bereich eingeschrieben werden können, nimmt die Steuereinheit die vom Computer übertragenen Daten auf; erzeugt einen Garantiecode für die vom Computer übertragenen Daten; erzeugt die Schreibsperrinformationen, die angeben, daß der Bereich, in den die Daten vom Computer übertragen werden, nicht beschreibbar ist; speichert die erzeugten Schreibsperrinformationen im Garantiecode und ordnet den Garantiecode mit den Schreibsperrinformationen dem Bereich zu, in dem die an einem Host-Eingabe-Ausgabe-Interface vom Computer erhaltenen Daten gespeichert werden; und speichert die Daten mit dem zugeordneten Garantiecode mit den Schreibsperrinformationen im Cache-Speicher und/oder der Speicherplattenvorrichtung. Wenn die Schreibdaten vom Computer nicht in den vorgesehenen Bereich eingeschrieben werden können, teilt die Steuereinheit diese Tatsache dem Computer mit.
  • Es ist somit Aufgabe der vorliegenden Erfindung, ein Speichersystem zu schaffen, bei dem die WORM-Funktion angewendet werden kann, auch wenn das Speichersystem vom RAID-System Gebrauch macht.
  • Erfindungsgemäß wird jedem der vielen Datenstücke, die von einem Computer erhalten werden, ein Garantiecode zugeord net, und jedem der vielen Datenstücke wird ein Schreibsperrbit zugeordnet. Die Schreibsperre kann somit für jede Dateneinheit festgelegt werden, die in einem Cache-Speicher und/oder einer Vielzahl von Speicherplattenvorrichtungen gespeichert ist. Folglich kann die WORM-Funktion auch dann angewendet werden, wenn die Speicherplattenarrayvorrichtung eine RAID-Konfiguration aufweist und mit einer Vielzahl von Speicherplattenvorrichtungen versehen ist.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist eine Blockdarstellung der Systemkonfiguration einer ersten Ausführungsform der Erfindung.
  • 2 ist eine Darstellung zur Erläuterung von LA und LRC, die bei der ersten Ausführungsform der Erfindung an einen logischen Datenblock angehängt werden.
  • 3 ist ein Flußdiagramm für den Prozeß zum Speichern von WORM-Daten in einem Speicherplatten-Cache bei der ersten Ausführungsform der Erfindung.
  • 4 ist eine Ansicht zur Erläuterung einer Bitmap bei einer zweiten Ausführungsform der Erfindung.
  • 5 ist ein Flußdiagramm für den Prozeß zum Speichern von WORM-Daten in einem Speicherplatten-Cache bei der zweiten Ausführungsform der Erfindung.
  • 6(a) und 6(b) sind Darstellungen zur Erläuterung eines Bitmap-Restrukturierungsprozesses bei der zweiten Ausführungsform der Erfindung.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Im folgenden werden Ausführungsformen der Erfindung anhand der Zeichnungen beschrieben.
  • Die 1 ist eine Blockdarstellung der Systemkonfiguration einer ersten Ausführungsform der Erfindung.
  • Ein Host-Computer (im folgenden einfach als "Host" bezeichnet) A 100, ein Host B 110 und ein Host C 120 sind Vorrichtungen zur Eingabe/Ausgabe von Daten durch Übertragen einer Lese/Schreibanforderung an ein Speicherplattenarraysystem 200. Bei dem Speicherplattenarraysystem der vorliegenden Ausführungsform sind einer oder eine Anzahl der Hosts und das Speicherplattenarraysystem 200 über einen Bus-Schalter 130 verbunden.
  • Das Speicherplattenarraysystem 200 umfaßt Host-Eingabe/Ausgabe-Interfaces 210 und 211, einen Speicherplatten-Cache 230, Speicherplatten-Eingabe/Ausgabe-Interfaces 250 und 251, Speicherplattenvorrichtungsgruppen 270 und 271, eine Steuereinheit (Prozessor, MPU) 280 zum Steuern des ganzen Speicherplattenarrays, eine Busbridge 285, einen Speicher 290 und einen Cache-Controller 300. Jede der Speicherplattenvorrichtungsgruppen 270 und 271 weist eine Anzahl von Speicherplattenvorrichtungen (zum Beispiel Plattenlaufwerke) auf. Bei der vorliegenden Ausführungsform umfaßt beispielhaft die Speicherplattenvorrichtungsgruppe 270 drei Speicherplattenvorrichtungen 277 bis 279, die ein RAID-System bilden. Es reicht hier aus, daß es zumindest ein oder mehrere Host-Eingabe/Ausgabe-Interfaces 210 und 211 gibt. Es reicht des weiteren aus, wenn es zumindest ein oder mehrere Speicherplatten-Eingabe/Ausgabe-Interfaces 250 und 251 gibt. Es reicht auch aus, wenn es zumindest eine oder mehrere Speicherplattenvorrichtungsgruppen 270 und 271 gibt.
  • Es ist anzumerken, daß das Host-Eingabe/Ausgabe-Interface 210, der Cache-Controller 300, die MPU 280, die Busbridge 285, der Speicher 290, der Speicherplatten-Cache 230 und das Speicherplatten-Eingabe/Ausgabe-Interface 250 einen RAID-Controller (Speicherplattencontroller) bilden.
  • Der Host A 100, der Host B 110 und der Host C 120 sind über den Bus-Schalter 130, einen Host-Bus (Host-Kommunikationsweg) A 140 und einen Host-Bus (Host-Kommunikationsweg) B 141 mit den Host-Eingabe/Ausgabe-Interfaces 210, 211 des Speicherplattenarraysystems 200 verbunden. Die 1 zeigt ein Beispiel, bei dem alle drei Hosts mit dem Speicherplattenarraysystem 200 verbunden sind, es reicht jedoch aus, wenn wenigstens ein Host oder einige Hosts mit dem Speicherplattenarraysystem 200 verbunden ist bzw. sind.
  • Die Host-Eingabe/Ausgabe-Interfaces 210, 211 nehmen Eingabe/Ausgabeanforderungen vom Host A 100, Host B 110 und Host C 120 auf und übertragen Daten zwischen diesen Hosts und dem Cache-Controller 300. Diese Host-Eingabe/Ausgabe-Interfaces 210, 211 sind über einen hostseitigen internen Bus (hostseitigen internen Kommunikationsweg) 220 mit dem Cache-Controller 300 verbunden.
  • Die Speicherplatten-Eingabe/Ausgabe-Interfaces 250, 251 übertragen Daten zwischen den Speicherplattenvorrichtungsgruppen 270, 271 und dem Cache-Controller 300. Diese Speicherplatten-Eingabe/Ausgabe-Interfaces 250, 251 sind über einen Speicherplatten-Bus (Speicherplatten-Kommunikationsweg) A 260 und einen Speicherplatten-Bus B 261 mit den Speicherplattenvorrichtungsgruppen 270 und 271 verbunden und über einen speicherplattenseitigen internen Bus (speicherplattenseitigen internen Kommunikationsweg) 240 mit dem Cache-Controller 300. Das Speicherplatten-Eingabe/Ausgabe-Interface 251 weist die gleiche Konfiguration und Funktion auf wie das Speicherplatten-Eingabe/Ausgabe-Interface 250.
  • Der Speicherplatten-Cache 230 ist über einen Cache-Bus (Cache-Kommunikationsweg) 231 mit dem Cache-Controller 300 verbunden.
  • Der Cache-Controller 300 umfaßt einen hostseitigen internen Buspuffer 310, eine Cache-Steuereinheit 320 und einen speicherplattenseitigen internen Buspuffer 330. Der hostseitige interne Buspuffer 310 speichert vorübergehend die zwischen den Host-Eingabe/Ausgabe-Interfaces 210, 211 und dem Speicherplatten-Cache 230 übertragenen Daten. Die Cache-Steuereinheit 320 steuert das Auslesen und Einschreiben der Daten aus dem und in den Speicherplatten-Cache 230. Der speicherplattenseitige interne Buspuffer 330 speichert vorübergehend die zwischen den Speicherplatten-Eingabe/Ausgabe-Interfaces 250 und 251 und dem Speicherplatten-Cache 230 übertra genen Daten. Der Cache-Controller 300 weist auch eine LA/LRC-Anhänge/Prüf/Lösch-Einheit 340 auf. Diese LA/LRC-Anhänge/Prüf/Lösch-Einheit 340 hängt LA und LRC, die später noch beschrieben werden, an die von den Host-Ein/Ausgabe-Interfaces 210, 211 zum Speicherplatten-Cache 230 übertragenen Daten an und prüft und löscht das LA und das LRC, das an die vom Speicherplatten-Cache 230 an die Host-Eingabe/Ausgabe-Interfaces 210, 211 übertragenen Daten angehängt ist.
  • Die MPU 280 ist über die Busbridge 285 mit dem Speicher 290 und dem Cache-Controller 300 verbunden.
  • Der Speicher 290 enthält ein Speicherplattenarray-Steuerprogramm 291, ein internes Datenübertragungs-Steuerprogramm 292 und ein WORM-Steuerprogramm 293. Diese Programme werden von der MPU 280 ausgeführt. Die MPU 280 steuert den Prozeß für das ganze Speicherplattenarray auf der Basis des Speicherplattenarray-Steuerprogramms 291. Die MPU 280 weist auch den Cache-Controller 300 an, auf der Basis des internen Datenübertragungs-Steuerprogramms 292 LA/LRC festzulegen, und gibt Datenübertragungsanweisungen an die Host-Eingabe/Ausgabe-Interfaces 210, 211 und die Speicherplatten-Eingabe/Ausgabe-Interfaces 250, 251 aus. Die MPU 280 steuert auf der Basis des WORM-Steuerprogramms 293 das Schreibschutzbit beim Einschreiben von Daten in die Speicherplattenvorrichtungsgruppen 270, 271, wie es später noch beschrieben wird.
  • Als nächstes wird nun LA und LRC beschrieben sowie die Anhänge-, Prüf- und Löschprozesse für LA und LRC, die beim Datentransfer durch die LA/LRC-Anhänge/Prüf/Lösch-Einheit 340 ausgeführt werden.
  • Bei dem Speicherplattenarraysystem 200 der vorliegenden Ausführungsform werden die vom Host-Computer erhaltenen Daten zum Verwalten und Verarbeiten der Daten in logische Blöcke aufgeteilt. Die abgetrennte Minimaleinheit wird als logischer Datenblock bezeichnet. Die Größe des logischen Datenblocks ist die minimale Lese/Schreibeinheit (d.h. eine Sektorgröße) beim Lesen und Schreiben von der und in die Speicherplattenvorrichtung.
  • Die LA/LRC-Anhänge/Prüf/Lösch-Einheit 340 des Cache-Controllers 300 hängt an jeden logischen Datenblock den Garantiecode an, der als 4-Byte-LA (Logische Adresse) bezeichnet wird, die einen Teil der Transfer-Zieladresse enthält, und ermöglicht das Feststellen eines Lesens/Schreibens der in die logischen Blöcke aufgeteilten Daten von und in abnormale Adressen. Die LAs der fortlaufenden logischen Datenblöcke sind so festgelegt, daß sie kontinuierliche Werte aufweisen. Die MPU 280 führt das im Speicher 290 gespeicherte interne Datenübertragungs-Steuerprogramm 292 aus, um dadurch den Wert anzugeben, der von der LA/LRC-Anhänge/Prüf/Lösch-Einheit 340 angehängt wird. Die LA/LRC-Anhänge/Prüf/Lösch-Einheit 340 hängt in den vom Host erhaltenen Daten (logische Datenblöcke), die durch den hostseitigen internen Puffer 310 des Cache-Controllers 300 aufgeteilt wurden, an den ersten logischen Datenblock den von der MPU 280 angegebenen Wert als LA an und an den folgenden logischen Datenblock als LA einen Wert, der durch Addieren von 1 zu dem von der MPU 280 angegebenen Wert erhalten wird.
  • Das LRC (Longitudinal Redundanz Check) ist ein Wert, der durch das Anwenden von Exklusiv-ODER auf der Basis von 4-Byte-Einheiten an das 1. bis 516. Byte der Daten mit einer Länge von 516 Byte erhalten wird, wobei die 516 Byte durch das Hinzufügen der 4 Byte der LA zu den 512 Byte eines logischen Datenblocks erhalten werden. Die LA/LRC-Anhänge/Prüf/Lösch-Einheit 340 berechnet den Wert von LRC für jeden logischen Datenblock und das angehängte LA und hängt dann auch das LRC an den logischen Datenblock mit dem LA an. Die LA/LRC-Anhänge/Prüf/Lösch-Einheit 340 prüft den Wert von LRC, um dadurch die Feststellung eines Datenbitfehlers zu ermöglichen, der während eines Datentransfers oder in der Speicherplattenvorrichtung aufgetreten ist.
  • Das Verfahren zum Anhängen, Prüfen und Löschen von LA/LRC ist in der JP 2001-202295 A und der JP 2000-347815 A beschrieben.
  • Die 2 zeigt Beispiele für LA und LRC, die von der LA/LRC-Anhänge/Prüf/Lösch-Einheit 340 an einen logischen Datenblock angehängt werden.
  • Die logischen Datenblöcke 401, 411 und 421 sind Blöcke, die durch Aufteilen der vom Host A 100 zum Speicherplattenarraysystem 200 übertragenen Hostdaten im Cache-Controller 300 erhalten werden. Die drei logischen Datenblöcke sind in der Reihenfolge logischer Datenblock 401, logischer Datenblock 411 und logischer Datenblock 421 ursprünglich ein fortlaufendes Stück der Hostdaten. Die LA 402 ist die LA für den logischen Datenblock 401, sie hat eine Größe von 4 Byte. Die LA 402 ist an das Ende des logischen Datenblocks 401 angehängt. Als LRC 403 ist an das Ende von LA 402 der Wert angehängt, der durch Ausführen eines Exklusiv-ODER an den Daten mit einer Länge von 516 Byte, die sich durch Hinzuaddieren der LA 402 zum logischen Datenblock 401 ergeben, in seitlicher Richtung (der Richtung von 1. Byte bis zum 516. Byte) auf der Basis von vier-Byte-Einheiten erhalten wird. Das LRC 403 hat eine Größe von 4 Byte. Die LA 412 und das LRC 413 sind die LA und das LRC für den logischen Datenblock 411. Die LA 422 und das LRC 423 sind die LA und das LRC für den logischen Datenblock 421. Diese LAs und LRCs sind ähnlich wie die LA 402 und das LRC 403 an ihren jeweiligen logischen Datenblock angehängt. Die Daten aus 520 Byte, die aus dem logischen Datenblock 401, der LA 402 und dem LRC 403 bestehen, ergeben den erweiterten Datenblock 400. Die Bezugszeichen 410 und 420 bezeichnen jeweils den entsprechenden erweiterten Datenblock.
  • Die LA- und LRC-Anhängeprozesse werden von der LA/LRC-Anhänge/Prüf/Lösch-Einheit 340 ausgeführt, wenn Daten vom Host-Eingabe/Ausgabe-Interface 210 oder 211 zum Speicherplatten-Cache 230 übertragen werden. Wenn Daten von Speicherplatten-Cache 230 zum Host-Eingabe/Ausgabe-Interface 210 oder 211 übertragen werden, prüft die LA/LRC-Anhänge/Prüf/Lösch-Einheit 340 anhand der LA und des LRC in dem vom Speicherplatten-Cache 230 ausgelesenen Datenblock, ob im erweiterten Datenblock ein Fehler aufgetreten ist. Wenn kein Fehler vorliegt, löscht die LA/LRC-Anhänge/Prüf/Lösch-Einheit 340 die LA und das LRC mit einer Gesamtgröße von 8 Byte am erweiterten Datenblock. Dann überträgt der Cache-Controller 300 nur den logischen Datenblock mit 512 Byte zum Host-Eingabe/Ausgabe-Interface 210 oder 211. Die über den hostseitigen internen Bus 220 übertragenen Daten sind daher der logische Datenblock, und die über den Cache-Bus 231 und den speicherplattenseitigen internen Bus 240 übertragenen Daten sind der erweiterte Datenblock.
  • Die zwischen dem Speicherplatten-Cache 230 und dem Speicherplatten-Eingabe/Ausgabe-Interface 250 oder 251 übertragenen Daten sind der erweiterte Datenblock. Wenn der erweiterte Datenblock zwischen dem Speicherplatten-Cache 230 und dem Speicherplatten-Eingabe/Ausgabe-Interface 250 oder 251 übertragen wird, führt die LA/LRC-Anhänge/Prüf/Lösch-Einheit 340 nur eine Prüfung von LA und LRC aus. Wenn kein Fehler vorliegt, wird die Übertragung des erweiterten Datenblocks fortgesetzt. Wenn die LR/LRC-Anhänge/Prüf/Lösch-Einheit 340 beim Prüfen von LA und LRC einen Fehler in LA oder LRC feststellt, teilt die LA/LRC-Anhänge/Prüf/Lösch-Einheit 340 den Fehlerinhalt der MPU 280 mit, und die MPU 280 verarbeitet den Fehler auf der Basis einer Fehlerbearbeitungsroutine entsprechend.
  • Bei der vorliegenden Ausführungsform wird ein in den 4 Byte der LA 402 nicht benutztes Bit als Schreibsperrbit (WORM-Bit) 404 definiert. Dieses Schreibsperrbit 404 ist eine Information, die anzeigt, ob das Einschreiben in den logischen Datenblock 401, an den die LA 402 mit dem Schreibsperrbit 404 angehängt ist, gesperrt ist. Wenn zum Beispiel das Schreibsperrbit 404 auf "1" gesetzt ist, ist ein Einschreiben in den logischen Datenblock 401 nicht möglich. Wenn das Schreibsperrbit auf "0" gesetzt ist, ist ein Einschreiben in den logischen Datenblock möglich.
  • Dieses Schreibsperrbit 404 wird unter der Steuerung der MPU 280 vom WORM-Steuerprogramm 293 festgelegt. Wenn die Daten vom Host-Eingabe/Ausgabe-Interface 210 oder 211 zum Speicherplatten-Cache 230 übertragen werden, führt die MPU 280 das interne Datentransfer-Steuerprogramm 292 aus, das im Speicher 290 gespeichert ist, um damit den LA/LRC-Anhängeprozeß in der LA/LRC-Anhänge/Prüf/Lösch-Einheit 340 auszuführen. Dabei wird das WORM-Steuerprogramm 293 ausgeführt, um die LA/LRC-Anhänge/Prüf/Lösch-Einheit 340 anzuweisen, das Schreibsperrbit 404 für die angehängte LA festzulegen. Das WORM-Steuerprogramm 293 nimmt bei Erhalt eines Schreibbefehls für den betreffenden Sektor vom Host auf den Wert des Schreibsperrbits 404 des logischen Datenblocks für den Sektor Bezug und gibt eine Antwort darauf zurück. Wenn das Schreibsperrbit 404 auf "1" gesetzt ist, das heißt auf "Schreibsperre", ist das Einschreiben in den Sektor nicht möglich. Als Reaktion auf den Schreibbefehl wird dann eine Fehlermeldung an den Host zurückgegeben. Wenn das Schreibsperrbit 404 auf "0" gesetzt ist, das heißt auf "Beschreibbar", wird eine Antwort an den Host zurückgeschickt, die anzeigt, daß das Einschreiben in den Sektor möglich ist.
  • Es ist anzumerken, daß die LA 402 an den logischen Datenblock 401 angehängt wird und das Schreibsperrbit 404 für die LA 402 festgelegt wird, gefolgt von der Berechnung des LRC 403, das daraufhin angehängt wird.
  • Es wird nun die WORM-Funktion unter Verwendung des Schreibsperrbits 404 beschrieben.
  • Die 3 ist ein Flußdiagramm für den Prozeß des Speicherns von WORM-Daten im Speicherplatten-Cache 230, der von der MPU 280 ausgeführt wird.
  • Die MPU 280 des Speicherplattenarraysystems 200 stellt bei Erhalt eines Schreibbefehls vom Host A 100 fest (Schritt 1000), ob die Daten für die Sektoren, die vom Schreibbefehl angefordert werden, alle im Speicherplatte-Cache 230 gespeichert sind (Schritt 1001).
  • Wenn festgestellt wird, daß zumindest einer der von der Anforderung betroffenen Sektoren nicht im Speicherplatten-Cache 230 gespeichert ist, werden die von der Anforderung betroffenen Sektoren aus der Speicherplattenvorrichtungsgruppe 270 in den Speicherplatten-Cache 230 gelesen (Schritt 1002). Wenn bereits ein Sektor im Speicherplatten-Cache 230 gespeichert ist, wird für diesen Sektor der Sektor im Speicherplatten-Cache 230 verwendet, und nur Sektoren, die sich nicht im Speicherplatten-Cache 230 befinden, werden ausgelesen.
  • Wenn festgestellt wird, daß alle angeforderten Sektoren im Speicherplatten-Cache 230 liegen, geht der Prozeß zum Schritt 2003 weiter, ohne daß die Daten für den Sektor von der Speicherplatte ausgelesen werden. Es ist anzumerken, daß der ausgelesene Sektor im Speicherplatten-Cache 230 als erweiterter Datenblock mit 520 Byte gespeichert wird.
  • Es wird nun auf das Schreibsperrbit 404 in der LA 402 des Sektors Bezug genommen. Es wird festgestellt, ob die Schreibsperrbits 404 für alle Sektoren, auf die sich die Anforderung bezieht, auf "0" gesetzt sind, das heißt ob alle Sektoren auf "Beschreibbar" gesetzt sind (Schritt 1003). Wenn festgestellt wird, daß zumindest ein Schreibsperrbit 404 für die Sektoren, auf die sich die Anforderung bezieht, auf "1" gesetzt ist, das heißt wenn festgestellt wird, daß zumindest ein Sektor schreibgeschützt ist, wird eine Fehlermeldung an den Host A 100 zurückgegeben, der den Schreibbefehl ausgegeben hat (Schritt 1009).
  • Wenn festgestellt wird, daß alle Schreibsperrbits 404 für die angeforderten Sektoren auf "0" gesetzt sind, das heißt wenn festgestellt wird, daß alle angeforderten Sektoren beschreibbar sind, wird eine entsprechende Antwort auf den im Schritt 1000 erhaltenen Schreibbefehl (die Antwort einer Schreibbefehlfreigabe, einer Datenübertragungsanforderung und dergleichen) an den Host A 100 übertragen (Schritt 1004).
  • Bei Erhalt dieser Antwort überträgt der Host A 100 die in den betreffenden Sektor einzuschreibenden Schreibdaten zu dem Speicherplattenarraysystem 200.
  • Die MPU 280 setzt bei Erhalt der Schreibdaten (Schritt 1005), die dem im Schritt 1000 erhaltenen Schreibbefehl entsprechen, alle Schreibsperrbits 404 der LA 402, die an den logischen Datenblock der Schreibdaten anzuhängen ist, auf "1" (Schritt 1006).
  • Das heißt, daß die LA/LRC-Anhänge/Prüf/Lösch-Einheit 340 die LA und das LRC an die Schreibdaten anhängt, die über das Host-Eingabe/Ausgabe-Interface 210 oder 211 und den internen Host-Bus 220 zum Cache-Controller 300 gesendet werden. Das WORM-Steuerprogramm 293 sendet dazu der LA/LRC-Anhänge/Prüf/Lösch-Einheit 340 eine Anweisung, das Schreibsperrbit 404 auf "1" oder "0" zu setzen. Wenn die Schreibsperrbits 404 für die Sektoren, in die die Daten im Schritt 1003 eingeschrieben werden, alle auf "0" sind, sind die Schreibsperrbits für die Sektoren noch im ursprünglichen Zustand. Daraus ergibt sich, daß zum ersten Mal Daten in den jeweiligen Sektor eingeschrieben werden. Um die WORM-Funktion auszuführen, das heißt um den Schreibprozeß bei einem zweiten oder späteren Versuch zu unterbinden, wird dann das Schreibsperrbit 404 für die Sektoren, in denen ein Schreibprozeß ausgeführt wurde, jeweils auf "1" gesetzt. Danach wird bei Erhalt eines Schreibbefehls für einen dieser Sektor vom Host der Schreibbefehl nicht ausgeführt und eine Fehlermeldung zurückgegeben.
  • Das Schreibsperrbit 404 der LA 402 wird auf "1" gesetzt, und der logische Datenblock (der erweiterte Datenblock 400), an den die LA 402 und das LRC 403 angehängt wurden, wird im Speicherplatten-Cache 230 gespeichert (Schritt 1007). Wenn der erweiterte Datenblock 400 im Speicherplatten-Cache 230 gespeichert wird, gibt die MPU 280 an den Host A 100 eine Nachricht zurück, die den Abschluß des Daten-Einschreibens anzeigt (Schritt 1008). Es ist anzumerken, daß der erweiterte Datenblock, der im Speicherplatten-Cache 230 gespeichert ist, zu einem beliebigen Zeitpunkt oder bei der Ausführung einer bestimmten Operation ausgelesen und in der Speicherplattenvorrichtungsgruppe 270 gespeichert wird.
  • Auf diese Weise ist es auf der Basis einer logischen Datenblockeinheit unter Verwendung der an den logischen Datenblock 401 angehängten LA 402 mit dem Schreibsperrbit 404 möglich festzulegen, ob ein Einschreiben möglich ist.
  • Wie beschrieben wird bei der ersten Ausführungsform der Erfindung für die von der Seite des Hosts gesendeten Daten das Schreibsperrbit 404 für die Sektoreinheit der Daten so festgesetzt, daß angezeigt wird, ob ein Einschreiben möglich ist. Durch Festsetzen des Schreibsperrbits 404 auf "1" zum Zeitpunkt des ersten Beschreibens des Sektors kann festgelegt werden, ob ein Einschreiben an dieser Sektoreinheit der Speicherplattenvorrichtungsgruppe 270 möglich ist oder nicht. Da bei einem zweiten oder folgenden Versuch kein Einschreiben in den Sektor mehr möglich ist, kann so die WORM-Funktion ausgeführt werden, auch wenn die Speicherplattenvorrichtungsgruppe 270 ein RAID-System bildet.
  • Es wird nun eine zweite Ausführungsform der vorliegenden Erfindung beschrieben.
  • Bei der zweiten Ausführungsform wird eine Bitmap zum Speichern des Schreibsperrbits vorgesehen, wodurch sich die Eingabe/Ausgabegeschwindigkeit für die Daten erhöht. Es ist anzumerken, daß die Systemkonfiguration bei der zweiten Ausführungsform die gleiche ist wie bei der ersten Ausführungsform, die in der 1 gezeigt ist. Eine Erläuterung davon unterbleibt deshalb hier.
  • Bei dem Speicherplattenarraysystem 200 der zweiten Ausführungsform wird im Speicherplatten-Cache 230 ein Bereich (eine Bitmap) zum Speichern des Schreibsperrbits für jeden Sektor festgelegt. Die Adresse der Bitmap ist mit der Adresse für den entsprechenden Sektor in einer eindeutigen Beziehung verbunden. Das Speicherplattenarraysystem 200 nimmt bei Erhalt eines Schreibbefehls vom Host A 100 nicht auf das Schreibsperrbit 404 der Sektoren der Speicherplattenvorrichtungsgruppe 270 oder des Speicherplatten-Caches 230 Bezug, sondern auf die in der Bitmap gespeicherten Schreibsperrbits, um so zu prüfen, ob ein Einschreiben möglich ist.
  • Die 4 ist eine Darstellung zur Erläuterung einer Bitmap 500, die im Speicherplatten-Cache 230 gespeichert wird.
  • Die Bitmap 500 ist in einem vorgegebenen Bereich des Speicherplatten-Caches 230 gespeichert. In dieser Bitmap 500 werden die in den erweiterten Datenblöcken 400 enthaltenen Schreibsperrbits 404 als Schreibsperrbits 501 in der Reihenfolge vom Anfang der Bitmap 500 an gespeichert. In der 4 ist der Bereich, in dem die Schreibsperrbits 501 gespeichert werden, schraffiert dargestellt. Die Adresse des Sektors, in dem der erweiterte Datenblock 400 gespeichert wird, steht mit der Adresse, unter der das Schreibsperrbit 501 in der Bitmap 500 gespeichert ist, in einer eindeutigen Beziehung. Nur durch Bezug auf die Bitmap 500 ist es damit möglich, das Schreibsperrbit 404 des erweiterten Datenblocks 400 für den entsprechenden Sektor zu prüfen.
  • Es sei die Kapazität des für die Bitmap 500 verwendeten Bereichs 1 MB. Wenn das Schreibsperrbit 501 in 1 Bit ausgedrückt wird, ist 1 MB = 1.024 kB = 1.048.576 Byte = 8.388.608 Bit. Die Rechnung ist wie folgt: 8.388.608 Bit × 512 Byte = 4.294.967.296 Byte = 4 GByte.
  • Es ist möglich, die Schreibsperrbits für Sektoren mit einer Größe von 4 GByte zu speichern.
  • Es ist anzumerken, daß eine Anzahl von Schreibsperrbits 404 mit einem Schreibsperrbit 501 der Bitmap 500 verbunden sein kann. Zum Beispiel werden, wenn auch nur eines der Schreibsperrbits für 10 Sektoren auf Schreibsperre gesetzt ist, die den 10 Sektoren entsprechenden Bits alle auf Schreibsperre gesetzt. Zum Zeitpunkt des Daten-Einschreibens werden nur dann als Ergebnis des Bezugs auf das Bit der Bitmap, das den für das Einschreiben vorgesehenen Sektor ent hält, alle dem Bit entsprechenden Sektoren als beschreibbar eingestuft, wenn kein Bit der Bitmap auf Schreibsperre gesetzt ist. Wenn das Bit der Bitmap auf Schreibsperre gesetzt ist, werden die Daten aus dem Speicherplatten-Cache 230 ausgelesen, und das Schreibsperrbit in der LA wird für jeden logischen Datenblock geprüft. Ein solches Verfahren ermöglicht eine Verringerung der Größe der Bitmap und auch eine Verringerung der Belastung der Kapazität des Speicherplatten-Caches 230.
  • Es wird nun die WORM-Funktion unter Verwendung der Bitmap 500 beschrieben.
  • Die 5 ist ein Flußdiagramm für den Prozeß bei der zweiten Ausführungsform der Erfindung, der von der MPU 280 ausgeführt wird, wenn das Speicherplattenarraysystem 200 vom Host A 100 einen Schreibbefehl erhält.
  • Die MPU 280 des Speicherplattenarraysystems 200 stellt bei Erhalt des Schreibbefehls vom Host A 100 fest (Schritt 2000), ob die Bits der Bitmap 500 des Speicherplatten-Caches 230 für die Sektoren der Speicherplattenvorrichtung, auf die sich die Anforderung des Schreibbefehls bezieht, alle im Speicherplatten-Cache 230 gespeichert sind (Schritt 2001). Wenn festgestellt wird, daß auch nur ein Teil der Bits der Bitmap 500 für die Sektoren, auf die sich die Anforderung bezieht, nicht gespeichert ist, geht der Prozeß zum Schritt 2010 weiter.
  • Wenn festgestellt wird, daß die Bit der Bitmap 500 für alle Sektoren im Speicherplatten-Cache 230 gespeichert sind, wird anhand der Bitmap 500 geprüft, ob die Schreibsperrbit 501 für alle Sektoren, auf die sich die Anforderung bezieht, auf "0" sind, das heißt auf "Beschreibbar" (Schritt 2002). Wenn festgestellt wird, daß zumindest eines der Schreibsperrbit 501 für die betreffenden Sektoren auf "1" gesetzt ist, das heißt wenn festgestellt wird, daß zumindest für einen Sektor eine Schreibsperre besteht, wird an den Host A 100, der den Schreibbefehl ausgegeben hat, eine Fehlermeldung zurückgegeben (Schritt 2009).
  • Wenn festgestellt wird, daß die Schreibsperrbits 501 für alle von der Anforderung betroffenen Sektoren auf "0" gesetzt sind, das heißt wenn festgestellt wird, daß alle von der Anforderung betroffenen Sektoren beschreibbar sind, wird eine entsprechende Antwort auf den im Schritt 2000 erhaltenen Schreibbefehl an den Host A übermittelt (Schritt 2003).
  • Der Host A 100 überträgt bei Erhalt dieser Antwort die Schreibdaten für die von der Anforderung betroffenen Sektoren zum Speicherplattenarraysystem 200.
  • Die MPU 280 setzt bei Erhalt der Schreibdaten, die dem im Schritt 2000 erhaltenen Schreibbefehl entsprechen (Schritt 2004), alle Schreibsperrbits 404 der LA 402, die an den logischen Datenblock der Schreibdaten angehängt ist, auf "1" (Schritt 2005). Das Einstellen des Schreibsperrbits 404 in der LA 402 erfolgt wie im Schritt 1006 der 3.
  • Das Schreibsperrbit 404 der LA 402 wird so auf "1" gesetzt, und der logische Datenblock (der erweiterte Datenblock 400), an den die LA 402 und das LRC 403 angehängt sind, wird im Speicherplatten-Cache 230 gespeichert (Schritt 2006). Wenn der erweiterte Datenblock 400 im Speicherplatten-Cache 230 gespeichert wird, speichert die MPU 280 das Schreibsperrbit 404 für den neu gespeicherten erweiterten Datenblock 400 in dem Bereich, der der Bitmap 500 entspricht, und aktualisiert die Bitmap 500 (Schritt 2007).
  • Dann gibt die MPU 280 eine Mitteilung ("Abgeschlossen") an den Host A 100 zurück, die anzeigt, daß das Daten-Einschreiben beendet ist (Schritt 2008). Es ist anzumerken, daß der erweiterte Datenblock, der im Speicherplatten-Cache 230 gespeichert ist, zu einem beliebigen Zeitpunkt oder wenn eine bestimmte Operation ausgeführt wird, ausgelesen und in der Speicherplattenvorrichtungsgruppe 270 gespeichert wird.
  • Im Schritt 2001 wird festgestellt, wenn auch nur ein Teil der Bit der Bitmap 500, die den angeforderten Sektoren entsprechen, nicht gespeichert ist, ob alle Sektoren, die mit dem Schreibbefehl angefordert wurden, im Speicherplatten-Cache 230 gespeichert sind (Schritt 2010).
  • Wenn festgestellt wird, daß zumindest einer der angeforderten Sektoren nicht im Speicherplatten-Cache 230 gespeichert ist, wird der Sektor aus der Speicherplattenvorrichtungsgruppe 270 in den Speicherplatten-Cache 230 gelesen (Schritt 2011). Wenn festgestellt wird, daß die angeforderten Sektoren im Speicherplatten-Cache 230 liegen, geht der Prozeß ohne Ausführung des Schrittes 2011 zum Schritt 2012 weiter.
  • Unter Bezug auf das Schreibsperrbit 404 in der LA 402 für den jeweiligen Sektor wird dann geprüft, ob die Schreibsperrbits 404 für alle von der Anforderung betroffenen Sektoren auf "0" sind, das heißt es wird festgestellt, ob sie auf "Beschreibbar" sind (Schritt 2012). Wenn festgestellt wird, daß zumindest ein Schreibsperrbit 404 für die von der Anforderung betroffenen Sektoren auf "1" gesetzt ist, das heißt wenn festgestellt wird, daß zumindest ein Sektor auf Schreibsperre ist, wird zu dem Host A 100, der den Schreibbefehl ausgegeben hat, eine Fehlermeldung zurückgegeben (Schritt 2009).
  • Es ist anzumerken, daß im Schritt 2011, wenn es einen Teil gibt, in dem zumindest ein Teil der angeforderten Sektoren im Speicherplatten-Cache 230 gespeichert ist, auf die Bitmap 500 statt auf das Schreibsperrbit dieses Teils Bezug genommen wird. Hinsichtlich des Teils, der nicht im Speicherplatten-Cache 230 gespeichert ist, kann nur dieser Teil von der Speicherplattenvorrichtungsgruppe 270 in den Speicherplatten-Cache 230 ausgelesen werden und ein Bezug auf das Schreibsperrbit 404 erfolgen, das in dem in den Speicherplatten-Cache 230 gelesenen Sektor enthalten ist. Auf diese Weise wird durch Auslesen nur der Sektoren, die nicht im Speicherplatten-Cache gespeichert sind, und Bezug auf die Schreibsperrbits 404 dieser Sektoren der Zugriff auf die Speicher plattenvorrichtungsgruppe 270 verringert und die Wirksamkeit des Prozesses erhöht.
  • Wenn festgestellt wird, daß die Schreibsperrbits 404 aller betreffenden Sektoren auf "0" sind, das heißt wenn festgestellt wird, daß alle angeforderten Sektoren beschreibbar sind, wird eine entsprechende Antwort auf den im Schritt 2000 erhaltenen Schreibbefehl an den Host A 100 übertragen (Schritt 2013).
  • Der Host A 100 überträgt bei Erhalt dieser Antwort die in die entsprechenden Sektoren einzuschreibenden Schreibdaten an das Speicherplattenarraysystem 200.
  • Die MPU 280 setzt bei Erhalt der Schreibdaten, die dem im Schritt 2000 erhaltenen Schreibbefehl entsprechen (Schritt 2014), alle Schreibsperrbits 404 der LA 402, die an den jeweiligen logischen Datenblock der Schreibdaten angehängt sind, auf "1" (Schritt 2015). Das Einstellen des Schreibsperrbits 404 in der LA 402 erfolgt wie im Schritt 1006 der 3.
  • Das Schreibsperrbit 404 der LA 402 wird so auf "1" gesetzt, und der logische Datenblock (der erweiterte Datenblock 400), an den die LA 402 und das LRC 403 angehängt sind, wird im Speicherplatten-Cache 230 gespeichert (Schritt 2016). Wenn der erweiterte Datenblock 400 im Speicherplatten-Cache 230 gespeichert ist, gibt die MPU 280 eine Mitteilung ("Abgeschlossen") an den Host A 100 zurück, die anzeigt, daß das Daten-Einschreiben beendet ist.
  • Dann wird die Bitmap 500, die bereits im Speicherplatten-Cache 230 gespeichert war, gelöscht. Daraufhin werden die Schreibsperrbits 404 für den neu eingeschriebenen erweiterten Datenblock 400 in dem der Bitmap 500 entsprechenden Bereich gespeichert. Dabei werden die Schreibsperrbits 404 für die neu eingeschriebenen erweiterten Datenblöcke 400 als Bitmap 500 erzeugt, die so aufgestellt wird, daß sie der Bereich von 10% vom Anfang des Bereichs der Bitmap 500 ist (Schritt 2018).
  • Es ist anzumerken, daß der erweiterte Datenblock, der in den Schritten 2006 und 2016 im Speicherplatten-Cache 230 gespeichert wird, zu einem beliebigen Zeitpunkt oder wenn eine bestimmte Operation ausgeführt wird, ausgelesen und in der Speicherplattenvorrichtungsgruppe 270 gespeichert wird.
  • Auf diese Weise kann unter Verwendung des Schreibsperrbits 501 in der Bitmap 500, die im Speicherplatten-Cache 230 gespeichert ist, bei dem Speicherplattenarraysystem 200 festgestellt werden, ob ein Einschreiben in die jeweilige logische Datenblockeinheit möglich ist.
  • Wenn die oben beschriebene zweite Ausführungsform auf ein Dateisystem vom einmal beschreibbaren Typ angewendet wird, ist die Wahrscheinlichkeit dafür höher, daß das Bit der Bitmap 500 für den die Schreibanforderung betreffenden Sektor im Schritt 2001 im Speicherplatten-Cache 230 liegt, was günstig ist. Ein Bitmap-Restrukturierungsprozeß (6(a) und 6(b)) kann die Wahrscheinlichkeit dafür weiter erhöhen, daß im Schritt 2001 das Bit der entsprechenden Bitmap 500 im Speicherplatten-Cache 230 liegt, wodurch sich die Effektivität erhöht.
  • Bei dem Dateisystem vom einmal beschreibbaren Typ befindet sich die Bitmap 500, auf die der Bezug bei Erhalt des Schreibbefehls erfolgt, in der Nähe des Sektors, der unmittelbar vorher überschrieben wurde. Diese Ausführungsform führt daher einen Bitmap-Restrukturierungsprozeß aus.
  • Die 6(a) und 6(b) sind Darstellungen zur Erläuterung des Bitmap-Restrukturierungsprozesses.
  • Ein Anstieg in den überschriebenen Dateien ergibt einen Anstieg in den in der Bitmap gespeicherten Schreibsperrbits 501 (der verwendeten Schreibsperrbits 501). Wenn die verwendeten Schreibsperrbits 501 bei über 90% der Gesamtkapazität der Bitmap 500 gespeichert werden (siehe 6(a)), bleiben nur 10% bis zum Ende der Bitmap 500, und die Schreibsperrbits 501 vor dem Ende werden von der Bitmap 500 gelöscht. Der Anteil der verbliebenen 10% wird daher an den Anfang der Bitmap 500 verschoben (siehe 6(b)). Der neue Anteil der letzten 90% wird durch Auslesen der entsprechenden Schreibsperrbits 404 aus der Speicherplattenvorrichtungsgruppe 270 erstellt.
  • Dieser Bitmap-Restrukturierungsprozeß kann im Speicherplattenarraysystem 200 als Hintergrundprozeß zu jedem Zeitpunkt ausgeführt werden. Wenn im Hintergrundprozeß festgestellt wird, daß die Schreibsperrbit 501 der Bitmap 500 bei über 90% gespeichert werden, wird der Bitmap-Restrukturierungsprozeß ausgeführt.
  • Auf diese Weise kann bei dem Speicherplattenarraysystem der zweiten Ausführungsform der vorliegenden Erfindung zusätzlich zu den Auswirkungen der ersten Ausführungsform der Prozeß zum Prüfen des Schreibschutzbits in der Speicherplattenvorrichtungsgruppe 270 für jeden Sektor weggelassen werden, da die Schreibsperrbits 404 für die einzelnen logischen Datenblöcke 401 im Bitmapformat im Speicherplatten-Cache 230 gespeichert werden, wodurch der Zugriff auf die WORM-Dateien schneller erfolgt. Insbesondere ermöglicht es bei dem einmal beschreibbaren Dateisystem die Ausführung des Bitmap-Restrukturierungsprozesses, den Zugriff auf die WORM-Dateien weiter zu beschleunigen.
  • Die Änderungen der Einstellungen hinsichtlich der WORM-Funktion bei der vorliegenden Erfindung, wie dem Gebrauch/Nichtgebrauch der WORM-Funktion, der WORM-Einstellung für jedes Volumen, der Kapazität der Bitmap 500, des Zeitpunkts für den Bitmap-Restrukturierungsprozeß und dergleichen können bei dem Speicherplattenarraysystem 200 als feste Prozesse behandelt werden. Die Einstellungen können jedoch auch entsprechend Anweisungen von einem Speicherplattenarray-Verwaltungsprogramm geändert werden, das auf dem Host oder auf einem Verwaltungsterminal ausgeführt wird.
  • Die vorliegende Erfindung wurde zwar vorstehend im Detail beschrieben und in den beiliegenden Zeichnungen dargestellt, sie ist jedoch nicht auf diese Details beschränkt, sondern umfaßt auch verschiedene Modifikationen und äquiva lente Anordnungen, die unter den Umfang der folgenden Patentansprüche fallen.

Claims (9)

  1. Speicherplattenarraysystem zum Speichern von Daten, auf die von einem Computer zugegriffen wird, mit einem oder einer Anzahl von Host-Eingabe/Ausgabe-Interfaces zum Verbinden mit dem Computer; einer Anzahl von Plattenlaufwerken zum Speichern der Daten; einem oder einer Anzahl von Speicherplatten-Eingabe/Ausgabe-Interfaces zum Verbinden mit der Anzahl von Plattenlaufwerken; einem Cache-Speicher, der vorübergehend die zwischen dem Computer und den Plattenlaufwerken übertragenen Daten speichert, wobei die Daten in Zugriffs-Einheitslängen der Plattenlaufwerke aufgeteilt werden; eine Steuereinheit, die die Eingabe/Ausgabe der Daten in und aus dem Cache-Speicher steuert; und mit einem Speicher zum Speichern eines Programms, das in der Steuereinheit ausgeführt wird, wobei bei Erhalt einer Daten-Schreibanforderung vom Computer die Steuereinheit auf Schreibsperrinformationen zugreift, die anzeigen, ob ein Einschreiben vom Cache-Speicher in den von der Schreibanforderung bezeichneten Bereich eines Plattenlaufwerks möglich ist; anhand der Schreibsperrinformationen feststellt, ob ein Einschreiben von Daten aus dem Computer möglich ist; und wenn das Einschreiben von Daten aus dem Computer in den Bereich möglich ist, die vom Computer übertragenen Daten aufnimmt, einen Garantiecode für die vom Computer übertragenen Daten erzeugt, Schreibsperrinformationen erzeugt, die anzeigen, daß der Bereich, in dem die vom Computer übertragenen Daten gespeichert werden, nicht mehr beschreibbar ist; die erzeugten Schreibsperrinformationen im Garantiecode speichert, den Garantiecode mit den Schreibsperrinformationen dem Bereich zuordnet, in dem die vom Computer übertragenen Daten gespeichert werden, die Daten, denen der Garantiecode mit den Schreibsperrinformationen zugeordnet ist, im Cache-Speicher und/oder einem Plattenlaufwerk speichert; und, wenn die Schreibdaten aus dem Computer nicht in den vorgesehenen Bereich eingeschrieben werden können, den Computer darüber informiert, daß seine Schreibdaten nicht in diesen Bereich eingeschrieben werden können.
  2. Speicherplattenarraysystem zum Speichern von Daten, auf die von einem Computer zugegriffen wird, mit einer Anzahl von Plattenlaufwerken zum Speichern der Daten; einem Cache-Speicher, der vorübergehend die zwischen dem Computer und den Plattenlaufwerken übertragenen Daten speichert; und mit einer Steuereinheit, die die Eingabe/Ausgabe der Daten in und aus dem Cache-Speicher steuert; wobei bei Erhalt einer Daten-Schreibanforderung vom Computer die Steuereinheit auf Schreibsperrinformationen zugreift, die anzeigen, ob ein Einschreiben vom Cache-Speicher in den von der Schreibanforderung bezeichneten Bereich eines Plattenlaufwerks, der in Zugriffs-Einheitslängen aufgeteilt ist, möglich ist; und anhand der Schreibsperrinformationen feststellt, ob ein Einschreiben von Daten aus dem Computer möglich ist.
  3. Speicherplattenarraysystem nach Anspruch 2, wobei die Steuereinheit, wenn die Schreibsperrinformationen anzeigen, daß ein Einschreiben möglich ist, vom Computer die Daten aufnimmt, die in den Cache-Speicher eingeschrieben werden; und, wenn die Schreibsperrinformationen anzeigen, daß ein Einschreiben nicht möglich ist, den Computer darüber informiert, daß das Einschreiben nicht möglich ist.
  4. Speicherplattenarraysystem nach Anspruch 2, wobei die Steuereinheit die vom Computer übertragenen Schreibdaten in Datenblöcke vorgegebener Länge aufteilt; und die Schreibsperrinformationen in einem Garantiecode speichert, der jedem der Datenblöcke mit vorgegebener Länge zugeordnet wird, die im Cache-Speicher gespeichert sind.
  5. Speicherplattenarraysystem nach Anspruch 2, wobei die Steuereinheit die Schreibsperrinformationen in einer Bitmap speichert, die im Cache-Speicher gespeichert wird und die einem Bereich entspricht, der in die vorgegebenen Datenlängen aufgeteilt ist.
  6. Speicherplattenarraysystem nach Anspruch 5, wobei die Steuereinheit, wenn die in der Bitmap gespeicherten Schreibsperrinformationen anzeigen, daß ein Einschreiben möglich ist, vom Computer die Daten aufnimmt, die in den Cache-Speicher eingeschrieben werden; und wenn die in der Bitmap gespeicherten Schreibsperrinformationen anzeigen, daß ein Einschreiben nicht möglich ist, den Computer darüber informiert, daß das Einschreiben nicht möglich ist.
  7. Speicherplattenarraysystem nach Anspruch 5, wobei die Steuereinheit die vom Computer übertragenen Schreibdaten in Datenblöcke vorgegebener Länge aufteilt; und die Schreibsperrinformationen für jeden der Datenblöcke mit vorgegebener Länge in der Bitmap im Cache-Speicher speichert.
  8. Speicherplattenarraysystem nach Anspruch 5, wobei die Steuereinheit feststellt, ob für den von der Schreibanforderung bezeichneten Bereich eines Plattenlaufwerks im Cache-Speicher eine Bitmap gespeichert ist; und wenn keine Bitmap im Cache-Speicher gespeichert ist, auf die Schreibsperrinformationen für den von der Schreibanforderung bezeichneten Bereich des Plattenlaufwerks im Cache-Speicher zugreift; wobei die Steuereinheit, wenn die Schreibsperrinformationen anzeigen, daß ein Einschreiben möglich ist, die Schreibdaten vom Computer aufnimmt, Schreibsperrinformationen, die anzeigen, daß ein Einschreiben in den von der Schreibanforderung bezeichneten Bereich des Plattenlaufwerks möglich ist, in einer Bitmap festlegt, die Schreibdaten vom Computer im Cache-Speicher speichert; und, wenn die Schreibsperrinformationen anzeigen, daß ein Einschreiben nicht möglich ist, den Computer darüber informiert, daß das Einschreiben nicht möglich ist.
  9. Speicherplattenarraysystem nach Anspruch 5, wobei die Steuereinheit das Verhältnis der benutzten Schreibsperrinformationen der Bitmap mit einem vorgegebenen Wert vergleicht; und, wenn das Verhältnis von benutzten Schreibsperrinformationen gleich oder größer dem vorgegeben Wert ist, den Bereich restrukturiert, in dem die benutzten Schreibsperrinformationen enthalten sind, um das Verhältnis der unbenutzten Schreibsperrinformationen zu erhöhen.
DE102004037092A 2004-05-24 2004-07-30 WORM-Garantie-Speichervorrichtung Ceased DE102004037092A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004-153516 2004-05-24
JP2004153516A JP4476021B2 (ja) 2004-05-24 2004-05-24 ディスクアレイシステム

Publications (1)

Publication Number Publication Date
DE102004037092A1 true DE102004037092A1 (de) 2005-12-29

Family

ID=32985697

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102004037092A Ceased DE102004037092A1 (de) 2004-05-24 2004-07-30 WORM-Garantie-Speichervorrichtung

Country Status (5)

Country Link
US (1) US7024522B2 (de)
JP (1) JP4476021B2 (de)
DE (1) DE102004037092A1 (de)
FR (1) FR2870614A1 (de)
GB (1) GB2414591B (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7278000B2 (en) * 2004-08-03 2007-10-02 Hitachi, Ltd. Data migration with worm guarantee
JP4871701B2 (ja) 2006-11-02 2012-02-08 株式会社日立製作所 ストレージシステム
WO2009023307A2 (en) * 2007-05-03 2009-02-19 The Research Foundation Of The State University Of New York Method and apparatus for tamper-proof write-once-read-many computer storage
US20120260034A1 (en) * 2011-04-06 2012-10-11 Hitachi, Ltd. Disk array apparatus and control method thereof
US9760296B2 (en) * 2013-05-20 2017-09-12 Hitachi, Ltd. Storage device and method for controlling storage device
US10782893B2 (en) * 2017-02-22 2020-09-22 International Business Machines Corporation Inhibiting tracks within a volume of a storage system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1993019413A2 (de) * 1992-03-17 1993-09-30 Jozsef Bugovics Schaltungsanordnung zum hardwareschreibschutz für externe massenspeicher von personalcomputern (pc)
JP2000347814A (ja) * 1999-06-03 2000-12-15 Sony Corp 記録媒体制御装置及び記録媒体制御方法
JP2001202295A (ja) * 2000-01-17 2001-07-27 Hitachi Ltd サブシステム
US6317281B1 (en) * 1993-06-16 2001-11-13 Hitachi, Ltd. Disk storage device having identification information for protecting stored data

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5088081A (en) 1990-03-28 1992-02-11 Prime Computer, Inc. Method and apparatus for improved disk access
JPH04254969A (ja) * 1991-02-05 1992-09-10 Seiko Epson Corp 追記型記録方式の記録データ保護手段
JP3183719B2 (ja) 1992-08-26 2001-07-09 三菱電機株式会社 アレイ型記録装置
US6330648B1 (en) 1996-05-28 2001-12-11 Mark L. Wambach Computer memory with anti-virus and anti-overwrite protection apparatus
JP3713521B2 (ja) * 1997-11-10 2005-11-09 東北電力株式会社 電源装置およびこれが搭載される電気自動車
US6185661B1 (en) * 1998-01-02 2001-02-06 Emc Corporation Worm magnetic storage device
JP2000148404A (ja) * 1998-11-12 2000-05-30 Hitachi Ltd コンピュータシステム
US6330645B1 (en) * 1998-12-21 2001-12-11 Cisco Technology, Inc. Multi-stream coherent memory controller apparatus and method
JP2000347815A (ja) 1999-06-07 2000-12-15 Hitachi Ltd ディスクアレイシステム
JP2001006294A (ja) 1999-06-17 2001-01-12 Matsushita Electric Ind Co Ltd リアルタイムデータ記録方法および装置
US6285583B1 (en) * 2000-02-17 2001-09-04 Advanced Micro Devices, Inc. High speed sensing to detect write protect state in a flash memory device
US6738879B2 (en) * 2000-05-22 2004-05-18 Seagate Technology Llc Advanced technology attachment compatible disc drive write protection scheme

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1993019413A2 (de) * 1992-03-17 1993-09-30 Jozsef Bugovics Schaltungsanordnung zum hardwareschreibschutz für externe massenspeicher von personalcomputern (pc)
US6317281B1 (en) * 1993-06-16 2001-11-13 Hitachi, Ltd. Disk storage device having identification information for protecting stored data
JP2000347814A (ja) * 1999-06-03 2000-12-15 Sony Corp 記録媒体制御装置及び記録媒体制御方法
JP2001202295A (ja) * 2000-01-17 2001-07-27 Hitachi Ltd サブシステム

Also Published As

Publication number Publication date
GB2414591A (en) 2005-11-30
US20050262300A1 (en) 2005-11-24
GB2414591B (en) 2006-08-02
US7024522B2 (en) 2006-04-04
GB0417554D0 (en) 2004-09-08
FR2870614A1 (fr) 2005-11-25
JP2005338945A (ja) 2005-12-08
JP4476021B2 (ja) 2010-06-09

Similar Documents

Publication Publication Date Title
DE69824078T2 (de) Heterogenes Computersystem, heterogenes Ein/Ausgabesystem und Datensicherungsverfahren für die Systeme
DE60111039T2 (de) Speichersystem das aus mehreren speichergeräten besteht, mit verschiedenen fehlertoleranten verfahren
DE19581103C2 (de) Verfahren und Vorrichtung zur Echtzeit-Rekonstruktion zerstörter Daten in einem Speichersystem mit redundanter Anordnung
DE112011100534B4 (de) Mehrstufiger Sicherungsprozess
DE102013215535B4 (de) Sicherung oder wiederherstellung von daten mit hilfe eines hauptspeichers und nichtflüchtiger speichermedien
DE68928546T2 (de) Dateisystem für eine vielzahl von speicherklassen
DE60035780T2 (de) Schaltung für plattenantriebskontroller und verfahren zur überschlagung von defekten oder ungewünschten sektoren
DE112013006655T5 (de) Speichervorrichtung und Verfahren zum Steuern der Speichervorrichtung
DE69127752T2 (de) System zur freigabe des raumes gelöschter dateien für ein dynamisch abbildendes virtuelles datenspeichersubsystem
DE69632219T2 (de) Speicherplattenanordnungssystem
DE69215538T2 (de) Verfahren zur verbesserung von partiellen streifenschreib-operationen einer speicherplattenanordnung
DE69220553T2 (de) Fehleranzeige in einer Speichergerätsanordnung
DE68913605T2 (de) Verfahren zur Handhabung defekter Sektoren auf einem plattenförmigen Informations-Aufzeichnungsträger und Gerät zur Durchführung des Verfahrens.
DE69310908T2 (de) Verfahren und geraet um nicht loeschbare dateien auf ein speichermedium zu schreiben
EP1817658A2 (de) Speichersystem mit sektorbuffern
DE102005006176A1 (de) Transaktionsverarbeitungs-Systeme und -Verfahren, die einen Nicht-Platten-Dauerspeicher verwenden
DE112013005903T5 (de) Speichersystem und Speichersteuerungsverfahren
DE60310530T2 (de) Eine Speicherplattenanordnung basierend auf Festplatten mit Zugriffseinheiten fester Länge
DE102009031923A1 (de) Verfahren zum Verwalten von Datenobjekten
DE112013000900T5 (de) Bewahren von Redundanz in Datendeduplizierungssystemen unter Verwendung eines Anzeigers
DE102016001591A1 (de) System und Verfahren für Copy-On-Write auf einer SSD
DE102006052173B4 (de) Schreibschutzverfahren und -vorrichtung für wenigstens eine Speichereinrichtung mit wahlfreiem Zugriff
DE102013209318B4 (de) Durchführen von asynchronen Löschscans mit Zwischenspeicherungs- und Auslagerungsvorgängen
DE112019005408B4 (de) Masterloses raid für byte-adressierbaren nichtflüchtigen speicher
DE602004007925T2 (de) Verwalten einer beziehung zwischen einem zielvolumen und einem quellenvolumen

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8125 Change of the main classification

Ipc: G06F 3/06 AFI20051017BHDE

R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee
R003 Refusal decision now final

Effective date: 20130223

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20130201